Percona 去年推出一套 Cloud Tools for MySQL,藉由這套雲端服務可以幫忙分析 MySQL 系統內全部 Slow Query,並且計算出時間,畫出統計圖,此套系統目前還在 Beta 版,並且有些限制,只能開 3 個 organizations,每個 organizations 只能有 5 agents,最後資料只會保留 8 天,超過就會清除。這套系統後端是由 GO Language 完成,前端則是由 AngularJS 串起來,上個月 Percona 還在 MySQL Performance Blog 徵求 GO 的開發者,可見 Percona 也看好此服務,大膽使用 Google 推的 GO Language。
[Read More]Ruby 安裝 debugger package 發生 No source for ruby 錯誤
當您在特定 Ruby 版本下安裝 debugger gem 套件,會碰到底下錯誤訊息
Using debugger-ruby_core_source (1.2.4) Installing debugger-linecache (1.2.4) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.checking for vm_core.h… no checking for vm_core.h… no Makefile creation failed
No source for ruby-2.0.0-p451 provided with debugger-ruby_core_source gem. **************************************************************************
會發生此錯誤的最大原因是在 debugger-ruby_core_source
原始碼內,只有包含特定少數的 Headers,解決此錯誤也非常簡單,可以直接將目前的 ruby 版本 headers 安裝到 debugger-ruby_core_source
目錄內即可,透國 rake 就可以完成
$ cd /usr/local/rvm/gems/ruby-2.0.0-p451/gems/debugger-ruby_core_source-1.2.4/lib/debugger/ruby_core_source $ rake add_source VERSION=2.0.0-p451 --trace
執行完成後,就可以回到原專案目錄透過 bundle install
繼續安裝套件。
Laravel 搭配 Memcached Cross Domain Session
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 值,例如