
閱畢日期:2014/2/23
蠻有意思的輕小說,主要是講一個菜鳥進入 IT 產業的故事,裏面的角色設定很有趣,超強的行政助理,像國中生的前輩兼主管,軟軟的部門主管,亂接業務的老闆,說不真實,其實也不會不真實。日本的系統工程師,在台灣應該叫作 IT 或 MIS 才對,或許這樣翻譯會比較好。菜鳥糊裡糊塗的被騙進了一家很操的公司,什麼都不會就被要求學會設置 Cisco 路由器,然後花一個晚上發狠把主管的要求搞懂,隔天設定好,這部份很能讓身為工程師的我回想起解決問題的那種爽快感。第一集的重點大概就是這樣,看完有順便去 Google 的話,大概就俱備了基本的網路知識,像是 IP/Mask、路由器/Switch、NAT、Ping 等的網路概念。
上網搜索時,發現這系列小說出了五集,我在想,等第二集看完,大概就會停止繼續看了吧。
elleryq 發表在 痞客邦 留言(0) 人氣(9)

閱畢日期:2014/2/5
我誤會了,以為裡面會透露不少 iPhone 使用上的訣竅,但其實只是很單純的 iPhone 使用手冊,missing 的意思應該是 Apple 沒提供這麼詳細的使用手冊的意思吧。
我看的是更新到 iOS 7 以後的版本,對於新功能的說明還蠻詳細的。作者對於耗電這件事情還蠻在意的,前前後後我就看到兩次作者提到這件事情。這本書就在參考目錄選擇想看重點的情況下,走馬看花的看完了。
elleryq 發表在 痞客邦 留言(0) 人氣(10)
閱畢日期:2014/2/2
跟新北市圖書館借來的書。前幾年就有在 Google 黑板報 看到這系列的文章,只是不知道這些文章後來有集結成書,而且我也沒全部拜讀完。
elleryq 發表在 痞客邦 留言(0) 人氣(7)

閱畢日期:2014/1/29
市面上難得的介紹 PySide 的書。PySide 簡單說就是 Python + QT ,市面上有另外一個專案,叫作 PyQT。PyQT 比較早出現,原本 QT 是不願意再另行開發 Python binding 的,但因為授權談不攏 (PyQT 開發團隊只願意使用 GPL ),才自己跳出來做。但是使用上其實差不多,甚至 PyQT 的範例拿來只要改一下 import 模組的名字,就可以執行了。
書的內容不多,前面幾章就介紹基礎的使用,像是介紹、使用基礎元件等等的。第六章是介紹跟資料庫存取相關的部份,有使用過 Microsoft .Net 的朋友應該知道 .Net 的 Data binding 相當好用,我本來以為 QT/PySide 是沒有這部份的 API 的,看了才知道 QT 有提供 Model/DataMapper 之類的類別,也可以很方便的存取資料庫。這本書談的都是蠻基礎的,比較沒有進階的應用,例如我想知道如果跟 ORM 之類的 module 合作的話,Model 這邊可以怎麼做,這部份都沒有提到,看來只能自己再去看 QT 文件來擴充了。
elleryq 發表在 痞客邦 留言(0) 人氣(168)

這是我在 Google play books 上買的電子書,是由潑墨書房上架的。
會想買來翻一翻,是因為之前有在作者部落格上閱讀了不少文章,文章蠻有意思的,提到很多之前臺灣的事情。這些文章的來源都是新聞剪報跟作者自己去考證的結果,從這些文章裡可以瞭解很多當時臺灣的事情。這一本主要講的是跟軍隊有關的事情,國軍、美軍都包含在內。比較讓我驚訝的是林毅夫的事情,這就發生在前幾年而已,但我卻一點印象也沒有,可見我之前真的對新聞是毫不關心。
elleryq 發表在 痞客邦 留言(0) 人氣(22)

閱畢日期:2013/12/31
從圖書館借來第二天其實就已經翻完了,後來就放到快到期前一天才還書。
這本書主要是圍繞在 Evernote 的使用上,不過我看的還是作者怎麼去發掘跟使用 Evernote。很多好的工具都是要去想怎麼用,這點還蠻重要的,知道一個新的用法,可以節省很多時間。目前來說,我真的也不太會用,一堆資料丟在 Evernote 裡,只有少數幾篇會不時的整理。往往都是一開始有個想法,就開始找資料,開 Note 往裏面丟,等到已經弄的差不多了,Note 大概也沒繼續用了。是說之後會想起來翻一下,但用到機率畢竟不高。作者是建議說碰到這種情況就要整理成 blog 文然後刪除掉,或許未來我該朝這方向前進然後要多想怎麼用,才能把這工具發揮的更好。
elleryq 發表在 痞客邦 留言(0) 人氣(47)
13.1 fileinput: 用法很簡單,就 fileinput.input(),他會傳回一個 file descriptor,操作就跟一般的檔案一樣。使用 fileinput 的好處是他會自動處理參數有多檔案以及 stdin 的情況。這個模組 2.x 跟 3.x 都有,但 2.x 還不支援 context manager,3.x 才支援,因此 2.x 裡沒辦法用 with。fileinput 模組本身的說明跟例子就很清楚,更詳細的用法可以看 PyMOTW - fileinput – Process lines from input streams
13.2 raise SystemExit(): 這還蠻好用的,你可以帶訊息 raise SystemExit("failed."),也可以帶數字 raise SystemExit(10)。帶字串的話,會自動印出錯誤訊息,然後離開程式,program return value 會是 1。帶數字的話,一樣也是離開,但沒有訊息,program return value 就是指定的數字。根據 Built-in Exceptions 裡的說明,呼叫 sys.exit() 就會丟出這個例外,所以看起來直接 raise 會比 sys.exit() 稍稍快一點點。
13.3 介紹 argparse 模組,這是 python 用來處理參數的模組,在網路上還可以看到 optparse,但現在已經建議都改用 argparse 了。
elleryq 發表在 痞客邦 留言(0) 人氣(26)
2.16 介紹 textwrap,就是一個很長很長的字串,然後想要整體寬度固定,就可以用這個模組。大致上的效果就像是在記事本裡輸入很長的字串,然後選「自動換行」的樣子。除了可以指定寬度外,也可以指定縮排。
2.17 處理 HTML/XML,HTML/XML 裡有些字是需要特別處理才能顯示出來的,例如 < > & ,Python 可以使用 html 模組裡的 escape() 將這些字轉成 < > & (html 在 Python 3 裡才有)。 在 Python 2 裡,只能用 cgi 模組裡的 escape() 來達成。有特殊字元的話,則可以使用字串的 encode 函式,例如 s.encode('ascii', errors="xmlcharrefreplace")。轉回來在 Python 3 可以用 html.parser 的 HTMLParser.unescape() 來做,Python 2 裡則是 HTMLParser 模組。
2.18 用 re 做一個小的 token 切割器,這個還蠻神奇的,大致就有點像是 PLY 的前段工作,餵給 re 多個 pattern 編譯以後,在進行比對時,他會告知符合哪個 pattern ,那就可以接著做後續處理。
2.19 這個是接續 2.18 ,做 parser,結果是可以弄出 AST tree。我沒細看,之後要找時間仔細看這段。
2.20 在 byte string 上做處理,基本上用法跟一般字串的用法是一樣的。
elleryq 發表在 痞客邦 留言(0) 人氣(13)
2.11 strip()/lstrip()/rstrip() 清除左右/左邊/右邊的無謂空白字元,空白字元包括 \t, ' ', \n 。
2.12 多條件的替換字串,一般要替換字串是用 replace,可是一次只能替換一種,多個的時候,可以用 translate() 來做替換。使用 translate 時,要建立一個 dict,key 就是要替換掉的字串,value 則是新字串。同樣可以搭配前面提到的 unicodedata 來使用。
2.13 字串對齊:ljust()/rjust()/center() ;也可以用 format(),format() 的第二個參數帶 > ^ < 就可以達到靠右、置中、靠左的效果。
2.14 字串串接:就用 + 或是 join 或是 format。這邊提到一個有趣的用法: s = "hello" "world" ,這樣也可以。字串輸出也不一定要先串到一起,搭配 print 函式,就可以:print(a, b, c, sep=':')
2.15 字串裡直接使用變數名稱 (interpolating):這個也是用 format ,例如 "Hello! {name}".format(name="John") 。這裡有額外提到一個 vars(),vars 可以把一個物件實體的屬性名稱跟值轉換為 dict
elleryq 發表在 痞客邦 留言(0) 人氣(70)
2.6 搜索與取代忽略大小寫,這也是利用 re 模組,在使用 sub/findall 的時候可以加上 flags=re.IGNORECASE ,這樣就可以忽略大小寫。
2.7 只想找到符合 pattern 的最短字串,一般來說,regular expression 是貪婪 (greedy) 的,他會試著去找最符合 pattern 的最長字串,因此作者舉了雙引號的例子,在文字裡有兩個被雙引號包起來的字串時,如 "hello" is a "word",re 得到的結果會是 hello" is a "word 。這時候可以用 ? 避掉,原本是 r'\"(.*)\"',可以改為 r'\"(.*?)\"' 。
2.8 要 match 多行的情況,例如 C 註解跨了多行 /* ... */ ,就可以加 \n,例如 r'/\*((?:.|\n)*?)\*/'
2.9 Unicode 問題,有些字元可以用多種表示方式,可是又需要視為一樣,這時候要利用 unicodedata 模組裡的 normalize()。到時候有用到再去查這部分好了。
2.10 re 有支援 unicode,pattern 字串裡用 \u 即可,用法其實跟一般字元一樣。
elleryq 發表在 痞客邦 留言(0) 人氣(14)