前一陣子跑去看 「國有器官」 認識 雄獅影視的管弄雲先生。 我主動建議幫他製作, 並且已經完成了: 「國有器官」放映地圖。 他們忙著更重要的事, 當然不可能請他們自己學會用 umap。 要讓他們能夠自己維護後續的新資料, 最簡單的方法就是: 我建一張 國有器官播放紀錄試算表 分享給他們, 然後我用程式把試算表的資料拉過去地圖上。 原本以為先前的 「共筆維護試算表、地圖自動更新」 可以直接拿來用, 後來才發現試算表太大 (大約超過 100 列?) 時會失敗。
2025年7月25日 星期五
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 授權。
2024年2月18日 星期日
遠端桌面連線軟體 VNC 也可以當成電子白板或廣播教學軟體來用, 2024 版
這幾天正在 用虛擬機安裝 debian 12.5 "bookworm" 。
今天先把 bookworm 上面安裝 tigervnc 及中文輸入法時遇到的問題記錄下來。
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: 有瀏覽器就可以連上線的遠端桌面
VNC 是遠端桌面連線程式, 也可以當成電子白板或廣播教學軟體來用。
以前就有聽說過: 如果採用 novnc,
那麼客戶端可以不必安裝任何程式, 只要有瀏覽器就可以連線。
這學期我終於開始用這個方法上課。
2018年7月26日 星期四
躲在 apache2 後面的 flask 範例, 含上傳檔案
2018年4月10日 星期二
到 floydhub 租用雲端 GPU 玩人工智慧
想玩一點 AI, 又不想自己直接面對 封閉的 nVidia 顯卡驅動程式 嗎? 如果你的訓練資料沒有隱私或機密的問題, 那就上雲端租用 GPU 吧。 我採用的是 floydhub。 根據 這一篇比較文, floydhub 的效能比 AWS 跟 paperspace 略遜一籌; 不過他們以軟體環境取勝: 有許多現成的深度學習 docker 環境 可選。 而且當初我起步機器學習, 就是靠他們做的一些 docker images, 所以就寫介紹文來回饋囉。
2017年8月7日 星期一
手機連線 owncloud 私有雲行事曆
想要用雲端行事曆, 就必須把我的行程通通告訴 google 嗎?
不必! 用 owncloud 架設私有雲,
你也可以從 android 手機連線讀寫個人專屬的雲端行事曆。
其實我的 owncloud 根本就是為了行事曆這個功能而架的 :-)
改推薦較新的一篇:
自己的行事曆和通訊錄自己管: nextcloud 安裝、 行事曆、 備份及手機連線
2015年9月13日 星期日
備份/清空 gmail, 以及命令列查詢/切割 mbox 格式檔案
查看一下 你的 google 帳號儲存空間使用狀況 吧!
以我而言, 空間用量經常佔最大宗的是 gmail。
所以每年暑假都要把一整年份的 e-mail
從雲端拉到自己的硬碟備份、 把雲端信箱清空。
尤其是
google 「封存」 的黑洞設計 更讓我平常很刻意地避免使用這個功能。
即使如此, 還是會有一些 mail 莫名奇妙地被 google 自動 「封存」。
唯有在備份完成、 把 mail 刪到剩下一點點的時候,
才比較容易順便把舊的 「封存」 郵件刪掉。
想要順利備份、清空, 平常就要養成習慣: 凡是想長久保存的 e-mail (包含自己寫得很得意的 寄件備份) 都一定要手動指定一兩個標籤。 這樣, 等到要備份時, 凡是系統自動產生的標籤 (例如寄件備份) 都可以略過不備份。
2014年5月11日 星期日
遠端桌面連線軟體 VNC 也可以當成電子白板或廣播教學軟體來用
[改推 2024 版 同名文章。
[2017/8/8 改用 ubuntu 16.04 + tigervnc 整篇小幅度整理重寫] 我在 「商業炒作之前的雲端運算簡史」 一文當中曾經提到 Virtual Network Computing。 它讓不同的作業系統可以遠端登入、 看見彼此的桌面。 它除了可以讓你從家裡遙控辦公室的電腦之外, 也可以當做遠端開會時共用的桌面/電子白板, 或是老師派送畫面給學生看的(跨越區網)廣播教學軟體。 本文在 ubuntu 16.04 上面使用輕薄短小的 tigervnc 來展示它的用法, 並提醒一些注意事項。 至於 Windows 使用者則可以改參考相關文章或搜尋 「putty vnc 安全」:
2014年3月10日 星期一
更新 dokuwiki 講義
2012年11月28日 星期三
專業免費簡報軟體 sozi (貴哥強力推薦; prezi 的替代品)
inkscape + sozi = prezi + 開放自由
Sozi 是 inkscape 的外掛。 有了它, 就可以製作出像 prezi 一般的旋轉/縮放簡報。 請見 我用 sozi 製作的幾個簡報範例。 因為 inkscape + sozi 採用開放的向量圖檔 svg + javascript 格式存檔, 而且檔案格式非常輕巧簡潔, 所以有很多優點:
- 中文沒問題 -- 事實上任何語言都沒問題。 (這一點用 prezi 的人就比較吃虧了)
- firefox 或 chrome 等等任何支援國際標準的瀏覽器都可以看; 不需要特殊播放軟體。
- 可以放雲端、 也可以在本機播放。
- 除了 inkscape 之外, 其他支援 svg 的軟體工具應該也可以對成果圖檔做簡單的編輯。
- 甚至連文字編輯器也可以做簡單的編輯 -- 也因此, 搭配 regexp 就可讓 「批次修改簡報內容」 變得極為容易。 (我喜歡用 html 遠勝過 odt 其中最重要的原因與此相同)
- 如果你不介意動一點小手腳的話, 簡報所使用到的圖片可以用連結的方式匯入, 於是圖片檔可以重複使用而簡報檔可以很小 (不含圖片單就 svg 檔本身而言, 我所做的簡報檔都只有幾十 K 而已)
詳見 我做的簡報 以及 我寫的 sozi 教學文。