Perl 上的 Monkey Patch

這整個週末都在跟 Net::DNS 奮戰 edns-client-subnet,遇到模組內的一小段程式有 bug,先用 monkey patch 硬上,之後再看看要怎麼丟 patch 回 upstream。

monkey patch 的方法主要是參考「How can I monkey-patch an instance method in Perl?」這邊提供的方法而來的。

由於實際的行為是 subroutine redefined (會產生警告訊息),所以要局部關掉 warnings,然後再把整個 subroutine 換掉:

use BugPackage;

{
    no warnings;
    local *BugPackage::bug_function = sub {
        # new code
    };
}

這樣可以在不修改原始模組程式碼的情況下抽換。

Google Chrome 上面清 Cookie 的機制

T客邦 上面看到講 Google Chrome 上清 cookie 的機制,提到了「Vanilla Cookie Manager」這個套件:「【Chrome安全技巧】如何自動清除網站的 cookie 以保護個資?」。

現在應該已經不需要用這個套件了,至少在 2012 年的時候 Google Chrome 就已經內建這個功能了:「Google Chrome 上的 Cookie 隱私機制...」,在 2012 年提到的問題已經消失了,現在用起來都很正常,而且可以透過 Google Chrome 內建的機制同步到不同電腦上。

先到「設定」裡面,展開「顯示進階設定...」後可以看到這個:

點「內容設定」後可以看到「Cookie」的部份,選擇「將本機資料保留到您關閉瀏覽器為止」,可以在關閉瀏覽器時自動把 cookie 都清掉,另外選擇「封鎖第三方 Cookie 和網站資料」可以防止不少廣告系統的個人化追蹤,造成隱私問題

但我不希望每次重開瀏覽器都要重新登入 FacebookTwitter 這類網站,那麼就點「管理例外狀況」後輸入白名單,這樣就可以避免了:

CloudFlare 在台灣有機房了

剛剛發現 CloudFlare 的 latency 掉下來了...

這是從中華電信機房內 smokeping-hinet-tpe-1.kkbox.com.tw 的資料:

這是從遠傳機房 smokeping-fetnet-tpe-1.kkbox.com.tw 的資料:

不過台灣固網的 smokeping-tfn-tpe-1.kkbox.com.tw 還沒看到:

沒有意外的話,應該是過幾天就會公佈了?接下來要觀察效能了...

WordPress.com 將全面提供 HTTPS 服務

WordPress.com 宣佈將全面提供 HTTPS 服務:「HTTPS Everywhere: Encryption for All WordPress.com Sites」。

其中 wordpress.com 應該是買 wildcard SSL certificate 來做,而 custom domain 的部份將會透過 Let's Encrypt 來做:

The Let’s Encrypt project gave us an efficient and automated way to provide SSL certificates for a large number of domains. We launched the first batch of certificates in January 2016 and immediately started working with Let’s Encrypt to make the process smoother for our massive and growing list of domains.

這包括了對 SPDY + HTTP/2 的支援,使得 HTTPS 的速度不比 HTTP 差 (甚至更快)。

用瀏覽器看 Netflix 加速播放

前陣子開始用 Netflix 看流言終結者,但以往看動畫已經習慣至少兩倍速了,舊址好找看看電腦上有沒有方案可以加速。

還頗幸運的是,早就有人把方法找出來了:「Netflix streaming playback speed and hidden menus」。

Netflix 在 Google Chrome 上面用 HTML5 player,而就有 extension 可以對 HTML5 player 加速:「Video Speed Controller」。

這樣消化影片的速度就快多了 :p

Mac 上的 Cleartext

看到 Mac 上的「Cleartext」這個軟體:

A text editor that only allows the 1,000 most common words in English

限制你使用比較簡單的英文,這樣可以讓讀的人比較容易了解 (尤其是非母語的人)。

有種跟 Simple English Wikipedia 的想法很像的感覺:

The project uses around 2,000 common English words, and is based on Basic English, an 850-word auxiliary international language created by Charles Kay Ogden in the 1920s.

另外還有提供 Trump mode XDDD:

Trained with a few of Trump's best known speeches, the app is now ready to help you write like a billionaire.

這好壞 XDDD

AWS Lambda 支援 Node.js 4.3

AWS 宣佈 Lambda 支援 Node.js 4.3:「AWS Lambda Supports Node.js 4.3」:

You can now develop your AWS Lambda functions using Node.js 4.3.2 in addition to Node.js 0.10.4.

另外同步在「Node.js 4.3.2 Runtime Now Available on Lambda」這邊也有文章介紹。

這樣總算可以拿出新的套件以及語法了...

自適應演算法與 A/B Testing

Hacker News Daily 上看到三年前的舊文章,講自適應演算法取代常見的 A/B testing:「20 lines of code that will beat A/B testing every time」。

就拿原文裡面的例子來說明,我想要測試 "Buy Now!" 這個按鈕的顏色來得知哪個顏色的 click rate 最高,而我有 Orange、Green 以及 White 三種顏色為候選。

一開始我初始值都設為「展示了 1 次,被點擊了 1 次」,所以每個點擊率都是 100%:

Orange Green White
1/1 = 100% 1/1=100% 1/1=100%

然後你的網站上只要展示「點擊率最高的那個顏色」,並且記錄下來展示次數與點擊率就好,而整個過程會是自適應而被自動被淘汰掉,最後可能會變成這樣,就會固定是綠色的了:

Orange Green White
114/4071 = 2.8% 205/6385=3.2% 59/2264=2.6%

而這樣做的好處是節省人力成本:你不需要 A/B Testing 完後再人工介入修改。

對於更複雜的例子,雖然原文沒有提到,但你可以直接展開來做,舉例來說,你假設顏色與地區兩個變數所帶出來的 click rate 不是 i.i.d.,那麼你可以針對每個 Color + Region 都存數值去比較。

當然還是有他的問題 (comment 有提到),不過可以架出一些全自動的 workaround 來解決,比起要兩階段人工介入省了不少人力。

另外可以想像在大的產品上會遇到效能問題 (因為對同樣資料大量的 read + write),但這個數字不需要太即時,只要量大就會準確,所以技術上也可以解決...

Mutt 1.6 出版,距離上個穩定版本八年多了...

Hacker News Daily 上看到在 terminal 下的 email client,Mutt,推出 1.6 版了...

上次出版是 June 9, 2007,八年多前因為 CVE-2007-2683CVE-2007-1558 而更新的。

雖然 DebianUbuntu 的 apt repository 都是跟 1.5.x 版,但還是很值得紀念一下 XDDD

AWS 通過的認證的證書資料連結

在「Frequently Asked Questions About Compliance in the AWS Cloud」這邊 AWS 的人列出一張表,提供了 AWS 目前所通過的認證以及證書資料。

舉例來說,在「ISO 27001 Compliance」這邊就有提供證書的 PDF 版本:「https://d0.awsstatic.com/certifications/iso_27001_global_certification.pdf」。

但也有一些證書是沒有給出來的,應該是要另外跟 AWS 要...