<?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>jonlee.ca &#187; Efficiency</title>
	<atom:link href="http://www.jonlee.ca/category/efficiency/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jonlee.ca</link>
	<description>eat\ sleep\ code</description>
	<lastBuildDate>Wed, 21 Dec 2011 18:44:00 +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>Review: Dmailer Backup and Dmailer Online</title>
		<link>http://www.jonlee.ca/review-dmailer-backup-and-dmailer-online/</link>
		<comments>http://www.jonlee.ca/review-dmailer-backup-and-dmailer-online/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 12:09:05 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Sponsored]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[dmailer]]></category>
		<category><![CDATA[mozy]]></category>
		<category><![CDATA[portable]]></category>
		<category><![CDATA[portable-apps]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/?p=1190</guid>
		<description><![CDATA[On multiple occasions, I&#8217;ve stressed the importance of backing up your files and documents. I&#8217;ve also reviewed Mozy as an online backup solution. However, there&#8217;s a new competitor in town called Dmailer backup and it gives Mozy a good run for its money. Well, it&#8217;s not exactly new as the company has been around since [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dmailer.com"><img class="alignright size-full wp-image-1193" title="Dmailer Logo" src="http://www.jonlee.ca/wp-content/uploads/2010/07/dmailer-logo.jpg" alt="Dmailer Logo" width="170" height="70" /></a></p>
<p>On multiple occasions, I&#8217;ve stressed the <a href="http://www.jonlee.ca/backup-data-online-the-smart-way/">importance of backing up your files and documents</a>.  I&#8217;ve also <a href="http://www.jonlee.ca/review-backup-data-online-with-mozy/">reviewed Mozy</a> as an online backup solution.  However, there&#8217;s a new competitor in town called Dmailer backup and it gives Mozy a good run for its money.  Well, it&#8217;s not exactly new as the company has been around since 2001 but I&#8217;ve just recently found out about it.</p>
<p><strong>What is Dmailer Backup?</strong><strong><br />
</strong><strong> </strong><a href="http://www.dmailer.com/dmailer-backup.html">Dmailer Backup</a> is a piece of software that lets users automate the backup process, providing continuous incremental backups for specified files.  Incremental backups means that you can &#8216;go back in time&#8217; to previous versions of a file, not just the latest one.  This is especially useful for anyone that does any sort of programming as debugging is made tons easier by comparing old versions of files to current ones. Now Dmailer Backup itself is used to manage backups, but you still need to provide a destination to backup to &#8212; for example, an external hard drive or usb key.</p>
<p>A handy feature is to select only specific types of files to backup.  For example, for most people, the important files that require backing up are .doc and .txt files.  For a web developer, one could simply add .php, .html, .css to the mix.  This avoids wasting valuable backup space on those large HD movies (unless you wanted to of course).</p>
<p>Also, Dmailer Backup is a single executable file that does not require installation and works perfectly with U3 usb devices, perfect for that <a href="http://www.jonlee.ca/how-to-free-portable-web-development-on-a-usb-drive/">portable web development usb key</a>.</p>
<p><strong>What is Dmailer Online?<br />
</strong><a href="http://www.dmailer.com/dmailer-online.html">Dmailer Online</a> is essentially an online storage space that can be utilized by Dmailer Backup.  Upon sign-up, you are provided with 2GB of online storage.  Rest assured, the storage is both password protected and encrypted with one of the strongest encryption algorithms available, 448-bit Blowfish.  Like some other backup services, the first 2GB is free.  In fact, Dmailer were the first ones to offer 2GB for free, setting the benchmark for backup services everywhere.  Although this is enough for most people, those that have a lot of multimedia to back up may prefer to pay $35 per year for 30GB or $70 per year for unlimited storage. That works out to less than $3 and $6 per month respectively!</p>
<p><a href="http://www.jonlee.ca/wp-content/uploads/2010/07/dmailer-online-web.png"><img class="alignright size-medium wp-image-1194" title="Dmailer Online Web Interface" src="http://www.jonlee.ca/wp-content/uploads/2010/07/dmailer-online-web-300x126.png" alt="Dmailer Online Web Interface" width="300" height="126" /></a></p>
<p>The great feature about Dmailer Online is that the files can be accessed simply from a web browser, so you can access your backups from any computer without having to install any software first.  The web user interface for file access is a search engine that&#8217;s intuitive, fast, and easy to use.</p>
<p><strong>Mac Compatibility</strong><br />
There aren&#8217;t many online backup solutions out there that support platforms other than Windows.  Cross-platform support is greatly appreciated by myself and other Mac users. There&#8217;s no Linux support yet, but I&#8217;ve been told this is a feature in the works, so Linux users can feel included soon.</p>
<p><strong>Mozy vs Dmailer<br />
</strong>There are a few similarities between Mozy and Dmailer.  Both offer 2GB of online backup storage for free, both are automated and encrypted, and both run on Mac. Unlike Mozy, Dmailer are the pioneers of &#8220;&#8216;dual backup&#8221;, which can provide you with an offline backup solution in addition to an online one, all from a single interface.  Online backups are safe from things like break-ins and local disasters, but offline backups are easier to access and quicker.  If you accidentally deleted a large file that you want to recover, it may take a while to download the backup from an online server, so it is always handy to have an offline backup as well.  So I think Dmailer provides a good integration of both types for maximum ease of mind.</p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=1190&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/review-dmailer-backup-and-dmailer-online/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Review: Hacking Vim 7.2</title>
		<link>http://www.jonlee.ca/review-hacking-vim-7-2/</link>
		<comments>http://www.jonlee.ca/review-hacking-vim-7-2/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 12:55:43 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/?p=1177</guid>
		<description><![CDATA[A couple years ago, I wrote a brief review of the book Hacking Vim by Kim Schulz. The publisher, Packt publishing seemed to like my review so they sent me the second edition of the book, Hacking Vim 7.2 to review as well. The latest edition of the book, released just earlier this year, has [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/1849510504?ie=UTF8&amp;tag=jonleedotseee-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1849510504"><img class="alignright size-full wp-image-1179" title="Hacking Vim 7.2" src="http://www.jonlee.ca/wp-content/uploads/2010/06/hacking-vim-72.jpg" alt="Hacking Vim 7.2" width="130" height="160" /></a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=jonleedotseee-20&amp;l=as2&amp;o=1&amp;a=1849510504" border="0" alt="" width="1" height="1" /></p>
<p>A couple years ago, I wrote a <a href="http://www.jonlee.ca/hacking-vim-the-ultimate-vimrc/">brief review of the book Hacking Vim</a> by Kim Schulz. The publisher, <a href="https://www.packtpub.com/">Packt publishing</a> seemed to like my review so they sent me the second edition of the book, <a href="http://www.amazon.com/gp/product/1849510504?ie=UTF8&amp;tag=jonleedotseee-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1849510504">Hacking Vim 7.2</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=jonleedotseee-20&amp;l=as2&amp;o=1&amp;a=1849510504" border="0" alt="" width="1" height="1" /> to review as well.</p>
<p>The latest edition of the book, released just earlier this year, has been revised and expanded to address some new features of Vim 7.2.  The good thing about buying such a book is that Vim releases are infrequent and always backwards compatible.  There&#8217;s very little chance of this book becoming redundant and outdated, unlike that Visual Basic 4 bible you have sitting on your shelf.</p>
<p><strong>What is Vim?</strong><br />
For the uninitiated, <a href="http://www.vim.org/">Vim</a> is an open source editor that has been used by programmers and developers for many years.  Although it doesn&#8217;t look fancy, it is actually one of the most powerful pieces of software out there in terms of customizability and flexibility. However, unlike your basic text editor, it is difficulty to just jump in and start using it as there is a bit of a learning curve.  This book is not for beginners, as it assumes an understanding of the basic editing modes of Vim.  If you&#8217;ve never used Vim before, the book has a few suggestions on getting up to speed &#8212; most noticeably, by going through the vimtutor program that comes with most installations of Vim.</p>
<p><strong>Topics Covered</strong><br />
The first part of the book gives a fairly complete history of the Vim lineage, from the original UNIX based ed editor to Vi, to it&#8217;s derivatives, and finally to the Vim we now know and love.  Then the book dives right into basic personalization tweaks with an overview of the different configuration files &#8212; what they do and where they go.  I consider these simple tweaks essential for any semi-serious user of Vim to create their own personalized .vimrc file.</p>
<p>For a lot of readers, the first two chapters may already been enough of a customization but the real meat of the book lies in the latter chapters, to help moderate users become power users with navigation tweaks, recipes to help with code completion and project management.  If one follows all of these suggestions, Vim can turn into a full-fledged IDE.</p>
<p>With the sheer number of recipes and scripts, I would suggest implementing them a little at a time in order to get used to using them.  Going through all the changes at once may be a bit overwhelming.</p>
<p>The last few chapters of the book teach take Vim customization to the next level by giving a tutorial on how to write your own scripts and configuration files.  Most may not need to go into this much detail but if there is functionality that you can&#8217;t find a script for, then writing your own may be the only choice.  The good news is Vim scripting is not too difficult, especially with the tutorial provided in this book, which is one of the reasons there is such a large community supporting it.</p>
<p><strong>Recommendation</strong><br />
If you&#8217;re a user of Vim and would like to work more effectively and become a Vim guru, this book is definitely for you.  If you&#8217;re already a Vim poweruser but feel there is some functionality lacking, this book is a great place to learn how to write your own Vim scripts to contribute to the Vim community.</p>
<p>If you&#8217;ve never used Vim before but would like to start using it, this book may not be your first choice; you may wish to try out Vim for a bit first to see if you actually enjoy the style of editing, and if so then pick up this book to go to the next level.</p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=1177&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/review-hacking-vim-7-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An Energy Efficient HTPC Build</title>
		<link>http://www.jonlee.ca/an-energy-efficient-htpc-build/</link>
		<comments>http://www.jonlee.ca/an-energy-efficient-htpc-build/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 22:02:00 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[AMD]]></category>
		<category><![CDATA[ATI]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[energy efficient]]></category>
		<category><![CDATA[green]]></category>
		<category><![CDATA[HTPC]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/?p=1006</guid>
		<description><![CDATA[I recently built a Home Theatre PC (HTPC) to drive my new LCD TV.  The benefit of using a HTPC is that it can replace many components of a traditional home theatre system while adding the benefits of having a full fledged computer system in your living room. I plan on keeping this system running [...]]]></description>
			<content:encoded><![CDATA[<p>I recently built a Home Theatre PC (HTPC) to drive my new LCD TV.  The benefit of using a HTPC is that it can replace many components of a traditional home theatre system while adding the benefits of having a full fledged computer system in your living room.</p>
<p>I plan on keeping this system running 24/7 so it makes sense to make it as energy efficient as possible.</p>
<p>Here&#8217;s a quick list of the components used:</p>
<ul>
<li><strong>Processor</strong>: AMD Athlon II X2 250</li>
<li><strong>Motherboard</strong>: Gigabyte MA-785GMT-UD2H</li>
<li><strong>Memory</strong>: Corsair XMS3 2x2GB DDR3 Dual Channel Kit</li>
<li><strong>Hard drive</strong>: 1TB Seagate Baracuda 7200.12</li>
<li><strong>Heatsink</strong>: Scythe Ninja Mini Rev. B with Arctic Silver 5 Thermal Paste</li>
<li><strong>Optical drive</strong>: Samsung DVD-RW</li>
<li><strong>Case</strong>: Antec NSK2480</li>
<li><strong>Speakers</strong>: Logitech Z-Cinema Advanced Surround Sound System w/Media Center remote</li>
</ul>
<p><strong>Motherboard</strong><br />
<a href="http://www.jonlee.ca/wp-content/uploads/2009/08/energy-efficient-htpc.jpg"><img class="alignright size-medium wp-image-1007" title="Energy Efficient HTPC Build" src="http://www.jonlee.ca/wp-content/uploads/2009/08/energy-efficient-htpc-225x300.jpg" alt="Energy Efficient HTPC Build" width="225" height="300" /></a>You might notice that I don&#8217;t have a graphics card listed, which may seem strange for a PC that&#8217;s built for high definition video playback.  The reason is because I&#8217;m using AMD&#8217;s new 785g chipset that was just released earlier this month.  This features an integrated Radeon HD 4200 GPU which is capable of smoothly decoding 1080p video.  This 785G chipset really has everything you need for a HTPC and is highly recommended in reviews by <a href="http://www.tomshardware.com/reviews/amd-785g-chipset,2381.html">TomsHardware</a> and <a href="http://anandtech.com/mb/showdoc.aspx?i=3615">AnandTech</a>.</p>
<p><strong>CPU</strong><br />
The AMD Athlon II X2 250 is one of the best value CPUs out there.  One can be had for about $70-$80 while providing two cores at 3.0ghz.  The best thing about it is that it is rated at 65w, making it one of the more energy efficient CPUs.  I could have opted for the 5050e which is only rated at 45w but I figure the extra processing power may come in handy for 1080p decoding.</p>
<p><strong>Case and Heatsink</strong><br />
For the rest of the system, I decided to keep it as quiet as possible, opting for a passive heatsink cooled only by the case fans on the NSK2480 chassis.  The Antec NSK2480 case was designed by Antec in conjunction with SilentPCReview to give it the best airflow.  You can <a href="http://www.silentpcreview.com/article591-page1.html">read a full review of the case here</a> but let me just say, it is just beautiful and the attention to detail really sets it apart from other cases.  It&#8217;s also fairly inexpensive at around $100.</p>
<p>The case comes with a 380W power supply that&#8217;s 80+ certified meaning high energy efficiency.  Although the PSU isn&#8217;t that large, the low energy footprint of the individual components means 380W is already plenty.</p>
<p><strong>Problems</strong><br />
The RAM that I got came with their own heatsinks which adds to the size of the modules.  This increased size coupled with the fairly large Scythe Mini Ninja CPU heatsink meant that the first two DIMM slots were not usable.  Luckily, Gigabyte arranged the DIMM slots so that the dual channel pairs were together.  As a result, I could put my two sticks of RAM into the 3rd and 4th DIMM slot while maintaining dual channel capability.  This means no more memory expansion though unless I get a smaller heat sink or memory modules without heat spreaders.</p>
<p>I&#8217;m also still missing a TV tuner to receive Over-The-Air HD transmissions.  I&#8217;m waiting for a nice one to go on sale.</p>
<p><strong>Windows 7<br />
</strong>For my operating system, I&#8217;m using a release candidate of Windows 7 which is simply amazing for a HTPC setup.  The Windows 7 media center is probably the best Microsoft product I&#8217;ve used so far and I haven&#8217;t found anything that really compares.  It&#8217;s highly moddable and coupled with the media center remote from the Logitech speakers, it makes for a very nice HTPC experience.  I recommend using the free <a href="http://www.mediabrowser.tv">media browser</a> extension for extra eye candy and features.</p>
<p><strong>Total Cost</strong><br />
I already had some of the parts so I only had to spend about $500 on this system.  Yes you can <a href="http://www.jonlee.ca/how-to-build-an-affordable-quad-core-desktop-for-500/">build a quad core system for $500</a>, but you can&#8217;t get this type of HTPC experience whilst staying green!  All the components together, I&#8217;d estimate the final cost to be around $700.  If you wait for deals and bargains, you might be able to get it for less but many of these components are already fairly competitively priced.</p>
<p>Do you have an HTPC setup? What components did you end up using? Let me know in the comments!</p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=1006&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/an-energy-efficient-htpc-build/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>34 Ways to Speed Up Your Website</title>
		<link>http://www.jonlee.ca/34-ways-to-speed-up-your-website/</link>
		<comments>http://www.jonlee.ca/34-ways-to-speed-up-your-website/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 15:44:11 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[speed-up-your-blog]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/?p=948</guid>
		<description><![CDATA[Yahoo! Developer Network has posted a great article on 34 ways to speed up your website.  They divide these 34 methods into 7 categories: Content Server Cookies CSS Javascript Images Mobile Some of the practices are a bit advanced and hard to implement for most people.  For example, setting up a content delivery network is [...]]]></description>
			<content:encoded><![CDATA[<p>Yahoo! Developer Network has posted a <a href="http://developer.yahoo.com/performance/rules.html">great article on 34 ways to speed up your website</a>.  They divide these 34 methods into 7 categories:</p>
<ul>
<li>Content</li>
<li>Server</li>
<li>Cookies</li>
<li>CSS</li>
<li>Javascript</li>
<li>Images</li>
<li>Mobile</li>
</ul>
<p>Some of the practices are a bit advanced and hard to implement for most people.  For example, setting up a content delivery network is by no means a trivial task and is probably unnecessary unless your website is serving tens of thousands of visitors per day.</p>
<p>Other tips are quite simple and are things that any seasoned web developer should already be doing, i.e. putting stylesheets at the top of the page and optimizing images.</p>
<p>This is a great article to keep bookmarked if you&#8217;re starting a new project or if you&#8217;re looking to improve an existing one!</p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=948&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/34-ways-to-speed-up-your-website/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Top Five Books Every Programmer Must Read</title>
		<link>http://www.jonlee.ca/top-five-books-every-programmer-must-read/</link>
		<comments>http://www.jonlee.ca/top-five-books-every-programmer-must-read/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 14:38:30 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/?p=888</guid>
		<description><![CDATA[With the new year just around the corner, here are a few books you may want to consider reading as part of your New Year&#8217;s resolutions.  I&#8217;ve read/own these and can fully recommend them from personal experience. The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt, David Thomas For anyone that spends a significant [...]]]></description>
			<content:encoded><![CDATA[<p>With the new year just around the corner, here are a few books you may want to consider reading as part of your New Year&#8217;s resolutions.  I&#8217;ve read/own these and can fully recommend them from personal experience.</p>
<p><a href="http://www.amazon.com/gp/redirect.html%3FASIN=020161622X%26tag=jonleedotseee-20%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/020161622X%253FSubscriptionId=1N9AHEAQ2F6SVD97BE02"><img class="size-medium wp-image-889 alignright" title="The Pragmatic Programmer" src="http://www.jonlee.ca/wp-content/uploads/2008/12/the_pragmatic_programmer-238x300.jpg" alt="The Pragmatic Programmer" width="133" height="168" /></a><a href="http://www.amazon.com/gp/redirect.html%3FASIN=020161622X%26tag=jonleedotseee-20%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/020161622X%253FSubscriptionId=1N9AHEAQ2F6SVD97BE02">The Pragmatic Programmer: From Journeyman to Master</a><em> by Andrew Hunt, David Thomas</em></p>
<p>For anyone that spends a significant amount of time coding, this book is definitely a must have.  It will give you a new way of looking at the way you design and code, essentially turning it into an artform instead of just a routine task.  Being pragmatic means being practical and efficient.  Spend a few hours skimming through this book and you&#8217;ll save hundreds of hours later on. You can <a href="http://www.jonlee.ca/book-review-the-pragmatic-programmer-from-journeyman-to-master/">read my book review here</a>.</p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FBeautiful-Code-Leading-Programmers-Practice%2Fdp%2F0596510047&amp;tag=jonleedotseee-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Beautiful Code</a><br />
Beautiful Code is a collection of short case studies written by lead programmers from around the world.  Anyone that likes learning by example will love this book.  What better way to learn than from other people&#8217;s mistakes and experiences?</p>
<p><a href="http://www.amazon.com/gp/redirect.html%3FASIN=0735619670%26tag=jonleedotseee-20%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0735619670%253FSubscriptionId=1N9AHEAQ2F6SVD97BE02">C</a><a href="http://www.amazon.com/gp/redirect.html%3FASIN=0735619670%26tag=jonleedotseee-20%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0735619670%253FSubscriptionId=1N9AHEAQ2F6SVD97BE02"><img class="alignright size-medium wp-image-893" title="Code Complete 2nd Edition" src="http://www.jonlee.ca/wp-content/uploads/2008/12/code_complete-245x300.jpg" alt="Code Complete 2nd Edition" width="138" height="168" /></a><a href="http://www.amazon.com/gp/redirect.html%3FASIN=0735619670%26tag=jonleedotseee-20%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0735619670%253FSubscriptionId=1N9AHEAQ2F6SVD97BE02">ode Complete</a><em> by Steve McConnell</em><br />
This book is similar to Pragmatic Programmer in that it talks about a lot of the same stuff.  No harm in reading both though since they offer a slightly different slice of the same pie.  I strongly believe that computer science courses should teach these concepts to all programmers so that programming can become anyone can love doing.</p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FRegular-Expression-Pocket-Reference-Expressions%2Fdp%2F0596514271%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1230673080%26sr%3D1-2&amp;tag=jonleedotseee-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Regular Expression Pocket Reference</a><br />
This one isn&#8217;t just a must-read, it&#8217;s a must have! Regular expressions are a mixed bag for programmers.  Most will find that they are extremely useful when needed and can make a complex problem very elegant.  However, most will also find that they don&#8217;t practice them often enough to fully master them.  This is why I find this pocket reference to helpful.  It includes examples in all of the popular languages APIs (Java, PHP, .NET and C#, Python, vi, JavaScript, Ruby etc.)</p>
<p><a href="http://www.ibiblio.org/harris/500milemail.html">The Case of the 500 Mile E-mail</a><br />
This last must-read isn&#8217;t a book but rather a very funny and interesting story of a campus E-mail administrator who comes across an impossible problem.  I won&#8217;t ruin any more of it, but definitely read it for a good laugh!</p>
<p>What other good books (not necessarily computer related) would you recommend as a must-read for a programmer?</p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=888&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/top-five-books-every-programmer-must-read/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Review: Swift To-Do List Online</title>
		<link>http://www.jonlee.ca/review-swift-to-do-list-online/</link>
		<comments>http://www.jonlee.ca/review-swift-to-do-list-online/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 13:46:47 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Sponsored]]></category>
		<category><![CDATA[getting-things-done]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[to do list]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/?p=874</guid>
		<description><![CDATA[Regular readers of my blog will know that I am a proud user of the Getting Things Done system and love using a To-Do list to manage my tasks.  So when I was asked to write a review of Swift To-Do List, I was pretty excited to try it out and see how it compares [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.swifttodolist.com"><img class="size-full wp-image-876 alignright" style="float: right;" title="Swift To Do List Logo" src="http://www.jonlee.ca/wp-content/uploads/2008/11/swift-to-do-list-logo.png" alt="Swift To Do List Logo" width="298" height="51" /></a>Regular readers of my blog will know that I am a proud user of the <a href="http://www.jonlee.ca/getting-things-done/">Getting Things Done</a> system and love using a To-Do list to manage my tasks.  So when I was asked to write a review of Swift To-Do List, I was pretty excited to try it out and see how it compares with my current pen &amp; paper method.</p>
<p><a href="http://www.swifttodolist.com/">Swift To-Do List Online</a> is a web application created by <a href="http://www.dextronet.com/">Dextronet</a>.  Although called a To-Do list, it is in fact much more than that.  Being an online application, the biggest reason for using it is that tasks can be accessed and modified whenever you have access to the Internet.  Luckily for me, I&#8217;m almost always in front of a computer so it is very convenient.  It might be interesting to get input from somebody that doesn&#8217;t always have access to the Internet to get their thoughts on this tool.</p>
<p><strong>Features</strong><br />
With regards to shear number of features, this is by far the most I&#8217;ve seen on <strong>any</strong> to do list software.  Here&#8217;s some of the more notable ones:</p>
<ul>
<li>Hierarchical tree structure to organize tasks</li>
<li>Ability to set due dates and use built-in reminders for tasks</li>
<li>Import lists from XML format</li>
<li>Export lists to HTML or CSV format</li>
<li>User management for collaboration and task allocation</li>
<li>Add notes/files/media to individual tasks</li>
</ul>
<p>That last feature is a huge one in my opinion.  With each task you have to do, you can associate formatted notes, files, folders and links to it.  A lot of times the task itself can be described in one line but all of the extra things that go with the task need to be stored somewhere else.  By allowing users to add notes and links directly to a task, it really helps with organization.</p>
<p>For example, I might have a task say &#8220;Print this document at the office&#8221; and then simply attach the document along with the task instead of having to save it to a USB key or e-mailing it to myself.  Not a big deal, but definitely helpful!</p>
<p>A lot of people (myself included) like to keep things simple but it is important to remember that just because all of these features are offered, doesn&#8217;t mean you have to use it!  You can make Swift To-Do List as simple or as complex as you need it to be.</p>
<p><strong>User Interface<br />
</strong></p>
<p><a href="http://www.jonlee.ca/wp-content/uploads/2008/11/swift-to-do-list-screenshot.png"><img class="alignnone size-medium wp-image-875 alignright" style="float: right;" title="Swift To-do List Screenshot" src="http://www.jonlee.ca/wp-content/uploads/2008/11/swift-to-do-list-screenshot-300x216.png" alt="Swift To-do List Screenshot" width="300" height="216" /></a></p>
<p>In true Web 2.0 fashion, Swift To-Do List Online operates exactly like a desktop application.  The UI reminds me of Microsoft Outlook with its 3 panel view.  The buttons (very nice icons by the way) are large and intuitively easy to use.</p>
<p>From a web developer perspective, I can really appreciate the detail and effort put into making the user interface usable and free of bugs.  Since I&#8217;ve done my share of Web UI programming before, I spent a few minutes trying to &#8220;break&#8221; the UI with common oversights but it was nice to see that it was all accounted for.</p>
<p>In my opinion, a couple things that could be added to improve the experience are:</p>
<ul>
<li><strong>Keyboard shortcuts</strong> &#8211; I love keyboard shortcuts</li>
<li><strong>iPhone App</strong> &#8211; This would open the application to a huge audience that wants a featureful to-do list application accessible anytime anywhere.</li>
</ul>
<p><strong>Price<br />
</strong>With a web application of this caliber, it isn&#8217;t a surprise to find out that it isn&#8217;t free.  The online version comes at a monthly cost in 4 different plans ranging from $9.95 to $225.95 a month.  The difference between the versions are the number of users allowed (from 1 to unlimited) and the amount of storage given to store files associated with tasks (from 100MB to 50GB).</p>
<p>For most people, the most basic personal plan should be enough.  The higher tier plans are clearly geared towards businesses that want to manage large projects with many contributors.  I can see it being extremely helpful for a manager to assign tasks and keep track of project progress through this web application, especially if the office is decentralized.</p>
<p>They do offer a <strong>free 30-day trial</strong> so you can try it to see if you like it.  Or check out their <a href="http://demo.swifttodolist.com/">live demo</a> to see if the features suit your needs!</p>
<p><strong>Conclusion</strong><br />
Swift To-Do List is one of the most complete and feature packed <a href="http://www.swifttodolist.com">online to-do list software</a> I have come across.  I didn&#8217;t try using their collaborative features yet since my To-Do list is only for personal use but I can see many possibilities for it.  The only thing I can think of to improve it are the addition of keyboard shortcuts and perhaps the development of an iPhone application to supplement the site.</p>
<p>If you want something for your desktop, Dextronet also offers an award winning <a href="http://www.dextronet.com/swift-to-do-list.php">to-do list software</a> for Windows, which is what this online version is based off of.</p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=874&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/review-swift-to-do-list-online/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>How-to: Preload Images for Web Applications</title>
		<link>http://www.jonlee.ca/how-to-preload-images-for-web-applications/</link>
		<comments>http://www.jonlee.ca/how-to-preload-images-for-web-applications/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 12:00:53 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[preload]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/?p=857</guid>
		<description><![CDATA[With the advent of AJAX, JavaScript heavy scripts and applications are becoming more and more popular on the web.  As is the nature of AJAX applications, many of these will pull/generate data dynamically.  With images this can cause minor performance lag if an image needs to be loaded.  Another situation where image lag can be [...]]]></description>
			<content:encoded><![CDATA[<p>With the advent of AJAX, JavaScript heavy scripts and applications are becoming more and more popular on the web.  As is the nature of AJAX applications, many of these will pull/generate data dynamically.  With images this can cause minor performance lag if an image needs to be loaded.  Another situation where image lag can be a hinderance is a simple <em>onmouseover</em> image changes common on menus and navigation bars.</p>
<p>Since the early days of the Internet, there have been many ways of preloading images to prevent this lag.  By loading the image into the browser&#8217;s cache, there is no need to refetch an image over the Internet.  Throughout the years, each new method poses more advantageous and simpler than previous methods.  I&#8217;ll discuss three ways of preloading images, starting from the earliest and most cumbersome to the most recent and efficient.</p>
<p><strong>The Pixel Image<br />
</strong>Perhaps the earliest form of preloading images is the pixel image.  By embedding many images on a page (usually at the end of the page) and then forcing the size to be 1 by 1 pixel, you essentially still load the image without displaying much.  Setting a border doesn&#8217;t matter too much but doesn&#8217;t hurt.</p>
<blockquote><p>&lt;img src=&#8221;img/mypic.jpg&#8221; width=&#8221;1&#8243; height=&#8221;1&#8243; border=&#8221;0&#8243; /&gt;<br />
&lt;img src=&#8221;img/mypic2.jpg&#8221; width=&#8221;1&#8243; height=&#8221;1&#8243; border=&#8221;0&#8243; /&gt;<br />
&lt;img src=&#8221;img/aREALLYbigpic.jpg&#8221; width=&#8221;1&#8243; height=&#8221;1&#8243; border=&#8221;0&#8243; /&gt;</p></blockquote>
<p>Setting the size to 0 by 0 pixels works in some browsers as well and is a better solution.</p>
<p><strong>Create an Image in JavaScript<br />
</strong>With two simple lines of JavaScript, you can create an image and load it up without having it actually display on a page.</p>
<blockquote><p>mypic = new Image();<br />
mypic.src = &#8220;img/mypic.jpg&#8221;;<br />
mypic2 = new Image();<br />
mypic2.src = &#8220;img/mypic2.jpg&#8221;;<br />
mypic3 = new Image();<br />
mypic3.src = &#8220;img/aREALLYbigpic.jpg&#8221;;</p></blockquote>
<p>Hide Images with CSS<br />
Using CSS, you can choose to not display certain elements with the <em>display</em> property.  You can either make each individual image you wish to preload not display or you may make an entire section of images not display.</p>
<p>In your CSS file,</p>
<blockquote><p>#preloadarea { display:none; }</p></blockquote>
<p>In your HTML,</p>
<blockquote><p>&lt;div id=&#8221;preloadarea&#8221;&gt;<br />
&lt;img src=&#8221;img/mypic.jpg&#8221; /&gt;<br />
&lt;img src=&#8221;img/mysecondpic.jpg&#8221; /&gt;<br />
&lt;img src=&#8221;img/aREALLYbigpic.jpg&#8221; /&gt;<br />
&lt;/div&gt;</p></blockquote>
<p>Or you can set each image to not display individually by creating a CSS class,</p>
<blockquote><p>.preloadimage { display:none; }</p></blockquote>
<p>and then assigning that class to each image you wish to preload,</p>
<blockquote><p>&lt;img src=&#8221;img/mypic.jpg&#8221; class=&#8221;preloadimage&#8221; /&gt;<br />
&lt;img src=&#8221;img/mypic2.jpg&#8221; class=&#8221;preloadimage&#8221; /&gt;<br />
&lt;img src=&#8221;img/aREALLYbigpic.jpg&#8221; class=&#8221;preloadimage&#8221; /&gt;</p></blockquote>
<p><strong>Which way is best?</strong><br />
Of the ways above, the second and third are much more elegant than the first.  Also, keeping in mind that there is a small minority with JavaScript disabled, the third way is perhaps the most versatile.</p>
<p>You may ask yourself, why would I care about preloading images to user without JavaScript enabled?  Well, preloading images also help if you know what page the user will load next.  It&#8217;ll make their web experience more seamless and more enjoyable!</p>
<p><strong>Too Many Images to Preload?<br />
</strong>If you have too many images to preload (especially many small images), consider loading a single large image containing all the smaller images stiched together and then use CSS to position the single large image with the appropriate offset to display only the portion of the image you want.</p>
<p>Known commonly as CSS Sprites, it&#8217;ll make a good topic for the next How-to <img src='http://www.jonlee.ca/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=857&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/how-to-preload-images-for-web-applications/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Open Firefox Nested Within Firefox</title>
		<link>http://www.jonlee.ca/open-firefox-nested-within-firefox/</link>
		<comments>http://www.jonlee.ca/open-firefox-nested-within-firefox/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 16:29:17 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/?p=841</guid>
		<description><![CDATA[Too many tabs?  Here is a neat little trick/hack I discovered that will let you open a Firefox window nested within a tab in an existing Firefox window. The Trick The trick is simple, simply enter this in your address bar chrome://browser/content/browser.xul For added convenience, you can bookmark this link and place it in your [...]]]></description>
			<content:encoded><![CDATA[<p>Too many tabs?  Here is a neat little trick/hack I discovered that will let you open a Firefox window nested within a tab in an existing Firefox window.</p>
<p><strong>The Trick</strong></p>
<p>The trick is simple, simply enter this in your address bar</p>
<blockquote><p>chrome://browser/content/browser.xul</p></blockquote>
<p><a href="http://www.jonlee.ca/wp-content/uploads/2008/06/firefox-inside-firefox.png"><img class="alignnone size-medium wp-image-842 alignright" style="float: right;" title="Firefox nested inside Firefox" src="http://www.jonlee.ca/wp-content/uploads/2008/06/firefox-inside-firefox-300x226.png" alt="Firefox nested inside Firefox" width="300" height="226" /></a>For added convenience, you can bookmark this link and place it in your bookmark toolbar for quick access. This works because the Mozilla Gecko engine renders the entire UI (not just the webpage) in the same way.  So the UI is really just another thing for Firefox to render.</p>
<p><strong>Advantages</strong></p>
<ul>
<li>This can really help you organize your tabs by grouping related tabs together in a single tab.</li>
<li>You can hide an entire browser session a few levels deep and if your boss walks by, simply switch to another tab at the top level.  Your tabs will be hidden and the only thing that will be displayed in the parent tab are the words &#8220;Mozilla Firefox&#8221; (most of the time).</li>
<li>Prank/confuse co-workers</li>
</ul>
<p><strong>Disadvantages</strong></p>
<ul>
<li>Having recursive Firefox windows open will reduce screen estate &#8212; especially if you have many toolbar add-ons.</li>
<li>Some shortcuts won&#8217;t work as expected.  For example, double clicking on the tab bar to open a new tab in a sub-window will open new tabs in the root (highest parent) window as well.</li>
<li>There are a few other quirks.  The address bar doesn&#8217;t update when you switch sub-tabs.  And the title in the tab gets updated weirdly.</li>
<li>Restoring a closed tab containing sub windows will (most often) not restore the tabs previously open.</li>
</ul>
<p>This should work on older versions of Firefox but I only tested it on <a href="http://www.jonlee.ca/download-and-support-firefox-3/">Firefox 3</a>. Let me know if it works in Firefox 1.x or 2.x</p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=841&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/open-firefox-nested-within-firefox/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Review: Omnistar Mailer</title>
		<link>http://www.jonlee.ca/review-omnistar-mailer/</link>
		<comments>http://www.jonlee.ca/review-omnistar-mailer/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 16:03:01 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Sponsored]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[omnistar mailer]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/review-omnistar-mailer/</guid>
		<description><![CDATA[When I was asked by Omnistar to write a review about their software, Omnistar Mailer, I felt it would be a good opportunity to stress the importance of email marketing. Email marketing has been an vital part of many successful business over the last decade. I find that people new to the industry tend to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jonlee.ca/wp-content/uploads/2008/04/omnistar-mailer-logo.gif" alt="Omnistar Logo" align="right" />When I was asked by <a href="http://www.omnistaretools.com/">Omnistar</a> to write a review about their software, Omnistar Mailer, I felt it would be a good opportunity to stress <em>the importance of email marketing</em>.  Email marketing has been an vital part of many successful business over the last decade.  I find that people new to the industry tend to shy away from this aspect of marketing and instead decide to focus on forms of Web 2.0 and <a href="http://www.jonlee.ca/clever-and-creative-outdoor-ads/">viral marketing</a>.  Good old fashioned e-mail and newsletters has been proven to work over the years and should not be neglected!  You can try maintaining a list of e-mails of your customers but you will soon realize that you need a more elegant and powerful solution.  That&#8217;s where e-mail marketing software like Omnistar Mailer comes in.</p>
<p><strong>Overview</strong><br />
<a href="http://www.omnistarmailer.com">Omnistar Mailer</a> is a <a href="http://www.omnistarmailer.com">web based email marketing software</a> that lets you easily manage and deploy newsletters and e-mail campaigns.  Omnistar Mailer is built using PHP/MySQL and can be controlled entirely from the web.  You can maintain lists of customers and create multiple e-mail campaigns to reach these customers.  You can even create surveys that your customers can use to give feedback!</p>
<p><a href="http://www.jonlee.ca/wp-content/uploads/2008/04/omnistar-mailer-admin.gif" title="Omnistar Mailer Admin"><img src="http://www.jonlee.ca/wp-content/uploads/2008/04/omnistar-mailer-admin.thumbnail.gif" alt="Omnistar Mailer Admin" align="right" /></a><strong>Ease of Use<br />
</strong>The first thing I tried was to use their &#8220;<em>Getting Started Wizard</em>&#8220;.  It was fairly easy to set up a mailing list and I like how all the customization you&#8217;ll ever need to do can be done straight from the application without any hand coding.  For example, a subscription form generally has two fields: name and e-mail.  If you want to add more fields for the user to enter, their interface easily allows you to do just that.</p>
<p>Creating your actual e-mail that gets sent out to your customers is fairly straightforward as well since there is an <strong>integrated modular WYSIWYG editor</strong>.  Omnistar Mailer comes with 9 HTML templates you can use to build your e-mail around.  However, you may feel that finding someone to design the actual e-mail layout may be a better idea since the templates are rather simple and not that attractive (in my opinion).</p>
<p>If you&#8217;re ever confused about how to use a certain feature, they even have <strong>video/audio tutorials</strong>!  That&#8217;s an A+ for effort right there.</p>
<p><strong>Analytic Reports<br />
</strong><img src="http://www.jonlee.ca/wp-content/uploads/2008/04/omnistar-mailer-template.gif" alt="Omnistar HTML Template" align="right" />Perhaps one of the most powerful differences between using an email management tool and maintaining a list of subscribers yourself are the reports that email management software generates.  You can track which users are most engaged with your newsletter or what the click through rate is.  This allows you to tweak and test different campaign settings to maximize click through rates.</p>
<p><strong>Pricing<br />
</strong>With all these features, it shouldn&#8217;t come as a shock that the software isn&#8217;t free &#8212; it costs <strong>$257</strong> for a full single license.   It does come with lifetime (and phone) support though!  It may seem like a lot but at least they&#8217;re not charging a monthly subscription fee which seems to be the growing trend nowadays in web-based software.</p>
<p><strong>Suggestions</strong><br />
My one main complaint are the limited number of HTML templates available.  There are 9 of them but they simply appear to be slight modifications of 2 or 3 core ones.  I would suggest designing the e-mail yourself instead of using one of the built in templates if you want something that looks.  A secondary complaint is that some of the more advanced features like auto-responders require you to manually set a cron job.  Not everyone may be comfortable doing this but I guess there is no easy way around it!</p>
<p><strong>Conclusion</strong><br />
Omnistar Mailer is a very powerful and well built piece of software.  If you need something to manage your mailing list or e-mail newsletters, then this is something you should definitely consider getting.  At $257 it is an investment but with their 30-day no questions asked full-refund policy, you don&#8217;t have much to lose.  Still in doubt?  <a href="http://www.omnistarmailer.com/demo.htm">Try their online demo</a> to judge the software for yourself.</p>
<p><strong>P.S. Readers of this blog can receive 20% off the price of Omnistar Mailer by using coupon code: <em>jonlee</em>Â </strong></p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=805&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/review-omnistar-mailer/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Quick Vim Tip &#8211; ESC Alternative</title>
		<link>http://www.jonlee.ca/quick-vim-tip-esc-alternative/</link>
		<comments>http://www.jonlee.ca/quick-vim-tip-esc-alternative/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 15:56:47 +0000</pubDate>
		<dc:creator>Jon Lee</dc:creator>
				<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[esc]]></category>
		<category><![CDATA[Launchy]]></category>
		<category><![CDATA[text editor]]></category>
		<category><![CDATA[Trackpoint]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.jonlee.ca/quick-vim-tip-esc-alternative/</guid>
		<description><![CDATA[Here is a quick tip on my favorite text editor, Vim. Vim is very efficient at what it does once you get the hang of it. However, one of the bottlenecks for efficient Vim coders is the use of the Esc key to get out of Insert or Visual mode. After typing a chunk of [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src="http://www.jonlee.ca/wp-content/uploads/2008/04/control_escape_comic.gif" alt="Control vs. Escape" /></p>
<p>Here is a quick tip on my favorite text editor, <a href="http://www.vim.org">Vim</a>.  Vim is very efficient at what it does once you get the hang of it.  However, one of the bottlenecks for efficient Vim coders is the use of the Esc key to get out of Insert or Visual mode.</p>
<p>After typing a chunk of code, you have to move your fingers out of position to hit the Esc key and in a single editing session, this happens <strong>many</strong> times.  Keeping your fingers in position is highly efficient and is also why I prefer the <a href="http://www.jonlee.ca/trackpoint-vs-touchpad/">IBM Trackpoint over trackpads</a>.</p>
<p>Recently, I experimented with using other keys as an alternative to Esc for moving out of insert and visual editing mode.</p>
<p><strong>Default Alternative</strong><br />
<strong>Ctrl-[ </strong>(Control + left bracket) performs (essentially) the same function as Esc by default and doesn&#8217;t require any configuration so if you can get used to this combination, you can use it on any machine.</p>
<p><strong>Custom Alternatives</strong><br />
You can also map your own key to perform the same function as Esc.  For example, a popular choice is Alt-Spacebar.  I use this for <a href="http://www.jonlee.ca/efficient-program-launching-with-launchy/">Launchy</a> though so I&#8217;m sticking with Ctrl-[ myself.  Here&#8217;s the code required to map Alt-Space to the Esc key.</p>
<blockquote><p>inoremap &lt;M-Space&gt; &lt;Esc&gt;</p></blockquote>
<p>Anyone have their own favorite alternative to the Esc key in Vim?</p>
<img src="http://www.jonlee.ca/?ak_action=api_record_view&id=801&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.jonlee.ca/quick-vim-tip-esc-alternative/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>

