各式各样的验证码
还记得以前那篇《 超强验证码 》?其实这个世界变态的验证码还有很多,下面是一个列表向像展示了各种稀奇古怪的验证码。不过本文并不单单只是收集这验证码,前面的比较恶搞,后面的会向你展示什么是有accessibility验证码。
完全看不清楚的
这是人类的字符吗?
图案中的字母是什么?
还记得以前那篇《 超强验证码 》?其实这个世界变态的验证码还有很多,下面是一个列表向像展示了各种稀奇古怪的验证码。不过本文并不单单只是收集这验证码,前面的比较恶搞,后面的会向你展示什么是有accessibility验证码。
这是人类的字符吗?
图案中的字母是什么?
在《 性能调优攻略 》里,我说过,要调优性需要找到程序中的Hotspot,也就是被调用最多的地方,这种地方,只要你能优化一点点,你的性能就会有质的提高。在这里我给大家举三个关于代码执行效率的例子(它们都来自于网上)
PHP中Getter和Setter的效率 ( 来源reddit )
这个例子比较简单,你可以跳过。
考虑下面的PHP代码:我们可看到,使用Getter/Setter的方式,性能要比直接读写成员变量要差一倍以上。
<?php //dog_naive.php class dog { public $name = ""; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } $rover = new dog(); //通过Getter/Setter方式 for ($x=0; $x<10; $x++) { $t = microtime(true); for ($i=0; $i<1000000; $i++) { $rover->setName("rover"); $n = $rover->getName(); } echo microtime(true) - $t; echo "\n"; } //直接存取变量方式 for ($x=0; $x<10; $x++) { $t = microtime(true); for($i=0; $i<1000000; $i++) { $rover->name = "rover"; $n = $rover->name; } echo microtime(true) - $t; echo "\n"; } ?>
这个并没有什么稀,因为有函数调用的开销,函数调用需要压栈出栈,需要传值,有时还要需要中断,要干的事太多了。所以,代码多了,效率自然就慢了。所有的语言都这个德行,这就是为什么C++要引入inline的原因。而且Java在打开优化的时候也可以优化之。但是对于动态语言来说,这个事就变得有点困难了。
下面是 Kristóf Kovács 收集的28个Unix/Linux下的28个命令行下的工具( 原文链接 ),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的。这些工具都非常不错,希望每个人都知道。本篇文章还在 Hacker News上被讨论 ,你可以过去看看。我以作者的原文中加入了官网链接和一些说明。
iostat, vmstat, ifstat 三合一的工具,用来查看系统性能(我在《 性能调优攻略 》中提到过那三个xxstat工具)。
官方网站: http://dag.wieers.com/rpm/packages/dstat/
你可以这样使用:
alias dstat='dstat -cdlmnpsy'
查看网络流量的一个工具
官方网站: Simple Linux Utility for Resource Management
【 感谢网友 @innocentim (Twitter) 投稿 】
这是一篇翻译练习。力图保留原意。若有不准确处,求速速指出。 猛击此处 (墙)看原文。作者为Rob Pike,贝尔实验室来的大牛,现在就职于Google。他主导了Go语言的创建工作。下面是正文——
——————————————正文分隔线——————————————
这是我在2012年6月的Go SF上演讲的文本。
这是一个个人演讲。 我承认,虽然面前的团队让Go诞生并延续,但是我的观点并不代表任何其他Go语言小组成员的意见。 我也想感谢Go SF的组织者提供这个和你们交流的机会。
几星期前我被问起:“你在推出Go的过程中遇到的最大的惊奇是什么?”我立即意识到了答案: 虽然我们希望C++程序员意识到Go是个较好的选择,但是令人意外的是,大多数Go程序员来自Python和Ruby这样的动态语言,而很少有来自C++的。
我们——Ken,Robert和我——是C++程序员(译者: Ken也用C++?),当时在为解决我们所写的这类软件产生的问题设计一个新的语言。 这似乎有点自相矛盾,因为别的C++程序员根本不关心这些问题,更不会去设计一个语言。
我今天想说的是关于那些激发我们创造Go的事情,和为什么它本不应令我们如此惊讶。 我保证这些内容更多与Go相关而不是C++,所以即使你不很了解C++你也能跟得上。
回答可以这样归结: 你认为”少即是多”呢,还是”少就是少”?
这里有个比喻,将以真实故事的形式给出。 贝尔实验室中心原来发放3位数号码: 物理研究是111,计算科学研究是127,如此这般。 1980年代早期,一个便笺飞过来说”鉴于你们对研究的理解有所加深,将为你们的号码多加上一位,以便更好地体现你们的工作”。 所以我们中心的号码变成了1127。 Ron Hardin半当真地开玩笑说如果我们真的理解我们的世界更好一点的话,我们将丢掉一位数字,将127变成27。 当然主管没听到这个笑话(这也不是我们希望的),但是我想这里面有点值得思考的东西。 少即是多。 你理解得越好,你将变得越简洁。