YCFlame's Pensieve

~ 专注移动互联和电子阅读的冥想世界 ~

语不惊人死不休

华蟒用户组有一个帖子说到 List Comprehension 的问题,代码如下:

>>x = (5, 6)
>>result = [item for item in x for x in [(1, 2),(3, 4)]]
>>print result
[5,5,6,6]
>>print x
(3, 4)

初看这个问题,仿佛又回到了当年学 C 语言的时候,老谭没事儿就搞出个「i=1;  j = ++i+++++i++;」然后问 i 和 j 等于多少……

阅读全文 »

阅读产品中的 Unix 哲学

1. 一个程序只做一件事情,但是要做好。

2. 通过组合多个这样的程序来满足复杂需求。

                  ——Unix 哲学

  一年半以前,我写过一篇《纸质书到电子书的不可逆转变》,简单分析了一下发展趋势的必然性。那个时候,唐茶还没有改名为字节社豆瓣阅读还没上线,多看阅读还没进入我的视野。经过这段买电子书多过纸质书的时光,我有一些新的想法,这次从产品的角度来谈一谈。

阅读全文 »

我想,天堂该是图书馆的模样

对于美好的东西,要有勇气去追求。——《恋爱的犀牛》

  原公司停掉后续开发工作后,我开始寻找新的归宿。这不足一年的第一份工作经历多多少少是个硬伤,在面试中少不了被问到,虽然比沉不住气与上司翻脸什么的要好得多,总归不是个很合适的离职时机。《一次谷歌面试趣事》中有云:「永远不要冒失的首先去应聘你梦想的公司,应该先去应聘那些你不看好的职位。你除了能从这些面试中获得经验外,说不定还能遇到某个能为你更重要的面试铺路的人。」诚哉斯言,现在看来首先去面豆瓣读书组并不是一个很好的决定。

阅读全文 »

Redis 数据结构小结

Redis 是现在常用的一种 Key-Value 数据库,因为比 Memcached 支持的数据结构更丰富,经常被用来存放热数据及其间的相互关系,比如日记 ID 与评论 ID 的一对多关系。我在工作中基本是将 Redis 当作 ID 缓存来用的,从中可以方便快速的取到所需的实体 ID,然后再去 Memcached 或者 MySQL 中取详细数据。

Redis 的常用数据结构有五种:String、Hash、List、Set 和 Sorted Set,其中 String 我较少使用,偶尔会用来当计数器,或者使用 SETEX 命令生成一个过期失效的数据对象,用来实现类似激活邮件的有效期这样的功能。本文只讨论后四种数据结构。

阅读全文 »

Google App Engine 拾遗:天朝特色的 Remote API

最近做的一个项目出于安全性和扩展性的考虑决定采用 Google App Engine(以下简称 GAE),于是自然需要跟「GirlFriend Wall」打交道。使用 GAE 提供的 SDK 上传应用到云端并不需要特殊技能,进行一般的本地调试也是不需要的,但是当从本地访问云端数据库时就决定了你是不是一个新时代的四有青年。GAE 为了方便开发提供了 Remote API 来远程读写数据库,不过我泱泱中华自然不能享用嗟来之食,必须得提高难度方显大国本色,以下便是我们逢山开路,遇水搭桥的过程。

阅读全文 »

黄沙百战穿金甲

  记下 Code Review 的最后一个改动,打包全麦吐司、笔记本和地铁上看的书,饮下壮胆的水,拿上下楼后想起来落下的口罩,当我跨上刚入手的捷安特 ATX 680,只有云知道今晚的征程将是何等模样……

阅读全文 »