在 Ubuntu 下部屬 RoR 環境

前言

建構 Ubuntu + Rails + MySQL + Apache + mod_rails 的環境來部署 RoR 專案.

建構 RoR 環境

本章詳細步驟請參考: Ubuntu 6.06 架設 RoR

  1. 安裝 Ruby .
  2. 安裝 RubyGems .
  3. 安裝 Rails .
    遇到問題: no such file to load -- openssl (RuntimeError) .
    解法: 安裝 libopenssl-ruby . 參考: 主题:no such file to load -- openssl (RuntimeError)
  4. 產生 RoR 專案.
  5. 執行 RoR 專案.
    遇到問題: 沒有裝資料庫.
    解法: 資料庫問題不歸入 RoR 環境章節,下一章會處理此問題.

安裝 MySQL 資料庫

本章詳細步驟請參考: 在Ubuntu/Debian上面安裝Ruby on Rails的生產環境服務器

  1. 安裝 MySQL .
  2. 重設 root 密碼.
  3. 安裝 mysql 的 RubyGem 包以取得更好的效率.
    遇到問題: /usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)
    解法: http://mmiwwcom.javaeye.com/blog/181074
  4. 在 MySQL 建立 Schema 測試與 RoR 專案的連接情形.
    遇到問題: database.yml 的 Socket 設定.
    解法: http://wiki.rubyonrails.org/rails/pages/database.yml

安裝 Apache

ubuntu 已經內建 Apache 2 . 可直接安裝,步驟可參考: 在Ubuntu/Debian上面安裝Ruby on Rails的生產環境服務器

安裝 mod_rails

本章詳細步驟請參考: Passenger :Mod_rails for Apache 終於出世

1. 安裝 mod_rails
遇到問題: ERROR: Error installing passenger:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb i passenger
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:1
解法: http://d.hatena.ne.jp/rx7/20080412/p1

遇到問題: WARNING: Apache doesn't seem to be compiled with the 'prefork' MPM 解法: 執行 sudo apt-get install apache2-mpm-prefork apache2-prefork-dev

2. 在 Apache 設定檔( httpd.conf 在 /etc/apache2 )中新增以下設定:
設定 LoadModule passenger_module passenger_module 的預設目錄.
設定 RailsSpawnServer SpawnServer 路徑.
設定 RailsRuby ruby 路徑.
設定 DocumentRoot .

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.5/ext/apache2/mod_passenger.so

RailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server

RailsRuby /usr/bin/ruby1.8

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /rails目錄/public
</VirtualHost>

完成以上步驟,在瀏覽器中打上 www.yourhost.com 應該就能看到 RoR 專案已經正確被啟動!

進一步驗證(練習)

本章參考: <轉>Ruby on Rails: typo安裝指南 ,但啟動 Typo 部份是使用 Apache + mod_rails 的方法!

Typo 為一個用 RoR 開發的專案. 下載及其它 還不到網路發佈的步驟請參考<轉>Ruby on Rails: typo安裝指南 .

1. 以 Typo 為例,我將 Type 下載至 /home/server/webapps 下.

2. Apahce 的 httpd.conf 內修改 DocumnetRoot 設定如下:

<VirtualHost *:80>
ServerName localhost
DocumentRoot /home/server/webapps/typo/public
</VirtualHost>

3. 使用 sudo /etc/init.d/apache2 restart 重啟 Apache .

4. 在瀏覽器中打上 localhost 應該就能看到 Typo 被正確啟動!

練習部屬自己的 RoR 專案

問題: 嘗試透過瀏覽器開啟 RoR 專案,網頁總是發生 HTTP Error 403 Forbidden 或 Passenger error #2 錯誤.
解法: 根據 http://groups.google.com/group/phusion-passenger/browse_thread/thread/8313ef1ba14cbb07 ,發現確實是 Apache 無權限去存取我 RoR 專案中的 public 檔案夾(事實上是整個 RoR 專案),修改後便能排解此問題.

問題: 顯示未建立資料庫表格.
解法: 發現不論如何執行 rake db:migrate 都不會替 production 的資料庫產生表格. 根據 http://bbs.railschina.com/thread-563-1-1.html 利用 rake db:migrate RAILS_ENV=production 便能排解此問題.

問題: ym4r 的 Google Map API Key 會不合法.
解法: 根據 http://chinaonrails.com/topic/view/671.html ,若 prodution mode 下只有一個 Host 會用到該 Map ,那就使用跟 development 或 test 同一個 Key 即可!

JInto - Eclipse 多國語系訊息編輯插件

編輯

轉換

成果

優缺點

原本作業方式

繁中 Big5 在 Word 下編輯,結束存成 Big5 . Native2ASCII UTF8 優:
編輯時看得懂文字內容.

缺:
多一層 Native2ASCII 轉換工作.
  簡中 GB2312 在 Word 下編輯,結束存成 GB2312 . Native2ASCII UTF8 優:
編輯時看得懂文字內容.
缺:
多一層 Native2ASCII 轉換工作.
  一開始就將繁中|簡中轉成 UTF8,在 Word 跟 Eclipse 下看到都是 /uxxxx ,根本無法用人腦編輯(最好有人會記住 /u65b0 是哪個字) 不需轉換 UTF8 優:
不需 Native2ASCII 轉換.
缺:
編輯時看不懂文字內容.

有了 JInto 之後

一開始就將繁中 | 簡中轉成 UTF8,使用 JInto 編輯, JInto 自動會將 /uxxxx 轉成 正確的文字. 不需轉換 UTF8 優:
不需Native2ASCII 轉換.

編輯時就能了解文字內容.

 

以下引述自 Useful Eclipse Plugins :

編輯I18N .properties 用的Editor,一個頁面含全部語系的 .properties ,以 Table 方式呈現來填入,編輯時一樣可以對應的字元集,不會是 \uxxxx (native2ascii)。
這個功能較強大,所以我也裝,也因我裝了二個處理 .properties 的plugin,所以這個我都用 open with 方式來選擇用這個 plugin 開啟 .properties。

下載 JInto

http://www.guh-software.de/jinto_en.html

延伸閱讀

Useful Eclipse Plugins

工程師很無聊的小興奮

Google Tool
原來公開完小工具後,不能馬上搜尋到 小工具 和 作者資訊,今天邊吃早餐邊去 iGoogle 新增小工具搜尋 "小黑宅" 就跑出來了! 不過呈現出來的畫面倒是滿囧的就是!

最後只剩下兩天! 搶救一號棒棒糖底迪! 拜託! 拜託! 一人一票把真正在為人民做事的棒棒糖底迪送入國會殿堂! 拜託! 拜託!

惡搞 Google Map

XD
剛剛亂寫! 然後我的 RAM 就被吃光了! XD

有夠威的啊! 可幫我貼上 KUSO 版嗎? XD

寫程式的最佳字型

今天在 NB 上裝了 NetBean 6.1 ,預設字型真他X的醜! 所以就 Google 了一下! 發現大家都推 MONACO 和 Consolas 這兩個字型!

畫面截圖

捉了在 Eclipse 下的畫面,讓大家參考一下:

Courier New
Courier New

Consolas
Consolas

MONACO
MONACO

下載點

轉自 http://blog.orz.tw/ 

Consolas.TTF (94.5 KB)

Monaco.TTF (64.2 KB)

不負責評論

以下為本人第一印象,請勿戰我:

順眼度:

Courier New > Consolas > MONACO

Courier New 實在是看太久了! 看其它字型的程式碼真的很不習慣! MONACO 更是讓我有太跳 Tone 的感覺!

後來仔細看了一下縮圖,我每張圖都是從同一行程式碼開始截取,三種字型大小都設為10px,發現不論長跟寬都是 Consolas 能顯示最大的範圍,加上 Consolas 看起來還算習慣,所以我最後選擇了 Consolas !

如果你真的喜歡 MONACO 的 fu ,可以改一下字型大小,在 Eclipse 下 MONACO 8px 跟 Consolas 10px 看起來差不多大小! XD

延伸閱讀

終極 PK

可愛黑 可愛瑛

這篇實在是沒什麼意義! 只是看到我女朋友小時候的照片很可愛! 但我也覺得我小時候不輸她!

這是場跨越時空的比賽(我大她兩歲)! 我倆挑選了小時候差不多時期的照片來 PK !

為期六天! 歡迎親友團投下你真誠的一票! 匿名投票! 有需要再來此篇留言!

放心投票! 不查 IP !

腰酸背痛

苦
剛好有 MB01 網友 PM 問我,我也回了一大串,乾脆放上來分 享自己的經驗,但要實作前請先去看醫生!

Ripple wrote:
嗨tangblack

有關坐骨神經痛,我因為腰痛腳麻,也是看了很九醫生都沒有醫好
看到你有在版上留言過,請問你現在治好了嗎? 有沒有什麼好醫生可以推薦呢...

我目前是在公司換了比較好的椅子..

醫生的話..

西醫看都是看X光..
說沒骨刺然後就開肌肉鬆弛劑之類的藥(不過我都沒吃)..

中醫的部份..
我看過多種民俗療法..
有青潭那家用手按神經的..
北投用拳頭打的..
木柵則是整骨加針灸..
新竹的香港老醫師針灸..
也有一般的中醫診所的簡單熱敷電療..

錢花了不少..
但都沒有完全根治..

目前心得是..
無法根治就慢慢學會怎麼跟它和平相處..

我自己有在做的簡單運動..

  • 簡單瑜珈(調股盆,鬆腰) 每天做兩次(酸了就坐)
  • 躺平抬腿(下背部會有運動到) 每天做一次
  • 重訓大腿(加強大腿肌力) 一周兩次
  • 踩腳踏車(增強下半部力量) 一周兩次

個人是覺得跟上班後長坐有很大的關係..
且這種會惡性循環..
你越酸越不去運動..
反而更嚴重..

而已腰酸的原因似乎很多種..
也許是走路重心姿勢不對都會引起腰酸背痛..
可以去買台Wii Fit來測看看..
本人就是重心偏腳跟..

反正我建議:
西醫確定不是骨刺 > 要看中醫就去看 > 買張好椅子 > 平時多做加強下半身的運動 > 不怕娘就去買書學些瑜珈運動

最後若你找到好醫生而且被治好了..
請 mail 至 tangblack@gmail.com
我會很感謝您.. Orz

舊鞋新穿 ZOOM LEBRON IV 入手

LBJ IV
跳過帶賽的 Wade 鞋不算! 我終於脫離了卡美龍的魔掌! 我終於換穿 Lebron James 的鞋了!

大潤發 Nike Outlet $2470 入手! 五代(貴500元)也進 Outlet 了! 但我還是選擇了四代! 當初選了 Wade 沒買這雙! 這次算是以補償心態買下這雙出了快兩年的球鞋!

開箱
本來是想在家隨便拍應付了事! 但外面的天氣實在很好! 想到我最近回顧我拍照生涯敷衍了事的照片風格! 我決定到旁邊的小公園拍這次的開箱文!

本體
鞋盒是以抽屜式的方式打開,不過這盒看得出來已經在大潤發躺很久了! 外盒已經有點折損,不過我們家的圓還是很喜歡. XD 一開箱就坐進去盒內蹲了!

囧獅子
外盒上的獅子圖騰,讓我不忍懷疑是否這獅子是由 LBJ 親自設計,個人覺得這獅子臉很呆! 囧rz

側面
拉屎...不對是拉邦四是一雙高桶鞋,包覆性看得出來比 Wade 那雙強很多(怨念),我很喜歡它表面的白色塑膠感,很像星際大戰裡頭的帝國士兵! XD

鞋底
鞋底是採 Nike Free 的設計,不知道耐不耐磨,不過以我目前的運動量應該可以先不用想那麼多!

家庭
鞋內部是兩層式,沒穿襪子試穿就覺得包得緊緊的了! 拍照時才發現裡頭寫了 "The Family" ,這次出了這個右腳這個意外之後,對於 "家" 這個字有了更深一層的體認,以後自己的身體不是只用 "熱血" 這兩個字就能隨便敷衍過去了!

保護我的右腳
右腳合體! 看得出來還是會露疤出來! 不想露出來只能買拳擊用的鞋了!

LBJ 的前輩
同場加映: 不知道買了幾年的 Nike 拖鞋!

當 NIKE 沒有了勾勾
Nike 都快磨平了! XD

全部都 NIKE
下午去投球的心得:

  • 鞋頭設計很寬,沒有新鞋剛傳大姆指關節容易磨破皮的情形.
  • 鞋底很舒服,走路有走在黏土上的感覺,每走一步都有微微下沉的情形.
  • 包覆性很不錯,有初穿 Jordan II 復刻(Bibby 在穿)的感覺,不過這雙更戰甲! XD

以下為身體心得:

  • 我媽一定會看這篇! 我想說的是接下來三個月我只會去投投球啦! 因為我做其它復健但都對右腳小腿的肌肉沒有太大的幫助(肌肉沒長回來的感覺)! 以後也會更注意身體啦(其實之前就已經很認真戴護具 和 熱身了)! 基本上就以運動為出發啦! 請不要太擔心! 我也不會逞強!
  • 之後可能會放棄戴跳躍 A ,怕身體太依賴它! 反正就是要改變心態就是!

矛盾

腦袋最近蠻混亂的! 隨便一想就就有:

Java vs Ruby vs JavaScript

語言無強弱! 能解決問題就是好語言!

桌面應用程式 vs 網路應用程式

工作上沒機會做 J2EE 的東西,不過看看別人徵才條件常有熟 J2EE 這項. 網路則是有它相當迷人的地方.

框架 vs 觀念

還是老話一句: 徵人條件要會 Hibernate, Spring ... ,工作上用不到還真的很無力去學習,但不會又怕輸別人! Orz

技術 vs 語言

感覺學英文和日文比學技術來得長久! Orz

學習 vs 玩樂

上班時間想玩! 放假又怕大家都在學習! Orz

想買的片: 馬賽 > GTA4 > 馬棒 ... 不過我光 MHP2G 就覺得很忙了! XD

人像 vs 風景

最近翻照片想參加比賽! 雄雄發現挑不出10張可以出來比的! 看來以後要強迫自己拍一點風景!

底片 vs 數位

底片拿回來快一個月了! 我還沒去拍! Orz

這篇只是自己的無聊呻吟! 沒運動就是容易亂想! 我等等還是去買個護具去投投球好了! 要不然右腿的肉永遠長不回來!

Java Enum

以下為閱讀 www.dzone.com/links/a_short_primer_on_java_enums_part_1.html

www.dzone.com/links/a_short_primer_on_java_enums_part_2.html 的筆記.

只是筆記! 專業勿入! 以下程式碼為簡單範例! 不保證能執行! 但大體上就長這樣! Enum 為 Java 5.0 之後才開始支援!

沒有 Enum 的日子

Java 程式中我們常會要用到常數,通常我們會這樣寫:

public static final int BOY = 0;
public static final int GIRL = 1;

這樣寫的壞處有:

  • 你無法預期使用你程式碼的人輸入奇怪的參數. 你可能預期 setSex(BOY) ,但你無法不讓他輸入 setSex(0) 甚至是 setSex(3) 這種鳥事發生!
  • 用 int 當做常數用,當你修改常數定義時,其他使用此常數的部份不會知道此處的異動!
    int 常數修改不會造成 "使用該 int 常數的類別" 重新 Compile ! (非防禦性的寫法 !?)
/* 當 GIRL 的值從 1 改成 3 時: */

setSex(GIRL); // 這種寫法 ok! 但基本上它不用知道你 GIRL 改成 2 or 3!

setSex(1); // 出包!! 個人稱這種包叫做七龍珠現象! 但我通常沒有龍珠雷達!

Enum

把上述的常數宣告改成 Enum :

public enum Sex
{
  BOY, GIRL
}

修改使用原本 int 常數的介面:

// public void setSex(int inSex){...} // 原本寫法.
public void setSex(Sex inSex){...} // 使用 Enum !
...
setSex(3); // 此寫法已經無效!!
setSex(SEX.BOY); // 使用 Enum ! 
setSex(SEX.GIRL); // 只能傳入 Sex Enum 定義的 BOY 和 GIRL !
  • 若是多個類別需要用到常數,就使用一個獨立的 Pulbic Enum .
  • 若只為一個特定的類別所使用,就用 public inner Enum 寫法,如下:
public class SexMachine
{

  public enum Sex
  {
    BOY, GIRL
  }


  public void setSex(Sex inSex)
  {
    ...
  }
}


更多的 Enum

  • 在 Enum 內加上額外的屬性.
  • 在 Enum 內加上額外的方法.
  • 在 Hibernate 中使用 Enum .
  • 讓 Enum 印出更易閱讀的資訊.
  • 從 顯示值 轉換成 Enum 值 .

請看 www.dzone.com/links/a_short_primer_on_java_enums_part_2.html

Google Sites 開放了


(圖片來自官網) 

前言

此段可跳過! 原本 Google Sites 算是 Google Apps 下的一個服務,現在就算沒有 Google Apps 服務的人也可以使用了!

簡介

啥是 Google Sites ?

  • 它可以是 奇摩家族!
  • 它可以是 維基百科!
  • 它可以是 專案知識平台網站!
  • 它也可以是一個普通的網頁!

端看你怎麼去使用它! 使用者可以利用 Google Sites 產生一堆網頁然後去組織這些網頁! 工具很活就看使用者如何去使用!

申請

  1. 有 Google 帳號.
  2. http://sites.google.com/site/sites/ .
  3. 選擇 Create a Site .
  4. 恭喜你也晉身為 Google Sites 的一員.

使用說明

請看官網影片,簡單又好懂!

後話

本身自己有維護兩個 Google Sites .

一個是自己在用的,不對外開放,主要是拿來當作自己的維基百科,紀錄一些自己的點子,及相關的資訊!

另一個則是拿來當作系隊的網頁,走向比較偏奇摩家族,歡迎大家去 http://fcuiecsbasketball.twgg.org 看看,也許會讓你對 Google Sites 的用途有更深一層的了解!

開發 Google 小工具

原本想寫! 但我覺得網路上的資源就夠多了! 所以就變成了一篇麵包屑文! 有興趣的就點下面的連結來看吧!

寫了我的第二個 iGoogle 小工具,有人問我那你第一個 Google 小工具是啥? 那當然是 Hello World 啦! XD

我的第二個 iGoogle 小工具

+ Google 加到你的 iGoogle 當中! XD

阿基里斯戰記-術後三個月

很久無寫右腳文! 給爬到此文的腱友做為參考之用!

5/20 差不多就是受傷(阿基裡斯戰記-受傷)後六個月,手術(阿基里斯戰記-開刀)後五個月,拆石膏(阿基裡斯戰記-一個結束另一個的開始)後三個月了!

拆石膏後這三個月,每星期會挑兩天做簡單運動,扣除跟腳沒關係的上半身外,會做抬大腿(最近一個月才有加重量)還是雙腳墊腳,平時大概就是邊看電視邊用彈性繃帶拉腳踝,假日就是拿相機出去走路. 除以上之外,完全沒去打籃球,跑步. 沒有去醫院復健的原因是醫生說在家復健即可!

目前右腳的狀態大至是,可以行走,可以小跑,可以右腳墊腳站立(需雙手稍微支撐且墊腳上下的肌力明顯不夠我用),跑跳應該都最好不要做的感覺,此段時間也沒回榮總復診(醫生說不用). 囧rz

剩三個月,上星期開始已經再騎腳踏車,預計慢慢加強右腳的重量. 看看八月底醫生是怎麼說,大致如此! Orz

小型國中同學會 in 淡水

個人文,以圖代文,請賞圖!

高登
紅毛城最佳視點拍攝. 但個人心中一直有個疑惑,那個點到底是指 往外看 還是 往內看 ?

另外老高的 Pose 絕對不是 LBJ 就是!

下午茶塔
紅毛城內的點心塔. 整個是貴婦 fu ,價錢就...別在提了,難道要來這邊是 鐵蛋塔 還是 阿給塔 嗎. 悠閒...無價!

另外此塔上桌時共有5台相機對著它射!

we are team
Adidas 在漁人碼頭舉辦有你就隊的活動,穿他們提供的足球衣拍照,就能得到一張照片做為回禮! 個人覺得算是很棒的點子! 不用花錢找臨演就能找到一堆免費的 Model 又能宣傳活動!  真的蠻高的!

但...球衣真他媽臭! 臭到沒辦法認真加油的臭!

偽千秋王子
老高的成果! 這張沒有什麼意義! 想知道拍攝動機請直看下圖!

真千秋王子

花橋

情人橋

情人
上次來漁人碼頭天氣沒今天好,藍天白雲,今天的照片都是絕好調!

夜黑橋
晚上留在這邊吃晚餐,所以有機會一睹晚上的漁人碼頭, View 真的蠻不賴的,可惜本人不是風景派 外加又是 手震會榮譽會員,所以就直接把單眼讓給 GF 拍我了! Orz

另外,有看到某大溼上次來此吃泡麵的便利商店,都是在賺錢的人了,至少吃得起旁邊100元的雞排套餐才是! XD

相本為給親友下載專用,無任何美麗風景,想看美景的可以不用點擊了!! XD


Windows Live Spaces


Windows Live Spaces

2008/5/7 國中同學會in淡水

2008 JAVA 認證日

NetBean吉祥物

此篇為流水帳文!

去的那天旁邊世貿剛好是設計展之類活動,看看兩邊參加的群眾,感覺我應該是比較想去設計展啊! Orz

台灣昇陽電腦Java認證及訓練市場趨勢
林信良 昇陽電腦教育訓練暨技術推廣經理
你要什麼樣的課程,我們通通都給你!

Java證照在台灣職場上的優勢
方光瑋 104人力銀行公關經理
有證照有加薪! 有證照有競爭力! Orz

NetBeans 6.1開發者的贏家首選
林康司 Javaworld@TW站長 / 資策會資訊工程研究所副工程師

公司其他部門寫 JavaScript 的,可以來用看看這個 IDE ! 本人寫 RoR 是用 NetBean ! -.. -

另外,為何平平是人, Koji 摸的東西真的好多樣化啊!

Coffee Break
因為是免費的活動,所以也沒有咖啡喝! Orz

基於memcached的MySQL快取 - 通往高效存取的終南捷徑
王建興 清華大學資訊工程系博士侯選人

memcached 的設定聽起來很簡單,程式碼部份也都是 Java Code ,不過對公司上既定的架構似乎插不上手! 看來我是白來台北了! Orz

Qing 大博士候選人好多年了! Orz

ZK - Java Ajax Web程式快速開發框架 - 20分鐘實現美食地圖2.0 (Live Demo)
陳志恒 ZK普奇科技副總經理
Demo 的技巧還沒有到框架傳教士的層級! Orz

歡樂抽獎 (Eee PC幸運得主就是你!)
抽到 EeePC 的得主,看起來不像是寫 Java 的啊! 囧rz

Google Map on Rails

前言

透過 YM4R 這個 RoR 的 Plug-in ,在 RoR 上使用 GoogleMap API 功能.

此篇主要是實作 YM4R 網頁範例 的實作過程 - 在網頁上顯示 Google Map , Map 上有一個可移動的 GMarker ,底下有一個 Update link ,透過此 link 以 AJAX 的方式更新 Map 上的 GMarker .

程式碼

Controller

show 方法負責初始化一個 Google Map 和 GMarker .

def show
  # placed inside a DIV of id map_div.
  @map = GMap.new("map_div") # 影響 View 中的 DIV id 名稱.

  # add controls.
  @map.control_init(:large_map => true,
    :map_type => true, 
    :overview_map => true)

  # set the center and the zoom.
  @map.center_zoom_init([75.5,-42.56],4)

  # add a marker.
  @marker = GMarker.new([75.6, -42.467],
    :title => "Hello",
    :draggable => true,
    :info_window => "Info! Info!")
  @map.overlay_init(@marker)
end

update 方法連結 JavaScript 上 GMap 變數,並產生準備要更新的 GMarker .

def update
  # bind the Ruby @map variable to the JS variable map,
  # which already exists in the client browser.
  # map is by default the name given to a map created from YM4R/GM
  # (this could be overriden by passing a second argument to
  # the GMap constructor).
  @map = Variable.new("map")

  # create a marker.
  @marker =
    GMarker.new([75.89,-42.767],
    :title => "Update",
    :info_window => "I have been placed through RJS")
end

View

Layout 部份在 Header 區段產生 Google Map 所需要的 JavaScript 的程式碼(ex: GoogleMap Key...) 和 將 "在 Controller 中 show 方法內 @map 變數" 轉換成 JavaScript 程式碼.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  <title>Posts: <%= controller.action_name %></title>
  <%= javascript_include_tag :all , :cache => true %>
  <%= stylesheet_link_tag 'scaffold' %>

  <!-- output the header, used by all the maps of the page: It includes the Google Maps API JS code and the JS helper functions of YM4R/GM. -->
  <%= GMap.header %> 

  <!-- initialize the map. -->
  <%= @map.to_html %>

</head>
<body>

<p style="color: green"><%= flash[:notice] %></p>

<%= yield  %>

</body>
</html>


show.html.erb 負責產生 Google Map 在 HTML 放置的區段 和 提供一個更新 Google Map 的連結.

<!- 產生一個放置 Google Map 的 DIV 區段. __>
<%= @map.div(:width => 600, :height => 400) %>

<!-- 產生更新 Google Map 的連結(使用 AJAX 方式).
:update => '取代的div名稱', :url => "呼叫的方法" -->
<%= link_to_remote('Update', {:url => { :action => "update" }}) %>

update.rjs 負責清除 Google Map 上的物件 並 放入一個新的 GMarker(在 Controller 的 update 中產生).

# clear the map of all overlays.
page << @map.clear_overlays

# Then I add the marker.
page << @map.add_overlay(@marker)

畫面

GMonRoR_before

GMonRoR_after

遇到問題

Q 按下 Update 後,畫面上直出 JavaScript 程式碼! 囧rz

A: 一開始以為是 主题:请问有人试过Rails2的ajax开发吗? 主题:link_to_remote 的IE执行问题 ,卡了一天半.

今天一早頭腦清醒! 終於解掉! 原來是 View 裡頭的 link_to_remote 方法我指定了要更新的 Div 區段,就變成在畫面上直出 JavaScript 程式碼. 不指定才會真的將 JavaScript 程式碼寫進 HTML 中.

心得

網路應用程式...真的跟桌面應用程式很不一樣. -.. -

延伸閱讀:

超級奶爸奮鬥記 又來了

超級奶爸
JET TV [播出時間]

  • 5/17(六) 13:00 18:15 22:30
  • 5/18(日) 5:45 11:00

這集關注事項,以下有雷:

  • 媽媽要搬出去住!
  • 媽媽打了長女一巴掌!
  • 媽媽待產期要到了!
  • 奶爸(M)根本被媽媽(S)吃死死!
  • 媽媽裡肚子的是奶爸? 應該不是! 是我以後就不看了!
  • 三個雙胞胎丟給老爸養?
  • 吐血的一集?

iGoogle 我也淪陷了

前言

早就久聞 iGoogle 的好! 但自己本身對這種整合性的東西實在不太有信心,總是喜歡用自己的方式來瀏覽!

但最近發現,其實我全部都是在用 Google 的產品, GMail. Google 翻譯. Google 筆記本. Google Reader. Picasa. Blogger ... 族繁不及備載!

打開瀏覽器還不是開了一堆 Google 的頁面,今天就全部把它整理至 iGoogle 了!

什麼是 iGoogle ? 看一下 iGoogle 使用導覽 的介紹:

Google台灣首頁- iGoogle™是您於傳統Google首頁外的另一新選擇。

如何有效整理常用的網路資訊?
隨時新增各式小工具,將常用網路資訊整合在您的iGoogle首頁。

想在每一台電腦都使用自訂內容?
登入帳號即可在任何一台電腦使用個人專屬的首頁。

想創造個人風格的首頁?
您可隨心選擇各種版面背景主題,並自行設定版面。

我自己解釋的話:

沒有使用 iGoogle ,上網就像去吃叫菜,你要一道一道去找,一個網頁一個網頁去開!

iGoogle 就是去像吃自助餐,所有的菜都幫你打到餐盤內了,你只要關注餐盤內的菜就好! 這樣比喻 iGoogle 就是餐盤,網路上的資訊就是菜.

個人覺得最大的好處就是, iGoogle 的設定是放在網路上,所以等於你用誰的電腦都沒差,進入 iGoogle 一切都是你自己最熟悉的介面!

使用 iGoogle

  1. 當然要有 Google 的帳號.
  2. 登入 iGoogle .
  3. 你就看到 iGoogle 一開始最基本的頁面了! 為何看起來那麼簡單? 因為你去吃自助餐你還是得去打菜,所以記得去 新增小工具 打菜啊~!! Orz

我的 iGoogle

下面介紹一下我自設的 iGoogle ,有興趣的懶人們看到後面也能下載我的 iGoogle 設定然後拿回去做修改!

你的 iGoogle 可以只有一頁,但我這個人比較龜毛,不喜歡一頁塞了一堆東西,我總供分成四個頁面(點圖就可看到大圖).

個人頁面

主要是個人最常會用到的網路工具(但我沒放行事曆).

分成三個區塊:

  • 左 電子郵件.
  • 中 筆記本,待作事項.
  • 右 翻譯工具.

iGoogle 個人分頁

閱讀頁面

主要是用來閱讀網路上的文章.

  • 左 天下雜誌,商業週刊(看一下用成功解釋成功的故事<聽 Tempo 大說的>)
  • 中 Google Reader ,基本上是我閱讀網路文章的利器,但基本的 RSS 操作還是需要回到 Google Reader 頁面.
  • 右 每日一句英文...

iGoogle 閱讀分頁

資訊頁面

跟閱讀頁面的內容相本,資訊頁面我放的是比較即時性的資訊.

  • 左 電影,金融.
  • 中 網路熱門字,新聞.
  • 右 氣象,地圖,交通查詢.

iGoogle 資訊分頁

新玩意頁面

目前為空空一片,主要就是拿來放新出的小工具,真的好用有需要再放至合適的頁面.

iGoogle 新玩意分頁

背景顏色

大家看縮圖應該就看得出來,基本上我都是選擇簡單風格,畢竟我大部份的上網時間都在公司,我不想是真的在查東西被人誤以為在上網爽! Orz

下載小黑宅的 iGoogle

如果你看到這邊,覺得對 iGoogle 有興趣,想嘗試一下! 或覺得我的 iGoogle 配置方式還不錯的話. 可以繼續往下看!

下載設定檔

詳細步驟可點擊圖,原圖中都有詳細說明.

驗證

http://www.badongo.com/file/9371582 下載.

通過驗證下載

下載

下載

匯入設定檔

編輯

登入你的 iGoogle 後,點擊分頁上的小按鈕然後選擇 編輯此分頁 就能進入編輯畫面.

編輯此分頁

匯入

進入編輯畫面後,拉到最下面就可看到匯入功能,步驟請看下圖.

匯入

完成

匯入成功後,應該就可以看到你全新的 iGoogle 了! Orz

結語

落落長打了一大篇網友早就分享過的東西! 感覺真的是在騙稿費! 不過我身旁的人應該蠻多人沒在用 iGoogle ! 我這篇算是在推廣給自己親友的使用說明文! Orz

圓跟我

最近剛好又是換毛時期了! 我們家的圓也不例外! 整天不是睡就是掉毛!

這是昨天 GF 拍的! 很喜歡這幾張就放上來了!

我後面也有拍幾張! 但感覺我拍的比較爛!

重點是...

全部手震! Orz

PS: 同機同鏡...

虎

無奈

copy cat

交接的定義

一張光碟,滿滿地是一個人工作幾年下來的東西,更可怕地,這是一張 DVD .

聽說,這個人之前被交接的工作...也是一張 DVD .

就這樣一張 DVD + 一張 DVD ,滿滿地不是 A 片也不是相片. 是一堆程式碼,一堆文件,一堆規格,一堆 E-mail...

很可怕! 但是帶兵打仗的將軍沒有感覺! 死一個小兵就再叫一個小兵去死就好! 太可怕了!

有家在賣華堡的公司,新進來的小兵還比快戰死的老兵薪餉來得高! 這一天我看也不遠了!

最後學一下謝小茹,放一圖做為 Ending , Title 是我愛 DVD .

交接

我的 Genie III 應該快掛了

最近已經有 開機不能 + 照片損毀 的情況發生! 大大影響了我想帶它出門的意願! Orz

可能要把另一台借出去的 Genie III 拿回來自爽了! 小 P 學長看到這篇打手機給我! 囧rz

IMG_0005

IMG_0004

IMG_0043

IMG_0044

IMG_0033

IMG_0036

IMG_0008