又再來一個回顧了。在這一年,有三項令我比較注目的技術名詞 :Ajax, Ruby on Rails, Web 2.0,三者又互有關係。
自 GMail 和 Google Maps 面世,大家都對 Ajax 有了很大興趣,結果在今年有很多不同的 Ajax library 出世,如 Prototype , Dojo 等等,也研究出很多做 Ajax 的
又再來一個回顧了。在這一年,有三項令我比較注目的技術名詞 :Ajax, Ruby on Rails, Web 2.0,三者又互有關係。
自 GMail 和 Google Maps 面世,大家都對 Ajax 有了很大興趣,結果在今年有很多不同的 Ajax library 出世,如 Prototype , Dojo 等等,也研究出很多做 Ajax 的
Blogging
Service and Resource
Browser Plugins
One of the joys of learning new programming languages is the ahamoments when something really clicks. The biggest aha moment I've everhad was with Prolog, when an assignment went from nigh impossible totrivial in a blinding flash of obvious insight.
But the one I remember most distinctly is from years ago, when I waslooking at Lisp (again), and finally realized that the fundamentaldata structure of Lisp is not lists but cons cells .
While the major use of cons cells is building lists, cons cells
The comment on my AClosureConfusion entry brought up a little Pythonsurprise that I had known about in the back of my mind but neverthought about fully before: the consequences of Python's scoping rulesfor variables.
Ignoring closures for the moment, Python only has two scopes forvariables: global to the module and local to the entire function.(Closures introduce additional scopes for the variables of the 'outer'functions.)
Well, sure, you know that. But the consequence is that any variablein a function
Somewhat recently a discussion came up about the proper use of asserts over on Ned Batchelder's blog, with a number of people feeling thatthey were overused or outright misused by being applied to situationsthat really should have actual error recovery. (One nice phrase usedwas 'exploding comments'.)
I'll admit it: I use asserts in my code. I use them when I don't thinksomething can happen in an algorithm, but I'm not absolutely sure andif I turn out to
今年香港的 Blog 界開始蓬勃起來,越來越多的 Bloggers 互相交流,真正形成了一個香港的 Blogosphere。年尾流流,就回顧一下這一年我比較有印象的 Blog 人 Blog 事。