<?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>@TheKeyboard &#187; vim</title>
	<atom:link href="http://www.littlehart.net/atthekeyboard/tag/vim/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.littlehart.net/atthekeyboard</link>
	<description>Facebook should&#039;ve be written in unicornSchemaLang, because everyone *knows* that PHP is no good for anything, right?</description>
	<lastBuildDate>Thu, 29 Jul 2010 20:05:27 +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>What Thrashed Around In Chris&#8217; Brain This Past Weekend</title>
		<link>http://www.littlehart.net/atthekeyboard/2009/11/23/what-thrashed-around-in-chris-brain-this-past-weekend/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2009/11/23/what-thrashed-around-in-chris-brain-this-past-weekend/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 02:12:49 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[blog experiment]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/?p=606</guid>
		<description><![CDATA[(The blog experiment continues: 1 post every weekday in November and I think I only skipped one, but made up for it with a Saturday post) Node.js is something I want to use, but I do not know what for For those who don&#8217;t know, Node is a &#8220;toolkit for writing extremely high performance non-blocking [...]]]></description>
			<content:encoded><![CDATA[<p>(The blog experiment continues: 1 post every weekday in November and I think I only skipped one, but made up for it with a Saturday post)</p>
<p>
<i>Node.js is something I want to use, but I do not know what for</i><br />
For those who don&#8217;t know, <a href="http://nodejs.org/">Node</a> is a &#8220;toolkit for writing extremely high performance non-blocking event driven network servers in JavaScript&#8221;.  In other words, it&#8217;s for writing server-side Javascript with an emphasis on providing concurrency.  Damn you Tim Bray, I cannot avoid seeing concurrency everywhere since you started your <a href="http://www.tbray.org/ongoing/When/200x/2009/09/27/Concur-dot-next">Concur.next</a> series on your blog.  It fascinates me, and I don&#8217;t even do any kind of work where I need to worry about concurrency.  Not yet anyway.
</p>
<p>
Simon Wilson (someone I follow from the Django community) has a great article explaining why <a href="http://simonwillison.net/2009/Nov/23/node/">Node.js is genuinely exciting</a> to him, and my old CakePHP landsmann Felix shows <a href="http://debuggable.com/posts/streaming-file-uploads-with-node-js:4ac094b2-b6c8-4a7f-bd07-28accbdd56cb">how to handling streaming file uploads in node.js</a>.  Like so many new technologies, Node.js starts out as a solution looking for a problem but as I become more familiar with concurrency it all becomes a little clearer.
</p>
<p>
<i>While <a href='http://www.vim/org">Vim</a> is awesome, don&#8217;t put up with any crap from it</i><br />
I had been experiencing a problem with Vim.  Well, two problems.  The first big one was weird behaviour involving the <a href="http://www.vim.org/scripts/script.php?script_id=1849">AutoClose</a> plugin.  It would spit out brackets and quotes at the weirdest time, and I found myself doing a lot of unnecessary keystrokes (and toggling in and out of insert mode) to get things done.  So I deleted it.  Enough of that crap.  Same goes with my attempts to use the <a href="http://www.vim.org/scripts/script.php?script_id=69">Project plugin</a>.  I just could not get it to work properly.  DELETED.
</p>
<p>
Vim&#8217;s ability to be ultracustomizable ALSO makes it easy to dump stuff when you no longer what to use it.  Heck, I even see some stuff in my .vimrc that I am not using any more.  Mappings I did to accomplish some specific tasks.  Those were deleted too.
</p>
<p>
<i>Understanding the concept of callbacks opens your mind to all sorts of possibilities</i><br />
While callbacks are related to my use of Javascript (jQuery uses them to great success) I also find myself digging into the <a href="http://docs.djangoproject.com/en/dev/topics/signals/">documentation in Django on signals</a>, which are callbacks by another name:  functionality that is executed when certain events happen.</p>
<p>Django uses them all over the place, and CakePHP uses them as well.  When I look at the CodeIgniter code that powers <a href="http://www.sportso.com">Sportso</a>, I often ruminate about what programming techniques or design patterns could help me reduce the amount of code that has actually been written.  CodeIgniter doesn&#8217;t really support callbacks except in the form of allowing you to define custom functions for validation purposes.  It&#8217;s a start I get.  I wonder what the code would look like if I could define more code that is triggered when specific events happen?  Any time I find myself typing the same block of code over and over again, it is only natural that I seek to reduce how often I need to do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2009/11/23/what-thrashed-around-in-chris-brain-this-past-weekend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digging Through The Bookmarks</title>
		<link>http://www.littlehart.net/atthekeyboard/2009/05/08/digging-through-the-bookmarks/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2009/05/08/digging-through-the-bookmarks/#comments</comments>
		<pubDate>Fri, 08 May 2009 21:01:29 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[data models]]></category>
		<category><![CDATA[defects]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Limonade]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP frameworks]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/?p=469</guid>
		<description><![CDATA[Although I never got into the habit of using online bookmarking services like Delicious (never really understood how/why to use them) I do tend to bookmark a lot of stuff. So as a change of pace I thought I&#8217;d go through my programming bookmarks and show you some of the stuff I found interesting enough [...]]]></description>
			<content:encoded><![CDATA[<p>Although I never got into the habit of using online bookmarking services like Delicious (never really understood how/why to use them) I do tend to bookmark a lot of stuff.  So as a change of pace I thought I&#8217;d go through my programming bookmarks and show you some of the stuff I found interesting enough to save:
</p>
<h3><a href="http://github.com/sofadesign/limonade/tree/master">Limonade, a PHP microframework</a></h3>
<p>I am Mr. Framework (Rails, ZF, CakePHP, Code Igniter, Django, I&#8217;ve tried a ton of &#8216;em) so I found this project to be very interesting.  I think it&#8217;s only really missing easy-to-do URL rewriting.  I could *probably* figure it out using whatever the web server for that project uses, but I am spoiled by the easy routing stuff in most frameworks.</p>
<h3><a href="http://marcgrabanski.com/article/jquery-google-maps-tutorial-ajax-php-mysql">jQuery and Google Maps</a></h3>
<p>
Marc Grabanski is a guy I met at the original <a href="http://cakefest.org">CakeFest</a> in Orlando, and he does so much amazing front-end work that I find myself going back to his site over and over again.  This is the second tutorial he has up there on using jQuery with Google Maps.  So well written, and so easy to implement with your own stuff.
</p>
<h3><a href="http://misko.hevery.com/">The Testability Explorer Blog</a></h3>
<p>Misko Hevery has this amazing blog where he talks about great testing practices.  For the love Murphy, please go read his blog and start testing your code.  I mean it!</p>
<h3><a href="http://venturehacks.com/articles/five-whys">The startup immune system</a></h3>
<p>
Great article on some recommended practices for making your company&#8217;s handling of defects in the software they produce better.
</p>
<h3><a href="http://ivanidris.net/wordpress/index.php/2009/02/03/sharpen-the-vim-saw">Sharpen the Vim Saw</a></h3>
<p>
What?  You don&#8217;t use <a href="http://www.vim.org">Vim</a>?!?!  That&#8217;s okay, what Ivan Idris talks about here is finding inefficiencies in the way you use your editor-of-choice and eliminate them.</p>
<h3><a href="http://www.eecs.harvard.edu/~cduan/technical/git/">Understanding Git Conceptually</a></h3>
<p>
Want to know what the big deal about Git is?  Why are all the cool kids using it?  Well, many of *them* don&#8217;t even know why Git is so awesome.  This site explains HOW Git works so you can understand WHY you should be using it.
</p>
<h3><a href="http://jeffcroft.com/blog/2006/jul/14/django-admin-your-php-app/">Django admin for your PHP app?</a></h3>
<p>
A quick guide to how to sneak Django into your PHP project as the rock-solid start of an admin area.  I have done this with a project at work at the prototype level (no code committed yet) and it just makes so much sense.</p>
<h3><a href="http://blog.johngoulah.com/2009/01/mysql-sandbox/">Quick DB Setups with MySQL Sandbox</a></h3>
<p>
Although I am lucky that I do not need to test my work code against different versions of MySQL, the techniques described here show how to do that exactly that in a way that is so simple I thought to myself &#8220;Why did nobody ever tell me you could do this?!?&#8221;</p>
<h3><a href="http://www.databaseanswers.org/data_models/index.htm">Library of Free Data Models</a></h3>
<p>
This site is awesome in a very subtle way.  It shows you all sorts of samples of building relationships between things in a data model.  Want an example of how to link agents and leads together for a recruiting company? They have one. Ever wanted to see how a hotel would handle booking reservations?  They got one.
</p>
<p>Okay, last one.  I promise</p>
<h3><a href="http://rope.sourceforge.net/">Rope, a python refactoring library</a></h3>
<p>
I&#8217;m starting to get into the world of refactoring tools as I dig into Python.  Rope is a tool to let you go through your Python code and identify things that need to be refactored, like duplicate code blocks that can be combined into one.  I so wish tools like this existed for PHP, as I would use them all the time.  Add in the fact that it can be integrated into Vim, well, I&#8217;ve got a tool that will become an essential part of my Python toolkit going forward.
</p>
<p>
So there you have it.  What hidden gems do you have to share?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2009/05/08/digging-through-the-bookmarks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lazyweb Questions &#8211; April 2009</title>
		<link>http://www.littlehart.net/atthekeyboard/2009/04/09/lazyweb-questions-april-2009/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2009/04/09/lazyweb-questions-april-2009/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 23:59:34 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/?p=455</guid>
		<description><![CDATA[The book is doing quite well, thanks. 42 copies sold as I type this. I am going to give away one of my &#8220;Framework Apocalypse&#8221; t-shirts to one lucky random customer when I get to 100. Feedback has been great, so spread the word about the book! As Matt Curry pointed out in his review [...]]]></description>
			<content:encoded><![CDATA[<p>The book is doing quite well, thanks.  42 copies sold as I type this.  I am going to give away one of my &#8220;Framework Apocalypse&#8221; t-shirts to one lucky random customer when I get to 100.  Feedback has been great, so spread the word about the book!  As <a href="http://www.psuedocoder.com">Matt Curry</a> pointed out in his <a href="http://www.pseudocoder.com/archives/2009/04/08/review-refactoring-legacy-applications-using-cakephp/">review of my book</a>, don&#8217;t let the name fool you.  It could&#8217;ve been subtitled &#8220;how to think like a CakePHP developer&#8221;.
</p>
<p>
So, I have a few questions for the lazyweb (aka my awesome readers).  I&#8217;m hoping they can point me in the right direction.:</p>
<ul>
<li>At work, my boss is wondering if there is a way for us to determine *ahead* of time if queries being generated by our web service are going to really churn the database and lock things up.  Since the queries are very dynamic, I can only do so much in the caching department.  Application is PHP-based, built using Code Igniter</li>
<li>Inspired by <a href="http://twitter.com/jperras">my friend Joel</a> feel free to share your essential <a href="http://www.vim.org">VIM</a> plugins.  Mine are <a href="http://www.vim.org/scripts/script.php?script_id=1075">netrw</a>, <a href="http://www.vim.org/scripts/script.php?script_id=2009">autoclose</a>, <a href="http://www.vim.org/scripts/script.php?script_id=2507">0scan</a>, <a href="http://www.vim.org/scripts/script.php?script_id=39">matchit</a>, <a href="http://www.vim.org/scripts/script.php?script_id=2602">paster</a> (I use it all the time at work), <a href="http://www.vim.org/scripts/script.php?script_id=1697">surround</a>, <a href="http://www.vim.org/scripts/script.php?script_id=273">taglist</a>, <a href="http://www.vim.org/scripts/script.php?script_id=90">vcscommand</a> (although I have started using a git plugin that I can&#8217;t find the download page for, and then a bunch of syntax highlighting plugins for <a href="http://www.vim.org/scripts/script.php?script_id=1487">Django</a>, Git, PHP (can&#8217;t remember which one), Python (can&#8217;t remember which one) and <a href="http://www.vim.org/scripts/script.php?script_id=803">Xquery</a>.</li>
</ul>
<li>Tools for refactoring in other languages look awesome (<a href="http://gilesbowkett.blogspot.com/2008/09/towelie-keeps-your-code-dry.html">Towelie</a> for Ruby, <a href="http://rope.sourceforge.net/">Rope</a> for Python.  What tools are out there for PHP?
</li>
</p>
<p>
Let me know via the comments what you know or find out.  Thanks and enjoy the Easter / Passover break!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2009/04/09/lazyweb-questions-april-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chris&#8217; Brain &#8211; 2009-02-18</title>
		<link>http://www.littlehart.net/atthekeyboard/2009/02/18/chris-brain-2009-02-18/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2009/02/18/chris-brain-2009-02-18/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 15:42:11 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/?p=426</guid>
		<description><![CDATA[Book is getting close Circle March 9 on your calendar, as that is the day my book &#8220;Refactoring Legacy Applications Using CakePHP&#8221; as the day it will be released. I will be offering a PDF version and a print-on-demand version via Lulu.com. It looks like the PDF with be $10 or less, with the price [...]]]></description>
			<content:encoded><![CDATA[<p>
<i>Book is getting close</i><br />
Circle March 9 on your calendar, as that is the day my book &#8220;Refactoring Legacy Applications Using CakePHP&#8221; as the day it will be released.  I will be offering a PDF version and a print-on-demand version via Lulu.com.  It looks like the PDF with be $10 or less, with the price of the POD version being at least double that.  More details once I get the site for this up-and-running.
</p>
<p>
<i>Book Review On The Run</i><br />
On the recommendation of <a href="http://twitter.com/lstrojny">someone I follow on Twitter</a> I ordered a copy of &#8220;Beautiful Architecture&#8221;, a collection of essays and articles published by O&#8217;Reilly and edited by Diomidis Spinellis &#038; George Gousios.  It&#8217;s all about software architecture and so far it&#8217;s been an awesome read.  For anyone who&#8217;s ever been in a position to have a say about not just WHAT they are building but HOW they build it, it&#8217;s a great read.  I&#8217;m about halfway through.
</p>
<p>
<i>Frameworks expand to fill available space</i><br />
I was thinking about this the other day.  All frameworks start out being lightweight, unless your original design calls for you to be full-stack and bundle everything including a small web server for testing.  Then, as the project matures you keep adding things to it and before you know it you are just as big and close to being full-stack as everyone else.   So to those that call certain frameworks bloated, reconsider your position and take into account what YOU add to an application built with that framework that is not already in there.
</p>
<p>
<i>7 Habits for Effective Text Editing 2.0</i><br />
Even if you don&#8217;t use <a href="http://www.vim.org">the One True Editor</a>, check out this video with the creator of Vim as he talks about <a href="http://video.google.com/videoplay?docid=2538831956647446078">being more efficient when working with text.</a>  The strategies he talks about work with ANY editor / IDE and that&#8217;s really the point.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2009/02/18/chris-brain-2009-02-18/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chris&#8217; Brain, X-Mas 2008 Edition</title>
		<link>http://www.littlehart.net/atthekeyboard/2008/12/24/chris-brain-x-mas-2008-edition/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2008/12/24/chris-brain-x-mas-2008-edition/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 16:42:27 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[Balsmiq Mockups]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[MacVim]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/?p=367</guid>
		<description><![CDATA[As a guy who gets so much out of open source software, I thought that this Christmas season is a good time for me to give something back to all of you out there and share with you some of the things I&#8217;ve been thinking about. Notice that many of these things are not PHP [...]]]></description>
			<content:encoded><![CDATA[<p>As a guy who gets so much out of open source software, I thought that this Christmas season is a good time for me to give something back to all of you out there and share with you some of the things I&#8217;ve been thinking about.  Notice that many of these things are not PHP related&#8230;
</p>
<h3>Rails and Merb merge</h3>
<p>Much to surprise of many, egos have been pushed aside and <a href="http://yehudakatz.com/2008/12/23/rails-and-merb-merge/">Rails and Merb are merging to create Rails 3</a>.  It&#8217;s not very often I read something online and unleash a string of astonished obscenities, but this announcement absolutely stunned me.</p>
<p>
If I ever went back into the land of Ruby again, <a href="http://merbivore">Merb</a> was going to be the framework I was going to use.  But since I&#8217;m not going that way, it&#8217;s really a moot point.  Rails can only get better by not only integrating stuff from Merb into it but also taking to heart the modular nature of Merb itself.
</p>
<p>
Perhaps this is yet another watershed moment in the evolution of frameworks.  As much as I am a full-stack guy, I am seeing the advantage to having a framework that has a very tight core, and lots of modules that you can add-on to it.  <a href="http://www.djangoproject.org">Django</a> has this to a certain extent, but it also has a lot in the core.
</p>
<h3>Alternate Workflows</h3>
<p>
I&#8217;ve been spending time at work trying to figure out workflows that fit in with my development style.  I found this very innovative <a href="http://joemaller.com/2008/11/25/a-web-focused-git-workflow/">web-focused workflow</a> that uses <a href="http://git.or.cz">Git</a>.  The thing that I find intriguing is that it allows you to make edits on the production side, and those changes get propagated to where they need to go.  Even though I think that doing edits on the production side of things is usually a Very Bad Idea, but that might be a product of my experience with one-way deployment of code from dev->staging->production.
</p>
<h3>Master your Editor</h3>
<p>
Now that my waffling is over and I only use <a href="http://code.google.com/p/macvim/">MacVim</a> as my primary editor, I am now embarking on the journey from beginning user to vim power user.  Thanks to posts like <a href="http://www.catonmat.net/blog/vim-plugins-surround-vim/">this one from a series on Vim plugins you should know about</a>, I can customize my programming environment to be the way *I* want.  No matter what editor you use, take the time to learn it&#8217;s features and you will surely discover ways to become more productive.
</p>
<h3>Design your site from front to back</h3>
<p>
Ever tried to design a site based off a text description from the client / boss / whatever?  You are doomed to failure.  Instead, I have started insisting on taking things in the other direction and designing from front to back.  Tools like <a href="http://www.balsamiq.com/products/mockups">Balsamiq Mockups</a> are indispensable to make this happen.  In truth the tool doesn&#8217;t matter.  What matters is that you have a way to draw rough designs for your site and then build it from the interface on back.  For a guy who has very little design talent, this makes total sense to me.  I have two side projects that currently exist ONLY as interface sketches.  And I think that is a good thing.
</p>
<p>Any way, that&#8217;s it for now.  Have a good holiday season I will be posting again next week with the next installment in my &#8220;refactoring with CakePHP&#8221; series, this time about the rearranging of business logic and display logic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2008/12/24/chris-brain-x-mas-2008-edition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What&#8217;s In Chris&#8217; Brain: November 2008 Issue</title>
		<link>http://www.littlehart.net/atthekeyboard/2008/11/05/whats-in-chris-brain-november-2008-issue/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2008/11/05/whats-in-chris-brain-november-2008-issue/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 18:48:28 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Komodo]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/?p=335</guid>
		<description><![CDATA[My apologies for the slowdown in posting. I have a Side Project For Money That Will Not Die and it is occupying almost all my spare time outside of work and family commitments. In the aftermath of the most historic election ever in the United States of America, here is what I&#8217;ve been thinking about: [...]]]></description>
			<content:encoded><![CDATA[<p>My apologies for the slowdown in posting.  I have a Side Project For Money That Will Not Die and it is occupying almost all my spare time outside of work and family commitments.  In the aftermath of the most historic election ever in the United States of America, here is what I&#8217;ve been thinking about:
</p>
<ul>
<li><a href="http://www.activestate.com/Products/komodo_ide/latest_release.mhtml">Komodo 5 is out</a>.  If you&#8217;ve been looking for an IDE that lets you work with multiple languages, do not waste any more time looking.  Go and check it out.  (Disclaimer: I am in Activestate&#8217;s good books and received a free upgrade to Komodo 5).  I have been playing with it (currently I use a <a href="http://www.vim.org">different IDE</a> because I am a masochist) but I do use it when I need to break out a debugger for some nasty code.  It was weird using Komodo and finding my fingers trying to type all the keystrokes that vim uses</li>
<li>The Side Project For Money That Will Not Die has really pushed my coding skills forwards by reinforcing the notion to embrace the conventions of the framework your application has been built with.  Nothing sharpens the skills up like taking old code and figuring out how to duplicate the functionality under the constraints of a different system.  While it is an exercise in coding masochism, I highly recommend everyone doing it at least once.</li>
<li><a href="http://gilesbowkett.blogspot.com/">Giles Bowkett</a> is a guy you should pay attention to.  Sure, he&#8217;s a Ruby guy but he&#8217;s *very* different from the rest of the Ruby community.  Follow his blog and follow him on Twitter too.</li>
<li>Returning to IDE&#8217;s  for a second, if you do settle on an editor for your day-to-day use (Komodo, stop poking me in the ribs!  Vim is laughing at me now) please, PLEASE, learn what you need to learn to master it.  Otherwise you end up like me:  typing :V, scrolling down and typing Y in Komodo, then wondering why nothing got copied.  Yes, I know there are vim keybindings for it but muscle memory is a very nasty thing.</li>
<li>It&#8217;s all over but the shouting:  \ has been chosen as the new separator / indicator for namespaces in PHP 5.3+.  My own opinion on this doesn&#8217;t really matter, I&#8217;m just glad that they have decided.</li>
<li>Something I saw a few weeks ago in a screencast of a talk that <a href="http://blog.obiefernandez.com/">Obie Fernandez</a> gave about the proper way to about being a consultant has totally stuck with me:  do exceptional work.  Three simple words that a lot of people should pay attention to no matter the environment they happen to be working in.  Of course, easier said than done.
</li>
<li>Selenium + PHPUnit + CodeIgniter is helpful, but really, really slow.</li>
<li>PHPUnit + CodeIgniter is good because I am tired of fixing bugs that would&#8217;ve been caught if I had written tests.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2008/11/05/whats-in-chris-brain-november-2008-issue/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VIM Programming Bounty: FuzzyFind inside Files</title>
		<link>http://www.littlehart.net/atthekeyboard/2008/10/20/vim-programming-bounty-fuzzyfind-inside-files/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2008/10/20/vim-programming-bounty-fuzzyfind-inside-files/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 02:15:11 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[bounty]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/?p=329</guid>
		<description><![CDATA[(Note: I have updated this posting with some more info on what I am looking for) Since I make a little bit of money every month in advertising off this blog, I thought I&#8217;d put some of this money to good use. I&#8217;ve been trying very hard to use vim as my editor for day-to-day [...]]]></description>
			<content:encoded><![CDATA[<p>(Note: I have updated this posting with some more info on what I am looking for)</p>
<p>
Since I make a little bit of money every month in advertising off this blog, I thought I&#8217;d put some of this money to good use.  I&#8217;ve been trying very hard to use <a href="http://www.vim.org">vim</a> as my editor for day-to-day use.  Previously, amidst lots of waffling, I had settled on TextMate for my day-to-day work.  Awesome editor, nice and lightweight and full of the cool features I needed.  There were two features that were stopping me from totally switching over.
</p>
<p>
First one was Cmd-T inside a project, which allows you to search through your project doing a fuzzy search for files that match your search string.  Awesome, awesome feature.  Cuts down on the browsing using the project drawer that I tended to do.  That particular hurdle has been fixed thanks to <a href="http://weblog.jamisbuck.org">Jamis Buck</a> (of Capistrano and 37 Signals) through his <a href="http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim">FuzzyFinderTextmate</a> plugin.  It&#8217;s extends the <a href="http://www.vim.org/scripts/script.php?script_id=1984">fuzzyfinder.vim</a> plugin with a little bit of Ruby.  Does the trick, but you have to do a little jiggering to get it to recognize new files. An argument for another day I guess.
</p>
<p>
The second one is the also-awesome &#8216;Find In Project&#8217; feature in Textmate, which searches through all your files looking for matches for the string (or regex if you&#8217;re up to it) inside those files, then providing you with a list of files that you can open.  I&#8217;m wanting functionality similar to how the fuzzyfindertextmate plugin referenced above works, but for searching inside files.
</p>
<p>I am aware of how :vimgrep and :grep work (thanks to those who pointed it out), but I do not like how the quickfix window works, as I want a dropdown list of the files that contain what was found so I can open them.  Again, very similar as to how the FuzzyFinderTextmate plugin works.
</p>
<p>
So, I am offering $100 of my own ill-gotten advertising revenue (payable via PayPal) to the person who comes up with the solution I like the best that actually works.  If you don&#8217;t want the money, I can donate it to the charity of your choice as long as they will take PayPal as well.
</p>
<p>
I know *someone* out there can figure this out.  I&#8217;ll give you until American Thanksgiving to come up with a solution.  Please post your suggestions in the comments, but please realize that all comments are moderated and off-topic ones will definitely be sent to /dev/null</p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2008/10/20/vim-programming-bounty-fuzzyfind-inside-files/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>I&#8217;m An Editor Waffler, Part II</title>
		<link>http://www.littlehart.net/atthekeyboard/2008/03/21/im-a-editor-waffler-part-ii/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2008/03/21/im-a-editor-waffler-part-ii/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 00:54:17 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Komodo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/2008/03/21/im-a-editor-waffler-part-ii/</guid>
		<description><![CDATA[In a post earlier this week I had talked about the fact that I have turned into an &#8220;editor waffler&#8221;, paralyzed with fear that I couldn&#8217;t decide on what editor to use for my day-to-day use. I had promised that by the end of the week I would reveal what editor I&#8217;ve decided on using. [...]]]></description>
			<content:encoded><![CDATA[<p>
In a post earlier this week I had talked about the fact that I have turned into an &#8220;editor waffler&#8221;, paralyzed with fear that I couldn&#8217;t decide on what editor to use for my day-to-day use.   I had promised that by the end of the week I would reveal what editor I&#8217;ve decided on using.  But before I talk about that, I wanted to talk some more about my thoughts on why I can&#8217;t decide.
</p>
<p>
I had prepared a really long blog post to answer this question but I started rambling and I deleted it all.  It comes down to a fear of freedom.  That&#8217;s right, a fear of freedom.  I have enlightened employers who don&#8217;t care what tools I use as long as I get the job done.  I&#8217;m grateful for that, so I am constantly looking for tools that meet my requirements from project to project.  I think I&#8217;ve settled on the collection of tools that are working for me on a daily basis.  Thanks to Marc Grabanski for his <a href="http://marcgrabanski.com/article/107/Arsenal-of-Web-Development-Tools">Arsenal of Web Development Tools</a> post for reminding me that it&#8217;s about tools that you don&#8217;t fight with that help you get the job done.
</p>
<p>Here&#8217;s my personal web development stack:</p>
<ul>
<li><a href="http://macromates.com">TextMate</a> &#8212; built in SVN integration, syntax highlighting for all sorts of common web langauges *and* I found a plugin that highlights what files in the file drawer are under version control</li>
<li>Terminal &#8212; still a CLI guy for a lot of tasks, especially for code generation</li>
<li><a href="http://www.mozilla.com">Firefox</a> with <a href="http://www.getfirebug.com/">Firebug</a> &#8212; if there was something as good for Safari I&#8217;d use it instead</li>
<li><a href="http://cocoamysql.sourceforge.net/">CocoaMySQL</a> &#8212; sometimes I use the CLI client, but CocoaMySQL is the tool I use most of the time for MySQL work.   I need to find one that I like as much for Postgres</li>
<li><a href="http://macrabbit.com/cssedit/">CSSEdit</a> &#8212; I was so impressed at how it helped this CSS and layout n00b fix a problem, I paid for a copy</li>
</ul>
<p>
Those 5 tools are the ones I find myself using consistently, day-in and day-out.  But that&#8217;s not to say I don&#8217;t use other things as well.  I use <a href="http://www.vim.org">vim</a> for quick editing of system-level files and for editing on various remote servers.  I do use <a href="http://www.activestate.com/Products/komodo_ide/index.mhtml">Komodo</a> when I really need to do some deep debugging, like I had to do a few weeks ago to try and figure out why an upgrade to the latest version of Code Igniter was failing for a work project (they broke their Active Record implementation  when dealing with Postgres for whatever reason, please prove me wrong if that&#8217;s not true) and it helped me narrow down the problem a lot faster.
</p>
<p>
By being an &#8220;editor waffler&#8221; I have learned enough about a variety of tools that I feel like they are all part of my toolkit.  It&#8217;s like having a large number of tools and making sure that you use the right one for the job.  Okay, enough angst from for now on my choice of editors.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2008/03/21/im-a-editor-waffler-part-ii/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>I&#8217;m An Editor Waffler</title>
		<link>http://www.littlehart.net/atthekeyboard/2008/03/18/im-an-editor-waffler/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2008/03/18/im-an-editor-waffler/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 21:35:10 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Real Life]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/2008/03/18/im-an-editor-waffler/</guid>
		<description><![CDATA[Taken from a discussion with my friend Kevin via IM earlier today (warning, may contain bad language): webslinginfool or try pida which _is_ what you wanted no? Chris Hartjes pida? webslinginfool *sigh* Chris Hartjes not really webslinginfool http://pida.co.uk/files/screenshots/pida_0-5-2_17.png Chris Hartjes if I want that, I can go with Textmate webslinginfool true very true actually , [...]]]></description>
			<content:encoded><![CDATA[<p>Taken from a discussion with my friend <a href="http://lazyweb.ca">Kevin</a> via IM earlier today (warning, may contain bad language):</p>
<pre>
webslinginfool
or try pida
which _is_ what you wanted no?

Chris Hartjes
pida?

webslinginfool
*sigh*

Chris Hartjes
not really

webslinginfool

http://pida.co.uk/files/screenshots/pida_0-5-2_17.png

Chris Hartjes
if I want that, I can go with Textmate

webslinginfool
true
very true
actually , why dont you use textmate?

Chris Hartjes
I do use it
but you get me looking at that vim stuff

webslinginfool
ahh
a man of weak faith
tsk
tsk
tsk

Chris Hartjes
very weak when it comes to editors

webslinginfool
wait, let me halt construction of your monument
i've never met anyone like you actually

Chris Hartjes
in what way

webslinginfool
editor waffling

Chris Hartjes
yeah, that's pretty rare
I dunno why I'm like that

webslinginfool
i've never even  heard of it
you should totally add an "editors"
section to your blog and simply detall
your experiences
oh, and make friends with a bishop

Chris Hartjes
fuck
YOU

webslinginfool
because you'll start a holy war!
</pre>
</p>
<p>
Kevin is a <a href ="http://www.vim.org">vim</a> guy, and is always giving me tips (solicited or not) on how to make my vim experience more enjoyable.  A lot of what he gives me *is* useful.  I probably have a vim setup now that will work okay for me, and I did give vim a two-week audition as my main editor a while back.  However, it didn&#8217;t have the GUI file drawer / file explorer crutch that I&#8217;ve gotten used to.  Besides, I think my arguments about why I use each editor are just lame.</p>
<ul>
<li>Komodo &#8211; got a free license after talking at the Vancover PHP conference last year (please, go to <a href="http://www.openwebvancouver.ca">Open Web Vancouver</a> this year so they can get enough money for me to fly business class <img src='http://www.littlehart.net/atthekeyboard/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ), cool editor, nice debugger&#8230;but I find it slow and unresponsive at times.</li>
<li>TextMate &#8211; one of the first OS-X apps I ever paid for, nice and snappy, great syntax highlighting&#8230;but doesn&#8217;t have the tooltip stuff that Komodo does.  I did find a cool plugin that shows me what files I&#8217;ve modifed in version control right there in the file drawer, but it&#8217;s not an IDE like Komodo is</li>
<li>vim &#8211; very powerful, pretty much does everything I need in an editor&#8230;but all those damn commands to remember, and where&#8217;s my pretty GUI file explorer?!?!</li>
</ul>
<p>
Those are three of the lamest statements I&#8217;ve come across in my talking to people about the editor I use.  Editors are usually a religious issue amongst developers:  you can pry the one they use every day from their cold, dead hands. </p>
<p>
So, maybe it&#8217;s time to grow up as a developer and stop switching between editors.  But can I do it?  Yes, I know you&#8217;re not used to reading my angst-filled posts about what editor to use.  Damnit, why am I so weak on this issue?!?
</p>
<p>
This post is not intended to become a holy war on what editor to use, I&#8217;m just expressing my frustration at my inability to decide what to do here.  If I look at it objectively, it&#8217;s about what tool I would be the most productive in.  The problem is, I can&#8217;t figure that out&#8230;probably because I keep switching all the damn time.
</p>
<p>
Is it fear of commitment?  Fear that I pick the wrong editor for what I need?  I have started branching out into other languages, so my editor needs to support those as well.  All three can do it.  *sigh*
</p>
<p>
Komdo vs. TextMate vs. vim.  Maybe there is no winner, just a loser.  Me.
</p>
<p>
One of the thing the Pragmatic Programmers said (when not trying to get us to buy their books all the time) is to settle on one editor, whatever one that is, and learn ALL it has to offer because you might be surprised what it can do for you.  Flipping back and forth is no way to do that.  More like a delaying tactic from someone who doesn&#8217;t want to HAVE to pick, maybe?
</p>
<p>
Well folks, that day has come.  I must pick and stick with it for once.  I&#8217;ll let you guys know at the end of the week what I picked.  Go back to making fun of me in the other posts, okay?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2008/03/18/im-an-editor-waffler/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>What&#8217;s In Chris&#8217; Brain: November 2007 Edition</title>
		<link>http://www.littlehart.net/atthekeyboard/2007/11/07/whats-in-chris-brain-november-2007-edition/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://www.littlehart.net/atthekeyboard/2007/11/07/whats-in-chris-brain-november-2007-edition/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 21:30:42 +0000</pubDate>
		<dc:creator>Chris Hartjes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Chris' Brain]]></category>
		<category><![CDATA[code ignitor]]></category>
		<category><![CDATA[Komodo]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[XDebug]]></category>

		<guid isPermaLink="false">http://www.littlehart.net/atthekeyboard/2007/11/07/whats-in-chris-brain-november-2007-edition/</guid>
		<description><![CDATA[Why the heck can&#8217;t I find any info on reusable views in Code Ignitor so I can quit duplicating code I see all over the place? Found a cool article on using debugging PHP using XDebug in vim. Sometimes Komodo gets resource hungry and a quick drop into vim usually makes me feel better. Man, [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Why the heck can&#8217;t I find any info on reusable views in Code Ignitor so I can quit duplicating code I see all over the place?</li>
<li>Found a cool article on using <a href="http://tech.blog.box.net/2007/06/20/how-to-debug-php-with-vim-and-xdebug-on-linux/">debugging PHP using XDebug in vim</a>.  Sometimes Komodo gets resource hungry and a quick drop into vim usually makes me feel better.</li>
<li>Man, how much time should someone spend refactoring code they&#8217;ve inherited?  Is it really true that people think everyone else&#8217;s code is ugly and theirs is a paragon a beauty?</li>
<li>Working on the script for a <a href="http://devzone.zend.com/tag/PHP_Abstract">podcast</a> entitled &#8216;Coding Standards Only Matter When Things Go Wrong&#8217;</li>
<li>Trying to figure out if I can fit in an opportunity to teach some online courses into my current employment</li>
<li>Rallyhat (my sporting road trip planning site) is actually in the &#8216;designing screens on paper&#8217; stage.  Maybe I will scan some notes for showing people in another post</li>
<li>Jeff Griffiths from <a href="http://www.activestate.com">ActiveState</a> (Hi Jeff!) emailed me to ask me to provide some feedback on using CakePHP with <a href="http://community.activestate.com/products/Komodo">Komodo</a>.  If anyone else is building CakePHP apps with Komodo, let me know how you&#8217;re making out.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.littlehart.net/atthekeyboard/2007/11/07/whats-in-chris-brain-november-2007-edition/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
