<?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>Clker.com - weblog &#187; Internet general</title>
	<atom:link href="http://www.clker.com/blog/category/internet-general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clker.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 21 Nov 2009 03:49:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Linux spirits crawling in chrome</title>
		<link>http://www.clker.com/blog/2008/09/06/linux-spirits-crawling-in-chrome/</link>
		<comments>http://www.clker.com/blog/2008/09/06/linux-spirits-crawling-in-chrome/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 19:59:39 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[Internet general]]></category>
		<category><![CDATA[chrome browser internet google]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/?p=133</guid>
		<description><![CDATA[There&#8217;s been tons of reviews on chrome, literaly minutes from its release and the news was full. One thing I noticed that I didn&#8217;t see anyone talking is the several chrome processes simultaneously running.
After some testing I realized that its using the same stability principles used in unix programs i.e. separate different jobs in different [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline; color: #0000ee;"><a href="http://www.clker.com/clipart-23125.html" target="_blank"></a></span><a href="http://www.clker.com/clipart-2094.html" target="_blank"><img style="border:0px;margin:5px;float:left;" title="Clipart by Nicu Buculei - svg_globe_green" src="http://www.clker.com/cliparts/e/3/1/3/1194984239216142382svg_globe_green.svg.thumb.png" alt="" /></a>There&#8217;s been <a href="http://www.zeldman.com/2008/09/03/a-bug-in-google-chrome/">tons</a> <a href="http://www.typepad.com/t/trackback/171706/33190442">of</a> <a href="http://ostatic.com/172520-blog/chrome-already-topping-opera-in-market-share#trackback">reviews</a> <a href="http://blog.statcounter.com/2008/09/chrome-whos-losing/trackback/">on</a> <a href="http://www.typepad.com/t/trackback/261540/33053444">chrome</a>, literaly minutes from its release and the news was full. One thing I noticed that I didn&#8217;t see anyone talking is the several chrome processes simultaneously running.</p>
<p>After some testing I realized that its using the same stability principles used in unix programs i.e. separate different jobs in different spawned processes. In case any of them crashes, the rest will still live. In case of chrome each processes is responsible for a tab. This defends against badly written javascript pages. Just in case you open a page with bad JS and it hangs, this shouldn&#8217;t hang the rest of the tabs.</p>
<p><a href="http://www.clker.com/blog/wp-content/uploads/2008/09/chrome.png"></a><a href="http://www.clker.com/blog/wp-content/uploads/2008/09/chrome.png"><img class="alignleft size-medium wp-image-134" title="chrome" src="http://www.clker.com/blog/wp-content/uploads/2008/09/chrome.png" alt="" width="147" height="145" /></a>I also did some testing using <a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx">process explorer</a>, and found that the parent process also seems to be responsible for a tab. If that tab hangs and you kill it, then all of child processes responsible for the rest of the tabs will die as well.</p>
<p>I haven&#8217;t seen programs designed to run under windows and using a multiprocess model to enhance its stability before. I didn&#8217;t look in the source code, but it seems that there&#8217;s a lot of consideration taken in its design process.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2008/09/06/linux-spirits-crawling-in-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GNUPlot wordpress plugin v1.1</title>
		<link>http://www.clker.com/blog/2008/07/18/gnuplot-wordpress-plugin-v11/</link>
		<comments>http://www.clker.com/blog/2008/07/18/gnuplot-wordpress-plugin-v11/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 21:11:43 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[GNUPlot plugin]]></category>
		<category><![CDATA[Internet general]]></category>
		<category><![CDATA[Internet programming]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/?p=101</guid>
		<description><![CDATA[<!--GNUPLOT code:

set size 1,0.7
set dummy u,v
unset key
set parametric
set view 60, 30, 1.1, 1.33
set isosamples 50, 20
set title "Interlocking Tori - PM3D surface with depth sorting"
set urange [ -3.14159 : 3.14159 ] noreverse nowriteback
set vrange [ -3.14159 : 3.14159 ] noreverse nowriteback
set pm3d depthorder
splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v) with pm3d,\
1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v) with pm3d

-->Plots GNUPlot charts without GNUPlot on your server. This plugin communicates with our custom version of GNUPlot hosted at clker.com, and responds with a PNG chart or errors in case of errors.
Write your GNUPlot code between [ gplot] and [ /gplot] (without spaces). Maximum chart size is 1&#215;1.
To install

Copy the file ( gnuplot plugin ) [...]]]></description>
			<content:encoded><![CDATA[<!--GNUPLOT code:

set size 1,0.7
set dummy u,v
unset key
set parametric
set view 60, 30, 1.1, 1.33
set isosamples 50, 20
set title "Interlocking Tori - PM3D surface with depth sorting"
set urange [ -3.14159 : 3.14159 ] noreverse nowriteback
set vrange [ -3.14159 : 3.14159 ] noreverse nowriteback
set pm3d depthorder
splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v) with pm3d,\
1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v) with pm3d

--><p>Plots GNUPlot charts without GNUPlot on your server. This plugin communicates with our custom version of GNUPlot hosted at clker.com, and responds with a PNG chart or errors in case of errors.</p>
<p>Write your GNUPlot code between [ gplot] and [ /gplot] (without spaces). Maximum chart size is 1&#215;1.</p>
<p>To install</p>
<ol>
<li>Copy the file ( <a href="http://www.clker.com/blog/wp-content/uploads/2008/07/gnuplot.phptxt">gnuplot plugin</a> ) in you wp-content/plugins directory, and rename to .php instead of .phptxt.</li>
<li>Create wp-content/cache directory, and make sure it is write able to the webserver</li>
<li>Activate the plugin from the plugins tab inside wordpress</li>
</ol>
<p>Example:</p>
<p>[ gplot]</p>
<pre>set size 1,0.7
set dummy u,v
unset key
set parametric
set view 60, 30, 1.1, 1.33
set isosamples 50, 20
set title "Interlocking Tori - PM3D surface with depth sorting"
set urange [ -3.14159 : 3.14159 ] noreverse nowriteback
set vrange [ -3.14159 : 3.14159 ] noreverse nowriteback
set pm3d depthorder
splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v) with pm3d,\
1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v) with pm3d</pre>
<p>[/ gplot]</p>
<p>would produce this:</p>
<p><center><a href='http://www.clker.com/blog/2008/07/16/gnuplot-wordpress-plugin/'><img src="http://www.clker.com/blog/wp-content/cache/plot_a56834641bf4085dfb2d89574ebdb210.png" style="border:none;"/></a></center></p>
<p>&#8230; Enjoy</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2008/07/18/gnuplot-wordpress-plugin-v11/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>GNUPlot wordpress plugin</title>
		<link>http://www.clker.com/blog/2008/07/16/gnuplot-wordpress-plugin/</link>
		<comments>http://www.clker.com/blog/2008/07/16/gnuplot-wordpress-plugin/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 23:47:48 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[GNUPlot plugin]]></category>
		<category><![CDATA[Internet general]]></category>
		<category><![CDATA[Internet programming]]></category>
		<category><![CDATA[clker.com]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[gnuplot]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/?p=84</guid>
		<description><![CDATA[<!--GNUPLOT code:

set size 0.75, 0.3
set xrange[0:5]
plot sin(x) title "sin(x)", sin(2*x) title "sin(2x)"

-->Newer version is here
While I was writing the repeated images identification post, I modified the mimetex wordpress plugin to be the GNUPlot wordpress plugin.
The plugin executes GNUPlot over any portion of the text enclosed between [ gplot] and [/ gplot] tags, without the spaces of course.
Example:
[ gplot]
set size 0.75, 0.3
set xrange[0:5]
plot sin(x) title &#8220;sin(x)&#8221;, sin(2*x) [...]]]></description>
			<content:encoded><![CDATA[<!--GNUPLOT code:

set size 0.75, 0.3
set xrange[0:5]
plot sin(x) title "sin(x)", sin(2*x) title "sin(2x)"

--><p><a href="http://www.clker.com/blog/2008/07/18/gnuplot-wordpress-plugin-v11/"><strong>Newer version is here</strong></a></p>
<p><a href="http://www.clker.com/clipart-21563.html" target="_blank"><img style="border:0px;margin:5px;float:left;" title="Education Graph" src="http://www.clker.com/cliparts/7/3/f/b/1214899020335331858Education-GRAPH1.svg.thumb.png" alt="" /></a>While I was writing the <a href="http://www.clker.com/blog/2008/07/16/finding-repeated-images-part-1-vector-similarity-measures/">repeated images identification post</a>, I modified the mimetex wordpress plugin to be the GNUPlot wordpress plugin.</p>
<p>The plugin executes GNUPlot over any portion of the text enclosed between [ gplot] and [/ gplot] tags, without the spaces of course.</p>
<p><strong>Example:</strong></p>
<p>[ gplot]</p>
<p>set size 0.75, 0.3</p>
<p>set xrange[0:5]</p>
<p>plot sin(x) title &#8220;sin(x)&#8221;, sin(2*x) title &#8220;sin(2x)&#8221;</p>
<p>[/ gplot]</p>
<p>would generate:</p>
<p><center><a href='http://www.clker.com/blog/2008/07/16/gnuplot-wordpress-plugin/'><img src="http://www.clker.com/blog/wp-content/cache/plot_50761339280dc573227d6370bf5fa2ae.png" style="border:none;"/></a></center></p>
<p><strong>Download:</strong> Download the <a href="http://www.clker.com/blog/wp-content/uploads/2008/07/gnuplot-pluginphp.txt">GNUPlot plugin for wordpress</a></p>
<p><strong>Installation:</strong></p>
<p>- Make sure that your server has gnuplot installed</p>
<p>- Create the directory &lt;wordpress&gt;/wp-content/cache, and make sure it is writable by the web server</p>
<p>Enjoy <img src='http://www.clker.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Technorati Tags: <a href="#" rel="tag">wordpress</a>, <a href="#" rel="tag"> chart</a>, <a href="#" rel="tag"> gnuplot</a>, <a href="#" rel="tag"> plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2008/07/16/gnuplot-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What are the candidates web servers?</title>
		<link>http://www.clker.com/blog/2008/06/13/what-are-the-candidates-web-servers/</link>
		<comments>http://www.clker.com/blog/2008/06/13/what-are-the-candidates-web-servers/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 15:43:20 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[Internet general]]></category>
		<category><![CDATA[barack]]></category>
		<category><![CDATA[clinton]]></category>
		<category><![CDATA[hillary]]></category>
		<category><![CDATA[john]]></category>
		<category><![CDATA[mccain]]></category>
		<category><![CDATA[obama]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webservers]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/?p=32</guid>
		<description><![CDATA[Using information from netcraft:
1. Barack obama, Linux &#038; FreeBSD
2. Hillary Clinton, Windows. Although she dropped out, but I wanted to know what they&#8217;re using
3. John McCain, WindowsTechnorati Tags: obama,  barack,  hillary,  clinton,  john,  mccain,  web,  servers,  webservers
]]></description>
			<content:encoded><![CDATA[<p>Using information from netcraft:<br />
1. <a href="http://searchdns.netcraft.com/?position=limited&#038;host=barackobama.com">Barack obama</a>, Linux &#038; FreeBSD<br />
2. <a href="http://searchdns.netcraft.com/?restriction=site+contains&#038;host=hillaryclinton.com&#038;lookup=wait..&#038;position=limited">Hillary Clinton</a>, Windows. Although she dropped out, but I wanted to know what they&#8217;re using<br />
3. <a href="http://searchdns.netcraft.com/?restriction=site+contains&#038;host=johnmccain.com&#038;lookup=wait..&#038;position=limited">John McCain</a>, Windows<br /><p>Technorati Tags: <a href="#" rel="tag">obama</a>, <a href="#" rel="tag"> barack</a>, <a href="#" rel="tag"> hillary</a>, <a href="#" rel="tag"> clinton</a>, <a href="#" rel="tag"> john</a>, <a href="#" rel="tag"> mccain</a>, <a href="#" rel="tag"> web</a>, <a href="#" rel="tag"> servers</a>, <a href="#" rel="tag"> webservers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2008/06/13/what-are-the-candidates-web-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 3 this Tuesday</title>
		<link>http://www.clker.com/blog/2008/06/12/firefox-3-this-tuesday/</link>
		<comments>http://www.clker.com/blog/2008/06/12/firefox-3-this-tuesday/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 15:24:19 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[Internet general]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[coming]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[tuesday]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/?p=30</guid>
		<description><![CDATA[I just read that firefox is releasing its final version 3 this Tuesday, June 17th. I&#8217;ve been using the 3 beta for a while now, and it is significantly faster and lighter than 2.0 . If you don&#8217;t use firefox, then you really should. It&#8217;s much better than IE, with way fewer quirks and safer. [...]]]></description>
			<content:encoded><![CDATA[<p>I just read that <a href="http://developer.mozilla.org/devnews/index.php/2008/06/11/coming-tuesday-june-17th-firefox-3/">firefox</a> <a href="http://www.thetechherald.com/article.php/200824/1225/Mozilla-Corp-confirms-Firefox-3-launch-for-July-17">is</a> <a href="http://ageekspot.wordpress.com/2008/06/12/firefox-3-june-17/">releasing</a> <a href="http://www.windowswatch.co.uk/2008/06/firefox-3-june-17.html">its</a> <a href="http://burace17.wordpress.com/2008/06/12/firefox-3-will-launch-on-june-17/">final</a> <a href="http://mashable.com/2008/06/12/firefox-3-coming-june-17th/">version 3</a> this Tuesday, June 17th. I&#8217;ve been using the 3 beta for a while now, and it is significantly faster and lighter than 2.0 . If you don&#8217;t use firefox, then you really should. It&#8217;s much better than IE, with way fewer quirks and safer. Opera is also better than IE, and even lighter than firefox. The main advantage that I get from firefox are plugins that are widely available.</p>
<p>Mozilla people have been working 34 months for this release, and everyone is having high expectations. Other than memory bloat fixes, I read somewhere that it will have a save as image, which is currently implemented in 2.0 using an extension. That&#8217;s another cool feature I&#8217;m looking forward to.</p>
<p>Technorati Tags: <a href="#" rel="tag">firefox</a>, <a href="#" rel="tag"> mozilla</a>, <a href="#" rel="tag"> browser</a>, <a href="#" rel="tag"> release</a>, <a href="#" rel="tag"> coming</a>, <a href="#" rel="tag"> tuesday</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2008/06/12/firefox-3-this-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a tar gz on the fly using PHP</title>
		<link>http://www.clker.com/blog/2008/03/27/creating-a-tar-gz-on-the-fly-using-php/</link>
		<comments>http://www.clker.com/blog/2008/03/27/creating-a-tar-gz-on-the-fly-using-php/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 17:41:53 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[Internet general]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[compress]]></category>
		<category><![CDATA[gz]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/2008/03/27/creating-a-tar-gz-on-the-fly-using-php/</guid>
		<description><![CDATA[A while ago, I thought about creating a tar.gz file for every download, so that if someone runs a search, he/she then can download all the images in the results. After a little bit of research, I found that PHP has a function for gzip. I also knew that the tar format just sticks files [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago, I thought about creating a tar.gz file for every download, so that if someone runs a search, he/she then can download all the images in the results. After a little bit of research, I found that PHP has a function for gzip. I also knew that the tar format just sticks files after one another, so if I can implement the tar format in PHP then I can gzip all images in the results.</p>
<p>I found <a href="http://www.koders.com/php/fidA384A1E097E7BEA8DB56698D0FE248C7E1D68DB4.aspx?s=smtp+server">this LGPL code</a> that implemented the tar format. I used it (and modified it a little bit) to produce the online tar.gz functions:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// Computes the unsigned Checksum of a file&#8217;s header</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// to try to ensure valid file</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// PRIVATE ACCESS FUNCTION</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> __computeUnsignedChecksum<span class="br0">&#40;</span><span class="re0">$bytestring</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span>=<span class="nu0">0</span>; <span class="re0">$i</span>&lt;<span class="nu0">512</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$unsigned_chksum</span> += <a href="http://www.php.net/ord"><span class="kw3">ord</span></a><span class="br0">&#40;</span><span class="re0">$bytestring</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span>=<span class="nu0">0</span>; <span class="re0">$i</span>&lt;<span class="nu0">8</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$unsigned_chksum</span> -= <a href="http://www.php.net/ord"><span class="kw3">ord</span></a><span class="br0">&#40;</span><span class="re0">$bytestring</span><span class="br0">&#91;</span><span class="nu0">148</span> + <span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="re0">$unsigned_chksum</span> += <a href="http://www.php.net/ord"><span class="kw3">ord</span></a><span class="br0">&#40;</span><span class="st0">&quot; &quot;</span><span class="br0">&#41;</span> * <span class="nu0">8</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span> <span class="re0">$unsigned_chksum</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// Generates a TAR file from the processed data</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// PRIVATE ACCESS FUNCTION</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> tarSection<span class="br0">&#40;</span><span class="re0">$Name</span>, <span class="re0">$Data</span>, <span class="re0">$information</span>=<span class="kw2">NULL</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// Generate the TAR header for this file</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><span class="re0">$Name</span>,<span class="nu0">100</span>,<a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><span class="st0">&quot;777&quot;</span>,<span class="nu0">7</span>,<span class="st0">&quot;0&quot;</span>,STR_PAD_LEFT<span class="br0">&#41;</span> . <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><a href="http://www.php.net/decoct"><span class="kw3">decoct</span></a><span class="br0">&#40;</span><span class="re0">$information</span><span class="br0">&#91;</span><span class="st0">&quot;user_id&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>,<span class="nu0">7</span>,<span class="st0">&quot;0&quot;</span>,STR_PAD_LEFT<span class="br0">&#41;</span> . <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><a href="http://www.php.net/decoct"><span class="kw3">decoct</span></a><span class="br0">&#40;</span><span class="re0">$information</span><span class="br0">&#91;</span><span class="st0">&quot;group_id&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>,<span class="nu0">7</span>,<span class="st0">&quot;0&quot;</span>,STR_PAD_LEFT<span class="br0">&#41;</span> . <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><a href="http://www.php.net/decoct"><span class="kw3">decoct</span></a><span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$Data</span><span class="br0">&#41;</span><span class="br0">&#41;</span>,<span class="nu0">11</span>,<span class="st0">&quot;0&quot;</span>,STR_PAD_LEFT<span class="br0">&#41;</span> . <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><a href="http://www.php.net/decoct"><span class="kw3">decoct</span></a><span class="br0">&#40;</span><a href="http://www.php.net/time"><span class="kw3">time</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span>,<span class="nu0">11</span>,<span class="st0">&quot;0&quot;</span>,STR_PAD_LEFT<span class="br0">&#41;</span> . <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_repeat"><span class="kw3">str_repeat</span></a><span class="br0">&#40;</span><span class="st0">&quot; &quot;</span>,<span class="nu0">8</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <span class="st0">&quot;0&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_repeat"><span class="kw3">str_repeat</span></a><span class="br0">&#40;</span><a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>,<span class="nu0">100</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><span class="st0">&quot;ustar&quot;</span>,<span class="nu0">6</span>,<a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">32</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">32</span><span class="br0">&#41;</span> . <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><span class="re0">$information</span><span class="br0">&#91;</span><span class="st0">&quot;user_name&quot;</span><span class="br0">&#93;</span>,<span class="nu0">32</span>,<a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><span class="re0">$information</span><span class="br0">&#91;</span><span class="st0">&quot;group_name&quot;</span><span class="br0">&#93;</span>,<span class="nu0">32</span>,<a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_repeat"><span class="kw3">str_repeat</span></a><span class="br0">&#40;</span><a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>,<span class="nu0">8</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_repeat"><span class="kw3">str_repeat</span></a><span class="br0">&#40;</span><a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>,<span class="nu0">8</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_repeat"><span class="kw3">str_repeat</span></a><span class="br0">&#40;</span><a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>,<span class="nu0">155</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span> .= <a href="http://www.php.net/str_repeat"><span class="kw3">str_repeat</span></a><span class="br0">&#40;</span><a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>,<span class="nu0">12</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// Compute header checksum</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="re0">$checksum</span> = <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><a href="http://www.php.net/decoct"><span class="kw3">decoct</span></a><span class="br0">&#40;</span>__computeUnsignedChecksum<span class="br0">&#40;</span><span class="re0">$header</span><span class="br0">&#41;</span><span class="br0">&#41;</span>,<span class="nu0">6</span>,<span class="st0">&quot;0&quot;</span>,STR_PAD_LEFT<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span>=<span class="nu0">0</span>; <span class="re0">$i</span>&lt;<span class="nu0">6</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$header</span><span class="br0">&#91;</span><span class="br0">&#40;</span><span class="nu0">148</span> + <span class="re0">$i</span><span class="br0">&#41;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$checksum</span>,<span class="re0">$i</span>,<span class="nu0">1</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$header</span><span class="br0">&#91;</span><span class="nu0">154</span><span class="br0">&#93;</span> = <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="re0">$header</span><span class="br0">&#91;</span><span class="nu0">155</span><span class="br0">&#93;</span> = <a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">32</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="co1">// Pad file contents to byte count divisible by 512</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$file_contents</span> = <a href="http://www.php.net/str_pad"><span class="kw3">str_pad</span></a><span class="br0">&#40;</span><span class="re0">$Data</span>,<span class="br0">&#40;</span><a href="http://www.php.net/ceil"><span class="kw3">ceil</span></a><span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$Data</span><span class="br0">&#41;</span> / <span class="nu0">512</span><span class="br0">&#41;</span> * <span class="nu0">512</span><span class="br0">&#41;</span>,<a href="http://www.php.net/chr"><span class="kw3">chr</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="co1">// Add new tar formatted data to tar file contents</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$tar_file</span> = <span class="re0">$header</span> . <span class="re0">$file_contents</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span> <span class="re0">$tar_file</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> targz<span class="br0">&#40;</span><span class="re0">$Name</span>, <span class="re0">$Data</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span> <a href="http://www.php.net/gzencode"><span class="kw3">gzencode</span></a><span class="br0">&#40;</span>tarSection<span class="br0">&#40;</span><span class="re0">$Name</span>,<span class="re0">$Data</span><span class="br0">&#41;</span>,<span class="nu0">9</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
<p>To  use those functions all you have to do is send a header with the mime type for the tar gz ( application/x-gzi<span id="__firefox-findbar-search-id" style="padding: 0pt; background-color: yellow; color: black; display: inline; font-size: inherit"></span>p ) using the php header function. To add a tar/gz section for a file, read the file in an array using filegetcontents and pass the filename and data to the targz function. Echo what is returned. That&#8217;s it!</p>
<p>So why is it not active on clker.com website? I actually tried it and found that compression consumes a lot of CPU. In the first 20 minute I had more than one hundred connections for different users downloading their results and the CPU was saturated. This basically left no CPU for searching. So use it carefully, and only if you really need that functionality.</p>
<p>Technorati Tags: <a href="#" rel="tag">tar</a>, <a href="#" rel="tag"> gz</a>, <a href="#" rel="tag"> compress</a>, <a href="#" rel="tag"> online</a>, <a href="#" rel="tag"> php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2008/03/27/creating-a-tar-gz-on-the-fly-using-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Storing images in your sql database versus filesystem</title>
		<link>http://www.clker.com/blog/2008/03/03/storing-images-in-your-sql-database-versus-filesystem/</link>
		<comments>http://www.clker.com/blog/2008/03/03/storing-images-in-your-sql-database-versus-filesystem/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 04:56:10 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[Internet general]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[access speed]]></category>
		<category><![CDATA[binary storage]]></category>
		<category><![CDATA[database server]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[pictures]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/2008/03/03/storing-images-in-your-sql-database-versus-filesystem/</guid>
		<description><![CDATA[Many websites today rely on media be it images or videos. One reason is humans are visual creatures, they like seeing things versus reading long articles.
Images on websites can be divided into two different types: Images used in the website theme including logos, rounded corners, backgrounds &#8230;etc. and images used as content. Obviously, the ones [...]]]></description>
			<content:encoded><![CDATA[<p>Many websites today rely on media be it images or videos. One reason is humans are visual creatures, they like seeing things versus reading long articles.</p>
<p>Images on websites can be divided into two different types: Images used in the website theme including logos, rounded corners, backgrounds &#8230;etc. and images used as content. Obviously, the ones discussed here are the content images. Images used in the website theme will be accessed frequently and almost with every page view, and usually they are very few and better managed by storing them in a directory.</p>
<p><span id="more-24"></span>However, when dealing with images that build the content of the websites developers will tend sometimes to store them in their sql databases rather than just storing references to them. There are pros and cons for each approach:</p>
<p><strong>Storing the images outside the database:</strong></p>
<p>For a very long time, this approach has been considered the most appropriate approach. The binaries itself gets stores outside the database, while references are stored inside the database. This type of implementation is driven by the ideas that:</p>
<ol>
<li>It will be faster to access images off the hard drives, than through the database.</li>
<li>It will take less space, since the database servers will usually add more records for locking and several other extra functionalities.</li>
</ol>
<p>While actually true, problems start once the number of images grow. Although one can maintain referential integrity inside the database, there is nothing that will stop an image from being deleted from the directory structure. Also, nothing will stop and image from being deleted while its record still exists in the database resulting in dangling pointers.</p>
<p>A third and more serious problem is enforcing access rules. One of the biggest implementers of this approach is the famous image sharing website flickr.com . Flickr uses mysql to store image pointers, while the images itself are stored on disk and can be accessed through the lighthttpd server. While flickr enforces several rules to filter the pictures returned in its search results using geographic and login usernames/password any image can be viewed without logging in using its URL regardless of the fact that it needs to be filtered.</p>
<p><strong>Storing images inside the sql database server:</strong></p>
<p>That approach solves the previous problems. Since the image is stored inside the database:</p>
<ol>
<li>Authentication and access rights can be verified before the image is returned.</li>
<li>On the fly thumbnails can be created thus more space saved.</li>
<li>Referential integrity can be maintained.</li>
<li>Cascaded deletions can be implemented. So when a user deletes an album, all the images inside the album will also be deleted.</li>
<li>The whole application will be less complex.</li>
</ol>
<p>Database engines use several types to store binary data. Postgresql uses byta, mysql uses blob types. Both achieve the same objective of storing binary object. This approach has its own problems as well. The database will now occupy a larger portion of the hard drive, larger than the size of the binary images itself. Retrieving the images will be slightly slower. My experiments in my other website (mibrahim.net) showed that retrieving images from postgresql was actually not bad, and for users accessing the website they won&#8217;t even feel the difference. One major disadvantage is database backup/restore. Since the size of the database is larger, dumping the database for backup can sometimes take days. If you are using WALs then most likely your WALs will be bloated and big from binary inserts. Bottom line, you&#8217;ll gain a lot but you&#8217;ll have to pay more money and buy larger drives to store the larger data.</p>
<p>There is a nice article written <a href="http://www.oracle.com/technology/products/intermedia/htdocs/why_images_in_database.html">by Oracle having more details about this issue</a>.</p>
<p>So in terms of clker.com, this is a planned functionality &#8211; to move all images and pictures inside the postgresql database. I believe that my server has the cpu and HD cycles to carry this load, and I know from my previous experience it will definitely help in decreasing the complications I have now.</p>
<p>Technorati Tags: <a href="#" rel="tag">images</a>, <a href="#" rel="tag"> pictures</a>, <a href="#" rel="tag"> binary storage</a>, <a href="#" rel="tag"> database server</a>, <a href="#" rel="tag"> sql server</a>, <a href="#" rel="tag"> storage</a>, <a href="#" rel="tag"> file system</a>, <a href="#" rel="tag"> access speed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2008/03/03/storing-images-in-your-sql-database-versus-filesystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running your server is easy, fun but involved</title>
		<link>http://www.clker.com/blog/2008/03/01/running-your-server-is-easy-fun-but-involved/</link>
		<comments>http://www.clker.com/blog/2008/03/01/running-your-server-is-easy-fun-but-involved/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 01:09:09 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[Internet general]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database server]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web server]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/2008/03/01/running-your-server-is-easy-fun-but-involved/</guid>
		<description><![CDATA[I love using Linux to do my work. My best usage of Linux is my web server, although I recall I read once that Linus never intended for the kernel to be used as a server. He was more focused on using the kernel in desktops. I&#8217;ve been running my own web server for almost [...]]]></description>
			<content:encoded><![CDATA[<p>I love using Linux to do my work. My best usage of Linux is my web server, although I recall I read once that Linus never intended for the kernel to be used as a server. He was more focused on using the kernel in desktops. I&#8217;ve been running my own web server for almost a year now, which runs two websites mibrahim.net my real estate website, and clker.com a to be online clipart website &#8211; we&#8217;re halfway there.</p>
<p>The fun part is simply everything just works. You&#8217;ll have all the tools you need starting from database engines like postgres, mysql to scripting languages like php, ruby with different types of webservers apache, lighthttpd and others. All the tools you might think of are there and under your own hand. Building your own server is not expensive &#8211; around $100 will do it. You don&#8217;t need a super quad core machine to produce extremely fast websites, unless you are already getting more than 50 page requests per second and at that point you will need something faster.</p>
<p>The performance bottle neck is never the CPU, it&#8217;s the hard drives read or write speeds. You can improve on that using fake RAIDs. Almost all Linux distros offer fake RAIDs and that is the cheapest way to improve the read speed.</p>
<p>Setting up your server is not a hard process. The best distributions that I recommend are Debian and Ubuntu. The reason is the very large library of software that comes with each. I believe that now the full distribution has grown more than 11 CDs. I used to run Debian and switched to Ubuntu a year ago and the reason behind the switch is the faster updates I get from Ubuntu, which enables me to use more recent and updated versions of PHP and the database engines.</p>
<p>The easiest setup is using the Ubuntu server CD, which is not any different from the desktop CD in terms of binaries. The only difference is that it won&#8217;t install the X11-server (GUI) and the window managers (gnome or kde) and the install program itself runs over the console and not VGA graphics. I use the server installation, and connect to my server using ssh. I have another old machine that runs Ubutu as well, and is used to run freenx. By that way I keep the server&#8217;s memory for the services running, and I can add all the GUI programs I want on this old machine.</p>
<p>Since I greatly benefited from running my own web server, I will share my experiences every now and then when I&#8217;ve got time to write.</p>
<p>Technorati Tags: <a href="#" rel="tag">ubuntu</a>, <a href="#" rel="tag"> linux</a>, <a href="#" rel="tag"> server</a>, <a href="#" rel="tag"> apache</a>, <a href="#" rel="tag"> database</a>, <a href="#" rel="tag"> sql server</a>, <a href="#" rel="tag"> database server</a>, <a href="#" rel="tag"> web server</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2008/03/01/running-your-server-is-easy-fun-but-involved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding picture to your wordpress weblog</title>
		<link>http://www.clker.com/blog/2007/11/20/adding-picture-to-your-wordpress-weblog/</link>
		<comments>http://www.clker.com/blog/2007/11/20/adding-picture-to-your-wordpress-weblog/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 13:57:10 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim</dc:creator>
				<category><![CDATA[Internet general]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[clipart]]></category>
		<category><![CDATA[cliparts]]></category>
		<category><![CDATA[clker]]></category>
		<category><![CDATA[Embed]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[pictures]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[weblog]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.clker.com/blog/2007/11/20/adding-picture-to-your-wordpress-weblog/</guid>
		<description><![CDATA[Adding pictures to your weblog post will help attract attention to your article and increase the time visitors stay on your pages.]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://www.clker.com/embed-6227-1919240279-small.html" border="0px" marginwidth="0" marginheight="0" hspace="0" vspace="0" id="clkerframe1919240279" style="border: medium none ; overflow: hidden; width: 140px; float: left" frameborder="0" scrolling="no"></iframe>Human beings are <a href="http://en.wikipedia.org/wiki/Picture_thinking">visual creatures</a>. Pictures and eye sight is the second important way by which humans learn after hearing. Adding pictures related to your post will help visitors get your point. Exactly like adding pictures in a presentation, which help people understand the description made by the presenter.</p>
<p>Adding pictures to your weblog post will also help attract attention to your article, and increase the time your visitors stay. Pictures breaks the boring lengthy text of an article and gives the reader a break in the middle.</p>
<p>An important factor is then how easy is it to a) find a picture ad b) add it to your weblog?<br />
<iframe src="http://www.clker.com/embed-10283-1795839669.html" border="0px" marginwidth="0" marginheight="0" hspace="0" vspace="0" id="clkerframe1795839669" style="border: medium none ; overflow: hidden; width: 340px" frameborder="0" scrolling="no"></iframe></p>
<p><a href="http://www.clker.com">Clker.com</a> offers a huge collection of high quality cliparts. All cliparts are tagged with relevant words making it very easy to search and find the exact picture you&#8217;re looking for. You can directly copy the HTML code and paste it in your weblog&#8217;s page. All pictures can be easily embedded in any HTML source.</p>
<p>By default, all pictures are floated to the left making the text wrap around it without wasting your weblog space. You can manually remove the float and allow the picture to occupy a full horizontal area as shown above.</p>
<p>Technorati Tags: <a href="#" rel="tag">blog</a>, <a href="#" rel="tag"> clipart</a>, <a href="#" rel="tag"> cliparts</a>, <a href="#" rel="tag"> clker</a>, <a href="#" rel="tag"> Embed</a>, <a href="#" rel="tag"> find</a>, <a href="#" rel="tag"> HTML</a>, <a href="#" rel="tag"> pictures</a>, <a href="#" rel="tag"> search</a>, <a href="#" rel="tag"> weblog</a>, <a href="#" rel="tag"> wordpress</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.clker.com/blog/2007/11/20/adding-picture-to-your-wordpress-weblog/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
