2003年2月25日

詭異的城市

我是來自中部到台北尋夢的小鬼,在台北念了四年書,到高雄當了兩年兵,其實離家在外已經不是什麼大不了的事情,只是接觸了這三個城市以後,真是感觸良多…

高雄市位於台灣南部,天氣相當的炎熱,所以在中午的時間,你幾乎很難看到有人在逛街,除非那個人已經熱昏了;大家都躲在房間裡吹冷氣、看電視,不然就是在公園裡活動、乘涼,大概是因為靠海吧,高雄的人都很阿沙力,也很有人情味,例如有一次要回營區,計程車司機堅持要載我們,我們一直婉拒(軍人很窮的),他甚至激動的想拿棍子打我們,多麼熱情啊!而且高雄人很敬老尊賢,在公車上看到老年人真的會讓座,在台北坐了那麼久的公車,還真的都沒看過有人讓座。大概是或然率的問題吧,但是高雄人的熱情是不可否認的。

台中是一個很棒的城市,他有山、有海有平原,不管你想怎麼玩都可以,氣候宜人,長這麼大了也只記得韋恩颱風對台中造成重大傷害以外,幾乎不知道什麼叫做颱風,有人說台中色情氾濫,也有人說台中治安不好,其實見仁見智吧,如果你不要在街上一副性飢渴的樣子的話,人家幹麻找你做生意,還有人說紅茶辣妹、鋼管女郎、檳榔西施這種不良示範都是從中部傳上來的,但是大家要想想看喔,加入WTO之後,面臨的是跟外國的競爭,如果連研發都沒有的話,那拿什麼跟人家競爭,雖然他研發出來的東西不是很好…但是企業要永續經營、要賺錢就不能沒有研發啊!反之處處學別人的腳步走(像電視節目)只會越作越爛,就會像蛋塔熱潮一樣,絢爛之後化為平靜,不就比研發的人更糟了。(以上都是歪理…請不要來信罵我)

台北是一個神奇的都市,幾乎找夢想的人都來台北,於是乎人越來越多,吃個飯要排隊,看各電影要排隊…幾乎所有的時間都在排隊,就好像在迪士尼樂園玩的時候,排隊的時間佔據了你遊園的絕大部分,辛辛苦苦排隊買到的東西價格還比別人貴,排骨飯六十五元起跳算便宜的,真令人想念在台中五十元的排骨飯還可以無限次加飯…連看各電影都要比人家貴個三四十元,一百七十元的院線片到處都是,但是台北總是要兩百元起跳,如此高的消費真是令人瞠目結舌,也讓我了解到原來在家鄉屬於奢侈品的M叔叔,其實在台北算是平價了…

台北市最近換了幾個市長以後,變了很多;從之前的騎車強制戴安全帽就是台北發起的,還有一大堆其奇怪怪的規定,還有人說到台北就不會開車了,因為規定不太一樣,在台北到處是警察在偷拍…天橋上、巷子縫裡都可以看到人民的保母像個偵探一樣幫我們拍生活照,還免費寄送到我們的家裡,這麼貼心的服務是別的地方很難看到的,之前老是有人罵陳市長霸道、鴨罷,我覺得那是魄力,如果做事沒有魄力,畏畏縮縮的怎麼作大事情,馬市長說垃圾隨袋徵收就是魄力,宣布大家要分區輪流供水就是魄力,連自己忘記補堤防的破洞也要說是政府不給錢,這更是魄力;垃圾隨袋徵收以後,台北市興起了一項新的服務,就是垃圾宅配,住在外縣市的人一早起來可以發現你家前面多了一袋或一堆垃圾,還是來自於台北市的,這項貼心的服務堅持28度C全程保溫,保證第二天還不會發臭,放完長假如果到台北市的地下道去看看的話,會發現都是垃圾,垃圾筒被埋在垃圾堆裡了,因為大家都不想花錢買垃圾袋,既然外面有垃圾筒,那就丟吧…昨天有人公佈台灣什麼環境評等的,名次比落後國家還慘,一點也不需要訝異…

其實說那麼多,我想說的是紅綠燈的事…位於中山北路及市民大道那個可恨的紅綠燈…說來這個紅綠燈的頻率是不一樣的,當車多的時候(上下班時間)會有七十多秒的綠燈,而當離峰時間大概會有四十多秒,今天我正打算越過這條美麗的中山北路,對面的行人號誌顯示還有六十多秒,那時我距離中山北路大約還有二十秒的路程,想說慢慢走都來的及…一直走到斑馬線,哈!還有四十一秒咧,慢慢晃過去…當我跨出第一步時,那個走路的小綠人怎麼突然變顏色了,還恭恭敬敬的把手貼在褲管上…竟然變紅燈了………XD!不是還有四十秒嘛!怎麼突然變紅燈!害我差點被車撞,因為這麼的不爽,所以我嘮嘮叨叨寫了這麼多…而現在氣也差不多消了…不過這真的是太誇張了!

2003年2月13日

網路大夢和接線生

網路電話是一個很新的名詞,在這個網路發達的世界裡...網路電話最早是起源於電子郵件的夾帶檔案功能,後來被發揚光大,便有了類似Net meeting這種直接對傳聲音檔的軟體,甚至利用I-Phone這樣的軟體,可以利用網路將語音傳到對方的電話裡,而你只需要付一點點的轉接費給電信供應商....對於長途電話使用者,有相當不錯的吸引力,這是一個很大的餅,對於一家全省都有分部的公司來說…也是我一直等不到的東西(PS.起源哪各地方多半是作者自己掰的,你看Windows NT的書,哪一本不是說NT源自於新技術New Technology這個字,天下文章一大抄麻,只是那個研發的工程師說了,那是N10念做N Ten,是一種機器的名字,哪來的新技術一說!所以啦,這裡我最大,我怎麼說都對....)

故事是這樣開始的,有一個懷有遠大抱負的年輕人,在心中勾勒出一個相當完美的架構圖,他要利用這個網路電話的功能來稱霸這個領域,這裡就稱他為餅店的老闆吧,他徒手建立這家公司的網路架構,後來他發覺一個人沒有辦法將這個理想實現,於是他發出徵才訊息,他找到另一個年輕人,另一個也是胸懷大志的年輕人,就這樣,兩個人合作愉快的將一些基本的架構完整的建立了起來,甚至規劃到未來的遠景,利用網路電話稱霸的遠景,而我是第三位慕名而來的小夥子,在聞到餅的香味之後….

利用短短的時間裡,我們幾乎將所有的基本架構都設置好了,使用者的抱怨數量慢慢的減少,似乎我們已經沒有後顧之憂可以繼續前進了,就在這個時候,我們發現餅店的老闆那厚厚卷宗下埋著一份建議書----關於網路電話的,原來,這只是他的夢想,一個沒有和上級溝通過,甚至沒有向上級解釋其優劣的一個幻想,或許是太一廂情願了,餅店老闆的提案沒有被上級青睞,至此之後,他每天不務正業,天天打電話和他的朋友訴苦,說他的不得志,看在我們的眼裡,那是一個悲哀,更是一個笑話,我們就這麼眼睜睜看著一個人沉淪、墮落;自此之後,他將所有的問題都推向上級的判斷能力上,甚至要帶我們到別的地方吃餅…面對這樣的轉變,真有如是晴天霹靂,更讓人覺得世事多變。

當然每天向朋友抱怨,絕對不會是用自己的電話囉,於是既然不能幫公司省錢,那就幫公司花錢吧,連續五六個月名列電話帳單第一名應該是他後來藉此扳回工作不順利的發洩方法,我不知道一個月五六千塊的電話費該怎麼講,也許他有太多的苦水,上級屢次向他反應,他都說是談”公事”,是不是公事大家都心照不宣吧,好好一個網路電話大夢,現在的他變成一個電話接線生,天天靠電話筒供給他賴以生存的氧氣,是悲哀吧,我想…

以上純屬巧合,如有虛構,實為雷同。

2003年1月11日

悼

北風發發孟冬日,
樂音裊裊信香煙。
奔波塵世人間道,
接引西方極樂天。
于外公家祭會場....

2003年1月9日

先生!吃個餅吧

記得不久前,接到一通朋友打來的電話,對方興沖沖的說著,快來台北吧,我這邊有個不錯的工作,需要你一起來打拼!電話的這頭,我正坐在餐桌前無意識的吃著我的晚餐,似乎再好吃的餅也無法引起我的胃口,單向的對談裡,我看不到前景.....

一個星期了,連續一個星期的電話騷擾,我開始慢慢動搖了,或許餐桌的菜已經引不起我的胃口,也許我該來個飯後甜點,吃個餅吧;這似乎是各不錯的提議,於是我辭掉了工作,放棄了半年補習的課業,就這麼上台北找餅了,懷著忐忑的心情,看看那似乎熟悉又陌生的台北城,我大叫一聲:我來了!

一個月過去了,不知道是廚師忘記了,還是怎麼來著,那個我日夜追求的餅竟然一直沒有出現在我的面前,然而我的身體像是被啃蝕一般,我發現這個點心離我越來越遠,甚至我聞不到他的味道,是我鼻塞嗎?我在內心裡不斷的問我自己,畫餅充飢終究是不合理的要求啊!心煩意亂之際,我再也不敢奢求餅的味道,熱稀飯雖不能解嚵,但也不至餓死.....就這樣拖著...拖著..

前鎮子,有個小販經過門口,看到兩個在喝熱稀飯的我們,隨口問了,嘿,小夥子,聽說那邊有個不錯的麵包店,裡面的餅不錯吃喔!又大又圓,那邊的店老闆準備找我去當店長,到時候我可以帶你們去吃喔,朋友放下他手中的碗,說:"我可以去"

望著碗裡剩下一半的稀飯,我開始猶豫了....

2002年10月21日

Apache與Tomcat整合方法

  • Install mod_JK
    將mod_jk.so(http://jakarta.apache.org/tomcat/)複製到/www/modules/mod_jk.so
    如果找不到已經編譯好的檔案,請下載原始碼來編譯,方法如下:
    將下載的檔案jakarta-tomcat-connectors-jk-1.2-src-current.tar.gz放到一各暫存資料夾(/usr/local/src/)解壓縮
    cd /usr/local/src/jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native
    ./buildconf.sh
    ./configure --with-apxs=/www/bin/apxs
    make ; make install
    再把產生的mod_jk.so拷貝到/www/modules/
    請注意mod_jk.so的屬性是否為可執行以及擁有人屬性應該跟執行apache的人一樣
  • 在/www/conf/下建立一個workers.properties的檔案,內容如下,基本上不需要修改內容:
    # In Unix, we use forward slashes:
    ps=/
    # list the workers by name
    worker.list=tomcat
    worker.tomcat.port=8009
    worker.tomcat.host=localhost
    worker.tomcat.type=ajp13
  • 變更檔案擁有者屬性,改成可執行apache的人chown apache.users workers.properties
  • 修改/www/conf/httpd.conf
  • 在LoadModule那一大串宣告裡加上一段
    LoadModule jk_module modules/mod_jk.so
    JkWorkersFile /www/conf/workers.properties
    JkLogFile /www/logs/mod_jk.log
    JkLogLevel info
  • 在"DocumentRoot"附近加上
    JkMount /servlets/* tomcat
    JkMount /*/servlets/* tomcat
    JkMount /*.jsq tomcat
    JkMount /*.jsp tomcat
    主要是在宣告要mount進去的目錄,例如JkMount /*.jsp表示會將Tomcat的ROOT目錄底下的所有.jsp檔案都看成跟apache的文件目錄下一樣,類似IIS的虛擬路徑。
  • 修改/www/tomcat/conf/server.xml
    尋找

    把註解取消掉
  • 啟動tomcat和apache
    /www/tomcat/bin/startup.sh
    Using CATALINA_BASE: /www/tomcat
    Using CATALINA_HOME: /www/tomcat
    Using CATALINA_TMPDIR: /www/tomcat/temp
    Using JAVA_HOME: /usr/local/jdk
    /www/bin/apachectl startssl
    httpd (pid 729) already running

在Apache上安裝SSL支援

前言:

要讓 Apache可以支援SSL有兩個做法,分別是是安裝Apache-SSL及安裝mod_ssl模組,其中Apache-SSL專案使用的是舊版的 apache,目前只有進行到1.3.27這個版本,2.0以上的Apache目前(2004/7/1)還無法使用,檔案可以到www.apache-ssl.org及www.apache.org 下載。而mod_ssl則必須到http://www.modssl.org下載mod_ssl模組,並重新編譯apache讓他可以支援mod_ssl 模組。目前我在使用apache-ssl並讓他和tomcat整合時,發現無法載入模組,也許是我編譯apache時沒有加上參數,這個會再有空時在測 試。

安裝:

不管是哪一種解決方案,SSL加解密的部分都需要openssl軟體來協助,www.openssl.org,在RedHat的套件裡,預設應該都是有安裝的。在安裝前建議先執行以下指令

ln -s /usr/kerberos/include/com_err.h /usr/include/

ln -s /usr/kerberos/include/profile.h /usr/include/

ln -s /usr/kerberos/include/krb5.h /usr/include/

不然當我們編譯ssl的時候有可能會出現問題

一、 Apache-SSL解決方案:
  • 先 到http://www.apache-ssl.org下載最新的apache-ssl軟體,下載後由最新版本的序號為準,再到 www.apache.org找相對應的版本,例如在www.apache-ssl.org找到apache_1.3.27+ ssl_1.48.tar.gz,表示這個版本支援的是apache 1.3.27,所以必須要到http://www.apache.org再下載apache_1.3.27-x86_64-whatever- linux22.tar.gz像這樣的檔案
  • 到/usr/local/src(暫存原始檔用)資料夾,將apache_1.3.27- x86.tar.gz解壓縮(tar zxvf apache_1.3.27-x86_64-whatever-linux22.tar.gz ),解完之後進入apache的目錄裡,再將apache_1.3.27+ssl_1.48.tar.gz的檔案解到到相同的目錄裡。
  • 執行”./FixPatch openssl的所在目錄”,這個程式會將apache更新成可以支援SSL的版本,如果一切正常的話,會顯示Patch完成。
    一 般常遇到的應該是找不到openssl安裝目錄的錯誤訊息為多,根據我測試的結果當我指定我的openssl位址(我安裝在 /usr/bin/openssl)不管我指定的是./FixPatch /usr/bin/openssl或./FixPatch /usr/bin/都會說找不到該檔案,但是如果用./FixPatch /usr/就可以正常完成,這點相當詭異。
  • 接下來執行./configure 來產生安裝所需要的檔案,我使用的是最陽春的./configure --prefix="/wwwssl/",這邊的—prefix為指定安裝目錄,所以事實上我沒有將其他的模組一起編譯進去。
  • 產生正確的Makefile之後,就可以開始編譯Apache-SSL,指令為
    make ; make install
  • 安 裝完成之後,apache就會被安裝在/wwwssl的目錄底下,接下來產生SSL的鑰匙對及證書請參考第三節,產生後的xxx.key及xxx.crt 請放在同一個目錄裡方便控管,並將屬性改成chmod 400,在這個例子中,我放在/wwwssl/conf/目錄底下。
  • 修改 /wwwssl/conf/httpsd.conf檔案,有一段設定為#Listen 3000,如果這台機器還要提供一般的http服務的話,請將#拿掉,並將3000改成80,然後再最後一行加上Include ssl.conf,再加上這一段文字:(請依照需求填寫)

    Listen w.x.y.z:443

    DocumentRoot /wwwssl/htdocs

    SSLCertificateFile /wwwssl/conf/xxx.crt

    SSLCertificateKeyFile /wwwssl/conf/xxx.key

    SSLVerifyClient 0

    SSLVerifyDepth 10

    SSLBanCipher NULL-MD5:NULL-SHA

    SSLEnable
  • 存檔離開後,請在/wwwssl/conf/底下建立一個ssl.conf檔案,這個檔案主要在指定cache的位址:

    SSLDisable

    SSLNoCAList

    SSLRandomFile file /var/tmp 1024

    SSLCacheServerPath /wwwssl/bin/gcache

    SSLCacheServerPort logs/gcache_port

    SSLCacheServerRunDir /tmp

    SSLSessionCacheTimeout 15
  • 最後再幫httpsd.conf建立一個軟鏈結到httpd.conf:
    ln -s httpsd.conf httpd.conf
  • 啟動apache,/wwwssl/bin/httpsdctl start。
  • 打開瀏覽器觀看成果吧
    http://w.x.y.z/index.html.zh
    https://w.x.y.z/index.html.zh
二、 Mod_SSL解決方案:
  • 安裝Mod_SSL,方法省略(可直接下載RPM檔來安裝)
  • 將最新版Apache解壓縮,並進入該目錄,測試的版本是httpd-2.0.49.tar.gz
  • 產生Apache設定檔,必須將mod_ssl支援編譯進去
    ./configure --prefix="/www" --enable-mods-shared=most --enable-so --enable-ssl=static --with-ssl=/usr/include/openssl/
    make; make install進行安裝
  • 安裝完成之後在/www/conf/會產生一個ssl.conf檔,尋找
    SSLCertificateFile /www/conf/adbanner.crt 和
    SSLCertificateKeyFile /www/conf/adbanner.key 將正確的key和證書位址帶入
  • 啟動apache /www/bin/apache startssl
  • 打開瀏覽器觀看成果吧
    http://w.x.y.z/index.html.zh
    https://w.x.y.z/index.html.zh
三、 產生憑證及鑰匙對:
  • openssl req -new > xxx.csr,接下來會問一些問題,請按照自己的環境回答,其中Common Name:這項請回答你的網址,以後才不會出現困擾。也請您牢記您的密碼。
  • openssl rsa -in privkey.pem -out xxx.key 利用第一個步驟產生的檔案來建立一把私鑰。(這裡使用RSA編碼),這個步驟必須輸入第一個步驟設定的密碼。
  • openssl x509 -in xxx.csr -out xxx.crt -req -signkey xxx.key -days 365 建立一個自行簽署期限365天的CA證書(不經過第三方認證)
  • 如果要申請第三方認證的憑證,只需要將xxx.csr傳給該公司,他們就會回覆相關的xxx.crt檔
  • 關於第一個和第二個指令,也有人是這樣做的
    openssl genrsa 1024 > /etc/httpd/conf/ssl.key/server.key(先建立私鑰)
    openssl req -new -key /etc/httpd/conf/ssl.key/server.key -out /etc/httpd/conf/ssl.csr/server.csr(再利用私鑰建立要求文件)
結語:

以Apache -SSL和mod_ssl兩種解決方案來說,apache-ssl的檔案較小,編譯起來比較快,且在啟動apache的時候不需要另外輸入憑證的密碼,而 mod_ssl的設定就比較簡單明瞭,但檔案大,編譯起來會花費不少時間,且mod_ssl這個方案可以正常的支援tomcat整合,所以推薦使用 mod_ssl方案。

2002年8月2日

自製密碼產生器

常常要幫使用者開帳號及設定密碼,如果老是用預設的密碼又容易被心人士破解,所以就寫出這個東西,可以產生一到十個字元的密碼,有興趣的人也可以自己參考 一下作修改,改成適合自己的版本,為了怕使用者將英文的O、o、I、l和數字0、1搞混,所以這個JavaScript裡面將這個字元都屏除在外了,歡迎 鏈結或下載使用:網址底佳

精選文章

利用Selenium IDE進行UI測試

安裝與執行 Selenium IDE是Firefox的一個plugin,用來做UI的自動測試:下載網址為http://docs.seleniumhq.org/download/ 安裝後,點一下firefox 的工具 -> Selenium IDE ,就會...