Nic Lin's Blog

喜歡在地上滾的工程師

Rails 5 簡單雙向加解密

在 Rails 中常用的 devise, 對於密碼的加密是單向加密,也就是不可直接回推原本密碼,屬於安全層級較高的算法。

Read more

如何用 ABA 培養自律型員工

這是我看完了「員工不廢,只是管得不對」一書筆記。

Read more

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

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

Read more

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

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

Read more

Linux 反彈 shell 開啟後門

攻擊者可以用各種方式誘使被攻擊者的系統在有漏洞的情況下執行開後門的程式碼,當攻擊者拿到了 shell 權限,代表他可以如幽靈般的進入機器。

Read more

工程師應該知道的 C10K 問題

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

Read more

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

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

Read more

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

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

Read more

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

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

Read more

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

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

Read more

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

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

Read more

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

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

Read more

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

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

Read more

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

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

Read more

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

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

Read more