2014年9月15日

[茶] 關於泡茶的三兩事

泡茶說來簡單,不過也可以很麻煩,因為其實就像泡咖啡,水溫以及水的流速等等會影響茶 / 咖啡在味道的萃取上有不同的影響,所以要泡一杯茶 / 咖啡很簡單,不過要泡的好,學問就很大。

2014年9月4日

[隨筆] puyo 的由來

之前跟朋友去吃飯時,因為混雜了同屆、學弟妹跟外校等等不同區塊的人,有些人比較獨特的綽號就會被問是怎麼來的,比方說明明是男的,綽號卻叫 rose 這樣 XD 不過這次主角不是他,是另一位被叫做 puyo 的人。相較於 rose 的來由是屬於當事人的黑歷史,不適合公開拿出來講,puyo 的來由是個適合闔家觀賞又富有遊戲性、動感與觸感的貼切形容。

2014年8月6日

[C++] Efficient Minimum Spanning Tree Construction without Delaunay Triangulation

這 title 是來自一篇 paper [1],主要是探討如何在 O(n log n) 的時間內找出一顆 minimum spanning tree (MST)。等等,找 MST 這問題不是已經有許多方法可以用 greedy 的技巧在 O(n log n) 做到了嗎? 那這篇發表日期還是在 2001 年的 paper 是有何貢獻呢?原因是這樣的:傳統的 MST 演算法跟這篇要討論的問題其實有一點不同。不同的地方在於傳統 MST 演算法是給一個 undirected graph,要在這 graph 上找一顆 MST;這篇要討論的是給一堆二維座標平面上的點,任兩點間都可以用一條線連起來,要你找出一種連法使得所有的點都被連起來,並且線段總長是最短的。

這個問題其實也有一段時間了,正式的名稱是 Euclidean Minimum Spanning Tree (EMST) [2]。這問題最簡單的做法就是把每個座標點都當成 vertex,先建出一個 complete graph,edge 上的 weight 就是兩點間距離,然後在這個 complete graph 上找 MST 就是答案了。想當然爾,建 complete graph 的時間是 O(n^2),所以這做法最花時間的地方是建 graph。因此 EMST 的演算法要討論的重點不是 MST,而是怎樣建 graph 最好。

2014年8月3日

[C++] template value type extraction

各位如果翻開 STL container 的 document,應該會看到有一部分是寫 member type 的 document。其中應該會看到這樣的描述:
value_type : The first template parameter (T)
定義這種 type 其實用途不是為了 container 本身,而是為了使用這個 container 的 user,特別是使用這個 container 的地方是在 template class / function 時,定義這個 type 尤為重要,細節可以參考我之前寫的這篇。然而 C++ template 雖然可以讓程式撰寫上有更好的泛用性,但是因為需要做型態推導上,在使用上只要推導過程中會有疑義都會導致編譯失敗,也因此需要多做些手腳以便能夠順利編譯。這次要講的就是上次那篇 type function 的延伸

2014年7月25日

[雜記] 下集預告:C++ name mangling & overloading resolution

一段時間沒 PO 文,本來還在思考下次要選 C++ 的什麼主題,今天有個學弟跑來問為什麼程式編譯後出現 "undefined referenced to ... ",然後不知道要怎麼解決。研究一段時間後發現是 C++ name mangling (名稱修飾,C++ 處理 function overloading 的技巧) 導致 linker 在 link 時找不到對應函式。正好是個不錯可以好好細講的主題,而且還可以扯上 C++ 的 overloading resolution (重載決議,也就是 C++ 如何決定一個 function call 有多個 function 可以選擇時,到底該忽叫哪個 function)。不過最近有不少事情要做,就請讓我繼續拖稿吧XD 之後看到這篇應該會記得要來寫的XD

2014年7月15日

[茶] 初探龍井 - 三峽之旅

其實事情的起頭是這樣子的:前陣子卡路里在哀怨找不到可以當水喝 (不過其實他的上限是一斤 $1500,這其實還滿好找的)、適合冷泡的綠茶。不過臺灣最多的其實是烏龍茶,就算是高山茶也多半走烏龍茶的風格。臺灣的綠茶我只想得到三峽的碧螺春,在稍做研究後發現三峽那邊的三大茶是:碧螺春、龍井與蜜香紅茶,其中碧螺春與龍井都屬於綠茶,而蜜香紅茶似乎是近幾年有點被吵紅的,因此最後就決定到三峽一趟,去親自嘗試這三種主要茶葉。

2014年6月24日

[筆記] MathJax - 好用的 blogger 數學編輯器

我在寫這篇文章因為需要撰寫大量的數學式子,不過因為 blogger 沒有提供這種功能,所以一開始的數學式子只能用很醜的方式來表達。但就在發佈文章後沒多久,float 大神就推薦了MathJax給我,是個可以在 HTML 上撰寫數學式子,而且不需要額外安裝軟體,只要 blowser 有支援 javascript 即可。

2014年6月23日

[程式] Gray Code Generation

來寫點昨天讀到 TAOCP (The Art of Computer Programming) 介紹 Gray Code (中譯好像是格雷碼) 的一點心得筆記 (花了一小時讀不到 5 頁...)。

2014年6月14日

[遊記] 銀河洞越嶺步道

銀河洞越嶺登山步道是條由新店通往貓空的步道,與上次去的樟湖、樟樹步道同屬二格山系步道。步道中途有個瀑布名為 "銀河洞瀑布",同時瀑布附近有個內凹的山壁,其名為 "銀河洞",步道之名也由此而來。

2014年6月3日

[隨筆] 堅持

(為什麼我的新注音的自動選字是 "煎匙".......)

最近挺常胡思亂想的,想東,想西,想到以前的種種,自己因為什麼樣的選擇導致了什麼樣的結果。從以前就覺得自己的龜毛癖與強迫症時不時會發作,結果好像就因此錯過了許多機會,而且都是在錯失機會後才發覺自己為什麼會有一些無謂的堅持。