<?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>Orange Art</title>
	<atom:link href="http://orangeart.co.za/feed/" rel="self" type="application/rss+xml" />
	<link>http://orangeart.co.za</link>
	<description>Simply Stunning Digital Media Solutions</description>
	<lastBuildDate>Sun, 29 Apr 2012 08:26:32 +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>Proud moment for Orange Art as we launch Aluna Ice</title>
		<link>http://orangeart.co.za/orange-art-news/proud-moment-for-orange-art-as-we-launch-aluna-ice/</link>
		<comments>http://orangeart.co.za/orange-art-news/proud-moment-for-orange-art-as-we-launch-aluna-ice/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 20:52:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Orange Art News]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/?p=1159</guid>
		<description><![CDATA[As far as portfolios go, we are certainly very proud of what we have achieved with AlunaIce. More than just a Shopping Cart and Ecommerce solution; the site features a very impressive &#8220;Ring Configurator&#8221;, that enables clients to customise their own rings with diamonds and various other exact specifications; tailoring their very own master-piece. The [...]]]></description>
			<content:encoded><![CDATA[<p>As far as portfolios go, we are certainly very proud of what we have achieved with <a href="http://orangeart.co.za/portfolio/aluna-ice/">AlunaIce</a>. More than just a Shopping Cart and Ecommerce solution; the site features a very impressive &#8220;Ring Configurator&#8221;, that enables clients to customise their own rings with diamonds and various other exact specifications; tailoring their very own master-piece. The technology behind the configurator was developed in such a way that allows administrators to simply drag and drop new ring styles, diamond cuts, gemstones and other customisable pieces into the application. The configurator is fully &#8216;mobile-friendly&#8217; and plays nicely with IOS, Android and Blackberry platforms; giving AlunaIce full mobile user coverage.</p>
<p>&nbsp;</p>
<p><a href="http://orangeart.co.za/portfolio/aluna-ice/">See the design details.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/orange-art-news/proud-moment-for-orange-art-as-we-launch-aluna-ice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Experiments with Varnish / NGINX / Apache on Centos</title>
		<link>http://orangeart.co.za/tips-and-tricks/experiments-with-varnish-nginx-apache-on-centos/</link>
		<comments>http://orangeart.co.za/tips-and-tricks/experiments-with-varnish-nginx-apache-on-centos/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 10:30:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Latest Blog]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/?p=175</guid>
		<description><![CDATA[Ok so here&#8217;s the scenario: We currently have a stock standard LAMP stack running all of our PHP applications &#8211; Forum / Blog / Wiki and a few other bits and pieces. All of them are connecting to a separate dB Server sitting on an internal VM with a hand full of default / out-the-box [...]]]></description>
			<content:encoded><![CDATA[<p>Ok so here&#8217;s the scenario:</p>
<p>We currently have a stock standard LAMP stack running all of our PHP applications &#8211; Forum / Blog / Wiki and a few other bits and pieces. All of them are connecting to a separate dB Server sitting on an internal VM with a hand full of default / out-the-box performance enhancements; ie: mod_deflate; expire headers; gzip compression etc&#8230; However; we want it to be better! How do we go about this? Enter: <a href="http://nginx.org/">NGINX</a> (eNgine-X) and <a href="http://www.varnish-cache.org">Varnish</a>! =]</p>
<p>So do we completely replace Apache with NGINX? No! Simply because we have over a years worth of re-write URLs and other very &#8220;Apache specific&#8221; enhancements. So this is where the fun begins ;]</p>
<p><strong>NOTE:</strong> <em>This guide assumes that you are very familiar with CENTOS and have a standard LAMP Stack (Mininum Apache Stand-Alone) already installed and fully functioning in a development / test environment. DO NOT USE ANY OF THE FOLLOWING ON A PRODUCTION SERVER UNLESS TESTED IN FULL!</em></p>
<p><strong>First off; install NGINX.</strong> &#8211; You&#8217;ll need to enable the EPEL Repos if you haven&#8217;t already, and also make sure you grab the correct version for your OS ( RHEL [4 / 5 / 6] ). If you already have the EPEL Repo&#8217;s enabled just skip the first step here.</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/$(uname -m)/epel-release-6-5.noarch.rpm</span>
<span style="color: #666666; font-style: italic;"># yum install nginx</span></pre>
</div>
</div>
<p><strong>Once NGINX is installed we move straight onto Varnish:</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># rpm --nosignature -i http://repo.varnish-cache.org/redhat/el5/noarch/varnish-release-2.1-2.noarch.rpm</span>
<span style="color: #666666; font-style: italic;"># yum install varnish</span></pre>
</div>
</div>
<p>Now that that we have the base installations done we can move onto the configuration of Apache, Varnish and NGINX in a nice transparent manner.<br />
<br style="clear: both" /><br style="clear: both" /><br />
<img src="http://orangeart.co.za/wp-content/uploads/2011/03/logo-apache.jpg" alt="" title="logo-apache" width="200" height="64" class="alignleft size-full wp-image-177" /><br />
<br style="clear: both" /></p>
<h2><strong>Apache Configuration:</strong></h2>
<p>To start off with; you&#8217;ll need to change your Apache configuration a little.<br />
First you will need to disable the port listener in the &#8220;httpd.conf&#8221; &#8211; <strong>default /etc/httpd/conf/httpd.conf</strong>:</p>
<p><strong>Find:</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;">Listen <span style="color: #000000;">80</span></pre>
</div>
</div>
<p><strong>Replace with:</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Listen 80</span></pre>
</div>
</div>
<p>Now open up your virtual host config file and replace all the virtualhost ports to 8080 and also change any named virtual host directives to 8080:</p>
<p><strong>Find:</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;">NameVirtualHost yourhost:<span style="color: #000000;">80</span>
&nbsp;
.....</pre>
</div>
</div>
<p><strong>Replace with:</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;">NameVirtualHost <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000;">8080</span>
&nbsp;
.....</pre>
</div>
</div>
<p>Save and close up the virtual hosts file; you&#8217;re done with it for now.<br />
<br style="clear: both" /><br style="clear: both" /><br />
<img src="http://orangeart.co.za/wp-content/uploads/2011/03/nginx-logo.png" alt="" title="nginx-logo" width="235" height="60" class="alignleft size-full wp-image-178" /><br />
<br style="clear: both" /><br />
<h2><strong>NGINX Configuration:</strong></h2>
<p>We need to make some adjustments to out NGINX configs now. In your  nginx.conf &#8211; <strong>default /etc/nginx/nginx.conf</strong>.</p>
<p>Make sure that the default server listening port is set to 80.</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;">    <span style="color: #666666; font-style: italic;">#</span>
    <span style="color: #666666; font-style: italic;"># The default server</span>
    <span style="color: #666666; font-style: italic;">#</span>
    server <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        listen       <span style="color: #000000;">80</span>;
        server_name  _;</pre>
</div>
</div>
<p>That&#8217;s it, you&#8217;re done. You don&#8217;t need to change anything else in here; now we move onto the NGINX Virtual Host file &#8211; default <strong>/etc/nginx/conf.d/virtual.conf</strong></p>
<p>If there is anything in this file; I&#8217;d recommend either commenting it all out or creating a new one completely to avoid any conflicts. Remember; we&#8217;re trying to achieve setting up NGINX as a proxy pass through to Apache / Varnish, not set it up as a stand-alone server!</p>
<p>The Virtual Host Config for each of your proxy domains would look something like this:</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;">server <span style="color: #7a0874; font-weight: bold;">&#123;</span>
 listen <span style="color: #000000;">80</span>; <span style="color: #666666; font-style: italic;"># Default listen port</span>
 server_name yourdomain.com; <span style="color: #666666; font-style: italic;"># Your domain alias - can be subdomain</span>
 access_log <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>yourdomain-access.log;
 <span style="color: #c20cb9; font-weight: bold;">gzip</span> on; <span style="color: #666666; font-style: italic;"># Turn on gZip</span>
 gzip_disable msie6;
 gzip_static on;
 gzip_comp_level <span style="color: #000000;">9</span>;
 gzip_proxied any;
 gzip_types text<span style="color: #000000; font-weight: bold;">/</span>plain text<span style="color: #000000; font-weight: bold;">/</span>css application<span style="color: #000000; font-weight: bold;">/</span>x-javascript text<span style="color: #000000; font-weight: bold;">/</span>xml application<span style="color: #000000; font-weight: bold;">/</span>xml application<span style="color: #000000; font-weight: bold;">/</span>xml+rss text<span style="color: #000000; font-weight: bold;">/</span>javascript;
&nbsp;
 location <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
  proxy_redirect off; <span style="color: #666666; font-style: italic;"># Do not redirect this proxy - It needs to be pass-through</span>
  proxy_set_header Host <span style="color: #007800;">$host</span>;
  proxy_set_header X-Real-IP <span style="color: #007800;">$remote_addr</span>;
  proxy_set_header X-Forwarded-For <span style="color: #007800;">$proxy_add_x_forwarded_for</span>;
  proxy_set_header X-Server-Address <span style="color: #007800;">$server_addr</span>;
  proxy_pass_header Set-Cookie;
  proxy_pass http:<span style="color: #000000; font-weight: bold;">//</span>127.0.0.1:<span style="color: #000000;">6081</span>; <span style="color: #666666; font-style: italic;"># Pass all traffic through to Varnish</span>
 <span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre>
</div>
</div>
<p>You can add as many virtual host entries as you like; all the domains that you want proxied through to Varnish / Apache must point to the same proxy_pass http://127.0.0.1:6081. Save and close; we&#8217;re done with the virtual host configs for now.<br />
<br style="clear: both" /><br style="clear: both" /><br />
<img src="http://orangeart.co.za/wp-content/uploads/2011/03/varnish-logo-red-64.gif" alt="" title="varnish-logo-red-64" width="235" height="64" class="alignleft size-full wp-image-179" /><br />
<br style="clear: both" /></p>
<h2><strong>Varnish Configuration:</strong></h2>
<p>Moving onto the last step; well, almost the last step: Setting up Varnish. We need to edit the default.vcl; default <strong>/etc/varnish/default.vcl</strong></p>
<p>All you need to do is change the default host and port entries:</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;">backend default <span style="color: #7a0874; font-weight: bold;">&#123;</span>
  .host = <span style="color: #ff0000;">&quot;localhost&quot;</span>;
  .port = <span style="color: #ff0000;">&quot;8080&quot;</span>; <span style="color: #666666; font-style: italic;"># This need to be the same as the Apache vHost port listener!</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre>
</div>
</div>
<p>Save and close; we&#8217;re done! Now we just start everything up and run one or two tests to make sure it&#8217;s all working as planned =]</p>
<p>Startup all the services:</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>unicore<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># /etc/init.d/httpd restart &amp;amp;&amp;amp; /etc/init.d/nginx restart &amp;amp;&amp;amp; /etc/init.d/varnish restart</span>
﻿﻿﻿Stopping httpd:                                  <span style="color: #7a0874; font-weight: bold;">&#91;</span>  OK  <span style="color: #7a0874; font-weight: bold;">&#93;</span>
Starting httpd:                                  <span style="color: #7a0874; font-weight: bold;">&#91;</span>  OK  <span style="color: #7a0874; font-weight: bold;">&#93;</span>
Stopping nginx:                                  <span style="color: #7a0874; font-weight: bold;">&#91;</span>  FAILED  <span style="color: #7a0874; font-weight: bold;">&#93;</span>
Starting nginx:                                  <span style="color: #7a0874; font-weight: bold;">&#91;</span>  OK  <span style="color: #7a0874; font-weight: bold;">&#93;</span>
Stopping varnish HTTP accelerator:               <span style="color: #7a0874; font-weight: bold;">&#91;</span>  FAILED  <span style="color: #7a0874; font-weight: bold;">&#93;</span>
Starting varnish HTTP accelerator:               <span style="color: #7a0874; font-weight: bold;">&#91;</span>  OK  <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>unicore<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#</span></pre>
</div>
</div>
<p>We use &#8216;restart&#8217; to initialise all the services just in-case any of them are already running.</p>
<p>Now just to test that Varnish and NGINX are running as intended along with Apache.</p>
<p>We&#8217;ve start off by checking that all traffic is actually being directed through NGINX:</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>unicore<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># ab -c 50 -n 100 http://yourdomain.com/index.php</span>
This is ApacheBench, Version <span style="color: #000000;">2.3</span> <span style="color: #000000; font-weight: bold;">&amp;</span>lt;<span style="color: #007800;">$Revision</span>: <span style="color: #000000;">655654</span> $<span style="color: #000000; font-weight: bold;">&amp;</span>gt;
Copyright <span style="color: #000000;">1996</span> Adam Twiss, Zeus Technology Ltd, http:<span style="color: #000000; font-weight: bold;">//</span>www.zeustech.net<span style="color: #000000; font-weight: bold;">/</span>
Licensed to The Apache Software Foundation, http:<span style="color: #000000; font-weight: bold;">//</span>www.apache.org<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
Benchmarking local.wordpress <span style="color: #7a0874; font-weight: bold;">&#40;</span>be patient<span style="color: #7a0874; font-weight: bold;">&#41;</span>.....done
&nbsp;
Server Software:        nginx<span style="color: #000000; font-weight: bold;">/</span>0.8.53
Server Hostname:        yourdomain.com
Server Port:            <span style="color: #000000;">80</span>
&nbsp;
Document Path:          <span style="color: #000000; font-weight: bold;">/</span>index.php
Document Length:        <span style="color: #000000;">0</span> bytes
&nbsp;
Concurrency Level:      <span style="color: #000000;">50</span>
Time taken <span style="color: #000000; font-weight: bold;">for</span> tests:   <span style="color: #000000;">0.167</span> seconds
Complete requests:      <span style="color: #000000;">100</span>
Failed requests:        <span style="color: #000000;">0</span>
Write errors:           <span style="color: #000000;">0</span>
Non-2xx responses:      <span style="color: #000000;">100</span>
Total transferred:      <span style="color: #000000;">36964</span> bytes
HTML transferred:       <span style="color: #000000;">0</span> bytes
Requests per second:    <span style="color: #000000;">597.74</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #666666; font-style: italic;">#/sec] (mean)</span>
Time per request:       <span style="color: #000000;">83.649</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>ms<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>mean<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Time per request:       <span style="color: #000000;">1.673</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>ms<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>mean, across all concurrent requests<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Transfer rate:          <span style="color: #000000;">215.77</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>Kbytes<span style="color: #000000; font-weight: bold;">/</span>sec<span style="color: #7a0874; font-weight: bold;">&#93;</span> received
&nbsp;
Connection Times <span style="color: #7a0874; font-weight: bold;">&#40;</span>ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
              min  mean<span style="color: #7a0874; font-weight: bold;">&#91;</span>+<span style="color: #000000; font-weight: bold;">/</span>-sd<span style="color: #7a0874; font-weight: bold;">&#93;</span> median   max
Connect:        <span style="color: #000000;">0</span>    <span style="color: #000000;">1</span>   <span style="color: #000000;">1.0</span>      <span style="color: #000000;">1</span>       <span style="color: #000000;">3</span>
Processing:     <span style="color: #000000;">5</span>   <span style="color: #000000;">79</span>  <span style="color: #000000;">72.2</span>    <span style="color: #000000;">149</span>     <span style="color: #000000;">153</span>
Waiting:        <span style="color: #000000;">5</span>   <span style="color: #000000;">79</span>  <span style="color: #000000;">72.1</span>    <span style="color: #000000;">149</span>     <span style="color: #000000;">153</span>
Total:          <span style="color: #000000;">5</span>   <span style="color: #000000;">80</span>  <span style="color: #000000;">73.0</span>    <span style="color: #000000;">152</span>     <span style="color: #000000;">154</span>
&nbsp;
Percentage of the requests served within a certain <span style="color: #000000; font-weight: bold;">time</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  <span style="color: #000000;">50</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">152</span>
  <span style="color: #000000;">66</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">153</span>
  <span style="color: #000000;">75</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">153</span>
  <span style="color: #000000;">80</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">153</span>
  <span style="color: #000000;">90</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">154</span>
  <span style="color: #000000;">95</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">154</span>
  <span style="color: #000000;">98</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">154</span>
  <span style="color: #000000;">99</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">154</span>
 <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span>    <span style="color: #000000;">154</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>longest request<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre>
</div>
</div>
<p>The key value we&#8217;re looking for here is the &#8220;Server Software&#8221;; if this still says <em>Apache</em> then you&#8217;ve done something wrong; in our case all is working as expected and we see that NGINX is taking care of all http requests.</p>
<p>The next step is to test Varnish with <em>varnishlog</em>:</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>unicore<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># varnishlog</span>
    <span style="color: #000000;">0</span> CLI          - Rd <span style="color: #c20cb9; font-weight: bold;">ping</span>
    <span style="color: #000000;">0</span> CLI          - Wr <span style="color: #000000;">200</span> <span style="color: #000000;">19</span> PONG <span style="color: #000000;">1301305458</span> <span style="color: #000000;">1.0</span>
    <span style="color: #000000;">0</span> CLI          - Rd <span style="color: #c20cb9; font-weight: bold;">ping</span>
    <span style="color: #000000;">0</span> CLI          - Wr <span style="color: #000000;">200</span> <span style="color: #000000;">19</span> PONG <span style="color: #000000;">1301305461</span> <span style="color: #000000;">1.0</span>
    <span style="color: #000000;">0</span> CLI          - Rd <span style="color: #c20cb9; font-weight: bold;">ping</span>
    <span style="color: #000000;">0</span> CLI          - Wr <span style="color: #000000;">200</span> <span style="color: #000000;">19</span> PONG <span style="color: #000000;">1301305464</span> <span style="color: #000000;">1.0</span>
    <span style="color: #000000;">0</span> CLI          - Rd <span style="color: #c20cb9; font-weight: bold;">ping</span>
    <span style="color: #000000;">0</span> CLI          - Wr <span style="color: #000000;">200</span> <span style="color: #000000;">19</span> PONG <span style="color: #000000;">1301305467</span> <span style="color: #000000;">1.0</span></pre>
</div>
</div>
<p>You should see a bunch of ping / PONG requests; this means that Varnish is at least running and listening for traffic. Now to test that it&#8217;s actually processing the cache requests through from NGINX.</p>
<p>With the varnishlog still running, go to your website address, with your browser of choice and hit CTRL+F5 to force refresh; now immediately tab back to the terminal running varishlog. You should see a similar output to the following:</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>unicore<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># varnishlog</span>
<span style="color: #666666; font-style: italic;"># varnishlog</span>
    <span style="color: #000000;">0</span> CLI          - Rd <span style="color: #c20cb9; font-weight: bold;">ping</span>
    <span style="color: #000000;">0</span> CLI          - Wr <span style="color: #000000;">200</span> <span style="color: #000000;">19</span> PONG <span style="color: #000000;">1301306037</span> <span style="color: #000000;">1.0</span>
   <span style="color: #000000;">13</span> SessionOpen  c 127.0.0.1 <span style="color: #000000;">43934</span> :<span style="color: #000000;">6081</span>
   <span style="color: #000000;">13</span> ReqStart     c 127.0.0.1 <span style="color: #000000;">43934</span> <span style="color: #000000;">1079128438</span>
   <span style="color: #000000;">13</span> RxRequest    c GET
   <span style="color: #000000;">13</span> RxURL        c <span style="color: #000000; font-weight: bold;">/</span>
   <span style="color: #000000;">13</span> RxProtocol   c HTTP<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1.0</span>
   <span style="color: #000000;">13</span> RxHeader     c Host:  yourdomain.com
   <span style="color: #000000;">13</span> RxHeader     c X-Real-IP: 127.0.0.1
   <span style="color: #000000;">13</span> RxHeader     c X-Forwarded-For: 127.0.0.1
   <span style="color: #000000;">13</span> RxHeader     c Connection: close
   <span style="color: #000000;">13</span> RxHeader     c User-Agent: Mozilla<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">5.0</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>X11; U; Linux x86_64; en-US<span style="color: #7a0874; font-weight: bold;">&#41;</span> AppleWebKit<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">534.16</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>KHTML, like Gecko<span style="color: #7a0874; font-weight: bold;">&#41;</span> Chrome<span style="color: #000000; font-weight: bold;">/</span>10.0.648.204 Safari<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">534.16</span>
   <span style="color: #000000;">13</span> RxHeader     c Accept: application<span style="color: #000000; font-weight: bold;">/</span>xml,application<span style="color: #000000; font-weight: bold;">/</span>xhtml+xml,text<span style="color: #000000; font-weight: bold;">/</span>html;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.9</span>,text<span style="color: #000000; font-weight: bold;">/</span>plain;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.8</span>,image<span style="color: #000000; font-weight: bold;">/</span>png,<span style="color: #000000; font-weight: bold;">*/*</span>;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.5</span>
   <span style="color: #000000;">13</span> RxHeader     c Accept-Encoding: <span style="color: #c20cb9; font-weight: bold;">gzip</span>,deflate,sdch
   <span style="color: #000000;">13</span> RxHeader     c Accept-Language: en-US,en;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.8</span>
   <span style="color: #000000;">13</span> RxHeader     c Accept-Charset: ISO-<span style="color: #000000;">8859</span>-<span style="color: #000000;">1</span>,utf-<span style="color: #000000;">8</span>;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.7</span>,<span style="color: #000000; font-weight: bold;">*</span>;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.3</span>
   <span style="color: #000000;">13</span> RxHeader     c Cookie: wp-settings-<span style="color: #000000;">1</span>=m6<span style="color: #000000; font-weight: bold;">%</span>3Do<span style="color: #000000; font-weight: bold;">%</span>26m9<span style="color: #000000; font-weight: bold;">%</span>3Do<span style="color: #000000; font-weight: bold;">%</span>26m4<span style="color: #000000; font-weight: bold;">%</span>3Do<span style="color: #000000; font-weight: bold;">%</span>26editor<span style="color: #000000; font-weight: bold;">%</span>3Dhtml<span style="color: #000000; font-weight: bold;">%</span>26m2<span style="color: #000000; font-weight: bold;">%</span>3Do<span style="color: #000000; font-weight: bold;">%</span>26m7<span style="color: #000000; font-weight: bold;">%</span>3Do<span style="color: #000000; font-weight: bold;">%</span>26m0<span style="color: #000000; font-weight: bold;">%</span>3Do<span style="color: #000000; font-weight: bold;">%</span>26m1<span style="color: #000000; font-weight: bold;">%</span>3Dc<span style="color: #000000; font-weight: bold;">%</span>26m5<span style="color: #000000; font-weight: bold;">%</span>3Do; wp-settings-time-<span style="color: #000000;">1</span>=<span style="color: #000000;">1299823407</span>
   <span style="color: #000000;">13</span> VCL_call     c recv
   <span style="color: #000000;">13</span> VCL_return   c lookup
   <span style="color: #000000;">13</span> VCL_call     c <span style="color: #7a0874; font-weight: bold;">hash</span>
   <span style="color: #000000;">13</span> VCL_return   c <span style="color: #7a0874; font-weight: bold;">hash</span>
   <span style="color: #000000;">13</span> VCL_call     c miss
   <span style="color: #000000;">13</span> VCL_return   c fetch
   <span style="color: #000000;">14</span> BackendOpen  b default 127.0.0.1 <span style="color: #000000;">54955</span> 127.0.0.1 <span style="color: #000000;">8080</span>
   <span style="color: #000000;">13</span> Backend      c <span style="color: #000000;">14</span> default default
   <span style="color: #000000;">14</span> TxRequest    b GET
   <span style="color: #000000;">14</span> TxURL        b <span style="color: #000000; font-weight: bold;">/</span>
   <span style="color: #000000;">14</span> TxProtocol   b HTTP<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1.1</span>
   <span style="color: #000000;">14</span> TxHeader     b Host: yourdomain.com
   <span style="color: #000000;">14</span> TxHeader     b X-Real-IP: 127.0.0.1
   <span style="color: #000000;">14</span> TxHeader     b User-Agent: Mozilla<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">5.0</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>X11; U; Linux x86_64; en-US<span style="color: #7a0874; font-weight: bold;">&#41;</span> AppleWebKit<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">534.16</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>KHTML, like Gecko<span style="color: #7a0874; font-weight: bold;">&#41;</span> Chrome<span style="color: #000000; font-weight: bold;">/</span>10.0.648.204 Safari<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">534.16</span>
   <span style="color: #000000;">14</span> TxHeader     b Accept: application<span style="color: #000000; font-weight: bold;">/</span>xml,application<span style="color: #000000; font-weight: bold;">/</span>xhtml+xml,text<span style="color: #000000; font-weight: bold;">/</span>html;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.9</span>,text<span style="color: #000000; font-weight: bold;">/</span>plain;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.8</span>,image<span style="color: #000000; font-weight: bold;">/</span>png,<span style="color: #000000; font-weight: bold;">*/*</span>;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.5</span>
   <span style="color: #000000;">14</span> TxHeader     b Accept-Language: en-US,en;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.8</span>
   <span style="color: #000000;">14</span> TxHeader     b Accept-Charset: ISO-<span style="color: #000000;">8859</span>-<span style="color: #000000;">1</span>,utf-<span style="color: #000000;">8</span>;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.7</span>,<span style="color: #000000; font-weight: bold;">*</span>;<span style="color: #007800;">q</span>=<span style="color: #000000;">0.3</span>
   <span style="color: #000000;">14</span> TxHeader     b Accept-Encoding: <span style="color: #c20cb9; font-weight: bold;">gzip</span>
   <span style="color: #000000;">14</span> TxHeader     b X-Forwarded-For: 127.0.0.1, 127.0.0.1
   <span style="color: #000000;">14</span> TxHeader     b X-Varnish: <span style="color: #000000;">1079128438</span>
   <span style="color: #000000;">14</span> RxProtocol   b HTTP<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1.1</span>
   <span style="color: #000000;">14</span> RxStatus     b <span style="color: #000000;">200</span>
   <span style="color: #000000;">14</span> RxResponse   b OK
   <span style="color: #000000;">14</span> RxHeader     b Date: Mon, <span style="color: #000000;">28</span> Mar <span style="color: #000000;">2011</span> 09:<span style="color: #000000;">53</span>:<span style="color: #000000;">59</span> GMT
   <span style="color: #000000;">14</span> RxHeader     b Server: Apache<span style="color: #000000; font-weight: bold;">/</span>2.2.17 <span style="color: #7a0874; font-weight: bold;">&#40;</span>Fedora<span style="color: #7a0874; font-weight: bold;">&#41;</span>
   <span style="color: #000000;">14</span> RxHeader     b X-Powered-By: PHP<span style="color: #000000; font-weight: bold;">/</span>5.3.5
   <span style="color: #000000;">14</span> RxHeader     b X-Pingback: http:<span style="color: #000000; font-weight: bold;">//</span> yourdomain.com<span style="color: #000000; font-weight: bold;">/</span>xmlrpc.php
   <span style="color: #000000;">14</span> RxHeader     b Connection: close
   <span style="color: #000000;">14</span> RxHeader     b Transfer-Encoding: chunked
   <span style="color: #000000;">14</span> RxHeader     b Content-Type: text<span style="color: #000000; font-weight: bold;">/</span>html; <span style="color: #007800;">charset</span>=UTF-<span style="color: #000000;">8</span></pre>
</div>
</div>
<p>You&#8217;re all set! Now you can begin your own load-testing / benchmarking and once you&#8217;re happy with it; you can simply copy the steps and the configs over to your production environment and start enjoying a much quicker, more responsive webserver! Have fun ;]</p>
<p>Added &#8220;bonus&#8221;; see below for actual production server &#8220;Before&#8221; and &#8220;After&#8221; benchmarks with ApacheBench:</p>
<h2>BEFORE:</h2>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>xxxxxxxxxx ~<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># ab -c 50 -n 1000 http://xxxxxxxxxx.co.za/index.php</span>
&nbsp;
This is ApacheBench, Version 2.0.40-dev <span style="color: #000000; font-weight: bold;">&amp;</span>lt;<span style="color: #007800;">$Revision</span>: <span style="color: #000000;">1.146</span> $<span style="color: #000000; font-weight: bold;">&amp;</span>gt; apache-<span style="color: #000000;">2.0</span>
Copyright <span style="color: #000000;">1996</span> Adam Twiss, Zeus Technology Ltd, http:<span style="color: #000000; font-weight: bold;">//</span>www.zeustech.net<span style="color: #000000; font-weight: bold;">/</span>
Copyright <span style="color: #000000;">2006</span> The Apache Software Foundation, http:<span style="color: #000000; font-weight: bold;">//</span>www.apache.org<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
Benchmarking xxxxxxxxxx.co.za <span style="color: #7a0874; font-weight: bold;">&#40;</span>be patient<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
Server Software:        Apache
Server Hostname:        xxxxxxxxxx.co.za
Server Port:            xxxx
&nbsp;
Document Path:          <span style="color: #000000; font-weight: bold;">/</span>index.php
Document Length:        <span style="color: #000000;">135212</span> bytes
&nbsp;
Concurrency Level:      <span style="color: #000000;">50</span>
Time taken <span style="color: #000000; font-weight: bold;">for</span> tests:   <span style="color: #000000;">75.823314</span> seconds
Complete requests:      <span style="color: #000000;">1000</span>
Failed requests:        <span style="color: #000000;">262</span>
   <span style="color: #7a0874; font-weight: bold;">&#40;</span>Connect: <span style="color: #000000;">0</span>, Length: <span style="color: #000000;">262</span>, Exceptions: <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
Write errors:           <span style="color: #000000;">0</span>
Total transferred:      <span style="color: #000000;">135659520</span> bytes
HTML transferred:       <span style="color: #000000;">135201520</span> bytes
Requests per second:    <span style="color: #000000;">13.19</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #666666; font-style: italic;">#/sec] (mean)</span>
Time per request:       <span style="color: #000000;">3791.166</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>ms<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>mean<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Time per request:       <span style="color: #000000;">75.823</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>ms<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>mean, across all concurrent requests<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Transfer rate:          <span style="color: #000000;">1747.22</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>Kbytes<span style="color: #000000; font-weight: bold;">/</span>sec<span style="color: #7a0874; font-weight: bold;">&#93;</span> received
&nbsp;
Connection Times <span style="color: #7a0874; font-weight: bold;">&#40;</span>ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
              min  mean<span style="color: #7a0874; font-weight: bold;">&#91;</span>+<span style="color: #000000; font-weight: bold;">/</span>-sd<span style="color: #7a0874; font-weight: bold;">&#93;</span> median   max
Connect:        <span style="color: #000000;">0</span>    <span style="color: #000000;">0</span>   <span style="color: #000000;">0.6</span>      <span style="color: #000000;">0</span>       <span style="color: #000000;">4</span>
Processing:   <span style="color: #000000;">776</span> <span style="color: #000000;">3743</span> <span style="color: #000000;">2092.8</span>   <span style="color: #000000;">3534</span>   <span style="color: #000000;">38445</span>
Waiting:      <span style="color: #000000;">776</span> <span style="color: #000000;">3667</span> <span style="color: #000000;">2062.9</span>   <span style="color: #000000;">3475</span>   <span style="color: #000000;">38438</span>
Total:        <span style="color: #000000;">776</span> <span style="color: #000000;">3743</span> <span style="color: #000000;">2092.8</span>   <span style="color: #000000;">3534</span>   <span style="color: #000000;">38445</span>
&nbsp;
Percentage of the requests served within a certain <span style="color: #000000; font-weight: bold;">time</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  <span style="color: #000000;">50</span><span style="color: #000000; font-weight: bold;">%</span>   <span style="color: #000000;">3534</span>
  <span style="color: #000000;">66</span><span style="color: #000000; font-weight: bold;">%</span>   <span style="color: #000000;">3896</span>
  <span style="color: #000000;">75</span><span style="color: #000000; font-weight: bold;">%</span>   <span style="color: #000000;">4137</span>
  <span style="color: #000000;">80</span><span style="color: #000000; font-weight: bold;">%</span>   <span style="color: #000000;">4300</span>
  <span style="color: #000000;">90</span><span style="color: #000000; font-weight: bold;">%</span>   <span style="color: #000000;">4871</span>
  <span style="color: #000000;">95</span><span style="color: #000000; font-weight: bold;">%</span>   <span style="color: #000000;">5609</span>
  <span style="color: #000000;">98</span><span style="color: #000000; font-weight: bold;">%</span>   <span style="color: #000000;">6733</span>
  <span style="color: #000000;">99</span><span style="color: #000000; font-weight: bold;">%</span>  <span style="color: #000000;">11005</span>
 <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span>  <span style="color: #000000;">38445</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>longest request<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre>
</div>
</div>
<h2>AFTER:</h2>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>xxxxxxxxxx ~<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># ab -c 50 -n 1000 http://xxxxxxxxxx.co.za/index.php</span>
&nbsp;
This is ApacheBench, Version 2.0.40-dev <span style="color: #000000; font-weight: bold;">&amp;</span>lt;<span style="color: #007800;">$Revision</span>: <span style="color: #000000;">1.146</span> $<span style="color: #000000; font-weight: bold;">&amp;</span>gt; apache-<span style="color: #000000;">2.0</span>
Copyright <span style="color: #000000;">1996</span> Adam Twiss, Zeus Technology Ltd, http:<span style="color: #000000; font-weight: bold;">//</span>www.zeustech.net<span style="color: #000000; font-weight: bold;">/</span>
Copyright <span style="color: #000000;">2006</span> The Apache Software Foundation, http:<span style="color: #000000; font-weight: bold;">//</span>www.apache.org<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
Benchmarking xxxxxxxxxx.co.za <span style="color: #7a0874; font-weight: bold;">&#40;</span>be patient<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
Server Software:        nginx<span style="color: #000000; font-weight: bold;">/</span>0.8.53
Server Hostname:        xxxxxxxxxx.co.za
Server Port:            xxxx
&nbsp;
Document Path:          <span style="color: #000000; font-weight: bold;">/</span>index.php
Document Length:        <span style="color: #000000;">135040</span> bytes
&nbsp;
Concurrency Level:      <span style="color: #000000;">50</span>
Time taken <span style="color: #000000; font-weight: bold;">for</span> tests:   <span style="color: #000000;">0.321759</span> seconds
Complete requests:      <span style="color: #000000;">1000</span>
Failed requests:        <span style="color: #000000;">0</span>
Write errors:           <span style="color: #000000;">0</span>
Total transferred:      <span style="color: #000000;">135374000</span> bytes
HTML transferred:       <span style="color: #000000;">135040000</span> bytes
Requests per second:    <span style="color: #000000;">3107.92</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #666666; font-style: italic;">#/sec] (mean)</span>
Time per request:       <span style="color: #000000;">16.088</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>ms<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>mean<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Time per request:       <span style="color: #000000;">0.322</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>ms<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>mean, across all concurrent requests<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Transfer rate:          <span style="color: #000000;">410869.66</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>Kbytes<span style="color: #000000; font-weight: bold;">/</span>sec<span style="color: #7a0874; font-weight: bold;">&#93;</span> received
&nbsp;
Connection Times <span style="color: #7a0874; font-weight: bold;">&#40;</span>ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
              min  mean<span style="color: #7a0874; font-weight: bold;">&#91;</span>+<span style="color: #000000; font-weight: bold;">/</span>-sd<span style="color: #7a0874; font-weight: bold;">&#93;</span> median   max
Connect:        <span style="color: #000000;">0</span>    <span style="color: #000000;">0</span>   <span style="color: #000000;">0.5</span>      <span style="color: #000000;">0</span>       <span style="color: #000000;">4</span>
Processing:     <span style="color: #000000;">4</span>   <span style="color: #000000;">15</span>   <span style="color: #000000;">1.7</span>     <span style="color: #000000;">15</span>      <span style="color: #000000;">22</span>
Waiting:        <span style="color: #000000;">0</span>   <span style="color: #000000;">14</span>   <span style="color: #000000;">2.1</span>     <span style="color: #000000;">15</span>      <span style="color: #000000;">22</span>
Total:          <span style="color: #000000;">4</span>   <span style="color: #000000;">15</span>   <span style="color: #000000;">1.6</span>     <span style="color: #000000;">15</span>      <span style="color: #000000;">22</span>
&nbsp;
Percentage of the requests served within a certain <span style="color: #000000; font-weight: bold;">time</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>ms<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  <span style="color: #000000;">50</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">15</span>
  <span style="color: #000000;">66</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">16</span>
  <span style="color: #000000;">75</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">16</span>
  <span style="color: #000000;">80</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">16</span>
  <span style="color: #000000;">90</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">16</span>
  <span style="color: #000000;">95</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">16</span>
  <span style="color: #000000;">98</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">17</span>
  <span style="color: #000000;">99</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">19</span>
 <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span>     <span style="color: #000000;">22</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>longest request<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/tips-and-tricks/experiments-with-varnish-nginx-apache-on-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flashplayer for Chrome on FC14 x64</title>
		<link>http://orangeart.co.za/tips-and-tricks/flashplayer-for-chrome-on-fc14-x64/</link>
		<comments>http://orangeart.co.za/tips-and-tricks/flashplayer-for-chrome-on-fc14-x64/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 13:43:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Latest Blog]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/?p=170</guid>
		<description><![CDATA[Ok so apparently the folks at Adobe still think there&#8217;s no need to create a direct / auto plugin for us 64 bit users. I mean really, why would they&#8230;? Anyway; it&#8217;s fairly straightforward to setup yourself, so if you&#8217;re struggling; here&#8217;s how: Grab the latest version of flashplayer from Adobe: http://get.adobe.com/flashplayer/?no_redirect Once you&#8217;ve got [...]]]></description>
			<content:encoded><![CDATA[<p>Ok so apparently the folks at Adobe still think there&#8217;s no need to create a direct / auto plugin for us 64 bit users. I mean really, why would they&#8230;? Anyway; it&#8217;s fairly straightforward to setup yourself, so if you&#8217;re struggling; here&#8217;s how:</p>
<p><strong>Grab the latest version of flashplayer from Adobe:</strong></p>
<p><strong> </strong></p>
<p><strong><a href="http://get.adobe.com/flashplayer/?no_redirect">http://get.adobe.com/flashplayer/?no_redirect</a></strong></p>
<p>Once you&#8217;ve got that; simply extract it to your &#8220;/lib64&#8243; folder. They are generally packed as &#8220;flashplayer&lt;version&gt;_64bit_linux_&lt;build&gt;.tar.gz&#8221; or something similar. After you&#8217;ve extracted the &#8216;libflashplayer.so&#8217; to the /lib64 directory; you need to create a link to it for  Chrome.</p>
<div class="wp_syntax">
<div class="code">
<pre class="code" style="font-family:monospace;"># cd /opt/google/chrome/
# mkdir plugins
# cd plugins
# ln -sf /lib64/libflashplayer.so libflashplayer.so</pre>
</div>
</div>
<p>Now restart Chrome and it should all be working as expected. You&#8217;re done! <img src='http://orangeart.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>If you do not see any flash elements; you will need to manually enable the plugins. Type &#8220;about:plugins&#8221; in the address bar and look for &#8220;Shockwave Flash&#8221;. Enable this and restart Chrome.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/tips-and-tricks/flashplayer-for-chrome-on-fc14-x64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phezulu Office Supplies</title>
		<link>http://orangeart.co.za/latest-blog/phezulu-office-supplies/</link>
		<comments>http://orangeart.co.za/latest-blog/phezulu-office-supplies/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 11:24:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Latest Blog]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/latest-portfolio/phezulu-office-supplies/</guid>
		<description><![CDATA[Client: Phezulu Office Supplies Type: Stationery Supplies Webite: http://www.phezuluos.co.za Brief: Supply of all office and school stationery.]]></description>
			<content:encoded><![CDATA[<ul>
<li><strong>Client:</strong> Phezulu Office Supplies</li>
<li><strong>Type:</strong> Stationery Supplies</li>
<li><strong>Webite:</strong> <a href="http://www.phezuluos.co.za/" target="new">http://www.phezuluos.co.za</a></li>
<li><strong>Brief:</strong> Supply of all office and school stationery.</li>
</ul>
<p><a href="http://orangeart.co.za/wp-content/uploads/2010/08/phezulu.png"><img src="http://orangeart.co.za/wp-content/uploads/2010/08/phezulu-300x231.png" alt="" title="phezulu" width="300" height="231" class="aligncenter size-medium wp-image-158" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/latest-blog/phezulu-office-supplies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing / Upgrading Thunderbird on Linux</title>
		<link>http://orangeart.co.za/tips-and-tricks/installing-upgrading-thunderbird-on-linux/</link>
		<comments>http://orangeart.co.za/tips-and-tricks/installing-upgrading-thunderbird-on-linux/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 11:27:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Latest Blog]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/orange-art-news/installing-upgrading-thunderbird-on-linux/</guid>
		<description><![CDATA[I&#8217;ve been trying to figure out how to gracefully upgrade my Thunderbird 2x to the new 3.x without having to migrate profiles and waste a lot of time. After reading up a few forum posts and release docs I figured out it was much easier than I thought it would be! Just grab a backup [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to figure out how to gracefully upgrade my Thunderbird 2x to the new 3.x without having to migrate profiles and waste a lot of time. After reading up a few forum posts and  release docs I figured out it was much easier than I thought it would be! <img src='http://orangeart.co.za/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Just grab a backup of your current mail and put that in a safe place:</p>
<div class="wp_syntax">
<table>
<tr>
<td class="line_numbers">
<pre>1
2
3
</pre>
</td>
<td class="code">
<pre class="html" style="font-family:monospace;">xjamesc@tigershark: cd .thunderbird
xjamesc@tigershark: cd &lt;profile-identifier&gt;.default
xjamesc@tigershark: tar cvf ~/mail-backup.tar Mail/</pre>
</td>
</tr>
</table>
</div>
<p>Now you&#8217;ll need to add the daily build into your APT source list and install Thunderbird 3.1</p>
<div class="wp_syntax">
<table>
<tr>
<td class="line_numbers">
<pre>1
2
3
</pre>
</td>
<td class="code">
<pre class="html" style="font-family:monospace;">xjamesc@tigershark:  sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa
xjamesc@tigershark:  sudo apt-get update
xjamesc@tigershark:  sudo apt-get install thunderbird-3.1 thunderbird-3.1-gnome-support</pre>
</td>
</tr>
</table>
</div>
<p>If all went well you should have the latest version of Thunderbird installed and working; which at the time of writing this was &#8220;Shredder &#8211; 3.1&#8243;</p>
<p>In the event of the update not picking up your old mail profile; simply pull the backups you created earlier and either import them or just dump them into the new profile&#8217;s mail folder. You may need to recreate the accounts before doing this but you&#8217;ll see right away at start up if it&#8217;s automatically imported everything.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/tips-and-tricks/installing-upgrading-thunderbird-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL – PHP Pagination</title>
		<link>http://orangeart.co.za/php-quickies/mysql-php-pagination/</link>
		<comments>http://orangeart.co.za/php-quickies/mysql-php-pagination/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 09:00:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Latest Blog]]></category>
		<category><![CDATA[PHP Quickies]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/?p=114</guid>
		<description><![CDATA[A quick HOWTO: Split long MySQL results into seperate pages. Note that this tutorial assumes you have at least basic knowledge in both PHP and MySQL. First of all, let&#8217;s see how it will look: < (R) Previous Page &#124; Next Page (R) > Where (R) is the number of results left of to come. [...]]]></description>
			<content:encoded><![CDATA[<p>A quick HOWTO: Split long MySQL results into seperate pages. Note that this tutorial assumes you have at least basic knowledge in both PHP and MySQL.</p>
<p>First of all, let&#8217;s see how it will look:</p>
<p>< (R) Previous Page | Next Page (R) ></p>
<p>Where (R) is the number of results left of to come.</p>
<p>Let&#8217;s begin with connecting to the database:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
  <span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;localhost&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;user&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;pass&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;orange_co_za&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Next, do the query:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$rowstart</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$rowstart</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$plus</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$rowstart</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$sql</span><span style="color: #339933;">=</span><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT * from templates limit <span style="color: #006699; font-weight: bold;">$rowstart</span>, <span style="color: #006699; font-weight: bold;">$plus</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$numrows</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT * from templates&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Then the while loop:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> MYSQL_BOTH<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  RESULT <span style="color: #000088;">$rows</span><span style="color: #339933;">=</span><span style="color: #000088;">$rows</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p><strong>Wait a minute&#8230; This is going way too fast!</strong><br />
Let&#8217;s explain a couple of things</p>
<p>Check if the $rowstart variable is set, if not, set it to 0.<br />
The rowstart variable set&#8217;s the row where the query begins</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$rowstart</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$rowstart</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>Now setting the number of results we want shown:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$plus</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$rowstart</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>With this data set, we can do the query, where the $numrows variable is the number of rows, counted from the query:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">  <span style="color: #000088;">$sql</span><span style="color: #339933;">=</span><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT * from templates limit <span style="color: #006699; font-weight: bold;">$rowstart</span>, <span style="color: #006699; font-weight: bold;">$plus</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$numrows</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT * from templates&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>This code is for counting the number of results on the page.</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">  <span style="color: #000088;">$rows</span><span style="color: #339933;">=</span><span style="color: #000088;">$rows</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Place this code whereever you want the < (R) Previous Page | Next Page (R) ><br />
to appear.</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$rowstart</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$rowstart</span><span style="color: #339933;">=</span><span style="color: #000088;">$rowstart</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;A HREF=?x=70&amp;rowstart=&quot;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$rowstart</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&gt; &lt; (5) Previous Page |&lt;/A&gt;&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$rowstart</span><span style="color: #339933;">=</span><span style="color: #000088;">$rowstart</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$rowsleft</span><span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$numrows</span><span style="color: #339933;">-</span><span style="color: #000088;">$rows</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #000088;">$rowstart</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$rowsleft</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$rowstart</span><span style="color: #339933;">=</span><span style="color: #000088;">$rowstart</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;A HREF=?x=70&amp;rowstart=&quot;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$rowstart</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&gt; Next Page (<span style="color: #006699; font-weight: bold;">$rowsleft</span>) &gt;&lt;/A&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>Have fun! </p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/php-quickies/mysql-php-pagination/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A quick introduction to OoP (yes, again)</title>
		<link>http://orangeart.co.za/php-quickies/a-quick-introduction-to-oop-yes-again/</link>
		<comments>http://orangeart.co.za/php-quickies/a-quick-introduction-to-oop-yes-again/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 18:23:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP Quickies]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/php-quickies/a-quick-introduction-to-oop-yes-again/</guid>
		<description><![CDATA[One of the most common programming concepts in the world is OOP, which stands for Object-Oriented Programming. Using this technique, programmers manipulate objects, which are made of functions and variables, instead of manipulating the functions and variables themselves. Let’s say that you develop an e-commerce web-site. You could use an object to manage a shopping [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most common programming concepts in the world is OOP, which stands for Object-Oriented Programming. Using this technique, programmers manipulate objects, which are made of functions and variables, instead of manipulating the functions and variables themselves. Let’s say that you develop an e-commerce web-site. You could use an object to manage a shopping cart, and assign the object different properties and methods, based on what you want it to do. Properties stand for variables holding the information about the object (for example: the name, items in the cart, total value of the items, etc.), and methods stand for the functions that can be used with the object (for example: add an item into the cart, remove an item, empty cart, etc.)</p>
<p>It sounds simple, doesn’t it? Well, it really is, but for an object to be defined, you have to have a template on which you will define the object. This is where classes come in. A class is a blueprint for one or more objects. Therefore, an object is to a class what a variable is to a type. A class is a set of characteristics, and an object is entity that is defined based on those characteristics. Another example: let’s think about a &#8216;cellphone&#8217; class. Such a class could have a characteristic (property) called “model” for example. All objects created based on this class would have such a characteristic, but some objects would initialize this property to “v600”, others to “d500”, and so on. This means that the class only holds a definition, and the object holds the actual value.</p>
<p>You can declare a class by using the “class” keyword. Let’s define a simple class:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> cellphone_class <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$model</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//the model of the cellphone</span>
  <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$manf</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//the manufacturer</span>
  <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$price</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//the price of the cellphone</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> is_cheap<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>  <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">price</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">2000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//returns TRUE if the price is smaller than 2000 Rands</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>In this small example you can notice some of the most important aspects of a class. After the declaration of the class, you can see the variables used within the class, which are called properties. These are declared using the &#8220;var&#8221; statement. While they can be defined anywhere within the class, you should really define them at the very top, so you can better see the class’ properties. The functions within the class are called methods; they’re used to manipulate the class’ properties and produce results. In that simple method you can see that when we use a class method or property, we must use the “->” operator. The keyword “this” tells PHP that the property of method belongs to the class being defined.</p>
<p>An object is a special variable that contains a bundle of other variables and functions; you always have to use a class upon which to create an object. But, unlike a class, you won&#8217;t need to write any code, nor you will see how the class actually works. While you may first think that this isn’t so great, in fact this is one of the main concepts of object-oriented programming. You only have to create the class once, then you can create a zillion objects, in a zillion other projects.</p>
<p>While a class only exists in code and is considered to be a blueprint, an object exists in memory and is a working instance of a class. An instance of an object is created using the &#8220;new&#8221; statement along with the name of the class the object is based on. Let’s return to our cellphone class:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$phone_object</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> cellphone_class<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$phone_object</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">model</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;v620&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$phone_object</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">price</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2000</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$phone_object</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">is_cheap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;This phone is cheap!&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;This phone is expensive!&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>You can see that we use the &#8220;->&#8221; operator to access and modify object’s properties. After that, we use the same operator to call a method.</p>
<p>Perhaps the greatest benefit of object-oriented code is its reusability. Because the classes used to create objects are self-enclosed, they can be easily pulled from one project and inserted into another. Additionally, it is possible to create child classes that inherit and/or override the characteristics of their parents. This technique allows you to create more complex and specialized objects. Even if you start with a small class, you can develop it to a complex class by time, with adding more properties and objects to its children classes. </p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/php-quickies/a-quick-introduction-to-oop-yes-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy Easter!</title>
		<link>http://orangeart.co.za/orange-art-news/happy-easter/</link>
		<comments>http://orangeart.co.za/orange-art-news/happy-easter/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 03:40:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Orange Art News]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/orange-art-news/happy-easter/</guid>
		<description><![CDATA[Happy Good Friday to you all! Hope the Easter Bunny spoils you and you have a super long weekend with your loved ones! The Orange Art Team]]></description>
			<content:encoded><![CDATA[<p>Happy Good Friday to you all!</p>
<p>Hope the Easter Bunny spoils you and you have a super long weekend with your loved ones!</p>
<p>The Orange Art Team</p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/orange-art-news/happy-easter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>World Cup Special</title>
		<link>http://orangeart.co.za/orange-art-news/world-cup-special/</link>
		<comments>http://orangeart.co.za/orange-art-news/world-cup-special/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 04:35:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Orange Art News]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/orange-art-news/world-cup-special/</guid>
		<description><![CDATA[Hi Everyone! April has started already &#8211; only 2 months to go to the World Cup!  Hope you are all prepared, got your team shirts and schedules planned! While you are enjoying the World Cup, why not let a Website promote your business? We are running a new special :  NO Design Fees will be [...]]]></description>
			<content:encoded><![CDATA[<p>Hi Everyone!</p>
<p>April has started already &#8211; only 2 months to go to the World Cup!  Hope you are all prepared, got your team shirts and schedules planned!</p>
<p>While you are enjoying the World Cup, why not let a Website promote your business?</p>
<p>We are running a new special :  NO Design Fees will be charged, subject to signing a 12-month maintenance contract for R456 per month, inclusive of VAT!</p>
<p>This is the perfect deal, saving you loads of money and promoting your business in one of the most effective ways possible!</p>
<p>Contact me now to get this fantastic offer!</p>
<p>Looking forward to hearing from you!</p>
<p>Please stay safe during the Easter Holidays!</p>
<p>Jangy <img src='http://orangeart.co.za/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>jangeline@orangeart.co.za</p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/orange-art-news/world-cup-special/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emogrifier&#8230; you absolute life saver </title>
		<link>http://orangeart.co.za/tips-and-tricks/emogrifier-you-absolute-life-saver/</link>
		<comments>http://orangeart.co.za/tips-and-tricks/emogrifier-you-absolute-life-saver/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 09:42:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://orangeart.co.za/orange-art-news/emogrifier-you-absolute-life-saver/</guid>
		<description><![CDATA[It&#8217;s not very often that I &#8220;praise&#8221; another website for services or products, but I came across this beauty of a site and have used it constantly over the last 2 weeks for newsletter campaigns :: http://www.pelagodesign.com/sidecar/emogrifier/ If you need your html / xhtml converted into an &#8220;Outlook&#8221; friendly format then you absolutely have to [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s not very often that I &#8220;praise&#8221; another website for services or products, but I came across this beauty of a site and have used it constantly over the last 2 weeks for newsletter campaigns ::</p>
<p><a href="http://www.pelagodesign.com/sidecar/emogrifier/" target="new">http://www.pelagodesign.com/sidecar/emogrifier/</a></p>
<p>If you need your html / xhtml converted into an &#8220;Outlook&#8221; friendly format then you absolutely have to use this&#8230; it even does Google mail too! Amazing work guys; thank you!</p>
<p>James =]</p>
]]></content:encoded>
			<wfw:commentRss>http://orangeart.co.za/tips-and-tricks/emogrifier-you-absolute-life-saver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

