來源: http://crispian-jago.blogspot.de/2013/04/the-conspiracy-theory-flowchart-they.html

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

不熟悉浮點數的人最容易犯的錯誤之一,就是直接用 == 或 != 比較兩個浮點數。以最常見的 IEEE 754 浮點數來說,下面這樣的判斷式竟然不成立:

if (0.1 + 0.2 == 0.3)

原因在於以二進位表示的浮點數並沒有辦法精確儲存 0.1、0.2、0.3 這些十進位實數,只能以最接近的浮點數表示,和原本的數值有微小的誤差。三個各自帶有誤差的數字要碰巧讓整個等式成立,實在是相當困難的一件事。基於同樣的理由,在採用 IEEE 754 的環境下,以下程式片段陷入無窮迴圈也就沒什麼好奇怪的了:

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

前幾天剛好逛到幾篇說明 volatile 的文章,其中有關 volatile 在多執行緒環境的應用並不很完整,這裡做一點補充。

簡單來說,volatile 的作用僅僅是告訴編譯器不要用暫存器快取變數,每次使用都必須從資料的原始來源重新載入。

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

前言

之前說過想花點整理 boost 和 C++11 當中 Smart Ptr 使用上的小細節,本系列假設讀者對 Smart Ptr 有一定程度的認識,只做一些重點探討。

目前 smart pointer 的現況:

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

前陣子在程式人雜誌參與了關於編譯器書籍的討論,我想說自己都打了一堆字,不如整理一下放上來。

講到編譯器書籍,很多人都會想起 Aho、Sethi、Ullman 和 Lam 的勇者鬥惡龍,這本書深度和廣度兼俱,所以被許多課程採用為教科書。但本書二版在 amazon 評價偏低,可見不符合許多人的期待。我認為每個人取向不同,不必妄想一本傳說中的經典就可以涵蓋理論與實務全面知識,而且對於學習者來說容不容易吸收也很重要。

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

有點不好意思說,我一時衝動花了大約 1700 元買了這個閱讀架;諷刺的是上星期才為了一本一千初的書猶豫許久,最後放棄了。買閱讀架卻捨不得買書,夠諷刺吧。

我一直想找個對脊椎和眼睛比較友善的閱讀架,不過我發現市面上根本沒有堪用的產品。我的意思是,市面上確實有一些閱讀架,但我懷疑大部分設計者平時很少看厚重書籍,以至於許多產品大概只能放雜誌和兒童讀物。這並不難理解,畢竟在台灣只有小朋友才會讀書,大人會翻雜誌就很了不起了。在找不到可用產品的情況下,我以前會拿瓦楞紙箱自己拼湊來用,也曾經有一個概念設計,本想請一位機械工程師兼木工達人幫我實作出來,不過最後因為太懶而不了了之。

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

終於下定決心捨棄 Ubuntu 換到 Linux Mint 了,我承認 Unity 是一個很重要的推力...

兩年前 Ubuntu 開始搭 Unity 的時候我也強迫自己用了幾個星期,但是始終無法習慣。事實上那個時候的 Unity 連基本的可用性都有問題,常常莫名其妙卡住,根本還沒到達 production 的等級,所以我一直切回傳統 GNOME 使用。

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

非常精美的雙翼飛機,原創為 Robert Lang,雖然不像 Robert Lang 其他作品那麼細膩,不過我很喜這個造型。

忘掉是多久以前摺的,機翼銜接的地方沒有處理得很好。我放棄摺紙很久了,而且每次搬家都會丟掉不少東西,現在手邊只剩下幾件非丟品... 希望至少留個影像。

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

剛換智慧型手機,拿幾年前的作品試拍看看...

這個作品看起來很複雜,其實超級簡單,我國小的時候旁觀別人摺一遍就學會了。接著其他同學拿我的成品去逆向工程一番,結果一堆人也都學會了。後來遇到有人想學摺紙,我都推薦用這個孔雀練基本功。

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

http://v.youku.com/v_show/id_XMjcwODMyNTg4.html

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

最近有點想將一些未發表或者發表在別處的文章整理到這裡來,不過想歸想,我的行動力一向很低,所以做多少算多少吧。目前只完成了《淺釋 Unicode》那篇,結果重寫了八成以上...

其中一部分是之前發表在「超自然揭祕」的文章,因為該社團被關掉,我想把自己寫的東西放在這裡也好。另外有一些是自己做的筆記,內容比較雜亂,這類文章通常要花上一番功夫才比較好意思放上來。我總覺得要放在網路上分享就應該要維持一定的品質,否則還是放在自己硬碟做為備忘就好了。我大概看了一下,手邊比較完整的是關於 smart pointers 的系列。不過我之前是針對 Boost 而寫,現在想改為 C++11,如此一來就必須重新確認相關細節。C++11 未收錄的 intrusive_ptr 反而比較沒有顧忌,或許會列為優先整理的對象吧。

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

反射式 LCD 改為黑底白字

連結:http://tw.myblog.yahoo.com/ncc1701-x/article?mid=217&prev=-1&next=212

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