显示标签为“unix”的博文。显示所有博文
显示标签为“unix”的博文。显示所有博文

2007年12月11日星期二

PDF文件的分割与合并

装个pdftk就行了。

分割可以采用分段抽取来搞定:
pdftk wxPIA.pdf cat 114-146 output chapter04.pdf

合并:
pdftk chapter0*.pdf cat output part1.pdf

还可以将A文档的某些页和B文档的某些页拼起来:
pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf

添加附件:
pdftk chapter01.pdf attach_files ../chapter-01/* output chapter01a.pdf

拆离附件:
pdftk chapter01a.pdf unpack_files output ./chapter-01/

更复杂的应用还是看项目主页上的文章吧。

另外, 这东西用到libgcj,估计部分是用java写的,反正运行起来有点慢。

2007年1月7日星期日

故纸堆(1): 初识UNIX

元旦搬家时整理东西,把一些旧东西翻出来了。

当初学校搞教学改革,在我们系试验一入学校就学习C语言,并且开发系里的机房让我们自由使用。但该机房采用的DEC的Ultrix,我们那时还不明白为什么这里的编辑器和学校机房里面的Turbo C差别怎么那么大,还遇上一个有货倒不出的博士后当我们的C语言教师,跌跌撞撞、懵懵懂懂地走了过来。

这是当初机房管理员给我们准备的袖珍用户手册。


后来我们在这个系统上学习Shell编程,玩hangman,玩telnet, 玩MUD(连不能显示中文的哑终端也被热情高涨的同学们拿来练功)。

十年河东,十年河西,开始的时候,我们只能玩哑终端,小机房里面的图形工作站只能研究生才能使用。但到了大四,它们都被请走了,被换成了PC,装上了Windows,我们借着使用Matlab和SimuLink的名义在那里玩游戏。再一转眼,DEC竟然被搞PC出身的Compaq给收购了。

2006年11月17日星期五

Joel: UNIX与Windows二元文化

买了一本《Joel谈软件》在看,里面有一篇《二元文化》讲到了Windows与UNIX在文化上的差别。

搜了一下,找到了原文Biculturalism 和繁体翻译《双元文化主义》。

这是篇老文章了,说UNIX倡导的是对其他程序员有用的输出,而Windows倡导的是让你的姨妈能够用软件做点事情。倒无所谓谁对谁好,只是出发点不一样。有一腚道理哈。

2006年6月14日星期三

sourceforge下载文件更麻烦了

每次提到download manager, 总有热心的网友出来让我直接用wget,又稳定又强大。其实我也常用wget直接下载,只是有些时候将网址拷贝下来再贴到终端里面去总还是有点麻烦。

sourceforge 最近就开始在制造这种麻烦了:本来从sourceforge下载文件就得先选mirror, 够麻烦的了,这两天又习惯性的将链接拷贝下来,贴到terminal里,谁知道出现的是── javascript:document.dlform.submit()

实在搞不明白sf“点解要冈样做”。

过了一会儿,Firefox的下载文件对话框又出来了,要是没有安装一个flashgot,还得取消再来。

2006年5月26日星期五

Joel: UNIX与Windows二元文化

买了一本《Joel谈软件》在看,里面有一篇《二元文化》讲到了Windows与UNIX在文化上的差别。

搜了一下,找到了原文Biculturalism 和繁体翻译《双元文化主义》。

这是篇老文章了,说UNIX倡导的是对其他程序员有用的输出,而Windows倡导的是让你的姨妈能够用软件做点事情。倒无所谓谁对谁好,只是出发点不一样。有一腚道理哈。

2006年5月18日星期四

GIMPshop: 模仿Photoshop界面的GIMP

GIMP算是自由软件界的一个明星,它甚至导致了gtk+的诞生。如果说让Photoshop从Windows转移到Linux,估计很多人都会想到推荐GIMP。

但据年初Novell的一份调查 显示,最被用户期望移植到Linux桌面的应用程序还是Adobe Photoshop。GIMP并不被Photoshop的用户所接受,有不少人在讨论为什么会这样(Why Photoshop tops most-wanted Linux app list, GIMP Not Enough for Linux Users? )。

首先习惯是个很麻烦的问题: 有很多人很受不了GIMP的SDI界面,而且还想用他们在Photoshop里面用熟了的快捷键。

于是有了GIMPshop: GIMPshop is a hack of The GIMP to make it look more like Photoshop.

2006年5月14日星期日

书籍: The Art of UNIX Programming

五一前在书店看见了这本《UNIX编程艺术》(The Art of UNIX Programming), 早听说过这本书了,ESR也把它发布在了网上,但阅读大篇幅的英文的俺还是觉得费劲,而且也越来越不喜欢在电脑上看书了。

“此书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S. Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为此书贡献了宝贵的内容。此书内容涉及社群文化、软件开发设计与实现,覆盖面 广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。”

用了三天把它囫囵吞枣地看完了,感觉还不错。通过这本书,不能具体地学习到某种技术,但可以更多地了解“UNIX为什么是这个样子,为什么要这样来 做某个功能”。过两天要给一帮新员工进行“UNIX基础”培训,我一直在为这个太泛的主题具体应该怎样讲有些发愁,这下有内容了。

不过作者似乎有点罗嗦。另外似乎总是对其他系统总是不屑一顾的样子,似乎连“尺有所短,寸有所长”都不肯承认。跟Joel On Software 对比着看你会发现相当有意思。

不过,还是需要仔细研读一番。

链接:

一篇评论

CHM版本(并非长期有效)

2006年3月11日星期六

普通用户如何解开iso (图?)

普通用户如果没有loopback设备的访问权限,用不了mount -o loop,要怎样才能解开iso9660映象(image)呢?

可以用cdrtools包提供的isoinfo工具(Debian中该工具在mkisofs包):

Extract iso with isoinfo

2006年2月6日星期一

受不了d4x和gwget了,改用wget

Firefox自己的下载界面有点烦人,而且下载大一点的文件似乎也不可靠。虽然我装了FlashGot,却一直找不到一个满意的Download Manager。

最开始用KDE时用kget还比较凑合,但现在用GNOME,试过d4x和wget。d4x相当不稳定,经常崩溃;gwget的功能太弱,易用性也差,最要命的是有时看它啃嗤啃嗤忙乎完了,结果却发现它下载的文件不存在,不知道弄哪里去了。

算了算了,直接用wget吧。


配置FlashGot,新增加一项,名称为"My Wget",设置:

exectuable path: /usr/bin/rxvt

arguments: -e /usr/local/bin/mywget.sh

mywget.sh如下:

#!/bin/sh

rootdir=${HOME}/Downloads

[ ! -d $rootdir ] && mkdir -p $rootdir

cd $rootdir
f=`zenity --title="Save file to..." --file-selection`
[ "foo$f" == foo ] && exit 1
targetdir=`dirname $f`

cd $targetdir
wget $*
echo "......Press any key to close this window."
read foo
User Comments
改了一下
bamanzi | 07 二月, 2006 23:21
用zenity来选择保存文件的位置(但没法做到精细,因为必须要选择一个文件才能返回,对空目录就有问题了)
确实没有什么好用的下载工具
hzhr | 15 二月, 2006 22:32
:(

2006年1月22日星期日

Tencent不让gaim登录QQ了?

继前几天gaim登录不上MSN之后,这两天连QQ也不能登录了。不同的是,我这里切到Windows下用MSN Messenger自己也登录不上MSN,但QQ却可以。所以也不知道是不是Tencent不让登录了,因为近来似乎QQ的客户端越来越多了:

2006年1月12日星期四

smiley in shell prompt

bamanzi@limi808 ~/qref
$ :) dir
qref.sourceforge.net

bamanzi@limi808 ~/qref
$ :) false

bamanzi@limi808 ~/qref
$ :(

Add the following in your ~/.bashrc

smiley() {
if [ $? -eq 0 ]; then
echo ":) "
else
echo ":( ";
fi
}

export PS1="$PS1\$(smiley)"


User Comments
interesting
dearvoid | 14 一月, 2006 09:58
下次在 MSN 上看到你时告诉你如何输入斜线 :-)
(no subject)
jazzi | 15 一月, 2006 11:53
我实践了一下,cool,很有意思
Re: dearvoid
bamanzi | 15 一月, 2006 12:10
最近MSN老上不去啊,不知道是不是gaim需要升级了?


2005年7月26日星期二

几个画UML图的工具

Dia

前两天工作时需要画UML图,所以折腾了一下dia。功能比较少,其实它只是一个画图工具,不过也可以画UML图。这个东西倒是满简单的。另外还有一个dia2code,可以把dia画出的UML图转换成C/C++/Java/Python/SQL/C#代码框架。

Gaphor

这个东西是用Python+Gnome写的,说是比较适合Gnome环境。功能也不太多,但似乎UML2.0里面的大部分都支持了。另外也提供了Windows版本。

TCM

自己折腾了半天将dia移植到了cygwin,回头才留意到cygwin原来早收录了一个建模工具tcm。这个工具是用Motif库写的,界面难看一点。具体功能怎么样,还不太清楚。

Umbrello

这是一个KDE上的建模工具,风格上做得跟Rational Rose比较接近(我觉得KDE下的仿Windows商业软件的东西比较多,这样习惯了Windows下一些软件的人迁移过来就容易一些。而gnome在这方面就做得比较差,一个例子就是Gnome OfficeKOffice, 前者这么久了就只有AbiWord和Gnumeric,没有做幻灯片的,没有画流程图的... )。手头没有KDE环境,还没试过。

BTW: Debian里面收录了一个软件包uml-utilities,不要误会,这个东西跟这里说的UML没有什么关系,而是User Mode Linux的意思。

2005年7月23日星期六

试试quilt

作为一个偶尔的hacker,维护一个软件包的一堆patch是非常痛苦的事情,尤其是有的patch对另外一些有依赖时。一个例子是原来对 dillo感兴趣时搜集了第三方patch,另一个例子是目前在维护的sylpheed-claws的cygwin移植版本。结果是:1. 我放弃了对dillo-enhanced的cygwin版本的维护; 2. sylpheed-claws的cygwin我现在也只提供一个all-in-one的补丁,不再提供各个改动分开的patch了 :-(

看见Debian Planet上有DD说已经在用quilt来维护一个软件包的补丁,说是很不错。于是找来玩了一下。

quilt就是为了解决前面那一类问题诞生的。它基于原来Andrew Morton为维护内核补丁而制作的一堆脚本(想想维护1000个补丁是什么感觉?)


我按照文档试用了一下,感觉这个东西大致是这样工作的
首先,quilt只需要一个源代码树, 其次,quilt的工作对象是patch
quilt new foobar1.diff 开始一个新的patch,然后你就应该在这个patch上工作
quilt edit some/file.c指定要对some/file.c做一些修改,quilt会自动备份这个文件
如果你后面还要修改some/file.c,可以直接用vi some/file.c,不一定要再quilt edit some/file.c
quilt refresh 完成当前的patch工作,生成输出foobar1.diff
当然,在你开始一个新的patch之前,你还是可以继续修改,然后用refresh重新生成补丁
quilt add foobar2.diff 如果你要在foobar1.diff的基础上开始一个新的patch,就用这个命令
quilt pop 抛出当前的patch,如果当前栈内只有一个,那么原来树就复原了
quilt push 将series中下一个补丁压入栈,就是apply那个补丁
quilt import some-patch.diff 从一个patch文件中导入一个补丁

举个例子,某个源代码包我通过quilt维护了1.diff, 2.diff, 3.diff三个补丁,但现在新的upstream release来了
quilt push 应用第一个补丁
quilt push 应用第二个补丁,
但这个补丁应用失败,怎么办? 用quilt push -f强制补丁,然后编辑源代码,修复被拒绝的文件,然后
quilt refresh 刷新第二个补丁
然后
quilt push 应用第三个补

2005年7月14日星期四

quilt

quilt is a tool for managing a series of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, etc.

gquilt is a PyGTK GUI wrapper for quilt.

See also: meld

Unfortunately, quilt could be successfully built on cygwin :-(

2005年4月18日星期一

How to disable beeping in console?

8.6.7 禁用声音(响铃)

最直接的方法是拔掉PC喇叭;-),对于Bash shell可执行:

     echo "set bell-style none">> ~/.inputrc

8.6.7 Disable sound (beep)

One can always unplug the PC speaker. ;-) For the Bash shell:

echo "set bell-style none">> ~/.inputrc