Modern Web 2018 簡短心得

前言很久沒參加 conference 了,而這次剛好有機會參加 Modern Web 2018 並且擔任講者之一,趁機把與會的心得記錄下來並且簡單筆記一下我有在聽的議程的心得。 由於這篇只是個人簡短的筆記以及心得,如果想看完整議程的可以到這裡,或如果想看更完整的紀錄,今年也有大家在 HackMD 上寫的共筆:https://hackmd.io/c/MW18 How We Ended Up With Electron - Felix Ri

Read More...

Shingling, MinHashing and Common distance measure I

誰適合閱讀這篇文章:熟悉 Hash, Set, Tries (Prefix and Suffix Tree) 等資料結構和有志從事大量資料分析的電腦工程師 主要解決問題:給定一份文件,如何在網際網路的無盡文件大海中,找到相似的文件?主要應用:偵測剽竊 (Plagiarism),搜尋引擎欲尋找鏡像網頁,網路購物或電影推薦系統中的協同過濾 綱要: 如何快速比較兩文件集合並提供量化結果: a. 如何定義相似度? b. 如何重新定義相似度

Read More...

Python Monkey Patch 入門教學

前言Python 是近來十分火紅的程式語言,不管是網站開發、遊戲開發或是資料科學都可以看見 Python 的身影,本系列文章將透過複習 Python 小 tips,讓讀者可以重新認識 Python。這次我們先來認識一下 Monkey Patch 這個程式設計上的小技巧。 什麼是 Monkey Patch簡單來說,Monkey Patch 就是在 run time 時動態更改 class 或是 module 已經定義好的函數或是屬性內容

Read More...

軟體工程師面試資源最簡整理與技巧分享

前言只要是在 CS 產業,想要當軟體工程師,基本的資料結構和演算法功力是必須要時時打磨的,這次就整理一些好用的工具,而且盡量把資源最小化,讓大家在準備面試時有足夠資源,又不會被太多資料弄得暈頭轉向。 線上練習寫 code 網站 Hackerrank 如果是剛開始刷題,可以透過寫 Hackerrank 的題目幫忙複習基本的資料結構和演算法。 Lintcode Lintcode 有一些 ladder 也還不錯,可以幫助循序漸進地刷題。

Read More...

進階 React Component Patterns 筆記(上)

前言前不久在 Frontend masters 看到一部影片 Advanced React Patterns,是 Paypal 的工程師 Kent C. Dodds 在某場 workshop 介紹他實作 React component 時所使用的進階 React Patterns(目前似乎要付費觀看,而他在 egghead.io 上也有一系列教學,同樣要收費就是了…),內容非常豐富扎實,若是想提供一些可高度客製化的共用元件,使用這些 P

Read More...

深入探討 JavaScript 中的參數傳遞:call by value 還是 reference?

前言其實這週原本是要來寫淺拷貝跟深拷貝的差異以及實作,但在找資料的時候無意間又看到 call by value 與 call by reference 相關的文章,越研究發現越有趣。原本以為自己已經搞懂了這個問題,但沒想到看的資料越多,卻把自己弄的越糊塗。 要寫這篇文章其實有兩個不同的方式,一個是詳實記錄我研究這個問題的過程以及心中的疑惑,以及最後如何得到解答,簡單來說就是按照時間軸來寫;另外一個是當我研究完以後,再重新以自己的方式整理

Read More...

Python Decorator 入門教學

前言Python 是近來十分火紅的程式語言,不管是網站開發、遊戲開發或是資料科學都可以看見 Python 的身影,本系列文章將透過複習 Python 小 tips,讓讀者可以重新認識 Python。這次我們先來認識一下 Decorator 這個看似怪異但卻常被使用的設計模式。 什麼是 Decorator簡單來說 Decorator 程式語言的設計模式,也是一種特殊的 function(例如:把 function 當做參數傳入,再把 f

Read More...

一起來讀 CRAM - A Cognitive Robot Abstract Machine for Everyday Manipulation in Human Environments

前言很久以前,我就寫過一篇 CRAM 簡介,但是一直沒有把這個工具用起來,深感可惜。 最近又因緣際會寫了 一起讀 Knowledge-Enabled Robotic Agents for Shelf Replenishment in Cluttered Retail Environments,所以想要再把 CRAM 的原始 paper 拿起來看一次,然後將我所了解的分享給大家。 為什麼發展 CRAM?CRAM 被發展出來的原因,就是因為

Read More...

一起來了解 Javascript 中的 Proxy 與 Reflect

前言在眾多 ES6 提供的新功能上,Proxy 與 Reflect 算是最少被提及的,主要原因我想還是因為瀏覽器的支援度較低,不過在我前陣子看到 Frameworkless JavaScript Part 3: One-Way Data Binding 這篇文章時(好文推薦!很有趣),特意去查了一下才發現目前支援度已經越來越好: 常用的瀏覽器幾乎都支援,我想也是可以來好好了解一下這兩個神奇的物件了! 最後有個參考該篇文章實作的 To

Read More...

測試 webhook 不再煩惱:ngrok

前言以前在開發 Chatbot 的時候,發現最困難的不是寫程式,而是測試。 為什麼呢?因為 Chatbot 的原理就是接收到訊息時發送一個 request 到你指定的位置(webhook),你再 call API 然後回訊息。 可是呢,這個 webhook url 通常都會有兩個需求: 必須要有一個 domain(不能只有 IP) 要是 https 因此測試的流程就變成這樣: 在 local 端先 coding,用肉眼 debu

Read More...