<?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>justin-shepard.net &#187; Tech</title>
	<atom:link href="http://justin-shepard.net/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://justin-shepard.net</link>
	<description>Thoughts on software, hardware and whatever shiny gadget catches my eye.</description>
	<lastBuildDate>Tue, 04 Nov 2008 14:17:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Three Weeks with an iPhone</title>
		<link>http://justin-shepard.net/2008/09/24/three-weeks-with-an-iphone/</link>
		<comments>http://justin-shepard.net/2008/09/24/three-weeks-with-an-iphone/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 20:49:51 +0000</pubDate>
		<dc:creator>justin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://justin-shepard.net/2008/09/24/three-weeks-with-an-iphone/</guid>
		<description><![CDATA[I finally managed to get ahold of a 3G iPhone a couple of weeks ago (those of you following me on Twitter have heard about it already). When it was announced, I was hyped up about the thing for weeks ahead of time. And then . . . I couldn&#8217;t get one. I didn&#8217;t really [...]]]></description>
			<content:encoded><![CDATA[<p>I finally managed to get ahold of a 3G iPhone a couple of weeks ago (those of you following me on Twitter have heard about it already). When it was announced, I was hyped up about the thing for weeks ahead of time. And then . . . I couldn&#8217;t get one. I didn&#8217;t really want to wait in line, which made it difficult to acquire one in a timely manner. And then of course, I&#8217;m also lazy, so a month-and-a-half had passed before I finally managed to get in and buy an iPhone.</p>
<p>My biggest concern at first was that all that time waiting had cooled my desire to the point where I wouldn&#8217;t be really excited about having the iPhone. Fortunately, that turned out to not be the case and I proceeded to spend Saturday afternoon and much of Sunday just playing around with the iPhone. I downloaded a few apps (and discovered that typing my Apple Store password is an interesting challenge on the iPhone keyboard), used said apps, surfed the web, and so on. All in all, the iPhone held up very well to my initial expectations.</p>
<p>After the initial &#8220;ZOMG WOW!!&#8221; phase wore off (mostly), my iPhone and I settled into a more normal user-gadget relationship. The biggest and most immediate change was the reduction of the number of things in my pockets. I used to carry both my old cell phone and my iPod in my pocket, which ran the danger of one scratching the other in addition to space issues. The iPhone was therefore a nice reduction in things crammed into my pockets, and is in very little danger of scratching itself. The one interesting side-effect of replacing my iPod with my iPhone is that I&#8217;ve gone back to listening to the radio when I&#8217;m driving (most of the time). This is mostly because I&#8217;m worried that the FM adaptor I was using with my iPod is partly responsible for its degraded battery capacity, and not anything specifically wrong with the iPod feature of the iPhone. I have an old cassette adaptor I will be trying once I find it.</p>
<p>As far as being a phone goes, the iPhone works great. I haven&#8217;t had any problems with dropped calls (though I don&#8217;t make a huge number of calls in the first place). The form factor is quite nice, and I haven&#8217;t had any issues with being heard that I know of, which was a concern (due to the non-flip nature of the iPhone, the mic is further from my mouth than it was on my Razr). Most of the problems I have had have been my own fault. The one thing that is an issue is the volume of the speakerphone isn&#8217;t enough to carry more than a foot or so. This makes hearing people calling into our daily standups a bit difficult. I did a bit of experimenting, and it seemed that going into speakerphone mode bypasses the headset jack, so plugging a speaker into that jack for increased volume doesn&#8217;t look to be an option either. While this is a daily nuisance, knowing about it ahead of time certainly wouldn&#8217;t have stopped me from getting the iPhone.</p>
<p>Battery life on the phone is decent. I&#8217;m currently charging it every other night (my uncle, who does a fair bit more calling on his iPhone, said he charges his every night). I could probably get more out of the battery, but that would involve having less fun with the phone, so every other night will have to do. =)</p>
<p>I&#8217;ve downloaded around a dozen apps for the iPhone now, ranging from from free to cheap (no $999.99 purchases here). The download and upgrade process goes quite smoothly. My only early complaint was that upgraded apps moved to the end of the app list, though the 2.1 update seems to have fixed that issue. I also had an issue where none of the apps would start, which took multiple syncs to fix (removing and then readding the apps to the phone). Most of the apps I&#8217;ve downloaded have been of the leisure/entertainment sort, which in conjunction with airplane mode has given me things to do on plane flights. I&#8217;ve been trying a few productivity apps, with the idea of making the iPhone a well-rounded PDA.</p>
<p>Overall, I have been extremely pleased with my iPhone it fills the role of phone quite well, and does enough other things that I don&#8217;t feel the need to try and add more devices to my pockets. I would definitely recommend the iPhone to anyone who&#8217;s looking for a device that can fill a multitude of roles without sacrificing being a phone.</p>
]]></content:encoded>
			<wfw:commentRss>http://justin-shepard.net/2008/09/24/three-weeks-with-an-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From JBoss to Glassfish: Part II</title>
		<link>http://justin-shepard.net/2008/08/27/from-jboss-to-glassfish-part-ii/</link>
		<comments>http://justin-shepard.net/2008/08/27/from-jboss-to-glassfish-part-ii/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 19:43:59 +0000</pubDate>
		<dc:creator>justin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>

		<guid isPermaLink="false">http://justin-shepard.net/2008/08/27/from-jboss-to-glassfish-part-ii/</guid>
		<description><![CDATA[Welcome to the second post in a three part series about my experience migrating from the JBoss application server to the Glassfish application server. This post details the migration of our EJB-based services, and the trials and tribulations that occurred along the way. I will say that I ran into an interesting problem when writing [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the second post in a three part series about my experience migrating from the JBoss application server to the Glassfish application server. This post details the migration of our EJB-based services, and the trials and tribulations that occurred along the way. I will say that I ran into an interesting problem when writing this post, mostly stemming from the fact that I couldn&#8217;t remember what all I had done (SVN history gave me some of that), but various things that I did have been lost to the ether (like the results I had using the verifier tool). In the future, I should keep notes when I&#8217;m doing something like this. Anyway, on with the post.</p>
<p>I&#8217;ll say up front that I haven&#8217;t spent a lot of time working with EJBs. Most of what I&#8217;d done prior to this was modifying existing EJBs. The creation and deployment of EJBs was handled by other developers (all of whom had moved on by the time this project began). So I had some learning to do.</p>
<p>Our EJB modules pre-date 3.0 with its annotations, which meant lots of XML wrangling for me. The first thing that came up was that the ejb-jar.xml files were missing local EJB reference definitions. I don&#8217;t know if JBoss is more permissive than Glassfish or what, but the JNDI lookup in Glassfish failed without the ejb-local-ref elements. I didn&#8217;t discover the verifier tool until later on in the migration, so all the missing local references were found by deploying the EJB apps and uncovering them as I tested the system.</p>
<p>A related problem was also that the string constants used to reference the EJBs were often incorrect. I found this especially odd because we were using XDoclet to dynamically generate the EJB interfaces at compile time, and you think it would have gotten it correct. At any rate, I removed the compile-time generation, checked the interfaces into SVN and went on my way (they don&#8217;t really change enough to require compile-time generation).</p>
<p>The other big problem was doing the JNDI lookups for the EJBs. Fortunately, perhaps 80% of our JNDI lookups were handled by a single utility class, and it was easy enough to clean up that single class. The remaining JNDI lookups were scattered throughout the client and server code. And in pretty much every case, the initial context factory was passed to the InitialContext as a constant string (referencing the JBoss context factory, naturally) instead of letting that value be found in the environment. While I don&#8217;t expect us to change app servers all that often, letting the environment define as much as it can is certainly better than having lookups fail because they&#8217;re statically looking for the wrong classes.</p>
<p>Ultimately, I&#8217;d say most of our problems stemmed from an assumption that the app server would never change, or relying on vendor-specific behaviors (no doubt fed by the previous assumption). There are still a few places where we&#8217;re doing questionable things (several EJBs read configuration information from files, for example) but I have plans to take care of those.</p>
]]></content:encoded>
			<wfw:commentRss>http://justin-shepard.net/2008/08/27/from-jboss-to-glassfish-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From JBoss to Glassfish: Part I</title>
		<link>http://justin-shepard.net/2008/07/07/from-jboss-to-glassfish-part-i/</link>
		<comments>http://justin-shepard.net/2008/07/07/from-jboss-to-glassfish-part-i/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 14:48:33 +0000</pubDate>
		<dc:creator>justin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://justin-shepard.net/2008/07/07/from-jboss-to-glassfish-part-i/</guid>
		<description><![CDATA[This is the first in a multi-part post about my experiences migrating from JBoss to Glassfish. First, a bit of background. We&#8217;ve recently started swapping our backend over to a service-oriented architecture based on RESTful services. All of our recent development has been involved in the creation of new RESTful services, but we still have [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first in a multi-part post about my experiences migrating from JBoss to Glassfish.</p>
<p>First, a bit of background. We&#8217;ve recently started swapping our backend over to a service-oriented architecture based on <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">RESTful services</a>. All of our recent development has been involved in the creation of new RESTful services, but we still have a lot of legacy code that happens to take the form of EJBs and RPC-based web services. Faced with the need to either upgrade JBoss or switch to Glassfish, we chose the latter (which will probably make a fine post in the future). This meant we had to make changes to all three service types to get them all working in the new app server.</p>
<p>I&#8217;m going to start with the RESTful service migration, mostly because they were far and away the easiest part of the migration. So easy, in fact, that there were only two major issues I ran into.</p>
<p>The first came about because we were prepending numbers on the names of our web application archives. This was done for ordering reasons, and in JBoss, the number was ignored for determining things like context root. Glassfish, on the other hand, uses the entire war name. So while the services were working, and deploying correctly, you needed to have the correct number in the URL when accessing the service. Rather than change all the services to include numbers in the URL, I went looking for another solution. Thanks to the <a href="http://forums.java.net/jive/index.jspa">java.net forums</a> (which I found to be an excellent resource throughout the project) I discovered that you could set the context root in the sun-web.xml file of the web app (which then sprung into existence for all our services).</p>
<p>A fairly obvious solution, to be sure, but less so when you&#8217;re learning. <img src='http://justin-shepard.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The second was finding a deployment solution for our JDBC resources (this, of course, covered more than just the RESTful services, as the EJBs also used them, but this was the first area I hit the problem in). Adding and configuring resources via the Glassfish admin console is very easy, and I had no trouble setting up the resources, but navigating a web console isn&#8217;t the most friendly method for a more automated install process. The java.net forums once again proved their worth, leading me to the solution. In this case, the solution is the <a href="http://docs.sun.com/app/docs/doc/820-4497/add-resources-1?l=ru&amp;a=view">add-resources command</a> that is part of the command line administration tool.</p>
<p>This solution was doubly nice because we already had XML files for defining our resources in JBoss, and the formats were similar enough that creating the new files was mostly a matter of XML wrangling. This solution also nicely covered other resources, such as the few queues and topics we use for communication.</p>
<p>With those two things taken care of the RESTful services happily took up residence in Glassfish. And with the RESTful services out of the way, it was time to tackle the EJBs.</p>
]]></content:encoded>
			<wfw:commentRss>http://justin-shepard.net/2008/07/07/from-jboss-to-glassfish-part-i/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Twitter A Go-Go</title>
		<link>http://justin-shepard.net/2008/05/29/twitter-a-go-go/</link>
		<comments>http://justin-shepard.net/2008/05/29/twitter-a-go-go/#comments</comments>
		<pubDate>Thu, 29 May 2008 15:29:09 +0000</pubDate>
		<dc:creator>justin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://justin-shepard.net/?p=62</guid>
		<description><![CDATA[On a lark, I set up a twitter account a few days ago. Feel free to follow my tweets. I may or may not stick with it, as I&#8217;m not really sure I &#8220;get&#8221; twitter. But I do like fiddling with new things. I probably won&#8217;t add the twitter box you might see on other [...]]]></description>
			<content:encoded><![CDATA[<p>On a lark, I set up a twitter account a few days ago.  Feel free to follow <a href="http://twitter.com/diregyrfalcon">my tweets</a>.  I may or may not stick with it, as I&#8217;m not really sure I &#8220;get&#8221; twitter.  But I do like fiddling with new things.  I probably won&#8217;t add the twitter box you might see on other sites to my main page, mostly because I figure the bulk of my readers follow the RSS feed.  If you&#8217;d like to see the box though, let me know in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://justin-shepard.net/2008/05/29/twitter-a-go-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To New Purpose</title>
		<link>http://justin-shepard.net/2008/05/16/to-new-purpose/</link>
		<comments>http://justin-shepard.net/2008/05/16/to-new-purpose/#comments</comments>
		<pubDate>Fri, 16 May 2008 19:53:58 +0000</pubDate>
		<dc:creator>justin</dc:creator>
				<category><![CDATA[Non-Tech]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[greeting]]></category>

		<guid isPermaLink="false">http://justin-shepard.net/?p=61</guid>
		<description><![CDATA[So for the past month or so, I&#8217;ve been noodling about this blog in my spare time. That noodling brings you this post, which marks a change in the nature of this blog. But first, some boring expository text. The basic line of my thinking started with the following: I like the idea of a [...]]]></description>
			<content:encoded><![CDATA[<p>So for the past month or so, I&#8217;ve been noodling about this blog in my spare time.  That noodling brings you this post, which marks a change in the nature of this blog.  But first, some boring expository text.</p>
<p>The basic line of my thinking started with the following: I like the <em>idea</em> of a blog, I just haven&#8217;t been very good at the <em>execution</em> of a blog.  As I thought about it from there, the reasons why I wasn&#8217;t very good at writing the blog became apparent.</p>
<p>One reason is best illustrated with an example.  I have been sitting on a post about my Costa Rica trip for over a week now.  I haven&#8217;t published it because I&#8217;ve been waiting to get the pictures developed and uploaded to Flickr.  My original plan was to make this post after the Costa Rica post was published.  But because the Costa Rica post was basically stuck in the unpublished state, this post wasn&#8217;t happening either.  Normally, the post that&#8217;s blocking me from writing anything is all in my head and so nothing ever gets written. This sort of behavior has sentenced many previous post ideas to death.</p>
<p>But the biggest reason is that what I want this blog to be has changed.  I&#8217;m not really interested in trying to document the things that go on in my life, which is basically what I&#8217;d thought of as this blog&#8217;s purpose.  After thinking things through, I decided it was better to do something else with this blog, something I&#8217;d be more interested in writing about.  After all, I still like the idea of a blog, and the blog software and domain were already set up, so it seemed a shame to let it languish or to remove it.</p>
<p>And so, I&#8217;m making this post to announce that this blog is now going to be a place for me to talk about technology.  A pretty open-ended topic, to be sure.  But with this change I can cover a lot of ground that I&#8217;m actually interested in writing about.  For example, there are interesting technological decisions and happenings going on at my job, which are cool and I&#8217;d love to share (though obviously there&#8217;s some detail that must be omitted).  And I can talk about gadgets and such, because I really dig that sort of stuff.</p>
<p>That&#8217;s not to say that I will never make non-technology related posts.  There&#8217;s still cool stuff I occasionally do that I do want to share, like my Costa Rican adventure.  And it will likely be better and more interesting than what I was trying to do anyway, because it will be fun and cool stuff that I&#8217;ll want to spend time writing about. If you really want to skip out on the tech blather, feel free to point your browsers to <a href="http://justin-shepard.net/category/non-tech/" target="_self">this page</a> or your RSS readers to <a href="http://justin-shepard.net/category/non-tech/feed/" target="_self">this feed</a>.</p>
<p>Oh, if anyone has a better category name than &#8220;Non-Tech&#8221;, I&#8217;m all ears.</p>
]]></content:encoded>
			<wfw:commentRss>http://justin-shepard.net/2008/05/16/to-new-purpose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitor, RIP?</title>
		<link>http://justin-shepard.net/2007/02/08/monitor-rip/</link>
		<comments>http://justin-shepard.net/2007/02/08/monitor-rip/#comments</comments>
		<pubDate>Fri, 09 Feb 2007 03:23:21 +0000</pubDate>
		<dc:creator>justin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://justin-shepard.net/2007/02/08/monitor-rip/</guid>
		<description><![CDATA[This morning after waking and showering, I went to my computer to do my usual early morning computer hijinks to find that my LCD monitor was displaying nothing by white. The whole screen, from top to bottom, from left to right, was white. At first I thought it might be something with my computer, but [...]]]></description>
			<content:encoded><![CDATA[<p>This morning after waking and showering, I went to my computer to do my usual early morning computer hijinks to find that my LCD monitor was displaying nothing by white.  The whole screen, from top to bottom, from left to right, was white.  At first I thought it might be something with my computer, but a quick reboot revealed that it seemed to be working fine.  After swapping to the VGA cable, to see if maybe something the the DVI cable went wrong, and finding the screen still white, I decided that something was definitely wrong with the monitor.</p>
<p>I&#8217;ve contacted the monitor manufacturer to see if there&#8217;s anything they might be able to tell me or do to fix it.  In the meantime, I&#8217;ve pulled out my old 17&#8243; CRT monitor and am using that.   And having used the LCD monitor for so long, going back to the CRT shows me exactly what I gained by going LCD.  Oh well, the silver lining may be that I finally get to satiate that widescreen LCD monitor desire that my MacBook Pro instilled in me.</p>
]]></content:encoded>
			<wfw:commentRss>http://justin-shepard.net/2007/02/08/monitor-rip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Justin&#8217;s Next Phone?</title>
		<link>http://justin-shepard.net/2007/01/09/justins-next-phone/</link>
		<comments>http://justin-shepard.net/2007/01/09/justins-next-phone/#comments</comments>
		<pubDate>Tue, 09 Jan 2007 20:50:46 +0000</pubDate>
		<dc:creator>justin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[gadgets]]></category>

		<guid isPermaLink="false">http://justin-shepard.net/2007/01/09/justins-next-phone/</guid>
		<description><![CDATA[I think once my Razr retires, this phone is a leading candidate for my next phone. Hopefully I won&#8217;t break down and retire the Razr early.]]></description>
			<content:encoded><![CDATA[<p>I think once my Razr retires, <a href="http://www.apple.com/iphone/">this phone</a> is a leading candidate for my next phone.   Hopefully I won&#8217;t break down and retire the Razr early.   <img src='http://justin-shepard.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://justin-shepard.net/2007/01/09/justins-next-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A good morning . . .</title>
		<link>http://justin-shepard.net/2006/12/09/a-good-morning/</link>
		<comments>http://justin-shepard.net/2006/12/09/a-good-morning/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 17:05:41 +0000</pubDate>
		<dc:creator>justin</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://justin-shepard.net/2006/12/09/a-good-morning/</guid>
		<description><![CDATA[Is getting a DHCP daemon finally setup on your network so that you don&#8217;t have to manually re-enter your laptop&#8217;s network configuration when you return from using it at work, or any other locale where DHCP is running.]]></description>
			<content:encoded><![CDATA[<p>Is getting a DHCP daemon finally setup on your network so that you don&#8217;t have to manually re-enter your laptop&#8217;s network configuration when you return from using it at work, or any other locale where DHCP is running.</p>
]]></content:encoded>
			<wfw:commentRss>http://justin-shepard.net/2006/12/09/a-good-morning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
