用nginx给ghs做了个反向代理

nslookup

有段时间没有关注Google App Engine,最近发现对GAE至关重要的ghs.google.com又被功夫网了,因此自己的那个vxtodo(地址是vxtodo.ihfs.net)也无法访问了……唉。不管怎样,决定开始寻找一个一劳永逸的方法,免得经常去修改vxtodo.ihfs.net的CNAME,太麻烦了。

google一番之后,发现一个也是在VPS(并且还是邻居,都运行在rashost的服务上)用nginx的负载均衡给ghs.google.com做反向代理的方法,地址是:http://www.littz.cn/viewnews-340.html,研究之后觉得可行,因此马上给自己的nginx配置了起来,下面是我自己的配置:

Read the rest of this entry >>

Google App Engine中datastore的Key

google_appengine

Google App Engine使用了一种与关系数据库完全不同的数据库,称为分布式键-值数据库(Key-Value-Database),所有的”条目”,都是一个对象。这种数据库拥有代码简单,开发效率高,高并发访问效率等特性,但同时也有不支持模糊查询等缺点。

在使用上,键-值数据库和之前熟悉的MySQL等所有的关系数据库都有点不太一样,因此在开发vxtodo时走了一些弯路,比如这个等同于关系数据库的”主键”的问题就让我奇怪了很久(当然,对于这种的键-值数据库中,是否能以主键来称呼应该值得商榷),刚才终于摸索清楚了,记录下来。

Google App Engine的datastore的每个条目的唯一的键是自动生成的,无需人工干预。因为一开始并不清楚这一点,所以定义”表”的结构时找不到类似于自动索引的功能,结果开始写vxtodo时我用的是时间戳 + 用户名邮箱地址然后Hash再取绝对值出来的一个唯一值的诡异方法,虽然也能用,但是毕竟不够优雅(这样的Hash值实在是太长了)。仔细翻阅文档后,终于把ID/Name部分给看明白了。

Read the rest of this entry >>

vxtodo

vxtodo

这段时间研究Google App Engine的成果,今天发布。

一个个人TODO-List管理程序,支持邮件提醒。

服务器端是Python,客户端自然还是 HTML + CSS + JS,话说Javascript的代码比Python还多一倍,没jQuery的话代码量应该会更加冗长……不过用Google App Engine来写程序还是挺幸福的。

欢迎各位使用(会有人用么?),以及帮忙测试和报告Bug

在GPL第二版协议下开源。

地址:
http://vxtodo.ihfs.net/
http://vxtodo.appspot.com/

获取源代码前往:
http://code.google.com/p/vxtodo/

PS.I: google app engine还无法支持.cn域名,因此只好用这个ihfs.net来进行绑定了……
PS.II: 话说appspot偶尔会被GFW掉,无奈……
PS.III: 于是咱也玩了把云计算了啊~

更新@2009-05-14:

  1. 修正了无法输入\和回车的bug
  2. 加入Prism的说明
  3. 制作了LOGO

更新@2009-05-15:

  1. 修改了数据模型,删除了一些无用的测试数据(没办法的选择,这种键-值数据库无法修改“表结构”,只能清空数据库然后重新添加

更新@2009-05-17:

  1. 对状态图标加上了事件,点击可以直接转换状态
  2. 将代码导入Google Code,以GPLv2开源

更新@2010-01-17:

  1. 解决一个换行的问题