星期六, 9月 07, 2013

[Haskell] Read the contents from the clipboard in Haskell

有時候只是想要做一點簡單的事情的時候,其實會直接貼上 string 做處理。但是因為不知道怎麼在 ghci 上貼入 multiple line string,所以想到可以直接讀取複製的內容直接做處理。


在 Mac OSX 裡有一個相當好用的指令是 pbpaste,可以直接蛉出在剪貼簿中的指令。開一個 subprocess 把指令的 output pipe 進來就可以了。嘗試如下。


嘗試執行結果如下

Prelude> :l read_pbpaste.hs
[1 of 1] Compiling Main             ( read_pbpaste.hs, interpreted )
Ok, modules loaded: Main.
*Main> import Data.Char
*Main Data.Char> processPaste Data.Char.to
Data.Char.toLower  Data.Char.toTitle  Data.Char.toUpper
*Main Data.Char> processPaste $ map Data.Char.toUpper
Loading package array-0.4.0.1 ... linking ... done.
Loading package deepseq-1.3.0.1 ... linking ... done.
Loading package filepath-1.3.0.1 ... linking ... done.
Loading package old-locale-1.0.0.5 ... linking ... done.
Loading package time-1.4.0.1 ... linking ... done.
Loading package bytestring-0.10.0.2 ... linking ... done.
Loading package unix-2.6.0.1 ... linking ... done.
Loading package directory-1.2.0.1 ... linking ... done.
Loading package process-1.1.0.2 ... linking ... done.
ING PACKAGE ARRAY-0.4.0.1 ... LINKING ... DONE.
LOADING PACKAGE DEEPSEQ-1.3.0.1 ... LINKING ... DONE.
LOADING PACKAGE FILEPATH-1.3.0.1 ... LINKING ... DONE.
LOADING PACKAGE OLD-LOCALE-1.0.0.5 ... LINKING ... DONE.
LOADING PACKAGE TIME-1.4.0.1 ... LINKING ... DONE.
LOADING PACKAGE BYTESTRING-0.10.0.2 ... LINKING ... DONE.
LOADING PACKAGE UNIX-2.6.0.1 ... LINKING ... DONE.
LOADING PACKAGE DIRECTORY-1.2.0.1 ... LINKING ... DONE.
LOADING PACKAGE PROCESS-1.1.0.2 ... LINKING ... DONE.
HTTPS://EN.WIKIPEDIA.ORG/WIKI/CONTINUATION-PASSING_STYLE
*Main Data.Char>

2013/09/08 09:17 AM 早上試一下,還可以這樣子幹也蠻方便的

Prelude System.Process> putStrLn =<< readProcess "pbpaste" [] []
http://hackage.haskell.org/packages/archive/process/1.0.1.1/doc/html/System-Process.html
Prelude System.Process> import Data.Char
Prelude System.Process Data.Char> putStrLn . (map toUpper) =<< readProcess "pbpaste" [] []
HTTP://HACKAGE.HASKELL.ORG/PACKAGES/ARCHIVE/PROCESS/1.0.1.1/DOC/HTML/SYSTEM-PROCESS.HTML

所以想要寫完全沒有彈性的碼可以這樣子寫。


星期五, 9月 06, 2013

選擇筆記用紙心得

這其實是一個蠻簡單的問題,但是這個問題其實困擾了我還蠻長一段時間的,因為我一直有一個問題。

下筆的那一刻,這張紙是否要被保留下來 ?

老實說,很多時候我是不知道答案的。不過後來想出一個可以接受的方法解決了這個問題。那麼方法是什麼呢 ?

買 A4 30 孔資料夾(or 魚骨頭) + A4 30 孔打孔機。重要的重新整理到電腦上

這個方法應該很多人提過,下面都是我為什麼會選擇這個方法的故事,如果沒興趣的可以跳頁了 XD。

從大學開始,試著自己開始整理筆記遇到很大的困難。因為我上的課很多課堂都是使用投影片,大概到大二的時候,我買了一台雷射印表機把投影片印出來然後在上課的時候試著做註記,還有自己閱讀課本及寫到 blog 上,大部分的筆記都很零零散散的,不過就這樣子過完了大學四年 XD。到了碩士班,我們還多了一個東西叫做論文,看論文也是一絕,因為一剛開始,真的還蠻難只使用電腦就看論文(中間有買 Kindle DX 試過,但是反應速度實在是有點囧,現在還是認命的買 iPad 了),所以唯一選擇也是印出來,久而久之,如何整理印出來及自己寫的東西變成一個很麻煩的問題。

那麼現在來談談做筆記的用紙及收集,最常見的方式是 B5 26 孔夾,大小適中,外觀多樣,紙也容易補充,是很好的選擇,不過會遇到我一開始說的問題,我在我下筆的時候,除非明確知道是要做筆記,不然拿 B5 26 孔紙當計算紙也是有點浪費 (26 孔紙和 Dobule A 一包比起來還是貴了點)。經過了很多嘗試,最後還是決定使用 A4 紙做筆記。

但是使用 A4 紙做筆記會產生最大的問就會跟前面提到的一樣,不容易整理,這中間試了很多方式。一開始印投影片的時候,就買了一個20入的資料夾,每印出一份投影片,就塞進去,要看再拿出來. 也試著夾起來,但是這其實只是進化版的訂書機整理法而己。在碩士班寫的 A4 紙筆記最後全部掃入電腦,然後全部收好,要看的時候就一張一張的看,這個狀況持續了好幾年。

有一天,我看見 Jacky Liu 帶了一個 2 孔 A4 資料夾裡面塞著他自己打的 A4 紙,我看到的時候覺得可以把筆記紙和自己印出來的資料同時整理,是一個不錯的做法。那時自己先買了一個簡單的打孔器,再買了一個 A4 4 孔資料夾,這個方法雖然滿意,不過也有一些缺點,因為自己買的是單孔打孔器,所以紙打起來並不美觀,另一方面,可以買到 A4 孔夾其實都偏大。在那時候,我自己買了一個 A4 4 孔夾,自己把夾子割小一點,雖然邊緣不怎麼美觀,但是是一個可行性的方法。

IMG_2387

後來在逛文具行的時候,意外看到大小趨近 A4 紙大小的 A4 4/ 30 孔夾(如下圖),看到這一款相當的開心,當下買了很多個回去存 XD,整理起來效果也很不錯,到此剩下的問題就剩下打孔了。

IMG_2385

IMG_2384

打孔如何打的漂亮,問題在打孔機。一般的書店可以買到的打孔機一般是 2/ 4 孔打孔機,而且紙無法對齊。最後決定在網路上尋找合適的打孔機,在女友的幫助下,發現 Carl GP-130 打孔機的價錢可以接受 (如下圖), 紙可以對齊,打出來也很美觀,於是就決定這個解決方案。

IMG_2383

Carl GP-130 的優點就是打起來整理美觀,容易攜帶,但是缺點還不少。第一,價錢不算便宜,我買的時候是 NTD 600,不知道現在有沒有便宜一點。第二,打一張紙的步驟不算少,要先對齊然後一張紙要打孔 5 次,這速度其實不算快。第三,一次只能打 2 張 80 磅的紙(如 Dobule A) 或 3 張 70 磅的紙,如果有很多紙要打其實蠻耗時的。如果真的想要用這個方法的話,預算足夠可以買 Carl SP-30N (不過因為預算的關係,我和我女友合買一台 XD),雖然紙一樣只能打兩張,但是打孔只要刷一次就搞定,還在可以接受的範圍。

假設用上述兩台打孔機,那麼一次只能打兩張怎麼辦 ? 有兩個不是方法的方法,第一個,買更專業的打孔機 (笑),第二,利用閒暇時間打孔,我自己是利用看日劇/ 動漫/ 電影的時候打孔,不然就是晚上想睡的時候邊聽音樂打孔,如果有其他方法請跟我說,我也很想知道,謝謝你。

整理起來效果如何 ? 論文翻閱比起以前方便的多也容易整理,當然,要做註記的時候可能還是要從活頁夾拿出來會比較方便,一般為了筆記方便,通常會再買一個 A4 筆記板 (如下圖),而投影片依舊是個死穴,因為一般是 4 頁投影片一張,用活頁夾翻閱沒這麼方便,直向翻閱的話,可以考慮印 2/ 6 張一張(如下圖),如果要橫向翻閱的話,建議可以買魚骨頭。

IMG_2382

IMG_2386

這個方法最大的優點就有如一開始所說的,不太需要考慮這次的寫作為何,缺點當然也有,一開始要花錢花時間適應,但是以我自己來說,我很喜歡這樣子的整理方式。但是最後還是會想要用電腦整理,原因在於搜尋,不過這又是另外一篇文章了,以後再說吧。

如果有興趣的話不妨試試看這個方式,如果有什麼想討論的,我也會很樂意討論。

星期日, 9月 01, 2013

Lambda Mind & Yen3's Note


從今天開始,No title, no thinking, no meaning 改名為 Lambda Mind。其實一直想改名很久了,但是一直找不到一個符合自己心情的名字,這次在女友的幫忙下才想到這個好名字。當然我也不否認有抄襲 Trek through Pure Reason 的味道,只是我英文和意境沒這麼好,所以只能想簡單一點的 XDXD。

寫了這麼多年,知道寫出滿意的內容其實並不容易。雖然自己喜歡寫作,但是總覺得自己腦袋沒啥東西可以寫。看著自己當兵時立下退伍後的志願就有一項,希望自己退伍後能持續寫作這件事。這大概也是為什麼硬碟裡面躺了一堆沒寫完的東西(笑)。

同一時間,經過一些日子的想法,還是決定開個分站 Yen3's Note 來記載一些隨筆,如果有可能(這通常不太可能),會再想辦法整理再放回 Lambda Mind 上,有沒有可能全部移過去 ? 暫時不太可能 XD。從 Google Reader 關閉以來,每次看到一個新的服務,我的第一個想法是,這個服務到底可以撐多久,blogger 這個服務也是有可能被 Google 關閉的。logdown 是個好主意,也做的很不錯,但是我還是會想,我們可以用多久 ? 所以其實很謝謝 logdown 可以把所有的文章以 markdown 的形式匯出,至少是留了一個不錯的後路。

---
最近大概就這樣 XD?



2013/09/08 19:26 經過一番想法之後,還是決定使用 nikola 來做筆記之用,會改的原因大部分都不是技術原因,雖然會比較麻煩一點,不過就先這樣子將就用吧 XD。