2022-05-21
前幾篇都是在為今天的主題鋪路: 在 android 手機或平板上執行完整的 GNU/Linux, 裝置不必 root ! 假設你已安裝好 termux。 在裡面執行 pkg install proot-distro 安裝 proot-distro, 再下 proot-distro list 查看有哪些發行版本的 GNU/linux 可以安裝。 例如我選擇 debian: proot-distro install debian 安裝好就可以用 proot-distro login debian 進入 (近乎) 完整的 debian 命令列環境。 Proot 是一個 user space 版本的 chroot, 所以不需要 android 系統的 root 權限, 但是在自己的小環境裡面看起來又像是擁有 root 的身份。 而 proot-distro 則是從 proot 長出來
2022-05-21
兩部 linux 機器之間可以做聲音串流嗎? 假設有一部 M(ute) 機沒有喇叭; 另一部 S(peaker) 機有喇叭。 想要在 M 機上面用 mpg123 指令 (無聲地) 播放音樂, 再透過網路傳送到 S 機用它的喇叭真的把聲音放出來。 S 機要安裝 pulseaudio-utils 套件。 (M 機也許也要? 不知道, 因為我的 M 機是 linux mint, 本來就有安裝。 至於 S 機則是 android/lineage OS 加 termux, 實際的安裝指令是: pkg install pulseaudio。) 假設兩部機器位於同一個區網 192.168.97.0/24 。 先在 S 機執行: pulseaudio --start --exit-idle-time=-1 pacmd load-module
2022-05-21
想要在 android 手機或平板上使用命令列, 透過 usb 線下 adb 指令 是一個方法。 另一個方法是從 f-droid 市集 安裝 termux。 這個環境更接近 GNU/Linux。 這篇文章 已有詳盡的教學, 本文就不重複了, 只補充一些額外的心得。 我的實驗環境是三星 Galaxy Tab A7 lite, (為了完整的語音輸入所以) 沒有刷機, 沒有 root。 Termux 的操作介面很友善, 例如想要放大縮小字體, 直接用兩指操作即可, 就像在放大縮小相片一樣。 軟體鍵盤有 Tab、 ctrl、 方向鍵等等, 完全適合操作 readline 快速鍵。 不過我還是更喜歡接上 otg 線和實體鍵盤。 螢幕左側向右滑, 可以開啟多個命令列分頁, 並且可以叫出更多設定選項。 第一件事是安裝喜歡的套件: pkg install vim lynx
2022-05-16
最近需要安裝 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/
2022-05-13
在資訊領域好東西的聲量往往輸給商業宣傳包裝過的次級品。 (望向微軟) 例如 X Window 跨網路執行應用軟體的能力,早在三十年前或更早就已存在。 比方說在甲電腦啟動 vnc 服務: tigervncserver -geometry 800x600 :59 然後在乙電腦開啟 vnc 遠端連線: xtigervncviewer 甲電腦的IP:59 那麼你在 vnc 的命令列上可以決定下一個指令的視窗要開在本地 (乙電腦) 還是遠端 (甲電腦)。 如果沒有指定, 系統會查看 $DISPLAY 環境變數, 預設開在本地。 如果設定 export DISPLAY=:0 則會開在遠端甲電腦的視窗環境裡面。 右圖顯示的是本機連到本機的狀況, 你可以看得出來看圖軟體 feh 的兩個視窗, 一個開在 (乙電腦的) vnc viewer 裡面 (calf.jpg) 另一個則因為這樣啟動:
2022-05-11
我習慣用 x86 電腦做事; 遇到只有 Android 平板可以用的時候, 覺得很難工作。 這時可以在遠端的 x86 電腦上啟動 VNC server。 這幾天在接有 otg 實體鍵盤但無滑鼠的 android 平板上試著用 avnc 這個 vnc client 開啟 inkscape 修圖, 感覺還算八成實用, 已經不像八年前只是 「原則上可開啟」。 以下假設你已經事先成功完成 兩頭都是 x86 的 vnc 連線。 首先我在電腦上啟動 VNC server: tigervncserver -geometry 1340x768 :12 再來在平板上的 termux 環境啟動 ssh tunnel: ssh -fNL 8523:localhost:5912 ckhung@192.168.xx.yy 或者是如果不需要考慮資訊安全、 不想用 ssh tunnel, 那麼就可
2022-04-28
想要從零開始學 SQL 語法, 該如何起步? 我會建議從 sqlite 著手, 因為它最輕巧, 一個檔案就是一個資料庫, 不需要煩惱帳號/密碼/使用者管理/...等等煩瑣的事, 讓你可以專心於 SQL 語言。 它只比標準 SQL 少一點點功能。 而且很多應用程式 (例如很多 android apps) 都採用 sqlite, 學會操作 sqlite 之後, 你可以用 adb pull 指令把手機上有趣的資料庫檔拿來研究, 所以也很有實用價值。 在 debian 系列的 linux 上面可以直接這樣安裝: apt install sqlite3 再來大力推薦安裝 litecli : pip3 install litecli 裝完之後可能還需要編輯 ~/.bashrc , 在裡面加上一句 export PATH=$PATH:$HOME/.local/bin/litecli 並且開
2022-04-11
拿到一個資料庫實例 (database instance) 第一件事就是畫出它的 ER Diagram。 例如 要下 join 指令時,我一定要看著 ER Diagram 才會下。 有很多 資料庫圖形介面的軟體 (例如 DBeaver) 都可以幫一個運行中的資料庫畫 ER Diagram。 可是其實單單是 DDL (就是 create table 之類的指令) 就應該已經提供足夠的資訊可以畫圖了啊... 我可不可以連 mysql 都不要安裝, 直接拿一個定義 schema 的 *.sql 檔, 用簡單的命令列工具就畫出 ER Diagram 呢? 在 github 上面找到兩個幾乎符合我需求的專案。 第一個是由 ehne 採用 python 所撰寫的 erdot。 它讀入一個 *.json 檔並產生一個 *.dot 檔。 後者可以再餵給 graphviz 以便產生 svg/jpg/
2022-04-11
我認為學 linux 不應該從又煩又無趣的安裝學起; 同樣地, 學 SQL 語法也不應該從又煩又無趣的用戶管理和 create table 學起。 SQL 裡面最常用且有點複雜的有趣指令應該非 join 莫屬吧。 想要學會 設計理想的資料庫 schema 可能需要修一門課; 但如果只是想要學會 存取現成的資料庫 其實只需要照著我這兩三篇文章做應該就足以應付大部分的需求了。 首先把最精簡輕巧的 sqlite 與它的前端 litecli 安裝起來並且拿 sakila 範例資料庫試車。 其次要找到你手邊的資料庫的 ER Diagram。 如果找不到, 可以參考 我的第二篇, 自己繪製。 今天這篇 (第三篇) 我們就拿 sakila 範例資料庫來練習 join 與 group by。 再來開一個瀏覽器新分頁或看圖軟體, 隨時檢視 ER Diagram。 我在下 join 指令的
2022-03-01
最近迷上密碼貨幣, 爬了好多文, 心得不知從何寫起。 (為什麼不應該叫做「加密貨幣」? 因為它只用到 非對稱式加解密 的 「數位簽章」 那一半, 並沒有用到它的 「加解密」 那一半。) 今天先分享一篇最單純的心得: 如何清點你的密碼貨幣資產? 我在好幾個交易所開了帳戶, 也買了好幾種密碼貨幣。 買到後來到底賺錢還賠錢連自己都頭昏搞不清楚了。 (昨天的瘋狂爆跌過後, 現在當然很明顯是賠錢的。 真希望我是今天才開始買的...) 所以建了 這個Google試算表。 大家可以拷貝回去修改成自己的版本。 裡面的數值當然只是示意, 並非我真實的投資金額, 不過確實大略反應我的資產配置重點。 首先你必須把 gecko.php 跟 (只有一欄,所以不含逗點的 csv 檔) mycrypto.csv 複製回你自己的伺服器。 把後者的內容改成你所關注的幣種。 所有幣種代號的清單
2022-02-05
如題, 我幾個月前才開始買密碼貨幣, 目前深深套牢。 千萬不要光是看了本文就跟著投資密碼貨幣, 至少要先大量搜尋、爬文,看看真正的高手們怎麼建議。 投資主流密碼貨幣要有資金打對折、再打折的心理準備。 (例如我的 SOL 與 DOT, 哭哭~) 投資非主流密碼貨幣要有誤上賊船、 資金歸零的心理準備。 ( 很多案例) 所以我只敢把一小部分的閒置資金放在密碼貨幣市場。 最穩健安全的是派網的 「期現套利機器人」 spot futures bot。 它會幫你做多現貨、 做空期貨, 兩者互相抵銷, 不論漲跌, 整體的獲利損失都是0, 只賺取微薄的 資金費率 funding fee 4個月的大風大浪下來, 我的期現機器人的獲利從負零點幾趴 (最開始有一筆手續費) 緩緩穩健地爬升到3點多趴, 比儲蓄險獲利高而且隨時可解約, 好太多了。 (若短於一兩週就解, 有可能會有小額損失。) 當然,
2022-02-02
為密碼貨幣創立 (不管哪一牌的) 非託管錢包 (例如 metamask) 的過程當中, 錢包會用亂數幫你產生12個英文助憶詞。 這12個助憶詞非常重要, 既不能遺失, 也不能被別人看到, 必須很小心地秘密保存且備份, 因為你的私鑰公鑰都是從這12個字產生出來的。 但實際的產生過程到底有哪些步驟? 我可以自己手動產生嗎? 這一篇沒有太大現實用處的好奇文筆記了我的心得。 Maarten Zuidhoorn 的 "The Journey from Mnemonic Phrase to Address" 大致回答了我的問題。 不過請找並點擊到 「留言」 的 icon, 會發現有一位 (比特幣開發者?) Gregory Gualtieri 對文章稍有一些指正。 我又找到 bip_utils 這個函式庫, 拿它把文章解釋的觀念實作一次, 得到 bip_demo.py 這個測試程式碼。 下

軟體自由運動 需要您的支持!

數位路平

軟體自由推動成果:數位路平

為向政府單位宣導開放文件格式,軟體自由協會在 2015 年主辦了「數位路平★台灣騎跡」縣市政府宣導活動,成員們以單車為交通工具,騎車到西部及離島的各縣市政府前,大聲的說出我們追求數位路平的心聲。

捐款給SLAT

若您肯定協會多年來的努力,敬請捐款支持軟體自由運動!

立即捐款
自由軟體納入檢定

軟體自由推動成果:自由軟體納入國家技能檢定

2016 年,軟體自由協會向國家技能檢定中心要求檢討考場預裝軟體的規定,並將自由軟體納入選項中。在經過數場會議之後,技檢中心終於在 2017 年 8 月底公佈修正草案,這對考生的選擇自由、技職體系的教育公平性來說,都是非常大的進步。

捐款給SLAT

若您肯定協會多年來的努力,敬請捐款支持軟體自由運動!

立即捐款
training of ODF

軟體自由推動成果:協助推廣開放格式文件

自從 2015 年國發會開始「推動ODF為政府文件標準格式」之計劃以來,台灣各縣市政府已逐步落實開放格式文件的使用,能有這麼亮眼的成果,軟體自由協會的夥伴們是不可或缺的幕後功臣

捐款給SLAT

若您肯定協會多年來的努力,敬請捐款支持軟體自由運動!

立即捐款
ezgo saminar

軟體自由推動成果:專屬教育現場的自由軟體體驗包

"ezgo" 是軟體自由協會以 Kubuntu 為基礎而打造的「自由軟體體驗包」,包含了各種適合日常工作使用的自由軟體,以及豐富的教育類軟體和自由教材,是一套專為教育現場打造的作業系統。

捐款給SLAT

若您肯定協會多年來的努力,敬請捐款支持軟體自由運動!

立即捐款