- Jun 13 Thu 2013 21:46
一張流程圖教你解讀陰謀論
- Jun 08 Sat 2013 01:40
Back to Basic: 談浮點數的比較
不熟悉浮點數的人最容易犯的錯誤之一,就是直接用 == 或 != 比較兩個浮點數。以最常見的 IEEE 754 浮點數來說,下面這樣的判斷式竟然不成立:
if (0.1 + 0.2 == 0.3)
原因在於以二進位表示的浮點數並沒有辦法精確儲存 0.1、0.2、0.3 這些十進位實數,只能以最接近的浮點數表示,和原本的數值有微小的誤差。三個各自帶有誤差的數字要碰巧讓整個等式成立,實在是相當困難的一件事。基於同樣的理由,在採用 IEEE 754 的環境下,以下程式片段陷入無窮迴圈也就沒什麼好奇怪的了:
- May 27 Mon 2013 20:00
volatile 是不夠的
前幾天剛好逛到幾篇說明 volatile 的文章,其中有關 volatile 在多執行緒環境的應用並不很完整,這裡做一點補充。
簡單來說,volatile 的作用僅僅是告訴編譯器不要用暫存器快取變數,每次使用都必須從資料的原始來源重新載入。
- May 18 Sat 2013 00:37
Smart Ptr 一點訣 (1):使用 intrusive_ptr
前言
之前說過想花點整理 boost 和 C++11 當中 Smart Ptr 使用上的小細節,本系列假設讀者對 Smart Ptr 有一定程度的認識,只做一些重點探討。
目前 smart pointer 的現況:
- May 09 Thu 2013 20:52
幾本編譯技術入門書
前陣子在程式人雜誌參與了關於編譯器書籍的討論,我想說自己都打了一堆字,不如整理一下放上來。
講到編譯器書籍,很多人都會想起 Aho、Sethi、Ullman 和 Lam 的勇者鬥惡龍,這本書深度和廣度兼俱,所以被許多課程採用為教科書。但本書二版在 amazon 評價偏低,可見不符合許多人的期待。我認為每個人取向不同,不必妄想一本傳說中的經典就可以涵蓋理論與實務全面知識,而且對於學習者來說容不容易吸收也很重要。
- Apr 20 Sat 2013 17:04
書蟲的奢侈品
有點不好意思說,我一時衝動花了大約 1700 元買了這個閱讀架;諷刺的是上星期才為了一本一千初的書猶豫許久,最後放棄了。買閱讀架卻捨不得買書,夠諷刺吧。
我一直想找個對脊椎和眼睛比較友善的閱讀架,不過我發現市面上根本沒有堪用的產品。我的意思是,市面上確實有一些閱讀架,但我懷疑大部分設計者平時很少看厚重書籍,以至於許多產品大概只能放雜誌和兒童讀物。這並不難理解,畢竟在台灣只有小朋友才會讀書,大人會翻雜誌就很了不起了。在找不到可用產品的情況下,我以前會拿瓦楞紙箱自己拼湊來用,也曾經有一個概念設計,本想請一位機械工程師兼木工達人幫我實作出來,不過最後因為太懶而不了了之。
- Mar 09 Sat 2013 15:34
開始用 Linux Mint
終於下定決心捨棄 Ubuntu 換到 Linux Mint 了,我承認 Unity 是一個很重要的推力...
兩年前 Ubuntu 開始搭 Unity 的時候我也強迫自己用了幾個星期,但是始終無法習慣。事實上那個時候的 Unity 連基本的可用性都有問題,常常莫名其妙卡住,根本還沒到達 production 的等級,所以我一直切回傳統 GNOME 使用。
- Mar 08 Fri 2013 23:55
雙翼飛機摺紙
非常精美的雙翼飛機,原創為 Robert Lang,雖然不像 Robert Lang 其他作品那麼細膩,不過我很喜這個造型。
忘掉是多久以前摺的,機翼銜接的地方沒有處理得很好。我放棄摺紙很久了,而且每次搬家都會丟掉不少東西,現在手邊只剩下幾件非丟品... 希望至少留個影像。
- Feb 25 Mon 2013 00:30
孔雀摺紙變化型
剛換智慧型手機,拿幾年前的作品試拍看看...
這個作品看起來很複雜,其實超級簡單,我國小的時候旁觀別人摺一遍就學會了。接著其他同學拿我的成品去逆向工程一番,結果一堆人也都學會了。後來遇到有人想學摺紙,我都推薦用這個孔雀練基本功。
- Feb 09 Sat 2013 00:02
對岸少年翻唱志明與春嬌
- Feb 03 Sun 2013 17:08
舊文整理計畫+對排版語言的心得
最近有點想將一些未發表或者發表在別處的文章整理到這裡來,不過想歸想,我的行動力一向很低,所以做多少算多少吧。目前只完成了《淺釋 Unicode》那篇,結果重寫了八成以上...
其中一部分是之前發表在「超自然揭祕」的文章,因為該社團被關掉,我想把自己寫的東西放在這裡也好。另外有一些是自己做的筆記,內容比較雜亂,這類文章通常要花上一番功夫才比較好意思放上來。我總覺得要放在網路上分享就應該要維持一定的品質,否則還是放在自己硬碟做為備忘就好了。我大概看了一下,手邊比較完整的是關於 smart pointers 的系列。不過我之前是針對 Boost 而寫,現在想改為 C++11,如此一來就必須重新確認相關細節。C++11 未收錄的 intrusive_ptr 反而比較沒有顧忌,或許會列為優先整理的對象吧。
- Jan 21 Mon 2013 01:23
摘要與雜記