VP8 Open Source,名為WebM

這幾天Google IO 2010的消息之一:VP8 Open Source,命名為WebM,程式碼本體以 3-clause BSD style 授權發布,而Bitstream檔案格式以CC-by 3.0發布。

目前 FirefoxOpera 的使用者可以下載 WebM 的測試 build。Chromium (Chrome的開放原始碼版本) 也已經可以取得原始碼自己編譯,而預先編譯好的版本 (dev channel build) 還要等個幾天。

目前 YouTube 已經支援以 VP8 播放影片,只要開啟 HTML 5 模式,然後在影片URL後面加上 &webm=1 即可。

Flash 已經宣佈會在接下來的版本內建支援WebM,而微軟也宣佈將在IE9中支援 ((使用者必須在系統內安裝相關的 codec))。接下來就看 Apple 的反應了。

FreeBSD 的 pf route-to 與 TSO (TCP Segmentation Offload)

之前一直有遇到在 pf 裡面用 route-to 之後網路連線緩慢的問題(大概只有 10kb/s),不過一直沒時間去追。最近花了點時間去追這個問題,發現在使用 route-to 並且開啟 TSO 之後,重送以及 out-of-order 的 packet 變得異常多:

wireshark.png

拿掉 TSO 或是 route-to 其中一個設定,狀況就會變好。在 core team 修正這個 bug 之前,只好先暫時 disable TSO 了。

RSS Cloud 與 Pubsubhubbub

RSS CloudPubsubhubbub (PuSH) 兩者都是 RSS 的 extension,提供一個機制讓Subcriber可以即時接受Publisher的更新。對於Publisher 來說,兩者的實做方式差不多,不需要作什麼大改變:只要在有內容更新的時候送一個 ping 給 hub,並且在 RSS Feed 裡面指定 hub 的位置即可;不過對於Subscriber來說,做的事情就不太一樣。

PuSH 本身在通知Subscriber的時候,會把更新的資訊內容一起給出來(fat ping) ((http://www.techcrunch.com/2009/09/09/rsscloud-vs-pubsubhubbub-why-the-fat-pings-win/)) 。這樣的好處是Subscriber不需要再去Publisher抓,降低Subscriber的實做難度,並且也減輕 Publisher 的負擔。缺點則是 Hub 比較難實做。

我覺得兩者都可以視為 Blog Ping 的延伸。以後 Publisher 不需要自己去一家一家 Ping,只要 Ping hub,其他就交給 hub 就好了。

IE 外嵌 JavaScript 的問題

當 IE 用 <script>外嵌一個 javascript 的時候,只刪除 IE 的 Cache 是無法刪除被 IE Cache 住的 Javascript 的。有幾種方法可以解決:

  1. 請使用者把「所有的」Cache 以及紀錄都刪除。可以用
    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351
    這個指令作到。
  2. 請使用者按 Ctrl+Shift+重新整理。
  3. 在 script URL 後面加上不同的 QueryString。

如果可以控制 script URL,第三個方法是最簡單而且最有效的方法。

支援超多技術的 Multiple File Uploader

這年頭上傳檔案要是沒辦法一次選很多個檔案上傳,可能會有很多人幹樵;從最老牌的swfuploadHTML 5 File API都支援,不過Flash吃資源,而且swfupload的更新速度老實說不快;HTML 5則不是每家瀏覽器都支援。於是,TinyMCE的作者們就寫了plupload,只要瀏覽器支援Google Gears、Flash、Sliverlight、Yahoo Browser Plus,或是HTML 5 File API的其中任何一項,就可以一次選擇很多檔案上傳!

看看支援的功能,除了Multi Threading和Pipeline以外,包括事先縮圖和Drag&Drop都實做出來了,看起來非常exciting啊……

不過我有預感bug應該也會很多就是。

看起來IPv6好像有那麼一點可能性了

最近有一堆IPv4位址即將用完的新聞,連1.0.0.0/8都被拿出來用了;再加上有國外的ISP開始測試提供用戶IPv6服務,看起來是有那麼一點在這幾年開始轉移到IPv6的可能性。

Hinet也開始在光世代線路測試IPv6了,而且是用Dual Stack供裝。據說目前只有一些機房有提供測試,如果剛好連線到的機房沒提供,還要跳線才行。

反正就慢慢來吧……1998年制定的IPv6,也才經過11個年頭而已。

第一個 CPAN Module

CPAN 是 Perl 很重要的資源之一,其中 Perl Modules 更是重點中的重點。之前想要把自己寫的一些 Module 傳上去,不過看到說明中的 “Please allow three weeks for proceeding” 就完全提不起勁了……

後來想說乾脆註冊起來放。沒想到才送出註冊請求兩小時,帳號就開好了……而且還是台灣時間晚上六點這種美國還是清晨六點的時間耶!

所以說,就把一些 SMS::TW::Drivers 放上去了。另外當然也順手做了 FreeBSD Ports,也方便自己使用。

在 terminal 下用 subtitle2vobsub 生出 .idx 與 .sub

必須的程式:mplayersubtitlerippertranscode

首先先抓出該 DVD 內有幾個字幕軌道:

mplayer -dvd-device $RIPDIR dvd://$TITLE -vo null -ao null -frames 0 -v

$TITLE 是該影片位在 DVD 的哪個 Title 中。

輸出結果應該如下:

......
DVD successfully opened.
audio stream: 0 format: ac3 (5.1) language: en aid: 128.
audio stream: 1 format: ac3 (stereo) language: en aid: 132.
number of audio channels on disk: 2.
subtitle ( sid ): 0 language: en
subtitle ( sid ): 1 language: es
subtitle ( sid ): 2 language: pt
subtitle ( sid ): 3 language: ko
subtitle ( sid ): 4 language: zh
subtitle ( sid ): 5 language: th
subtitle ( sid ): 6 language: es
subtitle ( sid ): 7 language: pt
subtitle ( sid ): 8 language: ko
number of subtitles on disk: 9
......

再接下來抓出字幕:

tccat -i $RIPDIR -T $TITLE -L | tcextract -x ps1 -t vob -a 0x24 > subs-zh

註:0x24 為 0x20 + 4 (language:zh 的 index)

再接下來轉成 idx+sub:

subtitle2vobsub -o vobsubs-zh -i $RIPDIR/VIDEO_TS/VTS_01_0.IFO < subs-zh

就會生出 vobsubs-zh.idx 與 vobsubs-zh.sub 了。

HTC Magic 試用

  1. 還蠻容易沾到指紋的……
  2. GMail 跟 Calendar 整合太好用了 XD
  3. 沒有 Google Reader –_-(當然可以用 Browser 上去,只是還要另外登入,沒有跟 GMail 綁在一起)
  4. Google Maps 比起 Windows Mobile 版來說方便很多(不過我只有用過 Smartphone 版的)
  5. 繼續試用中……

設定 samba3 自動安裝 Windows 的印表機驅動程式

如果使用 Windows 來分享印表機,使用者可以在連線到印表機的同時自動安裝好驅動程式;之前以為用 samba 不能作到,不過今天一查資料發現可以,只是會有一些地雷……XD 以下就是簡單的步驟說明:

假設印表機已經以 cups 設定好了,並且採用 RAW 模式直接輸出到印表機:

  1. 建立 print$ 這個分享目錄。
    在 smb.conf 中加入:

    [print$]
    path=/home/data/samba/drivers
    browseable=no
    read only=yes
    write list = root
    case sensitive = no
    preserve case = No

  2. 先找台 Windows 機器,連接上印表機並且設定好印表機的分享。假設這台 Windows 機器名字叫做 WINPC:

    # net rpc printer MIGRATE DRIVERS HPLaserJet -U root -S WINPC

    其中 HPLaserJet 是印表機分享的名字,在 Windows 與 cups 上要取一樣的名字。

  3. 如果出現 WERR_ACCESS_DENIED 的錯誤訊息,先試著增加 SePrintOperatorPrivilege 的權限給 root:

    # net rpc rights grant root SePrintOperatorPrivilege -U root

    如果還是不行,檢查 smb.conf 的 [printers] 區段內有沒有 use client driver = yes 的設定,有的話請暫時將它拿掉即可。

  4. 如果要設定 Windows x64 版本的 Driver,就在 WINPC 上安裝 Windows x64 的 Driver,再重新跑一遍 net rpc printer MIGRATE DRIVERS 就可以了。

參考資料: