2022年12月11日 星期日

用 zq 處理 json 檔第二層陣列的語法

zq 簡介文 當中我們用 over 來簡單處理 json 檔裡面的一層陣列; 今天我學會處理第二層陣列的方法。 今天的測試資料檔是 「台中市公車的所有路線及所有停靠站」。 如果你有自己的 tdx 服務 的帳號, 可以把下面這段裡面的 「私密目錄」、 「用戶ID」、 「用戶密碼」 及 「都市名稱」 四個地方改成自己合適/想要的值。 如果沒有 tdx 的帳號, 也可以直接下載 我預先抓回來的版本 並解壓縮。

2022年10月30日 星期日

運輸資料流通服務 tdx 範例

交通部把 「公共運輸整合資訊流通服務平台 ptx」 改版升級成 「運輸資料流通服務 tdx」。 查詢公車站牌、 公車目前位置等等資訊變得更方便了! 請見 範例程式

2022年10月6日 星期四

支援 UEFI 光碟的開機載入程式 rEFInd

refind boot loader 的開機畫面 開機管理員我一直偏好用 extlinux 因為它的設定比 grub 簡單, 錯誤訊息也很清楚, 採用 UEFI模式從硬碟或隨身碟開機 也沒有問題。 唯一的問題是: 想要用 extlinux 做 UEFI 版的 iso 開機映象檔, 卻一直失敗。 看了 這一頁比較表, 決定試試看 rEFInd。 成功的用它製作 g22B 版的貴哥實驗室 iso 檔, 趕快筆記大推一下。

2022年9月27日 星期二

電腦教室的 bridge 同名之亂

虛擬機通常躲在 host 的後面, 區網的其他機器看不到虛擬機的 IP。 這樣比較安全但也比較不方便。 我在電腦教室要叫學生互相檢查或攻擊同學的虛擬機, 這時就需要用 bridge (橋接器) 把虛擬機提升到跟 host 位於相同的區網。

觀念上來說, 需要做的事包含:

  1. 建立一個虛擬 bridge, 比方說叫做 brext 好了。
  2. 停用 eth0。
  3. 把實體網卡 eth0 接在 brext 底下。
  4. 透過 brext 對外尋求 dhcp 服務。 (Host 的網路又恢復連線。)
  5. 以後虛擬機的網路也都接在 brext 上。

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年9月5日 星期一

TGOS 批次地址查經緯度 + umap 私房地圖範例: 清冠一號中醫診所地圖

清冠一號中醫診所地圖 [本來想重寫 TGOS 的教學文, 做這張圖時才發現 umap 已中文化, 介面改了不少, 而且有提供 cluster map 的功能, 就乾脆連 umap 教學也一起重寫。] 接續前一篇 轉碼 big5 除錯記, 已經得到整理過的清冠一號中醫診所地址檔 3.csv。 (仍舊是 utf8 編碼, 但不會讓 iconv 消化不良。) 下一步要轉成 TGOS 規定的格式。

2022年9月4日 星期日

轉碼 big5 除錯記

雖然偶爾才遇到... utf8 轉碼 big5 很討厭, 因為 big5 的字集比較小, 會有很多字轉不過去。 今天拿 衛服部「清冠一號動態表」 的中醫診所地址清單做例子, 因為 地址轉經緯度的 TGOS 服務 要求輸入檔案必須採用 big5 編碼。

2022年8月14日 星期日

繪製 (公共腳踏車租賃地點、公車站牌、...) 群聚(地)圖不必改程式碼

leaflet cluster map: 以台中公共腳踏車租賃地點為例 上個學期教資料視覺化, 其中一個主題是繪製客製地圖, 就做了這個例子: 台中公共腳踏車租賃地點。 像這種 marker 個數太多太密集的地圖, 需要用 cluster map 來做, 當訪客拉近 (zoom in) 時, 才把一個 cluster 拆成更多個小的 clusters。

這個無法用單純的 umap 來做。 [9/7 現在發現 umap 可以製作 cluster map 了, 更簡單! TGOS 批次地址查經緯度 + umap 私房地圖範例: 清冠一號中醫診所地圖] 請先下載 程式碼, 然後用瀏覽器打開其中的 index.html, 拉近拉遠測試一下。 如果是 firefox, 要先到 about:config 裡面把 security.fileuri.strict_origin_policy 設成 false; 如果是 chromium, 必須先關掉所有 chromium 視窗, 再從命令列上重新啟動: chromium --allow-file-access-from-files 。 詳見 javascript Can Read Local Files

2022年8月13日 星期六

用 lynx 快速瀏覽很多文字檔

有時候我會從某個網站一口氣抓下很多 html 檔, 方便離線閱讀。 在 linux 命令列上: lynx ~/放很多html檔的某個目錄/ 接下來就可以用左右方向鍵進入和退出每個檔案, 逐一閱讀。 從省著用手指的角度來看, 這比雙擊滑鼠和下指令都要省力很多。 txt 檔或是沒有副檔名的 README 等等當然也適用。

2022年8月1日 星期一

升級 LMDE 5 筆記

最近把系統升級到 LMDE 5 Elsie (Linux Mint Debian Edition), 也順便更新了 貴哥實驗室的 iso 檔, 這裡很快筆記一下一些小問題。

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年7月11日 星期一

每一句都可以讀得懂的最精簡 webpack 設定檔 + js toolchain 新手的行前說明

Javascript 語言本身已經 令程式設計師愛恨交織; 它的工具鏈 (toolchain) 更令人眼花撩亂。 去年 我很匆促地學了一點 webpack, 今年好像又不夠用了。 不同時期不同作者的設定檔都差好多, 其中很多也不適用於新版。 越爬文越迷惘, 覺得自己怎麼那麼弱, 都快要哭出來了... 偶然搜尋到這篇: A Crash Course in Modern JavaScript Tooling, 聽到作者安慰: "It's not your fault." 突然覺得獲得救贖, 原來很多 python 族都跟我有相同的感覺! 這次沒有時間壓力, 花了快一個月終於建立了一個最精簡的骨架程式 jstc-novice, package.json 跟 webpack.config.js 裡面的每一句話都看得懂, 可以作為 (已略熟 javascript, 包含會開啟 console 除錯的) webpack 初學者的出發點。 JS 的工具鏈有很多雷, 建議看程式碼之前先很快讀一下本文, 就像是旅遊之前的行前說明一樣, 對於避免踩雷很重要。