2007年12月9日 星期日

You are a dog ! (Ultrasonic ringtone)














Or maybe you are a mosquito, you certainly can't be human.


The highest pitched ultrasonic mosquito ringtone that I can hear is 21.1kHz
Find out which ringtones you can hear!

啊?這是真的嗎?
是我家的喇叭太爛還是太好?
不過真的最後一個是聽不見了...

2007年11月1日 星期四

SRB與Data Grid

啥是Data Grid,啥又是SRB? 這個問題其實也在我的心中困擾很久,由於我自己差不多到了這個階段,該是時候弄清楚並且真正提出解決問題的方案了。有一個前提必須提醒大家瞭解一個想法,Grid這件東西,我個人認為比起研究或是虛幻的夢想或者要解決100%的問題,實際地解決60~80%的人認為的問題,就能夠有貢獻了。而過去的經驗裡,很多事情都讓我體認到,眾多的計畫裡,提出眾多的想法,僅只能夠被歸類在「研究」,就像我聽許多老師說,「這就是做研究嘛」一樣。實際上一個東西是不是能夠被拿來做量產,終究還是該關心的問題。這並不是否定各位前輩們的辛苦研究精神,在不可能裡尋找可能是很累人的。只是對我個人而言,我希望經研究作為是一個過程,而不是做了三四年都還在研究階段。 很可惜的是,在我這幾年參與的計畫裡,「研究」還是佔了最主要的目的,而並不是「使用」。這是讓我深感SRB就是一個這樣研究型的middleware,許多的設計是在告訴大家「可能」,但並不是為了要拿來使用而設計。卻實在看過一些文獻後,對於SRB在Machanism Abstraction上的貢獻我覺得相當佩服,對於眾多的儲存媒體,要能夠囊括不是一件簡單的事。但仔細思考,究竟Data Grid希望為大家解決啥問題,會發現路更是長遠。光是metadata abstraction或是machanism abstarction,也不見得能夠解決幾個重要的問題。 以下我透過一些問題來帶入Data Grid的需要:

2007年10月24日 星期三

更新至Wordpress 2.3

似乎終於願意開放tinymce的功能了,原本就有,不知道為啥一直不給用,得自己改。加上這次啟用了多個加速功能,包括mysql query cache,eaccelarator,wordpress 內建快取等,有些頁面的回應速度終於降到了1秒以下,連另一個站的wiki也快很多。老是在寫追求高效能的web application,連自己對秒速的感覺也變得遲鈍。現在都會希望要求東西在1秒內就要出來,1秒以上的也不要在連續的操作裡出現太多次。

加上了Challenge,雖然有點不方便,不過spam真的太猖獗,沒辦法。本來就有裝akismet,後來還換了domain name也沒啥用,一下子又變成一天幾十個。本來是想要換布景主題的,不過看來看去怎麼還是這個最好看。

目前還是持續在寫有關SRB與DataGrid的文章,越來越多學校的同學們(被迫)加入研究datagrid,這是一種趨勢嗎?不過說真的的我是很相信整合是一種趨勢沒錯。但問題還是在於

  • 太少Unix技術訓練,大學以上的教授大多都認為會用這是理所當然的,實際上他們自己都不會用,更何況會教或引導學生?

  • 應用範圍的研究方向偏多。其實這本來就反映出DataGrid的本質,只是在台灣大家不管做啥論文都還是會希望有個演算法,才能「看起來」有點料,所以很多人都還是做Replica問題的,卻又因為這跟datagrid相關而又得乖乖地來接觸SRB。

  • 沒有真正有商業價值的應用。SRB賣給Nirvana之後,這家公司便出了很多「企業」專用方案,乍看之下確實功能強大,而且符合可擴充的需求,實際呢?究竟有多少企業真的選擇SRB做為整體性的解決方案?而其他Grid計畫,某些層面不見得是要拿來賺錢用的,不能夠相提並論。

  • 有資料典藏的方案,可是尚未顯示其價值。很多地方都在做資料典藏,著名的internet archive,收集了自從創立以來網路上所有能夠找到的網頁。這些計畫一定需要大容量可擴充可容錯的儲存,但存了一堆東西,也沒有一個人感受到這與自己生活有啥關係。


這幾點,對我個人看見的現象相當地明顯。有的人希望DataGrid是一個超大FTP,有的人希望他是anywhere access,有的人希望這可以超越世界上任何一種儲存的速度。但沒有一個人真的瞭解DataGrid在做啥,目的又是什麼。正如同很多人也不瞭解Grid是要幹嘛。對Grid來說,整合這件事應該是要同時帶來方便性和速度。但實際上我們也看見很多例子說明,整合只會更慢。

對於長久做Grid計畫的我而言,整合是一種痛苦,代表各校各自表述卻又不得不聚在一起凹出一個東西。整合只會讓權力更大的人握有更多的東西,而並不見得會對民生或是一般人常用帶來啥益處。為什麼整合會成這個樣子?也充分地表現出社會的運作。我想真正的整合是大家一起尋找出眾人都能得到利益,卻能夠維持原本特定型態網路運作的途徑。

舉例說,以前驢子出了很多Mod,有的是為了有趣,有的是為了站方(或站務群)的個人利益。實際上一直到今年,我所看到的還是維持大眾利益的站活了下來。像我常去的m-team這種型態的就是例子,儘管不多,我也依然在用自己的方式貢獻流量或是發個文章。確實,站方說自己辛不辛苦我們不會知道,不過如果正確地找到方向,不輕易違背諾言,不輕易放棄使用者,那又有什麼站會因為人數太少而倒?辛蒂關站的時候,包括我在內不知道有多少人嚷著要捐錢。對很多人來說,使用者便利,習慣是讓他們貢獻自己手上金錢的主因,因為這對他們來說是價值,最後當然還是得稱讚長期努力的站務群。

做了幾年計畫,雖然也沒啥貢獻,也不敢說做了什麼好東西,可是真的還讓我覺得滿無聊的。問題並沒有得到好的解決,可是講的人卻可以講的口沫橫飛,聽的人則多半是在台下說「這也不怎樣」,但也未見其提出好或不好在哪。帶頭的人總是有著太多的理想,底下的學生總是做的半死。直到我開始在軟體公司工作了,雖然以上情境沒啥不同,才發現其實心境有很大的不同。至少我的想法比較接近雙贏,不再是做一個要求使用者改變習慣的東西了,也不會不顧自己總是做白工,而無法思考獲利的方式。

不過套一句我的老師說的話,「研究就是這樣」,可能現在的我也是在夢想與現實中尋找一些路吧。

2007年9月26日 星期三

Single Page Application - 下一代的Web應用程式

在Web Service, Ajax, Web 2.0, REST等Web應用與技術話題熱潮,帶動許多第二代的Web開發技術成長之後,這些話題也漸漸地消退。不過許多人可能不曾發現,其實這些技術名詞,是在慢慢地顯露一點:Web應用程式逐漸從Server Side轉移到Client Side,也就是瀏覽器身上。

本篇文章要從以往的Server Side Web應用程式,其開發方式與演進來介紹Single Page Application(SPA) 與現今所有主流Web技術。

我在Web 2.0過去,現在與未來及介紹Ruby On Rails都有提到一些Web技術的演進,比較明顯的趨勢就是從靜態到動態頁面,而設計的方式也更程式化。而在http://atedev.wordpress.com/2007/01/09/Web2.0:過去,現在及未來也有讀者在前言提到,技術並不是將一個名詞安上去就好。我相當贊同這句話,因此也在這篇文章中希望來做個總整理,以技術及歷史來看看Web是怎樣成長的。

Web應用程式的演進


動態網頁


儘管Web並不是一個三言兩語能拿個版本號碼來解釋,但實際上Web技術確實有些明顯的分隔點。

最早期我們熟知的就是靜態網頁,這應該沒啥問題。儘管在2000前,php,asp就開始流行,坊間的書上也都稱之為動態網頁。而我在此提及的動態網頁程式,實際上卻是從php4釋出的那一年開始(註釋)。這邊要讓大家瞭解的分界點,其實是php4開始被許多商業公司所採用,而軟體的形式也更為套裝化,而不再像之前大家認定的「動態」網頁僅僅只是拿來完成一些簡單的區塊來與一般的靜態網頁整合。


在2004年的時候,Web Framework的產生,創造了Web應用程式另一個新的高峰。而在這個時候也開始有一些Rich Web Client概念的雛形了。我將Ruby On Rails定為一個分界點是因為,他顛覆了傳統動態網頁還在使用設計方式,而改用MVC。但要注意的是Ruby On Rails儘管整合了Ajax與進階Javascript函式庫,但還是沒有改變回傳完整或部分HTML的方式,意思便是HTML的產生始終在Server Side。

2007年9月2日 星期日

Ruby on Rails 與 ruby-postgres

ruby-postgres

有網友與我提出Rails與PostgreSQL的問題,我就順便寫一下有關PostgreSQL的問題好了。

安裝的方式請參考

http://postgresql-chinese.blogspot.com/2007/08/windowsrailspostgresql.html

不過我在這邊順便補充,其實當初會捨棄postgres-pr還是因為效能的問題,native binding終究是比較快的。

在此先對新手說明一個觀念,如果你想一步一步玩熟Rails,最好還是多善用ruby script/console來進入Console mode。而Console其實也只是呼叫irb去載入environments.rb,這個檔案會陸續載入plugin, model及你指定在environments.rb寫的所有require。Console有兩個用途,一個是測試是否你能正常啟動Rails,第二個是測試你的Model是否正常,例如測試association。而如果console都啟動失敗,或是Model.find出來的都不是想要的,那真正啟動mongrel去跑頁面是一定不可能是對的。

而許多在windows上面安裝的人一定會遇到函式庫載入失敗的問題。 要注意的是,安裝任何mswin32的gem都是有可能出現這樣的問題的。這個時候如果你是去看rails的development.log或是看到exception,通常都還是會說是driver有問題(可能會是xxx.so載入失敗之類的),這樣是看不出來的。此時使用console,一啟動的時候他就會告訴你是啥dll無法載入。

而大家使用ruby-postgres,如果不安裝PostgreSQL Server Win32,有幾個重要的dll是不會被載入到windows裡的。這個使用請先安裝PGAdmin III,然後將他的安裝目錄裡的libpq.dll,iconv.dll,krb5_32.dll,libiconv-2.dll,libintl-2.dll,comerr32.dll至你的ruby安裝目錄下的bin即可,還是一樣先試試console能不能開吧!

Ruby的很多Win32函式庫都是用這種binding的方式,而並非是使用ruby撰寫而成的。所以如果今天是發現gettext不能用,就應該要去尋找gettext win32,然後將缺的dll複製到bin下即可。

該如何發問?

最近在論壇觀察了一下,發現Rails新手的朋友們,應該要接受一些觀念建立,以免回答的人答非所問。既然我遇到人來問問題(還好不是來踢館),也免不了要提倡一下,這觀念在任何一種程式語言都適用。

  • 詳述問題:想要讓人瞭解問題,就是要說明你的目的,及你在發問之前曾經做了什麼。如果不是技術上的問題,例如是求函式庫,求解法,那更要說明清楚前因後果。

  • 有Exception訊息的要貼exception:Rails當發生任何錯誤的時候,就一定是大家所熟知的畫面,「{ErrorName} in {Controller#action}」。接著就是貼ErrorName,以及下面灰色區塊裡的描述。第二個灰色區塊就是trace,如果可以的話,請 複製5~10行,如果是寄信,或發文可以不受篇幅影響,全部貼上來也無所謂。不然可是沒有人知道你在問啥的喔~

  • 有畫面的請貼畫面:如果是ajax,html等其他UI上的疑難雜症,就一定要貼畫面了。然而是複雜難以解的問題,就要請你去用用fiddler了。例如有看過google maps不能用的問題,其實後來深入一看其實就是referer被擋的問題,這種狀況應該要詳細貼出http request及response,才能讓解答的人知道是啥狀況。

2007年8月29日 星期三

我使用過的Ruby Library或Rails Plugin

Ruby Library:

  • REXML。寫XML的話也沒有別的更好用了 http://www.germane-software.com/software/rexml/

  • ROXML。這個可能對我自己的特殊應用比較有意義吧,如果是撰寫standalone rails app而又不想用sqlite的話,其實另一個選擇就是效能更好的XML Database。但是在這個技術尚未真正成熟的情況下,XQuery + ROXML也是不錯的選擇。http://roxml.rubyforge.org/

  • Gettext。這個真是牌子老信用好的東西,不過我或許還會想要選擇用更簡單語法撰寫語系檔的函式庫。http://manuals.rubyonrails.com/read/chapter/105

  • Ruport。一剛開始接觸Rails的時候還以為會像php一樣報表函式庫一直都沒有高度整合性的,心裡最想用的大概會是有點像crystal report吧。不過好在有這個,已經相當完整了,pdf,cvs該有的都有,使用上也很方便。http://rubyreports.org/

  • Chart Director。這個雖然是商業的,圖的顏色也不是挺漂亮的,不過因為想要畫的圖比較複雜只好勉為其難。

  • UUIDTools。這個也是特殊應用,有可能你對一筆資料所對應的URL想要複雜到讓使用者無法猜,或是想要試試看分散式資料庫,或許你會需要這個。http://www.cnblogs.com/funjackyone/archive/2007/06/01/768275.html

  • RJB。雖然jruby內建連結java的語法相當直接,不過jmongrel+rails的效能可不敢想像,我看我還是耐心的等到明年好了。可是我的專案還是得整合Java...唉,這個時候還是乖乖靠這個老牌子吧。http://rjb.rubyforge.org/


Rails Plugin:

2007年8月27日 星期一

Heartbeat 2.0



在商業服務的Rails HTTP Cluster觀念及測試中,我提到了failover也是cluster的其中一個觀念。幾年前我用heartbeat,只是單純架設pgcluster的load balancer,那個時候也是簡單的active / standby。在那個時候,有這樣的架構已經減輕大部分人所遇到的問題:有一台掛掉另一台可以馬上取代其服務,讓維護者有時間可以救,使用者不會罵,已經是很偷笑的事情了。不然一般的維護者可能要急得像熱鍋上的螞蟻,拼命地輸入指令試著想要拯救資料或服務,而在數小時的工作後,服務還是救不起來,使用者罵聲四起。但是其實對我而言,這些比起硬體的方案,還是多多少少嫌不方便。

參考這個網頁,可以瞭解有那些failover的方式。
http://www.ukingdom.com.tw/pro/lifekeeper/lifekeeper.htm

先不管後面的階層化或是多方向failover,其中提到的active/active及active/standby,為啥要有這些分別呢?我來一個一個介紹。


這一個月來的Google Analytics

好吧,我承認我有發現,其實大家想要看unix的東西有比rails的還要多。這個呢 ....孤狗大神的分析器有告訴我:

blog-keyword.JPG

我只能夠說我感謝大家的抬愛,不過很可惜的是,我可能不會再寫有關php的文章了。
讓我驚訝的是,centos及heartbeat竟然是這樣熱門的話題!
最近才剛完成了full-failover的heartbeat 2.0+rails cluster架設,或許趁記憶還新的時候,趕快再來寫一篇吧。

不過其實只要還有人願意看我的文章我就很高興了啦~^^

2007年8月19日 星期日

商業服務的Ruby on Rails HTTP Cluster觀念及測試

Rails如果運用在正式上線的服務,便是相當需要配置為Cluster(叢集)服務。不過大部分使用Rails來建立Cluster通常都是藉著Apache mod_proxy,但在一些情況之下,他只有好設定的優點而已。另一種方式是利用一些Plugin及設定去模擬Cluster的行為,不過這樣便是消耗CPU的時間。

網路上可以看見許多Cluster的文章,但多半都是介紹單方面的功能,或是許多實做的細節牽扯在一起。這篇文章用商業服務的整體規劃來看Cluster及Rails之間的種種問題與解決方法。文章後面附帶了一節是要解釋如何解讀apache menchmark的數據。而各位如果想要瞭解的是效能,數據上的差異,已經有一篇相當棒的可以參考:
http://blog.kovyrin.net/2006/08/28/ruby-performance-results/


[2007/06/15 - 2007/08/19] Hemidemi書籤摘要

  • 07/13 10:20, 2007
    Streamlined 是一個以meta programming 的方式來撰寫程式碼的rails plugin,而meta programming的意思是說,你只需要「描述」就好,剩下的rails會幫你完成。聽起來很玄,實際上就是他有一個預設的樣版,你只要利用一些簡短的程式碼,如同activerecord撰寫association設定那樣簡單,就可以產生整個app的UI了,基本上不需要動到view。
    (標籤: web rails)
  • 08/02 13:55, 2007
    這個就是將FreeBSD的網路功能發揮到極限,以前我也曾動手做過,不過覺得Linux上的也不賴啊,只是沒那樣快
    (標籤: freebsd 科技)
  • 08/19 14:28, 2007
    有些確實說的很清楚,就是還缺乏編譯器那些的。但是有些我想還是不熟造成的,就算是在javaeye上面的罵一罵,看起來也還像是鄉民的談話。ruby出到現在,廣告到是打了不少,雖然也還是看到有人推出ruby原碼解析(列出),不過這樣又能學到什麼呢?原本一個能夠進步的東西,感覺起來在亞洲環境下,逐漸變成一種話題般的產物,讓人覺得有點小小可悲啊。

    不過我相信還是有人願意去研究pure OO到底是啥,慢不是問題,而是要如何改善。

2007年8月10日 星期五

Ruby on Rails的效能低落

儘管我是寫Rails的,寫了想想也快要一年了。東看西看都覺得這實在是一個好東西,不過反過來,當我們的服務要上線的時候。組長卻說我的benchmark test case不夠好,不能夠測出很準確的數值(或許他心想這太好了,三台準系統可以跑200多個request/sec)。

是的, 我是多半隱藏了這個缺點,甚至很不想要去說「對,他就是一個這樣慢的東西」。當一堆文章都在寫說mongrel或是lighttpd cluster有多快,我心裡總是想著apache+mod_fcgid(你知道我在說哪一個blog...XD),我們的目標是做上萬人使用的系統,總不能真的去跑mongrel吧?那跟跑webrick有啥不同?

2007年8月6日 星期一

在FC6上安裝Ruby on Rails + FastCGI + Apache + mod_fcgid

參考文章:
http://wiki.rubyonrails.com/rails/pages/Rails+on+CentOS+4.4+with+Apache+and+FastCGI+Simply/versions/13

1. 安裝apache module
[bash]
yum install mod_fcgid
[/bash]

2. 安裝fastcgi
因為ruby-fastcgi建置的時候需要fastcgi的header所以得安裝
下載:
http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz

[bash]
tar zxf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make all install
[/bash]

2007年8月1日 星期三

PicasaWeb的Flash相簿

雖然說用Google查一下關鍵字就可以知道,PicasaWeb基本上是英文版才給Flash連接,但這不管怎樣還是Flash的Photo Atom Feed Reader。
所以在你想要的任何網頁貼上這些HTML

<embed src="http://picasaweb.google.com/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" flashvars="host=picasaweb.google.com&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fkiwi0530%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer" height="135" width="180"></embed>

結果就是:
參考這兩篇文章
http://blog.blueshop.com.tw/ajun/archive/2007/03/28/50293.aspx
http://roxytom.bluecircus.net/archives/009894.html如果你要顯示你所有相簿的所有圖片,只需要將feed=後面的數值改成
http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2F{使用者帳號}%3Fkind%3Dphoto%26alt%3Drss

2007年7月16日 星期一

介紹Ruby on Rails


本篇文章從PHP及Web程式設計師的角度,逐漸帶出Ruby on Rails這個Web Application Framework及其優點,架構觀念。接下來要簡介Ruby及Rails的學習重點。


Web應用程式


記得在上次的的主題,重新探討Cakephp, Ruby on Rails與MVC,我大力地闡述能否實做商業邏輯,或是掌握Model的功用是多麼的重要。而老話一句,這個問題比較會出現在中大型的Web應用程式中,如果說你正在寫的是小小的網頁作業,或許本文對你只有參考的價值。

我會這樣說,是因為我們已經邁向2008年,Web應用程式在Google大神的帶領之下 ,逐漸開始在放出光芒。

2007年7月6日 星期五

升級至Wordpress 2.2.1

這一次的升級有點不太一樣,是純手動升級
新裝了另一個wp之後將舊的資料匯出,然後匯出匯入,圖片,主題,plugin一個一個轉移

之所以會這樣,只是因為我的發現我的編輯介面一直沒有visual editor,而別人的確有
看樣子升級還是沒有新裝的乾淨!

2007年6月27日 星期三

PostgreSQL MySQL Firebird 效能比較

http://postgresql-chinese.blogspot.com/2007/06/postgresqlmysqlfirebird.html

我覺得大家看到這一篇就可以不用再爭了,這已經解釋地相當清楚
以往我經常遭到到底該使用哪個資料庫的挑戰,很可惜的是到最後MSSQL,Oracle我幾乎都沒有考慮
你應該不會有聽過人用裝Oracle只是來架個Blog吧?

不過比起文章中我還要附加一點
相較於mysql,視窗版的postgresql安裝介面比較不人性化,而且同樣地視窗管理介面比較簡單(剛好滿足基本功能)

firebird在資料庫系統的定位中就相當模糊,他既無法承受大量的連線數,又需要啟動服務程序,否則效能就會大減
還是一句話,總不能架blog用firebird吧?

至於單機應用,那當然是選擇sqlite
最佳的範例就是GoogleGears

2007年6月15日 星期五

[2007/06/08 - 2007/06/15] Hemidemi書籤摘要


免費的RSS新聞閱讀器

2007年是一個Web與P2P大放異彩的時代,我相信大家有要求及使用更方便更迅速軟體的權力,也因此我強烈建議m-team開啟RSS的功能,讓大家一有新文章就可以趕快來看。

什麼是RSS?參考以下連結

http://zh.wikipedia.org/wiki/RSS
http://www.ytower.com.tw/rss/about_rss.htm
http://www.tuzaiz.idv.tw/archives/13


2007年6月12日 星期二

整理後的文章規劃

我知道我之前那些文章很多很亂,我也忍很久了,終於在今天好好地整理一下
以下是這些分類的簡介

系列文章
Web2.0程式設計系列:與Web2.0,進階php程式設計相關的文章。而目前正將文章轉向MVC與Ruby on Rails,進階Javascript程式設計。
Unix系統管理系列:我曾經撰寫過的Unix教學都放在這了,有些文章有點舊,不過勉強可以參考。
資料格網系列:所有有關SRB的文章,但未來會包括P2P與DataGrid的應用。


分類文章
Unix:有關系統管理的文章,或許未來會考慮加上Windows管理的文章
Web程式設計:有關php,ruby,postgresql的文章都在此
視窗程式設計:這裡的文章有點舊了,因為我現在不寫這些語言了
技術摘要:從Hemidemi上發佈過來的書籤摘要都會放在這

Unigrid Auto Replication Daemon


前言


Unigrid計畫在今年決定使用SRB,為了補足SRB本來沒有自動複寫檔案的機制,我寫了這個服務。

由於許多因素,暫時不提供套件下載或是原始碼
版本歷史
20060708
初始版本

20060726
修正
會複寫到兩個以上的resource
db.xml不再使用owner屬性,DBConfig.SetPolicy也只需要srbfilepath和policy
config.xml支援多個zone的連線
更快速地跳過不需要進行複寫的檔案

SRB 3.x 安裝測試記錄 (Oracle)

  • 環境


FC3
Oracle 10gR2
SRB 331

SRB 3.x 安裝測試記錄 (PGCluster)

  • 環境



SRB-3.2.tar.gz
pgcluster-1.0.9.tar.gz(postgresql 7.3.9)

SRB 3.x 安裝指南 (Oracle)


  • 前言


在2005年中的時候,我發現了MCAT使用Oracle作為DBMS的效能是相當好的。大概看了10.2的功能,管理介面上有很大的改善,Oracle更是自誇說沒有資料庫可以勝過他們。後來實際搭配SRB的效能測試,其實也真的不錯,讓SRB成為一個可以上線的系統,而非在PostgreSQL下有很不穩定的表現。

對於初學者來說要去熟讀Oracle的書籍比較好,或者你可以參考這篇文章,而SRB的操作及簡介可以參考PostgreSQL那一篇。

SRB 3.x 安裝指南 (PostgreSQL)

SRB套件:

SRB3.2e.tar

srb3.2.1patch.tar

DBMS套件:

postgresql-7.4.2.tar.gz

unixODBC-2.2.10.tar.gz

psqlodbc-7.2.5.tar.gz

主機:

Redhat Linux(Redhat 8, Redhat 9, Redhat AS 3皆測試過)

測試帳號:

srb.nchc.org.tw:5544 / mcat.nchc.org.tw:5544

srbtest

srbtest

Client Application:

InQ下載頁面

目錄:

前言

準備工作

SRB without MCAT

PostgreSQL and unixODBC Quick Installation Guide

SRB with MCAT

Test

  • 前言


在安裝的過程中,實在歷經千辛萬苦

雖然到了第3版,官方文件卻還是沒有跟著官方測試人員在新版本上的結果而更新,文件的配置潦草隨意

有相當多的堪誤

除了Scommand的設計還算不錯,ClientApp很漂亮也很好用

但Server有些設定及關鍵字的意義難以令人理解,與字面有些與差別

無論如何,我們還是感謝SRB開發人員實現這個想法

但如果是OpenSource,會讓這個想法實現的更完美吧!

可能大部分人都用安裝Oracle解決

Oracle好裝好用,但畢竟不是OpenSource

但是在這裡我用的是PostgreSQL,因為PostgreSQL對於ODBC的支援在幾版前便已經拆開

由非官方的團隊撰寫

ODBC的公用驅動一開始是選擇IODBC,不過似乎對於新版PostgreSQL的相容還是有些許問題

unixODBC有許多好用的設定工具,相容性也完全正常

不過裡面附的PostgreSQL驅動程式,我並沒有使用

MySQL也可能因為Library的關係出現Bus Error,官方沒有任何說明文件

便不在討論範圍內了


Oralce 安裝指南 (RedHat Enterprise 4 )


前言


在2005年的時候,因為SRB的關係我開始使用Oracle 10g,他強大的效能真是令人震攝。
SRB使用Oracle的效能差異,也附上了簡短的註記,可以參考:
http://kiwi.csie.chu.edu.tw/blog/srb/srb-with-oracle-memo/

有關快速的安裝,可以參考
http://kiwi.csie.chu.edu.tw/blog/srb/srb-with-oracle-install/

有關完整的安裝請參考
http://www.puschitz.com/InstallingOracle10g.shtm

下載


http://www.oracle.com/technology/software/products/database/oracle10g/index.html

請先註冊OTN的帳號

本文章將介紹Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86

Ruby on Rails 與 Oracle


前言


承接之前撰寫的Oracle Installation Guide,這裡要開始解釋要如何使用Ruby如何連到Oracle。
雖然Oracle支援標準SQL規格,不過還是有相當多他們自己的概念。本文章描述幾個Oracle新手會遇到的問題。

若要詳細管理你的資料庫(10gR2),請參考
http://www.oracle.com/pls/db102/homepage
或是書籍

Oracle Database 10g DBA 技術手冊
http://www.books.com.tw/exep/prod/booksfile.php?item=0010303350

Oracle Database 10g Linux 系統管理專家http://www.books.com.tw/exep/prod/booksfile.php?item=0010333657

2007年6月8日 星期五

[2007/06/08] Hemidemi書籤摘要

  • 05/03 19:20, 2007
    xrdp是一個opensource的遠端桌面linux實做
    (標籤: linux)
  • 05/16 09:26, 2007
    英文字型有很好的分類,最重要的是,還可以輸入自己想要看的字來預覽
    (標籤: 設計 web)
  • 05/16 09:37, 2007
    這個中文blog可以說是我看過最有熱誠的了,有很多的深度文章,讓大家可以瞭解PostgreSQL。雖然說PostgreSQL並不見得是一般用途,像MySQL一樣功能簡單速度又快,就不是PostgreSQL的目的了。如果是偏向商業開發,或是Cluster,PostgreSQL有與Oracle幾乎相同的穩定度,更重要的一點他是OpenSource!現在越來越多的Web應用程式(如Mediawiki,Wordpress)也轉為支持PostgreSQL,希望大家也能多嘗試使用!
    (標籤: postgresql database)
  • 05/16 09:45, 2007
    前一陣子和學弟討論到UML與軟工的存在必要性,與一些人討論發現台灣普遍沒有軟工的觀念,也不懂得時程規劃。結果老師把UML也教成沒有用的東西,一直說「以前我在美國的公司都是這樣做的」,這哪有意義?

    一個東西會存在是因為他被需要,其實仔細觀察一個軟體專案的開始到結束,會發現UML的目的就是用圖形來描述每一個過程。也會有人問,一定要照著他做嗎?我想,如果大家都畫一樣的圖,不是比較好溝通嗎?UML的目的就是這樣而已,請在「你需要的時候」畫你需要的圖吧!
    (標籤: uml programming)
  • 05/16 09:53, 2007
    最近又開始使用這個東西,看到了小狐狸東真是相當有趣。每天都注意一下他在幹嘛,也算是有種樂趣。網路上雖然有人將他的所有畫面都抓下來,不過我個人覺得這是相當貼心的設計,就算知道了所有的畫面,每天看見和時間同步的圖,並不會覺得「啊~這些都一樣」,反而是相當習慣的。

    目前我們也打算整合Gadget,也會全面整合google的產品,也就是說未來我們的服務也可以使用iGoogle來放在你喜歡的地方,或是將Gadget反過來放在我們的介面裡。
    (標籤: google web)
  • 05/16 10:06, 2007
    我對Freespace可以說是超級狂熱!

    記得高中的時候,還在流行大補帖,跟特殊的補帖商訂了3CD,那時候寄過來的還是很糟糕的光碟片,然後我自己再重燒。大概是在2001的時候,官網也不再更新,2002的時候,其中一名開發者將source code釋出。於是造就了今日的Freespace。雖然Freespace SCP改了些特校,還是覺得相當地讚,也開始重新懷舊。

    我發現幾點,現在nVidia 8800和ATI R600打的正火熱,大家都專住在更好的遊戲畫面,可是Freespace這個不怎樣的畫面,我讓我一個玩過DX10遊戲的同事看了,她也覺得很漂亮。另一點是,這種真正有內涵的遊戲,並不受到台灣玩家的支持。
    (標籤: freespace game fps)
  • 05/16 10:36, 2007
  • 05/16 10:37, 2007
  • 05/22 23:37, 2007
    還滿不錯的reference,如果只是要看基礎語法相當適用。
    (標籤: ruby programming)
  • 06/04 18:27, 2007
    自稱程式宅男的傢伙,竟然是Programming Ruby的作者(還順便賣書)。根據影片中的說法,程式設計師有兩種,勤勉和輕量的(有骨氣和沒骨氣嗎?),有各自適合的程式語言。日本人講話很好玩,內容很爆笑XD
    (標籤: ruby rails 娛樂)

升級成2.2版

WordPress在五月的時候推出2.2版
有興趣的人可以閱讀
http://technosailor.com/10-things-you-should-know-about-wordpress-22/
來瞭解2.2版究竟有啥不同

對我而言最主要的是有widget可以方便管理sidebar,但相對的以前放的那些有的沒的小工具很多都不能用了
不然就是要重新來改頁面>"<

而由於Feed Burner被Google買走了,這幾天發佈好像都抓不到RSS,不知道是怎樣了

此外目前的資料也移機到新主機了,實在是快得不得了。

2007年4月30日 星期一

[2007/04/12 - 2007/04/30] Hemidemi書籤摘要




  • 04/24 12:16, 2007

    在2006下半年以及2007年,Linux社群不管是商業還是非商業,對於中文環境及桌面支援程度越來越有水準,許多大廠也都紛紛開始引進Linux。看見這篇文章,終於瞭解使用者的心聲,不管他是菜鳥還是老手,對使用感及品質都還是會要求的。也表示Linux終於走到這一天了!

    (標籤: linux opensource ubuntu)



  • 04/24 19:39, 2007

    這個網站有許多opensource作業系統的有趣影片及介紹影片,雖然有些是大同小異,不過對opensource的初心者,瞭解這些作業系統用起來怎樣,看起來怎樣,也是不錯!

    (標籤: opensource linux 科技)



  • 04/30 11:03, 2007

    這個應該歸類在Full Virtualization(不需要任何CPU VT支援)
    使用過後,雖然不敢說上穩定,但是至少快多了。
    期待未來他有進展!

    (標籤: linux)


2007年4月17日 星期二

CentOS 5 介紹

在最近這幾年來,Fedora Core Linux, Redhat Enterprise, CentOS 似乎已經形成一種穩定的關係。

早在大家所熟知的Redhat 9時代,他似乎就成了Linux的代名詞。而到現在,CentOS帶給我的不僅是因為Opensource所能得到的自由度,更有商業化的Redhat Enterprise的穩定度。

簡單地說,CentOS就是支持開放原碼的社群將RHEL裡非開放的套件自行撰寫換成開放的套件,然後重新取的名字。

對於已經熟悉的系統管理者,就不用介紹那樣多了,還是看看到底增加了什麼吧。

http://www.redhat.com/rhel/features/

這一代最主要的進步就是使用了Xen 3.0,以此達到全虛擬化(Full Virtualization)或半虛擬化(Para Virtualization)的功能。早期我也是使用VMware ESX Server來建立虛擬機器的,不過後來由於Xen大幅度地提高了虛擬化的效能,所以我就跳槽了。在使用及管理上,雖然沒有如ESX 3那樣華麗的操作介面,不過文字介面快速管理的方便性,對系統管理者要在極短時間內完成很多主機的任務才是比較重要。

目前雖然我是使用Fedora 6 Xen作為我們PC Cluster的底層OS,不過也是相當穩定。半虛擬化只是單純利用區隔Process記憶體位置的方式(他叫做Domain)來達到目的,所以在GuestOS裡跑的程式,實際上是和在實體機器上跑一樣。也因此半虛擬化有限制就是必須和實體機器的OS一樣。反之全虛擬化就利用了Intel-VT/AMD-V的虛擬化技術,讓GuestOS可以突破這種限制。但相對的因為也有虛擬層驅動,所以效能當然就一定會稍微慢一點。

可是會有人問說,這樣有啥好處?在大量配置的環境中,如Cluster,除非早期就確定好架構,不然一到要改變配置的時候,可真是會令人叫苦連天!有了虛擬機器,我可以輕易地遠端控制,啟動或關閉。而對我最大的效益,就是如果老闆忽然說要加機器,或是有特殊需求,我可以馬上就生出來而不必擔心實體機器不夠。如果你的機器常壞掉,那只要硬碟讀的到,虛擬機器可以利用其他實體機器快速還原,將硬碟檔拷貝出來然後啟動就好了。針對高效能運算,會有人說幹嘛一定要用虛擬技術。由於半虛擬化的特性,並不會減低系統效能,所以你更可以規劃出比較適合你環境的節點數量。因為節點可以彈性,你就可以隨心所欲地將他們往某個計畫擺,而不用擔心兩個計畫裡使用的軟體會有衝突。

在安裝的時候,有個地方是選擇套件,注意到幾項他和Fedora 6不一樣的地方:

程式開發->相容舊式軟體開發:他將函式庫的部分拿到了 基礎系統->舊式軟體支援

VNC-Server從系統工具拿到 伺服器->網路伺服器

2007年4月15日 星期日

SRB 3.4.1 with PostgreSQL on FC6

由於更換了系統,簡單地做一下安裝註記
之前是在Redhat Enterprise上,採用自行管理的/usr/local/,及/opt目錄結構
現在使用FC6的目錄結構及RPM來管理套件

上一個版本的文章
http://kiwi.csie.chu.edu.tw/blog/srb/srb-with-postgresql-guide/

PostgreSQL


使用標準RPM的安裝方式即可
修改/etc/init.d/postgresql
PGDATA=/opt/pgsql

修改postgresql.conf
unmark tcpip_socket,port

pg_hba.conf
host all all {ip} {submask} password

pg_ctl 指令:
pg_ctl -D {data dir}  start|restart|stop|reload

unixODBC


請用yum install unixODBC,如果不用yum裝的話,可能會有版本問題

修改odbc.ini,這裡和原來的設定是一樣的,只不過要確認
Driver=/usr/local/lib/psqlodbc.so

psqlodbc


將/usr/local/lib/psqlodbc.so hard link至libpsqlodbc.so
否則ldconfig會抓不到

將isql.h isqlext.h iodbc.h複製到/usr/include

切記千萬不要匯入odbc.sql

SRB


./configure --enable-psgmcat --enable-psghome=/usr/ --enable-javagui –-enable-jdkhome=$JAVA_HOME

2007年4月11日 星期三

[2007/04/02 - 2007/04/12] Hemidemi書籤摘要

  • 04/04 10:05, 2007
    讓MediaWiki支援程式碼高亮度標示(Syntax Highlight),使用的是GeShi
    (標籤: wiki programming php 設計 科技)
  • 04/04 12:57, 2007
    相當完整的Web教學,也附上許多範例
    (標籤: programming web)
  • 04/11 16:34, 2007
    這裡有一個測試prototype.js的$$(css selector)功能,與其他的Javascript Framework比較。結果可以發現,一旦要選擇某Element下所有.class或是#id的Element,效能會差很多。終究還是比較推薦使用Prototype.js!
    (標籤: javascript rails web)
  • 04/11 16:35, 2007
    Prototype.js是目前最熱門的Web 2.0 javascript技術核心,這兩天由於在舊版上發現一些bug,因此找到了rc2。
    Bug fixes:
    * Form.serialize不再會serialize沒有value或value=空值的陣列Element。
    New feature:
    * $$終於可以使用css3了,不過有些pseudo-class還不能用。
    * String多了很多功能,例如"echo ".times(3)
    * Form.request讓你可以直接進行Ajax呼叫,其實他等於幫你寫了onsubmit="new Ajax.Request ...",然後你呼叫Form.submit()。
    * Enumerable 本來有個bug是因為IE無法接受第兩層try catch,所以他將$continue功能移掉了。

    (標籤: javascript rails web)

2007年4月2日 星期一

[2007/03/26 - 2007/04/02] Hemidemi書籤摘要


2007年3月26日 星期一

主機管理

前一陣子事情很多,加上實驗室狀況混亂,網路不通(昨天早上又一次)
目前我們的設備是


所執行的計畫是
Unigrid
MediGrid

有這些服務要跑
DB
Web
Nodes

[2007/03/26] Hemidemi書籤摘要


2007年2月15日 星期四

Xen - Linux上的虛擬技術

近來開始研究xen,比較起vmware或M$ virtual pc,xen是一個相當快速的虛擬環境。
加上Intel-VT/AMD-V技術,使得linux上也可以使用windows作為guest os。

Fedora 6有附xen以及視窗管理介面virt-manager。稍微利用yum更新了一下之後,建立vm。
目前可以確定,執行過windows xp sp2, redhat enterprise/cent os 4,fedora5/6, gentoo linux
不過在使用nfs下的iso當作OS的安裝光碟時有點小問題,此外重新啟動後也要注意 VM光碟機的問題。
不過詳細還是參考http://www.yhtsai.idv.tw/blogs/index.php?blog=4&title=running_windowsxp_as_a_xen_guest_on_fedo_6&more=1&c=1&tb=1&pb=1

效能比起其他虛擬技術來說,是相當地快。不過使用方便性還是vmware比較好。
目前我期待可以弄到xen enterprise,再來做個測試。

2007年1月16日 星期二

換個角度看事情

JavaScript是否等於Java ?
Ruby是Script Language或Dynamic Language還是商業性語言XD?
如果說換個角度看事情,或許又會看見不一定的東西了

從這幾篇
http://www.one18.com/?p=109

http://lightyror.thegiive.net/2007/01/blog-post_16.html

都可以看出一個有趣的現象,就像現在政治的局勢一樣,總是要有一種既定的立場才行。
我想人都是一樣,當然自己常用或喜歡的語言,被說成很爛,沒用,可能誰都會心裡不舒服。而我也坦白遇到太多次這種狀況,而稍顯得有點不敢表達自己的意見。

2007年1月8日 星期一

重新探討Cakephp,Ruby on Rails與MVC


關於Model的問題


去年,我還在用cakephp的時候,我注意到這篇文章

http://mk.netgenes.org/archives/230/

當然那個時候,我相當贊同這篇文章的論點,也有回應他。
接著我就開始進行大概半年的專案,當然最後也有成果,我是使用cakephp,所以那個時候也有寫了這一篇。

進階php程式設計-介紹MVC與Cakephp

其中一張圖,我也有提到MVC的寫法,很明顯地我那時候還是認為Model是形同於表格的快取。之所以會這樣認為,也是跟上面的文章一樣。不能否認現在大多數做Web的都還是偏向做做網站,簡單的資料CRUD,將資料庫的資料撈進Controller,簡單地處理就可以達成需求,根本不需要啥複雜的商業邏輯。

那個時候確實知道這跟傳統的MVC觀念根本不一樣,但硬要去說不一樣不如說是一種適應在Web Framework上的變形。畢竟現在cakephp還是用這樣的方式。

我的專案雖然看起來是簡單的管理系統,但確有複雜的程序控制,資料檢查產生的商業邏輯。隨著專案進行,我逐漸發現這樣是不能解決問題的。Cakephp的Model傳回來的是Array,並不是物件,這樣讓我完全無法將商業邏輯寫在Model,在這種情況之下,Model就真的只剩下table快取的功能。

2007年1月5日 星期五

2007年1月4日 星期四

本站升級至Wordpress 2.0.5

一開始是發現管理介面dashboard的畫面變成空白(也就是php發生錯誤) 想說應該是要升級了...
備份資料庫後,想說乾脆從原來rpm裝的apache+mod_php使用xampp,也是因為懶~
(別瞪我~如果服務需要效能我當然會重新build)
後來啟動後,想說奇怪怎麼連不上DB...rpm -qa 一看...

怎麼會是跑MySQL 3.23???

Rails的ActiveSupport


Rails的ActiveRecord大家已經很熟悉,可是實際上Rails Team他們卻慢慢地在提供新的功能讓大家感受不一樣的寫程式習慣。我相信有些功能是很實用,但是避免大家會依賴syntax suger,還是要稍微解釋一下裡面幹了些什麼,如此你可以自行判斷怎樣才不會做太多重複的事。


雖然這個函示庫是給Rails使用的,不過我會建議大家多利用在任何型態的專案裡,如此就很快地可以"write like a ruby programmer"。


請參考 http://lightyror.blogspot.com/2006/09/blog-post.html

更多的資料請參考 http://api.rubyonrails.org/


舉個例:

[code]
irb(main):001:0> require 'active_support'
=> true
irb(main):002:0> 10.years.ago
=> Sun Jan 05 03:57:34 +0800 1997
irb(main):003:0> 6.hours.ago
=> Fri Jan 05 09:57:44 +0800 2007
irb(main):004:0> 6.hours.since
=> Fri Jan 05 21:57:51 +0800 2007
[/code]

當然不只十年之前,之後也可以
以下列出大略的method以及他們的作法

時間


所有的數字(包括小數)都繼承自class Numeric,而前面的範例就是Fixnum的method

  1. 計算秒數:呼叫這些methods會傳回一個整數,表示秒數


    • second(s)

    • minute(s)

    • hour(s)

    • day(s)

    • week(s)

    • year(s)

    • [ruby]
      60.seconds==1.minute
      [/ruby]


  2. 從::Numeric計算日期:從任何繼承自::Numeric的物件可以計算出日期,這些methods傳入::Time的物件便可以從該時間計算


    • until,ago:向前計算

    • since,from_now:向後計算


  3. 從::Time物件計算時間:以下method傳入任何繼承自::Numeric的數值。其實會呼叫到上面的method。


    • until,ago:向前計算



    • since,from_now:向後計算


  4. ::Time更改數值:


    • change


2007年1月1日 星期一

工程師訓練中心

我在大學部的時候,其實面對過很多次的理想衝擊。
這個問題,一直到我在國高的時候見識到了一些東西,我開始認為有些事情太過於妄想。有句話說「戰爭的頂上還有更大全力的人在操縱著」我相當可以感受。

直到現在的公司,我發現我承襲了許多人的語氣,作法,對談態度。這確實幫助我在工作上容易溝通,可是也讓我知道我們學校的學生欠了啥。現在的七年級生多半是嘴砲,實際上很多狀況不會處理,不會主動學習,對於自己應該要做的事情漠不關心...。這些在我這我都不允許。