Archive for September, 2008

Naomi訪談Brendan

Monday, September 29th, 2008

Brendan提到:

關於JavaScript 和ECMAScript的區別:ECMAScript是一個標准,JavaScript包括沒寫進標准的擴展,一些JavaScript的實現走在了ECMAScript之前,ECMAScript只涉及JavaScript核心語言,而DOM通常也被人們認為屬於JavaScript。

在比較長的一段時間裏,大多數JavaScript還將是手寫的,而不是由GWT之類的生成的。

未來的JavaScript將重點關注可用性(包括新的語法),模塊化,進一步的完整性,一言以蔽之,重點解決用JavaScript編寫“大”項目帶來的問題。

Web是多元開放的,所以JavaScript框架也會出現百花齊放的局面,而不是一家獨大。

Flash之類的插件不像內建在瀏覽器中的JavaScript那樣更容易被用戶獲得,而且,用戶對插件往往不那麽信任。

以後JavaScript可能用在服務器端或者作為桌面、系統領域的腳本語言。

最為JavaScript感到驕傲的是組合了作為一等公民的函數和對象原型。

未來的編程語言要面臨多核/并行以及安全兩大方面的挑戰。

有志於學習語言的要好好學習經典著作:Knuth, Wirth, Hoare等。技術不斷地在發展,但是許多早先發現的東西仍然適用。當然近期也有很多很棒的工作,但學習者往往更多地關注這些,而忽視了舊時的巨人。

訪談稿全文

Naomi訪談Guido

Monday, September 29th, 2008

Guido提到:

當初創立Python,關注的首要的問題是程序員的效率。

如果有機會重來一遍,希望把更多精力放在提高標准庫的質量。

最愛的web開發框架是Django。

PEPs帶來重大的效率提升。

認為在手機等嵌入式設備領域,硬件已適合採用Python了(Python比JVM小巧很多)。

Python給電腦開發帶來的“遺產”:動態語言的蓬勃發展、比括號可讀性更強的縮進、使編程重新充滿樂趣。

為Python成為Google的一號腳本語言而驕傲。

希望有一天,電腦可以足夠強大,不需要單獨的函數、動態、靜態語言,大家都使用同一種吸收了三種範式優點的語言。

有志於學習編程的應該學習一種以上的語言,比較兩種語言能開闊眼界。

偏愛空格而不是制表符(偏愛4個空格,雖然Google的風格指導是2個)。

訪談全文見此

斯坦福也把(小部分)課程搬上網了

Monday, September 29th, 2008

搞了一個SEE(Stanford Engineering Everywhere )。包括講義、作業、測試等課程材料,還有視頻可看。

SEE

ProductWiki

Sunday, September 28th, 2008

產品的評論,有點像豆瓣,但是是wiki的形式。

productwiki.com

道德直覺

Sunday, September 28th, 2008

聽羅素的講座,他提出的研究倫理問題的方法,很有意思。他認為人是有道德直覺的。但復雜
的倫理問題往往會使人迷失。所以,需要把復雜的倫理問題轉化為等效的明白的問題。

我覺得這個方法很類似數學證明。將欲證明的問題一步步地轉化,轉化到一個等效的說法,而
這個說法是得到普遍認可的(或者說,是公理)。

我感覺這個研究倫理問題的方法看上去很平淡無奇,但是非常實用。掌握這個方法,比看大部
頭的倫理書實用得多。

比如,二戰時在廣島扔的那顆原子彈。這也是一個倫理問題。我以前一直為此困惑。有一種說
法是,雖然是害了無辜的平民,但是如果不扔,戰爭不會這麽快結束,將給世界人民帶來更大
的災難。對於這種論調,不妨也來個等效轉化:

有個殺人狂,犯下無數罪案,但卻一直逍遙法外,不斷殺人。不過這殺人狂是個孝子,只要殺
了他的父母,他一定會在巨大的悲痛下自殺。那麽,他的父母,該殺否?

打折促銷

Sunday, September 28th, 2008

母親去大賣場,常常買一大堆打折促銷的東西,其實都是些可有可無的東西,就是貪便宜買的,經常被我嘲笑。不過我似乎也不怎麽樣,這個月買了好多書,也是因為書店搞促銷活動的緣故。

留存的中華鉛筆

Sunday, September 28th, 2008

找到幾支留存的中華鉛筆,90年代初購買的。很好用,質量比現在市面上的好得多。

正體和繁體

Sunday, September 28th, 2008

有些人叫繁體,有些人叫正體。其實正體這名字,仔細推敲也不是很妥當。正體是和俗體相對的。既然不喜歡繁體、簡體的提法,那就該提正體、俗體,而不是正體、簡體。

英文是Simplified Chinese和Traditional Chinese。Simplified Chinese,翻成簡化字,這沒有問題。至於這Traditional Chinese,若翻成繁體字,繁體字、簡化字一對比,給人感覺繁體字過於繁瑣,簡化字纔好。若翻成正體字,正體字、簡化字一對比,給人感覺則是正體字是正式的,簡化字是簡化的正體字,不正規。

吳方言有“老法字”一詞,“老法”的意思是“老舊的,傳統的”,倒是一個現成Traditional Chinese的翻譯。

蒸飯

Sunday, September 28th, 2008

即飯團。我開始以為是一碗蒸出來的米飯,鬧了個笑話。

轉換amr文件

Tuesday, September 16th, 2008

手機錄音的文件格式是.amr。怎麽轉呢?且看下文。

weakish@localhost:~$ file test.amr
test.amr: Adaptive Multi-Rate Codec (GSM telephony)

需要AMR的解碼器。這個已經被打成amrnb和amrwb兩個包了。Debian下,只需:

sudo aptitude install amrnb amrwb

即可安裝。(需要把debian-multimedia加入源。)

使用很容易:

amrnb-decoder test.amr test.raw

得到raw文件後就可以很方便地轉成其他格式了,比如用sox轉成ogg:

sox -r 8000 -s -2 test.raw -t ogg test.ogg

(Debian下安裝sox只需安裝sox和libsox-fmt-all這倆個包即可。

如果是要轉mp3,可參考sox的文檔。如果是要encode成amr文件,則有amrnb-encoder可用。

如果發行版未提供現成的解碼器軟件包,也可直接編譯。到此下載3GPP.org提供的解碼器

unzip 26104-520.zip
unzip 26104-520_ANSI_C_source_code.zip -d 3gpp
cd 3gpp
cp makefile.gcc Makefile

修改Makefile,找到這行:

CFLAGS_NORM  = -O4 -DETSI

改為:

CFLAGS_NORM  = -O4

修改decoder.c,加上這樣一行:

#include "sp_dec.h"

然後編譯即可:

make

編譯生成的可執行文件是encoder和decoder,可將其放到你的PATH裏,比如/usr/local/bin/或者~/bin之類。decoder的用法和amrnb-decoder一樣。

如果覺得麻煩,也可以利用media-convert.com的在線轉換服務。無需注冊,上傳原文件,再下載轉換後的文件即可。