又再來一個回顧了。在這一年,有三項令我比較注目的技術名詞 :Ajax, Ruby on Rails, Web 2.0,三者又互有關係。
自 GMail 和 Google Maps 面世,大家都對 Ajax 有了很大興趣,結果在今年有很多不同的 Ajax library 出世,如 Prototype , Dojo 等等,也研究出很多做 Ajax 的
I've mentioned before that in Python, def is actually an executablestatement (in FunctionDefinitionOrder ). A logical consequences of thisis that default values for function arguments are evaluated only once,when the def runs.
I say this because expressions generally get evaluated when any Python statement runs, so the expressions in things like ' deffoobar(a, b=greeble(c), d=None): ' are not being an exception. Theexception would be if they were not evaluated then and were instead
Being able to find out what hardware is in a random machine is one ofthose things you don't think about very much until you inheritresponsibility for a bunch of machines that you didn't build yourself.
The best hardware inventory program I've used is SGI's hinv (although it doesn't have enough disk information). Linux has decenthardware inventory support, but not bundled into a single command; youhave to look through a bunch of /proc files and know a few commandslike
又再來一個回顧了。在這一年,有三項令我比較注目的技術名詞 :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