-
2009-07-27
哈哈哈哈,vim中的宇宙终极答案 - [vim]
最近在学用vim,居然发现作者也是《银河漫游指南》爱好者。
:help 42
你会发现:
What is the meaning of life, the universe and everything? *42*
Douglas Adams, the only person who knew what this question really was about is
now dead, unfortunately. So now you might wonder what the meaning of death
is..
帅呆了 -
2009-07-06
Shanghai Skyline IV - [lomo]

-
2009-07-06
Python客户端使用urllib2模拟表单上传文件 - [python]
-

-
太无情太无趣太无聊太无耻了
-
2009-04-15
关于抓取中文页面的一点小总结 - [python]
说起来简单,但也是经过好几个项目,来来回回出问题得出来的。
- 最终转成UTF8输出是毋庸置疑的。
- 抓的如果是中文页面的话,用GB18030来decode是比较正统的方法,gb2312是一个误区,其实我们的页面中使用的字符编码已经早就超出2312的那些了。
- 明明是中文页面抓回来却没法用18030来decode的话,一般是因为页面中混杂了非法字符的原因,可以用ignore忽略掉非法字符。(还是最近在邮件列表里偶然看到的)
-
2008-10-27
python处理gzip压缩的http数据 - [python]
其实关于这个内容DIP里写的很清楚,只是看的时候完全没有遇上问题时记忆那么深刻。本来是想把开心网各群的人数都抓回来看看,到底哪些群人数比较多,(呆子开心网居然不提供人气排序之类的一缸~),结果httplib去GET回来的数据都是gzip压缩过的,这才想起这茬。
照DIP的说法做就没有问题了,其实就是不要把getresponse回来的内存数据直接解压,而是用StringIO转成一个临时压缩文件来解,虽然不大明白为什么要这么做,我想人家应该有人家的难处吧……
1 import StringIO
2 compressedstream = StringIO.StringIO(compresseddata)
3 import gzip
4 gzipper = gzip.GzipFile(fileobj=compressedstream)
5 data = gzipper.read() -
2008-10-20
Plurk是用Python写的? - [python]
刚才Plurk抽风,没有出页面,倒是直接把一个Dict推出来了,这不就是Python么。可以参看一下世界先进水平的数据结构~

[{"lang": "cn", "content_raw": "\u8fd9\u4e2a\u5e8a\u620f\u8fd8\u662f\u62cd\u5f97\u4e0d\u9519\u7684\uff1a http:\/\/www.youtube.com\/watch?v=sLlcBFNpQd8", "user_id": 793125, "plurk_type": 0, "plurk_id": 10112046, "response_count": 2, "owner_id": 793125, "qualifier": ":", "id": 33941811, "content": "\u8fd9\u4e2a\u5e8a\u620f\u8fd8\u662f\u62cd\u5f97\u4e0d\u9519\u7684\uff1a <a href=\"http:\/\/www.youtube.com\/watch?v=sLlcBFNpQd8\" class=\"ex_link youtube\"><img src=\"http:\/\/i4.ytimg.com\/vi\/sLlcBFNpQd8\/default.jpg\" alt=\"\u738b\u7d39\u5049&amp;\u5c0f\u55ac\u6fc0\u60c5\u7206\u7b11\u5e8a\u6232\" width=\"40\" height=\"30\" \/><\/a>", "responses_seen": 2, "posted": "Mon, 20 Oct 2008 05:54:07 GMT", "limited_to": null, "no_comments": 0, "is_unread": 0}]
后来证实了,的确是py的。
-
2008-10-05
ubuntu下opera字体的设置 - [ubuntu]
其实单从纯粹的浏览器角度,我是非常喜欢opera的,典型的北欧风格,简洁、高效。它的速度优势可以轻易的从很长的表格页的读取速度上略见一斑。可惜在linux下的opera字体的设置一直是个硬伤,一直以来都没有搞定,中文显示的时候总是大大小小虚虚实实的相当不着调。今天opera发布了9.60,于是又学着搞了一下,终于可以了。
将/usr/share/opera/ini下的font.ini文件中的Known fonts that solves specific problems一栏的内容改成:
;family:mincho|gothic=japanese good try-first
;family:kochi*=japanese good try-first
family:WenQuanYi Bitmap Song=chinese-s good try-first
;family:baekmuk*=korean good try-first其实主要就是chinese-s这一行,前面的字体family可以按照喜好设置。其他行通通用分号注释掉就ok。
看看效果

-
2008-09-15
compiz截图功能设置 - [ubuntu]
其实这个是最方便的截图功能了,但是compiz设置里面有个小埋伏,默认图片保存目录是"Desktop",因为根本就不存在这个目录所以造成截图功能一点反应都没有,让我几次放弃了这个插件。其实只要把目录改成"桌面"就一切ok了。还有截图的快捷键不能改,改了也不起效果。现在只要win+鼠标左键拖拽就可以截图了,不用等QQlinux版的截图功能了。
-
2008-09-04
ubuntu安装ibus - [ubuntu]
还没成功,先写下来。已经顺利安装了。见更新部分。作者的readme里对于ubuntu用户来说信息太少了。首先需要安装一下python2.5-dev,可是不知道为什么,手头的8.04版本不能直接安装python2.5-dev,用sudo apt-get和新利得都不行。幸好找到https://launchpad.net/ubuntu/hardy/i386/python2.5-dev/2.5.2-2ubuntu5上的安装包。此外还需要作以下安装:
sudo apt-get install python-gobject-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install python-gtk2-dev
sudo apt-get install libdbus-glib-1-dev另外还要去载一个dbus-python安装一下。以及所需要的输入法引擎。
编译安装都通过了,ibus-setup也可以看到设置界面了,浮动条图标也看到了,pinying引擎也装了,可就是切不出输入法。郁闷,太晚了,明儿再说。
更新:
邮件列表里看到ubuntu-cn的源里面更新了ibus, 直接下载ibus,python-dbus,ibus-table,ibus-pinyin安装,然后用 sudo im-switch -c,选择ibus为输入法既可。体验下来的确不错。
又及:ibus在freemind中似乎有些问题,写到第三层以下的脑图就会呼不出输入法,freemin假死,不知道有没有人也是这个情况。
-
2008-08-31
urllib.unquote() - [python]
字符串被当作url提交时会被自动进行url编码处理,在python里也有个urllib.urlencode的方法,可以很方便的把字典形式的参数进行url编码。可是在分析httpheaders的传输信息时,很多已经被url编码的字符串,不是我们这些菜鸟一眼能看出来的,于是乎,urllib.unquote()
s = "url=%2F&email=imtesting%40tempmail.com&password=hereispassword"
print urllib.unquote(s)>>> url=/&email=imtesting@tempmail.com&password=hereispassword
python很nice ^^
这就是所谓的“urlencode逆向”,之所以要写这句是因为我一开始也是这么搜索的,都没有搜到结果。
-
2008-08-09
Epiphany浏览器字体设置问题 - [linux]
windows下Gmail开双帐户最常见的方法是Firefox里用IETab,或者干脆直接拿个IE开就是了。Linux下有点闹心,关键是除了主力在用的Firefox,Opera啥的在设置中文字体时总是不得其法,字体混乱让人撮气。于是将Linux下的浏览器挨个试过来,最终Gnome默认的Epiphany满足了我的需要。但是需要设置一下,把“让网页指定自己的字体”前面的勾选去掉:

于是乎,这个世界和谐了:

估计也有人有这个困扰,是以记之。
-
2008-08-09
Shanghai Skyline III - [skyline]
-
2008-08-06
Shanghai Skyline II - [skyline]
-
2008-08-03
Galaxium Linux下的又一msn解决方案 - [linux]

galaxium比emesene启动和获取列表的速度要慢,应该是因为它要获取信息要来的多的原因。打开galaxium就能看见在xp登录msn时的昵称和图片,看样子已经把msn的协议分析的很透彻了。聊天窗口支持很cool的adium风格,不过adium条上的非ascii字符显示有问题,好在作者已经注意到这个问题。最近就暂时抛弃emesene了。
更新:
- 选头像的时候发现一个好玩的,galaxium会自动保存别人用过的头像。呵~
- 和emsene默认的一样,galaxium在群聊时显示的是群名称,而非群用户的昵称。还没有找到解决的方法。
-
2008-08-01
Shanghai Skyline - [skyline]

上海的skyline有时还是蛮不错的,都是手机拍的。
-
2008-07-30
15位身份证升18位的函数 - [python]
看见tombkeeper大的校验函数,才想起在学python的第二天也写过一个类似的东西,翻出来晒晒。虽然现在看很不pythonic,按照壮一点的写法估计6、7行就可以了,不高兴改了,python的在解决问题时显示出来的清晰程度可见一斑,不管认字不认字都能看懂一二。
def id15to18(id):
"""change an old IDnumber to new 18 digit one~"""
sid = str(id)
a = []
w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1]
NumTable = ["1","0","X","9","8","7","6","5","4","3","2"]
sum = 0
result = ""
for i in range(15):
a.extend(sid[i])
a.insert(6,"1")
a.insert(7,"9")
for n in range(17):
sum = int(a[n])*w[n] + sum
j = sum % 11
a.extend(NumTable[j])
result = "".join(a)
return result -
2008-06-30
《core python programming》读书笔记01 - [python]
python好处在于易于上手,大多数人应该和我一样,一个简明教程加一个DIP没读完就开工干活了。等遇到问题再回头去找答案。这是优势,也是缺点。准备今天开始重新精读《core python programming》和《Dive into python》,希望能够静下心来用时间换厚度。
print语句后加','(逗号),输出无换行符的元素排列:
print 'I like to use the Internet for:'
for item in ['e-mail','net-surfing','homework','chat']:
print item,
printI like to use the Internet for:e-mail net-surfing homework chatenumerate,枚举函数:for i,ch in enumerate('thereisastring'):
print ch,":",i,t : 0 h : 1 e : 2 r : 3 e : 4 i : 5 s : 6 a : 7 s : 8 t : 9 r : 10 i : 11 n : 12 g : 13交换两个变量的值:x,y = y,x学着变得pythonic:- 0-7中复数的平方。简洁而漂亮的写法:
sqdEvens = [x**2 for x in range(8) if not x % 2]- 用os.lineseq替代Unix下的'\n'和Win下的'\r\n'这些换行符,使得代码得以跨平台运行。
-
2008-06-18
ISOTIMEFORMAT 设置 - [python]
%a Abbreviated weekday name
%A Full weekday name
%b Abbreviated month name
%B Full month name
%c Date and time representation appropriate for locale
%d Day of month as decimal number (01 - 31)
%H Hour in 24-hour format (00 - 23)
%I Hour in 12-hour format (01 - 12)
%j Day of year as decimal number (001 - 366)
%m Month as decimal number (01 - 12)
%M Minute as decimal number (00 - 59)
%p Current locale's A.M./P.M. indicator for 12-hour clock
%S Second as decimal number (00 - 59)
%U Week of year as decimal number, with Sunday as first day of week (00 - 51)
%w Weekday as decimal number (0 - 6; Sunday is 0)
%W Week of year as decimal number, with Monday as first day of week (00 - 51)
%x Date representation for current locale
%X Time representation for current locale
%y Year without century, as decimal number (00 - 99)
%Y Year with century, as decimal number
%z, %Z Time-zone name or abbreviation; no characters if time zone is unknown
%% Percent sign -
2008-06-10
emesene在msn群对话中无法显示别人昵称 - [ubuntu]
-
2008-06-07
Dell D500入手 - [ubuntu]
-
邮件列表里看到的,受教。。(是linux下的)
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。
\033[显示方式;前景色;背景色m
显示方式:0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
前景色:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)
背景色:40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)
\033[0m 默认
\033[1;32;40m 绿色
033[1;31;40m 红色
print "\033[1;31;40m%s\033[0m" % " 输出红色字符" -
2008-04-15
csv模块“line contains NULL byte”错误解决方案 - [python]
csvreader = csv.reader(file("csvfile.csv"))
for row in csvreader:
process
错误提示:
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
Error: line contains NULL byte
看了一下模块_csv.c的代码,原来是不能有 “\0”,所以csv文件不可以是unicode编码的。把导出的csv用ansi保存就ok没问题了。
为什么python啥模块都有尼?真是拿它没办法~
-
2008-04-10
重定向报错的解决方案 - [python]
UnicodeEncodeError: 'ascii' codec can't encode characters in position 42-44: ordinal not in range(128)
提取html保存txt出现如上错误。比较典型的重定向问题,中文永远是二进制世界的痛。无奈……
解决方法:
import sys
reload(sys)
sys.setdefaultencoding("utf-8") -
2008-04-08
bullshit
大巴没有恶俗面板,注定了大巴只有洋葱小白领,永远都不会有真正的文化人……
-
2008-03-31
按照list中元素个数排序的方法 - [python]
s = [1,1,1,2,3,3,4]
print sorted(s, key=lambda x: s.count(x))lambda是个好东西,要学习!
-
2008-03-23
can pyhton + with Air? - [python]
can pyhton plus with Air?
What a cool idea!
pair "is python for air." (pair is two shoes in fact - -",a suck name how about pyair)
Developing AIR Applications with HTML and Ajax
Developing AIR Applications with Adobe Flex 3
and then……
Python for s60 too! ola python~ go ahead !










