pretty code

2020年3月30日 星期一

Announcement: COVID-19 impact on CWS review and support

今天收到 CWS 寄來的 email,看來我的 Readmoo Expense 更新應該會拖更久吧?

Dear Developer,
We want to tell you about impending changes to the Chrome Web Store as a result of the COVID-19 situation.
Given adjusted work schedules due to these unprecedented times, there may be some temporary limitations and delays in support in some cases:
  • Delay in publishing - New versions submitted to the Store will take longer to be reviewed and published.
  • Delay in responses to appeals - If you appeal an item rejection or removal, or appeal an account suspension, expect the response to be delayed. However, we will respond to every appeal request and we will get back to you as soon as we can.
  • Delay in developer account transfers - If you are transferring your extension to a different account, expect a significant increase in the time taken to complete the transfer.
  • Delay in general support - If you are trying to reach out to our support team for issues related to your account(s) or extension(s), expect a delayed response from our team. We will get back to you as soon as we can.
  • Chrome Web Store payments - We are disabling the ability to create new paid items or add payments to existing items. This includes extensions, themes, apps, and in-app purchases.
You can help by making sure that your extensions comply with the Developer program policies before you submit them. Refer to these resources for more information:
We understand that these changes may cause inconvenience, and we apologize for any interruption of service. Thank you for your support during this challenging time and for your participation in the Chrome extension ecosystem.
- The Google Chrome Web Store team

2020年3月28日 星期六

武漢封城日記【電子書特別加值版】

這本書我是在 mooInk Pro 上看完的,不算好看也不算難看,算是感受一下封城的實況轉播吧。

同樣的書在 Paperwhite 3 上看,感覺就比較順眼,雖然已被 kindlegen 轉過,已非原始的 EPUB 格式。

忘記 Kindle 從哪一版開始,系統就多了圓體字型,這個字體也是我認為最適合看書的字型。

只不過習慣 Paperwhite 3 後,每次都會不自覺在 mooInk Pro 的圖片上長按,以為這樣圖片就能放大,每次都要過後才想起 mooInk Pro 是使用點兩下的方式放大圖片。

雖然 mooInk Pro 已經很輕,流式版面書籍我還是喜歡使用 Paperwhite 3 閱讀,感覺還是有差。

這台 Paperwhite 3 電池不知還能撐多久?等到掛掉以後,就換我的 Oasis 2 上場了。

Oasis 2 有個好處,充飽電後如果都沒使用,2 個多月都還有 70 % 以上的電力,不像我另一台 Boox Nova Pro,不使用時一定要關機,不然無法撐過一個月。

2020年3月27日 星期五

WFH 初體驗

今天是 WFH 的第 2 天,算算時間也差不多了,打完下班卡後便決定記錄一下心情。

說來慚愧,身為一個軟體人,一直都沒找到能夠在家工作的公司。最近公司為了疫情提早準備,特別分成 2 組做 WFH 2 天的演練,希望可以藉此觀察在家工作的可能性。

由於只有 2 天,大部分的人都是藉由調整工作順序來減輕負擔,避免還要攜帶設備回家工作。但我知道我沒那麼好運,底層 Tool 的工作一時半刻也脫離不了,故早就決定要攜帶設備回家。

沒想到人算不如天算,家裡的舊鍵盤插了沒有反應,雖然我早在前一晚便先把環境架設起來,並緊急上網採購,但 24 小時到貨還是直到隔天下午才送達,打亂了我原本的測試步調。

雖然有不用鍵盤的測試方法,但要一直重開機,並在書房和飯廳來來去去,實在是不方便。重點是為了架設設備,書桌只能留給設備,只能克難的在飯桌工作,一整個阿雜。明明就是純軟的,偏偏要去寫底層的 Tool,真是無奈。

講完不開心的,來說說開心的事吧!

藉著這個機會,終於把想買的 UltraEdit 26 買了,雖然要 US 126,但看在可以方便我工作的份上還是開心的刷下去了,我也算是號稱擁有 2 套 UltraEdit 的大叔了!

只不過,時光飛逝,物價飛漲,10 幾年前購買 UltraEdit 13 只要 NT 1,800,這筆錢還是讓我的荷包小瘦了一下。

另外,新版的介面實在看不習慣,不覺得有舊版的好用,如果開大檔的速度有變快,勉強還可接受,改天再來測試看看。


總結一下 WFH 的優缺點:

優點方面
01. 公司可以節省成本,水電租金可以減輕不少。
02. 工作效率變高,辦公室還是太吵雜,影響 coding 思緒。
03. 省去員工通勤時間,在家煮飯也比外食健康。
04. 查找資料方便,想要查什麼直接去書櫃翻書即可。

缺點方面
01. 需要有自動自發的員工,在家工作才能保持進度。
02. 非純軟的人或是需要攜帶設備的人很不方便,甚至某些職業也不能在家工作。
03. 下班時間可能還會繼續工作,像我已經打完卡了,還是在等測試結果,免不了還要花時間跑程式產生報告。

總之,如果可以選擇,我還是喜歡在家工作,一整個有效率。

2020年3月20日 星期五

我的 D 槽

今天為了寫支小程式幫助工作,其中有一個部份需要 rename folder,沒想到竟然是個惡夢的開始!

我使用的是 fs-extra module,第一個看到的函數就是 move,嗯看起來沒甚麼問題。
後來因為不成功,再看一次說明,以為設定 overwrite = true,應該就可以了。

結果一樣不行!為了測試是不是不能同一槽,把 dst 設成 'D:\\',就是這個動作,害我工作這幾年的資料全部都沒了,還好 source code 是在 git server。

我果然是個大白爛。

應該用原生的就好 fs.renameSync(oldPath, newPath)

2020年3月18日 星期三

Chrome Extension 隱私權更新

前一陣子,Chrome Extension 更新了隱私權政策,之後發佈的版本都需要在套件頁面填入相關資訊,其中包括已發佈的套件更新。
我的 Readmoo Expense 為了增加選單功能,在約 2 個星期前發佈了新版本 1.3,但直到現在都還沒有審核通過。

前幾天怕我的另一個套件之後也需要更新,故提前更新了隱私權頁面資訊。

沒想到這次不到 3 天就已經審核通過,差別在這次我是用英文寫。

早知道之前也用英文,真是千金難買早知道呀。

2020年3月12日 星期四

fatal error C1001: 編譯器發生內部錯誤

今天跟了某同事的 commit 後,編譯 UEFI Application 時,會發生如下的錯誤。
看了一下同事的 code,左看右看都看不出個所以然,連那個 f: 的路徑都不知從哪來的?

後來實在沒辦法,把 inf 裡的最佳化從 "/Oi-" 改成 "/Od" 便暫時解決了此問題。
一整個下午的心情都被搞成很阿雜!

2020/03/13 更新

那個提示訊息是有意義的,是同事的 code 出問題無誤,非那個奇怪的 f: 路徑。

原本有加上 /FAcs 想看錯誤行數的 assembly code,是否能看出最佳化後的組語長怎樣?不過因為是到那邊出錯,故整個函數的 assembly code 都未產出到檔案。

後來再仔細研究了同事 commit 的函數,居然是錯在函數的參數被拿來計算,導致最佳化出錯,真是個奇特的經驗。

unsigned int XXXX(void* buffer, unsigned int len, unsigned int ans)
{
    unsigned char* buf = (unsigned int*)buffer;
    unsigned int i;
    
    for (i = 0; i < len; ++i) {
        if (i == 8) ans = 0;
        ans += (unsigned int)(*buf++);
    }
    
    return ans;
}

2020年3月11日 星期三

Chrome Extension 訊息傳遞

popup.script 和 content.script 之間可以透過訊息傳遞機制來交換資料。

兩者都可以透過 chrome.runtime.onMessage.addListener 接收訊息,比較特別的是,popup.script 需要透過 chrome.tabs.sendMessage 才能傳遞訊息給 content.script。
另外,popup.script 在傳遞訊息時,content.script  必須已經存在,大部分會有問題都是因為 content.script 是透過 chrome.tabs.executeScript 來執行 content.script,故應該使用以下的方法才能確保先後順序。

chrome.tabs.executeScript(null, {
    file: "js/gethtml.js"
}, function() {
    if (chrome.runtime.lastError) {
        let errorMsg = chrome.runtime.lastError.message;
        showMessage('error : \n' + errorMsg);
    } else {
        chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {    
            chrome.tabs.sendMessage(tabs[0].id, {action: 'getIgnored', ignored: ignored});
        });   
    }
});

不過根據實測似乎會有一些問題,我遇到的問題是我有發送 ajax request,但會收到莫名其妙的 ajax response,待驗證。

2020/03/12 更新

如果只是要簡單的交換資料,其實在 content.script 裡面直接使用 storage API 應該是比較簡單。之前試的時候不成功,但今天卻是正常的。

2020/03/17 更新

改成在 manifest.json 直接加入 content.script,並指定執行時間為 "document_end",目前測試起來一切正常。

"content_scripts": [
    {
        "matches": ["https://member.readmoo.com/order"],
        "js": ["js/gethtml.js"],
        "run_at": "document_end"
    }
]

2020年3月10日 星期二

Chrome Extension 小技巧

安裝的套件,位在 C:\Users\XXX\AppData\Local\Google\Chrome\User Data\Default\Extensions 路徑下,安裝了幾個套件,裡面就會有幾個資料夾。

在擴充頁面開啟開發者模式,就可以看到 ID,那個 ID 也就是上面路徑裡面的資料夾名稱。

2020年3月6日 星期五

Image To PDF 免費軟體

原本都是自己寫 code 來將圖片轉成 PDF,但不管是我在工作測試時遇到的圖片或是做電子書轉檔時,很多 PNG 檔案都會有 PNG alpha 顏色的問題,導致還需要用 ImageMagick 再轉一次圖片,實在是阿雜。

找了一下,這個軟體可以有效解決 PNG 需要轉檔的問題。

https://freeshell.de/~luis/i2pdf/

2020/06/29 更新

這支程式在排序方面,無法完美處理數字的字串排序,看來還是要自己動手改才行,殘念。

2020年3月2日 星期一

The font size of function list in UltraEdit 13

1. Modify "C:\Users\XXX\AppData\Roaming\IDMComp\UltraEdit\uedit32.INI".
2. Add some text in [Settings].
    Extra Windows Font=Courier New
    Extra Windows Font Height=18