<?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>Web Fuel</title>
	<atom:link href="http://webfuel.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://webfuel.org</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Tue, 15 Nov 2011 04:44:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>CodeIgniter 2.1.0 is here!</title>
		<link>http://webfuel.org/codeigniter-2-1-0-is-here/</link>
		<comments>http://webfuel.org/codeigniter-2-1-0-is-here/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 04:25:54 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://webfuel.org/?p=353</guid>
		<description><![CDATA[EllisLab has yet to update their website with the new User Guide but you are free to download 2.1.0 to see the changes. Scanning through the change log, I see a lot that I like: Added increment_string() to String Helper &#8230; <a href="http://webfuel.org/codeigniter-2-1-0-is-here/" class="continue-reading">Continue&#160;reading</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://webfuel.org/codeigniter-2-1-0-is-here/attachment/210/" rel="attachment wp-att-361"><img class="post-lightboxsss" title="210" src="http://webfuel.org/sys/wp-content/uploads/2011/11/210-620x244.jpg" alt="" width="620" height="244" /></a></p>
<p><a href="http://ellislab.com/">EllisLab</a> has yet to update their website with the new <a href="http://codeigniter.com/user_guide/changelog.html">User Guide</a> but you are free to download 2.1.0 to see the changes.</p>
<p>Scanning through the change log, I see a lot that I like:</p>
<ul>
<li>Added increment_string() to String Helper</li>
<li>Added is_unique to the Form Validation library.</li>
<li>Added $config['use_page_numbers'] to the Pagination library, which enables real page numbers in the URI.</li>
</ul>
<p>These were functions that I had to build on my own for practically every project so it&#8217;s nice to see them natively in CI now.</p>
<p>So what are you waiting for, <a href="http://codeigniter.com/downloads/">Download CodeIgniter 2.1.0</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://webfuel.org/codeigniter-2-1-0-is-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Responsive Web Design</title>
		<link>http://webfuel.org/responsive-web-design/</link>
		<comments>http://webfuel.org/responsive-web-design/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 01:16:00 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://webfuel.org/?p=335</guid>
		<description><![CDATA[With IE9 gaining wider adoption (over previous versions of IE) it means CSS media queries are finally going main stream. Even though they have been supported by Safari, Chrome, Firefox, and Opera for some time. For the redesign of Women &#38; Teens &#8230; <a href="http://webfuel.org/responsive-web-design/" class="continue-reading">Continue&#160;reading</a>]]></description>
			<content:encoded><![CDATA[<p>With IE9 gaining wider adoption (over previous versions of IE) it means CSS media queries are finally going main stream. Even though they have been supported by Safari, Chrome, Firefox, and Opera for some time.</p>
<p>For the redesign of Women &amp; Teens Healthcare, we decided it was time to use media queries to deliver the same content to mobile, tablet and desktop users. Not only does this make the site easier to maintain but it also provides an optimal experience for the user, regardless of their screen size.</p>
<p>The site is still under development but you can see some of the work below.</p>
<p><a href="http://webfuel.org/sys/wp-content/uploads/2011/09/wt-media-queries.png"><img class="post-lightboxsss" title="wt-media-queries" src="http://webfuel.org/sys/wp-content/uploads/2011/09/wt-media-queries-620x306.png" alt="" width="620" height="306" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://webfuel.org/responsive-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Subversion on OS X 10.7</title>
		<link>http://webfuel.org/getting-started-with-subversion-on-os-x-10-7/</link>
		<comments>http://webfuel.org/getting-started-with-subversion-on-os-x-10-7/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 15:31:46 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://webfuel.org/?p=304</guid>
		<description><![CDATA[For those not already on the GIT bandwagon, Apache Subversion is a great chose for versioning your software projects. Even better, Lion has Subversion 1.6.16 installed my default. To see for yourself, in terminal: $ svn --version You should see &#8230; <a href="http://webfuel.org/getting-started-with-subversion-on-os-x-10-7/" class="continue-reading">Continue&#160;reading</a>]]></description>
			<content:encoded><![CDATA[<p>For those not already on the GIT bandwagon, <a href="http://en.wikipedia.org/wiki/Apache_Subversion" target="_blank">Apache Subversion</a> is a great chose for versioning your software projects. Even better, Lion has Subversion 1.6.16 installed my default. To see for yourself, in terminal:</p>
<pre>
$ svn --version
</pre>
<p>You should see the following:</p>
<pre>
svn, version 1.6.16 (r1073529)
compiled Jun 13 2011, 15:54:33

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/)
</pre>
<p>To get started, we need to make a folder to store your repositories. The location is up to you but I&#8217;ll be putting it in /Library/Subversion/Repository.</p>
<pre>
$ mkdir -p /Library/Subversion/Repository
$ svnadmin create /Library/Subversion/Repository/myproject
$ cd /Library/Subversion/Repository/myproject/conf/
</pre>
<p><strong>Edit svnserve.conf</strong> with your editor of chose</p>
<pre>anon-access = none
auth-access = write
password-db = passwd
authz-db = authz</pre>
<p>This will give no access to anonymous users and read/write abilities to users you specify<br />
Now <strong>edit passwd</strong> to create your first user and assign them a password</p>
<pre>
[users]
your_name = SecR3t_p4ssw0rd
</pre>
<p><strong>Edit auth</strong> to assign that user to a group and give that group permissions. This is handy if you want to give certain groups read only abilities.</p>
<pre>
[groups]
developers = your_name

[/]
@developers = rw
* =
</pre>
<p>Congratulations, you have now configured your repository!<br />
To <strong>start running subversion</strong>, you need to use the command</p>
<pre>
$ svnserve --daemon --root /Library/Subversion/Repository
</pre>
<p>Even better, if you want to run this command automatically when your computer boots, make this a cron job.</p>
<pre>
$ crontab -e
</pre>
<p><strong>Add </strong></p>
<pre>@reboot svnserve --daemon --root /Library/Subversion/Repository</pre>
<p>After saving and quitting, check to see if the cron is running with</p>
<pre>
$ crontab -l
</pre>
<p>Now when your computer reboots, svn will start running automatically.</p>
<p>If you have any questions, leave them in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://webfuel.org/getting-started-with-subversion-on-os-x-10-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Client-Side Cacheable Dynamic Images</title>
		<link>http://webfuel.org/creating-client-side-cacheable-dynamic-images/</link>
		<comments>http://webfuel.org/creating-client-side-cacheable-dynamic-images/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 07:52:48 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://webfuel.org/?p=283</guid>
		<description><![CDATA[Task: Allow users to embed their rating on our site, as an image, on their personal site. Goal: Stress our server as little as possible. There are several ways of doing this but the basic process of how this works is: Our &#8230; <a href="http://webfuel.org/creating-client-side-cacheable-dynamic-images/" class="continue-reading">Continue&#160;reading</a>]]></description>
			<content:encoded><![CDATA[<p><strong>Task</strong>: Allow users to embed their rating on our site, as an image, on their personal site.</p>
<p><strong>Goal</strong>: Stress our server as little as possible.</p>
<p>There are several ways of doing this but the basic process of how this works is:</p>
<ol>
<li>Our users embeds an image on their site (e.g. &lt;img src=&#8221;http://examples.com/images/ratings/1234/small/&#8221; /&gt;)</li>
<li>Someone view their webpage which makes a request to that URI</li>
<li>Our server has to look up the user (1234) to see if they exists</li>
<li>Get the current rating of that users</li>
<li>Figure out which image to display. (5 ratings + no rating) * 2 sizes = 12 possible images</li>
<li>Return the correct image</li>
</ol>
<p>Pretty straightforward, but what if a user has a popular website or if this feature sees a lot of use. Our server will be doing quite a few database calls.</p>
<p><strong>Current solution</strong>:</p>
<pre class="brush: php; title: ; notranslate">
// Load the PNG
$im = imagecreatefrompng($_SERVER['DOCUMENT_ROOT'].&quot;/assets/images/$rating-$type.png&quot;);

// Settings for caching
$expires = 604800; // 1 week (60*60*24*7)
$lastModified = gmdate(&quot;D, d M Y H:i:s&quot;) . &quot; GMT&quot;;
$eTag = &quot;ci-&quot;.dechex(crc32($im.$lastModified));

// Make sure clients cache this image
header(&quot;Pragma: public&quot;);
header(&quot;Cache-Control: maxage=&quot;.$expires);
header(&quot;Expires: &quot; . gmdate(&quot;D, d M Y H:i:s&quot;, time()+$expires) . &quot; GMT&quot;);
header(&quot;Last-Modified: &quot; . $lastModified);
header('ETag: &quot;'.$eTag.'&quot;');

// Outputs the PNG
header('Content-Type: image/png');
imagepng($im);

// Free up the memory used by the image
imagedestroy($im);
</pre>
<p>This makes dynamic chosen images cacheable so they only have to request once a week (by a single user) as opposed to every time they visit a new page.</p>
<p>I said current solution because I will most likely do server-side caching in addition to client-side.</p>
<p>Tip of the hat to <a href="http://blog.rd2inc.com/archives/2005/03/24/making-dynamic-php-pages-cacheable/" target="_blank">Matt Midboe of RD2</a> for how to do the eTag part.</p>
]]></content:encoded>
			<wfw:commentRss>http://webfuel.org/creating-client-side-cacheable-dynamic-images/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Discovering Server Issues with CloudKick</title>
		<link>http://webfuel.org/discovering-server-issues-with-cloudkick/</link>
		<comments>http://webfuel.org/discovering-server-issues-with-cloudkick/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 19:57:55 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
				<category><![CDATA[Hosting]]></category>

		<guid isPermaLink="false">http://wf.local/?p=222</guid>
		<description><![CDATA[Since I purchased my first VPS with linode, I&#8217;ve been hunting for a solid server monitor. I eventually settled on the free developer account with CloudKick. After tracking the server for a few days I notice it was constantly running &#8230; <a href="http://webfuel.org/discovering-server-issues-with-cloudkick/" class="continue-reading">Continue&#160;reading</a>]]></description>
			<content:encoded><![CDATA[<p>Since I purchased my first VPS with linode, I&#8217;ve been hunting for a solid server monitor. I eventually settled on the free developer account with CloudKick.</p>
<p>After tracking the server for a few days I notice it was constantly running low on memory. A quick investigation found that Apache2 was eating all of my memory which was negatively effecting my HTTP response times.</p>
<p><div id="attachment_263" class="wp-caption alignnone" style="width: 636px"><a href="http://webfuel.org/sys/wp-content/uploads/2011/07/Screen-shot-2011-07-11-at-3.38PM.png"><img class="size-full wp-image-263 " title="Response Times" src="http://webfuel.org/sys/wp-content/uploads/2011/07/Screen-shot-2011-07-11-at-3.38PM.png" alt="" width="626" height="305" /></a><p class="wp-caption-text">Apache Response Times</p></div>
<p>See if you can spot when the change took place in the graph below.</p>
<p><div id="attachment_264" class="wp-caption alignnone" style="width: 638px"><a href="http://webfuel.org/sys/wp-content/uploads/2011/07/Screen-shot-2011-07-11-at-3.39PM.png"><img class="size-full wp-image-264 " title="Ram Useage" src="http://webfuel.org/sys/wp-content/uploads/2011/07/Screen-shot-2011-07-11-at-3.39PM.png" alt="" width="628" height="304" /></a><p class="wp-caption-text">Server&#39;s RAM usage</p></div>
<p>I tweaked the settings in my apache2.conf which reduced the RAM usage (mpm_prefork_module):</p>
<pre class="brush: bash; title: ; notranslate">
    StartServers          2
    MinSpareServers       4
    MaxSpareServers       9
    MaxClients            20
    MaxRequestsPerChild   0
</pre>
<p>I&#8217;m sure these setting will change over time as the load changes and when I upgrade to more RAM.</p>
]]></content:encoded>
			<wfw:commentRss>http://webfuel.org/discovering-server-issues-with-cloudkick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

