前言雖然說從以前就一直聽到 React 要把內部的 reconciler 換成一個叫做 Fiber 的東西,但從沒仔細研究過,也不知道這樣子的改變會對上層造成什麼影響。
真正開始比較深入理解,是在某一次使用 Redux Form 時踩到一個相關的 bug,才知道 React 自從正式改用 Fiber 之後,其實對上層也有一些改變。
這篇的標題「淺談」不是騙你的,這篇真的很淺,我不會談到 Fiber 底層的運作(因為我也還沒認真研究過),
Read More...
前言最近這幾年,AI 的發展又再次變得蓬勃,是一次很好的機會,讓人們可以打造出極棒的科技來為眾人服務。近年最紅的是深度學習已經有很多相關研究,TB 周刊中也一直會為大家放上一些最新的發展,但是,筆者一直對潛藏在我們心智中的基石很有興趣,而這些基石,就跟今天想要介紹的 Probabilistic Models of Cognition 很有關係。
Probabilistic Models of Cognition 的基本想法如果我們將人的
Read More...
前言相信一般開發者每次開發應用程式時最討厭的就是設定環境。往往裝好環境時開發應用的熱情往往被消磨一半,不過如今有了 Docker 不但可以提高開發效率也可以更容易管理整個服務架構,發展 micro service!
Docker 基本概念Docker 和傳統在硬體做虛擬化的方式不同,其主要在作業系統層做虛擬化且在主流的作業系統和雲端平台上都可以使用(例如:Linux、MacOS 和 Windows),不同作業系統 Docker 相關安
Read More...
前言約莫兩個月前,我利用 p5-deeplearn-js 這套工具在 Chrome extension 中玩了一下機器學習的應用 (請參閱前端也能玩 Deepleaning - 以 p5-deeplearn-js 為例),當時雖然有去看他們的 source code,但對於底層 deeplearnjs 的部分並沒有仔細去了解,畢竟還是要對 ML 有根本的了解,才能讀得懂。
而隨著 Google 發布 Machine Learning C
Read More...
前言前陣子在 Hacker News 上面看到這篇:Show HN: A CSS Keylogger,大開眼界,決定要找個時間好好來研究一下,並且寫一篇文章分享給大家。
這篇會講到以下東西:
什麼是 keylogger
CSS keylogger 的原理
CSS keylogger 與 React
防禦方法
好,那就讓我們開始吧!
Keylogger 是什麼?Keylogger 就是鍵盤側錄,是惡意程式的一種,拿來記錄你電腦上面所有
Read More...
如果你在工作時寫過一些測試程式,也許你聽過什麼是 Mock,但其實 Mock 只是測試替身的其中一種,測試替身包含了 Dummy、Mock、Fake、Stub、Spy。而不同語言或不同 framework 有時候會把類似的概念合在一起。
本系列的目的是讓你寫單元測試的時候,對應不同情況,知道應該用哪一種替身。像筆者常用的 Mockito 基本上把大部份的測試替身都用 Mock 取代,雖然用起來容易,但我以前從來不知道自己用的是哪一種測試
Read More...
前言上次我們一起 使用 TensorFlow 來做簡單的手寫數字辨識,雖然我們可以自己使用這些 API 兜自己的模組,但我們也可以利用現成的工具,節省開發時間。
安裝安裝步驟可以參考官方的 README文件。我自己是在 Ubuntu 14.04 + Indigo 測試過,也 OK,只要記得將一些安裝 kinetic package 的地方更新成 indigo 就好。例如第二步的 camera dependencies:
1sudo ap
Read More...
前言之前我們曾介紹了如何建置 Go 變數和資料型別的使用,接下來的單元我們將透過 Golang Web 程式設計來學習 Go 這個程式語言。而在這個單元中我們將介紹 Go 的流程控制的使用。程式語言唯有動手作才能學的好,你可以參考之前的文章建置開發環境或是使用線上開發環境進行學習。
流程控制簡介一般而言,程式語言是由上往下執行,若我們需要程式依照我們設計的邏輯方向執行就需要流程控制的協助。在這邊主要談的流程控制有三部分:條件判斷、迴圈
Read More...
前言這篇文章需要知道什麼是 NodeJS,簡單來說 NodeJS 讓 Javascript 可以變成一個後端的語言,而不是僅限瀏覽器才能解讀的前端語言。如果你還沒用過 NodeJS,首先需要安裝他,Windows 和 MacOS 的用戶可以直接上官網下載,Linux 的用戶推薦使用 NVM 安裝。
回想我們一開始學 C++ 的時候,如果想要用數學的函式,必須引入 cmath 函式庫(Library)才能呼叫 sin、cos 等函式。而我
Read More...
前言身為工程師,想辦法提高自己的工作效率是一件很重要的事情,畢竟這樣才有多餘的時間打電動,除了平時加強各種知識與累積經驗外,撰寫工具的能力也值得培養。剛好在前不久,公司舉辦了一次內部的 hackday,我就利用這個時間針對公司內部的 framework 寫了一個簡單的 chrome devtools 的 extension,增加開發上的便利性。而在開發的過程中,發現關於 Chrome devtools extension 的文章並不是很
Read More...