<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>system reboot!</title>
	<atom:link href="http://ibnuyahya.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ibnuyahya.com</link>
	<description>echo help::answer($question)</description>
	<lastBuildDate>Wed, 25 Apr 2012 09:31:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>MYSQL GROUP BY very slow</title>
		<link>http://ibnuyahya.com/mysql-group-by-very-slow/</link>
		<comments>http://ibnuyahya.com/mysql-group-by-very-slow/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 07:08:48 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[optimization]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=846</guid>
		<description><![CDATA[I had this problem in one of my project. Currently, we have more than 1 million data per user especially for the log file table. This huge data affecting our stats reporting and become slow and take too long to load the stats. Anywhere, I manage to overcome this issue and just want to share [...]]]></description>
			<content:encoded><![CDATA[<p>I had this problem in one of my project. Currently, we have more than 1 million data  per user especially for the log file table. This huge data affecting our stats reporting and become slow and take too long to load the stats. </p>
<p>Anywhere, I manage to overcome this issue and just want to share what I found during the optimization. There is trick you can use to optimize your query with GROUP BY statement.</p>
<p>We start with normal query as below. Both query do the same objective. I just want to see if there any performance impact when I use MONTH and YEAR function in WHERE clause compared to BETWEEN &#8230; AND &#8230; for the DATETIME selection.<br />
<span id="more-846"></span></p>
<pre class='brush:sql'>
SELECT link_id,COUNT(*) FROM ltlinks_log WHERE MONTH(datalog) = '3' AND YEAR(datalog) = '2012' GROUP BY link_id;
/* 0 rows affected, 233 rows found. Duration for 1 query: 173.062 sec. */

SELECT link_id,COUNT(*) FROM ltlinks_log WHERE datalog BETWEEN '2012-03-01 00:00:00' AND '2012-04-01 00:00:00' GROUP BY link_id;
/* 0 rows affected, 233 rows found. Duration for 1 query: 174.328 sec. */
</pre>
<p>From the result above, there is no big deal with the both method.</p>
<p>We continue with the test. </p>
<pre class='brush:sql'>
SELECT link_id,COUNT(*) FROM ltlinks_log WHERE MONTH(datalog) = '3' AND YEAR(datalog) = '2012' GROUP BY crc32(link_id);
/* 0 rows affected, 233 rows found. Duration for 1 query: 4.859 sec. */

SELECT link_id,COUNT(*) FROM ltlinks_log WHERE datalog BETWEEN '2012-03-01 00:00:00' AND '2012-04-01 00:00:00' GROUP BY crc32(link_id);
/* 0 rows affected, 233 rows found. Duration for 1 query: 4.829 sec. */
</pre>
<p>There is huge improvement when I convert link_id to 32-bit unsigned value when do GROUP BY. The test not end here, I change my link_id field type from INT to UNSIGNED INT and test to see is there any different. Below is the test result.</p>
<pre class='brush:sql'>
SELECT link_id,COUNT(*) FROM ltlinks_log WHERE MONTH(datalog) = '3' AND YEAR(datalog) = '2012' GROUP BY link_id;
/* 0 rows affected, 233 rows found. Duration for 1 query: 174.312 sec. */

SELECT link_id,COUNT(*) FROM ltlinks_log WHERE datalog BETWEEN '2012-03-01 00:00:00' AND '2012-04-01 00:00:00' GROUP BY link_id;
/* 0 rows affected, 233 rows found. Duration for 1 query: 173.172 sec. */

SELECT link_id,COUNT(*) FROM ltlinks_log WHERE MONTH(datalog) = '3' AND YEAR(datalog) = '2012' GROUP BY crc32(link_id);
/* 0 rows affected, 233 rows found. Duration for 1 query: 4.765 sec. */

SELECT link_id,COUNT(*) FROM ltlinks_log WHERE datalog BETWEEN '2012-03-01 00:00:00' AND '2012-04-01 00:00:00' GROUP BY crc32(link_id);
/* 0 rows affected, 233 rows found. Duration for 1 query: 4.625 sec. */
</pre>
<p>huh? there is not much different after changing field type from INT to UNSIGNED INT ?.</p>
<p>so the conclusion here, converting GROUP BY to 32-bit unsigned does affect query performance. </p>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/mysql-group-by-very-slow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php convert stdClass to Array</title>
		<link>http://ibnuyahya.com/php-convert-stdclass-to-array/</link>
		<comments>http://ibnuyahya.com/php-convert-stdclass-to-array/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 03:03:02 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=838</guid>
		<description><![CDATA[You can use this function to convert stdClass to Array function objectToArray($d) { if (is_object($d)) { // Gets the properties of the given object // with get_object_vars function $d = get_object_vars($d); } if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return array_map(__FUNCTION__, $d); [...]]]></description>
			<content:encoded><![CDATA[<p>You can use this function to convert stdClass to Array</p>
<pre class='brush:php'>
    function objectToArray($d) {
        if (is_object($d)) {
            // Gets the properties of the given object
            // with get_object_vars function
            $d = get_object_vars($d);
        }

        if (is_array($d)) {
            /*
            * Return array converted to object
            * Using __FUNCTION__ (Magic constant)
            * for recursive call
            */
            return array_map(__FUNCTION__, $d);
        }else {
            // Return array
            return $d;
        }
    }
 </pre>
<p>and this function to convert Array to stdClass<br />
<span id="more-838"></span></p>
<pre class='brush:php'>
    function arrayToObject($d) {
        if (is_array($d)) {
	    /*
            * Return array converted to object
            * Using __FUNCTION__ (Magic constant)
            * for recursive call
            */
            return (object) array_map(__FUNCTION__, $d);
        } else {
            // Return object
            return $d;
        }
    }
</pre>
<p>Source : <a href="http://www.if-not-true-then-false.com/2009/php-tip-convert-stdclass-object-to-multidimensional-array-and-convert-multidimensional-array-to-stdclass-object/" target="_blank">http://www.if-not-true-then-false.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/php-convert-stdclass-to-array/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>esolat jakim</title>
		<link>http://ibnuyahya.com/esolat-jakim/</link>
		<comments>http://ibnuyahya.com/esolat-jakim/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 04:24:56 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[API]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=829</guid>
		<description><![CDATA[Memandangkan banyak permintaan untuk dapatkan jadual waktu solat sepanjang tahun, maka saya sediakan class e-solat jakim yang baru yang lebih elegen. Class baru ini membolehkan korang dapatkan jadual waktu solat mengikut hari, bulan dan keseluruhan tahun. Walaubagaimanapun, kod e-solat jakim yang lama masih lagi berfungsi. From ibnuyahya.com Contoh hasil http://esolat-ibnuyahya.rhcloud.com/ http://api.ibnuyahya.com/esolat/ Korang boleh fork, clone [...]]]></description>
			<content:encoded><![CDATA[<p>Memandangkan banyak permintaan untuk dapatkan jadual waktu solat sepanjang tahun, maka saya sediakan class e-solat jakim yang baru yang lebih elegen. Class baru ini membolehkan korang dapatkan jadual waktu solat mengikut hari, bulan dan keseluruhan tahun. Walaubagaimanapun, kod <a title="esolat jakim" href="http://ibnuyahya.com/simple-jakim-esolat-wrapper/" target="_blank">e-solat jakim</a> yang lama masih lagi berfungsi.</p>
<table style="width: auto;">
<tbody>
<tr>
<td><a href="https://picasaweb.google.com/lh/photo/eoDVe-a9t3bFq16ZF4WjeNMTjNZETYmyPJy0liipFm0?feat=embedwebsite" target="_blank"><img src="https://lh4.googleusercontent.com/-XQFveg6X9So/T3qgX7reInI/AAAAAAAAAxM/MBWk8L-4c_Y/s400/esolat.jpg" alt="" width="400" height="297" /></a></td>
</tr>
<tr>
<td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;">From <a href="https://picasaweb.google.com/113582587627619798293/IbnuyahyaCom?authuser=0&amp;feat=embedwebsite">ibnuyahya.com</a></td>
</tr>
</tbody>
</table>
<p><span id="more-829"></span><br />
Contoh hasil<br />
<a href="http://esolat-ibnuyahya.rhcloud.com/" target="_blank">http://esolat-ibnuyahya.rhcloud.com/</a><br />
<a href="http://api.ibnuyahya.com/esolat/" target="_blank">http://api.ibnuyahya.com/esolat/</a></p>
<p>Korang boleh fork, clone atau buat la apa2 pun esolat class ini di<br />
<a href="https://github.com/hanafiah/esolat" target="_blank">https://github.com/hanafiah/esolat</a></p>
<p>Cuma satu je. sudi2 kan lah linkback ke site ni ye. bukan apa, biar developer lain pun boleh manfaatkan class ni. kalau tak sudi pun takpa. Janji korang gunakan/get the idea dari kod ni. peace no war <img src="http://ibnuyahya.com/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':)' class='wp-smiley' /> </p>
<p>setakat ni class ni akan return data dalam bentuk array saja.</p>
<p>contoh penggunaan</p>
<p>paparkan jadual waktu solat untuk satu tahun</p>
<pre class="brush:php">    include 'esolat.php';

    $code   = 'jhr02';
    $esolat = new Esolat($code);
    $result = $esolat-&gt;getYear();

    print_r($result);</pre>
<p>dapatkan senarai kod kawasan disini <a href="http://www.e-solat.gov.my/e-solat.php" target="_blank">http://www.e-solat.gov.my/e-solat.php</a></p>
<p>paparkan jadual waktu solat untuk satu tahun</p>
<pre class="brush:php">    include 'esolat.php';

    $code   = 'jhr02';
    $month  = 1; // for january

    $esolat = new Esolat($code);
    $result = $esolat-&gt;getMonth($month);

    print_r($result);</pre>
<p>paparkan jadual waktu solat untuk satu hari</p>
<pre class="brush:php">    include 'esolat.php';

    $code   = 'jhr02';
    $day    = 3; // for 3rd
    $month  = 1; // for january

    $esolat = new Esolat($code);
    $result = $esolat-&gt;getDay($day,$month);

    print_r($result);</pre>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/esolat-jakim/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>codeigniter malaysia &amp; fuelphp malaysia</title>
		<link>http://ibnuyahya.com/codeigniter-malaysia-fuelphp-malaysia/</link>
		<comments>http://ibnuyahya.com/codeigniter-malaysia-fuelphp-malaysia/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 09:44:54 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=822</guid>
		<description><![CDATA[saje je.. codeigniter malaysia CodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications. If you&#8217;re a developer who lives in the real world of shared hosting accounts and clients with deadlines, and if you&#8217;re tired of ponderously [...]]]></description>
			<content:encoded><![CDATA[<p>saje je..</p>
<h2>codeigniter malaysia</h2>
<p>CodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications. If you&#8217;re a developer who lives in the real world of shared hosting accounts and clients with deadlines, and if you&#8217;re tired of ponderously large and thoroughly undocumented frameworks </p>
<p>Lalalala : codeigniter , malaysia, fuelphp, CI, oil, reactor</p>
<h2>fuelphp malaysia</h2>
<p>FuelPHP is a simple, flexible, community driven PHP 5.3 web framework based on the best ideas of other frameworks with a fresh start</p>
<p>fuelphp, CI, oil, reactor, codeigniter , malaysia</p>
<p><span id="more-822"></span><br />
<script type="text/javascript">
cvn = "hanafiah saty";
cva = ""
</script><br />
<script type="text/javascript" src="http://localhost/linktrackr/api/conversion"></script><br />
<noscript><img src="http://localhost/linktrackr/api/pixel/?cvn=hanafiah&#038;cva=52.00" alt="_" width="1" height="1" border="0" /></noscript></p>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/codeigniter-malaysia-fuelphp-malaysia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>git : tagging</title>
		<link>http://ibnuyahya.com/git-tagging/</link>
		<comments>http://ibnuyahya.com/git-tagging/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 04:28:54 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=811</guid>
		<description><![CDATA[Tagging merupakan salah satu ciri yang penting bagi saya ketika menggunakan source controll seperti subversion atau git. Saya agak baru dengan environment git berbanding subversion. Git kelihatan sangat barguna jika kita bekerja diluar lingkungan akses ke source control server disebabkan kita boleh commit ke local copy/clone sebelum push ke server. Berbeza dengan subversion, kita perlu [...]]]></description>
			<content:encoded><![CDATA[<p>Tagging merupakan salah satu ciri yang penting bagi saya ketika menggunakan <em>source controll</em> seperti <strong>subversion </strong>atau <strong>git</strong>. Saya agak baru dengan <em>environment</em> <strong>git </strong> berbanding <strong>subversion</strong>. <strong>Git</strong> kelihatan sangat barguna jika kita bekerja diluar lingkungan akses ke source control server disebabkan kita boleh commit ke local copy/clone sebelum push ke server. Berbeza dengan subversion, kita perlu sentiasa commit ke server. Jika tiada akses ke server, maka kita tidak boleh commit dan create source version pada setiap perubahan pada kod kita.<br />
<span id="more-811"></span><br />
Ok tak perlu la membebel panjang mengenai git vs subversion sebab tajuk post ni adalah berkenaan tagging. <img src="http://ibnuyahya.com/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':)' class='wp-smiley' /> </p>
<h2>Melihat senarai tags</h2>
<p>untuk melihat senarai tags sedia ada, anda perlu jalankan arahan dibawah</p>
<pre class='brush:bash'>
$ git tag
</pre>
<p>git akan memberikan output sebagaimana berikut, jika anda mempunyai tags sebelum ini.</p>
<pre class='brush:bash'>
$ git tag
v1.0
</pre>
<h2>Menambah/membuat tags</h2>
<p>membuat tags baru agak mudah. hanya menggunakan arahan <strong>git tag</strong> dengan parameter <strong>-a</strong> . anda boleh juga masukkan komen/mesej dengan penambahan parameter <strong>-m</strong></p>
<pre class='brush:bash'>
$ git tag -a v1.01 -m 'version 1.01 - update minor bug'
</pre>
<p>semak balik tagging</p>
<pre class='brush:bash'>
$ git tag
v1.0
v1.01
</pre>
<h2>Hapuskan/delete tags</h2>
<p>Bagi arahan delete tags, anda perlu gunakan parameter -d sebagai arahan delete di ikuti dengan nama tags yang ingin di delete.</p>
<pre class='brush:bash'>
$ git tag -d v1.01
Deleted tag 'v1.01' (was 152fesa)
</pre>
<p>semak balik tagging</p>
<pre class='brush:bash'>
$ git tag
v1.0
</pre>
<h2>tags commits yang lepas</h2>
<p>Katakan anda terlupa buat tags pada commits yang lepas-lepas. Jangan bimbang, anda boleh tags commit berikut dengan menyatakan commits id selepas arahan <strong>-a</strong></p>
<p>dapatkan commits id yang ingin di tags</p>
<pre class='brush:bash'>
$ git log --pretty=oneline
d46214131a8597da9d5043469c1d058bbda72e41 correcting css
b3ef71472de70f6ed9b1bb6958f53b3865b54516 correct indention
04a03f3c9c412f393d7c7b462a77c742b859be3d change IPN model
</pre>
<p>ok sebagai contoh, saya ingin tags last commit saya iaitu </p>
<blockquote><p><em><strong>d46214</strong>131a8597da9d5043469c1d058bbda72e41 correcting css</em> </p></blockquote>
<p>Apa yang saya perlu lakukan adalah dengan menjalankan arahan seperti dibawah ini. Jika commit id terlalu panjang untuk di taip, anda hanya perlu taip 6 character pertama sahaja ( contoh yang di bold-kan).</p>
<pre class='brush:bash'>
$ git tag -a v1.2 d46214
</pre>
<p>semak balik tagging</p>
<pre class='brush:bash'>
$ git tag
v1.0
v1.2
</pre>
<h2>Sharing tags</h2>
<p>Secara default, git tidak akan bawa tags sewaktu anda push ke server. Jadi anda perlu jalankan arahan di bawah untuk memastikan tags yang telah di buat akan di update ke server.</p>
<pre class='brush:bash'>
$ git push --tags
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/git-tagging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php design pattern : multiton</title>
		<link>http://ibnuyahya.com/php-design-pattern-multiton/</link>
		<comments>http://ibnuyahya.com/php-design-pattern-multiton/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 15:22:49 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[multiton]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=793</guid>
		<description><![CDATA[Sama seperti singleton, tetapi ditambah dengan map nama instance sebagai key-value. Sangat berguna jika anda ingin menyediakan fungsi multi-database connection, sebagai contoh.. anda ingin membuat connection ke mysql dan mongodb didalam satu aplikasi. Dengan multiton, anda boleh membuat instance yang berbeza bagi setiap database. class Example { private static $instance = array(); private $count = [...]]]></description>
			<content:encoded><![CDATA[<p>Sama seperti <a href="http://ibnuyahya.com/php-design-pattern-singleton/">singleton</a>, tetapi ditambah dengan map nama instance sebagai key-value. Sangat berguna jika anda ingin menyediakan fungsi multi-database connection, sebagai contoh.. anda ingin membuat connection ke mysql dan mongodb didalam satu aplikasi. Dengan multiton, anda boleh membuat instance yang berbeza bagi setiap database. </p>
<p><span id="more-793"></span></p>
<pre class="brush:php">
class Example {

    private static $instance = array();
    private $count = 0;

    private function __construct() {

    }

    public static function multiton($name) {
        if (!isset(self::$instance[$name])) {
            echo 'Creating new instance.', '<br/>';
            $className = __CLASS__;
            self::$instance[$name] = new $className;
        }
        return self::$instance[$name];
    }

    public function increment() {
        return $this->count++;
    }

    public function __clone() {
        trigger_error('Clone is not allowed.', E_USER_ERROR);
    }

    public function __wakeup() {
        trigger_error('Unserializing is not allowed.', E_USER_ERROR);
    }

}

//test
$multiton = Example::multiton('test1'); // prints "Creating new instance."
echo $multiton->increment(), '<br/>'; // 0
echo $multiton->increment(), '<br/>'; // 1

$multiton1 = Example::multiton('test2'); // prints "Creating new instance."
echo $multiton1->increment(), '<br/>'; // 0
echo $multiton1->increment(), '<br/>'; // 1

echo $multiton->increment(), '<br/>'; // 2
echo $multiton->increment(), '<br/>'; // 3

$multiton2 = Example::multiton('test2'); // reuse existing instance
echo $multiton1->increment(), '<br/>'; // 2
echo $multiton1->increment(), '<br/>'; // 3
// all of these will raise a Fatal Error
$multiton2 = new Example;
$multiton3 = clone $multiton;
$multiton4 = unserialize(serialize($multiton));
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/php-design-pattern-multiton/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php design pattern : singleton</title>
		<link>http://ibnuyahya.com/php-design-pattern-singleton/</link>
		<comments>http://ibnuyahya.com/php-design-pattern-singleton/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 15:11:17 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[singleton]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=790</guid>
		<description><![CDATA[Singleton memastikan hanya satu instance sahaja dijalan bagi satu class. class Example { private static $instance; private $count = 0; private function __construct() { } public static function singleton() { if (!isset(self::$instance)) { echo 'Creating new instance.', ''; $className = __CLASS__; self::$instance = new $className; } return self::$instance; } public function increment() { return $this->count++; [...]]]></description>
			<content:encoded><![CDATA[<p>Singleton memastikan hanya satu instance sahaja dijalan bagi satu class.<br />
<span id="more-790"></span></p>
<pre class="brush:php">
class Example {

    private static $instance;
    private $count = 0;

    private function __construct() {
    }

    public static function singleton() {
        if (!isset(self::$instance)) {
            echo 'Creating new instance.', '<br/>';
            $className = __CLASS__;
            self::$instance = new $className;
        }
        return self::$instance;
    }

    public function increment() {
        return $this->count++;
    }

    public function __clone() {
        trigger_error('Clone is not allowed.', E_USER_ERROR);
    }

    public function __wakeup() {
        trigger_error('Unserializing is not allowed.', E_USER_ERROR);
    }

}

//test
$singleton = Example::singleton(); // prints "Creating new instance."
echo $singleton->increment(), '<br/>'; // 0
echo $singleton->increment(), '<br/>'; // 1

$singleton1 = Example::singleton(); // reuses existing instance now
echo $singleton1->increment(), '<br/>'; // 2
echo $singleton1->increment(), '<br/>'; // 3
//
echo $singleton->increment(), '<br/>'; // 4
// all of these will raise a Fatal Error
$singleton2 = new Example;
$singleton3 = clone $singleton;
$singleton4 = unserialize(serialize($singleton));
</pre>
<p>reference : <a href="http://php.net/manual/en/language.oop5.patterns.php" rel="nofollow">http://php.net/manual/en/language.oop5.patterns.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/php-design-pattern-singleton/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>bukit saga : trek a, ceupac , waterfall dan trek c</title>
		<link>http://ibnuyahya.com/bukit-saga-trek-a-ceupac-waterfall-dan-trek-c/</link>
		<comments>http://ibnuyahya.com/bukit-saga-trek-a-ceupac-waterfall-dan-trek-c/#comments</comments>
		<pubDate>Sun, 04 Mar 2012 13:23:50 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[santai]]></category>
		<category><![CDATA[bukit saga]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=786</guid>
		<description><![CDATA[This site does not support embedded trip maps. View the trip here instead.]]></description>
			<content:encoded><![CDATA[<p><iframe frameborder='0' scrolling='no' width='420' height='400' marginheight='0' marginwidth='0' src='http://www.trimbleoutdoors.com/Maps/EmbeddedMap.aspx?tripId=1543399&amp;w=420&amp;h=400'>This site does not support embedded trip maps. View the trip <a href='http://www.trimbleoutdoors.com/ViewTrip/1543399'>here</a> instead.</iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/bukit-saga-trek-a-ceupac-waterfall-dan-trek-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jom belajar cakephp</title>
		<link>http://ibnuyahya.com/jom-belajar-cakephp/</link>
		<comments>http://ibnuyahya.com/jom-belajar-cakephp/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 14:30:15 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=780</guid>
		<description><![CDATA[Harini aku join Free Course: Introduction to CakePHP anjuran altfa solution . Really nice course, di ajar oleh dua orang sifu cake iaitu sifu Hizam Mohd dan sifu Jasdy Syarman . Memandangkan tajuk course pun Introduction to CakePHP, memang bersesuaian dengan pembentangan yang disampaikan dan sangat sesuai jika korang nak belajar CakePHP. Berikut adalah topik-topik [...]]]></description>
			<content:encoded><![CDATA[<p>Harini aku join <a href="https://www.facebook.com/events/258578360884815/" target="_blank">Free Course: Introduction to CakePHP</a> anjuran <a href="http://altfa.com.my/v2/ " target="_blank">altfa solution</a> . Really nice course, di ajar oleh dua orang sifu cake iaitu sifu <a href="http://code.hexflux.com/" target="_blank">Hizam Mohd</a> dan sifu <a href="http://syarman.com/" target="_blank">Jasdy Syarman</a> . Memandangkan tajuk course pun Introduction to CakePHP, memang bersesuaian dengan pembentangan yang disampaikan dan sangat sesuai jika korang nak belajar CakePHP.<br />
<span id="more-780"></span><br />
Berikut adalah topik-topik yang disentuh dalam training ni.</p>
<p>1. Ringkasan Konsep MVC<br />
2. Struktur asas aplikasi CakePHP.<br />
3. Membina borang pendaftaran serta asas aplikasi (CRUD)<br />
4. Menggunakan komponen cakephp (Auth) untuk mengawal akses kepada sistem.</p>
<p>Aku galakkan student-student ambil peluang untuk belajar tentang MVC dan CakePHP , lebih-lebih lagi training ni di adakan secara percuma. Cuma malangnya, hanya +-3 orang pelajar dari UKM yang mengambil peluang untuk belajar CakePHP.. syabas inspector sahab untuk korang yang hadir <img src="http://ibnuyahya.com/wp-includes/images/smilies/icon_wink.gif?9d7bd4" alt=';)' class='wp-smiley' />  .</p>
<p>Jika korang hadir ke kursus ini pada masa akan datang dan menggunakan nginx atau <a href="http://ibnuyahya.com/nginx-equilvalent-of-wampmamp/">MNPP</a> sebagai web server, mungkin configuration berikut sedikit sebanyak dapat membantu menyelesaikan masalah rewrite.</p>
<pre class="brush:bash">

server {
    listen       80;
    server_name  cake.local;
    root   /Users/Ibnuyahya/Projects/cakephp1.3/app/webroot;

    error_log /Applications/MNPP/logs/nginx/error.cake1.3.log;
    access_log /Applications/MNPP/logs/nginx/access.cake1.3.log;    

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

    location = /favicon.ico {
	access_log off;
	log_not_found off;
    }

    location / {
	index index.html index.php;
        if (-f $request_filename) {
            break;
        }
        #this part important for cakePHP rewrite
        rewrite ^(.+)$ /index.php?url=$1 last;
    }

    location ~ \.php$ {
     	fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include /Applications/MNPP/conf/nginx/fastcgi_params;
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/jom-belajar-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx equilvalent of Wamp/Mamp?</title>
		<link>http://ibnuyahya.com/nginx-equilvalent-of-wampmamp/</link>
		<comments>http://ibnuyahya.com/nginx-equilvalent-of-wampmamp/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 14:28:31 +0000</pubDate>
		<dc:creator>ibnuyahya</dc:creator>
				<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://ibnuyahya.com/?p=776</guid>
		<description><![CDATA[If you are looking for equilvalent of wamp or mamp for nginx, you should try mnpp ( Mac + Nginx + Percona + PHP or Python ) . This is the only one-click installer for nginx I ever seen so far. If you found any other one-click installer for nginx, feel free to share with [...]]]></description>
			<content:encoded><![CDATA[<p>If you are looking for equilvalent of wamp or mamp for nginx, you should try mnpp ( Mac + Nginx + Percona + PHP or Python ) . This is the only one-click installer for nginx I ever seen so far. If you found any other one-click installer for nginx, feel free to share with us.<br />
<span id="more-776"></span></p>
<table style="width:auto;">
<tr>
<td><a href="https://picasaweb.google.com/lh/photo/4LBxO5-YP7j33lady3M_2NMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh4.googleusercontent.com/-jjUFswQLB-s/T040oIX93xI/AAAAAAAAAww/ZGAJZucv5S0/s800/gui_start_stop.jpg" height="203" width="173" /></a></td>
</tr>
<tr>
<td style="font-family:arial,sans-serif; font-size:11px; text-align:right">From <a href="https://picasaweb.google.com/113582587627619798293/IbnuyahyaCom?authuser=0&#038;feat=embedwebsite">ibnuyahya.com</a></td>
</tr>
</table>
<p>get more information about mnpp here <a href="http://getmnpp.org/" target="_blank">http://getmnpp.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ibnuyahya.com/nginx-equilvalent-of-wampmamp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc (Feed is rejected)
Page Caching using apc
Database Caching 63/106 queries in 0.015 seconds using apc
Object Caching 731/821 objects using apc

Served from: _ @ 2012-05-20 04:14:38 -->
