星期日, 12月 16, 2012

亂想

這一陣子看的關於歷史書有「明朝的那些事兒 1~7」與「橡皮推翻了滿清」。喜歡這兩本書的原因是,著重在還原歷史。我不太認為一件事的結果只是單一原因所造成,而這兩本書都有著類似的觀點。


「橡皮推翻了滿清」其實剛開始看感覺還蠻亂的,越是閱讀越是進入佳境,書中的主題主要是從各個方面(如: 地理、經濟、軍事、政治 ... 等等)來探討為什麼滿清會滅亡。因為作者是從寫作 blog 起家,有時候會有一種面對讀者的寫法 (如: 各位看倌認為 ...),封面和標題比較生動活潑一點,可能是想要吸引買氣,雖然我很久沒有看這種感覺的書了。但其實內容的考據與撰寫皆相當的嚴謹,分析原因相當的清晰,如果對清末民初的歷史感到興趣的人,是值得一讀的。


每個人都有其人性。有些人熱衷名利,有些人想對社會貢獻或改變,但我相信大多數的人想過平凡的生活。從歷史中看到批評者有之,但能實際做出貢獻者更使人尊敬。有人說歷史可以讓我們鑑往知來,但人性依舊如此,所以,我們能從歷史學到的事並不多,甚至是不斷的重覆無法避免的錯誤。


最近與人聊天,總覺得有好好寫(譯)的中文書好像不太好找,連工具書、科普書都邁入一樣的情形。所以看到這本書其實蠻開心的,有空也可以看一下藍戈丰的 出書心得。我真的還蠻願意買一本有好好認真寫且深入的書,但這種書並不好找(笑)。背後的原因,應該有蠻多人聊過的,但是至於如何改變這個現況,其實我心中沒個底。所以只能期許自己好好的寫一些東西,雖然這並不是我的本行,但是我很喜歡寫作(笑)。


在很久很久以前,有看到過一段文字「他只願意看出版超過十年以上還存在於市面上的書。因為如果經過了十年這本書還存在著,代表有其閱讀的價值」這個看法其實蠻有趣的,雖然有時候會有時候是因為好書實在是太難賣所以絕版了(還好現在網路上很容易找到 ... XD)。我在寫這篇文章的時候,嘗試的去尋找 "紫牛-讓產品自己說故事" 這本書,這本書在我的印象中,七八年前還蠻紅的,但是現在並不是這麼容易可以買到這本書 (笑)。我相信這種書應該會非常的多 XD。


這又讓我想到「暮光之城」與「飢餓遊戲」,前者我沒看過,後者我把小說看完了,但是後來才知道原來這兩個系列在美國是被歸類為青少年小說,早知道我就不看了 (笑),飢餓遊戲其實營造出了一個不錯的氣氛,有愛情故事,好像也有反烏托邦情節,具強烈故事性,但總給我一種想要好好說一個故事,但是失了焦的感覺,也不能說這本書不好,但是只能說不合我的胃口(笑)。


---
本來想要寫看歷史書的心得,不過後來變成亂寫了,先這樣吧(笑)。

星期日, 12月 02, 2012

最近

Factory Girls 推進到 Chapter 5 了,不過估計下禮拜之後就會慢的很 XD。

15-150 Functional Programming 兩個禮拜內推進到 lecture 11,15-210 Parallel & Sequential Data Structures and Algorithms 也推進到 lecture 3,也希望下禮拜能保持進度,很謝謝 Josh Ko 的每週討論與閒聊,讓我一直放寬心胸努力(笑)。


EtherCalc 開發經驗談 想到了 Peopleware 中文版,於是在利用今天中午重看這本書,以往對於這本書的記憶大抵上是讓人適得其所,減少辦公室干擾。而現今重讀時發現其中的脈胳為討論從時間、環境、人才進而到團隊的管理,如果人才沒有問題,那麼一個專案是否能完成的關鍵在於人而非是技術。(雖然我覺得這兩者沒有什麼直接關係,大概是想看書就看了 XD)


另外也因為這篇經驗談中提到的 LiveScript,想到 Chi-En Wu 有跟我說過,有空我再好好看看,這一陣子可能 Standard ML 看的比 Haskell 還多(笑)。


---
暫時性的雜記,期望自己下禮拜能持續閱讀與思考了。

星期日, 11月 25, 2012

Factory Girls




起先是看了 「白板报 - 工厂女孩」的介紹進而開始閱讀。這本書要求的英文程度不高 (連我都看的懂),我現在看到 Chapter 3 結束,正如白板报所言這本書並不是想要反應所謂的血汗與不公平,而是去貼近描寫這些女孩的生活與想法。

這本書有中文版,書名是 「工廠女孩 Factory Girl」。經過某些訓練,我對於 Girl 該字不是複數其實有點感冒 XD。稍微翻了一下,其實沒很喜歡中文書的排版和封面,建議有興趣的人還是看英文版比較好。


至於完整的心得,可能要等看完以後了,那可能要很久很久(笑)。


題外話: 白板报是一個值得推薦閱讀的 blog,能看到有趣但平實的觀點,雖然我現在看簡體字很吃力 (我懶的用同文堂 XD),這個 blog 在對岸貌似很有名,或許也不用我多做著墨 :D。


---
在 FB 上字越寫越多,索性還是寫在 blog 上 XD。

星期二, 10月 23, 2012

The Collection of Perfume


大概只剩 Perfume ~Complete Best~ 和 Game 會想收,接下來應該都是收台壓了。
雖然 Spending All My Time 的風格我沒很喜歡,而 Perfume 現在的風格和以前也不盡相同了。但是應該還是會繼續再聽一陣子。


---
做個紀念。

星期六, 9月 29, 2012

分站

Yen3's Note

老實說,我也不知道為什麼我要搞這個分站,單純是想試試 hakyll 好不好用 XD。等以後有空再來思考要怎麼繼續寫 blog 這件事,先趕快把 Josh Ko 的 FLOLAC'12 文章看完再說。


---
其實只是單純不想讓使用 ipod touch 的文章在第一則才寫這篇 XD。

星期二, 6月 26, 2012

Remote control music play for iOS 5 through a broswer

這個是最近才想到的問題,我的問題很簡單,如何用電腦操控 ipod touch 的音樂播放 ? 為什麼會有這個問題的原因是,我的 ipod touch 是插在有音響的 dock 上的,如果我想要切換播放清單或換很多首歌,依靠音響所提供的遙控器多少會有些不便。所以才想要改善這個問題。


方法: 裝上 Reverse Remote。很簡單吧 XD


這個方法的限制是,控制的設備需要看的到 ipod touch。最簡單的方式就是兩個設備在同一個 wifi network 底下。而另外一個限制是,想要遠端操作,必需把該 Reverse Remote App 開啟才可以運作,這個限制倒是沒有這麼麻煩。如果你有 jailbreak 的話,透過 cyndia 安裝 backgrounder 後,讓 Reverse Remote 背景執行就解決問題了。


由於 Reverse Remote 的操作與內建音樂播放 App 的操作是互通的,所以我通常是讓 Reverse Remote 背景執行,然後開著內建音樂播放 App,對我而言,這樣子暫且夠用。


如果說有什麼不滿意的,第一個是傳過來的操作介面雖然可以接受,但是每首歌缺乏專輯及歌手名稱,第二個是連線的時候輸入 IP 不甚方便,雖然知這件事可以透過某些方式來解決,但我也懶的解決了 XD 因為我最需要操作的環境只有兩個設備會使用到 wifi network,猜不到 IP 的時候我再去看一下設備 XD。





題外話是,這是第一次 JB,僅僅只是為了操作上更佳方便 XD,其實這個方法以外,第一個想到是的 Josh Ko 提的 Reflection,但是後來發現,這好像只能看,不能操作啊 (我好蠢 ... Orz)。第二個方法是 cyndia 上的 Veeny ,簡單的來說就是在 iOS 上裝上 VNC Server,我在 Mac OSX 上試過了,chicken 無法連線,而 Finder 內建的 vnc 開起來奇慢無比,所以最後是嘗試這個作法。當然,朋友說我買錯音響了 XD,應該可以買支持 Airplay/ DLNA (這名詞我第一次聽到 XD) 播放的音響。我的心得是,來不及了,將錯就錯吧 XDXD。


---
寫個心得 XD。

星期五, 5月 25, 2012

中文直書與 Kindle DX

其實我在兩年前寫了關於 Kindle DX 如何閱讀中文小說的 blog,但是其實後來自己對於這樣子的方法不甚滿意,最主要的原因是。

用橫書看金庸感覺很怪 XD

但是我又是個懶人,於是這問題一直放著,一直到現在 iPad 或者是 Android 平板都有出相應的好讀網站閱讀軟體,我自己用 KDX 也是看英文居多,於是這問題就一直一直放著 ... 直到我開始看 "明朝的那些事兒"。剛開始我是用我自己的 ipod touch 看的 ... Orz,其實非常的耗時 (因為我翻了好多好多頁),後來索性再看看現在 KDX 破解的現況,KDX 現今可以看中文的破解,大抵上來說都是換掉內建的字體,比較好的可以做到英文字體是原本 KDX 內建,中文是黑體,也就是說,可以直接看中文的 mobi 檔,但是,它還是橫書 XD。只是那一瞬間覺得不能再懶下去了,所以乖乖來找解決方案。

如果自己不想去 hack KDX 但是又想看直書,最快的方法,把文字複製到 Word 上貼上,然後設定成直書之後輸出成 PDF 應該就解決了 XD 可惜我比較喜歡用 LaTeX ,所以就使用了一個簡單的方法: 在 XeLaTeX 上的 xeCJK package 配合 fontspec package 可以直接把字旋轉 90 度並中文輸出就可以了。最主要關於字型的設定如下


# use fontspect package
\usepackage{fontspec}
  
# use xeCJK package
\usepackage{xeCJK}     

# set CJK main font and rotate
\setCJKmainfont[Vertical=RotatedGlyphs]{Hei TC}

最主要的設定只有最後一行,其他的都是使用所需要的套件,於是乎,剩下的就是讀出內容,加上 header 和 footer 形成 tex 檔,然後 complie 生成 pdf 檔,丟到 Kindle DX 上,收工。


在 Kindle DX 上的效果如下圖,照片中所使用的字體是 "華康明體 Std W5",實際看起來對比照片略粗




為此,我自己寫了一個簡單的好讀網站的 pdb file 轉成 tex file 的小程式,也符上一個簡單的 XeLaTeX template,皆放在 github 上,如果有使用上的問題,歡迎留言或來信。


github: PDB-TeX-Converter


其中有幾點討論如下。

  1. 為什麼生出來的檔案沒有頁碼 ?
    頁碼在 LaTeX 直書排版上一直是一個很大的問題,但是 Kindle DX 本身就有頁碼,所以直接省略。
  2. 為什麼不讀 updb 檔 ?
    我嘗試搞了幾個晚上之後放棄,我對於編碼實在是不了解,如果可以,我會試試看。
  3. 如何使用 XeLaTeX ?
    這個要講要講很久,在 Mac OSX 上是安裝 MacTeX,在 Linux 上是安裝 TeXLive,在 Windows 上 ... 嗯,應該是 TeXLive,但是我沒研究 XD。如果你使用的是 Mac OSX 或者是在 Linux 從 package manager 直接安裝 TeXLive,這隻小程式在運作上應該不會有問題。目前已知在安裝好 MacTeX 2011 的 Mac OSX 上運作可直接生出 pdf 檔。
  4. 如何知道字體的英文名稱?
    首先,先行建立字體列表,在 command line 中輸入fc-cache -f -c -v接下來,在 command line 中輸入fc-list
    即可看到字體的相對應英文名稱,在上面的範例是 Hei TC,這其實就是 Mac OSX 中的 "黑體 TC"。


---
這個應該是很小眾的需求 XD。


2012/06/07 --- 根據 Josh Ko 的建議,還是使用直向直書模式,不過生出來的 pdf 需手動旋轉頁面。示範圖更新如上,代碼更新已上傳至 github 。

2012/08/08 --- 根據 anynomous 的建議,天火藏書排版系統是現有的方案,而我自己也已經建立了一個新專案為 convert2tex ,主要是可以把 epub/ txt/ pdb (限好讀網站格式)轉換成 tex 檔和支援簡體轉繁體。雖然現在已經是 stable,但還在補強中,修好就會上傳並說明關於這個專案。(可能會很久很久 XDXD)

星期三, 5月 02, 2012

在 Mac OSX 下觀看 process 的記憶體使用量

寫這個小程式的目的只是想知道 Chrome 總共吃了多少記憶體而己 ... Orz (我好無聊 XD)

這件事其實很簡單,但是我不太會用 shell,所以仿造 godfat 以前寫的 mem_usb.rb (原 po 提供連結了 XD)(連結找不到了 XD)。寫了一個簡單的 proc_mem.py 程式碼如下



#!/usr/bin/env python
import subprocess
import sys

def main():
    proc_name = sys.argv[1] if len(sys.argv) >=2 else "Google Chrome"
    proc_list = subprocess.check_output(["ps", "-Ao", "rss,comm"])
    print str(sum([int(proc.split()[0]) for proc in proc_list.split('\n') if proc.count(proc_name)>0])/1024.0) + " M"

if __name__ == "__main__":
    main()
使用上很簡單,輸入你想看的 process 名字就可以看到了,如果什麼都不輸入,預設是 "Google Chrome"。

---

我的 Google Chrome 吃了 3.5 gb 啊 ... (遠目)。

星期三, 1月 18, 2012

YiViewer - pandoc HTML Viewer

Download



What is YiViewer ?

YiViewer is a html previwer for restructed text by pandoc. It can previrew markdown, reStructuredText, latex, … etc as a html page.

It is written by Python and QtWebKit (by PySide). The program is very small. It can run smoothly in Mac OSX and Linux.

Feature

  1. Stay in the same location when you regenerate the preview for file.
  2. Regenerate the preview automatically when the file saved.
  3. Support the all file formats for pandoc, it can decide the file formt automatically by subfilename.
  4. A simple and beauty look preview CSS is designed by C.E.W.

Connect Author

If you have any problem with YiViewer

  1. Leave message in my blog
  2. Mail to me (yen3rc AT GMAIL).

Install

There are two steps for installization.

  1. Install Dependence Librays/ Tools — PySide and pandoc
  2. Install YiViewer

Install Dependence Librarys/ Tools

  • Install in Mac OSX
  • Install in Fedora 14+
  • Install in Ubuntu (unfinished)

Install for Mac OSX

  • Install from homebrew. Type the following command.

     brew install pyside 
     brew instal haskell-platform
     cabal install pandoc --flags=highlighting
    
  • Install from package

    1. Download Qt, PySide, haskell-platform package and install it.

    2. Type the following command

       cabal install pandoc --flags=highlighting
      

Install for Fedora 14+

  • Type the following command

    sudo yum install python-pyside* pandoc -y
    

Install for Ubuntu

I don’t have any computer running with Ubuntu OS. If you test it successd in Ubuntu, please mail to me. Thank you.

Install YiViewer

  • untar yiviewer.tar.gz and copy to a run path.

    tar zxvf yiviewer.tar.gz
    cd yiviewer
    chmod +x yiviewer.py
    sudo cp yiviewer.py /usr/local/bin
    

How to use ?

You have two ways to use YiViewer

  1. from command line

    yiviewer.py README.md
    
  2. from GUI

    yiviewer.py
    

    File -> Open -> Select Restructed Text File

  3. The previwer has the following shortcuts
    1. Ctrl + r: Regenerate the page
    2. Ctrl + o: Open file
    3. Ctrl + s: Save as a html file.
    4. Ctrl + +: Zoom in
    5. Ctrl + -: Zoom out
    6. Ctrl + 0: Set default zoom size.

To Do List

  1. 上傳到 Github

    這件事我沒做過,我連開 Issue 都不會 XD,看來我真的得好好學一學。(ps: 因為之前都是在學校的 Server 直接走 git with ssh XD。)

  2. 打包程式以順利支持各種平台。

    還蠻重要的,但是我沒有相關經驗,希望二月底前可以做完。(因為我蠻希望可以直接把檔案拖到 dock 的程式執行圖示上就開啟的 XD。)

  3. 在 VIM 上支援即打即顯示。

    目前構想是去讀取 swp file,不知道可不可行,有稍微 parse swp file一下,感覺上是可行的,但是得要知道檔案結束在那個地方。

  4. 支援 pandoc 的自訂格式與 command

    這沒很難,只是很麻煩,目前已經可以從檔名判斷格式,如果真的有需要可以自行從程式碼中修改。而想做的事如下。

    1. 使用者自行定義 input formt,可從 arguments or option 或 GUI (這得要好好想想怎麼設計會比較好)
    2. 可支援使用者自行定義 executing pandoc command

Question

  1. 這隻程式會持續的維護嗎 ?

    會,因為我平常都是用這樣子的模式在寫文件,所以有什麼問題我會自己試著去修改。如果有一天沒有維護了,原因不外乎是我不用這隻程式或懶了 XD。

  2. 為什麼使用 PySide & pandoc ?

    用 pandoc 的原因支援檔案格式的多樣性,我覺得這也是 Mou 的一個可惜之處。另外一個原因是: 兩個都有裝 XD 其實 PySide (QtWebKit) 和 haskell-platform 都不小,但是目前沒有改用別的套件的計畫。

  3. 為什麼不支援 Windows ?

    因為非常懶,而且我身邊也沒有可以測的 Windows 電腦 XD。如果上述的套件在 Windows 底下裝的起來,這隻程式應該能執行 (吧?)。相依的套件在 Windows 上都可以直接安裝就是了,有人要幫我測試我會很感激的 (笑)。

  4. 為什麼不能按兩下執行 ?

    因為我不知道怎麼打包一個 Python Program 在各種平台上 XD (尤其是 Mac OSX XD),有需要的話會加到 To Do List 裡面 XD。

  5. 為什麼不支援多檔開啟 ?

    因為懶 XD 如果真的有需要可以加到 To Do List

Version

  • [01.18.2012] - v0.1 - Written by Yen3