Linux中国
1.73K subscribers
777 photos
6.34K links
Linux 中国官方 Telegram 频道
Download Telegram
一个可以更好地调试的 Perl 模块

这个简单优雅的模块可以让你包含调试或仅用于开发环境的代码,而在产品环境中隐藏它们。Media

via https://linux.cn/article-9663-1.html
一个可以更好地调试的 Perl 模块

这个简单优雅的模块可以让你包含调试或仅用于开发环境的代码,而在产品环境中隐藏它们。Media仅用于调试或开发调整时的 Perl 代码块有时会很有用。这很好,但是这样的代码块可能会对性能产生很大的影响, 尤其是在运行时才决定是否执行它。Curtis "Ovid" Poe 最近编写了一个可以帮助解决这个问题的模块:Keyword:MediaEVELOPMENT。该模块利用 Keyword::Simple 和 Perl 5.012 中引入的可插入关键字架构来创建了新的关键字:DEVELOPMENT。它使用 PERL_KEYWORD_DEVELOPMENT 环境变量的值来确定是否要执行一段代码。使用它不能更容易了:
use Keyword:MediaEVELOPMENT;sub doing_my_big_loop { my $self = shift; DEVELOPMENT { # insert expensive debugging code here! }}
在编译时,DEVELOPMENT 块内的代码已经被优化掉了,根本就不存在。你看到好处了么?在沙盒中将 PERL_KEYWORD_DEVELOPMENT 环境变量设置为 true,在生产环境设为 false,并且可以将有价值的调试工具提交到你的代码库中,在你需要的时候随时可用。在缺乏高级配置管理的系统中,你也可以使用此模块来处理生产和开发或测试环境之间的设置差异:
sub connect_to_my_database { my $dsn = "dbi:mysql:productiondb"; my $user = "db_user"; my $pass = "db_pass"; DEVELOPMENT { # Override some of that config information $dsn = "dbi:mysql:developmentdb"; } my $db_handle = DBI->connect($dsn, $user, $pass);}
稍后对此代码片段的增强使你能在其他地方,比如 YAML 或 INI 中读取配置信息,但我希望您能在此看到该工具。我查看了关键字 Keyword:MediaEVELOPMENT 的源码,花了大约半小时研究,“天哪,我为什么没有想到这个?”安装 Keyword::Simple 后,Curtis 给我们的模块就非常简单了。这是我长期以来在自己的编码实践中所需要的一个优雅解决方案。via: https://opensource.com/article/18/4/perl-module-debugging-code作者:Ruth Holloway 选题:lujun9972 译者:geekpi 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media

via https://linux.cn/article-9663-1.html?utm_source=rss&utm_medium=rss
Jupyter Notebooks 入门

通过 Jupyter 使用实时代码、方程式和可视化及文本创建交互式的共享笔记本。Media

via https://linux.cn/article-9664-1.html
如何编译 Linux 内核

Jack 将带你在 Ubuntu 16.04 服务器上走过内核编译之旅。Media

via https://linux.cn/article-9665-1.html
Bootiso :让你安全地创建 USB 启动设备

我发现了另一个可以安全创建 USB 引导设备的工具 Bootiso 。它实际上是一个 BASH 脚本,但真的很智能!Media

via https://linux.cn/article-9667-1.html
为什么建设一个社区值得额外的努力

建立 NethServer 社区是有风险的。但是我们从这些激情的人们所带来的力量当中学习到了很多。Media

via https://linux.cn/article-9668-1.html
HeRM's :一个命令行食谱管理器

今天,我介绍 HeRM's,这是一个基于 Haskell 的命令行食谱管理器,能为你的美食食谱做笔记。Media

via https://linux.cn/article-9669-1.html
程序员的学习之路

2016 年 10 月,当我从微软离职时,我已经在微软工作了近 21 年,在业界也快 35 年了。我花了一些时间反思我这些年来学到的东西,这些文字是那篇帖子稍加修改后得到。请见谅,文章有一点长。Media

via https://linux.cn/article-9670-1.html
开始 Vagrant 之旅

用管理虚拟机和容器的工具 Vagrant 清理你的开发环境和依赖。Media

via https://linux.cn/article-9671-1.html
打造连接虚拟世界和真实世界的网关:首个 ERC875 钱包发布

这意味着利用区块链技术提供真实世界内的生活服务有了强有力的基础技术平台,基于区块链而展开的种种想象成为了可能Media

via https://linux.cn/article-9672-1.html
打造连接虚拟世界和真实世界的网关:首个 ERC875 钱包发布

Media新加坡本地时间 5月 23 日,StormBird 公司正式发布了其筹备已久的产品 —— AlphaWallet 1.0 版。这是目前市面上第一款直接支持不可替代性 Token 的钱包,也是一个可以连接虚拟世界和真实世界的网关,意味着利用区块链技术提供真实世界内的生活服务有了强有力的基础技术平台,基于区块链而展开的种种想象成为了可能。 在目前区块链技术的格局中,大量 Token 广泛使用的 ERC20 协议,可以做到接近无限拆分,比如数字货币,其数额完全不必一定是自然数,像是 0.5 元、0.003 元都是逻辑合理的存在,但是 ERC20 协议无法做到代表现实世界中无法拆分的、独一无二的资产。 事实上真实世界中绝大部分物理存在或虚拟存在的元素在逻辑上是无法拆分的,比如一支手机无法拆解成 2 个(半支手机)或者 10 个(0.1 支手机),一张门票没法分成 5 个(0.2 张门票)。假设一张门票要以 Token 的形式流通,它必然要有一些个性化的额外数据来作辅助说明,比如锚定某场演唱会,某个座位、以及这张票所有人是谁,发行方是谁。其次 ERC20 是不能实现更复杂的功能的,现有的打包、转帐流程比较复杂,如何实现让小白用户像使用支付宝、微信钱包那样轻松,且不必考虑打包时间、如何支付 Gas?这就是 ERC875 所做的,而首个支持 ERC875 的钱包 AlphaWallet 就是完成这些操作的载体。在 AlphaWallet 中可以轻松实现将真实世界的物品和资产,对应为区块链上的不可变通证数字资产,这就给线下服务的链上操作提供了可能性和更多想象。相信随着 ERC875 协议的发展和普及,越来越多的传统生活服务可以通过区块链来提供。比如最近火热的世界杯门票、就可以获得完善的解决方案,并解决过去关于黄牛、假票等顽疾。AlphaWallet 也以此为使命,通过推动Token化的发展,让世界变得更开放和公平。ERC875 协议及 AlphaWallet 的研发团队来自新加坡,主要的技术开发人员张韡武,曾在澳大利亚联邦银行(澳大利亚最大的金融机构)担任区块链构架师,主导了 12 个区块链项目,拥有超过 5 年的区块链开发经验,从 alt 货币设计到交易算法等,并任职 R3 全球构架师工作组,在区块链技术领域有着丰富的经验。MediaAlphaWallet 应用稍后会公开源代码,在经过安全公司 Sigma Prime 代码审计后,源代码将托管在 GitHub 平台,方便所有对项目感兴趣的伙伴们一起监督协作。目前官方网站 https://awallet.io  同时提供 Android 版和 iOS 版的下载链接,在官方社区 https://community.awallet.io  可以获得更多交流和服务支持。Google Play下载地址:https://play.google.com/store/apps/details?id=io.stormbird.walletiOS版下载地址:https://itunes.apple.com/us/app/alphawallet/id1358230430?mt=8Android APK 直接下载:https://awallet.io/apk欢迎加入 t.me/AlphaWalletGroup 电报群交流讨论。Media

via https://linux.cn/article-9672-1.html?utm_source=rss&utm_medium=rss
LikeCoin,一种给开放式许可的内容创作者的加密货币

在共创协议下授权作品和挣钱这二者不再是一种争议。Media

via https://linux.cn/article-9674-1.html
Linux 局域网路由新手指南:第 2 部分

今天我们继续学习更精彩的内容:局域网路由器。Media

via https://linux.cn/article-9675-1.html
基于 UAI-Train 平台的分布式训练

在 UAI-Train 平台中可以非常方便的开展分布式计算,提高效率、压缩训练时间。最后通过 CIFAR-10 案例解析在 UAI-Train 平台上进行训练所需作出的修改,并在 UAI-Train 平台上进行分布式训练。Media

via https://linux.cn/article-9673-1.html
使用树莓派构建一个婴儿监视器

比一般的视频监控还要好,这种 DIY 型号还有婴儿房间的自动室温控制功能。Media

via https://linux.cn/article-9677-1.html
You-Get:支持 80 多个网站的命令行多媒体下载器

这是一个 Python 编写的命令行下载器,可以让你从 Youtube、Facebook、Twitter 等很多热门网站下载图片,音频和视频Media

via https://linux.cn/article-9678-1.html
如何在 Ubuntu 上安装和优化 Apache

Apache (又名 httpd) 是最受欢迎和使用最广泛的 web 服务器,所以这应该对每个人都有用。Media

via https://linux.cn/article-9679-1.html
在 CentOS 6 系统上安装最新版 Python3 软件包的 3 种方法

在本教程中,我们将向你展示,如何在 CentOS 6 操作系统上安装最新版本的 Python 3 软件包。Media

via https://linux.cn/article-9680-1.html
更深入的理解 Python 中的迭代

在这篇文章中,我们将深入探讨 Python 的 for 循环来看看它们在底层如何工作,以及为什么它们会按照它们的方式工作。Media

via https://linux.cn/article-9681-1.html
DevOps 如何消除了 Ranger 社区的瓶颈

拥抱 DevOps 让 Ranger 成员们变得更灵活、快捷和成为开发者社区更有价值的成员。Media

via https://linux.cn/article-9682-1.html
如何在 Linux 中找到你的 IP 地址

每个网站都有一个独有的公开 IP 地址,可供任何人从任何地方访问。Media互联网协议Internet Protocol(IP)不需要介绍 —— 我们每天都在使用它。即使你不直接使用它,当你在浏览器上输入 website-name.com 时,它会查找该 URL 的 IP 地址,然后加载该网站。我们将 IP 地址分为两类:私有和公共。私有 IP 地址是你的无线路由(和公司内网)提供的私有 IP 地址。它们的范围是 10.xxx、172.16.xx-172.31.xx 和 192.168.xx,其中 x=0 到 255。公有 IP 地址,顾名思义,是“公共”的,你可以在世界上任何地方访问它。每个网站都有一个唯一的 IP 地址,任何人可在任何地点访问,这可被视为公共 IP 地址。此外,还有两种类型的 IP 地址:IPv4 和 IPv6。IPv4 地址格式为 x.x.x.x,其中 x=0 到 255。有 232(大约 40 亿个)可能的 IPv4 地址。IPv6 地址使用更复杂的十六进制。总的比特数是 128,这意味着有 2128 (340 后面有 36 个零!)个可能的 IPv6 地址。IPv6 已经被引入解决了可预见的 IPv4 地址耗尽问题。作为网络工程师,我建议不要与任何人共享你机器的公有 IP 地址。你的 WiFi 路由器有公共 IP,即 WAN(广域网)IP 地址,并且连接到该 WiFi 的任何设备都是相同的。连接到相同 WiFi 的所有设备都有上面所说的私有 IP 地址。例如,我的笔记本电脑的 IP 地址 192.168.0.5,而我的电话是 192.168.0.8。这些是私有 IP 地址,但两者都有相同的公有 IP 地址。以下命令将列出IP地址列表,以查找你计算机的公有 IP 地址:ifconfig.mecurl -4/-6 icanhazip.comcurl ipinfo.io/ipcurl api.ipify.orgcurl checkip.dyndns.orgdig +short myip.opendns.com @resolver1.opendns.comhost myip.opendns.com resolver1.opendns.comcurl ident.mecurl bot.whatismyipaddress.comcurl ipecho.net/plain以下命令将为你提供接口的私有 IP 地址:ifconfig -aip addr (ip a)hostname -I | awk ‘{print $1}’ip route get 1.2.3.4 | awk '{print $7}'(Fedora) Wifi-Settings→ click the setting icon next to the Wifi name that you are connected to → Ipv4 and Ipv6 both can be seennmcli -p device show注意:一些工具需要根据你正在使用的 Linux 发行版安装在你的系统上。另外,一些提到的命令使用第三方网站来获取 IPvia: https://opensource.com/article/18/5/how-find-ip-address-linux作者:Archit Modi 选题:lujun9972 译者:geekpi 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media

via https://linux.cn/article-9683-1.html?utm_source=rss&utm_medium=rss