Windows 下安裝 sshfs

遠端寫程式最方便的就是架個 FTP,並且用支援 FTP 模式的編輯器開始編輯,個人推薦 Windows 底下用 PSPadSublime,另外一種方式就是透過 sshfs 將 Linux 的硬碟 mount 到自己的系統,如果是 Ubuntu 就很簡單,可以參考我以前寫的教學,那 Windows 呢,可以透過 Google win-sshfs project,把 Dokan Library 0.6.0主程式 win-sshfs 安裝好就可以用了。比較需要注意的是,如果 Server 是 FreeBSD,那需要而外設定 /etc/ssh/sshd_config

PasswordAuthentication yes

[PHP] preg_replace 效能測試 (將兩個空白字元以上取代成一個)

php-logo

preg_replace 可以使用正規語法來取代字串任何字元,,今天探討取代空白字元的效能,雖然這是個不起眼的效能評估,一般人不太會這樣去改,不過這是國外 PHP Framework 有人提出來修正的,經過許多人的測試一致同意。功能就是一篇文章內如果有多餘的空白能空取代成一個,一般人都會用 \s+ 正規語法,畢竟大家都知道 \s 代表單一空白或 \r 等符號,但是國外有人提出用 {2,} 方式來取代空白。程式碼如下,大家可以測試看看。

[Read More]

簡易 PHP Excel Generator Library

php-logo
因為專案需求,必須將資料庫資料輸出成簡易 Excel 檔案,如果要用 PHP 取裡 Excel 文件,我想大家首推一定是

PHPExcel,不管你要對 Excel 做任何處理都一定辦的到,但是專案只需要 generate excel 簡易表格出來,有需要這麼強大的 PHPExcel,網路上找到一個非常簡易的 Library 那就是 php-excel 作者似乎現在沒再更新了,不過已經夠專案使用了,PHP 程式碼也非常簡單。

How to use 程式碼很簡易

$header = array('編號', '姓名', '電話'); 
$body = array('1', '小惡魔', '0934353289'); 
$xls = new Excel_XML;
$xls->addRow($header);
$xls->addRow($body);
$xls->generateXML("test");
或是將資料寫成多為陣列
$body = array(array('編號', '姓名', '電話'), array('1', '小惡魔', '0934353289')); 
$xls = new Excel_XML;
$xls->addArray($body);
$xls->generateXML("test");
結論就是殺雞焉用牛刀,就這個簡易 Library 就對了。

CSS layout 好幫手 Compass scss version of normalize.css

我相信網頁程式設計師都知道,網站一開始必須先使用 CSS Rest 將所有的 browser layout 初始化,這樣可以讓以後 CSS debug 速度增加,也解決了很多跨瀏覽器的問題,昨天使用 Compass-h5bp 來自動產生 html5 template,但是發現版本並非是 html5 boilerplate 所提供的 V4.0.0 版本,專案裡面的 Normalize.css 也是舊版的,雖然有其他開發者提交 pull request,但是作者似乎還沒 merge 到主分支,只是我好奇這個 tool 除了幫忙產生 html5 boilerplate,另外多了 Compass 檔案,讓寫 Compass 前端工程師更加方便,由於 Normalize.css 還沒更新,所以我 fork 了 normalize.css 專案,並且將 v2.0.1(IE 8+, Firefox 4+, Safari 5+, Opera, Chrome) 跟 v1.0.1 (Includes legacy browser support) 整合在同一支 scss 檔案,歡迎大家取用。 如果要支援 IE6/7 的話,請將 $legacy_browser_support 設定為 true 即可。檔案可以由底下專案取得 SCSS version of normalize.css

CodeIgniter 3.0.x 支援 Native Session Driver

CodeIgniter
看來

CodeIgniter 團隊看到大家的心聲了,在 2.0.x 版本的時候就已經有人開始發 patch 讓 CI 可以支援 Native Session,也就是透過 session_start 來存取 session,而不是本來的 cookie session,很高興 philsturgeon (Fuel Framework 作者) 今天將此功能 merge 進來 3.0.x 分支,另外 Session 也同時抽出來變成 Driver 而不是單一個 Library 了,詳細可以看此 Patch 連結,也因為這樣所以之前自己寫的 CodeIgniter-Native-Session 可以功成身退了。目前官方同時維護兩個分支,2.1.x 另外是 3.0.x,後者是專門開發新功能,有機會在慢慢介紹。

快速修正專案 PHP Coding Standards

底下是之前的投影片教導創業團隊制定 PHP 程式碼規範,讓工程師可以遵循此規則達到團隊合作

投影片內容都是現有 PHP FIG Group 所制定的 PSR-0, PSR-1, PSR-2 規則,那如何將既有專案的 Coding Style 轉換成上述標準呢,可以透過 PHP Coding Standards Fixer tool 來快速完成,此工具是由 Symfony Framework 完成。透過此工具可以快速且無痛轉換程式碼風格,舉個簡單例子:

[Read More]

輕量級 jQuery Slideshow Plugin

相信在網路上可以找到一堆 jQuery Slideshow Plugin,例如 33 POWERFUL JQUERY SLIDESHOW (SLIDERS) PLUGINS AND TUTORIALS 介紹了 33 種不同的 Slideshow Plugin,有些用起來很複雜,有些則是過於簡易,本來是想自己寫一套出來,但是想想是否可以找一套已經有輪子的架構,再拿來修改成專案所需要的套件,於是參考了這套原始碼,發現此專案只有提供 fade 和 slide 兩種效果,沒有像是投影片可以任意滑動的功能,所以自己把此功能 patch 上去,可以參考我放到 Github 的專案,寫法很容易,可以直接看線上 Example

載入 jQuery 和 plugin

[Read More]

Ubuntu 停止使用 GUI 介面 12.04 LTS

今天又拿到同事一台電腦來搞 Web Server,原先安裝 Ubuntu Desktop 要把它關閉,避免佔用太多資源,12.04 採用 LightDM 來管理 X Display,輕量級及高效能管理工具,直接停止 LightDM 可以直接用底下 command line。 $ service lightdm stop 如果開機直接不執行 X Display,可以透過底下步驟, 編輯 /etc/default/grub 用您個人喜歡的編輯器打開 /etc/default/grub 並且找到底下字串 [Read More]

解決 Ubuntu MP3 亂碼

在 Ubuntu 底下使用 Rhythmbox Music Player 來聽音樂,但是 import 整個 MP3 目錄之後,會看到全部都是亂碼的列表,解決方式就是用 EasyTag 軟體先將 MP3 標題轉碼,方式也很簡單,底下跟著操作就可以了。

安裝 EasyTag 透過 apt-get 方式安裝

$ sudo aptitude -y install easytag

轉馬步驟 打開偏好設定(Alt+P)

Screenshot from 2012-07-29 11:27:37 看到左下角(Character Set for reading ID3 Tag3),先選擇您的語言,看是中文歌單,還是日文,選完之後先將程式關閉,關閉之前如果系統通知說要轉換,請務必先取消,之後再打開此軟體,直到看到歌單 Tags 可以正確顯示,才進行轉換。 參考網站: [Ubuntu]MP3 tag亂碼解決—不用任何指令

關於 PHP FIG Group 所制定的 PSR-0, PSR-1, PSR-2

上禮拜寫了一篇 寫出好維護的 PHP 程式碼,看到 gslin 大神回應了一篇 關於可維護的 PHP 專案:PHP-FIG 的 PSR-0、PSR-1、PSR-2,其實我已經關注 PHP FIG 有一陣子了,FIG 所定義的三份文件 PSR-0 (Auto loading Standard), PSR-1 (Basic Coding Standard), PSR-2 (Coding Style Standard) 寫的非常清楚,目的就是讓 PHP Open Source 專案有共同的 Coding Standard,方便大家共同開發。所以上禮拜提到的投影片內容有大部份參考了這份文件,裏面的內容比較不同的地方就差於 Control Structures 部份,舉個簡單例子: 寫 if 條件式,網路上只有兩種寫法 <?php if ($a == $b) { …… }[/code]

另外一種寫法

[code lang=“php”]<?php if ($a == $b) { …… }[/code]

[Read More]