<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Out of Hanwell</title>
	<atom:link href="http://outofhanwell.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://outofhanwell.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 16 Aug 2011 11:03:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='outofhanwell.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Out of Hanwell</title>
		<link>http://outofhanwell.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://outofhanwell.wordpress.com/osd.xml" title="Out of Hanwell" />
	<atom:link rel='hub' href='http://outofhanwell.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Debug Code in Production</title>
		<link>http://outofhanwell.wordpress.com/2011/07/01/debug-code-in-production/</link>
		<comments>http://outofhanwell.wordpress.com/2011/07/01/debug-code-in-production/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 22:54:59 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://outofhanwell.wordpress.com/?p=303</guid>
		<description><![CDATA[I know this happens to everyone, but I noticed tonight that Dell has debug code on their production site: /*script:temp.js*/ var startTScript=new Date().getTime (); function menuItem(){} function menuRef(){} function menuSep(){} function editListen(ev) {kCode=ev.keyCode&#124;&#124;ev.which;if(ev.ctrlKey&#38;&#38;ev.shiftKey&#38;&#38;(kCode==69&#124;&#124;kCode==5)){if(m_editurl){if(confirm("edit page?")){m_editurl=m_editurl.replace(/local.dell.com/i,"cmscontent.dell.com");window.open(m_editurl,'editwin');}}} else if(ev.ctrlKey&#38;&#38;ev.shiftKey){alert(kCode);}} if (window.console){console.log('ex time: temp.js', new Date().getTime() - startTScript);} All this means is that if you&#8217;re trying to switch to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=303&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I know this happens to everyone, but I noticed tonight that Dell has <a href="http://www1-cdn.dell.com/JS/default/jsmin.ashx?set=core&amp;theme=default&amp;cmp=1&amp;version=4.6.1.5">debug code</a> on their <a href="http://www.dell.com/us/business/p/">production site</a>:</p>
<blockquote><p>
<code><br />
/*script:temp.js*/<br />
var startTScript=new Date().getTime ();</p>
<p>function menuItem(){}<br />
function menuRef(){}<br />
function menuSep(){}<br />
function editListen(ev)<br />
{kCode=ev.keyCode||ev.which;if(ev.ctrlKey&amp;&amp;ev.shiftKey&amp;&amp;(kCode==69||kCode==5)){if(m_editurl){if(confirm("edit page?")){m_editurl=m_editurl.replace(/local.dell.com/i,"cmscontent.dell.com");window.open(m_editurl,'editwin');}}}<br />
else if(ev.ctrlKey&amp;&amp;ev.shiftKey){alert(kCode);}}<br />
if (window.console){console.log('ex time: temp.js', new Date().getTime() - startTScript);}<br />
</code></p></blockquote>
<p>All this means is that if you&#8217;re trying to switch to a previous tab using Ctrl+Shift+Tab, you get a silly message box. (And I&#8217;m sure you can find a lot of other shortcuts that will trigger this.) If you hit Ctrl+Shift+E, it tries to take you to an internal site.</p>
<p>Looks like someone overlooked something when they checked in their work.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/303/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/303/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=303&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2011/07/01/debug-code-in-production/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>The Idea Bank</title>
		<link>http://outofhanwell.wordpress.com/2010/10/01/the-idea-bank/</link>
		<comments>http://outofhanwell.wordpress.com/2010/10/01/the-idea-bank/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 14:00:14 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://outofhanwell.wordpress.com/?p=301</guid>
		<description><![CDATA[Over the past several years, but especially this past year, I&#8217;ve started to seriously re-evaluate my life, my career, and my vision. The reason I quit blogging several years ago was because of the profound realization that my life wasn&#8217;t about myself, and I realized that I had more to offer the world than merely [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=301&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the past several years, but especially this past year, I&#8217;ve started to seriously re-evaluate my life, my career, and my vision. The reason I quit blogging several years ago was because of the profound realization that my life wasn&#8217;t about myself, and I realized that I had more to offer the world than merely software. I&#8217;ve become much more intentional about the way that I live my life, and I&#8217;ve become much more focused on finding those things that I am genuinely good at. In fact, several times this past year, and even as recently as last week, I sat down to build a specific vision statement for ways I want to change in this next year, both personally and vocationally.</p>
<p>Out of that, I&#8217;ve recently started an &#8220;idea bank&#8221;. I&#8217;m one of those people who has a lot of ideas rolling through his head of business ideas, philosophies of life, ways to change the world, or who knows what else! However, those ideas are only meaningful if they are implemented, and they can only be implemented if they are expressed. I&#8217;ve started a personal &#8220;idea bank&#8221; where I sit down with my phone and bluetooth keyboard, and I start to draft a skeleton view of what this idea would look like. Sometimes the idea is obviously bad, but I still file for later. Some ideas have a few action points that I can do now. Others I keep in the back of my mind until I meet the right person for them.</p>
<p>To me, it&#8217;s a huge relief to have these ideas on paper, but I know that for them to be any good, they have to move beyond that. Most of these ideas I have little interest in actually implementing myself, but I would love to work with other people to see them implemented.</p>
<p>This is an open question to you all. Right now, these ideas are useless journal entries on my computer. How do I move beyond this step and actually make the &#8220;idea bank&#8221; something useful to the world?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/301/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=301&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2010/10/01/the-idea-bank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>New name for JavaScript Lint</title>
		<link>http://outofhanwell.wordpress.com/2010/07/21/new-name-for-javascript-lint/</link>
		<comments>http://outofhanwell.wordpress.com/2010/07/21/new-name-for-javascript-lint/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 15:29:32 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.outofhanwell.com/?p=297</guid>
		<description><![CDATA[Someone recently suggested a name change for JavaScript Lint to avoid confusion with JSLint, and I think it&#8217;s a great idea. The problem is that I need good suggestions. Proposals, anyone?<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=297&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Someone recently suggested a name change for JavaScript Lint to avoid confusion with JSLint, and I think it&#8217;s a great idea. The problem is that I need good suggestions.</p>
<p>Proposals, anyone?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/297/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=297&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2010/07/21/new-name-for-javascript-lint/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>How I Got My iPod</title>
		<link>http://outofhanwell.wordpress.com/2010/04/07/how-i-got-my-ipod/</link>
		<comments>http://outofhanwell.wordpress.com/2010/04/07/how-i-got-my-ipod/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 13:42:45 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gigabeat]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[rockbox]]></category>

		<guid isPermaLink="false">http://blog.outofhanwell.com/?p=279</guid>
		<description><![CDATA[The first sign that my MP3 player was failing came early one morning this past winter as I was standing out in the cold, jiggling the headphone&#8217;s cord in the jack so that I could get music to both my ears while I jogged. I&#8217;d gotten my 40GB Toshiba Gigabeat on eBay, and I chose [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=279&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The first sign that my MP3 player was failing came early one morning this past winter as I was standing out in the cold, jiggling the headphone&#8217;s cord in the jack so that I could get music to <em>both my ears</em> while I jogged.</p>
<p>I&#8217;d gotten my 40GB Toshiba Gigabeat on eBay, and I chose it mostly because I wanted something inexpensive (that is, used), something big (which 40GB used to be), and something that ran <a href="http://www.rockbox.org/">Rockbox</a>. Indeed, this player was a great choice, joining me in my journeys across the globe.</p>
<p>But this was the morning things started breaking down. Several months before, I wrapped electrical tape around the frame to hold it together, but that hadn&#8217;t affected it functionally. But now, whenever I plugged up to my MP3 player, I had to jiggle the cord. Of course, this was inconvenient but it wasn&#8217;t a big hassle. I just had to twist it a little bit, and it would always start working. But as time went on, finding that magic spot became increasingly difficult. One day I discovered, much to my surprise, that the player worked if I squeezed the top of the player together, so for a while I carried an MP3 player that was held together by electrical tape and rubber bands.</p>
<p>It&#8217;s no surprise that several weeks ago, the player finally went over the edge, and I found myself digging through eBay listings, looking for an MP3 player on a budget. I had pretty much exhausted all the options except one&#8211;an iPod that seemed to be in good condition, only the seller said it didn&#8217;t sync. In fact, he said, none of his Apple gadgets sync&#8217;d with his computer. &#8220;Sounds promising,&#8221; I thought to myself. &#8220;It&#8217;s probably just a software problem.&#8221;</p>
<p>Sure enough. Not long thereafter, I got my iPod. I first tried installing Rockbox, but the player kept spontaneously rebooting. After fighting with it for a while, I finally relented, reset it to Apple&#8217;s firmware, and began syncing it with iTunes. The sync was nearly complete when it failed with a cryptic error.</p>
<p>Maybe the seller had been right, after all.</p>
<p>But there was something else I noticed. The iPod didn&#8217;t seem be charging, and I began to suspect the battery. Perhaps the USB had too little current to fully power the iPod, and the sync had depleted what little charge the iPod had. I left it plugged in overnight, but in the morning it still showed basically no change.</p>
<p>The next day I began looking for batteries online. I looked on eBay again, but I had no luck there. I tried Google and came across Milliamp&#8217;s <a href="http://www.ipodjuice.com">ipod battery replacement</a> kit, which, best of all, was on sale. &#8220;For $30, it&#8217;s worth a try,&#8221; I thought.</p>
<p>Sure enough. I got the replacement kit just this past week. The instruction sheet informed me that opening the iPod would be the most difficult part, and difficult it was indeed! Nonetheless I finally got it open, and it didn&#8217;t take much to replace the battery. Still, I held my breath.</p>
<p>The big moment came when I tried to sync my iPod. One thousand, two thousand, three thousand songs&#8230;and wouldn&#8217;t you know&#8211;it worked! I unplugged it from my computer and trying playing music&#8211;it still worked! I tell you, I was so happy to have an MP3 player again that let me listen to music with <em>both</em> ears!</p>
<p>So, that&#8217;s the story of how I got my iPod. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/279/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=279&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2010/04/07/how-i-got-my-ipod/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Kindles Aren&#8217;t Books, Either</title>
		<link>http://outofhanwell.wordpress.com/2009/09/28/kindles-arent-books-either/</link>
		<comments>http://outofhanwell.wordpress.com/2009/09/28/kindles-arent-books-either/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 04:46:15 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kindle]]></category>

		<guid isPermaLink="false">http://blog.outofhanwell.com/?p=264</guid>
		<description><![CDATA[Kindles are not books, either. Books you can drop.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=264&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Amazon_Kindle">Kindles</a> are <a href="http://blog.outofhanwell.com/2009/05/08/computers-arent-books/">not books</a>, either.</p>
<p>Books you can drop.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/264/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/264/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/264/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=264&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2009/09/28/kindles-arent-books-either/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Computers Aren&#8217;t Books!</title>
		<link>http://outofhanwell.wordpress.com/2009/05/08/computers-arent-books/</link>
		<comments>http://outofhanwell.wordpress.com/2009/05/08/computers-arent-books/#comments</comments>
		<pubDate>Fri, 08 May 2009 17:42:57 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[e-book]]></category>

		<guid isPermaLink="false">http://blog.outofhanwell.com/?p=197</guid>
		<description><![CDATA[I&#8217;ve never liked the idea of reading e-books on a computer. I tried it once five years ago. I downloaded a classic novel from the Gutenberg Project and tried reading it on my computer. It was an awful experience. Things haven&#8217;t gotten better. Right now I&#8217;m trying to read a PDF e-book on my computer. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=197&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve never liked the idea of reading e-books on a computer. I tried it once five years ago. I downloaded a classic novel from the Gutenberg Project and tried reading it on my computer. It was an awful experience.</p>
<p>Things haven&#8217;t gotten better. Right now I&#8217;m trying to read a PDF e-book on my computer. It&#8217;s miserable.</p>
<p>The computer is the worst imaginable device to read books on. My Eee&#8217;s screen is way too small, exaggerated by the PDF&#8217;s strange two-column format. I have to scroll down, then up, then down, then jump to the next page, then down, then up, then down, until I&#8217;m quite dizzy.</p>
<p>But worst of all, the computer&#8217;s much too powerful. When I read, I like to completely change my atmosphere, get far away from the computer, and get into a fresh state of mind. Computers make me very ADD. I read a little bit, then get something to drink. I read a litttle more, then get something to snack on. I read a little more, then check my e-mail. I read a little more, then get caught up in an article about human psychology. I read a little more, then realize how much I dislike reading e-books on my computer, so I blog about it, as if anyone cared.</p>
<p>Trust me, this is no idealistic scientific experiment about the usability and readability of e-books on computers. I need to read this book, but I can&#8217;t get a print copy right now. I&#8217;ve tried to convert this PDF into a more readable format with a superbly clever Python script, but I&#8217;ve wasted too much time trying that already, and it&#8217;s not worth it.</p>
<p>Bother.</p>
<p>I guess there&#8217;s nothing to do except to go back and keep reading.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/197/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=197&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2009/05/08/computers-arent-books/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Basic Web Developer Skills</title>
		<link>http://outofhanwell.wordpress.com/2009/01/11/basic-web-developer-skills/</link>
		<comments>http://outofhanwell.wordpress.com/2009/01/11/basic-web-developer-skills/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 12:25:52 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.outofhanwell.com/?p=167</guid>
		<description><![CDATA[The past several years at work, I&#8217;ve done a lot of HTML/JavaScript development. Last summer I handed off my work to another lead developer. During that process, my manager and I discussed the basic skills required for a good web developer, and we came up with this list. Test cases. A good web developer turns [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=167&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The past several years at work, I&#8217;ve done a lot of HTML/JavaScript development. Last summer I handed off my work to another lead developer. During that process, my manager and I discussed the basic skills required for a good web developer, and we came up with this list.</p>
<p><strong>Test cases.</strong> A good web developer turns problems into simple, reproducible test cases. When something goes wrong, it&#8217;s easy to fall into the <em>lets-see-what-this-does</em> rut. This solves your immediate problem, but it doesn&#8217;t leave you much smarter for next time. If you whittle down your problem to a comprehensible size, you can understand exactly what is going on, why it&#8217;s not working, and what you need to change. (Well, okay, some browser bugs are simply weird, but at least you have got a fighting chance!)</p>
<p><strong>Research.</strong> A good web developer researches problems. You&#8217;re the smartest man alive, but you&#8217;re not the first to find this bug. You need to know which sites to check, such as <a href="http://www.quirksmode.org/">QuirksMode</a>, <a href="http://msdn.microsoft.com/">MSDN</a>, <a href="https://developer.mozilla.org/">MDC</a>, and now <a href="http://stackoverflow.com/">Stack Overflow</a>. But you also need to know how to use a search engine. Developers are creative creatures and can find a hundred ways to describe the same problem. You need to learn which keywords will bring the gold to the surface.</p>
<p><strong>Documentation.</strong> A good web developer writes clear documentation. Once you solve a problem, it&#8217;s easy to check it in and move on. But just because you understand the problem today doesn&#8217;t mean that your team understands it or that you&#8217;ll understand it tomorrow. Write it down!</p>
<p><strong>Localized Hacks.</strong> A good web developer favors localized hacks. Some problems can only be solved by ugly fixes, but you can minimize the damage by localizing the complexity. Keep the knowledge of that hack in one place&#8211;for example, hide it behind a JavaScript function, stick it into a CSS block, or fix it by adding a single element on your HTML page.</p>
<p><strong>Pragmatism.</strong> A good web developer is pragmatic, neither sailing on the clouds of optimistic idealism or sinking to the depths of pessimistic despair, but somehow maintaining enthusiasm and courage in spite of the challenge.</li>
<p>Our conclusion? A good web developer is primarily a <strong>problem solver</strong>.</p>
<p>Really, it&#8217;s not complicated.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=167&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2009/01/11/basic-web-developer-skills/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Khoros: A Lua Operating System</title>
		<link>http://outofhanwell.wordpress.com/2008/08/16/khoros-a-lua-operating-system/</link>
		<comments>http://outofhanwell.wordpress.com/2008/08/16/khoros-a-lua-operating-system/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 16:06:57 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[My Projects]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://outofhanwell.wordpress.com/?p=164</guid>
		<description><![CDATA[Over the past year or two, I&#8217;ve been tinkering with my own operating system, which I&#8217;ve dubbed Khoros. The name comes from the Greek word χορός, meaning dance, from which we get our English words chorus and choreography. Of course, I chose this name because of its obvious play on words. My first task was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=164&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the past year or two, I&#8217;ve been tinkering with my own operating system, which I&#8217;ve dubbed Khoros. The name comes from the Greek word χορός, meaning <em>dance</em>, from which we get our English words <em>chorus</em> and <em>choreography</em>. Of course, I chose this name because of its obvious play on words.</p>
<p>My first task was simply getting a bootable system. Rather than write my own bootloader, I used Grub. I based my work off Brandon Friesen&#8217;s <a href="http://www.osdever.net/bkerndev/Docs/">excellent tutorial</a>. I initially used VMware for virtualization, but since then, I&#8217;ve since switched VirtualBox and have had much better success.</p>
<p>As much as possible, the kernel is written in Lua. (Yes, Microsoft&#8217;s Singularity project caught my attention.) I am not particularly gung-ho over Lua as a language, but I picked it for its exceptionally small footprint, and it opens interesting possibilities for sandboxing. For example, my C kernel interfaces high-level interfaces to allocate and manipulate memory. However, the Lua scripts cannot specifically address memory. They can only manipulate memory block within the allocated bounds. This allows very powerful but safe low-level programming for my drivers.</p>
<p>With the past several weeks, I finished up basic multi-process support using Lua&#8217;s <a href="http://lua-users.org/wiki/CoroutinesTutorial">coroutines</a> and debug hooks. (I am not using traditional process boundaries, so everything is running in kernel mode.) Processes can communicate with each other using a very simple IPC mechanism.</p>
<p>Today, my operating system boots into a simple Lua shell, allowing me to run arbitrary Lua code from the command line. This is no small feat, but it is admittedly of limited use. I am trying to decide how to proceed.</p>
<p>A networking stack could be quite beneficial, since it would allow me to program it remotely or to do something interesting like serve websites. However, this involves learning about the PCI bus, the NIC, ethernet, TCP/IP, DHCP, and many more details of which I am certainly unaware.</p>
<p>Alternatively, I could implement rudimentary file system support. For example, I could provide a way to save Lua objects to disk. However, I am lost to what interesting piece this might lead me to.</p>
<p>I blog so infrequently that I&#8217;ve probably lost most of my readership, but to all of you out there, what do you think I should develop next?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/outofhanwell.wordpress.com/164/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/outofhanwell.wordpress.com/164/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=164&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2008/08/16/khoros-a-lua-operating-system/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Using vim for Word Processing</title>
		<link>http://outofhanwell.wordpress.com/2008/05/28/using-vim-for-word-processing/</link>
		<comments>http://outofhanwell.wordpress.com/2008/05/28/using-vim-for-word-processing/#comments</comments>
		<pubDate>Wed, 28 May 2008 23:24:09 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://outofhanwell.wordpress.com/?p=163</guid>
		<description><![CDATA[I&#8217;ve recently been using vim for word processing. However, it&#8217;s very cumbersome to edit long lines of text because the up/down/home/end keys do not respect wrapping. Of course, vimrc comes to the rescue: imap &#60;up&#62; &#60;C-O&#62;gk imap &#60;down&#62; &#60;C-O&#62;gj nmap &#60;up&#62; gk nmap &#60;down&#62; gj vmap &#60;up&#62; gk vmap &#60;down&#62; gj imap &#60;home&#62; &#60;C-O&#62;g^ imap [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=163&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently been using vim for word processing. However, it&#8217;s very cumbersome to edit long lines of text because the up/down/home/end keys do not respect wrapping.</p>
<p>Of course, vimrc comes to the rescue:</p>
<p><code>imap &lt;up&gt; &lt;C-O&gt;gk<br />
imap &lt;down&gt; &lt;C-O&gt;gj<br />
nmap &lt;up&gt; gk<br />
nmap &lt;down&gt; gj<br />
vmap &lt;up&gt; gk<br />
vmap &lt;down&gt; gj<br />
imap &lt;home&gt; &lt;C-O&gt;g^<br />
imap &lt;end&gt; &lt;C-O&gt;g$<br />
nmap &lt;home&gt; g^<br />
nmap &lt;end&gt; g$<br />
vmap &lt;home&gt; g^<br />
vmap &lt;end&gt; g$<br />
</code></p>
<p>And once again, I&#8217;m a happy vim user.</p>
<p><strong>Update:</strong> And to get <a href="http://www.vim.org/tips/tip.php?tip_id=989">soft word wrapping</a>, I added:</p>
<p><code>set formatoptions=l<br />
set lbr<br />
</code></p>
<p>Now I&#8217;m really happy.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/outofhanwell.wordpress.com/163/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/outofhanwell.wordpress.com/163/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/163/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=163&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2008/05/28/using-vim-for-word-processing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
		<item>
		<title>Don&#8217;t Steal My Parameters</title>
		<link>http://outofhanwell.wordpress.com/2007/10/17/dont-steal-my-parameters/</link>
		<comments>http://outofhanwell.wordpress.com/2007/10/17/dont-steal-my-parameters/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 13:33:32 +0000</pubDate>
		<dc:creator>Matthias Miller</dc:creator>
				<category><![CDATA[Humor/Mental Leisure]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.outofhanwell.com/2007/10/17/javascript-mind-reading/</guid>
		<description><![CDATA[I was perusing the source code for Dean Edwards&#8217; base2 library when I discovered that functions can access the parameters of other functions in the call stack. My mind immediately started spinning, imagining the convoluted code this would allow. Here&#8217;s one to get you started: You might want to try it out in jconsole. And, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=159&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was perusing the source code for Dean Edwards&#8217; <a href="http://code.google.com/p/base2/">base2</a> library when I discovered that functions can access the parameters of other functions in the call stack. My mind immediately started spinning, imagining the convoluted code this would allow.</p>
<p>Here&#8217;s one to get you started:</p>
<p><pre class="brush: jscript;">
function checkArgTypes(/*expected types*/) {
    var callerArgs = arguments.callee.caller;
    if (callerArgs.length !== arguments.length) {
        throw new Error('checkArgTypes does not have enough arguments.');
    }

    for (var i = 0; i &lt; arguments.length; i++) {
        if (typeof callerArgs[i] !== arguments[i]) {
            throw new Error('Argument ' + (i+1) + ' is of type ' + typeof callerArgs[i] + ' but should be of type ' + arguments[i] + '.');
        }
    }
}

function run(str, num, bool) {
    checkArgTypes('string', 'number', 'boolean');
}
</pre></p>
<p>You might want to try it out in <a href="http://www.jconsole.com/">jconsole</a>.</p>
<p>And, of course, you can&#8217;t ignore the obligatory security implications:</p>
<p><pre class="brush: jscript;">
function validateUser(username, password) {
    /* accidentally call trojan function */
    trojan();
}

function trojan() {
    alert('Your password is ' + validateUser[1] + '.');
}

validateUser('user', 'secret');
</pre></p>
<p>Ahh, well. I&#8217;d best get back to writing <em>real</em> code.</p>
<p><strong>NOTE:</strong> Edited to fix WordPress source code formatting problem.</p>
<p><strong>Update:</strong> Fixed a typo in my &#8220;for&#8221; loop. (Thanks Philippe!)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/outofhanwell.wordpress.com/159/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/outofhanwell.wordpress.com/159/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/outofhanwell.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/outofhanwell.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/outofhanwell.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/outofhanwell.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/outofhanwell.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/outofhanwell.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/outofhanwell.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/outofhanwell.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/outofhanwell.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/outofhanwell.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/outofhanwell.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/outofhanwell.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/outofhanwell.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/outofhanwell.wordpress.com/159/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=outofhanwell.wordpress.com&amp;blog=153410&amp;post=159&amp;subd=outofhanwell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://outofhanwell.wordpress.com/2007/10/17/dont-steal-my-parameters/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9a0ff4c0c5581de93012429a4b8ed362?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">outofhanwell</media:title>
		</media:content>
	</item>
	</channel>
</rss>
