Archive

Author Archive

WordPress 3.0 Update Network超时

September 1st, 2010 li No comments

最近将Blog升级到Wordpress 3.0. 新版本支持multisite模式, 我正好可以把几个Blog合并管理. 激活多站点模式后, WordPress管理菜单中新出现了Super Admin菜单, 下面包含Update菜单项, 在Wordpress升级后, 可以通过Update Network功能同时更新当前站点下的所有Blog.

不过最近使用Update Network功能从来没有成功过, 猜测是超时的问题. 我服务器使用的是nginx + php5-fpm, nginx的error.log中相关错误是ms-upgrade-network.php脚本产生的upstream timed out: Read more…

Categories: Wordpress Tags: , ,

在Ubuntu上安装L2TP/IPsec VPN服务器

August 30th, 2010 li No comments

最近用VPN翻墙比较流行, 我也赶了一下潮流: 买了一个Linode的VPS, 安装了最新的Ubuntu Lucid (10.04), 并在上面配置了L2TP服务器.

以下虽然是在10.04上的配置过程, 但应该对其他版本的Ubuntu同样适用.

2010-09-01: Ubuntu ppa没有karmic上的openswan包, 只能自己编译了, 或是下载我预编译的版本, 参照后面说明.

1. 安装OpenSWAN

L2TP(Layer 2 Tunneling Protocol)顾名思义, 是2层隧道协议. 这个协议的认证方式不是非常安全, 因此实际使用中, 往往将L2TP和IPsec结合, 客户端和服务器之间, 首先通过IPsec生成安全信道, 之后再进行L2TP协议的交互.

因此, 安装L2TP服务器, 首先需要安装IPsec软件. 目前在Linux下, 有FreeSWAN, OpenSWAN, StrongSWAN三款IPsec协议的实现. 这里我用的是OpenSWAN.

目前Ubuntu Lucid中官方自带的OpenSWAN版本是2.6.23. 可惜的是, 这个版本的OpenSWAN有bug, 无法和L2TP服务器配合使用, 必须至少升级到2.6.24以后. 因此需要安装Ubuntu提供的非官方OpenSWAN升级版. Read more…

Categories: 开源软件 Tags: , , , ,

Bambook内测体验

August 19th, 2010 li No comments

前几天在起点的官方网站上看到Bambook的内测消息, 看看自己的帐号好像还符合盛大对内测用户的资质要求: "注册一年以上, 余额至少50元", 于是就申请了Bambook的内测.

据说这次Bambook的内测只发3500个内测邀请, 因此申请了以后我也没在意, 总认为人会很多, 肯定抽不上. 8月6号申请之后, 也一直关注邮箱和Bambook的官方网站, 看到盛大9号已经开始发送邀请码了, 而我直到12号也没收到, 因此更加放弃了.

阴差阳错, 我12号中午整理Gmail的垃圾邮件箱时, 翻出了Bambook的邀请码. 怎么就进垃圾邮件箱了呢, 也不知道多少Gmail用户没有收到邀请码. 根据盛大后来修改的规定, 邀请码24小时有效, 但是我的邀请信是9号发出的, 貌似已经过期了.

不过, 我抱着试一试的心态, 用"过期"的邀请码竟然还可以下单, 就这样上了贼船. Read more…

Categories: 数码产品 Tags: , , , ,

Python调用搜狗云输入法的小例子

January 22nd, 2010 li 2 comments

写了个Python的小例子,调用搜狗云输入法获取汉字。感谢xzap在搜狗论坛发布的bash脚本,但觉得bash还是略微晦涩了点,用python说明搜狗云输入法的API更加清晰一点。

#!/usr/bin/python                                                                                                                                           
from urllib import urlopen
from cgi import parse_qs
 
url = 'http://web.pinyin.sogou.com/web_ime/get_ajax/%s.key'
 
py = raw_input('input pinyin: ')
res = urlopen(url % py).read()
dic = parse_qs(res)
lst = eval(dic['ime_query_res'][0]).split('\t ')
words = map(lambda x: x.split('\xef\xbc\x9a')[0], lst)
counts = map(lambda x: x.split('\xef\xbc\x9a')[1], lst)
 
for i in range(len(words)):
    print words[i], counts[i]
 
exit

运行该脚本的输出结果如下,每行前面是候选词/句,后面是该候选词/句消耗的英文单词字母个数:

$ ./sogou.py
input pinyin: nihaosgysrf
你好搜狗云输入法 11
你好是 6
倪豪士 6
你好 5
拟好 5
倪浩 5
泥蒿 5
倪昊 5
倪皓 5
匿号 52222222222
Categories: 中文化 Tags: , , ,

Seccomp和系统调用过滤

December 8th, 2009 li 1 comment

Seccomp v1

Seccomp是2005年Andrea Arcangeli在Linux内核加的一个功能,为了给*Grid计算中的应用*提供sandbox模型。运行在Seccomp模式下的进程,只能执行下面几个系统调用:
    read(), write(), exit(), sigreturn()

Read more…

Categories: 开源软件 Tags: , , ,

Visual C++编译环境免安装命令行版

November 13th, 2009 li 4 comments

VC的IDE开发环境很好,但太大了,经常是2005/2008/2010装一大堆,占用几十G的空间。用惯了Linux的命令行方式,觉得小巧精致。于是想把VC的基本命令提取出来,也做一个绿色版本。

保留基本的编译命令,cl、lib、link、ml之类的。编译工程只能用nmake了。vcproj工程文件怎么办?用scons重写一个吧。(其实命令行也有个vcbuild)。

制作绿色版之前,首先要安装一个VC,再把其中用到的文件提取出来。或者直接快进到后面找下载链接。

Read more…

Categories: Windows Tags: , ,

stratagus最新Windows版

November 13th, 2009 li 9 comments

简介

stratagus的前身是freecraft。freecraft重写了Blizzard公司的经典游戏Warcraft II的RTS游戏引擎。后因版权问题改名。freecraft改名后分成了几个部分,stratagus项目承接了其游戏引擎的部分,wargus在stratagus引擎上进行二次开发,几乎完美重现了Warcaft II的功能。下面是Wargus/Stratagus的效果:

stratagus1 stratagus2 stratagus3 stratagus4

下载说明

Read more…

最近用scons的收获

November 13th, 2009 li 3 comments

背景

Windows平台上的编译工程工具很多,Visual C++ 6的dsp文件,2003以后用的vcproj,以及最近2010支持的用msbuild编译的vcxproj,加上古老的nmake,cygwin、msys移植的make,等等很多。

make的问题是扩展性比较差,尤其是在Windows平台上,nmake的功能更弱,导致写一个工程文件很费劲,管理多个工程有大量的重复工作要做。make最大的问题是不能automake那种简洁的工程写法(automake同样存在扩展问题,m4语言不懂).

最新的msbuild 4.0试用了一下,感觉不是很好,很费劲。因为最近迷恋上了命令行,一直不愿意安装完整的Visual Studio 2010 Beta 2,直接把2010的命令行拷贝出来用cl.exe之类的。想只装.Net Framework 4.0就试试msbuild,发现不行,把2010里的msbuild相关资源拷贝出来也不行。而且用XML手写工程文件很麻烦。

猛然想起之前听说过,鼎鼎大名,但之前简单了解后放弃了的scons。再次使用之后,才发现scons的妙处。

Read more…

Categories: 开源软件 Tags: , ,

Visual C++ 2009编译libmikmod

November 10th, 2009 li 7 comments

1. 主页 http://mikmod.raphnet.net/

2. 最新版本 3.2.0-beta2,2004年2月发布

    下载 http://mikmod.raphnet.net/files/libmikmod-3.2.0-beta2.zip

3. 编译依赖

    DirectX SDK中的头文件。最新的DirectX SDK 2009 Auguest可以从微软(http://is.gd/4Q3Mo)下载。或者只下载其中include目录和lib目录打包(http://is.gd/4Q416)。

4. 编译方法

    解压后,从Visual Studio 2008的命令行提示符下进入win32目录,首先设置INCLUDE变量,然后编译。如果编译静态链接库,可以参见下例(把directx的目录修改成自己的):

cd win32
set INCLUDE=..\..\directxsdk-0908\include;%INCLUDE%
nmake -f makefile.static

Read more…

Categories: 乱七八糟 Tags: , ,

Visual C++ 2008编译libpng

November 9th, 2009 li No comments

1. 主页 http://www.libpng.org/pub/png/libpng.html

2. 最新稳定版本 1.2.40

    源码下载 http://download.sourceforge.net/libpng/lpng1240.zip

3. 编译依赖

    依赖zlib。要求名为zlib的目录位于和libpng源码平级的目录下。libpng会自行编译zlib的源码,而zlib 1.2.3版本中的汇编代码在VC 2008下编译存在问题,参见zlib的编译说明

4. 编译方法

    打开源码中的projects\vc71\libpng.sln工程文件。编译DLL ASM Release和LIB ASM Release就可以了。会得到libpng.lib、libpng13.lib、libpng13.dll。

5. 注意

    ligpng会编译自己的zlib1.dll和zlib.lib,不知道编译参数和zlib自己的工程文件是否一样,也不知道和zlib工程文件编译出的dll和lib会不会冲突。这个问题留待考察。

Categories: 开源软件 Tags: , , ,