List your installed virtualbox virtual marchines using vbox python xpcom api

I’m sorry for the long title. Due to lack of documentation, it’s not easy to use python xpcom api from virtualbox sdk. The code below is just a sample that lists your installed virtual machines. It works on linux with VirtualBox OSE 2.0.8. Hope useful to you. import vboxapi vmsg = vboxapi.VirtualBoxManager(None, None) vbox = [...]

Posted in: 把戏 by Sunng No Comments , ,

解决Ubuntu Openbox无法启动的问题

今天在工作用的ArchLinux上安装了用Openbox取代了GNOME桌面,感觉良好,回来尝试一下在Ubuntu上也做同样的事情。不料遇到问题,在完成基本的配置之后,Openbox Session无法启动,总是自动跳回gdm。查看.xsession-errors,是gnome-setting-daemon报错: (gnome-settings-daemon:2519): GLib-CRITICAL **: g_propagate_error: assertion `src != NULL’ failed 既然是gnome-settings-daemon报错,就在.config/openbox/autostart.sh中注视掉和gnome-settings-daemon相关的部分: # Make GTK apps look and behave how they were set up in the gnome config tools #if test -x /usr/libexec/gnome-settings-daemon >/dev/null; then # /usr/libexec/gnome-settings-daemon & #elif which gnome-settings-daemon >/dev/null; then # gnome-settings-daemon & # Make GTK apps look and behave how they [...]

Posted in: 把戏 by Sunng 10 Comments , ,

使用gnome-dictionary和dictd

最近琢磨字典多一些,以前一直不知道gnome自带的gnome-dictionary如何使用,因为默认的字典源里都没有中文字典,而且离线更是无法使用。其实不然,字典服务可以自架,并且可以使用自己的字典。 在自己的机器上架设dictionary server,以ubuntu为例: 安装dictd / dict sudo apt-get install dictd dict 前者是字典服务器,后者是字典服务客户端。还可以从仓库里安装已经打包好的字典,如 sudo apt-get install dict-stardic 是一个英汉字典 dictd安装好后会默认自启动,也可以通过 sudo service dictd start 来控制dictd的启动、重启和关闭。 通过dict测试服务的状况 dict -D 命令会列出可用的数据库(即字典) 在gnome-dictionary中添加字典源 Edit->Preference->Source->Add Name: 自定义的字典名 Transport: Dictionary Source Hostname: 127.0.0.1 Port: 2628 Close之后可以到主界面打开侧边栏,在Dictionary Source中双击选定此字典,在Aailable Dictionaries里双击选中目标字典,于是就可以在gnome-dictionary里使用本地的字典服务了。 接下来安装自己的字典。stardict的网站上有很多中文字典,上面也都标示了授权协议。要在dictd里使用这些字典,需要进行一个简单的格式转换。安装一个工具 sudo apt-get install dictconv 它的使用方法: dictconv -o OUTPUT_FILE INPUT_FILE 在input_file指定stardict的.ifo文件,在output_file指定要生成的dictd的.index文件。这个转换非常耗时,需要有足够的耐心。这个操作将会生成.index和.dict文件。对.dict文件进行压缩: dictzip OUT.dict 转换完成后,编辑/var/lib/dictd/db.list文件,在其中添加一个database定义 [...]

Posted in: 装备 by Sunng No Comments , , , ,

翻译po

翻译一个po文件。确认安装了gettext工具包。 cd到po目录,创建pot intltool-update –pot 创建相应的语言文件,例如zh_CN msginit -l zh_CN.utf8 程序会提示选择或输入邮箱,之后就会生成zh_CN.po文件,打开文件,逐条编辑msgstr即可。 手动编辑LINGUAS文件,按顺序将zh_CN添加到其中。 可以通过这个命令查看翻译的进度 msgfmt -cv zh_CN.po 对于更新pot更新的情况,可以使用命令更新po文件 intltool-update zh_CN 参考: http://live.gnome.org/TranslationProject/LocalisationGuidezh http://blog.chinaunix.net/u1/37261/showart_476642.html

Posted in: 把戏 by Sunng No Comments , ,

在RHEL4上搭建Python/Lighttpd/FastCGI环境

在一台赤裸裸的RHEL4上部署web.py程序,一切从几乎是从零开始。以下操作均以root用户操作。 1. 安装MySQL数据库 下载安装MySQL wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.41-linux-i686-glibc23.tar.gz/from/http://mirror.services.wisc.edu/mysql/ 解压,按照INSTALL文件说明进行安装,不多赘述 2. 安装Python环境 下载Python源码 wget http://www.python.org/ftp/python/2.6.4/Python-2.6.4.tar.bz2 解压,编译安装,不需要特殊操作。 下载Easy_install wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg 安装 sh setuptools-0.6c11-py2.6.egg 安装相关Packages easy_install DBUtils easy_install flup easy_install web.py 安装mysql-python mysql-python包不能用easy_install安装,手动下载 wget http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3b1/MySQL-python-1.2.3b1.tar.gz?use_mirror=softlayer 加压,编辑site.cfg 指定mysql_config的路径,注意是新安装的mysql路径 mysql_config=/usr/local/mysql/bin/mysql_config 编译、安装 python setup.py build python setup.py install 声明libmysqlclient路径 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib 3. 安装服务器环境 下载安装fastcgi头文件 wget http://www.fastcgi.com/dist/fcgi.tar.gz 解压,默认编译安装 下载安装PCRE wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.bz2 解压,默认编译安装 下载lighttpd wget [...]

Posted in: 手艺 by Sunng 7 Comments , , ,

Use pipe in subprocess

问题: 您要通过python的subprocess模块执行一些命令,要在程序中获得命令的标准输出,此外,命令中还有管道操作。 解决: 以这个命令为例: cat /home/admin/deploy/log/2009-11-11.log |grep example.com |wc -l import subprocess cmd1 = ‘cat /home/admin/deploy/log/2009-11-11.log’ cmd2 = ‘grep example.com’ cmd3 = ‘wc -l’ pipe1 = subprocess.Popen(cmd1.split(), stdout=subprocess.PIPE) pipe2 = subprocess.Popen(cmd2.split(), stdin=pipe1, stdout=subprocess.PIPE) pipe3 = subprocess.Popen(cmd3.split(), stdin=pipe2, stdout=subprocess.PIPE) result = pipe3.communicate()[0]

Posted in: 把戏 by Sunng No Comments ,

Restore Nautilus to open gnome menu after installed PCManFM

After installed PCMan File Manager with LXDE, the gnome “places” menu items were opened by PCManFM as default. To switch back to nautilus, follow these steps: check /usr/share/applications/nautilus-folder-hanlder.desktop make sure the line “Exec=nautilus” is not modified. (There are lots of hack article that teach user to change default file manager by modify this) check /usr/share/applications/defaults.list [...]

Posted in: 把戏 by Sunng 2 Comments , ,

Gnome Shell

续昨,好吧,这个无聊的国庆假期就献给karmic了。gnome-shell已经可以在软件仓库里找到了,apt-get安装即可。要使用gnome-shell可以执行 gnome-shell –replace 要把gnome-shell作为默认的窗口管理器,打开gnome的配置编辑器,找到/desktop/gnome/session/required_components,把panel和windown-manager全部改成gnome-shell,重新登录即可。 上个图: 当然了,还没有正式release,大家试用尝鲜注意安全第一。

Posted in: 装备 by Sunng 17 Comments , ,

libchamplain: Map Widget of Gnome Desktop

续昨,虽然昨天升级到了gnome2.28,也安装了libchamplain,但是却没有发现这个库应用。Ubuntu上的Empathy似乎是没有把location support编译进去。看不到效果怎么办,好在libchamplain的作者还提供了另一个应用。这是一个eog的插件,用于读取照片的exif信息中的gps latitude和longitude,进而将他显示在libchamplain的地图里。 安装这个插件可以follow官方网站上的做法,当然开发包、头文件之类的东西要齐备。 libchamplain使用了clutter,在载入地图的时候还有fadein的效果。clutter是将要应用在下一代桌面gnome shell中的图形特效库。 插件是用C写的,可以看成是libchamplain的一个例子,作者说已经有了其他语言的binding,如此未来在gnome桌面上开发tile地图程序会变得简单。

Posted in: 装备 by Sunng 2 Comments , , ,

Upgrade to Karmic

今天凌晨Ubuntu 9.10 Karmic的beta发布了,实在忍耐不到月底了,上午就update-manager -d升级了发行版。从下在到安装完成用了大约三个小时,当然升级不用花什么精力,只要让程序自动去处理就好了,现在跨版本升级越来越轻松了。 配好以后感觉还是很值得升级的,大概多半是因为Kernel 2.6.31,这次桌面性能的提升真的非常大,之前从来没有这么明显的感受。举个例子,很惭愧,我这机器在上一个9.04版本里alt-table的Application Switcher都还会卡,现在已经一如之前不开compositing时的性能了。 既然是ubuntu,还是要提一下面子上的事情。GDM有变化,按照release notes上说的是全部重写了。在从gdm登录到桌面载入之间有了一个loading效果,体验很不错。然后是Ubuntu主题变了,human不再是黄的了,变成了深褐色,有了新的图标主题humanity,尤其是在桌面的右上角区域很有特点。 再有就是Gnome2.28的变化还有Ubuntu对gnome相关的增强了,这次激进了一些,居然赶在arch更新之前在ubuntu上体验了gnome的新版本。主要有几个变化: indicator变得更强大了,现在indicator和evolution empathy gwibber等等软件有了更好的集成,在indicator-applet里可以看到这些软件的新消息通知,另外indicator和原来Ubuntu的session manager也集成了,可以通过session manager设置empathy的状态。 empathy变化很大,据说已经支持xmpp的geolocation extension了,早先我就转载过一个在osm上显示xmpp好友位置的截图。不过这个功能似乎又没有在ubuntu的版本里找到,可能ubuntu这边还是有点谨慎吧。倒是geoclue这个框架已经被加进apt-get了,可以看出相关的工作确实是在进行中。 epiphany开始用webkit内核了,这样可以把midori彻底踢开了,epiphany也算是找到了自己在linux桌面上存在的意义。empathy可以抢走pidgin的位置,epiphany想强firefox的位置还是挺难的。 还有Ubuntu似乎修改了gnome桌面gnome-panel/panel-menu-item.c里面的参数,之前当places里的书签数大于5之后会产生一个Bookmarks子菜单,现在这个数值似乎变成了8,当然只是猜测,因为gnome的代码里这个值仍然是5。发现这个变化的过程实在比较无聊。。。 据说2.28的Evince看书的时候记annotation了,不过我好像没有发现这个功能,Gnome的release notes上也只是提了一下并没有发截图。 我还是很感激每半年就有很多新特性可以去discover的,这种感觉很不错。

Posted in: 装备 by Sunng 2 Comments , , ,