Category Archives: Happy coding

try-except-finally block in python 2.4

try-except-finally这种语法是在py2.5中才支持的,而在py2.4中只能单独使用try-except或try-finally。为了让脚本有更好的兼容性,只好绕过去了: #/usr/bin/python2.6 try: print ‘try’ except: print ‘except’ finally: print ‘finally’ #/usr/bin/python2.4 try: try: print ‘try’ except: print ‘except’ finally: print ‘finally’ 从Chromium的代码库(Issue 140005)中找到的方法,呵呵。

Posted in Happy coding | Tagged , | Leave a comment

Translate errno to error string

没几行的程序,就是输出errno数字所表示的对应含义 #include #include #include int main(int argc, char* argv[]) { if (argc == 1) { printf (“Please give a number, Thanks~~~\n”); exit(1); } char tmp_str[20]; errno = atoi(argv[1]); sprintf(tmp_str, “errno %3d”, errno); perror(tmp_str); }

Posted in Happy coding | Tagged | 2 Comments

在thickbox中关掉自己

嗯,很拗口的标题吧,我也这么觉得~ 最近写的东西用到了jquery,然后也就用到那个很好用的thickbox插件。不过有一个需求是我在thickbox中用Ajax.post()方式提交表单后需要把这个thickbox窗口关掉。它的close按钮调用的是tb_remove()函数,但是我在里面调怎么也不起作用,直到最后找到了这个网页,它告诉我,要这么来折腾: parent.tb_remove() 于是就达成需求了……

Posted in Happy coding | Tagged , , | 2 Comments

Android中使用自定义Adapter

算是对这段折腾android的一次小结吧,呵呵。 一个很简单的界面,上面留块地方放logo或者banner,然后下面放个东西来显示数据。试验中上面使用的是TextView,下面是ListView。对于ListView,当然需要使用Adapter来显示数据啦,但默认的Adapter满足不了需要,因为我的那个一条需要显示的东西不是那么标准,所以折腾了几天,自己弄出来了一个fooAdapter,顺便还有这篇文章。

Posted in Happy coding | Tagged , , | 6 Comments

调整Flex默认Application的长宽

Flex的ms:Application默认有一个大小,我新建的Panel要比这个大小要大,所以默认会出来滚动条,看着比较的不爽。但是如果在Application中把大小通过Height/Width设死的话,在窗口放大或者丢浏览器里面看的时候又不会居中,比较的不爽。最后终于在这找到一篇文章讲这个的,这个参数不是在mxml文件里面设定的,而是需要在编译的时候传入-default-size 800 600 参数。命令行编译的话,是需要把这个参数加在mxml文件后面的,即这样: mxmlc.exe  foobar.mxml -default-size 800 600

Posted in Happy coding | Tagged , | Leave a comment

Ubiquity + dict.cn 查字典

关键字: ubiquity, dict.cn 前天装上了个ubiquity,觉得满好玩的,于是就想做一个查词的东西,因为它里面默认的东西用的是Gtrans,对于单个单词的释义感觉有时看着云里雾里的,于是就萌生了自己写一个命令的想法,然后就做了。 看了几分钟教程,就开始折腾了,先从一个HelloWorld开始,然后慢慢扩展。其实没啥难的,按着例子把想要的东西加上就是了。赞一下dict.cn,不止提供了地址栏直接查询,还加上了XML接口。一开始用的是普通的查询,结果页面返回的结果是GBK编码的,在ubiquity里面直接乱码,当时把我郁闷的不行了。还给它的客服扔了封信,问能不能提供XML或者JSON的接口,结果后来去它的论坛里面逛了一圈,属于直接提供了。一开始我用的还是一个简单的查询页面,返回结果还是GBK的编码,当时被郁闷弄傻了,直接从论坛上找到了admin的邮箱,扔了封邮件过去,然后等发完邮件回来一试XML接口的,好了,于是只好汗自己了,呵呵。 代码没啥东西,只是自己在里面加了一个template,所以看上去很不清爽,由于现在的代码只能扔在sandbox里面,模板啥的也不能发布,所以将就着用吧,0.1.1版本嘛。最后赞一下,开发还是满简单的,这个东西用了一天左右的时间吧。只是调试起来很不爽,大概是我还没找到方法吧,呵呵。点开看代码,嗯。

Posted in Happy coding | 1 Comment

Open File with Specified Encoding

其实很早以前就找到解决方案了,只是一直没记录下来,害的我前几天写程序的时候又找了一大圈,现在学乖了,写下来吧。用的是 Python 语言,嗯。 其实很简单,直接用 open 打开的话,好像用的是系统的编码或者什么别的方法来确定编码的,但是如果是 utf8 的文件可能会出错,说可能是因为它有时候不出错,汗。这时用 codecs 库里面的 open 方法即可,它的第一个参数是文件名,第二个是打开模式,第三个参数是文件编码,文件打开后会以 utf8 的格式存入变量,然后就可以处理了,嗯。

Posted in Happy coding | Leave a comment

Google Developer Day 2008

  报名了今年的GDD,于是就过去看看了。   早上和平时上班一样的点起床,蹬车去玩亚运村那边。诶,由于某些原因,那边的路叫一个绕啊,还好绕着绕着就找到路进去,没发生看着会场就在对面还进不去的惨剧。   进去后,签到,排的那个队居然系统出了问题,郁闷的不行了,到后来换了两个队才弄完,旁边 一工作人员让后面来的先去旁边拿点饮料边喝边等,后来中午听说有人没拿到餐券,看来在那排队是正确的选择,虽然中午的饭也一般,8过那是后话了,呵呵。在排队的时候居然看到了apt,呵呵。   开始照例是开复的讲话,和去年差不多,嗯。话说开复出来的时候,那叫一个掌声雷动啊,呵呵。所不同的就是去年的会场比这个要小。去年是在北京新世纪日航饭店,今年弄到了国际会展中心。应该是第二次在会展中心参加G的活动了,上次是那个啥互联网论坛。场地是大了,效果也比上次差了不少,开复讲了几句,就把话语权给了号称G第一个女性工程师,好像是产品经理啥的吧,记不清了,呵呵。然后伊就开始讲,主要是大概介绍一下产品,然后讲到一个就从下面拖一个专家上来讲,满不错的安排。总有三块投影幕布,中间一个放的是演讲者的幻灯,一般是鸟语的,两边两块是中文的,NND也不知道是哪个脑残的人做的,用啥字体不好用宋体,细的和啥一样,在后面根本看不清,你好歹也用个黑体啊;中间的投影字倒是能看清,但也不知道谁管的灯光,N盏灯照在演讲者那边,人倒是看清楚了,片子看的那叫一个费劲啊,诶。   这个完了就是分会场,上次好像是分了两个分会场,这次分了四个,外加两个代码实验室。感觉这次几个分会场的一些演讲主题和分会场的主题不一致,像上午云计算移动平台的两场,一个讲云计算的结构,一个讲的机器学习,和移动应用基本上扯不上边撒,诶。   听的第一场是云计算的架构和基础软件,P大数学系毕业的一哥们讲的,主要是介绍了GFS+BigTable+MapReduce ,GFS就是G自己的分布式文件系统,在一开始做搜索的时候,针对搜索系统的东西对文件系统做了优化,主要考虑的是大文件的存储以及对文件的操作多为追加的情况。还说了说G的文件系统的结构,一个Master负责维护GFS系统的运转,然后一堆 Data Server 用来存放数据,它是把数据分成大小相同的块,好像今天是这么说的,然后一份数据存三份用于备份。数据只在Client机器和数据服务器间传输,Master不参与数据传输。然后就是 BigTable,一个三维的数据映射关系,用以替代关系数据库,三个键值忘了,呵呵。MapReduce 就是把一个操作分到N台机器上去做,然后再在另M台机器上进行数据挖掘,最后发到一台机器显示,感觉就是一个数据挖掘的过程,有点像上次看的MPI里面的Reduce,呵呵,也不知道是谁借鉴谁的。顺便提一下,这场的人叫一个多,反正我是在站在门口听的,满不错的,嗯。   这一场没听完就撤了,去了别的会场,本来是想去听应用平台主题的,于是跑到那边,结果等上一个哥们讲完了,再仔细一看原来是讲GWT,于是赶快就撤了。转了一圈最后去听了社区平台的东西,说的是把自己的网站加到OpenSocial的容器中去,讲的满搞笑的,Chris Schalk和沈翔。不过内容倒是没怎么听,因为都是偏概念的东西,而且我个人对SNS倒真的没啥爱。所以听了一半直接闪人,也算是给那些站着的人空个位子出来,呵呵。然后去地理API那边转了转,人好少,不过也没细听就撤了,跑代码实验室转了转,结果发现讲的东西都用过了,继续闪,在移动平台那块门口转了转,讲机器学习,片子上大把的公式,把我雷到了,只有闪。闪出来没到吃饭的点,于是在外面傻傻的坐着,想找个认识的人搭讪,可惜未果。   好不容易等到吃饭点了,跟着大部队去吃饭(顺便说一下,一楼有个EMC展会,我们一票人就大摇大摆的从人家展会那穿过去了,还由于场地问题在那交通堵塞了N久,想想都汗),饭嘛,盒饭,一盒饭加两个小馒头,菜里面一个炒素菜,一个鸡腿,一个大概是洋葱炒牛肉,把牛肉挑吃了,不吃洋葱,木办法,呵呵。中午吃饭的人那叫一个多啊,排了三个队,拿到饭后还等了N久才有地方坐下吃。排我前面的是一个exoweb的mm,好像是来迟了木有餐券,于是就木有吃上,也不知道是怎么解决的。还有个不爽的就是大概排到后来没有饮料了,只好给我们每人一瓶水,本来是有个小盒装的鲜橙多的,诶。在身后人虎视眈眈的目光下吃完饭,赶忙起身让位,呵呵。看看时间也不算太早了,直接就去下午的会场了,听的是实现平台的东西。   下午第一场是讲Google Gears,几个demo看下来,唯一的想法是很好很强大,呵呵。一个是桌面快捷方式,有点像Mozilla Lab的prism,不知道这两个有啥区别,反正我是都没用过,有空试试;第二个demo是上传文件,一次传一堆,也满好玩的,不过好像在好看簿有看到过,应该用的不是gears;第三个是脱离浏览器的Alert等东西,也满好用的;第四个是和WiFi的运营商啥的一起,定位后查找周边,就这玩意引了一堆人问,能操作这个东西还是满不错的。反正给我的感觉不错,一开始还以为就是离线浏览的呢,没想到现在有这么多功能,嗯   第二场讲的是GAE,可惜已经用过了,限制太多,不说啥了,不知道能不能在上面布置非阻塞的web fetch进程,要不然肯定过不了它的时间限制。会后和Tom聊的时候说到一次Data View出了500的错,可惜那会没细去想,没准还是个bug呢,呵呵。   然后,和apt聊了聊,再然后,我有事就闪人了,嗯。   总结结束,差不多就这样了吧。有几点感想: 1、碰到老外,还是会结巴啊,要练口语了,诶 2、最受不了那帮自我感觉良好,然后操着各种口音的英语说着国人和老外都听不懂的鸟语的人,估计主持人都想来一句,您还是说中文吧。 PS:刚去瞅了一眼,上次申请的GAE还是三个App诶,不错不错,刚用掉一个还有俩,做点啥呢……

Posted in Happy coding | Leave a comment

MoinMoin on Windows with Apache

  昨天想着要装一个wiki系统,于是想到了MoinMoin,上次装是在Linux下,这次手边暂时没有Linux的机器,只好用Windowz了。在这记录一下安装过程吧,反正是比较麻烦。 先是把那些个软件装上,啥Python, Apache啥的,再去下载MoinMoin,它是用easy intall做的,直接下载,然后运行setup.py install即可。然后开始配置mod_python,也是windowz下的exe文件,双击运行,自动安装。有点不同的是它在最后会询问Apache的安装位置,大概是要把那个.so文件拷过去吧。然后开始改Apache的http.cpnf文件(在Debian下装的时候,那些个mod是分开放的,有个目录专门放被加载的mod),加载mod,配置Directory,测试。 mod_python测试通过后,就是MoinMoin了,新建一个文件存放wiki的文件,从MoinMoin安装的地方把moin.cgi文件拷过来,再在http.conf中加上一个script alias,然后设置wikiconfig.py,首页名称啥的,还有一个静态文件的地址,应该是绝对路径。但是在这里设计不行,还需要在Apache的http.conf中加上对静态文件目录的访问权限。再然后,就差不多了,嗯。

Posted in Happy coding | Leave a comment

GAE上的blog

  折腾了两天发现后来发现没有用的东西,还是比较郁闷的事情。不过还好,没有被打击,又开了个新的东西。有了前面的一个经验,还是满快的,嗯。   做了一个十分简单的blog系统,说说里面有用的东西吧,由于blog很简单,所以只用了两张表,一张放文章,一张放Tags。其实本来懒到只想用一张表的,但是想想只有文章,那和留言板也没什么区别了,所以,加了个tag。文章中的taglist是用ListProperty建的,list的类型本来想用db.Key,但是查询那段代码写着太麻烦了,所以最后用了简单的字符串,没办法,我比较懒,呵呵。   还用到的一个模块就是认证,也是很简单的,传到服务器上后直接用google帐户的认证,满不错的,也满方便的,于是我就直接用了。在get时判断是否登录,如果登录了就显示表单,否则给个要登录的链接。两个用的是一个页面,用到了模板中的判断{% if %},也很方便。从表单取数据直接用self.request.get(<name>)就行了,没啥好说的。   还有个地方就是URL的正则匹配,在app.yaml中有,在webapp的main()函数中也有,我是在app.yaml中把所有的URL映射到了一个地址下,然后在webapp中细分。它的正则匹配就是在函数中按顺序匹配()中的内容,变量名随便起,然后可以直接在函数中用。    别的,没有啥了,嗯。

Posted in Happy coding | 4 Comments