我是星期天才讀到這個消息的,本來想寫點什麼,但卻又不知道要寫些什麼。洪老師長期關注這類議題,我想他的文章對這件事的分析比較深入。

http://ckhung0.blogspot.tw/2013/01/aaron-swartz.html

novus 發表在 痞客邦 留言(1) 人氣()

(這只是一篇個人記事,並非影評,也不會洩漏劇情。)

我不能算是真正的托爾金迷,但對於魔戒系列電影有種特殊感覺。其實《哈比人歷險記》是我唯一讀過的托爾金小說,當年在《魔戒I》上映的前夕,一位死黨塞了本《哈比人歷險記》給我,基本上我對小說來者不拒,所以一口氣整本看完。

novus 發表在 痞客邦 留言(0) 人氣()

程式碼用什麼格式儲存?還用問,當然是「純文字」囉。其實這個問題並不簡單,所謂的「純文字」可能是眾多編碼當中的一種:

  • 「本地」使用的編碼:例如 Big5、GBK、Shift-JIS、ISO-8859-1,2,... 等等。Windows 下的編輯器常以此為預設。
  • UTF-8:一些 Linux 的編輯器可能以此為預設。
  • UTF-16、UTF32:這類編碼方式非常不適合用來儲存程式碼,這裡不討論。

對於只用 ASCII 字集寫程式的人來說,用什麼編碼儲存程式碼應該都沒有差別。但有很多人會在註解和 string literal 裡面放其他語言的字集,這就是個問題。別誤會,我並不是說原始碼當中不能出現非 ASCII 字符,而是說很多人是在欠缺考慮的情形下寫出這種程式碼。

novus 發表在 痞客邦 留言(2) 人氣()

前言

(未定稿,近期仍可能頻繁修改,歡迎提出各種建議,不論是技術方面或是文章描述方面)

在即將邁入 2013 年的今日、Unicode 已推出 6.2 版,Unicode 好像已經屬於沒什麼好介紹的基本常識了吧?其實,這篇文章某種程度上是為了「訂正」而寫的。如果我沒記錯的話,嗯,本文的第一個版本是在七年前寫的。說來挺不好意思的是,之前的版本在技術上從來就沒有完全正確過,雖然都不是很嚴重的錯誤。還好早期版本所發表的地方都相對短命,應該沒有誤導到太多人。

novus 發表在 痞客邦 留言(7) 人氣()

剛剛忽然察覺今天是  Ada Byron 的生日。Happy birthday to Ada!

說起這個,前陣子一時興起想研究一下 Jacquard loom 的運作原理,畢竟沒有 Jacquard loom 就沒有後來可程式化的的分析機。結果在網路上找到一些古書,發現實在不太好懂,所以就算了。

novus 發表在 痞客邦 留言(0) 人氣()

「C++ 是 context-free 嗎?」這是我在很長一段時間裡,分別在 stackoverflow.com 等許多地方都看過的問題。類似的問題還有其他變形,有時主角換成別的程式語言,或者變成「...是否為 context-sensitive」等等。

我發覺這類問題似乎具有某種雞同鴨講和鬼打牆的傾向,有些參與者沒有先釐清概念、用詞也不統一,以致於耗費大量篇幅卻難以觸及重點,反而顯示出許多人對於形式語言充滿誤解。我甚至看過一些人拿某某程式語言不是 context-free 做為不喜歡某某語言的理由,但是他很明顯沒有搞懂 context-free 的意義。

novus 發表在 痞客邦 留言(0) 人氣()

這是一位網友的問題,原問題見http://www.ptt.cc/bbs/C_and_CPP/M.1351841869.A.BAF.html。本部落格之前也稍微碰過這個主題,不過之前的重點在於腦筋急轉彎式的模擬 __VA_ARGS__ 功能,實用性是另一回事。

在開始討論各種作法可行性之前,這裡先宣導一項原則:應該要讓正常輸出與非常態輸出分流,更精確的說,給使用者看的輸出應該要和給開發者看的輸出分流。例如使用 stdout 作為正常輸出時,就不應該也用 stdout 作為非常態輸出,而是改用 stderr 或檔案。實戰中非常態輸出的 sink 很多樣,這裡就不多說了。即使不想多花心力去設計非常態輸出機制,使用基本的 stderr 並不會比用 stdout 多費功夫,好處卻是立即可見,可謂有利而無害。

novus 發表在 痞客邦 留言(2) 人氣()

最近看到有人出了一個考初學者的問題,於是我改了一個複雜化的版本,應該蠻適合拿來鑑別初學者的程度。假設使用的語言為 C++,下面這個 expression 有幾種可能性?

   (f(a) && f(b))

任何一個有把教科書第一章念完的人差不多都會回答,執行順序類似於:

novus 發表在 痞客邦 留言(0) 人氣()

雖然說自己有笨到,不過還是很幹的事件.....

novus 發表在 痞客邦 留言(2) 人氣()

有人轉這個給我看
http://www.youtube.com/watch?v=q33ZpVvX-nk

novus 發表在 痞客邦 留言(0) 人氣()

這裡介紹一種方法,可從連續出現的數字序列,回推線性同餘函數的相關參數。先聲明一下,密碼學、亂數、數論並不是我的專長,只是最近看到有人問,碰巧我讀過而已,如果內容有錯漏歡迎指正。這裡介紹的只是通俗易記的做法,可能不是目前最好的方法。

線性同餘法是目前常見的偽亂數產生法之一,可以寫成:

novus 發表在 痞客邦 留言(2) 人氣()

記得這是某位朋友在一年多以前遇到的問題。當時他需要分析程式中各個 branch 和 statement 的執行統計資料,那時候我跟他建議 gcov,但沒多久他就跟我抱怨說 gcov 在 Mac OS X 上無法使用。因為這不是我關心的問題,而且我手邊沒有任何 Mac 系列的開發環境,所以就沒有繼續深究。

今天我們又談到同樣的話題,強者我友早就解決這個問題,他眼也不眨一下就直接在編譯器內部增加一個 compile pass,使編譯器自動在被編譯程式的每個 basic block 植入計數程式碼,最後再寫個分析程式處理統計資料。這差不多是 gcov 的工作方式,只是自己做的比 gcov 更直接符合需求。

novus 發表在 痞客邦 留言(2) 人氣()