<?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>I swore I wouldn&#039;t &#187; django</title>
	<atom:link href="http://www.wontblog.com/tag/django/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wontblog.com</link>
	<description>Oh no, I&#039;m blogging now?</description>
	<lastBuildDate>Wed, 23 Feb 2011 20:06:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>First Impressions of Code Igniter</title>
		<link>http://www.wontblog.com/2010/06/05/first-impressions-of-code-igniter/</link>
		<comments>http://www.wontblog.com/2010/06/05/first-impressions-of-code-igniter/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 12:28:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Host]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.wontblog.com/?p=56</guid>
		<description><![CDATA[Last night I was forced to start working with CodeIgniter, a PHP web-framework, and I have to say that so far I am enjoying the experience. CodeIgniter provides a simple framework that allows you to quickly get an application up and running.  The learning curve (so far) has been very low.  I like web-frameworks for [...]]]></description>
			<content:encoded><![CDATA[<p><!--digg--><br />
<img class="alignright" title="Code Igniter" src="http://img.skitch.com/20100605-xpp9a9s6win5rjkq6dwd2g93qw.jpg" alt="Code Igniter" width="288" height="220" /> Last night I was forced to start working with <a href="http://www.codeigniter.com/" target="_BLANK">CodeIgniter</a>, a PHP web-framework, and I have to say that so far I am enjoying the experience.</p>
<p>CodeIgniter provides a simple framework that allows you to quickly get an application up and running.  The learning curve (so far) has been very low.  I like web-frameworks for projects.  I have done a number of projects in Ruby on Rails, and I have dabbled in Django.  Those have been pleasant experiences, but I prefer PHP as my preferred development language for most projects due to a number of reasons (not interested in jumping into that holy war right now.)</p>
<p>Up to this point, if I wanted to use a PHP framework, my choices were Zend and CakePHP.  Zend is a monster.  I&#8217;m sorry, I know a lot of developers swear by Zend, but I&#8217;m not one of them.  Nobody &#8220;quickly&#8221; picks up Zend.  Zend is so incredibly dense/bloated/abstracted that debugging something becomes an exercise that is more time consuming than the original problem that you were trying to solve.  CakePHP felt too much like I was pretending to be Ruby on Rails, and there were so many hoops to jump through.  And it was frequently a little &#8220;too magical.&#8221;</p>
<p>After exploring these different options, I wrote my own framework that took the parts of Ruby on Rails that I enjoyed, but kept the flexibility and familiarity of PHP.  I have been using this for over a year now and it has served me well.  I was pleased to find that the structure of CodeIgniter was <em>almost identical</em> to the structure of my own framework.  This has made it a very easy switch for me.</p>
<p><span id="more-56"></span></p>
<p>The only problem that I have run into so far was briefly not understanding how to get to a GET parameter in a fashion that didn&#8217;t make me feel dirty.</p>
<p><em>Tangent about accessing GET parameters coming&#8230;</em><br />
CodeIgniter obscures the $_GET parameters by default, you can enable them within your configuration, but I am working on one page of an existing site as a favor for a friend.  The CodeIgniter documentation suggests that you retrieve the parameters based on &#8220;segments&#8221; so if you wanted to pass in</p>
<blockquote><p>http://www.mysite.com/events.php?start=25&amp;state=VA&amp;count=50</p></blockquote>
<p>CodeIgniter suggests that you would generate the url</p>
<blockquote><p>http://www.mysite.com/events/index/25/VA/50</p></blockquote>
<p>And then retrieve your parameters based on which &#8220;segment&#8221; they were.<br />
<code><br />
segment(3) =&gt; 25 // the 'start' value<br />
segment(4) =&gt; VA // the 'state' value<br />
segment(5) =&gt; 50 // the 'count' value<br />
</code><br />
This makes me cringe for many reasons.  What if, for example, the user can click a link to change the count to 25, but it defaults to 50.  Most of the time this isn&#8217;t going to happen, so would I ALWAYS assume that I&#8217;m passing in the first segment as the start param, even when it&#8217;s typically not going to be used?</p>
<p><strong>uri_to_assoc to the rescue</strong><br />
The solution to this &#8220;issue&#8221; (it&#8217;s more of my own issue than an actual problem) was the function uri_to_assoc.<br />
Using uri_to_assoc means that I could format my urls as:</p>
<blockquote><p>http://www.mysite.com/events/index/start/25/state/VA/count/50</p></blockquote>
<p>and then in my code use:<br />
<code><br />
$params = $this-&gt;uri-&gt;uri_to_assoc(3);</code></p>
<p><code> </code></p>
<p><code>/* I now have the array $params with:<br />
* $params['state'] = 'VA'<br />
* $params['state'] = 25<br />
* $params['count'] = 50<br />
*/<br />
</code><br />
This makes me much more comfortable, as it means that it doesn&#8217;t matter where in the URI that my parameters are positioned.<br />
<em>Tangent finished</em><br />
I plan to continue using CodeIgniter for a while, to see if it&#8217;s the right fit.  I have some small projects that it would likely be quite appropriate for, and it will get me out of the business of supporting my own framework.  <img src='http://www.wontblog.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.wontblog.com/2010/06/05/first-impressions-of-code-igniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing django with MySQL on OS X</title>
		<link>http://www.wontblog.com/2010/04/16/installing-django-on-os-x/</link>
		<comments>http://www.wontblog.com/2010/04/16/installing-django-on-os-x/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 15:16:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Host]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[developer tools]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.wontblog.com/?p=39</guid>
		<description><![CDATA[I am experimenting with the django web-framework for a few projects at work.  I do the majority of my work in PHP or Java, but occasionally I like to play with Ruby on Rails, and decided that django deserved to have a look as well. The first step in this process is to get django [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Installing django" src="http://img.skitch.com/20100416-qs9itxb2iftngkeduru395cm6g.png" alt="" width="279" height="211" /></p>
<p>I am experimenting with the django web-framework for a few projects at work.  I do the majority of my work in PHP or Java, but occasionally I like to play with Ruby on Rails, and decided that django deserved to have a look as well.</p>
<p>The first step in this process is to get django and the various components installed.</p>
<ul>
<li>Python</li>
<li>EasyTools</li>
<li>MySql</li>
<li>MySqlDB</li>
<li>Django</li>
</ul>
<p><strong><span id="more-39"></span>Python</strong> &#8211; I do my development from a relatively new Macbook Pro, and as such, Python 2.6.1 is already installed.  This is confirmed by typing &#8216;python&#8217; from a terminal window.</p>
<blockquote><p>&gt; python</p>
<div id="_mcePaste">Python 2.6.1 (r261:67515, Jul  7 2009, 23:51:51)</div>
<div id="_mcePaste">[GCC 4.2.1 (Apple Inc. build 5646)] on darwin</div>
<div id="_mcePaste">Type &#8220;help&#8221;, &#8220;copyright&#8221;, &#8220;credits&#8221; or &#8220;license&#8221; for more information.</div>
<div id="_mcePaste">&gt;&gt;&gt; ^D</div>
</blockquote>
<p><strong>EasyTools</strong> &#8211; Download the OS X of setup tools from <a href="http://pypi.python.org/pypi/setuptools#files">http://pypi.python.org/pypi/setuptools#files</a>, then run the .egg file as if it were an executable:</p>
<blockquote><p>sh setuptools-0.6c9-py2.4.egg</p></blockquote>
<p><strong>MySql </strong>- <span style="text-decoration: line-through;">I use MAMP (</span><a href="http://www.mamp.info" target="_blank"><span style="text-decoration: line-through;">http://www.mamp.info</span></a><span style="text-decoration: line-through;">) for my local PHP development (not sure how anybody could live without MAMP running locally.) MAMP provides a drop-in MySQL installation that I use for all of my local development purposes.  The one caveat to this is that it is not uncommon to run into scenarios where something is looking for a mysql_* executable that isn&#8217;t being found in the default location.</span></p>
<p>I previously was using MAMP for these installations, but found that at times, header files were needed for other installations, and MAMP isn&#8217;t really intended for this type of usage.  I still think MAMP is a great tool, but in this case, I needed to <a href="http://www.wontblog.com/2010/04/19/installing-mysql-from-source-on-os-x/" target="_blank">Install Mysql from source</a>.</p>
<p>Next, add the path to the mysql_* executables to your PATH.</p>
<blockquote><p>&gt; export PATH=/usr/local/mysql/bin:$PATH</p></blockquote>
<p><strong>MySqlDB</strong> &#8211; In order for python/django to be able to talk with MySQL, the MySQL DB driver needs to be installed.  This is an area that caused me a little bit of delay, as the installation of MySQL-python 1.2.3c1 was complaining about my lack of gcc.  I encountered a few posts that described how to get around this limitation with earlier versions of MySQL-python, but given that I do a lot of development, it felt like the right thing to do would be to install the Mac OSX Developer Tools.</p>
<blockquote><p>&gt; curl -O http://pypi.python.org/packages/2.6/M/MySQL-python/MySQL_python-1.2.3c1-py2.6-linux-i686.egg<br />
&gt; sudo easy_install MySQL_python-1.2.3c1-py2.6-linux-i686.egg</p></blockquote>
<p>If you receive errors about mysql, or gcc, then you need to re-visit your environment setup.</p>
<p><strong>Django</strong> &#8211; Once these pieces were in place, installing the actual django source code was trivial.</p>
<blockquote><p>&gt; svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk</p></blockquote>
<p>Next, make sure that the Python interpreter can load Django&#8217;s code. There are various ways of accomplishing this. One of the most convenient, on Linux, Mac OSX or other Unix-like systems, is to use a symbolic link:</p>
<blockquote><p>&gt; ln -s `pwd`/django-trunk/django SITE-PACKAGES-DIR/django</p></blockquote>
<p><em>Finding SITE-PACKAGES-DIR</em> -<br />
To find the location of the SITE-PACKAGES-DIR on your system, execute the following command from the command line:</p>
<blockquote><p>&gt; python -c &#8220;from distutils.sysconfig import get_python_lib; print get_python_lib()&#8221;</p></blockquote>
<p><strong>Add Django commands to PATH</strong> &#8211; I find it helpful to add the django bin directory to my PATH environment variable so that I have convenient access to the framework&#8217;s various commands:</p>
<blockquote><p>&gt; export PATH=SITE-PACKAGES-DIR/django/bin:$PATH</p></blockquote>
<p><strong>Earn $$$</strong> &#8211; Now that these pieces are in place, you can create your first django project by issuing the command:</p>
<blockquote><p>&gt; django-admin.py startproject mysite</p></blockquote>
<p>Overall the installation was a snap, on par with a Ruby on Rails installation.  Over the next few weeks, I will start developing some simple django projects and write a post describing the experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wontblog.com/2010/04/16/installing-django-on-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

