Linux

You are currently browsing articles tagged Linux.

Linux Distro Timeline

linuxtoy.org上看到的Linux distro timeline,挺有意思的,可以从中看到一些Linux 15年来发展的脉络。

这张图和以前贴过的那张各种Linux Distro之间的关系图正好互补。

Tags:

YJubuntu: 批量处理照片的问题里介绍了他找到的在Ubuntu下批量处理照片的方法。他讲的两种方法都是基于GUI的。我到不是反对GUI,不过就像Andrew Tanenbaum (大牛阿,MINIX的作者,一堆经典CS教材的作者)的在他的FAQ (推荐读一下,挺有意思) 里说到的一条:

Do you like WYSIWYG systems?
Definitely not. I can type faster than I can point. And my mother told me that pointing is impolite.

没错,type faster than point,所以很多时候CLI会比GUI更高效便捷一点。我这一贴就说说我发现或找到的用CLI批量处理图片的方法。

这里都假设使用ImageMagick里的工具,YJ说的那个用Nautilus Image Scripts,最终调用的还是ImageMagick,相当一部分Linux(甚至Win下)的图像相关的自由软件都选择了调用ImageMagick提供的命令。

好了,假设在CLI下,resize一张照片A.JPG,用convert

  1. convert -resize 60% -quality 80 A.JPG A-resize.JPG

现在用同样的命令来批量处理同一个目录(及其子目录)下的所有JPG结尾的照片,我在Bash下用的命令是这样的:

  1. find . -name \*.JPG -print | awk -F.JPG '{ output = $1"-resize.JPG" ; cmd = "convert -resize 60% -quality 80 "$0" "output; system(cmd)}'

要是你嫌这条命令太过于安静,而你要同时处理很多照片,希望屏幕上能报告一下执行情况,可以这样:

  1. find . -name \*.JPG -print | awk -F.JPG '{ output = $1"-resize.JPG" ; cmd = "convert -resize 60% -quality 80 "$0" "output; print cmd; system(cmd)}'

这样之后,resize的照片是在当前目录下的,但是都重名了。Linux CLI下千变万化,同一件事情可能有无数种作法,比如我随便google了一下,就找到一篇,列一下里面提到的方法。

假设你在当前目录下,新建了一个目录/tmp/output,用来放resize后的照片,并且,你可以这样做:

  1. mkdir /tmp/output
  2. find . -name \*.JPG -exec convert -resize 60% -quality 80 {} /tmp/output/{} \;

用这个方法,你的output目录不能建在当前目录下(试试看,就知道为什么了), 而且没办法向上面那样重命名文件。用find的-exec还会有其他问题。find配合xargs会更有效率,比如

  1. find . -name "*.JPG" | xargs -l -i convert -resize 60% -quality 80 {} /tmp/output/{}

当然了,还可以使用perl强大的-e功能了,基本上是为所欲为了:

  1. mkdir output
  2. find . -iname "*.JPG" | perl -e 'for(<>) { chomp $_;@a=split ( /\// , $_ ) ;$str = "convert -resize 60% -quality 80 $_ output/".$a[-1];print $str."\n";`$str`}'

也可以调用shell的loop功能来通过循环做这件事情,比如在bash里可以

  1. for file in `find . -name \*.JPG`; do convert -resize 60% -quality 80 ${file} ${file%.*}-resize.JPG; done

总之,CLI下利用UNIX/LINUX的命令组合,常常会有非常简洁的实现,我上面提到的方法可能是很笨的,欢迎指正,补充。

如果要实现较为复杂的功能, 可以自己写Shell脚本,或者perl脚本等等。网上也有很多写好现成的,能实现各种功能,比如BBIPS: Bash Batch Image Processing Script,也是在CLI下用,看看它的screenshot

Tags:

Swiftfox Browser

我的系统是Ubuntu 6.06, 昨天在用Automatix看看有什么新东西的时候,突然想试试上次看见了但没装的Swiftfox,虽然我还不知道这是干什么的。

装完之后,才发现原来还是Firefox,不过号称是针对不同的Architecture优化过了的firefox,号称比firefox要快不少。这种速度快慢,很难体会,我是还没感觉出来。ubuntu论坛上有人说,他的测试结果是这样子的(单位应该是second吧):


Firefox Swiftfox
First Run: 5.5 2.5
Second: 6.4 3.24
Third: 6.7 3.39

这种测试,反正是只能参考一下,用户体验各不想同,没有太大价值。我就是关心这个Swiftfox到底做了什么优化。在它的主页上翻了半天,据我目前所知,它采取的优化是拿来Firefox的source code,然后根据不同的Processor Architecture来指定gcc的优化选项和firefox的configure arguments。比如Pentimu4,就用–arch=pentium4。以Pentimu4为例,具体的compiler flags以及configure arguments可以看这里。至于,有没有source code层面的优化,没有找到任何文档说明。如果是仅仅是这样的话, Swiftfox不会比Gentoo里面自己编译出来的firefox快。

有兴趣的,可以自己试一下,only for Linux哦,没有windows版本。swiftfox网站上直接提供ubuntu的deb包。ubuntu论坛上也有一个thread谈这个的。

BTW: 真正的Swiftfox是长成这个样子的:

据说是世界上最小的狐狸之一,就和一般家里的猫这么大。但是跑得非常快,40km/hour。

                   

Tags:

实验室新买的两台PE6800前天到货了,昨天晚上我开始试图装系统。因为不喜欢RHEL之类的企业版Linux,也为了省钱(否则,每年都要交subscription fee),所以没有要求Dell预装系统。

开箱,死沉的机器,而且竟然是用两个NEMA 5-20R的插头,才能供一台。我们原来的UPS只支持NEMA 5-15R,还要买新UPS,麻烦阿。

Anyway,先开始装机。开机,自检就要半天。然后我进Bios一看,内存显示只有16G,可是我们明明买得是32G阿。觉得Dell不可能犯这么愚蠢的错误。仔细看了一遍Bios内的选项。发现有个叫做Memory Mirroring的东东,通过memory的redundancy来增加系统的容错性和稳定性。心想,我们反正也不是用来提供服务的,只是用来计算,赶快把它disable了吧。重启,这次是32G内存了。再查看了一遍配置,Dell出厂的时候,就把RAID-1给配好了,这一层对软件透明了。所以我安装操作系统的时候,不用担心这部分了。

开始装系统,按照计划,先试试Debian Stable,启动之后,installer一起来,就freeze了。 不想折腾了,连Debian Testing也没试,我就直接换上Ubuntu 6.06 Server了。 安装非常顺利,没有遇到任何麻烦,系统就起来了。默认的是个minimize的安装,除了最基本的核心软件以外,其他什么都没装,连openssh-server都没有。很好,可以完全自己定制。最重要的是, 我担心了很久的PERC4/EI的RAID controller被轻松识别出来了。大家以后如果要买PE系列的话,选用这个controller应该没有问题,也就不用买RHEL之类的。

进入系统看一下:

$ uname -a
Linux atlantic 2.6.15-26-server #1 SMP Mon Jul 17 20:58:01 UTC 2006 i686 GNU/Linux

more /proc/cpuinfo看了一下,4个Intel Dual-Core Xeon的CPU被认作了8个CPU,每个2MB on-chip cache。
more /proc/meminfo看了一下,32G内存。

一切OK了,开始装常用软件了。

Tags:

Free Linux CD

thelinuxstore.ca致力于传播Linux,最新的计划是免费发放Linux光盘。这个计划是为了将Linux传播给那些潜在的想使用Linux,但是因为没有宽带或者其他限制,无法下载到linux iso的用户。这个计划的资金一部分来自他们on-line store的销售收入,一部分来自捐款和赞助。

现在,你可以在它们的网页要到免费的Open Suse, Fedora, Mandriva, Gentoo, Debian, Knoppix等知名Linux Distro。没有Ubuntu,因为Ubuntu本身提供免费光盘的发放

本来心痒痒,想每种都要一个,做个收藏。但是考虑到,我可以很容易得下载到以上任何一种的iso,我还是不要浪费开源社区的有限的资金了,:P。

Tags:


TOP500通常在每年六月(在ISC)和十一月(在SC)公布世界上最高性能的500个超级计算机(根据linpack结果)。

在最新公布的Top 500 Supercomputing Site (June 2006)里我们可以看到Operating system Family的统计,其中Linux占了367,Unix是98。也就是说Linux占了73.40%,而Linux + Unix占了93%。桌面系统的老大Windows一共只被两台超级计算机使用,Mac OS是5个。

可见在HPC这个领域里面,Linux还是搭建超级计算机时操作系统的首选。去年SC在西雅图举行,微软的大本营,Bill Gates还来给了Key note。当时就表达了Windows进入HPC领域的决心,并开始力推Windows Cluster Server

不过,我认为Linux在这个领域相当一段时间内还是会保持优势。因为在这个领域内,关心的不是桌面应用,windows的优势在这里不复存在。而HPC的用户相对而言都是计算机的expert,相当一部分都是从unix过度过来的,不存在使用Linux的难度。另外,多为研究机构在使用Supercomputer,Linux从kernel到开发软件到应用都是开源的,便于研究修改的需要。成本也是一个因素啦。

有没有兴趣搭建自己的HPC平台?目前的TOP500中有364个系统被认为是Cluster。其实,我们在学校很多时候就是学生自己动手搭建中小型的Cluster来满足平时的计算需求。成本仅仅是一定数量的PC和switch。操作系统和所有软件都是开源和免费的。在3,4年前,我就自己动手独立搭过一个32个节点(每个节点是一个dual CPU的PC)的小型cluster。那时候我用得是一套叫做OSCAR的套件。它是一个cluster工作维护所需要的开源软件的集合。当初,熟练之后,我用了一天左右时间就能差不多就能搞定(那时候机器不支持PXE,所以相对慢点)。随着技术的成熟,相信现在就更加容易啦。最奇妙的是,OSCAR这样的工具集能够将相关的各种各样的不同方面的软件集成到一起完成cluster的工作,完全是因为这些软件都是自由的,都是开源的,所以才提供了这样的方便,和优势。而OSCAR继续保持了它们的开源特性,使得用户有可能按照自己的需求,进行进一步的定制。这个优势,是windows这样的商业软件永远也无法企及的。

Tags:

看了Nicky’s blog » 我的ubuntu软件列表之后也一直打算写写我自己平常在ubuntu下使用的软件。

最近这半年,因为我的desktop给别人用了,我用laptop的时候,基本上是完全使用linux,不使用windows了。所以,我用电脑完成的绝大部分事情都是在linux下的。

绝大部分的软件都是用aptitude或者apt-get直接安装的,有少部分是用automix装上的,极少极少的是手工安装的。所以,总得来说,在ubuntu下安装软件,基本是不费劲的。这篇,基本上就是一个软件列表了,想到多少写多少,以后再补充。内核之类的就不写啦,桌面我用的是gnome,习惯了。但是我也使用很多kde的软件。

上网工具:

浏览器: Mozilla Firefox,firefox配合了一堆插件来使用完成绝大部分网络浏览需要的功能,我用的插件,可以看这篇,这篇之后又新增了一些,后来的帖子里面都提到过。常用的是Performancing for Firefox。我绝大部分的blog都通过这个firefox extension来publish和edit。最大的缺陷是不支持post slug。EpiphanyOpera也都装了,使用的机会不是很多。

BBS:  不用说, Qterm啦。

IM: 用Gaim上MSN,用Eva上QQ (Eva不能用apt装,不过我几乎不上QQ),Skype用来语音聊天或者PC to Phone。其实我现在更常用的IM是在Gmail里面直接用gtalk,开着firefox,login进gmail就行了,不用任何软件,简单。

RSS Reader: 还是直接浏览器用bloglines

下载: Firefox直接下了,不少时候也用wgetlftp

读Windows网络邻居:  samba

Audio & Video:

Mp3播放器: xmms,事实上最近几个月很少用这台电脑听mp3。其实,现在已经有了一大堆linux下的优秀的音乐播放器供选择。

电影播放器:Mplayer通吃 (需要w32codecs),也装有linux版本的realplayer。也用Totem看dvd。

看照片:

Eog, gthumb, gphoto

图片处理:

gimp,和ImageMagick,不过我基本上不会处理任何图片。

截屏:ksnapshot

刻光盘: k3b

游戏: 不玩游戏….

干活啦:

编辑器: EmacsVim,和gnome-edit

写文档: LaTeX

绘制示意图: xfig, 和dia,还有graphviz

产生数据图: gnuplotbargraph generator

计算: octave

office:  OpenOffice, Gnumeric

输入法: fcitx

字典: stardict

文档阅读: acroread, evince, gnome-gv

编译器之类的和开发有关的东东就不说啦。

以上软件基本上cover了我平时需要做得事情。其他的想到了再补充。

Tags:

手机的plan换到了verizon wireless。Verizon没有rollover,所以有时侯分钟数可能会紧张,如果打爆了,就会被罚不少钱。

在网上溜达的时候,看到在quiet earth发布了一个Verizon Wireless minute usage perl script。这个perl写成的script能够自动的登陆进你的verizion wireless的帐户,然后通过HTML Parser获取你这个billing cycle的分钟数的使用情况。作者的计划,是让这个script自动的将这个信息通过短信发往你的手机。不过,可以下载的那个脚本,还没有实现短信这一部分。

我觉得这个脚本的功能对我很有用,于是就拿了过来,做了一些修改,也发布在我这个blog。主要是加了短信那一部分。因为原作者发布的时候,没有任何license的信息,这种情况下我也不知道该按照何种license来发布,所以也就索性没有license了,反正一个小程序,弄着玩玩。如果原作者反对了,我就拿掉。

我修改过的脚本在这里下载。下载后请改名为verizionusage.pl。正如前面说得,主要的idea和code都来自于原来那个脚本,所以我本人没有什么太大贡献啦。

这个perl脚本使供在linux/unix下使用的,如果你想在windows下使用,需要做一些修改。

脚本下载后,需要修改开头的Configuration Section来填入一些你的手机的信息, 有详细的注释。基本上,你需要提供你在verizion wireless网站的帐号用户名和密码,你的10位数的手机号码 (写成xxxxxxxxxx,不要写成xxx-xxx-xxxx),你的email,你的plan的peak time的分钟数,和你希望报警的threshold。比如我的plan每个月是450分钟,我设置的threshold是400分钟。当我运行脚本,它如果发现当前的使用掉的分钟数已经超过了400分钟,脚本就会往我的手机送一条短信。送短信的机制很简单 (quite earth上提到了),verizon提供了一个vtext的服务,假设你的电话号码是3022345678,如果你发一封email到3022345678@vtext.com,一条短信就会把这封email的内容送到该手机。另外,你还需要提供你系统里面sendmail的位置。我用的ubuntu,sendmail在/usr/sbin/sendmail (这里假设你的sendmail是配置好,可以用的)。

假设你把脚本拷贝到/usr/local/bin,然后你就可以将它加入linux的cron中,让系统来自动得定时运行它。 比如我写的是:

   0   22  *   *   *    /usr/local/bin/verizonusage.pl

这样,每天晚上10点的时候,这个脚本就会被系统自动执行。如果,当时的使用分钟数超过了你定义的threshold,一条短信就会被发送到手机。如果没有超过的话,就不会发送短信,这样就避免了过多发送短信(短信要钱的…)。你也可以自己时不时手工运行脚本来了解分钟数的使用情况。

如果verizon的网站改版了,这个脚本可能就不能使用了。据原作者说有25%的可能性被reject connection,所以如果在peak time打了很长的电话,最好手工运行一下脚本查一查,以防自动运行的那次正好没连上。



Tags:

Google Earth Download的页面,已经有Linux版本可以下载了。

感兴趣的可以开始弄来玩玩了,我是兴趣不大。

顺手装了一个,用了一下,跑得相当流畅。

链接:

Google EARTH Blog: Major New Announcements for Google EARTH (June 12, 2006)

Tags:

最近几天,ubuntu的首页进行了改版,想必是为了6.06的release做准备。从今天凌晨开始,刷了很多次,一直还没上线。到我睡足了一觉起来,果然,推迟了两个月的Dapper Draker终于正式发行了。看了首页上的关于6.06的新闻,感觉商业气息渐浓,有点不是很习惯,除了宣布6.06的推出,还谈了和Sun的,和VMware的合作,以及LAMP(Linux, Apache, MySQL and PHP),以及如何引进commercial software。这一切,在加强用户体验(这里还是要打一个问号的)的同时,也越来越背离Debian的哲学。前段时间,用一台机器试过6.06beta,默认的desktop安装,感觉有点过于臃肿了,尤其是启动的时候(当然,这些都是后来可以去掉的,如果你足够熟悉系统)。总之,我猜Debian的铁杆们会越来越不喜欢Ubuntu的。6.06的新东西, release note里面说得很笼统,等我试用之后再说。最近很忙,为了保证电脑正常工作,短期内不打算升级到6.06。偶对了,从6.06开始,LTS(Long Term Support) 开始实行,也就是说Ubuntu将为server用户提供5年的security updates,为desktop用户提供3年的。这比之前的release长了很多。

Ubuntu 6.06推出的同时,Kubuntu 6.06Xubuntu 6.06也同时推出,和以前一样,大家根据自己的喜好选择吧。

Tags:

« Older entries



Syndication

  • |  (comments)
  • Subscribe in Bloglines
  • Add to Google
如以上的Feed无法订阅,请使用feedsky提供的feed:

Calendar

    May 2008
    M T W T F S S
    « Apr    
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  

Archives

Categories

random posts:

recent comments:

Technorati

Meta

Other