2018年7月6日 星期五

在 ubuntu 18.04 底下為 kvm 打造的虛擬區域網路

Ubuntu 18.04 Bionic Beaver 的網路設定改用 netplan 取代舊的 /etc/network/interfaces 設定方式。 如果只是單純的固定 IP 或 DHCP, 據說設定很簡單。 可是我想採用類似 手工精簡版 的方式來幫未來的 qemu-kvm guests 設定獨立式或可橋接外界的虛擬區域網路。 暫時沒有力氣學 netplan, 所以就照著 這個問答 強制改成舊的設定方式比較簡單。 但若不小心, 有可能會在開機時無限等待 dhcp 服務。 以下是我的 lubuntu 18.04 最終網路設定, 及一些有助除錯的筆記。

2018年7月1日 星期日

比較兩個大同小異的文字檔, meld 版

用 meld 比較兩個大同小異的文字檔 如果 f1.txt 跟 f2.txt 兩個文字檔內容差不多, 可以用 meld f1.txt f2.txt 同時編輯/比較兩個檔案。 meld 是圖形介面的程式, 非常直覺好用。 它會把差異處用顏色標示出來, 並且找到正確的差入位置。 按一下畫面中間的左箭頭或右箭頭, 就會以左邊或右邊的檔案為準, 更新另一邊的檔案, 把那一小段差異消除掉。 當游標位於左側時, 還可以用 「變更」 選單下的 「從右側合併所有更改」 一秒同化兩個檔案。 反之亦然。 如果不小心改錯了, 當然也可以用視窗上方工具列上的還原按鈕還原。 工具列下方兩個檔案名稱之間的垂直線可以拉, 可以改變兩個檔案佔據畫面的比例。

對了, windows 用戶也可以從 官網 下載安裝檔哦。

比較兩個大同小異的文字檔, vimdiff 版

[這篇是給習慣使用 vim 的讀者看的。 習慣 geany 或其他記事本類型/GUI 類型的讀者, 用 meld 會簡單很多。]

如果 f1.txt 跟 f2.txt 兩個文字檔內容差不多, 可以用 vimdiff f1.txt f2.txt 同時編輯/比較兩個檔案。 這會進入 split 模式, 出現左右兩個框 (panes) 左邊顯示 f1.txt, 右邊顯示 f2.txt。 而且 vim 會把兩檔的差異處用顏色標出來。 在這個模式下, 以下是一些好用的按鍵:

  1. ] c 跳到下一個差異處; [ c 跳到上一個差異處。
  2. ctrl-w l 跳到右框、 ctrl-w h 跳到左框。 或是更簡單的 ctrl-w ctrl-w 跳到另一個框。
  3. zo 展開相同的部分 (就是每個框左緣部分的 + 號)、 zc 收起相同的部分。
  4. 有時會需要改變框的寬度, 例如視窗大小改變時, 多出來的空間分配不均。 這時可以按 ctrl-w > 擴大目前的框、 ctrl-w < 縮小目前的框、 ctrl-w = 把畫面平均分配給左右兩框。

呃.. 寫完才發現 gtwang 大大也有一篇, 而且還有截圖。

2018年5月19日 星期六

geeqie 及其他 gtk 2.0 軟體的快速鍵設定

我習慣用 geeqie 看圖/相片。 在任一張圖片上按右鍵, 有一個 「copypath」 功能, 可以把這張圖的路徑複製起來, 以便貼到命令列上做其他處理。 可是 「按滑鼠、 用老花眼找到 copypath、 再點一下」 這個動作如果要重複幾百次, 好浪費時間啊。 我寧可把時間拿來研究如何設定快速鍵。

2018年5月17日 星期四

既遠端又變身的 X forwading

我在本地電腦 earth 使用帳號 ckhung (以下簡稱 ckhung@earth)。 用 ssh -X pandora.xxx.yyy 登入遠方主機 pandora 上的帳號 ckhung (以下簡稱 ckhung@pandora), 因為命令列上有 -X 而且 伺服器端已設定 X11UseLocalhost no, 所以 ckhung@pandora 的圖形視窗可以丟回 ckhung@earth, 這稱為 ssh X forwarding

然後在 pandora 上面執行 su avatar 變身成 avatar@pandora 結果就無法執行圖形軟體了。 想用 xauth list 除錯, 電腦卡很久, 最後出現 xauth: timeout in locking authority file /home/ckhung/.Xauthority

2018年5月6日 星期日

xmpp 加密簡訊自由軟體再出發: conversations 與 gajim 入門教學

Xmpp 是一個古老的開放通訊協定, 所以有很多包袱, 開發者有不少怨言。 如果你跟你的朋友們從零開始尋找簡訊自由軟體, 那麼我會推薦 matrix/riot.im, 以後再撰文介紹。 先前我寫的 xmpp 加密 教學文其中介紹的 ChatSecure, 開發者現在已不再維護; 至於 pidgin 則因為不支援 OpenPGP 而且我沒試出傳圖片的方法, 所以也就暫時先 bye bye 了。 最近終於把兩者的替代品 -- 電腦版的 gajim 跟手機版的 conversations -- 的重要功能試出來。 如果你像我一樣有很多朋友在用 xmpp 通訊協定的話, 現在改推薦這兩套 xmpp 軟體。 這篇新文章用來取代過時的那兩篇。 以下的測試版本是: gajim 0.16.8-3 on lubuntu 17.04 及 conversations 2.1.4 from f-droid。

2018年4月10日 星期二

到 floydhub 租用雲端 GPU 玩人工智慧

想玩一點 AI, 又不想自己直接面對 封閉的 nVidia 顯卡驅動程式 嗎? 如果你的訓練資料沒有隱私或機密的問題, 那就上雲端租用 GPU 吧。 我採用的是 floydhub。 根據 這一篇比較文, floydhub 的效能比 AWS 跟 paperspace 略遜一籌; 不過他們以軟體環境取勝: 有許多現成的深度學習 docker 環境 可選。 而且當初我起步機器學習, 就是靠他們做的一些 docker images, 所以就寫介紹文來回饋囉。

2018年4月2日 星期一

overlayfs 練習: 小改光碟 iso 檔, 何必大手筆複製?

overlayfs 示意圖 以下三件事有什麼共通處?

  1. debian-live 光碟的 persistence 機制 用一層薄薄的 (例如 2G) 可讀寫空間來製造 「從 live CD 開機, 後來卻竟然可以將工作階段寫入硬碟」 的假象。
  2. 撰寫 dockerfile 時第一句 from 拿某個 (即使很厚重的) base image 當作地基, 如果後面的變動沒很多, 那麼在 docker build 時, 扣除下載 base image 的時間, 你的 docker image 本身的建立其實花不了多少時間。
  3. 有一個 4G 大小的 iso 檔, 我想改它的開機圖片跟選單, 可以不要把整張光碟的內容複製到硬碟上修改嗎?

答案: 它們都可以用 overlayfs 來實現。 把玩 overlay 文件系統 這篇簡中文章有很詳細的解說。 單純從 end-user 的角度來說, 其實沒有細讀也 ok, 只需要想像 gimp 或 inkscape 編輯圖片時的 「圖層」 概念, 再圖片搜尋一下, 對 overlayfs 就可以理解八九成了。 本文就不解釋原理, 直接實作第三項工作來認識 overlayfs。 (插圖取自 Data and Network Management for Containers -- Docker Tutorial)

2018年3月24日 星期六

scrcpy 透過 adb 把手機投影到電腦上, 連影片也能看!

scrcpy 從電腦上看手機播影片 先前寫過 用 adb 把手機變身實物投影機, 那招不需要安裝任何軟體, 但只能秀出靜態的手機畫面快照。 最近發現 scrcpy 連手機上播放影片, 電腦都可以跟得上、 即時顯示, 對老師上課示範 android 手機/平板操作來說真是太方便了!

最終執行時只需要兩個檔案: 在電腦上的 scrcpy 執行檔, 以及會被它透過 adb 傳到手機上的 srcpy-server.jar (算是在手機上跑的伺服器)。 也就是說, 不需要在手機上安裝 apk。 手機也不需要 root。

2018年3月10日 星期六

用 noscript 阻斷不明程式、 保護瀏覽器的安全與隱私

NoScript 操作介面 瀏覽器是你的電腦與外面廣大網際網路的最直接接觸面。 即使是你從來沒聽過、 不小心第一次造訪的網站, 它的 javascript 程式碼也都會進入你的瀏覽器執行。 這也是病毒、勒贖軟體、挖礦軟體最常走的入侵管道。 所以保護瀏覽器安全的最基本方式, 就是只允許部分 javascript 執行。 Adblock Plus 適用於多種瀏覽器, 它比較寬鬆: 「原則上放行; 只阻擋黑名單」; 而這篇要介紹、 最近 UI 大改版的 NoScript 僅適用於 firefox, 它比較嚴格: 「原則上阻擋; 只放行白名單」。

2018年2月25日 星期日

老舊電腦救星 antix

antix 17 桌面 Antix 是專為老舊電腦設計的 linux; gantix17 是貴哥版的 antix 17, 可以從 朝陽科大 朝陽資管 的伺服器下載。 它讓你用 2017 年的作業系統啟動 (二十世紀末等級?) 32bit、 256MB 記憶體的電腦。 如果要正常使用, 建議至少要有 1G 的記憶體。 若有 2G 的記憶體, 還可以退出開機光碟或拔掉開機隨身碟, 表演豪邁帥氣裸奔!

2018年2月2日 星期五

連鑰匙孔都藏起來的 ssh 完全防禦: SPA

如果說 ssh 服務是進入伺服器的鎖頭, 那麼帳號密碼就是開鎖的鑰匙。 你可以用 密不透水的設定 來保護鎖頭, 或是用 fail2ban 把企圖開鎖但履試履敗的可疑份子擋在庭院之外一陣子, 讓他連試鑰匙的機會都沒有。 但其實另外還有一個中文世界鮮少人知道的終極絕招: 把鎖頭/鑰匙孔整個藏起來, 只當懂門路的人 (你自己) 用特定暗號敲門時, 才讓鎖頭/鑰匙孔短暫出現一兩分鐘。 今天要介紹的伺服器完全防禦機制叫做 Single Packet Authorization (SPA)