第 77 期 - 解了一個 bug,還有千千萬萬個 bug
本週專欄
想更快算出費氏數列嗎?來看看矩陣快速冪吧!
大家好,我是 Larry。這週的專欄「想更快算出費氏數列嗎?來看看矩陣快速冪吧!」要跟大家介紹如何用矩陣乘法來計算費氏數列,並且用快速冪的技巧把他加速到 O(log(n))。
雖然矩陣乘法聽起來就很恐怖,不過我有畫了很多精美的圖來幫助理解,所以整體來說應該不會太難讀,也祝福大家都可以在學習演算法的過程中找到樂趣~
演算法
基礎電腦科學:演算法概要
剛開始在學習程式時很常聽到「演算法」這個名詞,但演算法到底是什麼呢?TechBridge 的這篇文章用很淺顯易懂的例子介紹了何謂「演算法」,以及必須要滿足哪些條件才可以叫做一個演算法,如果是剛開始學習寫程式的朋友們很推薦看看這一篇~
從時間複雜度認識常見演算法
初學演算法時常常會聽到有人說這個演算法的複雜度是 O(1)/O(n)/O(nlog(n)),那這個複雜度究竟代表什麼,各個複雜度又有什麼常見的演算法呢?這篇文章用了很多例子來講解各個複雜度究竟怎麼回事,想要更直觀的了解時間複雜度的話就看這篇了~
Counting Sort & Radix Sort
一般我們所說到的排序演算法如 BubbleSort/MergeSort/QuickSort 多半是「比較排序」,也就是要透過各個元素之間的比較大小來進行排序,而這類比較排序的最佳時間複雜度就是 O(nlog(n))。那除了比較排序之外其實還有另外一類「非比較排序」,也就是不需要進行元素間的比較就可以排出順序,雖然聽起來很神奇(不比較究竟要怎麼排XD),不過在特定條件之下確實是可以做到的哦~
前端開發
CSS @property,让不可能变可能
CSS @property 是 CSS 最新的特性,它可以讓你先定義 property(例如顏色、長度等)並在之後做使用。而文章中也用一些例子解釋 CSS @property 和一般的自定義變數的差異在哪裡,以及有哪些之前無法實現的效果可以透過 CSS @property 解決。
Toggle dark/light mode by clapping your hands
使用 TensorFlow.js 開發一個 Chrome 擴充功能,讓網站可以辨識拍手的聲音去執行對應的動作!像是文章裡就是去切換網站的主題顏色,Demo 效果實在是太厲害,心裡想著找時間也來試試看好了!😂
How to Build a Chess Clock with JavaScript and setInterval
利用 JavaScript 中的 setInterval 來製作在西洋棋中互相讀秒倒數的功能,來看看筆者是如何一步步建構整個應用程式的!
当浏览器切换到其他标签页或者最小化时,你的js定时器还准时吗?
這個議題真的太有趣了,當使用者沒有 focus 在頁面的時候 JS 的 setInterval()
或 setTimeout()
還會準時嗎?我一直以為會是準時的,沒想到瀏覽器為了效能會自動把定時器的時間拉長。
ES2021-ES12 令人期待的新特性
轉眼間 ECMAScript 也要進入第 12 版了,透過這篇文章可以帶大家了解新的 ECMAScript 到底加入了哪些新的功能,想當年我開始寫的時候還是 ES5 呢!真的是時代的眼淚😂
10+ CSS BORDER ANIMATION EXAMPLE
隨著瀏覽器越來越進步,能用網頁實現的東西也越來越多,前端工程師也要開始學習一些動畫讓自己的網頁越來越炫砲,這篇文章介紹了 10 種讓 border
變得很炫炮的方式。
DevOps
KDash
雖然 K8s 本身有 UI Dashboard 可以透過 Browser 來操控 K8s 的相關資源,也有 Lens 這種 Desktop UI IDE,可是對於喜歡使用 Terminal 的人來說,其實更喜歡的是像 K9s 這種 Terminal UI 工具,大多數習慣於 Terminal 工作的開發維運人員應該都會安裝,而最近我發現有另外一套也是 K8s Managed Terminal UI 工具叫做 KDash,看起來感覺也是滿好用的,不過現在還在 Beta 前期開發階段,希望未來功能可以越來越完整,讓離不開 Terminal 的人多可以多一個選擇
Managing network devices with Golang using Netrasp
在網路設備的世界裡,可以怎麼達成 Infrastructure as Code 呢?以前我知道 Ansible 有 Network Module,後來隨著 Terraform 的盛行,也有很多網路設備廠商開發對應的 Terraform Provider,這兩天看到有一個叫做 Netrasp 的 Golang Library 也可以達成一樣的事情,看了一下這篇介紹文章,發現真的跟寫程式沒什麼兩樣,假如本身就是 Golang 好手,而又有管理網路設備需求的話,就可以考慮看看這個工具
Awesome GHA Snippets
早年大家對於 CI/CD Framework 的印象都停留在像 Jenkins 那種獨立於 Version Controler Service 的做法,但近年來隨著 GitLab CI/CD 的流行,以及 GitHub Action 的推出,大家也越來越習慣這樣的做法,畢竟如此一來可以少掉整合獨立系統所會遇到的一堆問題,使用起來也直覺很多,而這個 Repository 把常用的 GitHub Action 設定檔整理再一起,讓有需要撰寫的人可以直接拿來複製貼上稍微修改一下就可以使用!感謝這些超級佛心的社群熱血人士
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 倍工程師!
- @LukaTW - 一名全身都是死角的工程師。
- @smalltown - 熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術。
Feedback
本週呈現主題方式做了一些改變,希望讓讀者能夠更快速精準的找到自己要的資訊。也加入社群活動這個區塊,每週更新社群活動的資訊。如果有任何建議,歡迎私訊 星巴哥技術週刊 FB 粉絲專頁 與我們聯繫。