Wednesday, May 31, 2006

YouTube, Google Video 影音檔下載

最近 YouTube, Google Video 等提供影音功能的網站越來越多, 部份網站是用 flash 技術解決播放問題, 那要如何下載呢? 請看下面詳細說明.

Tuesday, May 30, 2006

Spring IDE - eclipse 的 Spring 開發工具

最近的開發計畫, 逐步從 j2ee 轉到 spring 上面搭配 Tomcat. 加上 eclipse 的幫忙, 開發速度果然比以前好多了, 後來發現了 Spring IDE 的 eclipse plugin 忍不住試用了一下, 還真不錯!
  • 它還需要安裝一些額外的軟體, 通常我都會先裝 Web Tools Platform 就順便裝好了
  • Sprign IDE 安裝
    • Open eclipse. Go to Help -> Software Updates -> Find and Install...
    • Select "Search for new features to install". Click "Next".
    • Click "New Remote Site". Enter "Spring IDE updatesite" for the Name and "http://springide.org/updatesite/" for the URL. Click "OK".
  • 使用
    • Window/Show View/Other... 選擇 "Spring Beans", 你的 eclipse 下半部就會多一個 view
    • 在 project 節點上, 按右鍵(context menu), "Add Spring Project Nature"

    • 在 project 節點上, Mouse 按右鍵(context menu), "Properties", Select "Spring Beans" and 可以加入 spring configuration XML 檔案.

typo 若要放圖檔該怎麼辦?

typo 確實是個不錯的 blog 系統, 用了一段時間後發現不知道怎麼放圖檔上去? 才發覺它不支援上傳圖檔功能. 那該怎麼辦呢? 答案是: 利用現在很多的免費圖檔空間來解決這個難題.
基本上使用這些圖檔空間供應商的方法就是只要你上傳圖檔後就會產生一個 url 給你, 之後你就可以用 來 "link" 到你的圖檔就可以了! 現在是用 Photobucket, 還不錯!

Friday, May 26, 2006

Tracks - rails 的應用程式ㄝ可以追蹤工作完成情況

Tracks is a web-based application to help you implement David Allen’s Getting Things Done™ methodology.

Tracks 是用 rails 完成的應用軟體, 可追蹤工作進度, 雖然它是 web based 軟體, 你也可以把它當成 desktop 軟體來用, 只要起動 WEBrick 就可以了, 畫面看起來也很棒!
  • 下載及解壓縮
  • 安裝及使用
    • 設定資料庫, 在 MySQL 新增一個 database/schema 叫 "tracks"
    • 更改 $TRACKS/config/environment.rb.tmpl 成 environment.rb 檔案
    • 更改 $TRACKS/config/database.yml.tmpl 成 database.yml 檔案, 內容如下:
development:
adapter: mysql
database: tracks
host: localhost
username: root
password: pw
encoding: UTF8

test:
adapter: mysql
database: tracks
host: localhost
username: root
password: pw
encoding: UTF8

production:
adapter: mysql
database: tracks
host: localhost
username: root
password: pw
encoding: UTF8
    • 建立資料庫內容
$ cd $TRACKS
$ rake migrate
    • 啟動
$ cd $TRACKS
$ ruby script/server -e production
    • 第一次先注冊 http://localhost:3000/signup, 然後 http://localhost:3000/ 就開始用吧, 畫面還真不錯!
    • DEMO, login: demo, passwd: demo123

Wednesday, May 24, 2006

eclipse 中如何和資料庫打交道? QuantumDB

QuantumDBeclipse 的一個 plugin, 利用 JDBC 可以處理資料庫的工作!
  • 下載, 解壓縮, 安裝到 eclipse 目錄
  • 記得它要先安裝 Graphical Editing Framework(GEF), 通常我都會先裝 Web Tools Platform 就順便裝好了
  • 執行 eclipse, Window/Open Perspective/Other... 選 Quantum DB
  • 安裝 JDBC driver, 以 MySQL 為例
  • 新增一個 Bookmark
    • "Add External Jar..." 選 "mysql-connector-java-3.1.12-bin.jar"
    • Class name: 按 "Browse" 選 "com.mysql.jdbc.Driver"
    • 填好資料, 應該就可以用了
雖然開發 rails web 程式不見得需要 IDE 工具, 但商業軟體開發公司還是建議採用某一個 IDE 工具, 畢竟工程師來來去去, 若能最短時間上手最重要. 我覺的 eclipse 應該是不錯的選擇, 花點時間學習及習慣就好了!

Tuesday, May 23, 2006

PHPeclipse 開發 PHP 程式的好幫手

PHPeclipseeclipse 上開發 PHP 程式語言的 IDE 環境, 也可以幫你 debug PHP 程式!
  • 下載新版, 解開後放到你的 eclipse 目錄
  • 執行 eclipse, Window/Open Perspective/Others... 選 PHP
  • 設定一下 Window/Preferences.../PHPeclipse Web Developement
  • 在 eclipse 開發時 "Alt" + "/" 可以叫出 context help 功能, 方便使用, 若你有裝 Web Tools Platform 那處理 html, javascript, css 及 xml 檔案就更方便了(有點大就是了, 開發 java web 程式必用)
  • 如何 debug? 請參考此篇 Installing the DBG Debugger, 麻煩一點, 照著說明設定, 即可!

Apache 上用 erb(rhtml)

網站內容若屬於靜態網頁, 實在不需要用到 rails 強大的功能, 你可以試試用 erb(rhtml) 的方法. 設定簡單又有 php 般的彈性.
原理是利用 apache 的 mod_cgimod_action 將 rhtml 檔案送到一個 cgi 做處理, 由那個 cgi 呼叫 erb 來做翻譯工作產生網頁.

我們以 HostMySite.com 為例子, 解釋一下設定及運作原理!
  • apache 要打開 mod_cgi 及 mod_action 模組功能, HostMySite.com 預設都有打開, 直接可以用
  • ~/cgi-bin 下, 新增 erb.cgi 檔案, 利用 erb 處理 rhtml 檔案, 內容: erb.cgi.txt
  • 記得要確定檔案權限
$ chmod 755 ~/cgi-bin/erb.cgi
  • ~/htdocs, 新增 .htaccess 檔案, 告訴 apache 如何處理 rhtml 檔案
Options ExecCGI FollowSymLinks
AddHandler rubypage .rhtml
Action rubypage /cgi-bin/erb.cgi
DirectoryIndex index.rhtml index.php index.html index.html.var

Saturday, May 13, 2006

open-uri 搭配 REXML, 輕輕鬆鬆完成 RSS reader

善用 open-uri 可以方便將資料從網路上下載, 加上配合 REXML 我們可以寫個簡單的 RSS reader!

  • open-uri 讓你下載網路資料, 可以像 File 一般操作, 以及支援 metadata, ex. context-type, charset...
  • REXML 是 XML parser
  • 程式如下:

require 'open-uri'
require 'rexml/document'

class Rss
attr_accessor :channel, :items

def initialize
@channel = @channel || {}
@items = []
end

def readit(url)
open(url) do |f|
#puts "#{f.content_type} #{f.charset}"

#puts f.read
d = REXML::Document.new(f.read)

#
d.elements.each("*/channel") do |e|
@channel["title"] = e.elements["title"].text
@channel["description"] = e.elements["description"].text
end

#
d.elements.each("*/item") do |e|
item = {}
item["title"] = e.elements["title"].text
item["link"] = e.elements["link"].text
@items << item
end
end
end
end

#
rss = Rss.new
rss.readit('http://www.mozilla.org/news.rdf')
puts rss.channel.inspect
rss.items.each do |i|
puts i.inspect
end

Friday, May 12, 2006

Google Trends, 預測未來趨勢的另一方法!

Google 最近開始回頭專注他的原始本業 : 搜尋, 利用其龐大的資料庫開始提供更多的運用, 最近推出的 Google Trends 就是最好的例子.
使用起來夠簡單吧, 用 "," 來分隔比較的關鍵字. 也就是善用 Google 龐大的資料庫來做趨勢圖表分析, 其準確度應該不會低吧!

Google Notebook 快來了!


這可不是 Google 要推出新型筆記型電腦, 而是一項新的服務. 這邊有流出的畫面, 或你可以參考這篇文章 Google Notebook Screen Shots.

他的功能大致就是讓你可以在 Google 搜尋後, 可以對一些網頁(ex. 網址...) 作 metadata, 分類的筆記功能. 聽起來像不像 del.icio.us, 下周若開放這個服務, 應該會受注意及歡迎!

Thursday, May 11, 2006

免費的 Rails 主機及 typo 安裝

大家可以到 HostMySite 申請免費的主機, 申請網址是 Free Ruby on Rails Beta Trial, 大約 10 分鐘就可以收到 mail, 可以測試一下你的 Rails 應用程式. 可以用 ftp 上傳及用 ssh 連到主機, 容量還不錯, 只有網站名字不好, 反正是免錢!

接下來會介紹一下 typo 的安裝, typo 這一版並不能跑, 因為它搭配的 Rails 好像有問題, 請看下面安裝說明好了!
  • 下載 typo stable 版本
  • 資料庫設定...
    • "MySQL Database" 新增資料庫, 記住帳號和密碼
    • 然後執行 phpMyAdmin, 選擇 Database, 按 "SQL" 圖案, 執行 typo/db/schema.mysql.sql SQL script, 建立資料表
  • 上傳 typo-2.6.0_with-rails.tgz(FTP), 利用 ssh(putty) 連到主機
    $ tar -xzf typo-2.6.0_with-rails.tgz
    $ mv typo-2.6.0_with-rails typo
    $ cd typo
  • 設定 typo 和資料庫, 修改 config/database.yml 內容如下
    login: &login
    adapter: mysql
    host: merriam.safesecureweb.com
    username: ruby1727
    password: pass

    ...
  • 其實下載的 typo 版本有問題, 是不會動的 typo 版本, 請重新抓 Rails 1.0 版本
    $ rm -rf vendor/rails
    $ svn export http://dev.rubyonrails.org/svn/rails/tags/rel_1-0-0 vendor/rails
  • 換 Apache 上場, 調整一下 htdocs 就好了!
    $ cd ~; mv htdocs htdocs-
    $ ln -s ~/typo/public ~/htdocs
  • 驗證 http://86915.hostmyapplications.com/

PS. 若不行啟動, 檢查一下 typo/public/dispatch* 檔案屬性, 是否為 -rwxr-xr-w, 你可以用 chmod 755 dispatch* 指令更改.

Tuesday, May 09, 2006

Rails CHM API 文件

若你寫程式習慣用 CHM 查 API 的話, 這邊有整理好的 Rails CHM API 文件可下載, 至於為甚麼要用 CHM 格式呢? 因為它的全文檢索太方便了!, 從 Windows 就開始用了, 到 Java 還是不能沒有它, 現在 Rails API 也有 CHM 格式!

大陸網友製作的好像因語系不同有點問題, 要不然就是全文檢索功能怪怪, 還是建議下載英文版.

下載 Rails 1.1.2 CHM
你可以參考一下 HowToGenerateChmForRails

Saturday, May 06, 2006

Ruby 和資料庫 - Ruby/DBI or Rails/ActiveRecord

Ruby 可輕易和資料庫連結及存取資料, 用來做 off-line 資料庫分析或統計時很好用又開發快速. 比起之前用 java 寫這些程式方便許多. 這篇是以 PostgreSQL 為例子, 換成 MySQL 應該也差不多用法.
  1. Ruby/DBI
    跟 Perl/DBI 一樣, 提供可用於任何資料庫的程式介面, 再經由DBD(databse driver) 與資料庫溝通
    • DBI(database interface)
    • DBD(database driver), 跟資料庫相關的程式, 支援多種資料庫, ex: DBD::ADO, DBD::DB2, DBD::Frontbase, DBD::InterBase, DBD::mSQL, DBD::MySQL, DBD::ODBC, DBD::Oracle, DBD::OCI8, DBD::Pg, DBD::Proxy, DBD::SQLite, DBD::SQLRelay
    • 安裝
      • 下載 dbi-0.1.0.tar.gz
      • 解壓縮
      • 安裝, 以 PostgreSQL 為例
        $ cd ~/dbi-0.1.0
        $ ruby setup.rb config --with=dbi,dbd_pg
        $ ruby setup.rb setup
        $ ruby setup.rb install
    • 使用
      require 'dbi'

      # Same example, but a little more Ruby-ish
      DBI.connect('DBI:Pg:we', 'postgresql', 'ssdbqazse') do |dbh|
      dbh.select_all('SELECT COUNT(*) FROM "vParty"') do |row|
      puts row
      end
      end
    • 參考 Ruby/DBI, Using the Ruby DBI Module
  2. Rails 的 ActiveRecord
    • 安裝 Rails(因為要用 ActiveRecord)
      $ gem install rails --include-dependencies
    • 安裝 Ruby for PostgreSQL(MySQL 不用)
      $ gem install postgres-pr
    • 使用
      require "rubygems"
      require_gem "activerecord"

      #db connection
      ActiveRecord::Base.establish_connection(
      :adapter => "postgresql",
      :database => "we",
      :username => "postgresql",
      :password => "ssdbqazse",
      :encoding => "UTF8")

      #ActiveRecord...
      class Party < ActiveRecord::Base
      set_table_name "\"Party\""
      end

      p = Party.find(:first)
      puts p.inspect

Friday, May 05, 2006

Rails 和 PostgreSQL

大部分網站的資料庫都採用 MySQL, 但不少商業公司卻喜歡採用 PostgreSQL, 原因是它功能比較完整及速度也不錯. 我們之前的 J2EE project 就是採用 PostgreSQL, 運作上都沒甚麼問題. 他的工具程式 PgAdmin 也比 MySQL 工具程式好太多了.

所以想用 ActiveRecord 來玩玩我們的 J2EE project 的資料庫, 開始動手吧!
For what? Fun and Happiness!
  • PostgreSQL 安裝
    • 建議下載 8.1 版本
      Windows 下安裝程式會幫你新增一位使用者, 建議不要使用 random 密碼. encoding 選擇 "UTF8", 記住密碼, 其他預設就好了!
    • 安裝完成後, 執行 PgAdmin 測試一下有沒有問題.
  • Rails 設定
    • 安裝 PostgreSQL driver
      $ gem install postgres-pr
    • 修改一下 config/database.yaml
      development:
      adapter: postgresql
      database: we
      username: postgres
      password: yourpassword
      encoding: UTF8
    • 測試資料庫連結是否正確?
      D:\workspace\mywe>ruby script/console
      >>Loading development environment.
      >>ActiveRecord::Base.connection
      >>...
  • 使用
    因為我們的資料庫原本就存在, 所以 Rails 的 convensions 完全不適用, 所以你就要了解一下 ActiveRecord, 如何讓它可以運作(其實就是打開 api 文件查一查資料, 我喜歡 CHM 版本)
    • 直接下 SQL 指令
      D:\workspace\mywe>ruby script/console
      >>Loading development environment.
      >>ActiveRecord::Base.find_by_sql "SELECT p.* FROM \"Party\" p"
      >>...
    • Model & Table
      D:\workspace\mywe>ruby script/console
      >>Loading development environment.
      >>
      >>class Party < ActiveRecord::Base
      >> set_table_name "\"Party\""
      >>end
      >>p = Party.find(:first)
      >>...
    • 其它好玩的留給大伙自己試!
這樣我就可以直接下 SQL 除錯, 比起以前 java 還要 compile 快很多, 還真是爽快!!!
PS. 因為 PostgreSQL 的 Table 名字只能小寫, 而我們 Table 確是小大寫, 所以才會出現 "\"Party\"". 以後資料庫還是都用小寫比較沒問題.

更多設定問題請參考 Riding Rail - PostgreSQL

Wednesday, May 03, 2006

fluxiom 新一代網路硬碟試玩!

fluxiom 可看做是新網路硬碟進化版, 現在的一般網路硬碟大都停留在 Windows 98 檔案管理員水準, fluxiom 可說是將它提升到 Windows XP 水準.

fluxiom 可以看的懂大部份的影像檔及 PDF 檔, 也可以讀 EXIF 資料, 也有縮圖, tagging 及搜索功能. 以後也應該可以支援更多檔案格式. 操作上很容易也很好用, 大量的運用 AJAX 技術在其中, 算是很酷的網站! 有些功能真是好奇它如何做到? 它的開發平臺是 Ruby on Rails.

缺點就是蠻貴的! 用信用卡申請, 可以有一個月試用期, 不用時千萬記得取消帳號.

Tuesday, May 02, 2006

Skobee, Renkoo, 將你的社交生活搬上網路!

生活週遭還有哪些可以搬到網路上呢? 你的社交活動都花在 emails 或 MSN 上嗎? 現在你多了一種選擇, 透過 SkobeeRenkoo 提供的服務讓我們在網路上搞小團體吧!

基本上可以擬定你的計畫, ex. 吃大餐, 然後邀請朋友參加, 大家可以討論時間及地點之類的事情. 你也可以決定你的計畫是公開行程或只允許朋友參加. 加上網友的共同參與, 你有很多地點可以選擇或參考其他網友分享的地點資料, 當然他們也會結合地圖服務讓你一清二楚要去哪裡. 更酷的是他們都有加上自然語言的處理能力, 當然只支援英文!

這些網站 AJAX 都用的很兇, 操作起來確實比以前直覺許多, Skobee 用的是 prototype+scriptaculous, Renkoo 則是用 dojo 技術. 加上混搭的運用, 未來應該會慢慢和一些會議中心, 餐廳結合更密切也可以做行銷活動, 甚至可以幫這些 "地點" 預知來客人數及熱門程度, 未來應該還有十足的發展潛力!!!

Skobee 在多人討論上採用的是和 blog 一樣的 comment 方法, Renkoo 還在 beta 測試階段, 但申請大概一天就下來了. 在多人討論上用的是 chatting 方法, 採取稱為 "COMET" 的新技術, 相對於 AJAX 是 client 端有事件發生送回 server 處理然後傳回資料, "COMET" 是 server 端 push 資料回去給 client端的技術(改天再談 "COMET")