<?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>Outside the Box()</title>
	<atom:link href="http://www.sporcic.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sporcic.org</link>
	<description>Blog of Tim Sporcic</description>
	<lastBuildDate>Sat, 28 Aug 2010 23:21:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Java Showdown</title>
		<link>http://www.sporcic.org/2010/08/the-java-showdown/</link>
		<comments>http://www.sporcic.org/2010/08/the-java-showdown/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 23:11:30 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[java oracle google]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=563</guid>
		<description><![CDATA[It has been week or so since we heard Oracle was suing Google over Android. I was pretty irritated when I heard the news, but refrained from flaming Oracle on instinct the very first day. I&#8217;ve had some time now to read up on the issue and reflect on the implications. 
As I&#8217;ve mentioned in [...]]]></description>
			<content:encoded><![CDATA[<p>It has been week or so since we heard Oracle was suing Google over Android. I was pretty irritated when I heard the news, but refrained from flaming Oracle on instinct the very first day. I&#8217;ve had some time now to read up on the issue and reflect on the implications. </p>
<p>As I&#8217;ve mentioned in previous posts, there is no good to be had in Oracle owning Java. Oracle exists to feed Larry Ellison&#8217;s ego, and they really don&#8217;t give a damn about software developers. Oracle even makes Microsoft look downright innovative when you look at their stale, over-priced product offerings. </p>
<p>So before I get to my conclusions, lets look at the winners and losers in this whole fiasco:</p>
<ul>
<li><b>Oracle &#8211; </b> Losers. They&#8217;ve shot themselves in the foot with both the Java and Open Source communities over this, so they have nowhere to go down.</li>
<li><b>Google &#8211; </b> Winners. Regardless if they win the lawsuit, they&#8217;re flying the Open Source flag and putting their money where their mouth is. Google is now the mindshare leader for both Java and Open Source.</li>
<li><b>Microsoft &#8211; </b> Winners. .NET is looking a lot more appealing, and any enterprise software development shop would be insane not to look at .NET for green-field development, especially now that Oracle has shown its hand.</li>
<li><b>Apple &#8211; </b> Winners (temporarily). Android was on track to be the &#8220;internet&#8221; to Apple&#8217;s &#8220;AOL&#8221; walled-garden mobile niche. This will slow the inevitable, buying Apple a few more years of hefty profits.</li>
<li><b>Java Developers &#8211; </b> Losers. We&#8217;re screwed. Our new overlord really doesn&#8217;t give a damn about us, and it will only go downhill from here. I thought Java was becoming the new COBOL; its actually the new PowerBuilder.</li>
<li><b>Ruby &#8211; </b> Winners. As DHH famously tweeted, this was the <a href="http://twitter.com/dhh/status/21070252588">Day Java Died</a>. Ruby is now hitting 1.9.2 final, and Rails 3 is on RC2, so this is going to be a pretty compelling platform for hardcore developers who have been using Java.</li>
</ul>
<p>So yes, I&#8217;m still pretty negative on this. I think this will go down as Java&#8217;s jump-the-shark moment. Yes, there will still be plenty of work writing and maintaining Java applications, but the &#8220;cool factor&#8221; is gone. Sun, in spite of their incompetence, was still an engineering company that software developers could relate to. Oracle is more in the category of used car salesmen.</p>
<p>I expect this suit to be a lot like the SCO battle. Oracle even hired the same dirtbag lawyers. It is going to take years to resolve. In the end, I expect Google to win, simply because Dalvik isn&#8217;t Java. This is just about Oracle trying to stick their greedy fingers into the Android pie.</p>
<p>So what should Java developers do? As I&#8217;m mentioned before,  we should have already been asking ourselves what we would do in the post-Java world. .NET is still pretty tempting. Ruby is also a cool option; it has matured nicely and is ready for about any web development task. </p>
<p>The other option is to punt, which is where I&#8217;m leaning. As I mentioned two years ago, I think the <a href="http://www.sporcic.org/2008/04/application-servers-are-the-new-database/">whole middle-tier is dead</a>. The hot area now is all at the browser, and JavaScript is the place to be. Ironically, in spite of my significant trash talk against it, I&#8217;m starting to play with Adobe Flex again too. The biggest reason is AIR. ActionScript is essentially strongly-typed JavaScript, and AIR provides a conduit to writing real desktop applications in JavaScript.</p>
<p>The advantage to both of these technologies (JavaScript &#038; Flex) is that I really don&#8217;t give a damn about the backend. I can create compelling user interfaces which can be wired in to any backend using simple protocols, which is a hell of a lot more fun than dealing with the crapfest that server side software development has become. </p>
<p>So I&#8217;ll watch this whole lawsuit unfold in morbid curiosity, sort of like watching a trainwreck in slow motion. And, in the words of Bart Simpson, Oracle can kiss my butt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/08/the-java-showdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tuning Your ExtJS Theme</title>
		<link>http://www.sporcic.org/2010/07/tuning-extjs-theme/</link>
		<comments>http://www.sporcic.org/2010/07/tuning-extjs-theme/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 18:49:05 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[extjs]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=540</guid>
		<description><![CDATA[ExtJS is my favorite JavaScript favorite. The guys at Sencha have done an excellent job at building the best JavaScript framework for building intranet RIAs. The only flaw of ExtJS is the lack of themes. Although the provided blue and gray themes are very nice, after looking at them for two years you start to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sencha.com/products/js/">ExtJS</a> is my favorite JavaScript favorite. The guys at <a href="http://www.sencha.com">Sencha</a> have done an excellent job at building the best JavaScript framework for building intranet RIAs. The only flaw of ExtJS is the lack of themes. Although the provided blue and gray themes are very nice, after looking at them for two years you start to long for more variety.</p>
<p>There have been some attempts to theme ExtJS.  <a href="http://extthemes.com">Extthemes</a> has built a pretty nice collection of commercial themes, but sometimes all I need is a little bling without the need to completely re-theme the framework. For example, on a recent project, I&#8217;m starting to introduce ExtJS and am making use of the <code>Ext.Panel</code> widget for laying out div elements. </p>
<p>Here&#8217;s what a basic Panel looks like in ExtJS:</p>
<p><img src="http://www.sporcic.org/images/extjs/basic-panel.png" alt="ExtJS default panel" /></p>
<p>And here&#8217;s the code I used to create the panel:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> panel <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Ext.<span style="color: #660066;">Panel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
      width<span style="color: #339933;">:</span> <span style="color: #CC0000;">200</span><span style="color: #339933;">,</span>
      height<span style="color: #339933;">:</span> <span style="color: #CC0000;">200</span><span style="color: #339933;">,</span>
      title<span style="color: #339933;">:</span> <span style="color: #3366CC;">'Test Panel'</span><span style="color: #339933;">,</span>
      renderTo<span style="color: #339933;">:</span> <span style="color: #3366CC;">'box'</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I&#8217;ve got a div specified in the HTML like this <code>&lt;div id="box"&gt;&lt;/div&gt;</code> which is where the Panel is being rendered to. This is very nice if your site&#8217;s look-and-feel is baby blue, but this won&#8217;t cut it if you need a different color scheme. Fortunately, Panels are extremely easy to stylize through some simple CSS overrides.</p>
<p>The first step is to decide what color you need for the Panel&#8217;s header. The default theme uses a gradient image, which looks better than just specifying a background color. Gradients are pretty easy to created in Photoshop, but you can get a very nice gradient that exactly matches your needs by taking advantage of the <a href="http://jqueryui.com/themeroller/">Themeroller</a> tool for <a href="http://jqueryui.com">JQuery UI</a>. Use the Header/Toolbar customization and choose the color and gradient effect you want for the header.</p>
<p>After you have the header just the way you want it, download the whole theme bundle, extract it someplace and copy the image file for the header into your project directory.</p>
<p>There are three CSS selectors you need to override to apply your customization to the Panel. They are <code>.x-panel-header</code>, <code>.xpanel-header-text</code> and <code>.x-panel-body</code>. For my example, I just borrowed the header image for the Eggplant theme and configured these selectors to produce the following:</p>
<p><img src="http://www.sporcic.org/images/extjs/styled-panel.png" alt="ExtJS styled panel" /></p>
<p>Here is what I specified in my CSS file to override the default style:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.x-panel-header</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">resources/images/eggplant.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">center</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #993333;">repeat-x</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.x-panel-body</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fafad2</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.x-panel-header-text</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span> <span style="color: #933;">14px</span> Consolas<span style="color: #00AA00;">,</span> Arial<span style="color: #00AA00;">,</span> san-<span style="color: #993333;">serif</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>In the <code>.x-panel-header</code> selector, I specified the background to be the header image I got out of the Themeroller theme. For a little added bling, I changed the text alignment to center the text and set the border color to black. Note, I renamed the gradient image from the cryptic name Themeroller created to eggplant.png.</p>
<p>For the <code>.x-panel-body</code> selector, I set the border color to match the one I specified in the selector above. If you don&#8217;t do this, you&#8217;ll still have the default border around the center. I also specify a light-yellow background color for the contents of the Panel.</p>
<p>Finally, for the <code>.x-panel-header-text</code> section, I change the appearance of the font from the default blue text to a white text in a different font.</p>
<p>Now you have a panel which can perfectly match any color scheme you need to support and it gives you a simple way to introduce ExtJS without it standing out from what you are already doing. For example, on my project, I&#8217;m going to use a pair of <code>Ext.Panel</code> widgets on the sidebar for navigation and a most-recently-used files list, which looks something like this:</p>
<p><img src="http://www.sporcic.org/images/extjs/custom-panel.png" alt="ExtJS custom panels" /></p>
<p>In this example, the theme is still blue, but I changed the header gradient, the shade of blue for the lines, and applied a light-gray background. </p>
<h3>Some Tips</h3>
<ol>
<li>Firebug or Webkit (Chrome/Safari) are your friends. Use the element inspectors to look at what classes are applied to the various ExtJS widgets. Theming ExtJS is all about overriding the existing styles.</li>
<li>Panels are about the easiest thing to style, and it gets harder from there. If you really want to get a custom theme, I suggest start by working with the <code>x-theme-gray.css</code> and then overriding from there. The gray theme will give you widgets that blend pretty easily with any theme, and then you can selectively add some bling to the elements you care about.</li>
<li>Remember that your overridden styles must come <i>after</i> the stylesheet link for ExtJS. For example, if your stylesheet with the overridden styles is called <code>custom.css</code>, ensure your header section contains this:

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;extjs/resources/css/ext-all.css&quot;/&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;extjs/resources/css/xtheme-gray.css&quot;/&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;stylesheets/custom.css&quot;/&gt;</pre></div></div>

</li>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/07/tuning-extjs-theme/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kindle DX Graphite Review</title>
		<link>http://www.sporcic.org/2010/07/new-kindle-dx-review/</link>
		<comments>http://www.sporcic.org/2010/07/new-kindle-dx-review/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 03:55:48 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[KindleDX]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=514</guid>
		<description><![CDATA[My new, 2nd generation Kindle DX arrived today. I&#8217;ve had the small Kindle 2 for the past year-or-so, and I also have an iPad, but the new Kindle DX looked like the ideal platform to fill my needs. Being a computer programmer, I tend to have a lot of technical books in electronic format. Neither [...]]]></description>
			<content:encoded><![CDATA[<p>My new, 2nd generation <a href="http://www.amazon.com/gp/product/B002GYWHSQ">Kindle DX</a> arrived today. I&#8217;ve had the small Kindle 2 for the past year-or-so, and I also have an iPad, but the new Kindle DX looked like the ideal platform to fill my needs. Being a computer programmer, I tend to have a lot of technical books in electronic format. Neither the Kindle 2 nor the iPad are especially adept at handling PDFs. The Kindle DX is about the same page size as a typical technical book, so I was hoping it would be the dream solution to my reading needs.</p>
<p>Size wise, the Kindle DX is a hair larger than the iPad:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2374-small.jpg" alt="Kindle vs iPad" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2374-med.jpg">medium-res</a></p>
<p>The extra length is going to be a bit annoying for fitting in cases, but the two devices are about the same width. The biggest difference, which is immediately noticeable the first time you pick-up the Kindle DX, is the weight. The Kindle DX doesn&#8217;t feel much heavier than its smaller cousin, the Kindle 2, and it makes the iPad feel like a boat anchor by comparison. Here&#8217;s the Kindle DX compared to the Kindle 2:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2376-small.jpg" alt="Kindle DX vs Kindle 2" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2376-med.jpg">medium-res</a></p>
<p>One of the big selling points of the new Kindle DX is the improved screen contrast. While it is not clear in the picture above, the text on the Kindle DX is noticeably darker than on the Kindle 2. </p>
<p>Since I&#8217;m really interested in how each of the platforms handles itself as a PDF or book reader, I loaded the same PDFs on each and took some pictures. The images below are from a PDF of the outstanding <a href="http://groovymag.com">GroovyMag</a>, a must-read for Groovy and Grails developers.</p>
<p>First, here&#8217;s the Kindle 2, showing both the full page and a close-up of the text. Note that I also link to a very-high resolution image so you can drill in and see the difference. Also, none of the photos have been retouched or corrected in any way.</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2381-small.jpg" alt="Kindle 2 with PDF" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2381-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2381.jpg">high-res</a></p>
<p>And here&#8217;s a close-up of the text on the Kindle 2:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2383-small.jpg" alt="Kindle 2 with PDF close-up" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2383-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2383.jpg">high-res</a></p>
<p>Now here&#8217;s the Kindle DX with the same page:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2380-small.jpg" alt="Kindle DX with PDF" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2380-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2380.jpg">high-res</a></p>
<p>And the close-up of the text on the Kindle DX:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2382-small.jpg" alt="Kindle DX PDF text" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2382-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2382.jpg">high-res</a></p>
<p>And finally, here is the iPad rendering the same PDF side-by-side with the Kindle DX:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2384-small.jpg" alt="Kindle DX and iPad with PDF" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2384-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2384.jpg">high-res</a></p>
<p>And the close-up of the text on the iPad:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2385-small.jpg" alt="iPad close-up" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2385-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2385.jpg">high-res</a></p>
<p>I also have several ebooks in .mobi format for Kindle, and I loaded the same book onto both the Kindle DX and the iPad, using Amazon&#8217;s reader for the iPad. Here&#8217;s a screenshot of a page side-by-side:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2400-small.jpg" alt="Kindle DX and iPad book" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2400-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2400.jpg">high-res</a></p>
<p>The Kindle DX fits more text on a page, if we compare using the standard font. One big difference is that I can make the fonts even smaller than this on the Kindle DX, whereas I couldn&#8217;t make them smaller with the Kindle Reader on the iPad. As my eyes have spent too many years looking at computer displays, I can&#8217;t support reading microscopic text, so the default size is perfect.</p>
<p>Here&#8217;s where things get interesting and you can really see the benefits of the E-Ink technology. This is a close-up of a paragraph on the iPad:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2404-small.jpg" alt="iPad text closeup" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2404-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2404.jpg">high-res</a></p>
<p>And here is a close-up of the Kindle DX with the same text:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2403-small.jpg" alt="Kindle DX text closeup" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2403-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2403.jpg">high-res</a></p>
<p>The differences are startling. There is no contest on text sharpness. The Kindle DX crushes the iPad. While this sharpness won&#8217;t make much of a difference checking email, there is literally a world of hurt between the two if you actually use the device to read for prolonged periods of time.</p>
<p>For one final comparison, lets take a look at the New York Times reader/application for both devices. The iPad &#8220;NYT Editor&#8217;s Choice&#8221; application really demonstrates what the iPad is good for. On the Kindle, for $2 a month, you can subscribe to NYT Latest News. There is a bit more content in Editor&#8217;s Choice, but there are also ads. Here is a comparison of the front page from today for each application:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2390-small.jpg" alt="Kindle DX and iPad with NYT" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2390-med.jpg">medium-res</a> | <a href="http://www.sporcic.org/images/kindle/_DSC2390.jpg">high-res</a></p>
<p>Although it only has limited gray-scale abilities, the Kindle DX actually does really well with images, probably due to its ungodly resolution. </p>
<p>One thing I don&#8217;t like about the iPad when reading in bed is the metal edge. This bottom edge is not as rounded as it looks, and tends to dig in to my tummy. Here&#8217;s the edge on the iPad:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2396-small.jpg" alt="iPad edge" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2396-med.jpg">medium-res</a></p>
<p>The Kindle DX has a slightly more curved, plastic edge on the bottom which makes it more comfortable for propping up when using a body part as a rest:</p>
<p><img src="http://www.sporcic.org/images/kindle/_DSC2397-small.jpg" alt="Kindle DX text closeup" /><br />
<a href="http://www.sporcic.org/images/kindle/_DSC2397-med.jpg">medium-res</a></p>
<h3>Summary</h3>
<p>The new Kindle DX is a phenomenal device. It handled PDFs easily, much better than the iPad. The Kindle DX can be plugged in to a USB port and mounts as a drive. You can drap-and-drop PDFs or eBooks into the document and the Kindle DX will read them. Getting PDFs on to an iPad is a major nuisance. The Kindle DX is also faster rendering the PDFs. The iPad will sometimes loose itself and you&#8217;ll get a bunch of blank pages while it is trying to sort out the layout. I&#8217;ve also had the iPad PDF viewer crash on several PDFs.</p>
<p>For books, there is no contest. The Kindle DX has razor-sharp text and its light weight makes it disappear while reading. With the iPad, be assured you will never forget you are holding it.</p>
<p>Now I know it is not fair to compare these devices, as they really are like apples and oranges. The iPad is about <b>Distraction</b>. If you want a device to check email, surf the web, hit Twitter and Facebook, play games and watch videos, the iPad is really the only game in tablet-town that can do it all.</p>
<p>The Kindle DX, on the other hand, is about <b>Concentration</b>. If you want a device to read books or other text, the Kindle DX is a light-year beyond the iPad in handling that task. It really is an electronic book. It is sort of like comparing a swiss army knife to good survival knife. If you need to open a can, file the nails, uncork a bottle of wine and maybe cut open something, the swiss army knife is your tool. But if your in the woods trying to build a shelter, start a fire and cut wood, the survival knife is hands-down the tool to have.</p>
<p>If you&#8217;re in the market for a book reader, and not an entertainment platform, the Kindle DX is the king of the hill.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/07/new-kindle-dx-review/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Revenge of the Browser</title>
		<link>http://www.sporcic.org/2010/06/revenge-of-the-browser/</link>
		<comments>http://www.sporcic.org/2010/06/revenge-of-the-browser/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 13:02:14 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=512</guid>
		<description><![CDATA[Last weekend I attended the awesome Texas Javascript conference down in Austin, TX. This was probably the best geek conference I&#8217;ve been too. It made the early Rails conference look downright corporate. TXJS had awesome parties sponsored by Google and Facebook, the top names in JavaScript for speakers, and an open bar with mimosas for [...]]]></description>
			<content:encoded><![CDATA[<p>Last weekend I attended the awesome <a href="http://texasjavascript.com/">Texas Javascript</a> conference down in Austin, TX. This was probably the best geek conference I&#8217;ve been too. It made the early Rails conference look downright corporate. TXJS had awesome parties sponsored by Google and Facebook, the top names in JavaScript for speakers, and an open bar with mimosas for breakfast. This sets the bar pretty high on the geek awesomeness scale.</p>
<p>One of the most interesting discussions at the conference revolved around server-side JavaScript. Some very clever programmers have taken the V8 JavaScript runtime from Chrome, wrapped it with a library and pushed it out as a runtime for executing JS scripts on the server. The project is called <a href="http://nodejs.org">NodeJS</a> and it already has a pretty rich <a href="http://wiki.github.com/ry/node/modules">plugin environment</a> around it. The implication is you can actually write a high-performance server-side application in JavaScript.</p>
<p>The trend for the past several years has been for the server-side programming languages to hide the JavaScript from developers. Both Rails and GWT approach things with a &#8220;use our language to do it all&#8221;. There is obviously value in this approach for people who don&#8217;t know JavaScript, but NodeJS suddenly flips that model on its ear. </p>
<p>The NodeJS story is &#8220;you use JavaScript already in the browser, so why not use the same skills on the server&#8221;. We now have a programming paradigm established at the browser that is pushing in to the lower tiers, rather than the lower tiers pushing out to the web. NodeJS has potential to obsolete a lot of what we think of as server-side development. Both Yahoo and ExtJS have projects in the works that use NodeJS as the backend, and I bet Google must have something going too.</p>
<p>NodeJS is basically the new Ruby. Keep an eye on what the cool kids start doing with it, and give it a try yourself. We&#8217;ll be seeing a lot more of it in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/06/revenge-of-the-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Springtime and Apple</title>
		<link>http://www.sporcic.org/2010/06/springtime-and-apple/</link>
		<comments>http://www.sporcic.org/2010/06/springtime-and-apple/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 01:00:42 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=509</guid>
		<description><![CDATA[On its usual springtime schedule, the new iPhone was announced today. I didn&#8217;t take the plunge on a iPhone until last year&#8217;s 3GS, and I don&#8217;t see any reason to upgrade, but the most exciting part of iPhone 4 is what it means for the evolution of the iPad.
First we have the &#8220;Retina Display&#8221; with [...]]]></description>
			<content:encoded><![CDATA[<p>On its usual springtime schedule, the new iPhone was announced today. I didn&#8217;t take the plunge on a iPhone until last year&#8217;s 3GS, and I don&#8217;t see any reason to upgrade, but the most exciting part of iPhone 4 is what it means for the evolution of the iPad.</p>
<p>First we have the &#8220;Retina Display&#8221; with its ungodly pixel density. We&#8217;re still talking about a 3-1/2 inch display, so the ability to render microscopic text still doesn&#8217;t change the fact it is microscopic. It is still too small to read. But I can imagine the next revision of the iPad getting the same screen, which would be incredible with that much real estate.</p>
<p>Next, the front-facing camera for video calls. This is one of those features that should have been available for years, so shame on Apple for waiting this long. On the iPhone, this will just be more of a nuisance. We&#8217;ll see stupid teenagers and blondes in SUVs driving around talking in to their phones. Not a good idea. And let&#8217;s not even think about the implications with Chatroulette. Ick.</p>
<p>But on a iPad, the same front-facing camera becomes much more usable. I have family scattered all around the globe, and having the camera along with the big screen on the iPad would make it much more pleasant to do video calls. You would actually be able to see detail on the bigger screen. And the iPad would be big enough that you wouldn&#8217;t see anyone other than an absolute idiot driving around talking in to it.</p>
<p>Finally, the last major improvement I care about is multitasking. This was one of those abilities that will really allow the iPad to penetrate into what was low-end PC space. No more having to completely load an application from zero when hopping around, and you can have processes running in the background. I really see this as having much more useful potential on the iPad than the iPhone. </p>
<p>While I&#8217;ll definitely upgrade to the new iOS 4 on my 3GS, I&#8217;ll be keeping the wallet closed until the next iPad picks up these killer features. If we actually see a Google Tablet with a similar set of specs, we&#8217;ll really see an acceleration into the next era of touch-driven computing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/06/springtime-and-apple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Case for Strength</title>
		<link>http://www.sporcic.org/2010/05/the-case-for-strength/</link>
		<comments>http://www.sporcic.org/2010/05/the-case-for-strength/#comments</comments>
		<pubDate>Sat, 22 May 2010 13:53:47 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=495</guid>
		<description><![CDATA[The pendulum has swung once again and I have escaped the world of architecture to get back to delivering software. I left Bank of America (Countrywide) for the second time last week, but not the mortgage industry. I am now the Application Manager for the origination system Nationstar Mortgage.
The challenge for my first week has [...]]]></description>
			<content:encoded><![CDATA[<p>The pendulum has swung once again and I have escaped the world of architecture to get back to delivering software. I left Bank of America (Countrywide) for the second time last week, but not the mortgage industry. I am now the Application Manager for the origination system <a href="https://www.nationstarmtg.com">Nationstar Mortgage</a>.</p>
<p>The challenge for my first week has been getting my head around the codebase. The application is a combination of a vendor solution along with a lot of custom code built up along the side. Like a lot of in house applications which started small, this one has grown in to what I call the &#8220;big ball of mud&#8221; pattern, where there was not the long term vision and architectural rigor for structuring a scalable, maintainable application. The fun part is it is my  job to fix it.</p>
<p>After a week of looking at code, I have acquired new-found love for strong typing. In a mad genius, army-of-one development mode, the freedom of dynamic languages is both liberating and powerful. But as you start to add more cooks to the kitchen, things start to go downhill rapidly. </p>
<p>Case in point, I was attempted to troubleshoot a sporadic NullPointerException that pops-up in production. The culprit method is getting an object out of a list, and calling a method on a nested object it contains. I&#8217;m trying to determine if the object itself is null, or if the nested object is missing, so I&#8217;m tracing back how to where that object comes from.</p>
<p>The problem is that the instance of the object comes from an ArrayList, which is created from an object in HashMap, and neither makes use of generics. I know what my final object is supposed to be, but I have to trace back through other code to see how that the HashMap is being populated with.</p>
<p>This whole codebase has left me begging for generics. Generics in Java are not just about type safety, they are about documenting your code. For example, instead of:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">ArrayList</span> myLoans <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">HashMap</span> properties <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">HashMap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>You should make use of generics so that other people aren&#8217;t left guessing on the contents:</p>

<div class="wp_syntax"><div class="code"><pre class="java5" style="font-family:monospace;">List<span style="color: #339933;">&lt;</span>Loan<span style="color: #339933;">&gt;</span> myLoans = <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>Loan<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Map<span style="color: #339933;">&lt;</span>String,Address<span style="color: #339933;">&gt;</span> properties  = <span style="color: #000000; font-weight: bold;">new</span> HashMap<span style="color: #339933;">&lt;</span>String,Address<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In the second case, I know I have a list of Loan objects, and I know I have a map where the key is a String and the entry is an Address object. I don&#8217;t have to jump around in the code to see how they are used to understand exactly what they contain. Note another difference: I use the collection interfaces (List, Map) in my declaration rather than the implementation classes (ArrayList, HashMap). </p>
<p>From an object-oriented programming perspective, you should always strive to hide the implementation details of objects. And by using the interface, you buy yourself the flexibility of being able to swap out for a new implementation class without breaking the code. For example you could change the ArrayList to a Vector if you needed the synchronization and not break downstream code.</p>
<p>So with my dive back in to the bowels of enterprise software development, I&#8217;ve regained a new appreciation for my old friend Java. There is great strength in strong typing which permits you to build much more maintainable applications than the alternatives. Use that strength and make your team happy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/05/the-case-for-strength/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heros</title>
		<link>http://www.sporcic.org/2010/04/heros/</link>
		<comments>http://www.sporcic.org/2010/04/heros/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 04:15:22 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Heros]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=490</guid>
		<description><![CDATA[Where have all the heros gone? When I think back to my carefree days of childhood,  I always had heros. The dictionary definition of a hero is “a person, typically a man, who is admired or idealized for courage, outstanding achievements, or noble qualities”. It was naively easy to revere a famous astronaut, athlete [...]]]></description>
			<content:encoded><![CDATA[<p>Where have all the heros gone? When I think back to my carefree days of childhood,  I always had heros. The dictionary definition of a hero is “a person, typically a man, who is admired or idealized for courage, outstanding achievements, or noble qualities”. It was naively easy to revere a famous astronaut, athlete or other celebrity as a child because you hadn’t had to deal with the world as an adult. And then, insidiously, the wisdom that comes with age starts to have its effect. You gradually become harder to impress, and you start to see you childhood heros for what they are: talented men and women who were in the right place at the right time.</p>
<p>Now, as I’ve pushed past 40 years old, it has become near impossible for me to assign the label “hero” to anyone. This is mostly because I’ve learned the world is a lot more about infinite shades of gray, rather than the crisp black &#038; white view that hero worship tends to require. But it is also because my definition of a hero has evolved. Courage and noble qualities are still important, and all too lacking in our modern world, but a hero is someone who also makes a difference. And not just for today, but for tomorrow, or century from now. And to make it doubly tough, I think any living hero should be the kind of person you’d want to have a beer with.</p>
<p>When I hold up my yardstick to the currently living field of contenders, almost none measure up. The vast majority of modern athletes will be long forgotten in a decade and have no effect on the world. Sports isn’t about heros, it is about business. Astronauts are still cool, and most would probably be fun to have a beer with, but they’re just scientists doing their jobs. And modern “celebrities” fare even worse against the yardstick.</p>
<p>So who are the modern heros? Living men and women with courage, compassion, integrity and conviction, who are making a difference in the history books. And of course, they must still be down-to-earth enough that you’d slam back a pint with them any day. If we look back at the 20th century, I would put Teddy Roosevelt, Albert Einstein, and Mahatma Gandhi on this list, but they don’t count for a modern hero survey since they would be hard to have a beer with.</p>
<p>I actually had to wrack my brain for quite a while to even come up with few names that might pass the hero test. And as that list evolved, I also added another quality to my heros: the quest for truth. I couldn’t admire anyone as a hero who wasn’t willing to pursue the truth, regardless of whether it was the popular or politically correct thing to do. </p>
<p>I ended up with only two names: <a href="http://en.wikipedia.org/wiki/Sebastião_Salgado">Sebastião Salgado</a> and <a href="http://en.wikipedia.org/wiki/Reza_Deghati">Reza Deghati</a>. Both are names most people have probably never heard of, but have probably seen their work. They are two of the top photojournalists in the world. </p>
<p>So how do I arrive at a pair of photojournalists for heros? If you take a look at the <a href="http://www.bing.com/images/search?q=sebastiao+salgado">pictures</a> either has <a href="http://www.bing.com/images/search?q=reza+deghati">produced</a>, their courage and conviction are clear. Pick up one of their  photo books some day and read the prose. You’ll understand their integrity and quest for the truth. And their work is timeless. Generations will stare in awe at their chronicle of cultures and human experience that most spoiled westerners want to conveniently forget exists. </p>
<p>So we’ve got the personality traits, the quest for truth and the making a difference part. Now what about the beer factor? I haven’t read anything about Sebastiao that would suggest I wouldn’t want to have a beer with him. As for Reza, I met him and his wife at a book signing in Paris in 2006. His humility and kindness were staggering. He actually spent 10 minutes talking with every person who’s book he signed.</p>
<p><a href="http://www.sporcic.org/wp-content/uploads/2010/04/reza.jpg"><img src="http://www.sporcic.org/wp-content/uploads/2010/04/reza.jpg" alt="" title="reza" width="600" height="480" class="alignnone size-full wp-image-491" /></a></p>
<p>These are the kind of people the world needs more of. I proudly claim both as my heros. Now who are yours?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/04/heros/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>C the Light</title>
		<link>http://www.sporcic.org/2010/04/c-the-light/</link>
		<comments>http://www.sporcic.org/2010/04/c-the-light/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 01:39:23 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=485</guid>
		<description><![CDATA[So I spent my Saturday morning in line with a bunch of other dorks, gleefully handing over a silly amount money for the latest from the temple of Apple &#8212; an iPad. I wanted an iPad for a &#8220;sofa computer&#8221;, something convenient for checking email and Twitter, or browsing the web, while sitting on the [...]]]></description>
			<content:encoded><![CDATA[<p>So I spent my Saturday morning in line with a bunch of other dorks, gleefully handing over a silly amount money for the latest from the temple of Apple &#8212; an <a href="http://www.apple.com/ipad/">iPad</a>. I wanted an iPad for a &#8220;sofa computer&#8221;, something convenient for checking email and Twitter, or browsing the web, while sitting on the sofa with my daughter. I knew the limitations, and actually appreciate some of them (no Flash). But after using it now for a few days, I&#8217;ve come to respect the iPad for being much more.</p>
<p>First, the iPad makes for an awesome media player. The screen is bright, sharp and has vibrant colors. I will definitely be using it to catch up on movies and TV that I normally can&#8217;t dedicate the couch time to watch.</p>
<p>Social networking on it also rocks. Tweetdeck is awesome on the iPad, and mobile Safari does a pretty good job with web content, but has some flaws. The only glaring holes right now are missing Facebook and iChat applications. The former should be corrected pretty quickly, but on Apple can fix the latter.</p>
<p>One surprising area for me has been using the iPad as a media reader. The New York Times Editor&#8217;s Choice application really shows off the promise of the format, and I look forward to seeing their full application. iBooks is also suprisingly good. Being a gadget geek, I have a Kindle, and it is clear the iPad is going to crush it unless Amazon cuts the price in half. Reading books on the iPad is a better overall experience than on the Kindle.</p>
<p>The biggest surprise has been the iPad as an application platform. I&#8217;ve thought about developing for the iPhone, but found the screen too small to build the kind of applications I would be interesting in. The iPad is a near perfect form factor with enough screen real estate to build some exciting applications, enough so that I&#8217;ve actually dived in to learning the bastard language of the world: Objective-C. I&#8217;ve got some ideas in head already for applications, so that makes learning it a more goal-oriented task.</p>
<p>Now about Safari. I had originally thought I would just build mobile Safari applications using JavaScript, HTML and CSS. But Safari on the iPad is a bit quirky. I checked out the demo sites for ExtJS and JQuery UI on the iPad, and the widgets don&#8217;t render as well as they do on desktop Safari. Even JQuery Touch as a little bit off. The demos would flash a green background on transition that was annoying. Even the stuff I expected to be fine wasn&#8217;t. For example, the right scroll bar in the Word Press edit field for posts doesn&#8217;t render, making it difficult to add posts.</p>
<p>Safari on the iPad is good enough for the basic web tasks (Google, GMail, Slashdot), but it is not ready as an application platform. Native applications will be the way to go, and I think the iPad is going to lead to a lot of demand for Objective-C developers who will be writing tomorrow&#8217;s world changing applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/04/c-the-light/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#8217;ll Buy That!</title>
		<link>http://www.sporcic.org/2010/02/ill-buy-that/</link>
		<comments>http://www.sporcic.org/2010/02/ill-buy-that/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 01:42:47 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=483</guid>
		<description><![CDATA[So it has been a few weeks since Apple announced the iPad. I was pretty excited when I saw it, but gave it some time to digest what everyone else was saying and also the implications. The iPad definitely has its detractors, with most somehow working a feminine hygiene joke into their rants. But in [...]]]></description>
			<content:encoded><![CDATA[<p>So it has been a few weeks since Apple announced the <a href="http://www.apple.com/ipad/">iPad</a>. I was pretty excited when I saw it, but gave it some time to digest what everyone else was saying and also the implications. The iPad definitely has its <a href="http://www.infoworld.com/d/windows/why-apples-rumored-itablet-will-fail-big-time-119?source=rs">detractors</a>, with most somehow working a feminine hygiene joke into their rants. But in the end, I&#8217;ll happily be first in line to buy one. Why?</p>
<p>The game changing aspect of the iPad is Safari. There will be plenty of cutesy apps, but I would sooner chew my own arm off than work with Objective-C. It is a disgusting abomination of a language. But having Safari on the iPad means developing feature-rich RIAs in HTML 5, with fast JavaScript, that can be packaged to deploy so that they appear the same as other iPad/iPhone applications (Dock icons, etc&#8230;). Best yet, Apple is giving the finger to Adobe and Flash. The iPad is going to put a nail in the coffin of Flash and help advance web standards by leaps and bounds.</p>
<p>Yehuda Katz of the jQuery team summarized it best in this <a href="http://yehudakatz.com/2010/01/27/the-irony-of-the-ipad-a-great-day-for-open-technologies/">blog post</a>. I completely agree with him. The iPad is a godsend for HTML and JavaScript developers and anyone who values open web standards should be doing back flips right now. A thin tablet device with a cutting edge browser and wireless networking is going to open up a world of vertical market possibilities for web developers. I was really impressed with what Graham Glass did with his iPhone web application for <a href="http://grahamglass.blogs.com/main/2010/01/edu-20-for-iphone-update.html">EDU 2.0</a>, and can only imagine how an application like this could take advantage of the iPad.</p>
<p>Check out the <a href="http://developer.apple.com/safari/library/navigation/index.html">Safari Developer Documentation</a> on Apple&#8217;s site sometime to really understand the vast programming playground Apple is creating for us. I&#8217;m actually excited about web development for the iPad and am looking forward to getting mine to play with. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/02/ill-buy-that/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Flashback</title>
		<link>http://www.sporcic.org/2010/01/rails-flashback/</link>
		<comments>http://www.sporcic.org/2010/01/rails-flashback/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 03:45:57 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.sporcic.org/?p=478</guid>
		<description><![CDATA[While poking around one of the Ruby on Rails sites, I stumbled upon the video of DHH&#8217;s keynote at RailsConf 2009. Rails 3 looks really cool, but DHH has definitely mellowed from the 2006 and 2007 RailsConfs I attended. Just watching the keynote brought back some good memories of the 2007 RailsConf.
RailsConf 2007 was held [...]]]></description>
			<content:encoded><![CDATA[<p>While poking around one of the <a href="http://rubyonrails.org/">Ruby on Rails</a> sites, I stumbled upon the video of <a href="http://railsconf.blip.tv/file/2081411/">DHH&#8217;s keynote</a> at <a href="http://en.oreilly.com/rails2009">RailsConf 2009</a>. Rails 3 looks really cool, but DHH has definitely mellowed from the 2006 and 2007 RailsConfs I attended. Just watching the keynote brought back some good memories of the 2007 RailsConf.</p>
<p>RailsConf 2007 was held in Portland, Oregon, which is about the most awesome city I&#8217;ve been to for a conference. It has all the amenities of a big city, but still keeps a quirky small town feel. Between the conference, awesome micro-brews, and <a href="http://www.powells.com/">Powell Books</a>, it was a really good time.</p>
<p>This was the RailsConf I went to with my Windows notebook while 99% of everyone there was running on a MacBook, so I played the leper. The speakers were great, and it was absolutely hilarious when one of the vendors had the <a href="http://www.extra-action.com/">Extra Action Marching Band</a> show up at lunch the first day to perform. It pissed off the stodgy convention center management, but it was a sight to see. Check out James Duncan Davidson&#8217;s <a href="http://www.flickr.com/photos/x180/sets/72157600225783815/">excellent photos</a> if you want to see how fun a RailsConf could be. </p>
<p>I was thinking of going to RailsConf this year, but it is in Baltimore. I&#8217;ve never been a fan of east coast conferences, and I&#8217;m worried RailsConf is losing its fire. Just like JavaOne tapered off in to boredom, RailsConf on the east coast could be its jump the shark moment. But if they ever get around to having it in Portland again, I&#8217;ll be there. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sporcic.org/2010/01/rails-flashback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
