Nic Lin's Blog

喜歡在地上打滾的 Rails Developer

不要在 rake task 中定義 method, 請用 RAKE::DSL

rake task 的 scope 是全域的,如果在任意的 rake 檔案中定義了 method,表面上看起來只有執行到該 task 時會用,但其實是等於為 main:Object 整個 class 定義了 private method,一次性污染了全部的 code。

Read more

Share Comments

調整一個 Postgres 參數,讓查詢速度提升 50+ 倍

Postgres 的 `random_page_cost` 預設值為 4,這是對於一般 HDD 硬碟下的建議值

Read more

Share Comments

工程師應該知道的 C10K 問題

前陣子剛好在看一些跟 RDBMS 設計相關的討論,提到了 C10K 問題,覺得有點陌生就研究了一下。

Read more

Share Comments

加速建造開發環境,用 Docker 建立 Bitcoin 私鏈

開發時同步全節點太慢了,用 Docker 建立私有鏈更省時間。一般在開發比特幣相關業務的情況下,會需要能夠跟 RPC server 溝通的需求,如果我們跑主鏈或是 testnet,同步全節點都要花上不少時間,在節點還沒同步完全以前,可能沒辦法準確的知道比方說 address 裡面的餘額之類。

Read more

Share Comments

用 Truffle 開發 DApp 以太坊投票程序應用 Part 2

假設說你有 10,000 股的公司股票,那你就有 10,000 個投票權(這就和普通投票一人一票是不同的)這個應用場景,我們可以實做一個 DAPP 來發行公司股票,該應用允許任何人購買股票成為股東。

Read more

Share Comments

用 Truffle 開發 DApp 以太坊投票程序應用 Part 1

這篇文會建構一個去中心化的 (Decentralized) 投票應用。利用這個投票應用,用戶可以在不可信 (trustless) 的分布環境對特定候選人進行投票,每次投票都會被紀錄在區塊鏈上。

Read more

Share Comments

機會只有一次,產品的 onboarding 何其重要

有太多時候,用了一些只有冰冷操作感的產品,你會發現連你自己都不想給這種產品第二次機會。

Read more

Share Comments

[Rails] 禁止非 Production 環境下被搜尋引擎建立索引,提升網站 SEO

除了把關鍵字的 SEO 做好以外,也要注意被「禁止收錄」的部分,有時我們會有其他的環境,例如 staging, 用不同的域名或是 subdomain 下去做等等,在這些情況下,不要讓搜尋引擎收錄網頁其實是有好處的,如果一個網站被收錄了很多對搜尋結果沒有幫助的網頁,反而會讓搜尋引擎認為網站內容空洞,導致網站的權重下降,所以排除這些不重要頁面也是 SEO 中的一個有用的方向。

Read more

Share Comments

讓網站免費擁有 HTTPS 憑證,申請 Let’s Encrypt 並自動更新

現在連 Google chrome 都會把 http 標記為不安全了,想當然爾,HTTPS 加密連線的重要性不言可喻了

Read more

Share Comments

快就是帥,加速你的 Rails 專案啟動時間

當 Rails 專案逐漸成長之後,最令人頭痛的就是 Rails 的 boot time 實在是很久。

Read more

Share Comments

Postgres 中的 analyse 與 analyze 有什麼不一樣?

其實也沒什麼,就是貼心的支持英國和美國英語,在功能上並沒有區別,即時是源代碼也提到是英國的拼寫,所以是完全沒有差異的。

Read more

Share Comments

[Rails] 大量呼叫 AASM 的 i18n 根本是災難

看輸出結果就不必多說了,整個慢到不行,如果不是大量輸出 csv row 還真的不會注意到,猜測是呼叫太多層導致,不如直接拿 i18n 來的乾脆。

Read more

Share Comments

為什麼 Query 忽快忽慢

如果是相同的語句執行時間不一樣,那就是有其他的會話在搶佔資源

Read more

Share Comments

[Rails] 用串流的方式讓用戶下載 CSV

在 Rails 中其實可以實現串流下載,這樣當資料準備到多少,用戶就會下載到多少,當用戶中斷下載,執行的部分也會直接斷掉。

Read more

Share Comments

如何避免 JavaScript 中的科學計數法 1e-5, 1e-6...

在 JavaScript 中的整數與浮點數其實都是屬用 Number 的數據類型,所有數字都是以 64 位浮點

Read more

Share Comments