Recently in Projects Category

CheckNerds Labs 开源项目正式上线

| No Comments
2008年7月19日,CheckNerds 写下了最初的代码。而在接下来的这一年里,CheckNerds 从一个还仅存在于我头脑概念中的网站,到有千余注册用户的小型站点,算是迈出了第一步。

而如何将这样一个带有强烈个人色彩的项目,成为自己期望中的"更好的工具",是我在这么长的时间以来,始终在思考的一件事情。

在这期间,我进行了无数的尝试与改进。其中,包括那些被大家所熟知的如针对移动设备(手机iPhone/iPod)的版本。但同时有着更多不为人知的改进,他们大多数止步于萌芽阶段,而止步的原因或是由于实际的理念于CheckNerds 当前的发展并不完全相符,或者完全是由于Google App Engine 所造成的技术限制等。甚至还有若干已经动手实施,并最终止步于半途的项目。固然惋惜,但却也在无数的尝试和思考中,对于自己要做一个什么样的产品,前所未有地清晰、明确起来。

CheckNerds 正在进行的方向,仍如同我最初设想的那样简单,以至于用如下几点就可以概括:

  • 下一步目标,技术结构上,不是做到最大,而是再尽力做"小";
  • 如何让更多的人在上面花费更"少"的时间;
  • 这种工具没有最"好",如何再度巩固和突出特色,并且做得更好,"一个更好的工具"

2009年6月在Google 开发者日大会上的介绍进行完以后,根据当时自己总结的方向和计划,我立即开始着手于 CheckNerds 开放API 的工作上面。

第一步开放的 API 已经于 6 月 25 日正式上线。前期公开的可调用功能还比较简单,这些会逐步进行完善。欢迎持续关注 http://www.checknerds.com/docs/api/function

API 将是CheckNerds 作为 "一个更好的工具" 中非常重要的一环。在建设 API 的工作以外,如何更好的让开发者和用户使用API ,同样是非常重要的工作。于是 CheckNerds Labs 项目作为我在这个方面的尝试,正式启动。

CheckNerds Labs 为 基于 CheckNerds API 构建的一些辅助工具,旨在帮助用户更好、更便捷地访问和使用 CheckNerds。这些工具的源代码完全开放,您可以从 Google Code 的开发站点下载。同时欢迎广大用户参与改进!关于如何申请应用程序API权限、或想把自己写的基于CheckNerds API的小程序加入到项目中这样的相关问题,欢迎各位感兴趣的开发者直接和我联系,期待你们的反馈。

目前 Labs 中包含的工具有:
    amboy.py 导出用户所有 CheckNerds 事项的 Python 命令行脚本,用户资料导出,让用户完全掌握自己的信息。
    
未来计划会包含的其它内容:
    CheckNerds Python Binding Library
    CheckNerds GUI - Based on wxPython 
    CheckNerds 完整版 API 调用文档
    等等其它,可以实现的应用有太多,唯一的限制是大家的想象力

目前这个项目需要完善的文档工作还有很多,欢迎大家关注 Google Code上面的项目主页,所需文档和使用方式我会随时进行更新。代码在近期会放出snapshot下载,同时也欢迎大家使用mercurial直接从Google Code 项目站点下载最新的开发版本。(命令 hg clone https://checknerds-labs.googlecode.com/hg/ checknerds-labs )

总的来说,这部分的开放为 CheckNerds 实现Web以外的其它目标提供了更多的方式和可能,用户从此可以不仅是使用者,也可以是参与者。作为项目发起者,心里都会淡淡地希望可以瞬间有不少开发者能够关注这些代码,显然这非常不容易;而自己目前的想法实际上只是更加单纯:不管未来是一个人还是十个人维护这些代码,这个项目的开始意味着自己认真进行的一个项目从此可以更及时和透明地展现给整个世界,还有什么比这个更重要的呢?

shootGFW: 一个使用PyGame开发的小游戏

| 2 Comments


shootGFW: 一个使用PyGame开发的小游戏。源码已经依据GPL协议公开,Google Code 项目主页: http://code.google.com/p/shootgfw/

这个游戏的灵感来源于HelloTee的breakGFWTee(图片), 自从一看到这个图案就想要实现这个好玩的创意。

起先打算自己使用PyGame从底层开始来写,后来决定采用更加快捷的方法。上网搜寻了几个类似的游戏源码,直接在上面实现这个创意。

原版的创意是打砖块,后来觉得用Space Invader(俗称小蜜蜂)的游戏方式可能会更加过瘾。

本游戏的源码改自
Python Space Invader
2004/08/16
Jim E. Brooks
http://www.jimbrooks.org/python/pyspaceinvaders/
这个源码采用GPL授权,如果对原版有兴趣请到上述网站下载。

写shootGFW的过程中,发现PyGame是一个可以快速实现心中构想的游戏开发框架。整个程序开始修改到现在公开的版本大致用了4个多小时,大约是两个晚上下班回家后的时间完成的。当然我做的修改只是非常小的一部分,可即使是原版部分原作者也谈到是在非常短的时间里完成的。在工作之余可以快速完成一个轻松的小东西,很惬意。

具体的操作方法是:

Z,X,左右箭头控制移动
左右Ctrl键开火
Space: 特技1
C: 特技2

安装方法:

Ubuntu 及其他 *nix 系统

首先需要安装 PyGame (Python在大多数系统上已默认安装,就不再做特殊说明)
开启终端执行 sudo apt-get install python-pygame
http://code.google.com/p/shootgfw/downloads/list 下载程序(或者通过mercurial 从 Google Code 里面 clone 最新的代码)
使用 python 执行 pyspaceinvaders.py 这个脚本 : python pyspaceinvaders.py 即可开始游戏!

Windows

首先需要到python.org 上面下载python 的Windows 安装包 (Windows 下推荐安装 Python 2.5, 安装包链接)
然后到pygame.org ,下载对应Python相应版本的PyGame安装包 (Python 2.5安装包链接)
http://code.google.com/p/shootgfw/downloads/list 下载程序(或者通过mercurial 从 Google Code 里面 clone 最新的代码)
使用 python 执行 pyspaceinvaders.py 这个脚本 : 即打开解压好的程序文件夹,双击 pyspaceinvaders.py 即可开始游戏!(如不能执行可能需要重启电脑)

本来考虑为了方便Windows的用户也可以方便地爽到这款游戏,我想要通过py2exe编译一个Windows版本。谁知屡次尝试均告失败。目前只好麻烦一些了

此游戏源码遵照GPL协议开源。对此程序有兴趣,希望自己亲自做些修改的朋友,请到Google Code 的项目上,参与这个项目(此项目使用Mercurial版本管理系统)

不过想对这个游戏的提一些指导意见,希望各位未来的贡献者们能够认同:
  • 此游戏主旨在于娱乐以及PyGame学习交流,请不要在游戏中夹杂各种与政治、时事等相关观点    
  • 游戏中不出现任何中文文字
  • 尊重各位贡献者的署名权

最后祝大家玩得开心,Have Fun!

Getting Real 中文版

| 2 Comments
很早就听说过 Getting Real 这本书,但是开始认真阅读却是在启动自己的个人项目之后。赫然发现自己在项目中采取的一些原则和方法,原来早有类似的理论支持。当然,Getting Real 的理论更实际、也更加全面,毕竟是真正的经验之谈。此后这本书就成为了我时常阅读的材料之一。

刚开始翻阅 Getting Real 中文版的时候,发现它并没有翻译完整。而英文部分非常简单,也就没怎么在意。最近由于想要整理一些想法和知识,再次翻出Getting Real 这本书,突然觉得想为这本书做些什么。想到虽然官方的未完成版中文翻译阅读起来也没有太大的问题。但作为一个翻译版本,没有翻译完整总是让人感到遗憾。于是在网上寻找是否有未完成的中文部分的工作项目。发现了两个项目,其中一个架设在Google Groups的项目很久没有更新。而译言上关于这本书的项目却十分出色,翻译工作更是已几近完成。只是不知为什么没有能够最终进行修订、和已有的中文翻译整合。于是决定自己来做这项工作

事实上这并不是一个非常复杂的工作,剩下的翻译工作已经很少,而修订工作需要的,更多的是耐心和专注。主要修订一些明显需要优化的地方,如将"《一个实用编程者》"这样的翻译,改为大家认可度更高的"《程序员修炼之道》"等。

而目前我最关注的还是版权问题。由于这本书并不是CC授权,所以用Wiki这种形式来进行翻译及校对工作并不适宜。这个中文版本中原有翻译者的署名会保留,同时他们的工作会在文档中进行详细的描述(见中文版最后的"整合中文版编后"段落)。而经由我以及未来可能由更多参与者所做的一些修订也会尽力详细列出。未来在整个翻译、校对工作进行到一个比较好的阶段的时候,我会开始联系37signals,尝试把这个工作作为最终的官方中文版发布。

在最近和朋友们的一些讨论中,我再次感觉到了让更多的人了解Getting Real的必要。有太多的Web活软件项目正在变得非常庞大,以至于他们被无数的小特性冲晕了头脑,使得把握一个产品最核心的方向这样本质的行为几乎变成了不可能。我觉得Getting Real里讲述到的一些东西,非常适合一些大公司用来作一些思考:为什么更大的机构在很多时候没有更高的效率?为什么他们的产品会被小公司打得落花流水?如何唤回他们曾经是小团队时的战斗力?很多此书中的观点,更像是在经历了软件和Web项目无比复杂化之后,一种清新的思想回归。得以让人们重新发现,在他们没有宽敞的办公室之前,那些满腹理想的小团队时期真正宝贵的核心竞争力所在。

点此查看完整的 Getting Real 中文版,对这个项目有任何的意见或建议,欢迎与我联系。

CheckNerds iPhone/iPod Touch 版本发布

| No Comments


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会变得更好。

CheckNerds Mobile,随时管理个人事项

| No Comments



在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 同我联系

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

tarsusa r6 发布说明

| No Comments
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 - 第一次发布

Sparkle

| No Comments
终于基本实现了我一直以来十分需要的,一个可以帮助自己记忆单词的软件。

Sparkle

web端服务使用Karrigell,数据库使用Karrigell内置的buzhug数据库

screenshot of sparkle

我需要这个工具的原因,是因为我一直以来是一个忠实的《词汇大爆炸》用户(该软件已经停止开发),自从2004年以来已经累计使用它背了几百个小时的单词,从中获益菲浅。可以说《词汇大爆炸》是使用ubuntu之后,要使用Windows的唯一理由。

我曾经的计划是做一个《词汇大爆炸》的clone,发现自己水平可能比较难做到。在这种类别的开源软件里面,我还没有找到比较像《词汇大爆炸》这样的(惭愧,还没有用过黑客背单词)。后来觉得只要有一个可以基本帮助自己背不熟悉的单词的东西也就可以满足了。于是在开发tarsusa的同时,这个东西其实已经在着手准备,只是自己一直都没有下定决心一口气做出来。

前 一阵想把台式机上面许久不用的Windows重新安装一下,没想到安装过程中CPU过热会导致频繁关机,并且由于安装程序重写了主引导区,我还需要费时恢 复GRUB...... 这促成了我和Windows说拜拜并且写完sparkle的原因。具体到架构如何实现、使用什么界面形式这些问题在我脑海中已经构想了许久,所以大约两个 晚上就写了出来。

sparkle总体的结构:一个单词数据库记录平时遇到的不认识的单词(我已经积攒了一段时间了),然后像词汇大爆炸那 样,依据用户对单词的熟悉程度,随机抽取单词和解释,由用户进行选择形式的做答,用户较熟悉的单词会较少出现,不熟悉的单词会经常出现,以此达到学习的目 的。

当然这个程序还远没有《词汇大爆炸》那种规模,没有应用艾宾浩斯记忆曲线原理,也没有针对用户行为的、更细致的词义混淆等等,还只是 一个简单的小程序。目前通过web界面来实现,但事实上并不局限于web界面,实际上任何连入网络能够执行Python程序的平台都有可能实现。比如可以 执行Xbox Media Center的破解版Xbox,甚至是Symbian S60 Smartphone。我希望能够有时间、有精力、有技术来实现以上那些功能。

去年的这个时候,也是使用同样的工具完成了自己需要的日程管理软件tarsusa,若问我用最好的语言Python完成这些简单的工具是什么感觉,那只有简单的一个字,爽。

参考阅读:
    《tarsusa Release RC》