I am LAZY bones?
AN ancient AND boring SITE

过了一周的原始社会生活

上周五约中午的时候,接到个电话,MM的爷爷去世了,于是马上关机走人.
都没来得及和大伙打声招呼,就回到了那个偏僻的小山村,接连这一周,我都生活在没有网络的原始社会里,呵呵,对于我这样网虫来说,还真是不习惯呢.
在我离开的这周里,SUN居然被收购了,呵呵,不过买家不是之前传说的IBM而是Oracle…这颗太阳就此落下,不知道以后JAVA/Vbox/MySQL会有什么样的结果,很是令人担忧啊.
另外,gmbox在我不在的这段时间里,发展并没有减缓或者滞后,真是值得欣慰.这令我又一次感觉到了开源的力量,也给了我更多的动力.
不管如何,今天我终于回来了.

在杭州机场免费上网滴办法

以下方法是我在杭州萧山机场发现的,不过可能在很多其他机场或酒店也适用,只要你那有ChinaNet的WIFI.
由于出差,昨晚在机场渡过了一段不算长也不算短的时间.想给ipod传点刚下载的歌曲,正好也带了本本,就顺手打开玩了会,一搜WIFI网络,发现有个ChinaNet信号特别强,也没有密码啥的,就加了进去,打开浏览器,一试google,发现居然真的可以上,哈哈.我还以为有免费的午餐了呢,于是就想打开自己的blog看看,却发现直接跳到了一个ct10000的网站,哈哈.这个显然是电信的收费WIFI,由于我没账号,所以打开页面都跳到登录界面了…不过电信还是比较厚道的,把google的站设置为免费了.也就是说google的域名解析和连接都是正常的免费的.
说到这里,有的朋友可能也想到了,我灵机一动,之前提过的GAppProxy不就是把google的服务器作为代理上网的,哈哈,于是打开GAppProxy,设置浏览器的代理为127.0.0.1:8000,搞定…

python 跨平台运行笔记

最近在折腾gmbox,这个东东我设想是要让它跨平台运行的,原本想跨平台可能会比较麻烦,但是试了一下才知道,确实非常简单.这都得益于python本身的跨平台特性.
纯python程序要在win下运行,只要简单地下载并安装python运行环境,就会自动做好.py文件和python的关联,要运行一个python程序,只需简单地双击即可.
如果是用pygtk的图选界面程序的画,会稍微麻烦一点点,在如上安装了python运行环境以后,还需要分别安装GTK+库PyCairoPyGObjectPyGTK才行.安装路径最好都是用默认的.
另外,我还发现,如果是在vbox的虚拟XP里运行py程序,程序所在目录又是vbox分配的”数据空间”的话,在import自己写的模块的(也就是把.py转成.pyc)时候,就会产生

这样的错误…
再另外,对于中文的处理,在纯python下,只要在所有字符串常量前加u,表示是unicode字符串,就完全没有问题的.但是到了pygtk,就会有些麻烦,也许可以参考这里.还要再研究研究.

谷歌音乐下载器

之前有很多下载baidu mp3的程序,有bash的,java的,python的,其中也包括我这个.
但是baidu的歌曲都是用程序收集自网络的,所以排行榜的歌曲质量就没有保障了,下载下来的歌曲ID3信息可谓一塌糊涂,而且还可能下载到网友自己翻唱的歌或者其他杂七杂八的东西,严重影响我们的听觉神经.
而谷歌(不是google)最近推出了谷歌音乐搜索,联合top100,也推出了类似百度榜单的音乐排行榜.但不同于百度的是,谷歌里的歌曲都是收集整理过的,不会有死链,质量也很不错,而且,对于最终非商业用途的个人用户而言,是不存在版权问题的(但我不确定批量下载下来的有没有版权问题.请用户自行考虑.).
所以我顺势就推出了这个谷歌音乐下载器 .
目前程序还很简陋,没有图形界面,也没有很多可以设置的地方.运行程序只会把”华语新歌”这个榜单的100首歌下载到本地当前目录.所以仅供有兴趣尝鲜的同学测试使用.但是以后,我打算把这个程序做成有图形界面的,可以试听/下载/播放的一个整合工具,哈哈.请大家多多关注吧.

PS:有人说这类工具还是不要发布出来,小范围流传下比较好,因为发布出来以后,很可能遭到google的封杀.这说法其实也有些道理,但是我想想,如果谷歌真的因为这个来封杀我,我也够有面子的,嘿嘿.所以我还是按照Google的Project hosting页面所说的做了: Release early, release often

访问Vbox的guest系统的方法

相信很多linuxer都用过Vbox,拿来虚拟个win或者其他的系统,很方便,用着感觉也很不错,只是今天我遇到了一点点麻烦.
我想在host里访问guest的80端口,比如在guest里跑了个apache之类的.
我的host的IP是192.168.6.239,一看guest的IP是10.0.2.15,vbox里设置的连接方式是NAT,在guest里上局域网和公网都正常,但是在host里却ping不通guest的IP…也就是host和guest的通信是单向的…
后来查了下资料,才明白原因,要实现双向通信,需要在host里虚拟一个网络设备(也就是虚拟网卡),然后通过桥接的方式将host的虚拟网卡和guest的网卡相连,就像以前用的vmware的bridge模式一样,默认就给你生成几个虚拟网卡,但是vbox却不是这样做的,它需要自己添加.具体操作方法可以参见这里这里.
步骤还是比较繁琐的,所以我用的就不是这个办法,而是另一个比较快捷的办法,当然快方法也有坏处,就是只能访问guest的一个端口,刚好,我只需要它的80端口.
步骤:用文本编辑器打开 ~/.VirtualBox/Machines/机器名/机器名.xml
然后在ExtraData那节下面添加以下三行:

这3行,相当于吧guest的某个端口映射到了host的端口. 其中 guestweb 可以替换成想要的名字.第二行的value数字,就是guest的端口号,第三行的value数字就是host的端口号.
这样启动guest以后,就可以访问 http://localhost:50000 了,哈哈.
以上方法在Vbox 2.1.4 版本试验通过.

========090409 21:00 更新========
好吧,我承认我火星了一回,其实只要 modprobe vboxnetflt 以后,再在网络连接里选 host interface,就相当于vmware的桥接了.
这样guest就能得到和host一样的IP段,并且host也可以直接访问guest.
但其实这方法也是有缺陷的,比如我之前用的是host的eth0,把guest休眠了以后,到了家里,host改用wlan0了,结果guest就没有网络连接了….
哈哈,所以我那方法还是有一定的用处的.到底用哪种,就自己决定吧~

gentoo-users.org

刚在gentoo china的 mail list 里,看到的这个有趣的网站.想把所有gentoo用户的地理位置信息共享出来,于是也去注册了一个,我的信息在这里,貌似在浙大玉泉校区有个同仁,还有TX也在附近,哈哈.
记得以前也注册过一个linux user的,忘了在哪了….

python里强大的re模块

今天遇到一个小问题,用脚本把某web页面抓取下来时,里面的中文都是类似”帮助”这样的格式.这当然不是我想要的,我需要把它转化为可读的汉字.
为了解决这个问题,首先要用到内建函数unichr:
unichr(24110) 能得到”帮”字, unichr(21161) 能到”助”字,问题是我怎么批量吧html里面的所有 &#nnnnn; 替换掉呢?
干这类事情当然需要正则表达式了,于是,去翻re的文档,还真让我给找到了,方法如下:

运行这段示例代码就可以得到我想要的结果了,哈哈.
觉得python的这个re好强大,居然替换字符串还可以是个函数…太佩服这个设计了.

一个命令把几千张照片压缩了

数码相机拍的照片,已经积累了很多个G了,于是就都备份到光盘里保存了,但是怎么处理硬盘上的数据呢?rm之觉得可惜,毕竟光盘没有那么方便,不能随时查看,但是放着又太大太浪费硬盘空间了,现在的相机一张都有3~4M的.我能想到的最好的办法,就是把每张照片压缩以后,把小图片留在硬盘上,这样即可以快速查看,又不是很浪费硬盘空间,于是有了这个命令:
注意此命令会删除当前目录及子目录下的所有jpg文件,最好是理解以后,再执行

把当前目录及子目录下的所有 xx.jpg 压缩成横竖分辨率都为原尺寸的30%的 xx_.jpg 文件.对于我的相机来说,压缩后的大约800*600的大小对于屏幕浏览来说已经足够了,而每张300K左右的尺寸也很经济.
没有convert命令的同学需要检查是否装了 imagemagick 包.
PS:真庆幸自己没在用windows了,如果是win下,估计又得上网找所谓的”绿色版图像批处理软件”了,问题是:即使找到了,能完全合我的心意吗?称心了,要找注册码吗?找到注册码了,确定不含木马病毒吗…Orz

推荐:vim使用进阶

既然在linux下混,我觉得emacs和vim里,至少得会一样.
因为我比较懒,emacs这类神的编辑器,是不太会用了,所以只能用编辑器的神──vim了.
但是一直以来,自己的vim水平还是仅限于会hjkli之类的水平,所以我自己也快看不下去了.
刚好在这个时候,发现了这篇好教程:Easwy写的vim使用进阶.
只看了前面几章,就深知这是个能造福大家的好教程.内容翔实而不肤浅,描述细致而不累赘.相信看完之后,定能让读者举一反三,进化为vim老鸟~所以,在此推荐给大家.同时感谢一下Easwy的辛勤劳动.

转:lsof用法小结

lsof在我看来算是那类很少用到却功能强大的生僻命令.因为生僻,所以经常忘记参数,而且2~3千行的man页,也经常会让人发晕.所以,偶尔看到这用法小结,转载记录一下,以便日后查找.
原文链接

lsof是一个用来显示被打开的文件的强大而有用的工具。在Unix系统中,任何事物都是文件(everything is a file),pipe是文件,IP sockets是文件,unix sockets是文件,目录是文件,设备是文件,inodes是文件。
一些有用的例子:
当在lsof后边没有跟任何参数时,该命令将会列出当前系统中被所有进程打开的所有文件

下边这几个命令指出打开某文件的进程

下边将会打印出占用httpd可执行文件的进程的进程号(仅仅是进程号,在编写shell脚本是有用)

显示出那些文件被以k打头的进程名的进程打开,以bash打头,和以init打头:

显示出那些文件被以courier打头的进程打开,但是并不属于用户‘zahn’

显示被zahn和apache打开的文件

显示那些文件被pid为30297的进程打开:

显示所有在/tmp文件夹中打开的instance和文件的进程。但是symbol文件并不在列

显示所有打开的端口

显示所有打开80端口的进程

显示所有打开的端口和UNIX domain文件:

显示那些进程打开了到www.akadia.com的UDP的123(ntp)端口的链接:

—————————————————-
translated from @ www.akadia.com

thank 寂寞烈火 for the reason of http://bbs.chinaunix.net/viewthr … &extra=page%3D5
—————————————————–
lsof还有很多参数,如果能够熟练使用将会对日常的系统管理非常有用。希望大家把一些还知道得技巧加以补充