尋覓理想的 PHP 編輯器

你使用甚麼軟件來編輯 PHP 源碼、除錯、和管理項目?你對它滿意嗎?J Armando Jeronymo 最近因為某些原因不再使用本來的編輯器,於是展開了一趟 PHP / HTML / CSS / JavaScript 編輯器尋覓之旅,他在 How I Chose My Programming Editor 中講述了他怎樣訂立評審標準、遴選經過、與及他心目中的「完美」編輯器。 繼續閱讀 »

使用電腦的七個好習慣

Stephen Covey 著有「7 Habits of Highly Effective People」,我也來邯鄲學步,寫一篇「7 Habits of Highly Effective Computer Users」,包括:定時儲存、防毒軟件、網絡安全、密碼管理、檔案組織、備份方案、伸個懶腰。被電腦欺負的人或許可以得到一些反擊的提示。 繼續閱讀 »

軟件開發十大名言

Ranker.com 刊登了十大軟件開發的名言,很多都是由大名鼎鼎的學術界和業界巨頭說的,真是發人深省。

名言一:

"Measuring programming progress by lines of code is like measuring aircraft building progress by weight."

- Bill Gates (Founder of Microsoft)

「用程式的行數來測量編程的進展,相當於用重量來測量飛機建造的進展。」

- 比爾‧蓋茨 (微軟的創辦人)

繼續閱讀 »

地理定位 (Geolocation):比你想像的容易

Jeremy Kendall 在 PHP Architecture 有一篇文章介紹怎樣使你的網站加入地理定位 (geolocation) 的功能,好處是可以根據訪客的身處的位置,提供適合的內容和語言,令他們享受更貼心的服務。加入這項功能比你想像的容易,甚至完全免費,Jeremy 提供了兩個解決方案,任何一個都可以在十分鐘內搞定。

繼續閱讀 »

我怎樣面試系統開發員(第二部份,共兩部分)

這篇文章將分為兩部分,這是第二部分,若果你未看「面試系統開發員(第一部份)」,建議你先閱讀那一篇文章。

怎樣處理困難的問題?

我首先聲明,我不會問任何刁難或者有陷阱的問題,因為面試的目的不是要難為別人,而是要找到優秀的同事。明知對方不懂得或者不擅長的東西,我不會問;需要大量思考的問題,我也不會問。不過我總會問一些有挑戰性的問題,否則怎能區分平庸和優秀的人?以下是一些多數應徵者覺得比較難以處理的問題。 繼續閱讀 »

我怎樣面試系統開發員(第一部份,共兩部分)

我快將離開現任的機構,決定告訴大家我以前是怎樣面試系統開發員,希望對正在尋找相關工作的人有用。

我服務的是一個資訊系統開發的部門,除了最高級和最低級的幾個人外,全部都是幹系統開發的工作,我們還雇用了一批透過仲介公司介紹的同事,名義上他們不是我的機構的員工,但他們也要事先通過面試才能上任。我是誰?我便是那個負責面試的「官員」,而且一幹便幹了三年。

這篇文章將分為兩部分,這是第一部分,第二部分在這兒。 繼續閱讀 »

定期更改密碼的迷信

你的公司、網絡服務商、電郵系統、網上銀行等等,總會提醒你定期更改密碼,例如每三個月或者半年,有的甚至要求用戶最近幾次的密碼不能相同,其實這個方法是基於一些錯誤的假設、對入侵技術的無知 (不要以為系統管理員都是專家,哈),不論從運作上還是技術上來說,這不單指不能保障你的帳號,反而使你的帳號更容易被入侵。

寫在便條紙上的密碼

誰能記住每三個月改變一次的密碼?若果要記住很多密碼,這些密碼又要每幾個月更改一次,每次都要全新的,怎樣創作這麼多高安全性又易記的密碼?很多人索性把密碼寫在紙條上,這張紙條收藏在錢包或者抽屜裡,這些地方有多安全大家都很清楚。 繼續閱讀 »

怎樣管理密碼?

最近有一位朋友需要登入一個已經一整年沒有登入的系統,他完全忘記了密碼,試了幾個自己常用的密碼都無效後,系統便把他的帳號鎖死,最後要管理員替他重設密碼。

銀行、公司、討論區、Facebook、電郵、政府部門等等,我們要記著的密碼何其多?怎樣管理密碼才最方便、最安全?

初級使用者

很 多人會用同一個密碼,應用在大部分的系統,這個密碼一般比較易記,而且長時間不會改動,通常應用在不太重要的系統,例如網上討論區等。這種做法的好處是一 個密碼走天涯,絕對不會忘記。缺點是這個密碼一般很容易破解,因為它很可能是你的生日日期、車牌號碼、流動電話號碼、親人的個人資料、或者以上各項資料的合體,又或者把以上的資料作輕微的改動,熟悉你的人很容易猜到。一旦破解,他們便可以冒充你登入所有系統。 繼續閱讀 »

重新開始

HKPUG 最近兩、三年由於我工作繁重而沒有更新,偶然收到一些朋友的查詢,有些甚至表示有興趣參予,都因為我自己也不知道 HKPUG 究竟何去何從而沒有回覆,希望朋友們見諒。

現在我進入了人生的另一個階段,應該有較多時間可以與網上的朋友分享網頁開和 PHP 開發的心得,所以決定重新起步。不過我認為 HKPUG 以個人網誌的形式運作比較適合,所以把原本的 Drupal 平台改為 WordPress,簡化系統管理的工作,舊的文章將會陸續從舊的系統移植過來。

希望大家繼續支持 HKPUG。

PHP 開發人員比較喜歡以 Windows 為開發平台

以 Linux 為平台的網站伺服器遠比 Windows 的多,相信沒有人有異議,網站的編程語言則以 PHP 最受歡迎,相信爭議性也不大(可能的競爭對手只有 Java),這樣說來難道微軟這個電腦業的巨人在網站開發的環境中便毫無優勢嗎?未必,根據 Zend 最近針對全球使用 Zend Framework 開發人員所做的調查,在 Windows 上編寫 PHP 的人佔了 42%,排名第一,第二位的 Linux 則是 38.5%,MacOS X 則在第三位,19.1%。不過網站的運作平台 Linux 則以 85% 遙遙領先其他操作系統。 繼續閱讀 »

JavaScript 面試測驗卷

你自問對 JavaScript 的認識有多深?Sohail Anwar 撰寫了一份有 25 道題目的 JavaScript 面試測驗卷, 考考你的 JavaScript 水平。這些題目並不困難,其中一道題目問 JavaScript 應該使用甚麼 HTML 標籤包裹著?Script?Body?Head?Title?相信很多編寫網頁程式的人都可以應付自如。這份試卷提供了正確答案,可以作為學習的資源。

Google 教你優化 PHP,PHP 開發團隊指內容不確

Google 的 webmaster Eric Higgins 寫了一篇文章介紹怎樣優化 PHP,文章刊登不久,PHP 開發團隊其中一員 Gwynne Raskind 發文提出異議,指 Eric 所說的與事實不符,有些甚至完全相反,在 PHP 5 上幾乎沒有一項 Eric 的優化技巧能帶來實質的好處。我們摘錄了比較具爭議性的幾點,看看誰是誰非。 繼續閱讀 »

Mozilla 推出 Firefox 3.5

經過四個測試版本和三個 release candidate,Mozilla 終於把 Firefox 3.5 這個第二最流行瀏覽器的最新版本釋出,新版本帶來了私人瀏覽模式、更高的 JavaScript 效能、以及支援新的 HTML 5 標準,例如無需外掛的視頻和音頻播放。用戶可以在 www.getfirefox.com 下載 Firefox 的 Windows、Mac OS、及 Linux 的版本 70 多種語言版本。

Mozilla 的行政總裁 John Lilly 在聲明中說:「在網絡上這麼多事發生,現在是瀏覽器的偉大的時刻,Firefox 3.5 匯集了最創新的網絡技術,並且是最完整和強大的瀏覽器。」領導 Mozilla Firefox 小組的 Mike Beltzner 期望新版本可以使 Firefox 各版本的下載總數超越 10 億。

Firefox 3.5 還包括一項新技術,容許用戶告訴網站它們的位置,讓網站可以提供相關訊息,例如附近的餐館和企業,這項功能使用 Google Location Services 服務,它使用一個 Wifi 接入點 (access point) 和已知 IP 地址的數據庫。

JavaScript 的效能由於得到新的 TraceMonkey 引擎之助,速度提升了兩倍以上,但是 PCMag.com 的測試顯示它仍然落後於 Chrome。新的視頻和音頻播放利用 Ogg Vorbis 和 Ogg Theora 的開源編碼解碼器,但這些尚未被 W3C 接納為官方標準。

CSS 的 overflow 屬性

從 DOM 技術的角度看,網頁中每一件物件都是「箱」狀的,一段文字、一幅圖像、一個連結,它們的長度、闊度、位置等等都可以由 CSS 控制,若果你沒有設定箱子的大小,它會隨著內容的多寡而自行調整,確保容納並顯示所有內容,但若果箱子的大小被限制了,卻又無法容納所有內容的時候,這時 便是 CSS 的 overflow 屬性發揮作用的時候。

CSS Tricks 網站上 Chris Coyier 有一篇文章介紹 CSS 的 overflow 屬性,文章說,Overflow 的值可以是:visible (預設)、hidden、scroll 及 auto,它還有兩個「姊妹」屬性 overflow-x 及 overflow-y,但不是所有瀏覽器都支援。 繼續閱讀 »

線上文書應用服務問卷調查

東吳大學企業管理研究所的朱琪瑤同學,正在為她的研究專案進行問卷調查,想了解電腦族對於線上文書應用服務的接受度,若果你曾經使用過或瞭解此新應用模式,請花少許時間幫忙回答朱同學的問卷

JavaScript 的版本

近來網頁應用的開發人員越來越頭疼,微軟積極開發新版本的 IE,每一次都聲稱支援更多更新更標準的 JScript 功能,做為開放原碼的龍頭瀏覽器 Mozilla,新版本推出得更加頻密,每一次它所支援的 JavaScript 都好像提升一個版本,市場份額較少的 Opera 和 Safari 也標榜支援最新最標準的 JavaScript,甚至宣稱自己的 JavaScript 引擎效能更高,Adobe 也說它的 Flex 技術平台使用與 ECMAScript 3 兼容的 ActionScript,同一時間,幾乎所有主流瀏覽器都宣稱兼容 ECMAScript 3。ECMA 作為標準制定機構竟然也來製造混亂,忽然取消原定於 2008 年末推出的 ECMAScript 4,說今年會推出 ECMAScript 5,而ECMAScript 4 則改名為 ECMAScript Harmony,但沒有路線圖或時間表。作為一個開發人員,你怎樣理解這場混亂? 繼續閱讀 »

認識 PHP 的 Hashing Functions

Hashing function (散列函式) 在網頁應用中被廣泛採用,從數碼簽署、錯誤檢測、登入驗證、到壓縮儲存空間,由於它的原理比較複雜,很多人把它跟加密函式混淆,對於如何運用 hash function,如何選擇合適的 hash function,和它的優點缺點都不清楚,本文嘗試解答這些問題。

Hashing 是甚麼?

簡單地說,Hashing 是一種數據影射 (mapping) 的算法 (algorithm),通常用來把一大串不定長度的數據影射到一個固定長度的、較短的數據,這個固定長度的數據稱為 hashing value (散列值)。 繼續閱讀 »

PHP Cheat Sheets

Cheat Sheet 又稱做「作弊紙」、「小抄」或「備忘紙」,不過我比較喜歡稱她做「速記片」,它是把一些常用的東西用很簡潔的格式紀錄下來方便快速檢查和重溫,當你嘗試從 一個字串中抽取一部份內容,應該調用 PHP 的 mid()、substr()、還是 substring() ?1.3 == 1.30 是否為真?如果你有類似的煩惱,下面列出的免費 PHP 速記片一定可以幫的上忙: 繼續閱讀 »

解除 PHP max_execution_time 的限制

很多人都知道 php.ini 中預設的最長執行時間是 30 秒,這是由 php.ini 中的 max_execution_time 變量指定,倘若你有一個需要頗多時間才能完成的工作,例如要發送很多電子郵件給大量收件者,或者要進行繁重的數據分析工作,伺服器會在 30 秒後強行中止正在執行的程式,這個問題其實有解決辦法的。

最簡單當然是修改 php.ini 中 max_execution_time 的數值,不過不是所有人都有權修改 php.ini,例如使用網頁寄存的開發人員,伺服器上的 php.ini 由很多網站共同使用,所以不能隨意修改。

另一個辦法是在 PHP 程式中加入 ini_set(‘max_execution_time’, ’0′),數值 0 表示沒有執行時間的限制,你的程式需要跑多久便跑多久。若果你的程式仍在測試階段,建議你把時限設定一個實數,以免程式的錯誤把伺服器當掉。

利用 Data URL 加速你的網頁

對優化網頁效能有研究的人都知道,首要的任務是盡量減少 HTTP 請求 (http request) 的次數,例如把多個 JavaScript 檔案合併,把多個 CSS 檔案合併,利用 CSS 精靈和合併的小圖示等等,但是很多人都不知道還有一個 data URL 的密技,讓我們直接把圖像的內容崁入網頁裡面,這個密技的官方名稱是 data URI scheme繼續閱讀 »