世界属于将思考付诸实践的人

终于写完了

类归于: Web开发 — colin @ 3:37 下午 2009年06月23日

为期半年的写书任务终于完成了,40多万字,并且赶在变形金刚2上映的前一天,可喜可贺!这个片子等了几年了,这下可以轻装上阵,去观看大片!

几个封面DEMO如下,你喜欢吗?

这才发现,今年只写了两篇blog,不过没少写字,整个写作过程得益于讨论组中热心读者的参与,非常感谢大家。

书中的一些节选试读,以及最终的目录,可以在这里
http://groups.google.com/group/highperformanceweb/files

目前,出版社已经开始编辑和排版,计划9月上市。

Share/Save/Bookmark

《构建高性能Web站点》阶段性进展

类归于: Web开发 — colin @ 12:19 上午 2009年03月31日

书名

构建高性能Web站点(暂定)

内容介绍

本书围绕如何构建高性能Web站点,从多个方面多个角度进行了全面的阐述,涵盖了Web站点性能优化的几乎所有内容,包括数据的网络传输、服务器并发处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式缓存、Web服务器缓存、反向代理缓存、脚本解释速度、页面组件分离、浏览器本地缓存、浏览器并发请求、文件的分发、数据库I/O优化、数据库访问、数据库分布式设计、负载均衡、分布式文件系统、性能监控等。这些内容中充分抓住本质并结合实践,通过通俗易懂的文字和生动有趣的配图,让读者充分并深入理解高性能架构的真相。同时,本书充分应用跨学科知识和科学分析方法,通过宽泛的视野和独特的角度,将本书的内容展现的更加透彻和趣味。

创作目的

兴趣、总结、分享、提高

一些热门关键词

产品类:apache, lighttp, nginx, mongrel, varnish, squid, haproxy, lvs, memcache, memcacheDB, memcacheQ, dbslayer, mysql,  berkeley DB, samba, nfs, rsync, ssh, mogilefs, php, ruby, python, gearman, fastcgi, ssi, cacti, nmon, mrtg, ab, rails, smarty, apc, xcache, psyco, xdebug, simplefailover, hadoop,  map/reduce, s3, ec2, google app engine, bigtable, NetScaler, f5

概念类:bandwidth(带宽), latency time(响应时间), concurrency strategy(并发策略), throughput(吞吐率), epoll, aio(异步IO), direct io(直接IO), sendfile, context switch(上下文切换), syscall(系统调用), kernel, edge triggered(边缘出发), cache, http, opcode(操作码), web server, reverse proxy(反向代理), cdn(内容分发网络), denormalization(反范式化), database sharding(数据库水平分区), dynamic DNS updates(动态DNS更新), SAN storage(网络存储), raid(磁盘阵列), cluster(集群), high availability(高可用性), failover(故障转移), high scalability(高扩展性), load balancer(负载均衡), distributed file system(分布式文件系统), distributed computing(分布式计算), asynchronous computing(异步计算), distributed storage system(分布式存储), distributed message queue(分布式消息队列),parallel computing(并行计算), could computing(云计算), could storage(云存储)

预计上市时间

2009年9月

出版社

电子工业出版社&博文视点

当前进度

25w字/60w字

截至目前完成的内容目录,请浏览 http://groups.google.com/group/highperformanceweb/web/《构建高性能web站点》已完成内容索引

同题材blog

预计5月份将启动主题为“high performance web”的blog,长期致力于高性能Web站点相关研究内容的分享,包括技术、架构、语言、原理、资讯等,作为本书的延展阅读资源。

讨论组

在本书上市之前,除专业评审团外,本书希望听到更多的建议和支持,如果你希望了解本书编写进展、预览部分内容、提出宝贵建议,你可以加入以下讨论组,这样我便可以在邮件列表中找到你,不定期发送你感兴趣的内容。

对于讨论组活跃的成员,新书上市后会获得赠送版,以表感谢。

http://groups.google.com/group/highperformanceweb

highperformanceweb@googlegroups.com

以上内容仅为副本,查看原文请浏览 http://groups.google.com/group/highperformanceweb/web/《构建高性能web站点》阶段性进展

Share/Save/Bookmark

每个人都应该掌握的图形表达能力

类归于: Open Source, Web开发, 交互设计 — 标签:, , — colin @ 5:39 下午 2009年03月30日

虽然插图和图形比文字更有助于读者理解和回忆信息,但大多数人仍创建仅包含文字的内容。创建具有设计师水准的插图很困难,尤其是当你是非专业设计人员或者聘请专业设计人员对于您来说过于昂贵时。

最近我在写书的过程中,对此深有感触,我想每个人都有必要至少掌握一些基本的图形表达常识,当然,对于专业设计人员来说,要求更高,这里我主要是指那些没有美术设计背景但是又从事和设计相关的工作,注意这里所指的“设计”非常广义,比如程序设计、产品设计、交互设计、工程设计、课程设计、结构设计、流程设计、方法设计、人生设计、关系设计等,实际上每个人每天都要进行很多的设计。在这些设计过程中,图形表达非常重要,它甚至有时比口头表达和书面表达更加有效、快速、轻松。

当然,说到图形表达,工具是必不可少的,从石器时代开始人们就离不开工具,绘制图形的软件有很多,的确,它们已经非常强大了,这里我想介绍的是几个别有特色的工具,它们可以让你快速创建你脑海中的图形。

值得一提的是,这篇文章无法教你学会所有的图形表达方法,但是希望能够通过传达一些视觉上的效果,让每位朋友都意识到图形表达的重要性,接下来的学习不难,重要的是行动起来。

(全文…)

Share/Save/Bookmark

Be Smart &《道德经》

类归于: 开发随想 — 标签:, , , , — colin @ 6:37 下午 2008年12月17日

接着之前的一篇blog《Be Smart》http://blog.guoxin.org/2008/12/486/

继续说说Jacobson的Be Smart理念,昨天得到cris的提醒,我想来自道德经的另一句经典更是可以凌厉尽致的诠释其思想——“道可道,非常道”。

这句经典到目前有很多种解释,这里有一则故事,原来道德经是这样产生的。当然,故事毕竟是故事,但是我更倾向于此种理解。

 

  老子是中国文化史上的重要人物,但奇怪的是,我们居然找不到他的个人资料。直到现在,老子的身世和生平一直是个谜。我们只能从一些传说的故事中,去寻找他那扑朔迷离的身影。

  传说,老子活到了90岁高龄,好像神话故事里鹤发童颜、精神矍铄的仙翁。那一年,他骑着一头青牛,从函谷关进入沙漠,从此不知所终。在中国历史上有许多高人,他们通常都

  会用归隐山林的方式来完成他们对生命的体验,只有这个老头,居然玩起了西部探险。你能想象一个人在那种荒凉地域中的生存状态吗?在那里,社会已经消失了,你再也不需要证明自我,你只是活着——很纯粹地活着,你会忽然明白生命的真实意义。  当他经过边境的时候,函谷关的关令尹喜把他拦住了。尹喜好奇地向他询问了许多问题,然后说:“人类生活在痛苦中,惟独你是一个例外,这太不可思议了。现在,你必须为人类做一件事情——写一本书,把你的智慧留下来,否则我是不会放你过去的。”

  老子笑着回答:“智慧是一种状态,是很难用文字描述出来的,我恐怕做不到。”

  尹喜沉吟着说:“你能够描述多少算多少。无论你能够留下多少内容,总比没有的好。”

  老子被迫开始了写作,这就是《道德经》诞生的过程。幸好他是中国人,幸好他使用的是汉字。与世界上的其它文字有所不同的是,汉字不仅仅是一种书写工具,它还是一种智慧的载体。它的奇妙之处就在于,每一个汉字都堪称是一个博大精深的智库,你可以通过说文解字的方式,去参悟每一个汉字的玄机。同时,它还具有一种超稳定的形式结构,使得《道德经》能够穿越数千年的时空,完整地流传到今天。

  这是《道德经》的第一句话:“道可道,非常道。”这句话非常深奥,很难理解,因此也有好几种解释。我曾经对它也颇有研究的兴趣,也做过一番考证,也试图给出一个自以为是的立论。后来一想,虽然学者们的说法各有差异,但不过是一些门户之争罢了,因为他们中的任何一种解释对于原文都不会造成太大的影响。其中一个被普遍接受的解释是:“可以说得出的道,就不是永恒的道。”

  “道”为什么说不出呢?

  第一个原因:“道”是一种体验。

  体验是无法传达的。如果你不知道什么是爱,当有人为爱献身的时候,你会觉得不可思议。你可以在字典里找到这个“爱”字,但你会理解不了它的意义。如果你真的爱过什么人,你就知道“爱”这个字的意义了。意义来自于体验,当你有了体验,它就变得有意义了——否则它就是空洞的。

  文字可以被传达,但文字只是一种容器。如果你没有体验,你拿到的就只是一个空洞的容器。当你看到它、或者听到它,你会用你的体验去理解它。许多人一辈子都没有爱过,他们一辈子也不能理解“爱”这个字的意义,当他们听到有人为爱献身的时候,他们会觉得那个人很傻。尽管字典里也在解释这个“爱”字的意义,但他们理解不了,他们只能姑妄听之。

  “道”是一种体验。你只有通过亲身体验才能理解它,没有人能够代替你,就像没有人能够代替你吃饭和恋爱一样。

  第二个原因:“道”是在宁静中被感悟的。

  “道”是一种体验。尽管你也和别人一样吃饭、穿衣、睡觉、撒尿,但别人能够从吃饭、穿衣、睡觉、撒尿的过程中体验出活着的意义,而你只知道活着就要吃饭、穿衣、睡觉、撒尿。你只是在经过一种形式,你并不理解什么是生活,哪怕你拥有更丰富的食物、更漂亮的衣着、更豪华的床榻和马桶,你也只是在经过一种形式。如果没有体验,你就没有真实的生活。

  你只有透过生活的喧嚣才能找到那种体验,才能找到那种被感悟的东西。同样地,你只有透过文字的喧嚣才能理解老子,理解他所说的“道”。

 

再回到Be Smart,我想Jacobson要讲的应该就是“悟”或者“悟性”,前者是软件开发过程中应该不断进行的实践,后者是软件开发团队应该努力具备并且不断提高的素养。

在英语中确实没有“悟”这个单词,或者说“悟”只存在于中国文字和华人思想中,你很难用任何其它的语言或方式来解释它。作为美国人,Jacobson用了Be Smart来表达“悟”,我觉得非常接近,Jacobson用了超过40年的时间,领悟到了“悟”作为一种最高境界的智慧而存在,这本身就是相当的伟大。任何可以说出来的软件开发过程,都不是最好的过程,这包括UML和敏捷等,因为这些过程既然能说出写出,就已经成为了静态的东西,没有了神气和灵魂,在实施中,由于软件开发固有的诸多不确定性以及开发团队的众多差异,没有任何一个团队可以直接套用某个过程,所以这些过程中的某些环节根本无法实施,也就无法施展过程的整体效用。这就需要团队因地制宜,在这些眼花缭乱的过程理论基础上,具备超凡的领悟能力。正是因为Jacobson明白了这点,所以他觉得不论他怎么反思,不论他提出多么伟大的过程理论,总还是不能真正的指导软件开发,彻底解决问题,所以他干脆再也不研究什么具体的过程理论了,他知道那样走下去永远没有尽头。

我国古代的晋葛洪更把这种思想推到了极端,不仅道不可言,而且言得越多,离道越远。“强名为道,已失其真,况复乃千割百判,亿分万析,使其姓号至于无垠,去道辽辽,不亦远哉?” 。

Share/Save/Bookmark

中关村图书城的阿宝

类归于: 杂谈&日志 — 标签: — colin @ 5:59 下午 2008年12月16日

Share/Save/Bookmark

Be Smart

类归于: Web开发, 开发随想 — 标签:, , , , — colin @ 8:42 下午 2008年12月04日

12月4日,为期3天的2008软件开发技术大会在九华山庄拉开帷幕。

第一天的keynote我也去凑个热闹,上图是享有“现代软件开发之父”的Ivar Jacobson正在演讲,主题为“Be Smart”,作为引子,Jacobson只介绍了“Be Smart”的由来和大体思想,从中我能感觉到这位从事软件开发超过40年的头发花白的慈祥老人,要表达的思想正是软件开发领域直到现在都没有彻底解决的问题。作为UML的创始人之一以及面向对象技术的传道士,Jacobson多年来始终不断地反思,不断地致力于软件开发过程的改善,他用自己的行动影响了一代软件开发者。这次他带来的Be Smart,翻译过来我觉得“明智”比较好,国内目前都是这样翻译。

虽然Jacobson只讲了几分钟,但是从我的理解,Be Smart思想在于,不论任何的软件开发过程,包括软件工程教材上讲到的,也包括UML或者敏捷开发,如果在当前的开发团队中,只要有其中任何一个环节无法执行或者无法很好的完成,那么这个过程方法就需要改善,怎么改善呢?Be Smart,明智,就是要用明智的思维和洞察力来对过程和策略进行改进和变化,怎么变呢?不知道,因人而异,因地制宜,这就是明智的深奥之处,你看明白了吗?哈哈我想你也许觉得我跟没说一样,是的,明智就在于此,智者是没有套路可循的,就像武林至尊可以无招胜有招。这个思想Jacobson花了40年终于想明白了,也正是因为他的提出,坚定了我的判断,这正是我们几千年前周易的精髓——变化才是道理。

除此之外,keynote比较突出的两大主题,云计算和SaaS,感觉商业化有点浓,深度不够,表面文章多,缺乏本质的探讨。

云计算阵营,来自google、amazon、microsoft的云计算方面专家都以各自产品为主线来介绍云计算的优越性,我想“云计算”本身的优点显而易见,我也非常赞成,但是我担心如此密集的云也许会给众多开发者形成一片乌云,在选择云计算服务商这个问题上,会令很多人头疼。而作为云的服务商,其本质在于绑架开发者,让开发者脱离地面,这个地面我们可以理解为windows等桌面系统,简单的说,microsoft花了多年苦心开发的地面,让越来越多的开发者依赖这片土地生存,这时,来自互联网阵营的大鳄们,在天上开发了一片片美丽的云,召唤开发者们,你们以后可以将应用快速部署在我的云上,但是你们不需要了解云是怎么飞在天上的,我们有强大的技术可以支撑云,你们不要自己造云了。这时候microsoft肯定不答应,所以也要推出未来的Azure平台,直接“天地合一”,我“天地合一”这个词真是很恰当,说明microsoft终于想明白了道家思想,也说明道家早在几千年前就指明了道路。看microsoft云计算专家的演示,未来.net开发者将可以直接在IDE中部署应用到云端。

午餐之余,顺便拍了九华山庄的温泉泳池,很有意境!

Share/Save/Bookmark

柒玖捌 冬日

类归于: 摄影&游记 — 标签:, , , — colin @ 10:52 下午 2008年11月18日

Share/Save/Bookmark

鼓楼东大街车模店

类归于: 杂谈&日志 — 标签:, — colin @ 10:44 下午

Share/Save/Bookmark

补胎 & 体验R17轮毂

类归于: 杂谈&日志 — 标签: — colin @ 10:03 下午

上周发现胎压警报响起,去检测胎压后发现左后胎压只有0.8,正常应该是2.3,果然是漏气了,仔细一看,原来是左后轮中了钉子,扎得真准啊,看来以后开车不仅要看路,还要躲避钉子,难度真大。

检测胎压时候学到点常识,每辆车驾驶舱门内都有一个铭牌,上边标有不同乘客数时候的前后轮建议气压,按照这个来检测气压即可。

由于是防爆轮胎,胎的内部结构和硬度使得胎补起来特别困难,很多补胎的汽修店不补防爆轮胎,而且官方也建议防爆轮胎直接更换,不要补胎。

RSC防爆轮胎,即使轮胎在途中被扎破,仍能以80公里/小时的车速行驶250公里。这样,车主不仅可以节省一只备胎的花费,也可以在爆胎后从容驾车去补胎,同时防爆轮胎对于驾驶安全起到了很大的作用。RSC是一套轮胎安全组件,它使轮胎发生漏气的概率风险大大降低。

RSC包含安装在EH2轮辋上的RSC轮胎和TPI电子警告系统。一旦轮胎压力开始下降,RSC立即向驾驶者发出警告,但是即使轮胎压力下降为零,RSC仍能确保轮胎安全地固定在轮辋上,使轮胎继续行驶一定的距离。

由于具有经过特殊设计的轮辋凸峰,EH2(加宽的凸峰)轮辋能够防止轮胎在压力突然下降后脱离轮辋。RSC轮胎与传统轮胎的不同之处包括防爆特性、加强的侧壁、附加的气门嘴条带和高耐热性的合成橡胶材料。

特别加厚的轮胎内壁就是防爆的秘密,但是这一条轮胎售价达3000多元人民币,整体使用寿命与普通胎一样,其使用成本比普通轮胎却贵了很多。而且由于防爆胎的胎面比较硬,所以其驾驶舒适性有所下降,路面反馈更加明显。但这应该更好地体现了宝马特有的驾驶操控性特点。

尽管如此,还是要先想办法尝试补胎,4S店推荐了一家店,听说补防爆轮胎很有经验,于是驱车前往。

经过店内技工几个小时的奋战,终于补上了,过程比较复杂,需要由一台专用设备来分离轮胎和轮毂,然后从胎内进行补胎,最后将轮胎和轮毂重新整合,并且做动平衡调节。就这样终于大功告成了,天也黑了。

没想到第二天胎压警报又响了,下车观察了一下轮胎没有什么异样,怀疑是胎压警报不太准。不过就在检查轮胎的时候,无意发现轮毂外圈边沿被磨得很惨,像被狗啃了一样,没有什么比这个形容的更加完美了。我想一定是昨晚补胎时候卸掉轮胎时候磨到的,这些家伙干活太不小心了。看来还得再去一趟,检测一下胎压,顺便把轮毂翻新一下。

到店里检测了胎压,气压正常,为了继续观察胎压以及翻新轮毂,店老板建议我留下这个轮胎,给我暂时换一个325的原装轮胎开回去,也就是R17的轮毂,但是为了后轮平衡,另一个后轮也换成同样的R17轮胎,只能如此了,换上新轮胎,开出去体验一下,因为一直都想试试大号轮毂的改装效果。

以上是R16的防爆轮胎

以上是更换后的R17的防爆轮胎

这么一折腾后,前轮为R16,后轮为R17,均为防爆轮胎,后轮驱动,行驶后感受如下:

  • 怠速起步更加迅速,由于驱动轮(后轮)加宽,所以摩擦力增加;
  • 刹车能力下降,按照原来的判断力,本来可以刹车的距离变得更长了;
  • 舒适感没有变化,悬挂依然硬朗;
  • 入弯更加平稳,车身侧倾减少,抓地性增强

Share/Save/Bookmark

万圣节的Solana

类归于: 杂谈&日志 — colin @ 4:26 下午 2008年11月04日

Share/Save/Bookmark

自信的程序员

类归于: 开发随想 — 标签:, — colin @ 4:18 下午 2008年10月30日

在某种意义上,自信的程序员永远对自己的判断深信不疑,随着时间的推移,他们渐渐意识到那是一种无知

Share/Save/Bookmark

WordPress.com 全家福

类归于: 杂谈&日志 — colin @ 4:03 下午

看到这张合影,我觉得站位很有电影海报的架势,很自然,间距得当,有整体性又不乏独立性,看起来很强大,对每个人都印象深刻,我想他们也是随便一站,没有专门设计队形。

回头想想我们,为什么在集体合影的时候,总是千篇一律的标准行列式,挺胸抬头,偶尔第一排会蹲下,大家肩挨肩,有人会来个兔耳朵,最后一起茄子……永远是这样。直到有一天发现这些姿势竟然沿用了几十年的时间,所以以后大家在集体拍照中尽量来点创新。

Share/Save/Bookmark

google chrome 连环画

类归于: 互联网时代 — 标签:, , — colin @ 6:06 下午 2008年10月28日

google为了展示chrome诸多颠覆性的特性,发挥想象力,动用了卡通连环画形式来描述,真是巧夺天工,令人回味!

http://www.google.com/googlebooks/chrome/big_00.html

用chrome访问wordpress还真是一个字“快”,V8 JS引擎的解释速度果然非同凡响,期待Mac版的chrome

http://www.google.com/chrome

Share/Save/Bookmark

年轻的程序员

类归于: 开发随想 — 标签:, — colin @ 2:22 下午

不可否认,年轻的程序员,往往误把冲动当作才能。

后来,他们才明白,原来那只是冲动而以,除此之外,他们一无所有。

Share/Save/Bookmark

聪明的程序员

类归于: 开发随想 — 标签:, — colin @ 4:48 下午 2008年10月27日

我天真的认为,一个聪明的程序员,总是希望通过写程序让自己变得更加聪明,并坚持如此,所以他每次都能超乎想象的写出更加优美而高效的程序。

平庸的程序员绞尽脑汁写出满足用户或老板的程序,并为此暗喜,却不肯花一点点时间来思考如何让自己更加聪明,所以,他们永远都是平庸的。

Share/Save/Bookmark

早前文章 »