jQuery Migrate 1.1.0 Released 注意事項

jquery logo
上個月大家可以注意到

jQuery 釋出 1.9 及 2.0 版本,官方團隊也同時推出 jQuery Migrate Plugin 1.0.0 版本,此 Plugin 是跟 jQuery 1.9 或 2.0 一起搭配使用,偵測 jQuey 已移除或者是將被移除的功能,讓您之前開發的 jQuey 功能可以持續使用,但是似乎很多使用者不知道此 plugin 用處,就直接升級 1.9 或 2.0,並未載入 migrate plugin,造成官方收到很多 feed back 都是關於一些舊功能不能使用。半個月後 jQuery 官方收到很多 migrate plugin 回報問題,這次一樣可以透過 jQuuery CDN 載入,程式碼如下。

壓縮版本
[Read More]

CodeIgniter Error Handler 處理

CodeIgniter

CodeIgniter 在處理 PHP Error handler 是直接呼叫內建的 Exceptions Class 顯示在瀏覽器上,如果有打開 log,系統另外會紀錄在 application/logs 目錄。這是 CodeIgniter 預設作法,但是我希望能把這些錯誤訊息都紀錄到 Database,相關 Notice, Error 訊息都一律寫到 DB 裡面,但是如果用 extend 系統內的 Exceptions 是完全做不到的,所以我寫了一個 Library 只要直接 include 系統就可以直接開始紀錄,因為在 PHP 你會遇到無數種 User experience,都會產生相關錯誤訊息,在產品上線都會將 display_errors 設定為 0,不要讓使用者看到任何錯誤訊息,但是我們還是需要全部的錯誤訊息阿,底下來看看如何安裝 Log Library。

建立 log table 可以直接參考

連結,或者是複製底下資料貼到 phpMyAdmin。

--
-- Table structure for table `logs`
--

DROP TABLE IF EXISTS `logs`;
CREATE TABLE IF NOT EXISTS `logs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `errno` int(2) NOT NULL,
  `errtype` varchar(32) CHARACTER SET utf8 NOT NULL,
  `errstr` text CHARACTER SET utf8 NOT NULL,
  `errfile` varchar(255) CHARACTER SET utf8 NOT NULL,
  `errline` int(4) NOT NULL,
  `time` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
[Read More]

JavaScript 的 if 條件判斷式

網路上看到這篇 Two Things About Conditionals in JavaScript,比較另我訝異的是第一點 One: There is no else if,該作者提到在 JavaScript 的寫法裡面沒有 else if,底下直接看例子:

function saySomething( msg ) {
  if ( msg === 'Hello' ) {
    console.log('Hello there');
  } else if ( msg === 'Yo' ) {
    console.log('Yo dawg');
  }
}

上面是我們一般在寫 JS 會用到的條件子句,但是實際上 JS 寫的就是

function saySomething( msg ) {
  if ( msg === 'Hello' ) {
    console.log('Hello there');
  } else {
    if ( msg === 'Yo' ) {
      console.log('Yo dawg');
    }
  }
}
[Read More]

Firefox OS Developer Preview Phone 簡介

上次提到今年 Firefox 將會舉辦 2013 Firefox OS App Days,這次看到 mozilla hacks 提到一篇: Announcing the Firefox OS Developer Preview Phone!,Firefox OS 是新一代的作業系統,跟 Android 或 IOS 比較不同的地方就是,你可以用 HTML5 可以做到手機的任何事情,包括讓手機振動,傳簡訊,或者是撥打電話,我想這是 iOS 或者是 Android 是無法做到的,該篇還提到 Firefox Phone 硬體規格: CPU Qualcomm Snapdragon S1 1Ghz UMTS 2100/1900/900 (3G HSPA) GSM 850/900/1800/1900 (2G EDGE) Screen 3.5″ HVGA Multitouch 3 MP Camera 4GB ROM, 512 MB RAM MicroSD, Wifi N, Light and proxmity Sensor, G-Sensor, GPS, MicroUSB 1580 mAh battery Over the air updates Unlocked, add your own SIM card 如果想開始設計 App for Firefox OS 可以參考這篇,另外文章有提到如果你要試試看 Firefox OS + 自己開發的 App,可以透過底下方式: 1. [Read More]

CodeIgniter 台灣官網原始碼釋出

CodeIgniter
2009 年開始接觸

CodeIgniter,拿到第1版原始碼來自 中國 CodeIgniter ,版本是很舊的 1.7.x 版本,目前官方已經是 2.1.3 版本,現在朝 3.0.x 版本邁進,這次有機會將整個原始碼改寫成 3.0.x develop 分支版本,也將整個官方 source code 分享出來,讓需要原始碼範例初學者可以參考,Source Code 已經放在 github 上面,由於是拿大陸那邊的原始碼,也許有些地方寫的不是很完整,歡迎大家 pull request。 台灣 CodeIgniter Source Code Github

jQuery 1.9 final, jQuery 2.0 beta and Migrate plugin 釋出

今天早上來到公司就發現一個令人振奮的訊息,那就是 jQuery 1.9 and 2.0 beta Release 了,相信大家對於 jQuery 應該都不是很陌生了,釋出同時官網也有寫一份 jQuery 1.9 upgrade guide 文件,來幫助大家升級舊版本。那為什麼這次會同時釋出 1.9 以及 2.0 beta 呢?我們來看看 jQuery 團隊如何定位 jQuery 1.9 及 2.0: 1. jQuery 1.9 和 2.0 擁有相同的 API,一些官方打算移除的 API 像是 $.bowser,在這兩版本都已經移除,更多的訊息可以參考 jQuery 1.9 upgrade guide 2. jQuery 1.9 可以執行在 IE 6,7 和 8 版本(“old IE”),就如同之前的版本一樣升級 3. jQuery 2.0 將不在 old IE 版本上執行,此版本會比 1.9 版本還要小以及效能好 4. jQuery 團隊會持續維護 jQuery 1.9 及 2.0 版本,所以開發者根據自己的需求下載對應版本

[Read More]

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 裡面的活動介紹。