12 小時 29 分鐘 ago
想要幫幾部 2010 年前後生產的 eeepc 安裝作業系統,
於是下載好久不見的 antix
(32 bit full 版) 回來測試。
因為等一下要把 antix 安裝到隨身碟上,
所以請先插入一顆空白隨身碟。
假設系統把它叫做 /dev/sdz 。
開一部 32bit 虛擬機來測試 iso 檔, 並且讓它看到 /dev/sdz:
qemu-system-i386 -enable-kvm -monitor stdio -vga virtio -m 2048 -cdrom antiX-23_386-full.iso -hda /dev/sdz -boot order=dc
Antix 的開機選單是我所看過的所有發行版本的 iso 檔當中最靈活的。
看 原始碼,
它是採用 Gfxboot 製作的。
(BitJam/antiX-Gfxboot)
按 F2 可以選擇語言、 按 F5 可以
ckhung
1 週 2 天 ago
最近重玩魔術方塊, 爬了很多文, 筆記一下。
一、 "8355" 法
最容易理解與記憶的, 是台灣之光許技江老師所發明的 8355 法:
理解魔術方塊原理 用思考代替公式!8355 法 <== 大推!
事實上我是在搜尋英文教學時遇到
8355 : An intuitive method to solve a Rubik's cube ! 才回頭找中文教學的。
中英文教學影片的內容簡短易懂, 而且比喻跟講解方式都好讚!
以下是給自己 (或是已看過中文影片的讀者) 看的筆記,
這樣在火車高鐵上練習的時候就不必開影片、 戴耳機。
8355 最強大的想法就是先不理會一個面 (例如黃面) 以及一條邊,
只先處理工作面的對面 (例如黃面的對面, 白面) 的八個方塊
(扣除中間, 其實只有七個)、 再處理中間層四個邊當中的其中三個。
因為留下一個面加一條邊可以當作工作區,
所以前兩
ckhung
1 個月 ago
Line 沒有很好的文字搜尋的功能、 在電腦版 (chrome 擴充套件)
上面只能保留兩週的訊息、 即使是公開的群組也沒有 https
的網址可以分享、 ... 有各種不方便。
最近寫了一隻小程式 "linespector"
可以從電腦版把某個群組的近期文字對話內容與
(低解析度) 圖片全部合併儲存到一個 sqlite 資料庫檔案裡面,
再用 php 以網頁的方式呈現。
我拿它來把社區的 line 群組轉成網頁,
在內部的網站公告。 (當然事先已徵得群組管理員與成員同意)
如果你發現它有其他的用途, 也請留言分享。
我的開發環境是: linux mint debian edition 5 (elsie)、
apache2 2.4 (已啟用 php)、 chromium 103、 python 3.9。
下載我的程式碼: linespector 並解壓縮到某個目錄。
安裝
ckhung
1 個月 ago
微軟、
蘋果 跟
google
近幾年都在用力推 「無密碼登入」; 現在連
台灣的公部門跟金融業
也都在推動。 由 FIDO 聯盟 (Fast Identity Online) 推動的無密碼驗證機制,
背後到底是如何運作的呢?
可以先略讀 iThome fido2 名詞解釋,
對 FIDO 有點初步了解。
這篇
有更多 fido 相關名詞 (簡中版 沒註明原文出處);
不過本文只關心右圖最重要的這五個名詞:
所謂 「無密碼登入」, 當然就需要改用實體的金鑰登入。
這個實體安全金鑰稱為 authenticator,
可以是你的手機或 yubikey 之類的隨身碟金鑰, 或是電腦本身裡面的
tpm2 (搭配軟體) 。
想要登入的網站 (例如臉書或 gmail) 在這些相關文獻裡稱為
relying party, 簡寫為 rp ;
你上網用的瀏覽器稱為 client。
WebAuthn
ckhung
1 個月 1 週 ago
Q: HMAC (Hash-based Message Authentication Code) 的功能是什麼?
A: 甲跟乙在網路上通訊, 甲寄訊息 m 給乙, 乙想確認 m 真的是甲寄的, 不是別人偽造的。
Q: 那就叫甲寄出 m 的時候採用 (非對稱密碼學的) 數位簽章就好了, 不是嗎?
A: HMAC 的演算法比數位簽章簡單很多, 也快很多。 特別是當甲跟乙頻繁來回簡短對話的場合, HMAC 合適多了。
Q: 那為什麼不用 HMAC 取代所有的數位簽章?
A: 數位簽章具有 不可否認性, 是 HMAC 無法取代的。 因為 HMAC 採用對稱式密碼學, 甲跟乙都需要知道一把共同的金鑰 K, 而任何知道 K 的人, 也都可以用 K 跟 m 產出讓乙滿意的訊息。 例如乙收到的 m 是一筆很大的訂單, 於是開心地備餐交貨, 結果甲說那不是我下的單, 可能是我們共用的 K 外洩了!@
ckhung
1 個月 2 週 ago
「台灣等公車」這個手機 app 算是蠻好用的, 但是還缺幾個我很需要的功能, 所以我就寫了
tdx 7984 "去坐巴士",
並且在我退休後的新網站上面提供
這個服務。
它有以下的特性與限制:
如果有一天太紅了、 太多人使用, 我可能會加上密碼保護,
只給親朋好友使用。 歡迎大家下載程式碼、
各自架設自己的服務。
它的 SSL 採用我自簽的憑證, 所以第一次造訪頁面時,
瀏覽器會出現可怕的警告畫面。 選擇信任我的憑證就對了。
反正只是查詢公車資訊而已, 就算沒有加密直接裸奔也不會怎麼樣啊。
從頭到尾只有 html 跟 css。 即使是不支援 javaScript 的文字瀏覽器也可以看。
所以不會自動更新; 需要不時手動重新整理網頁。
查詢 「經過某站牌的所有路線」 時, 後端需要呼叫很多次 tdx 的 API,
所以網頁的
ckhung
1 個月 2 週 ago
如果你想要在自己的伺服器上自行架設 tdx7984 "去坐巴士" 服務
(github 專案首頁、
使用說明)
可以這樣做:
安裝相依套件: apt install python3-flask python3-flask-cors python3-apscheduler
到交通部的運輸資料流通服務 tdx 網站註冊、 取得一組 ID 跟 secret。
詳見
我寫的簡介文。
請參考 tdx-credential.sh
先把 ID 跟 secret 設定到環境變數裡面,
也建好目錄以便存放 access_token。
執行這個 script: source tdx-credential.sh
並且確認 $TDX_TOKEN_DIR 裡面出現了一個 tdx-credential.json 檔案、
確認 echo $
ckhung
1 個月 3 週 ago
我沒有繳月費/年費訂用 uber easts。 因為久久才用一次, 都是用到時才以信用卡付費。
昨天不知道發生什麼事了, 下單之後 uber eats 突然改叫我用 line pay 付費。
Line 的控制慾超強,
我就不想用它啊! 於是取消訂單。
打開 「帳戶」 的 「錢包」 設定, 發現信用卡這個付款選項可以 「移除付款方式」,
但 line pay 不行。 而且 line pay 還被排在第一順位, 不能移動!
超可惡的, 是 uber 跟 line 同謀嗎?
這又是 UI/UX 設計的 dark patterns /
暗黑模式
的另一個例子。
最終只能每次下訂單時都很麻煩地手動把 line pay 改成信用卡。
趕快筆記一下, 如附圖。
ckhung
1 個月 3 週 ago
我在製作一個公車到站時刻的 html 表格,
其中有兩個欄位顯示一些 x/y 座標數字。
多數訪客對這些數字可能沒興趣, 說不定看了還會頭昏嫌煩。
所以我想用一個 checkbox 讓訪客可以自行決定要顯示還是隱藏那兩個欄位。
可是我又希望我的網頁不需要啟用 javascript 也可以看。
於是搜尋到一個方法, 叫做 "(css) checkbox hack":
精簡範例、
中文教學、
豐富教學。
簡單地說, 你需要一個 checkbox (叫它 C 好了)、
一個與 C 連動 (按它等同於按 C) 且顯示說明文字的 label (叫它 L 好了)、
以及一個外觀會隨著 C 的狀態而改變、 被 C 控制的標的物 (叫它 T 好了)。 像這樣:
<head>
<style>
.affected-Target {
background: #ffc;
}
ckhung
1 個月 4 週 ago
退休
後把伴我26年的古董車賣了, 現在開始過著大眾運輸+ubike的生活。
於是自製
ubike 租賃點 umap 地圖。 使用前需要先造訪一次 這個網址。
這個 "7984" 是我把 tdx api 包裝成 geojson 的一個服務, 另文再詳。
因為這個 https 服務採用我自簽的憑證, 你必須先選擇信任它,
之後造訪 umap 地圖時才可以成功載入 "7984" 所提供的 geojson 資料檔。
資料量很大, 所以我只放了台中跟高雄這兩處我的生活圈。
(後來我把每個縣市分開放在各自的圖層, 這樣訪客可以從左側「圖層」按鈕自行開關每個圖層。)
如果想要自己挑選縣市的話, 可以先學會
用 umap 建立自己的私房地圖。
然後在圖層設定選單當中, 點 「遠端資料」,
輸入上述 "7984" 網址, 意思是本圖層的資料直接從遠端網址匯入。
資料格式請設定為
ckhung
2 個月 1 週 ago
交通部把 「公共運輸整合資訊流通服務平台 ptx」
改版升級成
「運輸資料流通服務 tdx」。
查詢公車站牌、 公車目前位置等等資訊變得更方便了!
請見 範例程式
以及 市公車 API 清單與示範。
首先, 你需要註冊一個會員帳號, 然後就會自動取得一組
ID 跟 Secret。
把這組 ID 跟 Secret 填入範例程式的 tdx-credential.sh,
即可執行並取得一個 json 檔, 內含 access_token。
請把程式中的 $TDX_TOKEN_DIR/tdx-credential.json
改成你自己設定的路徑, 不要 放在 apache2
(或其他網頁伺服器) 讀得到的地方。 路徑必須是所有人可執行;
檔案本身必須是所有人可讀取。 (主要是需要讓網頁伺服器執行者
www-data 讀取。) 。
這個 tdx-credential.sh 可以
ckhung
3 個月 1 週 ago
家裡或公司的防火牆裡面有一部 24 小時開機的電腦 H, 沒有對外的 IP 位址。
另外有一部具有公開位址的伺服器 PubS。
這時可以從 H 向 PubS 啟動一個 反向 ssh 隧道連線, 像這樣:
ssh -4fNR '4380:localhost:22' ckhung@PubS
這裡的 4380 是任選的 port。
接下來就可以隨時隨地 (從網路其他任何地方) 先登入 PubS,
再從 PubS 登入 H: ssh -p 4380 localhost。
可是, 只要家裡跳電或分享器關機一陣子, 連線就斷掉, 哭哭了。
這時你需要 autossh, 它可以定時檢查連線是否暢通,
有必要時就會自動重新啟動連線。
先在 PubS 上面作一些準備。 這部分都採用 root 的身份做事。
我喜歡建立一個拉管線專用、 最低權限的機器人帳號:
useradd sshbot -m -s
ckhung
3 個月 2 週 ago
前一陣子查看了一下我的 apache 伺服器的 access.log,
發現竟然有成群結隊 (來自同一網段) 的惡意網頁爬蟲在輪流攻擊,
用 fail2ban
逐一擋根本對他們太客氣了, 甚至不一定擋得到。
於是改成連坐處分, 直接用 iptables 永久封鎖整個網段,
log 檔變得安靜多了。
請下載、 解壓縮 access.mal.log.gz。
這是我某一天的 log 檔。
一如以往, 以下大量使用 perl-compatible regular expressions。
先查看每一分鐘的流量:
perl -ne 'print "$1 $2:$3\n" if m#\[(\d\d)/[A-Z][a-z][a-z]/2023:(\d\d):(\d\d):#' access.mal.log | uniq -c | less
大部分時候, 每分鐘的瀏覽數是個位數字;
有些時段突然
ckhung
大人問小孩: 「全世界的玩具隨便你挑? 這怎麼可能?
如果我要的玩具只有一個, 正好又被別人借走了呢?」
「玩具閘門後面, 每種玩具永遠只有一個。
任何人想玩, 隨時都可以生一個複製品給你。
這裡沒有人搶玩具。 這裡是
玩具烏托邦。」
* * * *
貴哥在這裡分享自由軟體跟免費雲端工具的知識與技術, 目的是希望打破 「品牌忠誠肥羊」 們的迷思、
要「讓數位高牆倒下」 (請搜尋)。
(還有其他雜七雜八不想放到 「資訊人權貴ㄓ疑」 的筆記跟感言)
Subscribe to 玩具烏托邦 feed