我有若干个记满了事情的本子。在度过的一个又一个24小时里,我会把我完成的较为有意义的事情以及想法都记录在上面。看着它们,我可以自豪地说我在近三四年来所度过的每一天都是连续而有意义的。这样在我日后想要回顾某些东西的时候,我可以清晰地看到那个轨迹,看到我所珍惜的时间没有轻易地被浪费。
大学四年里,我用了很长的几段时间来坚持一些简单的事情。我在寻求简单的实践辅以毅力,最终可以达到怎么样的效果?于是,跑步、背单词、听写训练、甚至是看电影、读书这样的项目,都曾出现在我“每日必做”的列表上,而每次将它们完成,在我心目中的意义,俨然就是对近24小时逝去时光的一种肯定,所以每一条这样的记录出现在本子上都会让我感到十分踏实。我承认这是一种十分Nerd的想法,从我意识到时间的宝贵开始,我就始终抱着对这种概念类似有些极端的痴迷。

06年,当我的世界观被开源软件和Python洗礼了之后,我就开始尝试使用Python来构建基于我的这种观念、可帮助我进行记录的工具。而这最终的成果就是当年发布的tarsusa。tarsusa的定位现在想来十分怪异:为了开始尝试我感兴趣的Web软件开发,我选用了不出名的Web开发框架和数据库(Karrigell+buzhug),搭建出了一款localhost的Web软件产品。而将这些笨拙的代码开源则是向从很多意义上感召了我的自由软件行动致敬。

在我的笔记本上一直运行着的原始tarsusa build记录了我太多的在那段时间里的印迹。每个“完美日”(tarsusa里对于完成所有任务的一天的称呼)对我而言,都是一个小小的里程碑

原始版本的功能少得可怜,但因为可以满足自己的需要就没有进行太多的改进。在发布的一年多以后,07年10月,我才把长久以来的一些更新打包成一个build,作为新版本继续发布。尽管是开源软件,但这个软件略有些奇怪的localhost形式,以及融入了我个人很多特色的风格,让它不太可能变成一个可在更大程度上被广为使用的软件。我只是希望在我自己使用它的同时,能有一些想要学习和使用Python的入门爱好者,能够从我那些并不漂亮的代码中看到一些可帮助他们快速入门的东西就好了。
但这个小软件还是做到了一些我之前没有想到的东西。我的一个好朋友告诉我,他从tarsusa中受到了一些启发,对他的开发和工作有些帮助;有用户就一些问题和我发信交流;Ubuntu论坛里的一位前辈题出了许多修改意见,并期待下一个版本…… 每一个这样的信息回馈都让我十分惊喜。(仿佛又回到了16岁时开始那个MP3搜索软件时的自己)而又让我有些内疚的是,我没有能及时更新tarsusa这个软件。

08年年中我购置了新的LCD Display,日常用的主力机器也因此由Joybook换成了庞大的台式机Omnine。那个tarsusa build也就闲置了一段时间没有使用。当我有一天再看到它时,我意识到是时候该用什么东西来更新它了。

继续为原来的包写新的Release? 我已经不想在原来不完美的架构上越走越远。全新的重建?我还没有过上线的、代码完全属于自己的Web项目,全新的tarsusa(肯定也不会再延续这个名字)相信是个好选择。平台?Python的选用毫无疑问;而基于零成本的考虑,App Engine在经过很多人的试水之后,无疑被认定是一个很好的选择。我对于App Engine的发现和了解很晚,不过带来的好处是在我开始研究时,已经有很多的文档可供学习。于是在七月中旬,项目正式开始。

进行开发的时间,是利用我每天下班之后的那几个小时和周末。进度时快时慢,GAE的限制也比想象中还要多。在10月份,终于完成了一个基本可以开始使用的版本。

CheckNerds,继承了我在tarsusa里面就融入的一些观念。作为一个在线的日程、计划管理网站,目前阶段的功能,可看作是一个tarsusa的多人、可交互版本。不必对概念进行过多的的担心,您大可简单地把日常要做的一个个项目打上“√ "。但如果您在某些事情上像我一样,有坚持完成它们并坚持记录下来的nerdness的话,恭喜您,您来对了地方!

这是我第一次接触MVC,Django,GAE,Ajax,成果还远不完善,但过程我却很享受。我真心地希望这个作品能像tarsusa一样,在服务我的同时也为别人做出些贡献。而日后这个项目的变化,我有着一些想法,而其中的一些需要时间去实现。我也很期待实现它们的过程和最终结果。
而关于这个项目开源的情况,我会在以后陆续发布,希望您能够继续关注!

CheckNerds: http://checknerds.appspot.com

tarsusa website: http://tarsusa.yiblog.com/cmsms/
tarsusa on Google Code: http://code.google.com/p/tarsusa/

关于tarsusa的相关文章请点击这里查看。

P.S. 能够在有一个生日来临前,Release一个阶段性成果,十分令人欣喜。
P.S. Oct 19th 在甘家口KFC 用笔手写完这一整篇文章实在有些辛苦!


10条评论

  1. 牛人

    已经订阅RSS

  2. 祝贺…

    继续关注

  3. 请问一下,可不可在GAE下创建不用GOOGLE ID也可以登录的apps..

    其实觉得GAE应该提供开发者选择,或者用户选择。

  4. @kay, 我想或许是可以的。很多高手都在想办法绕过GAE的一些限制,记得前几天在JavaEye上看到一个通过zipimport导入Django精简版的例子,这个都行得通的话,用户ID想来也不是什么问题了。关键在于session的处理(如果不用Django或Django本身的用户模块不能使用的话,)我不太熟悉,你可到英文的GAE Google Groups看看有关Session的帖子。

  5. @kay 在appengine中,有很多开源的项目在让AppEngine更加的完善,其中使用appengine_utilities可以很方便的支持session,使用appengine-patch可以完美的兼容django。你可以去这两个项目的googlecode主页上看看。

  6. Hi,能有单用户版多好哈?我也给我blog整一个。

  7. 原来这个是你的。以前见到过。

  8. 我把 http://www.checknerds.com/m 放到 fx 的 sidebar 里面来使用了,但是任意点哪一个链接都要不是直接在侧栏里面操作的,可否弄一个只在 sidebar 里操作的呢?买不起 iphone/itouch…

  9. 非常棒的产品喔!

  10. 大概的看了,觉得……

    Gmail Lab 里的 Tasks 就够用了吧?

发表评论

评论也有版权!