[Life] 新竹板靜坐活動

鞋櫃還活著,我也還活著 :P

無論如何還是要花個幾分鐘來廣告一下。

在 2009 年 7 月 4 號,PTT 的新竹板發起了一個靜坐活動。
鑑於之前南寮發生的命案,新竹的鄉親們覺得要發個聲讓大家知道

「我們很關心這塊地方」

無關乎政治,這只是一個純粹的愛鄉愛里活動,當然我也會參加,歡迎有志的鄉親們一同參與。

詳情請見網頁 [反飆車救治安]

Comments (1)

[0xlab] 0xlab 開張了!

工作這段時間來,除了專業上有大幅進步之外,最大的收穫便是認識了一群志同道合,技術卓越的好朋友。

我常說自由軟體界就像是幽遊白書裡的魔界一樣,在深處住著許多不為人知的 S 級妖怪。然而可惜的是,台灣有許多好的人才,卻因為散落四方各自打拼,總有一種無法凝聚的缺憾。

「我們一同來試試看吧!」抱著這個初衷,[0xlab] 就此成型。

logo

目前為止的成員有 8 位,依序是 Erin, Jeremy, John, Jserv, Julian(就是我), Olv, Thinker, Tick。每個人各有其專擅的領域,我們希望以團隊的優勢提供完整戰力,為軟體界做出些許貢獻,以技術的方式來愛台灣

籌備了好一段時間,其中最讓我們感到棘手的部份就是取名字 =.=

大家花了一個星期列出三百多個候選,最後全軍覆沒。某人腦中閃過一個念頭,於是 0xlab 這個阿宅到不行的名字立刻脫穎而出。

0xlab,會寫程式的人都知道十六進位都以 0x 開頭,lab 看起來又很像 1ab (one-ab),完整的十六進位數字瞬間擄獲大家的心。這個數字又剛好等於十進位的 427。

今天,2009 年 4 月 27 號,就是 0xlab 的誕生日!

也感謝海華科技的大力贊助,今天在台北市的跳舞咖啡廳舉行記者會,大大方方地宣佈:「0xlab 來了!」

0xlab 的網頁在 [http://0xlab.org/],謝謝 Bizkit, Celeste 以及 Cindy 協同翻譯。至於大家最關心的技術部份,當然會以 Open Source 的方式開放出來。更詳細的文件及突破,未來會一一揭露,請大家拭目以待。

Love, Peace and Open Source !!

Comments (6)

[Geek] Compiling latest Gtk+

看標題就知道是阿宅相關的事物,正常人可以直接略過這篇。(我懷疑絕大多數的人根本不會用到這一篇 =.=)

阿宅總是要做點阿宅的事情,才會讓自己秀抖的腦子比較清楚一些 :P

因為某些原因,我需要編譯足夠新的 Gtk+ (2.16.0)以及 Glib。但我又不想弄爛自己日常生活的桌面環境,於是會把這些全新的東西安裝到家目錄底下的一個 sandbox。

日常使用:glib-2.0 2.16.7 gtk+-2.0 2.10.0
編譯目標:glib-2.0 2.19.9 gtk+-2.0 2.16.0

編譯 glib 沒問題,但是編 gtk+ 的時候就中招了,一開始把 pkg-config 的路徑設過去以為已經天下太平。

$export PKG_CONFIG_PATH=/home/walkingice/localroot/lib/pkgconfig

這樣仍然不夠,它會要求匹配的 glib 版本。所以要指定另外一個變數才能過 configure

$export LD_LIBRARY_PATH=/home/walkingice/localroot/lib

因為 pkg-config 會找到先前編好的 2.19.9 的版本,可是 ld 吐回來的版本是 2.16.7,這讓 configure 摸不著情況,不過設完變數之後就可以過 configure。

這樣就能快樂 make 嗎?代誌不是我這種憨人想得那麼簡單。

編譯 gdk-pixbuf 的時候會遇到這樣的 error

    In file included from gdk-pixbuf.h:41,
    from gdk-pixbuf.c:31:
    ../gdk-pixbuf/gdk-pixbuf-enum-types.h:17:9: error: macro names must be identifiers
    ../gdk-pixbuf/gdk-pixbuf-enum-types.h:19:9: error: macro names must be identifiers
    ../gdk-pixbuf/gdk-pixbuf-enum-types.h:21:9: error: macro names must be identifiers
    ../gdk-pixbuf/gdk-pixbuf-enum-types.h:25:9: error: macro names must be identifiers
    ../gdk-pixbuf/gdk-pixbuf-enum-types.h:27:9: error: macro names must be identifiers
    gdk-pixbuf.c: In function ‘gdk_pixbuf_class_init’:
    gdk-pixbuf.c:101: error: ‘GDK_TYPE_COLORSPACE’ undeclared (first use in this function)

其實這不是 source code 有寫錯什麼東西,而是有一個「變數」沒有被代換掉。

gdk-pixbuf.c 在 include gdk-pixbuf-enum-types.h 的時候遇到一串奇怪的字「 @ENUMPREFIX@_TYPE_PIXBUF_ALPHA_MODE」,它不懂兩個 At 符號夾一串字是甚麼意思。

其實 gdk-pixbuf-enum-types.h 這個 header file 並不包含在 source code 裡面,而是藉由 Makefile 產生。

Makefile 在產生這個檔案的時候,會讀取一些 *.template。更有趣的地方在於,它藉由 glib-mkenums 這個 perl script 來完成這項工作。

在產生 gdk-pixbuf-enum-types.h 的時候,並沒有將 @ENUMPREFIX@ 這個變數正確地代換掉,吐出了錯誤的內容,使得編譯的過程出錯。

解法很簡單,編譯 glib 的時候會一併產生 glib-mkenums,只要讓 PATH 指到正確版本的 glib-mkenums 即可。

$export PATH=/home/walkingice/localroot/bin/:$PATH

現在重新編譯一次

$make

結果你還是死在同一個地方,嗯,先把之前的東西清掉好了

$make clean
$make

夭壽,還是死,是因為電腦上面沒有擺椰子口味的乖乖?

進去看一下 Makefile 才會明白真相

s-enum-types-h: $(gdk_pixbuf_headers) gdk-pixbuf-enum-types.h.template
( cd $(srcdir) && $(GLIB_MKENUMS) –template gdk-pixbuf-enum-types.h.template \
$(gdk_pixbuf_headers) ) > tmp-gdk-pixbuf-enum-types.h \
&& (cmp -s tmp-gdk-pixbuf-enum-types.h gdk-pixbuf-enum-types.h || cp tmp-gdk-pixbuf-enum-types.h gdk-pixbuf-enum-types.h ) \
&& rm -f tmp-gdk-pixbuf-enum-types.h \
&& echo timestamp > $(@F)

最後面有一行 echo timestamp!!!!

就算你打了一千次的 make clean 也不會把 gdk-pixbuf-enum-types.h 清掉。你手動 rm 該檔案會被 gcc 抱怨找不到那個檔案,真正的做法是清掉那個 stamp 檔就好。

$rm gdk=pixbuf/s-enum-types-h

我整個大中招!

好歹掃地工也做了一年有餘,我還是第一次遇到這種問題,於是隨手寫下看看能不能幫到苦命的人。

Comments (6)

[Life] 4/7

在偶然的機會下,意外知道今天是一個特別的日子。

二十年前的今天,1989 年 4 月 7 號,鄭南榕先生在自己創辦的雜誌社裡自焚逝世。

像我這樣無知的小毛頭,一直到上了大學之後,才從網路資料中漸漸看清這個人的背影。

二十年過去了,「言論自由」四個字被實作到今天這種程度,我想也不在這位老前輩的預料之中。

鄭南榕、李敖與陳水扁的《自由時代》,還不錯的文章,可以一讀。

Comments

[Geek] it is coming

4271

We are waiting for that……

Comments (1)

[Life] Andy Warhol 展覽

十一點起床,微陰的天空帶點雨絲。簡單用了午餐後便到了中正紀念堂去看 Andy Warhol 的巡迴展。

從展覽尚未開始到現在,也就是結束的前一天。我總是嚷嚷著要去開開眼界,然而總是因為一些事情拖住。我也真埋怨自己,明明平日很多時間可以悠閒地看展,我卻搞到最後一個假日來人擠人。

所幸聽從 John 的建議,租了個 100 元的語音導覽,哪裡人少就往哪鑽,隨時可以按下播放鍵聽解說,來來回回數次總算是把整場給看完。

康寶濃湯的罐頭我想是眾所皆知,在這講求大量複製的社會,反過來看 Andy 的創作,我腦中總不斷浮現出這樣的罐頭人。

warhol-andy-campbells-dose

照著相同的模具重複產生的罐頭人,提著公事包的在路上走,塞滿整個繁忙的街道。偶爾的紅燈使他們暫停下來,四十秒後又恢復先前的忙碌。

當然也有穿黑絲襪跟短裙的罐頭啦。XD

人物肖像的部份,除了輪廓之外就是不規則的色塊。但我覺得那些色塊並非真正不規則,相反地,點出了畫中人物最有魅力的部位。就像是塞滿路人的黑白照片中,站著唯一帶有顏色的主角。

其中我最喜歡,也最震撼的作品便非列寧莫屬。

lenin

在一片象徵共產主義的赤紅之中,列寧的身形漸漸浮現,沒有被省略的左手臂穩重地靠在前方,彷彿是從黑夜中陡然現形的惡魔,僅僅用眼神暗示著:「是時候要起身了!」

出了會場就是週邊商品販賣區,大伙就像許久未開葷的狼群般大殺四方,抓起商品毫不手軟。使我再一次地佩服 Andy Warhol 的睿智。

藝術就是商業與金錢,會賺錢的藝術是最迷人的藝術!哈哈

Comments

[Fic] 吃肉

小李一腳踹開房門,前腳才剛踩進去,後腳還來不及跟上,脖子一轉就看見裡邊有一團人圍著火爐烤東西吃。全部都是熟悉的面孔,有小張、小趙、老王,甚至平日不常出現的小陳也在裡邊。

小李這可就急了,小陳就算了,但小張與小趙可是平常就一起瞎混的好拜把,怎麼今兒個他們也在這圈圈裡面。

「不成!」急歸急,該弄清楚的事情還是要一一驗明,一個都跑不掉!「馬了個巴子,哪怕是今天在這沒了氣,我也要拉幾個下去見閻王,好讓他教訓你們幾個畜生」

小李一邊抖著一邊這麼自言自語,好讓自己壯壯膽。隨即三步併兩步走進一瞧:燒紅的磚頭圍著中間熾熱的木炭,夾帶著許多白灰,看來是烤了第二輪。炭火上面的鐵網鋪著小片小片的肉,肉片中間彷彿有一根不知是甚麼樣的食材,小李湊近爐火一看。

「指…指頭!」小李看見鐵網上面烤著一根人的指頭,嚇得腿軟跪在地上:「他馬的……你們這群畜生……真的這麼幹了,他馬的,他馬的」

突然想到了甚麼,小李從地上爬起,撲到小張身上揪住他的領子,惡狠狠地咆嘯著:「你為什麼要這麼做!你他媽的還是人不是?你什麼時候開始學會吃人肉的?王八羔子的你告訴我啊!」

推開了小張,小李倉促地撿起旁邊一根木棒,爬上了桌子轉身面對眾人:「馬了個巴子!今天給我看到了你們這群喪心病狂的瘋子!你們知不知道?知不知道?知不知道吃進嘴裡的是什麼東西?是人啊!活生生的人啊!跟你、跟我一樣會說話的人啊!」說得激動,小李險些抓不牢手上的棒子。

「是肉呀,不就是肉嘛?!」小張拍拍衣領,沒好氣地回答著。

「你哪個眼睛看到是人肉了?肉看起來不都一樣?那不是人肉,我們不幹吃人肉這種下三濫的事」小陳推推眼鏡,冷冷地道出一番話,平常的他可安靜得很,難得聽到他講這麼一串的話。

「是呀」小趙附聲道:「這哪是人肉,你瘋了嗎?!」

「我沒瘋」小李大聲斥責:「你老祖宗我清醒得很!」揉揉眼睛,怎麼鐵架上的指頭不見了?肯定是被這群心虛的賊子給藏起來了。

小趙夾了一片肉,塞到小李手上:「沒瘋?那就吃給我們看啊!」

「是呀!」「吃一口吧!」「很好吃的」「這是今天下午打的野豬肉,這種年月能吃到是你的福份」

眾人圍著小李,一句接一句吆喝著要他吃下手中的肉片,嘲笑與怒罵聲輪替上陣,一邊喊著,身子也一邊捱近小李。

小李起先的那股牛勁,剎時被一種羞愧的罪惡感取代,彷彿自己一絲不掛地站在處刑台上,接受街坊鄰居的審視,下一刻便要吊死在大家面前為自己的愚昧贖罪,唯一活下來的方法便是用力地磕下響頭,大聲地坦承自己是瘋狂的。

「死!?」

死亡的念頭,真實地充斥在小李的腦中,血紅色的意念灌滿了他的雙耳,鼻腔,又從鼻腔倒灌進咽喉。小李感到眼前一片漆黑,全然忘記呼吸這件事。

「我…我吃……」

「我吃……」幾近昏厥,也只能擠出這麼幾個字。

「我不是瘋的,我…我吃給你們看……」

Comments (7)

[Murmur] 阿宅的反思

前些日子,突然心有所感地在 twitter 上寫下「身處在科技的最前端之一,我們應該思考著如何擺脫科技的箝制」,隨後 jserv 便回應了截然不同的說法:「科技人更應該貼近科技,試著與世界做結合」 (並未十分精確地記住,請見諒)

其實我完全認同 Jserv 所言,然而從文句上看起來,我竟然想要嘗試著反方向的道路,何解?

前一晚睡不到四個小時,疲憊的我躺回床上,翻來覆去卻怎麼也睡不著,一再地想要釐清問題是甚麼。

在一個炎熱的日子裡,跟同事們用完午餐後,汗涔涔地走回公司的大樓,涼爽的冷氣吹走一身的暑意,我永遠記得在電梯門關上的時候,John 所說的一句話:「因為具有理性,所以沉淪了。」

「因為具有理性,所以沉淪」這句話敲響了我心中的警鐘,反覆咀嚼後滲出的是一種不安的感覺。

從國中接觸理化課程開始一連串的考試,努力讓自己的腦子更適應邏輯性的思考。偉大的科學家們,觀察著世界最細微的變化,以精簡的方程式告訴我們這一切是怎麼去運作。

我一方面體會著它的美,一方面也為自己的無力躲在宿舍偷偷掉淚。宇宙的運行,大至銀河星際,小至原子夸克,無一不遵循著物理原理。不是不可知,而是未知。

猶記得那位[科技過敏]的朋友,當時跟她吵得很痛快自然不在話下,可直到現在才想起,在她不滿的背後,似乎有個龐然巨獸的黑影,蚩伏在暗處蠢蠢欲動。好幾次被那渾濁而沈重的呼吸聲嚇出一身冷汗,卻又沒有勇氣將牠瞧個明白。

是不是我在不知不覺中,被它變成了一種像人的生物,僅僅只是像人。

於是我開始關注一些非理性的行為,信仰、情感、藝術、道德,我想知道這些東西帶給人類的感動是甚麼,甚至,那更深層,以我薄弱詞彙所無法描述的東西是甚麼。

你是否看過這樣的畫面?

三五好友一同到郊外踏青,松柏林間幽幽深邃,塵世的煩擾被阻絕在霧氣之外,人世間被淨空得只剩下幾個人。此時一個人從口袋拿出智慧型手機,用 3G 網路連上 twitter 跟朋友分享此刻心情。

這個畫面有點驚悚,但它卻是人們實實在在的選擇。

科技要帶給我們的真實是甚麼?真實本身又是甚麼?我們所能接受、理解的東西全部都是大腦解譯的電子訊號。

數年前紅極一時的電影,駭客任務。第一集的船上有個叛徒,背叛的原因很簡單:「母體答應會讓我享受榮華富貴的一生」,電影外的我們也許覺得荒謬至極,叛徒所選擇的一切不過是虛假的感覺。

感覺,感覺卻再真實也不過了。

看看日前的新聞,有科學家嘗試打造擬真頭盔,模擬出在世界各地該有的視覺、嗅覺。現在不夠逼真?我也這麼猜測,不過別擔心,會有人努力地克服這些終將被克服的障礙。

是否有一天我們的科技能夠進步到將顏料按照我們的喜好老化,以分毫不差,精確至原子等級的技術,複製一張梵谷的向日葵?這張贗畫又能否帶來相同的感動?

    拆了城牆 讓我去流浪

    手電筒裡裝進一壺月光

    指引方向

    也是餓時的乾糧

    順著走吧 順著方位不定的風向羊

這是一位很欣賞的朋友所寫的…日記?初次閱讀時我感覺到自己彷彿身處在城外的礫漠,冷風襲來使我不自覺地用身上破爛披風將自己包得更緊。披風?喔不,現實中的我只是在台灣的小小一偶才對。

根據[無限猴子定理],遲早我也是可以生出這麼一篇文章。只是,我的披風還在嗎?

是未知還是不可知?沒有答案的我只能噙著淚再點上一根菸,讓幾近瘋狂的腦子融化在煙霧之中。所幸,我活在一個一切都渾沌未明的世代裡,讓我可以對無法理解的一切抱著崇敬的心。

前田約翰在簡單的法則的書末與導師有這麼一段對話。

    一切都講求平衡。

    但是,如果處於兩者之間,你必須向兩端移動,來回擺動一下,才知道自己是不是確實處於中間。

    有時身在中間也可能迷失。

浸淫在科技之中的人們,有時必須要遠離科技,才能知道我們身在何處。

Comments

[Geek] Edje of EFL 簡報

感謝 Tossug 及 葉平 Yeah 教授的幫忙,才有機會在前幾天提供了 Edje of EFL 的分享。

簡報以及範例程式我已經放上網路,有需要的朋友請取用。[簡報] [程式]

現場的朋友亦提出了非常好的問題,請容我在這邊略為補充。

如果我有一些 buttons,能否讓 edje 按照某種方式去排列?

首先必須先了解到這是兩種不同層面的東西。Edje 架構在 Evas 及 Ecore 之上,Evas 是一個有關 Canvas 的 library,提供了一些基本的繪圖能力。它本身並沒有 Widget 的概念,這部份就跟 Gtk 截然不同。

Gtk 提供了許許多多的 Widget,包括 GtkButton 以及作為 container 的 Vbox。介面產生的方式取決於 widgets 的組合。

Edje 並不提供 Widgets,而是提供一些更為自由的元素,如文字、圖片這些畫面上所呈現的東西。

Widget 所在的位置由 Container 決定,而 Edje 在意的是畫面上的 position。兩者的設計哲學截然不同。

於此就可以產生另外一個問題

如果我真的要用 Widget 怎麼辦?

可以。

你可以實作自己的 Widget,就像 Etk 一樣生出了很多 Widgets。Edje 裡面有個 swallow 相關的函式 (請 grep swallow) 可以讓開發者把 widget 吞進去 edje 裡面。至於 container 裡面要怎麼去排它的 widgets,Edje 本身是不管它的。

再以之前的 [mediaplayer] 為例,中間的曲目列表就是一個 widget。

此外,再稍微補充一下 Evas 的一項特點。

Evas 提供一些低階的繪圖能力,讓我們可以在一塊畫布上畫圓、直線、矩形。以傳統的方式來說,要畫直線與矩形的方式大略如下

    draw_line( A點, B點);
    draw_rect(左上角座標,右下角座標);

而 Evas 的方式比較接近產生兩個物件

    line = create_line( );
    set_line(line, 座標);
    rect = create_rect( );
    set_rect(rect, 位置, 大小);

看起來似乎較為繁瑣,但是它提供了一些優點,譬如說你移開其中的某個物件,原來的區域需要重繪,並不需要考慮太多細節,交給 Evas 去做就好了。此外,滑鼠座標目前放在哪個物件上也是可以輕易得知。

最後節錄一段與 [olv] 的對話,為避免失真,我直接將原文貼上。

    題外話, 我第一次看到 evas_event_feed_mouse_down 等 api 時,
    眼淚都快流出來了. 它巧妙地把鍵盤, 滑鼠的輸入挪到 ecore 去處理,
    自身則專注在顯示的問題. 免去了處理輸入, 也免去了 main loop. 理論上, evas 甚至可以很容易地拿來實作成 gtk widget. 像是 clutter-gtk 那樣. BTW, clutter 也是 canvas 的概念.

Comments

[Music] Ben Folds

早就該聊聊這位怪咖,直到今天早上把他的音樂翻出來聽,才想起一直忘記這件事。

benfolds

[Ben Folds], 原名 Benjamin Scott Folds (班哲名 史考特 佛斯?:P)。一位才華洋溢的鋼琴家/作曲家。因為父親是建築木匠的關係,童年的時候總是不停地搬家。

我們的童年記憶中,似乎總有個轉學生,來到班上不久之後又離開。相處的時間不長,怎麼也記不清楚對方的臉。Ben Folds 就是這樣的一個人,孩提時代的交友並不順利。

在他九歲的時候,有人以一部鋼琴替代為給付他父親的工資,Ben Folds 就此開始接觸音樂這條路,僅僅用耳朵聽廣播的方式學習 Elton John、Billy Joel 的歌。(夭壽,天才型的人都這樣子吧)

頭一次聽到這個名字是在 Tizzybac [老娘的 13 堂課],惠婷說 Ben Folds 影響她很多。(well, 也許我記錯?但不重要:P)

既然主唱都說影響很深,邏輯上的推測應該會是個我喜歡的人。感興趣的我回家後便把他的歌找來聽,沒想到一聽之後大失所望。

失望的是,根本不像 Tizzybac,但是這也不重要。因為光是聽了兩首歌,我就很確定我喜歡這傢伙!

該怎麼形容他呢?鋼琴怪咖吧。這首 Hiroshima (廣島) 敲打琴鍵的方式非常不細膩,同樂的氣氛也因此在鼓譟中緩緩升起,最後還帶一段即興演奏。這種隨興的表演方式,我想在現場的感覺一定很不賴。

去聽演唱會,就是要看台上的表演者怎麼跟台下的觀眾一起玩音樂嘛!

這一首質感跟南方公園很像(XD)的 MV 我個人非常喜歡:You don’t know me。在生活中人們常常扮演著社會想要賦予給你的角色,沒有人過問你到底是誰,才會使你在對月獨酌的時候喃喃抱怨 You don’t know me。

Update:

凌晨五點聽到這首歌讓我整個人都 high 起來了。這部影片不是 Ben Folds 原唱,雖然錄音的效果不好,但我覺得他們的演出還頗能掌握這首歌的風味。

Comments

Next Page »