筆記與流年

沒有太多的話,這只是一個普通的Blog,想用它來記錄我的閱讀和學習筆記。

作者歸檔

业务类、工具类和内聚

By Mountain • Aug 18th, 2008 • Category: 技術話題

工作里的小小心得—能设计出相对复杂的系统,却不一定能写得好一段简单的代码。

在写代码的过程中,经常会遇到业务类里面大量的代码重复,一个可以设想的解决办法是把重复的代码提升到父类里面。然而因为父类导致抽象层次的增加,很多时候这种做法并不一定导致最好的解决方案,反而让代码变得难懂。

有时候一个恰当的工具类,可以使得代码变得异常的清晰。但在写工具类时一定要注意:工具类不能生硬插入业务的逻辑,这会破坏业务类的完整;对业务逻辑的控制权一定要掌握在业务类里面。

这些都是看似简单的原则,可在平时写代码的时候,因为时间、进度,我们往往忽略了代码的美感。写代码的感觉还是要多磨练呀。



Ruby上的管理工具:Capistrano與God

By Mountain • May 20th, 2008 • Category: 技術話題

公司網站的后端應用比較多,于是后台程序的部署和后台進程的監控便成為當務之急。搜索了一些解決方案后,最終鎖定到Ruby平台上的Capistrano與God兩個工具。

Capistrano( http://capify.org/ )是Jamis Buck的力作。總的來說,Capistrano就是一個建立在ssh之上的、多服務器環境下的部署工具。它與SVN也有良好的集成;通過ssh,它可以自由的執行任何一台服務器上的命令。

God( http://god.rubyforge.org/ )則是一個后台進程監控的工具。它可以用來啟動指定的進程,監控其后的狀態,并可以依據CPU/Memory等條件重啟進程。它的命令行界面很干淨,讓人喜愛。

現在只是剛剛把這兩個工具結合在一起使用,至于God是否穩定還有待考察。

最后想說的是,Ruby語言之上并不只有Ruby on Rails這樣的開發平台,也有許多系統管理工具可供大家選擇。



救灾

By Mountain • May 15th, 2008 • Category: 未分類

donate_to_redcross_468X200_w.png



精靈、超紙和超媒介

By Mountain • Apr 27th, 2008 • Category: 互聯網

昨天去參加了劉妍和阿角組織的第一期三朮沙龍。三朮沙龍的宗旨是意在打破藝朮、學朮和技朮之間的隔閡。這一期沙龍的主題是新媒體與教育。其中東京工藝大學博士劉洋先生的Spritivity項目吸引了我相當的注意。

Spritivity項目的主要內容是教小孩子畫出自己心目中的精靈,然后許多小孩一起利用這些精靈來編故事,通過參與來達到教育和跨文化交流的目的。他有個小孩利用這些精靈表演皮影戲的視頻分享,孩子們投入地表演,場面非常感染人。這里是他們的一個簡單的英文介紹: http://www.psych.lse.ac.uk/~patrick/SpritivityLondon-Beijing/

說到孩子和孩子的創造力,我不能不想起圖靈獎獲得者、Smalltalk的創始人Alan Kay2006年他在EuroPython會議上有一個Keynote,名字就為“Children First”。其實Alan Kay對孩子們的關注還要早到1960年代末。當時,他遇到了LOGO語言的創始人Seymour Papert,并且看到了LOGO在教孩子學習編程方面的巨大能力,于是他對如何認識計算在社會方面扮演的角色發生了徹底的改變。在1991Byte上的一篇釆訪報道《Dynabook Revisited with Alan Kay》中,Alan Kay說道:“在1968年,我見到了改變我對計算整體觀念的兩三類事物。我們那時思考計算的方式是Doug Engelbart那一類的觀點—大型機像鐵道,鐵道被決定你可以做什么和什么時候做的指令所擁有。Engelbart想要成為Henry Ford。個人計算機在六十年代被想象成汽車。在1968年,我看到了Seymour Papert為孩子們做的第一個作品以及LOGO,并且在Rand我還見到了第一個手寫識別系統。它棒極了。這些對我有巨大的影響,因為它們讓我有親密的感覺。當我把這些和讓孩子使用結合起來,計算機的概念就變的更像一個超媒介(supermedium),更像一張超紙(superpaper)。”

就說到Alan Kay的超紙,讓我們想象一張巨大的有超連接的畫布,孩子們在上面自由的作畫、編故事。每個精靈都會有自己的檔案,每個精靈都通過這種超媒介而活在孩子心中。這是一個讓我很激動的想法。一個精靈的王國,一個精靈的譜系圖。



维基入门(三):中立的观点

By Mountain • Apr 13th, 2008 • Category: 維基計划

上一篇讲到善意,然而善意只说明双方互相尊重的态度,并不蕴含彼此观点的一致。实际上,Wiki里面有专门的一个术语——“编辑战”,用来描述不断地互相删改对方的编辑内容。在维基百科早期的历史上,有一些比较有名的争议,比如神创论者对条目“进化论”的争议,这些争议直接导致了“中立观点”(NPOV, Neutrual Point Of View)政策的出现。此后,“中立”便成为了维基百科一个重要的特点。

需要提醒大家注意的是,维基百科的“中立”并不是说它的条目已经没有偏差了,相反,条目的偏差永远都不可能避免。“中立”也不是说我们在各种互异观点之下取一个中间观点。这里的“中立”是指公平包容各方不同的观点,而不去判断各方观点的正误,把评判的工作交给读者自己去做。同时,“中立”也是一种过程,一种永远敞开、没有完结的、本着互敬精神和公平原则的对话。

围绕“中立的观点”还有一些有趣的小论点:

  • 我们应该试图刻画争辩,而不是自己参与争辩。
  • 不是“科学的观点”,而是“中立的观点”?
  • 为敌人写作


维基入门(二):善意与友爱

By Mountain • Apr 6th, 2008 • Category: 維基計划

上一篇讲到维基百科是热爱知识者的乐园,这一篇接着讲维基社群存在的基石和一些行为的准则。我不打算在这个入门系列里介绍各种编辑的规则和技巧,而主要介绍社群文化方面。因为正是维基百科的社群文化才是它对国人最有价值的部分。

任何新来者都会有一个疑问—任何人都可以编辑,这不就乱套了吗?实际上,所有语言的维基百科已经积累到1000万篇条目了,许多条目的质量也可以大英百科全书媲美。为什么没有乱套呢?除了一些维持社群运作秩序的规则之外,说到底,还是因为参与这个计划的大多数人都是在善意的修改。这就是“善意推定”(Assume Good Faith)这一项指引要说的。

“既然我们允许任何人编辑,这必然蕴涵着:我们假定大多数进行编辑的人都是在帮助这个计划,而不是伤害这个计划。如果不是这样的话,象维基百科这样的计划从一开始就会失败。”

本着善意才可能有效的展开合作(包括和异己者的合作,也就是中立观点的政策),甚至我们可以达到维基友爱的境界。

“大家来到这里都是为了一个共同目的:我们热衷于积累、整理、组织我们的知识,并以空前规模的百科全书的形式,将这些知识自由地提供给大众。维基百科不只是一个普通论坛,它是用来叙述、累积我们所知的一切的一项工程。如果我们谨记“热爱知识”这一目的;如果我们竭尽所能尽量达至中立的观点;如果我们试图真正理解对方所说的话;那么,我们就可以达到维基友爱的境界。”

我们的理想是善意、友爱,然而实际上这是一个充满冲突的世界,下面计划介绍编辑战、中立原则、共识与投票、争议的解决和维基上不同理念的冲突。



维基入门(一):乐知者的大熔炉

By Mountain • Apr 4th, 2008 • Category: 維基計划

今天下午许多地方报告可以访问中文维基百科了,虽然我仍有些怀疑解封究竟能持续多久,但仍然多了一丝热情,于是准备写一些小文章来介绍维基百科。

为什么参与维基百科?有什么样的乐趣呢?最简单的说就是乐于求知、喜欢分享,见识持有不同观点的人并与之合作。

先让我们看看维基上几个好写手的个人页面:

User:Lecter
参观一下他的客厅、画廊、书房,看看他翻译的条目

User:SElephant
看看这位来自台湾卖酒人多姿多彩的生活和渊博的知识

User:Mhss
一位信仰佛教的程序员如何几年如一日翻译大量理论文章

还有很多很多……

可以看得出来,维基百科的贡献者都是热爱知识的人。我们在维基百科为了一个目标而工作——“让全世界的人都可以自由的获取人类全部的知识。”

你有知道港台人如何理解“封建社会”吗?台湾的朋友也逐渐了解到“白色恐怖”这个词在现代汉语里真正的渊源。等等……

原本彼此遥远,互相只有一个刻板的印象,可当你和活生生的人交流并成为朋友,你会发现好多事情都不一样啦。

维基百科是一个熔炉,不同观点在这里碰撞、融合。



links for 2008-03-05

By Mountain • Mar 6th, 2008 • Category: 網路書簽


links for 2008-03-04

By Mountain • Mar 5th, 2008 • Category: 網路書簽


links for 2008-03-03

By Mountain • Mar 4th, 2008 • Category: 網路書簽