Published at: 04:11 pm - Sunday November 29 2009
在Ubuntu上安装GIS软件,可以添加这个PPA源: deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu karmic main 导入GPG KEY gpg –keyserver subkeys.pgp.net –recv 089EBE08314DF160 gpg –export –armor 089EBE08314DF160 | sudo apt-key add – 这个源中目前包含了最新版本的GIS软件: gdal 1.6 grass qgis
Published at: 06:11 pm - Friday November 27 2009
在一台赤裸裸的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 [...]
Published at: 06:11 pm - Thursday November 26 2009
前些天看到一个Nginx的Module,用来是实现Comet,今天简单试了一下功能。作者名叫Leo Ponomarev,项目地址:http://pushmodule.slact.net/ 安装 Module需要在编译时加入nginx,同时下载nginx和nginx-push-module,在nginx configure时增加一个参数: ./configure –add-module=path/to/nginx_http_push_module 使用 编写一个非常基本的nginx配置文件: events{ worker_connections 1024; } http{ server { listen 80; server_name localhost; location /publish { set $push_channel_id $arg_id; push_publisher; push_store_messages on; push_message_timeout 2h; push_max_message_buffer_length 10; push_min_message_recipients 0; } location /subscribe{ push_subscriber; push_subscriber_concurrency broadcast; set $push_channel_id $arg_id; default_type text/plain; } } } 一个简单的Server定义了两个路径分别用于publish和subscribe。所有相关的配置项可以在项目主页找到解释,不作赘述。 启动nginx nginx -c /home/sun/nginxpush/nginx-push.conf 打开一个终端访问subscribe [...]
Published at: 08:11 pm - Monday November 23 2009
如果还不算太晚的话,大家抬头看看木星拱月吧,一张笑脸少了一只眼睛。今年这木星和月亮已经腻味了半年了。我倒是清楚记得去年冬天这场面也出现过,那时依稀是火星跟金星,没今天这亮但总归比今天齐全。当然不能太强求完整不是。 我们班刚工作的同学除了在张江的两位都回去考研了,顺利的话60%的大家又要团聚了。我想经历过这半年的同学回去以后肯定有更深刻的体会,我们这个专业找工作阻力很多很大,有的是没办法的事情。现在我又是在旁观者的角度看别人了,冷暖自知,自己的状况,也只有大家自己心里有数。 话说,好久没有码字了,下班一路上想了不少事情,回来写起来却非常吃力,表达能力进一步退化,恶性循环。 又,发现冬天听广播很有感觉,最早听广播还是某个冬天晚上六点半左右电视坏了寻找的替代,一晃今年正好是第十年。至于为什么时间记得这么清楚,呵,因为当时的节目到现在印象还很深。话说现在很多人肯定不能想象,我还有过打热线电话中奖的经历,不过中的什么门票到最后也没用着。那会南京电台还在著名的延龄巷50号,这个难找的地方着实花了我很长时间去领奖。 再,这个月公司也十周年,不过到现在都没看出有什么特别的动静,也没什么可透露的,估计是比不了马云家的大场面的。
Published at: 04:11 pm - Sunday November 22 2009
The Exaile plugin “Douban Covers” has been upgraded to 0.0.2. Now there is a new preference pane inside exaile preference dialog. This update provides you an optional choice to specify your own apikey when access douban.com open api. With an apikey, your request frequency will be raised to 40 times per minute. Again, you can [...]
Published at: 02:11 pm - Friday November 20 2009
最近用Groovy的HttpBuilder模块开发RESTful服务的客户端,遇到不少问题,浪费不少时间 网上的例子都是从Grape开始的,但是按照例子上运行,无论是通过grape install还是在代码里@Grab都没有办法把http builder加到classpath里,甚至依赖关系已经下载到~/.groovy/grapes里了,但是还是在import的时候报错。用Grails的时候也是一样,如果通过ivy定义依赖,通过ant下载到lib目录中,在grails shell里还是没有办法引用。不理解了,难道还需要手动再指定path吗。最后用grails的rest插件(grails install-plugin rest)总算是下载到了path中了。 第二是http builder的报错太智能了,它会把服务器端50x的报错输出在客户端。在查看错误的时候一定要分清楚。 第三是net.sf.json-lib这个库在转json的时候有一点问题,比如这样的js对象 {“result”:”success”} 会因为key上有引号而无法解析,必须是这样的格式: {result: “success”} 至于那种是正确的json我也没有兴趣了解了,只是非常遗憾的是couchdb返回的都是前一种形式。 当然了,瑕不掩瑜,http builder还是提供了非常方便的封装,比直接用HttpURLConnection或是HttpClient更加Groovy
Published at: 10:11 pm - Sunday November 15 2009
豆瓣电台,如果你是豆瓣用户我不多说了;如果不是豆瓣用户,嗯,算了,您换台吧。 总算找到Prism的用处了。如果你在用豆瓣电台,并且你使用Firefox,那么只要安装Prism,就可以把豆瓣电台变成一个任意大小的窗口,和你的多tab的浏览器分离。如果非常巧合你是一位少数派的Windows用户,嗯,Prism在Windows上还可以最小化到系统栏。 安装Prism扩展,嗯,最好确定你的Firefox是最新的(这个下雨的晚上最新的是3.5.5),当然也别新到3.6去。OK没有问题的话,就猛击下面这个链接: https://addons.mozilla.org/en-US/firefox/addon/6665 注册都不需要了,直接点安装,然后等着重开Firefox就行了。安装完成,可以看到Tools菜单下面多了一个”Convert Website to application…” 这就是Prism,点开设置如下参数: Windows用户的选项会多一些,记得勾上那个show in the notification area(如果是这个名字的话),确定即可。 Windows用户(注意升级到3.5.5的Firefox)这时直接点桌面上的图标就可以了。由于cookie不能共享,你需要重登录一下,有必要的话最好选上“记住我”。等豆瓣电台的flash播放器出现的时候,把窗口拖到合适的大小,Prism会记住每次正常关闭时的窗口大小,下次打开就那么大。然后你把它最小化,于是就在右下角了(不好意思,至今我都不知道那个区域到底中文名叫什么,直译是提示区,但是从来没听人用普通话这么说过)。 Linux的用户稍微麻烦一些,第一次执行桌面生成的文件时会需要confirm,mark as trusted即可。因为和你的Firefox不共享数据,所以首次执行Prism程序会创建一套新的Firefox profile,然后检查插件更新,显示欢迎等等。没关系,关掉它,重新再执行一次,就会看到正常的登录框了,其他和Windows差不多。 但是Linux上的Prism还没有提供最小化到右上角(GNOME)或者右下角(KDE)或者其他什么角里的功能,怎么办?咱们有Window Manager,我是菜鸟,我刚会用Compiz,开启Scale Window吧,然后可以把窗口按比例缩小,所到不影响桌面工作,设不设置Always on top就看自己的想法了。 好的,就罗嗦到这里。
Published at: 05:11 pm - Thursday November 12 2009
问题: 您要通过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]
Published at: 10:11 am - Tuesday November 10 2009
既然是exaile-cn,就不扯蹩脚的英语了。 前天和Exaile-cn的作者进行了一些沟通,现在DoubanCovers插件已经合并到Exaile-CN项目里了。Exaile-CN为Exaile提供符合中文用户习惯的一系列插件,包括歌词插件、迷你模式等。 As exaile-cn has not been adapted to exaile 0.3, the plugin will not be packaged into public release at once. if you use svn, you can checkout the plugin from branch: svn checkout http://exaile-cn.googlecode.com/svn/branches/0.3/ For a ready to use package, download from here as mentioned before: http://bitbucket.org/sunng/exailedoubancovers/downloads/
Published at: 10:11 am - Tuesday November 10 2009
在彻查病毒之前这个网站的可访问性已经差到一定程度为此我甚至加了cron任务每天定时两次恢复文件但是怎奈病毒运行时间无常最后难免心力交瘁。 现在问题基本解决在可预见的将来网站的可访问性暂时不会再有问题了大家也不用担心打开本人网站的时候被执行广告代码或者重定向到什么世外桃源去了。 在清理病毒期间正好在linuxtoy上发了一篇文章可惜因为清理病毒没有赚到点击量和知名度了。