[tips]在Ubuntu中快速制作漫画pdf

2011年03月01日 22:17

自从有了Kindle3之后恨不得把所有可看的东西都放上去。想起家里还有一套丁丁在美洲,于是也想弄到Kindle上去。

不过Kindle似乎看漫画并不像想象的那么方便,我用的是多看系统,如果把图片都扔到DK_Picture目录则无法使用分类统一管理,如果放到DK_Documents则只能把图片打成zip包,但是看的时候那个顺序非常诡异。

装懒人而不得,只能自己动手了。查了一点资料,发现最合适的方式应该是将图片按顺序做成PDF,不过大部分资料介绍的都是Windows的软件。终于找到一个Ubuntu下可用的方法,实际非常简单:

前提:1. 图片本身大小合适、对比度合适,不用做进一步处理。2. 图片严格按顺序命名

其实只要安装imagemagik这个软件包,然后使用其中的convert命令就能批量将图片转换为pdf:

convert *.jpg dingding_1.pdf

就这么简单。有了这个命令,写一个脚本对所有书做批处理也不难了。

BTW:实际上imagemagik也非常适合用于做图片的增强处理,因此即使不满足前提1,也可以用它做一些预处理的。只是我这次没有试。

拿Ubuntu当XServer显示远程机器的窗口

2011年02月23日 15:39

(本文收录于[go4pro.org]

原来以为比较简单,没想到遇到了一些麻烦。

言简意赅言简意赅。

其实本来按理说在Linux上做XServer显示远程窗口应该比Windows更简单才对。但是现在大多发行版因为安全原因,默认禁止了XServer的TCP监听功能,所以有了一些麻烦。

所以我们首先要去掉这个禁止项:

对于Ubuntu这种配置了gdm的系统来说,在 /etc/gdm/custom.conf中增加两行:

[security]
DisallowTCP=false

然后重启就行了。重启之后X就有了TCP监听的能力。

接下来的事情就简单了,是XServer的基本操作:(假设远程电脑(XClient)IP为192.168.0.100,本地端(XServer)为192.168.0.2)

首先在本地机(XServer端)增加客户端IP认证:

xhost + 192.168.0.100

允许客户端的X通讯

然后在客户端指定XServer:

export DISPLAY=192.168.0.2:0

然后在客户端执行X程序,界面就会显示到本地了。

可以执行一个 xclock 看一下效果。

就这样。

言简意赅,嗯。

安能饭否新版发布

2011年01月16日 12:41

今天安能饭否发布了0.6版。这个版本带来的全新的界面和很多新的功能,称之为一个里程碑式的版本我觉得并不为过。

最早我做安能饭否,只是希望自己在手机上能用客户端访问饭否,节省流量并获得后台提醒的功能。于是就找了一个开源的软件twitta,在它的代码基础上修改并稍稍增强了一下。当时我并没有什么宏图大志,纯粹是想弄个东东自己用而已。所以我也遵循twitta的协议开源了。

正是因为代码开源,所以三日坊主同学在我的代码基础上又做了新的界面。在这个基础上,才有了今天的安能饭否。新的界面激发了我的热情,也使得这个项目真正焕发了活力。到了今天,我已经不满足于仅仅做一个能用的饭否客户端了。我希望能做一个受大家喜爱的饭否android客户端。

三日坊主是一个优秀的开发者,今天这个版本里大量的工作都是由他完成。感谢他。我也同样希望有更多的高手来帮助我们一同将这个项目做得更好。当然,如果有人能从我们的代码中获益,我也会感到开心。

新的版本在这里下载。如果访问Google Code网站有困难,那么这里还有一个墙内镜像地址。感谢.rex同学提供的镜像资源。

安能饭否的项目主页:http://code.google.com/p/fanfoudroid/

安能饭否测试版

2010年12月18日 19:13

饭否重开之后,我们的感觉一瞬间回到了一年前。除了那些被时间冻结的发言,还有一年前的各种技术。

然而一年之间发生了太多的事。一年前我还在用着200块的黑莓手机,用Opera Mini孜孜不倦的追饭,而一年后的今天,我已经成了一个android资深玩家,早已习惯了各种android客户端提供的后台提醒功能。

可惜目前饭否还用不上。

于是,我打算自己动手。

受到猛禽的饭坚勤的启发,我去网上找了几个twitter的客户端,打算从twitter客户端改一个过来。几经比较之后,我选择了 twitta 。选择的原因是因为它看起来比较好看,而且思路简单,改动容易。

但是twitta提供的功能太少,所以把基本功能改完之后,还远远达不到我的需要。所以我又自己增加了一部分功能。现在,这个客户端已经基本满足我自己的需要了,于是打算发布出来。

安能饭否目前的功能包括:

  • 查看自己和好友消息
  • 查看提到我的消息
  • 查看特定用户的消息
  • 回复
  • 热饭
  • 私信
  • 发言
  • 拍照/从图库选择照片 并上传

未来打算完成的功能:

  • 收藏管理
  • 回复消息线索查看

我的业余时间不算太多,因此也许不会弄得很快,不过我会慢慢改进,至少要满足我自己个人的需要。

随后我会将代码开放

项目源代码在http://code.google.com/p/fanfoudroid/,欢迎协作开发。

下载地址 (Google Code)

[tips]vim替换技巧一则(数字递增)

2010年11月08日 17:51

(本文收录于[go4pro.org]

为了充实自己,把《Dive Into Python 3》用calibre做成了epub版。

可能是自己不太会用吧,一开始做出来的书目录顺序和翻页顺序都不对(似乎它把所有的目录项都按字母排序了,很囧),折腾几次之后未果,后来发现有一个“调整epub”的菜单项,可以把epub分离出来手工编辑,然后再合并回去。于是就不再折腾如何自动生成正确的版本,而是手工调整了一下,效果还不错。

但是当调整toc.ncx时,遇到了一项艰巨的任务:目录项是有一个playOrder属性的,说实在话我不太清楚playOrder的具体作用,因为似乎顺序已经由文本本身给出了,不过我试过这个属性如果留空的话,Aldiko打开会出错。于是,在调整完目录的顺序之后,必须重新生成playOrder。

一个自然的想法是,我把playOrder="xxx"全部清空,比如清空成 playOrder="",然后再通过某个命令重新编号。

前一步很容易: 

:s/playOrder="[0-9]\{-}"/playOrder=""/

即可完成。

但是后一步怎么做呢?当然我可以写一个Python脚本什么的也很容易,不过既然我已经用VIM打开,如果能在VIM里完成岂不更好。所幸的是确实有解决之道:

:let i=1|g/playOrder=""/exe "s//playOrder=\"".i."\"/"|let i=i+1

这条命令由三部分组成:let i=1 和 let i=i+1 构成了一个变量递增的循环。我现在无意解释具体的工作原理,总之这样就是一个循环就对了。

关键是中间一句:g命令用于全局查找一个字符串,并对此字符串施加一个命令。比如:

g/\(12\)3/s//\14/  #查找123,并将3替换成4

而在上面的例子里,执行的命令是exe,exe用于执行一个命令,这个命令用一个字符串作为参数传递过来。在这里,这个字符串是:s//playOrder=\"<变量>\",其中变量的部分用字符串拼接的方法将i的值传入。

于是这件事就完成了。

vim很强大,是吧。

Android开发小感

2010年11月04日 09:18

前几天,因为更前几天的一次BT聚会上的一个偶然的想法,我开始算是半正儿八经的写了一个Android小程序。主要功能是在BT聚会时更方便的BS猪手。

程序非常小,小到没有什么可说的。我这几天做的事情无非就是查资料,抄代码,再查资料,再抄代码。如此循环。

不过小小的感想还是有一些,记录下来。没有太多技术含量,就不发到狗屎皮了。

  1. 就像我刚接触电脑那会儿一样,我写很多程序只是因为喜欢和为了解决自己的问题,而不是为了赚钱。我需要一个方便的低成本的供我使用的开发环境,以及方便的不那么正式的发布使用渠道。Android提供了这一切。感谢它。
  2. 我第一次接触Android开发是在更早的时候,当时只是浅尝辄止,并没有太过深入的去了解,当时感觉开发模式里的好多东西都很古怪很不习惯。但是这次做下来,发现其实很多当时认为的古怪模式其实是合理的,我用起来也比我自己认为的“合理方式”要更合理。所以,不要轻易批评自己不熟悉的东西。
  3. 没有可视化UI编辑器方面,我这次的界面比较简单,所以感觉用Layout配合手写还是挺合胃口挺舒服的,不知道以后碰上要精确控制的时候会不会觉得难受,以后有机会再试吧。另外现在有很多应用使用的是webkit做UI和原生组件进行交互,有机会也要试试。
  4. Android对内置资源的使用非常方便,这一点比起Windows开发真的是天差地别。在Android里你很轻松就可以做出很有Android味道的应用,而在Windows下要做出很有Windows味道的应用其实还是需要你花上很多时间的,随便做做的东西跟Windows内置风格可能会相差很大。
  5. Android 1.5/1.6和Android 2.1/2.2真是两个世界的东西。太多的差别了。版本差异我认为会是Android发展的最大短板。希望google在未来会有解决之道。这次考虑到实际情况,我只支持到了2.1/2.2,没有仔细研究1.5/1.6。
  6. Google到的中文世界的资料就是一个字:抄。搜到几百篇都是一样的,都不知道是谁在抄谁。而且根本就是古董级的东西,新版都已经不适用了,最近写的blog里居然还在抄。
  7. stackoverflow确实是好地方。

买了个新域名

2010年11月03日 22:19

虽然我一直认为在现在这个社会里,翻墙是一项上网的基本技能。不过总有些人坚持不翻墙。

为了方便访问,我还是买了一个新的域名,照顾一下不愿翻墙的同学们。

新的域名是 ch-linghu.me

原有的 ch-linghu.com 继续生效。

被认证了

2010年10月20日 18:32

我是一个很懒的人。

懒到blog很久都不来打理一下。连SB会、国庆回老家、看了盗梦空间,都懒得记录。

然而总会有人提醒我的。

这一次,是GFW。

今天有人告诉我,我的网站打不开了。

我一试,果然如此。

我这个这么低更新量的、这么低调的小网站,又不知道因为什么原因被发现,又不知道触动了GFW哪条神经,就这么被和谐了。

不过这一次我不生气。

何必要生气呢,不就是被墙了么。

谁要看我的网站,我免费教ta翻墙方法。

大家开心。

Design downloaded from free website templates.