2019年6月5日 星期三

avfs: 不必解開, 直接把壓縮檔當成目錄大搖大擺走進去

我每年會備份一次個人檔案。 硬碟上有歷年的 .tgz 備份檔。 有時需要把舊文件挖出來看。 問題是: 不記得我要的檔案在哪一年份的備份裡。 於是逐年 [解壓縮、 搜尋、 刪掉] 直到找到為止, 有點麻煩。 今天終於發現一招好用的方案: 採用 AVFS。

2019年5月12日 星期日

用 certbot 幫同網域下眾網站創建共用的 ssl 憑證

從去年起, chrome 已經開始把 http (沒有 s) 的網站標示為不安全了。 現代的站長一定要學會 用 let's encryp 把 http 網站升級成 https 網站 (中文)。 但是如果你 (1) 擁有同網域底下一整個艦隊很多個網站, 但是 (2) 懶得逐一申請, 而且 (3) 委託代管 DNS 或自管 DNS, 那麼就可以直接拿同一個憑證給同網域的所有網站共用。 例如我擁有 frdm.info, 委託 pchome 代管 DNS, 而且想要讓 abcdef.frdm.info 跟 uvwxyz.frdm.info 及其他子網域都共用同一組 ssl 憑證。 以下就是我的筆記。 也可以參考 Sam Tang 的中文文章 Saurabh Palande 的英文文章

2019年4月22日 星期一

已經是邊緣人不能再遺失手機通訊錄了啊!

先前手機摔壞了, 螢幕碎到不能看, 還好 adb 連線 還可以用。 於是用 scrcpy 從電腦操作搶救資料。 其中一個任務是要把通訊錄倒出來。 結果發現不知為何連 「通訊錄」 app 的匯出功能也壞掉了。 查看一下舊的匯出檔, 發現上次備份是三年前 orz。 可是電話跟簡訊 apps 明明都還看得見通訊錄, 顯然資料還在。 搜尋到 這個問答, 得知檔案放在 /data/data/com.android.providers.contacts/databases/contacts2.db 。 不過 /data/data 這個目錄需要 root 權限才可以進入。 把它 copy 到 /sdcard 底下, 再用 adb 或 primitive ftpd 把它傳到電腦上。 這是一個 sqlite 格式的檔案。 在 lubuntu 底下, 需要安裝 sqlite3 套件才能處理。 再下載 sqlite 轉 vcf 的 shell script, 最後終於成功地把通訊錄救出來。 還好我早已 幫手機取得 root 權限, 不然通訊錄就這樣毀了, 我會不會變得跟冥王星一樣邊緣啊~~ (抖)

2019年4月7日 星期日

自己的行事曆和通訊錄自己管: nextcloud 安裝、 行事曆、 備份及手機連線

Nextcloud 是 owncloud 的 fork。 它讓你自架私有雲取代 dropbox、 google drive、 google calendar、 google 通訊錄等等服務。 我自己的雲端檔案沒有用任何軟體管理, 就直接用 scp 存取。 對我而言, nextcloud 最重要的是拿來取代 google calendar (還有通訊錄; 不過目前還沒用)。

2019年3月31日 星期日

ubuntu 18.04 之 mysql 忘記 root 密碼

今天在家裡的 lubuntu 18.04 電腦上想要把冷凍很久的 mysql 拿出來用, 但因為事業做太大、 serves 養太多了, 突然發現完全想不起來這個不重要的 mysql 帳號的 root 用戶密碼。 沒關係, 記得搜尋得到解法。 找到一篇 2012 年的文章 , 但是在執行 mysqld_safe --skip-grant-tables & 的時候, 卻看到這樣的訊息: mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 然後 mysqld_safe 馬上結束, 我也就無法繼續往下做。

2019年2月16日 星期六

網頁爬蟲終極武器: puppeteer

無頭瀏覽器

下載靜態網頁可以用 wget 或 curl。 那如果是 javascript 動態產生/填寫的頁面呢? 如果只需要網頁快照截圖, 可以用 cutycapt; 如果需要取得 javascript 所產生的文字內容, 那就用 puppeteer。 (字的原意: 操偶師) 它會呼叫 chrome 幫它執行頁面的 javascript, 但不會真的在桌面上打開 chrome 視窗。 在這種模式下運作的瀏覽器, 稱為 headless browser。 今天我們要用 puppeteer 及 headless chrome 來製作網頁爬蟲。

2019年2月7日 星期四

網頁畫面定時快照截圖

過年期間的天氣圖 想要定期下載某網頁, 可以在 cron job 裡面用 wget。 [ 鳥哥 教育大市集] 但這僅適用於伺服器端產生的靜態網頁。 如果是 javascript 產生的動態網頁呢? 如果需要取得網頁文字內容, 那就必須用比較進階的 網頁爬蟲終極武器: puppeteer; 如果只需要快照截圖 (例如想要觀察 google 地圖或開放街圖某塊區域的長期變化), 那麼本篇介紹的 cutycapt 就夠用了。

2019年2月1日 星期五

Windows 桌面驚魂記

xfreerdp 太可怕了! 老朋友要分享大檔給我, 竟然開了他的 windows 桌面讓我登入。 我試著用 rdesktop 連線, 得到錯誤訊息 「ERROR: CredSSP: Initialize failed, do you have correct kerberos tgt initialized ? Failed to connect, CredSSP required by server.」 搜尋到救星解答: 採用 xfreerdp。 在 ubuntu 18.04 底下, 安裝 freerdp2-x11 套件, 然後 xfreerdp /u:帳號名稱 /v:伺服器的IP /drive:gregbasket,/home/ckhung/share 回答完密碼之後就出現了駭人的 windows 桌面。 握著滑鼠的手顫抖地點選 「我的電腦」, 會看到有一顆硬碟/隨身碟名為 "gregbasket", 也就是剛才命令列上用 /drive 參數任意取的遠端名稱, 它對應到本機的 /home/ckhung/share 目錄。 從朋友的桌面上把檔案丟到 gregbasket, 拿了就跑, 趕快逃離可怕的 windows。 (完)

2019年1月27日 星期日

拿股票三維資料學習 pandas 的 multiindex

股票三維資料 最近認真用 python 的 pandas 函式庫讀取股票每日收盤資料, 結論是: 嗯, 還是用陽春 python 處理比較簡單快速 -- 執行的時間跟程式除錯的時間都比較省。 本篇是跟 pandas 的分手宣言。 閱讀本文之前, 請先按照 我上個月的 pandas 開箱文 操作一遍。 (好短的戀情啊~~)

2019年1月22日 星期二

slax: 330MB 的圖形桌面

中文勉強可用版 slax 9.6.6 桌面 Tomas Matejicek 推出 (羽量級 linux) slax 9.6.6 。 現在改採 debian 作為基底, 採用 fluxbox 作為視窗介面, 但一樣只佔不到 280MB 的空間 (僅能使用英文)。 客製化的過程變得更簡單 -- 我做了一個 50MB 的正體中文勉強可用外掛模組, 只有 sakura 終端機可以輸入中文; 瀏覽器只能讀中文不能直接輸入 (可以剪貼), 卡關太久, 沒有進展, 乾脆直接把這個半成品放出來請大家幫忙解決問題。

2019年1月5日 星期六

跟蹤狂祖克柏退散! 免登入也能閱讀臉書上的公開貼文

有些 FB 網紅大大的頁面明明是公開的, 但讀者卻必須登入他自己的 FB 才能閱讀網紅大大的貼文。 這樣的設定對於保護隱私完全沒有幫助。 (事實上 「臉書上的隱私」 本來就只是一種幻想, 看看 性工作者身份暴露的故事 就知道臉書的可怕) 這只會犧牲自己的人氣幫 FB 換取更多的追蹤訪客的機會, 好像店長僱了一位街頭小弟幫你發商店傳單, 小弟卻對訪客說: 「你先加入XX幫, 才可以進來消費」 一樣, 仿佛又回到了十年前 網站自殘 -- 微軟綁架你的點閱率 的年代。 因為我是 無賴 不要臉的邊緣人, 不太會用 FB, 不太確定自己的 FB 是否也跟小英總統一樣設壞掉了? 總之如果讀者知道該如何更改這個設定, 讓沒有登入的訪客也能看自己的 FB 公開貼文, 麻煩分享一下, 讓這些網紅大大不再犧牲自己的人氣幫 FB 強迫推銷。

但是在那麼多網紅大大學會更改設定之前, 我們路過的訪客還是可以自力救濟 -- 只需要以下幾個指令:

2018年12月11日 星期二

拿公投統計資料學 pandas

以前我都用 perl 處理文字資料, 例如 regexp csv 句型 都很好用。 但是現在大家都用 python, 我當然也要跟著趕一下流行啊~~ 處理試算表類型的資料時, python 程式設計師最常用 pandas 函式庫。 它也是玩機器學習或資料科學一定要學東西。 繪圖的話, matplotlib 跟 plotly 都很好用。 就讓我們拿中華臺北人很有感的十項案公投結果統計資料來當 pandas / matplotlib / plotly 的入門範例吧!