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 的入門範例吧!

2018年11月26日 星期一

DataTables 的固定表頭、 排名、 置中

先前寫的小程式 jesp 可以拿來把好幾個 csv 檔 join 在一起, 並且方便按照任何欄位排序。 其中表格資料好用的互動排序功能, 靠的就是 jQuery 的 DataTables 外掛。 兩年多前曾在 「jQuery 無痛讀檔」 裡初次使用; 現在重學一次, 並且選用幾個好用的效果。

2018年11月25日 星期日

處處訝異的怪怪語言 php

最近用 php 寫了一個小程式 jesp 可以拿來把好幾個 csv 檔 join 在一起, 並且讓訪客可以很方便地按照任何欄位排序。 過程當中發現 php 語言有很多怪怪的地方, 包含表達能力不足的設定檔、 用過一次就會有意外副作用的 referenc 變數、 不能疊起來的三元運算子。 這真是一個處處充滿詫異的神奇語言啊~~