顯示具有 雲端 標籤的文章。 顯示所有文章
顯示具有 雲端 標籤的文章。 顯示所有文章

2026年7月6日 星期一

創建一部 aws 短命 ec2 主機, 省錢玩 AI

AWS 的 ec2 服務, 如果要玩 AI, 就需要選比較強的虛擬主機, 尤其因為有 GPU, 當然也就比較貴 💸。 大部分時候, 直接拿別人包好的 docker 來玩比較方便, 而且還要設定讓 docker 支援 GPU。 但我只是久久才偶爾開來玩一次, 要怎樣才能省錢?

2026年5月3日 星期日

畫氣泡圖挑選性價比最佳的租賃 LLM

AWS BedRock 眾模型性價比 你挑了一個 LLM 租賃服務, 它提供很多模型。 該怎麼選? 我就拿 aws 的 bedrock 為例來解說資料視覺化 (散點圖/氣泡圖) 如何幫我們挑選性價比最佳的 LLM。 這些步驟應該也大致適用於比較整理其他 (來自同一家) 供應商的模型清單 - 只要你可以先建立一個 csv 檔列出該廠商提供的所有選項, 類似 我為 bedrock 建立的 bedrock-pricing.csv。

2026年4月25日 星期六

把買 GPU 的錢省下來租雲端服務: 建立 aws bedrock 模型與價格清單

想玩龍蝦 🦞、 不想買 GPU => 租雲端的 LLM 來用。 因為我有 AWS 的點數, 那就拿 AWS BedRock來用吧!

[7/8] 補充說明: 但 aws 其實比較貴。 如果你不像我有點數, 建議問一下 AI: 「有哪些可替代 AWS Bedrock 和 OpenRouter、可租用開放權重模型的平台? 請比較 AWS Bedrock、OpenRouter 以及你推薦的其他方案的價格(以整體概況為主)。 另外,也請比較它們所提供的模型種類 (多樣性),以及其他你認為重要的面向。」 Gemini 跟 ChatGPT 都推薦 DeepInfra。 另外還有 Together AI、 Groq、 Novita AI 等等。

回到 AWS BedRock。 請參考: 給小白的 bedrock 簡介、 bedrock 網頁介面試用心得。 不過, 我喜歡下指令, 所以是在 debian 上面安裝 awscli 套件來測試。 假設你已經 用 aws configure 命令設定好 access key, 也略微熟悉 jq。 我們的目的只是要跟 OpenClaw 接軌, 所以只關心有哪些模型可選擇、 如何下簡單的呼叫指令, 以及價格。

2026年3月14日 星期六

收集學生的作業? filebrowser 比教學資訊系統更好用

filebrowser 介面 我一直覺得各種教學資訊系統 (Learning Management System, 不論是否自由軟體, 例如 moodle 或 iLearning 等等) 的交作業功能都不好用。 Google drive 也許好一點; 但對老師最方便的方式, 還是讓學生把作業上傳到我的 linux 伺服器。 這樣, 我在可以直接用 grep 之類的指令批次處理所有作業, 比滑鼠點半天快太多了。 但除了幫學生開設 ssh 帳號、 教 (通識!) 學生採用 putty 跟 winscp 傳檔之外, 還有其他方式嗎? 詢問 gemini 🤖 的意見, 它推薦 File Browser。

這是一個很簡單的雲端檔案服務: 從客戶端看, 每位同學可以有自己的帳號密碼, 用瀏覽器就可以上傳檔案。 在伺服器端, 所有的檔案都由啟動服務的那一個人所擁有。 我習慣讓同學們可以看到自己上傳過的檔案、 看到彼此的作業。 由我的帳號 ckhung 來啟動服務, 正好。

2025年7月25日 星期五

告別手動標地點! 共筆維護試算表、地圖自動更新 (不分尺寸版)

想像一個團隊, 每位成員分頭去收集一些 (不涉及隱私或機密、 可以公開的) 地址, 要放到一張共同的地圖上面。 除了地址之外, 還有一些需要經常更動的欄位, 例如各地點的開放時間、 注意事項、 臨時公告等等。 什麼樣的工作流程會比較有效率呢? 我會開一張共筆的試算表, 例如 ethercalc 或是 google sheet, 裡面含有名稱、地址、經緯度、備註以及其他文字資訊等等欄位, 並且分享給所有成員, 然後把這張試算表餵給 umap 吃。 於是每當任何成員修改 [地址經緯度以外的] 其他任何欄位, 地圖瀏覽者只要重新整理網頁, 就會看到最新最及時的資訊。 至於經緯度, 可以透過 TGOS 手動批次更新。 編輯 google 試算表的門檻比編輯地圖低很多, 這樣的安排便於讓任何人都可以參與。 我們拿 台派店家 當例子。 照以下做完之後, 會得到像這樣的成品: 台派店家地圖。

先查看 原始資料的網址, 找出試算表代號 ("/d/" 後面那一長串) 以及分頁代號 ("gid=" 後面的數字)。 在 bash 底下, 先設定變數:

gs_id=15E0sastmidjk4CJlJJZoKZgbp5He5SKaUCbo4eMMlYY
gid=418920722

然後 wget -O tai-shops.csv "https://docs.google.com/spreadsheets/d/$gs_id/export?format=csv&gid=$gid" 就把三千多筆資料抓下來啦! 不過, 因為 google 回應時, 會送出 redirect 重新導向下載專用的伺服器, 所以如果用 curl, 必須加上 -L 選項: curl -L "https://docs.google.com/spreadsheets/d/$gs_id/export?format=csv&id=$gid" > tai-shops.csv

2025年3月11日 星期二

共筆維護試算表、地圖自動更新 - 小尺寸版

想像一個團隊, 每位成員分頭去收集一些 (不涉及隱私或機密、 可以公開的) 地址, 要放到一張共同的地圖上面。 除了地址之外, 還有一些需要經常更動的欄位, 例如各地點的開放時間、 注意事項、 臨時公告等等。 什麼樣的工作流程會比較有效率呢? 我會開一張共筆的試算表, 例如 ethercalc 或是 google sheet, 裡面含有名稱、地址、經緯度、備註以及其他文字資訊等等欄位, 並且分享給所有成員, 然後把這張試算表餵給 umap 吃。 於是每當任何成員修改 [地址經緯度以外的] 其他任何欄位, 地圖瀏覽者只要重新整理網頁, 就會看到最新最及時的資訊。 至於經緯度, 可以透過 TGOS 手動批次更新。 編輯 google 試算表的門檻比編輯地圖低很多, 這樣的安排便於讓任何人都可以參與。

如果你的試算表較大 (超過100列?), 本篇可能不適用。 請跳到第三節見新版連結。 推薦改參考更簡單、 可以處理更大資料檔的另一篇: 共筆維護試算表、地圖自動更新 - 大尺寸版。 至於您現在正在閱讀的這篇 「小尺寸版」, 則只剩歷史價值。

2024年12月17日 星期二

把所有帳號的信件都接收到自己的伺服器上 (二): mbsync + neomutt + msmtp

為了維護資料自主權, 上一篇 我們測試 MS o365 的 xoauth2 登入。 我覺得那是最困難的部分。 接下來的部分有點囉嗦, 但並不困難, 如果遇到問題, 都很容易看著錯誤訊息, 搜尋或問 chatgpt 解決。 (困難的部分我已經幫你撞過牆壁,把心得寫進本文裡了。) 我們要用 mbsync 把所有的 emails 都抓到自己的伺服器裡, 採用 Maildir 格式儲存, 以利將來搜尋/用AI分析/存檔。 並且設好以後, 就可以用 ssh 登入自己的伺服器、 在文字模式底下採用 neomutt 跟 msmtp 閱讀與發送信件。

2024年11月23日 星期六

把所有帳號的信件都接收到自己的伺服器上 (一): oauth2

學校通知 zimbra mail server 要退役了; 寒假起要改用微軟 outlook。 一如 以往, 微軟的服務暗藏高昂的 下賊船的代價, 未來如果郵件都留在微軟的伺服器裡, 想要匯出的時候, 必須使用桌面版 outlook, 而且匯出的是微軟的專屬格式, 到時候你就會逐步地被吸入微軟黑洞。 我必須趕快學會定時用 IMAP 把所有的郵件抓回自己的伺服器上。 找到兩篇很棒的文章: Neomutt + isync / mbsync for Office365 及 Local email from Office365 using OAUTH2 with mbsync。 這幾天先做一半: 學會用命令列進行 oauth2 授權。

2023年12月30日 星期六

用亞馬遜的 ec2 雲端主機自架 stable diffusion

在 Amazon 的 AWS 上面重新安裝一次 (其實是好幾次) stable diffusion。 這次用比較簡單的做法。 反正 SD 自己會建立所需要的 python 環境, 所以其實不需要用 CloudFormation, 也不需要特別找 "deep learning" 類型的 AMI (Amazon Machine Image)。 直接從比較簡單的 建立一個 ec2 instance 開始。 建立過程當中, 我做以下的選擇與設定:

2023年12月23日 星期六

自架 aws 雲端主機上的 stable diffusion

[2023/12/30] 改推另一篇: 用亞馬遜的 ec2 雲端主機自架 stable diffusion

終於架好自己的 stable diffusion! 簡單筆記一下參考的連結。 因為我有 aws 的優惠, 所以基本上就照著這篇做: 用 AWS CloudFormation 架設 AUTOMATIC1111 版的 SD。 我這篇的篇名應該加上 「補遺」 才對, 因為重點根本都在 koding work 的文章裡面, 請大家自己去讀 :-)

2021年9月12日 星期日

aws ec2 損毀救援記

我有租一部 aws 的 ec2 虛擬主機。 如果不小心下錯指令把少數幾個重要檔案搞爛掉了, 以致無法登入甚或是無法開機, 該怎麼辦? 比方說前幾天我就發生了一個悲劇... 我的伺服器當然有照著 密不透水的 ssh 這篇做, 在 /etc/ssh/sshd_config 裡面設定 PasswordAuthentication no, 並且搭配 ~/.ssh/authorized_keys 指定允許登入的 ssh 公鑰。 那天我手殘不小心把這個檔案刪掉了, 馬上掉入恐慌, 就像幾個月前某天出門後才發現忘記帶鑰匙一樣! 比忘記帶鑰匙更慘的是, 這次沒辦法找老婆幫忙~ 更糟糕的是: 伺服器上面還有老婆要用的檔案... 我雙重死定了~

2020年6月27日 星期六

nextcloud 搬家升級重點筆記

我的 nextcloud 所在的那部 ubuntu 18.04 伺服器掛掉了, 還好硬碟資料都還在。 乾脆 (1) 作業系統升級到 ubuntu 20.04 (2) nextcloud 從 15 版升級到 18 版。

2020年4月8日 星期三

尊重你的隱私與自主權的免安裝免註冊雲端視訊會議自由軟體 jitsi

Zoom 的資安疑慮引發爭議, 資訊人權議題請見另文: 金鑰傳中國的 Zoom、 臉腫的教育部、 很政治的技術物。 這篇的重點是要推薦 jitsi。 我不要廢話、 你不要猶豫, 現在馬上用滑鼠中間鍵點進去開一個新分頁。 按下橘色的 「Start a Call」、 隨意命名一個不會跟別人撞山的會議室 (例如 Greg607f638e)、 允許它使用你的麥克風 (還有攝影機,如果有的話) 但不要勾選 「remember this decision」, 你就開始遠距會議了。 什麼? 不必註冊帳號? 沒錯。 你去公園找一張桌子坐下來, 需要註冊帳號嗎? 使用 jitsi 當然也不必向哪一家公司註冊帳號。 [2024/9/15] 現在開設會議的主持人 (moderator) 必須先採用 google 或 github 等等某個第三方帳號登入。 其他參加者仍舊不必註冊。

2019年10月12日 星期六

Keras MobileNet 版的圖片辨識遷移學習

這學期的 AI 課程改用 google colab。 因為它對 caffe 的支援不佳, 所以先前 用 caffe 做遷移學習的範例 不能拿來上課了。 還好搜尋到很棒的一篇教學文 Transfer Learning using Mobilenet and Keras 以及伴隨的 github 專案 ferhat00/Deep-Learning, 於是改寫一下重新上架成為: ckhung/keras-mobilenet。 圖像辨識的整個流程變得超級簡單!

先下載 ckhung/keras-mobilenet 及訓練資料集 dog_behaviors.zip, 再上傳到你的 google drive。 假設你已玩過 google colab, 那麼從 google drive 裡面打開 km-transfer.ipynb 應該就會自動進入 colab。 接下來就照著 km-transfer.ipynb 做囉!

2019年8月3日 星期六

簡單語音指令辨識

完整的自然語言語音辨識很複雜; 但在很多應用場合中, 如果可以讓用戶以十來個簡單語音指令控制電器/電腦/apps, 就已經很方便了, 而想要訓練這樣的類神經網路, 門檻當然比完整的語音辨識低很多。 Simple Audio Recognition (以下簡稱 SAR 一文) 所介紹的 tensorflow 原始碼當中的 speech_commands 範例, 就是這樣的工具。 餵一段一秒鐘的聲音, 它會判斷這是 "yes", "no", "up"、 "down"、 "left"、 "right"、 "on"、 "off"、 "stop"、 "go" 當中的哪一個語音命令, 或是未知的聲音 (UNKNOWN) 或是無聲 (SILENCE) (其實可能是很小聲的背景噪音)。 假設讀者已經先照著 貴哥的 colab 初學筆記 認識了 colab 的基本操作, 今天這篇文章將接續著帶大家用 colab 把 speech_commands 的操作流程幾乎走一遍。

2019年7月13日 星期六

貴哥的 colab 初學筆記

Google colaboratory 提供短暫 (數小時) 的免費雲端 GPU 算力, 真是深度學習初學者的福音啊! 前提是你要有 google drive 的帳號, 並且略會操作 Jupyter Notebook。 網路上已有很多入門教學文; 貴哥一看到有 shell 可用, 忍不住就好奇多探索一些, 於是也寫一篇自己的初學筆記。 基於 「站在巨人肩膀上」 的原則, 比較多人介紹的基本操作就只簡單帶過, 細節可參考 台大機械所 Wei-Hsiang Wang 的 Colab 基本操作筆記 (中文) 及 fuat 的 Google Colab Free GPU Tutorial (英文)

2019年4月7日 星期日

自己的行事曆和通訊錄自己管: nextcloud 安裝、 行事曆、 備份及手機連線

Nextcloud 是 owncloud 的 fork。 它讓你自架私有雲取代 dropbox、 google drive、 google calendar、 google 通訊錄等等服務。 我自己的雲端檔案沒有用任何軟體管理, 就直接用 scp 存取。 對我而言, nextcloud 最重要的是拿來取代 google calendar (還有通訊錄; 不過目前還沒用)。

2018年11月4日 星期日

novnc: 有瀏覽器就可以連上線的遠端桌面

novnc 架構 VNC 是遠端桌面連線程式, 也可以當成電子白板或廣播教學軟體來用。 以前就有聽說過: 如果採用 novnc, 那麼客戶端可以不必安裝任何程式, 只要有瀏覽器就可以連線。 這學期我終於開始用這個方法上課。

2018年7月26日 星期四

躲在 apache2 後面的 flask 範例, 含上傳檔案

flask 躲在 apache 後面, 銜接 ML/DL/AI 引擎 github 上面很多 ML/DL/AI 程式都以 python 撰寫, 可以從命令列執行。 但如果想要佈署, 例如想讓樹莓派可以把野外蒐集到的畫面或聲音傳回伺服器用 AI 程式判讀/分類, 那該怎麼辦呢? 常見的方法是用 flask 架一個簡單的 web server。 Flask 是 python 的一個模組, 所以從那裡要接上 python 所寫的 ML/DL/AI 引擎很方便。 Flask 單獨作為 web server 的方法很簡單, 請見 中文教學 或 官網。 但若你的伺服器已有 apache2, 要怎樣才能把 flask 接上去呢?