星期三, 五月 30, 2007

wuss & wussy

最近看文章发现一个很有意思的词,wuss 和 wussy。

wuss 查了下字典是胆小鬼的意思,wussy 则是形容词,但我觉得胆小这类翻译实在不能确切表达这个词的含义,这可是个 slang 啊。

从网上找到这个词的英文解释:
http://dictionary.reference.com/browse/wussy

A person regarded as weak or timid and especially as unmanly: "Cats are for wusses, dog men say" (Laura Blumenfeld).
[Probably blend of wimp and pussy1.]

形容这人胆小怕事还不像个man,岂不是很"衰"(念sui)。我看解释成"衰"更形象!

json.js 导致 too much recursion 问题

这几天在使用 JQuery + json.js 的时候偶然发现的问题,2007-04-30 版本的 json.js 加载之后出现 too much recursion 问题,的确很怪异。

网上也有人讨论过这个,推荐大家还是用回老版本。

网页:
http://web.archive.org/web/20060208035938/http://www.crockford.com/JSON/js.html

下载
http://web.archive.org/web/20060208035938/http://www.crockford.com/JSON/json.js

星期五, 五月 25, 2007

用 PyGTK 做了一个实用的字典程序

这次用 Python + PyGTK 做了一个 GUI 程序,练习了一下在 Linux 下开发桌面应用,还是很爽的。

这是从 Dict.CN 的 WebAPI 获取字典数据,可惜 API 返回的数据还是不够丰富。用脚本语言开发 GUI 果然是效率颇高,还可以用 Glade 做好界面,然后用 Python 把界面和处理部分连上,这样就得到了界面和实现的分离。

目前这个程序开源了,地址在:http://code.google.com/p/nirvana-dict/


图:程序主界面


图:任务栏图标

星期三, 五月 23, 2007

一份在中国生活的画报指南

一份在中国生活的画报指南

首先,我要提醒你中国可能会是你身体机能紊乱。特别是你第一次到那里的时候。受影响最显著的系统包括了呼吸系统和消化系统。我说的是有关严重的痢疾以及肮脏的空气。

在大街上有非常讨厌的气味。腐烂的组织味,尿味,大便味,臭豆腐味......但不用担心,很快你就会和你的中国朋友们玩起"这是什么气味?"的游戏来。

又是关于食物的话题......你会有一些困难。朋友们,这不是"Panda Express"(US的中式快餐服务)。不方便的地方例如米饭中有小石子,满是极其微小鱼刺的鱼肉,含有很多小碎骨渣的肉。这些仅仅是普通食物,还算不上好(可能像鸡爪?),否则对你的肠道表面将是一种灾难。但是勇敢的冒险吧!你很快就会学会什么不该吃。(痢疾虽然痛苦但确实最有效的老师。)

某些时候污染是很糟糕的。它甚至可以让你的眼睛连续几天流眼泪,特别是当你来自一个具有真正干净空气的地方。灰尘几乎到处都是。中国人从不坐在地上或者没有被设计用来让人坐的地方,因为那些地方都很脏,你会变脏!

所以你会发现你一开始经常洗啊洗。没问题,但很快你会发现 - 脏点其实也很有意思!这会让你有更多的“中国故事”可以说给家里人听。

所以环境保护在中国并没有确切被“实施”。你会发现这起初很困扰人,并且为此忧心重重。不用担心,很快你就会像我们其他人一样对这些习以为常。

如果你来中国,我希望你别长太高。这有时候很麻烦......

如果你的健康情况很好那将对你很有帮助。当然,中国有“现代”医疗设施,但是那些标准远赶不上你在西方的期望值。解决方案?不要生病,不要受伤!

不要太依赖电梯。在只有7层或者不到7层的学校和宿舍里面是没有电梯的。根据中国的建筑标准,电梯在高于7层的建筑中才能安装。嘿,很酷吧。电梯是给资本主义胆小鬼的。

你可能对中国使用计算机的数量印象深刻。网吧到处都是。你的好印象不会太久,因为中国的建筑标准之差,建筑在完工之后几年内就开始裂缝了。

奇怪的是即便整个中国的官方语言是普通话,但是有数不清的无法理解的方言存在。特别是在南方,每个村都有独特的方言。

好消息是中国的东西实在是便宜!当然,他们的质量肯定达不到你曾经使用过的标准。但是当东西很便宜的时候,你可以在它坏的时候重新购买一个!很棒吧!

还有很多惊喜在中国等待着你的到来,所以,加油吧!在你适应这里不便的生活之后,你就不会感到烦恼了 —— 更好的是,你会接受他们并且笑着说“这就是中国!”


原文出处:http://www.sinosplice.com/china/pictguide/
作者的网站:http://www.sinosplice.com/
这位叫做 John 的学生已经在中国生活了 6.8 年了,是学习语言学而来,真是厉害!

星期四, 四月 26, 2007

更新 Ubuntu 7.04 字体配置

每次总是要更新 fonts.conf 来使用 VeraSansYuanTi,这次针对 Ubuntu 7.04 手工更新了一个,参考这里吧。

http://www.nirvanastudio.org/news/ubuntu-yuanti.html

更新到了 Ubuntu 7.04 Feisty Fawn

前天看到 Update Manager 上显示 7.04 已经可以直接升级了,于是没能忍住就升了。在升级最后20分钟的时候突然退出了,重启过后系统彻底挂掉。

昨天刻了张盘把系统重新做了一遍,总算是安上 Ubuntu 7.04 了,大概用了一下,发现速度比以前快了些,但是桌面系统的反应速度依然要比 Windows 慢不少,没办法,毕竟不是内核级别的嘛。

GNOME 的版本升级到了 2.18.1,比较新了,Firefox 依然是 2.0,Thunderbird 没能升到 2.0,因为还比较新,估计再过些日子可以通过 Update Manager 升级。GAIM 也升级了,2.0 Beta 6,界面精致了不少。Python 默认上了 2.5,不过又被我替回来了,我还没做好迎接 2.5 的准备。

其他的还没有特别直观的感受,先用段时间看看吧。

星期一, 四月 23, 2007

服务器上线了

周末去了亦庄机房,总算折腾了一下午把服务器按上了。

网通亦庄机房果然环境优雅,跟一小公园似的,那么大的飞碟形状的大楼里面空荡荡的,对面整齐的草坪稍微修修就可以当高尔夫球场了,用房东同学和朱同学的话说就是网通傻有钱的。

机器上架后,房东同学突然提起重装系统,无奈,装吧,最郁闷的就是那个公司的销售,着实无奈,估计连杀人的意思都有了。几个人在机房蹲了2个多小时,总算,我的一阵连续配置,(好几步自己都不知道点的什么),点F2开装,愣装,管他呢。

幸好有红宝书和房、朱同学,总算系统上去了,虽然说很多地方我们还没有搞懂,而且连 man 的数据都没有。。。。。。

不管怎么说,总算上线了!

星期六, 四月 21, 2007

LISP 学习笔记(1)

在徐x的知道下开始尝试看看LISP,来到了有名的LISP学习站点:http://mitpress.mit.edu/sicp/,MIT出的东西还是非常经典的。

下了个 DrScheme,可视化的Scheme学习、调试工具,带有交互式的界面,非常棒,很容易就上手了。

LISP 的语法要比大多数编程语言要简单的多了,都是靠括号来表示代码段,看起来比较古怪,但是读起来还是比较容易接受的。看了第一章,介绍了牛顿求平方根的算法,真是长见识了,于是立即打开 Python,按照相同的逻辑写了一个,很有意思。

;; Scheme Code
(define (sqrt-iter guess x)
(if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))

(define (improve guess x)
(average guess (/ x guess)))

(define (average x y)
(/ (+ x y) 2))

(define (square x) (* x x))

(define (good-enough? guess x)
(< (abs (- (square guess) x)) 0.001))

(define (sqrtx x)
(sqrt-iter 1.0 x))

# Python Code
def sqrt(x, guess=1.0):
if abs(guess ** 2 - x) < 0.001:
return guess
else:
q = x / guess
guess = ((x / guess) + guess) / 2
return sqrt(x, guess)

毕竟 LISP 是一门函数式编程语言,所以写法上还是定义了一堆小函数,再加上递归把值给求了出来。

星期一, 四月 16, 2007

死去活来的 Blogger

今天又看到自己的 Blogger 活过来了,真不知道其中又发生了多少事情。毕竟是国外的博客站点,应该没有考虑到所谓的“中国国情”,所以被无情的 GFW 常常关照。因为经常无法访问,最长的时候曾今有大半年之久,多次想过要换 Blog,但现在想想都坚持这么长时间了,索性继续下去,就 Blogger 不换了!

;-D

星期二, 三月 20, 2007

解决 Opera 下不能输入中文问题

现在用 Ubuntu 6.10 发现了不少问题,以前 6.06 没有的问题也出现了,虽然解决了,但是也做个记录。

这次是 Opera 不能输入中文的问题,经验丰富的房东雨同学说需要装一个 scim-bridge,于是我 sudo apt-get install scim-bridge,其实早就装了,但是 Opera 依然无法输入中文。

查了一些资料,发现需要修改一个环境变量,是 QT_IM_MODULE=XIM,Opera 用的是 QT 的库而非 GTK。这个环境变量可以在 scim 的配置里面修改,位置在 /etc/X11/xinit/xinput.d/scim,看看就知道了。修改完后记得重启X,然后打开 Opera 就正常了。

星期一, 三月 19, 2007

牛博网

牛博是老罗离开新东方之后办的一个博客站点,到现在已经大半年了,发展之快的确出乎人意料。虽然是博客站点,但是老罗还会挑选一些其他站点的文章引用过来,基本上在首页上的内容都还是不错的,个人认为要比Sina的小编素质高的多。

牛播的基本论调嘛,听过老罗语录的人都会觉得很熟悉,相信这会成为一个新的主流。无论如何,都值得看一看。

http://www.bullog.cn

星期一, 三月 12, 2007

[转贴] 经典-4000元人民币月薪的人过的日子

  我在苏州一家公司里当普通职员,4000元是我扣税扣保险后的全部工资奖金,全年大约5万年收入。

  作为一个本科学历,几年前从上海复旦大学毕业后,我这个工龄的办公室职员来说,这个待遇很普通,也很普遍,工资高的人也有很多,但基本上是管理和高级技术人员,工资低的也有很多,大多是刚参加工作或学历不高的。我这个收入算是中间层的。

  像我们这样在苏州谋生活的单身汉,饭一般是不做的,因为自己做饭跟吃快餐花费差不多,早餐我买一个面包和一瓶牛 奶,这需要3块钱,中午吃一荤一素,晚上吃两个素的盒饭,加上早餐钱全天15元差不多了,这样每月饭钱大约450,加上偶而跟同事朋友下馆子吃饭喝酒花的 钱,一年花在吃上的钱基本是6千元。

  我在园区租了一套40平米的公寓住,高层带电梯那种,1200元的月租并不算贵,加上管理费和水电煤气及日常用品每月共1600元左右,一年下来要2万。

  吃饭和住房是生活花费的大头,固定的开销还有交通和通讯费,交通费并不贵,每天公车来回,一个月也就1百多,固定电话和手机费各100元,这些全年加起来4千差不多了。

  因为在写字楼上班,衣服是要求穿的正式些的,夏天常见的装束是衬衫领带配西裤皮鞋,上周末我到市区人民商场里逛了逛,发现一套便宜的夏装配下来要1500 (衬衫300,领带200,西裤400,内裤80,袜子20,皮鞋400,皮带100,都是本地品牌,进口品牌西裤就要1000一条),冬天加穿西装和羊毛衫一套3000。我每两年换4套夏装,3年换2套冬装,加上一些平时穿的休闲服装,一年总共6千元服装花费。

  除去这些,每年还会有7千左右的其他开销,这包括平时买书、学习、上网的费用2千,每年回家过年的来回路费1 千,以及过年孝敬父母各2千。这些就是我正常生活的开销,就生活质量来说并不过分,稍微奢侈的消费一点都没有(如、打的、泡酒吧、唱KTV、旅游等),全 部加起来每年4万5,因此我可以余下5千元。但是要保证一年都不感冒发烧,不然上两回医院这点胜利果实就不保了。

  我以5万的年薪,每年可以存款5千,很正常的活着,但工作几年后,我发现问题来了,原因是我突然发现自己快30 了,女朋友还没一个,父母开始催我赶紧结婚。是啊,男人三十而立,事业还没立起来可以慢慢来,家总还是要成的吧。于是我怀揣着6年的积蓄3万块,准备找对 象结婚。

  在苏州的办工室女孩大多都很朴实,这可能是务实风气的影响,所谓女白领出入打的,衣服非世界名牌不穿,吃饭要去 法国餐厅,男朋友非洋人不谈的风气基本没有,要有也是个别人。但这并不等于她要倒贴你,虽然不要你养活,但也不能因为跟你结了婚还要倒贴2千块给你,曾经 某位网友说过,幸福稳定的婚姻,其经济基础是丈夫收入为妻子的1.8倍,靠,也不晓得他咋算出来的,但想想也是符合一定现状的。因此我要找一个跟我一年薪 5万的MM是不利于稳定的,其实即使我愿意人家也不会嫁给我,就算年纪快30了,长得对不起观众也不嫁我。而年薪3万以下的MM们,长相不错的要把相貌折 合成10万~100万年薪计算,所以更不会嫁我了,所以门当户对的对象是年薪3万,长得基本对得起大家的女孩。

  经朋友介绍,我认识了女友小琼,经过一年的恋爱,我发现小琼真是个体贴的女孩,她从来不要求我买贵重的礼物给 她,下馆子也是去中式小馆子,出门不打的,衣服不买名牌,偶然看看电影,情人节送卡片就行了。她说两个人过日子,只要大家真心相爱就好,并不需要那么多的 虚荣。天啊,真是一个伟大的女孩,在这个物欲横流的社会,居然还有这么纯朴善良的女孩,我太幸福了。因为感情太好,忍不住上了床,又因为好的安全套要3、 4块钱一个,一个月套钱就要好几十,所以为省钱买了1块钱2个的次品安全套,在花掉1万元拍拖款后并且避孕失败后,我决定跟她结婚。于是我们准备买房,在 苏州安个家。现在园区内的房子均价已经过6000了,哪怕是不起眼的二手楼,大多也开出4、5千的价格,我们看种一套80平米的房子,这并不算奢侈,首期 和简单装修一共要30万。女友年薪才3万,跟同事合租的宿舍,当然不会有存款。所以除去我现有的2万元,我还要凑28万就可以付首期了,如果我每年存5 千,48年后我就可以按揭买套自己的房子住,但我们不可能48年后才结婚啊,所以我决定跟双方父母借。说是借,其实就是讨,因为借了也不可能还得起。我们 都是独生子女,双方父母都是疼子女的人,而且都还没在退休前被下岗,一辈子存了十几万,如果我们把这钱都要过来,应该可以凑够首期和装修钱。父母养老还有 一点退休金,只能让他们省着过了,平时让他们多锻炼身体,只要下半辈子不生病,应该可以过下去。

  想好了买房的首期,我们开始考虑结婚的花费,客是要请的,婚纱照是要拍的,蜜月是要度的,可以从简但不能不搞, 不然就不叫结婚了,叫同居。于是我们决定用2万元请客,3千元拍婚纱,2千元到江苏省内旅游渡蜜月,够从简的了吧?这样需要2万5,我每年存5千,5年后 就可以摆酒办婚礼了。但是我们能等到5年后才办婚礼吗,这样不行吧,那时候孩子都4岁半了,他还要跟幼儿园老师请假说,老师今天我要参加我亲爹**婚礼。 所以我们决定跟同事先借3万,2万5结婚,5千块留着生小孩,这比钱分6年还清,我们可以把我现在每年孝敬父母的4千元钱和她孝敬父母的1千元钱拿来还 债,父母就不孝敬了!

  买房、结婚的钱我们想好了来源,就开始考虑已经怀上的孩子和以后的全家人的生活费用。因为房子贷款了50万,每 个月按揭3千多,加上物业管理费、水电、管道煤气、电话费等等杂费一年就是5万 5,一家三口伙食费及跟同事应酬的钱一年2万,交通费全家一年4千,服装费3人一年1万(不去商场买),小孩上幼儿园每年1万5,其他费用如回家看父母的 路费,买书上网的费用,日常生活的其他费用等等一年6千。其余所有需要花钱的娱乐一律不搞,够省的了吧,全部加起来每年将近10万。

  也就是说,如果我买房结婚生小孩后,还是正常的过日子,我每年5万年薪,小琼3万年薪,每生活一年要负债2万 元,如果算上一家人看病、父母养老和预留小孩读大学的钱,一年负债5万元以上。如果不买房而租房住,每年可以节省2万,不养小孩可以节省2万5,不养父母 又可以节省5千,再加上一辈子不生病,这样我们两口人就可以维持现在的生活水平了。但这可能吗?小琼嫁给我,没自己的房子住,不能生养小孩,不能负担父 母,还不让生病,她还嫁给我干球?

  于是我把仅有的2万元存款全部给了她,对她说,你去医院把孩子拿掉,我们分手吧,你以后找对象一定要找一个月薪1万以上的啊,我们是没有这个缘分了。

  与小琼分手后,我消沉了很久,我并不需要过奢侈的生活,只是住自己的房子,养一个孩子,给父母养老,这很过分吗?数个月无法从痛苦和迷茫中缓解过来,直到有一天在天涯上看到另一个苏州网友的帖子"在苏州300元过有钱人的生活"后才恍然大悟,原来是自己不懂得生活。

  于是我把现在租的公寓退了,找了另外7个志同道合的人,在公司附近的农民村(苏州原居民的村子习惯叫农民村,里 面的出租屋叫农民房,条件如何在苏州住过的人体会比较深)中租了房600元,共8个人睡,4张上下铺,水电杂费分摊,总共100元每月。因为住得近,走路 上班不用交通费,每2个周末坐公车出一趟门,一月10块够了。

  早餐也不吃面包牛奶了,改吃2个5毛钱的包子喝白开水,另外农民村里面非常多小饭店,其中有一种就是像食堂一样 摆几大盆菜在门口给你选,一份菜1块或2块钱,饭和汤1块钱任吃。中饭和晚饭我们8个人每人凑2块钱,要几个菜,然后花4块钱买4个饭盒的饭,饭压实装 满,够8个人吃。虽然那些菜用的油味道有点怪,但吃不死就行了,关键是每天只要5块钱伙食费,每月共150元。衣服也找到好地方买,火车站钱万里桥小商品 市场某个角落里有6 元衬衫,8元西裤,领带5块,内裤袜子各3块,皮鞋15一双,西装20元一套。但就是质量太那个,洗过水就有点歪。衣袖对不直。这样每月服装费40元差不 多了,还经常可以穿新的。

  娱乐方面也有招,村里有不少路边书摊,10元一本,很多人会去买,我到书摊上看书,但不买,看个把小时回家,明 天接着看,个把星期就能看完一本。发工资的时候,就去网吧上网,2块钱1小时,上网看帖子。当然也有比较刺激的娱乐活动,农民房建得很密,经常是你家洗手 间直接对着他家客厅,天黑的时候,把自己房里灯一关,如果对面租房的是女的你就发(发达的缩写,好运的意思)了。所以精神生活就开销是每月20元上网费。

  通讯的钱更好省,固定电话不装,用公司的,手机用动感地带10元包月,来电显示也不开通,因为没用,我不接也不打电话,只发短信。

  医疗方面主要靠平时锻炼,不生病就不用花钱,万一生病了就扛着,反正年轻扛得住。

  其他费用如卫生纸啊,肥皂啊什么的还是要用的,没女友安全套也不用了,自己动手就可以了。这样每月杂费只要花个20块钱。

  如此一计算,100房钱+10元交通+150伙食+40服装+20娱乐+10通讯+20其他=350元,一年才 用4200。本人一个月的工资就差不多够一年生活了,真TM爽啊,太幸福了。难怪GDP年年百分之十几的增长工资水平却往下跌,原来是工作一个月可以养活 自己一年,剩下的十一个月没有生活压力就很难积极工作了。

  所以说,要老婆干嘛?要小孩干嘛?要爹妈干嘛?只要转变观念,像我现在这样,不养父母,不讨老婆,不生小孩,不供楼,不坐车,不生病,不娱乐,不穿商场里卖的衣服,不吃正规快餐店里的盒饭就可以找到幸福生活的真谛!

星期五, 三月 09, 2007

蟑螂为什么又叫小强?

◆连陨石连击(大灭绝)都不能歼灭 ...............................强

◆蟑螂有3700多种...杂食?不...只要是有机物几乎都吃 ............强

◆蟑螂可在真空下(非绝对真空,如宇宙)可以存活至少10分钟 ........ 强

◆蟑螂可以活在由40kW提供来源(rotating anode source)的X-ray下. 人类则以秒计 ......................强

(P.S.蟑螂会死在由同步加速器提供10keV的X-ray下,"就是这个光"强度是上者的1000 倍)

◆可以在12莫耳的HCL和18莫耳(有多浓@_@?)的NaOH活上30秒 ........强

◆水中至少可以活上10分钟.....................................强

◆在100度的炉子内可以活很久 .................................强

◆要用传统兵器打死蟑螂...也就是拖鞋...要29.4N ................强

◆蟑螂的头断了仍然可以活上好几天...直到饿死 ..................强

转自:http://zhidao.baidu.com/question/287186.html

星期四, 三月 01, 2007

创建本地 DNS 缓存提高浏览器访问速度

之前用 bind9 做过 DNS Cache Server,但是不知为何每次重启系统之后缓存数据就都丢了,无奈之下找到了 dnsmasq 这个工具,真是非常不错。

确保没有安装 bind9,使用下面方式安装 dnsmasq:

sudo apt-get install dnsmasq
sudo vi /etc/dnsmasq.conf

增加一条配置信息 listen-address=127.0.0.1,如果已经存在此信息,请取消注释。

sudo vi /etc/dhcp3/dhclient.conf
把 prepend domain-name-servers 127.0.0.1; 的注释去掉,这样能够保证 127.0.0.1 这个地址会永远出现在 /etc/resolv.conf 中 DNS 服务器的第一个。

重启一下吧,或者手工修改 resolv.conf 并且启动 /etc/init.d/dnsmasq restart 让配置生效。

最后可以用 dig sina.com.cn 测试一下你的 DNS,做好 DNS 缓存可以让浏览速度提升不少。

星期一, 二月 12, 2007

Django 学习笔记 - RequestContext

Context 常被翻译为“上下文”,可以在很多程序设计中见到他的身影。

不仅仅是 Django Template,几乎所有 Template Engine 的设计都是传递一个 Context 给 Template 进行渲染。这个 Context 就够成了模板所需的变量表。

Django Template 的特点就是简单,默认情况下调用 render_to_response 函数传递的第二个参数是一个简单 map 对象,会被包装成 django.template.Context 传递给模板使用。

其实很多场合我们需要默认在 Context 里面加入一些常用的东西,譬如把 request 对象传入 Context,把权限模型放入 Context 以便调用。为了避免每次硬编码,Django 提供了一个 Context 的子类,django.template.RequestContext。

在 settings 里面有一个名为 TEMPLATE_CONTEXT_PROCESSORS 的设置于 RequestContext 密切相关。默认的配置为:

("django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n")


这些 Processors 都会被 RequestContext 顺序调用,往当前 Context 中放入一些预定义变量。譬如 auth 就会放置 user 这个变量,就是当前登录的用户对象。

RequestContext 作为 render_to_response 的第三个参数传递,必须将 request 作为参数传递给它,如下:

def some_view(request):
# ...
return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))

更多的信息请参考 Django 官方文档:
http://www.djangoproject.com/documentation/settings/#template-context-processors

星期五, 二月 09, 2007

Django 学习笔记 -Middleware

Django 的确可以做类似 Spring framework 里面 Interceptor 的操作,这在 Web 开发中相当不错。不过在 Django 里面这个不叫做 Interceptor 或者 Filter,他叫做 Middleware。

Middleware,多么庞大的概念,Java 开发着对这个此一定不陌生......,不过在 Django 的世界里,他就是 Interceptor,很简单。

Django 提供了很多默认的 Middleware 来作一些例如 URL 处理,Session 控制,和一些更基础的工作。Middleware 同时也构成了 Django 一个独特的插件机制。

Middleware 并不复杂,他主要就是可以让你在 HTTP 请求过来之
前和之后作一些处理。要实现 Middleware 并不需要继承任何类,脚本语言嘛,我们有 Duck Typing。

Middleware 里面有以下4个函数可用:

  1. process_request(self, request)
  2. process_view(self, request, view_func, view_args, view_kwargs)
  3. process_response(self, request, response)
  4. process_exception(self, request, exception)
看看函数名想必就知道做什么的了吧,写好 Middleware 之后随便放到哪里,只要在 settings.py 里面写上路径可以让 Python 找到就行了。

Middleware 的一些不足:
  • 全局应用,不能够针对某种 url pattern 应用自己的 middleware,不过可以自行扩展
  • 没有类似 Java Servlet 中 Filter Chain 的管理,完全是顺序应用 middleware,所以顺序很重要,因为有依赖。

Middleware 官方文档:
http://www.djangoproject.com/documentation/middleware/

星期二, 一月 30, 2007

重返 Blogger

这一个多月过得真是不容易,遭遇天灾,光缆断了,几乎没法写 Blogger 了,总算,现在应该恢复了 70% 了吧,好事情。

用 Django 做了一些东西,顺便学习了一下 Django,很有意思的一个框架。以前没有正经用 Python 做过东西,现在做下来感触还是很多的。先说说 Python 吧,个人观点。

随着 RoR 的兴起,动态语言的地位一下子上来了,越来越多的人学习脚本语言,不过似乎有一个问题。Python 很容易上手,的确不错,Python 依靠缩进来提高代码的可读性。不过也有一个似乎是脚本语言共有的问题,就算依靠缩进来提高代码的可读性,新手与老手写出来的代码也都可能是完全不同。很多 Java 的同行去尝试 RoR 了,很不错,很多新人也去玩,但是同样的东西写出来的代码质量可以相差很多。前些日子和 Martin 一起写过一些代码,pair 了一把,发现自己的水平比起来太差了,毕竟在 Python 上我算是个新手吧。

玩了玩 Django 和 TurboGears 两个 Python Web 框架,最后还是选择了 Django,有人说用 Django 的都是懒人,我承认我还是喜欢懒一点。TurboGears 整合了一群框架,可以自由替换前端和后端,没发觉有多少好玩的地方。我大致看了一遍 Django 的代码,觉得玩 Django 更有意思一点,扩展 Django 没多少难度,下阶段闲一点的时候我要整合一个新的模板引擎替换 Django Template。

可能最近一段时间都会用 Python 来做东西,就趁这个机会再细细研究一下这个语言本身了。

星期一, 一月 01, 2007

Ubuntu 下 resolv.conf 被替换的问题

用 Ubuntu 一段时间了,自从晚上使用无线网络之后就发现一个很恶心的问题,因为通过DHCP获取IP,所以经常重写我的resolv.conf,由于我自己配有bind9用作本地DNS缓存,所以经常要修改resolv.conf为我本地设置。Google 了一番,总算找到了解决方法,修改/etc/dhcp3/dhclient.conf,使用下面的语句为每次生产的resolv.conf准备默认的几台DNS地址:

prepend domain-name-servers 127.0.0.1;