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,也可以用它做一些预处理的。只是我这次没有试。
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)
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很强大,是吧。
2010年11月04日 09:18
前几天,因为更前几天的一次BT聚会上的一个偶然的想法,我开始算是半正儿八经的写了一个Android小程序。主要功能是在BT聚会时更方便的BS猪手。
程序非常小,小到没有什么可说的。我这几天做的事情无非就是查资料,抄代码,再查资料,再抄代码。如此循环。
不过小小的感想还是有一些,记录下来。没有太多技术含量,就不发到狗屎皮了。
- 就像我刚接触电脑那会儿一样,我写很多程序只是因为喜欢和为了解决自己的问题,而不是为了赚钱。我需要一个方便的低成本的供我使用的开发环境,以及方便的不那么正式的发布使用渠道。Android提供了这一切。感谢它。
- 我第一次接触Android开发是在更早的时候,当时只是浅尝辄止,并没有太过深入的去了解,当时感觉开发模式里的好多东西都很古怪很不习惯。但是这次做下来,发现其实很多当时认为的古怪模式其实是合理的,我用起来也比我自己认为的“合理方式”要更合理。所以,不要轻易批评自己不熟悉的东西。
- 没有可视化UI编辑器方面,我这次的界面比较简单,所以感觉用Layout配合手写还是挺合胃口挺舒服的,不知道以后碰上要精确控制的时候会不会觉得难受,以后有机会再试吧。另外现在有很多应用使用的是webkit做UI和原生组件进行交互,有机会也要试试。
- Android对内置资源的使用非常方便,这一点比起Windows开发真的是天差地别。在Android里你很轻松就可以做出很有Android味道的应用,而在Windows下要做出很有Windows味道的应用其实还是需要你花上很多时间的,随便做做的东西跟Windows内置风格可能会相差很大。
- Android 1.5/1.6和Android 2.1/2.2真是两个世界的东西。太多的差别了。版本差异我认为会是Android发展的最大短板。希望google在未来会有解决之道。这次考虑到实际情况,我只支持到了2.1/2.2,没有仔细研究1.5/1.6。
- Google到的中文世界的资料就是一个字:抄。搜到几百篇都是一样的,都不知道是谁在抄谁。而且根本就是古董级的东西,新版都已经不适用了,最近写的blog里居然还在抄。
- stackoverflow确实是好地方。
2010年11月03日 22:19
虽然我一直认为在现在这个社会里,翻墙是一项上网的基本技能。不过总有些人坚持不翻墙。
为了方便访问,我还是买了一个新的域名,照顾一下不愿翻墙的同学们。
新的域名是 ch-linghu.me
原有的 ch-linghu.com 继续生效。
2010年10月20日 18:32
我是一个很懒的人。
懒到blog很久都不来打理一下。连SB会、国庆回老家、看了盗梦空间,都懒得记录。
然而总会有人提醒我的。
这一次,是GFW。
今天有人告诉我,我的网站打不开了。
我一试,果然如此。
我这个这么低更新量的、这么低调的小网站,又不知道因为什么原因被发现,又不知道触动了GFW哪条神经,就这么被和谐了。
不过这一次我不生气。
何必要生气呢,不就是被墙了么。
谁要看我的网站,我免费教ta翻墙方法。
大家开心。