<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Running as Root</title>
	
	<link>http://www.runningasroot.com/blog</link>
	<description>My own observations, reviews, and stuff I'm working on.</description>
	<lastBuildDate>Wed, 01 Feb 2012 00:00:00 PST</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RunningAsRoot" /><feedburner:info uri="runningasroot" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://creativecommons.org/licenses/by-nc-sa/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item><title>Links for 2012-01-31 [del.icio.us]</title><link>http://feedproxy.google.com/~r/RunningAsRoot/~3/2Q1xlIt79JA/wyscan</link><pubDate>Wed, 01 Feb 2012 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/wyscan#2012-01-31</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jasonstechbits.blogspot.com/2011/04/adding-rich-dynamic-data-to-jquery.html"&gt;Tech Bits: Adding Rich Dynamic Data to jQuery Mobile Apps&lt;/a&gt;&lt;br/&gt;
Hidden near the bottom are some good details for preventing 302 redirects for AJAX requests when the user is not authenticated.  Uses DelegatingAuthenticationEntryPoint.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/2624015/spring-mvc-where-to-place-validation-and-how-to-validation-entity-references"&gt;java - Spring MVC: Where to place validation and how to validation entity references - Stack Overflow&lt;/a&gt;&lt;br/&gt;
Accepted answer has a very good description of an alternative to using data transfer objects under Spring MVC that avoids data binding and validation issues pretty well.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jstree.com/"&gt;jsTree &amp;raquo; Home&lt;/a&gt;&lt;br/&gt;
Pretty sweet javascript tree implementation as a jQuery plugin.  Lots of hooks for delayed loading of large datasets, handling drag and drop, added classes for styling, etc.&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/wyscan#2012-01-31</feedburner:origLink></item><item><title>Links for 2011-12-29 [del.icio.us]</title><link>http://feedproxy.google.com/~r/RunningAsRoot/~3/5S9mP5C5Gj8/wyscan</link><pubDate>Fri, 30 Dec 2011 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/wyscan#2011-12-29</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://discussion.oslund.ca/2011/01/a-simple-jquery-ajax-autosuggest-plugin/"&gt;An Easy-To-Use jQuery-Ajax Autosuggest Plugin &amp;laquo; Discussion at oslund.ca&lt;/a&gt;&lt;br/&gt;
Possible alternative to default jquery-ui auto suggest.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://devheart.org/articles/jquery-customizable-layout-using-drag-and-drop/"&gt;jQuery: Customizable layout using drag and drop - DevHeart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/wyscan#2011-12-29</feedburner:origLink></item><item><title>Links for 2011-12-22 [del.icio.us]</title><link>http://feedproxy.google.com/~r/RunningAsRoot/~3/XmzsQzqAakA/wyscan</link><pubDate>Fri, 23 Dec 2011 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/wyscan#2011-12-22</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://explainextended.com/2010/12/24/postgresql-parametrizing-a-recursive-cte/"&gt;PostgreSQL: parametrizing a recursive CTE | EXPLAIN EXTENDED&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/wyscan#2011-12-22</feedburner:origLink></item><item><title>Links for 2011-12-13 [del.icio.us]</title><link>http://feedproxy.google.com/~r/RunningAsRoot/~3/wEojrfHa6_Q/wyscan</link><pubDate>Wed, 14 Dec 2011 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/wyscan#2011-12-13</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://wearepandr.com/labs/colour_bookmark"&gt;Colour Tool | PANDR&lt;/a&gt;&lt;br/&gt;
Use the Colour Bookmark tool to find out the colour palette of the website you're currently on.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.azulsystems.com/dev_resources/jhiccup"&gt;jHiccup Java Performance Analysis&lt;/a&gt;&lt;br/&gt;
jHiccup is an open source tool designed to measure the pauses and stalls (or “hiccups”) associated with an application’s underlying Java runtime platform.&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/wyscan#2011-12-13</feedburner:origLink></item><item><title>Links for 2011-11-27 [del.icio.us]</title><link>http://feedproxy.google.com/~r/RunningAsRoot/~3/3YaHwhZkbls/wyscan</link><pubDate>Mon, 28 Nov 2011 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/wyscan#2011-11-27</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.meganerd.ca/site/node/30"&gt;Changing the date display format in Ubuntu 10.04 LTS | Meganerd.Ca&lt;/a&gt;&lt;br/&gt;
Some info on how to get a custom locale file in place in Ubuntu.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://permalink.gmane.org/gmane.linux.debian.devel.glibc/21152"&gt;Bug#415961: locales: Sorting with pt_BR ignoring spaces - it shouldn't&lt;/a&gt;&lt;br/&gt;
Example of how to change a locale file's collation to not ignore spaces.&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/wyscan#2011-11-27</feedburner:origLink></item><item><title>Links for 2011-11-17 [del.icio.us]</title><link>http://feedproxy.google.com/~r/RunningAsRoot/~3/fYCzMCvTQgI/wyscan</link><pubDate>Fri, 18 Nov 2011 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/wyscan#2011-11-17</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/jgalloway/archive/2010/01/21/using-cdn-hosted-jquery-with-a-local-fall-back-copy.aspx"&gt;Using CDN Hosted jQuery with a Local Fall-back Copy - Jon Galloway&lt;/a&gt;&lt;br/&gt;
When you consider that this is offered as a free service, why wouldn’t you be using it?&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/wyscan#2011-11-17</feedburner:origLink></item><item><title>Links for 2011-11-14 [del.icio.us]</title><link>http://feedproxy.google.com/~r/RunningAsRoot/~3/V1JyV-Ql_88/wyscan</link><pubDate>Tue, 15 Nov 2011 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/wyscan#2011-11-14</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://lesscss.org/"&gt;LESS &amp;laquo; The Dynamic Stylesheet language&lt;/a&gt;&lt;br/&gt;
LESS extends CSS with dynamic behavior.&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/wyscan#2011-11-14</feedburner:origLink></item><item>
		<title>Geek TGI Friday's Flair</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/PtbOKm6kzLk/</link>
		<comments>http://www.runningasroot.com/blog/2011/09/19/geek-tgi-fridays-flair/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 04:49:12 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=504</guid>
		<description><![CDATA[TGI Friday's walls are littered with "vintage" wall decor. Red Lobster has old lobster traps and fish photos all over their walls. Then it hit me: geek hangouts need their own brand of wall flair. Why not outdated tech books? I've got a ton of books on technologies that aren't in widespread use any more. [...]]]></description>
			<content:encoded><![CDATA[<p>TGI Friday's walls are littered with "vintage" wall decor.  Red Lobster has old lobster traps and fish photos all over their walls.  Then it hit me: geek hangouts need their own brand of wall flair.  Why not outdated tech books?</p>
<p>I've got a ton of books on technologies that aren't in widespread use any more.  I'd donate them but even Goodwill doesn't want stuff like that.  When you think about it it makes sense.  So where do they go?  The landfill?  I like to pretend I'm much more environmentally friendly than that.</p>
<p>Some hangout for geeks needs to step up and offer a free appetizer or something for anyone that brings in a tech book that was published before, say, 2000?  That seems like a reasonable cutoff.  Then all the geeky people can laugh at the titles lining the shelves above their tables.  "PowerBuilder?  Oh, shit!  I wrote something in that once!" (Apologies to Sybase, but you really need to give up on that shit.)</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2011%2F09%2F19%2Fgeek-tgi-fridays-flair%2F&amp;title=Geek%20TGI%20Friday%27s%20Flair" id="wpa2a_2"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=PtbOKm6kzLk:xi56gyA8YWU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=PtbOKm6kzLk:xi56gyA8YWU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=PtbOKm6kzLk:xi56gyA8YWU:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2011/09/19/geek-tgi-fridays-flair/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2011/09/19/geek-tgi-fridays-flair/</feedburner:origLink></item>
		<item>
		<title>Thoughts on Call of Duty Elite</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/jITzFoxv_-Y/</link>
		<comments>http://www.runningasroot.com/blog/2011/07/20/thoughts-on-call-of-duty-elite/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 19:49:50 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Community Management]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Random Thoughts]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=496</guid>
		<description><![CDATA[For those of you that may not know Activision recently announced an online service called "Call of Duty Elite". This is directly related to their Call of Duty game series and works on kind of a freemium model. Ultimately I think it'll be a cool idea. However, the way they announced it to their customers [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you that may not know Activision recently announced an online service called "<a href="http://www.callofduty.com/elite">Call of Duty Elite</a>".  This is directly related to their Call of Duty game series and works on kind of a freemium model.  Ultimately I think it'll be a cool idea.  However, the way they announced it to their customers lead to a pretty big negative reaction.  Recently I recorded my thoughts (over a Call of Duty: Black Ops game play) on how they could have handled the announcement better, not abused their community managers in the process, and even whether or not they should build some of this stuff themselves (in particular in the social networking area of things).</p>
<p>If you're interested you can see the video on <a href="http://www.youtube.com/watch?v=6FbWx8dBHy8">my YouTube channel</a> or via the embedded player below:</p>
<p><iframe width="560" height="349" src="http://www.youtube.com/embed/6FbWx8dBHy8" frameborder="0" allowfullscreen></iframe></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2011%2F07%2F20%2Fthoughts-on-call-of-duty-elite%2F&amp;title=Thoughts%20on%20Call%20of%20Duty%20Elite" id="wpa2a_4"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=jITzFoxv_-Y:lyzBye3ZgGk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=jITzFoxv_-Y:lyzBye3ZgGk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=jITzFoxv_-Y:lyzBye3ZgGk:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2011/07/20/thoughts-on-call-of-duty-elite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2011/07/20/thoughts-on-call-of-duty-elite/</feedburner:origLink></item>
		<item>
		<title>Better Programmer Interviews</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/k4LyV2_4Zm0/</link>
		<comments>http://www.runningasroot.com/blog/2011/04/14/better-programmer-interviews/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 18:50:54 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=491</guid>
		<description><![CDATA[One of my former co-workers wrote some of his thoughts on crappy interview questions as well as some advice on improving the situation. My latest job was the first time I had to write code during the interview. It was interesting although I think the problem was a bit trivial. The thing I liked about [...]]]></description>
			<content:encoded><![CDATA[<p>One of my former co-workers wrote some of <a href="http://ericjturley.blogspot.com/2011/04/crappy-interview-questions.html">his thoughts</a> on crappy interview questions as well as some advice on improving the situation.  My latest job was the first time I had to write code during the interview.  It was interesting although I think the problem was a bit trivial.  The thing I liked about it was that it started with an OOAD design question about a specific problem and then segued into you coding your solution.  It was kind of a nice "eat your own design dog food while I watch" moment.</p>
<p>However, when I read the post I mentioned above it occurred to me that you might be able to use open source projects to improve on this a bit.  The idea I had was to use an open source library on which you depend and have the interviewee either address a bug or add a feature that you've wanted.  This can easily be a take home type of question as well.  The plus is you get to do a code review on their submission <strong>and</strong> get a feature you want.  The open source software community benefits as well.  It's just wins all around, baby!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2011%2F04%2F14%2Fbetter-programmer-interviews%2F&amp;title=Better%20Programmer%20Interviews" id="wpa2a_6"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=k4LyV2_4Zm0:JpisOifoIPE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=k4LyV2_4Zm0:JpisOifoIPE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=k4LyV2_4Zm0:JpisOifoIPE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2011/04/14/better-programmer-interviews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2011/04/14/better-programmer-interviews/</feedburner:origLink></item>
		<item>
		<title>Austin Java Developer Job Market</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/o56wYe8dChs/</link>
		<comments>http://www.runningasroot.com/blog/2010/08/23/austin-java-developer-job-market/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 20:50:31 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=461</guid>
		<description><![CDATA[I stopped getting paid some time in late January of 2010. My "former" company still paid for my health care while they hoped to bring me back on "very soon." Between then and roughly the beginning of July I kind of just hung out and piddled around. I wrote an Android game for the hell [...]]]></description>
			<content:encoded><![CDATA[<p>I stopped getting paid some time in late January of 2010.  My "former" company still paid for my health care while they hoped to bring me back on "very soon."  Between then and roughly the beginning of July I kind of just hung out and piddled around.  I wrote an Android game for the hell of it (still haven't bothered publishing it), read a few books, and played a ton of Call of Duty.</p>
<p>Around the beginning of July my company decided it "wasn't fair" to me to pay for my health care any longer.  I think it took them that long to realize that I have an amazing ability to sit on my ass and do nothing as long as I have health care.  </p>
<p>Since the beginning of July I've been looking for a Java developer position in the Austin area.  That is, I put my resume (sans funny accented characters) up on a couple of job sites and have been mostly waiting for recruiters to come to me.  Okay, so I was only half looking.  Through an ex-coworker I landed a 100% telecommute contracting job for the time being.  Meanwhile, I thought I'd write up a brief summary of what it's like to deal with the recruiters that find you on both <a href="http://dice.com">Dice</a> and <a href="http://monster.com">Monster</a> (soon to be referred to as "D&#038;M").<br />
<h3>One Job List to Find Them&#8230;</h3>
<p>Apparently 95% of the recruiters on D&#038;M get their jobs from the same source.  They just spam emails and calls to any candidates that even come close.  That means for any one position you will receive calls from about a dozen recruiters trying to fill the very same position.  Given the recruiters' often complete absence of any kind of technical understanding they can't even screen me properly.  I'm not sure what value they're adding or if they ever even successfully place a candidate.<br />
<h3>Hi! My name is.. (what?) My name is.. (who?)</h3>
<p>The next thing that gets me is that about 75% of the recruiters using D&#038;M are located in New Jersey and are originally from another country guessing from their accents.  I'd guess from their names (Adwait, Aneesh, Kaushal, Kavitha, Prashant, Raghu, Raj, Rajiv, Susheel, Tervinder) that it may be India.  This means they apparently 1) don't know how big Texas is, 2) don't know how big the United States is, and 3) can't read the words "I am not willing to relocate" on my resume.  As such I get a lot of inquiries about jobs that would require anywhere from a 3 hour commute all the way up to a whopping 27 hour commute.  That's a hell of a drive.  They seem honestly surprised each of the 12 times a day that I explain to each of them that Austin is 3 hours away from Dallas.  It's an honest mistake.</p>
<p>The other thing is that I typically get an email followed immediately by a call from the same person.  They're really hot and heavy to talk to me.  Once I explain that I'm not interested I get a call back from the exact same person about 10% of the time.  I guess he lost his place on his call sheet.<br />
<h3>The Crown Prince of AT&#038;T Needs My Help</h3>
<p>And finally there are those impossible to fill jobs.  AT&#038;T and Bank of America are hiring in the area.  Due to their complicated, highly corporate rehire screening policy all recruiters with thick foreign accents are required to get social security numbers from all prospects as soon as humanly possible.  For some reason this feels weird to me so I've never gotten to see what happens if I actually give my SSN to them.  But since these jobs must pay a premium to the recruiter and are all but unfillable due to the SSN requirement they account for about 10% of all calls by themselves.<br />
<h3>But You Seem So Normal</h3>
<p>On the plus side I get about one call per week from someone that honestly seems to know what they're talking about regardless of where they're located or from.  They can ask all the right questions, seem to understand my answers, and actually ask what it is I'm looking for.  Unfortunately they just don't have any opportunities in which I'm interested.  If you are good and are willing to work (yet again) for a dysfunctional organization you can get a job in about 4 weeks.  If you're willing to work a little cheaper than what you're worth then you can probably trim that down to 2 weeks.</p>
<p>So in case any of you were wondering, it seems to be a pretty okay time to be looking for software development work in Austin.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2010%2F08%2F23%2Faustin-java-developer-job-market%2F&amp;title=Austin%20Java%20Developer%20Job%20Market" id="wpa2a_8"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=o56wYe8dChs:zEbo2lzmSig:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=o56wYe8dChs:zEbo2lzmSig:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=o56wYe8dChs:zEbo2lzmSig:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2010/08/23/austin-java-developer-job-market/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2010/08/23/austin-java-developer-job-market/</feedburner:origLink></item>
		<item>
		<title>An Embarrassment of Fixes</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/ZDGGSbKTDP4/</link>
		<comments>http://www.runningasroot.com/blog/2010/08/14/an-embarrassment-of-fixes/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 00:18:51 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=476</guid>
		<description><![CDATA[I finally broke down and picked up a copy of Battlefield: Bad Company 2 for the XBox. I do love me some multi-player first person shooters. When you try to play online multi-player the game attempts to connect to EA's servers. Unfortunately I could not for the life of me connect. I tried multiple times, [...]]]></description>
			<content:encoded><![CDATA[<p>I finally broke down and picked up a copy of <a href="http://www.amazon.com/Battlefield-Bad-Company-2-Xbox-360/dp/B001QXNBJM/ref=sr_1_1?ie=UTF8&#038;s=videogames&#038;qid=1281830859&#038;sr=8-1">Battlefield: Bad Company 2</a> for the XBox.  I do love me some multi-player first person shooters.  When you try to play online multi-player the game attempts to connect to <a href="http://www.ea.com/">EA</a>'s servers.  Unfortunately I could not for the life of me connect.  I tried multiple times, reset my XBox, reset my router, etc.  A couple of minutes of Google searches led me to this <a href="http://adultgamingenthusiasts.com/forums/p/37893/480879.aspx">little gem</a>.  It says that the EA proposed fix for this problem is to disconnect from XBox Live, reset your system clock to 2005, log back into XBox Live, and then try the multi-player mode again.  It sounds stupid but I tried it and it actually worked.  </p>
<p>As a programmer I feel embarrassed for EA.  That's a stupid fix.  That's the best they can do?  As someone interested in user experience I feel even more embarrassed for them.  Any hope of using your product right out of the box requires someone to either Google around for this idiotic fix or to contact your support group and have them suggest this idiotic fix.  That blows.  I would think a company of that size could do better.  The best case scenario for any hope of a defense is to somehow claim that Microsoft is to blame.  That'd be a stretch since every other online multi-player game I have works right out of the box.  Oh well.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2010%2F08%2F14%2Fan-embarrassment-of-fixes%2F&amp;title=An%20Embarrassment%20of%20Fixes" id="wpa2a_10"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=ZDGGSbKTDP4:OhG808JsYsc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=ZDGGSbKTDP4:OhG808JsYsc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=ZDGGSbKTDP4:OhG808JsYsc:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2010/08/14/an-embarrassment-of-fixes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2010/08/14/an-embarrassment-of-fixes/</feedburner:origLink></item>
		<item>
		<title>MP3s and Ratings</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/eP5RtDmqlgw/</link>
		<comments>http://www.runningasroot.com/blog/2010/08/13/mp3s-and-ratings/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 15:14:20 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Community Management]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=470</guid>
		<description><![CDATA[Don't you hate when you put ratings on most of the songs in your massive music library only to find that you need to do it again when you switch players? On Ubuntu I use Banshee which allows you to save ratings to the ID3 tag right in the MP3 file. That means those ratings [...]]]></description>
			<content:encoded><![CDATA[<p>Don't you hate when you put ratings on most of the songs in your massive music library only to find that you need to do it again when you switch players?  On Ubuntu I use <a href="http://banshee.fm/">Banshee</a> which allows you to save ratings to the ID3 tag right in the MP3 file.  That means those ratings are available from any Banshee player.  Nice.</p>
<p>The problem is that I'm working a contract gig that sort of requires Windows (well, they think they do at least) and I don't fully trust the port in progress of Banshee to Windows.  So, I'm using iTunes (which I hate).  I think it'd be nice if other players could use that same custom ID3 tag to use the ratings but I realize that many people have an issue with subjective information (the ratings) being stored in a repository meant to store common supposedly objective information about the song itself.  Then there's the whole issue of standardizing on the custom tag.  In a perfect world more stuff would use a plugin based design and you could simply write an extension to get the ratings from wherever you wanted.</p>
<p>A simple import / export to an agreed upon format could also sort of solve the problem but you can't get people to agree on things and you would then have some annoying synchronization issues.  I think it'd be swell if something like <a href="http://last.fm">last.fm</a> acted as that song and ratings repository since they're a bit of a de facto standard supported by most MP3 players.  It seems simple to stick the rating in there when you <a href="http://en.wiktionary.org/wiki/scrobble">scrobble</a> whatever you're listening to.  Then it's just a hop, skip, and a jump to an import / export to get up and running.  It also feels like it'd add some value to their existing service.  Somebody get on that&#8230;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2010%2F08%2F13%2Fmp3s-and-ratings%2F&amp;title=MP3s%20and%20Ratings" id="wpa2a_12"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=eP5RtDmqlgw:8fjP21kED0U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=eP5RtDmqlgw:8fjP21kED0U:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=eP5RtDmqlgw:8fjP21kED0U:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2010/08/13/mp3s-and-ratings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2010/08/13/mp3s-and-ratings/</feedburner:origLink></item>
		<item>
		<title>The Tech That Should Not Be</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/gF5kTYpFQVU/</link>
		<comments>http://www.runningasroot.com/blog/2010/08/12/the-tech-that-should-not-be/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 04:40:26 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Community Management]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=464</guid>
		<description><![CDATA[I just read this post about a thing called the Espresso Book Machine that allows a bookstore to print a fully bound book in minutes. The idea is that they could print an out of stock book for you rather than ordering it. I have mixed emotions about this. Nothing pisses me off more than [...]]]></description>
			<content:encoded><![CDATA[<p>I just read <a href="http://blog.makezine.com/archive/2010/08/print_books_while_you_wait.html">this post</a> about a thing called the Espresso Book Machine that allows a bookstore to print a fully bound book in minutes.  The idea is that they could print an out of stock book for you rather than ordering it.</p>
<p>I have mixed emotions about this.  Nothing pisses me off more than going to an old fashioned bookstore in search of some instant gratification only to find that they don't have the book I'm looking for.  "We can order it for you," they say.  Well, I can <a href="http://www.amazon.com">order it</a> for me too.  Only, when I order it for me it comes to my house and not to your stupid little store (and I don't pay sales tax (or shipping fees usually (nested parens FTW))).  This print on demand idea seems pretty boner inducing on the surface.</p>
<p>Unfortunately the kinds of technology that make this dream possible also instantly make it unnecessary.  In a world where this machine can acquire and store the number of books required to make it useful it has already been replaced by the ability to instantly purchase, download, and read the book on an e-reader without leaving my precious home or touching any dirty, sweaty money.  Sure it will probably still be successful but only because of the Luddite fetishists that insist on consuming their information the old fashioned way.</p>
<p>This whole thing reminds me of those stupid <a href="http://www.redbox.com/">redbox</a> DVD dispensaries.  In any sane world they would have never existed.  I have a relatively high speed Internet connection and an abundance of digital cash.  Can't I just instantly stream those movies directly to my viewer of choice <strong>for a the same reasonable price</strong>?  Ah, the devil's in the (bold) details.  I have a variety of ways to pseudo instantly watch movies but the only reasonably priced option is Netflix.  Unfortunately their instant queue selection needs a little work.  Knock down that barrier and the only benefit of redbox is to satisfy weirdos that reached for the technological dream and missed, coming up with a beer in one hand and their disk in the other.</p>
<p>I digress.  To sum up, in a perfect world everything would be peer reviewed, indexed, searchable, remixable, and digitally available from the comfort of my own home.  I could watch new movies on my own television without someone kicking the back of my seat or mistaking the theater for open mic night at the Laughatorium.  "<a href="http://en.wikiquote.org/wiki/The_Matrix">And I wanna be rich. You know, someone important … like an actor.</a>"</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2010%2F08%2F12%2Fthe-tech-that-should-not-be%2F&amp;title=The%20Tech%20That%20Should%20Not%20Be" id="wpa2a_14"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=gF5kTYpFQVU:VZJU_lvnr9A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=gF5kTYpFQVU:VZJU_lvnr9A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=gF5kTYpFQVU:VZJU_lvnr9A:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2010/08/12/the-tech-that-should-not-be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2010/08/12/the-tech-that-should-not-be/</feedburner:origLink></item>
		<item>
		<title>Job Postmortem #2</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/F-B3_dQLMnY/</link>
		<comments>http://www.runningasroot.com/blog/2010/08/03/job-postmortem-2/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 14:00:27 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Community Management]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Random Thoughts]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=449</guid>
		<description><![CDATA[About the Company Now that I'm done with my current job it's again time to reflect on what I learned and what went wrong. I've changed the names to protect the innocent. I spent about 2 years at "Company V." They make a retirement planning tool. It allows you to do some nice "what if" [...]]]></description>
			<content:encoded><![CDATA[<h3>About the Company</h3>
<p>Now that I'm done with my current job it's again time to reflect on what I learned and what went wrong.  I've changed the names to protect the innocent.  I spent about 2 years at "Company V."    They make a retirement planning tool.  It allows you to do some nice "what if" scenarios to determine whether or not you're on track to do all those things you dream of someday doing after you retire.  It's much more sophisticated than the crappy one or two question forms on the website of most financial planning companies.</p>
<p>It's a great idea in my opinion.  It has a lot of potential.  For the record, I like the people at Company V and I love the product idea.  I just think things could be better.</p>
<p>Now for the lessons.  I won't bother talking about the many issues I had about software development methodology at Company V.  Instead I'll just talk about the product side of things.<br />
<h3>Analytics, Stupid</h3>
<p>The first is a simple one: collect some fucking analytics.  Any discussion about how important a feature is, why people aren't signing up, which type of sign up button is more attractive are all bullshit if you don't have some way of collecting data about your visitors.  We collected almost zero data about our visitors.  What was our conversion rate?  Fuck if I know.  How many people abandoned the sign up process once they saw all of the data we required?  Fuck if I know.  That's the answer to every one of those questions because there's no goddamn data.</p>
<p>I can't talk about analytics as well as these two videos: <a href="http://www.techstars.tv/watch/2714618-dave-mcclure-startup-metrics-for-pirates">Startup Metrics for Pirates</a> and <a href="http://thinkvitamin.com/business/mike-mcderment-of-freshbooks-on-web-app-marketing-metrics/">Web App Marketing Metrics</a>.  They're pretty short and definitely worth a few minutes of your time.<br />
<h3>Multiple Masters</h3>
<p>Company V has two very different target customers.  Home users and financial advisors.  If you are serving two very disparate customer types you will wind up with some very serious conflicts.  Each customer type is a reason not to do something for the other customer or a great way to more than double your effort in the rare case you actually get to work on a feature.</p>
<p>In the case of Company V it was that they have a feature called "offline mode."  This allowed financial advisors to take their laptop to locations where they don't have an Internet connection and sit down with a customer, going over their retirement plan.  This was accomplished via a desktop application written in Java.</p>
<p>Getting Java working on someone's computer is an unnecessary hurdle and places without Internet connections only exists in movies.  Offline mode is not useful to the home user.  I would argue that it's not sufficiently useful to the financial advisor either.  However, it was a feature that kept us from doing a lot of cool stuff because we had to have it.  Yes, this feature could be accomplished in a better way but the need to keep the feature presented unnecessary overhead and complexity in my opinion.<br />
<h3>Too Many Hurdles</h3>
<p>There's just too much shit for someone to do before they can use the product.  They have to sign up for an account, install the Java plug-in, download the application (or launch the applet) which is over 100 megabytes, and figure out how to use your product.  </p>
<p>The more of those steps you can eliminate the better.  Each one of those steps throws away half of your potential users.  They just go bye-bye.  The observant reader will realize that I just pulled that number out of my ass since Company V doesn't collect that kind of data.  Prove me wrong.<br />
<h3>The Things I'd Do</h3>
<p>Short and sweet.  Here's a list of things I would have done that I firmly believe would make for a better product for Company V.</p>
<h4>Web App</h4>
<p>Easy.  Ditch the desktop application and make it a web application.  Use something like GWT so you can get some good use out of your current Java development staff and have a relatively rich UI for your user.  No installation on your computer, no downloading.  Nice.  You could even use Gears to get some workable solution for offline mode.<br />
<h4>Use It Before You Register</h4>
<p>If you have that nice web application, let people start making their retirement plan without even signing up.  Just start using the product.  Of course it would be nice if your product guided people through unfamiliar territory, but that's a given.  </p>
<p>Once you've proven your value to them then you can try and get them to create an account if that's really your sort of thing.<br />
<h4>Don't Even Register</h4>
<p>Even better is to let them sign in with their Facebook, Google, Yahoo!, or OpenID login.  Create an imperfect, incomplete profile off of whatever data you've got and bug them later to fill in the blanks.  So what if you don't have their email address?  Why the hell do you want to email them anyway?<br />
<h4>Stop Emailing People</h4>
<p>We collected email as part of the registration so we could bother our customers.  Why?  If you have a product announcement or a change in your training schedule why not just Tweet it?  Or post an update on your product's Facebook page?  Fine, let them put in their email if they want to be updated that way or need a password reminder (assuming they aren't using a 3rd partly authentication mechanism), but don't demand it.<br />
<h4>Be the Tool</h4>
<p>With retirement planning there are a lot of financial advisors that blog about how cool they are and how huge their planning penises are.  We should have helped them do that.  Our web app should have allowed embedding of whole or partial plans into web pages.  If you want to show the benefits of a 529 savings plan create a couple of portfolios and embed the relevant portions into your blog.  Company V would have a teeny tiny link in there so they get a little free press and the financial planner gets a tool that makes displaying unwieldy information a little easier.  It's one of those win-win things I hear so much about.<br />
<h4>Be the Tool Part 2</h4>
<p>If you go to a financial planner they need to ask you roughly 3500 questions (I made that up) to determine the current state of your financial clusterfuck.  Company V helped them do this by creating a PDF that was 10 megabytes and 40 pages long.  The advisor would email it to the potential customer, pray it doesn't bounce because it's fucking huge, the customer would print it out, fill out the relevant portions, take it to the financial advisor who then hands it off to some data entry monkey to type into our desktop application.  Simple, no?</p>
<p>Yeah, to hell with that.  Use the no registration web application to allow the financial advisor to email, host, whatever a guided process to determine the relevant data and collect it directly from the user and dump it straight into the Company V application.  The advisor has access to it immediately and the end user doesn't see most of those irrelevant questions.  Throw in some tracking codes so the advisor can see the ROI for different ad campaigns.  Let the advisor create a special URL that they can include in every email signature or even print right on their business card that takes the potential customer right to where they need to go.  You get the idea.<br />
<h3>Nice Ideas, But&#8230;</h3>
<p>In fairness Company V thought some of my ideas were good.  They just weren't good enough to actually do.  There was no shortage of excuses.  We have to keep offline mode, there are more important features to work on, who's going to pay for the development, etc.  I still think each of these is potentially a great idea in general and for Company V especially.  My next task is to find a place to work that agrees with me.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2010%2F08%2F03%2Fjob-postmortem-2%2F&amp;title=Job%20Postmortem%20%232" id="wpa2a_16"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=F-B3_dQLMnY:kUCVCHrdidk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=F-B3_dQLMnY:kUCVCHrdidk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=F-B3_dQLMnY:kUCVCHrdidk:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2010/08/03/job-postmortem-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2010/08/03/job-postmortem-2/</feedburner:origLink></item>
		<item>
		<title>I Wish They Made This</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/aQnguB0j0xA/</link>
		<comments>http://www.runningasroot.com/blog/2010/08/02/i-wish-they-made-this-1/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 17:58:18 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Community Management]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Random Thoughts]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=440</guid>
		<description><![CDATA[Rhapsody is a music subscription service. For $10 a month you can stream music to your computer from their pretty massive catalog. It seems like a nice idea but I don't actually use it. I'm not sure why not. Anyway. I do love me some Guitar Hero (pretend I said Rock Band if your allegiances [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Rhapsody_%28online_music_service%29">Rhapsody</a> is a music subscription service.  For $10 a month you can stream music to your computer from their pretty massive catalog.  It seems like a nice idea but I don't actually use it.  I'm not sure why not.  Anyway.  I do love me some Guitar Hero (pretend I said Rock Band if your allegiances lie elsewhere).  I would gladly pay a monthly fee to get access to a huge catalog of GH ready songs.</p>
<p>I know that Rock Band has <a href="http://creators.rockband.com/">opened up their tool set</a> to allow independent bands to create RB tracks (and simultaneously get raped by an unfair split) but they're still selling the individual songs.  I want to drink from the fire hose!  Are there technical hurdles?  Sure but that's not <strong>my</strong> problem.  <a href="http://en.wikiquote.org/wiki/Night_Shift_%28film%29">See, I'm an idea man, Chuck.</a></p>
<p>Yes, they can continue to release a new "game" every quarter or so and have a 50/50 chance of getting my $50, but wouldn't it be better to screw me out of $10 or $15 every month like clockwork?  I think so.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2010%2F08%2F02%2Fi-wish-they-made-this-1%2F&amp;title=I%20Wish%20They%20Made%20This" id="wpa2a_18"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=aQnguB0j0xA:qDc1Av6vltE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=aQnguB0j0xA:qDc1Av6vltE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=aQnguB0j0xA:qDc1Av6vltE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2010/08/02/i-wish-they-made-this-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2010/08/02/i-wish-they-made-this-1/</feedburner:origLink></item>
		<item>
		<title>Recreating Foreign Keys in MySQL</title>
		<link>http://feedproxy.google.com/~r/RunningAsRoot/~3/TrpZqn_K-xg/</link>
		<comments>http://www.runningasroot.com/blog/2009/10/20/recreating-foreign-keys-in-mysql/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 17:38:13 +0000</pubDate>
		<dc:creator>Robert Simmons</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.runningasroot.com/blog/?p=422</guid>
		<description><![CDATA[The short version of this story is that I had a test server that was inadvertently configured to use the MyISAM engine of MySQL. This engine doesn't support foreign keys. It will quietly ignore your attempts to add them. I meant to use the InnoDB engine (which does support foreign keys). Of course, who hasn't [...]]]></description>
			<content:encoded><![CDATA[<p>The short version of this story is that I had a test server that was inadvertently configured to use the MyISAM engine of MySQL.  This engine doesn't support foreign keys.  It will quietly ignore your attempts to add them.  I meant to use the InnoDB engine (which does support foreign keys).  Of course, who hasn't done that?  Am I right?</p>
<p>I fixed the engine problem quickly enough.  Next I wanted to take a version of our production / dev / whatever that had the foreign keys and export the necessary "alter table" statements to add them to the fixed version of the test database.  I couldn't find anything so I whipped up this <code>SELECT</code> statement to generate a script based on my limited understanding of MySQL.  If it helps someone else then great.</p>
<pre class="brush: sql; title: ; notranslate">
SELECT concat('ALTER TABLE `',  table_name, '` ADD CONSTRAINT `', CONSTRAINT_NAME, '` FOREIGN KEY (`', column_name, '`) REFERENCES `', referenced_table_name, '`(`', referenced_column_name, '`);') from information_schema.key_column_usage where referenced_table_name is not null and constraint_schema = 'ourserverdb' order by table_name, column_name
</pre>
<p>This of course results in a whole bunch of rows of the form:</p>
<pre class="brush: sql; title: ; notranslate">
ALTER TABLE `licensekeys` add constraint `FK_keysIssuerId__appuserId` FOREIGN KEY (`issuer_id`) REFERENCES `app_user`(`id`);
ALTER TABLE `subscription` add constraint `FK_subscription_entity_group_id__entityGroupId` FOREIGN KEY (`entity_group_id`) REFERENCES `entityGroup`(`id`);
ALTER TABLE `user_role` add constraint `FK_userRoleRoleId__roleId` FOREIGN KEY (`role_id`) REFERENCES `role`(`id`);
</pre>
<p>From there it's just a little copy / paste into MySQL command prompt and I'm done.  Incidentally mysqldump with the <code>--no-data</code> flag didn't do quite what I wanted since the foreign key creation is in the middle of a <code>CREATE TABLE</code> statement.  There are surely other ways to do this but this is what worked for me.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.runningasroot.com%2Fblog%2F2009%2F10%2F20%2Frecreating-foreign-keys-in-mysql%2F&amp;title=Recreating%20Foreign%20Keys%20in%20MySQL" id="wpa2a_20"><img src="http://www.runningasroot.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=TrpZqn_K-xg:L4ZLqgF8AD0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=TrpZqn_K-xg:L4ZLqgF8AD0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RunningAsRoot?a=TrpZqn_K-xg:L4ZLqgF8AD0:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/RunningAsRoot?d=YwkR-u9nhCs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.runningasroot.com/blog/2009/10/20/recreating-foreign-keys-in-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:origLink>http://www.runningasroot.com/blog/2009/10/20/recreating-foreign-keys-in-mysql/</feedburner:origLink></item>
	</channel>
</rss>

