过新年,换新颜

这块自留地一直以来应该没什么人看。相信通过web看的人更少。

但还是想说一句如果谁看过以前的web版本的style,脑海里的第一念头就是弱爆了。

所以这个春节,决定修理一番。断断续续写了一晚上code吧。

有这么几项。

  1. 升级到Rails3.2。
  2. 全盘采用twitter前阵子发布的样式库:bootstrap
  3. 终于添加了评论功能。谢谢之前 @lobatt 的吐槽。

自此,这个blog engine终于算有点样子了。希望以后可以勤快点。

接下来想实现的是这么几个方面:

  1. 改进登陆界面。
  2. 重构鉴权模块。
  3. 使url更加友善。
  4. 设计新的后台管理页面。
  5. 设计下右侧的sidebar。

看看剩余的假期还能把上面这些做多少吧。

生产力实验

每次新年来临总是充满着新的希望,今年也不例外。最强烈的愿景是自己又长了一岁,都27了,不管哪个角度来看都算是大人了吧,而且也工作8年了,不管哪个角度来看都属于老手那拨了吧。但其实我是知道自己几斤几两的,但为了显示出该有的成熟和专业,所以期望今年过的更加认真一些,对自己更加负责一些吧。

这两天强迫症犯了,硬逼着自己把所有greader的feeds和收藏夹里的links整理了一遍,分门别类,该删删,该换地儿换地儿的。顺带着就想到了以后应该怎样疏离生活,过得更加高效靠谱有营养。下面列一些吧,就当做实验。看看能不能坚持住,能产生什么样的收益。

1,整理了chrome的收藏夹和Greader的条目,大体上分为四类:工作(专业) / 兴趣(娱乐) / 修养 / 视野, 我觉得日常需要接触的信息来说,按这四类分挺好的。

2,活用instapaper,以后白天时间不多的情况看到认为有价值的文章要通过instapaper保存下来,晚上认真来看。没必要每天都扫完,每周末清一遍这里应该就可以了。

3,加强使用evernote的方式,不在只负责记录自己零碎的信息,而是作为自己知识的中心,同样真正有价值的文章也备份到这里来,以后翻阅。

4,利用好iTunes的Podcast,现在已经有不少高质量的技术类和语言类podcast,应该多利用,特别是上下班路上。

5,对于Hacker News / cnBeta 之类的信息量巨大的网站,从GReader中移去,单独在Filpboard中添加。闲暇时通过Flipboard浏览,避免占用大量时间。

6,继续用Wunderlist来充当GTD中的Inbox和Action Items。

7,每个月至少读完一本书吧。这个月我想把《乔布斯》传读完,前阵子买来看了三分之一就搁下了,这种虎头蛇尾的感觉很不好,要改掉。

Plan of 2012

  1. 计划赶不上变化,特别是长期的计划。
  2. 以上可以说是为去年计划的各种没实现找到的借口。
  3. 都要世界末日了,觉得没必要再列计划了,反正还是大半完成不了,每次都被自己钉在耻辱柱上,太丢人了。
  4. 但还是希望能过的更加有序一些的。
  5. 希望可以至少每两周写一篇日志吧。
  6. 希望可以尝试写英文日志吧。
  7. 希望可以完整的采用GTD,而不是断断续续的。看看一年的效率能怎样。
  8. 希望写几个故事,摆脱心中由来已久的肿胀。可能是黄书,可能是言情,也可能就是些段子。
  9. 希望能在有信仰的前提下,和现实妥协。
  10. 以上都不是计划,只是希望。

一切语法糖都是伪银弹(关于coffeescript, sass, haml的主观臆断)

前两天同事们在skype里讨论coffeescript,我本着娱乐精神随口蹦出了标题这么一句。

一切语法糖都是伪银弹。

说完觉得自己又冲动了,没有理由没有根据的随意下定论是扯淡,后来觉得不妥,本着有理有据才能立于不败之地的拧巴精神。还是单写一篇blog来阐述吧。

其实关于银弹,你很难看到这年头谁舔着脸好意思说自己发现了银弹,所以说,你可以大胆的say任何事物都不是银弹也不会招致针对性的批评,也都有反驳的余地。但如果敢说某一样东西是银弹的话,那么就等着被口水淹没吧。所以,我们不谈银弹了,就单说语法糖的好坏。对吧,没有东西是银弹,但每样存在的东西还是都有其优缺点好坏的。尽量的采纳吸取好的,淘汰坏的。那么即便在没有淫荡银弹的悲惨世界也能过的更好些,对吧。

语法糖顾名思义嘛,就是在语法上做文章,使程序员写code时候,觉得更加的甜蜜开心,跟吃了糖似的。但,到底这糖吃了只是变开心还是回头拉肚子,那就case by case了。所以就拿近期比较hot的几个语法糖来阐述我的立场吧。

haml,这个语法糖存在的蛮久的了,手头的项目也引进了许多年。但一直以来,我对这玩意儿就是不感冒,人html好好的标签式语言,让这东西用%啊神马的改的乱七八糟,面目全非的。我觉得如果我是一名和HTML打交道多年的UI前端工程师绝逼恨死这东西了,纯粹的语法变异而不是改进了。说这东西好的人群我观察了很久发现大部分还是偏后端的程序员,而理由基本上也只是简洁。而html原有的标签式语言只是这帮损色(跟我读:sai)不那么真的懂得html好处,惧怕精通一门和他们原有知识有很大区别语言的借口和污蔑。君不见xml为神马遍及程序世界的每个角落,除了滥用之外,确实在描述某些东西上,标签式语言是有它的长处和优点的。比方html这门xml方言,就是来描述web界面的,每个标签的开始与闭合都代表着UI上的每一篇区域,多么自然,多么美好啊。非要你丫用空格和%之类的好像很酷就一个字符很省地方的晦涩形式来替代,到底真的哪点好了呢亲,当你在firebug里面调试html dom结构的时候,发现问题,结果对应到code端是一堆奇怪haml代码,然后脑袋里人肉的转换又哪点好了呢亲?别说这是熟练度的问题,再熟练的大脑也只是大脑,多一层转换就要消耗多一层反应和注意,这一点都是无可避免的弱点。所以,分析到最后,结论就是这个东西除了能抵消一些后端程序员因为不精通html带来的惧怕感,让自己躲在自己固有知识的牢笼安乐死之外,没有任何真正的好处。小二,请下一位上场。

sass,这个东西是最近才热乎起来的。不同于单纯的语法糖,而是一种语言级别的增强,添加了oo的概念。当然oo也不是什么好词儿了已经。但如果一个大型项目,css这种纯描述型的语言,没有什么抽象层次的缺点真的很致命。所以如果有了oo的话,那真的可以减轻很多维护的成本,而且可以更容易的把css这部分代码组织起来,形成层次感。还有一点好处就是低入侵,我的意思是即便你原有的css什么都不改,照样可以在sass里面work,你可以一点点的把现有的css迁移到sass中,然后利用sass的oo特性,将代码更合理的组织在一起。当然,语法上也确实简洁了,但并不是haml那种颠覆似的纯语法层面的改革,而更主要的是在语言层面的增强。所以,综合来说,我认为sass还是值得采纳的。因为让css具备了层次结构,这在css变得庞大之后如何分类,组织提供了很好的方向。

coffeescript,最后说本文开头谈到的主角吧。其实我很久之前就和team share过几篇coffeescript的文章,当时就有人说要慎重。但其实当时大家紧张了,我只是想分享一些新奇的东西,让大家开开眼界而已,所以这次讨论我的观点也是慎用或者暂时不用。因为coffeescript的各种改变更类似于haml,只是单纯的语法上的装饰,方式温柔多了,但还是并没有太多本质的提升,可以说就是一门DSL而已,而这门DSL的目的只是为了更简洁,更富有变现力一些而已,并且也基本上只限于ruby guys,让一个java程序员来接触,指不定丫还觉得js比cofeescript符合审美,看着舒服呢。同样有着和上面两者通用的一个缺点就是需要大脑转换,毕竟,coffeescript目前只是一个转换器,你在浏览端看到的还是js,还是需要你人脑转换。所以同样我认为还是弊大于利。当然,如果某天引擎直接支持coffeescript了,那么我就立刻觉得这东西好感度++了,毕竟不需要多一层转换之后,再和Javascript PK的话,劣势就只有不如JS的历史积累了,但相信coffeescript语法带来的美感就可以打败javascript的累计了,至少在愿意追求美感的程序员里,高下立判,就是coffeescript赢了。而且JS迁移到coffeescript也不会像html to haml那么痛苦了,因为并不是语法上的颠覆,只是一种改良,这就好很多而且很对路了。

 

所以综合来说,在我眼里,这三门语法糖的比较是,sass应该是未来最有希望的一个,因为能解决一些实际的问题,但场景并不一定很多。而coffeescript的未来还有待观察,因为缺乏浏览器引擎原生的支持,但思路还是很不错的。而haml,这种反人类反直觉的产物还是早些消失吧,除了在不熟悉前端的后端程序员的toy project里,其他地方不应该有这种搞笑的存在。

web这么多年下来,html/css/javascript这三门语言已经经历了时间的考验,已经算是web开发中的standard了,任何新生的语言,想要和这三者竞争,都是一个非常困难的事情,所以在这三者基础之上的改良成为了唯一比较可行的路子。其中,刚才说的三样语法糖都有着一些不可避免的弱点,但sass和coffeescript都有着各自的好处,也许未来都能得到不同程度的发展,而haml,我还是从接触的最一开始就不看好的。

好了,不说了,就立贴为证,过些年看吧。

四年

前几天某次和朋友聊天,不经意间一算,我都工作了8年了。嗯,其中后来的一半时间都待在了一家公司,4年时间,应该不算短了。也证明这里对我来说还是值得留下比离开的理由多一些吧。

去年满3年的时候,以为自己有了一个机会可以多做一些自己更热爱的需要话费精力来design的事情。但是机缘不巧合的,很快就被安排了别的任务。忍受了差不多半年的擦屁股吧,自己也浑浑噩噩的提不起精神。终于等到了一次系统升级的机会,和一群同事将Rails1.2升到了Rails3,然后心里终于有了一些希望,收获了不少信心。然后就开始着手重构与重写自己新own的一大块历史遗留code。然后这有差不多断断续续整了两个月,终于在前天上线了。上线后出现了一些小问题,还都得到了妥善处理,相比于主要就一个dev加一个qa,handle了这么多东西,这个结果还是比较欣慰。但过程中随着深入,发现的问题也变得繁多。所以一圈下来,想想没有做而需要做的事情反而更多了,但现在也不会那么容易慌张或者易怒了,一点点来吧。顽疾不可能一日治好,胖子减肥也不是个易事儿嘛,万里长征第一步已经迈出去了,保持住,坚持住,就是成功吧。

每次用心在乎一件事儿的时候就总想死磕进去,把它做好做漂亮。但每次如果接到烂摊子,短期努力未果后就会自暴自弃。但随着慢慢成熟,这一次,感觉自己心态好了很多。希望保持下去,长期的有热情的认真的把手头的事儿做的尽量好一些,完美一些吧。嗯,I have a dream,就是哪天离职的时候,别让人从SVNBlame里面翻出来我写的code然后心里暗暗骂娘,就知足了。

发现问题然后抱怨问题的都是loser,像我以前那样。而发现问题然后想牛逼的办法然后漂亮的解决掉,才是大赢家。我现在每每失去耐心,信心的时候总会这么提醒自己,希望能借以改掉loser的特质,但同样这也不是个朝夕的事儿。

这一年,技术没什么精进,激情也只是偶尔闪现,但值得的收获是拧巴多次后,开始接近于自己的inner peace了。

再见,豆瓣

前几天在豆瓣上写了一篇《不二》的书评,结果没几天就发现被偷偷的删掉了。没有豆油我,也没有给我发邮件,没有任何提示,就把我的文字删掉了。还好我当时同时copy了一份到自己的blog(上一篇就是)。不然的话,这篇虽然没什么营养但好歹也花费了我好几个小时的两千多字的文字就从此消失再也不见了。后来我还在twitter上问了一下豆瓣的老师,结果自然是几天过去了也毫无音信。

虽然豆瓣在大家的心目中一向评价很高,但在我的这件事儿上,我认为这种简单粗暴、毫无通知的做法还是不符合一个靠谱网站的,是非常不尊重用户的体现。所以,即日起,我决定离开豆瓣。等将几年来豆瓣的各种纪录都备份之后,就彻底注销掉。

我不是什么名人,没什么影响力。但玩豆瓣也算很早的,05年就通过keso的blog了解到了这个网站并且注册了用户。几年也积累的一些东西。说放弃有点可惜,并且备份也是件麻烦事儿。但我觉得还是有这个必要的。不对的事儿总归是不对的。比如有一次流氓当当网受了我的钱却没有把书发到,投诉多次也从来没有下文。虽然我没有时间精力跟它继续扯皮。但我可以从此拒绝使用当当网。并且当周围人需要用到B2C网站的时候,告诉他们我的经历和建议。这就是用脚投票嘛。

有时候,真的仿佛觉得这个社会要完蛋了,各种没有底线,各种践踏他人的权益。同时,心安理得,完全没有道德包袱。但忍耐总是有限的。身在贵国,可能需要在某些方面忍受不得不忍受的事情。但在网路上,我还真不觉得有必要死赖着一个网站,即便他深深的伤害了你。


接下来可能会把一些豆瓣上写的值得留下的陈年碎碎念po到博客上,请我的读者见谅。

------

除了豆瓣,还想说一下新浪微博,也是前几天,新浪微博删了我一条纪录。原文如下:

关掉房间所有的灯,打开窗帘。品茶香、烟香、书香;听琴声,雨声、雷声。无法再爱这种夏夜更多,狂野、激情、澎湃。仿佛要在这一夜把接下来几季的雨下完似的,时而细密如丝,时而暴雨如柱。闪尽那丑恶角落,雷出这燎原怒火。

同样也没有任何告知,发现的时候更为愤怒,因为我本地并没有备份。但后来发现在自己的页面还是能够看到自己发过的东西,即便别人看不到。在这点上,至少新浪微博还是比豆瓣人性了一点点。所以我还没有注销。但可能或早或晚,也会退出。因为在一个变态的地方,你稍微正经点就很容易触碰G点。所以,就继续在新浪微博上浪吧。不必太用心,自然也不会太失望。而豆娘,对不起,我们就此别过吧,因为我对你认真过,而你的做法确实让我觉得我很不值得。

------


我知道世界本就是不公平的,但同时我也相信很多规则不公平的游戏,我可以选择不去玩。就如我从不曾为退学或者拒绝了什么不正经的高薪职位而感到过后悔,一个人能从懂得世事后就一直比较坚持自己的内心,不去做不应该的妥协在我看来应该是一件可以骄傲的事情,并不迂腐,也并不幼稚。

总之,还是应该努力做一个有尊严的人,即便是在中国;还是应该做一个有尊严的用户,即便是在中文互联网。

野蛮生长中的二与不二

很久以前,冯唐老师就开始在他的blogpo他的各路朋友看完《不二》的读后感。我每一篇都看了,越发心里痒痒。知道前阵子说出版了,立刻淘宝预订了一份,说要一个月后才能发货。恰巧上周末AbbyHK在书店说见着了,直接就让其买了回来,先看再说。万幸,没遇着海关抽查。

看了有3个小晚上吧,昨夜看完的时候,发现屋外已经下起了雷鸣暴雨,而我还傻不拉几的关着窗帘吹空调呢。于是关灯,关空调,拉窗帘,开窗子。在黑暗中,雷鸣闪电中,放空大脑,享受着阅读完的快感。

要不就从柴静老师的读后感说起吧。柴静老师的作文列出了冯唐和老罗的一些个截然不同却一样牛逼哄哄的成长轨迹。读时不由自主的产生了一些个共鸣,想到了自己生长的些许趣事糗事。

其实我在高中退学前一直更像一个比冯唐牛逼差那么一点点的主儿。搞来教师用的标准答案书去糊弄考试,寒暑假借来高年级上一年度的作业直接吵一遍了事。而差那一点点就是从小我得第二名的频率比第一名要多好多。这有两方面的原因,一是语文课的考试,在古文古诗词填空上。我总喜欢自作主张,经常会把其中的某个字儿改掉换掉来背,导致误以为千年前的老家伙本来就是按照我想的那样写的,于是失分。二是数学考试,我经常一张卷子算错一两个最前面的算术题。当时很是纳闷,后来想想,也许因为从不复查的原因,总把数学卷子当成作文来写,喜欢一气呵成,然后早早交卷子好出去打篮球,抽烟扯淡。

偶尔还会得个3~6名的成绩。这种情况一般还是出在语文上,最后的作文我总愿意随意发挥,遇上“我的妈妈”之类的命题,基本就是一个死。我实在无法一万遍的写“妈妈为我操劳的两鬓白发”类似的东西。

再后来呢,我开始厌倦考试这种制度,觉得好二。一个学期的东西,且不说是不是知识,但总归不是卷子上那点题能够考察全面的。而我们却以分数决定了太多东西。特别是政治课的加入,让我觉得每次都要浪费好多钢笔墨水,去写一大串自己都看不懂的屁话,以求换取高一点的分数、惬意的寒暑假,这是一个很昧良心的事儿。 

当类似种种积累到了一定程度的时候,我觉得是时候爆发了。于是在某次网上听到“老罗语录”的时候。我觉得,嗯,老子也要退学了。做个牛逼的诗人写诗去~~~~当然,后来我最终还是靠写程序养家糊口,而写诗的强烈欲望也仅仅在开头那两年挥之不去,再后来就变为了梦想,束之高阁的。虽然其中过程还是有些曲折不已的,但没有老罗卖药,摆地毯,烤羊肉串那么丰富多彩,还是不展开了。

这是一些很早期成长经历,再大点就开始性成长。这点基本就完全不同了。《肉蒲团》和《查泰莱夫人的情人》伴随着他们的青春。而想想我自己,赶上了互联网的普及,赶上家里电脑买的早,moderm接的早。在我的轨迹中,相应的变成了《白洁少妇》、《少年阿宾》。应该是这两本吧。记不清楚了。毕竟对于血气方刚,土鳖无审美的青春期小男孩,更大的冲击来自于视频和图片。记得那会凭着33.6k的小猫用网络蚂蚁还是网际快车下载各种十几几十兆的rm格式视频小片段。记得下载rar压缩的各种套图。然后分类,整理。放到电脑中最隐蔽的目录,在类似的夏天里,打了一场痛快淋漓的篮球后,回家冲个凉水澡,关上门窗,带上耳机,打开这个秘密的目录,自得其乐,并乐此不疲。

所以最早期,我是对文字相当不敏感的,只是作为在无视频无图时候的备选方案。偶尔陶冶下情操。但当着宽带的普及,当着各种网吧的共享服务器里充斥着每周都会更新的毛片的时候。我开始审美疲劳了,不同大小的Cup、不同颜色的眼珠头发,但总是雷同的叫声、雷同的姿势。在这种变化中,我们这拨孩子们产生了巨大的分歧。一部分转而进行更深层的研究,开始关注每个AV公司的风格,每个AV女优的八卦如此等等,将这变成一种追星。而我则归入了另一波人数更占有的队伍,这波人将无处发泄的荷尔蒙与青春安放到了SC、CS、传奇上面。但大家还是一样的白天在宿舍睡觉,晚上成群结对的去网吧通宵,只不过我们这拨更喜欢宽敞,明亮,沟通方便的位子,而前面那一小撮,更喜欢去隐蔽偶然的角落里上机,并且夜里去洗手间上厕所的频率也略微高一些。

但打游戏也有累的时候,因为座位周围都是人,不乏同一个学校,同一个年级甚至班级的妹子。所以有时候即便想低级趣味换种娱乐时,也不好意思打开视频看到脸红气粗。所以呢,还是慢慢的回归于了文字。并且随着视频与图片冲击频率的减少。慢慢的,终于开始对文字有了更多的好感或者说习惯。

其实这些都是碎碎念,只是因为太久没有整理过这些个碎片。而正好在这个时候觉得还是应该记录下。回到《不二》上来。看之前,通过各种评论,让我觉得这应该就是一本普通的黄书,顶多就是文采更好一点,内容更香艳一点。所以做好了卫生纸,湿纸巾的准备来读的。而看了才知道我想错了。这跟我想的完全不一样。没有脱了裤子乱干一气的唐突,没有满屏的感叹号,省略号的粗鲁。书中有佛有人,有和尚有流氓,而佛就是人,而和尚即流氓。当然少不了女人,一个尼姑兼妓女把男人都上了一遍的好姑娘。有的是意境,是境界,是万事万物返璞归真,从二再到不二的过程与升华。还是冯唐自己在后记里说得好,这是一本服务于意淫而不是手淫的黄书。

我曾经以为欲望是最大的天性,而现在我缓过来。才发现其实对于美好的向往才是更具有生命力的一种存在。而这种向往存在于男欢女爱,存在于花草树木,存在于夏天的夜雨凉风,存在于冬天的热炕烧酒,存在于你和你自己的心魔每一次搏斗失败后却还不气不馁,执着的希望大彻大悟,走向不二的过程。

感谢冯唐,感谢《不二》,让我在阅读中和逃避已久的内心好好的对话交流了一番。最后附上书中不二的小诗以及我自己接的后四句作为收尾吧。

 

 

菩提大鸡巴,

心是红莲花。

花开鸡巴大,

花谢鸡巴塌。

 

弘忍大鸡巴,

不二也不差,

慧能尻玄机,

神秀爱菊花。

 

想了很久,还是觉得把在豆瓣上的写书评贴过来好了。只是为了自己的地盘放着放心。

豆瓣上的地址: http://book.douban.com/review/5041076/

注重点实效能死么 - 关于Code Style的碎碎念

编码风格,是的,最近很想写点什么,特别想写的一篇就是关于编码风格。

我最近的Skype签名是这样的:

Programs should be written for people to read, and only incidentally for machines to execute.

这是SICP里面的一句话。当时读到的时候立刻就被感染了,说的真的是太好了。一直以来,我都觉得写程序这件事儿是一种创造,而创造这项活动,必须至少有一些艺术在里面,才能称得上优秀的创造。对于程序来说,实现它的那些code,可以很大程度表现出这个程序的优秀与否。虽然我一直很赞同结果导向,虽然我也觉得软件的最终价值是它的商业价值,高质量的服务了多少客户。但是,code质量是商业价值实现的前置必要条件。我绝B不相信,一个code一团糟的项目能够获得成功,即便能在某种程度上获得一定成功,但如果code有更好的质量,绝B可以获得更大的成功。

虽然说凡事要摆事实讲道理。但我相信对于在一线写code有段时日的程序员来讲。即便不拿出事实,都会有自己非常准的直觉知道code的新鲜/腐烂度,知道code的质量,知道哪里有bad smell,哪里如果哪儿再不打理,将来会有很大的潜在风险。所以,我觉得给予必要的时间,让程序员可以精心的维护自己的code是非常重要的一件事儿。

最近,正好有这么个机会,项目要从Rails1.x升级到Rails3.x,花费了不少人力物力时间成本,而我也觉得这是一个很好的机会多做一些还(技术)债的工作,于是就想了一些事项。但最后决定还是从统一代码格式入手,虽然目前这个事情离彻底完成还要很久,但已经有很多值得分享和说道的地方了。

  1. Code Style真的是万事之首,基本的基本。我本想着着手重构一些地方,但重构的前提是要理解原有的code,而当代码的样式乱到一个相当的高度的时候,,真的会让人抓狂,根本就读不懂,比如说一行就二百左右的字符,充斥着&&、||和小括号、括号嵌套括号的各种条件判断。你不想把样式调整到一个比较让人接受的程度,是根本没办法轻易理解,进而改进的。
  2. 发现潜在的bug。嗯,至少对于Ruby来讲,因为是解释性的语言,少了编译的步骤,代码中更容易有一些潜在的bug。比方说不存在的变量,重复定义的方法,或者永远为true或者false的判断之类等等。而在统一code style的过程中,随着提高了代码的可读性。这些潜在的bug也会很容易的浮出水面。
  3. 发现bad smell,对于bad smell的定义,我认为就是那些逻辑正确,但是实现方式很ugly的code。而当你整理一段糟糕的code,然后经过一番思考,尝试,搏斗。发现怎么调整,这段代码都达不到很高的可读性,总是看起来特别扭。那么,就可以立刻将这段code标记下来,或者立刻着手重构了。毕竟,在性能没有那么高要求的B2B的web项目中,着实不会有太多必须存在为了性能妥协的各种脏code。所以,一般情况,只要发现了这些bad smell,其实都能够比较轻松的进行不同程度的重构,来改善局部的设计和代码质量的。

上面说到的都是一些很实在的看得见的现实意义。而其实我觉得在精神层面上的意义也许更大。打个比方吧。找一篇宋词解析,先把某篇词后面的全文注解这个冗长乏味的白话文看一遍,然后再读一下词本身。你立刻就能感觉出后者的精练,美感和为何流传于世。code也是一样的,但你打开一个source file,发现style调整的非常精良,易读,这种感觉和看到各种千奇百怪的写法,随意命名的变量方法名拼装的源码,是完全不同的。

因为这事儿基本算计划外的,只好更多的是在下班后去做。所以按照现在的进度和整个项目的代码行来说。可能还要2、3个月的时间,才能将整个项目的source file过一遍。但我还是觉得这是一项非常值得的事情。不为别的,就是将来需要维护它的新人来后看code不会产生我当初那种骂街悲愤的感觉,就是值得的。

美是存在于每个地方,不只是和搞艺术的有关,程序中也可以时刻有着美的体现。

Apollog

在Rails发布3.0的时候,我就想也许应该做点什么练练手。后来就拖到了3.1 beta,然后我心想那就等3.1正是release了再说吧。结果这一等就又是好久。直到最近觉得实在不能忍了。那就基于rc版来做什么吧。

想了想,还是先从做自个的blog开始吧。虽然原来基于rails2搭过blog engine(地址) -- rxblog。但由于一直流连于wordpress的强大,也一直没用起来。但自己还是会希望用自己的程序来搭blog的。索性就基于rails3.1重新写一个吧。希望能坚持下去,一点点的完善。

这次把代码放到了github上(地址),也顺手学习了一些git的基本用法。至少现在的感觉来说,对于单个开发者的项目。git真没比svn有什么优势。也许会有一些高级特性还是很有用的,慢慢再看啦。

把这个blog engine命名为Apollog,其实是Apollo + log的意思。Apollo一是代表我很喜欢的太阳神,二是年初看BSG的时候里面的主角也叫这个名字。所以想想,这么拼一下也挺不错的。

相比于以前做来玩的rxblog,这次重做,还是有一些个变化吧。首先是尽量的减少插件的使用。其实呢,本来用的插件也不多。但还是去掉了用户登陆鉴权的插件。选择自己写。因为本来就打算主要自用,所以有个简单的登陆就好了。我甚至都没画注册的页面。但相比于引入插件,带来很多不必要的code,导致的潜在维护成本,我觉得还是蛮值得的。

分页上,从以前一直用的will_paginate换成了kaminari。其实两者也差不多,但回头还是可以比较下优劣的。

rich editor,从fckeditor换成了tinymce,其实两者也没仔细对比过。但以前用wordpress的时候习惯后者了。所以就继续用着吧。而且刚看了看,还是很组件化的。就是回头还需要想想怎么更好的和sprocket结合起来。以及是否可以搞出个gem plugin,更加的通用,毕竟目前搜了下,还没有支持rails3.1的rich editor plugin。

部署呢,现在直接就用的thin,没有前置static web server,因为觉得麻烦。回头有必要可以换成nginx+passenger。

开发环境,也从netbeans转为了vim。以前用Java的时候,依赖一站式IDE习惯了。后来做ruby也一直懒得改掉这个坏毛病。但netbeans7.0开始不支持ruby的消息出来之后。终于还是逼迫我这个懒人开始学习vim这个终极神器了。

用了2个多月了,效率完全不一样。但我觉得还有很大的提升空间。最近也在研究各种牛人的vim配置文件。正好工作中team大家也都在用。也打算回头做个分享,统一一下大家的常用快捷键。回头再pair的话,也会提高效率。

最近思考了很多,也领悟了很多。做一位程序员就如逆水行舟,不进则退,没有中间状态的。感觉自己这几年虽然在某些方面取得了很多经验与进步。但总感觉在更多的方面出现了退步。觉得最大的问题还是有点开始失去对新鲜事物的好奇心了。这是一种非常危险的行为,所以我觉得还是业余时间搞一些代码,写点文章的好。毕竟没有什么比不断的实践、总结更能让人心安的了。

目前这个engine还非常初步,希望接下来的一两个周末可以搞定这两个事情:

  • 支持评论功能
  • 支持Twitter Summary的auto publish,就像wordpress插件那样。

然后呢,就是把右边的sidebar以及header,footer做成可配置的。到时候,就比较像个真正的blog engine了。

炎炎夏日,何以解忧,唯有练手。

Twitter Weekly Updates for 2011-02-28

  • 这是肿么个情况?难道这一礼拜发生了神马?怎么tl上四处弥漫着怨戾之气。 #
  • 回帝都喽 (@ Shanghai Hongqiao Int'l Airport T2) http://4sq.com/hKAkX4 #
  • 还是帝都这温度给力 冷shi了 (@ Beijing Capital Int'l Airport T1) http://4sq.com/eAQFRE #
  • 公司搬到11楼后第一次第一个到 (@ FreeWheel Beijing Office) http://4sq.com/g4gt1N #
  • 左眼跳了半个月了,财在哪里,在哪里。 #
  • 以后要对通过LinkedIn找到我的猎头更好点。嗯,始终觉得翻墙的都是好孩纸~~~ #
  • 发现加班之后这个地方比丰联好打车多了 (@ 博纳悠唐国际影城) http://4sq.com/i4GBiW #

Powered by Twitter Tools