2010-12-01

QML + MeeGo = Nokia + Intel??

最近的工作算是我難得的空檔時間,IC驗證告一段落,新版的IC要回來是下個月的事情,關於電子標籤的軟體架構部份還剛在起草規格的階段。所以終於有空來嘗試些新的技術,到了Qt的官網下載了Qt 4.7.0的版本,來看看Trollers最近在搞什麼新的玩意。一打開說明文件,乖乖地不得了,多了一個QML(JavaScript-like declarative language ㄟ 找不到全名XD)這一個在今年初在網路上吵的沸沸揚揚的新技術,其實在Qt4.6的版本中就在Labs的git server上展示過過這個技術,只是我之前並沒有太多的關注在上面,畢竟在那時QML還算是個未成熟的技術,用了也只是幫別人在debug罷了。

但是這次Qt正式地將QML的這個語言放入4.7版的SDK中,代表了Trollers開發者認可了這項技術的成熟度與實用性。QML是一種類CSS的語言+支援JavaScript,Tarce QML的source code會發現其實它包裝的就是Qt QGraphicsObject與Sub-classes,但QML強調的是UI的整合的易使用性與Fluid-UI的動畫效果,如果要靠C++的做到這件事,可能Source code的大小與recompiling的時間成本會過高,另外簡單易懂的script語言,也相對地增加了只想開發UI的程式設計者的學習意願,畢竟C++的門檻以及嚴謹的類別檢查會讓許多初學程式的人望之怯步。

QML包裝了一些使用者常會用到的元件,例如Rectangle,Image,與Text等等,讓人很間單的上手,也將Fluid的動畫效果有系統地分門別類。我自己用model-view的概念,將之前電子標籤Interaction的UI換成QML的元件,資料則用QAbstractItemModel包裝起來。透過QML,我寫了一個展示標籤的預覽區,以及ESL設定的互動區,彼此用動畫來切換,所需的程式碼大概350行。相信很多的C++的Programmer應該會對原碼的大小羨慕到口水都流出來,當然資料的maintain還是透過C++有效率多了,但是對於只設計UI的美工技術人員來說,是多了一個除了靜態外,還有動態預覽好用的設計工具。

個人覺得自從智慧型手機的熱賣,帶給人機介面設計者不少觀念上的改變,滑鼠有可能會被Touch Panel所取代變成最主要的互動介面(市面上已經有推出許多有Touch Film的LCD Monitor)。將一大堆功能設計在同一個視窗上,對於Touch當做互動介面的使用者來說並不那麼地便利,Programmer在開發UI的同時,不能期待能有滑鼠來精確地移動並點擊,以往使用Tab換頁,用TreeView或是ListView顯示資料的方式可能並不合適。取而代之的是手指滑過要有Flip的效果,內容要隨著滑動的速度來顯示,在手指點擊Item時就要有動畫將內容放大或縮小來做編輯。QML在支援這種概念下有很好的包裝以及類別給Programer使用,但是它也不是完全沒缺點,效率仍是最大的問題,在跨平台的移植上必須多費心對CPU負擔會不會過重。但在個人電腦以及一般高階的手機流暢度是沒有太大的問題,如果有畫面的lag,檢查一下code大都是指定變數的時機不好,而造成多餘的update loop。

昨天和小君在慶城街一號把玩最近Nokia推出的N8,感覺上沒有太大令人驚喜的新鮮感,(還是Sybiam平台 ><),Linux+Intel的MeeGo平台則是下一代Nokia捲土重來的殺手級的產品,(小道消息傳是N9,我個人還蠻期待的,畢竟一路走來我一直是QT的死忠擁護者),和Android的作法一樣,都是搭配Linux的kernel再加上一整包的作業系統來吸引最重要的軟體開發者,只是Google的作法是架構一個Dalvik的虛擬機器來吸引JAVA的開發者無痛跨平台,Nokia則是推出MeeGo SDK平台再加上QML這種讓網頁開發者很好上手的語言,來吸引軟體開發公司加入OVI的陣營。馬還在跑,舞還在跳,找張凳子來看好戲囉。

 ps.視窗的上方是傳統的QT TableView元件,下方則是利用QML寫出的互動介面

2010-11-12

Honeymoon Albums

[2010_10] Honeymoon Day 1
[2010_10] Honeymoon Day 2
[2010_10] Honeymoon Day 3
[2010_10] Honeymoon Day 4
[2010_10] Honeymoon Day 5
[2010_10] Honeymoon Day 6
[2010_10] Honeymoon Day 7
[2010_10] Honeymoon Day 8
 

2010-07-18

竹22->芎林->竹23 竹北悠閒的腳踏車路線

從竹北的家裡往興隆路出發,沿著東興路OK便利商店的小路一直騎,便可以接到竹22縣道,這是一條輕鬆騎單車的路線,沒有太長的陡坡與頻繁的汽車,沿途風景宜人,經常看到全家大小一起騎車的車友。往左可以經過高鐵橋下最後接到大隱琉璃前的腳踏車道,往右就可以一直騎到芎林,再順著縣政府最近規劃的腳踏車道,沿著頭前溪堤防的竹23騎回竹北,全程大概20公里左右。















竹22縣道,往芎林的方向















途中的一片荷花田















燒稻草的農田與遠方的大矽谷名人山莊




















每次來都沒吃到的美濃樓,她的炒板條粉好ㄔㄟ




















網路上鼎鼎有名的布丁蛋糕的總店





















說真的,在這裡插個指示牌還真的有點突兀















竹23縣道,上次帶阿健他們騎,竟然把變速弄錯沒騎上去!!殘念!















遠方的好View與水墨白















回到家已經傍晚哩

2010-05-29

迷霧之子

厚達七百多頁的枕頭書,在忙碌的工作裡還能花兩個多禮拜就看完,只有一句話形容,奇幻小說能寫的如此行雲流水,牛!真牛!!
Sanderson無愧為時光之輪作者指定的接班人,奇幻文學往往使人望之怯步的就是他複雜的世界觀設定,常常書看到一半就要翻到前面去看地圖,或是查詢人物表,來確定這又臭又長的名子到底是哪位。奇幻文學的開山始祖,魔戒就是一個典型的例子,除了創造出精靈與矮人的文字外,托爾金還另外寫了一本幾乎算是設定集的書 "精靈寶鑚"來更詳述地描述中土世界的背景設定,但是這種複雜的設定與故事長度動則超過好幾千頁的厚度,卻往往讓想要踏入這個領域的讀者忘之卻步。

因此奇幻文學的門檻一直以來都不低,甚至常常有聽到朋友說幹嘛浪費時間去看書,直接去看電影就好了呀。但是除了魔戒有長達九個小時,總共三集的篇幅來描述故事劇情外(魔界其實還刪了不少其他旁支的劇情,但是也算是忠於原著並將磅礡的世界觀描述的很完整,例如矮人的摩瑞亞礦坑,精靈的夢思洛林森林與人類最後的白色堡壘),其他的奇幻文學巨著改編至電影就只有一句話形容,『慘不忍睹』。

經典文學龍騎士被改編的虎頭蛇尾,主角彷彿吃了摩登如來神掌的的大還丹(Andy劉的經典作 XD)瞬間就可以向魔王挑戰了。納尼亞傳說活像是給小孩子看的童話故事。波西傑克森,神火之賊,請原諒我稱它是奇幻電影的美國派。造成這一切的最主要的原因都在於,奇幻文學的世界實在是太廣了,導演想在短短的一兩小時內,就讓觀眾進入設定複雜,每部小說長度都像是史詩的故事,實在是太困難。因此也難怪觀眾看不到主角的成長,只能看到,難道你就是那傳說的的XXX,然後就從平凡人瞬間變成拯救世界的大英雄。啊!題外話扯的太多,回到正題,回到正題。

然而迷霧之子的篇幅長度並不輸任一個奇幻文學大作,但它卻有它們沒有的優點。紋、凱西爾、微風、歪腳,主角們的名字簡短卻又極貼切其個性。奇幻元素的設定簡單,鎔金術的應用淺顯易懂,但其組合與戰術變化多端,鎔金術的戰鬥過程緊湊又讓讀者大呼過癮。最主要的是,作者大大降低了奇幻文學閱讀的門檻,有如推理小說劇情緊湊的鋪陳,我幾乎沒有被艱澀的地名或是人名打斷過,進而去查詢書籍設定而掃人興致。文章一氣呵成,眾多的人名但卻都能充分表現出其獨特的個性與重要性,卻不會使焦點模糊。只能說,無怪迷霧之子這三本書能得到平均亞馬遜4.5顆星這麼高的評價。

話說最近看的書除了推理就是奇幻小說,還有兩本有關金融理論的好書。該是時候換換口味了,一直很想買『蘇西的世界』原著小說,不知道看完會不會一把鼻涕一把眼淚的。

2010-04-23

戰龍無畏

去年的十一月間突然接到廣州客戶急電,希望我能跑一趟南海奇美介紹公司的儀器外並與和他們上司解釋其量測的必要性。在趁著等飛機的空檔,機場書店中閒晃時,無意中一本書的封面引起了我的興趣。一隻張牙舞爪的大黑龍與西洋三船桅戰艦這種奇怪的組合,讓我突然想起這就是在灰鷹Blog上大力推薦的戰龍無畏。說起這本書的魅力之大,則有一個有趣的小插曲可以來形容。灰鷹有位在英國出版社上班的友人,想到她是一位重度的奇幻文學迷,貼心的灰鷹因此拿了搶先在美國出版的後兩集平裝本送給她,他那位英國的友人一看到封面,不顧是在書展的眾目睽睽之下,立刻驚叫我的老天爺呀!,即刻跪到在地、連聲道謝。因此,也是身為一位有重度奇幻文學癮的我,當場二話不說就買下來這本書來陪我消磨出差的時間,從一上飛機到香港機場,再轉搭大巴到佛山整整六個小時的旅途,我手上沒有離開過這本書,而隔天要從佛山回香港的大巴上,我就把這第一集三百多頁的書看完了。

有看過怒海爭鋒的人,一定對改編自Patrick O'Brian十九世紀海戰的歷史小說不陌生。看著水手在惡劣的天氣下與巨浪搏鬥,精采的海戰戰術運用,與船舷四五十門大砲齊射的刺激感,再加上本書中最重要的奇幻元素,『龍』,構成了戰龍無畏獨特的世界觀。在十九世紀的火器世界裡,龍是可以被人類眷養的動物。除了龍的品種千奇百怪,有會噴酸液的英國龍,噴火的法國龍,與本書的主角智慧與攻擊力都在其他龍種之上的『中國龍』之外,還有獨特的軍種『龍空軍』的編制。沒錯,一百多年前就有所謂飛龍空軍的存在。在作者豐富的想像力之下,一隻空軍的龍可以配置十多位的空軍人員,除了馭龍者、登龍兵、火槍兵與投彈兵等戰鬥人員外,還有鞍具師、龍醫官等地勤人員一應俱全。此外,除了奇幻元素之外,本書也有不少的歷史小說色彩,在第一集有著名的特拉加法海戰(迫使拿破崙放棄登陸英國的重要戰役,英國海軍打敗了法國與西班牙的聯合艦隊,但也賠上了納爾遜的生命)時空背景,由於主角是中國龍,所以還扯到了當時中國清朝的皇帝,嘉慶君,以及或多或少談到了當時貿易的不平等與中西方文化的差異下,進而埋下了日後戰爭的火種。而在接下來的續集裡,說不定還會寫到著名的滑鐵盧戰役,與拿破崙和威寧頓公爵這兩位重要的歷史人物,很期待作者會如何描寫這段影響人類歷史重大的戰役,畢竟經典電影的Waterloo,我可是看了好幾遍呀。

總之對於喜歡奇幻文學和歷史小說的讀者來說,戰龍無畏是一本絕對不能錯過的好書喔。

2010-04-09

Someone Like You

今天晚上小君mail給我,上面提到了一些她想在婚禮時播的歌曲清單,我隨意點了一首歌的網址後,一聽到旋律沒幾秒鐘,就不自覺地笑了出來。歌曲是Shawn Colvin在1996年 One Fine Day(中文片名是一日鍾情)這部電影中,為電影原聲帶唱的第五首歌曲。會對這首歌印象很深刻是因為我在大學的時候就很喜歡One Fine Day這部電影,慵懶的電影配樂伴隨著紐約客快速的生活步調,給人一種節奏明快但卻輕鬆的氛圍。其中我最喜歡Someone Like You這首歌,簡單的歌詞再加上Shawn富有感情的嗓音,陪伴了我無數個啃書本的夜晚,喔耶~青春無價呀!



I've been searching for a long time
For someone exactly like you
I've been travelling all around the world
Waiting for you to come through.

Someone like you to make it
All worth while
Someone like you keep
Me satisfied. Someone exactly
Like you.

I've been travellin' a hard road
Lookin' for someone exactly like you
I've been carryin' my heavy load
Waiting for the light to come
Shining through.

Someone like you to make it
All worth while
Someone like you to keep
Me satisfied. Someone exactly
Like you.

I've been doin' some soul searching
Just to find out where you're at
I've been up and down this highway
In all kinds of foreign lands

Someone like you to make it
All worth while
Someone like you keep
Me satisfied.

I've been all around the world
Marching to the beat of a different
Drum.
But my baby I have
Realised
The best is yet to come.

Someone like you to make it
All worth while
Someone like you to keep
Me satisfied. Someone exactly
Like you.

2010-02-05

Lag很大 Again!

離上一篇的文章lag了好久,而在這兩三個月中,我的人生也有了很大的變化。換了份新的工作,跟投入了很多心力的舊公司好聚好散地Say Goodbye。工作內容也由過去熟悉的GUI Programming,轉換成OS的porting與driver的撰寫,不能說這樣的轉變不好,只是要熟悉過去較少接觸的工作領域著實花了我不少時間,新的工作環境與公司文化的不同,讓我很小心翼翼地避免踩到地雷,但這禮拜我終於忍不住和大陸同事展開了e-mail的大戰,戰場是android kernel porting,裁判是e-mail上cc的長官們,目前還不知道鹿死誰手,但是至少接到老闆的電話安慰也算聊表一下對我工作態度的肯定吧。

一直以來,我好像不自覺地會走跟別人不同的路,在班上同學都趨之若鶩地往Digital IC Disigner發展時,我是班上少數幾個異類寫上層的AP寫的不亦樂乎,當大家都往有高額分紅配股的公司時,我卻和幾個不怕死的同好,自己出來搞個小公司玩玩,但人生到了某個時間點,總是覺得該要完成些什麼才對,所以最近不時會想著『什麼是人生』這種艱澀難解的大哉問。現在的我已經不會在乎要有多大的事業,多好的成就(雖然我從沒這樣想過),只要我比過去的自己能有進步,在工作上能獲得別人肯定(我想我天生勞碌命),在將來的日子裡,下班的時候能看到小孩熟睡的臉和老婆說聲你回來啦,我就已經心滿意足了。

最近無意間瀏覽到一封以前的長官寄給我的e-mail,標題寫著人生三願,內容說著作者人生的三個願望就是『第一個願望是吃得下飯,第二個願望是睡得著覺,第三個願望是笑得出來。』,其實,越是簡單的道理越是需要時間來體會的,不是嗎?