| 2022-09-05 EKS ELB 獲取 Client IP 方法紀錄 前言在 EKS 上要建立 ELB 會採用 service type 指定 LoadBalancer。此時 AWS 的 In-Tree LoadBalacner ...
| 2022-08-30 建立 Reliable EKS 記錄 前言EKS 的建立方便快速,其中有些概念花了些時間才釐清,甚至有些拓墣一開始想錯了。經過幾週查閱文件與實驗後,寫個小的總結做個簡單的紀錄。 Architecture EKS 只有維護 Control ...
| 2022-07-07 在 macOS 上使用 Podman 前言Podman 相較於 Docker 有許多優勢,本文為在 macOS 上初次使用 Podman 之簡短紀錄。過程中不探究太深入的 Podman 運作原理,單純依照一般運行 container 的 ...
| 2021-12-13 理解 Kubernetes 中的 CPU Limit TL;DRKubernetes 中的資源限制目前可以對兩種資源做限制,分別為 cpu(可壓縮資源), memory(不可壓縮資源)。針對這兩種資源的限制可以對應到兩種限制,分別為 Soft Limit ...
| 2021-11-07 一次 CI/CD 調教經驗 前言最近受朋友委託,協助改善了一個現有的 CI/CD Pipeline 流程。對方的專案主要是一群熟悉軟體的設計的開發者所開發,但團隊中並沒有人對於維護 Pipeline 有相關經驗,於是我接下任務, ...
| 2021-05-21 如何備份 Kubernetes 中的 etcd 序言Kubernetes 中的狀態都是用 etcd 這套 key-value 儲存工具來維持,也就是說我們只要備份好 etcd 後,就可以很輕易的重建一個一模一樣的 Cluster 起來。 要備份 e ...
| 2021-04-29 使用 iproute2 客製化你的 Container 網路 前言我們都知道 Docker 有提供不同的網路模式供我們使用,從預設的 Bridge 到共用本機 Network Namespace 的 Host。我們甚至可以自訂自己的 Bridge 來切割不同網段 ...
| 2021-04-17 不停機替換 Kubernetes CRI 問題今天嘗試將 CRI 從預設的 dockershim 替換至 CRI-O,網路上的教學都是教你更換完畢之後使用 kubeadm 重新起一個 Cluster。但我的情境需要對現有的 Cluster 做 ...
| 2021-03-26 一次 Traefik 與 TLS 的踩雷經驗 問題點部署 ArgoCD 進 Kubernetes 完畢時,發現 ArgoCD 開了 80, 443 兩個 Service Port,對應到的 Container Port 都同樣是 8080。如果你 ...
| 2021-01-06 macOS-中-VPN-解析域名錯誤 TL;DRmacOS 中的 DNS 順序並沒有意義(儘管系統還讓你移動順序),決定 DNS Server 使用隨機方式來選擇。如果想要指定特定網域使用特定的 DNS Server,請使用 scutil ...
| 2020-08-31 與 minikube 共享 local docker image 為了將服務跑在 K8s 中,容器化是必須的。在程式即將部署之際,會需要測試一些 K8s 中的環境變數是否可以被程式正常讀取,或是為了符合 K8s 環境,將程式打包成容器映像試著部署上叢集試試看有沒有問 ...
| 2020-07-11 在 K8S 中使用 Traefik 作為 Ingress Controllers 前言K8S 中的 Ingress Controllers 並沒有實作,可以自己使用各種版本。在 Minikube 中的 Ingress Controllers 預設是用 NGINX Ingress C ...
| 2020-04-29 眼見為憑?利用終端機特性藏匿惡意指令 前言對於 Linux 使用者或是軟體工程師來說,終端機是每天必須用到的軟體之一。尤其是那些注重開發效率以及有在維護伺服器的工程師來說,我們都不希望雙手離開鍵盤,分散注意力。這種情況下,當我們要稍微檢視 ...
| 2020-03-16 從駭客角度告訴你為何不要隨意複製指令 相信很多人都有這樣的經驗,下指令時產生某某錯誤。這個錯誤可能沒見過,也可能是之前遇過但是忘記怎麼解。但我們只要將錯誤複製起來,貼上搜尋引擎,馬上就會跳出各種網頁可以參考,無倫是知名的程式討論論壇,或著 ...
| 2020-02-15 重新看懂指標與陣列之間的交互關係 C 語言中,指標與陣列之間的關係一直是一個初學者很難理解的坑。又或是很多人只知道寫法,但卻從來沒有理解過背後的原因。相信各位理解了原因之後,在撰寫 C 語言時會對自己操作這個語言更加有自信。這篇文章重 ...
| 2020-01-11 優雅的在 macOS 上使用 Python 為什要要這樣做?我們都知道 macOS 有 Python,為了不將預設的環境弄髒。比較推薦的做法是透過 pyenv 這套 Python 版本管理工具來安裝不同的 Python 版本,如此一來要切換不同 ...
| 2020-01-08 快速體驗 kubernetes 的強大之處 前言容器技術近年來非常流行,相信各位在不同地方多少有聽過 kubernetes(或是它的簡稱 k8s)這項技術。但是很多人了解 k8s 之後會被這個技術嚇到,原因是因為有大量的名詞,像是 Pod, S ...
| 2019-12-15 Raspberry Pi 開機時自動寄送 IP 設定 前言在使用 Raspberry Pi(以下簡稱為 Pi)時,如果每一次都要佔用一個電腦的 USB port 非常不方便,而且電腦輸出電壓不一定夠,如果條件允許,我們會希望將 Pi 用變壓器獨立插在插座 ...
| 2019-11-28 Shell Script 中那些錯過的事 前言Shell Script 想必大家都有使用過,即使沒有真的寫 script,多少也會有在 command line 中透過 pipe 或是 and 條件句來將不同的指令結合在一起的經驗。 也因為 ...
| 2019-11-22 2019 交大資工丁組推甄心得 本次推甄概況 交大資工丁組 備取 1(備上) 交大資工戊組 備取 2(備上) 成大資工乙組 正取 2 台科資管丙組 逕取 台科資工 差 0.4 分逕取(放棄面試) 中央軟工 (放棄面試) 自我介紹/ ...
| 2019-11-05 Python struct 模組的踩雷記錄 前言昨日在寫 Python Socket Programming 作業時,遇到了一個關於 struct 模組的有趣的現象,記錄一下。 正文情境是這樣的,我想要將一個正整數以及一個長度 3 的字串跟一個 ...
| 2019-10-21 使用 docker 來輕鬆建構資料庫 緣起自從使用了 Docker 之後,凡是需要測試新的服務或是把玩新的工具第一個直覺就是去找有沒有 docker image。 然而最近剛好手邊有一個 LINE Nofity 串接的案子,要管理不同使用 ...
| 2019-09-09 不用任何工具!內網穿透至自己的域名下 前言 不久前才寫了一篇 用 serveo 來穿透內網吧,結果馬上就要打臉自己了 👋 上一篇文章提到 serveo.net 比起 ngrok 可以自訂 sub domain ,更加方便(不會每一次產 ...
| 2019-08-13 Javascript 中的連續賦值 前言昨天在卡斯伯大大的臉書上面看了一則有趣的貼文。 雖然馬上就有人在留言下方分享答案了,不過還是想記錄一下這個有意思的問題。 正確的概念是 b = c 並且這條 statement 本身會有一個回傳 ...
| 2019-07-18 每天都在 Arr.map() 你知道什麼是 functor 嗎? 前言程式設計的方法論大體來說可以分為兩種, functional programming (FP) 以及 object oriented programming (OOP)。然而不同的程式語言可能也會 ...
| 2019-07-01 [nodejs] module.exports 與 exports 的差異 前言nodejs 中有許多的特性或是方便的功能我們會使用,但實際上不知道內部處理的機制。本篇要探討的是匯出模組的兩種方式 modules.exports 以及 exports 結論(TL;DR) The exports variable is available within a module’s file-level scope, and is assigned the value of module.exports before the module is evaluat ...
| 2019-06-13 JavaScript 中物件比大小的依據到底是什麼? 前言在 JavaScript 中很多比較的情況非常不符合邏輯,在今年 AIS3 (2019) pre-exam 中,有考到類似概念所引發的錯誤情形。於是記錄一下 JavaScript 在比較物件時到底是依據什麼規則。 先看幾種常見的情況12345678910> 100 > 10true> 100 > "10" //(字串與數字比較,會將字串自動轉為數字來比較)true> "100" > "10" //(兩者都是字串,實際上是按照字母順序來比較,下面的例子較明顯。並不是將兩個字 ...
| 2019-06-03 用 serveo 來穿透內網吧 有時候會需要暫時的 public ip 來運行環境,比較常見的需求像是 分享一個檔案給內網外的朋友 測試環境需要 SSL 憑證 (https) API 的 callback url (需要 http ...
| 2019-05-20 在 macOS 上使用 docker 運行 mysql 前言想測試 mysql 的指令又不喜歡污染自己的機器,docker 是你的好選擇。但是在 docker 跑 mysql 會遇到一些小雷點,在這邊紀錄一下。 正文起手式,把 mysql 的 image 拉下來docker pull mysql 之後就可以把 container 跑起來docker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=password mysql MYSQL_ROOT_PASSWORD 後 ...
| 2019-05-19 nodeJS 中的 fs module 介紹 前言在學習任何一個語言一定都會遇到檔案讀寫,在 nodeJS 中的檔案讀寫幾乎都能透過 fs 這個 module 來完成。 而且在 fs API 中有這麼一段話 All file system operations have synchronous and asynchronous forms. 對於開發者來說實在是非常棒,不像有些 module 同步與異步是分開成兩個不同的 module。 常用操作讀取文件以下要注意第二個參數要指定編碼,否則印出來會是 raw data 的 ...
| 2019-05-19 實作 facebook OAuth2 登入機制 前言前幾週看到 developer-roadmap 中的後端能力技能樹,看到了 OAuth2 這個聽過多次但是沒有實際實作過的驗證機制。於是開啟了自己實作的想法。 完整的做法放在 oAuth-fb-tutorial 中,以下紀錄了如何配置以及申請 token。 setup 首先,先在 facebook for developers 註冊應用程式 在此專案目錄下建立 .env, 並且將你的資料填入 1234facebook_client_id=facebook_secre ...
| 2019-05-07 telegram-bot API 懶人包 前言這幾天接觸了 telegram API,用來串一些間單的程式並且將結果發送給自己,一開始用的是 node-telegram-bot-api ,但昨天發現裡頭有些 event 設計似乎不是這麼直覺。 ...
| 2019-03-29 了解nodeJS中的this “This” in nodeJS以下討論 nodeJS 中的 this,與 javascript 中的 this 不同,請不要搞混了。 function 外的 thisfunction 外的 this 指向 module.exports 1console.log('outside: ', this) // {} 12module.exports.bar = 3console.log('outside: ', this) // outside: { bar: 3 } 切記 ...
| 2019-03-25 了解javesvript中的var 記錄幾個月前幫助同學遇到的一個問題,同時了解背後的原理。 12345for (var i = 0; i 5; i++) { setTimeout(() => { console.log(i) }, 0)} output: 5 5 5 5 5 很多人會認為 output 應該為 0 1 2 3 4 要記得 callback function 會被丟到 callback queue 等到 thread 有空才去執行,所以一共有 5 個 callback function ...
| 2019-03-19 如何在Linux上掛載外接硬碟 前言最近在練習 quota 用來配置每一個使用者的目錄用量, quota 是以分割區為單位,發現自己連硬碟掛載都不太熟悉,可以是平常都用遠端機器的緣故,較少掛載經驗,此篇文章記錄一下掛載過程。 接上硬碟無論是實體硬碟,虛擬硬碟,接上後第一步應該確認是否成功讀取 ls /dev/sd* 分割確認讀取之後,先用 fdisk 確認硬碟是否正確fdisk -l /dev/sdb 使用 fdisk 分割硬碟fdisk /dev/sdb 進入 fdisk 程式後,使用 m 來查看指令,並 ...
| 2019-03-10 如何在 macOS 上自行安裝 openJDK 在執行 ghidra 的時候,跳出一條錯誤訊息 JDK 11+ could not be found and must be manually chosen! 但是去 oracle java 的網站上只有看到第八版的 JDK 於是找到了 openJDK,以下紀錄如何使用 openJDK 替換目前的 jave 環境 請至 jdk.java.net 下載 JDK11 下載完檔案名稱為 openjdk-11.0.2_osx-x64_bin.tar.gz (可以替換成自己下載的版本) ...
| 2019-03-09 Line台灣總部參訪心得 TL;DR前天與台科大資訊安全社的同學們一起參訪台灣 Line 總部,這篇文章簡單記錄心得。 正文 台灣 Line 總部位於台北市內湖區的辦公大樓內,接待我們的是一位資訊安全的工程師 David。David 讓我們先搭電梯去辦公大樓內的 10 樓等待,途中剛好在 4 樓門就打開了,映入眼簾的是簡約的 Line 字樣,秀在辦公室的毛玻璃上面。當時以為聽錯了,其實是要到 4 樓。後來發現原來 4 ~ 10 樓通通都是 Line 的總部,差別在於不同部門而已。 除了介紹 Line ...
| 2019-03-06 在ubuntu上將nginx升級至http/2 前言架設 web server 時,把基本設定(virtual host)設定完之外,最麻煩的一件事情就是設定憑證。因為憑證有期限,除了申請憑證外還要排程去定期更新,否則自己忘記憑證到期的話,某一天網站就無法被正常存取了 現在 cloudflare 有提供免費 SSL 服務,只需要按幾個按鍵就搞定了。但 SSL 畢竟是 server side 的事情,給 cloudflare 幫你做,還要開啟 CDN ,如果只是靜態網頁的話沒問題。需要用 reverse proxy 的話,C ...
| 2019-03-02 buffer overflow搭配ret2libc之攻擊手法介紹 前言buffer overflow 以下簡稱為 BOF。 BOF 是一個常見的攻擊手法,透過 BOF 可以達成各種不同的目的,像是: ret2text ret2shellcode ret2syscall ret2libc 本文將透過 2018-EOF 的 pwn3 來說明 ret2libc 的攻擊手法 分析題目(題目給了一個 ELF 檔案 以及 libc.so.6) 拿到題目第一步,先丟到 IDA 中逆向 --> 同時查看 ELF 檔案的保護狀態 --> 這兩個線 ...
| 2019-03-01 如何看待C語言的argv與指標關係 前言在一次作業下碰到了 argv 與的操作,看到課本 UNIX Systems Programming: Communication, Concurrency and Threads: Communication, Concurrency and Threads (2nd Edition) 2nd Edition 對於 argv 的操作為下 1int main(int argc, char* argv[]) { } 回想起以前常常都是使用以下這種用法 1int main ...
| 2019-02-26 為何我選擇hexo當作個人blog? 前言在網路上爬文學習的過程中,發現有很多人將技術文章或是教學文章都放在自己架設的部落格中。若不是放在自己的部落格中,多半是選擇 Medium 。 我也有考慮過 wordpress, Medium 最後決定使用 hexo 來架設靜態網站。 正文這篇文章當作部落格的第一篇文章在適合不過了。 選擇 hexo 有幾個原因。 滿足自己管理網站的慾望。 (有自己的 domain name 就是開心,有種一切都是自己掌管的感覺) 相較於 wordpress 可以更加容易部署與轉移環境 以 ...