Google Authenticator 的實作原理

簡單來說就是使用密鑰+時間的加密方式,加密細節可以參考下方網站 https://www.zhihu.com/question/20462696 http://www.csdn.net/article/2014-09-23/2821808-Google-Authentica...

Wayne

非常詳細且很棒的 hypermedia api 介紹

讓 client side 知道下一步做什麼,進而可以寫出像 call method 一樣的 client helper。 https://robots.thoughtbot.com/writing-a-hypermedia-api-client-in-ruby

Wayne

About testing

unit test, integration test, acceptance test 有什麼不同呢? unit test 就是 test 最基本的東西,例如一個 function ,藉由確定每個 function 的正確性來確保程式正常運作 integration t...

Wayne

About Redis

In memory, key-value store. 所以其實 redis 就是一個 database,只是他所有的東西都存在 memory 而且是屬於 NoSQL 的 database。 最常用的場景就是拿來快取東西。 In memory 表示是直接存在記憶體上不是...

Wayne

React native layout with flexbox

flex 基本上就是填充 https://facebook.github.io/react-native/docs/height-and-width.html#content flexDirection 就是主要的方向,如果是橫向就是 row 縱向就是 column, ...

Wayne

HTTP Slowloris Denial Of Service

從[上一篇文章](https://waynechu.cc/dashboard/posts/10-dsniff-and-arpspoof)的[Reference](http://www.itwendao.com/article/detail/142631.html)延伸閱讀學...

Wayne

DNS-cache-poisoning or DNS Spoofing, Pharming Attack

很清楚的影片: https://www.checkpoint.com/defense/advisories/public/dnsvideo/ 簡單解釋: Local 的 DNS Server 通常會有 Cache,如果能夠找到對應的網址就不會問網路上的 DNS Ser...

Wayne

React stateless component

幾個重點 1. 可以不用使用 ES6 的 class 2. State 不存在 presentational component 裡面,變成 pure function,沒有 react lifecycle 3. 沒有 react lifecycle 代表不能快速 ha...

Wayne

dsniff and arpspoof

俗稱網路剪刀手 原理是讓其他電腦把封包發到自己的電腦藉此做進一步的行為 假設我把他的封包全部丟掉那他就會斷網 或是我也可以檢查他的所有封包,也許有機會拿到重要資料例如密碼和網站 cookie, token 等,又稱做 Man-in-the-middle attack ...

Wayne

Mac Spoofing - 竄改 MAC Address 使用付費 Wifi

原理很簡單,先查查看有哪些人在使用付費 Wifi,把自己的 MAC Address 改成他們的,Boom! 開始上網。 查自己 MAC (之後改回來):ifconfig en1 | grep ether 查哪些人在使用付費 Wifi:arp -a 改 MAC Addre...

Wayne

Using Database Replicas in Rails with the Octopus Gem

學習到一些東西 * AWS RDS 可以製作 database 鏡像,讓 reading request 打到這些鏡像可以降低主要 database 的負荷 * Rails access 鏡像的做法似乎有內建的 `config/shards.yml`,這篇文章使用 Oc...

Wayne

OOP - LSP(Liskov Substitution Principle)Liskov替換原則

Liskov替換原則的定義是:『子類別必須能夠替代基礎類別』 不要繼承不必要的遺產,沒用到而去繼承反而是種累贅甚至會搞壞了整個系統也不一定。 http://ithelp.ithome.com.tw/articles/10100827

Wayne

OOP - OCP (Open/Close Principle)

概念:讓程式「可以擴增」但是「不能修改」 http://ithelp.ithome.com.tw/articles/10100008

Wayne

OOP - SRP(Single Responsibility Principle)單一責任原則

『你只有一個理由需要更改這個class,如果有一個以上的理由就表示:這個class負責超過一個以上的責任。』 http://ithelp.ithome.com.tw/articles/10100557

Wayne

OOP - Law of Demeter 最小知識原則

意思就是假設 A 要問 B 一個問題,但是 B 要問 C 才能知道答案,那麼 A 應該只需要問 B 就好,A 不需要知道 B 還需要問 C,對 A 來說問 B 就能知道答案了 範例 A.askB #=> Answer 違反此原則的範例: A.askB.askC #...

Wayne

OOP - Dependency-Inversion Principle

重點:program to an interface, not an implementation 原本上層的類別會依賴下層的類別,就如同要蓋二樓就必須蓋好一樓 但 Dependency-Inversion Principle 的意思就是應該要讓上層和下層都依賴於抽象層...

Wayne

OOP - interface segregation principle ISP 介面分離原則

用戶不應該被迫相依於他們用不到的函示 如果有用不到的函示,應該做成不同的 interface 或是 protocal 有要用到再裝上去就好 * https://danielkjchen.wordpress.com/2016/02/05/%E7%89%A9%E4%BB%B...

Wayne

multi-tiered

簡單來說,multi-tiered 的意思就是很多台機器的意思,例如 client 跟 server 是不同的機器所以就是 2-tiered,而現在都是 N-tiered 了畢竟 database 跟 application 可能也是分開的。 References: ...

Wayne