第 79 期 - 裁判:看我一眼?給你一個技術犯規!

本週專欄

學程式平台大比較 | Udemy、Cousera、EDX、Youtube 超級比一比

今天來比較的是學程式的平台,想要「學程式」或是已經是軟體相關從業人員想要「更新自己技術能力」,通常我們會透過購買線上課程,合理分配自己的時間學習。
這次挑選的都是英文授課的平台,因為,軟體相關產業,例如:PM 產品經理、UI / UX 設計師或是最常見的軟體開發者,都是一個可以跨國的職業,那麼英文就是很重要的因素了 …

前端開發

CONTENT-AWARE IMAGE RESIZING IN JAVASCRIPT

這篇文章太震撼我了,在看文章的時候都快忘記截稿當下是可憐的禮拜天晚上。作者在文章裡面解釋如何用演算法的 Dynamic Programming 實現 Seam Carving Algorithm,Seam Carving Algorithm 會去偵測圖片的內容,並且在調整圖片大小的時候裁掉相對不重要的區塊,文章裡不只有提供 Demo,還有完整的程式碼和解釋,不看看真的太可惜了!

How JavaScript Works 🤷🏻‍

從運行原理中了解 JavaScript,從瀏覽器如何讀懂我們寫下的 JavaScript、JavaScript 執行的方式、內存的處理到 JavaScript 與瀏覽器的 Web API 運作方式。

Using the PDF Embed API with Vue.js

透過 Adobe 提供的 JavaScript API,就可以讓網頁變成簡單的 PDF 閱讀器,而作者在文章內提出一種將它導入 Vue.js 專案的方法。

Solving the classic Two-Sum and Three-Sum Problem in JavaScript

最近在練習演算法的時候有看到兩個經典的題目:Two Sum 以及 Three Sum,兩個其實都可以用暴力解解出來,但這篇文章使用了其他種方式讓整個時間複雜度降低,有興趣的讀者不妨也可以用這個方法來解決這兩種題目。

Understanding Currying in JavaScript

Functional Programming 有一個非常重要的觀念叫:Curring,其實 JavaScript 本身有非常多的 method 都是用到 Currying 的觀念完成,這篇文章教大家了解 JavaScript 中的 Curring。

Curry and Function Composition

這篇文章動手舉例了非常多的 Currying 的例子,並告訴讀者為什麼 Currying Function 是非常好用的,雖然我覺得實務上真的很難達到所有的 Function 都 Currying 就是了😂

Go

Faster Python with Go shared objects

嫌 Python 效能太差,但是又覺得編譯式語言寫起來很麻煩嗎?這篇文章教你怎麼把 Go 程式碼編譯成 Shared Objects 格式讓 Python 拿去用,如此一來就可以平常寫 Python,哪天遇到需要大量計算的效能瓶頸時就用 Go 來實作,實作完再包裝成 Python 的 function 就好了~

time/rate package

在 Go 裡面要開一個 Goroutine 非常簡單,但也因此衍伸出另一個問題 - 限流。譬如說你要發 HTTP 請求使用別人的 API,Go 可以輕易讓你做到每秒發上百個請求,但通常 API 都會有流量限制,所以你不可能真的同時把上百個請求發出去,否則一定會馬上被加進黑名單。

這時候就可以用 Go 內建的 time/rate 來做限流,不管是簡單的需求如「每秒最多發三個請求」,或是複雜的「每秒發起一個請求、同時最多有五個未完成的請求」都可以輕易做到哦~

那些年我們追的 Goroutine Pool

雖然在 Go 裡面啟動、銷毀一個 goroutine 非常簡單快速,而且每個 goroutine 跟 thread 比起來也是非常輕量,但萬一 goroutine 的數量達到十萬甚至百萬時還是會造成效能問題。因此 17Live 團隊在遇到這問題時決定自己實作了一個 goroutine pool,而這篇文章中也講到了為什麼他們會遇到這個問題以及他們 goroutine pool 的架構,不長但很值得一讀的一篇文章

DevOps

Linux File System Types Explained, Which One Should You Use

看完這篇文章才知道原來 Linux 支援這麼多種檔案系統,自己只對常用的 ext4 比較熟一點點,沒想到還有 XFS, Btrfs, ZFS 和 Resier4,文中詳細的介紹每一種檔案系統的功能和優勢,讓使用者可以針對自己的需求,選擇適合的檔案系統來使用

Updating Kubernetes CA certificates the hard way

在 2017 年時 Deezer 使用 Ansible 完成了架設 K8s 的工作,而其中內部使用到的 K8s CA Certificate 已經到了快要過期的時候了,而為什麼會拖到最後一刻,才想來做這件事情呢?因為更新 K8s 內部使用到的 CA Certificate 並不是個簡單的工作,所以 Deezer 想要找出一個可以線上更新,而且不影響使用者的方法,從一開始需要考量的要點一個一個談起,並且在途中順便整合了 HashiCorp Vault,最後總算成功完成任務,推薦給自架 K8s 的維運人員

Introducing git-xargs: an open source tool to update multiple GitHub repos

大家應該都有相當多的 Repository 需要管理,而且這些 Repository 當中其實會有一些同樣的檔案,例如 License 檔案, CI/CD Pipleline YAML 檔案…等,每次要修改這些檔案就會有點煩悶,所以 gruntwork 開源了一個 CLI 工具叫做 git-xargs,讓使用者使用它來同時修改多 Git Repository,進而增進工作效率,事半功倍

StarBugs Weekly

StarBugs Weekly 由一群不寫文章就會想要亂花錢,但是又沒有那麼多錢,只好繼續寫文章的開發者所創立。
內容包含 Web 前端、中端、後端、DevOps、產品開發、精實創業,一切跟產品有關的知識,都是我們的守備範圍!

Writers:

  • @HannahLin - 從台灣到矽谷,熱愛前端的工程師女孩。
  • @Kyle老莫 - 無法忍受自己一天不進步的熱血社會菜雞。
  • @Airwaves - Hi~我是 Airwaves,熱愛研究如何造輪子的前端工程師。
  • @Jenny - 我不寫 CSS。

Curators:

  • @Andy - 目標成為用嘴巴工作的工程師,專長為網頁開發以及 K8s。

Maintainers:

  • @GQSM - Hi!我是神 Q 超人,一個先衝再說的男人。
  • @LarryLu - 我是 Larry,傳說中的 0.1 倍工程師!
  • @LukaJoJo - 一名全身都是死角的工程師。
  • @smalltown - 熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術。

Feedback

本週呈現主題方式做了一些改變,希望讓讀者能夠更快速精準的找到自己要的資訊。也加入社群活動這個區塊,每週更新社群活動的資訊。如果有任何建議,歡迎私訊 星巴哥技術週刊 FB 粉絲專頁 與我們聯繫。