JackKuo's Blog

Tech | Open Source | Altruism

CancelIoEx Needs Twice Enter for Input

Once you use it to cancel the blocking getline() or getchar() and resume getline() or getchar() again, the first input (hit Enter key) will not be caught by your code… It’s weird.

motionEye 監視器自動偵測+發送通知

家中監視器裝設多年,每次出遊時擔心遭小偷,總得三不五時連回家中看一下監視器串流。想到現在影像辨識技術那麼成熟,應該有好心人是釋出免費的監控系統吧?果然找到了 motionEye 這套開源工具

Python Popen 成功卻回傳非 0

現象 有位 user 使用 Python subprocess.Popen() 來執行程式時,明明該程式顯示成功,且回傳 0,但是在 Python 中卻拿到非 0 回傳值,這是為什麼哩? # 範例程式 import subprocess proc = subprocess.Popen("calc.exe", shell=True) proc.communicate() print(proc.returncode) 調查 該 Python 腳

Learning from Developing Console App

Is there any best practice? I think you can learn many best practices from famous UNIX apps. Such as git, dig, and nc. Just use them and study them thoroughly. In my experience, the following 7 topics hold significant importance, and I will give explanations for each of them.

我的 Raspberry Pi 3 伺服器設定

一開始用它來架設 web Server、mail server、VPN server、CCTV server 等等,雖然只有 1G RAM,歸功於 Linux 非常省資源,這是綽綽有餘的,唯有 disk IO 稍微慢了點。ARM 架構晶片好處是非常省電!Pi 3 大約功耗 5w 而已

在 Visual Studio 2022 打開 AddressSanitizer (CMake+MSVC)

筆者最近遇到程式結束時 double free 問題,從 debugger 的 parallel stacks 只看得出來是系統在清理時遭遇到,看不出來是哪個物件,在這種情境下就很適合用 Sanitizer 來協助告知究竟是哪一行程式碼出問題。

網路相關指令速查表

前份工作在雲端產業當網路技術客服,記錄一下當時會用到的一些指令,避免自己忘記。

AWS ELB 常見問題、筆記

前言 當了一陣子鍵盤柯南,回饋一下社群,希望大家上雲之路可以少踩點坑。 閱讀本文章建議先看 H1 標題、H2 症狀來快速找到對應內容。 如何選擇 ELB? 建

AWS Global Accelerator 效能量測方法與陷阱

Global Accelerator (GA) 是 AWS 提供的網路加速服務,透過提早 TCP Termination 與品質較佳的 AWS 骨幹網路來加速傳輸,來達到網路傳輸加速效果,其原理類似於 Proxy。

AWS Network Firewall / Suricata 介紹

Network Firewall 是基於 ELB 中的 Gateway Load Balancer (GWLB),將封包從一個 subnet 導向到另一個 subnet 做過濾。如果不想用 AWS 提供的 Network Firewall,也可以使用 GWLB 搭配 Market Place 中第三方廠商的封包過濾、威脅偵測服務使用。

Mac 用戶的 Windows 生存指南

字體 由於 Windows 對於字體轉譯(render)跟 macOS 不太一樣,預設內建字體也不太一樣,導致有些人在使用 Windows 會覺得字體模糊不清、太細 (中國稱為「發虛」)。

為何瀏覽器不支援 SRV Record?

這問題在唸書時期也曾困擾我,前陣子被客戶問到這問題,雖然可以以 out of scope 打發他,不過實在太好奇了還是幫他找了一下。

AWS Site-to-Site VPN 介紹與部署經驗

AWS Site-to-Site VPN(S2S VPN) 主要是用來給地端 ↔ 雲端的連線,採用 IPSec 協定。一個 S2S VPN 連線支援兩條通道,強烈建議客戶端同時要有兩條連線以確保高可用性,如果客戶只有建立一條通道連線,會收到警告通知信,但不影響使用。

為何 cURL 總是偏好某個 IPv6 地址?

同事最近被問說「為什麼 NLB 啟用 dualstack 後,從位於同 AZ 內的 EC2 使用 `curl -6` 去拜訪,永遠都是拜訪同 subnet 的 NLB 節點?」這問題一直可以復現,也很確定 dig 出來的結果會有 round robin,但若從 VPC 外的 IPv6 網路測試就沒有這個問題,因此我跟其他同事們便好奇地去找原因。

AWS CloudWatch Alarm 計算方式

計算方式不難,但官方文件卻把簡單的事情寫的很複雜,每次要用到重看都得看很久。趁最近又理解了一次,趕快寫下來。基本概念:會以 M out of N 方式來設定何時要觸發警告,比如說 2 out of 3 代表查看最近的 3 個 datapoint。