想知道誰最常跟莉雅公主同框嗎? 不用人工計算,我們用幾行指令就能畫出來。
StarWars-social-network
這個專案整理了六集的星際大戰裡每一集內的角色同框頻率。
我們用 graphviz 把它畫出來, 順便學一下如何用 jq 把 json 格式轉成 csv,
以及 perl 處理 csv 檔的好用模式。
2026年1月22日 星期四
星際大戰角色同框頻率視覺化 (graphviz 飆速初體驗 / 用 jq 把 json 轉 csv / perl 的試算表模式)
2026年1月10日 星期六
(在自己電腦上執行的) 紫微斗數命盤
我建立了 ZiWeiDouShu 專案,
裡面有 perl、 python、 javascript 三個版本,
都可以在自己的電腦上執行, 不用交出你的隱私!
- 用萬年曆找出陰曆的生年月日及時辰。
- 例如甲寅年5月7日申時生, 則可在命令列上這樣執行:
> python3 ZiWeiDouShu.py 1 3 5 7 9 # 或是 perl ZiWeiDouShu.pl 1 3 5 7 9
python 版跟 perl 版都各自只有一個程式檔, 不需要其他任何檔案。 甲是1,乙是2,...癸是0(寫10也可以); 子是1,丑是2,...亥是0(寫12也可以)。 - ckhung-gem.md 是我在 gemini 裡面用的 gem, 請參考。 要詢問 AI 時, 不要貼 (輸出上方的) 命盤圖給它看, 要貼 (輸出下方) 條列式的, 它比較好解讀。 最前面手動加上一句 「G先生 19xx年生」 之類的, 重點是提供: 稱謂、 性別、 西元生年這三項 (程式沒處理的) 資訊。
- examples/ 目錄裡面有川普、 馬斯克、 習近平的命盤輸入範例可參考。
[1/16 新增離線 javascript 版] 或是確認 ZiWeiDouShu.html、 ZiWeiDouShu.css、 ZiWeiDouShu.js 這三個檔在同一個目錄裡, 然後用瀏覽器打開 html 檔、 填入生辰資訊、 按下「產生命盤」 即可。
下面就來說說這支程式的開發過程以及我的使用方式吧。
2024年8月10日 星期六
vmpk: 用電腦彈鋼琴 (或吉他、小提琴、薩克斯風...)
哇, 這個好玩; 我太後知後覺了! apt install vmpk
安裝起來就可以用電腦的滑鼠或鍵盤彈鋼琴囉!
圖形介面上的 "program" 可以選吉他、小提琴、薩克斯風、豎笛、人聲、音樂盒、...等等其他音色。
預設的鍵盤有點太短。 請下載我建的
double.xml
放在 /usr/share/vmpk 底下,
並且從 "edit" => "keyboard map" => "open" => "確定" 載入新的定義。
鍵盤可以彈的音域當然比圖形介面顯示的小。
如果想整個調高八度或十六度, 可以修改圖形介面上的 "Base Octave"。
如果想調降八度, 可以這樣修改 double.xml:
perl -i.bak -pe 's/(\d\d)/$1-12/e' double.xml
並且重新載入定義檔。
2024年7月18日 星期四
tdx7984: 自架公車到站時間查詢服務, 2407 版
2407 版的 tdx7984 "去坐巴士" 出爐囉! 終端使用者的 使用方式 沒有改變。 查詢 「經過某一站牌的所有路線」 希望有變快一點, 因為舊版要針對每一路線去呼叫 tdx 服務 (很傷我的點數!) 新版則是查詢靜態的資料庫, 而資料庫每天半夜才更新一次。 修了很多 bugs, 現在應該比較不容易當掉。 熱門 (有很多路線經過) 的站牌, 會出現好幾條路線都查不到 「下一站」 的資訊, 可能是因為我的會員等級太低, 所以後台一直出現 API rate limit exceeded 的錯誤訊息。 我只測試台北、台中、高雄; 光是這樣, 就已經看到不少資料不一致或不全的狀況, 甚至一個縣市自己內部的資料就互相打架, 例如台北市 221 號公車的 SubRouteUID, 有時叫做 TPE10415 有時叫做 TPE104150。
2024年4月11日 星期四
設定輕巧視窗環境 icewm
先前 在 eee pc 上面安裝 debian 時, 需要找一個輕量級的視窗管理員, 其中最關鍵的參數是記憶體用量。 這篇文章 比較十幾個視窗管理員, 看到 icewm 時就毫不猶豫地選它了, 因為它是我二十幾年的老朋友。 本文描述的是 debian 12.5 (bookworm) 上的 icewm 3.3.1。
2023年10月14日 星期六
tdx7984: 自架公車到站時間查詢服務
本文已過時作廢。 請改看新版: tdx7984: 自架公車到站時間查詢服務, 2407 版
如果你想要在自己的伺服器上自行架設 tdx7984 "去坐巴士" 服務 (github 專案首頁、 使用說明) 可以這樣做:
2023年10月10日 星期二
tdx7984 "去坐巴士": 「過某站所有路線」 按照 「下一站站名」 排序的公車到站時刻網頁服務
「台灣等公車」這個手機 app 算是蠻好用的, 但是還缺幾個我很需要的功能, 所以我就寫了
tdx 7984 "去坐巴士",
並且在我退休後的新網站上面提供
這個服務。
它有以下的特性與限制:
2022年9月18日 星期日
ip 指令漂亮列印
查看所有網卡裝置的指令 ip a 印出來的資料令人眼花撩亂;
可是大部分我都看不懂也沒在看。 可以只印看得懂的欄位就好嗎?
如果你的網路知識跟我一樣弱, 想要略過大部分資訊, 可以先安裝 zq,
然後在 ~/.bashrc 裡面加上這一句:
alias ipa="ip -j a | zq -f csv 'over this | {ifname,address,ip_addr:missing(addr_info[0].local)?\"\":addr_info[0].local} | fuse' - | column -s, -t"
那麼下次進入 bash, 就可以用 ipa 指令查看精簡版的資訊。
2022年8月13日 星期六
用 lynx 快速瀏覽很多文字檔
有時候我會從某個網站一口氣抓下很多 html 檔, 方便離線閱讀。
在 linux 命令列上:
lynx ~/放很多html檔的某個目錄/
接下來就可以用左右方向鍵進入和退出每個檔案, 逐一閱讀。
從省著用手指的角度來看,
這比雙擊滑鼠和下指令都要省力很多。
txt 檔或是沒有副檔名的 README 等等當然也適用。
2022年7月30日 星期六
減少 ssd 與隨身碟讀寫, 2022 版
一般正常使用電腦, 除了作業系統本身之外,
最常寫入硬碟的軟體,大概是瀏覽器吧。
對於機械式硬碟, 這不是什麼問題。
但如果你的 linux 裝在 ssd 或開機隨身碟上, 就應該考慮採用
psd
來減少瀏覽器對隨身碟的讀寫。
可是它並沒有管到 ~/.cache 目錄。
搜尋到
psd 作者的建議: 在 /etc/fstab 裡面放一句:
tmpfs /home/你的ID/.cache tmpfs noatime,nodev,nosuid,size=120M
這會把 ~/.cache 放到 120M 大小的記憶體裡, 以後每次開機就會看到一個空的 ~/.cache ,
很多 apps (不只瀏覽器, 還有 gimp、 virt-manager 等等)
最頻繁的讀寫都會變成在記憶體裡發生, 關機後就忘光。
這麼做之後, 每次開機之後第一次點 (上次關閉前正開啟著的) firefox
某個分頁, 它就必須重新載入那個分頁,
而且開太多分頁時偶爾會當掉。 除此之外, 好像沒有什麼不良的效果。
至於
保護 ssd 的其他措施, 我已經好幾年都沒有做了耶; 到目前為止好像也沒什麼關係。
2022年5月7日 星期六
我的 termux 經驗與設定
想要在 android 手機或平板上使用命令列, 透過 usb 線下 adb 指令 是一個方法。 另一個方法是從 f-droid 市集 安裝 termux。 這個環境更接近 GNU/Linux。 這篇文章 已有詳盡的教學, 本文就不重複了, 只補充一些額外的心得。
2021年9月11日 星期六
pdmenu 幫麻瓜製作常用功能文字選單
像我天天在用
regular expressions、 命令代換 $(...)、 pipe 等等工具,
把很多小工具湊起來解決自己日常生活的轉檔/撈資料等等問題,
如果有人願意請我幫他檢視經常性的電腦工作流程,
一定可以發現很多重複性、 機械化的動作其實都可以用簡單兩三句
perl + shell script 解決。
(可惜連老婆都不覺得她需要我幫忙, 更不想改用 linux...)
總之假設你身旁有一位已被你說服用 linux 的電腦麻瓜,
而且你已幫他寫了很多 scripts。 下一步就是用
pdmenu
把這些 scripts 包成一個文字選單,
讓他可以用快速鍵或滑鼠點選執行你幫他寫的 scripts。
2021年9月7日 星期二
齊步走! 用 netcat 同步指揮教室裡的所有電腦
電腦教室裡有幾十部電腦, 想要把一個大檔一次同步派送給所有電腦, 可以用 udpcast; 那如果想要一次同步指揮所有電腦呢? 就用 netcat!
2021年9月5日 星期日
pocketsphinx 語音指令實驗
我的手指被我操到快廢掉了 :-(
趕快研究一下語音下指令。 觀念上是可行的。
需要先安裝這幾個套件:
apt install pocketsphinx pocketsphinx-en-us xdotool
2021年2月15日 星期一
用遙控器切換視窗、 切換火狐分頁
今天的目標是要用紅外線遙控器切換視窗、 切換火狐分頁。 假設你已設定好 HP Media Center infrared transceiver, 把有興趣的按鍵映射到某些平常用不到的按鍵名稱 (KEY_*), 或是你已設定好 xenta se340d 紅外線電腦遙控器/接收器 的少數幾顆可客製化按鍵。 總之請先用簡單的應用程式確認你的遙控器搭配 ~/.xbindkeysrc 已可運作。 (見本月前兩三篇文章)
2021年2月14日 星期日
2020年11月17日 星期二
grml 客製化筆記
Grml 是專門為網管/系統管理員所設計的羽量級 linux, 官網的 small 版只有 350M; 即使是 貴哥實驗室版 (grml64-small-g20?.iso) 也不到500M, 很容易就可以 boot to ram 毫邁帥氣裸奔。 它本身就提供了 grml2usb 指令可以把系統安裝到 usb 上變成可開機隨身碟。 不過我習慣用 extlinux 來處理開機的部分, 因為它的設定比 grub2 簡單很多, 只需要改設定檔、 把檔案放對位置就好。 假設你用 貴哥版的 ulyana 開機、 假設你的隨身碟是 /dev/sdz, 其中第一分割 /dev/sdz1 已經格式化為 fat32。
2020年10月9日 星期五
usb 喇叭雜音改用手機充電簡單解決
最近敗了一部新的桌機, 原本在舊機器用得好好的 usb 喇叭, 在新機器上出現了持續不斷的雜音。 換了兩組喇叭都一樣, 原本都快要抱上車送修了, 又突然想到用耳機測試一下, 結果耳機竟然正常沒雜音! 那兩組喇叭都是耳機線加 usb 電源線很便宜的那種, 所以結論很明顯: 雜音是 usb 供電造成的。 於是改用手機的 usb 充電器供電給喇叭, 雜音果然就沒了。 搜尋 「usb 喇叭 雜音」 可以看到不少文章, 很多大大說這種 「usb 只供電不傳訊號」 的喇叭品質較差, 若是 「只有一條 usb 線、 不需要接耳機線」 的喇叭, 因為傳的是數位訊號, 當然也就不會有這個問題, 而且喇叭有內建音效卡, 品質較好。 買較高級的喇叭當然也是一個解決方法; 不過如果同樣的便宜喇叭在某些電腦上可以在另外的電腦卻不行, 那是不是也意謂著有雜音的電腦的主機板或電源供應器確實有雜訊呢? 而且我的耳朵沒那麼好, 只要沒有雜音, 其實真的分不出喇叭的等級。 總之現在多了一個 usb 充電器, 我的接線有點亂, 但反正藏在電腦背後看不見; 不必換喇叭又能恢復不錯的聲音品質, 開心啦!
2020年7月20日 星期一
離線萬國字典 QuickDic
我不時會把手機切到飛航模式 (例如在高鐵上), 專心閱讀文章。 可是讀英文文章總會遇到陌的生單字... 這時候就需要離線萬國字典 QuickDic。
字典檔要另外下載 (太多排列組合了)。 可是在 app 裡面下載, 一直失敗, 即使手動開放 「儲存空間」 權限也沒有用。 找到 這個 issue 看來最簡單的方式是手動下載。 於是用電腦瀏覽 萬國字典庫、 下載我要的幾本字典、 用 primitive ftpd 或 adb 把檔案傳到手機上, 直接放在這個目錄底下: /sdcard/Android/data/de.reimardoeffinger.quickdic/files/ (保留原來的 .zip 格式, 不要解壓縮)
裝好之後, 回到 quickdic 還是看不到字典。 改開啟檔案總管, 點選字典檔, 再選用 QuickDic 開啟, 那本字典就會出現在 「Dictionaries on device」 清單當中。 點進一本字典, 就可以搜尋單字囉。 字典的內容來自 wiktionary , 經常會有一兩個例句, 很有幫助。 可以自己產生/更新字典檔嗎? 產生字典檔的程式碼 沒有註解, 懶得研究。 沒關係, 現在沒在教英文課, 對我來說, 這樣就夠了; 需要知道更多的話, 等連上網路時再來 google。
2018年11月4日 星期日
novnc: 有瀏覽器就可以連上線的遠端桌面
VNC 是遠端桌面連線程式, 也可以當成電子白板或廣播教學軟體來用。
以前就有聽說過: 如果採用 novnc,
那麼客戶端可以不必安裝任何程式, 只要有瀏覽器就可以連線。
這學期我終於開始用這個方法上課。
大人問小孩: 「全世界的玩具隨便你挑? 這怎麼可能?
如果我要的玩具只有一個, 正好又被別人借走了呢?」