幕後花絮:Lidemy HTTP Challenge 的設計以及彩蛋

前言前陣子我為了幫自己的學生們更熟悉 HTTP 以及 API 的串接,寫出了一個小遊戲:Lidemy HTTP Challenge,需要根據每一關的說明取得正確的 token,一共有十五關,前十關基本,後五關進階。 經過了一些朋友的測試之後,慢慢調整、改善,最後讓學生測試發現反應都不錯,於是就在前端社群正式對外公開這個遊戲,讓大家也能一起參與。 如果你還沒玩過,那強烈建議你不要看這篇文章,因為這篇文章會破壞你遊玩的興致(大概就跟電影爆雷

Read More...

Nengo AI 入門

前言今天要跟大家介紹一個叫做 Nengo AI 的 Python 函式庫,這個函式庫主要提供的功能就是讓人可以建立分散式的 AI 系統,可以想像成更加龐大、功能也更強大的 AI。大家可以看一下介紹影片: 安裝安裝的步驟滿簡單的,一行 pip install nengo 就搞定。 12345678910(C:\Users\rosindigo\Anaconda3\envs) C:\Users\rosindigo\PycharmProjec

Read More...

如何使用 Python 進行字串格式化

前言在開發應用程式時我們往往會需要把變數進行字串格式化,也就是說把字串中的變數替換成變數值。事實上,在 Python 中有許多方式可以進行,其中最常見的有四種方式(斯斯有三種,但 Python 字串格式化方式竟然有四種!): 舊式字串格式化 新式字串格式化 字串插值 樣板字串 字串插值是在 Python 3.6 之後有支援的方法,若是你的版本是在 Python 3.6 之後的話建議可以使用。若是需要讓使用者可以輸入變數來轉換成字串

Read More...

React Form: Redux Form vs React Final Form vs Formik and Yup

本文會先從為何要做表單狀態管理說起,接著看目前市面上有哪些好的表單函式庫和條列挑選原則,並探討三個表單函式庫 Redux Form、React Final Form、Formik & Yup,最後做比較和總結。 為何需要做表單狀態管理?為什麼需要做表單狀態管理呢?這就要從 controlled component 和 uncontrolled component 開始談起。 在一般 HTML 的世界裡面,表單的狀態是由元件本身

Read More...

利用 Elm 製作 Chrome Extension

前言直接先來個成果圖: 今年二月移轉陣地到日本來工作,搬到一個人生地不熟的地方,初始開銷少不了,除了交通、伙食、房租外,還需要添購許多傢俱。而當然,所有東西都是以日幣標價,就算 Amazon JP 已經非常方便的有簡體版的語系可以切換,價格上還是得以日幣顯示。 對我來說,還沒有辦法習慣以日幣來衡量物品的價值,像是我能很快知道一千日幣大約三百台幣,但看到一個東西標價兩萬九日幣,我沒辦法很快速的理解這東西是多貴或多便宜,腦袋還是會想把它轉

Read More...

記一次幫開源專案 spectrum 修 bug 的經歷

前言最近又開始了自己的教學計畫,第一期的時候寫了這篇:利用 Github Classroom 加 Travis CI 打造改作業系統,第二期寫了這篇:AWS Lambda + GitHub API + Google Sheet = 自動化簽到系統,都是利用現成工具來快速湊出符合自己需求的系統。 而第三期開始前我希望課程能有個討論區,讓學生們可以在上面很方便地問問題。一直以來都是用 Slack,但 Slack 最大的缺點就是免費

Read More...

一起來讀論文 - Robot Learning via Human Adversarial Games

前言這次要跟大家介紹一篇論文 - Robot Learning via Human Adversarial Games。這篇論文主要想研究的問題是,在機器人透過 Reinforcement Learning 學習抓東西的過程中,如果有人類來干擾機器人、試圖讓機器人抓到的東西被弄掉,是不是有辦法讓機器人學習得更有效率? 這篇論文透過一個簡單的實驗場景,透過讓一些測試者參與實驗,證明人類的干擾可以讓機器人學習得更好,就讓我們繼續看下去。

Read More...

如何使用 Python 實現 LRU Cache 快取置換機制

前言由於電腦記憶體空間(memory)的限制,無法容納所有資料和文件,所以當有新的文件要被置換進入快取(cache)時,必須根據一定的規則來取代掉適合的文件,這就是所謂的快取文件置換機制。 一般來說常見的快取文件置換機制有: FIFO(First In, First Out)先進先出算法 LFU(Least Frequently Used)最近最不常使用算法 LRU(Least Recently Used)最近最少使用算法 NMRU

Read More...

用 TypeScript 輕鬆學 Design pattern - Command Pattern

前言雖然直到最近才實際在工作上使用 TypeScript 進行開發,但是早在去年就有斷斷續續在自己的 side project 上玩玩 TypeScript,剛好後來公司讀書會在研讀經典的 Design Pattern 書籍,就索性使用 TypeScript 來製作範例,意外發現 TypeScript 在講解一些 Design Pattern 的時候非常適合,不僅能夠有類別、物件等清楚的表示,也能夠直接在網頁上做出會動的範例。 雖然這是

Read More...

從 React 原始碼看 keyPress 與 keyDown 事件

前言前陣子有個學生跑來問我一個問題,說他在寫 React 的時候分不清楚 keyPress 與 keyDown 這兩個事件,還有 keyCode 跟 charCode 這兩個東西,有時候拿得到值,有時候卻拿不到,覺得十分困惑。 我原本以為是 React 做了一些處理,所以去看了一下原始碼。後來發現 React 的確有做一些處理,但實際上這個問題跟 React 沒什麼關係,而是 keyPress 跟 keyDown 這兩個原生的 Java

Read More...