jQuery stopPropagation 和 stopImmediatePropagation 比較

近期在幫公司導入 Backbone.js 技術,把後台全面改寫成 Javascript MVC 架構,技術包含 jQuery + Backbone.js + Underscore.js + Mustache Template,這些技術我想可以寫另外一篇 Backbone.js 初體驗,這邊就先不多說了,在 Backbone.js 的 View 架構裡,可以任意 bind events,程式碼如下: RT.View = Backbone.View.extend({ initialize: function() { if (this.model) { this.model.bind("change", this.render, this); } if (this.collection) { this.collection.bind("all", this.render, this); } }, events: { 'click .add': 'add', 'click .edit': 'edit', 'click .delete': 'delete_item', 'click .delete_all': 'delete_all' }, add: function(e) { }, )}; 上面程式碼可以看到,將 click 事件綁在不同 Class 上,但是問題來了,如果同時 new 兩個 RT. [Read More]

Google App Engine 收費機制 Frontend Instance Hours

最近把一個簡易的 Web 丟到

Google App Engine 測試,但是發現每天都會因為 Frontend Instance Hours 不夠用,而造成網站被關閉 (Quota 爆漿),上網找一下解決方法,發現了這篇: Frontend Instance Hours 的問題,只要透過底下方式就可以暫時解決這問題,如果是網站流量很大的話,那可能要考慮開啟付費機制。

解決方式 先進入

App engine 後台,點選您的 Application 之後可以看到左邊選單 Application Settings,進入後找到 Max Idle Instances 還有 Min Pending Latency 這兩項設定,我們必須將 Max Idle Instances 設定為**1**,以及 Min Pending Latency 設定為 15s,但是 Max Idle Instances 預設是不給修改,而是跑 default value “Automatic”,這時候,我們必須把 inbound_services 設定為 warmup 才可以動態調整 Max Idle Instances

設定 inbound_services 請打開網站根目錄底下的

app.yaml,在上面加入

inbound_services:
- warmup
之後將設定上傳後,回到剛剛

Application Settings 將兩個數值調整為上面描述的設定,這樣就可以不用被 Google 收費了,想省錢的朋友們,可以儘快設定。

phpfog 免費提供升級 Silver 一個月

phpFog 最近放出一個消息 Get $29 account credit by just deploying a new App!,內文大意就是說,只要您註冊網站成功,並且新開 application,系統就會在帳戶增加 $29 美元,您隨時可以升級到 Silver Cloud,重點是免費的啦,如果大家想玩看看,就趕快去註冊吧,開放時間是 8 AM PST on 6 March 2012 and runs until 8 AM PST on 9 March 2012.,不確定時間是不是過了 XD,如果已經有帳號的,可以直接到 Live Chat 直接請他們把 Credit 加上去就好。 phpfog 搭配當紅 git 來當作下載及上傳程式碼,跟過去都是用 FTP 方式來運作有很大的不同,所以用此平台之前,請先學會基本 git version control,網站提供了很多 PHP Framework 或 Application,例如 CodeIgniterCakePHPFuelPHPLaravel…等,不管選擇哪一個 Framework,都可以隨時修改,系統只是預設把 Source Code 抓下來放到 Application 裡面,所以可以任意刪除。

如何善用 CodeIgniter Library 及擴充核心 extend core class

CodeIgniter
上禮拜介紹了

CodeIgniter MVC 基礎介紹,這次來分享如何善用 CodeIgniter 內建的 Library,以及該如何擴充核心功能,投影片內容會比上禮拜深入些,不過不會很難,只要對於物件導向有一定的基礎,我相信都可以把整個 CodeIgniter 架構瞭解的很清楚。

此投影片會介紹4個部份
  • 如何善用使用 CodeIgniter 內建函式庫
  • 移植及撰寫個人 Library
  • 擴充核心程式碼
  • GetSparks 簡介

CodeIgniter MVC 基礎介紹

CodeIgniter

上禮拜六講了一場 CodeIgniter 簡介,裡面很清楚交代一般新手入門所需要的基礎,以及什麼是 MVC(Model,View,Controller),如何將原本的網站轉移到 CodeIgniter Framework。不多說了,大家可以參考投影片資料。投影片看完,也把作業寫好,恭喜你已經學會了CodeIgniter PHP Framework。

閱讀時可以搭配 CodeIgniter 使用手冊版本 2.1.0

新人 Git 版本控制教學

昨日去台北簡報如何快速學習 git,投影片主要是給新手 git 基礎介紹,如何使用 branch model,git submodule 及 tag。內容不會很難,適合之前就玩過任何一套 version control 的使用者來閱讀,如果有 svn 基礎,學習會比較輕鬆。簡報搭配 github 內容來教學。

投影片內容參考 Git Pro book 這網站教學,大家可以直接看原文說明,會更清楚 Git 使用。

Web Developer Tools in FireFox 10

在美國時間 2012/01/31 FireFox 發佈 10.0 版本,大家可以參考 Release Note,其實對於網頁程式設計師最大的福音就是 Firefox 內建 Web Develop Tool,以後不必在安裝 FireBug Addon,就可以任意查詢網頁 Element 功能,大家可以參考底下 Mozilla 所製作的影片以及快速瀏覽 CSS properties。 不多說了看完影片直接打開 FireFox,按下快捷鍵 Ctrl+Shift+I 就可以開始嘗試 Firfox 內建 Web Develop Tool。 Ref: Firefox 10 tooling closes in on Firebug Firefox Adds Powerful New Developer Tools

用 Ubuntu 10.10 Live CD 重新安裝 GRUB 2 到 Bootloader

logo-Ubuntu

今天起床打開電腦,Ubuntu 跳出 Warning 訊息,boot 磁區剩下 84MB,所以我手殘進去 /boot/ 目錄,把舊的 Kernel 清除,不小心砍掉 initrd.img-2.6.35-32-generic Linux Image 開機所需要的檔案,結果之後開機出現

You need to load the kernel first 大家好像都是升級 Kernel 之後才會出現上述狀況,網路上找到的解答都不符合我的需求,所以我又往 GRUB2 開機 Boot 去瞭解,新的 GRUB 2 跟原先的 GRUB 的解法已經完全不同了,沒有 /boot/grub/menu.list,而被 /boot/grub/grub.cfg 取代,所以不應該在手動編輯此檔案。grub.cfg 會在有更新 Kernel 版本時,手動執行 update-grub 的時候被修改覆寫。這次發生的原因是在我把舊版 Kernel 刪除,而忘記執行 update-grub,這時候的最佳解法就是透過 Live CD 來救援。

[Read More]

[筆記] 在 Ubuntu mount DVD ISO 檔案

logo-Ubuntu
在網路上常常下載

ISO 檔案Windows 底下可以透過虛擬光碟看到檔案內容,可是到了 Ubuntu 系統該如何知道 ISO 裡面放了哪些檔案呢?其實很簡單,可以透過 mount 指令就可以做到了喔,參考 Ubuntu 台灣論壇: 如何mount iso檔? [論壇 - Ubuntu基本設定]

$ mount /iso/ubuntu.iso /home/appleboy/ISO/ -t iso9660 -o loop
執行完上述指令,可以發現桌面會多出 DVD 光碟圖示,直接點選就可以了