2013 7 11 03:42 AM 3342 次查看
分类:编程 标签:VIM
以前总是很排斥使用这种很难记的编辑器,不过陆陆续续用了几个月后,就渐渐离不开 VIM 了。
回想了一下学习时的过程,发现 VIM 的一致性对于学习者而言很有帮助,许多操作都能举一反三地猜测出来。
下面的介绍只针对 VIM 的初学者,其他人可以无视了。
2013 6 24 01:49 AM 2736 次查看
分类:Google Reader 标签:Python, Google Reader
鉴于 Google Reader 即将关闭,而我没找到好的替代品,所以急需导出几千条加星条目。
前几天测试了下把知乎日报分享到 Pocket,看上去体验还不错,于是决定先保存到 Pocket 吧。
因为没多少时间来写,我就简要说明下原理吧,其他的自己看代码吧。
2013 6 19 01:45 AM 3474 次查看
分类:编程 标签:HTML, JavaScript, iOS开发
这几个月都在开发知乎日报的后端,让我对移动应用的开发有了更多的认识。
简单来说,我以前一直都认为原生应用才是王道,现在则觉得 HTML 5 才是未来。
2013 5 19 11:59 PM 3829 次查看
分类:编程 标签:Python, Redis
最近实在太忙了,而博客还时不时遇到配额用完的问题,我已经懒得解决了。想着 Google Reader 也快不能用了,干脆也别享受 GAE 这免费的午餐了,还是换个地方玩吧。
于是只能很抱歉地告诉 Doodle 的使用者们,Doodle 2 将只能在 Linux 平台(VPS 或独立服务器)上运行了,老版本将只在即日起的一年内提供迁移(到 Doodle 2 或 WordPress)、修正 bug 和指导性的帮助,不再添加新功能了。
预计第一步将支持的是 Ubuntu 12.04+,因为开发是在 OS X 10.8 上,所以肯定也是支持的,只是依赖的工具 / 包 / 库我也记不清(找不到干净的系统)。Windows 上的开发者就抱歉了,支持这个实在头大。
虽说计划是最低支持 128 MB 内存的 VPS,不过看到 DigitalOcean 512 MB + 20G SSD 的 VPS 才卖 $5 每月,也支持按小时扣费,网速和口碑好像还行,所以想先玩玩。有闲钱赞助的,可以通过这个链接购买,累计消费 $10 (例如购买 2 个月最低配置的 VPS)后,我会收到 $10 的佣金,先谢了。发现几个优惠码,不知何时失效,有需要的自便:SSDBEAR10(免费 $10,需要绑定信用卡或 PayPal)、HELLOSF(免费 $5,无需绑定)。不会用的可以在填写支付方式时,找到 Promo Code,把优惠码贴进去,成功就会提示。
2013 4 15 04:32 AM 4788 次查看
分类:数据库 标签:Python, 性能, Redis
最近在做一个项目,数据库使用的是 Redis。在设计数据结构时,不知道哪种实现是最优的,于是做了下测试。
测试环境如下:
OS X10.8.3
Redis 2.6.12
Python 2.7.4
redis-py 2.7.2
hiredis 0.1.1
ujson 1.30
MessagePack 0.3.0
注意:
- 因为是拿 Python 测试的,所以可能对其他语言并不完全适用。
- 使用的测试数据是特定的,可能对更小或更大的数据并不完全适用。
2013 3 20 04:27 PM 2366 次查看
分类:Python 标签:Python
几周前我遇到了一个问题,某个用户说她无法登录我们的网站。我记录了她的 cookie,发现它是以 ',BRIDGE_R=;' 开头的,其中包含了一个非法字符。
而 Tornado 使用 Cookie.SimpleCookie.load() 方法来解析 cookie:
class HTTPRequest(object):
@property
def cookies(self):
"""A dictionary of Cookie.Morsel objects."""
if not hasattr(self, "_cookies"):
self._cookies = Cookie.SimpleCookie()
if "Cookie" in self.headers:
try:
self._cookies.load(
native_str(self.headers["Cookie"]))
except Exception:
self._cookies = {}
return self._cookies
在遇到非法的 cookie 时就会抛出异常,所以 self._cookies 就变成一个空字典了。这样服务器就取不到用户的 cookie,只能当成一个未登录的用户来处理。
而在用户尝试登录以后,虽然写入了正确的登录信息,却仍然无法被读取,于是就不可能成功登录了。
2013 3 16 01:43 AM 2234 次查看
分类:Google Reader 标签:Google Reader
前天一觉醒来,发现 Google Reader 被判死缓了,瞬间觉得生命中好像缺少了什么。
不过这次度假没带电脑,所以也懒得写些什么;只是用继续浏览 Google Reader 上的资讯,来表达我无声的抗议。
Google Reader 对我的重要性,它自己也知道:
From your 111 subscriptions, over the last 30 days you read 10,972 items, clicked 20 items, starred 90 items, and emailed 0 items.
Since June 21, 2011 you have read a total of 296,176 items.
而今,它却要离我而去。
2013 2 21 04:08 AM 6066 次查看
分类:Python 标签:Python
虽说 logging 模块都用了好久了,不过由于文档不够详细,每次都忍不住去搜索别人的文章,于是就干脆记录下来吧。
2012 12 17 01:52 AM 18817 次查看
分类:Web 标签:Python
之前我在《Tornado 使用经验》一文中,提到了调用 tornado.process.fork_processes() 来提高性能的方法。
在最近的实践中,我发现这样会有些弊端,所以便有了本文。
当然,这些仍然只是我个人的探索而已,并不保证是最佳实践。
2012 12 9 04:35 PM 2494 次查看
分类:随笔 标签:无
今天是 2012 年 12 月 9 日,距我出生已有 9700 天,离传说中的世界末日还有 12 天。
我向来是不相信什么世界末日的。
首先,它的意义就不明确:
世界是指地球、太阳系还是宇宙?末日的对象是前面所说的世界,还是仅指生物?末日会持续多久,结束后会是什么样子?
于是按照大多数人的理解,这里就暂定为地球上绝大部分生灵因为突发性的大灾难而终焉的日子吧。
其次,它是怎么计算出来的?
如果是玛雅历的结束日期,那么不但玛雅历有新纪元,而且我们早在几个月前就进入新纪元了。如果是神谕,那么慈爱的神为什么要引发灾难?如果是因为人类的罪恶,那么为什么要伤及无辜的生命?
最后,每天都有可能是世界末日,尽管那概率比每天都被闪电击中的概率还低。但如果真发生了,也不过是巧合而已。
于是为了这点巧合,我还是愿意写下点什么。
前些日子老爸转告我说,妈妈希望我回家一趟,因为可能会世界末日。我以工作忙拒绝了,叫他们不用担心。
如果真有巧合,那么这一定是我一辈子最大的遗憾。
« 看看还有什么好玩意