Archive for the ‘未分类’ Category

程序员的优势和劣势

Monday, February 8th, 2010

有段著名的对话:

男:我是程序员。 女:哦,程先生,你好。 男:哈,客气了,叫我序员就好。

现实中的程先生多种多样,如果不去考虑程序员、工程师、架构师等不同的title到底有什么区别,作为通过计算机语言与机器打交道的人群,至少有很多共同的特征。

程序员比其他行业有一个天然的优势,就是自己几乎可以随心所欲的创造出工具来帮助自己,从而大大提升工作效率。这一点在许多传统行业中是完全不可能的,比如:一名建筑工程师,他如果想随心所欲地马上着手创造一把符合他手头工作的锤子,则并不太容易。这种效率提升的前提,是可以将重复手动劳动的自动化。就像一个本来要挖20米深地基的工人,忽然变出10个机器人代替他挖,而他只需要在旁边小屋透过玻璃窗眯着眼睛喝咖啡一样。所以,利用好这个优势后,优秀的程序员可以将效率提升至少一个数量级。

程序员还有一个天然的优势,他的学习成本和创造成本都比较低。首先,技术水平的提升是不依赖复杂昂贵的专有设备和密集的人员的,他需要的只是电脑和网线。其次,创造成本中,除了时间之外,材料成本完全电子化,知识和创意通过代码体现在二进制中。而更不错的事情是:创造出的东西在世界范围内都是可以重用的,可以基于大量经过他人完善测试的库来避免自己的重复劳动。所以,利用好这个优势,在于勤于动手去尝试去做,整理好可以重用的通用库,然后在需要的时候毫不吝啬地将自己的想法实现。

不过,也有劣势

程序员的世界是理想化的,不存在非逻辑的干扰因素。如果已经设计出一套完美的逻辑去做一件事,无论做多少遍,也不会出现无法处理的僵局。所以程序员希望这个世界井然有序,每个实体像系统中的各个模块一样各司其职、准确而高效地交互。而现实中,绝大多数钱能解决的问题不是问题,绝大多数技术能解决的问题也不是问题。

阮一峰在翻译《More Joel on Software》时写的blog(鉴于他的blog内容太敢说真话,如果访问不了请自己想办法),也提到了原作中的一句话:

许许多多的人选择编程,首要的原因就是,他们宁愿将自己的时间花在一个公平有序的地方,一个严格的能者上庸者下的地方,一个只要你是对的就能赢得任何争论的地方。

是。有人会在旁边冷笑,并可能说出类似 “Too Simple, Sometimes Naive” 这样的江湖名句。某种意义上,我并不是个纯粹的理想主义者,但我还是有些偏执地要说:可编程的世界,就是程序员自己构架的理想国。

表演类艺术与创作类艺术

Friday, January 22nd, 2010

最近半年有些事情,让我试图去探索和理解“表演”与“创作”这两类艺术类别的共同点和差异点。

或许这对一个以用计算机语言编写程序作为职业的人来说,有些生僻。但对一个喜欢古典音乐,从5岁开始练习小提琴,业余时间参加了10年交响乐排练和演出的业余小提琴手来说,这个问题在促使我去思考学生生涯那么多 年,这门作为表演类艺术的业余爱好,到底带给了我什么,并使我擅长做什么,布擅长做什么?

于是我先考察了艺术(Art) 的具体定义。在我理解中是一个相对广义的概念,和传统意义上的美术来说,是一个更 general 的定义。参考 wikipedia上的艺术词条如下(适当翻译成简体中文习惯):

艺术是由所有具有智能思考能力的动物,以通过各种 形式及工具用以表达其情感与意识形态,所产生的形态泛称。

为了让事情明朗一些,我列举了一些我能想到的典型的艺术活 动,并试图用表达载体来分类。举一些例子:

  • 文字
    • 文学创作
    • 剧本
    • 作词
  • 声音
    • 作曲
    • 声乐
    • 器乐演奏
  • 图像
    • 摄影
    • 绘画
    • 平面设计
  • 物体
    • 时装
    • 雕塑、雕刻
    • 建筑
    • 室内装潢
  • 影像
    • 动画制作
    • 电影导演
    • 电影演员
  • 舞台
    • 舞蹈
    • 相声
    • 戏剧
    • 指挥

看完之后,我发现大部分的艺术活动,都是和“创作”紧密相关的。而只有少数是和“表演”紧密相关的,比如:

  • 声乐
  • 舞蹈
  • 相声
  • 戏剧
  • 指挥
  • 电影演员
  • 器乐演奏

我将他们分为表演类的标准是,通常这类活动有一个范本,有类似观众一样的表演受众。表演者在尊重范本的基础上,融合自己的理解产生某种艺术感染力, 通过再现范本来表达给受众。比如:

  • 一位小提琴演奏家需要理解某部作品中作曲家的意思,按照乐谱演奏作品。
  • 电影演员需要读懂剧本,扮演一个虚拟的角色。

再看看创作类的艺术活动。我理解为:在遵循一些公认创作原则的基础上,从无到有地表达创作者希望传达地内容,并无范本可以参照。通俗的说,我觉得这类艺术需要一种 sense,需要一种没有其他参照的巧妙的表达。比如:

  • 王小波写一部小说
  • 贝多芬写一首钢琴奏鸣曲
  • 凡高画一幅抽象画
  • 乔布斯和他的团队带给大家 iPhone 出色的工业设计和用户界面设计

好吧,现在我的问题是:

  • 一个从事表演类艺术的人,转而从事另一种表演类艺术时,是否更加容易?
  • 而如果转而从事另一种创作类艺术时,是否变的困难?
  • 或者本身如此分类和思考就不合适?

思考这个问题的同时,我也对在比较 general 层次上艺术与设计的区别,也产生了兴趣。有机会可以继续写一写。

为wikipedia捐助

Monday, December 28th, 2009

Wikimedia Foundation Logo踩着2009年的尾巴,跑到wikipedia的捐助页面,用信用卡刷了$20。这个想法由来已久,几个月前注意到开始这个捐助项目时,这个总金额750万美元的项目募集了不到三分之一,当时就动了捐助的念头。最近看到时已经到660万美元了,在这个不是太顺利的一年快要走完的时候,我希望完成这个心愿。

说到捐助的原因,其实很直接。维基百科是让我觉得对我帮助最大的几个网站之一。基于非盈利非商业的前提下,维持服务器、机房等费用的来源只有捐助。所以捐助一笔也是我应该做的回报方式。同时,维基百科在促进全世界信息知识的流通和共享方面发挥了不可替代的作用,而促进信息的流动分享,也是我一直以来的理想。

这个链接是维基百科创始人关于捐助的公开信。如果平日因为维基百科而受益,并且有意贡献,或者只是对这个事情感兴趣,请猛击:
http://wikimediafoundation.org/wiki/Appeal2/zh-hant

捐助的支付方面,可以用信用卡 或者 Paypal。国内普通的双币信用卡,支付美元即可(我没有试过支付港币),我用的招行的。

ps. 支付的时候有一个页面可能是因为墙或者碰巧其他什么网络故障,结果页访问不到。于是我再提交了一次,最终捐助了两份$20(这倒不是个杯具)。大家捐助时遇到结果页无法访问的话,可以先等一等信用卡支付成功的短信,我这里大概延迟几分钟收到。

linode的VPS主机

Saturday, September 5th, 2009

这个blog是架在 VPS(wiki)主机商 linode.com那里的。

VPS基于虚拟机,相当于提供了完整的root ssh访问权限,和操作一台普通的Linux服务器没有区别,适合和我一样愿意折腾的同学们。

当初购买价格是360MB内存,$19.99/month。和朋友一起买的,一个人买有点贵。初步使用感觉主要还是内存有些不够用,尤其是平时用主流Web Server习惯了,很少考虑内存问题。但实际观察了一下,一个apache进程启动后占5MB,一旦有一次访问,加载了mod_php之后就跳到二三十MB。apache自己prefork几个进程,就吃掉一大块内存。至于硬盘和流量,暂时还不是瓶颈。

目前有口碑的两家VPS主机商是 linode.comslicehost.com,当时买的时候比较了一下,slicehost单价更贵,于是选了linode。

这是一个技术blog

Saturday, September 5th, 2009

从06年工作之后,就基本暂停了技术blog的写作,更多的是忙于工作上的事。写这个blog是希望积累知识,也是督促自己整理。

主题范围主要是LAMP平台下的各种后端技术(性能、架构、存储等)。