2019年8月22日 星期四

暫時隱藏 android 手機相片資料夾

近日開始, 從香港入境中國, 會被檢查手機。 其實有兩個簡單的方法可以暫時隱藏手機相片資料夾。 這是 security by obscurity (which is no security!) 用白話講, 這是很弱的偽裝, 只夠對付忙碌的第一線檢查人員; 如果一開始就已被盯上、 已被列入特殊觀察名單, 那麼這兩招其實是無效的。

2019年8月19日 星期一

網頁表格轉 csv, 瀏覽器 inspector 手動剪貼版

玩資料視覺化, 經常需要從網頁上下載表格, 再轉成 csv。 以前就曾搜尋到 sebsauvage.net 上面的 html2csv.py, 後來忘記了; 最近又重新發現一次。 很簡單: python2 html2csv.py abc.html 它會把 abc.html 裡面的所有表格串在一起, 產生一個 abc.csv 。 如果有合併列或合併欄等等比較複雜的狀況, 還是需要後續處理, 但至少比自己寫 regexp 簡單多了。 全文完。

下載 html 檔 喂~ 這樣就結束? 這篇未免太 ㄌㄢˋ ㄩˊ ㄔㄨㄥ ㄕㄨˋ 了吧! [現在有同音異字的成語太多了, 我都不知道國字該怎麼寫才對...] 至少應該要交代一下如何取得 html 啊。 如果是大量的靜態網頁, 可以用 wget 或 lynx -dump 或 curl 取得。 有可能需要 設定 user agent 才不會被網站拒絕。 如果是 javascript 所動態產生的、 上述指令無法取得的網頁呢? 如果頁面數量很多, 那就考慮用 puppeteer。 如果只是單一或少數的 [js 動態產生的] 頁面, 那就手動另存新檔就好。 可是有一些 js 頁面需要你點幾個地方之後, 才會動態填值進表格。 這時 firefox 的 console 就很好用了 -- 即使不是 js 程式設計師也值得學一下。

2019年8月7日 星期三

尺規作圖遊樂場 Dr. Geo

過圓外一點 C 做切線 CE 跟 CF 還記得小時候學的 (沒有刻度的) 直尺與圓規作圖嗎? 光用這兩個工具, 就可以畫出相似三角形、 三角形的外接圓/內切圓等等圖形。 這是很燒腦又很好玩的益智遊戲。 用電腦畫更好玩, 因為繪圖完成後, 你可以用滑鼠抓著原圖的頂點或圓心, 改變原圖 (例如三角形) 的大小/形狀/位置的同時, 看著衍生圖 (例如外接圓或內切圓) 跟著變動, 超有成就感! 十幾年前我寫過 DrGeo: 物理老師也會心動的幾何教學玩具。 後來 Dr. Geo 大改版; 幾個月前得知: 新版的 Dr. Geo 不僅支援中文顯示, 也支援中文輸入, 今天終於要來重寫一篇新版的介紹文了。

2019年8月3日 星期六

簡單語音指令辨識

完整的自然語言語音辨識很複雜; 但在很多應用場合中, 如果可以讓用戶以十來個簡單語音指令控制電器/電腦/apps, 就已經很方便了, 而想要訓練這樣的類神經網路, 門檻當然比完整的語音辨識低很多。 Simple Audio Recognition (以下簡稱 SAR 一文) 所介紹的 tensorflow 原始碼當中的 speech_commands 範例, 就是這樣的工具。 餵一段一秒鐘的聲音, 它會判斷這是 "yes", "no", "up"、 "down"、 "left"、 "right"、 "on"、 "off"、 "stop"、 "go" 當中的哪一個語音命令, 或是未知的聲音 (UNKNOWN) 或是無聲 (SILENCE) (其實可能是很小聲的背景噪音)。 假設讀者已經先照著 貴哥的 colab 初學筆記 認識了 colab 的基本操作, 今天這篇文章將接續著帶大家用 colab 把 speech_commands 的操作流程幾乎走一遍。