xdaqing
-
2009-04-25
Google Code开始提供Mercurial支持 - [生活]
终于, Google Code有点新动作了, 现在除了可以使用SVN外, 你还可以用Mercurial来协作开发.
官方的说明可以看这里: Mercurial support for Project Hosting on Google Code.
下面讲个和这则新闻有关的, 背后的小故事:
去年的时候, 我开始了一个小项目, 放在了Google Code上面: http://code.google.com/p/aeolus/, 但是之后我觉得git是比svn更好的源代码管理工具, 就转向了git. 为了继续使用Google Code, 我用了git-svn, 但是后来觉得很别扭, 我就向Google Code的官方支持论坛发了一个帖子, 问Google Code能不能提供分布式版本控制系统让大家用, Google的同学说, 目前还没有任何plan, 但是我可以去提个需求, 于是我就跑到这里, 提了提: Offering Distributed Version Control System Support.
不提不知道, 一提吓一跳, 原来大家都有这个需求, 只是没好意思说出来. 于是大家就在下面回帖说"顶啊", "支持啊", 一直把这个帖子顶到了首页, 2008年底的时候, 我提的这个Issue已经排第一位了, 只是没有截屏留念, 真是人生一大憾事.
Google呢, 看到群众的需求如此旺盛, 又一直自称是"为群众服务"的, 就不好意思不搞了, 所以他们把这个Issue的优先级调高, 把Milestone调成了2009年, 而就在昨天, 这个Issue被搞定了. 他们激动的宣布, 现在Google Code也支持分布式版本控制系统啦~
但是, 他们的动作太慢了, 2008年的一个春天, GitHub横空出世, 而我也把Aeolus搬到了GitHub: http://github.com/kinch/aeolus/tree/master
说到这里, 故事算完了. 这个故事的中心思想是, 开发新功能一定要跟党走, 下手要快, 动作要利索, 不然人民群众就不跟你玩了.
最后跑题一下, Aeolus自从发了1.0以后, 就没什么动静了, 但那只是表面现象. 我想找个时间, 发个1.1版本.
-
最近在看一本书, 数学分析方面的, 忽然想到, 一个人在一件事情上的严谨程度, 是和他对这件事的热爱程度成正比的.
严谨的态度是可以培养的吗? 我从心里觉得, "培养"出来的严谨都是表面的, 如果你对在做的事不感兴趣的话.
-
2009-04-16
Scons: A software construction tool
Scons号称"下一代软件构建系统", 它的用户手册在: http://www.scons.org/doc/1.2.0/HTML/scons-user/index.html
-
2009-04-14
The Zen of Todoist
The Zen of Todoist
Now is better than later.
Later is better than never.
Organized is better than messy.
Big things are composed by smaller things.
Smaller things are done by action.
Think like a person of action.
Act like a person of thought.
The beginning is half of every action.
The longest journey starts with the first step.
Everything should be made as simple as possible.
But not simpler.
Celebrate any progress.
Don't wait to get perfect.
Deadlines and stress are a part of life.--- From Todoist.com
-
InfoQ.com上面的, 链接在: http://www.infoq.com/interviews/vinoski-qcon-interview
看完这个采访, 更坚定了自己学习和了解多种语言的决心.
-
今天是王小波的忌日, 1997年4月11日, 王小波在家中心脏病突发, 英年早逝. 王小波是我最喜欢的中国小说家, 也是对我的想法影响很大的人, 在高中和大学时代, 他是我的文学导师.
今天正好是周六, 于是就和我的好朋友一起去拜祭一下. 王小波之墓在昌平佛山陵园, 我们从双井坐地铁, 到芍药居转13号线在龙泽下车, 再做昌平20路公交车到达阳坊大都, 下了车, 在步行到佛山陵园, 一路上走了2个多小时.
在陵园的入口处, 有很多卖鲜花的, 我们凑上去, 还没等开口, 那个大妈就问我们, 是不是去看王小波的? 我们很惊讶, 原来这里的人都知道王小波啊? 大妈说在我们前面, 已经过去好几波看望的队伍了.
买了一束白色的菊花, 走了20多分钟, 才到达墓地. 我们也不知道王小波之墓的具体位置, 在入口问了位大叔, 结果大叔不知道, 我们只好自己去找了, 不过还好, 一会就找到了.
王小波的墓碑是块大石头, 石头上刻着"王小波之墓"5个大字, 没有墓志铭. 我们把菊花放到石头前, 拘个躬, 算是表达我们的对死者的哀思和崇敬. 在石头前呆了一会, 我们就回去了.
回来的路上, 我想, 人死了, 有没有人去拜祭, 其实已经不重要了.
-
2009-04-09
阶段总结之一: 学习风格及不足
想把最近一段时间的思绪整理一下, 却又不知从何说起, 就随便开个头吧.
先回顾一下自己学过的编程语言, 首先学的是C语言, 但没怎么学会, 后来依次是:
Java -> PHP -> JavaScript -> Python -> Scheme -> Erlang -> Ruby
按照熟练程度, 应该是PHP最熟练, JavaScript次之, Python和Java的水平一般, 需要查手册才能写程序. Ruby, Scheme和Erlang都是刚刚学的, 停留在能看懂一部分代码的层次上.
学了这么多语言, 没有几(一?)门是"精通"的, 我知道这很容易给别人留下浅尝辄止的印象, 但我的目标是尽可能的扩展眼界, 学到更多解决问题的不同思路. 我的风格(如果有的话)属于"现炒现卖型"(国外叫"Just In Time Learning"), 一般我都不会在一个领域内钻研太深, 只了解大体的东西, 当需要深入研究时, 再去找资料. 这样做是因为, 我对自己的理解能力还有自信. :-)
当然, 我总不能一直停留在表面上, 那就真成了浅尝辄止了. 接下来的时间, 我想重点学习研究高并发高容错软件设计方面的知识, 因为一直对这个领域很向往.
回想过去的学习历程, 犯了很多错误, 有些也许是很严重的:
1. 实践的太少
关于思考和实践, 我觉得很不容易把握, 特别是我还有一些顾虑, 就是有时候, 因为害怕走错路浪费时间, 总是想在刚开始的时候, 尽量选对路线, 至少不要太不靠谱.
这里的路线, 不仅仅是指如何选择软件开发的技术和设计原则, 同样也包括生活中的很多选择. 我非常喜欢的一句名言是这样的: 苏格拉底说, 没有经过思考的生活是不值得度过的. 也许这扯的有点远, 但在做出选择这方面, 我还是倾向保守的, 即使是去尝试一些东西, 我也希望自己在尝试之前有足够的思考.
这样做是对是错, 并不是那么容易回答的. 我们都说, 持之以恒是可贵的, 但前提条件是, 在正确的道路上持之以恒才可贵. 在错误道路上持之以恒, 是更大的错误.
2. 遇到问题有些想当然
我觉得这个问题, 从根本上, 是自己的科学素养不够决定的. 这个没什么好说的, 需要慢慢提高.
暂时想到了这两个比较突出的问题, 虽然我努力去做一个理性和冷静的人, 但还是有思维懒惰的时候.
今天就写这么多吧.
-
一篇很老的文章, 03年的, 不过可以看看: http://www.sics.se/~joe/tutorials/robust_server/robust_server.html
-
2009-04-07
即时学习("Just In Time" Learning)
今天看到一篇文章: Keeping Up and "Just In Time" Learning, 恍然大悟, 原来我的学习方法叫"Just In Time" learning呀.
-
2009-04-06
stomperl: 基于erlang的消息中间件
stomperl是一款基于Stomp协议的, 用erlang实现的消息中间件, 项目托管在Google Code上: http://code.google.com/p/stomperl/
-
2009-04-06
[演讲] CouchDB and Me
链接: http://www.infoq.com/presentations/katz-couchdb-and-me
一个人的奋斗经历.
-
找到一篇关于用erlang实现非阻塞TCP Server的教程: http://bit.ly/4lIrS5
-
链接在这里: http://www.infoq.com/interviews/preston-werner-powerset-github-ruby
在访谈中, 又有一个观点得到了加强: 选择最适合的语言来做最恰当的事(mix and match).
他们用了Erlang, Ruby, Python, C和C++, 当然还有JavaScript.
-
2009-04-05
Fuzed: Erlang-based clustering system
Fuzed is an Erlang-based clustering system designed to let several
single-threaded processes (which may or may not be reliable) form
into a pool which can serve requests to remote hosts. These resources
need not be homogeneous, Fuzed breaks them up into homogeneous pools
internally and serves out requests without "crossing the streams"
of different software/versions of software.
主页在: http://github.com/KirinDave/fuzed/tree/master -
关于构建复杂的系统, 有这么一个定律 说:
"A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system."
近来一直在思量这句话, 真是很受启发
-
2009-04-04
[PPT] 手机之家新系统介绍及架构分享 - [生活]
上周末, 我又参加了奇遇花园咖啡馆的beta技术沙龙, 这是该沙龙的第二次聚会. 第一次聚会, 我是去听别人讲故事, 这次, 是我们的团队去给别人讲故事, 这个故事的主题是"手机之家新系统介绍及架构分享".
先看一张生活照:

然后是我们的主讲人, 许超前同学:
这次超前同学讲的比较详细, 从手机之家创立之初到7年后的今天, 其间的架构变化都讲了.
下面的观众, 听的很入神:
我们老大:
演讲的PPT:
手机之家新系统介绍及架构分享View more presentations from Fenng Feng.一些关于这次架构分享的文章:







