tag:blogger.com,1999:blog-7515869156331230672024-03-18T11:01:21.454+08:00玩具烏托邦<img src="https://ckhung.github.io/a/m/s/edu-apps.jpg" align="right" width="200">
大人問小孩: 「全世界的玩具隨便你挑? 這怎麼可能?
如果我要的玩具只有一個, 正好又被別人借走了呢?」<br>
「玩具閘門後面, 每種玩具永遠只有一個。
任何人想玩, 隨時都可以生一個複製品給你。<br>
這裡沒有人搶玩具。 這裡是 <a href="https://www.cyut.edu.tw/~ckhung/g/bsp.php?id=095f">
玩具烏托邦</a>。」<br>
* * * *<br>
貴哥在這裡分享自由軟體跟免費雲端工具的知識與技術, 目的是希望打破 「品牌忠誠肥羊」 們的迷思、
要「讓數位高牆倒下」 (請搜尋)。 <br>
<br>
(還有其他雜七雜八不想放到 「資訊人權貴ㄓ疑」 的筆記跟感言)ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.comBlogger498125tag:blogger.com,1999:blog-751586915633123067.post-15209531798106131892024-02-18T21:37:00.011+08:002024-02-27T08:52:41.191+08:00遠端桌面連線軟體 VNC 也可以當成電子白板或廣播教學軟體來用, 2024 版
這幾天正在用虛擬機安裝 debian 12.5 "bookworm", 等完成再來寫筆記。
今天先把 bookworm 上面安裝 tigervnc 及中文輸入法時遇到的問題記錄下來。
一、 tigervnc
如上所述, 我的環境是 debian 12, KDE plasma 版,
選擇預設的 wayland 架構登入, 預設的輸入法是 fcitx。
終端機開兩個分頁, 一個用 root 的身份做事; 另一個維持 stux, 等一下要切來切去。
一如 以往,
先以 root 身份安裝 tigervnc, 以及完全錯開的桌面環境與輸入法:
apt install tigervnc-standalone-server tigervnc-viewer tint2 openbox gcin
現代版的 vnc 採用 systemctl 控制。
請先閱讀 /usr/lib/ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com1tag:blogger.com,1999:blog-751586915633123067.post-17921649499527988492024-02-05T20:28:00.006+08:002024-02-05T20:30:18.617+08:00播放 midi 音樂, 馬虎版今天終於學會播放 midi 音樂!
暫時先不管播放品質了, 可以盡快試車比較重要。
我的測試環境是 LMDE 5 (Elsie);
主要參考 archlinux 的教學文;
我猜大部分 debian 系列應該也都可以。
先安裝套件:
apt install fluidsynth fluid-soundfont-gm pmidi
其中 fluidsynth 負責把 midi 檔轉成普通的聲音格式;
fluid-soundfont-gm 是各種樂器音色集; pmidi 則是命令列的 midi 播放軟體。
安裝完成後, 系統會多出一個 "fluidsynth" 的 user service。
編輯系統設定檔 /usr/lib/systemd/user/fluidsynth.service
閱讀內容, 可以猜到: 個人設定檔是 ~/.config/fluidsynth 。
可以複製過去並ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-35043717960745567382024-02-03T15:48:00.001+08:002024-02-03T15:48:12.395+08:00手動製作一長串討論的網頁圖文備份
我經常 用網路時光機備份歷史。
但是遇到有 javascript 的頁面, wayback machine 有時會失敗。
又例如噗浪的討論串如果太長, 「較早的留言」 可能需要手動點才會顯示。
這時只好手動備份。
今天就拿 烏克蘭拉攏中國討論串
來作例子, 示範如何手動備份網路時光機備不下來的網頁。
首先備份文字。 在 firefox 裡面按 ctrl-shift-i, 下方出現除錯窗格。
確認所有的留言都已展開之後, 點窗格左上角的 「箭頭加方框」 進入選擇元件的模式。
移動滑鼠, 會看到網頁上不同的區域亮起來,
同時下方對應的 html 段落也會跟著稍微變亮。
把滑鼠移到想要備份的文字外框, 點下去,
就等同於選取了下方對應的 html 段落。
在那個段落上面按滑鼠右鍵、 選複製、 內部 html,
就可以把它的內容貼到 geany 或其他文字編輯器上面。
再按一次 ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-77500905447042474122024-01-30T16:03:00.001+08:002024-01-30T16:05:59.323+08:00vosk: 影片/音檔聽寫機
我比較喜歡閱讀; 不太喜歡看影片/聽podcast。
找到 summarize.tech
這個網站不錯, 餵它一部英文 youtube 影片連結, 就幫你產生文字摘要。
但是它好像只吃有附字幕檔的影片。 那如果是其他語言呢?
我試了
一部自動產生字幕的西班牙文影片, 它會產生英文的文字摘要。
那如果是用 video downloadhelp 抓回來的影片呢? 如果想離線使用呢?
那就安裝 vosk,
在自己的電腦上離線產生各種語言的字幕檔吧!
先安裝 ffmpeg 與 vosk: apt install ffmpeg ;
pip3 install vosk 再查詢它安裝的位置:
pip3 show vosk
例如在我的系統上, 顯示 Location 是:
/home/ckhung/.local/lib/python3.9/site-packages
於是找到
/home/ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-51566081622863637142024-01-24T15:08:00.002+08:002024-01-24T15:13:55.491+08:00DBeaver: 支援多種 DBMS 的資料庫管理圖形介面工具循著 組合的力量、
長線學習投資 的思考模式, 我同樣也認為:
管理、編輯資料庫時所需要的圖形界面 (GUI) 軟體不應該跟特定的 DBMS 綁在一起。
採用跨資料庫的 GUI, 你的學習投資才可以一魚好幾吃。
支援各種不同 DBMS (例如 sqlite、 mariadb、 postgresql、 ms sql、 oracle、 ...) 的圖形界面軟體工具
有很多, 今天介紹 DBeaver。
從官網 下載、安裝之後,
第一次打開, 我看到的卻是簡體中文介面。
沒關係從 「窗口」=>「首选项」進去, 在 「用戶介面」
裡面可以改選 「繁體中文」, 最後點 「应用并关闭」,
下次再開啟時就是正體中文了。
另外, 第一次打開時 dbeaver 會問你是否要建立 sample database。
建議點 yes, 讓它自動幫你建立一個 sqlite 範例資料庫, ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-742824859824492022024-01-21T22:12:00.006+08:002024-02-03T22:01:59.585+08:00自學 SQL 語法? sqlite 幫你閃電入門![我失憶了嗎? 2022/4 早就寫過一篇差不多的:
SQL 自學起手式]
關於資料庫這門課, 我一直覺得最值得初學者花時間的有趣地方是
ER model 跟 select 指令的各種花式變化。
也一直覺得很多同學很可憐, 被帶著從 Oracle
或 MS SQL 的管理開始學起,
光是設定帳號密碼, 熱情跟好奇心就被澆了一些冷水。
就連自由軟體 PostgreSQL 或 mariaDB 我也覺得並不適合新手。
最適合新手的, 是不必帳號密碼、 沒有複雜管理系統、
直接以一個檔案儲存一個資料庫的 sqlite!
在 debian 系列上: apt install sqlite3
把它安裝起來吧!
一、 建立表格、 從 csv 匯入資料
下載 太陽系天然衛星軌道常數表:
wget https://github.com/ckhung/scatplot/raw/ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-18470442942147787592023-12-30T16:53:00.005+08:002023-12-31T10:48:04.007+08:00用亞馬遜的 ec2 雲端主機自架 stable diffusion在 Amazon 的 AWS 上面重新安裝一次 (其實是好幾次) stable diffusion。
這次用比較簡單的做法。 反正 SD 自己會建立所需要的 python 環境,
所以其實不需要用 CloudFormation, 也不需要特別找
"deep learning" 類型的 AMI (Amazon Machine Image)。
直接從比較簡單的 建立一個 ec2 instance 開始。
建立過程當中, 我做以下的選擇與設定:
region 選擇 us-west-2 也就是 Oregon、 機型選擇 g4dn-xlarge,
因為根據 這一篇,
這樣的組合比較便宜。
硬碟最少最少 15G(系統加軟體)+5G(模型)=20G。
我採用兩顆: root 40G(每加一位用戶需要多5G,打算給4人使用)、
放模型的共用倉儲區 40G。
作業系統選擇 ubuntu 系列最新的ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-35660376310451059822023-12-23T17:54:00.008+08:002023-12-30T16:55:06.428+08:00自架 aws 雲端主機上的 stable diffusion[2023/12/30] 改推另一篇:
用亞馬遜的 ec2 雲端主機自架 stable diffusion
終於架好自己的 stable diffusion! 簡單筆記一下參考的連結。
因為我有 aws 的優惠, 所以基本上就照著這篇做:
用 AWS CloudFormation 架設 AUTOMATIC1111 版的 SD。
我這篇的篇名應該加上 「補遺」 才對,
因為重點根本都在 koding work 的文章裡面, 請大家自己去讀 :-)
準備 yaml 檔時, 因為我的帳號內已有自己常用的 ssh key 跟 SecurityGroup,
所以 "Resources" 那一章底下 (建立新的) EC2Key 跟 SecurityGroup 兩節直接省略。
然後 "EC2Instance" 那一節底下的 "Properties" 小節裡面的
KeyName 欄位直接填ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-31056982188497815552023-12-07T20:37:00.000+08:002023-12-07T20:37:27.323+08:00radeon-profile 編譯筆記終於又有時間可以玩我的 Radeon RX580 GPU 了!
找到 這篇 介紹一些檢視 AMD GPU 的軟體。
今天先從 radeon-profile 開始吧。
這兩天我的 OS 是 LMDE5,
可是 radeon-profile 沒有現成的 debian 套件, 需要自己編譯。
不想把我的環境弄得太亂, 決定在 docker 裡面編譯。
一開始找到 docker-debuild
(github)
以下就是採用這個 docker 的編譯過程。
但後來發現用別的映像檔比較好。 下詳。
cd ~/git/
git clone git@github.com:lucisgit/docker-debuild.git
sudo docker run -it --name debuild -v ~/git:/package --entrypoint /bin/bash lucisgitckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-55216266893501373112023-12-04T16:51:00.003+08:002023-12-04T16:51:49.391+08:00antix 23 兩種客製化方式: remaster 跟 snapshot先前介紹過 antix linux 的 frugal 與 persistence。
今天來介紹客製化的方法: remaster 跟 iso snapshot。
兩種方法的最大好處都是: 可以讓你用很少的硬碟空間, 把調整過的好用環境備份起來。
以下假設你已先採用 frugal 的方式把 antix 安裝在至少 8G 的隨身碟上,
並且設定至少 1G 的 persistence 。 (系統約 2G、 persistence 1G、
swap 1G、 新產生的客製版約 2G、 新的 persistence 1G)
我是採用 virt-manager
啟動隨身碟上的 antix 23 frugal/persistence install。
客製化的過程中, 從 host 用 ssh 登入, 用 apt install 安裝套件,
如果安裝命令列套件, 就沒有問題;
但凡是有安裝到 Xckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-76685833050538847282023-11-12T19:48:00.009+08:002023-11-23T08:24:16.304+08:00魔術方塊筆記
最近重玩魔術方塊, 爬了很多文, 筆記一下。
一、 "8355" 法
最容易理解與記憶的, 是台灣之光許技江老師所發明的 8355 法:
理解魔術方塊原理 用思考代替公式!8355 法 <== 大推!
事實上我是在搜尋英文教學時遇到
8355 : An intuitive method to solve a Rubik's cube ! 才回頭找中文教學的。
中英文教學影片的內容簡短易懂, 而且比喻跟講解方式都好讚!
以下是給自己 (或是已看過中文影片的讀者) 看的筆記,
這樣在火車高鐵上練習的時候就不必開影片、 戴耳機。
8355 最強大的想法就是先不理會一個面 (例如黃面) 以及一條邊,
只先處理工作面的對面 (例如黃面的對面, 白面) 的八個方塊
(扣除中間, 其實只有七個)、 再處理中間層四個邊當中的其中三個。
因為留下一個面加一條邊可以當作工作區,
所以前兩ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-25933409107830137262023-10-29T09:41:00.002+08:002023-10-29T09:42:48.268+08:00圖解無密碼登入的 non-resident key 機制微軟、
蘋果 跟
google
近幾年都在用力推 「無密碼登入」; 現在連
台灣的公部門跟金融業
也都在推動。 由 FIDO 聯盟 (Fast Identity Online) 推動的無密碼驗證機制,
背後到底是如何運作的呢?
可以先略讀 iThome fido2 名詞解釋,
對 FIDO 有點初步了解。
這篇
有更多 fido 相關名詞 (簡中版 沒註明原文出處);
不過本文只關心右圖最重要的這五個名詞:
所謂 「無密碼登入」, 當然就需要改用實體的金鑰登入。
這個實體安全金鑰稱為 authenticator,
可以是你的手機或 yubikey 之類的隨身碟金鑰, 或是電腦本身裡面的
tpm2 (搭配軟體) 。
想要登入的網站 (例如臉書或 gmail) 在這些相關文獻裡稱為
relying party, 簡寫為 rp ;
你上網用的瀏覽器稱為 client。
WebAuthnckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-36977840471238983852023-10-21T17:34:00.008+08:002023-10-21T17:45:30.978+08:00由淺入深的白話 HMAC 問答
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 外洩了!@ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-42373003201209743002023-10-20T13:41:00.015+08:002023-12-04T16:59:32.672+08:00antix 23 的 frugal 與 persistence想要幫幾部 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 可以ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-70334947734375963112023-10-14T08:46:00.003+08:002023-10-14T08:46:39.309+08:00tdx7984: 自架公車到站時間查詢服務
如果你想要在自己的伺服器上自行架設 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 $ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-77481883776415672712023-10-10T11:01:00.009+08:002023-10-14T08:47:59.104+08:00tdx7984 "去坐巴士": 「過某站所有路線」 按照 「下一站站名」 排序的公車到站時刻網頁服務
「台灣等公車」這個手機 app 算是蠻好用的, 但是還缺幾個我很需要的功能, 所以我就寫了
tdx 7984 "去坐巴士",
並且在我退休後的新網站上面提供
這個服務。
它有以下的特性與限制:
如果有一天太紅了、 太多人使用, 我可能會加上密碼保護,
只給親朋好友使用。 歡迎大家下載程式碼、
各自架設自己的服務。
它的 SSL 採用我自簽的憑證, 所以第一次造訪頁面時,
瀏覽器會出現可怕的警告畫面。 選擇信任我的憑證就對了。
反正只是查詢公車資訊而已, 就算沒有加密直接裸奔也不會怎麼樣啊。
從頭到尾只有 html 跟 css。 即使是不支援 javaScript 的文字瀏覽器也可以看。
所以不會自動更新; 需要不時手動重新整理網頁。
查詢 「經過某站牌的所有路線」 時, 後端需要呼叫很多次 tdx 的 API,
所以網頁的ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-75623141087983712402023-10-09T14:21:00.000+08:002023-10-09T14:21:12.007+08:00uber easts 使盡手段要我用 line pay ; 拒絕的方法
我沒有繳月費/年費訂用 uber easts。 因為久久才用一次, 都是用到時才以信用卡付費。
昨天不知道發生什麼事了, 下單之後 uber eats 突然改叫我用 line pay 付費。
Line 的控制慾超強,
我就不想用它啊! 於是取消訂單。
打開 「帳戶」 的 「錢包」 設定, 發現信用卡這個付款選項可以 「移除付款方式」,
但 line pay 不行。 而且 line pay 還被排在第一順位, 不能移動!
超可惡的, 是 uber 跟 line 同謀嗎?
這又是 UI/UX 設計的 dark patterns /
暗黑模式
的另一個例子。
最終只能每次下訂單時都很麻煩地手動把 line pay 改成信用卡。
趕快筆記一下, 如附圖。
ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-53557431998061365332023-10-07T21:02:00.009+08:002023-10-08T13:24:18.906+08:00css checkbox hack
我在製作一個公車到站時刻的 html 表格,
其中有兩個欄位顯示一些 x/y 座標數字。
多數訪客對這些數字可能沒興趣, 說不定看了還會頭昏嫌煩。
所以我想用一個 checkbox 讓訪客可以自行決定要顯示還是隱藏那兩個欄位。
可是我又希望我的網頁不需要啟用 javascript 也可以看。
於是搜尋到一個方法, 叫做 "(css) checkbox hack":
精簡範例、
中文教學、
豐富教學。
簡單地說, 你需要一個 checkbox (叫它 C 好了)、
一個與 C 連動 (按它等同於按 C) 且顯示說明文字的 label (叫它 L 好了)、
以及一個外觀會隨著 C 的狀態而改變、 被 C 控制的標的物 (叫它 T 好了)。 像這樣:
<head>
<style>
.affected-Target {
background: #ffc;
}ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-72263767526079079412023-10-02T15:54:00.006+08:002023-10-05T09:24:02.568+08:00自製 ubike 租賃站點地圖
退休
後把伴我26年的古董車賣了, 現在開始過著大眾運輸+ubike的生活。
於是自製
ubike 租賃點 umap 地圖。 使用前需要先造訪一次 這個網址。
這個 "7984" 是我把 tdx api 包裝成 geojson 的一個服務, 另文再詳。
因為這個 https 服務採用我自簽的憑證, 你必須先選擇信任它,
之後造訪 umap 地圖時才可以成功載入 "7984" 所提供的 geojson 資料檔。
資料量很大, 所以我只放了台中跟高雄這兩處我的生活圈。
(後來我把每個縣市分開放在各自的圖層, 這樣訪客可以從左側「圖層」按鈕自行開關每個圖層。)
如果想要自己挑選縣市的話, 可以先學會
用 umap 建立自己的私房地圖。
然後在圖層設定選單當中, 點 「遠端資料」,
輸入上述 "7984" 網址, 意思是本圖層的資料直接從遠端網址匯入。
資料格式請設定為 ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-48743679638759603882023-08-25T10:58:00.012+08:002023-10-31T08:49:13.139+08:00linespector: 半手動備份 line 文字對話內容與低解析度圖片
Line 沒有很好的文字搜尋的功能、 在電腦版 (chrome 擴充套件)
上面只能保留兩週的訊息、 即使是公開的群組也沒有 https
的網址可以分享、 ... 有各種不方便。
最近寫了一隻小程式 "linespector"
可以從電腦版把某個群組的近期文字對話內容與
(低解析度) 圖片全部合併儲存到一個 sqlite 資料庫檔案裡面,
再用 php 以網頁的方式呈現。
我拿它來把社區的 line 群組轉成網頁,
在內部的網站公告。 (當然事先已徵得群組管理員與成員同意)
如果你發現它有其他的用途, 也請留言分享。
我的開發環境是: linux mint debian edition 5 (elsie)、
apache2 2.4 (已啟用 php)、 chromium 103、 python 3.9。
下載我的程式碼: linespector 並解壓縮到某個目錄。
安裝 ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com1tag:blogger.com,1999:blog-751586915633123067.post-44661903564389668012023-08-12T18:17:00.004+08:002023-08-24T16:31:01.128+08:00autossh: 建立具有韌性的反向 ssh 隧道
家裡或公司的防火牆裡面有一部 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 -sckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-85355901258063029122023-08-10T11:08:00.002+08:002023-08-17T11:27:23.179+08:00用 iptables 對付惡意幫派網頁爬蟲前一陣子查看了一下我的 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
大部分時候, 每分鐘的瀏覽數是個位數字;
有些時段突然ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-50881478069765444212023-07-20T09:44:00.004+08:002023-07-20T10:58:39.196+08:00攝取蛋白質、預防肌少症的建議
老人家因為食慾、味覺、牙齒、吞嚥、經濟等因素,經常有蛋白質攝取不足的問題。
美國聯邦政府建議的蛋白質攝取量是每天 0.8公克乘以 [體重公斤數] 的蛋白質,
例如 60 公斤的人每天應該吃 48 公克的蛋白質。
65歲以上的健康長者吸收力已退化, 為避免肌少症最好把乘數調高到 1.0 或 1.2,
且最好要分散在三餐, 讓身體有時間吸收。
但腎臟病者可能也不宜攝取過多蛋白質。
乳清蛋白有助於補充蛋白質的不足, 例如受傷/手術時,
但是不宜拿它來取代正常食物的蛋白質。
素食者可吃豆類, 首推新鮮毛豆仁、黑豆及黃豆。
加工豆類食品當中, 可以吃豆皮、 豆干絲、 小方豆干;
建議少吃油脂量高的日式炸豆皮。
另外, 一定要運動。 整天坐著不動很容易導致肌少症。
嗯, 原來我的豆干零食還可以算是好物呢! 早餐爬完文趕快去吃~
New York Times
KFF health news
ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-89988658461515190452023-07-18T09:02:00.002+08:002023-07-18T09:03:58.805+08:00我的 cron 為什麼不會動?這幾天在設定一部新的伺服器。
建立一個檔案 /etc/cron.daily/backup.sh
把一些備份的指令寫在裡面。
兩三天下來卻一直沒等到備份檔的出現。
查看 cron 的 log 檔: journalctl _COMM=cron
看到這樣的內容:
Jul 13 05:17:01 ckhung CRON[2075]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Jul 13 05:17:01 ckhung CRON[2076]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
Jul 13 05:17:01 ckhung CRON[2075]: pam_unix(cron:sessionckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0tag:blogger.com,1999:blog-751586915633123067.post-26031843689016248412023-07-01T17:31:00.003+08:002023-07-01T17:32:28.543+08:00台中市環保地圖
最近想要清家裡, 把一堆舊衣服、 舊電器、 電腦週邊等等拿去回收。
於是搜尋到
iTaichung 環保地圖。 可是它把每個店家獨立顯示在一張地圖上, 感覺很難用。
於是製作了 台中環保商店地圖,
把所有的店家放在同一張地圖上, 並且在這裡記錄一下步驟,
順便當作網頁爬蟲/資料視覺化的教材。
點前幾頁, 再點到最後一頁, 看出簡單的網址規則。
先產生一個頁碼檔 pn.txt:
perl -e 'for $i (1..207) { print("$i\n") }' > pn.txt 或是
python3 -c 'for i in range(1,208): print(i)' > pn.txt 。
[請省略這一步, 減輕官網負擔。 請改直接下載
我整理過的、
含有 207 個 html 檔以及後續中間步驟的綜合壓縮檔。]
我當初這樣下載 207 個 html 檔ckhunghttp://www.blogger.com/profile/02399671186667415730noreply@blogger.com0