over 1 year ago

好久沒寫部落格了...。開學的時候還發下豪語一個星期要寫1~2篇的,結果根本做不到。只好偷渡一點現在正在學的東西增加產出,已顯示我還存在的事實...,(以下負能量略

今天來講個考前一天才在自己課本上讀到的神奇公式,(結果考試前學不起來,最後沒用上),可以很方便地處理 inverse Laplace 時頭痛的部份分式問題, 讓你用心算就可以直接寫答案,不用再拆部份分式了,似乎不是每本課本都會提呢。

Read on →
 
over 1 year ago

發現 terminal 的 16 色有時候略嫌單調 ,而且看久了眼睛好痛啊,於是就自己改了一套來用。說要改,當然就是要改漂亮的 material design 主題呀!

Ref: Colors: Google Design Guildlines
我自己做了一份參考: material color in both HEX and RGB for reference

terminal 的標準 16 色依序是
黑(Black) 藍(Blue) 綠(Green) 水藍(Cyan) 紅(Red) 紫(Violet) 褐(Brown) 淺灰(Light gray)
深灰(Dark gray) 淺藍 淺綠 淺水藍 粉紅 洋紅 黃 白(White)

我個人選取的建議是忠於原色調,並且保持「深/淺」的差距在200以上。比較困難的是Cyan和Green兩色較難選,這時可善用accent color(A100~A700)來增強對比。

Read on →
 
over 1 year ago

在思源黑體發佈之初,因為最早看到的新聞上是寫Google那邊的的連結,所以直接下載了Google發佈的 Noto Sans,沒注意到這個字型系列其實有等寬字型。之後瀏覽到思源黑體的GitHub repo,才意外發現這個「思源黑體 HW」,之後到Noto Sans那查到對應的Noto Sans Mono。

(插曲:那時候繁體中文字型的名字是 Noto Sans T Chinese,後來Google對中日韓字型做了些額外調整,成為了 Noto Sans CJK TC)

這麼一來,終於找到一個可以取代「細明體」和「文泉驛等寬」的中文等寬字體了!還是真正的繁體中文版!

Read on →
 
over 1 year ago

註:本文持續更新直到porting完成。明確的說是套件pytest內所有測試均通過。

簡略的緣起

開源社的Slack + 期初專案發想 → Slack Backup Project
為了找一個Python可以用的native, file-based NoSQL database(哇這限制也太嚴格),找到了 CodernityDB,可惜是給Python 2用的。GitHub已經有2to3轉好的repo,可是這作者好像轉完就不管了,實測是不能用的。於是就開始了這趟 porting 的奇妙之旅。

Read on →
 
over 1 year ago

安裝這麼肥大的Qt有些棘手,在Windows環境下裝東西更是棘手,在說明文件不完善又往往徒勞無功的情況下簡直是不可能的任務啊。

安裝一個東西首先應該先檢查環境,就我所知PyQt5要具備以下環境:

  • Qt5 -> http://www.qt.io/download-open-source/
  • Visual Studio 2010/12/13 -> 可以到微軟網站上找到,免費的,不過超肥
  • 一個叫SIP的輔助套件
  • 配置良好的環境變數:PATH
Read on →
 
almost 2 years ago

發想

將兩個API有差異的社群功能做一連結,使原服務的使用者能夠將訊息轉信至Slack,能夠增加Slack的使用者。

做法

  1. 定期檢查兩個服務的最新貼文。為了避免造成伺服器太大的負擔,設計了尖峰與離峰的機制,一段時間沒有收到新訊息就降低檢查的頻率。
  2. 如果有更新,將收到的資料重新編碼,往另一邊送。我的作法是開一個新的物件將兩者資料統一,兩邊來的資料都用此物件接收,根據原始資料的特徵(有哪些key)判斷是何處來的資料、決定該如何解析,最後可依需求匯出成不同形式的物件輸出給server端或是console。
  3. 避免發出去的訊息又被轉回來。很重要。在Slack端因為發出去的訊息都是bot-message,所以可以很簡單地在檢查時過濾掉,另一服務我則是用一個沒有用到的欄位來辨別。一般來說需要設計屬性標記這類轉送過的訊息。
  4. 控制轉送速率。Slack限制1秒只能發送至多一次請求(官網的說明是可以短時間內超過這個限制,不要太超過就好),所以需要修改request模組使其延遲送出請求。我的算法是每多一次在等待的請求就延遲1秒,並且與前一請求也保持至少1秒,但是沒很仔細驗證到底這樣做對不對。

整體而言做法不難,然而細節很瑣碎,除了兩者的API與資料結構差異很大需要仔細調整,不同類別訊息如何轉換也大大增加了code的量。未來可以對這個專案進行修改,向其他服務雙向同步。

Repo

server放在Heroku上。
Repo: https://github.com/andy0130tw/slack-lm-sync

 
almost 2 years ago

第一篇文章,直接從不久前Blogspot寫好的文轉過來。

Wikiwand是個美化維基百科頁面的附加元件,安裝以後,瀏覽維基百科的條目就會被重新導向到重新排版過的頁面,更方便的目錄導覽、圖片以全版顯示等等,可以自訂字體、字型大小、頁寬、顏色(亮/暗)等等,甚是方便。

Wikiwand

但是慣用繁體中文的使用者可能會對一點十分困擾,就是頁面預設往往不是繁體中文。對於這個問題有人已經回報過,但是這問題遲遲未被修正。因此我用GreaseMonkey(在Chrome上為TemperMonkey)寫了一小段JS code,可以有效率的自動將中文頁面自動重新導向成「繁體中文」,程式碼如下:

Read on →