小松鼠嚇了一跳,有了魔法眼鏡後,這世界看起來完全不一樣了

2014年11月21日 星期五

地堡系列、14 號門、起點人系列、黑塔系列、別相信任何人、控制、記憶傳承人


這半年看的小說。
地堡系列

羊毛記看起來還挺不錯的,特別是第一段。故事的感情與情境、情節融合的很好。
續集星移、塵土故事也說得不錯,情節很吸引人。雖然也是一個未來反烏托邦的故事,但是主角(或者說作者)比飢餓遊戲、分歧者這類的要成熟一點。對這點感冒的人,可能會比較喜歡這本。整個故事的謎底還算令人滿意。
整體來說,相當推薦,是好看的小說。當初買來羊毛記之後,我立刻熬夜讀完。

14 號門


這本的情節很吸引人,但是謎底讓人有點失望。不是特別爛的結局,但感覺只是一個普通的結局。
故事敘述一間公寓中,充滿著各種詭異的事情。一個被重重鎖住,相當可疑的門。奇怪的規矩和事件。中間解謎的過程可以說是緊張、懸疑中帶著歡樂。我還挺享受這一段的閱讀。相比之下,謎底和結局也不是那麼重要了。
推薦程度中等。

起點人、終點人

這個系列也是以青少年當主角、青少年、兒童取向的反烏托邦小說。但跟飢餓遊戲和分歧者比起來,比較適合成年人的口味一點點。
設定很有趣,講的是一個某種原因之下,所有的大人都死亡,只剩下起點人(小孩)和終點人(老人)的世界。老人掌握資源和權力,可以制定法律。這樣的法律表面上看起來冠冕堂皇,但沒有例外的偏袒掌權者。沒有老人照顧的小孩,因為未成年,連工作權也沒有。
故事情節也不差。其中的謎團解答繞了幾圈,還算有趣。
推薦程度中上。

黑塔系列

黑塔系列很有名,評論的人也相當多。我看了一到七集,還沒看外傳。
對我來說,第一本不會構成障礙。不過第一本的確故事性較低。其實整個黑塔系列的故事進展都不算太快,就像史蒂芬金的其他小說一樣。有趣的是情境、心境描述、氣氛營造。
這個系列我從圖書館每個星期兩本兩本的借,每一本的感覺都不太一樣。但多半都挺好看的。其中一本是出門時從圖書館借出,然後搭捷運的來回途中就看完了。回來剛好直接還書,借下一本。但其中讓我感受最深的是結局。以這個系列的份量來說,這是一個完美的結局。稍微有一點驚訝,一點失落,但也很感動。不是那種會掉眼淚的感動,而是感受到整個世界的深度。
這本是否推薦是見仁見智,因為相對來說需要花一些力氣來讀。不過如果你能接受史蒂芬金的文字風格的話,我覺得會感受很多。

別相信任何人

從一開頭就相當吸引人。主角在設定上雖然年齡不小了,但是在心智成熟度上,感覺跟飢餓遊戲的主角差不了太多。
主角有失憶症,所以寫本日記當成外部記憶體。也因此常會出現故事中的故事中的故事(像是小說中的主角讀著日記裡面寫著聽到別人說的事情)。因為這樣的設定,作者可以巧妙的運用各式各樣的手法技巧,來誘導、誤導、引導你。讓你分不清真假。
各種線索間的衝突,新事證(或者偽證)不斷的像是擠牙膏一樣的慢慢被擠出來。爆點、疑點不斷,相當過癮。
結局不算驚豔,但至少還合格。
非常推薦。

控制

這本我讀英文版,讀了好久,前後大概快一個月吧。雖然別相信任何人也是讀英文,但份量多很多,而且用字也稍微難一點。
控制跟別相信任何人一樣,主軸是夫妻的事情。一開始的情節並不像「別相信任何人」那麼吸引人,但也不算無聊。
第一部的內容也參雜了許多日記,所以前面說的技巧,也一樣可以使用,只是沒有那麼霸氣外露,相對看起來比較平淡。即使是真實的場景,作者也用了一些手法來處理真假難分的氣氛。各種線索也像擠牙膏一樣慢慢擠出來。不過這些線索不像「別相信任何人」一樣接連引爆,很多只是默默的埋梗。
但剛開始相對平實的步調只是用來襯托後來的瘋狂而已。從第一部大約三分之二開始,勁道就開始變強。前面的部份開始發酵。前面埋的一些梗開始爆了。
第二部就直接露出瘋狂的本性,情節突然加快。除了埋更多梗之外,前面的梗也接二連三引爆。
到了第三部以後,更可以說是超越了瘋狂,直接到達了變態的境界。前面你以為已經爆開的地雷,到這裡居然又爆開了一次。
如果喜歡閱讀的人,這本非常推薦。

記憶傳承人

讀完前面兩本後(中間只看了鋼之鍊金術師漫畫),讀這本有種失速的感覺。
除了內容上的差異外,份量上也輕薄很多。
主角設定比之飢餓遊戲、分歧者、向達倫這類比較現代的青少年小說,沒有那麼.......要怎麼說,中二?這樣可能有點濫用。總之,就是沒有特別血緣,也不會設定成太勇敢、太特別、特救世主、太主角投射、太瑪麗蘇。主角就是很平常的青少年,帶有一點叛逆沒錯,有一點點的「特異能力」沒錯,但沒有那種莫名其妙的多愁善感。
開頭的設定沒有太驚奇之處,情節描述也很平淡。但還算有趣,而且進展很快(因為篇幅小),所以讀起來沒什麼問題。中後段開始漸入佳境,幾個爆點不錯,頗有狂人日記的禮教吃人感覺。
後段情節開始翻轉,有種青少年版的重裝任務的感覺。就當翻轉中又有轉折,計畫趕不上變化,開始讓人期待的時候,慢慢發現感覺有點怪,進展有點緩慢。然後情節戛然而止。
這時候你就會開始計較設定模糊奇怪、謎底沒有解答。
持平而論,這一系列有四本,也許看到後面會好一點,
推薦程度: 比較推薦給小朋友看。大人看也可以,但是不要期待太高,注意裡面的優點即可。

2014年10月15日 星期三

Python 超級新手教學




暑假錄的 Python 入門教學影片,對象是程式語言的超級新手。所以進度非常的慢。

一些細節會省略,等著有人問的時候再回答。

但拍出來後,一直覺得效果還可以再改進,所以一直沒放上來。

但現在想想,還是先放上再說。內容還會陸續增加,短期目標是寫出一個可玩的遊戲。
有任何可以利用的地方,歡迎自行取用。



2014年10月13日 星期一

桃蛙源記


因為兒子看到報紙上電影廣告,指名要看的關係,就帶他去看了他生平第一部看的電影。
我兒子對電影的品味實在不怎麼樣,在電視上看到「無敵鯊魚」、「賭城風雲」的片段,居然還連翻叫好。所以我對桃蛙源記的期待並不很高。 況且,光片名就像是有點年紀的人才會取的。



先說 3D 動畫品質。一些水、天空等等的風景弄得還挺美的,青蛙的紋理大概是有考據的,可能也挺真實的。不過呢,要怎麼說,簡單來講,這部電影的成本只有三千萬。
不要對 3D 動畫要求太高。大體上來說,我覺得動畫品質足以讓我順利融入劇情。

我比較不喜歡的是說故事的技巧。
比方青蛙離開故鄉的原因是:美國牛蛙入侵、農藥、農地被破壞(大「普」開發案)。在短短的時間,要塞入這麼多「有意義」的東西,其實需要良好的敘事技巧。雖然跟後面老鼠、蛇、鷹那段有點相互呼應,但還是過於隱晦、快速。表現大草澤美好的時間太少,很難突顯後面被破壞的反差。
說故事的時間被拿去哪裡了呢? 大部分的時間被教育以及懷舊用掉了。
比方一開始的片頭,就故事性來說,可以很快就帶過。但為了教育性,篇幅大概變成了三倍左右。又為了快速進入主題,所以根本沒時間突顯大草澤的美好。
不過片頭的情節其實一小段一小段來看,其實還不錯,只是沒有跟後面連起來。但至少主題是相關的。

後面有很多懷舊的橋段,就完全是天外飛來一筆,跟前後劇情、主題都沒有關係。


但上面寫的這些完全不重要。 因為這部電影的目標對象不是我,而是小朋友。
從現場的反應來看,小朋友的反應挺熱烈的。
就像我一開頭說的,小鬼的品味實在不怎麼樣。但又有誰真的能決定品味是什麼?
我還是推薦這部國片。
如果你的小孩還小,讓他自己建立自己的品味。
如果你的小孩年紀大一點,可以辯論溝通、互相了解。順便也試著理解一下電影想傳達、或無意間傳達的價值觀。

2014年9月27日 星期六

新部落格:松鼠爸爸講故事


部落格:松鼠爸爸講故事
這是這星期弄出的部落格,裡面有許多小故事,目前有六十多則故事,計畫持續更新。
雖然要在網路上找到故事,並不困難,但故事弄容有好有壞。
我為了自己方便,將我自己喜歡的故事,整理蒐集在這個部落格裡。故事內容大多有改寫過,符合自己的需求。
比方說伊索寓言的「牛和青蛙」,讓無辜的青蛙家庭先是死掉小孩再死掉媽媽,實在太慘無人道了。安徒生童話有些很長,所以我就刪減節錄。
還有一些故事(像是中國的一些經典),後面會感嘆和寓意,這些我也刪除。
總之,盡量不讓故事太。也不蒐集太無聊的故事。阿凡提系列的故事,小時候讀覺得挺幽默有智慧的,但現在看看,卻覺得挺蠢,所以只收錄一小部分。
所謂的不無聊,一般來說是內容有點寓意或者意思、情結有點轉折,或者是某種可以用到的典故(像伊卡洛斯)。
有一些故事其實是大故事的藍本/原始版本(像是雙夢記是牧羊少年的奇幻之旅,還有冰雪奇緣源自安徒生的雪后)
一些不適合小孩的故事,雖然很有趣,也暫時不放(像是天堂踩鴨子的故事,還在考慮怎麼改寫比較好)
此外,將來也會多放一些原創的故事。
非原創的故事,我儘量將我知道的來源寫下,像是瞎子摸象其實是佛經中的故事。
相信很多人也會有講故事的需求,可能是給小孩聽,也可能是演講中可以運用。因為每個人的需求及口味不同,所以我喜歡的,不見得適合你。不過參考看看無妨,說不定會喜歡。


2014年9月11日 星期四

真‧程式師用 One-Way Hash 來寫程式


每隔一段時間,一定會看到關於真‧程式師要使用哪種編輯器的爭論,到最後一定會變成直接用 echo,直接用磁鐵改硬碟之類的。
GNU nano is a text editor - a program often used to edit the source code of other programs. Emacs, Vim and ed are all progressively more "hard core" editors. cat is a Unix program that concatenates and outputs the contents of files. Things get steadily more ridiculous from here. Using a magnetised needle to flip bits on a hard drive requires nanometer precision and binary mastery, but in the early days of programming people did use needles sometimes to fix bugs on Punched cards. The use of a magnetized needle may also be a reference to the Apollo AGC guidance computer, whose instructions were physically written as patterns of wires looped around or through cylindrical magnets in order to record binary code.  -- http://www.explainxkcd.com/wiki/index.php/378:_Real_Programmers
但對一個真‧程式師而言,直接寫 binary code 實在太容易了,即使是用磁鐵也一樣。真正的硬核程式師應該要用像是 sha2、 md5 這樣的東西來寫程式才有挑戰性。

就像之前的 Great Python Challenge 一樣,之前也提出了一個挑戰,挑戰真‧程式師用 one-way hash 來寫程式,比方:
cat 0.c| shasum -a 384 | xxd -p -r > a.out && chmod a+x a.out && ./a.out
會選擇 sha384 是因為他剛好夠長,可以塞進一個 ELF 執行檔(請參考 http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html).

當然也不能只挑戰別人,所以我自己也嘗試求解。最後的解如下面
照下面的步驟就能測試 (Copy& Paste) :
mkdir test
cd test
wget https://raw.githubusercontent.com/tjwei/tjw_ipynb/master/0.c
sh 0.c
gcc 0.c && ./a.out
cat 0.c | shasum -a 384 | xxd -p -r > a.out && chmod a+x a.out
./a.out


過程

第一版的解答很快就出來了 https://github.com/tjwei/tjw_ipynb/blob/master/a.c
基本上能執行,符合要求,但我還是希望至少能印出 "Hello World!"。
第二個解答不久後也出來, https://raw.githubusercontent.com/tjwei/tjw_ipynb/aa733143a5a76f460122e93028f49693d53931e8/0.c
在有些環境下,的確符合要求,能印出 "Hello World!",程式碼看來也挺漂亮的,但不夠完整。
最後我只好用更暴力的方式來搜尋解答,首先將程式碼縮短, comment 都去掉,只留下一個簡短的網址來取代原來的說明。 因為長度小於 112 byte,才能用一次 sha512 block 運算完成編碼。 這樣大概至少讓速度快個五倍。 在沒有超頻的 HD7970 ghz edition,可以用160 mhash/s, 的速度來搜尋。如果單純的 preimage 搜尋,甚至可以接近 180 mhash/s。而且還有一些加速的空間。
總之,結果在 https://github.com/tjwei/tjw_ipynb/blob/master/0.c
中間工作的過程在
http://nbviewer.ipython.org/github/tjwei/tjw_ipynb/blob/master/RealMan2.ipynb

而既然這是一個挑戰,我的確接到一些回應,其中一個由 Kuo-Tung 提供的解答,也挺有趣的,可以在這裡看到  http://paste.plurk.com/show/1982392/

2014年8月27日 星期三

IPython notebook UI 自訂

嘗試利用 IPython Widget 和 JavaScript 來控制 IPython 的 cell 行為。
目前可以控制 cell 的高度還有模擬 vim, sublime, emacs 的 key binding。
程式碼在 http://nbviewer.ipython.org/github/tjwei/tjw_ipynb/blob/master/vim.ipynb
我目前用的 css 在 https://github.com/tjwei/tjw_ipynb/blob/master/custom.css
是從 Base16 Ocean Dark 改的。

2014年8月22日 星期五

fuse 練習: Asus 和 卡提諾檔案系統


拿到了幾張 ASUS WebStorage 的的 100G 體驗卡,想說就用用看, 我的 macbook 只有 100G 的 SSD,拿來當延伸空間不錯。 沒想到 OSX 上好像只有像是 Dropbox 那樣直接 sync 的軟體。於是就自己寫了一下,當成練習。目前是 read only,也不太穩。我猜中文檔名應該會掛,就像 MegaFS 一樣。
不過目前至少放放影片,聽聽音樂還算可以。

source code 放在 https://github.com/tjwei/AsusWebStorage
在寫這個之前,另外有一個練習用的  fuse 檔案系統 ck101fs, 可以把卡提諾論壇的圖檔 mount 成一個虛擬檔案系統。

source code 在 https://github.com/tjwei/ck101fs