Salesforce 弄了一個新的玩意出來...

然後在 Hacker News 上被酸爆了:「Open-sourcing the Lightning Web Components framework (salesforce.com)」。引用的原文在「Introducing Lightning Web Components Open Source」這邊。

主要還是大家已經厭倦前端一直丟東西出來,但是速度一直都沒什麼改善... 用傳統的 server rendering 反而省了不少 client 端的 CPU resource。

話說回來,前幾天的伺服器爆炸好像沒看到什麼後續新聞... (參考「Salesforce enables modify all in all user profiles」、「Salesforce系統更新意外造成權限擴張,用戶服務被迫中斷」)。

JavaScript Framework 不可避免的成本

看到「The Baseline Costs of JavaScript Frameworks」這篇文章在研究目前主流 JavaScript Framework 無法避免的成本到底有多高。

文章的結論是目前常見的 JavaScript Framework 其實都很肥重,在網路速度不快的地方得花不少時間下載,在非旗艦的手機上會需要花不少時間處理 (parse & compile)。

這是 gzip 後的大小:

這是 parse & compile 的時間:

這是下載時間 (扣除 latency 與 TLS connection 建立時間):

並不是說不能用,但重點會在客群:

But it’s important to consider your audience. If you’re building for resource constrained devices — which you certainly are if your product targets a country like India — you could consider using a lighter framework such as Riot or Preact. Your users will thank you.

最後有建議如果只是要呈現資訊,不要用整套 JavaScript Framework,在有需要互動的地方另外寫就好了:

For websites that primarily display content, it’s more efficient and cost-effective to just send some server-rendered HTML down the wire. If there are areas of your website that require interactivity, you can always use JavaScript to build those specific parts.

沒有 Google 專屬套件的 Android

剛剛在「How to Android without Google」這邊的文章裡看到「How to Android without Google [easy way]」這篇指南,說明如何弄出一個沒有 Google 專屬套件的 Android 環境。

主要是 LineageOS 當作底層基礎 (作業系統),然後用 microG 提供 API 相容層,並且用 F-Droid 安裝 Open Source 軟體。

裡面有兩個方案以前沒看過,一個是 XPosedFramework,提供框架讓使用者有更強的控制力,更完整的說明可以參考「Xposed Framework + App Settings 為每個 App 設定不同的運行模式」這篇。

另外一個是 Yalp Store,當軟體只在 Google Play 平台上提供安裝的時候,就需要透過這個套件了 XD

Netflix 對 Landing Page 的效能改善計畫...

幹掉 React (噗):

官方帳號丟戰文出來... 後面就有人開始亂 XDDD

不過先拉回來看... 依照說明,其他頁面都還是跑 React,只有 Landing Page 被改寫,看起來 Landing Page 的 TTI (Time to Interactive) 是他們的 KPI,所以就被拿出來另外處理了...

當然也有可能有其他的陰謀論 (而且我覺得可能性是在的):因為之前 React 的專利問題,變成之後 Facebook 如果真的出手提出告訴,會以惡意侵權來告 (因為鬧這麼大以後,沒有理由裝作不知道了)。這次只換 Landing Page 可以當作是試水溫練功 (累積 migration 的經驗),後續再換內頁...

Laravel 5.5 釋出,第二個 LTS 版本

Laravel 推出第二個 LTS 版本,5.5 版:「Laravel 5.5 LTS is Now Released」。

當初 Taylor Otwell 對 LTS 還蠻感冒的 (參考去年的 tweet),居然推出了...

有 LTS 對於商業應用的維護來說還是方便不少... 大概是考慮到這個原因,所以還是推出了 :o

PHP 的 BotMan

看到「PHP BotMan」這個專案 (A framework agnostic PHP library to build chat bots),把各家 IM 工具都串起來讓你直接接上去用,在 initialize 完後,就可以這樣寫:

$botman->hears('keyword', function(BotMan $bot) {
    // do something to respond to message
    $bot->reply('You used a keyword!');
});

或是:

$botman->fallback(function(BotMan $bot) {
    return $bot->reply('Sorry I do not know this command');
});

把事情專注在 bot 邏輯本身,不需要去管怎麼跟 Facebook 或是 Slack 接的細節...

Amazon Aurora 支援 Reader Endpoint

Amazon Aurora 支援 Reader Endpoint,讓讀的部份可以打散掉:「New Reader Endpoint for Amazon Aurora – Load Balancing & Higher Availability」。

讀的部份比較容易 scale (常見的方式是透過 replication 做到),而現在很多 database framework (包括各類的 ORM framework) 都支援讀寫分離,這個支援對於系統的 scale 來說幫忙頗大。

不過不知道會不會有 replication lag 的問題,我猜是會有...

原來 ZendFramework 1 還有在出新版...

在「Zend Framework 1.12.18 Released!」這邊看到因為「ZF2016-11: Potential Insufficient Entropy Vulnerability in ZF1」而推出新版的消息...

另外在「Changelog 1.12.18」這頁可以看到還是有一些 bugfix,所以其實都還是有在維護?(記憶中以為現在沒在管了...)

Google 將之前買下 Skybox 公司的工具放出來 (MapReduce for C)

Zite 上看到的,Google 把之前買下的 Skybox 所開發的工具 MapReduce for C (MR4C) 放出來:「Google open sources a MapReduce framework for C/C++」。

MR4C 的程式碼放在 GitHub 上,以 Apache License Version 2.0 授權放出來:「google/mr4c」。

用起來有點苦的 Laravel...

Laravel 是個 PHP framework,是目前還蠻常看到討論的 PHP framework。不過實際在研究後發現用起來有點苦啊...

Laravel 官方覺得 PSR-2 是個鳥蛋 (參考 GitHub 上的 issue:「PSR-2 Conflicts」),而我也知道 PSR-2 不怎樣,但這好歹是個標準可以靠啊...

另外一個是 overhead,在 AWS 上用 m1.large 跑 Ubuntu 64bits 測試純 PHP 的 echo "Hello, world."; 可以到 8000 reqs/sec (這是開了 APC 的情況測試,比較接近 production),但同樣是要顯示 Hello, world.,用了 Laravel 後剩下 174 reqs/sec (debug mode 已經關閉),如果再套上 Laravel 的 View 就剩下 152 reqs/sec...

也就是說這個數字是起點 (往下的起點),這樣看起來有點慘烈啊...