Docker 使用筆記
- March 4, 2020
- Liu, An-Chi 劉安齊
Chromium 是 Chrome 的開源版本,與 Chrome 差異是 Chrome 多了一些 Google 服務,並且介面設計上也會不太一樣。Chromium 因為是開源軟體,所以被許多其他瀏覽器開發商拿來改造,像是 MicroSoft Edge、Opera、Puffin 等瀏覽器,而 Chromium 底下的 V8 JavaScript 引擎則被 NodeJS 使用。
Continue readingJavaScript 是執行時只會用單執行緒,即便 JavaScript 大量使用並行(Concurrency)機制,像是各種 Event Handler,依舊還是只有一個執行緒,於是這樣大大限制計算的效能。解套辦法是在 JavaScript 上撰寫平行程式,使用 Web Worker、 SharedArrayBuffer 和 Atomics。
Continue reading
現代人不聯誼了,以前抽鑰匙如今改抽卡,我與現任女友是在交友軟體上認識的,說說去年夏天以來的故事。
命運非常奇妙,當你越認為這個人和你的人生沒關係,你們彼此的牽絆就越強烈。一開始,我從來沒想過這女生會變成我女友。
Continue reading
Common Gateway Interface, CGI 讓伺服器(Server)將路由(Route)轉給轉外部程式(CGI 程式),使外部程式可以直接和客戶端(通常為瀏覽器) 互動。在 WEB 剛興起的時候,主要還是處於靜態伺服階段,單純傳送檔案或文字資訊而已。如果想要有表單之類的互動,也就是動態網站的話,就要靠呼叫外部程式來幫忙。隨著網路科技的發達,CGI 至今仁廣泛使用,像是 PHP 搭配 Apache。不過同時也有其他架構興起,例如以 Python、NodeJS、PHP、Java 等語言為基礎的網頁框架,像是 Flask 或 Express,抑或著實現前後端分離的 RESTful API 架構。
Continue reading不管使用本地端 Unix、Windows 或是連線到伺服器,我們都會打開終端機(Terminal),而連線等入進去的起使畫面會是 Shell,然後開發者可以輸入指令來跑程式。某方面來說,當我們在講「使用終端機」就等同「使用 Shell」,即便他們原本代表意思其實不一樣。關於 Shell 的詳細介紹可以參考「C Sehll」英文維基。
Continue reading
Paper: Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code
Author: Abhinav Jangda, Bobby Powers, Emery D. Berger, and Arjun Guha, University of Massachusetts Amherst
Source: USENIX ATC 2019
作者們先前開發了 BROWSIX,可以讓 Unix 程式直接轉成 JavaScript 並跑在瀏覽器。BROWSIX 基本上就是把程式碼轉成 JavaScript 並且用 Browser API 來模擬 Unix System Call。此篇作者更進一步,開發 BROWSIX-WASM(fork 自 Emscripten)將程式碼轉成 WebAssembly,一來解決原本 JavaScript 效能不佳問題,同時也能可以拿來和 Native Code 在 SPEC CPU suite of Benchmark 上做效能比較。實驗結果 WebAssembly 在現代瀏覽器(Chrome & Firefox)上慢 Native Code 大約 50%,並深入探討為什麼會這樣。
整體來說我覺得是很有趣的一篇論文,整理了重點並加入一些我個人的見解。
Continue reading
我正在念交大資工所,我決定要走資工是一個漫長的過程,這篇故事想從最早開始講起,描述過往我對資工的興趣如何慢慢建立。每個人的故事都是獨一無二,但我的故事希望可以給別人一些靈感和借鏡。
Continue reading