Auto Scaling 的 Instance Protection,有點像是 mutex...

前幾天 AWS 放出來的新功能,可以針對 Auto Scaling 裡的機器設定保護 (避免關機):「New – Instance Protection for Auto Scaling」。

看提供的 pseudocode 可以了解想法,ProcessWorkUnit(Work) 是個需要跑比較長時間的 process,中斷掉的話會浪費掉 resource:

while (true)
{
  SetInstanceProtection(False);
  Work = GetNextWorkUnit();
  SetInstanceProtection(True);
  ProcessWorkUnit(Work);
  SetInstanceProtection(False);
}

也就是這些機器還是會被 Auto Scaling 計算在內,但關機不會動這些機器。這段範例有種以前上課學 mutexcritical section 的感覺...

AWS Price List API

AWS 把價錢資訊也 API 化了:「New – AWS Price List API」。

除了可以透過 API 取得資訊外,還可以透過 Amazon SNS,在價錢有變動時得到通知:

You can also elect to receive notification via Amazon Simple Notification Service (SNS) each time we make a price change.

讓 billing 的各種計算變方便。

Mozilla 在 iOS 上也出了自己的 Content Blocker

MozillaiOS 上也出了自己的 Content Blocker,叫做 Focus by Firefox:「Announcing Focus by Firefox, a Content Blocker for iOS」:

Today we’re pleased to announce the launch of Focus by Firefox, a free content blocker for Safari users on iOS 9 that gives users greater control of their mobile Web experience.

沒搞懂 Mozilla 跑出來弄這個的目的...

限制 WeeChat 中 buffers.pl 的寬度

WeeChat 上的 buffers.pl 是個很好用的套件,可以在側邊列出 channel,像是這樣:

weechat_bar_buffers_2008-09-02

其中一個特點是,左側的 channel list 會自動伸展到目前最長的 channel name。由於我用 WeeChat 連 Slack 提供的 IRC Gateway,加上最近提供多人交談的功能,就產生出這樣的 channel name:

#mpdm-gslin--persona--personb--personc--persond--persone----1

解法是限制側邊的寬度,用 /set buffers.look.name_size_max 32 後再 /save 存起來就可以了。是在「[buffers.pl] name_size_max adding crop suffix too soon in certain cases」這邊找到的關鍵字。

Google Chrome 右上角超醜的 Profile Button 關不掉了...

可以看 Reddit 上的「--disable-new-avatar-menu no longer working for chrome 47?:chrome」這個:

I had to reinstall chrome today and it just happens that they pushed out v47 today. I can't seem to get the workaround to work anymore

對應的 bug report 是「Add an option to hide the new avatar menu in settings」,七月的時候直接被標成 wontfix,但當時還有 --disable-new-avatar-menu 的選項讓人可以硬拔掉。

十月的時候在「Remove references to IsNewAvatarMenu since the flag was removed.」這邊全部拔掉,直接強姦放上去... 被列到的 BUG=517582 則被標成 secret 無法觀看。

HTTP/2 測試工具

CloudFlare 整理了一篇「Tools for debugging, testing and using HTTP/2」,說明有哪些測試工具可以用...

Screen-Shot-2015-12-04-at-10-46-21

從最簡單的「HTTP/2 and SPDY indicator」(Google Chrome) 或是「HTTP/2 and SPDY indicator」(Firefox),到後面各式各樣的工具都有列出來。甚至還包括 command line 與 packet snooping 類的工具都有...

Google Cloud Vision API

Google 推出分析圖片的服務 Google Cloud Vision API:「Google Cloud Vision API changes the way applications understand images」。

Cloud Vision API 3

分析圖片後給 tag 以及對應的分數,馬上就想到好多應用可以玩...

目前測試期不收費,之後會公佈:

There is no cost for usage of the service during the Limited Preview phase. We will introduce pricing in future phases.

PCIe 的 SSD 與 SATA 的比較

LogicMonitor 的人比較了 PCIe SSD 與 SATA SSD,他們在意的重點是 read/write latency 非單純的 throughput:「Device Utilization of PCIe and SATA SSDs」。

文章裡講得很長,把他們找原因的過程寫出來,從 latency 的影響改變到 queue service 的變化:

後來換成 PCIe SSD 後 write latency 從 1.8ms 掉到 0.02ms 左右,大約是兩個零的差距。

另外文章裡也提到了 fio 這個測試工具,找時間來測試看看,熟悉一下...

更多關於 PHP 7 新功能的介紹...

除了在上一篇的「PHP 7 的新特性介紹」這邊提到了不少 PHP 7 的新特性外,在「PHP 7 is now available: new features & improvements」與「Five Lesser-Known Features of PHP 7」這兩篇也介紹了不少其他的特性。(這陣子應該會有不少文章出來)

挑個比較有趣的幾個來講,亮是看到 Anonymous classes 的出現,可以這樣用:

$foo = new class {
    public function foo() {
        return "bar";
    }
};

有種 Interface 的存在感會愈來愈低的感覺...