2009年04月03日

CheckNerds 个人事项管理网站,使用Google App Engine技术打造。今天,CheckNerds的 iPhone/iPod Touch移动Web版本正式发布!

现在您就可以使用自己手中的移动设备,打开移动版Safari浏览器,访问 http://www.checknerds.com/m 即可体验特别为移动版Safari浏览器优化的、适合触摸屏操作的界面

在大尺寸触摸屏上规划您的事项,立即开始吧!

———-

CheckNerds发布伊始,那诸多个夜晚的时间就都放在了这个浅绿色调的网站上。从网站最初的发布、到近乎每隔一阵就会有的改进、手机移动版本的发布 、到现在iPhone/iPod Touch版本的发布,这些我创造并且经历其中的过程,实在是充实了自己很多,不管是Python,GAE相关的东西,还是UE、UI乃至如何让网站的受众群扩展到另一个圈子,在整个过程中,这些都是那些每天让我欣喜的小小里程碑。用户的鼓励以及朋友们的支持则给了我更大的信心,让我致力于把这个曾经只是我的小小想法的网站,变成实现、激励更多人想法的平台。

下一步,又会是一个新的开始。接触的东西多了,就会发现自己欠缺的永远更多。一些标准化和规范化的技术及方法,在日后熟悉之后,会逐渐运用到这个项目之中。同时,现有的UI还只是当初那个小型想法的本来面貌,在体验了很多成功的、失败的设计,脑海中勾画出无数次原型之后,我想,快到了展示一个新面貌的时间了。而让CheckNerds 通过接口或其他的一些方法来扩展到更为广阔的领域,是我始终努力的方向……

需要感谢的朋友很多,请原谅我在这里无法一一列举,但我还是要感谢所有CheckNerds的注册用户们,并请你们期待CheckNerds会变得更好。

2009年03月14日

本次的OpenParty “有狐”活动是以Mozilla的内容为核心,同时继续保持OpenParty传统的话题分享方式。这是我第二次参与OpenParty的活动,也是我第一次在这里进行话题分享。

来自雅虎中国的一位朋友在这次的OpenParty上展示了一个让我十分震撼的应用案例:将Firefox这款大家几乎每天都在使用的客户端软件,运用在生产环境中的服务器上面变成集群,以实现大规模搜索引擎对于抓取后数据的分析。完全应用Firefox对于抓取到的Web界面进行解析(事实上可以说是利用了Gecko),同时在这个过程中,应用不少统计学、以及数学的相关概念,来实现对Web页面的认知工作。

难能可贵的是对于并不怎么深入了解搜索引擎相关技术的我来说,这个实现过程其实很好理解。但是在理解这个过程的同时,我不禁发出赞叹。很多我们平时没能注意的问题,使用数学进行总结,实际上非常清晰直观:如,Web页面中划分区域,其中宽度大于高度,并且高出很多倍的区域,必然是导航条一类的部分,而不可能是正文。然后利用一些统计学的原理去总结,就可以得到我们想要的数据。而且整套工具所使用的软件,如Firefox,以及特别为搜索引擎抓取任务所定制的Firefox Extensions, 在这里的应用堪称巧妙。这种将同一软件应用到不同领域的方式,可以很好地激励大家发散思维。

技术方面我就不太多叙述了,难免班门弄斧。大家可到 http://agentzh.org/ ,分享话题的这位朋友的Blog来查看整个详情。另外他的Blog完全是用Javascript生成的。

—-

我带到OpenParty上面进行分享的话题,是对于Bugzilla,这个缺陷追踪系统的定制化上自己进行的一些研究。事实上,自己由于工作的需要,从去年12月开始接触Bugzilla这个开源项目,其间对于这个软件的部署、修改、本地化应用有了不少的体会。正好借这个机会进行一番总结。

整个演示通过展示一个对于Bugzilla系统的,超过它原有适用的领域及应用形式的定制化修改。以此来向大家展示这个系统在定制化方面的潜力, 并希望籍此给更多的希望在更多领域应用开源软件的朋友以启迪,从而对于帮助大家将已有的开源软件产品通过一定的定制化,快速融入所需的应用环境中。事实上我要描述的,也是将一个在已知领域的软件,放入其它应用领域里的例子,只是没有Firefox集群那位朋友的技术那般高深。

我对总体的结果十分高兴和欣慰的,因为这个并不是特别技术的展示可能对于专业的技术人员来说并不是特别吸引人。但还是有不少朋友很捧场,完成了一次很好的交流。感谢那些的朋友,更希望我的这点分享能够对你们有所启发。总的来说不妄我费了很多时间来准备这个Slides了。

演示Slides请查看:http://docs.google.com/Presentation?id=ajgc2xkd4rgc_24fthmz2cn

—-

下次或再下一次的OpenParty上面,我会针对Google App Engine开发、以及自己的CheckNerds项目来进行一个专题。我会重点讲述Google App Engine 比较高级方面的内容。在对于GAE简单的概述同时,我会讲一下框架的选择、如何打破GAE的限制,以及什么样的应用目前在GAE上面无法实现。同时对于CheckNerds这个网站的架构做出一些讲解,相信这其中架构这方面的知识也会帮助到很多对于Web2.0网站架构感兴趣的朋友

今年,我预计会在信息分享上花费相当的时间。接下来的时间里,我还会陆续对于我较有经验的几个领域进行一些技术分享,如Google App Engine等,欢迎大家关注。通常我的演讲会在OpenParty 上进行,也欢迎大家到场来一起交流。

2008年12月31日

在2008年的最后一天,CheckNerds一个重要的新功能——CheckNerds移动版本上线。CheckNerds是一个社会化事项管理网站,基于Google App Engine技术打造,是整理、记录个人任务的绝佳选择。了解更多情况可查看这篇详细介绍

访问移动版本请使用移动设备上的浏览器进行访问,网址为 http://www.checknerds.com/m

在手机设备更新换代非常频繁,性能愈加强大的时代,移动互联网(或移动网络应用)的普及速度无比迅猛。移动设备给予网络应用的便捷,为这些应用能够进一步影响并改善生活提供了可能。CheckNerds移动版诞生之后,意味着建立或完成相关事项并不再只是坐在电脑前才能够完成的事情,在日常生活进行中管理和查看这些信息也成为了可能。这大大缩短了这个应用与用户实际需求之间的距离,对我来说,CheckNerds现在更为实用了。希望对你们来说也是这样。

目前我还没有对多种掌上设备进行测试,开发中测试使用的设备是一台RIM Blackberry 8310, 使用Opera Mini浏览器。如果不同的设备或浏览器在使用中出现任何问题,欢迎来信告知我。

我的邮箱即 我的英文id@gmail.com, 或通过Twitter: http://twitter.com/CNBorn 同我联系

感谢大家的支持与鼓励,这些真挚的话语是在那无数个夜晚使我坚持下去的动力之一。祝大家新年快乐!

2008年07月06日

(第一部分请参考《四年的回忆(一)》)

(二)

自己对于古典音乐的迷恋,完全是由于想要“特立独行”的这个俗套想法。从猎奇的心态开始听莫扎特的交响乐。没想到却一发不可收拾,走进了一个更广阔的世界。现在想来,从交响音乐入门,开始听古典音乐以及有两年多了,而这么长的时间以来,无数次地回响在耳畔的音乐,仍发现自己所努力了解、努力去吸收的,对古典音乐的认识总还是那么地少,而至的自己前进的空间又是那么的大,以至于自己设想中的,仅仅是把著名的、最需要了解的作曲家的交响曲部分了解的十分纯熟,也要花费比这几个年头更长的时间。不过这样的目标不但没有吓倒自己,反而激发了自己的一种想要了解的欲望,哪怕需要更多的时间,因为自己也深知,这样的美好的东西,是值得花费时间在这上面的。

听音乐,其实重点在于认识了许多伟大的心灵,想来比文字还能更加直面地面对一个人的内心世界的,只怕也只有音乐这一载体了。莫扎特、贝多芬、马勒近乎截然不同的风格,其实是截然不同的性格的流露,更是作曲家内心世界的直接表达。好的音乐,就是作曲家以他的方式叙述他自己的情感,同时以这种情感激发听众自身的感觉。

上学时还选修了交响音乐的课程,现在想来当时了解的还不够多,所以学习到和了解到的知识,受制于当时所能理解的小小范畴,也了解不多。也可能是正规的课堂教育和自己追求的东西也还是会有不小的偏差。自己后来跑去三联书店,陆陆续续地几乎买到了所有能买到的新的或旧的三联爱乐杂志,及其喜欢,从上面学到和了解到了非常多的东西。

鉴于自己还没有达到自己所能认为的,可以开始评论些古典音乐的层面上来,说一这里就先不多说了,或许以后会专门就古典音乐的入门谈谈自己的感受。

(此部分于较早前写成,更多信息不妨参考《莫扎特,莫扎特,莫扎特》 )

—-

Python与Linux

从1995年开始使用计算机,真正震撼到我的东西,其实并不太多。而那些真正震撼到我的,相信会持续影响以及改变日后的生活。Python和Linux就是这样的东西。


我仍旧记得自己初中和高中、买着当时创刊不久的程序员杂志,对着里面仅有20%有兴趣并且能看懂的内容一遍又一遍痴痴地看。但后来直到大学都发现Windows实在是令自己觉得无聊、曾经的激情似乎不知该放在什么地方、索然无味、千篇一律的软件和游戏不能激起自己怎样的兴趣,甚至找不到中学时虽然幼稚但是却满怀干劲写免费软件时的感觉。我一直觉得自己这段时间荒废了不少,幸好还有几个假期用词汇大爆炸背了不少的单词,弥补回来些。

05年的后半年开始,Ubuntu的名气越来越想,而自己始终没怎么接触过的Linux,全然变得美丽起来,勾起了我的兴趣。06年4月的考试过后,自己毅然安装了一次,而慢慢熟悉Linux以及开源软件之后的感觉,全然是非常震撼的,那种震撼是如此强烈,事实上那种感觉至今仍然萦绕在心头。

那是一种几乎从来没有遇到过的,不以什么功利性的目的为手段、而可说是仅仅以实现、满足、共同建设和奉献为目的,而发起和实现的庞大软件工程。集合了上万人的聪明才智、最终的成果面向所有人类开放、自由共享。这是对小小年纪就对版权有所了解,并且只接触过商业软件模式的我的极大震撼。

有趣的是,我大学期间的第一份工作,是在一个面向海外的Shareware专营网站,处理并搜集海量的Shareware信息。一开始猎奇的新鲜感很快就被枯燥重复无效率的操作方式所淹没,于是当时还在用Windows的我用了几个晚上,写出个Windows程序,把一切可以自动化完成的工作,都交由电脑处理,节约了三分之二的时间和劳动。这份SOHO的工作做了一年,期间那个网站的后台变化了好几次,我这里的工具也相应变化了几次,而在用Ubuntu的时候已经惊奇地发现,Linux下看似简单的工具,通过巧妙组合,可轻易完成Windows下仍然需要复杂编程的工作。

在使用了几个月Ubuntu,以及对Linux有了比较多的了解的时候(图书馆堆着厚厚尘土的Linux书籍,我至少都借过一次,即使了解不深,感触也还是很深的),怀揣着对于没能在更早就了解Linux的些许遗憾,我又开始了自己Linux Dedicated Server 的构想。

(此部分未完待续,敬请关注下一部分)

2008年04月04日

    我的工作,本身和Python没有什么联系。很多工作都是那些整体工作的一个个细小环节。很高兴的是 ,完成这些工作的过程,还可以被细细玩味。在自己用过一些Geeky而又足以被称之为legendary的工具过后,对时间、效率以及其间那种过程的优雅就有了一种非常深入的体会。那种感觉很难被忘记,时刻存在于自己之中,并无时无刻不激励着自己在存在任何可能的情况下重现这种感觉。于是,我电脑中的几乎所有存在文档的项目都使用Bazaar进行管理;很多工作进行的关键项目,是一个.py文件,通过管道,加上uniq,sort一类的命令来生成自己想要的结果。

    我们本可以让生活更有效率,但在很多时间、过程的作用下,我们的工具却并不一定在朝着更有效率的方向前行。用Word修改毕业论文开题报告的格式的时间,要远远超过我把它写出来所用的40分钟,而那些字体、格式、每页不同的样式、参考文献的排列,在这样的工具中真的会称为一种噩梦,从而浪费掉无数的时间。我还没有使用过Tex,但我似乎能清晰地感觉的哦,Word这些所谓现代的工具带来的,与传统、经典的Unix哲学几乎完全向悖。它们拾起了一个一个的,华丽的小优点,却失去了原则,更谈不上哲学。

    工作的很多过程也是这样,很多时候朝思暮想所想要达到的结果,总认为应该有一种更复杂、先进的工具来完成。(或由于不了解,或缺乏认识──这不可避免,而选择用非常原始的方法来完成一件任务。)结果最后发现完成这一工作的,就是那些在30年前就已经被发明,在简洁的外表下蕴藏着无限的可能性的Unix小程序。这带给我的震撼可想而知,却也让我得以真正地发现并认识到生活的美好。这种激动让人感到无比幸福,而一想到还有太多太多这样的感觉有待去发掘和体会,这种幸福感就变得愈发强烈。Unix工具及其哲学、Python、绿野仙踪、D小调‘合唱’交响曲、马勒、格瓦拉的精神豆瓣,等等等等,很多时候在萦绕着自己,一想到这些,就会觉得激动人心的美,是存在并且会永远存在的。



2007年12月19日

tarsusa是一个非常简单的时间管理程序。使用它,您可以方便地管理所有您要完成的事情。无论是将杂乱的事项分门别类地整理,还是提醒您优先处理即将到期的任务,tarsusa都游刃有余。tarsusa可以提示您每天都必须完成的工作,并且记录每日您完成这些工作的情况。

这个程序是使用Python开发的localhost端Web应用程序。Web框架选择了Karrigell,一个纯Python的Web Framework,使用的数据库系统是Karrigell内部自带的buzhug数据库。

发布札记:
    在我笔记本中运行的tarsusa的记录里,r6版本来是定于2006年12月发布的。原本设想中的版本比现在发布的这个有更复杂的功能,但以“够用就好”这种准则的指导下,tarsusa的开发始终就处于极小的改进这种规模。这部分代码在我的硬盘上,基本上用电脑的日子都会使用,觉得缺少那个Feature实在是很麻烦的时候就加上。就这样过了一年,添加的代码不多,功能更像样些,经过我长时间试用的这些代码就摆在您面前。

关于更多更详尽的信息,您可以查阅 http://blog.donews.com/CNBorn关于tarsusa的文章 以及 tarsusa网站 以及 tarsusa的Google Code页面

下载:

截图:

如何安装与试用:

r6 功能更新:

  • 首页显示昨天完成每日任务的数量
  • 首页不再显示所有未完成的任务,而显示所有未完成的任务分类,点击相应分类查看相应的任务 – 避免首页显示过长
  • 在任务的详细页面中可以完成该项任务了
  • 在任务的详细页面中可以看到于此任务相关的其它任务的信息
  • 显示每个类别项目的数量在整个数据库中的百分比

已知问题:

  • 添加项目时尽量不要加入半角引号,会导致js脚本无法正常处理删除提示信息而无法删除项目

以往的发布:
    tarsusa r5 – 第一次发布

2007年09月21日

15日去清华大学参见了软件自由日活动。可惜的是由于我对清华大学不熟悉,一通乱跑到了会场之后已经是任何可以领取的纪念品都没有了。我十分想要大会主题“软件自由日”的袋子,很是可惜。不过好在拿到了Ubuntu 的Sticker,终于得以让我在电脑上炫耀一番了。(图片链接

演讲方面,只听了一部分演讲(红旗、Mozilla、OpenMoko、Mysql、康盛创想)。给我留下最深印象的还算是戴 志康,轻松、简短的演讲中,很多地方都能体现出一种成熟的特质,和普遍存在于大学中同年龄学子的迷茫面庞有非常鲜明的对比。Mysql的演讲也十分活跃, 互动性十足。美中不足的一点就是在这样的会议上,有一位演讲者使用了在我看来稍显偏激的演讲策略来普及开源知识(可能会引起荷尔蒙旺盛的学生的兴趣,但我 认为过激的宣传对开源只能造成伤害),并且看了下这个公司的产品和方向也是我认为十分没有意义的东西,辅以宣传材料上面陈列的中国式特色介绍,让我觉得十 分无趣,就没有听这个演讲。(不点名是哪个公司了。)

花了一些时间在下面的演示区域转悠,学到了不少东西。尤其是Debian部分有位大哥讲解十分热情和详实,学到了不少东西。同时我觉得这个会议如果能够把 交流也放在和演讲等同的地位就更好了(当然自己也没有参加过类似的自由软件活动,这领域也还不认识什么朋友),让大家有更多的交流空间,毕竟很多知识是要 靠交流来得以产生和发展的。

由于比较匆忙,也就没顾得上照相。希望下一届如果还是在清华大学举办,请在网站上放个清华大学地图的PDF下载才好。(希望这个地图的版权不是proprietary的)

参考阅读:
    《环境问题与开源》 

2007年09月14日

在法国文化中心看了《城市的可持续发展》这 个纪录片。起先并没有对这个片子的精彩程度保佑很大的期望,以为只是一个一般的介绍环保的片子而已。然而看过之后,大为赞叹。整部片子通过讲述各种新技术 在建筑中的运用以达到生态“可持续发展”的效果,期间穿插的演示、讲解既生动又令人赞叹,实为一部佳作。同时通过影片中对环境问题的相关思考和意见,自己 似乎觉得还可以延伸到接触、发展开源软件这个领域中。(我这里使用的“开源软件”这个词,其中也有“自由软件”及其相关概念。不愿在选词上过多纠缠,大家 能理解其意思是指:倡导软件使用、修改自由;源代码开放即可)

总体来说,使用开源软件和维持环境的可持续发展都是一件有益的事情,可持续发展保护了人类的生存环境,为下一代的生存提供了保障;而开放源代码软件则保障 了计算机用户的权力,开源软件的潮流可以有效遏制垄断,推动信息共享,促进科技发展。但他们目前的共同缺点都是成本高(目前的可持续发展建筑造价正在努力 向普通建筑靠拢,而开源软件虽然不存在售价问题,但是其相关的培训、运营以及综合成本也是其软肋之一)

在该纪录片的片尾,一位建筑设计师提到了当前可持续发展建筑物理念的普及还需要很大的努力,在很多的国家,“比如中国。”,他提到,可能还会有很多的工作 要做。我想这和开源软件在中国所面临的处境太相似了。在一个同样的领域,因为陈旧的观念以及短视的以成本为第一优先的原则蒙蔽了双眼,远远落后与别人,从 而针对未来的远见以及愿景也不可能有存在的基础,所有的一切都是成本与回报的简单公式在当前并且只限于当前的这个有限的短暂时间段中的演绎;更不要妄想能 够以这样的观念和行动来成为领导者,这是绝对不可能了。针对可持续发展环境进行能源优化的房屋应该是越来越多,我之前参与的翻译工作也有这方面的内容,会 了解一些。但可能是由于这个影片中介绍的科技水平实在是太尖端了吧,譬如从直接折射日光作为光源,以四层楼为一组变换结构以便通风、利用空气的大厦,以及 通过设置绿色植物缓冲区来实现通风、保温、空气净化等功能的大楼,都显得离我们的生活有些遥远。而从我对于我们所处的环境中对于类似问题的观察,发现我们 其实不只是从技术上,而是观念上就要落后一大截:能够通过有效的法规政策杜绝严重污染已经是我们做出的很有力的措施了。在这样的情况下,让我们想得更远、 做得更多的环保计划乃至尖端的产品也就无从谈起了。开源软件的问题上也是一样,当易用性差、学习成本高等自由软件的负面标签被贴上之后,似乎就很难被拿下 来。而对于软件开放、信息流通、知识共享等概念完全的不理解或是忽视,实际上造成了对传统商业模式专有软件的顺从。搞得现在一说起使用开源软件的人就是小 撮煽动性群体一样。实际上,所有理解开源理念的人,都围绕着一个共同的“善”来做事情:让大家了解除了专有软件以外我们有更便宜,更好的选择。就是要普及 这个观念,实际上,恰恰是普及这个观念的困难,才是最大的拦路虎。

简短地写上一些由感而发想到的,其实光看标题,这两个主体的关联性更多的是我生拉硬拽上去的,但我觉得至少从意识形态上来说,可以说明一些问题。

明天去参加北京自由软件日的活动。第一次参加这样的活动,很希望能够看到自由软件使用者逐渐壮大的人群,更希望能够和大家进行交流。

参考阅读:
    《关于为什么开源的理念

2007年08月18日

走在街上时想到,为什么自己的那些小程序要开源?那些小程序,本可以自己默默使用的,为什么要开源?

从个人的原因来讲,我想不外乎以下两点:

  • 展示,任何通过自己的努力所创造出来的东西,相信每个人都会有展示的愿望。
  • 分享,自己创造的好东西,也没有理由不分享给大家。

然而把自己所些的小软件开源,也让我有些莫名其妙的顾虑。它们的代码是不漂亮:变量名、函数名不漂亮;对于OO的不完全甚至可说是很糟糕的理解;甚至对于 所使用的编程语言的应用也比较生疏。这样不漂亮的代码,惭愧地觉得使之开源有些脸红。再者,众多开源项目的最主要的目的是为了团结有技术的程序员,使更多 的智慧可以通过组织,贡献给这个开源软件,使之进化。而不漂亮乃至丑陋的代码,好似天生就把这种进化的可能扼杀掉了。

听起来似乎有些消沉。但,开源从实质上,是有这样的一个终极理由的。那就是,开源是一种精神。或许自己的小程序本身并不能影响什么,但是这些“小程序”们 不也曾经是如今庞大复杂的开源软件的始祖么?即使自己的程序别人用不上、修改也麻烦,但是至少,开源的理念被传播了,人们知道了原来软件还可以是这样免 费、自由的。这就是对私有软件最沉重的打击,这才是(至少)让(计算机)世界变得更美好的一个有效方法。

Sparkle 会在完善些之后开源。

2007年08月11日

John Carmack 在Quake III发行之前说过:“如果Quake III的销量是我们以前产品最好销量的两倍,我将建立一个持久稳定的网上动作游戏世界。” (自《永远的雷神》 ,英文原文不可考)

八年之后,当年Quake III的引擎id Tech 3已经是GPL协议之下的开源软件,Quake III游戏本身则是一切其它竞技类FPS的标准。在QuakeCon 2007上,John公布了Quake Zero,即通过Web Browser启动的、广告赞助的、永久性免费在线Quake III世界。我突然就想到了文章开始的那句话。这个八年的承诺,着实非常有份量。id做的事情,为什么会有那么多人膜拜?因为这些都是非常伟大的事情,不 仅推动了游戏业的发展,而且惠及开源社区、计算机图形科技的进步。业界里,恐怕也只有id有这样的份量吧。

突然想起了大宇,显然现在的大宇已经不是我玩游戏那个时代的大宇了,但还是希望它一切都好。

参考阅读:
New Quake Games and More – About next Quake Games.
Quake Zero Coming to a Web Browser Near You – About Quake Zero