# SSARCandy's Blog > Nothing special, just a blog for a nerdy software engineer. I write about programming, trashtalk, and other things that interest me. This file lists Markdown versions of every page for AI/LLM consumption. ## Posts - [股東會電子投票自動化小幫手](https://ssarcandy.tw/2026/04/18/twse-auto-evoting/index.md): 自從去年開始,我們全家就展開了所謂的「大零股計畫」,為的就是把所有上市櫃公司有發放的紀念品給領好領滿。 不過台灣的零股領紀念品規則實在是有夠多細節:首先你必須要參加線上股東會,並且完成電子投票;最後還要親自到場去領實體紀念品…。 這些繁瑣的… - [Run Unix-like Server on Android](https://ssarcandy.tw/2023/04/09/run-unix-server-on-android/index.md): 手機的硬體作為伺服器其實相當夠用。 - [把舊的 Pixel 改造成無限照片上傳機](https://ssarcandy.tw/2023/04/08/make-old-pixel-as-photo-uploader/index.md): 自從 Google Photos 養套殺,取消高畫質無限上傳以後 [1] ,對於我這種習慣使用 Google Photos 的人無疑是重大悲劇,空間用完指日可待。目前 Google Photos 的高畫質無限免費上傳是專門給 Pixel 2… - [Optimizing C++ Compile Time](https://ssarcandy.tw/2022/06/11/optimizing-compile-time/index.md): 編譯是靜態語言不可避免的步驟。對於開發者而言,編譯是個又愛又恨的東西,好處是他可以幫助在編譯時期找出部分的錯誤又可以幫忙最佳化,但是壞處則是編譯要時間,當專案越來越大時,小小改個檔案可能就要花數分鐘去等編譯。 source: https:/… - [Share Storage Comparison](https://ssarcandy.tw/2021/05/10/share-storage-comparison/index.md): Share storage,諸如家用 NAS 或工作站常有的網路硬碟(NFS),是一個很方便又隨處可見的一種存儲空間,方便的點在於可以從不同機器存取或修改同樣的資料、避免需要維護重複的東西在不同的機器上;常見的使用情境像是會將 /home… - [Setup CouchDB Cluster using Docker Swarm](https://ssarcandy.tw/2021/01/25/setup-couchdb-using-docker-swarm/index.md): CouchDB,一個主打安裝好之後就可以直接有原生 Http API 進行 CRUD (新增、讀取、修改、刪除) 的 NoSQL 資料庫,對於較簡單的應用程式甚至就直接免去後端的開發成本,直接對接 CouchDB Http API 介面即可… - [用手機拍攝日食到底可不可行](https://ssarcandy.tw/2020/06/28/Photographing-Solar-Eclipse-with-only-a-Smartphone/index.md): 這次六月二十一日台灣正好有機會觀測到難得一見的日環食,我當然也是必不缺席,直接跑去嘉義的香湖公園餐與這次盛會。雖然我一直在腦中規劃這次該如何觀測,但實際要採購時還是太晚根本買不到巴德膜,最後只買到十個日食觀測眼鏡….慘… 而這麼小的日食觀測… - [Build a High Performance Computing Cluster on GCP](https://ssarcandy.tw/2020/04/21/Build-a-High-Performance-Computing-Cluster-on-GCP/index.md): 敝司長久以來都是自建 Cluster 來做為日常運算資源使用的,長時間一直都被擴充性、I/O 效能所卡住,若是卡在運算資源不夠光是採買新機器動輒要幾個月;被 share storage 的 I/O 效能卡住更慘,整個系統… - [Develop a Plugin for Hexo](https://ssarcandy.tw/2020/02/09/develop-hexo-plugin/index.md): 這陣子心血來潮花了點時間整理敝部落格的原始碼,整理的過程發現其實可以把一些小工具獨立成模組,一方面可以讓 codebase 變精簡,另一方面則是抽出來的模組也可以給其他 Hexo 使用者使用。 一開始我以為只是搬移一下程式、剪剪貼貼就可以完… - [Timing Attack in String Compare](https://ssarcandy.tw/2020/01/29/timing-attack/index.md): 程式語言通常在執行的時候,為了要最佳化執行的速度,常常會利用所謂的 Early Return。 [1] 比如說條件式裡面 if (a && b) 這種判斷式,假設已經知道 A == false,那其實就可以不需要知道 b 的… - [從奧客玩家視角看遊戲防禦性設計](https://ssarcandy.tw/2019/10/02/game-design-from-perspective-of-hacker/index.md): 常常聽到某某遊戲外掛猖獗,作弊仔沒品、破壞遊戲樂趣等等行徑。身為一個好奇寶寶,總是很想知道其中奧秘,雖然我沒有厲害到開發出什麼外掛程式,但這幾年也陸續發現多款遊戲設計上的缺陷,成功用非正當的方式遊玩遊戲 (好含蓄…XD)。看著看著也發現其實… - [Ways to Access Internal Network](https://ssarcandy.tw/2019/08/11/Ways-to-Access-Internal-Network/index.md): 一般的公司或者實驗室都會隔離內部資源,只留一個統一的對外出口來達到比較高的安全性以及讓系統管理者較好控管。但是較高的安全性總是會帶來不便,這種隔離內部資源的架構導致我們無法直接存取內部資源,要透過一些拐彎抹角的方式來存取。 - [Monitoring: from Handcraft to Prometheus](https://ssarcandy.tw/2019/06/10/Monitoring-from-Handcraft-to-Prometheus/index.md): 身為一個系統管理者,時常要花時間確保系統正常運行,這時一個好的監控系統就很重要,將所有必要的資訊統整在一個畫面上一目瞭然,既能節省時間,當有問題時又能快速找出問題所在,好處多多。 - [Setup Slurm Cluster](https://ssarcandy.tw/2019/03/16/Setup-Slurm-Cluster/index.md): Slurm 是一個專門拿來做分散式平行運算的平台,已被各式超級運算電腦群集採用 [1] 。跟 Hadoop 其實有點像,但是我個人感覺是 Slurm 好用太多,更穩定更快速,而且不用會 Java…XD 最近剛好有機會需要建立以及管理一個 S… - [Mac 維修小記](https://ssarcandy.tw/2018/08/17/mbpr2015-repair/index.md): 前陣子我的 Macbook pro 13” (2015) 出現奇怪的問題,突然一直跳出訊息叫我連接藍芽滑鼠,內建觸控板跟鍵盤完全失靈,看著電腦登入畫面我卻什麼都做不了,超級崩潰… 後來稍微多重開機試幾次發現這種狀況有時候會消失,查一下網路發… - [Use PyTorch to solve FizzBuzz](https://ssarcandy.tw/2018/01/14/use-pytorch-to-solve-fizzbuzz/index.md): FizzBuzz 是一個常見的程式考題,題目很簡單,就是給一個整數,如果可以被 15 整除就回傳 FizzBuzz;可以被 3 整除就回傳 Fizz;被 5 整除就回傳 Buzz;都不能整除就回傳原本的數字。 用 Python 可以簡單幾行… - [搞懂 JavaScript 原型鍊](https://ssarcandy.tw/2017/12/06/javascript-prototype-chain/index.md): 最近突然看到許多關於 js 原型鍊的介紹,這東西我從來沒搞懂過也沒認真想要搞懂過 XD 說真的好像不懂也不會影響甚麼,畢竟實戰上基本用不到這些比較底層的東西… 但是當作是邊緣冷知識來看看也是挺不錯的~ - [Deep CORAL: Correlation Alignment for Deep Domain Adaptation](https://ssarcandy.tw/2017/10/31/deep-coral/index.md): 雖然現在可以透過 Deep neural networks 來訓練出非常強大的能力,但卻難以學到比較通用的知識,通常最後訓練出的 model 會只適合處理類似於 training data 的資料。 Domain adaption 是目前在… - [Using PyTorch in Windows 10](https://ssarcandy.tw/2017/09/27/using-pytorch-in-windows/index.md): 最近開始在使用 PyTorch 寫些東東,他支援 MacOS/Linux 使用,唯獨 Windows 不支援… 所以我一直都是使用 Mac 寫相關的東西。 但是我的桌機都是 Windows,在可以用桌機的環境下卻必須使用小小的 M… - [Multi-server GPU status monitor](https://ssarcandy.tw/2017/08/25/multi-server-gpu-status-monitor/index.md): 隨著實驗室 GPU 資源日益增加, 有越來越多人在抱怨搶不到 GPU、不知道哪台有空的 GPU 、有人佔用太多 GPU 資源等等問題, 這些問題似乎跟沒有一個方法可以「一目瞭然的知道所有 GPU 的狀況」有關。 對,就像是 cml-stat… - [接案三兩事](https://ssarcandy.tw/2017/07/21/about-taking-case/index.md): 最近終於結束了一個搞了很久的 case 。 我其實沒什麼接案經驗,這次也是剛好算是學校單位找我做個活動的宣傳網站,我心想既然是學校的應該也不太容易被騙,就來試試看所謂的接案。 在這次經驗中其實也是學到不少東西、踩了很多雷,大部份都是因為沒什… - [Coherent Line Drawing](https://ssarcandy.tw/2017/06/25/Coherent-Line-Drawing/index.md): 線條藝術畫(line drawing) 是最簡單的一種視覺呈現圖畫的方式,僅僅是幾條線條即能清楚的表示出圖片中的物件。 這篇論文(Coherent Line Drawing’ by Kang et al, Proc. NPAR 2007)提… - [Panorama image stitching](https://ssarcandy.tw/2017/05/25/panorama-image-stitching/index.md): 全景照(panorama) 現在已普遍存在手機的相機軟體中,是一種可以拍攝數張照片然後接在一起使整個視野變更大的方法,全景照常比較常見的是往同一方向拍攝的,但也是有上下左右都全景的那種(Photo Sphere)。 以一般往同方向拍攝的一系… - [Migrate mail server to Gmail - migration strategy](https://ssarcandy.tw/2017/04/29/migrate-to-gmail-migration-strategy/index.md): 上一篇講了如何使用 google 提供的 migration tool 來遷移郵件,但需要知道大家的密碼才能用 IMAP 存取郵件資料。 一般來說即使是 root 也是看不到密碼的,就算能也只是看到加密過後的密碼。 而本篇要紀錄的就是我們遷… - [Migrate mail server to Gmail - using migration tool](https://ssarcandy.tw/2017/04/23/migrate-to-gmail-using-migration-tool/index.md): 最近 CMLab 終於申請到 G Suite for Education 了~ 也就是我們不用再維護自己的 mail server 了~灑花~ 但這也就又多了一件事:Migration… 我們要做的事情有以下幾件: 讓 MX record… - [High Dynamic Range Imaging](https://ssarcandy.tw/2017/04/15/High-Dynamic-Range-Imaging/index.md): 高動態範圍成像(英語:High Dynamic Range Imaging,簡稱HDRI或HDR),在電腦圖形學與電影攝影術中,是用來實現比普通數點陣圖像技術更大曝光動態範圍(即更大的明暗差別)的一組技術。高動態範圍成像的目的就是要正確地表… - [Setup x11 forwarding on Debian](https://ssarcandy.tw/2017/03/19/Setup-x11-forwarding-on-Debian/index.md): 有時候會需要在 server 上使用有 GUI 介面的程式,像是我們會把 matlab 安裝在運算能力很好的工作站上供大家使用。但透過 ssh 連上工作站的話介面會是 terminal,使用上就會比較不便。 Linux 的 GUI 運作模式… - [防止 mail server 大量寄信的手段](https://ssarcandy.tw/2017/02/26/prevent-mail-server-sending-spam/index.md): 最近這幾周都一直被 cmlab 的 mail server 霸凌,覺得難過… 為了解決 mail server 時不時會大量寄出信件的問題,嘗試了許多方法,終於得到一點點平靜… 本篇整理了我們最近嘗試的方法及一些工具,做個紀錄… - [From React to React Native](https://ssarcandy.tw/2017/02/02/from-react-to-react-native/index.md): 接觸 React 其實也一段時間了,總是嚷嚷想做個自己的 Project 但始終沒有動手開始做。最近趁著寒假終於用 React 做了個 網頁小遊戲 ,之後也改寫成 React Native 做出 Android and iOS 的原生 ap… - [Light Field Camera](https://ssarcandy.tw/2017/01/18/pbrt-light-field-camera/index.md): 一般傳統相機都是先對焦好之後拍攝照片,而往往會有些照片事後才發現竟然沒對好焦,甚是可惜。而光場相機(light field camera),有別於一般傳統相機,是可以記錄相機內部的光線傳輸方向等信息的相機;光場相機就是比傻瓜相機還傻瓜的相機… - [MSAuto - 玩遊戲也要自動化](https://ssarcandy.tw/2016/12/25/MSAuto/index.md): 最近 Facebook messanger 推出了一系列小遊戲,大部分其實都是無腦遊戲,但扯到互相比分總是會變得很激烈…. 其中有個遊戲很特別 EverWing,他是可以升級主角的射擊遊戲,也就是我可以偷練再去挑戰別人,然後分數就會很高~… - [安裝 Policyd 並設定外寄 Quota](https://ssarcandy.tw/2016/12/23/policyd/index.md): 最近遇到一個問題,有人利用 cmlab 的電子郵件發送垃圾郵件,導致許多外部郵件伺服器將我們加入黑名單。因此,我們認為有必要設定一個寄件上限來防止這種情況。雖然 Postfix 本身已經具有許多可設定的功能,包括防止垃圾郵件等,但它無法設定… - [pbrt - 用多點光源模擬環境光](https://ssarcandy.tw/2016/12/17/pbrt-mediancut-environment-light/index.md): 環境中總有一些背景光,像是太陽光、遠處大樓窗戶反光之類的,可以看成一整片不均勻分布的光源,有些地方亮;有些地方暗。 pbrt 中是用 important sampling 來渲染環境光,不過,其實也可以把環境光轉換成一堆點光源來計算。 - [用 Facebook 聊天機器人當通知系統](https://ssarcandy.tw/2016/11/17/cml-fb-bot/index.md): CMLab 有二十幾台 unix work stations 供大家使用(據說 CMLab 的工作站比資工系工作站還要好…)。 雖然這些機器設備都很強悍,但還是有時候會出現某台機器掛掉,或是 CPU, Memory, Swap 用量過高之類… - [Realistic camera in pbrt](https://ssarcandy.tw/2016/11/09/pbrt-realistic-camera/index.md): Ray-tracing 中的相機(眼睛)是所有光束的起點,從相機成像平面出發的光束如果能夠經由折射、反射等等最終到達光源的那些「存活」的光束,才對最終的影像有影響的光束。這種與現實物理相反的設計(從光源發出光並追蹤那些存活到相機成像平面的光… - [vdb - Debugging visual programs](https://ssarcandy.tw/2016/10/13/debug-using-vdb/index.md): 有時候在寫 openGL 或者是類似 pbrt 這樣有牽涉到三維空間的程式的時候總是很難除錯… 雖然可以設斷點看看變數內容有沒有問題,但說實在的其實這樣看有時候根本看不出所以然,這樣還是難以除錯。 vdb 是一個解決這樣問題的工具,它提供了… - [改善 pbrt 中的 heightfield shape](https://ssarcandy.tw/2016/10/10/pbrt-heightfield/index.md): pbrt 是一個基於物理的 ray-tracing libarary,他可以拿來產生接近現實的真實場景,據說 IKEA 的型錄都是用類似方法產生的,而不是真的把產品擺出來拍照。 哈哈 [1] " data-action="zoom" cla… - [一些 Python 筆記](https://ssarcandy.tw/2016/09/09/python-note/index.md): 最近的專案需要用到 OpenCV ,官方有提供 C++ 以及 Python 的版本。我以前都用 C++,這次想說來換換口味使用 Python 好了,如果用的順手以後就都這樣搭配著用(Python + OpenCV)。 說是這樣說,但其實我對… - [談談 vim plugin-manager](https://ssarcandy.tw/2016/08/17/vim-plugin-manager/index.md): 我用過了幾乎所有有名的 vim plugin-manager,包含 Pathogen , Vundle 以及比較新的 vim-plug 。 而以時間序來說也是 Pathogen -> Vundle -> vim-plug 先來談… - [用 Travis CI 自動部屬 hexo 到 GitHub](https://ssarcandy.tw/2016/07/28/hexo-auto-deploy/index.md): 其實 hexo 作者 TC 已經有發過 一篇文章 在講這個主題了,也講得很清楚了,基本上 矇著眼睛 照做就行了。 而這篇主要是再補充幾個細節。 - [自動分享每日天文圖(APOD)到 Dcard](https://ssarcandy.tw/2016/07/26/bot-battle/index.md): 原本其實只是要做個 Slack bot , 因為我懶得每天都上 APOD 官網看… 乾脆做個 bot 每天都會在中午 12:30 發今日的圖跟說明到 Slack channel 裡~ - [Setting up OpenCV using Cmake GUI](https://ssarcandy.tw/2016/07/22/Setting-up-OpenCV-using-Cmake-GUI/index.md): Build OpenCV Download OpenCV and Cmake Build opencv with cmake Cmake configuration Press configure , choose visual studi… - [Travian 對人類行為的影響](https://ssarcandy.tw/2008/10/28/Travian-Article-Submission/index.md): Travian 會改變一個人的各種行為。 我曾經研究過一個玩 Travian 的同學,但才研究一兩個星期,自己也就跑去玩了 痾… 研究結果是: Travian 確實會影響一個人的行為 並且發現影響程度大小依序是──腦子思維模式 > 記… ## Pages - [Projects](https://ssarcandy.tw/projects/index.md): SSARCandy's open source projects — computer vision, graphics, iOS apps, Node.js libraries, and developer tools, with sou… - [About](https://ssarcandy.tw/about/index.md): I am Andy Hsu, graduated student of CMLab , National Taiwan University. Interested in programming and actively share var…