2021-09-25
現在大部分的電腦都支援 UEFI 開機, 所以新版的貴哥實驗室開機光碟也跟著配合支援 UEFI。 拿它來製作開機隨身碟的過程可以全程在 Windows 底下完成。 從今年開始, 檔案名稱改成 「版本字串放在前面」, 比較容易一眼就找到最新版。 感謝蘇浚緯助教製作以下教學影片。 到 這裡 下載最新的ISO檔。 目前最新的版本是 g21B-mint-uma.iso 。 在 Windows 底下打開檔案總管、 確認你的隨身碟採用的是 FAT32 格式、 確認隨身碟還有足夠的空間 (至少要有 6G) 安裝解壓縮工具 7-zip, 用它把ISO檔的內容解開來放到隨身碟的根目錄。 進入隨身碟上的 live-save 資料夾, 刪除空的 stux.img 。 從 persistence-*.img.gz 裡面 [根據你希望保留給 Linux的空間大小來決定] 挑一個檔案把它複製成
2021-09-12
我有租一部 aws 的 ec2 虛擬主機。 如果不小心下錯指令把少數幾個重要檔案搞爛掉了, 以致無法登入甚或是無法開機, 該怎麼辦? 比方說前幾天我就發生了一個悲劇... 我的伺服器當然有照著 密不透水的 ssh 這篇做, 在 /etc/ssh/sshd_config 裡面設定 PasswordAuthentication no, 並且搭配 ~/.ssh/authorized_keys 指定允許登入的 ssh 公鑰。 那天我手殘不小心把這個檔案刪掉了, 馬上掉入恐慌, 就像幾個月前某天出門後才發現忘記帶鑰匙一樣! 比忘記帶鑰匙更慘的是, 這次沒辦法找老婆幫忙~ 更糟糕的是: 伺服器上面還有老婆要用的檔案... 我雙重死定了~ 以下重點摘要解鎖步驟: 從網頁登入 aws ec2 console。 停用 (stop) 出問題的虛擬機 (叫它 「主角」 好了)。 找到主角的
2021-09-11
電腦教室裡有幾十部電腦, 想要把一個大檔一次同步派送給所有電腦, 可以用 udpcast; 那如果想要一次同步指揮所有電腦呢? 就用 netcat! gtwang 的 netcat 教學文 很詳細; 對我們來說只需要讀到 「在兩台主機之間複製檔案」 那一節就夠了。 不同版本的 netcat 有一些大同小異, 例如有一些版本在作為接受端時, 必須在 port 前面加上 -p 。 另外, 加上 -v 比較容易除錯。 例如我們任選 port 5284 好了, 最後的測試指令長這樣: 接收端 (某部學生機) 執行: nc -vlp 5284 | bash 發送端 (老師機) 執行: nc 學生機的IP 5284 然後在老師機開始 「盲下指令」 (因為看不到回應, 只能跑到學生機去確認): set -x pwd ls df 最後按 ctrl-C 終止。 很方便也很可怕, 對吧?
2021-09-11
像我天天在用 regular expressions、 命令代換 $(...)、 pipe 等等工具, 把很多小工具湊起來解決自己日常生活的轉檔/撈資料等等問題, 如果有人願意請我幫他檢視經常性的電腦工作流程, 一定可以發現很多重複性、 機械化的動作其實都可以用簡單兩三句 perl + shell script 解決。 (可惜連老婆都不覺得她需要我幫忙, 更不想改用 linux...) 總之假設你身旁有一位已被你說服用 linux 的電腦麻瓜, 而且你已幫他寫了很多 scripts。 下一步就是用 pdmenu 把這些 scripts 包成一個文字選單, 讓他可以用快速鍵或滑鼠點選執行你幫他寫的 scripts。 請安裝 pdmenu 套件, 並下載 example.pdmenu, 然後執行: pdmenu -c example.pdmenu 。 給使用者的快速提醒: 用
2021-09-05
我的手指被我操到快廢掉了 :-( 趕快研究一下語音下指令。 觀念上是可行的。 需要先安裝這幾個套件: apt install pocketsphinx pocketsphinx-en-us xdotool 試車: pocketsphinx_continuous -inmic yes 它會印出一堆訊息, 最後出現 「INFO: continuous.c(275): Ready....」 就可以開始對麥克風唸一句 (大約十幾個字以下的) 英文。 順利的話, 它又會印一堆訊息, 最後印出你剛剛唸的英文。 因為預設的語言目錄是英文, 也就是說上面那句等同於: pocketsphinx_continuous -inmic yes -hmm /usr/share/pocketsphinx/model/en-us/en-us 不知道是我的發音太不標準, 還是它空耳太嚴重, 竟把 「read a
2021-09-04
先前我一直用 plurk-list 這個 php 小程式從噗浪所提供的 rss 來備份我自已的噗浪。 可是最近突然失效了。 原來是噗浪的 rss 格式有小的變動, 時間順序變顛倒了。 反正我本來就不喜歡 php 語言, 乾脆整個重寫。 Rss 是 xml 格式, 但是處理 xml 格式的程式寫起來很囉嗦。 秉持著 長線投資的電腦學習策略 所建議的 「以檔案格式為核心」 的思考原則, 決定先把 xml 轉成 json 再來處理, 畢竟有 jq 瑞士刀 可以處理 json 檔, 而且 json 格式在許多語言裡面直接對應到普通陣列與關聯陣列, 處理起來方便多了。 這篇其實包含三個不同的主題, 可以視興趣選讀 1、2 節或 1、3 節。 一、 xml 轉 json 我們拿噗浪的 rss 檔來作為 xml 資料檔的範例, 例如 ckhung0 最近的噗。 實際上我是每週備份: (
2021-09-01
在 軟體自由協會的聊天群組 裡面學到的技巧, 比四年前寫的 linux X11 環境更改滑鼠指標圖示 要更簡單。 先到 gnome look 的 cursors 頁面 點一下 "rating" 分頁以便按照用戶評分排序, 挑一組喜歡的。 我需要比較大比較顯眼的圖示, 所以就點進去第二名的 Oreo Cursors。 切換到 files 分頁, 看到有很多不同口味可以選擇下載。 我選了 oreo_spark_orange_cursors.tar.gz 等等幾組。 把每一組都解壓縮到 /usr/share/icons/ 底下: sudo tar -C /usr/share/icons/ -xzf oreo_spark_orange_cursors.tar.gz 然後叫出系統的滑鼠設定選單。 以我使用的 linux mint 20.2 uma [xfce 口味] 而言, 可以直接下
2021-09-01
我目前的作業系統是 linux mint, 使用的輸入法是 fcitx 的嘸蝦米。 最近剛從 mint 20 升級到 20.2 , 原本熟悉的 「cg」=>「要」 現在卻變成了 「cg」=>「履」; 必須完整打完三碼 「cgx」 才會得到 「要」。 為了省下這一碼, 花了半小時終於研究出來。 凡是表格類的輸入法, 像是倉頡、行列等等, 我猜也可類推? 先用 dpkg -l | grep 'fcitx.*boshiamy' 查出需要研究的套件名稱是 fcitx-table-boshiamy , 再用 dpkg -L fcitx-table-boshiamy 查出需要更新的表格檔是 /usr/share/fcitx/table/boshiamy.mb 。 不過那是系統檔。 每個用戶自己的字碼表呢? 觀察發現: 像是 「己」和「已」 這類同碼的字, 如果你比較常選第二名, 有一天它會
2021-08-28
因為平台限定/java語言/複雜開發環境等等因素, 我一直不想學寫手機 app。 近年來我自己最常自寫自用的, 是 web app, 尤其是 scatplot 資料視覺化。 可是偶爾會遇到電腦瀏覽器可以正常閱覽, 手機瀏覽器卻出錯的狀況。 很討厭的是: 手機上的瀏覽器沒辦法開啟開發者 console 來除錯。 以下筆記三個不完美的 「手機/平板瀏覽器看 web app」 除錯方案, 用一部 Galaxy Tab A7 lite / SM-T220 測試。 一、 adb logcat 假設你已設定好 電腦與手機用 adb 連線。 單純的 adb logcat 指令爆難用, 根本像是故意用一堆垃圾訊息轟炸你一樣。 根據 這個問答 及 官網解說, 這個指令 adb logcat browser:V *:S 應該會把 browser 相關的所有訊息 (V) 留下來, 其他所有類型
2021-08-18
筆記一下安裝設定 ungoogled chromium 的經驗。 原因詳見文末說明。 首先新增並且信任 ungoogled chromium 的 repo: echo 'deb http://download.opensuse.org/repositories/home:/ungoogled_chromium/Ubuntu_Focal/ /' > /etc/apt/sources.list.d/ungoogled_chromium.list wget -nv https://download.opensuse.org/repositories/home:ungoogled_chromium/Ubuntu_Focal/Release.key -O - | apt-key add 再來是安裝: apt install ungoogled-chromium
2021-08-07
上學期教資料庫時發現 SchemaSpy 這個好物, 可以幫各種不同的資料庫畫 ER Diagram。 首先在 releases 頁面 下載最新版。 以目前來說, 最後我的下載指令是: wget https://github.com/schemaspy/schemaspy/releases/download/v6.1.0/schemaspy-6.1.0.jar sudo apt install graphviz 上面也順便安裝 graphviz 套件, 畫圖時要用到。 一、 sqlite 這一節拿 chinook database 來作為 sqlite 的示範資料庫。 主要參考 這個討論串。 wget https://github.com/xerial/sqlite-jdbc/releases/download/3.32.3.2/
2021-07-17
Javascript 令開發者愛恨交織, 一直以來我都很抗拒全心投入, 只盡量用最簡單的方式拿它來滿足我 畫圖的需求 而已。 過去這學期為了教學需要, 終於認真爬文了解一下 js 的幾個 bundlers, 最後決定採用 webpack。 本文基本上是把 Valentino Gagliardi 的教學文 消化後用自己的小程式實作並重新整理後的心得。 Webpack (或其他類似的 Browserify 、 Grunt 、 Gulp 等等打包工具) 主要有幾大功能: 簡化原始碼, 把 html 裡面引用 css、 script、 img 等等敘述通通都省下來, 並且統一由 .js 原始碼裡面的 import 指令來處理。 ("萬物皆模組") 處理相依套件, 通通抓回本地一起打包。 順便把程式設計師偏好的 (較高階的) 各種不同口味 js 語法 轉譯 (transpile)
2021-07-11
來自 pendrive linux 網站的 Universal USB Installer (以下簡稱 UUI) 讓 MS Windows 用戶可以自行把許多不同版本的 linux 的 .iso 檔變成可開機隨身碟。 對於從零開始學 linux 的 windows 用戶來說, 這個比我的 mbootuz 簡單多了! 如果是一般主流版本的 linux (例如 *ubuntu、 mint、 debian、 fedora、 ... 等等) 早就有很多中文教學文可以參考: 重灌狂人、 yh96301。 如果要拿貴哥實驗室版的 iso 檔來製作... 因為我小改了一些路徑, 所以用 UUI 做完隨身碟之後, 還需要手動改一些地方。 首先在檔案總管理, 對著隨身碟 (例如 G: 或 H: 之類的) 按右鍵、 點選 「內容」。 它的檔案系統是採用 fat32 格式嗎? 如果是, 請跳到下
2021-07-07
前幾天需要用到 ffmpeg 4.3 版才有的新功能 "xfade" (下詳); 可是我的 linux mint 上面的版本只到 4.2。 可以不要自己編譯, 直接偷懶安裝新版執行檔嗎? 警告: 後來我的系統變得有點怪怪的, 裝個小套件都會牽拖一大堆相依套件。 最後用 btrfs 的 snapshot 功能 把系統還原。 正在測試 這個建議。 查看一下我的 mint 版本及基礎的 debian 版本: cat /etc/os-release 跟 /etc/debian_version 查看一下我的版本的 debian/ubuntu/mint 目前有哪些版的 ffmpeg 可以安裝: apt list -a ffmpeg 或 apt-cache madison ffmpeg。 確認一下 debian 的版本資訊 (左側 "versions"): 確實
2021-07-07
本來排好上週要在校內教職員研習講 「個人隱私與資安防護」, 不過在疫情開始略微升高的第一時間, 學校就立即決定改採錄影的方式以減少群聚。 根據以往的經驗, 吃螺絲或恍神重錄浪費最多時間; 可是錄製的時限很緊迫, 所以最後我把一小時的內容切成將近三十段每段一到三分鐘的短片。 經過一些手工前置處理之後 (另文詳), 得到 這些檔案。 那要怎麼把它們全部串接起來呢? 我覺得 openshot 還蠻好用的。 但是近三十次的轉場逐次用手點滑鼠? No way! 這不是人在用電腦, 而是人被電腦用! 而且我的板機指會被用到廢掉 (哭) 這時就要請 新版的 ffmpeg 來救援了。 照上面連結安裝好 >= 4.3 版的 ffmpeg 之後, 也請下載我寫的 xfadeffmpeg.py。 然後: python3 xfadeffmpeg.py ??-*.mkv 就會產生一串片(!)很壯觀的

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

數位路平

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

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

捐款給SLAT

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

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

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

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

捐款給SLAT

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

立即捐款
training of ODF

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

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

捐款給SLAT

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

立即捐款
ezgo saminar

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

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

捐款給SLAT

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

立即捐款