[DB] Transaction 與 ACID

Transaction 一個 transaction 可以包含多種行為 (e.g. select、update、insert、delete) transaction 不保證會成功,select 也可能會 lock 寫程式時,transaciton 不一定只有寫入才會失敗 ACID 單元性 (Atomicity) 全部執行,或全部不執行 全部執行 => commit 全部不執行 => 一個 query 失敗,全部 rollback 成執行前狀態 一致性 (Consistency) 不管 »

[DB] MyISAM 與 InnoDB 差異

MyISAM MySQL 5.5 以前預設引擎 不支援 transaction,僅能使用 table lock table lock 不保證 ACID 的 Durability,有可能會掉資料 寫入時屬於 Exclusive Lock,其他人同時無法寫入與讀取 InnoDB MySQL 5.5 及之後預設引擎 支援 ACID 特性,當機後不會掉資料 (需設定參數) 寫入時屬於 MVCC,支援多人同時寫入與讀取 Ref: 【筆記-轉載】MyISAM 與 InnoDB 帶來的 »

[CSS] background-origin

控制背景圖片的位置設定 可以設定背景圖片根據外邊框(border-box)、內距邊框(padding-box)以及內容邊框(content-box)來定位 Ref: CSS3 background-origin 屬性 »

[Nginx] Rate Limit Whitelist

最近有個需求必須爬主站文章到活動網站 但因主站有設置 rate limit,連續打太多 request 會被導至 503 可想而知… 爬蟲就被拒於門外了 這時要在主站 nginx whitelist 裡加入爬蟲的 ip http { geo $whiteiplist { default 1; 127.0.0.1 0; 10.0.0.0/8 0; 121.207.242.0/24 0; } map $whiteiplist $limit { 1 $binary_remote_addr »

[Ruby] each_slice (資料分成 n 組)

今天碰到一個需求,需將爬回來的 youtube 資料 丟進 carousel 的 slider 內 (3個一組,可以左右切換) 搜尋了一下,發現 ruby 有 reverse_each 這個方法可以用 e.g. 將分完組的資料,再進行一次 each 即可解決 Ref: apidock - each_slice »