<?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>Grailbox</title>
	<atom:link href="http://www.grailbox.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grailbox.com</link>
	<description>A technology quest</description>
	<lastBuildDate>Thu, 17 May 2012 22:01:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>How Steve Ballmer Predicted the Downfall of Mac OS X</title>
		<link>http://www.grailbox.com/2012/05/how-steve-ballmer-predicted-the-downfall-of-mac-os-x/</link>
		<comments>http://www.grailbox.com/2012/05/how-steve-ballmer-predicted-the-downfall-of-mac-os-x/#comments</comments>
		<pubDate>Thu, 17 May 2012 22:01:45 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[alfred]]></category>
		<category><![CDATA[ballmer]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[mac osx]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[tuaw]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=391</guid>
		<description><![CDATA[Back in the year 2000, Steve Ballmer danced, as they say, like a Monkey Boy, chanting, &#8220;Developers! Developers! Developers!&#8221; in an infinite loop. Sweating like an offensive [...]]]></description>
			<content:encoded><![CDATA[<p>Back in the year 2000, <a href="http://knowyourmeme.com/memes/developers-developers-developers">Steve Ballmer danced, as they say, like a Monkey Boy</a>, chanting, &#8220;Developers! Developers! Developers!&#8221; in an infinite loop. Sweating like an offensive tackle in August two-a-days, he hopped and pranced and bellowed his devotion to developers. <a href="http://www.forbes.com/sites/adamhartung/2012/05/12/oops-5-ceos-that-should-have-already-been-fired-cisco-ge-walmart-sears-microsoft/3/">He may have his struggles running a business</a>, but Ballmer understands how important developers are to a platform, and that devotion, along with the ever-excellent Visual Studio (yes, I said that without sarcasm), keeps the Windows developer stable stocked with thoroughbreds. </p>
<p>Switch gears. The reasons for Apple&#8217;s rebirth are often recounted as:</p>
<ul>
<li>Steve Jobs&#8217;s genius</li>
<li>The iPod</li>
<li>The iPad</li>
<li>Jony Ive&#8217;s brilliant design</li>
<li>Apple&#8217;s insistence on simplicity</li>
</ul>
<p>These reasons have all played a part, no doubt, in Apple&#8217;s ridiculous ascent, but absent from this list are <a href="http://rubyonrails.org/">Ruby on Rails</a> and <a href="http://macromates.com/">TextMate</a>, which either run best (Ruby on Rails) or only (TextMate) on Mac OS X. Apple owes more to Rails and TextMate than anyone lets on. Why? Back up a few years, to around 2005. Just as enterprise developers everywhere began to tire of XML and WSDLs and EJBs and SOAP incompatibilities and JSP syntax and all the other stuff that Java Enterprise Edition uses to yank data from a database and show it on a web page, Rails poked its head out of 37signals and started a cult. People called it magic and mind-reading and crowed about its convention over configuration. Oh, it was so easy to create web apps with, and then oh, it was so easy to write them in TextMate! This fledging cult pushed its dogma until developers everywhere dumped Windows and Dell and even Linux and started tucking MacBook Pros into their backpacks. Speakers at developer conferences soon delivered their talks to a sea of shining silver rectangles sporting glowing Apple logos. Developers had moved to Mac OS X.</p>
<p>All these Rails developers on MacBook Pros needed tools, and discovered they could build them. Xcode was a download away, and you could write shiny apps, so why not? Then the iPhone came and the iPhone SDK that changed its name to the iOS SDK when it married the iPad, and the Xcode acolytes stuffed the iOS App Store full of apps. Some people prospered, most got by, but consumers bought iPhones and iPads faster than Apple could produce them because they could always find &#8220;an app for that.&#8221; After all, people don&#8217;t run OSes; they run apps, and Apple has a bunch of &#8216;em.</p>
<p>Switch gears again. <a href="http://i.tuaw.com/2012/05/17/nanny-computing-and-the-future-of-os-x/">TUAW reports today</a> that hotkey programs have until month&#8217;s end to enter the Mac App Store. After that, it seems that Apple will graciously allow grandfathered apps to have their bugs fixed, but can&#8217;t accrete any new features (hotkey-related or otherwise). The reports are a little fuzzy, and may pan out to be inaccurate, but they&#8217;re alarming. Why? Because developers love keyboards. They love automation. They drift to the mouse as little as they can get away with, express undying love for their keyboards, and never perform manual tasks that they can write a script for. And Apple is telling them they care more about protecting people that don&#8217;t know how to protect themselves from random downloads and phishing scams and trojan links. And someday soon they may rip <a href="http://www.alfredapp.com/">Alfred</a> from us and make us gesture our way to <a href="http://www.apple.com/macosx/whats-new/launchpad.html">Launchpad</a> and click on apps to launch them and then we&#8217;ll really have some gestures for Apple.</p>
<p>Note to Apple: don&#8217;t do this. Where developers go, consumers eventually follow. Right now you have the developers. Don&#8217;t push us away. And don&#8217;t think we wouldn&#8217;t dream of going elsewhere. As long as we have bash, vim, and a compiler, we&#8217;re pretty mobile. And we hate the mouse&#8211;and your mice suck anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/05/how-steve-ballmer-predicted-the-downfall-of-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Daring Fireball: iOS Low-Hanging Fruit</title>
		<link>http://www.grailbox.com/2012/05/daring-fireball-ios-low-hanging-fruit/</link>
		<comments>http://www.grailbox.com/2012/05/daring-fireball-ios-low-hanging-fruit/#comments</comments>
		<pubDate>Mon, 14 May 2012 02:56:13 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[daring fireball]]></category>
		<category><![CDATA[gruber]]></category>
		<category><![CDATA[ios 6]]></category>
		<category><![CDATA[spotlight]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=388</guid>
		<description><![CDATA[Daring Fireball: iOS Low-Hanging Fruit: &#8220;iOS is by no means feature-complete. But it’s getting harder to identify the low-hanging fruit — the things you just know Apple [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://daringfireball.net/2012/05/ios_low_hanging_fruit">Daring Fireball: iOS Low-Hanging Fruit</a>: &#8220;iOS is by no means feature-complete. But it’s getting harder to identify the low-hanging fruit — the things you just know Apple has to be working on, not just the stuff you hope they are.&#8221;</p>
<p>Good post by <a href="https://twitter.com/#!/gruber">John Gruber</a> that explores the rumor that Apple will break from Google&#8217;s map data in iOS 6. He then goes on to say:</p>
<blockquote>
<p>What else remains hanging low on the iOS new-features tree, though? I can think of a few:</p>
<p>Clever inter-application communication. Seems crazy that iOS, the direct descendant of NeXT, doesn’t have anything like Services, which were one of NeXT’s most touted features (and rightfully so). It’s also worth noting that Android has a pretty good Services-esque system in place, called “Intents”, and Windows 8 has an even richer concept called “Contracts”.</p>
<p>Third-party Notification Center widgets. Like the Stocks and Weather ones from Apple — information at a glance, without launching an app.</p>
<p>Third-party Siri APIs. Let other apps provide features you can interact with through Siri.</p>
<p>But that’s about it. And even the Siri API idea seems more like a “nice to have” feature idea than a low-hanging “Apple really has to do this sooner or later” idea. Again, I’m not saying Apple’s iOS to-do list is empty; I’m just saying the list of obvious they-gotta-do-it stuff is getting short.</p>
</blockquote>
<p>I can think of one more developer API, though, that (unless I&#8217;ve missed it) remains glaringly missing: integration into the <a href="http://en.wikipedia.org/wiki/Spotlight_(software)#iOS">iOS search screen</a>, aka Spotlight for iOS. Third-party apps should be able to plug into that search screen, offering up their data when users conduct searches. iPhones would be that much more useful if the search screen could be extended to cover third-party apps.</p>
<p>I&#8217;m sure Apple is concerned about malfeasance and abuse, but that&#8217;s what the app review program is for. The third-party apps that supported search would display in the Spotlight Search settings screen as well, so apps that matched terms too generously or otherwise misbehaved could be switched off from the privilege of responding to searches.</p>
<p>I&#8217;d love to see this in iOS 6.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/05/daring-fireball-ios-low-hanging-fruit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two Skeuomorphs: A Radio and a Weight Tracker</title>
		<link>http://www.grailbox.com/2012/05/two-skeuomorphs-a-radio-and-a-weight-tracker/</link>
		<comments>http://www.grailbox.com/2012/05/two-skeuomorphs-a-radio-and-a-weight-tracker/#comments</comments>
		<pubDate>Fri, 11 May 2012 19:59:19 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[skeuomorph]]></category>
		<category><![CDATA[skeuomorphic]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=385</guid>
		<description><![CDATA[The 2007 Transformers movie showcased three stars: Megan Fox, Shia LaBeouf, and an all-new, futuristic-but-retro Chevrolet Camaro. All men drooled over Megan Fox, but the car guys moved [...]]]></description>
			<content:encoded><![CDATA[<p>The 2007 <em>Transformers</em> movie showcased three stars: Megan Fox, Shia LaBeouf, and an all-new, futuristic-but-retro Chevrolet Camaro. All men drooled over Megan Fox, but the car guys moved on to slobbering over the Camaro. Built to hearken the muscle cars from yesteryear, the Camaro combines old-school styling with today&#8217;s technological advancements. The dash, for example, incorporates oversized analog dials and digital readouts. The body shape is pure muscle, yet the windows automatically open slightly when the doors open and roll back up when the doors close to reduce cabin pressure. And it&#8217;s rollicking fun to drive.</p>
<p>I recently bought a 2010 Camaro SS with leather seats, premium sound system, and a V8 engine that mainlines gasoline. While I normally listen to podcasts and music from my iPhone (plugged in to the car&#8217;s USB port), I occasionally listen to the radio. The first time I used the radio&#8217;s tuning knob to change the station, I expected the radio display to remain static save for the frequency, which would increase or decrease as I spun the knob. Instead, the display changed to a <a href="http://en.wikipedia.org/wiki/Skeuomorph">skeuomorph</a>, mimicking an old car radio band view, with the frequency spectrum displayed along a horizontal axis and a pointer indicating the current frequency, like this:</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="camaro_radio.jpg" src="http://www.grailbox.com/wp-content/uploads/2012/05/camaro_radio.jpg" alt="Camaro radio" width="600" height="450" border="0" /></p>
<p>My first reaction was, &#8220;Aw, cool!&#8221; but the excitement quickly waned. This skeuomorph tells you two things:</p>
<ul>
<li>The breadth of the spectrum</li>
<li>The relative position of the current frequency to that spectrum</li>
</ul>
<p>Neither datum is particularly useful &#8212; who cares how close I am to the end of the spectrum? &#8212; and I can no longer see the time while I&#8217;m tuning. The &#8220;tuning&#8221; view is gratuitous skeuomorphism that quickly becomes annoying. Good thing I&#8217;m a <a href="http://www.jimrome.com/jungle-insider">Jungle Insider</a> and can just listen to Rome rants from my iPhone.</p>
<p>Switch gears. I&#8217;ve been tracking my weight on my iPhone with the <a href="http://itunes.apple.com/us/app/lose-it!/id297368629?mt=8">Lose It!</a> app, which is great for tracking calories consumed and expended, but not so much for weight (no graph, for example, that I could find). I tired of tracking my caloric consumption, and I log my runs in <a href="http://www.dailymile.com/">Daily Mile</a>, so I really wanted an app optimized for tracking weight. Enter <a href="http://itunes.apple.com/us/app/weightbot-track-your-weight/id293642937?mt=8">Weightbot</a>, by the makers of <a href="http://tapbots.com/software/tweetbot/">Tweetbot</a>. I bought it, weighed in, and went to enter my weight. I assumed I would type my weight using the onscreen number keyboard layout, but instead I saw another skeuomorph: a horizontally-rotating dial that mimicked an analog scale, like this:</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="weightbot_scale.png" src="http://www.grailbox.com/wp-content/uploads/2012/05/weightbot_scale.png" alt="Weightbot scale" width="400" height="600" border="0" /></p>
<p>This time, I <strong>didn&#8217;t</strong> think, &#8220;Aw, cool!&#8221; Instead, I thought, &#8220;This sucks!&#8221; Tapping out a number on the keyboard is quick and requires little precision, as the numbers on the keyboard are plenty big. Spinning the dial at the bottom of the screen takes longer and requires more precision. I felt disappointed.</p>
<p>After a couple days of use, though, I changed my tune. At my daily weigh-in, I have to scroll that dial up or down (well, left or right, but left is down and right is up. Stay with me). Scrolling it down reflects weight loss, which is exhilarating. The more weight I lose, the farther I get to scroll down and the more reward I feel. Scrolling it up, however, represents weight gain, and it hurts. Scrolling up motivates me to work harder not to have to scroll up the next day. Brilliant interface.</p>
<p>The message? Use skeuomorphs with care. Misapplied, they annoy. Correctly applied, though, they enhance the user experience. Make sure you spend some time using your interface yourself and don&#8217;t overlook the annoyances.</p>
<p>And I must confess: I&#8217;m not under 200 pounds. Yet.</p>
<p> </p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/05/two-skeuomorphs-a-radio-and-a-weight-tracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse: Insufficient access privileges to apply this update.</title>
		<link>http://www.grailbox.com/2012/04/eclipse-insufficient-access-privileges-to-apply-this-update/</link>
		<comments>http://www.grailbox.com/2012/04/eclipse-insufficient-access-privileges-to-apply-this-update/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 18:14:27 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=379</guid>
		<description><![CDATA[I use Eclipse for all my Java development (and Mac OS X for all my development). Today, a bug with portlet deployment to Liferay required me to [...]]]></description>
			<content:encoded><![CDATA[<p>I use Eclipse for all my Java development (and Mac OS X for <strong>all</strong> my development). Today, a bug with portlet deployment to Liferay required me to update my Eclipse installation. For awhile, I&#8217;d seen (and ignored) an error when I ran Eclipse&#8217;s Check For Updates: the Eclipse IDE for Java EE Developers selection was grayed out with the message:</p>
<p>Insufficient access privileges to apply this update.</p>
<p>I assumed that the IT group here at work hadn&#8217;t given my user permissions on the <code>/Applications/eclipse</code> directory, and I&#8217;d never been motivated to investigate. Today, that motivation came. I quickly determined the fallacy of my assumption and, with nowhere else really to turn, I ran to Google. I found this:</p>
<p><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344977">https://bugs.eclipse.org/bugs/show_bug.cgi?id=344977</a></p>
<p>It had this explanation:</p>
<blockquote><p>In case anyone wants to workaround it manually, go to:</p>
<pre>eclipse\p2\org.eclipse.equinox.p2.engine\profileRegistry\SDKProfile.profile</pre>
<ul>
<li>Edit the most recent profile file</li>
<li>Find the section in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344977#c1">comment #1</a></li>
<li>Remove the line:
<pre>&lt;property name='org.eclipse.equinox.p2.type.lock' value='1'/&gt;</pre>
</li>
<li>Now start Eclipse and update it</li>
</ul>
</blockquote>
<p>I didn&#8217;t have that file, but I rooted around that directory and found a 0-byte file called <code>.lock</code> in this directory:</p>
<pre>/Applications/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.jee.profile</pre>
<p>I don&#8217;t know where that file came from, but since it looked suspicious (and I was reasonably confident I could recreate the file with its original contents if it weren&#8217;t the culprit), I deleted that file, restarted Eclipse, and now my update works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/04/eclipse-insufficient-access-privileges-to-apply-this-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learn to Read the Source, Luke</title>
		<link>http://www.grailbox.com/2012/04/learn-to-read-the-source-luke/</link>
		<comments>http://www.grailbox.com/2012/04/learn-to-read-the-source-luke/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 13:05:53 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=376</guid>
		<description><![CDATA[Learn to Read the Source, Luke: No matter what the documentation says, the source code is the ultimate truth, the best and most definitive and up-to-date documentation [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codinghorror.com/blog/2012/04/learn-to-read-the-source-luke.html">Learn to Read the Source, Luke</a>:</p>
<blockquote>
<p><span><span><strong>No matter what the documentation says, the source code is the ultimate truth, the best and most definitive and up-to-date documentation you&#8217;re likely to find.</strong><span> </span>This will be true<span> </span><em>forever</em>, so the sooner you come to terms with this, the better off you&#8217;ll be as a software developer.</span></span></p>
</blockquote>
<p>(Via <a href="http://www.codinghorror.com/blog/">Coding Horror</a>)</p>
<p>Jeff Atwood&#8217;s take on a post by <a href="http://blog.brandonbloom.name/">Brandon Bloom</a>. This is my beef with comments as well&#8211;some folks push &#8220;well-commented&#8221; code, but comments rot disproportionally faster than the code they describe. No one opens bugs on comments. No one writes unit tests for comments.</p>
<p>Help files often lie as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/04/learn-to-read-the-source-luke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer Interview Advice from a Designer</title>
		<link>http://www.grailbox.com/2012/04/developer-interview-advice-from-a-designer/</link>
		<comments>http://www.grailbox.com/2012/04/developer-interview-advice-from-a-designer/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 15:01:37 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=373</guid>
		<description><![CDATA[I was chatting with one of the designers I work with about his interview experience when he was hired, and he remarked how interesting it was that [...]]]></description>
			<content:encoded><![CDATA[<p>I was chatting with one of the designers I work with about his interview experience when he was hired, and he remarked how interesting it was that much of the interview focus was on how his personality and work patterns would fit with the team, and less on his design skills or resume. He asked me what developer interviews here were like, and I said that, back when I did interviews, we made interviewees write code on the white board. He pondered this a few moments, and then said, &#8220;Hmm. You should have them write some HTML, too.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/04/developer-interview-advice-from-a-designer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Through Google is Rotting My Brain</title>
		<link>http://www.grailbox.com/2012/04/debugging-through-google-is-rotting-my-brain/</link>
		<comments>http://www.grailbox.com/2012/04/debugging-through-google-is-rotting-my-brain/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 19:23:46 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=369</guid>
		<description><![CDATA[A couple of weeks ago I built a National Provider Identifier (NPI) lookup app as a proof of concept for the Vaadin portlet stuff we&#8217;re doing. For the [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I built a National Provider Identifier (<a href="https://nppes.cms.hhs.gov/NPPES/NPIRegistryHome.do">NPI</a>) lookup app as a proof of concept for the <a href="https://vaadin.com/home">Vaadin</a> portlet stuff we&#8217;re doing. For the search portion, it used a publicly-available, for-pay REST service to search for a provider&#8217;s NPI. Our architect, however, pushed me to the <a href="https://www.cms.gov/NationalProvIdentStand/06a_DataDissemination.asp">freely downloadable NPI data file</a> and told me to set up an <a href="http://lucene.apache.org/solr/">Apache Solr</a> instance to do the search.</p>
<p>I know bupkis about Apache Solr except that it embraces the Flickr spelling approach and it lets you search for things, but an online tutorial and a few Ruby scripts later and I had a working Solr instance on my local machine, complete with the entire NPI database. Spinning up Solr with the NPI database on the target Linux server proved just as easy. When I discussed Solr startup scripts with the architect on the project, however, eerie background music started playing and I knew I was in for trouble. He told me to install the Solr webapp and run it on the app server instead of as a standalone server.</p>
<p>Actually, I had no such foreboding. The request was reasonable and the approach superior, so I found and installed <code>solr.war</code> on the app server. I also configured the two app server variables that I&#8217;d read were necessary (<code>solr.solr.home</code> and <code>solr.data.dir</code>). I fired up the app server and tried to access the Solr data and got an error: &#8220;missing core name in path.&#8221; Hmm. Time to debug. And you know what I did first, don&#8217;t you? I Googled &#8220;missing core name in path&#8221; and got a page of magic answers.</p>
<p>I read through a ton of results, trying all the solutions I found (even those that made no sense), and nothing worked. I became more and more desperate, especially because it was Friday afternoon and I was scheduled to go on vacation all the next week. I eventually became convinced that my app server didn&#8217;t see the <code>solr.solr.home</code> variable I&#8217;d configured, so I began spraying variable declarations into my app server, anywhere I could find a place to define a variable, like a dog marking trees. I stopped and started the server as if I were driving in Chicago&#8217;s rush hour. Each restart brought hopeful anticipation and glum dejection. I was ready to juke out the architect, write an init script for a standalone Solr instance (which worked fine!), and blame the sysadmins if it were ever detected.</p>
<p>Before acquiescing, however, I decided to look at the log files, which showed me that the app server knew all about my <code>solr.solr.home</code> variable. I was chasing the wrong squirrels. I continued reading the log file, though, and found this:</p>
<p><code>[#|2012-03-16T21:09:18.721+0000|SEVERE|glassfish3.0.1|org.apache.solr.core.CoreContainer|_ThreadID=27;_ThreadName=Thread-1;|java.lang.RuntimeException: Can't find resource 'solrconfig.xml' in classpath or '/opt/solr/./conf/', cwd=/opt/liferay-portal-6.0.6/glassfish-3.0.1/domains/domain1/config</code></p>
<p>Aha! A real error message! I checked, and <code>solrconfig.xml</code> was indeed not in <code>/opt/solr/./conf</code> &mdash; it was in <code>/opt/solr/npi/solr/./conf</code>. I changed my <code>solr.solr.home</code> to <code>/opt/solr/npi/solr</code>, restarted, and my search was on!</p>
<p>At this point, I should be claiming victory. After all, I weaned myself from debug-by-Google-search and returned to old fashioned debugging by looking through log files and figuring out exactly what&#8217;s going on. Alas, however, I wasn&#8217;t the one who thought to look at the log files. One of the Google results I read suggested I do that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/04/debugging-through-google-is-rotting-my-brain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Check out my site later&#8211;I&#8217;ll remind you!</title>
		<link>http://www.grailbox.com/2012/03/check-out-my-site-later-ill-remind-you/</link>
		<comments>http://www.grailbox.com/2012/03/check-out-my-site-later-ill-remind-you/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 19:18:57 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=366</guid>
		<description><![CDATA[The creator of Faraday, the new calendar app for iPhone, posted about lessons learned from developing and publishing the app. It&#8217;s a good read, worthy of your [...]]]></description>
			<content:encoded><![CDATA[<p>The creator of <a href="http://faradaycal.com/">Faraday</a>, the new calendar app for iPhone, <a href="http://samuelfine.com/iphone_lessons_learned.html">posted</a> about lessons learned from developing and publishing the app. It&#8217;s a good read, worthy of your time.</p>
<p>I&#8217;m not in the market for another calendar app for my iPhone&#8211;I have the built-in Calendar synced to my Google Calendar, but that goes largely unused because my most used calendar is in Outlook/Exchange/Good. I also have the Cozi app to coordinate calendars among my wife and five children. I wish it were all integrated. Why would I need another calendar?</p>
<p>The quality of the writeup merited that I at least go to the Faraday site, though, so I pulled it up . . . and I saw something pretty cool. It looks like this:</p>
<p><img title="Faraday" src="https://photos-1.dropbox.com/pi/xl/yTvWLTej7BsFNdDa3B0UAR1b_BcqctbTkYdHrw8js_I/434907/1331668800/97f8954/" border="0" alt="Faraday" /></p>
<p>He&#8217;s anticipated that someone might check the site, have desires to follow up on the app, but not have time at the moment to do so. It&#8217;s like <a href="http://www.instapaper.com/">Instapaper</a> for this one site! Pretty clever.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/03/check-out-my-site-later-ill-remind-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I’m calling it: Ubuntu is finally ready for the world.</title>
		<link>http://www.grailbox.com/2012/03/im-calling-it-ubuntu-is-finally-ready-for-the-world/</link>
		<comments>http://www.grailbox.com/2012/03/im-calling-it-ubuntu-is-finally-ready-for-the-world/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 15:29:13 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=363</guid>
		<description><![CDATA[I’m calling it: Ubuntu is finally ready for the world.: Following instructions from Linux geeks feels like trying to read Charles Dickens while having a stroke (Via [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tjwebb.wordpress.com/2012/03/11/im-calling-it-linux-is-finally-ready-for-the-world-meet-ubuntu-11-10/#comment-25">I’m calling it: Ubuntu is finally ready for the world.</a>:</p>
<blockquote>
<p><span><span>Following instructions from Linux geeks feels like trying to read Charles Dickens while having a stroke</span></span></p>
</blockquote>
<p>(Via <a href="http://news.ycombinator.com/">Hacker News</a>)</p>
<p>Perhaps a bit hyperbolic, but great line!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/03/im-calling-it-ubuntu-is-finally-ready-for-the-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Here is why vim uses the hjkl keys as arrow keys</title>
		<link>http://www.grailbox.com/2012/03/here-is-why-vim-uses-the-hjkl-keys-as-arrow-keys/</link>
		<comments>http://www.grailbox.com/2012/03/here-is-why-vim-uses-the-hjkl-keys-as-arrow-keys/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 20:44:16 +0000</pubDate>
		<dc:creator>Rob Warner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.grailbox.com/?p=360</guid>
		<description><![CDATA[Here is why vim uses the hjkl keys as arrow keys: When Bill Joycreated the vi text editor he used the ADM-3A terminal, which had the arrows [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys/">Here is why vim uses the hjkl keys as arrow keys</a>:</p>
<blockquote>
<p><span><span>When<span> </span><a href="http://en.wikipedia.org/wiki/Bill_Joy">Bill Joy</a>created the vi text editor he used the<span> </span><a href="http://en.wikipedia.org/wiki/ADM-3A">ADM-3A terminal</a>, which had the arrows on<span> </span><code>hjkl</code><span> </span>keys, so naturally he reused the same keys. And that&#8217;s the whole story!</span></span></p>
</blockquote>
<p>(Via <a href="http://news.ycombinator.com/">Hacker News</a>)</p>
<p>Even cooler is where the ESC key was positioned. I wish my MacBook Pro had a bigger ESC key (and no, Ctrl+[ is NOT easier, at least for me)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grailbox.com/2012/03/here-is-why-vim-uses-the-hjkl-keys-as-arrow-keys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

