<?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>Barron of Blog &#187; dev</title>
	<atom:link href="http://mike.shannonandmike.net/category/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://mike.shannonandmike.net</link>
	<description>Wife, Kids, and the Pursuit of Happiness</description>
	<lastBuildDate>Fri, 10 Feb 2012 05:01:58 +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>Debugging Objects in Javascript</title>
		<link>http://mike.shannonandmike.net/2009/12/09/debugging-objects-in-javascript/</link>
		<comments>http://mike.shannonandmike.net/2009/12/09/debugging-objects-in-javascript/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 16:29:44 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/?p=4187</guid>
		<description><![CDATA[There are a lot of good JavaScript debugging tools available out there; FireBug for Firefox comes to mind as one of the best. But when when developing web applications across multiple browsers, particularly browsers like IE which have limited built-in debugging functionality, it's handy to have a function that can be called to debug a [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of good JavaScript debugging tools available out there; <a href="http://getfirebug.com/">FireBug</a> for Firefox comes to mind as one of the best.  But when when developing web applications across multiple browsers, particularly browsers like IE which have limited built-in debugging functionality, it's handy to have a function that can be called to debug a specific object on the page.</p>
<p>Here is a JavaScript function that I wrote several years ago.  It's a bit of a kludge - I'm sure there is a more elegant approach - but having it available to quickly inspect a single element has saved more than a few hours of painful development:</p>
<pre name="code" class="javascript">
function debugObject(elem, recurseIntoObjects, elemPropertyName) {
	var mesg = "";
	if ((elem == undefined) || (elem == null)) {
		alert("Passed element is not valid: "+elem);
		return;
	}
	for (var i in elem) {
		if ((i == undefined) || (i == null) || (typeof elem[i] == 'function') || (typeof elem[i] == 'undefined') || (elem[i] == null)) {
			continue;
		}
		if (recurseIntoObjects &#038;& typeof elem[i] == 'object') {
			if ((elemPropertyName != undefined) &#038;& (elem[i][elemPropertyName] != 'undefined')) {
				mesg += i+": "+elem[i][elemPropertyName]+"\n";
			}
			else {
				var elements = "";
				var elementCount = 0;
				for (var j in elem[i]) {
					if ((j == undefined) || (j == null) || (typeof elem[i][j] == 'function') || (typeof elem[i][j] == 'undefined') || (elem[i][j] == null)) {
						continue;
					}
					if (elementCount != 0) {
						elements += ", ";
					}
					elements += elem[i][j];
					elementCount++;
				}
				mesg += i+"["+elementCount+"]: "+elements+"\n";
			}
		}
		else {
			mesg += i+": "+elem[i]+"\n";
		}
	}
	alert(mesg);
	return mesg;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2009/12/09/debugging-objects-in-javascript/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Java: Reflecting to Get All Classes in a Package</title>
		<link>http://mike.shannonandmike.net/2009/09/02/java-reflecting-to-get-all-classes-in-a-package/</link>
		<comments>http://mike.shannonandmike.net/2009/09/02/java-reflecting-to-get-all-classes-in-a-package/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 02:46:37 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/?p=3285</guid>
		<description><![CDATA[It took me a little while to figure out that Java doesn't provide a way to reflect an entire package. In other words, there is no built-in way for me to dynamically retrieve a list of all the classes in a given package in Java through reflection. So I wrote my own method to do [...]]]></description>
			<content:encoded><![CDATA[<p>It took me a little while to figure out that Java doesn't provide a way to reflect an entire package.  In other words, there is no built-in way for me to dynamically retrieve a list of all the classes in a given package in Java through reflection.  So I wrote my own method to do it.</p>
<p>Since it took a bit of googling and effort, I thought it would be nice to share the convenience method I wrote with the world.  Enjoy:</p>
<pre name="code" class="java">
/**
 * Given a package name, attempts to reflect to find all classes within the package
 * on the local file system.
 *
 * @param packageName
 * @return
 */
private static Set&lt;Class&gt; getClassesInPackage(String packageName) {
	Set&lt;Class&gt; classes = new HashSet&lt;Class&gt;();
	String packageNameSlashed = "/" + packageName.replace(".", "/")
	// Get a File object for the package
	URL directoryURL = Thread.currentThread().getContextClassLoader().getResource(packageNameSlashed);
	if (directoryURL == null) {
		LOG.warn("Could not retrieve URL resource: " + packageNameSlashed);
		return classes;
	}

	String directoryString = directoryURL.getFile();
	if (directoryString == null) {
		LOG.warn("Could not find directory for URL resource: " + packageNameSlashed);
		return classes;
	}

	File directory = new File(directoryString);
	if (directory.exists()) {
		// Get the list of the files contained in the package
		String[] files = directory.list();
		for (String fileName : files) {
			// We are only interested in .class files
			if (fileName.endsWith(".class")) {
				// Remove the .class extension
				fileName = fileName.substring(0, fileName.length() - 6);
				try {
					classes.add(Class.forName(packageName + "." + fileName));
				} catch (ClassNotFoundException e) {
					LOG.warn(packageName + "." + fileName + " does not appear to be a valid class.", e);
				}
			}
		}
	} else {
		LOG.warn(packageName + " does not appear to exist as a valid package on the file system.");
	}
	return classes;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2009/09/02/java-reflecting-to-get-all-classes-in-a-package/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Welcome Back to a Secret Blog</title>
		<link>http://mike.shannonandmike.net/2009/08/30/welcome-back-to-a-secret-blog/</link>
		<comments>http://mike.shannonandmike.net/2009/08/30/welcome-back-to-a-secret-blog/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 04:36:28 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/?p=3378</guid>
		<description><![CDATA[Today is the beginning of a new era of privacy on this blog. Well, technically speaking it's really the re-beginning of an era... let me explain... You see, I used to be able to create posts that were private and only viewable by logged in users. A year ago WordPress released a new version, and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mike.shannonandmike.net/wp-content/uploads/2009/08/spy-vs-spy-without-bombs.png" rel="lightbox"><img src="http://mike.shannonandmike.net/wp-content/uploads/2009/08/spy-vs-spy-without-bombs-150x243.png" alt="Spy vs Spy" title="Spy vs Spy" width="150" height="243" class="alignnone size-thumbnail wp-image-3382" style="float:right;"/></a>Today is the beginning of a new era of privacy on this blog.  Well, technically speaking it's really the re-beginning of an era... let me explain...</p>
<p>You see, I used to be able to create posts that were private and only viewable by logged in users.  A year ago WordPress released a new version, and while it was sparkly and wonderful it also broke my ability to do this (by breaking Fil's excellent private-post plugin "<a href="http://fortes.com/projects/wordpress/postlevels/">Post Levels</a>").  So instead of exposing all of my private posts to the world I squirreled them away, hoping that someday I would be able to bring them back. </p>
<p>Ladies and Gentlemen: That day is today.  Thanks to Peter Holiday's outstanding plugin <a href="http://www.peteholiday.com/wp-sentry/">WP Sentry</a> (which is based on Fil's plugin), I am now able to control who can see certain posts.</p>
<p>Some things to know...</p>
<ol>
<li> You must have an account on this blog to see private posts.  <a href="http://mike.shannonandmike.net/wp-login.php">Log in here</a> or <a href="http://mike.shannonandmike.net/wp-login.php?action=register">create one</a>.
<li>The most recent private post that currently exists is from February 28th, 2008.  I will likely post more now that people can actually see them.
<li> To see ALL of my old private posts (there are 44 of them) <a href="http://mike.shannonandmike.net/category/private/">click here</a>.
<li> If you are logged in and <em>still</em> don't see any private posts please let me know - I probably didn't recognize the username or e-mail address you registered with.
</ol>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2009/08/30/welcome-back-to-a-secret-blog/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Removing WinFixer / Virtuamonde / Msevents / Trojan.vundo</title>
		<link>http://mike.shannonandmike.net/2009/01/05/fixing-winfixer-virtuamonde-msevents-trojan-vundo-viru/</link>
		<comments>http://mike.shannonandmike.net/2009/01/05/fixing-winfixer-virtuamonde-msevents-trojan-vundo-viru/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 16:22:32 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/?p=2589</guid>
		<description><![CDATA[I spent a couple hours over the weekend trying to figure out a particularly nasty virus called (among other things) "Virtuamonde" or "Virtumonde". What makes this trojan virus particularly nasty is that it redirects a lot of useful anti-virus and anti-spyware websites to point to localhost (127.0.0.1). The blocked websites include: Windows update (windowsupdate.microsoft.com and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mike.shannonandmike.net/wp-content/uploads/2009/01/flu-virus-e06074-ga.jpg" rel="lightbox"><img src="http://mike.shannonandmike.net/wp-content/uploads/2009/01/flu-virus-e06074-ga-150x243.jpg" alt="Flu Virus" title="Flu Virus" width="150" height="243" class="alignright size-thumbnail wp-image-2592" style="float:right;"/></a>I spent a couple hours over the weekend trying to figure out a particularly nasty virus called (among other things) "Virtuamonde" or "Virtumonde".  What makes this trojan virus particularly nasty is that it redirects a lot of useful anti-virus and anti-spyware websites to point to localhost (127.0.0.1).  The blocked websites include:</p>
<ul>
<li>Windows update (<em>windowsupdate.microsoft.com</em> and <em>update.microsoft.com</em>)</li>
<li>Windows support sites (<em>support.microsoft.com</em>)</li>
<li>Spybot Search &#038; Destroy website</li>
<li>AdAware website</li>
<li>... and many other forums and support sites that provide solutions.</li>
</ul>
<p>To help others who have this same issue and do not have the luxury of a second computer running linux, or cannot connect to these sites for other reasons, I am providing the necessary programs here to FIX the problem.</p>
<p><strong>TO FIX:</strong><br />
Download, install, and run <a href='http://mike.shannonandmike.net/wp-content/uploads/2009/01/mbam-setup.exe'>Malwarebytes' Anti-Malware</a>.  This was the only malware/spyware removal program that actually found and fixed the problem.</p>
<p>You may have to run this program in safe mode (reboot your computer and keep pressing F8 until you see a prompt for "Safe Mode").  If this still doesn't catch your problem you can download and install <a href='http://mike.shannonandmike.net/wp-content/uploads/2009/01/vundofix.exe'>VundoFix</a>.</p>
<p>(via <a href="http://www.bleepingcomputer.com/malware-removal/remove-vundo-virtumonde">bleepingcomputer</a>, which is another site that is explicitly blocked by this trojan virus)</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2009/01/05/fixing-winfixer-virtuamonde-msevents-trojan-vundo-viru/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Website Error in IE</title>
		<link>http://mike.shannonandmike.net/2008/10/03/website-error-in-internet-explorer/</link>
		<comments>http://mike.shannonandmike.net/2008/10/03/website-error-in-internet-explorer/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 14:42:24 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/?p=1957</guid>
		<description><![CDATA[It has come to my attention that several readers are experiencing an error when visiting this site. The error will only occur when you are using Internet Explorer, and is most likely due to JavaScript in one of my plugins attempting to write to the DOM before it has finished rendering. If you are tired [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mike.shannonandmike.net/wp-content/uploads/2008/10/firefox_eats_ie.jpg" alt="" title="Firefox eats Internet Explorer, because IE sucks donkey balls.  No really, it does." width="250" height="242" class="alignright size-full wp-image-1956" style="float:right;"/>It has come to my attention that several readers are experiencing an error when visiting this site. The error will only occur when you are using Internet Explorer, and is most likely due to JavaScript in one of my plugins attempting to write to the DOM before it has finished rendering.</p>
<p>If you are tired of seeing this error, or do not wish to wait for me to fix it, then please download and install a REAL browser like <a href="http://getfirefox.com">Firefox</a>, <a href="http://www.opera.com/">Opera</a>, or <a href="http://www.google.com/chrome">Chrome</a>.  From a web developer's perspective, and in my professional opinion, Internet Explorer sucks donkey balls.  It's a nightmare to support and a pain to debug.  It doesn't conform to most standards and has abysmal JavaScript debugging tools.</p>
<p>So do yourself a favor and take 5 minutes to install a new browser.  Your entire web experience will improve (especially if you're using IE6 - <a href="http://www.mozilla.com/en-US/firefox/">Firefox</a> is much faster and more secure).</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2008/10/03/website-error-in-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A Few Gripes For You, Mr. Microsoft</title>
		<link>http://mike.shannonandmike.net/2008/06/03/a-few-gripes-for-you-mr-microsoft/</link>
		<comments>http://mike.shannonandmike.net/2008/06/03/a-few-gripes-for-you-mr-microsoft/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 16:25:51 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/?p=1482</guid>
		<description><![CDATA[Dear Mr. Microsoft, I have a few gripes: Outlook sucks. If I click "Reply", but then decide not to reply and close the window, it still marks the message as being replied to. That's stupid. Also in Outlook, when I am composing a new message you like to save my drafts in the Inbox, even [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mike.shannonandmike.net/wp-content/uploads/2008/06/2007-02-16_logo_vista.jpg" alt="Windows logo" title="Windows logo" width="250" height="236" class="alignright size-full wp-image-1483" style="float:right; border:0;"/>Dear Mr. Microsoft,</p>
<p>I have a few gripes:
<ul>
<li>Outlook sucks.  If I click "Reply", but then decide not to reply and close the window, it still marks the message as being replied to.  That's stupid.</li>
<li><del datetime="2008-06-05T14:50:33+00:00">Also in Outlook, when I am composing a new message you like to save my drafts in the Inbox,  even though there is a beautifully labeled (and empty) "Drafts" folder right next to it.  That's just bad form, good buddy.</del> Thanks Matt!</li>
<li>Why, for the sake of sweaty donkey balls, does Windows limit the total path length of every file on my computer to 256 characters. What the hell is wrong with you Windows?</li>
<li>Explorer doesn't allow me to create/rename files that begin with a period.  I can think of numerous programs that use this naming convention (".project", ".cvsignore", ".classpath", etc).  However, when I ask Explorer to create or rename a file to begin with a period it tells me: "You must type a file name."  Well I did, dumbass.  The file name is ".project".  Just because it starts with a period doesn't make it an invalid file name.  Even your sorry excuse for a command prompt allows me to create/rename files that begin with a period.  Stop being such a douche, Explorer.</li>
<li>Hey Explorer, I'm not done with you yet!  How about when I am renaming a file and accidentally make a mistake (such as including an invalid character or typing the same name as an existing file).  Do you keep what I have entered so far and allow me to fix my error?  Oh no, my friend.  You declare that if a single character was mistyped then ALL of my changes must be erased and forgotten.  Yeah, good decision there chief.</li>
<li>And finally I come to cornbread.  Ain't nothing wrong with that.</li>
</ul>
<p>love,<br />
Mike</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2008/06/03/a-few-gripes-for-you-mr-microsoft/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>All About Mie-Mie: Sassy Jackets</title>
		<link>http://mike.shannonandmike.net/2008/05/22/all-about-mie-mie-sassy-jackets/</link>
		<comments>http://mike.shannonandmike.net/2008/05/22/all-about-mie-mie-sassy-jackets/#comments</comments>
		<pubDate>Thu, 22 May 2008 13:40:51 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[neighbors]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/?p=1464</guid>
		<description><![CDATA[As many of you probably know I develop websites as a fun side project. A website that I created just launched a few weeks back and I wanted to share it with you. The website is an online store called "It's All About Mie-Mie". I created it for a neighbor's mother who has these fabulous [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you probably know I develop websites as a fun side project.  A website that I created just launched a few weeks back and I wanted to share it with you.</p>
<p>The website is an online store called "<a href="http://store.allaboutmiemie.com/">It's All About Mie-Mie</a>".  I created it for a neighbor's mother who has these fabulous jackets.  They were selling very well at various local craft fairs so she decided to make the big leap to online retail. The jackets have fun names like "<a href="http://store.allaboutmiemie.com/index.php?main_page=product_info&#038;products_id=6">I'm Too Sexy For This Jacket</a>" and "<a href="http://store.allaboutmiemie.com/index.php?main_page=product_info&#038;products_id=7">Nobody Puts Baby in a Corner</a>".  </p>
<p><a href='http://mike.shannonandmike.net/wp-content/uploads/2008/05/allaboutmiemie.jpg' rel="lightbox"><img src="http://mike.shannonandmike.net/wp-content/uploads/2008/05/allaboutmiemieblog.jpg" alt="All About Mie-Mie: Sassy Jackets for Sassy Ladies" title="All About Mie-Mie: Sassy Jackets for Sassy Ladies" class="alignnone wp-image-1466" /></a></p>
<p>This was my first time creating a store from scratch, and overall it was a fun and interesting project to work on.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2008/05/22/all-about-mie-mie-sassy-jackets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post Levels 1.1.1 Fix</title>
		<link>http://mike.shannonandmike.net/2007/12/18/post-levels-111-fix/</link>
		<comments>http://mike.shannonandmike.net/2007/12/18/post-levels-111-fix/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 05:09:28 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/2007/12/18/post-levels-111-fix/</guid>
		<description><![CDATA[I use Fortes' excellent Post Levels Plugin on this site. The latest release of WordPress (version 2.3.x) broke this plugin, so I took it upon myself to fix it (since Fortes is currently unavailable). You can download the updated version here: Post Levels 1.1.2 If you are curious, the problem was due to a regular [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://mike.shannonandmike.net/wp-content/uploads/2007/12/geek.jpg' alt='Geek waving' style="float:right;"/>I use <a href="http://fortes.com/">Fortes'</a> excellent <a href="http://fortes.com/projects/wordpress/postlevels/">Post Levels Plugin</a> on this site.  The latest release of WordPress (version 2.3.x) broke this plugin, so I took it upon myself to fix it (since Fortes is currently unavailable).</p>
<p>You can download the updated version here:<br />
<a href='http://mike.shannonandmike.net/wp-content/uploads/2007/12/post-levels.zip' title='Post Levels 1.1.2'>Post Levels 1.1.2</a></p>
<p>If you are curious, the problem was due to a regular expression that was not expecting the SQL "FROM" clause to use an alias for the "wp_posts" table.  My solution, which is a bit hacky, was to insert expressions to create and then properly handle this alias.  I wish a better solution exists, but to my knowledge WordPress doesn't expose these SQL statements through hooks.</p>
<p>Please let me know if you have any issues.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2007/12/18/post-levels-111-fix/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Stupid Programmer</title>
		<link>http://mike.shannonandmike.net/2007/06/21/stupid-programmer/</link>
		<comments>http://mike.shannonandmike.net/2007/06/21/stupid-programmer/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 20:17:54 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/2007/06/21/stupid-programmer/</guid>
		<description><![CDATA[I work on a computer for a living: in my current position I code Java, JavaScript, and SQL. The codebase in this project is very large, so many different groups across several different companies are constantly modifying something. Usually the incoming code we see from these other coders is ok. But occasionally we see some [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://mike.shannonandmike.net/wp-content/uploads/2007/06/bill-gates-nerd-stud.jpg' title='Bill Gates: Nerd Stud' rel='lightbox'><img src='http://mike.shannonandmike.net/wp-content/uploads/2007/06/bill-gates-nerd-studblog.jpg' alt='Bill Gates: Nerd Stud' style="float:right;"/></a>I work on a computer for a living: in my current position I code Java, JavaScript, and SQL.  The codebase in this project is very large, so many different groups across several different companies are constantly modifying something.</p>
<p>Usually the incoming code we see from these other coders is ok.  But occasionally we see some astounding bad code that deserves to be put on a wall of shame.</p>
<p>I give you Exhibit A, a nice little snippet of JavaScript stupidity:<br />
<code>if ((document.Form1.theField.value == " ") ||<br />
    (document.Form1.theField.value == "  ") ||<br />
    (document.Form1.theField.value == "   ") ||<br />
    (document.Form1.theField.value == "    ") ||<br />
    (document.Form1.theField.value == "     ") ||<br />
    (document.Form1.theField.value == "      ") ||<br />
    (document.Form1.theField.value == "       ") ||<br />
    (document.Form1.theField.value == "        ") ||<br />
	.... (continues for 30 more lines!)<br />
</code><br />
<br style="clear:both;">Yikes!  I sometimes make small mistakes or typos, but this... this is <strong>insane</strong>.</p>
<p>It's more than incompetent: the programmer should have their keyboard access permanently revoked.  I wouldn't trust this person to write an e-mail without accidentally formating their hard drive.</p>
<p>Oh, and if you're wondering, the picture in this post is Bill Gates posing for a teenie magazine spread (back in the day).</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2007/06/21/stupid-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Letters From Tim</title>
		<link>http://mike.shannonandmike.net/2007/06/12/letters-from-tim/</link>
		<comments>http://mike.shannonandmike.net/2007/06/12/letters-from-tim/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 16:00:57 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[friends]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/2007/06/12/letters-from-tim/</guid>
		<description><![CDATA[Tim is a good friend of Shannon and mine that is currently training in preparation for service in Iraq. His mission is to provide medical evacuation capabilities to soldiers on the battlefield. They evacuate the soldiers by flying their Blackhawk helicopters unarmed into the battle to extract the wounded soldiers. I helped Tim and Tiffany [...]]]></description>
			<content:encoded><![CDATA[<p>Tim is a good friend of Shannon and mine that is currently training in preparation for service in Iraq.  His mission is to provide medical evacuation capabilities to soldiers on the battlefield. They evacuate the soldiers by flying their Blackhawk helicopters <strong>unarmed</strong> into the battle to extract the wounded soldiers.</p>
<p>I helped Tim and Tiffany set up a site so they could share a sort of public diary of their lives as they both walk the difficult paths ahead: <a href="http://lettersfromtim.com/">LettersFromTim</a>.<br />
<a href="http://lettersfromtim.com/"><img src='http://mike.shannonandmike.net/wp-content/uploads/2007/06/letter_from_tim.jpg' alt='Letters from Tim Stoner: Blackhawk Helicopter pilot, husband, father, and more' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2007/06/12/letters-from-tim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nathaniel Edmunds Website</title>
		<link>http://mike.shannonandmike.net/2007/06/03/nathaniel-edmunds-website/</link>
		<comments>http://mike.shannonandmike.net/2007/06/03/nathaniel-edmunds-website/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 02:09:59 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[friends]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/2007/06/03/nathaniel-edmunds-website/</guid>
		<description><![CDATA[It just occurred to me that I haven't yet posted about a big web development project that I just wrapped up: NathanielEdmunds.com. Nathaniel Edmunds is a brother-sister wedding photography team in the Indianapolis area. They regularly travel all over the midwest shooting weddings, and have often been brought along to destination weddings. Nate is the [...]]]></description>
			<content:encoded><![CDATA[<p>It just occurred to me that I haven't yet posted about a big web development project that I just wrapped up: <a href="http://nathanieledmunds.com/">NathanielEdmunds.com</a>.  Nathaniel Edmunds is a brother-sister wedding photography team in the Indianapolis area.  They regularly travel all over the midwest shooting weddings, and have often been brought along to destination weddings.</p>
<p>Nate is the perfect wedding photographer, able to capture moments without you even knowing he's there.  He's young and fun and just a damn good person.  And Tiffany is also an extraordinary person, able to coordinate and organize everything from the initial concept meeting to the final album design (and everything in between).  Shannon and I highly recommend their services.</p>
<p>Here's a screenshot of their new site:<br />
<a href="http://nathanieledmunds.com"><img src='http://mike.shannonandmike.net/wp-content/uploads/2007/06/nathaniel_edmunds.jpg' alt='Indianapolis wedding photographer Nathaniel Edmunds' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2007/06/03/nathaniel-edmunds-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 2.0 Released</title>
		<link>http://mike.shannonandmike.net/2006/10/25/firefox-20-installed/</link>
		<comments>http://mike.shannonandmike.net/2006/10/25/firefox-20-installed/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 21:52:14 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/2006/10/25/firefox-20-installed/</guid>
		<description><![CDATA[Yesterday, after months of intense development, Firefox 2.0 was finally released for public consumption. There aren't major changes to the user experience, but the tweaks they made are well worth the version bump. My favorite feature by far is the built-in spell checking. For bloggers (like myself) this is a beautiful thing - I can [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image498" src="http://mike.shannonandmike.net/wp-content/uploads/2006/10/firefox.jpg" alt="Firefox" align="right" style="border: 0px;"/>Yesterday, after months of intense development, <a href="http://www.mozilla.com/en-US/firefox/">Firefox 2.0</a> was finally released for public consumption.</p>
<p>There aren't major changes to the user experience, but the tweaks they made are well worth the version bump.  My favorite feature <strong>by far</strong> is the built-in spell checking.  For bloggers (like myself) this is a beautiful thing - I can now spell check right here in the browser, automatically.</p>
<p>If you are still using IE 6, go <a href="http://www.mozilla.com/en-US/firefox/">download and install Firefox</a> now.  If you have the newly release <a href="http://www.microsoft.com/windows/ie/default.mspx">IE 7</a> (which is a laughable half-ass copy of Firefox) consider trying out it's free, open source, faster, and more friendly competitor.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2006/10/25/firefox-20-installed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MakeItForMe.com Updated</title>
		<link>http://mike.shannonandmike.net/2006/08/02/makeitformecom-updated/</link>
		<comments>http://mike.shannonandmike.net/2006/08/02/makeitformecom-updated/#comments</comments>
		<pubDate>Thu, 03 Aug 2006 03:42:05 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/2006/08/02/makeitformecom-updated/</guid>
		<description><![CDATA[Over the past couple years I have been doing a little web work from time to time for various smaller websites. It's nothing special, but I enjoy it. One of the sites I have designed and help maintain is MakeItForMe.com. MakeItForMe.com - which creates cute custom notepads, baby announcements, and cards - was just recently [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image313" src="http://mike.shannonandmike.net/wp-content/uploads/2006/08/makeitforme.jpg" alt="Make It For Me" align="right"/>Over the past couple years I have been doing a little web work from time to time for various smaller websites.  It's nothing special, but I enjoy it.  One of the sites I have designed and help maintain is MakeItForMe.com.</p>
<p>MakeItForMe.com - which creates <a href="http://makeitforme.com">cute custom notepads, baby announcements, and cards</a> -  was just recently updated with a lot of new samples.  Just thought I would let you guys know.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2006/08/02/makeitformecom-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CHI2006: First Day</title>
		<link>http://mike.shannonandmike.net/2006/04/24/chi2006-first-day/</link>
		<comments>http://mike.shannonandmike.net/2006/04/24/chi2006-first-day/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 04:00:58 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[chi2006]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[thesis]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/2006/04/24/chi2006-first-day/</guid>
		<description><![CDATA[I attended the pre-conference "Networking Gathering" last night, mostly because there was free food provided, and was glad to see that most people were just like me: technology geeks. So when I awoke this morning I was looking forward to an interesting opening day at CHI2006. Scott Cook (co-founder of Intuit) gave the opening welcome [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mike.shannonandmike.net/wp-content/uploads/images/2006.04.24.jpg" style="float:right;">I attended the pre-conference "Networking Gathering" last night, mostly because there was free food provided, and was glad to see that most people were just like me: technology geeks.  So when I awoke this morning I was looking forward to an interesting opening day at CHI2006.</p>
<p>Scott Cook (co-founder of Intuit) gave the opening welcome speech.  He focused on how his company has found innovations through allowing employees to innovate without management breathing down their necks.  Like all good CEOs he was able to say the obvious, but in an entertaining manner.  He seemed like a genuinely nice guy who ran a genuinely nice company.</p>
<p>Around 11:30am Tom (my adviser) and I met to go over my presentation.  I was still a bit nervous, but my experiences at the conference so far were positive and I wasn't intimidated.  After we finished I snuck into the "Navigation" session, catching the only remotely interesting paper titled <em><a href="http://translate.google.com/translate?u=http%3A%2F%2Finsitu.lri.fr%2F%7Eappert%2FOrthoZoom%2F&#038;langpair=fr%7Cen&#038;hl=en&#038;safe=off&#038;ie=UTF-8&#038;oe=UTF-8&#038;prev=%2Flanguage_tools" title="Link to OrthoZoom's translated french page">OrthoZoom Scroller: 1D Multi-Scale Navigation</a></em>.  Not terribly amazing, but probably useful for well-index material (e.g. text with chapters).</p>
<p>My session, called "alt.chi",  started around 4:30 and I was told that it often drew a large crowd because papers in this type of session were usually entertaining, diverse, and not always mainstream CHI material.  Judging from <a href="http://mike.shannonandmike.net/wp-content/uploads/images/2006.04.24/01.jpg" title="My session before the tidal wave of people.">what the room looked like ten minutes before the start of my session</a> I was a little disappointed with the turnout.  Luckily the room filled up quickly, and by the time it was my turn to take the mic the room was standing room only (sorry, I would have taken a picture of the audience but I don't have large <a href="http://www.flickr.com/photos/diegovelasco/78040740/" title="Now THIS takes real cojones">cojones</a>).</p>
<p>The presentation itself (<a href="http://shannonandmike.net/misc/ac242-barron_presentation.pdf">PDF</a>, or <a href="http://shannonandmike.net/misc/ac242-barron_presentation.ppt">PPT</a> if you want my notes) went smooth enough; my voice cracked twice during the first three slides, and I almost made a comment about going through puberty again before thinking it inappropriate.  I came back strong though and by the end I felt very confident that I had done a "good" job.  The audience seemed to enjoy the presentation as well, and it felt very rewarding afterward as people came up and complimented my work.  Cool.  If you're curious you can see <a href="http://mike.shannonandmike.net/wp-content/uploads/images/2006.04.24/02.jpg" title="All of the presenters from my session">a picture of all of the presenters</a> from my session.</p>
<p>I returned to the conference hall during the evening for a reception.  They had <a href="http://mike.shannonandmike.net/wp-content/uploads/images/2006.04.24/04.jpg" title="Street performers roamed around and, well, performed for us">entertainment</a> to go along with the <a href="http://mike.shannonandmike.net/wp-content/uploads/images/2006.04.24/03.jpg">posters</a> and other booths being presented.  After eating my fill of the free finger food and imbibing my two free drinks I slumped off to our hotel room for a good night sleep.  I still had 3 days to go!</p>
<p><em>[note: This post has been backdated to correspond with the date of the events described]</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2006/04/24/chi2006-first-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going to Montreal</title>
		<link>http://mike.shannonandmike.net/2006/04/22/going-to-montreal/</link>
		<comments>http://mike.shannonandmike.net/2006/04/22/going-to-montreal/#comments</comments>
		<pubDate>Sat, 22 Apr 2006 05:01:20 +0000</pubDate>
		<dc:creator>Mike B.</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[thesis]]></category>

		<guid isPermaLink="false">http://mike.shannonandmike.net/2006/04/22/going-to-montreal/</guid>
		<description><![CDATA[Shannon and I will be traveling to Montreal for CHI 2006, a fairly large annual conference on human factors in computing systems. The weekend will be spent exploring the city with Shannon (though it looks like rain on Sunday). On Monday I will present work that I did (from last year) during one of their [...]]]></description>
			<content:encoded><![CDATA[<p>Shannon and I will be traveling to Montreal for <a href="http://chi2006.org/">CHI 2006</a>, a fairly large annual conference on human factors in computing systems.  The weekend will be spent exploring the city with Shannon (though it looks like rain on Sunday).  On Monday I will present work that I did (from last year) during one of their <a href="http://www.chi2006.org/sessiondetail.php?sessionid=1312">alt.chi sessions</a>, which are like the regular CHI sessions but much less important.</p>
<p>The paper I am presenting is about <em>RoomBugs</em>, one of three "embedded phenomenon" that my small tech group at UIC have created for use in classrooms.  If you're interested you can <a href="http://shannonandmike.net/misc/ac242-barron.pdf">read my accepted paper</a>, but I assure you it's nothing earth-shattering.  Up until this morning (when I found out that the hall I will be presenting in can hold 250 people) I wasn't very nervous about my presentation.  Now I've got butterflies in places that butterflies shouldn't fly.</p>
<p>I'll keep you guys posted on any interesting projects I run across - I'm signed up for a few interactive labs and panels, and I am looking forward to the experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://mike.shannonandmike.net/2006/04/22/going-to-montreal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

