Friday, August 20, 2010

Perl的__DATA__

在簡單的Perl Script中,常常會在程式碼的結尾加上一列__DATA__,然後在底下放入程式所需的資料。

#!/usr/bin/perl
use 5.010;

while (my $name = <data>) {
chomp $name;
say "Hello, $name!";
}

__DATA__
Peter
Jack
Obama

問題來了,如果DATA的內容需要讀取不只一遍的時候,你沒辦法直接用seek回到DATA的最前端。這是因為DATA其實是整個script檔案的filehandle,當你第一次使用它的時候,其offset其實設在__DATA__這列之後。所以若需要讀取DATA兩遍以上,需要先以

my $pos = tell DATA;

紀錄DATA一開始的position,然後在讀取第二遍之前,以

seek DATA, $pos, 0;

回到這個filehandle原先的位置。

Tuesday, August 3, 2010

Textbooks

Every basic thing you should know, every kind of skills with which you should be equipped...

Young kid, they are all in books.

Go ahead. Read 'em all.

Tuesday, July 20, 2010

生活

長到這個年紀,發現自己已經沒什麼力氣去關注很多事情了。

以往我總認為,有價值的事就應該去了解,應該花力氣去實踐。但上了大學後,太多的故事、太多的學問、太多人的面貌或假面開始讓人無力。經濟、群體、能力、價值,有太多種不同的觀點,靠著忽視或者敵視互相排斥。任何有人的地方總是充滿爭端,和平的區域只要人多了起來,和平就消失了,那些人們本來共通喜歡的事物被拿來當成相互攻訐的武器,直到大家喪失了興趣為止。

階段性。這個階段比的是這種東西,大家擁有相同的興趣。然後前往下一個階段,大家有了新的共同興趣。

沒力氣去看那些小說。我知道(或假裝知道)他人故事的價值,但就是不能接受其中的矛盾與無聊,就像他人不能接受我的矛盾與無聊。

所以現在,有些書對我而言,已經沒必要看了,有些事也實在沒必要做,那些深植已久的社會觀感可以捨去了。當個優秀的人才?我說不。做個有價值的人?我說不。成為海賊王?我說不。封閉也好象牙塔也好,我只想過我自己的生活。

Wednesday, July 14, 2010

暑假

Linux Administration Handbook的第十九章有滿多網路管理的東西。玩電腦玩了這麼久,現在才知道IP、TCP、UDP、ARP等等以P結尾的東西到底是什麼,只能說太不上進了。

學習functional programming可以提高程式正確的機率,效率問題可以在遞迴版本寫出來後,以dynamic programming解決。

寫Perl是一件非常開心的事。東西又多又方便,很多乍看很奇怪的詭計其實都滿有道理的。

除了防腐劑、糖份過高、工廠衛生等問題,罐裝飲料實在沒什麼好挑剔的,喝起來實在讓人心情愉快。太苦的咖啡、太讓人不舒服的酒,這輩子實在無緣。

心就是沒辦法靜下來,照表操課太讓人反感。不如一直處在唸書的狀態,也就別區分課內課外了,想念什麼就唸什麼,倦怠了就換一科。以大量的時間換取永遠沒辦法達到的效率。

Sunday, July 11, 2010

距離平方和

這裡看到的題目。

整篇除了題目講解外,內容的pseudocode實在是有看沒有懂。用乘法公式兜了一下,展開,倒是馬上得到了一個O(N)的解,至於正確性這點,實在讓人頭大啊,可能要用到歸納法。




Btw, 今天回到宿舍才收到這個課程的不錄取通知書,想想也是一件好事,畢竟我沒有底子,不懂裝懂就去上課,可能真的只是浪費時間而已。

Friday, July 9, 2010

通俗Lisp雜記

等同性

  1. eq - test if two are the same object
  2. eql - test if two are of same type
  3. equal - test if two represent the same structure and contents recursively
  4. equalp - less discriminating

結構

  (defstruct person
name
age
sex)

(let ( (p (make-person
:name "Kevin"
:age 20
:sex "Male")) )
(person-name p) ;; Kevin
(person-age p) ;; 20
(person-sex p) ;; Male
)

變數

  1. use defparameter or defvar to set global variable
  2. setq - set quoted blah
  3. setf - set a field
  4. use let or let* to create local scope and local variables
  5. use flet to create local function and local scope

串列操作

  1. basic: cons, car & cdr
  2. nth - get nth element
  3. push

Sunday, July 4, 2010

Sort in Common Lisp

最近在讀Practical Common Lisp,感覺一點也不functional,語法有點瑣碎?


用法:

puts chinese_time #5:30 => 卯時貳刻

不懂事基金會

不知名基金會的不知名宣傳單曲。



歌詞:
不懂事基金會

你爸抽煙
你媽也抽煙
他們年輕的時候
都在抽煙

問問你爸
他甘有陽萎
看看你媽
她笑得多甜

八部滌綸他也抽煙
竊格瓦拉他也抽煙
佛洛伊德他也抽煙
愛因斯坦他也抽煙

福爾摩斯他也抽煙
香吉士 他也抽煙
科人間 他也抽煙
吸煙的人沒有人權...沒有人權...

沒有人權...沒有人權...沒有人權...沒有人權...


香煙健康捐
不如自己捲
別讓菸草公司
賺你的錢

來種菸草
自產自銷
呼吸屬於自己的空氣
那該有多好

不管狂風暴雨世界末日我都要幫你點根煙
想想過去想想未來  我們都在你的身邊
妖魔話語亂貼標籤讓我們沒有對話的空間
煙霧瀰漫紛擾社會  我們暫時不去理會...不去理會...

不去理會...不去理會...不去理會...不去理會...

Wednesday, February 17, 2010

物慾

國小五年時光,大概就是我人生物慾最強的時候。四驅車,溜溜球,彈珠超人,怪獸對打機,一款接著一款,一種接著一種。迎接嶄新包裝的那一剎那,真的是非常高興和滿足,幸福洋溢的感覺大概只有交女友能與之相比了。

但搬到台中後,我漸漸失去這種欲望。當我看到戰鬥陀螺這麼無聊的玩具,搭配劇情令人啞口無言的卡通,我知道我沒辦法繼續跟下去了。望著手上的彈珠超人,和工具箱裡的四驅車,好時光已不再。適逢家裡大人有了手機,Nokia 8148,我的興趣漸漸轉向這種買不起的玩具。

小六班上有個好友,姑且稱之為唐先生,他也對手機非常著迷。當時書店裡,雜誌架上那攔總是放著為數不少的手機雜誌,甚至還有專門介紹手機鈴聲的雜誌。一本一本接著翻閱,我們對當時市面上任何一隻手機型號倒背如流,手機這麼樣迷人的產物,除了打電話發簡訊,還能當作記事本、通訊錄。貪食蛇是世界上最有創意的遊戲。但手機終究只是摸不著的玩具,我看著因為大人換新手機而遺留下來的Nokia 8148發愣。這隻直立式手機有著現今手機所沒有的外露式天線,彎曲的造型,還有不知為何要存在的滑蓋(大概是當時沒有鍵盤鎖吧)。接收了它之後,我每天玩它,聽聽裡面的鈴聲,數數螢幕到底是由幾百個點所構成,然後為裡面沒內建遊戲這件事感到遺憾,為沒有中文輸入法、卻有中文顯示這件事感到無奈。手機依舊昂貴,真正想要的,永遠買不起,於是物慾漸漸喪失。或許電腦的出現也得付點責任,青春期叛逆反動也要付點責任。買書和CD成為新的解脫,直到有一天發現書太多根本看不完,直到有一天發現在電腦上聽音樂是何等的方便快速。

現在大二,錢都花在吃的上。家教和家裡存入郵局的錢經過型態轉換,進入口中,然後變成肚上的肥肉、馬桶裡的穢物。還記得小百科還是哪個兒童雜誌裡有一篇就叫做錢的旅行,圖文並茂,甚是精彩,看完了不禁對錢包裡那些骯髒的小傢伙們肅然起敬。怎麼扯到這了,總之,錢不應該是這麼花的,衣服沒有幾件,鞋子沒有幾雙,還在用爛爛雜牌10瓦小音箱,但真要花在這些東西上,現在的錢根本沒辦法應付。

小時候的教育讓我完全不敢買任何昂貴的物品,長這麼大,買了一雙3900的鞋還得關掉腦袋中的理智才行。家裡的經濟狀況不能讓我這樣花錢,於是我變相的花,花了一堆小錢,不經意的時候,小錢堆積成大錢。到底該怎麼花錢,才能花得心安理得,又能獲得美好的物慾滿足呢?待我好好思量。

Monday, February 15, 2010

整理,2009

每隔一段時間,文字堆裡(部落格、筆記本、廢紙上)都會產生這樣類型的文字:井井有條地記下新的一年、新的一週、新的一天、新的心理上的一個時間點的新希望。如同經營管理書籍充滿智慧又犀利的架構,如同勵志書籍充滿靈性與溫暖的內涵,如同孔孟思想的微言大義,如同毛語錄的精小短巧,這樣的文字是多麼的理性而具有說服力,又是多麼的感性、鼓舞人心啊。

完全狗屁。

事實上,這些東西,所謂新的計畫,新的願望,只是情緒的產物,一種對於過去不愉快記憶的補償。熱血是有的,但只會維持五分鐘。你可以大聲的笑我,沒問題,連我也笑得開懷,笑得差點哭了出來。說了這麼多,還是必須承認,這樣的文字是非常必要的。第一段的廢話雖然是廢話,是狗屁,但這是會騙人的狗屁,會讓人從低迷的情緒中,忽然抓住一點活力的狗屁。心靈脆弱的時候上當而不自覺,其實是一種很美妙的事,而這種新年新希望是更加的厲害了,即使一年又一年地被騙,還是活該甘願寫下一些稚氣的理想,寫下過了沒多久可能就忘記/不忍一讀的文字。

---

新年新希望,先從回顧做起。

2009年是個怎樣的一年呢?大環境動盪不安,政治與經濟每況愈下,大學成績慘不忍睹,演算法期中考考五分(感謝教授給我過),農曆年過年還鬧了個斷絕父子關係,是這麼樣的一年。

狗屁的事和蹺課時數一樣多,開心的事份量卻如同分析化學的上課次數。花錢花得很兇,但奇怪的是身上也沒多了什麼行頭,錢都這樣不見了,大概都進了胃袋裡。

雖然上學期被當了三科,日子過得渾渾噩噩,與世俗成功者的正途離得更遠,與反社會和顛狂似乎更走進了一步,但,到底還是有些收穫。翻看早些時候這個部落格上的文字,可以看到有意/無意帶著稚氣的口吻,說著人生的大道理。現在看來,這是一種潛意識的宣示,試圖從孩提時代的想法與眼光分析與解釋各種人生上遭遇的難題。不得不這麼做,不得不模糊進而打破小孩和大人之間的分野。我活了20年,反叛的性格,大概都是在家中一點一滴累積而成。學校的環境比起家庭,強制性倒沒那麼高,不想回家的想法比起不想上學,實在多太多了。命令與管教看似家庭問題,卻遍及各個角落,政府與人民,老師與學生,老闆與下屬,只要有一方的權力極端龐大,統統都算。

為什麼我會那麼在乎這樣的問題?還真是想不到原因解釋。一方面自我過於膨脹,對自由太過於嚮往,一方面耳聽目染許多所謂做人處事的大道理,這些衝突在滿20歲的當下,變得清晰,也到了不得不去處理的地步。反叛的心理漸漸無法控制,隨著同年齡者逐漸成長為大人,我越來越孤單。上大學得到的自由,因為衝突而獲得的自由,反而讓人無所適從。我逼著自己思考善惡,逼著自己選擇,於是造成了2009這一年的孤單與落寞。

於是我有了一個結論:中國傳統價值觀,其實只是為了鞏固掌權者的正當性,在上位者不思考,在下位者不敢出聲。活在這樣的世界裡,我會慢慢看不到愛,慢慢失去對每個單一個體所抱有的好感。我不認為溝通技巧是正途,我不認為政治手段是正途,別告訴我怎麼樣做對你我最好,別告訴我怎樣去愛人。

唸書上的挫折也讓我思考了很多事情。(反省這個詞帶有強迫、命令的口吻,我不喜歡。)所謂正途,讓我非常嫌惡。好好唸書是正途,唸該唸的書是正途,加入社團、辦個活動是正途。我投反對票,代價是什麼?是鬱鬱寡歡和無休無止的思考。該以怎樣的姿態活在群眾中?該如何不被外界的壓力和內心的矛盾打垮?答案其實很簡單,方法卻很難,時間必須得到完全的利用才行。每一件事都要兼顧,課業,娛樂,真正的事業,每一件事都要交出漂亮的成績單來。

總歸一句話,我要當一個怪胎,當一個人人拍手叫好的怪胎。謝謝大家。

Wednesday, January 27, 2010

Haskell練習:字串轉換成浮點數

最近在看Real World Haskell,暈頭轉向之餘也練習寫了點東西。我覺得函數式的程式語言某種程度上反而比較人類的大腦,寫得時候比較不用字字斟酌,不用記一大堆變數、狀態之類的鳥東西,跳來跳去。當然或許難的東西在後面。

用法:
asDouble "12345.12345" ;;result: 12345.12345
asDouble "12345" ;;result: 12345.0

Tuesday, January 26, 2010