提升 YouTube 播放質素的秘技(續)

早前介紹過「秘技」讓 YouTube 播放影的畫質提升至「高清」水平﹐但這小技巧僅限於在 YouTube 網站上使用(其實現在按 “Watch in High Quality” 就可以了)。不過看來在網頁上內嵌的影片也可以受到同等待遇。剛剛又有人發現,只要在引用 URL 尾端加上 “&ap=%2526fmt%3D18” 這串字,就可以讓播放器播放經 H.264 壓縮的影片。

又讓我們比較看看:

高清版:

Trackping Separator 2.x 開發記事

TSP久沒更新,其實都是我懶,不是苦無點子。從連入連結和 technorati 就能看見不少人嫌舊版TSP安裝麻煩,改theme /主題改得亂七八糟。老早發現其實 WordPress 有兩個 filter API可以幫忙省免大部份麻煩的步驟,在另一插件 MCEComments 出現之前就有了構思,不過自從 Pingback/Trackback 成為垃圾郵件業者的新武器,就差不多沒有人在用。這年頭連進來的訪客都寥寥可數,沒有留言建議不在話下。況且,不少主題現在都內置(例如 K2)這種功能,這個插件就更沒必要存在了。

幾天前看見舊版面有點亂,就打算把整個主題推倒重來,再到官方主題站挑個新的。選了這套 Big Blue,清爽圖片少,就覺得很適合。字體有點小,不過調一下CSS就可以,問題不大。反倒是留言,雖然有內置分離功能,不過從主頁看留言數卻跟內文顯示的不同,不順眼。

所以有了動機。程式碼其實都不太難,改寫幾句就 OK。但是,卻被 PHP 這種本來是樣版語言的設計踹了一腳。我不小心的放了兩個 \n 在插件的 PHP 後面,自然它們也出現在準備輸出成網頁的那截記憶體裡。XML 的設計又很龜毛,哪管是空白字元,只要有東西在 <?xml version=”1.0″ ?> 之前就得去死,所以改好插件的頭兩天 feed 都變成了奇怪的亂碼 (我不知道為甚麼,明明只是空白字元而已)。還好有大雄經 twitter 提醒,不然讓這不到 200 個的忠實讀者受罪,那叫我如何受得起?

軟件這種東西永遠有 room for improvement。或許放一頁設定內頁,或許可以把外連列表 (listtrackping)都改成自動加上…

後記:插件是故意寫成 non-backward compatible,因為兩個版本(1.1.1 和 2.0)在功能上是毫無分別的。

何謂 IT

大學同學在 Facebook 傳來群組邀請,主題是針對某電視台介紹 IT 行業的影片,好奇之下看了附上的其中一段短片:

這… 這是甚麼鬼呀… 不能想像主題取材居然可以那麼白痴,教人汗顏。而且節目還有大學贊助,博士傾力演出,將節目的白痴指數(如果有這種指數的話)推至頂峰。

Short 也算是「IT 潮語」?咸豐年前我老爸也會說啊。博士啊博士,你是不是關在象牙塔裡太久(應該不會吧,你又是公司總裁,還會參選立法會),還是生活很難過,要靠拍反智短片養家活兒?

我… 我不知道要說甚麼才好了…

究竟外間對 IT 人的印象,是不是一定要和電腦終身為伍呢?

吃掉和被吃

工作關係,這幾天在鑽研讀入 PDF 檔案的方法。如果是匯出的話,坊間有很多免費的工具和程式庫,而且就算是 Microsoft Office 也有相關插件,只要輕鬆按幾下,一張跟原本沒太大差異的 PDF 就會出現在硬碟裡,電郵附件中,螢光幕上。但是把 PDF 轉換為其他格式的檔案,又是另一回事。

如果有看過由 Adobe 提供的 PDF 格式定義(PDF),就會知道 PDF 跟其他文件格式有點不同:與其說它是文件資料,不如說它是把文件「畫」出來的指令。我們要做的事,其實簡單到不過,僅只是把文件裡的表單抓出來,直接匯到資料庫去了罷。奈何 PDF 不像 DOC 一樣有 table object,儲存在 PDF 檔案裡的,就只有「在座標 (3,4) 畫一條黑色的直線,然後旁邊留 5p 的空位」這種指令而已。

而且,如果表單的設計比較簡單,可能根本就不會有線的存在。我們又能憑甚麼分開處於不同儲存格裡的資料呢?阿哈哈,我不清楚。

Debian 家族非常嚴重的安全問題

本來昨天就打算說一下的了,無奈網頁寄存的資料庫好像有點問題,一整天都發不了文章。

言歸正傳。Linux 系統尤以安全見稱,但是昨天從 Debian Linux 團隊中傳出一個駭人聽聞的消息。兩年前由於一些人為的錯誤,用於產生密匙(Private Key) 的亂數產生器不小心被移除了。

很簡略的解釋一下。在現代加密技術裡,混亂性是決定加密資料的安全性的一項重要因素。就好像銀行會要求客戶的帳戶密碼非常難猜,最好跟自己沒有關係,以免被不法之徒撞破。電腦加密原理都差不多,不過製作密碼則交由電腦程式去負責。在使用者要求產生密匙(一串長到你不會記得住的數字)的時候,程式會使用亂數產生器弄一個隨機數。以後要加密文件的時候,電腦便會將這串數字和要加密的文件丟到演算法裡面,結果便是加密了的文件。

這一次的問題,就是最近有人發現這個亂數產生器在兩年前不小心被除掉。換而言之,有心人都可以很容易「猜」到這兩年來由 Debian OpenSSL 程式庫亂數產生器系統所產生的密碼,包括 SSL 證書,SSH 鑰匙等等。

令人震驚的是,負責程式碼維護的工作者居然可以這樣的不小心,而且這問題居然可以一直存在兩年而沒有被察覺。有人半開玩笑的質問那傢伙是不是來自微軟的間諜,此外這事更引發一場「開源是否真的安全」的討論。

如果你像我一樣曾經使用 Debian/Ubuntu 產生密匙用作無密碼自動登入,也許是時候重新整理一下那堆密匙了。

浮點運算(IEEE 754)

今天又碰到這個問題(是人家的錯),寫下來跟大家分享一下。

double d1 = 0.6L;
String s1 = “0.6”;
BigDecimal bd1 = new BigDecimal(d1);
BigDecimal bd2 = new BigDecimal(s1);
System.out.println(bd1);
System.out.println(bd2);

其實基本上不只 Java,使用浮點運算的平台都會有這個問題。主因是二進位數字系統並不能完全表示十進位數字(大約值等於 0.5999…. 吧),要精準度高就不能用 double 而使用其他特別類別或函式庫,如 BigDecimal(如以上程式碼所示)或 GMP (C/C++)。

但以上的程式碼一早就轉成了 double,所以結果一樣會未如預期。

Google SoC 2008 名單公佈

一年一度的 Google Summer of Code 學生暑期工作計劃的對象名單公佈啦。以香港的暑期工工作內容來說,個人覺得申請成為 GSoc 其中一份子比跑到辦公室當暑期工充實得多。獎金也比當暑期工豐厚(US$4,500),最少省了來回辦工室的交通費用。題目明確,很具挑戰性,而且種類繁多,由 PHP (WordPress, Drupal),C/C++(Audacity, X.Org, Debian),Python(MoinMoin, Zope, Django),Java(Codehaus, Eclipse),JavaScript (Dojo) 都有,申請成功的開源團隊不少都搞遊戲,連開發 Second Life 的 Linden Labs 也在名單之中。詳細請參考 GSoc 主頁。

想暑假過得充實別錯失機會,3月24日就可以報名囉。

唉,可惜我再不是學生了。