博客

淘宝上的“敏感词”


前两天,在淘宝上买了一个装单反的包,有点波折,不过卖家服务挺好。我在双方互评的时候,想写几句好话,赞扬一下他们。

写完提交后,系统提示“不允许在评价中使用日”,于是我只好改成“祝你们的生意蒸蒸曰上”

鸣谢:三表童鞋对此插图亦有贡献。(嘿嘿,最先是看到他的 msn 头像换成这个,创意很赞,等我想用了,他的头像已经撤了,于是自己 DIY 了一下)

用 python/reportlab 生成 PDF

达达这学期关于加减法运算的一个要求是速度——8分钟以内做120道题为及格,5分钟做完是100分.

为了平时训练,偶周末就写了个脚本产生一组题目,并生成 PDF 以供打印。

网上的入门教程多是 reportlab 的 pdfgen.canvas 的例子,不过我这里是要打印 120 道题出来,就得用 platypus.Table 来排版了.

表格的数据用一个 list 来表示;其每一个元素仍然是一个 list,就是每行(row);这个 list 里的每个元素是字符串,是 cell 的数据了。

准备好 table 后,用 platypus.SimpleDocTemplate 来生成 pdf。它最后处理一个 list,把这个 list 里的对象挨个渲染出来,这个有点像浏览器依次画出 block 级别的 div。

示例如下:

  1. from reportlab import platypus
  2. from reportlab.lib.units import inch
  3.  
  4. def genTable():
  5.     data = []
  6.     items = genList()  #随机生成120道题目
  7.     for i in range(0, len(items), 5):
  8.         #生成一个有 5 列的表格数据
  9.         data.append(items[i:i+5])
  10.     table = platypus.Table(data, 1.5*inch, 0.4*inch, [('FONT', (0,0), (-1,-1), 'Courier')])
  11.     # 每个cell 1.5' 宽,0.4' 高,差不多 120 题排满一张 A4
  12.     # Courier 是等宽字体,为了俺的算式看起来整齐
  13.     # (0,0)/(-1,-1)说的是font style运用范围,从左上到右下
  14.     return table
  15.  
  16. doc = platypus.SimpleDocTemplate(fname, topMargin=0.9*inch, bottomMargin=0.9*inch, title='DaDa Math', author='qyb')
  17. # 目标是一个叫 fname 的 PDF 文件,缺省上下留白有点多,修改为0.9'
  18.  
  19. elements = []
  20. for i in range(n):
  21.     elements.append(genTable())
  22.     elements.append(platypus.flowables.PageBreak())
  23.     # 生成 n 页的数据,每个表格后面跟着一个换页
  24.  
  25. doc.build(elements)

Getting Started With ReportLab 这篇文档给我很大帮助,推荐阅读。

最后要说的是,Linux 下配置佳能 LBP 3018 非常麻烦,我尝试了10分钟后没有搞定就放弃努力回到 XP 下打印了。CUPS 发展这么多年,佳能也是大厂,没想到 Linux 桌面上用打印机还是如此困难!

Topic: dada 技术

mutt killer

gmail 影响的不仅仅是 webmail 以及桌面客户端(thunderbird 都要变成 raindrop),现在看来 text-based 终端应用程序也要进化了!

首先出台是 Sup. 一个用 ruby 写成客户端,带有标签/全文搜索/自动创建联系人名单....还有会话功能. 看截图还蛮像回事

然后就有对 ruby 不鸟的 C 程序员开发出来了 "Not much mail". 利用 xapian 作的全文搜索...在 blog 里对 xapian 只提供 C++ 接口还调侃了一下

NotMuchMail 没有 POP3/IMAP4 fetch,没有 SMTP 发送功能,甚至没有 UI!!! 要想把一切有机的组织在一起,得靠神器 Emacs. 现在 at least two users using it for reading all of their incoming mail... 这个是算 alpha 么?

Topic: 技术

车站能不能把春运火车票放到淘宝上去拍卖?

这两天断断续续的看薛兆丰的《经济学通识》,里面提到春运火车票可以拿黑市价格来参考定价,哈哈深得我心,周末还和 qyt 争论过这个问题。

今天我又想到这个事情,春运的卧铺火车票完全可以拿到网上拍卖,从技术和渠道上淘宝能够担起这个重任,就看车站敢不敢这么做。

车站多赚来的车票钱也许可以多开些临客

如果马云老师先天下之忧而忧,就去主动找铁道部请缨吧。

Update: 周末去鼎好买了一个打印机,越南制造... 从成衣/鞋子,到IT制品.... 越南股市可能还真是个适合冒险的地方呢

Topic: 社会

THIS IS IT


大约在91年的暑假,我经常出没于家乡的文化宫。有一台街机给我留下很深的印象。画面上只有一双穿黑皮鞋的脚,圆形灯光打在地上,脚往前走了几步,皮鞋后跟敲在地板上的声音很悦耳,突然那双脚跳了几个动作,脚面上散出发亮的晶体,最后两脚原地转了一圈,立在地上。这个造型定住并拖出几根水平的直线,变成一个单色的符号,随后,音乐声想起,游戏示例视频开始播放。在关与关之间的过场动画里,总有一个扎着小辫的女的尖叫两声。当游戏主角陷入重围时,可以放出“绝招”,全屏的人跟着他一起跳舞,舞蹈结束时,他将帽子一甩,一道光在屏幕上快速扫了一遍,敌人都被消灭了。游戏进行中每关都有节奏感很强的歌。这些就是 Michael 给我的最初印象。好几年后,我知道了那些歌的歌名——《BAD》、《Beat It》、《Smooth Criminal》。

大约是93年左右,集市到处的摊上都在卖一个封面很有特点的磁带,我印象深刻,却没产生买的想法。家里有本杂志,彩页上有他黑白的剪影。另外有一盘格莱美的精选,里面有《We Are The World》和《Beat It》。哥哥大学放假带回来了我曾经在集市上看到《Dangerous》磁带专辑以及录像带,那时我也高中了,对这些自然毫无抵抗能力,迈克尔杰克逊自此进入我的听歌范围。记得那时有一个可以罩住耳朵的耳机,听《Dangerous》这首歌尤其爽,每一个鼓点都好像敲在心上,听了这么多中文歌英文歌,能产生这个效果的只有这首歌。《Dangerous》专辑做得精致极了,封面上所有的图案都分成一小块一小块印在里面的歌词与歌词之间,歌词本身印得也很有特点,居中对齐,这种排列方式在方块字的歌词上是没有见过的。录像带带给我的震撼就不用说了,演唱会上各种梦幻般的创意令人叹为观止。总之,中了毒后,就赶紧恶补吧,《BAD》《Thriller》以及《Moon Walker》等,一遍又一遍。

到了他出《History》的时候,我们的信息总算与时代同步了。可是他似乎也开始步入下坡阶段。不断地被媒体消费,各种负面新闻层出不穷,深居简出的他变成了一个怪人。再就是最近的伦敦告别演唱会,轰轰烈烈的筹备阶段突然传出他的死讯。老实说,听到这个消息,我并不吃惊。其实,一直以来,在世界巨星中,有两个人,哪天早上起来,有人告诉我他们死了,我将坦然接受,因为我心里早已做好了准备。一个是 Michael Jackson,一个是迭戈马拉多纳。

Michael 的那些歌啊,再听的时候,我仿佛看见了台灯下带着大耳机做作业的我;我仿佛看见了少年时电视前目瞪口呆的我;我仿佛看见了集市上徘徊在磁带摊边的我;我仿佛看见了街机厅里没有钱只好眼巴巴看别人打游戏的我。那些青春岁月跟随着他的歌声而逝去,那些青春岁月也因为有他的歌声相伴而鲜活可忆。

终于,时间来到现在,《This Is It》让我在电影院里见到了几个月前 Michael 的风采,虽说有一些瘦削,但是精神很好,怎么也不像一个媒体所说的病人、怪人。在彩排的时候,他有两句口头禅,一句 This is it,一句 God bless you。他谦逊、认真、坚持、富有感染力。他为了演唱会,精心地给一些老歌拍了新的 Music Video。可是这一切,却只能通过电影这种方式展现给全世界的歌迷。看电影的时候你能想象到,这将是多么完美无暇的告别演唱会,看电影的时候你也会想起张国荣,他们留给世界的缺憾,永远让后人唏嘘……






Topic: 文化 音乐

生日礼物

My 30th Birthday Gift

今天是柏林墙倒塌 20 周年纪念日,当然也是我的 30 岁生日。

大概一个月前,哥哥在 msn 上问我,有没有买手机的计划?打算送我一个好点的生日礼物,Android Hero 怎么样?我想了想,虽然 Android 系统几乎已经是我下一个手机的首选,不过感觉现在还没到买的时候。第一,目前在用的服役还不满两年,现在换掉有点可惜;第二,对完全触摸屏的手机还是有一些疑虑;第三,估计再过一两年,会有大量的性价比更高的 Android 手机可选。综上,我拒绝了哥哥这个很有诱惑力的礼物。

但是,人总是很邪恶的,听到哥哥这个想法,我心中的恶魔开始成长。过了一会,我跟他说,如果允许的话,可以直接把买 Android Hero 的钱给我,我自己再加钱去买一个单反。XD

接下来就是买什么型号的问题了,身边的同学买的都是尼康,五表弟买的也是尼康,他说尼康的快门声音比佳能的好太多了,很 man。不过我对佳能的单反一直有莫名的好感,也许它是最早做数码单反的厂家的原因吧。在淘宝上搜了一圈报价,刚出的 50D 太贵,自然不考虑。现在热卖的尼康 D90 的价钱也不便宜,甚至比下市不久的佳能 40D 还贵一点,那还有什么好说的?就 40D 了。直接上佳能的中级单反,了了我 N 年的夙愿。哈哈哈哈。随后,我又找到了 40D 和 500D 的连拍视频,嘿嘿,40D 的快门声音比 500D 的那是完全不同的风格嘛,佳能太不厚道了,吼吼吼吼

到了周末,我开始给淘宝上的在中关村有实体店的商家打电话。打了一圈,心凉了大半截,最后人家跟我说,中关村你不可能买到全新大陆行货 40D,要是有人说有,肯定是骗子。5555,这——可咋办,千算万算,没算到淘宝上还有没货的可能,那些信息都是过期的人家懒得撤下来的信息。去锐意查一查,也没有 40D。于是我放弃北京,开始给全国各地的淘宝卖家打电话,上海的,杭州的,武汉的,西安的,深圳的,广东的,全都没有货啊——

我滴心已经拔凉拔凉了,用搜索引擎漫无目的地不抱希望地死马当活马地寻找。也不知怎么搜的,我在绿森里发现还有的卖,怎么,居然还有的卖?!我很激动。不过,要么说买的没有卖的精呢,套机有价无市,想买必须要另加一个镜头,两项选择,一个是加腾龙 70-300/4-5.6,这个相对便宜点,另一个选项我一看,好家伙,总价已经一万一千多了,所以我连镜头牌子型号都不往心里去了。在京东上查了一下这个腾龙的镜头单卖多少,再用绿森的加镜头的价减有价无市的套机的价,嗯,这个套餐里面的镜头的价比去京东单买贵 100。无商不奸啊,古人诚不欺余也。不过,我 tmd 忍了,谁叫全中国就您这有卖的呢。

经过大半天的网页搜索,电话来往,在最后马上就要完全放弃 40D 的时候,我总算找到了救命稻草,不犹豫了,付账吧。之后一切顺利,等我付完帐再看那个绿森的网页,就连这个选项都变成灰的了。

我买到了最后一台,上帝保佑。

Topic: 生活

网易的 NMMP 协议

Netease Mail Management Protocol. 随便说两句感想

"闪电邮"这个产品,最近大半年一直没有消息,我还以为它就此终止,没想到网易还是很有决心的把客户端道路走下去

非常有趣,尤其是"闪电邮"同时还支持 POP3/SMTP 收取 sina 和 sohu 的邮箱(公开的新闻稿里没有 qq 的名字)——好比腾讯突然出了一个支持 MSN 或 XMPP 的客户端。建议用 POP3 的人试一下这个产品,和 foxmail 做一个对比。

或许网易认为私有协议能给竞争带来巨大的优势,最近频频搞这个东西保护它庞大的邮件王国,除了 NMMP,前不久还弄了一个 coremail 之间的私有协议来加快传输,我估计会叫 NMTP。

前两天我还在感慨搜狐终于把个人邮箱的基础设施大大简化,同时支援 sohu.com/chinaren.com/sogou.com/vip 的成本降低了许多,网易的研发人员却得开始维护两个新的协议了,让人不得不对网易的板凳厚度保持深深的敬意,哈。

最后想到一个问题,popo 呢?

Topic: 商业
订阅 RSS - 博客 | BT的花