高見龍

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

Zend Framework 1.6 Release

之前用了一陣子的RC版,今天終於正式Release了,這個1.6版的ZF比1.5版多了不少有趣的東西啊(不過選在跟新聞炒很大的google chrome同一天出來,鋒頭多少被蓋去了一點點)

  • Dojo Integration
  • SOAP
  • Preview of Tooling Project in Laboratory (see /laboratory folder)
  • Unit Testing Harness for Controllers
  • Lucene 2.3 Index File Format Support
  • Zend_Session save handler for Database Tables
  • Paginator Component
  • Text/Figlet Support
  • ReCaptcha Service
  • Captcha Form Element
  • Zend_Config_Xml Attribute Support
  • Zend_File_Transfer Component
  • File Upload Form Element
  • Zend_Wildfire Component with FireBug Log Writer
  • Media View Helpers (Flash, Quicktime, Object, and Page)
  • Support in Zend_Translate for INI File Format

對我工作上比較大的影響是跟Dojo的整合(我還是比較喜歡jQuery),這裡有篇文章有寫到1.6版新增的一些功能介紹。

另外,分頁、表單認證碼及檔案上傳功能…這些在做網站時常用的功能,之前都是自己拼裝出來用的,結果在1.6也都加進來了 :) 。我試著直接把1.5版昇級為1.6版,目前手邊的案子看起來都還滿正常的。

下載連結:http://framework.zend.com/download/current/

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