蒙地卡羅演算法
很簡單易懂的介紹,很棒 原理就是產生極多數的樣本,根據樣本的分佈狀態來預估真實狀態 其中交通堵塞的例子真的是很經典,很久以前就聽過但不知道是用蒙地卡羅演算法證明的 [http://mp.weixin.qq.com/s/Ca6-zfA3LzijrMFhJcfnMA]...
開發第一個智能合約 - 環境準備
首先安裝框架 http://truffleframework.com/docs/getting_started/client 測試環境 https://github.com/ethereumjs/testrpc package: https://www.ethpm....
Ruby exceptions 進階
backtrace `error.backtrace` 可以看出是在哪裡報錯 如果 rescue 後再 raise 還可以看出是上一個 error 是什麼 ```rb def fail_and_reraise raise NoMethodError res...
Form object pattern
優點: 1. 把讓 controller 和 view 的邏輯拆開,讓 form object 負責,符合 single responsibility principle 2. 如果 include active_record 可以享用 validations, err...
Null object pattern
在需要 check object 是否存在的時候使用 null object pattern,如果 object 不存在就用 null object,null object 提供跟原本 object 很像的 API 接口,並預設這些 API 的行為,讓程式可以安心的使用這...
Ruby 可以在 class 內定義 exception method,這樣就可以 raise 這個 class
不囉唆,上 code Raising Non-Exceptions If we provide an exception method, any object can be raised as an exception. Imagine you have a cla...
[網路原理重修系列][3] Socket, Process
應用層運行的程序叫做 process,每個 process 經過 socket 和傳輸層溝通,socket 其實就是提供給應用層跟傳輸層溝通的 API 如果 IP 是地址,port 就像房間號,主流的幾個 port 已經在操作系統中預先定義了例如 80 是 web appl...
什麼是 btree (balance tree) (b-)
常常看到 postgresql 的 index 都是用 btree 的方式 index,但一直沒時間去研究什麼是 btree,最近發現一個不錯的維信號用漫畫的方式解釋各種演算法相關的東西,剛好看到 b- b+ 的介紹,該是時候學習一下了~ 所謂的 b- 其實唸作 ba...
在 rails 內避免數字因為 race condition 而有誤
例如我有個 Account model 內有 balance column,可以這樣做: ```ruby def increment_balance(amount) self.class.connection.execute "update accoun...
B+ tree (B plus tree)
前一篇學習了 什麼是 B- balance tree,立馬再來補習一下 B+ 其實 B+ tree 就是 B- 的升級版 主要的差別在於「子節點有母節點的資訊」,並且「出現在子節點中的母節點元素都是子節點中最大的元素」,不囉唆,看圖:  網卡之類的 第二層︰資料連結層(Data Link Layer) 傳送資料的層級,資料帶有 MAC address,由這層決定怎麼處理發送這些資料 第三層︰網路層(Network Layer) 讓資料在網路上傳遞的層級...
[網路原理重修系列][1] - 重要的名詞定義
ISP (Internet service provider): 網路供應商,可以想成是提供線路的人,有高質國家層級、公司層級,也有 Local 層級的 Communication link Packet switch 分組交換器 http://acai-hsieh.b...
Rails 的 schema.rb file 的用處
https://stackoverflow.com/questions/9884429/rails-what-does-schema-rb-do 簡單來說: 1. production 環境 schema.rb 正不正確都沒差,但錯誤很容易會造成其他 developer...
Rails 5.2 似乎要自帶上傳功能囉 (ActiveStorage)
http://afreshcup.com/home/2017/7/6/introduction-to-active-storage.html https://github.com/rails/activestorage
Proxy server & Reverse proxy server
Proxy server 代理伺服器 http://linux.vbird.org/linux_server/0420squid.php 就是代理人的概念,把封包打到代理伺服器,讓代理伺服器去跟網路上的其他伺服器拿資料 資訊流動的方向是 自己的電腦 -> 代理伺服器 -...
使用工具檢查有沒有有問題的 gem
很不錯的文章,應該要來試試看 https://philna.sh/blog/2017/07/12/two-tests-you-should-run-against-your-ruby-project-now/
什麼是 Token 幣
在 etherium 上發行 token 幣,在交易所交易 token 幣,token 幣基本上就是買未來幣的發票(ICO 在做的就是這件事),所以 token 幣主要是對照該幣(ico 機構)的市場價值 例:EOS 就是發行於 ETH 上的 token,或說是智能合...
智能合約 Escrow
Escrow 這個詞是從美國房地產來的,意思是公正的第三方幫忙抵押貸款,確保交易可以正確進行 現在運用在虛擬貨幣交易上是一樣的道理,因為雙方交易時會有誰先付錢的問題,所以可以使用智能合約當做第三方中立機構(escrow)來增加可信度。 智能合約做的事情就是簡單的確認雙方...
Google Authenticator 的實作原理
簡單來說就是使用密鑰+時間的加密方式,加密細節可以參考下方網站 https://www.zhihu.com/question/20462696 http://www.csdn.net/article/2014-09-23/2821808-Google-Authentica...
非常詳細且很棒的 hypermedia api 介紹
讓 client side 知道下一步做什麼,進而可以寫出像 call method 一樣的 client helper。 https://robots.thoughtbot.com/writing-a-hypermedia-api-client-in-ruby
About testing
unit test, integration test, acceptance test 有什麼不同呢? unit test 就是 test 最基本的東西,例如一個 function ,藉由確定每個 function 的正確性來確保程式正常運作 integration t...
About Redis
In memory, key-value store. 所以其實 redis 就是一個 database,只是他所有的東西都存在 memory 而且是屬於 NoSQL 的 database。 最常用的場景就是拿來快取東西。 In memory 表示是直接存在記憶體上不是...
React native layout with flexbox
flex 基本上就是填充 https://facebook.github.io/react-native/docs/height-and-width.html#content flexDirection 就是主要的方向,如果是橫向就是 row 縱向就是 column, ...
DNS-cache-poisoning or DNS Spoofing, Pharming Attack
很清楚的影片: https://www.checkpoint.com/defense/advisories/public/dnsvideo/ 簡單解釋: Local 的 DNS Server 通常會有 Cache,如果能夠找到對應的網址就不會問網路上的 DNS Ser...