<?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>brian dichiara</title>
	<atom:link href="http://blog.briandichiara.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.briandichiara.com</link>
	<description>designer. developer. friend.</description>
	<lastBuildDate>Tue, 17 Aug 2010 15:04:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>College Pick &#8216;Em: Coin Toss Version</title>
		<link>http://blog.briandichiara.com/college-pick-em-coin-toss-version/</link>
		<comments>http://blog.briandichiara.com/college-pick-em-coin-toss-version/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 13:46:44 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Bin]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=235</guid>
		<description><![CDATA[I decided as random as the outcome of collegiate football games, I&#8217;m going to leave it up to fate to decide my picks. For each game, I will choose who will win by flipping a penny sitting here on my desk. Heads will be home team, tails the other. To pick my confidence, I will [...]]]></description>
			<content:encoded><![CDATA[<p>I decided as random as the outcome of collegiate football games, I&#8217;m going to leave it up to fate to decide my picks.<br />
<span id="more-235"></span></p>
<p>For each game, I will choose who will win by flipping a penny sitting here on my desk. Heads will be home team, tails the other. To pick my confidence, I will shake 10 coins in my hand and sort by number of &#8220;heads&#8221; sides. For each tie, I will do this process again until they are sorted. Lastly, for the tie breaker, I have picked 1 Quarter, 2 dimes, 1 nickel, and 4 pennies. For each team, I shake them up, and I record the score of the total coins which show &#8220;heads&#8221; up.</p>
<p>Here goes Week 1. (The bold team is my pick)</p>
<ol>
<li><strong>Washington Huskies</strong> at Brigham Young Cougars (9/1)</li>
<li><strong>Connecticut Huskies</strong> at Michigan Wolverines (7/3, 6/4)</li>
<li>UCLA Bruins at <strong>Kansas State Wildcats</strong> (7/3, 5/5)</li>
<li>Purdue Boilermakers at <strong>Notre Dame Fighting Irish</strong> (6/4, 7/3, 4/6)</li>
<li>Kentucky Wildcats at <strong>Louisville Cardinals</strong> (6/4, 7/3, 3/7)</li>
<li>Illinois Fighting Illini at <strong>Missouri Tigers</strong> (6/4, 6/4)</li>
<li>LSU Tigers at <strong>North Carolina Tar Heels</strong> (6/4, 3/7)</li>
<li>Oregon State Beavers at <strong>TCU Horned Frogs</strong> (5/5, 7/3)</li>
<li>Colorado Buffaloes at <strong>Colorado State Rams</strong> (5/5, 5/5)</li>
<li>Cincinnati Bearcats at <strong>Fresno State Bulldogs</strong> (5/5, 4/6)</li>
</ol>
<p><strong>Tiebreaker</strong>: Cincinnati Bearcats &#8211; 12, Fresno State Bulldogs &#8211; 17</p>
<p>Good luck! I setup a group if you want to play too! </p>
<p><a href="http://games.espn.go.com/cpickem/en/group?groupID=4050">http://games.espn.go.com/cpickem/en/group?groupID=4050</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/college-pick-em-coin-toss-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reading #hash Variables in URI</title>
		<link>http://blog.briandichiara.com/reading-hash-variables-in-uri/</link>
		<comments>http://blog.briandichiara.com/reading-hash-variables-in-uri/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 19:27:26 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Bin]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=226</guid>
		<description><![CDATA[Most of the time when you have a # (hash) symbol in the URI, the functionality is simply to point to an anchor on the page. This is handled by html and the functionality of your browser. In more advanced situations, this variable can be read by JavaScript to do other things like change content [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the time when you have a # (hash) symbol in the URI, the functionality is simply to point to an anchor on the page. This is handled by html and the functionality of your browser. In more advanced situations, this variable can be read by JavaScript to do other things like change content or tabs, or maybe even use some fancy script to scroll you to a point on the page. In the case of usability, knowing the hash variable in your PHP code can be extremely useful.</p>
<p><span id="more-226"></span></p>
<p>The <acronym title="CodeIgniter">CI</acronym> IRC channel, a user by the name of amouge posted a link to his blog sharing an awesome tip on how to read this variable with your PHP code. The <a href="http://ignitedgeek.com/2010/06/01/quick-tip-hash-signs-in-uri/">example he posted</a> is addressed to CI users, but it can be used by any PHP developer using apache and mod_rewrite.</p>
<p>The code is as follows:</p>
<div class="igBar"><span id="lperl-2"><a href="#" onclick="javascript:showPlainTxt('perl-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PERL:</span>
<div id="perl-2">
<div class="perl">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;IfModule mod_rewrite.c&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; RewriteEngine On</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; RewriteCond %<span style="color: #66cc66;">&#123;</span>REQUEST_FILENAME<span style="color: #66cc66;">&#125;</span> !-f</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; RewriteCond %<span style="color: #66cc66;">&#123;</span>REQUEST_FILENAME<span style="color: #66cc66;">&#125;</span> !-d</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; RewriteCond %<span style="color: #66cc66;">&#123;</span>THE_REQUEST<span style="color: #66cc66;">&#125;</span> /<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span>^?\ <span style="color: #66cc66;">&#93;</span>+<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; RewriteRule <span style="color: #66cc66;">&#40;</span>.*<span style="color: #66cc66;">&#41;</span> <a href="http://www.perldoc.com/perl5.6/pod/func/index.html"><span style="color: #000066;">index</span></a>.php/%<span style="color: #cc66cc;color:#800000;">1</span> <span style="color: #66cc66;">&#91;</span>L<span style="color: #66cc66;">&#93;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/IfModule&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;IfModule !mod_rewrite.c&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ErrorDocument <span style="color: #cc66cc;color:#800000;">404</span> /<a href="http://www.perldoc.com/perl5.6/pod/func/index.html"><span style="color: #000066;">index</span></a>.php</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/IfModule&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>You can now either parse the $_SERVER['REQUEST_URI'] variable now, or in CI use: $this->uri->segment();</p>
<p>Hope someone else finds that useful!</p>
<p><a href="http://ignitedgeek.com/2010/06/01/quick-tip-hash-signs-in-uri/">http://ignitedgeek.com/2010/06/01/quick-tip-hash-signs-in-uri/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/reading-hash-variables-in-uri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Experience with NetBeans</title>
		<link>http://blog.briandichiara.com/my-experience-with-netbeans/</link>
		<comments>http://blog.briandichiara.com/my-experience-with-netbeans/#comments</comments>
		<pubDate>Tue, 18 May 2010 21:57:39 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Bin]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=203</guid>
		<description><![CDATA[I recently wrote about my switch to phpDesigner as my IDE. Since the article, I have received several comments/feedback telling me I should try NetBeans. I had already installed it once before and didn't like it, but I couldn't remember why. So, I thought I'd try it again, except this time, document my experience! My [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="/switching-ides-codeigniter-users-should-too/">recently wrote</a> about my switch to <a href="http://www.mpsoftware.dk/phpdesigner.php" target="_blank">phpDesigner</a> as my IDE. Since the article, I have received several comments/feedback telling me I should try NetBeans. I had already installed it once before and didn't like it, but I couldn't remember why. So, I thought I'd try it again, except this time, document my experience!</p>
<p>My favorite feature about phpDesigner, and the primary reason why I use it over any other IDE is it's ability to take files in my project, wrap em all up and create the intellisense for all my classes, functions, methods, and constants, INCLUDING phpDoc comments in my code hints. And as I mention in my article, phpDesigner does this really fast! Even when reading a project off a network drive.<br />
<span id="more-203"></span><br />
The version I installed was 6.8. Here we go:</p>
<h2>Installation</h2>
<ol>
<li>Google: <a href="http://www.google.com/search?hl=en&#038;client=firefox-a&#038;hs=4Po&#038;rls=org.mozilla%3Aen-US%3Aofficial&#038;q=NetBeans&#038;aq=f&#038;aqi=g10&#038;aql=&#038;oq=&#038;gs_rfai=" target="_blank">NetBeans</a> -&gt; <a href="http://netbeans.org/" target="_blank">Website</a></li>
<li>Download FREE -&gt; PHP Column -&gt; "Download" Button</li>
<li>File's Downloaded -&gt; Install! <strong style="color:#F00;">STOP!</strong><br />
	I do not have <acronym title="Java Development Kit">JDK</acronym> installed on my computer. Guess I'd better go get that.</li>
<li>Google: <a href="http://www.google.com/search?q=JDK&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-US:official&#038;client=firefox-a" target="_blank">JDK</a> -&gt; <a href="http://java.sun.com/javase/downloads/index.jsp">Website</a></li>
<li>Oh, look! JDK + NetBeans Bundle. I'll grab that!</li>
<li>Select Windows, I agree checkbox, Download.</li>
<li>Now that this is downloaded, Let's install! ... [installing]</li>
<li>Ok, installed! Let's Run.</li>
</ol>
<h2>First Impressions</h2>
<ol>
<li>Fairly Quick Load.</li>
<li>First thing I'm notified of is there is an Update to the Updater that I need to get.</li>
<li>Ok, update is done, Restarted IDE, Run again.</li>
<li>Now that my Updater has been updated, I can now find out about 10-12 more updates that I need for this software. Ok, better get those. I'll let these run in the background, it seems to be taking a while.</li>
<li>The interface is nice. Seems clean, easy to use. I'll create a new project while I wait for updater to finish. <strong style="color:#F00;">STOP!</strong></li>
<li>I can't create a new PHP project because I installed the standard version of NetBeans, not the PHP version. I'd better go get the PHP plugin. <strong style="color:#F00;">STOP!</strong></li>
<li>I can't get any additional plugins until the updater is done doing its thing. I'll go grab a soda.</li>
<li>All right! Update is done again, Restarted IDE, Run again.</li>
<li>Tools -&gt; Plugins -&gt; Available Plugins -&gt; PHP (and I went ahead and grabbed the PHP Manual Search)</li>
<li>OK, that should be the last of the updates, plugins, and installs. Restart IDE one last time (hopefully).</li>
</ol>
<h2>My First Project</h2>
<ol>
<li>Now that PHP is setup, I can create my first project. I'll select one I've already been working on so that I can test out some of the features of the IDE.</li>
<li>File -&gt; New Project -&gt; PHP -&gt; PHP Application with Existing Sources -&gt; Next -&gt; Select my application folder -&gt; Name my project -&gt; Select PHP 5.3 -&gt; Check box to put metadata in separate directory -&gt; Next -&gt; Finish!</li>
<li>Ah, ok, here we go. There are my files in the Projects pane, as expected. Let me find a file so I can test out the "intellisense".</li>
<li>Browse -&gt; Down -&gt; to -&gt; folder. This is a bit sluggish. There's a slight delay after clicking the PLUS next to each folder as I navigate down.</li>
<li>Ok, so I open up a model I built using the <a href="http://codeigniter.com/" target="_blank">CodeIgniter Framework</a></li>
<li><img src="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans1.png" alt="" title="netbeans1" width="281" height="56" class="alignright size-full wp-image-211" /> The first thing I notice is a new panel has popped up called Navigator. Although the contents are "Please Wait...".</li>
<li>I'll worry about that later, right now, let's give intellisense a shot. I type $this-&gt; to see what comes up. Heres what I get:<br /><a href="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans.png" rel="lightbox"><img src="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans-300x201.png" alt="" title="netbeans" width="300" height="201" class="aligncenter size-medium wp-image-210" /></a></li>
<li><a href="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans2.png" rel="lightbox"><img src="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans2-150x150.png" alt="" title="netbeans2" width="150" height="150" class="alignright size-thumbnail wp-image-212" /></a>I also notice in the bottom right corner of the application, there is a progress bar that reads "Scanning projects..."</li>
<li>I suppose the progress bar explains why intellisense isn't working. So I'll wait til the project scanning is done. It shouldn't take long right?</li>
<li>While I'm waiting for this to finish, I'll take a look at some syntax highlighter themes. Hmm. There doesn't seem to be any to my liking. I'll <a href="http://www.google.com/search?hl=en&#038;client=firefox-a&#038;rls=org.mozilla%3Aen-US%3Aofficial&#038;q=netbeans+dark+color+themes&#038;aq=f&#038;aqi=&#038;aql=&#038;oq=&#038;gs_rfai=" target="_blank">Google</a> for some.</li>
<li>Ah, I found one I might like, I'll follow <a href="http://zach.purplerockscissors.com/2009/07/01/textmate-sunburst-theme-netbeans">the instructions</a> on the blog where I found it and Import this theme.</li>
<li>Import Successful. I must again restart the IDE or my changes "might not show up." Restart IDE, again.</li>
<li><strong style="color:#F00;">STOP!</strong> What is this?? Some huge error has occurred while trying to load a laundry list of plugins (as well as 65 others not shown). I can either Exit or Disable and Continue. Disable and Continue?</li>
<li>Nice. The IDE is COMPLETELY empty with a PHP button in the toolbar, no menu bars, no panels, nothing else. I must've closed down the application while it was doing something REALLY important.</li>
<li>I have no choice but to uninstall and re-install.</li>
</ol>
<h2>Reinstallation</h2>
<ol>
<li>Start -&gt; Control Panel -&gt; Programs and Features -&gt; NetBeans IDE 6.8 -&gt; Uninstall</li>
<li>Ok, NetBeans is uninstalled. Let's re-install it to see if that fixes my problem.</li>
<li>Step X: Cannot install into Program Files (x86)/NetBeans 6.8 - Directory is not empy</li>
<li>Navigate to directory, manually delete files: Error, cannot delete files.</li>
<li>Restart Computer</li>
<li>Navigate to directory, manually delete files. Reinstall NetBeans.</li>
</ol>
<h2>Second Run</h2>
<ol>
<li><strong style="color:#F00;">STOP!</strong> Same error as Step 13 above.</li>
<li>Uninstall NetBeans, Java 6 Update 20, and Java SDK 6 Update 20</li>
<li>Restart Computer (ended up not being necessary)</li>
</ol>
<h2>Third Installation</h2>
<ol>
<li>Reinstalling the entire Package again.</li>
<li>At this point I'm a little frustrated at NetBeans. It's wasted a lot of my time and I feel like my efforts will be rewarded by an IDE that will be lacking in what I want anyway.</li>
</ol>
<h2>Third Run</h3>
<ol>
<li>Now that I seemed to have gotten that error to go away, I proceeded again with this entire process all over again, from the software updates to the plugin installs/updates, and then the creation of a new PHP project.</li>
<li>So I'm still waiting to find out how the intellisense works (which is the MAIN reason why I love phpDesigner). Yet I still have a dialog that reads "Scanning in progress..."</li>
<li>I then try to change the syntax highlighter again, although this time, I know not to restart the IDE while it's doing something in the background.</li>
<li>Much time passes and "Scanning Projects..." is still going on in the corner of the window.</li>
<li>I think I'll take a break....</li>
<li>Still Scanning Projects....</li>
<li>Alas! A new step in the process!!<br /><a href="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans4.png" rel="lightbox"><img src="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans4-300x90.png" alt="" title="netbeans4" width="300" height="90" class="aligncenter size-medium wp-image-214" /></a></li>
<li>Does intellisense now work??<br /><a href="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans3.png" rel="lightbox"><img src="http://blog.briandichiara.com/wp-content/uploads/2010/05/netbeans3-300x110.png" alt="" title="netbeans3" width="300" height="110" class="aligncenter size-medium wp-image-213" /></a></li>
<li>Nope. <img src='http://blog.briandichiara.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Gonna wait some more....</li>
<li>Finally. Everything's done scanning, the Navigator has stuff in it, and I can test out the intellisense!</li>
<li>Ok, the intellisense box did not auto trigger and I can't seem to find a setting to make it do that. I also only see in this list the methods and properties in this specific class. I do not see methods and properties in the class I'm extending.</li>
<li>I noticed there was a PHP Symfony plugin for NetBeans. Maybe there's a CI Plugin. I <a href="http://www.google.com/search?q=netbeans+codeigniter&#038;ie=utf-8&#038;oe=utf-8&#038;aq=t&#038;rls=org.mozilla:en-US:official&#038;client=firefox-a" target="_blank">Google</a> and find <a href="http://www.mybelovedphp.com/2009/01/27/netbeans-revisited-code-completion-for-code-igniter-ii/" target="_blank">this blog post</a>.</li>
</ol>
<h2>Final Thoughts</h2>
<p>I'm really not going to pursue this any further. I have gotten to a point in this process where I have firmly established that using phpDesigner is 100x better than NetBeans when it comes to its ability to provide intellisense. The method outlined in the blog post above seems a bit rediculous when my CI folder is sitting inside my project. It should find it and parse through it. The whole point of this functionality is to speed up development time, and adding extra steps to each project is quite the opposite.</p>
<p>On a side note, I restarted the IDE again at this point, and guess what I had to sit through for another 30 min. or so. More PROJECT LOADING... Just as equally slow as the first time. Sorry, no intellisense until that's done.</p>
<p>I understand there are people that have been using NetBeans for a while and wanted this functionality with CI, however I think I'm just going to stick with what I've been using.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/my-experience-with-netbeans/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Extended CodeIgniter Loader Library</title>
		<link>http://blog.briandichiara.com/extended-codeigniter-loader-library/</link>
		<comments>http://blog.briandichiara.com/extended-codeigniter-loader-library/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 13:47:35 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Bin]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=194</guid>
		<description><![CDATA[I've been trying to make contributions wherever I can to CI and one handy thing I've been using is an extended CI Loader Library. It adds 2 features: 1. The ability to alias auto-loaded models and libraries. 2. The ability to load a model or library from another CI application on the same server. Here's [...]]]></description>
			<content:encoded><![CDATA[<p>I've been trying to make contributions wherever I can to CI and one handy thing I've been using is an extended CI Loader Library. It adds 2 features:</p>
<p>1. The ability to alias auto-loaded models and libraries.<br />
2. The ability to load a model or library from another CI application on the same server.</p>
<p>Here's the link to the forum post with all the details:<br />
<a href="http://codeigniter.com/forums/viewthread/151827/">http://codeigniter.com/forums/viewthread/151827/</a></p>
<p>If you just want the code, here's the link:<br />
<a href="http://solepixel.pastebin.com/6DHpxXuz">http://solepixel.pastebin.com/6DHpxXuz</a><br />
<span id="more-194"></span></p>
<p>The reason I wrote these 2 items in was because:<br />
1. I usually keep to a similar naming convention with models: m_modelname. The reason is because in an application, we've found that common entities will all typically have the same name. I.E. Model, View, and Controller. An example would be a Contact page. There's controllers/contact.php, models/contact.php, views/contact.php. With all three files open at once, they all look like contact.php. Also when searching files, they all 3 show up which makes it hard to distinguish between all 3. I suppose one day it might be a good idea to keep to this naming convention with views as well, but not today <img src='http://blog.briandichiara.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>2. Usually most sites we do have a CMS backend attached to it. The CMS usually has models for handling everything for each bit of data, like retrieve all, retrieve one, update, delete, etc. I often find I need access to some of these methods from the frontend application and end up creating a model on the frontend with the exact same methods. Well this causes problems when table structures change and both models need to get updated to reflect the new structure. This extension resolves that problem and allows you to load a model from another CI application. It even will load from a different site if it's on the same server. An example of this is we have a live site (domain.com) and a mobile site (m.domain.com) and both sit on the same server. So now I can access models from the live site from within the mobile site!</p>
<p>Hope this helps someone out. I hear CI 2 is supposed to support this and it's called packages and package_path. <a href="http://philsturgeon.co.uk/">Phil Sturgeon</a> writes about it <a href="http://philsturgeon.co.uk/news/2010/03/codeigniter-2">here</a>. Please comment if you like it or have any thoughts on how to improve/enhance it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/extended-codeigniter-loader-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Longest Spades Game Ever!</title>
		<link>http://blog.briandichiara.com/longest-spades-game-ever/</link>
		<comments>http://blog.briandichiara.com/longest-spades-game-ever/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 06:29:30 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Bin]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=191</guid>
		<description><![CDATA[The past few months or so, I've been playing Spades online at MSN Games Zone. I like it SO much better than Yahoo. Well, they've got this version called Whiz. Basically the rules are same as normal Spades, however when you bid, you must bid either the number of Spades in your hand or Nil. [...]]]></description>
			<content:encoded><![CDATA[<p>The past few months or so, I've been playing Spades online at MSN Games Zone. I like it SO much better than Yahoo. Well, they've got this version called Whiz. Basically the rules are same as normal Spades, however when you bid, you must bid either the number of Spades in your hand or Nil. I really enjoy this game, almost a little too much.  So tonight I got in a room with 3 others and little did we know what was sort of game we had gotten ourselves into. I can't remember the stats exactly, but it was a 2050 rated player paired with a 1600 rated player, vs. 2200 and 1480. This game went 50 rounds of rediculous back and forth setting and missed nils. It took so long the other 3 players dropped out before it ended. I pasted the scores here.<br />
<span id="more-191"></span></p>
<p><code>[Event "MSN Games - Whiz2 Spades"]<br />
[Site "games.msn.com"]<br />
[Date "2009.12.2"]<br />
[Board "1"]<br />
[South "sole_pixel"]<br />
[West "Computer2"]<br />
[North "Computer3"]<br />
[East "Computer4"]<br />
[EndScore "500"]<br />
[MaxRounds "50"]<br />
[AllowBlindNil "false"]<br />
[Dealer "W"]<br />
[Deal "N:AT.KJ962.T4.J863 K98762.85.Q9.QT2 54.Q74.KJ872.A54 QJ3.AT3.A653.K97"]<br />
[Auction "N"]<br />
2S 6S 2S 3S<br />
[Play "N"]<br />
 1. D4 D9 DJ DA<br />
 2. HA H9 H5 H4<br />
 3. H3 HK H8 H7<br />
 4. DT DQ DK D3<br />
 5. HQ HT H6 S2<br />
 6. C2 C4 CK C8<br />
 7. C9 CJ CQ CA<br />
 8. C5 C7 C3 CT<br />
 9. S6 S4 SJ SA<br />
10. C6 S7 D2 D5<br />
11. SK S5 S3 ST<br />
12. S9 D8 SQ H2<br />
13. D6 HJ S8 D7<br />
[Dealer "N"]<br />
[Deal "E:K9842.KT76.Q4.A7 3.94.AKJT762.Q52 5.Q8532.93.KJ963 AQJT76.AJ.85.T84"]<br />
[Auction "E"]<br />
5S NIL NIL 6S<br />
[Play "E"]<br />
 1. CA CQ CK C8<br />
 2. DQ DJ D9 D5<br />
 3. HK H9 HQ HA<br />
 4. D8 D4 D7 D3<br />
 5. C4 C7 C5 C6<br />
 6. HT H4 H8 HJ<br />
 7. CT S2 C2 CJ<br />
 8. SK S3 S5 SA<br />
 9. SQ S4 DA C9<br />
10. SJ S8 DK H5<br />
11. ST S9 DT C3<br />
12. S7 H7 D6 H3<br />
13. S6 H6 D2 H2<br />
[Dealer "E"]<br />
[Deal "S:JT.764.KJT.97432 K98.KJT982.87.K5 7654.A.Q9642.J86 AQ32.Q53.A53.AQT"]<br />
[Auction "S"]<br />
2S 3S 4S 4S<br />
[Play "S"]<br />
 1. H6 HT HA H3<br />
 2. C8 CA C2 C5<br />
 3. CT C3 CK C6<br />
 4. D7 D6 DA DT<br />
 5. CQ C4 D8 CJ<br />
 6. HQ H7 H2 S4<br />
 7. D2 D3 DK S8<br />
 8. H8 S5 H5 H4<br />
 9. D4 D5 DJ S9<br />
10. H9 S6 SQ C7<br />
11. S2 SJ SK S7<br />
12. HK DQ SA ST<br />
13. S3 C9 HJ D9<br />
[Dealer "S"]<br />
[Deal "W:AQJT7.KQ3.KT92.7 K85.T.Q874.KJ643 943.AJ64.A65.T85 62.98752.J3.AQ92"]<br />
[Auction "W"]<br />
5S 3S 3S NIL<br />
[Play "W"]<br />
 1. C7 C6 C5 C2<br />
 2. H3 HT HJ H9<br />
 3. C8 C9 S7 C3<br />
 4. HQ D4 H6 H8<br />
 5. HK D7 H4 H7<br />
 6. DT DQ DA DJ<br />
 7. D5 D3 DK D8<br />
 8. SA S5 S9 S6<br />
 9. ST SK S4 S2<br />
10. CK CT CQ SJ<br />
11. SQ S8 S3 CA<br />
12. D2 C4 D6 H5<br />
13. HA H2 D9 CJ<br />
[Dealer "W"]<br />
[Deal "N:A754.543.Q43.965 Q8.AKT98.A8.KQ82 K9.J72.T52.AJT73 JT632.Q6.KJ976.4"]<br />
[Auction "N"]<br />
4S 2S 2S 5S<br />
[Play "N"]<br />
 1. H3 HA H2 H6<br />
 2. HK H7 HQ H4<br />
 3. H8 HJ S2 H5<br />
 4. C4 C6 CK CA<br />
 5. DT DJ DQ DA<br />
 6. CQ C3 D6 C9<br />
 7. D8 D5 DK D4<br />
 8. D9 D3 S8 D2<br />
 9. HT CJ S3 S4<br />
10. SA SQ S9 S6<br />
11. S5 C2 SK ST<br />
12. C7 SJ C5 C8<br />
13. D7 S7 H9 CT<br />
[Dealer "N"]<br />
[Deal "E:763.832.A9872.76 KT94.Q754.4.AT85 A5.AKJ6.KQT53.J3 QJ82.T9.J6.KQ942"]<br />
[Auction "E"]<br />
NIL 4S 2S 4S<br />
[Play "E"]<br />
 1. C6 CA C3 C4<br />
 2. D4 DQ D6 D9<br />
 3. HA H9 H8 H7<br />
 4. CJ CQ C7 C8<br />
 5. HT H3 HQ HJ<br />
 6. H5 H6 DJ H2<br />
 7. DT SJ DA CT<br />
 8. S8 S7 SK SA<br />
 9. DK SQ D8 ST<br />
10. S2 S3 S4 S5<br />
11. D5 C9 D2 S9<br />
12. C5 HK CK D7<br />
13. C2 S6 H4 D3<br />
[Dealer "E"]<br />
[Deal "S:Q64.76.T8.A98762 98.KJ9543.J54.43 AKJ72.AT82.AKQ9. T53.Q.7632.KQJT5"]<br />
[Auction "S"]<br />
3S NIL 5S 3S<br />
[Play "S"]<br />
 1. H7 H5 HA HQ<br />
 2. DK D2 DT DJ<br />
 3. DQ D3 D8 D5<br />
 4. D9 D6 C9 D4<br />
 5. DA D7 C8 HK<br />
 6. H2 S3 H6 HJ<br />
 7. CK CA C4 SJ<br />
 8. H8 C5 C7 H4<br />
 9. HT S5 S6 H9<br />
10. C2 C3 SK CT<br />
11. S7 ST S4 S9<br />
12. CQ C6 H3 SA<br />
13. S2 CJ SQ S8<br />
[Dealer "S"]<br />
[Deal "W:962.J6.KT984.K85 T87.752.A32.Q764 J53.AKQT94.6.JT3 AKQ4.83.QJ75.A92"]<br />
[Auction "W"]<br />
3S 3S 3S 4S<br />
[Play "W"]<br />
 1. H6 H7 HA H3<br />
 2. HK H8 HJ H5<br />
 3. D6 D7 DT DA<br />
 4. H2 HQ S4 S6<br />
 5. C5 C7 CJ CA<br />
 6. SA S2 S7 S3<br />
 7. DJ DK D2 C3<br />
 8. CK C6 CT C2<br />
 9. D4 D3 S5 D5<br />
10. HT SQ D8 C4<br />
11. SK S9 S8 SJ<br />
12. DQ D9 CQ H4<br />
13. C9 C8 ST H9<br />
[Dealer "W"]<br />
[Deal "N:Q86.J83.K732.QJ6 AT7.AK42.JT95.T4 9432.T976.A6.K53 KJ5.Q5.Q84.A9872"]<br />
[Auction "N"]<br />
3S 3S 4S 3S<br />
[Play "N"]<br />
 1. D7 D9 DA D4<br />
 2. D6 D8 DK D5<br />
 3. D2 DJ S2 DQ<br />
 4. C5 CA C6 C4<br />
 5. C2 CJ CT C3<br />
 6. D3 DT S3 S5<br />
 7. H5 HJ HA H6<br />
 8. HK H7 HQ H3<br />
 9. H2 H9 SJ H8<br />
10. C7 CQ S7 CK<br />
11. H4 HT SK SQ<br />
12. C8 S8 SA S9<br />
13. ST S4 C9 S6<br />
[Dealer "N"]<br />
[Deal "E:KQJ92.QT2.KQ3.64 A87.94.9862.JT97 43.AKJ86.75.K852 T65.753.AJT4.AQ3"]<br />
[Auction "E"]<br />
5S 3S NIL 3S<br />
[Play "E"]<br />
 1. DK D9 D7 DA<br />
 2. H7 HQ H9 HJ<br />
 3. DQ D8 D5 DJ<br />
 4. HT H4 H8 H5<br />
 5. D3 D2 HA D4<br />
 6. H3 H2 CJ H6<br />
 7. C5 CQ C4 C7<br />
 8. DT S2 D6 HK<br />
 9. SK SA S4 S5<br />
10. S7 S3 ST SQ<br />
11. C6 CT C8 C3<br />
12. C9 C2 CA S9<br />
13. SJ S8 CK S6<br />
[Dealer "E"]<br />
[Deal "S:KT642.942.QJ52.A AQ973.Q.A843.985 J8.KT76.K96.KJ74 5.AJ853.T7.QT632"]<br />
[Auction "S"]<br />
5S 5S 2S 1S<br />
[Play "S"]<br />
 1. H9 HQ HK HA<br />
 2. D7 DJ DA D9<br />
 3. D3 DK DT D2<br />
 4. D6 S5 D5 D4<br />
 5. C2 CA C5 C7<br />
 6. DQ D8 H7 H3<br />
 7. H4 S7 H6 H5<br />
 8. SA S8 C3 S2<br />
 9. C9 CK C6 H2<br />
10. CJ CQ S4 C8<br />
11. S6 S9 SJ H8<br />
12. HT HJ ST SQ<br />
13. S3 C4 CT SK<br />
[Dealer "S"]<br />
[Deal "W:Q864..Q432.87543 KJ75.QT43.86.QJ6 T3.J762.KJ7.KT92 A92.AK985.AT95.A"]<br />
[Auction "W"]<br />
4S 4S 2S 3S<br />
[Play "W"]<br />
 1. D2 D6 DK DA<br />
 2. CA C3 C6 C2<br />
 3. HK S4 H4 H2<br />
 4. D4 D8 DJ D5<br />
 5. CK S2 C4 CJ<br />
 6. DT DQ S5 D7<br />
 7. CQ C9 H5 C5<br />
 8. HQ H6 H8 S6<br />
 9. D3 S7 ST D9<br />
10. HJ HA SQ H3<br />
11. C7 SJ CT H9<br />
12. HT H7 S9 C8<br />
13. SA S8 SK S3<br />
[Dealer "W"]<br />
[Deal "N:53.A7.AKJ72.KJ74 AQ762.KQT64.3.86 KT8.J82.Q64.AT93 J94.953.T985.Q52"]<br />
[Auction "N"]<br />
2S 5S 3S NIL<br />
[Play "N"]<br />
 1. HA H4 H8 H9<br />
 2. H7 HK HJ H5<br />
 3. HQ H2 H3 S5<br />
 4. S3 SA ST SJ<br />
 5. HT DQ CQ DJ<br />
 6. H6 D6 DT CJ<br />
 7. C8 CT C5 CK<br />
 8. C4 C6 C3 C2<br />
 9. SQ SK S9 DK<br />
10. D4 D5 D2 D3<br />
11. S4 D7 S7 S8<br />
12. CA D9 C7 S6<br />
13. S2 C9 D8 DA<br />
[Dealer "N"]<br />
[Deal "E:AQ954.AK5.K96.97 J8732.62.J52.KJ3 6.QJT94.A4.Q6542 KT.873.QT873.AT8"]<br />
[Auction "E"]<br />
5S 5S 1S 2S<br />
[Play "E"]<br />
 1. HA H2 H4 H8<br />
 2. HK H6 H9 H3<br />
 3. H5 S2 HT H7<br />
 4. DJ DA D7 D6<br />
 5. D4 D8 DK D2<br />
 6. D9 D5 S6 D3<br />
 7. C2 CA C7 C3<br />
 8. DQ S4 S7 C4<br />
 9. CK C5 C8 C9<br />
10. CJ CQ CT S5<br />
11. S9 S3 C6 ST<br />
12. DT SQ SJ HJ<br />
13. SA S8 HQ SK<br />
[Dealer "E"]<br />
[Deal "S:KQ9653..J854.Q43 AJT.AQJ7632..A98 2.KT94.KQ976.KJT 874.85.AT32.7652"]<br />
[Auction "S"]<br />
6S 3S 1S NIL<br />
[Play "S"]<br />
 1. C4 CA CJ C7<br />
 2. HA H9 H8 SK<br />
 3. C3 C8 CT C6<br />
 4. CK C5 CQ C9<br />
 5. HT H5 SQ H2<br />
 6. D5 ST D9 DA<br />
 7. HJ H4 DT S9<br />
 8. D4 SJ D7 D3<br />
 9. H7 HK C2 S6<br />
10. S5 SA S2 S8<br />
11. H6 DK D2 S3<br />
12. DJ H3 DQ S7<br />
13. S4 D8 HQ D6<br />
[Dealer "S"]<br />
[Deal "W:A7642.Q7.954.JT3 Q5.KJ96432.Q2.Q6 J983.A8.AKJ8.K82 KT.T5.T763.A9754"]<br />
[Auction "W"]<br />
5S 2S 4S 2S<br />
[Play "W"]<br />
 1. H7 HK HA H5<br />
 2. H8 HT HQ H9<br />
 3. C3 CQ CK CA<br />
 4. C9 CT C6 C2<br />
 5. CJ S5 C8 C4<br />
 6. D2 DA D3 D4<br />
 7. DK D6 D5 DQ<br />
 8. S9 ST S2 SQ<br />
 9. H2 S3 SK SA<br />
10. S6 H6 SJ C5<br />
11. DJ D7 D9 H3<br />
12. D8 DT S7 H4<br />
13. S4 HJ S8 C7<br />
[Dealer "W"]<br />
[Deal "N:9652.AT8753.K3.2 AKJT843.K4.84.97 .J2.AJT9652.AKQJ Q7.Q96.Q7.T86543"]<br />
[Auction "N"]<br />
4S 7S NIL NIL<br />
[Play "N"]<br />
 1. HA H4 HJ HQ<br />
 2. HT HK H2 H9<br />
 3. C9 CA CT C2<br />
 4. D5 D7 DK D4<br />
 5. D3 D8 D9 DQ<br />
 6. C3 S2 C7 CK<br />
 7. H8 S8 CQ H6<br />
 8. SA CJ SQ S5<br />
 9. SK DJ S7 S6<br />
10. SJ DT C8 S9<br />
11. ST D6 C6 H7<br />
12. S4 DA C5 H5<br />
13. S3 D2 C4 H3<br />
[Dealer "N"]<br />
[Deal "E:Q53.AK42.JT975.8 J72.T.K62.KJ7543 K9864.J53.AQ4.AQ AT.Q9876.83.T962"]<br />
[Auction "E"]<br />
3S NIL 5S 2S<br />
[Play "E"]<br />
 1. HA HT H5 H6<br />
 2. C8 C7 CA C2<br />
 3. DA D3 D9 DK<br />
 4. DQ D8 D7 D6<br />
 5. D4 ST D5 D2<br />
 6. SA S5 SJ S4<br />
 7. HQ HK CK H3<br />
 8. H2 CJ HJ H7<br />
 9. CQ C9 DJ C5<br />
10. SK C6 SQ S7<br />
11. S6 H9 S3 S2<br />
12. S8 H8 DT C4<br />
13. S9 CT H4 C3<br />
[Dealer "E"]<br />
[Deal "S:T65.KQ92.Q3.AK76 J983.J654.A9.Q95 AKQ742.83.75.T84 .AT7.KJT8642.J32"]<br />
[Auction "S"]<br />
3S 4S 6S NIL<br />
[Play "S"]<br />
 1. C7 C9 CT C3<br />
 2. C4 C2 CA C5<br />
 3. C6 CQ C8 CJ<br />
 4. DA D5 DK D3<br />
 5. HJ H8 HT HK<br />
 6. H2 H6 H3 HA<br />
 7. D2 DQ D9 D7<br />
 8. CK S9 SQ DJ<br />
 9. SA H7 S5 S3<br />
10. SK DT S6 S8<br />
11. S2 D8 ST SJ<br />
12. H5 S4 D6 H9<br />
13. S7 D4 HQ H4<br />
[Dealer "S"]<br />
[Deal "W:82.KJ7.T8.KQT985 AQ7.AT643.A65.A2 KT43.95.Q974.764 J965.Q82.KJ32.J3"]<br />
[Auction "W"]<br />
NIL 3S 4S 4S<br />
[Play "W"]<br />
 1. D8 DA D4 DJ<br />
 2. CA C4 CJ CK<br />
 3. C2 C6 C3 C5<br />
 4. DQ DK DT D6<br />
 5. D3 HK D5 D7<br />
 6. D9 D2 CQ S7<br />
 7. H3 H9 H8 H7<br />
 8. SK S5 S8 SA<br />
 9. H4 H5 H2 HJ<br />
10. C8 SQ C7 HQ<br />
11. HA S3 S6 C9<br />
12. SJ S2 HT S4<br />
13. S9 CT H6 ST<br />
[Dealer "W"]<br />
[Deal "N:7652.T3.9873.QT6 JT4.K75.65.KJ982 Q3.AJ96.AQJT4.A3 AK98.Q842.K2.754"]<br />
[Auction "N"]<br />
NIL 3S 2S 4S<br />
[Play "N"]<br />
 1. HT H5 HJ HQ<br />
 2. H4 H3 HK H6<br />
 3. D5 DA D2 D9<br />
 4. DQ DK D8 D6<br />
 5. H2 CQ H7 HA<br />
 6. H9 H8 CT SJ<br />
 7. C2 CA C7 C6<br />
 8. DJ S9 D7 C9<br />
 9. C4 D3 CK C3<br />
10. ST S3 S8 S7<br />
11. S4 SQ SK S6<br />
12. SA S5 CJ D4<br />
13. C5 S2 C8 DT<br />
[Dealer "N"]<br />
[Deal "E:64.J854.KJ4.KQ85 AJ98.K2.T93.T762 KQT7.QT7.AQ76.A4 532.A963.852.J93"]<br />
[Auction "E"]<br />
2S 4S 4S NIL<br />
[Play "E"]<br />
 1. H4 HK HT H9<br />
 2. CT CA CJ C8<br />
 3. HQ H6 HJ H2<br />
 4. H7 H3 H8 D3<br />
 5. H5 S8 ST HA<br />
 6. C4 C3 CK C2<br />
 7. C5 C6 D6 C9<br />
 8. D5 DK D9 D7<br />
 9. CQ C7 DQ D8<br />
10. D4 DT DA D2<br />
11. SK S2 S6 SJ<br />
12. SQ S5 S4 S9<br />
13. S7 S3 DJ SA<br />
[Dealer "E"]<br />
[Deal "S:QJT9.KQ9.T87543. 872.743.AK6.Q542 AK543.85.J.KJT83 6.AJT62.Q92.A976"]<br />
[Auction "S"]<br />
4S 3S 5S 1S<br />
[Play "S"]<br />
 1. H9 H3 H5 HT<br />
 2. CA S9 C2 C8<br />
 3. DT DK DJ D2<br />
 4. DA S3 D9 D8<br />
 5. CK C6 D7 C4<br />
 6. SA S6 ST S2<br />
 7. SK H2 SJ S7<br />
 8. CJ C7 SQ C5<br />
 9. HK H4 H8 HA<br />
10. DQ D4 D6 S4<br />
11. S5 H6 D5 S8<br />
12. CQ C3 C9 HQ<br />
13. H7 CT HJ D3<br />
[Dealer "S"]<br />
[Deal "W:T97.JT.QJT94.974 AJ652.86.3.QT832 83.AKQ53.A87.KJ6 KQ4.9742.K652.A5"]<br />
[Auction "W"]<br />
NIL 5S 2S 3S<br />
[Play "W"]<br />
 1. C4 C3 C6 CA<br />
 2. C5 C7 C2 CJ<br />
 3. CK SK C9 C8<br />
 4. D6 D4 D3 D7<br />
 5. DA D5 DQ S6<br />
 6. H6 HA H9 HJ<br />
 7. HK H7 HT H8<br />
 8. HQ H4 DJ S5<br />
 9. CQ H3 H2 DT<br />
10. CT H5 DK D9<br />
11. SJ S3 SQ ST<br />
12. D2 S9 S2 D8<br />
13. S7 SA S8 S4<br />
[Dealer "W"]<br />
[Deal "N:K5.QT.K652.T7643 AJ943.A762.QT4.5 Q8762.J5.A9.AQJ9 T.K9843.J873.K82"]<br />
[Auction "N"]<br />
2S 5S 5S NIL<br />
[Play "N"]<br />
 1. C3 C5 C9 C8<br />
 2. H5 H4 HQ H2<br />
 3. C4 S3 CJ CK<br />
 4. SA S2 ST S5<br />
 5. HA HJ HK HT<br />
 6. H7 S6 H9 CT<br />
 7. D9 D8 DK D4<br />
 8. C6 S4 CQ C2<br />
 9. DQ DA DJ D6<br />
10. CA H8 C7 H6<br />
11. S7 D7 SK S9<br />
12. D2 DT S8 D3<br />
13. SQ H3 D5 SJ<br />
[Dealer "N"]<br />
[Deal "E:Q83.J32.A98543.T 972.8.KQT72.8765 AKJ64.A765.6.KJ9 T5.KQT94.J.AQ432"]<br />
[Auction "E"]<br />
3S NIL 5S 2S<br />
[Play "E"]<br />
 1. CT C8 CK CA<br />
 2. DJ DA DK D6<br />
 3. D3 D2 S4 C2<br />
 4. HA H4 HJ H8<br />
 5. CJ CQ SQ C7<br />
 6. D4 DQ C9 S5<br />
 7. HK H3 DT H5<br />
 8. HQ H2 D7 H6<br />
 9. HT S8 S7 H7<br />
10. D5 C6 SJ C3<br />
11. SK ST S3 S9<br />
12. SA C4 D9 S2<br />
13. S6 H9 D8 C5<br />
[Dealer "E"]<br />
[Deal "S:74.32.K76.AKQT84 A96.A9654.J2.953 KQJT32.K.AQ943.7 85.QJT87.T85.J62"]<br />
[Auction "S"]<br />
2S 3S 6S 2S<br />
[Play "S"]<br />
 1. H3 HA HK H7<br />
 2. D2 DQ D5 D6<br />
 3. C7 CJ CA C3<br />
 4. DK DJ D3 D8<br />
 5. H2 H4 S2 H8<br />
 6. DA DT D7 S6<br />
 7. C5 S3 C2 C4<br />
 8. D9 S5 S7 S9<br />
 9. SA ST S8 S4<br />
10. H5 SJ HT C8<br />
11. SK C6 CT C9<br />
12. SQ HJ CK H6<br />
13. D4 HQ CQ H9<br />
[Dealer "S"]<br />
[Deal "W:4.8754.A53.KQ982 K2.KJ6.KT76.AJT4 AJT7653.A9.Q8.53 Q98.QT32.J942.76"]<br />
[Auction "W"]<br />
1S 2S 7S 3S<br />
[Play "W"]<br />
 1. DA D7 D8 D2<br />
 2. D3 DK DQ D4<br />
 3. H6 HA H2 H4<br />
 4. H9 HT H5 HJ<br />
 5. HK S3 H3 H7<br />
 6. C3 C6 CQ CA<br />
 7. DT S5 D9 D5<br />
 8. C5 C7 CK C4<br />
 9. H8 D6 S6 HQ<br />
10. SJ SQ S4 S2<br />
11. S8 C2 SK SA<br />
12. ST S9 C8 CT<br />
13. S7 DJ C9 CJ<br />
[Dealer "W"]<br />
[Deal "N:KQ8654.75.982.K6 A.AKQ2.AJT3.J954 J2.JT983.K6.AQ72 T973.64.Q754.T83"]<br />
[Auction "N"]<br />
6S 1S 2S NIL<br />
[Play "N"]<br />
 1. CK C4 C7 CT<br />
 2. C6 CJ CQ C8<br />
 3. H8 H6 H7 H2<br />
 4. H3 H4 H5 HA<br />
 5. HK H9 DQ SQ<br />
 6. D9 DA D6 D7<br />
 7. HQ HJ C3 S8<br />
 8. D8 DJ DK D5<br />
 9. HT D4 D2 D3<br />
10. C2 S3 SK C5<br />
11. S4 SA SJ ST<br />
12. DT S2 S7 S6<br />
13. S9 S5 C9 CA<br />
[Dealer "N"]<br />
[Deal "E:AJ.AJ972.K94.KT2 T7.K43.7532.A653 KQ432.T6.AQJ.987 9865.Q85.T86.QJ4"]<br />
[Auction "E"]<br />
2S 2S 5S 4S<br />
[Play "E"]<br />
 1. HA H4 H6 H8<br />
 2. H2 HK HT H5<br />
 3. D7 DA D6 D4<br />
 4. DJ D8 D9 D2<br />
 5. DQ DT DK D3<br />
 6. CK C6 C7 C4<br />
 7. CT CA C8 CJ<br />
 8. C5 C9 CQ C2<br />
 9. HQ H7 H3 S2<br />
10. S4 S5 SJ ST<br />
11. H9 D5 S3 S6<br />
12. S8 SA S7 SQ<br />
13. HJ C3 SK S9<br />
[Dealer "E"]<br />
[Deal "S:AKJT.KJ52.Q762.K 9.AQT963.AK43.A8 Q8763.7.T95.T974 542.84.J8.QJ6532"]<br />
[Auction "S"]<br />
4S 1S 5S 3S<br />
[Play "S"]<br />
 1. H5 HA H7 H4<br />
 2. CA C4 C2 CK<br />
 3. DA D9 D8 D2<br />
 4. DK D5 DJ D6<br />
 5. C8 CT CQ ST<br />
 6. SA S9 S3 S2<br />
 7. HK H3 DT H8<br />
 8. DQ D3 C9 S5<br />
 9. C3 HJ HQ C7<br />
10. S6 S4 SK D4<br />
11. D7 H6 SQ CJ<br />
12. S7 C6 SJ H9<br />
13. H2 HT S8 C5<br />
[Dealer "S"]<br />
[Deal "W:984.AJT6.KJ.AK82 A72.752.753.JT97 QT6.K3.QT842.Q65 KJ53.Q984.A96.43"]<br />
[Auction "W"]<br />
3S 3S 3S 4S<br />
[Play "W"]<br />
 1. CA C7 C5 C4<br />
 2. CK C9 C6 C3<br />
 3. HA H2 H3 H4<br />
 4. DK D7 D2 DA<br />
 5. D9 DJ D3 D4<br />
 6. C2 CT CQ S3<br />
 7. D6 S4 D5 D8<br />
 8. C8 CJ S6 SJ<br />
 9. HQ H6 H5 HK<br />
10. DQ S5 HT H7<br />
11. SK S8 S2 ST<br />
12. H9 HJ S7 SQ<br />
13. DT H8 S9 SA<br />
[Dealer "W"]<br />
[Deal "N:964.A862.AK7.QJ3 AKQ32.K4.9532.K5 J.T9753.Q6.AT864 T875.QJ.JT84.972"]<br />
[Auction "N"]<br />
3S 5S 1S 4S<br />
[Play "N"]<br />
 1. DA D2 D6 D4<br />
 2. DK D3 DQ D8<br />
 3. D7 D5 SJ DT<br />
 4. CA C2 C3 C5<br />
 5. CT C7 CJ CK<br />
 6. D9 C8 DJ S4<br />
 7. S9 S3 HT S5<br />
 8. H6 H4 H7 HJ<br />
 9. HQ H8 HK H9<br />
10. S2 H5 ST S6<br />
11. S8 CQ SA C6<br />
12. SK C4 S7 HA<br />
13. SQ H3 C9 H2<br />
[Dealer "N"]<br />
[Deal "E:T753.T942.QT8.T9 KJ98.J8763.A93.7 AQ2.AKQ.62.65432 64.5.KJ754.AKQJ8"]<br />
[Auction "E"]<br />
4S 4S 3S 2S<br />
[Play "E"]<br />
 1. C9 C7 C2 CJ<br />
 2. CA CT D3 C3<br />
 3. CK S3 S8 C4<br />
 4. DA D2 DJ D8<br />
 5. D9 D6 DK DT<br />
 6. CQ S5 S9 C5<br />
 7. HJ HA H5 H2<br />
 8. HK S4 H4 H8<br />
 9. C8 HT H7 C6<br />
10. S6 S7 SK SQ<br />
11. H6 HQ D7 H9<br />
12. S2 D5 ST SJ<br />
13. H3 SA D4 DQ<br />
[Dealer "E"]<br />
[Deal "S:42.KQ7632..AJ764 A85.95.T8764.T52 QJ6.AT.AKQ953.83 KT973.J84.J2.KQ9"]<br />
[Auction "S"]<br />
2S 3S 3S 5S<br />
[Play "S"]<br />
 1. CA C2 C3 C9<br />
 2. C4 C5 C8 CK<br />
 3. CQ C7 CT S6<br />
 4. DA D2 H2 D4<br />
 5. HA H4 H3 H5<br />
 6. DK DJ C6 D6<br />
 7. DQ S3 S4 D7<br />
 8. HK H9 HT HJ<br />
 9. S2 S5 SJ ST<br />
10. D3 H8 HQ DT<br />
11. D8 D5 SK CJ<br />
12. S7 H7 S8 SQ<br />
13. D9 S9 H6 SA<br />
[Dealer "S"]<br />
[Deal "W:AJ84.Q973.96.854 653.KJ.QT54.AQ32 K.A8.KJ8732.K976 QT972.T6542.A.JT"]<br />
[Auction "W"]<br />
4S 3S 1S 5S<br />
[Play "W"]<br />
 1. D6 DT DJ DA<br />
 2. CJ C4 C2 CK<br />
 3. D2 S2 D9 D4<br />
 4. CT C5 C3 C6<br />
 5. HT HQ HJ H8<br />
 6. C8 CA C7 H2<br />
 7. CQ C9 H4 S4<br />
 8. H3 HK HA H6<br />
 9. DK S7 S8 D5<br />
10. H9 S3 SK H5<br />
11. D3 SQ SJ DQ<br />
12. ST SA S6 D8<br />
13. H7 S5 D7 S9<br />
[Dealer "W"]<br />
[Deal "N:K76.A754.Q4.AK65 A.J96.A87632.832 T95432.83.J95.Q9 QJ8.KQT2.KT.JT74"]<br />
[Auction "N"]<br />
3S 1S 6S 3S<br />
[Play "N"]<br />
 1. CA C2 C9 C4<br />
 2. HA H6 H3 H2<br />
 3. CK C3 CQ C7<br />
 4. C5 C8 S2 CT<br />
 5. H8 HK H4 H9<br />
 6. HQ H5 HJ S3<br />
 7. DJ DT D4 DA<br />
 8. D2 D9 DK DQ<br />
 9. HT H7 D3 S4<br />
10. D5 S8 SK D6<br />
11. C6 D7 S5 CJ<br />
12. ST SJ S6 SA<br />
13. D8 S9 SQ S7<br />
[Dealer "N"]<br />
[Deal "E:A876.Q952.KQ8.52 Q.T63.T732.AQT93 JT432.J874.J9.K7 K95.AK.A654.J864"]<br />
[Auction "E"]<br />
4S 1S 5S 3S<br />
[Play "E"]<br />
 1. C2 CA C7 C4<br />
 2. HT HJ HA H2<br />
 3. DA D8 D2 D9<br />
 4. HK H5 H3 H4<br />
 5. D4 DK D3 DJ<br />
 6. DQ D7 S2 D5<br />
 7. CK C6 C5 C3<br />
 8. H7 S5 H9 H6<br />
 9. C8 HQ CQ H8<br />
10. SQ SJ S9 S8<br />
11. DT S3 D6 SA<br />
12. S7 CT S4 SK<br />
13. CJ S6 C9 ST<br />
[Dealer "E"]<br />
[Deal "S:2.A93.T763.KQJ52 AQJT7.QJ54.982.3 K96.8762.QJ54.T7 8543.KT.AK.A9864"]<br />
[Auction "S"]<br />
1S 5S 3S 4S<br />
[Play "S"]<br />
 1. DT D2 DJ DA<br />
 2. DK D3 D8 D4<br />
 3. HT HA H4 H2<br />
 4. D6 D9 DQ S3<br />
 5. HK H3 H5 H6<br />
 6. CA C2 C3 C7<br />
 7. C4 CJ S7 CT<br />
 8. HQ H7 C6 H9<br />
 9. HJ H8 C8 S2<br />
10. CK ST SK C9<br />
11. D5 S4 D7 SJ<br />
12. SA S6 S5 C5<br />
13. SQ S9 S8 CQ<br />
[Dealer "S"]<br />
[Deal "W:QJT532.KQ4.K.KJ5 87.JT872.J953.T6 64.93.AT872.A743 AK9.A65.Q64.Q982"]<br />
[Auction "W"]<br />
6S NIL NIL 3S<br />
[Play "W"]<br />
 1. HK HJ H9 H5<br />
 2. DK DJ DT D4<br />
 3. CK CT C7 C2<br />
 4. HQ HT H3 H6<br />
 5. CJ C6 C4 CQ<br />
 6. HA H4 H8 CA<br />
 7. DQ S2 D9 DA<br />
 8. C5 H7 C3 C9<br />
 9. D6 S3 D5 D8<br />
10. SQ S8 S6 S9<br />
11. SJ S7 S4 SK<br />
12. C8 S5 H2 D7<br />
13. ST D3 D2 SA<br />
[Dealer "W"]<br />
[Deal "N:J74.54.98632.J96 63.AKQJ86.74.A84 QT85.973.AKJ.T73 AK92.T2.QT5.KQ52"]<br />
[Auction "N"]<br />
3S 2S 4S 4S<br />
[Play "N"]<br />
 1. H4 HA H3 H2<br />
 2. CA C3 C2 C6<br />
 3. C4 C7 CK C9<br />
 4. CQ CJ C8 CT<br />
 5. C5 S4 S6 S8<br />
 6. DA D5 D2 D4<br />
 7. DK DT D3 D7<br />
 8. H9 HT H5 H6<br />
 9. DQ D6 H8 DJ<br />
10. SA S7 S3 SQ<br />
11. S2 SJ HK ST<br />
12. D8 HQ H7 SK<br />
13. S9 D9 HJ S5<br />
[Dealer "N"]<br />
[Deal "E:Q5.Q9542.Q3.JT85 A2.J863.KJ875.KQ JT86.AT.AT4.9762 K9743.K7.962.A43"]<br />
[Auction "E"]<br />
2S 2S 4S 5S<br />
[Play "E"]<br />
 1. D3 D5 DA D2<br />
 2. HA H7 H2 H3<br />
 3. HT HK H4 H6<br />
 4. CA C5 CQ C2<br />
 5. C3 C8 CK C6<br />
 6. DK D4 D6 DQ<br />
 7. HJ S6 S7 H5<br />
 8. D9 S5 D7 DT<br />
 9. CJ S2 C7 C4<br />
10. H8 S8 S9 H9<br />
11. S3 SQ SA ST<br />
12. DJ C9 S4 HQ<br />
13. SK CT D8 SJ<br />
[Dealer "E"]<br />
[Deal "S:AJ65.A853.KJ.AJ9 T4.QJT4.T43.KQ73 Q983.9762.A86.52 K72.K.Q9752.T864"]<br />
[Auction "S"]<br />
4S 2S 4S 3S<br />
[Play "S"]<br />
 1. HA H4 H2 HK<br />
 2. CA C3 C2 C4<br />
 3. CJ CK C5 C6<br />
 4. CQ S3 C8 C9<br />
 5. DA D2 DJ D3<br />
 6. D6 D7 DK D4<br />
 7. H8 HQ H6 D5<br />
 8. HJ H7 D9 H5<br />
 9. HT H9 CT H3<br />
10. DT D8 DQ S5<br />
11. S6 ST SQ SK<br />
12. S2 SJ S4 S8<br />
13. SA C7 S9 S7<br />
[Dealer "S"]<br />
[Deal "W:J95.854.A6.Q9432 KT8732.QJ32.Q2.8 AQ6.K6.98753.T76 4.AT97.KJT4.AKJ5"]<br />
[Auction "W"]<br />
3S 6S 3S 1S<br />
[Play "W"]<br />
 1. DA D2 D3 D4<br />
 2. D6 DQ D5 DT<br />
 3. C8 CT CA C2<br />
 4. CK C3 H2 C6<br />
 5. DK S5 S7 D7<br />
 6. H3 H6 HA H4<br />
 7. C5 CQ S2 C7<br />
 8. HJ HK H7 H5<br />
 9. D8 DJ S9 ST<br />
10. HQ S6 H9 H8<br />
11. D9 S4 SJ SK<br />
12. S3 SQ CJ C9<br />
13. SA HT C4 S8<br />
[Dealer "W"]<br />
[Deal "N:K.97.KT653.KJ753 A63.KQT852.A9.86 QJ85.AJ6.842.T92 T9742.43.QJ7.AQ4"]<br />
[Auction "N"]<br />
1S 3S 4S 5S<br />
[Play "N"]<br />
 1. H7 H8 HA H3<br />
 2. HJ H4 H9 HQ<br />
 3. DA D2 D7 D3<br />
 4. HK H6 C4 SK<br />
 5. DK D9 D4 DJ<br />
 6. C3 C6 C9 CQ<br />
 7. CA C5 C8 C2<br />
 8. DQ D5 H2 D8<br />
 9. S2 D6 SA S5<br />
10. HT S8 S9 C7<br />
11. S4 DT S6 SJ<br />
12. SQ S7 CJ S3<br />
13. CT ST CK H5<br />
[Dealer "N"]<br />
[Deal "E:AJ632.43.AJ7.842 T87.KQJ.Q98.KT97 K.AT8752.KT432.3 Q954.96.65.AQJ65"]<br />
[Auction "E"]<br />
5S 3S 1S 4S<br />
[Play "E"]<br />
 1. DA D8 D2 D5<br />
 2. H3 HJ HA H6<br />
 3. DK D6 D7 D9<br />
 4. C3 CA C2 C7<br />
 5. H9 H4 HQ H2<br />
 6. HK H5 C5 S2<br />
 7. DJ DQ D3 C6<br />
 8. CK SK CJ C4<br />
 9. H7 S4 S6 S7<br />
10. CT D4 CQ C8<br />
11. S5 SA S8 H8<br />
12. S3 ST HT SQ<br />
13. S9 SJ C9 DT<br />
[Dealer "E"]<br />
[Deal "S:J73.98753.J.AKJ3 A95.QT42.QT975.T T642.J6.A32.Q952 KQ8.AK.K864.8764"]<br />
[Auction "S"]<br />
3S 3S 4S 3S<br />
[Play "S"]<br />
 1. DJ D5 DA D4<br />
 2. H6 HA H3 H2<br />
 3. DK S3 D7 D2<br />
 4. CA CT C2 C4<br />
 5. CK S5 C5 C6<br />
 6. H4 HJ HK H5<br />
 7. C7 CJ S9 C9<br />
 8. HQ S2 S8 H7<br />
 9. C8 C3 D9 CQ<br />
10. D3 D6 S7 DT<br />
11. SJ SA S4 SQ<br />
12. HT S6 SK H9<br />
13. D8 H8 DQ ST<br />
[Dealer "S"]<br />
[Deal "W:QJT86.94.93.JT73 A9753.AK7.JT5.54 .QJT653.K8.KQ986 K42.82.AQ7642.A2"]<br />
[Auction "W"]<br />
5S 5S NIL 3S<br />
[Play "W"]<br />
 1. CJ C5 C9 CA<br />
 2. C2 CT C4 C8<br />
 3. H9 HA HQ H2<br />
 4. HK HJ H8 H4<br />
 5. H7 H6 S2 D3<br />
 6. DA D9 DJ DK<br />
 7. DQ S6 DT D8<br />
 8. C7 S3 CK D7<br />
 9. D5 HT D6 C3<br />
10. D4 S8 S9 H5<br />
11. SA H3 SK ST<br />
12. S5 CQ S4 SQ<br />
13. SJ S7 C6 D2<br />
[Dealer "W"]<br />
[Deal "N:AT2.AQ974.J5.K64 QJ3.K65.K964.AQ9 96.JT32.A83.T732 K8754.8.QT72.J85"]<br />
[Auction "N"]<br />
3S 3S NIL 5S<br />
[Play "N"]<br />
 1. HA H6 HJ H8<br />
 2. CK CA CT CJ<br />
 3. HK HT DT H4<br />
 4. CQ C7 C8 C4<br />
 5. D4 D8 D7 DJ<br />
 6. H7 H5 H3 S4<br />
 7. C5 C6 C9 C3<br />
 8. S3 S9 S8 SA<br />
 9. H9 SJ H2 D2<br />
10. D6 D3 DQ D5<br />
11. SK S2 SQ S6<br />
12. S5 ST DK DA<br />
13. HQ D9 C2 S7<br />
[Dealer "N"]<br />
[Deal "E:T852.KQ74.AJ8.62 QJ3.T82.Q742.QJ9 AK764.93.5.T8543 9.AJ65.KT963.AK7"]<br />
[Auction "E"]<br />
4S 3S 5S 1S<br />
[Play "E"]<br />
 1. DA D2 D5 D3<br />
 2. C2 C9 CT CK<br />
 3. CA C6 CJ C3<br />
 4. HA H4 H2 H3<br />
 5. DK D8 D4 S4<br />
 6. H9 HJ HK H8<br />
 7. HQ HT C4 H5<br />
 8. H7 S3 S6 H6<br />
 9. C5 C7 S2 CQ<br />
10. DJ DQ S7 D6<br />
11. C8 S9 ST SJ<br />
12. D7 SK D9 S5<br />
13. SA DT S8 SQ<br />
</code></p>
<p>After it was nothing but the computers and I, my team ended up losing. Mainly because I stopped really playing to write this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/longest-spades-game-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nested Sub-folder Controllers in CodeIgniter</title>
		<link>http://blog.briandichiara.com/nested-sub-folder-controllers-in-codeigniter/</link>
		<comments>http://blog.briandichiara.com/nested-sub-folder-controllers-in-codeigniter/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 04:14:50 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Bin]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=184</guid>
		<description><![CDATA[If you have gotten to the point where one sub-folder for your controllers just isn't enough, you probably found a frustrating problem in CodeIgniter. Whether or not MVC Frameworks are supposed to allow nested sub-folders is debatable, however I like the organization. This post solved my problem (very simply) and I got right back to [...]]]></description>
			<content:encoded><![CDATA[<p>If you have gotten to the point where one sub-folder for your controllers just isn't enough, you probably found a frustrating problem in CodeIgniter. Whether or not MVC Frameworks are supposed to allow nested sub-folders is debatable, however I like the organization. This post solved my problem (very simply) and I got right back to developing:</p>
<p><a href="http://glennpratama.wordpress.com/2009/10/20/multi-level-subfolder-for-controller-in-codeigniter/">Multi Level Subfolder Controller in CodeIgniter <br />http://glennpratama.wordpress.com/2009/10/20/multi-level-subfolder-for-controller-in-codeigniter/</a></p>
<p>Thanks Glenn!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/nested-sub-folder-controllers-in-codeigniter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Switching IDEs! CodeIgniter Users Should Too!</title>
		<link>http://blog.briandichiara.com/switching-ides-codeigniter-users-should-too/</link>
		<comments>http://blog.briandichiara.com/switching-ides-codeigniter-users-should-too/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 23:57:12 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=160</guid>
		<description><![CDATA[I don't know about you, but changing IDEs is a major thing for me. As my development skills have progressed over the years, I have been looking for more ways to take advantage of the development software I've been using. I am constantly wanting to improve my development experience and trying to find ways to [...]]]></description>
			<content:encoded><![CDATA[<p>I don't know about you, but changing IDEs is a major thing for me. As my development skills have progressed over the years, I have been looking for <a href="/dreamweaver-extensions/">more ways</a> to take advantage of the development software I've been using. I am constantly wanting to improve my development experience and trying to find ways to speed up programming. Well, this past week, I basically did an assessment of Dreamweaver and here are my conclusions.<br />
<span id="more-160"></span></p>
<ul>
<li style="color:#1D9F47; font-weight:bold; list-style:none; background-image:none; padding-left:0; margin-left:0;">Dreamweaver Pros</li>
<li>I like the code colors. (or maybe I'm just used to them)</li>
<li>"Upload on Save" feature. - I used to not be able to live without this feature, but as I've progressed as developer, I've been using a local webserver for testing before uploading anything to server. It makes development and testing a WHOLE lot faster.</li>
<li>Great Find/Replace tool (with Regex)</li>
<li>Not-so-bad code completion (at least for PHP)</li>
<li>The interface is easily de-cluttered.</li>
<li>Mac and PC versions available</li>
</ul>
<ul>
<li style="color:#BF3317; font-weight:bold; list-style:none; background-image:none; padding-left:0; margin-left:0;">Dreamweaver Cons</li>
<li>It's really a glorified Frontpage. The application was designed for programmers and Front-end designers with little programming experience (more-so for the latter)</li>
<li>Limited programming tools</li>
<li>Bloated - As with most Adobe products, you never want to set any of them to an "Open with [this] by default" setting unless you have a pretty awesome computer.</li>
<li>Poor FTP - With me it was always timing out.</li>
<li>Most of the built in features are for people that don't know how to program or want a more "point-and-click" way of doing things.</li>
<li>EXPENSIVE!</li>
<li>They tend to add useless features that only junk up the application, like Code Navigator and Spry</li>
</ul>
<p>So I searched <a href="http://en.wikipedia.org/wiki/List_of_PHP_editors">far and wide</a> for as many IDEs I could find to install and test on my machine. Here are some of the ones I tried out:</p>
<ul>
<li>Aptana</li>
<li>PHPEclipse</li>
<li>PHPEdit</li>
<li>Zend Studio</li>
<li>Komodo IDE</li>
<li>RapidPHP 2010</li>
<li>e Text Editor</li>
</ul>
<p>Now there are <a href="http://www.php-editors.com/">several</a> <a href="http://free-php-editor.com/">websites</a> where you will find reviews of the software mentioned above, however that's not really what I wanted to accomplish in this post. I really wanted to compare the previous tool I was using with a new one. I could go on and on all day about what features I believe an IDE should have as well as my likes and dislikes of all the software above, however one piece of software I was really impressed with is <a href="http://www.mpsoftware.dk/phpdesigner.php">phpDesigner</a> (version 7).</p>
<p>As of this past week, I have officially moved on from ten years of using Dreamweaver to this very fine piece of software. You may have heard of it or tried it yourself, although I can't speak for past versions. Let me just start by pointing out my most absolute favorite feature of this software. It's a feature that I've been looking for in pretty much every piece of software I tested, but couldn't find done as well as phpDesigner. phpDesigner doesn't have any special name for it, but it's the Code Completion tool I have wanted for years.</p>
<p>Just to give you an idea as to how much work it took to get this working here are the steps I took when testing this software:</p>
<ol>
<li>Create a new project (I used a project I was currently working on that was using the <a href="http://codeigniter.com/">CodeIgniter</a> framework)</li>
<li>Open a file in the project</li>
<li>Code completion automatically works.</li>
</ol>
<p>That's IT! And not only does it work for all the classes and methods built into CodeIgniter, but it also adds the classes I write into the code tips as well. You should check out <a href="http://www.mpsoftware.dk/phpdesigner_screencasts.php">some of the videos</a> on their website to see this in action. They even use CodeIgniter in their examples, however I believe this will work with any PHP framework out there. The best part of it all: it's super fast! I did find one or two other pieces of software out there that did something similar, however I was typing much faster than the letters would spit out onto the document due to software constantly trying to parse my text to decide what code hint or suggestion to display.</p>
<p>Here are some other features I really like in phpDesigner that I didn't have in Dreamweaver:</p>
<ul>
<li>Built In Inline Debugger (with no additional setup or local web server required)</li>
<li>CTRL+Click on a method or custom function takes you to the declaration of that method/function</li>
<li>Custom syntax highlighting colors - Although I REALLY liked most of the default PHP color settings.</li>
<li>Auto completion library (the CTRL+J function)</li>
<li>Inline TODO and BUG panel</li>
<li>Support for PHP 5.3 (and any future versions)</li>
</ul>
<p>Here are the features that (thankfully) carried over from Dreamweaver:</p>
<ul>
<li>Customizable shortcuts (although it will not allow me to use Space or Enter in shortcuts)</li>
<li>Tabs for open files (with the ability to reload open)</li>
<li>Regex Find/Replace tool with the ability to search within a set of folders inside your project</li>
<li>Tabs for open files (with the ability to reload open)</li>
<li>Code Snippets</li>
</ul>
<p>I hate to do this, but I must be objective. Here are my gripes:</p>
<ul>
<li>The software has built in FTP, but no simple way uploading one file to and FTP sites relative directory. This problem is somewhat manageable by creating your FTP accounts in the Tools > FTP menu and having the FTP/SFTP panel side by side with the Project panel, however I would really like to have a feature where I can click a file in the Project panel and then click Upload, and it uploads in the corresponding directory of the remote site. The tool I thought that did this required that I select the FTP account and the directory every time I wanted to upload a file.</li>
<li>I would like for it to support Space and Enter in the keyboard shortcut customizer.</li>
<li>You cannot CTRL+C / CTRL+V Copy/Paste in the Project panel. There are 2 ways around this, however one way has another gripe. You can right click a file, but then you are given a custom context menu (bleh) which you must then click Shell menu to see the Copy command. (follow the same process for paste). The 2nd way is by clicking the folder location of the open file in the Status Bar, and using Windows to copy/paste.</li>
<li>The Project panel goes nuts when your project is on Network or Mapped drive with constantly updating the file list. It inserts a new item at the top of every open folder reading<br />
"Loading folder content" which is constantly distracting as well as irritating when you're trying to work with files in that panel. This is not a problem for me at home for I'm working off a local drive, but at work it's a bit frustrating.</li>
</ul>
<p>The software is still a bit larger than I'd like (not nearly as large as Dreamweaver), however I suppose that's a sacrifice you must make if you want all the tools built into the software. If you're looking for an extremely fast, lightweight application, I would highly recommend <a href="http://notepad-plus.sourceforge.net/">Notepad++</a>.</p>
<p>I think it's a pretty safe to assumption to say there is no software out there that is perfect. Mainly because "perfect" is a personal opinion on how things should work. That is a struggle every programmer deals with trying to make software pleasing to every single user that uses it, it's dang near impossible. But for all the amazing features I get with phpDesigner that I never had with Dreamweaver, I can live with this issues until they're either addressed or I just get used to them and don't even notice them anymore <img src='http://blog.briandichiara.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>I would like to encourage developers using CodeIgniter or any other PHP framework to <a href="http://www.mpsoftware.dk/downloads.php">try this out</a>. They offer a 21 day free trial as well as an extension of that trial if you need more time.</p>
<p>As an added bonus, I'm attaching my color styles for PHP, CSS, HTML, and JS. The javascript one hasn't changed much from the defaults, except I colored the comments like Dreamweaver (in gray). Let me know if you try out this software, I'd love to hear your feedback!</p>
<ul>
<li><a href='http://blog.briandichiara.com/wp-content/uploads/2009/10/syntax_php2.dat'>syntax_php2</a></li>
<li><a href='http://blog.briandichiara.com/wp-content/uploads/2009/10/syntax_css2.dat'>syntax_css2</a></li>
<li><a href='http://blog.briandichiara.com/wp-content/uploads/2009/10/syntax_html2.dat'>syntax_html2</a></li>
<li><a href='http://blog.briandichiara.com/wp-content/uploads/2009/10/syntax_js2.dat'>syntax_js2</a></li>
</ul>
<p>For those who like a dark background, set your background to rgb(55,55,55), gutter to: rgb(37,37,37), active line to: rgb(37,37,37), and import these, originally from <a href="http://harrisbaird.co.uk/2009/06/29/railscasts-idlefingers-theme-for-phpdesigner.html">Harris Baird's blog</a> known as Railscast/idlefingers:</p>
<ul>
<li><a href='http://blog.briandichiara.com/wp-content/uploads/2010/05/syntax_php2.dat'>syntax_php2</a></li>
<li><a href='http://blog.briandichiara.com/wp-content/uploads/2010/05/syntax_css2.dat'>syntax_css2</a></li>
<li><a href='http://blog.briandichiara.com/wp-content/uploads/2010/05/syntax_html2.dat'>syntax_html2</a></li>
<li><a href='http://blog.briandichiara.com/wp-content/uploads/2010/05/syntax_js2.dat'>syntax_js2</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/switching-ides-codeigniter-users-should-too/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP Function for URI and URI Segments</title>
		<link>http://blog.briandichiara.com/php-uri-function/</link>
		<comments>http://blog.briandichiara.com/php-uri-function/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 20:23:57 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=152</guid>
		<description><![CDATA[Here's a function I wrote to parse through the URI to get segments. I wrote it to use with CodeIgniter to get URI segments before they had been altered and "-" gets changed to "_". It can be used in any application. PLAIN TEXT PHP: &#60;?php function uri&#40;$segment=NULL, $qs=false&#41;&#123; &#160; &#160; $uri = $_SERVER&#91;'REQUEST_URI'&#93;; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Here's a function I wrote to parse through the URI to get segments. I wrote it to use with CodeIgniter to get URI segments before they had been altered and "-" gets changed to "_". It can be used in any application.<br />
<span id="more-152"></span></p>
<div class="igBar"><span id="lphp-5"><a href="#" onclick="javascript:showPlainTxt('php-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-5">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">function</span> uri<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span>=<span style="color:#000000; font-weight:bold;">NULL</span>, <span style="color:#0000FF;">$qs</span>=<span style="color:#000000; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF;">$uri</span> = <span style="color:#0000FF;">$_SERVER</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">'REQUEST_URI'</span><span style="color:#006600; font-weight:bold;">&#93;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>!<span style="color:#0000FF;">$qs</span> || <span style="color:#0000FF;">$segment</span> !== <span style="color:#000000; font-weight:bold;">NULL</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/strpos"><span style="color:#000066;">strpos</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$uri</span>, <span style="color:#FF0000;">'?'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/list"><span style="color:#000066;">list</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$uri</span>, <span style="color:#0000FF;">$query</span><span style="color:#006600; font-weight:bold;">&#41;</span> = <a href="http://www.php.net/explode"><span style="color:#000066;">explode</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'?'</span>, <span style="color:#0000FF;">$uri</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span> !== <span style="color:#000000; font-weight:bold;">NULL</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/is_string"><span style="color:#000066;">is_string</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span> != <span style="color:#FF0000;">'last'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#006600; font-weight:bold;">&#40;</span> <a href="http://www.php.net/strlen"><span style="color:#000066;">strlen</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$uri</span><span style="color:#006600; font-weight:bold;">&#41;</span>&gt;= <a href="http://www.php.net/strlen"><span style="color:#000066;">strlen</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span><span style="color:#006600; font-weight:bold;">&#41;</span> &amp;&amp; <a href="http://www.php.net/substr"><span style="color:#000066;">substr</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$uri</span>, <span style="color:#CC66CC;color:#800000;">0</span>, <a href="http://www.php.net/strlen"><span style="color:#000066;">strlen</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$str</span> = <a href="http://www.php.net/trim"><span style="color:#000066;">trim</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$uri</span>, <span style="color:#FF0000;">'/'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$segments</span> = <span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/strpos"><span style="color:#000066;">strpos</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$str</span>, <span style="color:#FF0000;">'/'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> ? <a href="http://www.php.net/explode"><span style="color:#000066;">explode</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'/'</span>, <span style="color:#0000FF;">$str</span><span style="color:#006600; font-weight:bold;">&#41;</span> : <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$str</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$ttl</span> = <a href="http://www.php.net/count"><span style="color:#000066;">count</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segments</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/is_string"><span style="color:#000066;">is_string</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span><span style="color:#006600; font-weight:bold;">&#41;</span> &amp;&amp; <span style="color:#0000FF;">$segment</span> == <span style="color:#FF0000;">'last'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$seg</span> = <a href="http://www.php.net/array_pop"><span style="color:#000066;">array_pop</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segments</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#616100;">elseif</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span> &lt;= <span style="color:#0000FF;">$ttl</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span> &lt;<span style="color:#CC66CC;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#0000FF;">$segment</span> = <span style="color:#0000FF;">$ttl</span> - <a href="http://www.php.net/abs"><span style="color:#000066;">abs</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$segment</span><span style="color:#006600; font-weight:bold;">&#41;</span> + <span style="color:#CC66CC;color:#800000;">1</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$seg</span> = <span style="color:#0000FF;">$segments</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#0000FF;">$segment</span>-<span style="color:#CC66CC;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#616100;">else</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#FF0000;">''</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$seg</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$uri</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Usage:</p>
<div class="igBar"><span id="lphp-6"><a href="#" onclick="javascript:showPlainTxt('php-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-6">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// uri:&nbsp; http://www.mysite.com/some-controller/some-method/</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> uri<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// displays: /some-controller/some-method/</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> uri<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// displays: some-method</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Pass true into 2nd paramater ($qs) to display Query String with URI</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// uri:&nbsp; http://www.mysite.com/some-controller/?foo=bar&amp;bar=foo</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> uri<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#000000; font-weight:bold;">NULL</span>, <span style="color:#000000; font-weight:bold;">true</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// displays: /some-controller/?foo=bar&amp;bar=foo </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/php-uri-function/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Our First Big Fight</title>
		<link>http://blog.briandichiara.com/our-first-big-fight/</link>
		<comments>http://blog.briandichiara.com/our-first-big-fight/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 14:28:42 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Bin]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/?p=138</guid>
		<description><![CDATA[I've been using CodeIgniter for the past 6 months or so and while we've had our minor indifferences, I've thought of CodeIgniter to be a pretty decent PHP MVC. There was very little learning curve for me and we hit off quite easily. We were like peas and carrots. Unfortunately, as go most relationships, I [...]]]></description>
			<content:encoded><![CDATA[<p>I've been using CodeIgniter for the past 6 months or so and while we've had our minor indifferences, I've thought of CodeIgniter to be a pretty decent PHP MVC. There was very little learning curve for me and we hit off quite easily. We were like peas and carrots. Unfortunately, as go most relationships, I knew this "new love" wouldn't last forever.<br />
<span id="more-138"></span></p>
<h3>How it Started</h3>
<p>I had been working on a project for about a month or so when I decided to make a very minor tweak to a database column. I'm not sure if this is what kicked it off or what, but I tested my changes and I get the good ol' WSOD (White Screen of Death). In PHP, this is very bad, mmk. What this means is an error has occurred somewhere in your code, and PHP's not telling you where. I was stunned. I had no idea where to start other than reverting my tiny change which I knew wouldn't make a difference at all. I did, and of course, still nothing.</p>
<h3>How I Dealt With It</h3>
<p>I first pinpointed where the problem was occurring, and it was during the call to parent::Controller() in the constructor of my default controller. So, I hit up the CodeIgniter IRC channel to see if anyone had had this problem before. Nobody seemed to have any advice except for to enable <a href="http://codeigniter.com/user_guide/general/errors.html">CI's logging</a> feature, set it to level 5, and stand back. Since I had no idea what was supposed to be occurring in the background, I pastebin'd the log, where a user responded, "It seems to be stopping at the Encryption Library. PHP isn't loading the mcrypt." Ah, ok. I'll go enable that.</p>
<blockquote><p>My Computer > PHP > php.ini > Uncomment mcrypt extension > Restart Apache</p></blockquote>
<p>Apache doesn't start back up. It can't find the mcrypt library. Well, I don't appear to have it in my ext folder. Why? I don't know??? Off to PHP's site to download it. Well, I thought maybe this is a good time to go ahead and upgrade PHP. Big mistake.....</p>
<h3>The Frustration</h3>
<p>I am by no means a server administrator. I know enough to be dangerous, that's about it. When it comes to troubleshooting server problems, I miserably fail. I had setup PHP/Apache/MySQL through a tutorial I found a while back, although I can't recall which one, but setup was not too bad. Now diving back into that, I knew I had really screwed up. After downloading many different versions of PHP for Windows, I realized I needed to actually <a href="http://windows.php.net/download/">RTFM</a> and get the right one. Still I was unsuccessful in starting Apache. Ok, maybe my version of Apache won't work with the latest version of PHP. Let's upgrade that.</p>
<p>I finally get Apache starting, however PHP would seem to "lock up" whenever a database connection was being made, causing Apache to crash with no errors in it's error log.</p>
<p>I think I completely uninstalled and reinstalled PHP/Apache 6 times in about 6 different ways. Completely frustrated and at a loss, I resorted to installing <a href="http://www.apachefriends.org/en/xampp-windows.html">XAMPP</a>. I wanted to be one of the cool kids and have my own Apache server running on my machine, but I guess I'll have to wait for that day to come.</p>
<h3>The Resolution</h3>
<p>So now that I had my webserver back up and running, I was pretty much back to square one with the WSOD. After a few days, I had also noticed that the page would load after it had "sat" for a while, but upon refresh would fail. I began my normal Debugging routine by echoing various numbers and obscenities throughout the code until something doesn't work, I started with the Session library, thinking this is where my problem lied. I dug deep and dug hard and hit something!</p>
<div class="igBar"><span id="lphp-8"><a href="#" onclick="javascript:showPlainTxt('php-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-8">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Lines 706-721 of system/libraries/Session.php</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">function</span> _unserialize<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$data</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF;">$data</span> = @<a href="http://www.php.net/unserialize"><span style="color:#000066;">unserialize</span></a><span style="color:#006600; font-weight:bold;">&#40;</span>strip_slashes<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$data</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/is_array"><span style="color:#000066;">is_array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$data</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">foreach</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$data</span> <span style="color:#616100;">as</span> <span style="color:#0000FF;">$key</span> =&gt; <span style="color:#0000FF;">$val</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$data</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#0000FF;">$key</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <a href="http://www.php.net/str_replace"><span style="color:#000066;">str_replace</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'{{slash}}'</span>, <span style="color:#FF0000;">'<span style="color:#000099; font-weight:bold;">\\</span>'</span>, <span style="color:#0000FF;">$val</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$data</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/str_replace"><span style="color:#000066;">str_replace</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'{{slash}}'</span>, <span style="color:#FF0000;">'<span style="color:#000099; font-weight:bold;">\\</span>'</span>, <span style="color:#0000FF;">$data</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Can you spot it? What on earth is an @ symbol doing in there? Who would do such a thing? What cruel developer thought it would be a good idea to do that? *In case you didn't know, <a href="http://us.php.net/manual/en/language.operators.errorcontrol.php">@ suppresses any errors</a> on what appears to be the entire line of code, or at least the ones inside the scope.</p>
<p>So I dropped the @, received my long awaited error message, and could finally move on developing whatever it was I was doing in the first place.</p>
<h3>The Closure</h3>
<p>I found my problem where I was using my own helper called 'string', which was causing CI's helper not to load. I renamed it, and everything's back to normal.</p>
<p>I've never contributed to an open source applications, although I've always felt I wanted to, but was nervous that I might screw something up, or do something wrong. I feel like CI would be a great project for me to contribute to. I already have a few things I'd like to add, but I'm not really sure how to go about doing it. Is there some sort of etiquette to getting involved? Is there a set of rules I should know? Should I be nervous about breaking something when it seems like there are already developers working on it that leave @ symbols instead of writing the necessary code to handle any issues? I would love to get some feedback on this sort of thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/our-first-big-fight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remap function for CodeIgniter</title>
		<link>http://blog.briandichiara.com/remap-function-for-codeigniter/</link>
		<comments>http://blog.briandichiara.com/remap-function-for-codeigniter/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 03:59:19 +0000</pubDate>
		<dc:creator>briandichiara</dc:creator>
				<category><![CDATA[Bin]]></category>

		<guid isPermaLink="false">http://blog.briandichiara.com/remap-function-for-codeingiter/</guid>
		<description><![CDATA[I got tired of looking for this code in other projects so I wanted a handy place to keep it. PLAIN TEXT PHP: &#60;?php function _remap&#40;$method&#41; &#123; &#160; &#160; if &#40;method_exists&#40;$this, $method&#41;&#41;&#123; &#160; &#160; &#160; &#160; $this-&#62;$method&#40;$this-&#62;uri-&#62;segment&#40;3&#41;&#41;; &#160; &#160; &#125; else &#123; &#160; &#160; &#160; &#160; $this-&#62;index&#40;$method&#41;; &#160; &#160; &#125; &#125; ?&#62; In case you're [...]]]></description>
			<content:encoded><![CDATA[<p>I got tired of looking for this code in other projects so I wanted a handy place to keep it.</p>
<div class="igBar"><span id="lphp-10"><a href="#" onclick="javascript:showPlainTxt('php-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-10">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">function</span> _remap<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/method_exists"><span style="color:#000066;">method_exists</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$this</span>, <span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">uri</span>-&gt;<span style="color:#006600;">segment</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#616100;">else</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">index</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$method</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
In case you're wondering, this function is a reserved method in CodeIgniter controllers that will allow for a dynamic method name to be passed into the URL. Docs on it are here: <a href="http://codeigniter.com/user_guide/general/controllers.html#remapping" target="_blank">codeigniter.com/user_guide/general/controllers.html#remapping</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandichiara.com/remap-function-for-codeigniter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
