PHP 的生命週期

PHP 網站上的「Supported Versions」與「Unsupported Branches」可以看到今年九月初 PHP 5.4 就已經停止維護了 (包括安全性更新也停了)。

在「PHP Versions Stats - 2015 Edition」這邊利用 Packagist 的資料分析,還是可以看到很多人用 PHP 5.3 與 PHP 5.4:

唔,很符合 PHP 社群以及各家 hosting 萬年不更新的使用習慣...?

Dell 在出廠的電腦上裝自己的 Root Certificate,順便把 Private Key 也裝進去了...

Dell 在出廠的電腦上裝了 Root Certificate (eDellRoot),並且附上 Private Key:「Dell apologizes for HTTPS certificate fiasco, provides removal tool」。

出自 Redditrotorcowboy 的爆破:「Dell ships laptops with rogue root CA, exactly like what happened with Lenovo and Superfish」。

Dell 官方的正式回應:「Response to Concerns Regarding eDellroot Certificate」。

由於有 Private Key,有人架了一個檢測網站,在「Are you affected by the eDellRoot-Certificate issue?」這邊可以確認電腦是否中獎。

大家都超愛搞這套的 XDDD

Amazon EC2 的 Dedicated Hosts 正式推出

Amazon EC2 在十月預告了 Dedicated Hosts (參考「Amazon EC2 預定要推出的 Dedicated Hosts」),在今天正式推出來讓大家用:「Now Available – EC2 Dedicated Hosts」。

價錢在「Amazon EC2 Dedicated Host Pricing」這邊,租用就是整台一起租用,所以價錢都是以 Instance Family 在計算,在一台 Dedicated Host 上面可以跑的虛擬機數量與 Instance Type 有關,舉例來說:c4 只能跑一個 8xlarge,也可以跑兩個 4xlarge。

一台 Dedicated Host 當然可以跑很多 Instance,不過只能跑一樣的大小的 Instance Type:

I choose the instance type (Dedicated hosts for M3, M4, C3, C4, G2, R3, D2, and I2 instances are available), the Availability Zone, and the quantity (each Dedicated Host can accommodate one or more instances of a particular type, all of which must be the same size).

另外 Dedicated Hosts 一定要放到 VPC 內 (理論上新帳號都有強迫這樣了),不過可以跨 VPC 就是了:

Instances launched on a Dedicated Host must always reside within a VPC. A single Dedicated Host can accommodate instances that run in more than one VPC.

目前能開的數量有限制,有需要更多的人可以開 support ticket 去要:

You can allocate up to 2 Dedicated Hosts per instance family (M4, C4, and so forth) per region; if you need more, just ask.

Amazon Storywriter

現在是十一月對吧,地球上有哪個地方現在是四月一號嗎...

Amazon Storywriter 是個自動排版工具,支援 Google Chrome extension,不過從 screenshot 好像看到特別的東西:「Free Amazon scriptwriting app lets scribes pitch directly to Amazon Studios」。

這字型有種... 不知道要說什麼的感覺啊 XDDD

反而會想要用看看,到底對寫作提昇多少幫助 XDDD

AWS Device Farm 支援手機上的 Web Application 測試

AWS Device Farm 支援在 iOSAndroid 上測試 Web Application 了:「AWS Device Farm Update – Test Web Apps on Mobile Devices」。

支援愈來愈多東西了...

Ubuntu 在 Command Line 下自動重撥 PPPoE

HiNetPPPoE 大約三四天會斷一次,但就算設定要自動重撥好像也不太會動,所以需要自己偵測 ppp0 界面是否存在,不是的話就要撥號...

測試 ppp0 界面是否存在可以用 ifconfig 的 exit status 判斷,而重撥則可以用 nmcli 來做,用 cron 去判斷變成:

*/1 * * * * root /sbin/ifconfig ppp0 > /dev/null 2>&1 || /usr/bin/nmcli connection up id "HiNet PPPoE" > /dev/null 2>&1

我是用 "HiNet PPPoE" 這個名稱,如果要用到你自己的機器上的話,把上面的 "HiNet PPPoE" 換成你在 NetworkManager 裡設定的名稱。

Square 放出的 git-fastclone

Square 放出 git-fastclone:「Introducing git fastclone」,會生出這個軟體的原因是 git clone 的速度太慢,對於 CI 的速度影響頗大:

Square uses git-fastclone as part of our iOS and hardware CI systems. Being able to quickly clone into an empty directory, saves us time and ensures we always know the starting state for our builds — no matter what has happened in previous builds. This in turn increases the reliability of the system overall and benefits our engineers.

Ruby 寫的,可以用 gem install git-fastclone 直接安裝起來。

在 Gmail 上做 CSS 效果的問題

TechCrunch 上看到的「Gmail, We Need To Talk」這篇裡提到 Gmail 的問題,尤其是 CSS 這塊:

Each Gmail client renders email differently. You may not be aware of this, but each Gmail client has its own set of frustrating quirks. Having to deal with each version of Gmail makes creating email a nail-biting chore:

  • Gmail.com Webmail. Supports <style> but does not support ids and classes.
  • Gmail Webmail for Business. Does not support <style>.
  • Gmail App for iOS. Randomly increases font sizes by 50 percent (no <style>).
  • Gmail App for Android. Randomly ignores container widths (no <style>).
  • Gmail App for Android (for non Gmail.com addresses). Does not support background images in addition to ignoring container widths (no <style>).
  • Inbox by Gmail for Android. Randomly ignores container widths but does so differently than Gmail App for Android (no <style>).
  • Inbox by Gmail for iOS. Does not support <style> but seems to not suffer from as many quirks as other Gmail mobile apps.

這也就可以理解為什麼有時候手機上看起來怪怪的了 XD

微軟的 CodePush

看到微軟推出的 CodePush,針對 CordovaReact Native 類透過 WebView 跑的程式提出的方案。原因是 Apple 的 App Store 審核都要很久,透過 CodePush 可以直接更新程式:

CodePush is a cloud service that enables Cordova and React Native developers to deploy mobile app updates directly to their users’ devices. It works by acting as a central repository that developers can publish certain updates to (e.g. JS, HTML, CSS and image changes), and that apps can query for updates from (using our provided client SDKs). This allows you to have a more deterministic and direct engagement model with your end-users, while addressing bugs and/or adding small features that don’t require you to re-build a binary and/or re-distribute it through any public app stores.

FAQ 文件裡提到了這點:(Frequently Asked Questions · CodePush)

Does the Apple App Store allow developers to perform these types of updates?

According to section 3.3.2 of Apple’s developer agreement, as long as you are using the CodePush service to release bug fixes and improvements/features that maintain the app’s original/presented purpose (i.e. don’t CodePush a calculator into a first-person shooter), then you will be fine, and your users will be happy. In order to provide a tangible example, our team published a (pretty cheesy!) CodePush-ified game to the Google Play Store and Apple App Store, and had no problems getting it through the review process.

Because Cordova apps are executed within a WebView, and React Native apps are executed within JavaScriptCore, from a technology perspective, these runtimes are unique in their ability to leverage dynamic code downloads according to the aforementioned Apple developer agreement.

同樣的想法如果真的可行,應該會有其他更開放的 open source 方案可以用 (而非綁定性的服務,而是可以掛到自己的 CDN 上下載更新),先觀察一陣子...

Percona 的人對 Amazon Aurora 的分析

Percona 的人對 Amazon Aurora 分析了不少東西:「Amazon Aurora – Looking Deeper」。

前面的 FUD 類攻擊就先跳過去,重點在架構。Percona 的人猜測架構上是透過 shared storage (以 AWS 來說,最有可能的應該是 EBS-based) 散佈 InnoDB 的 redo log,藉以達到分散的效果:

另外就是只支援 REPEATABLE-READ,在一般用 READ-COMMITTED 就夠用的情境下,效能上會有一些折扣。