使用pyPdf切割pdf文档

青蛙拿到一份扫描版的pdf文档,每个pdf页包含了两页实际书籍页面, 这种文档放在6寸Kindle上基本就是杯具了。于是青蛙试图找工具把他们切割掉。 根据铄日博客的推荐试验了 paper4kindlek2pdfopt, 但是papaer4kindle切割出来的文档页面错乱了,而且也没有修正pdf歪斜的功能, 剪裁输出的文档很难看。 k2pdfopt就更没法看了,从image识别文档的技术先进, 但是对于每页pdf包含2页实际页面的文档,k2pdfopt基本无能为力。

青蛙本想探索一下paper4kindle输出之后页面错乱的问题, 结果这玩意竟然不开源,又看到作者说花了几小时就搞出来了, 那青蛙也看看pypdf包,试试能不能直接写代码自己搞定。

花了半下午时间看了下pypdf( http://pybrary.net/pyPdf/ )的API, 然后直接把例子代码复制下来改吧改吧, 咱也基本实现了paper4kindle的核心功能了,成功把那份文档处理掉了。 至于那些花哨的界面啥的,有空再玩吧。 代码先贴在这里,没有整理,暂时先不贴到github了, 准备下一步尝试添加旋转页面的功能。

编码的时候发现了两个问题,

  • 设置mediaBox的位置之前需要先copy一份page对象, 否则设置right的mediaBox的时候竟然会影响left的值, 猜测是pypdf模块内部直接返回了page对象的引用,并没有复制一份返回。
  • 这份文档无法用paper4kindle编辑的原因是实际上文档的四个角坐标是反的, 大概文档扫描之后被顺时针旋转了90度。

最后小小鄙视一下用python、用开源库写代码竟然不继续开源的某些软件作者。

#!/usr/bin/env python …
more ...


2011年终总结及展望

又到了年终岁末的总结时间了,青蛙已经发表过一篇关于今年骑行生活的总结,所以其他方面的总结就很简单了,几句话就可以说完。 写完才发现又唠叨了一大堆。

首先,婚礼办完了,五月某日。唯一的印象就是折腾,青蛙对中国式婚礼这种不折腾死人不算完的事情表示很无奈。

其次,工作上似乎有条例了一些,但是自己仍然处于迷失状态。 自己到底做点什么,以后怎么发展,仍然迷茫。 虽然这是一件很不应该的事情,工作四年,仍然不知道自己的方向在哪里,真是loser。 以至于年终曾经转去做kernel方向,但是担心自己的能力,又不了了之。

不过在现在的职位上已经有一些心得了,对于python,对于虚拟化,已经不像去年像一个文盲的状态了。 如果再在这个方向上做下去,也是有许多有趣的事情可以做。 不过一年中学到的技术知识似乎不多?现在想想,似乎编程技能并没有太多的提高,这是一个急需提升的地方。

十月份青蛙收了一部kindle4,之后的三个月里阅读量比之前的九个月加起来都多。 kindle真的是值得拥有的好东西,赞美亚马逊。

另外青蛙自己写了一个小工具抓取小说并推送到kindle(好吧,kindle上看的小说也不少), 写这个小东东的过程中会思考一下如何构建一个方便扩展又方便编码的结构, 不过写完之后却发现跟工作上使用的 kvm-autotest 结构真的很像。 由此,青蛙决定多读读其他的代码,目前正在抽时间读读vdsm,恩,争取2012第一季度可以读完。

哦 …

more ...

吐槽:关于用户口令

CSDN的密码泄漏事件被爆出之后,在Twitter和Weibo上引起了广泛的反响,很多人质疑国内网站的安全管理工作,竟然敢直接用明文保存密码。有一点常识的Web应用开发人员都应该知道直接在数据库里明文形式的密码是相当不安全的。但是为什么还有那么多人仍然这样做呢?他们出于什么目的呢?引人深思呀。

一个网站到底应该怎么保存用户的密码才安全呢?又怎么应该设计登录流程呢? 酷壳上有两篇文章介绍的不错:你会做Web上的用户登录功能吗? 和 Web开发中需要了解的东西

青蛙除了大学的时候搞的那个神马选课系统,基本就没有做过Web应用,就从一个Web用户的角度唠叨几句算了。

首先,是我们到底需要多少个密码? 只有一个显然不行,如果使用这个密码的网站有一个不靠谱,把用户密码给泄漏了(被黑了也好,被无良网站卖了也好,当然在天朝还有另外一种可能:被政府收缴),所有的网站都必须重设密码。那每个网站都设置一个密码呢,现在是个网站都要登录,谁能记得住那么多密码呀。

为了防止密码忘掉,大体上有两种思路:

  • 密码管理器 这种方法比较简单,实际就是保存一个密码。本因为浏览器就内置了记住密码的功能,把用户从繁重的记忆密码的任务中解脱出来。但是浏览器的密码记忆方式功能单一,而且跟浏览器绑定,换一个浏览器就完蛋了。还有系统自带的密码管理工具,例如KDE的KWallet之类的都会有这种问题,跟某个环境绑定,移动性不高。青蛙目前也没有好的实践经验,可以想到的方法就是加密KWallet之后放在Dropbox上,这样多台电脑之间的密码同步可以解决,但是仍然没有解决跨平台的问题。可能这个问题需要借助移动设备来完成,例如Android上的密码管理应用 …

more ...


为https服务申请SSL证书

书接上文,上回书说到青蛙成功给nginx配置上了https服务, 但是当时青蛙使用的是自签名证书,没有验证网站身份的功能; 而且有些工具会对证书的有效性进行校验,对于这种工具,自签名证书就毫无用处了。

这个时候,就需要申请一个经过CA认证的有效证书。

据青蛙所知,目前提供免费SSL证书的只有StartSSL[1]一家, 青蛙按照这两个网站的介绍[2][3],成功申请了SSL证书。

依照青蛙的经验,要成功申请证书,最好是有一个以要申请域名结尾的邮箱, 这样可以很容易的确认域名所有权。至于邮箱服务,可以申请google app,方便,免费。

有了邮箱系统之后,可以设置一个webmaster或者hostmaster账户,以便注册过程中验证域名地址。

在StartSSL申请证书的时候有几点需要注意:

首先,建议使用firefox申请证书,青蛙用Chromium试了一下, 点击进入Sign-up界面的时候会出现一个错误提示,明确说明Chrome类浏览器无法申请。 有网友说IE也没法成功申请[1]。

其次,申请的时候尽量填写靠谱的个人信息, 如果信息看起来不靠谱,很容易被拒掉。 个人信息填写完之后会向你填写的邮箱里发送一封认证邮件,邮件中包含继续注册所需的验证码。 输入验证码之后提示等待人工审核,青蛙遇到的审核过程很快,大概几分钟就有结果了。

接下来还有一封邮件,里面有一个链接和一个认证码,访问那个连接,填上认证码 …

more ...

摄影三俗

自己拍照的时候,一定要记得避开这些俗物,XD。

本来青蛙计划去扫一下后海和老北京的胡同的,看来要pass掉重新选题了。

帝都冬天还有什么值得拍的呢?哪里有庙会?哈

中国摄影有三俗
人像三俗:芦苇,后海,798
夜景三俗:浦东,建外,太平山
建筑三俗:鸟巢,巨蛋,明珠塔
纪实三俗:老太,胡同,石库门
旅行三俗:马代,瑞士,梅里山
静物三俗:酒杯,水果,紫砂壶
小品三俗:荷花,水珠,自行车
自然风光三俗:坝上,亚丁,喀纳斯
人文风光三俗:丽江,水乡,和土楼
名胜古迹三俗:长城,外滩,嘉峪关
民俗风情三俗 …

more ...