codeplayer.blogspot.com
白菜: 二月 2007
http://codeplayer.blogspot.com/2007_02_01_archive.html
可谓典范,谁叫作者还开发着模板语言( myghty. 65289;呢,呵呵。其实 sqlalchemy 的文档就是用 myghty 写的。 不过系统复杂了,功能多了,再好的文档也会让人迷路。最近用了用 sqlalchemy ,对这一点感受颇深,故把临时想到的几个比较常用的功能摘录如下,提纲挈领,既为自己整理一下思路,也让新手一窥 sqlalchemy 的精华。 Join,本是关系数据库中多么常见的操作,怎奈 django 的 orm 就是不支持, SQLObject 的做法. Many-to-many 关系都是通过增加一个中间表来实现,映射到对象后,这个中间表就不需要我们再操心了,会隐式地进行处理。 不过对于多个实体两两之间多对多关系,往往另外再增加一个关联对象会更方便。 这样的例子其实也不少,比如:user-bookmark-tags、产品-元件-元件供应商(这是一次期末考试题目里面的 ;-). 说到大名鼎鼎的 Hibernate 都对这个功能实现得这么痛苦后,我蓦然发现 sa 真的很 nb。呵呵,托了动态语言的福了吧。 Mapping a Class with Table Inheritance.
codeplayer.blogspot.com
白菜: 六月 2007
http://codeplayer.blogspot.com/2007_06_01_archive.html
实现一个 django 的 url dispatcher. 心血来潮,实现了一个 django 的 url dispatcher,比想象中简单多了。 http:/ djangodispatcher.googlecode.com/svn/trunk/mapper.py. Http:/ djangodispatcher.googlecode.com/svn/trunk/test.py. 实际实现功能的代码才2、30行,功能基本完整,包括分层次的url配置,和发生异常时帮助调试用的一些信息。 PS:发现最近爱上了 Test Driven. 时间: 1:02 上午. 答案很简单:Test Driven。 哈哈,这个( http:/ code.google.com/p/pylifegame/. 65289;就是好例子! 醉了,不多说了,自己看去,我要睡觉去了,嗯 . 时间: 5:07 下午. 时间: 12:17 下午. Pickle: An interesting stack language. 时间: 11:28 上午. 时间: 11:26 上午. Python 3000 Status Update (Long!
codeplayer.blogspot.com
白菜: 十一月 2008
http://codeplayer.blogspot.com/2008_11_01_archive.html
为了做一个显示歌词的小玩意,学习了一把x window,我希望歌词窗口能背景透明但文字清晰显示。理论基础就是 composite window manager(比如compiz)支持窗口使用 alpha channel。那么应用程序只要整好rgba的图像交给x服务器即可。 发现使用 gtk+cairo+pango 大大简化了工作。 代码:http:/ code.google.com/p/huangyilib/source/browse/trunk/py transparent window.py. 时间: 12:31 上午. 又看到关于设计模式的文章,突然联想到vim的作者说过一句大概是这样的话:学习vim的方法就是使用它,然后在使用过程中注意发现那些经常重复的行为,然后简化之。 写程序的模式又何尝不是如此呢?只不过程序的事情更复杂罢了,那些重复的模式往往需要灵感来发现,简化的方法也总是不那么明显,甚至需要思维方式的彻底改变。 时间: 11:39 下午. 时间: 5:20 下午. 订阅: 帖子 (Atom). 深圳, 广州, China. Let focus = 'computing' in here.
codeplayer.blogspot.com
白菜: 十二月 2007
http://codeplayer.blogspot.com/2007_12_01_archive.html
转眼来到腾讯有5个月了,博客也就长个5个月的草了。 china-pub 又给我送了几本书来,自然也就又有一百多块离开了我的身边。 拿到书的时候心情自然是不用说,不过想起床上躺着上个月的科幻世界没看完时,却也着实让人发愁。 有时间的时候没钱,有钱的时候没时间,人生啊!!! 还有可爱的python也是许久没有贡献新东西了,真是惭愧,唉. 时间: 9:53 下午. 订阅: 帖子 (Atom). 深圳, 广州, China. Let focus = 'computing' in here. Run, Piggy, Run! Silence.like a fish.
codeplayer.blogspot.com
白菜: 三月 2007
http://codeplayer.blogspot.com/2007_03_01_archive.html
对 pypy 的简单试验,惊叹其优化的智能! 时间: 3:56 下午. 有趣]Invasion Of The Dynamic Language Weenies. Invasion Of The Dynamic Language Weenies. 这文章很是耐人寻味,嘿嘿 ;-). 时间: 9:52 上午. Django and non programmers. 看了 Are You Generic? 65292; Django for non-programmers. 两篇文章。 django 真是设计人员的福音啊! 时间: 3:45 下午. 时间: 2:43 下午. 前面写过篇 介绍 pypy 的文章. 65292;其中说到编译后的解释器性能 twice the speed of the 0.9 release, overall 2-3 slower than CPython 。并且:. It is now possible to translate the PyPy. Interpreter to run on the .NET platform . 时间: 5:06 下午.
codeplayer.blogspot.com
白菜: 十二月 2008
http://codeplayer.blogspot.com/2008_12_01_archive.html
想起来也很久没有用python,尤其没有用来做web了,没想到还记得很清楚,不容易不容易。 时间: 5:46 下午. 订阅: 帖子 (Atom). 深圳, 广州, China. Let focus = 'computing' in here. Run, Piggy, Run! Silence.like a fish.
codeplayer.blogspot.com
白菜: 四月 2010
http://codeplayer.blogspot.com/2010_04_01_archive.html
鉴于blogger常年在墙外,严重影响了发贴的心情。终于搭建了自己的博客。 http:/ www.yi-programmer.com/blog/ 博客的成功运转跟下面这些光辉的名字是分不开,向创造这些东西的大牛们表示致敬,谢谢git,谢谢make,谢谢python,谢谢docutils,谢谢mako,谢谢pygments,谢谢latex。 时间: 3:30 下午. 订阅: 帖子 (Atom). 深圳, 广州, China. Let focus = 'computing' in here. Run, Piggy, Run! Silence.like a fish.
codeplayer.blogspot.com
白菜: 一月 2009
http://codeplayer.blogspot.com/2009_01_01_archive.html
不要怀疑,这个日就是你心里想的那个日,而且是被。 意思是说,再郁闷的东西,被郁闷久了,也总能从中发掘出一些稍微好玩一点的东西出来。 http:/ huangyilib.googlecode.com/svn/trunk/doc/js best practice.html. 当然,玩python的兄弟就不要点了,主要是用来忽悠没玩过动态语言的朋友的。 时间: 3:20 下午. 订阅: 帖子 (Atom). 深圳, 广州, China. Let focus = 'computing' in here. Run, Piggy, Run! Silence.like a fish.
codeplayer.blogspot.com
白菜: monad与状态
http://codeplayer.blogspot.com/2009/04/monad_20.html
最近重新捡起haskell来看了看,似乎对monad和程序状态的关系有点小小的明白了。强烈希望明白人指点一下。 话说用命令式语言写程序的时候,有明白人就强烈要求不要用全局变量不要用全局变量,其实要取消所有的全局变量也容易,不过就是增加几个参数而已,比如这样的程序:. Void inc(){全局变量 =1;}. Void main(){inc(); dec();}. Void inc(int *变量){*变量 =1;}. Void dec(int *变量){*变量-=1;}. Void main(){int 全局变量=0; inc(&全局变量); dec(&全局变量);}. 其实说起来,搞个全局变量也就是为了让函数少写几个参数而已。参数实在太多了,大不了就搞个 struct stat 把公用的参数给包装成一个。 函数式编程号称不准修改状态,那大不了就每次改都创建一份新的,然后返回了,这样程序就变成这样了:. Void inc(状态,.){. return 结果和新状态;}. Void dec(状态,.){. return 结果和新状态}. 新状态, 返回值 = inc(初始状态,.);.
codeplayer.blogspot.com
白菜: linux下的半透明窗口
http://codeplayer.blogspot.com/2008/11/linux.html
为了做一个显示歌词的小玩意,学习了一把x window,我希望歌词窗口能背景透明但文字清晰显示。理论基础就是 composite window manager(比如compiz)支持窗口使用 alpha channel。那么应用程序只要整好rgba的图像交给x服务器即可。 发现使用 gtk+cairo+pango 大大简化了工作。 代码:http:/ code.google.com/p/huangyilib/source/browse/trunk/py transparent window.py. 时间: 12:31 上午. 订阅: 帖子评论 (Atom). 深圳, 广州, China. Let focus = 'computing' in here. Run, Piggy, Run! Silence.like a fish.
SOCIAL ENGAGEMENT