Bower 管理網站套件的好工具

Update: bower 在 0.9.0 版以前可以使用 component.json,但是為了避免跟其他工具命名衝突,故 0.9.0 以後版本請改為 bower.json bowerTwitter 團隊開發的一套網頁工具,用來管理或安裝 Web 開發所需要的 Package,像是 CSS 和 JavaScript,也可以依據套件的相依性來安裝,簡單來說,開發者不用再去煩惱套件相依性問題,以及時間久了想更新最新版本,還要到各 Package 網站來下載,這些步驟都省了,一個指令就可以全部做完上述的步驟。

安裝 Bower 管理套件 透過

Node.js 的 npm 工具來安裝

$ npm install bower -g
[Read More]

Node Version Manager 版本管理 NVM

2015.02.12 官方已經支援 nvm install stable,補上 io.js 說明

nodejs-light

本篇不是要介紹 Node.js,是要介紹管理 Node.js 版本的工具,之前是玩 Visionmedia 開發的 n,後來跳到玩 Creationix 開發的 nvm tool,目前支援 stable command,也就是下 nvm install stable (直接裝好 v0.12.0)。

安裝方式

可以使用 curlwget 方式安裝

$ curl https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash
$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash

使用方式

# 安裝最新穩定版本
$ nvm install stable
# 移除最新穩定版本
$ nvm uninstall stable
# 使用穩定版本
$ nvm use stable
$ nvm run unstable --version

如果有玩 io.js 可以下

$ nvm install iojs

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]