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

<channel>
	<title>Justin Lilly</title>
	<atom:link href="http://justinlilly.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://justinlilly.com</link>
	<description>Musings of a geek, web designer, and django developer</description>
	<pubDate>Tue, 19 Aug 2008 05:05:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Excel on GTD</title>
		<link>http://justinlilly.com/2008/08/18/excel-on-gtd/</link>
		<comments>http://justinlilly.com/2008/08/18/excel-on-gtd/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 14:03:41 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

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

		<guid isPermaLink="false">http://justinlilly.com/2008/08/18/excel-on-gtd/</guid>
		<description><![CDATA[While I&#8217;m not a GTD practitioner anymore, I am currently hosting a file for a few people who are. So those people who have come looking for Tom Rokey&#8217;s GTD Excel File, here&#8217;s where you can find it.
Link
]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m not a GTD practitioner anymore, I am currently hosting a file for a few people who are. So those people who have come looking for Tom Rokey&#8217;s GTD Excel File, here&#8217;s where you can find it.</p>
<p><a href="http://justinlilly.com/wp-content/uploads/excel_gtd.zip" title="Tom Rokey's GTD Excel File">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/08/18/excel-on-gtd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Django version 1.0 beta 1</title>
		<link>http://justinlilly.com/2008/08/14/django-version-1-beta-1/</link>
		<comments>http://justinlilly.com/2008/08/14/django-version-1-beta-1/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 03:23:30 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://justinlilly.com/?p=30</guid>
		<description><![CDATA[Congratulations to all involved in Django 1.0 beta 1&#8217;s release! Can&#8217;t wait for DjangoCon for the 1.0 release party!
]]></description>
			<content:encoded><![CDATA[<p>Congratulations to all involved in Django 1.0 beta 1&#8217;s release! Can&#8217;t wait for DjangoCon for the 1.0 release party!</p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/08/14/django-version-1-beta-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bash: Your forgotten friend (part 1)</title>
		<link>http://justinlilly.com/2008/08/14/bash-your-forgotten-friend-part-1/</link>
		<comments>http://justinlilly.com/2008/08/14/bash-your-forgotten-friend-part-1/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 17:54:31 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

		<guid isPermaLink="false">http://justinlilly.com/?p=28</guid>
		<description><![CDATA[In the name of meta-productivity, or improving productivity by improving process, I&#8217;ve come to learn and love Bash. For those who aren&#8217;t familiar, Bash is the &#8220;scary&#8221; black terminal in Mac and Linux. Its often recognized as the home of true geeks a la Wargames&#60;&#62;. From here out, I&#8217;ll assume a basic knowledge of bash [...]]]></description>
			<content:encoded><![CDATA[<p>In the name of meta-productivity, or improving productivity by improving process, I&#8217;ve come to learn and love Bash. For those who aren&#8217;t familiar, Bash is the &#8220;scary&#8221; black terminal in Mac and Linux. Its often recognized as the home of true geeks a la Wargames&lt;&gt;. From here out, I&#8217;ll assume a basic knowledge of bash (what `export` and similar commands do). In an effort to spread some of the joy of Bash, I&#8217;ve included a few handy features and tricks that help me out day to day.</p>
<p>The Prompt</p>
<p>The prompt is one of the first customizations that many people make. The default prompt isn&#8217;t informative. You&#8217;re given no information of where you are in the filesystem (ie your directory structure) or a clear idea of which user you&#8217;re operating under.</p>
</p>
<p>The code to make this happen is segmented for readability and easy updating (I&#8217;m a fickle user, what can I say?).</p>
<pre>
<code># Prompt Colors
BGREEN='\[\033[1;32m\]'<img src="http://justinlilly.com/wp-content/uploads/2008/08/prompt.png" width="300" height="100" alt="prompt.png" style="float:right;" />
GREEN='\[\033[0;32m\]'
BRED='\[\033[1;31m\]'
RED='\[\033[0;31m\]'
BBLUE='\[\033[1;34m\]'
BLUE='\[\033[0;34m\]'
NORMAL='\[\033[00m\]'
PS1="${BLUE}(${NORMAL}\w${BLUE}) ${NORMAL}\u${BLUE}@\h${RED}\$ ${NORMAL}"</code>
</pre>
<p>A bit of translation, the weird character combinations are what it takes to tell your terminal (the black window) how to make colors. the \w&#8217;s and such, are the values you wish to show in your prompt. A complete list of these values can be found in your bash man pages or here&lt;&gt;, as the bash man page is rather long (but informative!).</p>
<p>The Output</p>
<p>Navigating around your filesystem with screenfuls of grey text is a quick way to get a headache. If you want to get work done, however, adding a bit of color coding can make things much easier. Bash takes this into account with the LSCOLORS environment variable. Represented in foreground/background color pairs, there are 11 values (for a total of 22 characters) which make up how your terminal outputs the color.</p>
<p>The designations for color and the order they go in can be seen in the man page for ls or here&lt;&gt;. With an LSCOLORS variable of &#8216;Gxfxcxdxdxegedabagacad&#8217;, we can go from drab and grey, to informative and colorful.</p>
<p><img src="http://justinlilly.com/wp-content/uploads/2008/08/ls-colors.png" width="416" height="175" alt="ls_colors.png" /></p>
<p>So our .bash_profile file can be seen below or you can download it here&lt;&gt;.</p>
<p><code># Better looking ls output</code> <code>export LSCOLORS='Gxfxcxdxdxegedabagacad'</code></p>
<p><code># Prompt Colors<br />
BGREEN=&#8217;\[\033[1;32m\]&#8216;<br />
GREEN=&#8217;\[\033[0;32m\]&#8216;<br />
BRED=&#8217;\[\033[1;31m\]&#8216;<br />
RED=&#8217;\[\033[0;31m\]&#8216;<br />
BBLUE=&#8217;\[\033[1;34m\]&#8216;<br />
BLUE=&#8217;\[\033[0;34m\]&#8216;<br />
NORMAL=&#8217;\[\033[00m\]&#8216;</code></p>
<p><code># Prompt definition<br />
PS1=&#8221;${BLUE}(${NORMAL}\w${BLUE}) ${NORMAL}\u${BLUE}@\h${RED}\$ ${NORMAL}&#8221;<br /></code></p>
<p>Next in the series, I&#8217;ll walk though some of the alias I have setup which make life easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/08/14/bash-your-forgotten-friend-part-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vim: My new &#8220;IDE&#8221;</title>
		<link>http://justinlilly.com/2008/08/07/vim-my-new-ide/</link>
		<comments>http://justinlilly.com/2008/08/07/vim-my-new-ide/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 21:37:19 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

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

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

		<guid isPermaLink="false">http://justinlilly.com/?p=18</guid>
		<description><![CDATA[Thanks to the stellar recommendation from Empty, I&#8217;ve decided to make Vim my primary editor once again. Having recently switched from Textmate, there were a few things that I needed to get up and running to stay productive. Here they are in no particular order.
NERDtree
The NERDtree plugin functions much the same way that TM&#8217;s project [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to the stellar recommendation from <a title="Michael Trier's Blog" href="http://blog.michaeltrier.com/">Empty</a>, I&#8217;ve decided to make Vim my primary editor once again. Having recently switched from Textmate, there were a few things that I needed to get up and running to stay productive. Here they are in no particular order.</p>
<h3>NERDtree</h3>
<p><img style="padding-top: 5px; padding-bottom: 5px; padding-right: 15px; padding-left: 5px; float: left;" src="http://justinlilly.com/wp-content/uploads/2008/08/ishot-11.jpg" alt="ishot-11.png" width="200" height="150" />The <a title="NERD tree - Project Drawer Clone" href="http://www.vim.org/scripts/script.php?script_id=1658">NERDtree</a> plugin functions much the same way that TM&#8217;s project drawer works. It allows a heirarchal view of a folder structure. From this view, you can open files in new tabs, in the opposite window, even in split views. The only downside I&#8217;ve come across yet is the inability to perform file operations from within NERDtree. That being said, TM&#8217;s implementation of this was always felt a bit wonky to me as well.</p>
<h3>NERD_commenter</h3>
<p>Also from the NERD family, the <a href="http://www.vim.org/scripts/script.php?script_id=1218">commenting tool</a> is surprisingly useful. To comment out large portions of code, you just have to select it in visual mode and hit the default binding ,cc and it comments out the current line or current selection.</p>
<h3>ColorSchemes</h3>
<p><img style="padding-top: 5px; padding-bottom: 5px; padding-right: 5px; padding-left: 15px; float: right;" src="http://justinlilly.com/wp-content/uploads/2008/08/vim-colorschemes.png" alt="vim_colorschemes.png" width="200" height="150" /> Decent color schemes are also something that&#8217;s pretty important to me. The aesthetic of a good color scheme makes hours of staring at code a little bit easier. I&#8217;m currently using <a href="http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/index.html">Brookstream</a> (top), a teal, blue and purple color scheme set to a black background. When not in GUI mode, I use <a href="http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/index.html">elflord</a> (bottom) who&#8217;s pastel colors are passable for console work.</p>
<h3>LodgeIt</h3>
<p><a href="http://www.vim.org/scripts/script.php?script_id=1965">LodgeIt</a> is one of my favorite plugins by far. Its a simple pastebin service that&#8217;s hooked into vim. With a quick execution of the ,p command, my current selection or entire file is uploaded to the pasting service and the url is copied to my clipboard (mac feature). This makes debugging and getting help from someone on IRC super easy.</p>
<h3>Snippets Emu</h3>
<p>Similar to all of the great bundles of TM fame, <a href="http://www.vim.org/scripts/script.php?script_id=1318">snippetsEmu</a> provides intelligent command completion. It has bundles for several major programming frameworks/languages. Most importantly, at least for me, it has support for Django.</p>
<h3>Taglist</h3>
<p><img style="padding-top: 5px; padding-bottom: 5px; padding-right: 15px; padding-left: 5px; float: left;" src="http://justinlilly.com/wp-content/uploads/2008/08/ishot-12.jpg" alt="ishot-12.png" width="200" height="150" /><a href="http://vim-taglist.sourceforge.net/">Taglist</a> is one of the key features that people from Eclipse, Komodo, and that ilk always proclaim as awesomesauce. Its the ability to list all of the classes in your code, their methods and various other bits. It will also keep a history of recently accessed files and their methods in handy vim code folding.</p>
<h3>VCS Command</h3>
<p><a href="http://www.vim.org/scripts/script.php?script_id=90">VCS Command</a> is one of those plugins that isn&#8217;t super exciting. It doesn&#8217;t have the flash and glam that the other plugins have. What it does, however, keep your alt+tab fingers happy. I have rebound the aliases (as they conflict with NERD_commenter) to handle status, diffs and log commands. I prefer to be a bit more careful when commiting to repos, so I keep that a terminal only affair.</p>
<h3>SCM Diff</h3>
<p><img style="padding-top: 5px; padding-bottom: 5px; padding-right: 5px; padding-left: 15px; float: right;" src="http://justinlilly.com/wp-content/uploads/2008/08/ishot-13.jpg" alt="ishot-13.png" width="200" height="151" />Tied in with VCS Command, <a title="SCM Diff" href="http://www.vim.org/scripts/script.php?script_id=2201">SCM Diff</a> shows you visually how your current file differs from the previous versions of the file. With a simple ,d (which I chose to remap) I can see an inline diff, as you can see to the right, of my current file. Quite handy!</p>
<h3>Caveats</h3>
<p>So there is a thing or two I should mention about this particular setup. First, multiple windows. With NERDtree and Taglist fighting or which window is which, I&#8217;ve had to resort to toggling them on and off. Not such a big deal, as it gives me more code real estate, but something that I should mention.</p>
<h3>What I&#8217;m looking for now</h3>
<p>Django Management Commands! I&#8217;m really hoping some friendly programmer will create a method to run Django&#8217;s runserver, syncdb, flush, and the rest of their friends from Vim. If no one steps up to that plate, I may have to be that guy.</p>
<p>See something I&#8217;m missing? Is there a big piece of functionality my setup doesn&#8217;t provide? I&#8217;d love to hear your thoughts!</p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/08/07/vim-my-new-ide/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Refresh Columbia – July</title>
		<link>http://justinlilly.com/2008/08/01/refresh-columbia-%e2%80%93-july/</link>
		<comments>http://justinlilly.com/2008/08/01/refresh-columbia-%e2%80%93-july/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 14:27:42 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://justinlilly.com/2008/08/01/refresh-columbia-%e2%80%93-july/</guid>
		<description><![CDATA[Yesterday&#8217;s talk at our local Refresh Columbia went extremely well. After a bit of pre-talk jitters, I think it went fairly well. I&#8217;ve attached my slides for those interested, which I talked about Django for Designers. It was a very basic overview of how Django makes a designer&#8217;s life easier. At the end of the [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday&#8217;s talk at our local Refresh Columbia went extremely well. After a bit of pre-talk jitters, I think it went fairly well. I&#8217;ve attached my slides for those interested, which I talked about Django for Designers. It was a very basic overview of how Django makes a designer&#8217;s life easier. At the end of the talk, I went over a very brief CMS which I&#8217;m strongly considering developing a bit more to allow a mechanism for voting on upcoming talks. More to come!</p>
<p><iframe src='http://docs.google.com/EmbedSlideshow?docid=akxfhmr4dtk_24c75b9tf6' frameborder='0' width='410' height='342'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/08/01/refresh-columbia-%e2%80%93-july/feed/</wfw:commentRss>
		</item>
		<item>
		<title>From the iPhone</title>
		<link>http://justinlilly.com/2008/07/24/from-the-iphone/</link>
		<comments>http://justinlilly.com/2008/07/24/from-the-iphone/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 19:18:40 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[Misc]]></category>

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

		<guid isPermaLink="false">http://justinlilly.com/2008/07/24/from-the-iphone/</guid>
		<description><![CDATA[So this is the first post from the new iPhone app. At this point, my reasons for not posting are getting slimmer and slimmer. Expect more soon!
]]></description>
			<content:encoded><![CDATA[<p>So this is the first post from the new iPhone app. At this point, my reasons for not posting are getting slimmer and slimmer. Expect more soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/07/24/from-the-iphone/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Behind the scenes changes</title>
		<link>http://justinlilly.com/2008/07/14/behind-the-scenes-changes/</link>
		<comments>http://justinlilly.com/2008/07/14/behind-the-scenes-changes/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 02:48:47 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[server admin]]></category>

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

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

		<guid isPermaLink="false">http://justinlilly.com/?p=11</guid>
		<description><![CDATA[Pay no attention to the man behind the curtain. He&#8217;s just mucking up this server  In all seriousness though, I&#8217;ve just set up this blog to run on nginx with no small thanks to this tutorial on elastic dog. This move was because I need to familiarize myself with nginx before I install it [...]]]></description>
			<content:encoded><![CDATA[<p>Pay no attention to the man behind the curtain. He&#8217;s just mucking up this server <img src='http://justinlilly.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> In all seriousness though, I&#8217;ve just set up this blog to run on nginx with no small thanks to this <a title="Install Wordpress on Nginx" href="http://elasticdog.com/2008/02/howto-install-wordpress-on-nginx/">tutorial </a>on <a title="Elastic Dog" href="http://elasticdog.com/">elastic dog</a>. This move was because I need to familiarize myself with nginx before I install it for production use at work. Another reason is I need something blazing fast to serve up media for a few django applications I have cooking up. Here&#8217;s to a blazingly fast and rock stable webserver!</p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/07/14/behind-the-scenes-changes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Simple Gencal</title>
		<link>http://justinlilly.com/2008/07/07/simple-gencal/</link>
		<comments>http://justinlilly.com/2008/07/07/simple-gencal/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 15:07:57 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[django]]></category>

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

		<guid isPermaLink="false">http://justinlilly.com/?p=10</guid>
		<description><![CDATA[I&#8217;ve just released simple_gencal which is the tag referenced in my previous post. I&#8217;ll be working towards better documentation, error checking and such in the coming weeks. Just figured I&#8217;d get this out there for people who are interested.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released simple_gencal which is the tag referenced in my previous post. I&#8217;ll be working towards better documentation, error checking and such in the coming weeks. Just figured I&#8217;d get this out there for people who are interested.</p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/07/07/simple-gencal/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gencal Syntax Change?</title>
		<link>http://justinlilly.com/2008/06/16/gencal-syntax-change/</link>
		<comments>http://justinlilly.com/2008/06/16/gencal-syntax-change/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 17:38:56 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[django]]></category>

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

		<guid isPermaLink="false">http://justinlilly.com/?p=9</guid>
		<description><![CDATA[I&#8217;m investigating possible syntax changes for Gencal&#8217;s template tag having been directed to this post by James Bennett via Marco in a previous post. My thoughts are to split it up into two template tags. A simple template tag which will render one model&#8217;s object and a more complex tag (with requisite views) which will [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m investigating possible syntax changes for Gencal&#8217;s template tag having been directed to <a title="Write Better Template Tags" href="http://www.b-list.org/weblog/2006/jun/07/django-tips-write-better-template-tags/">this post</a> by <a title="James Bennett's Blog" href="http://www.b-list.org/">James Bennett</a> via <a title="Marco" href="http://zolbe.com/">Marco</a> in a previous post. My thoughts are to split it up into two template tags. A simple template tag which will render one model&#8217;s object and a more complex tag (with requisite views) which will allow the importing of multiple objects across many models. </p>
<p>The syntax I&#8217;m considering for the simple model is:</p>
<p><code class="prettyprint"> {% gencal for Base.Model on date_field in DateObject %} </code></p>
<p>The grammatical words aren&#8217;t set in stone by any means. <a title="Jannis Leidel" href="http://jannisleidel.com/">Jannis</a>, for instance, thinks I shouldn&#8217;t use the `in` keyword as its used in other portions of the template language. This would allow someone to quickly and easily create a generic calendar for an object without a big investment. From a syntax standpoint, it also makes it much easier to set up.</p>
<p>The downside of this approach is your calendar will only hold one object (which is probably just fine for most people). The second option is mostly what I&#8217;m doing now. Generate a list of objects to map and pass them into the template. There is some documentation work that needs to be done on this front, which I&#8217;ll be doing as I use gencal in an upcoming project. </p>
<p>Also speaking of choices, I&#8217;m looking to create two different default templates. One which will include a detailed listing of what&#8217;s going on in a month (similar to iCal) and another which will tell you if there is an event on a specific day (typically seen by bolding the day). The first one would be a large calendar (700px ish), while the second would be much smaller (100px-ish). Interested to hear your thoughts on these proposed changes as I look to make improvements to gencal this week.</p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/06/16/gencal-syntax-change/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gencal Status</title>
		<link>http://justinlilly.com/2008/06/11/gencal-status/</link>
		<comments>http://justinlilly.com/2008/06/11/gencal-status/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 23:58:40 +0000</pubDate>
		<dc:creator>Justin</dc:creator>
		
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://justinlilly.com/?p=8</guid>
		<description><![CDATA[Looking back at gencal&#8217;s codebase, I was a bit ashamed to find how poorly laid out it was. It took me quite some time to figure out exactly how to get it working and considering I wrote the app, that&#8217;s completely unacceptable. Instead of releasing a screencast for a poorly written template tag, I&#8217;ll instead [...]]]></description>
			<content:encoded><![CDATA[<p>Looking back at gencal&#8217;s codebase, I was a bit ashamed to find how poorly laid out it was. It took me quite some time to figure out exactly how to get it working and considering I wrote the app, that&#8217;s completely unacceptable. Instead of releasing a screencast for a poorly written template tag, I&#8217;ll instead be spending some time updating it. The plan is to make it easier to follow, beef up the documentation and put out a live example people can poke at. Follow the progress over at <a title="Django-Gencal" href="http://django-gencal.googlecode.com/">google code</a> and come kick me in the pants if I lag behind on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://justinlilly.com/2008/06/11/gencal-status/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
