2010 8 20 02:15 PM 4169 次查看
分类:Python 标签:Python
众所周知,Twitter已经被GFW了,大陆屁民得翻墙才能访问。不过翻墙的开销肯定是大于不翻墙的,所以我这种懒人都是又空才翻墙的。
Twitter属于最高级别的关键字封锁+ip污染+ip封锁,但好在twitter的ip有很多,难免有几个漏网之鱼,于是可以用这篇文章介绍的网站来查询ip,并用ping来进行验证是否可用。
当找到可用ip时,就可以在hosts文件里写上“128.242.240.148 twitter.com”之类的设置,并直接用https://twitter.com/来访问twitter了(注意是https)。
2010 7 30 12:25 PM 3040 次查看
分类:Google Storage 标签:Google, Google Storage, Python
昨天看了一天Google Storage for Developers的文档,可惜被GSUtil Tool给拦住了。这玩意需要Linux环境,在Windows下则要Cygwin,可我用Cygwin运行时老提示Python打不开文件。
而根据Python Library文档,这玩意也需要GSUtil Tool,这让人情何以堪…
好在我翻了下源码,发现gsutil里面有个cloudreader文件夹,这是一个Google App Engine项目。
于是读了下说明文件,配置了boto.cfg,接着本地运行了一下,发现居然成功了。
2010 7 26 06:28 PM 1505 次查看
分类:Google App Engine 标签:Google App Engine, Python
由于PolyModel比Model有更多的存储空间开销,对于斤斤计较的程序员来说,有时候会不想使用它。但是这样一来就没法重用了,而《Reusing models with ModelMixin》这篇文章则介绍了解决办法。
简单来说,不能重用的原因是__metaclass__不一致,所以只要自己再创建一个ModelMixin类用来继承即可:
2010 7 5 07:10 PM 1614 次查看
分类:Python 标签:Python
Python 2.7正式版于7月3日发布了,改进大多数是从Python3.x里引入的,包括ordered dictionary、set and dictionary comprehensions和dictionary views等。
其中我最关心的io模块,说是全部用C重写了,性能提升2~20倍。
2010 6 18 12:24 PM 10090 次查看
分类:Google App Engine 标签:Google App Engine, Python
最近又在无聊地摆弄手机。虽然我的手机不智能,不能翻墙,但是不能上Twitter实在不能忍,所以就琢磨起解决办法来了。
不用说,Twitter API肯定是必备的,我只要让我的应用去访问Twitter API,然后返回结果给我的手机就行了。但由于GAE被墙,单纯地在GAE上建个WEB应用对我的手机也没有任何益处,于是想到了XMPP。由于GAE可以收发XMPP,而我的手机可以用Google Talk,于是可以进行2次转发,来更新我的Twitter了。
2010 5 25 04:43 PM 4211 次查看
分类:Google App Engine 标签:Google App Engine, Python
GAE/Java的开发者可是很早就有session功能使用了,可是Python开发者却迟迟没有这个玩意。
今天在GAE论坛里看到了gae-sessions这个玩意,于是赶紧分享出来。
用法很简单,相信熟悉PHP的开发者们也知道session是怎么使用的,所以我也懒得介绍了~
2010 4 1 06:02 PM 2674 次查看
分类:Google App Engine 标签:Google App Engine, Python
最近在做一个网站,用到了投票机制。
最初的打算是将计分信息和描述信息分成2个模型,前者作为后者的父实体,大致如下:
2010 4 1 01:21 PM 2225 次查看
分类:Google App Engine 标签:Google App Engine, Python
昨天Google App Engine Team发了一篇《Read Consistency & Deadlines: More control of your Datastore》,不过服务器挂了3天,没法及时写上,所以今天再补上。
在SDK 1.3.2发布时曾提到了强一致性和最终一致性读取,但是没有讲述细节,而这篇文章则阐述了其区别。
默认情况下,datastore是在一个主存储区域进行更新和查询的,这个区域代表最新的数据,访问这个区域则表示使用强一致性。而主存储区域有可能变得暂时不可用(估计是并发数过多或硬件故障),这就会导致查询超时或失败。
而实际上datastore是分布式的,它还有很多副存储区域。这些副存储区域的数据比主存储区域晚几百毫秒至数秒,因而不是最新的。如果你的应用不需要这种强一致性,就可以在主存储区域不可用时,让datastore读取其他存储区域的副本,而这就称为最终一致性读取。
2010 3 21 01:14 PM 2622 次查看
分类:StarCraft2 标签:Python, StarCraft2
闲得无聊,就用Python写了个程序来提取一些xml中有用的信息,然后导出成csv文件。用Excel打开,改下样式,排下序就OK了。
没空去翻译,自己翻翻词典就清楚了。
部分xml由于太复杂,所以不太关注的信息就无视了。
2010 3 19 03:11 PM 2174 次查看
分类:Google App Engine 标签:Google App Engine, Python
今天在尝试Alkis Evlogimenos的datastore_cache模块时,发现没有调用memcache,于是跟踪了半天代码,终于找到问题所在了。
这个bug解释起来非常麻烦,我也不清楚是不是Google更改了实现而导致的,先把API调用机制介绍一下吧。
« 看看还有什么好玩意