2022年5月14日 星期六

pulseaudio 聲音一對一串流超簡單

兩部 linux 機器之間可以做聲音串流嗎? 假設有一部 M(ute) 機沒有喇叭; 另一部 S(peaker) 機有喇叭。 想要在 M 機上面用 mpg123 指令 (無聲地) 播放音樂, 再透過網路傳送到 S 機用它的喇叭真的把聲音放出來。

2022年5月13日 星期五

VNC 之 firefox 開錯門

兩種 「人力 bit」 模型 在資訊領域好東西的聲量往往輸給商業宣傳包裝過的次級品。 (望向微軟) 例如 X Window 跨網路執行應用軟體的能力,早在三十年前或更早就已存在。 比方說在甲電腦啟動 vnc 服務tigervncserver -geometry 800x600 :59 然後在乙電腦開啟 vnc 遠端連線: xtigervncviewer 甲電腦的IP:59 那麼你在 vnc 的命令列上可以決定下一個指令的視窗要開在本地 (乙電腦) 還是遠端 (甲電腦)。 如果沒有指定, 系統會查看 $DISPLAY 環境變數, 預設開在本地。 如果設定 export DISPLAY=:0 則會開在遠端甲電腦的視窗環境裡面。 右圖顯示的是本機連到本機的狀況, 你可以看得出來看圖軟體 feh 的兩個視窗, 一個開在 (乙電腦的) vnc viewer 裡面 (calf.jpg) 另一個則因為這樣啟動: DISPLAY=:0 feh excited-anna.png 而開在外面 (甲電腦)。 [補充說明: vnc 大約是 2000 前後的東西, 只是因為拿它來解說 X 的遠端執行功能比較方便。]

X Window 絕大多數的圖形介面軟體都是這樣運作; 但 firefox 卻不是。 在乙電腦的 vnc viewer 視窗裡面啟動 firefox 的時候, 它總是會開錯門、 進到甲電腦的視窗環境去。 這個問題困擾我很久, 最近終於搜尋到 答案: 啟動命令的時候這樣下: firefox -no-remote 就成功地讓 firefox 開在乙電腦的 vnc viewer 連線視窗裡面。 如果甲電腦原先已經有 firefox 在執行, 可能會失敗。 這時需要先關掉甲電腦的 firefox; 或是先用 firefox -p 建立一個新的 profile, 然後才能叫 firefox 用這個新的身份在乙電腦裡開啟第二個 firefox 視窗。

2022年5月11日 星期三

用 avnc 在 android 平板上操作電腦桌面

在 android 平板上開 avnc 上使用 inkscape 我習慣用 x86 電腦做事; 遇到只有 Android 平板可以用的時候, 覺得很難工作。 這時可以在遠端的 x86 電腦上啟動 VNC server。 這幾天在接有 otg 實體鍵盤但無滑鼠的 android 平板上試著用 avnc 這個 vnc client 開啟 inkscape 修圖, 感覺還算八成實用, 已經不像八年前只是 「原則上可開啟」。 以下假設你已經事先成功完成 兩頭都是 x86 的 vnc 連線。

2022年5月7日 星期六

我的 termux 經驗與設定

想要在 android 手機或平板上使用命令列, 透過 usb 線下 adb 指令 是一個方法。 另一個方法是從 f-droid 市集 安裝 termux。 這個環境更接近 GNU/Linux。 這篇文章 已有詳盡的教學, 本文就不重複了, 只補充一些額外的心得。

2022年4月10日 星期日

玩幾個有感的實用範例, 一次學會 SQL 的 join 與 group by

我認為學 linux 不應該從又煩又無趣的安裝學起; 同樣地, 學 SQL 語法也不應該從又煩又無趣的用戶管理和 create table 學起。 SQL 裡面最常用且有點複雜的有趣指令應該非 join 莫屬吧。 想要學會 設計理想的資料庫 schema 可能需要修一門課; 但如果只是想要學會 存取現成的資料庫 其實只需要照著我這兩三篇文章做應該就足以應付大部分的需求了。

首先把最精簡輕巧的 sqlite 與它的前端 litecli 安裝起來並且拿 sakila 範例資料庫試車。 其次要找到你手邊的資料庫的 ER Diagram。 如果找不到, 可以參考 我的第二篇, 自己繪製。 今天這篇 (第三篇) 我們就拿 sakila 範例資料庫來練習 join 與 group by。

2022年4月2日 星期六

在命令列上從 *.sql 檔直接產生 ER Diagram

拿到一個資料庫實例 (database instance) 第一件事就是畫出它的 ER Diagram。 例如 要下 join 指令時,我一定要看著 ER Diagram 才會下。 有很多 資料庫圖形介面的軟體 (例如 DBeaver) 都可以幫一個運行中的資料庫畫 ER Diagram。 可是其實單單是 DDL (就是 create table 之類的指令) 就應該已經提供足夠的資訊可以畫圖了啊... 我可不可以連 mysql 都不要安裝, 直接拿一個定義 schema 的 *.sql 檔, 用簡單的命令列工具就畫出 ER Diagram 呢? 在 github 上面找到兩個幾乎符合我需求的專案。

SQL 自學起手式

litecli completion 想要從零開始學 SQL 語法, 該如何起步? 我會建議從 sqlite 著手, 因為它最輕巧, 一個檔案就是一個資料庫, 不需要煩惱帳號/密碼/使用者管理/...等等煩瑣的事, 讓你可以專心於 SQL 語言。 它只比標準 SQL 少一點點功能。 而且很多應用程式 (例如很多 android apps) 都採用 sqlite, 學會操作 sqlite 之後, 你可以用 adb pull 指令把手機上有趣的資料庫檔拿來研究, 所以也很有實用價值。 在 debian 系列的 linux 上面可以直接這樣安裝: apt install sqlite3

2022年2月13日 星期日

在舊版 debian 上面安裝新的 pip 套件

最近需要安裝 litecli (sqlite 的文字介面前端, 有 completion 自動快打功能超方便)。 可是我的 debian 伺服器太舊 (debian 9, stretch), python 只到 3.5 版, 就連 backports 也是。 而 litecli 用到一個 prompt-toolkit 套件, 它需要 3.6 以上的 python。 馬上就要開學, 當然不想升級 debian。 於是找到位於 debian 官網底下某位大大個人網頁上的 Unofficial Python backports for Debian。 照著說明讓我的 /etc/apt/sources.list.d/python-all.list 指向他的非官方套件庫, 然後: apt update ; apt install python3.7 其中執行檔 /usr/bin/python3.7 其實是在 python3.7-minimal 這個套件裡 (會自動安裝)。

但是 pip3 還是會以系統的 python3.5 為準。 找到 這個問答sudo python3.7 -m pip install litecli 就成功地把 litecli 裝起來了!

2022年1月31日 星期一

初學小白的密碼貨幣投資心得

如題, 我幾個月前才開始買密碼貨幣, 目前深深套牢。 千萬不要光是看了本文就跟著投資密碼貨幣, 至少要先大量搜尋、爬文,看看真正的高手們怎麼建議。 投資主流密碼貨幣要有資金打對折、再打折的心理準備。 (例如我的 SOL 與 DOT, 哭哭~) 投資非主流密碼貨幣要有誤上賊船、 資金歸零的心理準備。 ( 很多案例) 所以我只敢把一小部分的閒置資金放在密碼貨幣市場。

2022年1月27日 星期四

密碼貨幣:從助憶詞到種子、主鑰、私鑰、公鑰、位址

為密碼貨幣創立 (不管哪一牌的) 非託管錢包 (例如 metamask) 的過程當中, 錢包會用亂數幫你產生12個英文助憶詞。 這12個助憶詞非常重要, 既不能遺失, 也不能被別人看到, 必須很小心地秘密保存且備份, 因為你的私鑰公鑰都是從這12個字產生出來的。 但實際的產生過程到底有哪些步驟? 我可以自己手動產生嗎? 這一篇沒有太大現實用處的好奇文筆記了我的心得。

Maarten Zuidhoorn 的 "The Journey from Mnemonic Phrase to Address" 大致回答了我的問題。 不過請找並點擊到 「留言」 的 icon, 會發現有一位 (比特幣開發者?) Gregory Gualtieri 對文章稍有一些指正。 我又找到 bip_utils 這個函式庫, 拿它把文章解釋的觀念實作一次, 得到 bip_demo.py 這個測試程式碼。 下圖是我的心得精華。

助憶詞/seed/主鑰/私鑰/公鑰/位址轉換

2021年12月28日 星期二

你買的密碼貨幣是 coin 還是 token ?

coin vs token 在中心化交易所 (例如 Max、 pionex、 gate 等等) 買賣密碼貨幣時, 我們使用的是託管錢包 (custodial wallet), 不太需要知道 coin 和 token 的差別。 很多文章或網站甚至混用這兩個名詞。 但是開始使用 非託管錢包 (例如 metamask) 到去中心化交易所 (例如 Uniswap、 PancakeSwap 等等) 去交易時, 就需要知道兩者的差異。 這篇來筆記一下跟密碼貨幣交易相關的區塊鏈連結與名詞, 也順便展示一下我畫的圖。

2021年12月5日 星期日

清點密碼貨幣資產

最近迷上密碼貨幣, 爬了好多文, 心得不知從何寫起。 (為什麼不應該叫做「加密貨幣」? 因為它只用到 非對稱式加解密 的 「數位簽章」 那一半, 並沒有用到它的 「加解密」 那一半。) 今天先分享一篇最單純的心得: 如何清點你的密碼貨幣資產? 我在好幾個交易所開了帳戶, 也買了好幾種密碼貨幣。 買到後來到底賺錢還賠錢連自己都頭昏搞不清楚了。 (昨天的瘋狂爆跌過後, 現在當然很明顯是賠錢的。 真希望我是今天才開始買的...) 所以建了 這個Google試算表。 大家可以拷貝回去修改成自己的版本。 裡面的數值當然只是示意, 並非我真實的投資金額, 不過確實大略反應我的資產配置重點。