几篇技术文章
The Art of Unix
http://www.faqs.org/docs/artu/
Perl for Impatient Developer
http://blob.perl.org/books/impatient-perl/iperl.pdf
Game Development with Javascript
Introduction to x64 Assembly
http://software.intel.com/en-us/articles/introduction-to-x64-assembly/
Database Fundamental
https://www.ibm.com/developerworks/wikis/display/db2oncampus/FREE+ebook+-+Database+fundamentals
Jeff Dean的Stanford演讲
Google 公司的 Jeff Dean 在Stanford大学做了一个非常 精彩的演讲(视频未墙)。我觉得我们每一个人都应该去看一看这个视频,当然,没有字幕,需要不错的听力,当然,我不可能全部翻译出来,因为我也不是完全能听懂,下面是一些相关的Notes,供你参夸,并欢迎牛人指证。
- 比较了从1999年到2010年十年来的搜索量的变化。搜索量增加了 1000 倍,而搜索速度快了5 倍。1999年,一个网页的更新最多需要一个月到两个月,而今天,只需要几秒钟,足足加快了5w倍。
- 一开始,这些大量的查询产生了大约30GB的I/O量。2004年,他们考虑过全部重写infrastructure。
- 讨论了一些关于变量长度字节对齐的东西。
- 今天的MapReduce 有400万个作业,处理将近1000PB的数据,130PB的中间数据,还有45PB的输出数据。(1PB =1024TB)关于 MapReduce (Google云计算的精髓) 的一些统计,见下图:
版本管理器的发展史
以前本站发布过编程语言进化,Windows的达尔文进化图,今天在网上看到版本管理器的进化图,转过来,源文链接如下:
http://codicesoftware.blogspot.com/2010/11/version-control-timeline.html (墙)
这张图上分成了四个时期:
架构师给程序员的一封信
下面的邮件是某Architect发给他的Engineering团队的(来源),我觉得挺不错的,翻译过来,我相信我们所有的程序员都能从中学到很多东西。下面是这封邮件——
每次当我开始做新的东西是我就会很兴奋。就算在软件圈里做了20年以后,每当开始新的旅程里,我都觉得我心中有一些东西不吐不快。这是我们大家一起的旅程。我强烈地相信我们详细规划的过程是很有乐趣的,富有挑战的和丰富多彩的。我想让这个旅程让你们难忘,并且能增添你们所有人的阅历。
这看起来有些唯心主义,不过,我想制订我的工作日程,我们的技术策略,以及你们密切合作的进度。这样一来,当你们做了什么相当不错的事,我们所有人都可以受益。我相当的尊重第一个工程师和他们的代码。
1. 代码是王。文档仅随其后 。所以,代码一定要和文档一致,并可以正确执行。
2. 测试,测试,测试。
3. 单元测试非常关键 。每一个在单元测试之后发现的bug需要开发人员双倍的开销。记住,我宁可增加你的薪水,也不愿意把这些钱发给另一个QA团队然后你再修正bug。因此,如果你的代码满是bug的话,我不得不把钱付给更多的人,而你也只能分得很小的一块饼。
4. 写下有效率的代码,不但是让人读得有效率,而且也是让CPU执行 地有效率。对于坏代码永远不会善罢甘休。
5. 多了解今天工作需要之外的事情。你不仅仅要知道今天干什么,还要知道明天需要什么。
两本电子书
游戏Flash vs HTML5
下面这个网页上做一个乒乓游戏,左边是Flash,右边是HTML5,很有趣。这也算是一个Flash和HTML5通讯的例子吧。
http://labs.codecomputerlove.com/FlashVsHtml5/
C++的字符串格式化库
这里向大家介绍一个C++的字符串格式化库,叫cpptempl,这个库支持对字符串格式的条件,循环,变量插入。看上去很不错,只不过其是基于boost库的。
下面是一个例子:
// The text template wstring text = L"I heart {$place}!" ; // Data to feed the template engine cpptempl::data_map data ; // {$place} => Okinawa data[L"place"] = cpptempl::make_data(L"Okinawa"); // parse the template with the supplied data dictionary wstring result = cpptempl::parse(text, data) ;
输出结果是:
I heart Okinawa!
是不是很方便?让我们看一个更复杂的例子:
一个人脸识别的Javascript
这里有一个人脸识别的Javascript,感觉挺酷的。识别的还是很不错的,网友们在做了很多的测试,对于动画片里的人员很不准,而且,照片质量要好一点的会准一点。下面是一些识别结果:
一个递归式的图
你和你的工作
源文:http://youtheuser.com/2010/10/04/you-and-your-job/,有人说下面的这个文章太过Crazy,有人说下面的这个文章是猎头的软文,你换工作换得越多,他们才能越挣钱。我的观点的,先别否定他的观点,试着去理解一下为什么他要这么说,你会发现还有一些道理的。然后,想一想,自己需要的是什么?一份工作?还是一份经历?还是不断的自我挑战?相信你会有知道该怎么去做的。当然,“离职”是最后一步棋,在此前,我更希望你能尝试地在你现在工作环境下去改变去影响。
“The role of a manager should be to ensure that those that work for him/her eventually leave and go onto bigger and better things” — Mark Plant
如果你对你的工作不高兴——离开,如果每天早上你对你的工作没有激情——无论你在干什么你都要停下来。
因为这就是我们赖以生存的东西。
- 如果你的工作没有挑战性 – leave.
- 如果你在混你的工作 – leave.
- 如果你觉得现在不辛苦而又感到压力大 – leave.
- 如果你完全知道你现在正在做的所有一切的事 – leave.
- 如果你没有得到足够多的失败– leave 并到找一个地方可以让你获得成功前的失败。而当你发现你天天都在成功 – leave again.
- 如果你觉得你很成功 – leave 然后去找某个事或某个地方你不会那么成功,而当你又觉得你又很成功了 – leave again.
- 如果所有的人都喜欢你并喜欢和你一起工作 – leave 然后去某个地方,那里的人并不喜欢你(然后你让他们喜欢你)。
- 如果你的工作就像是赢奖品一样,并且你总是能赢 – leave 然后找个地儿,那里的人总是赢不了什么。帮他们扭转局面。
- 如果你认为你知道产品的所有的内在的东西 – leave 然后找一个你不知道的产品。