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

2010年1月22日 dipplum 没有评论

写了个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
分类: 中文化 标签: , , ,

Seccomp和系统调用过滤

2009年12月8日 dipplum 1 条评论

Seccomp v1

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

阅读全文…

分类: 开源软件 标签: , , ,

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

2009年11月13日 dipplum 3 条评论

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

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

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

阅读全文…

分类: Windows 标签: , ,

stratagus最新Windows版

2009年11月13日 dipplum 没有评论

简介

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

stratagus1 stratagus2 stratagus3 stratagus4

下载说明

阅读全文…

最近用scons的收获

2009年11月13日 dipplum 没有评论

背景

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的妙处。

阅读全文…

分类: 开源软件 标签: , ,

Visual C++ 2009编译libmikmod

2009年11月10日 dipplum 7 条评论

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

阅读全文…

分类: 乱七八糟 标签: , ,

Visual C++ 2008编译libpng

2009年11月9日 dipplum 没有评论

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会不会冲突。这个问题留待考察。

分类: 开源软件 标签: , , ,

Side-by-Side Assembly相关

2009年11月9日 dipplum 没有评论

什么是Side-by-Side Assembly?

Side-by-Side Assembly(建称SxS)是微软在Visual Studio 2005(Windows 2000?)中引入的技术,用来解决Windows平台上的DLL Hell问题。DLL Hell的介绍可以看Wikipedia的文章。简单的说,DLL Hell窘境包括了Windows应用程序依赖的DLL带来的若干问题,包括同名DLL、DLL升级、DLL载入顺序等等。

Side-by-Side Assembly按照我的理解,是一种特殊的DLL,按照Side-by-Side Assembly的要求开发的,并用XML格式的manifest和policy文件描述的。所有的系统Side-by-Side Assembly都安装在Windows目录下的WinSxS子目录里,有一堆的目录、DLL和XML文件。

Side-by-Side Assembly的使用参见MSDN。但MSDN有把简单问题复杂化的毛病,原理讲的很多,实际例子举的很少,不看也罢。

使用Side-by-Side Assembly包括两个方面,一方面是自己开发的应用程序和DLL如何依赖Side-by-Side Assembly,另一方面是如何开发自己的Side-by-Side Assembly。如果只关心第一个方面,问题要简单的多。不需要关心第二个方面的原因如下。

阅读全文…

分类: Windows 标签: , ,

Visual C++ 2008编译lua

2009年11月9日 dipplum 没有评论

1. 项目主页 http://www.lua.org/

2. 当前最新稳定版本 5.1.4,2008年8月发布

    源码下载 http://www.lua.org/ftp/lua-5.1.4.tar.gz

3. VC编译方法

    解压后,用Visual Studio 2008命令行环境进入lua目录,运行etc\luavs.bat。之后会在src目录下生成lua.exe、luac.exe、lua51.dll

4. 注意

    默认的luavs.bat只会生成DLL,如果需要编译静态链接库,可以自行修改luavs.bat,修改两处地方

    1. 删除cl.exe的编译选项 /DLUA_BUILD_AS_DLL

    2. 生成DLL的命令改成 lib.exe /nologo /out:lua.lib *.obj

分类: 开源软件 标签: , ,

Visual C++ 2008编译zlib

2009年11月8日 dipplum 没有评论

记录下Visual C++ 2008编译zlib的过程,以备不时之需。

1. 项目主页 http://www.zlib.net/

2. 当前最新稳定版本 1.2.3,2005年7月发布

    源码下载 http://www.zlib.net/zlib123.zip

3. VC编译方法

    解压后,打开项目文件projects\visualc6\zlib.dsw,新版本的VC会提示要做工程格式转换。一般只编译其中zlib项目的DLL Release和LIB Release就好了。

4. Bug

    如果想编译zlib的DLL ASM Release和LIB ASM Release,会出现下面的错误:

contrib\masmx86\inffas32.asm(647) : error A2070:invalid instruction operands
contrib\masmx86\inffas32.asm(649) : error A2070:invalid instruction operands
contrib\masmx86\inffas32.asm(663) : error A2070:invalid instruction operands
contrib\masmx86\inffas32.asm(720) : error A2070:invalid instruction operands

    这是因为VC2008的MASM语法更严格了,导致之前的代码语法检查不过。参照这里的说明,把inffas32.asm改好就OK了。或者下载我改好的

分类: 开源软件 标签: , , ,
This work by dipplum is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 China Mainland.