Posts

If I fail to put it in writing, it is likely to slip my memory in due time.

用手機拍攝日食到底可不可行

這次六月二十一日台灣正好有機會觀測到難得一見的日環食,我當然也是必不缺席,直接跑去嘉義的香湖公園餐與這次盛會。雖然我一直在腦中規劃這次該如何觀測,但實際要採購時還是太晚根本買不到巴德膜,最後只買到十個日食觀測眼鏡….慘…

而這麼小的日食觀測眼鏡也不太容易直接套在單眼相機鏡頭前,所以我最後就索性決定這次只使用我的手機拍攝,順便來實測看看用手機拍攝日食到底可不可行?

日環食時間序列,下排左一算是有拍到貝里珠。器材:Google Pixel 4 + 太陽濾鏡 日環食時間序列,下排左一算是有拍到貝里珠。器材:Google Pixel 4 + 太陽濾鏡
Read More...

Build a High Performance Computing Cluster on GCP

敝司長久以來都是自建 Cluster 來做為日常運算資源使用的,長時間一直都被擴充性、I/O 效能所卡住,若是卡在運算資源不夠光是採買新機器動輒要幾個月;被 share storage 的 I/O 效能卡住更慘,整個系統會慢到爆 job 都卡住…
所以我就在想有沒有辦法在雲上建立這種高效能運算叢集,想動態擴張幾台就幾台,再加上我相信無論是 AWS, GCP 等等大平台所提供的 NFS 服務應該都差不到哪裡去吧…?

Read More...

Develop a Plugin for Hexo

這陣子心血來潮花了點時間整理敝部落格的原始碼,整理的過程發現其實可以把一些小工具獨立成模組,一方面可以讓 codebase 變精簡,另一方面則是抽出來的模組也可以給其他 Hexo 使用者使用。
一開始我以為只是搬移一下程式、剪剪貼貼就可以完成,後來越做越不對勁…原來要做一個 Hexo Plugin 也是滿多地方需要注意的。
最後的成品叫做 hexo-tag-photozoom,有興趣歡迎用用看~

Read More...

Timing Attack in String Compare

程式語言通常在執行的時候,為了要最佳化執行的速度,常常會利用所謂的 Early Return。[1]
比如說條件式裡面 if (a && b) 這種判斷式,假設已經知道 A == false,那其實就可以不需要知道 b 的值,如此就可以直接忽略 b 而達到更快的知道這個判斷式是否為真[2]
同樣的這種作法其實會發生在很多地方,比方說像是比對兩個字串是否一樣:在很多程式語言中的實作其實就是遍歷兩個字串比對每一個字元,那只要過程中有一個字元不一樣那這兩個字串肯定就是不一樣,即可提早返回結果。

Read More...

從奧客玩家視角看遊戲防禦性設計

常常聽到某某遊戲外掛猖獗,作弊仔沒品、破壞遊戲樂趣等等行徑。身為一個好奇寶寶,總是很想知道其中奧秘,雖然我沒有厲害到開發出什麼外掛程式,但這幾年也陸續發現多款遊戲設計上的缺陷,成功用非正當的方式遊玩遊戲 (好含蓄…XD)。看著看著也發現其實這些遊戲的開發者理論上有辦法防止這類型的攻擊,所以只好用我不專業的見解寫下這篇文章。

對沒錯我就是奧客玩家!

本文提及的遊戲只代表曾經可以作弊,不代表現在或未來也可以。

Read More...