Percona XtraBackup InnoDB 備份工具

Percona XtraBackup 是一套 compiled C 程式,用於備份 MySQL InnoDB 資料庫,過去備份 MyISAM 或 InnoDB 都是透過 mysqldump 指令,或者是直接 copy /var/lib/mysql 目錄當作備份(這方法盡量少做,請確定 MySQL 版本一致),XtraBackup 用於備份 InnoDB 資料部份,請注意這邊,真的只有"備份資料",而不是全部(結構跟資料),底下仔細介紹如何安裝:

安裝方式 大家可以選擇透過

yumapt Repository 方式安裝,下面介紹 apt 方式即可。

[Read More]

2013 Firefox OS App Days

firefox-phone
今天看到一則消息,就是

Firefox OS 在明年一月會舉辦全球性的 Firefox OS App Days,台灣部份也會在 2013/01/26 進行,地點也就在台灣 Mozilla 台北辦公室,這次的活動主要的目的是讓其他程式開發者可以瞭解如何開發 HTML5 apps 以及將 apps 提交到 Firefox Marketplace,並且可能會有一些機會讓開發者可以發表自行開發的 apps,另外還有一個重點就是會詳細介紹 Firefox OS 的生態消息,個人非常期待 Firefox OS 正式 Release,以及 App Marketplace 平台,是否可以跟 AppleAndroid 平起平坐,如果想多瞭解 Firefox OS 可以參考 Wiki 平台,一月的活動也算是 Hack Day,參考 FirefoxAppDays 裡面的活動介紹。

網頁重構工程師

qq_logo
看到這標題不要懷疑,昨日看到這篇

騰訊招聘——網頁重構工程師,我第一次看到有公司在徵求網頁重構工程師,不愧是大陸知名上市公司,重構是一件非常繁瑣的事情,如果在多人團隊合作底下,沒有制定一套開發流程以及 Coding Style 的話,隨著網站變大,程式碼一定會非常複雜,你也會發現裡面有很多人的足跡,制定良好的 Coding Style 可以讓新人快速學習,也讓後續開發功能可以 follow 一套標準。另外重構還有另一個重大原因,可能網站效能蠻差的,才需要重構,我們看看重構工程師需要的技術:

職位要求:

  1. 大專以上學歷,從事網頁重構工作2年以上;2.對符合web標準的網站重構有豐富經驗,有成功案例;
  2. 精通html、css,能快構建出兼容主流瀏覽器的頁面;
  3. 熟悉javascript語言,對性能優化有一定瞭解;
  4. 瞭解至少一種後台語言的開發機制(如php,Java等),能配合開發人員進行頁面聯調整合;
  5. 良好的項目管理和溝通表達能力;
  6. 熱愛遊戲行業,能接受挑戰並承受工作壓力。 看起來這些要求還蠻基本的,不過重點是大陸公司願意花這樣的時間跟人力來把網頁整個優化,反觀台灣老闆的角度:『能動就好,專案時程都趕不出來了,還重構呢?』。

虛擬主機商 Linode 增加 20% 儲存空間

Linode VPS

Linode 在美國時間 2012/12/14 宣佈全部方案增加 20% 儲存空間,Linode 是一個蠻穩定的虛擬主機商,除了有時候常常維護以外,目前找不到有任何值得探討的缺點,每年周年慶也推出贈送 100 美金的方案,也不定時增加記憶體,像是以前有 720方案,現在已經看不到了,每個月39美元就可以租到 1GB Ram 的方案,這次增加儲存空間,可以透過後台方式將硬碟容量調整。真的是太感謝 Linode 了。如果想玩 VPS 我首推的就是 Linode,或者是可以嘗試免費的 AWS Free Usage Tier EC2。Linode 容量調整如下:

Linode 512 goes from 20GB to 24GB Linode 1GB goes from 40GB to 48GB Linode 2GB goes from 80GB to 96GB Linode 4GB goes from 160GB to 192GB Linode 8GB goes from 320GB to 384GB Linode 12GB goes from 480GB to 576GB Linode 20GB goes from 800GB to 960GB

MySQL MyISAM Engine 轉換成 InnoDB

如果對於 InnoDB 不了解的讀者們,可以參考作者之前寫的

MySQL 預設儲存引擎: InnoDB 介紹,最近開始把原本 MySQL 5.1 預設 MyISAM Table 全部轉換成 InnoDB,MySQL 5.5 版本開始預設的儲存引擎就是 InnoDB,InnoDB 現在也非常完整,也支援 Full Text (5.6.4 開始支援)。作者在轉換過程其實蠻順利的,步驟也不是很複雜,只要按底下步驟,就可以順利轉換。

[Read More]

PHPFog 即將關閉,請儘速轉移到 AppFog

php-logo
在10月寫了一篇

PHP 免費雲端主機 PHPFog vs Pagoda vs AppFog 介紹,上個月很不幸接到 mail 通知,說在今年12月即將關閉 PHPFog,所以免費的服務會在12月21號全部斷線,所以官方寫了 如何轉移 PHPFog 到 AppFog,大家可以參考看看,話說自己把所有的服務都轉到 AWS EC2 上面了,因為在 PHPFog 遇到 Session 一直消失的 Issue,也沒辦法解決,如果有在用 PHPFog 服務,請儘快轉移。

Nginx 判斷檔案是否存在

如果你有在使用 CodeIgniter + Nginx + PHP-FPM 使用者,務必看到這篇 CLI problem nginx php-fpm,在使用 CLI 時候會有些問題,解決方式也非常簡單,只要在 index.php 裡面加上

$_SERVER['PATH_INFO'] = NULL;
當然這篇最主要不是講這個,而是最後我有提到一篇解法,在

Nginx 裡面如何設定 rewrite 功能,比較不同的是,現在不用在設定這麼複雜了,要判斷檔案是否存在,不要在使用下面方式

server {
  root /var/www/domain.com;
  location / {
    if (!-f $request_filename) {
      break;
    }
  }
}
而必須改成
location / {
    try_files $uri $uri/ /index.php;
}
請看

Check IF File Exists,看完之後可以拿掉很多設定,讓 Nginx 設定檔看起來更簡單容易。 參考: try_files

Backbone.js Model and Collection Tregger Event

backbone
之前寫過一篇

Backbone.js Event 的介紹,最近開發專案遇到一個奇怪問題,就是只要我重複呼叫 backbone.model.fetch(),如果資料相同的話,就不會重新 trigger render() 畫面,但是專案架構是以 Backbone.js MVC 下去開發,這樣畫面就會卡在 init 狀態,無法將畫面顯示出來。先來探討 Backbone.js Model 跟 Collection 預設的事件。

[Read More]

MySQL 預設儲存引擎: InnoDB 介紹

mysql_logo

MySQL 是一套眾所皆知的 Database System,今天來簡介 InnoDB 儲存引擎,在 MySQL 5.5.5 之前預設的儲存引擎是 MyISAM,但是為什麼在 5.5 之後官方要將預設儲存引擎換成 InnoDB 呢?大家都知道 InnoDB 用來交易管理非常方便,因為 InnoDB 透過 row lock,相對於 MyISAM 透過 table lock 來的有效率,也避免大量寫入的時候,造成無法讀取資料,這就是 row lock 的優勢,當然用 InnoDB 最主要的原因還有 Full-text search indexes 功能,但是別擔心 MySQL 5.6.4 之後(含此版本) InnoDB 開始支援 Full-text search 功能,另外在使用 MyISAM 時候,如果資料突然出問題,還必須使用 MySQL Binary Log 來恢復資料,如果用 InnoDB 這就沒關係了。大家還在用 MyISAM 嘛?開始升級伺服器,一起體驗 InnoDB 的功能,如果已經上線很久的網站,作者不建議轉換,因為可能會遇到很多雷。

[Read More]

2012 PHPConf RESTful API Design & Implementation with CodeIgniter PHP Framework

phpconf

去年 PHPConf 介紹了 CodeIgniter PHP Framework,這次講如何在 CodeIgniter 底下設計 RESTFul API,其實主要介紹兩個 CodeIgniter 套件,第一個是 RESTFul Server 前面是 RESTFul Client,一個伺服器端,後面用來測試 (Unit Test),底下是今年的 Slide,歡迎大家下載