Laravel 提供了 file
、cookie
、database
、memcached
、array
五種方式來存取 Session,預設的使用方式會是 file
存取,如果要跨 Domain 存取 Session 基本上只要設定 php.ini
裡面的 Session 相關參數即可,請注意底下 3 個參數。
Backbone.js 1.1.1 Release 釋出 AMD 版本
Backbone.js 在 2014.02.13 推出 1.1.1 版本,此次改版沒有推出重大功能,距離上次 1.1.0 版本只有經過四個月,時間也沒有很長。之前版本尚未支援 AMD,所以都是使用 amdjs/backbone 版本,但是這次 Backbone 官方直接釋出 AMD 版本,那之後就照官方版本走就可以了,底下是這次改版 Release note
- 釋出 AMD (require.js) 版本
- 新增
execute
hook 讓開發者可以處理特定 route arguments - Backbone Event 效能改善
- 處理相容舊瀏覽器 URL Unicode
近幾年 Javascript Framework 串起,似乎現在大家瘋狂的跟 Angularjs,所以 Backbone 似乎進度也沒有很快了,就像 PHP Framework 一樣,Laravel 的出現,讓其他 Framework 變得比較少討論了
Percona XtraDB Cluster 5.6 找合適 IST Donor
Gcache 是用來紀錄 MySQL 最近所使用的 SQL Command,其本身是佔用記憶體空間,大小可以由 wsrep_provider_options
定義,如果有任何 MySQL Node 重新啟動,那麼可以經由 Live Node 內的 Gcache 將尚未同步的資料補上,同步資料的方式分為兩種一種為 IST(Incremental State Transfer) 另一種為 SST(State Snapshot Transfer),但是同步資料時,管理者無法決定同步方式。先來看看 Gcache 一些特性
- node 重新啟動,Gcache 資料會全部消失
- Gcache 大小為固定,如果超過大小,則回刪除最早資料
- 選擇 Donor node 會直接忽略 Gcache 狀態
- Node 重新啟動,需要同步的資料並非在指定 Node Gcahe 內,則會啟動 SST 同步
- 到目前版本為止,沒有任何方式可以知道 Gcache 狀態
根據以上特性可以知道,當 Node 重新啟動,很容易就執行 SST 模式,舉例子來說,當有 Node crashed 超過一個晚上,你要如何知道其他 Node 內的 Gcache 資料大於需要同步的資料量?或者是當 Cluster 內只有兩台機器,那重新啟動任何一台 Node 都會是跑 SST 同步。
[Read More]Git Server 噴 git upload-pack: git-pack-objects died with error
透過 Gitlab 架設 Git Server 來放一些 Document 資料,由於個人 Document 都是 pdf 檔案,所以整個 Git Repository 就非常肥大,今天在 Clone 下來的時候,不僅是主機 CPU 飆高,然後記憶體被吃到快沒了,最後還噴出底下錯誤訊息
remote: Counting objects: 4912, done. remote: fatal: Out of memory, malloc failed error: git upload-pack: git-pack-objects died with error. fatal: git upload-pack: aborting due to possible repository corruption on the remote side. remote: aborting due to possible repository corruption on the remote side. fatal: early EOF fatal: index-pack failed
在 Ubuntu 或 Debian 上跑 Ruby on Rails + Nginx
本篇用來紀錄學習 Ruby on Rails 所需要的開發環境,請不要輕易嘗試使用 Windows 當開發環境,因為真的很不好裝,又很難除錯,所以作者建議開發環境一定要有 Linux 機器,如果是個人電腦用 Mac 也沒這問題。用 Rails 可以快速開發 Web 搭配 MySQL 資料庫,完成後可以透過 Capistrano 工具幫助 Deploy 到 Production Server。底下會一一介紹如何在 Debian 機器上架設好 Ruby + Nginx 環境
[Read More]PHP The Right Way 出電子書
最近看到前 CodeIgniter 及 FuelPHP 作者 Phil Sturgeon 和 PHP The Right Way 發起人 Josh Lockhart 合力推出電子書,目前一本定價為 4 塊美金,當然作者也不一定要使用者付錢,您可以直接線上看。這本線上 PDF 很適合丟給剛進來公司的新人,此新人當然對 PHP 有一定程度的了解,團隊內最重視的就是整個專案素質,也就是如果能達到多人維護同一個專案,讓其他人檢視的時候,不會覺得是好多人共同維護一個專案,也就是要求大家寫法一致 (Code Style Guide)。
前端工程師必看 JavaScript The Right Way
寫 PHP 的工程師一定知道 PHP The Right Way,現在 JavaScript 也出了 JavaScript The Right Way,不管是新手或者是資深工程師,都值得把裡面提到文章一看再看,此網站包含
- JavaScript Code Style
- The Good Parts
- Patterns
- Testing Tools
- Frameworks
- Game Engines
- Reading
- Who to follow
- PaaS Providers
網站還提供了新手或老手必讀的文章,像是 Understanding JavaScript OOP, Understanding “Prototypes” in JavaScript 或 Understanding JavaScript Function Invocation and “this”。也有推薦值的購買的書籍,以及免費書籍。
MySQL 5.6 UUID 複製資料到 Slave Server
在 MySQL Performance Blog 看到這篇 Beware of MySQL 5.6 server UUID when cloning slaves,裡面提到如果是要複製資料到 Slave 機器,大部分的使用者肯定是將 /var/lib/mysql
目錄整個 copy 到 Slave 機器上。如果是 MySQL 5.6 Server 目錄內會有 auto.cnf
設定檔,這是 MySQL 5.6 新的功能叫做 server_uuid,在啟動 MySQL 後,就會自動建立 auto.cnf
檔案,此檔案就像是 my.cnf
或 my.ini
設定檔一樣,只是內容只有支援 [auto]
並且只有支援 server_uuid
這 key 值,例如
啟動 Percona XtraDB Cluster 注意事項
在 Percona XtraDB Cluster 推出 5.5.28 以前,最簡單的啟動方式就是打開 my.cnf
設定 wsrep_urls
在 [mysqld_safe]
section 內。假設我們有三台 Node 分別為底下 IP:
- node1 = 192.168.1.100
- node2 = 192.168.1.101
- node3 = 192.168.1.102
Percona XtraDB Cluster 搭配 HAProxy
本篇文章紀錄安裝 Percona XtraDB Cluster (簡稱 PXC) 及搭配 HAProxy 做分散流量系統,其實在業界已經很常看到 HAProxy + MySQL Cluster Database 解決方案,HAProxy 幫您解決負載平衡,並且偵測系統是否存活,管理者也就不用擔心 MySQL 服務是否會掛掉。本篇會著重於 HAProxy 設定部份,並且紀錄每一步安裝步驟。之前本作者寫過一篇 Galera Cluster for MySQL Multi-master Replication,也可以參考。今天測試系統都會以 CentOS 為主,各位讀者可以直接開 Amazone EC2 來測試,測試完成再關閉即可。
[Read More]