所有的函式都是閉包:談 JS 中的作用域與 Closure

在正文開始前先幫自己小小工商一下,前陣子把自己以前寫過的文章都放到了 GitHub 上面,那邊比較方便整理文章以及回應,如果有想討論的可以在這篇文章的 GitHub 版本下面留言,想收到新文章通知的也可以按個 watch,感謝。 前言請先原諒我用了一個比較聳動的標題,因為實在是想不到還有什麼標題好下,最後選擇了一個可能比較有爭議的標題,但能利用這樣的標題激起討論也是滿有趣的,何況我說這話也是有根據的。 在觀看此篇文章之前請先看過上一篇:

Read More...

Kubernetes 與 minikube 入門教學

前言Kubernetes(又稱 K8s,類似於 i18n/l10n,取中間字母的長度的簡寫命名)是一個協助我們自動化部署(automating deployment)、自動擴展(scaling)和管理容器應用程式(containerized applications)的指揮調度(Orchestration)工具。相比於傳統的手動部屬容器應用程式的方式,Kubernetes 主要有幾個好處: Automated rollouts a

Read More...

如何用 Markov Decision Process 描述 Human-Robot Interaction 問題

前言上次我們介紹了 Markov Decision Process 的基本概念,雖然上次有簡單提到 MDP 的應用,但並不是很詳細,所以今天我們想嘗試把 MDP 跟 Human-Robot Interaction 問題連結起來,一起來看怎麼從一個簡單的 insight 出發,加上 MDP 的數學基礎,最後形成一篇嚴謹的論文 ( Human-Robot Interactive Planning using Cross-Training:

Read More...

用 CSS Grid 創造蒙德里安藝術

前言前陣子 netflix 上了最新一季的夜魔俠,其中的反派角色很愛在家中擺設畫作,有了藝術品襯托,壞人在我的腦海裡突然就變成看似很有深度的角色。這讓我覺得應該也該擺點畫作在家裡,看看能不能提高自己的層次。 而宅宅如我當然無法做如此的投資,不過如果能夠自己用 Web 技術產生一些藝術作品,然後投影在家中呢?應該很酷吧!然後就在 codepen 上發現了一個有趣的東西: See the Pen Randomly generate Mond

Read More...

軟體開發的未來,是大斗內時代?

本文從付費軟體的困境,講到廣告商業模式以及付費帳號模式,再講到近年來日趨流行的「獎賞制度」,來談談內容創作的困境,以及當面對網際網路快速發展的因應之道。 軟體如何賺錢在我剛開始寫程式的時候,我就曾經想過,如果我做出了一個很好的遊戲,我該如何賺錢?,簡單就是賣嘛,付了錢我就給你程式。但這最大的問題是你如何確定買家不會將你的產品給其他人?。 我開始思考各種的商業模式,發現要賣軟體竟是一件相當困難的事,阻止盜版非常困難,其實這本質的原因在

Read More...

我知道你懂 hoisting,可是你了解到多深?

前言這陣子我在忙一些教學相關的東西,稍微準備一些資料之後教了學生們 JavaScript 裡面的 hoisting,也就是「提升」這個觀念,例如說以下程式碼: 12console.log(a)var a = 10 會輸出undefined而不是ReferenceError: a is not defined,這種現象就叫做 Hoisting,變數的宣告被「提升」到最上面去了。 如果你只想了解最基本的 hoisting,其實差不多就是這樣

Read More...

Python Flask + Keras 建置圖片分類 API

前言深度學習是近年來電腦科學界火熱的話題,如何將深度學習模型整合到生活應用更是許多開發者想要嘗試的事情,本文透過 Python Flask 搭配 Keras 這個深度學習函式庫(backend 搭配 tensorflow),建立一個簡易版的預測圖片分類的 web api。那就讓我們開始吧。 專案初始化首先我們先打開終端機,初始化我們的專案: 12345$ mkdir python-keras-image-predict-api$ cd

Read More...

簡介 Markov Decision Process 與其應用

前言今天想跟大家介紹一個在 Reinforcement Learning 中相當重要的基礎 - Markov Decision Process(MDP)。比起一般的 search,MDP 能夠 model 更複雜的問題,今天就讓我們來介紹 MDP 的基礎觀念,還有他的應用跟限制。 MDP 想要 model 什麼問題?MDP 想要處理的問題是:當你採取的 action 不會完全如你所想的達到你想要的 state,你該如何採取 action

Read More...

FLIP 技巧總複習

前言在前端的世界中,如何優化 performance 一直都是很重要的議題,也常常被拿來當作評斷前端工程師能力的一個依據。效能調教有許多方面可以探討,但最主要的重點就是希望使用者在操作網站時,不會感受到頁面跳動,尤其是當網站有動畫效果時,些微的跳動就會引起使用者注意。 大概在去年的時候,同事為了解決 CSS Animation 在頁面上的不順暢,研究了不少 hack 技巧,其中一個讓我覺得很特別的就是今天的主角:FLIP。 FLIP 技

Read More...

PWA 實戰經驗分享

前言前些日子在忙公司的產品改版,從原本的 PHP 換成後端 Go + 前端 React SPA,分成桌面版跟手機版兩個不同的 Project,而既然都改版了,自然要把最新最潮的 PWA 也放在目標裡面,之前耳聞 PWA 很久但卻沒有實作過的我也有了機會來嘗試這個東西。 如今產品已經改版完畢且上線了兩三個月,慢慢穩定下來,在優化 PWA 的過程中也讓我有了一些心得可以讓大家分享。 在舉一些實際案例之前,先讓我們來談談到底怎樣才算是 PWA

Read More...