<?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>Jeff Devine &#187; tech</title> <atom:link href="http://jeffdevine.com/category/tech/feed/" rel="self" type="application/rss+xml" /><link>http://jeffdevine.com</link> <description>I only tell you what to do because I love you</description> <lastBuildDate>Sun, 05 Feb 2012 01:50:09 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>The only way to be truly satisfied is to do what you believe is great work</title><link>http://jeffdevine.com/2011/08/25/the-only-way-to-be-truly-satisfied-is-to-do-what-you-believe-is-great-work/</link> <comments>http://jeffdevine.com/2011/08/25/the-only-way-to-be-truly-satisfied-is-to-do-what-you-believe-is-great-work/#comments</comments> <pubDate>Thu, 25 Aug 2011 14:18:00 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[startup]]></category> <category><![CDATA[tech]]></category> <category><![CDATA[life]]></category> <category><![CDATA[resignation]]></category> <category><![CDATA[steve jobs]]></category> <category><![CDATA[work]]></category><guid isPermaLink="false">http://jeffdevine.com/2011/08/25/the-only-way-to-be-truly-satisfied-is-to-do-what-you-believe-is-great-work/</guid> <description><![CDATA[I resigned from my cushy and safe corporate job the day after Steve to try and do exactly what he says in this quote. Life is short; you have to take chances.]]></description> <content:encoded><![CDATA[<p>I resigned from my cushy and safe corporate job the day after Steve to try and do exactly what he says in this quote. Life is short; you have to take chances.</p> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2011/08/25/the-only-way-to-be-truly-satisfied-is-to-do-what-you-believe-is-great-work/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Gartner Gets It Wrong With Cloud Quadrant</title><link>http://jeffdevine.com/2011/01/15/gartner-gets-it-wrong-with-cloud-quadrant/</link> <comments>http://jeffdevine.com/2011/01/15/gartner-gets-it-wrong-with-cloud-quadrant/#comments</comments> <pubDate>Sun, 16 Jan 2011 04:14:00 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[tech]]></category> <category><![CDATA[amazon]]></category> <category><![CDATA[aws]]></category> <category><![CDATA[cloud]]></category> <category><![CDATA[gartner]]></category><guid isPermaLink="false">http://jeffdevine.com/2011/01/15/gartner-gets-it-wrong-with-cloud-quadrant/</guid> <description><![CDATA[<a title="Gigaom" href="http://gigaom.com/cloud/gartner-gets-it-wrong-with-cloud-quadrant/">Gigaom</a> offers more proof that <a title="Gartner" href="http://www.gartner.com">Gartner</a> is irrelevant. Gartner's <a title="Magic Quadrant for Cloud" href="http://www.gartner.com/technology/media-products/reprints/att/vol12/article1/article1.html">Magic Quadrant</a> has Amazon AWS as a visionary reserving the leader quadrant for Verizon Business &#38; AT&#38;T.]]></description> <content:encoded><![CDATA[<p><a title="Gigaom" href="http://gigaom.com/cloud/gartner-gets-it-wrong-with-cloud-quadrant/">Gigaom</a> offers more proof that <a title="Gartner" href="http://www.gartner.com">Gartner</a> is irrelevant. Gartner&#8217;s <a title="Magic Quadrant for Cloud" href="http://www.gartner.com/technology/media-products/reprints/att/vol12/article1/article1.html">Magic Quadrant</a> has Amazon AWS as a visionary reserving the leader quadrant for Verizon Business &amp; AT&amp;T.</p><div>Both strange and disconnected from reality.</div> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2011/01/15/gartner-gets-it-wrong-with-cloud-quadrant/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Who cares about multitasking on a tablet?</title><link>http://jeffdevine.com/2011/01/06/who-cares-about-multitasking-on-a-tablet/</link> <comments>http://jeffdevine.com/2011/01/06/who-cares-about-multitasking-on-a-tablet/#comments</comments> <pubDate>Fri, 07 Jan 2011 04:15:35 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[tech]]></category> <category><![CDATA[blackberry]]></category> <category><![CDATA[ios]]></category> <category><![CDATA[ipad]]></category> <category><![CDATA[multitasking]]></category> <category><![CDATA[playbook]]></category> <category><![CDATA[tablet]]></category><guid isPermaLink="false">http://jeffdevine.com/?p=853</guid> <description><![CDATA[One of BlackBerry's primary talking points for its <a href="http://us.blackberry.com/playbook-tablet/">Playbook</a> is that multitasking is its major iPad-killing feature. For the average enterprise and home user, I don't understand how this is a feature that anyone would care about.]]></description> <content:encoded><![CDATA[<p>One of BlackBerry&#8217;s primary talking points for its <a href="http://us.blackberry.com/playbook-tablet/">Playbook</a> is that multitasking is its major iPad-killing feature. For the average enterprise and home user, I don&#8217;t understand how this is a feature that anyone would care about.</p><p>Every demo BlackBerry gives usually goes something like this:</p><ol><li>Launch Movie, play it</li><li>Launch eBook Store</li><li>Launch Calculator</li><li>Launch Web Browser</li><li>Switch between the applications to show that they are still running</li></ol><p>Without fail, they say something along the lines of &#8220;this is true multitasking, we aren&#8217;t just freezing the applications in the background.&#8221; This, of course, differentiates the Playbook from iOS devices since Apple&#8217;s implementation of multitasking will freeze all background applications (save for a few functions such as GPS, music, incoming voip calls, etc).</p><p>So the PlayBook user can have a calculator and web browser actively running in the background while they buy a book? This offers nothing more than strain on resources, specifically the battery.</p><p>Any company who thinks it can innovate the tablet space by replicating a PC experience has already failed. Microsoft tried this for almost a decade and failed miserably. BlackBerry is on course to repeat history.</p> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2011/01/06/who-cares-about-multitasking-on-a-tablet/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Wrong about Digg</title><link>http://jeffdevine.com/2010/10/25/wrong-about-digg/</link> <comments>http://jeffdevine.com/2010/10/25/wrong-about-digg/#comments</comments> <pubDate>Mon, 25 Oct 2010 14:36:00 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[tech]]></category> <category><![CDATA[entrepreneur]]></category> <category><![CDATA[Quote]]></category> <category><![CDATA[Web2.0]]></category><guid isPermaLink="false">http://jeffdevine.finishingishard.com/2010/10/25/wrong-about-digg/</guid> <description><![CDATA[Daniel misses the point that while Digg may not be hard to build technically,&#160;scaling&#160;the site and community was very hard and led to their downfall.]]></description> <content:encoded><![CDATA[<p><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; line-height: 18px; ">Daniel misses the point that while Digg may not be hard to build technically,&nbsp;scaling&nbsp;the site and community was very hard and led to their downfall.</span></p> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2010/10/25/wrong-about-digg/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Enterprise Software will not be missed</title><link>http://jeffdevine.com/2010/02/21/enterprise-software-will-not-be-missed/</link> <comments>http://jeffdevine.com/2010/02/21/enterprise-software-will-not-be-missed/#comments</comments> <pubDate>Sun, 21 Feb 2010 17:22:19 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[tech]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Enterprise Software]]></category><guid isPermaLink="false">http://jeffdevine.com/?p=238</guid> <description><![CDATA[How two days with two different vendors reinforced my view that the business world will not miss Enterprise Software vendors...]]></description> <content:encoded><![CDATA[<p>On Wednesday, I&#8217;m on a call with Big Vendor #1, and they are very interested in expanding their business with my employer. They are sure that upgrading to their premium API makes sense, so I ask my typical line of &#8220;techie&#8221; questions about REST vs SOAP and I get the typical, &#8220;We&#8217;ll talk to our tech people and get back to you.&#8221;</p><p>In their follow-up email, they send me a high-level PowerPoint and provide a URL I should &#8220;send to my techies and see what they think.&#8221; Clearly I must not know my ass from a compiler.</p><p>On Thursday, I&#8217;m in a meeting with Even Bigger Vendor #2, and they are very interested in expanding their business with my employer. Surely using their newly acquired rules engine will solve all my company&#8217;s risk-management needs. My concern that they were providing a <em>technological</em> solution for a <em>business</em> problem that doesn&#8217;t exist didn&#8217;t stop them at all. They spent the rest of the meeting speaking down to me as if I was clearly a techonlogist who could never understand &#8220;Real World&#8221; business problems.</p><p>My years of experience in P&#038;C Insurance and intimate knowledge of my company&#8217;s problems were trumped by Vendor #2&#8242;s countless years selling Websphere to investment banks.</p><p>Both vendors followed up the very next day, eager to know how soon we could move forward. Neither vendor took the time to get to know me, my place in the company and what I could offer to better position them. Why would I ever give them the keys to the kingdom?</p><p>When it comes to vendors, relationships are everything. An Enterprise Software company, whose only connection to a customer is its army of faceless, apathetic sales team, will not survive in the long run.</p><p>Anyone with an idea, a credit card, and the passion to succeed has access to world-class infrastructure. Regardless of your opinion of what cloud computing is or is not: it is a new paradigm, giving anyone the ability to compete on the same level as established players.</p><p>It isn&#8217;t the silver bullet nor does it guarantee success, but it does change the game. It will take time, years perhaps, but the Enterprise Software industry doesn&#8217;t stand a chance.</p><p>Acquisitions may buy you people and technology, but you can never acquire agility or passion.</p> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2010/02/21/enterprise-software-will-not-be-missed/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The Cloud Computing Consultant</title><link>http://jeffdevine.com/2009/10/11/the-cloud-computing-consultant/</link> <comments>http://jeffdevine.com/2009/10/11/the-cloud-computing-consultant/#comments</comments> <pubDate>Sun, 11 Oct 2009 20:46:21 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[tech]]></category> <category><![CDATA[cloud]]></category> <category><![CDATA[Video]]></category><guid isPermaLink="false">http://jeffdevine.com/?p=227</guid> <description><![CDATA[Hilarious video about the state of cloud computing. It&#8217;s certainly a little inside baseball, but if you follow this stuff, you&#8217;ll love it.]]></description> <content:encoded><![CDATA[<p>Hilarious video about the state of cloud computing. It&#8217;s certainly a little inside baseball, but if you follow this stuff, you&#8217;ll love it.</p><p style="text-align: center;"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/AIrroq5sV84&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/AIrroq5sV84&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" allowscriptaccess="always" allowfullscreen="true"></embed></object></p> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2009/10/11/the-cloud-computing-consultant/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Simple-Build-Tool or: How I RTFM and stopped hating on Maven</title><link>http://jeffdevine.com/2009/09/27/simple-build-tool-or-how-i-rtfm-and-stopped-hating-on-maven/</link> <comments>http://jeffdevine.com/2009/09/27/simple-build-tool-or-how-i-rtfm-and-stopped-hating-on-maven/#comments</comments> <pubDate>Sun, 27 Sep 2009 07:51:44 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[tech]]></category> <category><![CDATA[10.6]]></category> <category><![CDATA[Jersey]]></category> <category><![CDATA[Scala]]></category> <category><![CDATA[Simple-Build-Tool]]></category> <category><![CDATA[WHY?]]></category><guid isPermaLink="false">http://jeffdevine.com/?p=162</guid> <description><![CDATA[<p>Tonight I was supposed to see <a href="http://www.myspace.com/whyanticon" target="_blank">WHY?</a> at <a href="http://lepoissonrouge.com" target="_blank">Le Poisson Rouge</a> but for some completely unknown reason, I felt I would be better served staying in and working....</p>]]></description> <content:encoded><![CDATA[<p>Tonight I was supposed to see <a href="http://www.myspace.com/whyanticon" target="_blank">WHY?</a> at <a href="http://lepoissonrouge.com" target="_blank">Le Poisson Rouge</a> but for some completely unknown reason, I felt I would be better served staying in and working.</p><p>I&#8217;m trying to prototype a Scala-based REST API that gets called by a <a href="http://code.google.com/webtoolkit/" target="_blank">GWT</a> front-end. My Scala is extremely weak but Martin Kleppmann&#8217;s <a href="http://www.yes-no-cancel.co.uk/" target="_blank">Yes/No/Cancel</a> had a great <a href="http://www.yes-no-cancel.co.uk/2009/05/13/building-go-test-it-fun-with-scala-and-rest-apis/" target="_blank">write-up</a> accomplishing the aforementioned task using <a href="https://jersey.dev.java.net/" target="_blank">Jersey</a> and Scala. Unfortunately for me, I&#8217;ve <a href="http://lists.apple.com/archives/java-dev/2009/Sep/msg00067.html" target="_blank">mangled</a> my java environment trying to get GWT to run on Snow Leopard and I was having no luck getting Martin&#8217;s Maven POM to work.</p><p>Already regretting my decision to pass on the concert, I wasn&#8217;t going to waste my entire night cursing at Maven. Instead I took this opportunity to use Martin&#8217;s examples but apply them to <a href="http://code.google.com/p/simple-build-tool/" target="_blank">Simple Build Tool</a>. The following is how I RTFM and started learned how to use SBT. I&#8217;d love feedback so please look it over or follow along and let me know if there is a better way to go about this.</p><p>First, start a new project by creating a directory for the project and running <strong>sbt</strong> from within this new directory. When SBT is run with no action specified and it doesn&#8217;t detect a project structure, it prompts to create a new project. I used the following, mostly taking the default values:</p><pre>
     Name: api
     Organization []: com.jeffdevine
     Version [1.0]:
     Scala version [2.7.5]:
     sbt version [0.5.3]:
</pre><p>The initial process downloads any dependencies needed and creates a default project structure:</p><pre>
    lib/
    project/
          boot/
          build.properties
    src/
          main
              resources/
              scala/
          test
              resources/
              scala/
    target/
</pre><p>My initial needs for prototyping the REST API are Jetty and Jersey, so I configured SBT to manage these dependencies by adding the file <em>./project/build/ApiProject.scala</em> (note: <em>build</em> is a new directory):</p><div class="wp_syntax"><div class="code"><pre class="scala" style="font-family:monospace;"><span style="color: #0000ff; font-weight: bold;">import</span> sbt.<span style="color: #000080;">_</span>
&nbsp;
<span style="color: #0000ff; font-weight: bold;">class</span> ApiProject<span style="color: #F78811;">&#40;</span>info<span style="color: #000080;">:</span> ProjectInfo<span style="color: #F78811;">&#41;</span> <span style="color: #0000ff; font-weight: bold;">extends</span> DefaultWebProject<span style="color: #F78811;">&#40;</span>info<span style="color: #F78811;">&#41;</span>
<span style="color: #F78811;">&#123;</span>
   <span style="color: #0000ff; font-weight: bold;">val</span> snapshots <span style="color: #000080;">=</span> <span style="color: #6666FF;">&quot;Java.net Repository&quot;</span> at <span style="color: #6666FF;">&quot;http://download.java.net/maven/2/&quot;</span>
   <span style="color: #0000ff; font-weight: bold;">val</span> jetty6 <span style="color: #000080;">=</span> <span style="color: #6666FF;">&quot;org.mortbay.jetty&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;jetty&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;6.1.14&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;test-&gt;default&quot;</span>	
   <span style="color: #0000ff; font-weight: bold;">val</span> jersey <span style="color: #000080;">=</span> <span style="color: #6666FF;">&quot;com.sun.jersey&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;jersey-server&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;1.1.2-ea&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;test-&gt;default&quot;</span> 
   <span style="color: #0000ff; font-weight: bold;">val</span> jsr311 <span style="color: #000080;">=</span> <span style="color: #6666FF;">&quot;javax.ws.rs&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;jsr311-api&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;1.1-ea&quot;</span> <span style="color: #000080;">%</span> <span style="color: #6666FF;">&quot;compile-&gt;default&quot;</span>
<span style="color: #F78811;">&#125;</span></pre></div></div><p>From the SBT interactive session, execute <strong>reload</strong> to recompile the project definition and <strong>update</strong> to download all the specified dependencies.</p><p>Back to Martin&#8217;s example, I slightly modified his Scala code and saved it in <em>./src/main/scala/Hello.scala</em>:</p><div class="wp_syntax"><div class="code"><pre class="scala" style="font-family:monospace;"><span style="color: #0000ff; font-weight: bold;">package</span> com.<span style="color: #000000;">jeffdevine</span>.<span style="color: #000000;">api</span>
<span style="color: #0000ff; font-weight: bold;">import</span> javax.<span style="color: #000000;">ws</span>.<span style="color: #000000;">rs</span>.<span style="color: #000080;">_</span>
&nbsp;
<span style="color: #000080;">@</span>Path<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;/hello&quot;</span><span style="color: #F78811;">&#41;</span>
<span style="color: #0000ff; font-weight: bold;">class</span> Hello <span style="color: #F78811;">&#123;</span>
  <span style="color: #000080;">@</span>GET <span style="color: #000080;">@</span>Produces<span style="color: #F78811;">&#40;</span>Array<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;text/html&quot;</span><span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#41;</span>
  <span style="color: #0000ff; font-weight: bold;">def</span> doGet <span style="color: #000080;">=</span> <span style="color: #6666FF;">&quot;&lt;html&gt;&lt;body&gt;&lt;p&gt;Hello? You could be seeing Why? right now...&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>
<span style="color: #F78811;">&#125;</span></pre></div></div><p>The last bit is to tell Jetty what to do by creating a file in <em>./src/main/webapp/WEB-INF/web.xml</em> (note: you&#8217;ll need to create the directory structure <em>webapp/WEB-INF</em>):</p><div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;web-app</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;2.4&quot;</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://java.sun.com/xml/ns/j2ee&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span></span>
<span style="color: #009900;">  <span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Example REST API<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.sun.jersey.spi.container.servlet.ServletContainer<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;init-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.sun.jersey.config.property.packages<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.jeffdevine.api<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/init-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;load-on-startup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/load-on-startup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Example REST API<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>/*<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url-pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/servlet-mapping<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;session-config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;session-timeout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>30<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/session-timeout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/session-config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/web-app<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>Back in SBT,  execute <strong>jetty-run</strong>, and within a few seconds, jetty is serving the API on http://localhost:8080/hello. Firing off a GET request returns the HTML<pre>     Hello? You could be seeing Why? right now...</pre><p>Executing <strong>jetty-stop</strong> will kill the server, and <strong>jetty-restart</strong> restarts jetty, picking up any code changes.</p><p>While this is a basic example that could use a test case or two, it has given me what I need to start prototyping and I no longer feel like a schmuck for skipping tonight&#8217;s concert&#8230; which would have gone something like this:</p><p><object width="425px" height="360px" ><param name="allowFullScreen" value="true"/><param name="wmode" value="transparent"/><param name="movie" value="http://mediaservices.myspace.com/services/media/embed.aspx/m=34274112,t=1,mt=video"/><embed src="http://mediaservices.myspace.com/services/media/embed.aspx/m=34274112,t=1,mt=video" width="425" height="360" allowFullScreen="true" type="application/x-shockwave-flash" wmode="transparent"></embed></object></p> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2009/09/27/simple-build-tool-or-how-i-rtfm-and-stopped-hating-on-maven/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Happy HP Mac Mini</title><link>http://jeffdevine.com/2009/09/21/happy-hp-mac-mini/</link> <comments>http://jeffdevine.com/2009/09/21/happy-hp-mac-mini/#comments</comments> <pubDate>Tue, 22 Sep 2009 04:21:20 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[tech]]></category> <category><![CDATA[10.6]]></category> <category><![CDATA[Apple]]></category> <category><![CDATA[MacMini]]></category> <category><![CDATA[Miracle]]></category><guid isPermaLink="false">http://jeffdevine.com/?p=157</guid> <description><![CDATA[I&#8217;ve had an HP Mini 1000 netbook for the last few months running a mangled and outdated copy of iDeneb with lackluster results. Performance was fine but you could tell something wasn&#8217;t right which I attributed to running old code and hacked kexts. Sunday night I happened across the excellent blog Macbook Mini only to find a [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;ve had an <a href="http://www.hp.com/united-states/campaigns/mini1000/" target="_blank">HP Mini 1000</a> netbook for the last few months running a mangled and outdated copy of <a href="http://ihackintosh.org/ideneb" target="_blank">iDeneb</a> with lackluster results. Performance was fine but you could tell something wasn&#8217;t right which I attributed to running old code and hacked kexts.</p><p>Sunday night I happened across the excellent blog <a href="http://mymacbookmini.wordpress.com/" target="_blank">Macbook Mini</a> only to find a freshly baked <a href="http://mymacbookmini.wordpress.com/2009/09/20/cat-in-the-bag-install-snow-leopard-on-the-hp-mini/" target="_blank">step-by-step guide</a> to installing Snow Leopard straight from the Retail DVD&#8230; barring the fact that the HP has no DVD drive.</p><p>The steps where clear and concise and under a few hours with no major pain or bruising, my Mini HP is running like a champ. The only drawback is sleep doesn&#8217;t work, but I&#8217;ll take the ability to backup Time Machine over-the-air any day.</p><p>Internet miracles really do happen everyday.</p> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2009/09/21/happy-hp-mac-mini/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Prototype vs. Architecture</title><link>http://jeffdevine.com/2009/09/20/prototype-vs-architecture/</link> <comments>http://jeffdevine.com/2009/09/20/prototype-vs-architecture/#comments</comments> <pubDate>Mon, 21 Sep 2009 01:26:40 +0000</pubDate> <dc:creator>Jeff</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[startup]]></category> <category><![CDATA[tech]]></category> <category><![CDATA[GWT]]></category><guid isPermaLink="false">http://jeffdevine.com/?p=133</guid> <description><![CDATA[The CEO of Meebo, Seth Sternberg, started a TechCrunch series focusing on the decisions a young entrepreneur needs to make. His first post, &#8220;From Nothing To Something. How To Get There&#8221; recommends you focus on building a product and forget about VC: &#8220;At the exact moment you had your idea, ten other people had the [...]]]></description> <content:encoded><![CDATA[<p>The CEO of Meebo, Seth Sternberg, started a TechCrunch series focusing on the decisions a young entrepreneur needs to make. His first post, &#8220;<a href="http://www.techcrunch.com/2009/09/20/from-nothing-to-something-how-to-get-there/" target="_blank">From Nothing To Something. How To Get There&#8221;</a> recommends you focus on building a product and forget about VC:</p><blockquote><p>&#8220;At the exact moment you had your idea, ten other people had the exact same idea. There was just something in the environment that made it the right time for folks to think that one up. The race has already begun! Who’s going to execute first? Who’s going to execute best? If you want to waste nine months trying to raise VC money for that idea, great. But six months in, you’re gonna cry when you see someone else put out that same product you’re pitching me right now. Like I said, forget everything else and just get your product out the door. Now.&#8221;</p></blockquote><p>This weekend I also rediscovered Martin Kleppmann&#8217;s excellent blog <a href="http://www.yes-no-cancel.co.uk" target="_blank">Yes/No/Cancel</a>. First it was <a href="http://www.yes-no-cancel.co.uk/2009/05/13/building-go-test-it-fun-with-scala-and-rest-apis/">building simple REST APIs in Scala</a> but felt strangely validated reading <a href="http://www.yes-no-cancel.co.uk/2009/09/18/the-python-paradox-is-now-the-scala-paradox/">The Python Paradox is now the Scala Paradox</a>. He uses an argument from <a href="http://www.paulgraham.com/" target="_blank">Paul Graham</a> that:</p><blockquote><p>&#8220;&#8230;a company can hire smarter programmers if it chooses to write its code in a “comparatively esoteric” programming language&#8221;</p></blockquote><p>While Paul Graham was arguing about Python at the time, Kleppmann argues that Scala is this year&#8217;s black and has had great success using it to build parts of <a href="http://go-test.it/" target="_blank">Go Test It</a>:</p><blockquote><p>&#8220;&#8230;but provided the technology is suitable and won’t increase your costs disproportionately, why not do something fashionable and adventurous? In an innovation-based technology business, the quality of your developers is key. Investments into things which make your good developers happy will pay off handsomely.&#8221;</p></blockquote><p>I&#8217;m with Seth that every minute I&#8217;m not working on my ideas someone else is, but I struggle with what risks I add by using tech that is new to me. Is it worth adding a few months to get a solid architecture in place as opposed to throwing together a shell that&#8217;s mostly throwaway? When you have no product you can only consider the opportunity cost.</p><p>In the end none of it matters if I don&#8217;t have a working prototype, but this does continue to occupy me&#8230; especially as I wait on GWT to compile with Snow Leopard fixes.</p> ]]></content:encoded> <wfw:commentRss>http://jeffdevine.com/2009/09/20/prototype-vs-architecture/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: jeffdevine.com @ 2012-02-05 12:23:53 -->
