發表文章

新店和美山步道

圖片
和美山(大笨山)山頂,俯瞰山下的碧潭 最近台北的天氣都不太好,假日時終於轉晴,於是搭捷運去新店碧潭晃晃。蠻久沒去碧潭,跟記憶中已經有點不同。 當天天氣好,遊客很多,碧潭吊橋上滿滿的人。越到吊橋中間,可以明顯感受到碧潭吊橋左右搖晃。搖晃的非常誇張,走在上面,也跟者搖晃起來,彷彿喝醉般。想拍張清晰的照片,都有點困難… 碧潭 過了吊橋,正在想該去哪兒時,忽然發現在橋頭攤販間,有一個『門』,上面寫者和美山步道。再看仔細,居然真的是登山步道,旁邊還有地圖。看了一下地圖,覺得山頂應該是可以俯瞰碧潭全景,於是就進了門… 走過不少登山步道,第一次看過這樣的登山口。有個『門』口,進去後,兩邊牆上的展示,彷彿是廣告看板…下山時,天色已暗,兩邊打上燈光,乍看之下,真的會誤以為是廣告看板…因為回到登山口時天色已暗,沒仔細看上面的照片、說明

觀音山上看建國百年國慶空中分列式

圖片
空軍雷虎小組AT-3教練機、採大雁隊形噴藍、白、紅彩煙通過總統府上空 離上一次的國慶閱兵已經是四年前(民國九十六年、2007)的事情了。那時,事前沒有注意這些消息。新聞媒體一直圍繞在神龍小組於總統府前跳傘,讓人以為當時只有神龍小組表演。 今年的百年國慶前,看到有人拍攝空中分列式國慶預演。才知道,這次包含直昇機、慢速機及戰機等3種機隊,共12種型機種、70架飛機。並且,直昇機會在進入台北市觀禮台前會在北投、關渡、三重、蘆洲一帶盤旋。最後經由圓山飯店附近進入台北市區。 這樣就吸引我了。畢竟,這麼多架飛機、及多種不同機型會在台北上空盤旋,是非常難得的經驗。 每次看國防展,總是只能抬頭仰望天上的飛機呼嘯而過。地上的我們,只能見到機腹。這次想找座山,利用較高的地勢,欣賞到另一種角度。原本想去圓山飯店靠近航道附近的劍潭山,不過…最後是選擇海拔600多公尺,位於淡水河旁的觀音山…

php連Oracle中文亂碼問題

最近使用php操作Oracle,遇到中文亂碼問題。最後在大家集思廣益下,把問題解決了,做個紀錄… 原以為使用php去連Oracle,應該和其他資料庫一樣,在連線時,設定正確的字元集(character_set)。再將轉碼過的中文寫入資料庫即可。沒想到,Oracle有點不同… php如何設定Oracle?在官方資料 - Configuring PHP with OCI8 ,於Setting the Oracle Environment這章節中提到需要設定環境變數(Common Oracle Environment Variables),如下… ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH NLS_LANG ORA_SDTZ TNS_ADMIN 經過測試後,我們遇到中文亂碼的問題,只需要設定ORACLE_HOME、NLS_LAN即可。 當然,下述參數的設定值,需視機器環境作調整。

PHP CodeSniffer整合Subversion

設定好 PHP CodeSniffer 後,接者就要和版本控制整合。當開發團隊的成員在commit程式碼時,即時讓 PHP Sniffer 做檢查,確定程式有依照規範開發。 以整合 Subversion 為例。官方網站 Using the Subversion pre-commit Hook 這篇文章就寫得非常清楚,照者文件作即可。基本上,就是配合 Subversion 的pre-commit hook。在commit前呼叫 PHP CodeSniffer 做檢查,如果有不符合規範,就不讓此次的commit完成。 如果不熟悉 Subversion 的pre-commit hook如何使用,請參閱SVN官方的說明 Repository Hooks pre-commit 。 在實務上,只有一個設定需要稍微注意。適當的調整參數 --report-width ,以配合自己所用的開發工具(IDE),取得最佳的視覺呈現。以我測試的例子,我採用的標準為 CodeIgniter-for-PHP_CodeSniffer 。所以我在 Subversion 的 pre-commit hook 中,做下面的設定…

PHP CodeSniffer進階使用-新增CodeIgniter格式

安裝好 PHP_CodeSniffer ,內建有五種coding standards。如果您使用其中一種,就可以馬上使用了。 MySource PEAR PHPCS Squiz Zend 如果不是上述五種,需要增加其他的coding standards,該怎麼辦?喜歡自己動手做,可以參考官方文件 - Coding Standard Tutorial 自己做一套。也可以找別人寫好的…以 CodeIgniter - General Style and Syntax 為例,可以下載 CodeIgniter-for-PHP_CodeSniffer 安裝使用。 安裝方式很簡單,將 CodeIgniter-for-PHP_CodeSniffer 解壓縮到 PHP_CodeSniffer 存放coding standards的目錄下即可。 完成上述步驟,基本上 PHP_CodeSniffer 就可以使用 CodeIgniter的風格 作為檢查的依據。 不幸的, CodeIgniter-for-PHP_CodeSniffer 直到目前(2011/09)的版本是以CodeIgniter 1.7.x 的風格為依據,所以會有一些誤判…

PHP_CodeSniffer基本介紹

在維護程式時,最糟的狀況,莫過於該程式中毫無一行註解。最後,維護者可能必須要一行行追程式,已瞭解該程式的處理流程。或者,程式碼毫無編排、命名方式(全都是 i,x,y 等無意義字母)。這…維護時就是一件累人的工作… 也許,會有人要求必須在程式內寫註解(如phpDoc)。不過,又該如何確保程式內是否真的寫?或者…程式碼的撰寫風格是否有符合團體所要求的? 於是,需要一些工具來協助。以PHP為例,可以使用 PHP_CodeSniffer 首先,看一下 PHP_CodeSniffer 官方網站上的定義 PHP_CodeSniffer is a PHP5 script that tokenises and "sniffs" PHP, JavaScript and CSS files to detect violations of a defined coding standard. It is an essential development tool that ensures your code remains clean and consistent. It can also help prevent some common semantic errors made by developers. 有注意到嗎? PHP_CodeSniffer 不支援PHP4 如何安裝PHP_CodeSniffer PHP_CodeSniffer 的安裝非常簡單,一行指令就結束… pear install PHP_CodeSniffer  

將getID3包成CodeIgniter的library

如何將 getID3 包成 CodeIgniter 的library,讓 CodeIgniter 呼叫、使用呢? getID3 的程式已經是一個class,因此,步驟就很簡單了… 將 getID3 的主程式,複製到 application/libraries (有需要的話,請自建目錄) 如官方文件 Creating Libraries 中所述的規則,將getid3.php的檔名改為Getid3.php 找出下面程式碼做修改。以我測試用的 getID3 版本 - stable version: 1.9.0 (1.9.1-20110810)為例。下面程式位於第69行附近…