<?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>Pelanne.Com</title>
	<atom:link href="http://pelanne.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pelanne.com</link>
	<description>A simple site for complicated times</description>
	<lastBuildDate>Sat, 04 Jul 2009 17:20:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Summer 2009 Phish Breakouts</title>
		<link>http://pelanne.com/2009/06/summer-2009-phish-breakouts/</link>
		<comments>http://pelanne.com/2009/06/summer-2009-phish-breakouts/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 18:33:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Phish]]></category>

		<guid isPermaLink="false">http://pelanne.com/?p=129</guid>
		<description><![CDATA[Phish&#8217;s tour is under way and it&#8217;s a good one.
Over the course of the tour thus far, they&#8217;ve been averaging more than one debut a night, which is news in and of itself!  The styles are far ranging, from the straightforward Ocelot, to the 70&#8217;s arena rock of Kill Devil Falls to the prog-rock epic [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_134" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-134" title="Phish at Jones Beach" src="http://pelanne.com/wp-content/uploads/2009/06/phish-150x150.jpg" alt="Phish at Jones Beach" width="150" height="150" /><p class="wp-caption-text">Phish at Jones Beach</p></div>
<p>Phish&#8217;s tour is under way and it&#8217;s a good one.</p>
<p>Over the course of the tour thus far, they&#8217;ve been averaging more than one debut a night, which is news in and of itself!  The styles are far ranging, from the straightforward Ocelot, to the 70&#8217;s arena rock of Kill Devil Falls to the prog-rock epic Time Turns Elastic.  All good stuff, which should be changing all tour as they adapt them to the live show format&#8230;</p>
<p>Below is the list of all of the the new songs that have been debuted on this tour, along with an AUD recording of the first performance  &#8211; as new ones appear, I&#8217;ll tack &#8216;em to the list:</p>
<p><span id="more-129"></span></p>
<ul>
<li>June 19th, Deer Creek &#8211; <strong>The Connection </strong></li>
<li>June 14, Bonnaroo &#8211; <strong>Mustang Sally </strong>(w/ Springsteen)</li>
<li>June 14, Bonnaroo &#8211; <strong>Bobby Jean </strong>(w/ Springsteen) </li>
<li>June 14, Bonnaroo &#8211; <strong>Glory Days </strong>(w/ Springsteen) </li>
<li>June 09, Asheville Civic Center &#8211; <strong>Alaska</strong> </li>
<li>June 09, Asheville Civic Center &#8211; <strong>When The Cactus Is In Bloom</strong> </li>
<li>June 07, Susquehanna Bank Center &#8211; <strong>Sugar Shack</strong> </li>
<li>June 07, Susquehanna Bank Center &#8211; <strong>Joy </strong></li>
<li>June 06, Great Woods &#8211; <strong>Let Me Lie </strong></li>
<li>June 05, Jones Beach &#8211; <strong>Twenty Years Later </strong></li>
<li>June 02, Jones Beach &#8211; <strong>Stealing Time From The Faulty Plan </strong></li>
<li>June 02, Jones Beach &#8211; <strong>Kill Devil Falls </strong></li>
<li>May 31, Fenway Park &#8211; <strong>Ocelot </strong></li>
<li>May 31, Fenway Park &#8211; <strong>Light </strong></li>
<li>May 31, Fenway Park &#8211; <strong>Time Turns Elastic</strong> </li>
</ul>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 114px; width: 1px; height: 1px;">June 14, Bonnaroo &#8211; Mustang Sally</div>
]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/06/summer-2009-phish-breakouts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://pelanne.com/wp-content/uploads/2009/06/phish2009-06-19d02t01_Connection.mp3" length="5499545" type="audio/mpeg" />
		</item>
		<item>
		<title>Fun With Google Voice</title>
		<link>http://pelanne.com/2009/05/fun-with-google-voice/</link>
		<comments>http://pelanne.com/2009/05/fun-with-google-voice/#comments</comments>
		<pubDate>Sun, 31 May 2009 13:58:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pelanne.com/?p=107</guid>
		<description><![CDATA[I was lucky enough to have created an account with Grand Central back in the day (the day being about two years ago), so when Google purchased them a while back, I anticipated good things down the line.  Boy was I was correct!
With the new rollout of their Voice product, Google has made some great [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_125" class="wp-caption alignleft" style="width: 110px"><img class="size-full wp-image-125" title="gv3" src="http://pelanne.com/wp-content/uploads/2009/05/gv3.jpg" alt="gv3" width="100" height="26" /><p class="wp-caption-text">Google&#39;s Kickass Product</p></div>
<p>I was lucky enough to have created an account with Grand Central back in the day (the day being about two years ago), so when Google purchased them a while back, I anticipated good things down the line.  Boy was I was correct!</p>
<p>With the new rollout of their Voice product, Google has made some great improvements and has created something that could change the way folks look at their phone service.</p>
<p>In a nutshell, Google Voice lets you choose a new phone number, and then gives you a well-crafted suite of online tools that let you decide how you want to use and manage your phone service.</p>
<p><span id="more-107"></span></p>
<p><strong>Making Calls</strong></p>
<p>From within your Google Voice management area, you can make and receive domestic calls from your number for free or initiate international calls for around two cents a minute.  In addition, you can send and receive SMS messages from your number for free.</p>
<p>While making a call is initiated from the online interface, unlike Skype the actual call takes place on your real phone &#8211; they call you first, and then call the other party, though the caller ID shows your Google Voice number.</p>
<p>If initiated via Google Voice, a few handy call features are controllable by the buttons on your own phone, including the ability to record the call as an mp3, and the ability to jump it to any of your other lines without a break in the call.</p>
<p><strong>Receiving Calls</strong></p>
<p>Here&#8217;s where it gets cool.  </p>
<p>You can enter your contacts (or have it import them from Gmail), group them into logical groups (friends, family, co-workers, etc), and then decide how you want to deal with incoming calls on either a group or individual number basis.</p>
<p>When someone calls you, you can:</p>
<ul>
<li>Have it ring whatever phone you want</li>
<li>Have it ring multiple lines at the same time, letting you pick up whichever one is more convenient</li>
<li>Have it go to voicemail directly &#8211; you get to choose what message that particular number should hear</li>
<li>Have it give the three-tone &#8220;this number is no longer in service&#8221; message, which is useful if you end up on some telemarketer&#8217;s list</li>
</ul>
<p>All sent, received, and missed calls are logged in easy-to-search lists, and you can apply these rules from those lists.</p>
<p><strong>Transcription</strong></p>
<p>For the last few years, Google has run a handy, free 411 service called GOOG-411.  From any cell, you can call 800-GOOG-411 and get telephone and address information for residential and commercial listings, all through a fully automated voice recognition directory service.  With Voice, Google has rolled this well-vetted voice recognition into the product, and the result is a fairly good transcription of your voicemails that you can do stuff with.</p>
<p>If someone leaves you a message, you can see it in your list view (in a fashion very similar to Gmail), and have it either emailed to you, sent to your cell via SMS, or both.  Additionally, it will color code each word of the message &#8211; the darker the font, the surer they are of the transcription of that word.</p>
<p>Conceivably, you don&#8217;t have to listen to another voicemail again &#8211; just forward your phones to Google Voice and receive the messages in your regular email stream!</p>
<p><strong>Wishlist</strong></p>
<p>So far, the only hangup I&#8217;ve run into is that it doesn&#8217;t let me forward the calls to a number that has an extension.  It would be nice if I could do that so I could have certain numbers forwarded to my work phone.</p>
<p>Other nice-to-haves for the future:</p>
<ul>
<li>Being able to transfer my own cell number to Google Voice, so I don&#8217;t have to hand out yet another number</li>
<li>The ability to change the forwarding number based on a time schedule</li>
<li>Scheduleable vacation messages</li>
<li>Multiple lines per account</li>
<li>An API &#8211; oh the fun we would have with this</li>
</ul>
<p>Overall though, it&#8217;s a pretty amazing service, especially considering that it&#8217;s still in the closed beta phase.  It will be interesting to see what effect it will have when it is rolled out to the public, especially if existing lines can be transferred to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/05/fun-with-google-voice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intel Rock Star Ad</title>
		<link>http://pelanne.com/2009/05/intel-rock-star-ad/</link>
		<comments>http://pelanne.com/2009/05/intel-rock-star-ad/#comments</comments>
		<pubDate>Sat, 16 May 2009 02:18:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Diversions]]></category>

		<guid isPermaLink="false">http://pelanne/?p=21</guid>
		<description><![CDATA[This week we discovered that we were no fewer than five episodes of The Office behind (that&#8217;s what happens when you drop your television service!).
As we were watching them on Hulu, the following ad for Intel came up several times, and completely cracked us up.
All hail the creator of USB:

]]></description>
			<content:encoded><![CDATA[<p>This week we discovered that we were no fewer than five episodes of The Office behind (that&#8217;s what happens when you drop your television service!).</p>
<p>As we were watching them on Hulu, the following ad for Intel came up several times, and completely cracked us up.</p>
<p>All hail the creator of USB:</p>
<p style="text-align: left;"><br /><img src="http://i.ytimg.com/vi/jqLPHrCQr2I/0.jpg" alt="media" /><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/05/intel-rock-star-ad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fast Food Folk Song</title>
		<link>http://pelanne.com/2009/04/fast-food-folk-song/</link>
		<comments>http://pelanne.com/2009/04/fast-food-folk-song/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 20:19:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://pelanne/?p=18</guid>
		<description><![CDATA[I&#8217;m a sucker for a funny acoustic number&#8230;
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a sucker for a funny acoustic number&#8230;</p>
<br /><img src="http://i.ytimg.com/vi/-uwY3sjqYX0/0.jpg" alt="media" /><br />

]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/04/fast-food-folk-song/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stuff I Use</title>
		<link>http://pelanne.com/2009/04/stuff-i-use/</link>
		<comments>http://pelanne.com/2009/04/stuff-i-use/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 02:29:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://pelanne/?p=16</guid>
		<description><![CDATA[Every now and again I like to step back and take stock of the technology I use daily to see if it needs reassessment.  The current list I came up with this time around actually contains very few items that  I&#8217;d consider necessary evils beyond the occasional headache with hosted services, which is [...]]]></description>
			<content:encoded><![CDATA[<p>Every now and again I like to step back and take stock of the technology I use daily to see if it needs reassessment.  The current list I came up with this time around actually contains very few items that  I&#8217;d consider necessary evils beyond the occasional headache with hosted services, which is hard to avoid (even that has improved dramatically in the last few years).</p>
<p>Right now it&#8217;s a pretty well-vetted toolset &#8211; an even mix of free and paid implementations of mostly open technology, and it keeps me relatively productive in Windows, with a minimum of forehead smashing and bluescreening.  I use just about all of the following apps and services every day&#8230;<br />
<span id="more-16"></span></p>
<ul>
<li><strong>Communication: </strong>Twitter, Email via Mailtrust, AIM over Pidgin, Skype, Google Calendar, Copilot</li>
<li><strong>Dev Services: </strong> Beanstalk SVN, Mosso and Westhost hosting services, Basecamp and Fogbugz/Mantis</li>
<li><strong>Apps: </strong>E-Texteditor / Texter plus Notepad++, Evernote, Firefox (read Firebug), WinSCP, Putty and Keepass</li>
<li> <strong>Libraries: </strong>CakePHP framework, ADODB, JQuery, misc PEAR libraries</li>
<li><strong>New Fun Stuff: </strong>CodeIgniter, Expression Engine, Server Virtualization, Google Voice, (revisiting) RoR</li>
</ul>
<p>With the awesome hivemind that the net has become these days, good ideas and dev practices generally filter their way to the top of the heap &#8211; I can&#8217;t wait to see what new stuff is just around the corner!</p>
]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/04/stuff-i-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adam Savage&#8217;s Obsessions</title>
		<link>http://pelanne.com/2009/03/adam-savages-obsessions/</link>
		<comments>http://pelanne.com/2009/03/adam-savages-obsessions/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 22:15:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://pelanne/?p=13</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<br /><img src="http://i.ytimg.com/vi/rEg-ZNB3qyI/0.jpg" alt="media" /><br />

]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/03/adam-savages-obsessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redundancy</title>
		<link>http://pelanne.com/2009/03/redundancy/</link>
		<comments>http://pelanne.com/2009/03/redundancy/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 12:31:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://pelanne/?p=11</guid>
		<description><![CDATA[A large part of the work the company I work for does deals with the conception, organization and construction of websites.  In all aspects of this process, short of a repeal of Murphy&#8217;s Law, redundancy is something that cannot be ignored.  In truth, that&#8217;s a great rule of thumb for anything computer-related.
Consider that [...]]]></description>
			<content:encoded><![CDATA[<p>A large part of the work the company I work for does deals with the conception, organization and construction of websites.  In all aspects of this process, short of a repeal of Murphy&#8217;s Law, redundancy is something that cannot be ignored.  In truth, that&#8217;s a great rule of thumb for anything computer-related.</p>
<p>Consider that virtual pile of digital photos that has accrued on your hard drive over the years.  If you don&#8217;t maintain some kind of backup of them, you are one errant disk platter away from losing all those memories.  While our websites may be cutting edge, we try work at a safe distance from the precipice.  Given the reach of the web, the potential casualties of poor planning can be quite costly, and therefore all aspects of redundancy need to be considered.  This means establishing reliable plans for retaining site data, access to it, and even process knowledge.<br />
<span id="more-11"></span><br />
<strong> HARDWARE</strong></p>
<p>At the server level, the sheer complexity of the system means at there are a myriad things that can go awry.  If there is only one hard drive in the system, just like your digital photo collection at home, you are that one hard drive failure away from losing your data.</p>
<p>A technique that many businesses choose to employ to get around this is called RAID, an acronym that stands for Redundant Array of Inexpensive Disks.  In short, RAID  means that there are actually multiple hard drives that work in unison, with the data being protected from any one disk failing by virtue of their numbers.  They can be configured in different ways, sometimes as a pair that mirror each other, or as an array of three that have data striped across them, or with even more.  The configuration chosen has implications for how quickly data can be written to or read from them, but they all strive to protect your data.</p>
<p>Unfortunately, RAID will not protect you completely.  Its big Achilles heel is that if a disk begins to go bad, depending on how insidious the failure is, rather than just disappearing from the array of disks, data corruption can occur, and that corruption can be faithfully copied across to the other disks in the array by the RAID controller.  What now?</p>
<p><strong>SOFTWARE</strong></p>
<p>Hopefully you employed another very common arrow in the quiver of redunancy &#8211; backups!  Depending on your company requirements, backups can range from a periodic synchronization of files to a different location, to a regular, full imaging of the entire disk to an image tape or hard drive.  This process can be controlled by software on the server itself, or via remote backup systems that can back up multiple machines at once.  Of course, you will need to make sure that you don&#8217;t lose your backups, so reliable, off-site storage should be employed for your backups.</p>
<p>What if you did all these things but face the perfect storm &#8211; you lose a drive in your RAID array, which corrupted the data on the good drives, and now you need to restore information off your backups?  Depending on your backup scheme, and the size of the backups, this can be a time-consuming process.</p>
<p><strong>SAFETY IN NUMBERS</strong></p>
<p>Thanks to your exquisite planning, you&#8217;re in good shape, because you employed redundant servers!  This too can take several forms.  Depending on the need for uptime, it could take the shape of a warm backup server (a machine that is configured the same as the main server and has data periodically synchronized to it), to a cluster (many computers behind a load balancer that act as one), to what is known simply as the cloud (hundreds to thousands of computers that provide various computing services in a distributed manner).  In the cases of clustering and cloud computing, you&#8217;d likely never know that the failure occurred as the troubled computer is often detected and removed from the group automatically.  Load balancers, which spread the load between individual servers in a cluster, are themselves clustered so that one load balancer failure won&#8217;t bring the network down.</p>
<p>At this point, you&#8217;ve wisely entrusted your data to a cluster &#8211; time to relax, right?  Not necessarily, though unless you are a service provider, you&#8217;re entering the realm of things you cannot control.  Hosting services that employ clustering or cloud computing can also have problems, to which the answer is, you guessed it &#8211; more redundancy!</p>
<p><strong>KEEPING THE LIGHTS ON</strong></p>
<p>Beyond the servers themselves, you need to concern youself with the services they depend on.  Network connections can be (and in our experience, have been) cut by construction equipment, rendering your beautifully crafted network unavailable?  Generally, to get around such issues, providers will establish redundant connections to multiple providers.  At our business park, they do just that &#8211; there is one connection to one ISP at one end of the park, and an equally quick connection to a different ISP on the other.  Most large hosting consortiums are located in large cities near the main arteries of the internet so that they can get the same effect.</p>
<p>Large hosting facilities need to make sure that the other services that computers require remain available.  Electricity is made redundant through multiple connections to the electric grid.  Should that get compromised, vast arrays of batteries called UPS&#8217;s (Uninterruptible Power Supplies) wait quietly, ready to switch on automatically to provide a couple extra minutes power to the arrays of servers — just long enough for enormous diesel powered generators to fire up.  These generators are often stocked with enough fuel to keep networks going for days.  Temperatures at these facilities can be an issue, with all those CPU&#8217;s under one roof, so gargantuan ventilation systems and raised flooring are employed to keep air circulating around the servers.</p>
<p>The network services for all of these servers also benefit from redundancy and caching.  A great example of this is the worldwide DNS system, which takes care of translating domain names into the numeric IP addresses that computers use.  It is a requirement that every registered domain have at least two DNS servers which can do this translation at any given time.  More are encouraged, and running these DNS servers on separate networks is encouraged.</p>
<p>At NCM, resolution for many of our websites is done by servers in Blacksburg and in Salem.  If one were to go down for whatever reason, the other would make sure that the website was still resolvable.  The DNS service also makes use of caching to spread the load of resolving domains beyond just the authoritative DNS servers &#8211; any DNS server in the chain of resolution will remember the IP address for a certain time period, which ensures that the primary and secondary servers aren&#8217;t hammered by requests.</p>
<p><strong>REDUNDANCY IN PROCESS</strong></p>
<p>In our sphere of web development, we even apply concepts of redundancy to our development processes.  When we develop the various pages and scripts that comprise a website, we use a system called Subversion, which saves a copy of every version of every page in the site.  This allows several developers to work on a website at the same time without worrying about overwriting each others work.  If the Subversion system detects that two people have worked on the exact same part of a page, it will notify the developers so that they can work out exactly how it should look or function before saving.  If things really go awry, developers can roll a page or site section back to any previous version that has been saved in Subversion.</p>
<p>Beyond Subversion, we try to achieve redundancy of knowledge through cross training and mentoring in-house.  In the same way that a server can suffer ill effects if everything is saved on just one drive, a business can suffer if in-house knowledge is concentrated in too few places.  We try get around this through copious documentation, use of collaborative systems such as wikis, and we try to make sure that our important business and development knowledge is spread out amongst multiple people in the various groups.  This ensures that if someone were to go on vacation or is otherwise out of the office, other members of the group can fill in for them.</p>
<p>I hope this has given you a taste of some of the many layers at which redundancy figures into the development, hosting and operation of a website.  Now, go get an external drive and back up those photos!</p>
]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/03/redundancy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mike Rowe on Discovery, Realization and Lamb Castration</title>
		<link>http://pelanne.com/2009/02/mike-rowe-on-discovery-realization-and-lamb-castration/</link>
		<comments>http://pelanne.com/2009/02/mike-rowe-on-discovery-realization-and-lamb-castration/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 12:18:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Diversions]]></category>

		<guid isPermaLink="false">http://pelanne/?p=9</guid>
		<description><![CDATA[Last night, I went on a hunt for more online resources that tickle the intellect in the same manner that TED.com does.  Among others, three stood out &#8211; fora.tv and bigthink.com and the video collection on poptech.org.
In this particular talk, Mike Rowe, the truly amusing host of Dirty Jobs, discusses a unique moment of epiphany [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, I went on a hunt for more online resources that tickle the intellect in the same manner that TED.com does.  Among others, three stood out &#8211; <a title="Fora.tv" href="http://fora.tv">fora.tv</a> and <a title="Bigthink" href="http://bigthink.com">bigthink.com</a> and the video collection on <a title="Poptech" href="http://www.poptech.org/popcasts/">poptech.org</a>.</p>
<p>In this particular talk, Mike Rowe, the truly amusing host of Dirty Jobs, discusses a unique moment of epiphany at a conference in Silicon Valley:<br />
<br /><img src="http://i.ytimg.com/vi/r-udsIV4Hmc/0.jpg" alt="media" /><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/02/mike-rowe-on-discovery-realization-and-lamb-castration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developing With CakePHP</title>
		<link>http://pelanne.com/2009/02/developing-with-cakephp/</link>
		<comments>http://pelanne.com/2009/02/developing-with-cakephp/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 19:09:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://pelanne/?p=7</guid>
		<description><![CDATA[Over the last year or so, the company I work for has begun utilizing a tool called CakePHP to build some of its websites.  CakePHP is a PHP-based flexible framework which allows developers to quickly build web applications in a manner similar to Ruby on Rails.  It has a large, very active community [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last year or so, the company I work for has begun utilizing a tool called CakePHP to build some of its websites.  CakePHP is a PHP-based flexible framework which allows developers to quickly build web applications in a manner similar to Ruby on Rails.  It has a large, very active community and is based on free, open source projects.  Because of this, support for the framework is widely available and easy to come by, both via the web, IRC, or local and web-based user groups.</p>
<p><span id="more-7"></span></p>
<p><strong>You Gotta Keep &#8216;Em Separated<br />
</strong></p>
<p>Sites built with CakePHP follow what is known as the Model-View-Controller paradigm, sometimes known simply as MVC.  Developing using the MVC paradigm makes CakePHP an excellent tool that developers can use to solve problems by breaking the functionality down into discrete, logical chunks.</p>
<p>The first of these layers, the model, only deals with the data and how it is structured and related. The view layer contains the scripts that only concern themselves with the portions of the application that people see in their browsers (it’s sometimes known as presentation layer). The controller is the layer that glues the model and the view layers together &#8211; it consists of the business logic that is run when communication between model and view occurs.  Code in the controller is run after a user has submitted information to the website, or after data has been fetched from the database and before it is displayed to the user.</p>
<p>When a change needs to be made to a CakePHP-based project, depending on what layer it will affect, it will be developed within one of these layers.  This separation of layers of functionality allows us to develop quickly by letting multiple developers work simultaneously on the parts of the site at which they are most proficient.  Production can develop beautiful front-end interfaces by working within the scripts that are at the view level, while at the same time programmers can be adding new functionality to the application at the controller level.  Data issues, such as defining the relationships between tables and implementing validation can be separately addressed in the model by those with the most expertise at data modeling.</p>
<p><strong>To Cake?</strong></p>
<p>When should you develop a site using CakePHP instead of another tool?  There are several situations in which it shines.  The larger, more customized, and more data-intensive a project is, the more CakePHP makes sense as the solution.  Cake keeps things organized by emphasizing convention over configuration.  This means that when you set up a CakePHP project, you need to follow a few rules in order for everything else to fall into place.  These rules dictate several things: they describe a naming convention for your database tables and fields, they lay out a specific directory structure for organizing your code, and they enforce an object oriented class-based structure for your code implementation.</p>
<p>While this initial setup may sound as though it means more work, it is actually a very forward thinking way of going about developing a project.  Because everything is structured in a well-defined manner, you are safe to make assumptions about where things will be and how they will work.  This standardization makes the whole framework much more extensibile and easy to develop for.  In the same way that the RSS standard has made it easy to publish your own data and read in other peoples’ data, CakePHP’s agreed-upon structure makes it easier for developers to extend its basic functionality, letting you get to the finish line of your project faster than if you were coding everything by hand.</p>
<p>Additionally, the more developers will be working on a project at once, the more it makes sense to develop the product in CakePHP.  As described earlier, due to it’s MVC structure &#8211; various types of developers can be working in unison on a project, without stepping on each others’ toes.  Pairing this with a good version control system like SVN (we use Beanstalk) makes this even easier.</p>
<p>Finally, the more customized the requirements are, the more it makes sense to use CakePHP.  By leveraging the CakePHP framework, you automatically have at your fingertips an arsenal of core functions (based on classes called Helpers) that can be used for anything from querying the database in a safe manner, generating standards-compliant HTML for front-end components, and building your own custom plugins which let you leverage already existing tools to extend the capabilities of your web application.  You can even write your own helpers if you need additional functionality, or use some that have been written by the community.  Due to the agreed-upon structure of CakePHP, you can easily build new functionality into your applications.</p>
<p><strong>&#8230;Or Not To Cake?</strong></p>
<p>While CakePHP can be used to build a wide variety of applications, there are some types of projects for which CakePHP is not necessarily the best tool.  CakePHP is most likely overkill for web-enabling very small or simple data sets, and definitely so for building static websites.  Each time it runs, it loads a number of libraries which establish communication to and from the database, and to enable the MVC layers.  If your site does not use this functionality, it would have a smaller footprint if you did not use CakePHP.</p>
<p>CakePHP would also not be appropriate if there is another tool that already exists that does the same thing.  For instance, it would not make sense to use CakePHP to implement a blog if Wordpress will address your needs, since Wordpress is a mature and very successful application that focuses on blogging.  If you require a CMS with multiple layers of authoring and approval, a site driven by the Drupal CMS would probably be a better solution than cobbling a system out of CakePHP.  While you could implement these types of systems in CakePHP, to do so would be akin to reinventing the wheel &#8211; it’d be much more cost efficient to go with a product that does this already.</p>
<p>If you are interested in learning more about the CakePHP framework, check out the community website over at <a title="CakePHP" href="http://www.cakephp.org">www.cakephp.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/02/developing-with-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>String Theory</title>
		<link>http://pelanne.com/2009/01/string-theory/</link>
		<comments>http://pelanne.com/2009/01/string-theory/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 21:42:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://pelanne/?p=3</guid>
		<description><![CDATA[One of my favorite TED talks so far: physicist Brian Greene explains superstring theory, the idea that minscule strands of energy vibrating in 11 dimensions create every particle and force in the universe.
]]></description>
			<content:encoded><![CDATA[<p>One of my favorite TED talks so far: physicist Brian Greene explains superstring theory, the idea that minscule strands of energy vibrating in 11 dimensions create every particle and force in the universe.</p>
<br /><img src="http://i.ytimg.com/vi/YtdE662eY_M/0.jpg" alt="media" /><br />

]]></content:encoded>
			<wfw:commentRss>http://pelanne.com/2009/01/string-theory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
