之前發現開發 GUI App 會因為電子紙特性而有螢幕閃爍的問題,中午順手查了一下 KOReader 是如何避免這個問題的?
只是匆匆一瞥,但貌似 KOReader 在更新時是將資料寫至 framebuffer,並透過 ioctl 下不同的參數而達到部份更新的功能?
還是不想浪費 Golang 跨平台的能力,再加上不想花費太多時間,故想嘗試 HTML Golang GUI 的解決方式。
這次選擇的是 gowut 這個專案,無奈在 Clara HD 實機上測試時,還是無法正常執行。
第一個問題是它無法自動帶出瀏覽器視窗,這個尚屬合理。
第二個問題是即使自己開啟瀏覽器輸入網址,還是無法連上 gowut Server。
第三個問題是我改用 gowut 自己提供的測試網址,雖然看起來 GUI 元件有正常運作,但一來速度太慢,二來是多操作幾下就會整個無回應,三來是畫面會因為重繪而閃爍(電子紙特性)。
目前看來 HTML GUI 解決方式不是正解,光畫面會閃爍就無法讓人接受,不過這也延伸出另外一個問題,即使我使用 Qt 撰寫 GUI App,我一樣會遭遇畫面閃爍的問題,除非 Kobo 本身有提供 SDK 讓使用者呼叫暫時停止重繪,好避免畫面閃爍。
感覺 GUI App 這個問題快走入死胡同了?
最近無意間在讀墨網站發現,居然有《七龍珠彩色漫畫》的電子書,對於一年前才狠下心買完《七龍珠完全版》的我來說,內心真的是陷入天人交戰。
試算了一下,如果全出的話共有 32 本,一本 105 元,總共要 3,360 元,如果是趁著 3 本 75 折買則是要 2,520 元。
樂天的價錢也是 105 元,Google Play 圖書則是只要 87 元,不過 Google Play 圖書無法下載檔案,再加上價差不大,應該是不用考慮。
以前買完全版時,共花了 150 x 34 = 5,100 元,因為讀墨分兩次上架,故我也記不清那批是打折時購買,我想至少也是花了四千多塊有。
不知道在書展期間是否有機會全部上架?也許到時候還是會衝一波。
KoboCloud 雖然看起來很簡單!但其實裡面的 script 是有技術含量的,以 Google Drive 來說,它至少要先知道使用 HTTP Get 資料夾連結後的回傳內容是什麼?還有如何取得所有的檔案名稱以及個別的下載連結。
舉例來說,假設我們設的公開連結為:
https://drive.google.com/drive/folders/XXXXXXX-YYYYYYYYYYYY
response 回來的內容需利用正規表示法來找到相關資訊,可能是我只會簡單的 Re,我取到的會因為貪婪法而無法拆解成一本一本的資料,故只好再用字串分割做 2 次加工。
底下是我目前用的 sample code,其中 base_url 就是 XXXXXXX-YYYYYYYYYYYY。
而每本書的下載路徑就是 https://drive.google.com/uc?id=file_code&export=download,下載時會經過幾次重導向。
import re
import requests
url = 'https://drive.google.com/drive/folders/XXXXXXX-YYYYYYYYYYYY'
response = requests.get(url)
s = response.text
pattern = '\\\\x5b\\\\x22(?P<file_code>.*)\\\\x22,\\\\x5b\\\\x22(?P<base_url>.*)\\\\x22\\\\x5d\\\\n,\\\\x22(?P<file_name>.*)\\\\x22,\\\\x22'
res = re.search(pattern, s)
all = res.group(0)
items = all.split('application')
for item in items:
res = re.search(pattern, item)
print(res.group('file_code'), res.group('base_url'), res.group('file_name'))
Fyne 缺少的 libGL.so.1 確定是無法靜態連結了,至少就我目前看到的資料是如此。
在不考慮 GUI app 的情況下,其實寫個 Golang app 是最快的,在 Wi-Fi 開啟時就自動同步 Google Drive,就像 Kindle 同步個人文檔一樣,第一次時也是全部下載,並沒有讓使用者選擇,只是之後還是可以任意刪除再下載,甚至回過頭來刪除 Kindle Server 的個人文檔。
我想像中的行為大概是這樣:
最近又下雨下到令人阿雜,古人說的什麼「沾衣欲濕杏花雨」都只是騙人的玩意。不論是毛毛細雨還是又濕又冷的冬雨,讓人一點都不想上班。
因為下雨的緣故,買咖啡變得不方便,故購買頻率也跟著減少,雖然我不知道是不是只有我是這樣?在只有一隻手是乾淨的狀態下,又要拿傘又要拿咖啡,真的是無解。當然會有人想用提袋裝咖啡,但對於下雨就懶得帶包包出門的我來說,實在是生不出外套空間擺提袋。難怪《原子習慣》才會強調建立環境對習慣養成的重要性,因為人是很懶惰的生物。
總之,今天一反常態的進去小 7 買咖啡,還是在已知一堆人等咖啡的情況下,人心真是讓人猜不透呀!目測在我結完帳後,在我前面連我還有 6 組人在等咖啡,約莫在消化了一半的時候,排在我前前面的人突然抱怨說,為什麼在她後面的已經拿到咖啡(我前面一位)?事情的真相是她們兩人算是同時結帳,但因為抱怨的人還要報手機使用會員結帳,故實際的順位往後排了一位。雖然店員跟她來回對話時有隱含一絲絲火氣,但雙方總算還是有控制住情緒。
厲害的事來了,中間還有差插另外一組人也是在抱怨咖啡速度,他們的對話也是有些小火氣,在他們拿完 3 杯咖啡後,小 7 店員還是在百忙之中發現錯誤,急忙追出去修正,我不知道標籤機是否有提示同一批結帳?如果沒有的話,店員要如何得知這個是同一組人的咖啡?畢竟做咖啡的和結帳的不是同一位店員居多,特別是生意好的店,如果沒有這個功能應該要加上才會方便。畢竟,可以靠機器解決的就不要靠人力。
接下來就是我的咖啡了,店員還不忘跟我說聲抱歉久等了,讓我不禁讚嘆小 7 店員的情緒控制能力,如果沒有一套訓練機制,實在是很難提供這樣的服務?
雖然,超商有分直營店跟加盟店,還有我也不在固定的超商消費,再加上我本身也不喜歡統一這家公司,但就我個人曾有的消費感覺來說,小 7 店員的專業度絕對是第一名當之無愧。