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

2025年7月25日 星期五

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

前一陣子跑去看 「國有器官」 認識 雄獅影視的管弄雲先生。 我主動建議幫他製作, 並且已經完成了: 「國有器官」放映地圖。 他們忙著更重要的事, 當然不可能請他們自己學會用 umap。 要讓他們能夠自己維護後續的新資料, 最簡單的方法就是: 我建一張 國有器官播放紀錄試算表 分享給他們, 然後我用程式把試算表的資料拉過去地圖上。 原本以為先前的 「共筆維護試算表、地圖自動更新」 可以直接拿來用, 後來才發現試算表太大 (大約超過 100 列?) 時會失敗。

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 Office365Local email from Office365 using OAUTH2 with mbsync。 這幾天先做一半: 學會用命令列進行 oauth2 授權。

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 接上去呢?

2018年4月10日 星期二

到 floydhub 租用雲端 GPU 玩人工智慧

想玩一點 AI, 又不想自己直接面對 封閉的 nVidia 顯卡驅動程式 嗎? 如果你的訓練資料沒有隱私或機密的問題, 那就上雲端租用 GPU 吧。 我採用的是 floydhub。 根據 這一篇比較文, floydhub 的效能比 AWS 跟 paperspace 略遜一籌; 不過他們以軟體環境取勝: 有許多現成的深度學習 docker 環境 可選。 而且當初我起步機器學習, 就是靠他們做的一些 docker images, 所以就寫介紹文來回饋囉。

2017年8月7日 星期一

手機連線 owncloud 私有雲行事曆

owncloud 的行事曆 想要用雲端行事曆, 就必須把我的行程通通告訴 google 嗎? 不必! 用 owncloud 架設私有雲, 你也可以從 android 手機連線讀寫個人專屬的雲端行事曆。 其實我的 owncloud 根本就是為了行事曆這個功能而架的 :-) 改推薦較新的一篇: 自己的行事曆和通訊錄自己管: nextcloud 安裝、 行事曆、 備份及手機連線

2015年9月13日 星期日

備份/清空 gmail, 以及命令列查詢/切割 mbox 格式檔案

從 google takeout 下載 gmail 查看一下 你的 google 帳號儲存空間使用狀況 吧! 以我而言, 空間用量經常佔最大宗的是 gmail。 所以每年暑假都要把一整年份的 e-mail 從雲端拉到自己的硬碟備份、 把雲端信箱清空。 尤其是 google 「封存」 的黑洞設計 更讓我平常很刻意地避免使用這個功能。 即使如此, 還是會有一些 mail 莫名奇妙地被 google 自動 「封存」。 唯有在備份完成、 把 mail 刪到剩下一點點的時候, 才比較容易順便把舊的 「封存」 郵件刪掉。

想要順利備份、清空, 平常就要養成習慣: 凡是想長久保存的 e-mail (包含自己寫得很得意的 寄件備份) 都一定要手動指定一兩個標籤。 這樣, 等到要備份時, 凡是系統自動產生的標籤 (例如寄件備份) 都可以略過不備份。

2014年5月11日 星期日

遠端桌面連線軟體 VNC 也可以當成電子白板或廣播教學軟體來用

在 Nexus S 手機的 CyanogenMod 上面執行 VNC, 連線到 antix 電腦 [改推 2024 版 同名文章。

[2017/8/8 改用 ubuntu 16.04 + tigervnc 整篇小幅度整理重寫] 我在 「商業炒作之前的雲端運算簡史」 一文當中曾經提到 Virtual Network Computing。 它讓不同的作業系統可以遠端登入、 看見彼此的桌面。 它除了可以讓你從家裡遙控辦公室的電腦之外, 也可以當做遠端開會時共用的桌面/電子白板, 或是老師派送畫面給學生看的(跨越區網)廣播教學軟體。 本文在 ubuntu 16.04 上面使用輕薄短小的 tigervnc 來展示它的用法, 並提醒一些注意事項。 至於 Windows 使用者則可以改參考相關文章或搜尋 「putty vnc 安全」:

  1. SSH X11 Forwarding
  2. 透過SSH的VNC連線
  3. 使用SSH+VNC实现安全的Linux远程桌面管理

2014年3月10日 星期一

更新 dokuwiki 講義

為了 「Web 2.0 與雲端運算」 的課, 週末整個重寫dokuwiki 講義。 為了給沒接觸過 linux、 不知道什麼是 wiki 的學生看, 這次介紹管理工作時, 以網頁介面為主, 命令列為輔, 整個變得比較簡單。 新增一節介紹 plugin, 以防止機器人灌水的 Captcha 為例。 詳見 全文

2012年11月28日 星期三

專業免費簡報軟體 sozi (貴哥強力推薦; prezi 的替代品)

inkscape + sozi = prezi + 開放自由

Sozi 是 inkscape 的外掛。 有了它, 就可以製作出像 prezi 一般的旋轉/縮放簡報。 請見 我用 sozi 製作的幾個簡報範例。 因為 inkscape + sozi 採用開放的向量圖檔 svg + javascript 格式存檔, 而且檔案格式非常輕巧簡潔, 所以有很多優點:

  1. 中文沒問題 -- 事實上任何語言都沒問題。 (這一點用 prezi 的人就比較吃虧了)
  2. firefox 或 chrome 等等任何支援國際標準的瀏覽器都可以看; 不需要特殊播放軟體。
  3. 可以放雲端、 也可以在本機播放。
  4. 除了 inkscape 之外, 其他支援 svg 的軟體工具應該也可以對成果圖檔做簡單的編輯。
  5. 甚至連文字編輯器也可以做簡單的編輯 -- 也因此, 搭配 regexp 就可讓 「批次修改簡報內容」 變得極為容易。 (我喜歡用 html 遠勝過 odt 其中最重要的原因與此相同)
  6. 如果你不介意動一點小手腳的話, 簡報所使用到的圖片可以用連結的方式匯入, 於是圖片檔可以重複使用而簡報檔可以很小 (不含圖片單就 svg 檔本身而言, 我所做的簡報檔都只有幾十 K 而已)

詳見 我做的簡報 以及 我寫的 sozi 教學文