2017年12月9日 星期六

在 antix 17 裡面安裝中文輸入法

有一陣子我喜歡 用 antix 駕馭窮人的資源過富足的生活, 可是後來在較新版的 antix 上安裝中文輸入法一直失敗, 只好移民到 lubuntu。 最近再度嚐試 antix 17, 在論壇上獲得協助 終於試出來 fcitx 跟 ibus 的設定, 而且對輸入法的設定稍微長了一點知識。 以下每一節各自獨立, 各自適用於 全新安裝的中文版 antix; 如果不是全新安裝的系統, 有可能會失敗!! 我安裝的版本是 antiX-17_386-full.iso 。

2017年12月3日 星期日

用 GRASS 繪製燦坤各分店的勢力範圍地圖 Voronoi Diagram

燦坤各分店勢力範圍地圖 想像你有一張 「中華電信基地臺分佈地圖」, 並且假設每個基地臺的功率都一樣大。 地圖上的每一個點都可以問: 「哪一個基地臺離我最近?」 以便決定哪個基地臺的訊號比較強、 我的手機要跟誰連線。 以 (不會移動的) 「偶像 - 粉絲」 之間的關係來比喻, 每個偶像有自己的勢力範圍, 範圍內的所有點就是它的粉絲。 各勢力範圍之間的分界線由相鄰兩偶像的垂直平分線所組成。 這樣畫出來的圖稱為 Voronoi Diagram。 因為我拿不到基地臺座標, 所以只好改畫燦坤各分店的勢力範圍地圖。 目前可能沒什麼用, 因為分店跟粉絲的直線距離沒有太大意義; 但以後出現無人機送/取貨業務時, 這張地圖可能就有用了。

2017年11月26日 星期日

脊椎不正所引起的腰腿酸痛, 自推大腿就好了一大半

幾週前跟一位許久不見的老同學聊天。 他大腿痛到不太能走路, 檢查結果是椎間盤突出, 醫生說要開刀。 他嚇到了, 趕快上網大量爬文作功課, 搜尋到一支 「神棍」, 據說下腰椎的問題只需要自推兩週就會有改善。 他買回來自推三天, 突然聽到 「卡」 一聲, 腳就幾乎不痛了! 免去了開刀的痛苦和風險。 我自己也有脊椎側彎的問題, 雖沒疼痛, 但肚臍很明顯歪一邊, 坐公車或捷運時還會覺得自己像個怪叔叔, 一直倒向右側的蘿莉或正太 orz。 所以也很好奇地爬文、 照做。 「神棍」 還在海運路上, 我徒手自推, 第一晚做完後繼續做其他扭曲伸展動作時, 也是突然聽到 「卡」 的一聲, 感覺歪肚臍的狀況就減緩了一半。 介紹給家人用, 他們身體也都出現有感的小小改善: 「而且比復健省下好多時間。」 所以一定要跟久坐打電腦的讀者們分享一下。

2017年11月18日 星期六

GRASS 地理資訊系統入門指南

GRASS 地理資訊系統 GRASS (Geographic Resources Analysis Support System) 是一套極強大的地理資訊系統自由軟體。 它能處理網格資料、 向量資料 (例如 geojson) 及資料庫形式的表格資料。

2017年11月16日 星期四

用 TGOS 全國門牌地址定位服務繪製全家便利商店全國門市地圖

想要繪製某大規模連鎖店的全國門市地圖。 全家門市查詢 有簡單的靜態網頁, 最容易處理, 那就決定用全家當範例了。 用 wget 把所有網頁抓下來, 如 FamilyMart.tgz (打包壓縮檔)。

再從所有網頁當中撈出每個門市的店名、 電話、 地址:

2017年11月7日 星期二

多邊形求面積與地理中心/形心/幾何中心近似值

幾所大學的校園範圍及地理中心 最近想要處理 osm 上面撈出來的便利商店資料。 其中有些以點標示, 有些以多邊形標示。 為了簡化問題, 想用多邊形的 地理中心 (點) 來取代多邊形 (面)。 以數學術語來說, 就是需要計算 幾何中心, 也就是 centroid, 亦稱為形心。 在 平面上的多邊形形心計算公式 裡面, 還需要順便計算面積。 所以我寫了 gj-area-centroid.py 來計算 geojson 簡單多邊形的面積與形心的近似值。

2017年11月3日 星期五

osm pbf 資料庫離線查詢必備指令

臺灣的各大學校園範圍 (臺北地區) 想要從 OSM 撈有趣的座標資料, 先前介紹過 Overpass Turbo 等等網頁工具。 如果你需要經常查詢、 需要寫程式查詢、 不想一直連線、 想要撈的資料量較大, 那麼還有另一個選擇: 直接下載 OSM 原始資料庫。 從 國網的映射 可以下載全球資料庫, 目前大約有 60G, 或是從 geofrbrik 可以下載按照國家或區域拆開的個別資料庫, 例如 臺灣 目前大約有 60M。

2017年10月28日 星期六

(可離線/批次/命令列的) 把彩色相片變成黑白、 幫黑白相片上色

想要把彩色圖片變成黑白, 可以這樣下: convert color.jpg -colorspace Gray gray.jpg。 詳見 ImageMagick 手冊

想要把黑白相片塗上顏色, 可以到 梅問題大大 攝影札記 所介紹的網站去上傳相片。

如果不想上傳, 想要離線作業, and/or 需要以指令的方式批次大量處理 -- 例如想要幫歷史黑白影片上色 -- 那就到 github 去下載 colorization 吧。 (有圖可看效果)

2017年10月4日 星期三

在低解析度的實體螢幕上用動態視野換取高解析度的享受

xrandr panning 的效果 筆電的解析度只有 1366x768, 跑 kvm 時, 虛擬機的解析度就只能調成 800x600, 好呆的感覺, guest 裡面的 app 如果不夠貼心 (對解析度的需求太貪心), 可能會連按鈕都按不到。 以這個例子來說, 可以按著 alt 鍵再用滑鼠移動視窗, 問題就解決了。

不過更一般地來說, 要怎樣才能用低解析度 (小螢幕) 的價格與重量得到高解析度 (大螢幕) 的享受呢? X Window 有一個神奇的功能, 讓你的實體螢幕彷彿只看到想像中的虛擬螢幕的一小部分, 每當滑鼠移到邊界時, 這一小塊看得見的視野的範圍也就跟著改變。 看 這支影片 比較清楚: 他的解析度也是只有 1366x768, 但是到了 1:01 時, 「panned screens」 按下 ok, game 的程式碼就以為螢幕變大了。 注意看他每次滑鼠移到邊邊時, 遊戲背景就會跟著移動; 但是對 game (或是其他任何 apps) 的程式碼而言, 它一直以為螢幕就是很大、 背景其實一直是保持固定不動的。

2017年9月27日 星期三

ssh X forwarding 失敗除錯

從甲電腦用 ssh 連線到乙電腦時, 如果多加一個 -X 選項, 像這樣: ssh -X me@乙電腦 之後就可以在乙電腦上執行 GUI 程式, 視窗會丟回甲電腦來。 這叫做 ssh X forwarding, 很好用。 不太確定是什麼原因, 最近我的筆電當成乙電腦 (ssh server) 時, 這個功能突然失效了。 這篇短文 拯救了我: 連線時改下 ssh -v -X me@乙電腦, 這個 -v 會叫 ssh 多印一些除錯訊息。 再根據錯誤訊息 ("X11 forwarding request failed on channel 0") 找到 文章, 說在乙電腦的 /etc/ssh/sshd_config 裡面加一句 X11UseLocalhost no, 再重新啟動服務: systemctl restart ssh, 於是 ssh -X 就又可以用了! 這句話是什麼意思? 根據手冊 man sshd_config 這個問答, 看來是叫乙電腦的 sshd 服務放寬一點, 不要太嚴格。

順便一提, 在乙電腦上 sudo 變身成 root 之後, 也有可能就無法再開啟 GUI 視窗。 [這就是 unix 的文化啊! 一般用戶的視窗, 預設 root 是不能任意侵犯的。] 有搜尋到 123 等等文章; 不過其實我自己已經很久沒遇過到這個問題了。 回頭一查, 發現很久以前就已經在 root 的 .bashrc 裡面設定 export XAUTHORITY=/home/ckhung/.Xauthority 所以一直都很順暢。 註解裡寫著這招是從 archlinux 的文件 學來的。 真是太愛 archlinux 社群了! 連我們非 archlinux 用戶都經常受惠於他們超優質的文件。

2017年9月25日 星期一

編譯別人的程式的除錯技巧

最近玩 AI 一直在編譯別人寫的軟體。 最常遇到的問題, 不是別人寫的程式有錯, 而是我的環境跟他的環境沒有 100% 相同, 所以原來 ok 的程式碼, 到了我的環境就編譯失敗。 以下是我 編譯 ENet 時學到的一些除錯技巧與心得。

2017年9月18日 星期一

推薦一個編譯影像處理 AI 軟體的 docker image

玩 AI 時, 經常需要自己編譯軟體。 很麻煩的是, AI 軟體經常有很長一串相依套件, 其中有些套件很難編譯。 以我最近在玩的影像處理為例, opencv 跟 boost 是兩個很常用到但編譯起來困難重重的套件。 還好找到 docker-cmake-opencv-boost 這個現成的 Dockerfile。 向作者求助兩次之後, 得到 迅速有效的回應。 我就直接拿原作者的 Dockerfile 來用: