Archive

‘程式設計’ 分類過的Archive

MariaDB 5.3.1 beta 出現了

2011年9月25日 尚無評論


其實家裡的 Server(本站) 已經以 MariaDB 5.2 運作好一陣子了 , 都沒什問題 , 今天上去 MariaDb 官方網站看了一下 , 9/10 推出了 MariaDB beta 版

這個版本仍是以 MariaDb 5.2 為基礎 , 著重在 subquery 效能的提升 , 同時也將部分 MySQL 6.0 ㄧ些代碼拿來用

但其中有一項值得注意 , 就是 5.3 已經有將 HandlerSocket 包進來了 , 老玩家應該知道這是什 , 但第一次聽過的人可能不明瞭 , HandlerSocket 是透過另一個通訊 port 讓 client 端可以下達 NoSQL Style 的命令 , 對於需要高速的存取資料的需求來說很有幫助

詳細的更新請至關網看便瞭 http://kb.askmonty.org/en/what-is-mariadb-53

Categories: MySQL Tags:

最近更新了另一套 CKEditor plugin for wordpress

2011年8月15日 尚無評論

之前一直都是用 Dean's FCKEditor for wordpress

直到換了這套名字就叫 CKEditor for wordpress 感覺還不錯

http://wordpress.org/extend/plugins/ckeditor-for-wordpress/

我為何要換這套呢

因為最近我的爛網站加掛了WordPress Mobile Edition 這個 Plugin , 主要是為了讓手機的介面比較簡單 , 這個手機版外掛裝起來挺簡單的 , 我大概花了不到一分鐘就裝好了 , 在我的 Samsung S2 i9100 下看還正常 , 就是佈景醜了點 , 但有比沒有好

而 WordPress Mobile Edition 裝了之後 , 我發現原本回文用的文字編輯區無法在手機上使用 , 於是才換了 CKEditor for wordpress  , 這套似乎會判別裝置 , 若是手機 , 會自動把所見即得關掉 , 就只能回正常的文字 , 而若是控制台內編輯文章 , 也是純文字 , 不過會有多出一些 HTML Tag 按鈕幫助編輯還不賴的 ^^

有興趣裝的朋友可以去裝看看 , 官方網站上有兩套同名的 , 我就是用我附上的網址的那套 , 這套評價似乎較高 , 個人沒比較過差異 , 至於之前可能有介紹到如何增加 style 搭配 WP-Codebox , 請看這篇 http://www.pigo.idv.tw/archives/415/

在這次安裝這個 CKEditor for wordpress , 修改方式也有變動 

  1. 要進入後台 , 看左下角最下面有 CKEditor 的設定 , 先選 basic setting , 然後把 Post/Page editor options 的 toolbar 設定 Full , 這樣全部的功能就會打開
  2.  在 wordpress 目錄的 wp-content\plugins\ckeditor-for-wordpress 下, 直接開  ckeditor.styles.js , 可以自行增加 style , 就參照我之前貼的 http://www.pigo.idv.tw/archives/415/ , 自己意會修改一下就和原本一樣了
  3. 修改後 , 可能發現 CKEditor 沒有看見新增的變動 , 那是快取問題 , 就 …. 想辦法清快取吧 , 不然先用別的瀏覽器試試看有沒有變動查明原因
Categories: PHP Tags: ,

PHP 5.4 Alpha 1 釋出 , 有個新特性挺棒的

2011年6月29日 尚無評論

官網今天釋出了 PHP 5.4 Alpha 1

當中有介紹一些新特性

 

  • Added: Traits language construct
  • Added: Array dereferencing support
  • Added: DTrace support

Traits 有點類似多重繼承可以把很多物件的某些功能合併 , 但其實又不是那樣 , 這個特性我不想多做介紹 , 因為我不喜歡 , 目前沒有 IDE 支援 , 要是寫起來都跑不出 auto complite 就很鳥了 哈哈

而 DTrace Support 我還不清楚是甚麼 , 但 Array deferencing support 我就挺喜歡了 

舉個 sample code

1
2
3
4
5
function test() {
    return array('a','b','c');
}
 
echo test()[1]; // 這樣會印出 b

這種語法 , C# 早就有了 , 是很方便的語法 , 不知道這樣特性會不會稍微減少記憶體用量就是了 , 希望有 , 有空再來試試看

Categories: PHP, 技術新聞區 Tags:

看到一種 lazy loading 作法 , 很棒

2010年12月19日 1 則評論

網址 :

http://www.patternsforphp.org/doku.php?id=lazy_initialization

這不同於以往看到的 lazy loading 每次都要呼叫 __set 或 __get 來判斷是否有初始化的作法 , 這種做法只會呼叫一次 __set 或 __get , 我按照上述的作法寫了一段 code 來測試效能 , 在我的 I5 CPU 處理器上測得的效能差異有 5 倍之多

以下是範例程式 閱讀全文…

Categories: PHP Tags:

家裡的 Server 把 MySQL 換成 MariaDb 了

2010年11月27日 尚無評論

最近看見 MariaDb 出了 5.2.3 的版本

這個版本已經是 Stable 版了 , 相容 MySQL 5.1 , 大概說一下這一版的特色

  • MariaDb 一開始就以 XTraDb 取代InnoDb Engine , 相容於 InnoDb , 但效能更好 , 在 phpMyAdmin 中建立一個 InnoDB 就等於是 XtraDb 了
  • 以 Aria Table 取代 MyISAM 為預設 Table (原本的 MyISAM 也可以用) , 若原始資料仍是 MyISAM , 但在很多情況下 MySQL 會開啟 tmp table , 這時候會用 Aria , 效能會比原本的 MySQL 更佳
  • 內建 SphinxSE , 所以就不用自己去 patch mysql 就可以搭配 Sphinx 讓 MySQL 具備強大的中文全文搜尋功能了
  • 可以無痛升級 , 目錄完全相容mysql , 各種工具也完全和 mysql 一樣

網站上提供了各種版本 , 包括 CentOS , Win32 , 我的 CentOS Linux 在升級時是下載 CentOS 版的 RPM

先將舊版的 MySql 停掉 , 備份整個 MySQL Data 目錄 , 然後用 yum 去移除 mysql-server 等相關套件

接著 , 用 rpm 安裝之後大概就沒問題了 , 這中間 , 會有一些套件衝突 , 例如 php-mysql , 當遇到衝突時 , 用 yum 去移除 , 然後再用 rpm 安裝 mariadb 的 rpm , 最後再用 yum 去安裝之前發生衝突的套件 , 過程中沒發現甚麼問題

現在這個網站也運做了約一星期 , 狀況良好

Categories: Linux, MySQL Tags: ,

PHP 判斷字串大小的優化方式

2010年10月29日 5 則評論

其實我是在下面網址看到

http://www.chazzuka.com/blog/?p=58

於是自己寫了段測試 , 發現超驚人的

 

<?php
$foo = "123";
$time = microtime(true);
for($i=0; $i<1000;$i++) {
	if(isset($foo{5})) {
		echo "5";
	}
}
printf("%f \n" , microtime(true)-$time);
$time = microtime(true);
for($i=0; $i<1000;$i++) {
	if(strlen($foo)>5) {
		echo "5";
	}
}
printf("%f \n" , microtime(true)-$time);
?>

 

輸出結果 , 效能竟相差20倍以上 , isset() 你真好用 , 以前都不知道你的好耶

 

0.000623 

0.016440
Categories: PHP Tags:

Apache + mod_fastcgi + php-fpm 設定

2010年7月28日 尚無評論

前言

這篇是有人叫我分享的 , 順便測一下 php-fpm 和 Apache 搭配起來的效能及穩定度 , 由於 php-fpm 是自帶的 FastCGI Process Manager , 所以和原本的 php fastcgi 有所不同 , php-fpm 若要搭配 Apache 只能以 mod_fastcgi 來運作 , 原本 Apache 有開發 mod_fcgid , 但 mod_fcgid 本身算是個 FastCGI Process Manager , 只能執行本地端 FastCGI , 而 php-fpm 可以用 Unix Socket 或 TCP 模式讓任何具備執行外部 FastCGI 程序的 WebServer 連接 , 因此 lighttpd 或 Ngix 等都可以 , 唯獨世上次爛的 Apache 要外掛 mod_fastcgi , 最爛的當然是 IIS 了 , 哈 …

運作環境

  • CentOS 5.5 64bit 及內建的 Apache 2.2 套件
  • PHP 5.3.3 , 此版本有內建 php-fpm 了 , 過去的版本皆須 patch 才有 php-fpm
  • 硬體 : Core I5 4 核心的 , RAM 2GB

閱讀全文…

Categories: Linux, PHP Tags:

PHP FPM ?

2010年7月22日 尚無評論

很久沒有上官方網站看文件 , 今天晚上莫名其妙從官方網站看到一個叫 FPM 的東西

http://www.php.net/manual/en/install.fpm.php

按照上面的說法 , 不就是 FastCGI Process Manager 嗎 ?

怪了 , 原本 PHP 不就已經有支援 FastCGI 了 ?

仔細給他看一看 , 從 Google 上找一下 FPM 關鍵字後 …. 媽的 … 我的天 , 原來 FPM 這東西不得鳥 , 下面才是真正的 FPM 官方網站

http://php-fpm.org

原來 FPM 這東西可以解決 PHP FastCGI 甚至 mod_php 權限控管的不足

例如 , 可以 setuid , chroot , 這對於在一台主機中有多個 VirtualHost 中的權限控管非常有幫助

而且 FastCGI 跑的效能及記憶體用量都比 Apache + mod_php 好很多 , 現在 PHP 5.3.3 後會內建 FPM 這個功能

其他的特點也不錯 , 如自動控制行程數量 , 這點 lighttpd 就做的挺爛

想試的人可以去試試看了 … 因為今天 PHP 5.3.3 已經正式出來了

Categories: PHP Tags: