<?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/"
	>

<channel>
	<title>Justin Faulkner's Blog</title>
	<atom:link href="http://justinfaulkner.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://justinfaulkner.com/blog</link>
	<description>Design and Development from Houston</description>
	<pubDate>Tue, 09 Jun 2009 04:48:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Job Search Update</title>
		<link>http://justinfaulkner.com/blog/?p=56</link>
		<comments>http://justinfaulkner.com/blog/?p=56#comments</comments>
		<pubDate>Tue, 09 Jun 2009 04:48:26 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/blog/?p=56</guid>
		<description><![CDATA[I&#8217;ve been searching heavily for a web app job in the Seattle/Tacoma area for the last month, and despite the fact that I&#8217;ve probably applied to 200+ jobs, I&#8217;ve only ever spoken to someone about maybe 40 of those jobs, and I haven&#8217;t yet found someone who will give me an in-person interview (I even [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been searching heavily for a web app job in the Seattle/Tacoma area for the last month, and despite the fact that I&#8217;ve probably applied to 200+ jobs, I&#8217;ve only ever spoken to someone about maybe 40 of those jobs, and I haven&#8217;t yet found someone who will give me an in-person interview (I even state up-front that I&#8217;ll pay for all my travel costs for an interview).</p>
<p>Since Rice&#8217;s CS curriculum really pushes OO Design in Dr. Nguyen and Dr. Wong courses, I feel like I have a more-solid-than-most command of OOD and (some) design patterns.  Combine that with my 6 years of writing web apps in PHP, and I feel like I&#8217;m a pretty strong candidate for all entry-level PHP dev jobs, and probaly most mid-level ones.  Good fundamentals, experience and samples to back it up.  And most of all, I am very confident in my ability to tackle a design problem in PHP.  </p>
<p>But obviously that&#8217;s not good enough, and I need to do more to grab hiring managers&#8217; attentions.  I&#8217;ve recently been trying to bolster my portfolio with an impressive app build on the industry&#8217;s latest and greatest technologies.  Right now I&#8217;m working on my &#8220;car identification&#8221; site, WhatTheCar, and I&#8217;ve been building it using as much prewritten good code as possible:  CodeIgniter PHP RAD Framework, FancyUpload (used by Flickr) by digitarald which uses the MooTools js library, reCAPTCHA (used by fb and craigslist), the Template library by Collin Williams, the Redux Authentication Library, base styles from BlueprintCSS, and prototype and scriptaculous js libraries for effects.  Integrating all these different components into WhatTheCar will at least give me more experience in engineering complete application systems from an existing codebase.</p>
<p>But I have no idea how long this site is going to take, and I need a job now.  So I&#8217;ve decided I need to maximize my immediate future in getting noticed.  And one of the ways I think that I can do that is by getting Zend Certified for PHP5.  </p>
<p>So over the next few days I&#8217;ll go over the study guide for the certification exam to get a better idea of what certification entails.  And then if I get certified I can use the certification as an extra testament to my php experience.</p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=56</wfw:commentRss>
		</item>
		<item>
		<title>Current LaSalon.com design</title>
		<link>http://justinfaulkner.com/blog/?p=51</link>
		<comments>http://justinfaulkner.com/blog/?p=51#comments</comments>
		<pubDate>Wed, 20 May 2009 19:02:43 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[design clients]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=51</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 460px"><a href="http://justinfaulkner.com/a/lasalon_draft.jpg"><img title="Latest LaSalon.com Design" src="http://justinfaulkner.com/a/lasalon_draft.jpg" alt="Latest LaSalon.com Design" width="450" height="470" /></a><p class="wp-caption-text">Latest LaSalon.com Design</p></div>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=51</wfw:commentRss>
		</item>
		<item>
		<title>Village La Salon - Draft 1</title>
		<link>http://justinfaulkner.com/blog/?p=49</link>
		<comments>http://justinfaulkner.com/blog/?p=49#comments</comments>
		<pubDate>Wed, 18 Mar 2009 10:59:34 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=49</guid>
		<description><![CDATA[I&#8217;m currently working on the website for a local salon and spa in Rice Village, Village la Salon.  They own a pretty fancy domain name (lasalon.com) so I&#8217;m trying to create an equally fancy design for them.
Here&#8217;s my first draft that I showed them.  They&#8217;ve asked for a steeper angle on the photo to show [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently working on the website for a local salon and spa in Rice Village, Village la Salon.  They own a pretty fancy domain name (lasalon.com) so I&#8217;m trying to create an equally fancy design for them.</p>
<p>Here&#8217;s my first draft that I showed them.  They&#8217;ve asked for a steeper angle on the photo to show more of the salon.  I also think that the colors are too flashy, and I should scale back the design to something a little less colorful.</p>
<p style="text-align: center;"><img class="aligncenter" title="La Salon Screenshot" src="http://www.justinfaulkner.com/drafts/lasalon_a/lasalon.jpg" alt="A screenshot of the first draft for the salon site" /></p>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=49</wfw:commentRss>
		</item>
		<item>
		<title>System Fail</title>
		<link>http://justinfaulkner.com/blog/?p=45</link>
		<comments>http://justinfaulkner.com/blog/?p=45#comments</comments>
		<pubDate>Fri, 20 Feb 2009 09:08:40 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=45</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Cat Fight" src="http://www.justinfaulkner.com/wp-content/uploads/2009/catfight.gif" alt="" width="473" height="386" /></p>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=45</wfw:commentRss>
		</item>
		<item>
		<title>COMP410 Presentation</title>
		<link>http://justinfaulkner.com/blog/?p=41</link>
		<comments>http://justinfaulkner.com/blog/?p=41#comments</comments>
		<pubDate>Wed, 03 Dec 2008 17:10:58 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=41</guid>
		<description><![CDATA[ 
]]></description>
			<content:encoded><![CDATA[<p> </p>
<div id="attachment_42" class="wp-caption aligncenter" style="width: 460px"><a href="http://justinfaulkner.com/wp-content/uploads/2008/12/deceitposter2.gif"><img class="size-full wp-image-42" title="Deceit Poster" src="http://justinfaulkner.com/wp-content/uploads/2008/12/deceitposter2.gif" alt="Deceit, More than Just a game" width="450" height="600" /></a><p class="wp-caption-text">Deceit, More than Just a game</p></div>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=41</wfw:commentRss>
		</item>
		<item>
		<title>Intra-site Server Hopping</title>
		<link>http://justinfaulkner.com/blog/?p=28</link>
		<comments>http://justinfaulkner.com/blog/?p=28#comments</comments>
		<pubDate>Tue, 25 Nov 2008 22:26:02 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Ethics]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=28</guid>
		<description><![CDATA[Have you ever had to add dynamic features to an existing website that ran on a webserver that only supported static HTML?  I&#8217;ve been presented with this situation twice in the last six months, and I&#8217;ve solved it the same way.  I use a different server with the capabilities I need, clone the layout, and [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever had to add dynamic features to an existing website that ran on a webserver that only supported static HTML?  I&#8217;ve been presented with this situation twice in the last six months, and I&#8217;ve solved it the same way.  I use a different server with the capabilities I need, clone the layout, and host the few dynamic pages on this other server.  Here&#8217;s the two examples.</p>
<p>bakercollege.net was running on JSP/Tomcat when I inherited it.  I&#8217;d never written a JSP before and I didn&#8217;t see any need to spend the time, so I just threw some static HTML pages up with a fresh Layout.  At the beginning of the academic year, the college president asked me to add a couple &#8220;Anonymous E-mail&#8221; forms.  The only way I knew how to do this was with PHP&#8217;s <code>mail</code> function.  So I threw up a couple new pages in a directory on THIS site, http://justinfaulkner.com, I copied the layout from the main site so as not to throw off the users, and I linked to the forms from bakercollege.net.</p>
<p>Here&#8217;s some screens.  First, here&#8217;s bakercollege.net, the static webserver:</p>
<p> </p>
<div id="attachment_29" class="wp-caption alignnone" style="width: 510px"><a href="http://justinfaulkner.com/wp-content/uploads/2008/11/baker1.jpg"><img class="size-full wp-image-29" title="bakercollege.net" src="http://justinfaulkner.com/wp-content/uploads/2008/11/baker1.jpg" alt="bakercollege.net running on a static webserver" width="500" height="411" /></a><p class="wp-caption-text">bakercollege.net running on a static webserver</p></div>
<p> </p>
<p> </p>
<p>Now, here&#8217;s the cloned layout on a page on justinfaulkner.com.</p>
<p> </p>
<div id="attachment_30" class="wp-caption alignnone" style="width: 510px"><a href="http://justinfaulkner.com/wp-content/uploads/2008/11/baker2.jpg"><img class="size-full wp-image-30" title="Part of bakercollege.net on justinfaulkner.com" src="http://justinfaulkner.com/wp-content/uploads/2008/11/baker2.jpg" alt="Here's a form from bakercollege.net sneakily hosted on justinfaulkner.com" width="500" height="187" /></a><p class="wp-caption-text">Here&#39;s a form from bakercollege.net sneakily hosted on justinfaulkner.com</p></div>
<p> </p>
<p>And here&#8217;s the other (more recent) example.  The Rice Computer Science Club Website runs on Rice&#8217;s RUF (Rice Unix Facility)  servers.  As far as I know, it doesn&#8217;t support any server-side scripting languages.  When we needed a Polling application, I immediately sought a way to host PHP, and temporarily converted http://justinlol.com into our Poll Booth.  Once again, I cloned the site look-and-feel and hosted a couple pages on justinlol.com that I linked to from http://www.ruf.rice.edu/~geeks .  Here are the shots:</p>
<p>This is the Rice Computer Science Club Website:</p>
<p> </p>
<div id="attachment_31" class="wp-caption alignnone" style="width: 510px"><a href="http://justinfaulkner.com/wp-content/uploads/2008/11/csclub1.jpg"><img class="size-full wp-image-31" title="Rice CS Club Website" src="http://justinfaulkner.com/wp-content/uploads/2008/11/csclub1.jpg" alt="The Rice CS Club Website.  Notice the Look &amp; Feel and URL" width="500" height="251" /></a><p class="wp-caption-text">The Rice CS Club Website.  Notice the Look &amp; Feel and URL</p></div>
<p>And now here&#8217;s the cloned pages running on justinlol.com</p>
<p> </p>
<div id="attachment_32" class="wp-caption alignnone" style="width: 510px"><a href="http://justinfaulkner.com/wp-content/uploads/2008/11/ricecs2.jpg"><img class="size-full wp-image-32" title="Rice CS Club pages hosted on justinlol.com" src="http://justinfaulkner.com/wp-content/uploads/2008/11/ricecs2.jpg" alt="Here I'm trying to hide the fact that this page is on a different server than the main CS Club Website" width="500" height="247" /></a><p class="wp-caption-text">Here I&#39;m trying to hide the fact that this page is on a different server than the main CS Club Website</p></div>
<p><strong>So I guess my question now is, &#8220;Is this ethical?&#8221;</strong>  </p>
<p>There is a certain trust between the Look &amp; Feel of a site, and the identity of that site.  Am I allowed to define the Rice CS Club Website to exist on both the Rice RUF and on JustinLOL.com?  I would say so: I&#8217;m the webmaster, I define where the pages are stored.  </p>
<p>But then again, am I weakening that trust in website brand identity by legitimately splitting up the site between servers/domains like this?  These two independent servers may both host content from the same party (me) but who&#8217;s to say that other people won&#8217;t copy the Rice CS Club layout and try to pretend like they&#8217;re legitimate off-server clones?  And even scarier, what if you were to arrive at one of these clones from a link <em>on my site?</em>  Would you even notice?  What if, say, a text-based ad from AdSense on bakercollege.net just happened to point to a bakercollege.net illegitimate clone?</p>
<p>I feel like my uses of multiple servers to host dynamic content and static content for the same site is fair, although perhaps I should warn the user that they are technically leaving the Rice-managed web-world, lest someone notice on their own and feel like I&#8217;ve breached their privacy.</p>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=28</wfw:commentRss>
		</item>
		<item>
		<title>MySQL INSERT Syntax Error key</title>
		<link>http://justinfaulkner.com/blog/?p=25</link>
		<comments>http://justinfaulkner.com/blog/?p=25#comments</comments>
		<pubDate>Tue, 25 Nov 2008 06:33:32 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=25</guid>
		<description><![CDATA[Problem
I was working on the Vote page for the Rice Computer Science Club for a Tshirt design and I got this error.
Error inserting into databse: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key) VALUES ('asdfasd','asdfasdf','283a7384578c2')' at line [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Problem</strong></p>
<div>I was working on the Vote page for the <a href="http://www.ruf.rice.edu/~geeks">Rice Computer Science Club</a> for a Tshirt design and I got this error.</div>
<blockquote><p><code>Error inserting into databse: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key) VALUES ('asdfasd','asdfasdf','283a7384578c2')' at line 1</code></p></blockquote>
<div><span><br />
</span></div>
<div><span>And here&#8217;s the whole query&#8230;</span></div>
<blockquote>
<div><span><br />
<code>INSERT INTO users (netid,name,key) VALUES ('asdfasd','asdfasdf','283a7384578c2')</code></span></div>
</blockquote>
<div><span><br />
</span></div>
<div><span>The  <code>users</code> table structure:</span></div>
<blockquote>
<pre>-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
  `userid` int(11) NOT NULL auto_increment,
  `netid` varchar(7) NOT NULL default '',
  `name` varchar(40) NOT NULL default '',
  `key` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;</pre>
</blockquote>
<div><span>For the life of me, I couldn&#8217;t figure out what was going on.  I read through the entire MySQL Manual on doing INSERTS.  As far as I could tell, I was doing everything exactly right.</span></div>
<p> </p>
<div><strong>Solution</strong></div>
<div>Turns out it&#8217;s the word &#8220;key&#8221;.  There&#8217;s obviously other meanings for &#8220;key&#8221; than just the name of my table column, and unless you distinguish the column name from the other &#8220;key&#8221;, MySQL will get confused.</div>
<div>Surround your potentially-confusing column names with `s, like so:</div>
<p> </p>
<blockquote>
<div><code>INSERT INTO users (netid,name,`key`) VALUES ('asdfasd','asdfasdf','283a7384578c2')</code></div>
</blockquote>
<div>` &lt;- the apostrophe-ish mark sharing a key with the ~.</div>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=25</wfw:commentRss>
		</item>
		<item>
		<title>How popular are File Sharing sites?</title>
		<link>http://justinfaulkner.com/blog/?p=23</link>
		<comments>http://justinfaulkner.com/blog/?p=23#comments</comments>
		<pubDate>Sun, 23 Nov 2008 08:15:43 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=23</guid>
		<description><![CDATA[I was curious how much traffic Bittorrent tracker sites actually got, so I headed over to Alexa.com and checked out their Top-100 Rankings for the United States.  The top two tracker sites in the States are The Pirate Bay and mininova.org, but they rank in at a surprisingly low 91 and 99 out of 100 [...]]]></description>
			<content:encoded><![CDATA[<p>I was curious how much traffic Bittorrent tracker sites actually got, so I headed over to Alexa.com and checked out their <a href="http://www.alexa.com/site/ds/top_sites?cc=US&amp;ts_mode=country&amp;lang=none">Top-100 Rankings for the United States</a>.  The top two tracker sites in the States are The Pirate Bay and mininova.org, but they rank in at a surprisingly low 91 and 99 out of 100 for traffic rank (<a href="http://www.alexa.com/site/help/traffic_learn_more">defined here</a>).</p>
<p>Non-Bittorrent sharing site RapidShare Ranks in at an impressive 31.</p>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=23</wfw:commentRss>
		</item>
		<item>
		<title>Gmail&#8217;s down!   What do I do!?!</title>
		<link>http://justinfaulkner.com/blog/?p=12</link>
		<comments>http://justinfaulkner.com/blog/?p=12#comments</comments>
		<pubDate>Mon, 11 Aug 2008 22:49:32 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Gmail]]></category>

		<category><![CDATA[Rants]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=12</guid>
		<description><![CDATA[

I&#8217;ve become painfully aware of how Gmail dependant I am.  I was expecting an e-mail from a friend when their Gmail account went down.  By the time they&#8217;d sent the message from a different account, my Gmail account had kicked me out to this error screen:





 


In Google Talk, slowly all of my buddies signed off.  [...]]]></description>
			<content:encoded><![CDATA[<div>
<div class="mceTemp mceIEcenter" style="text-align: left;">
<p>I&#8217;ve become painfully aware of how Gmail dependant I am.  I was expecting an e-mail from a friend when their Gmail account went down.  By the time they&#8217;d sent the message from a different account, my Gmail account had kicked me out to this error screen:</p></div>
<div class="mceTemp mceIEcenter">
<dl id="attachment_17" class="wp-caption aligncenter" style="width: 364px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-17 " title="gmail_error1" src="http://justinfaulkner.com/wp-content/uploads/2008/08/gmail_error1.gif" alt="Gmail's down!" width="354" height="339" /></dt>
</dl>
</div>
<p class="wp-caption-dd"> </p>
</div>
<div><a href="http://justinfaulkner.com/wp-content/uploads/2008/08/gmail_error.gif"></a></div>
<div>In Google Talk, slowly all of my buddies signed<a href="http://justinfaulkner.com/wp-content/uploads/2008/08/gmail_error1.gif"></a> off.  I even got a few messages via AIM lamenting their broken Gmails.  A quick Google News search pulled up a few articles about the outage.  Here&#8217;s a post from the <a href="http://groups.google.com/group/Gmail-Help-Announcements-and-Alerts-en/browse_thread/thread/9a69798cd0db14a5">Gmail Help Discussion</a>: </div>
<blockquote>
<div><em>The Gmail team is currently aware of a subset of users being affected<br />
by the 502 error on login. Our engineers are looking into the issue<br />
and we will provide updates here as they become available.</em></div>
<div><em><em>Thanks,<br />
Gmail Guide<br />
</em><br />
</em><em></em></div>
</blockquote>
<div>At first I was pretty sure that &#8220;subset&#8221; meant &#8220;majority&#8221; but now I&#8217;m not so sure.  Oddly enough, my father&#8217;s still signed into Google Talk.  And I can actually access his e-mail, no problem. </div>
<div>Regardless, I can&#8217;t read e-mails I need to read, I can&#8217;t send e-mails I need to send, and I can&#8217;t talk via Google Chat to the people who are perma-signed-in to Gmail.</div>
<div style="text-align: left;">And&#8230; this post is moot.  Gmail&#8217;s back.  Woot.</div>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=12</wfw:commentRss>
		</item>
		<item>
		<title>Object-oriented PHP and Codeigniter</title>
		<link>http://justinfaulkner.com/blog/?p=3</link>
		<comments>http://justinfaulkner.com/blog/?p=3#comments</comments>
		<pubDate>Fri, 08 Aug 2008 10:11:16 +0000</pubDate>
		<dc:creator>Justin Faulkner</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Codeigniter]]></category>

		<category><![CDATA[CS]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Yum Houston]]></category>

		<guid isPermaLink="false">http://justinfaulkner.com/?p=3</guid>
		<description><![CDATA[My project of the moment is my restaurant review concept, Yum Houston.  I&#8217;ve been working for about three weeks and I&#8217;m now in the early development.  I&#8217;m starting off by building a large codebase of classes that I&#8217;ll need.  My framework of choice for going from idea-to-product fast is (as always) Codeigniter.  Armed with my [...]]]></description>
			<content:encoded><![CDATA[<p>My project of the moment is my restaurant review concept, Yum Houston.  I&#8217;ve been working for about three weeks and I&#8217;m now in the early development.  I&#8217;m starting off by building a large codebase of classes that I&#8217;ll need.  My framework of choice for going from idea-to-product fast is (as always) Codeigniter.  Armed with my trusty-duty sidekicks Dreamweaver CS3 and Filezilla, development has been quick and easy =).  I also recently moved off my terrible dedicated server onto a new Grid account with Mediatemple (mt).  Everything is fast, easy to use, and I&#8217;m extremely motivated.</p>
<p>I&#8217;m taking my time on this project, trying to make sure I code things right the first time.  I&#8217;m trying to use as much object-oriented (OO) principles as seem appropriate as I go (you know, make the Rice CS profs proud).  I&#8217;ve developed using Codeigniter (CI)  several times before, but exactly how to apply my in-class OO knowledge in the Codeigniter framework escapes me at times:  I&#8217;m usually extremely uncertain as to where I should create my own classes that actually DO STUFF.  There are these controller and model classes floating around, but where do I put my class &#8220;Restaurant&#8221; that knows its location and its food type and knows how to display itself?</p>
<p>I stumbled across a <a href="http://www.jimohalloran.com/2007/09/10/building-a-complete-codeigniter-application-part-1/" target="_blank">great introduction to writing applications using CI</a> on <a href="http://www.jimohalloran.com/" target="_blank">Jim O&#8217;Halloran&#8217;s Weblog</a> &#8211; I ended up deciding to create a &#8220;single record&#8221; class Restaurant that was a model.  I gave it the appropriate fields (location, food type, name) and wrote a load($id) method.  I&#8217;ve honestly never written OO code that accessed a database before, so the concept is new to me.  Generally, you load the data from the db into your object:  my load($id) function takes a restaurant id, looks up its name, location, and food types, and sets its fields to the appropriate values.  Getters and setters let me modify the object.  And when I&#8217;m ready to save it back in the database, my save() function does just that.  This is apparantly really common, I remember seeing it before.  Up til now, I just havn&#8217;t realised where I could use it.</p>
<p>This brings me to the second point of this post.  I&#8217;ve been happily coding for about a week now on my new (mt) account with CI.  While I&#8217;m developing all sorts of errors show up, usually because I&#8217;m careless, or I don&#8217;t quite remember PHP syntax or CI convention.  While I was trying to code all &#8220;OOey&#8221; I tried modifying the visibility of some of my class fields.  PHP kept throwing my &#8220;privates&#8221; back in my face, though.  public, protected, it didn&#8217;t matter.  I also tried privatizing one of my controller functions.  When private function function_name() didn&#8217;t work, I even tried swapping the function and private, in a last ditch attempt.</p>
<p>It didn&#8217;t take long before I realised that the keyword var seemed to always solve my field problems.  And the var keyword looks <em>so very old</em> in my nubile PHP-coder eyes.  That&#8217;s when I decided to throw up a phpinfo() in my script.</p>
<p>Sure enough,</p>
<h1 class="p">PHP Version 4.4.8</h1>
<p class="p">I&#8217;m terrified that it&#8217;s taken me this long to figure out that I&#8217;m not running &#8220;all new, with great OO!&#8221; PHP5.  All that I even noticed was that __construct() and private never worked.  What were some other clues that could have tipped me off?</p>
<p class="p">Well, anyway, I&#8217;ll be sure to look into how to switch to PHP5 tomorrow &#8212; It&#8217;s just a setting in the (mt) control panel, I&#8217;m sure.  And then hopefully I&#8217;ll be off __construct()ing and privating in no time.</p>
]]></content:encoded>
			<wfw:commentRss>http://justinfaulkner.com/blog/?feed=rss2&amp;p=3</wfw:commentRss>
		</item>
	</channel>
</rss>
