高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

IE6 之 Select 的 Z-Index 設定

在IE6的環境下,如果網頁上有div區塊和下拉選單重疊在一起的時候,即使再怎麼調整下拉選單的z-index,下拉選單還是會把div區塊蓋住 (在Firefox是正常的),google了一下網路上的資料,大多是用iframe來解這個問題,但弄iframe寫起來也是花時間而且不順手。有善心人士把這段程式碼寫成jQuery的plugin:bgiframe,只要簡單的呼叫plugin,就可以在div底下插入一段可以把下拉選單遮住的iframe,div區塊就可以正常顯示了。

程式碼很簡單,直接看線上demo就知道了;有需要的也可以整包下載回去 :)

Python之飛龍在天

最近拿Python在做練習,這真是個有趣的語言,我發現Python對程式碼一定要縮排,不然會出錯的這個特性,對於我這種有程式碼潔癖的人真的 是利多。在網路上看到一個個有趣的漫畫,主要是在說python的簡單&易學易用,想要飛起來,只要import別人寫好的反重力模組就行了。

(如果我想變聰明,可以import iq180嗎?)

image

來源:http://xkcd.com/353/

Subversion之Post-Commit

最近用到Subversion來做版本控制,但常常commit完之後還得再把資料複製一份到www資料夾,實在不方便。查了一下資料發現,原來svn有一些hook可以用,例如可以在commit之前或之後做某些事情,這樣就可以讓開發人員commit之後,直接在web上就看到成果。

  • SVN Server環境是FreeBSD 6.3
  • repository放的位置:/home/svn/repository
  • 專案名稱:test
  • web資料夾:/www/test

在每個repository底下都有個hooks資料夾,裡面有好幾個寫好的template,光看名字大概就知道他們是要做什麼事的。這邊我只拿post-commit來用(其它的可參考Subversion Book)。

> cp post-commit.tmpl post-commit
> vi post-commit

我在裡面加了幾行update的語法:

#!/bin/sh
export LANG=zh_TW.UTF-8
/usr/local/bin/svn update –username myid –password mypw /www/test

加入第一行是因為有些非英文檔名的檔案在update的時候可能會出錯,其中myid跟mypw請代入自己的svn帳號密碼。另外,記得chmod +x,讓它變成可執行

最後,在web資料夾checkout一下test專案,大致上應該就可以運轉了。

Smarty之星鍋娛樂網

image

你想當大明星嗎? 嗯,我想 :)

這案子在當初頁面設計尚未底定,且工作時間有限的情況下,我把這案子用Smarty,搭配MVC(Model-View-Controller)的架構來製作;另外再搭配上Subversion的版本控制功能,讓設計人員可以commit他們的template,工程師可以commit他們的程式碼,讓彼此修改頁面而不小心動到程式碼的影響降到最小,在萬一真的不小心改壞了,還可以回朔之前的版本,真的很方便。

這案子另外還有需要跟金流廠商串接的部份(線上刷卡、便利商店代收及網路ATM功能),忍不住想抱怨一下,有的金流廠商的API很方便(例如綠界),串接起來很輕鬆;但有的廠商的API,看了一下程式碼實在很老舊,明明就有switch的語法可以用,但還用一堆的if..else..來寫,看了實在火大,又還規定一定要用Big5編碼。(我這人有程式碼潔癖,所以看不下去最後就自己動手改寫了…)

網址:http://www.starswok.com