在試著分享軟體專利的荒謬性字幕時,試著想要把影片跟字幕嵌入到網頁裡面,方便大家點開就可以直接看。試了幾個線上服務,如 Youtube, Vimeo, blip.tv 等等,發現他們要嘛限制播放時間,否則就是不支援字幕系統。

實在不想耗費時間剪接,後來發現軟體專利的荒謬性影片擺在 Internet Archives,而且直接用 HTML5 Video Tag 播放,轉念就試試 JavaScript 吧。很快找到 j^jquery.srt.js,這之小程式會自動下載跟解讀 SubRip (*.srt) 格式的字幕檔,然後在影片播放的同時,依照時序自動更新字幕,就算使用者快轉也會自動跳到新位置,相當方便。效果可以看軟體專利的荒謬性一文的影片。

必要的話,也可以稍微修改,讓字幕直接浮在影片位置上,顯示會更接近一般播放軟體,可能更美觀。

所以 JavaScript with HTML5 又多解決一項 Flash 可以辦到的事情啦。:D

Updated, 2010-05-16 14:00: 理想中的多國字幕系統,可以參考 Ilias Ismanalijev嘗試。除了用 jquery.srt.js 外,也有一Timed Text (TT) Authoring Format 規格可用。詳情可見 Silvia Pfeiffer 在 HTML5 Video Accessibility 上的相關推展

軟體專利的荒謬性

雖然有些朋友專職從事專利或軟體專利的撰寫、管理工作。但是我必須承認,我實在厭惡軟體專利制度。實在也很不願的被迫撰寫軟體專利,來助長這種錯誤的制度。過去有段時間,時常查閱特定領域的軟體專利,當時即發現幾乎大部份的習知技術 (prior art)都早以含糊不明的文字廣泛的登記為專利了。而且,這些專利註冊者,十有八九並非實際利用其創意經營生意。

於是,你幾乎沒有任何辦法撰寫一套不違反專利的軟體。但你若想經營一套生意,唯一保護你自己的方法是更賣力註冊其他的專利,用更模糊的字眼申請專利,於是你便能在受到威脅時,以攻為守。為了能夠長久在產業中存活,你不得不花費資源投資在專利開發上,而不是提供服務或製造產品。專利制度不再是鼓勵創新,而成為繳交給大企業的變相稅金。

《軟體專利的荒謬性》是由自由軟體基金會所贊助的紀錄片,片中適當剪輯了幾個專訪,正好在半小時內,完整的頗析關於軟體專利的問題與觀點。相當值得你花半小時時間來了解。

Patent Absurdity 影片授權為創用CC 姓名標示-禁止改作 (CC-BY-ND) 3.0. 作者請見關於此紀錄片。感謝阮一峰進行簡體中文字幕翻譯,我將其轉成正體中文,並花了點時間調整了一下文字,歡迎下載使用,並給予指教。授權同阮一峰先生採 CC-BY 3.0

歡迎轉錄影片與字幕。

你若無法觀看影片,請安裝支援 HTML5 Video 播放功能瀏覽器,如新版 Firefox 3.6,或使用 Flash 版本

I should not blog about this, but it’s actully spent me too much time on fixing the computer. And the customer support of aOpen did nothing for me but simply waste me time. So I decide to share some experience with you, then you don’t need to be pissed off by useless DrOpen web site.

I got a aOpen XCCube EZ945-P, and I was trying to refresh the bios due to the problem of booting from USB pen. However, it seems the BIOS EasyFlash tool from aopen web site has some problem on Windows. At the middle of reflashing process, the computer frozen. And if you understand the basic of PC, you will know that killed the BIOS and computer.

The good thing is the easyflash tools only flash the ‘system block’ but not the ‘boot block’ of BIOS, which means that you can still boot up computer and it will try to runin the Operation System on the floppy. (If you still have floppy disk driver)

The problem is I don’t have one, the other problem is the model use a special cable for floppy disk driver, which I can’t find it. Since the model is a AIO (all-in-one) model, it use a smaller connector for saving space on motherboard. So, I need to find a floppy disk driver and the cable. The driver is easy part, you can still purchase used driver from Y!Bid or Rutuen (they are ebay in Taiwan). For the cable, I need to get one from aOpen.

It sounds very good that aOpen have a self-help and tech-support cernter called `DrOpen‘, I thought I can get support from that website. It turnes out, it does not help at all. When I tried to consult the website for a procedures of recovering BIOS and where I can purchase the cable. And bascially the customer support agent (Niño) ask me these things

  1. He asked what’s my part number and serial number? # I asked for cable and bios image, and they asked me the numbers to confirmed I am a cusomter?!
  2. He think I have successfully upgrade the BIOS, because I can still hear a beep after boot. And he asked me to check the video adapter is connected properly by checking the FAQ. # He has no idea about how BIOS works, so he think beep means the BIOS is ok. And my model is All-In-One,  the video chip is designed on-board! That’s the most stupid suggestion I can get.
  3. And he suggest me to download the BIOS file from their website, and then boot into dos, when I see the dos prompt, type the name of flash tool to reflash BIOS. # Since the BIOS is corrupted, you don’t get VGA display at all, where you can see and type in dos promopt!?
  4. At the end, he never tell me where I can purcahse the cable, and if you check the other issue in the DrAopen knowlodge base, they always suggest you come back to reseller for asking the cable. WTF.

So, I need to fix it by myself. The first thing is to get the cable and floppy disk driver. After asking about 10 sellers of this model, I finally get one seller can sell the cable for me. (it’s expensive then the driver!)

Then I tried to download the BIOS images from aOpen website, and I found out they customized a tool named IFC or WIFC, which help you reflash BIOS in DOS or Windows. And I can tell you the tools simply does not work! Here is my solution

  • Most modern BIOS has a recovery system. If you failed on reflashing, it usually can be recovered from floppy disk. But you will lost VGA output and keyboard before you recover the BIOS.
  • You will need a floppy disk with DOS installed. You can use FreeDOS. It’s free, powerful and provides DOS-compatible operating system. You can download the image and dd it into floppy disk, if you are using Linux only like me.
  • After you installed freedos on floopy, you need to change configs a little bit. By default, freedos will boot into a menu system, which let you install freedos into hard disk. You can change it by modfiying fdconfig.sys. I changed it like this to run autoexec.bat
    SHELL=A:\COMMAND.COM A:\ /E:2048 /F /MSG /P=A:\AUTOEXEC.BAT
  • Then you will need the BIOS image, for my model there is a file named IFC14.BIN. Don’t use IFC14.exe, it does not work. You will need AwdFlash to reflash the image, which can be download from Softpedia. Then you have the reflash command written in autoexec.bat like this
    AWDFL882.EXE IFC14.BIN /py/sn/Sb/cc/R
  • The options of AwdFlash can be check by /?. You can change it whatever you like. Ok, we are all set, reboot and wait for it to reboot. The system sould be load into DOS and reflash the BIOS for you.

Good Luck, and wish you can also fix you BIOS as I did. 🙂

這是四月 OSDC 2010Thinker 一起報告的題目。出發點是為 Tablet PC 所開發設計的 Application development model,嘗試以 SVG 作為介面、繪圖系統規格。

發展方向是以 Gecko/XPCOM/DBus 來提供系統介接,Thinker 則說明在 SVG/XBL/JavaScript 上的嘗試與經驗。

上一篇文章簡單分享一下我對 Gnome Shell 的粗淺觀點,在 Gnome Shell 中,另外一個更令人驚喜的技術特色是 – JavaScript.

Gnome Shell 大部分的程式碼都是基於 JavaScript 所開發,利用 Gjs (Javascript Bindings for GNOME) 與 GObject Introspection,你就可以直接使用 GTK+ 的相關函式庫,例如 Gnome Shell 大量使用的 Clutter 等。

當然,決定採用 JavaScript 當然會引起一些爭論,不過我個人是樂見其成。試用你可以利用 Looking Glass,直接在類似 Firefox JavaScript console 的介面下,直接用 JavaScript 控制 Window manager 的反應與作用,多方便!而且還可以直接用 JavaScript 寫 Window Manager 的 Extensions! 幾乎所有開發需求都可以用 JavaScript 完成。你若想玩玩,可以從這份開發文件開始玩,叫出 Looking Glass 的方法可參考 Cheat Sheet

其實,在桌面系統中使用 JavaScript 為基礎並非創舉,在 Gnome Shell 之前,Litl 所推出的 Easel Webbook. 便是利用 gjs 所開發,一些技術細節可以參考 cananian文章

Gnome Shell 用得 JavaScript bindings 是 gjs, 基於 Mozilla SpiderMonkey 引擎。另外 Gnome 社群還有一套 Seed 則是基於 Webkit 所開發,也支援 GOI (GObject Introspection) binding.

Gnome 3 即將在今年推出,最近已經開始試用新的 Gnome Shell 介面。Gnome Shell 將會是 Gnome 3.0 的一個最重要的特色。

雖然社群中一直有不的聲音,認為 Gnome Shell 改變了傳統的使用習慣,恐怕會嚇走很多使用者。不過對我而言,我其實是相當期待這些新的改變。別擔心,即便你真的不喜歡 Gnome Shell, 也可以將 Window Manager 改回只使用 Mutter,使用經驗會跟目前使用 Metacity 類似。

網路上針對 Gnome Shell 的操作介面介紹與批評已經相當多,所以我來談談似乎比較少人提到的設計理念

  • 為使用者經驗負責 (Take responsibility for the user’s experience)
  • 非中斷守則 (Principle of non-preemption)
  • 減少錯愕 (Principle of Least Astonishment)
  • 為新手設計容易自學的介面,為老手提供有效率的介面,並為大眾最佳化 (Design a self-teaching interface for beginners, and an efficient interface for advanced users, but optimize for intermediates)
  • 不依賴象徵 (Don’t unnecessarily rely on metaphor)
  • 簡即美 (Less is More)
  • 理解並原諒 (Be considerate and forgiving)
  • 技術應該扮演調解功能 (The technology should act as a mediator)

這些設計理念,可以看到 Gnome 社群對於使用者介面的經驗逐漸成熟。Gnome Shell 的設計考慮了幾個重點,一是使用者在使用電腦環境時,本來就習慣頻繁切換視窗,並在不同的軟體中完成特定事項,才切換回來。但傳統桌面設計,往往讓這些不同的視窗同時出現在畫面上,像是塞在你的工作列(Taskbar) 或狀態列 (System Status Area),於是使用者非常容易被不同的軟體取走注意力。而現在這個時代,最重要的就是寶貴專注力阿。上述種種的理念跟法條,例如改變操作模式讓使用者可以犯錯後再輕易修正,而非執行前詢問你是否確定。這些改變都是為了能夠把軟體的位置,從使用者必須學習並依賴的技術終點,變成運送使用者完成工作目標的載具。

另外一個值得一提是,Zeitgeist 計畫。事實上,我會將 Zeitgeist 視為 Gnome Shell 的核心,Zeitgeist 是一個可以用來紀錄你操作過程的軟體架構,現在會自動紀錄的有檔案存取、網頁瀏覽、聊天、電子郵件紀錄等。配合 GNOME Activity Journal 與 Gnome Shell, 你除了可以快速的查看曾經編輯的檔案的 metadata 外,也可以依照 Tags, 時間甚至「地點」來分類你的操作過程。

從這個角度來看,你的軟體操作不只是開啟檔案、閱讀網頁,而是可以視為在特定情境 (context) 下所進行一連串的「活動」(Activity)。這些活動,才是人使用電腦的重點阿。從過去幾年來,Gnome 社群推出的 tracker, desk-bar, gnome-do 等各種協助人們處理資訊的工具。

終於 Gnome 擺脫純粹模仿的階段,Gnome Shell 有機會再次改變人們使用軟體的習慣,或是….大反彈…我想有些的問題在初期會引起反彈,會有像是 task panel 不見了,那麼我最常用得 tomboy, hamster 該藏去哪裡呢 ? :-/

在使用者介面上,類似以 Activities 作為軟體操作概念,在 OLPC 的 Sugar 中以不同的形式實做。