<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0IMQX8zcSp7ImA9WhdWE0w.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504</id><updated>2011-09-06T06:19:40.189-06:00</updated><category term="mobile" /><category term="javascript jquery asp.net-mvc c#" /><category term="SpecFlow .NET Testing BDD" /><category term="Product Management" /><category term="education" /><category term="Twitter" /><category term="tools" /><category term="Novell" /><category term="collaboration" /><category term="NIN" /><category term="Review" /><category term="kicking ass" /><category term="Ghosts" /><category term="gnu" /><category term="Windows" /><category term="open source" /><category term="Security" /><category term="copyright law" /><category term="Apple" /><category term="Programming" /><category term="Testing" /><category term="Trent Reznor" /><category term="practice" /><category term="Scala" /><category term="code kata" /><category term="ergonomics" /><category term="Git" /><category term="agile" /><category term="Chrome" /><category term="tee" /><category term="creative comons" /><category term="open" /><category term="Compiz Fusion" /><category term="work" /><category term="Blog Action Day" /><category term="Automation" /><category term="PS1" /><category term="office" /><category term="Neumont" /><category term="Epiphany" /><category term="JSR" /><category term="music" /><category term="Tips" /><category term="Nine Inch Nails" /><category term="Peer review" /><category term="Java" /><category term="Google" /><category term="Blogging" /><category term="JCP" /><category term="Netbeans" /><category term="copyright" /><category term="SLED" /><category term="terminal" /><category term="unix" /><category term="Linux" /><category term="Eclipse" /><category term="history" /><category term="coding dojo" /><category term="design" /><category term="Ubuntu" /><category term="version control" /><category term="Bash" /><category term="Suse" /><category term="gmail" /><category term="Books" /><title>Sam Merrell</title><subtitle type="html">What we do is never understood, but only praised and blamed. -Nietzsche</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://smerrell.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/SamMerrell" /><feedburner:info uri="sammerrell" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><entry gd:etag="W/&quot;AkQAQX45eip7ImA9WhdTEU4.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-4188207847968328592</id><published>2011-07-08T09:18:00.001-06:00</published><updated>2011-07-08T09:19:00.022-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-08T09:19:00.022-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Books" /><title>Clean Code</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Ze6iXuhjyuw/ThNV-BY1HxI/AAAAAAAAAiM/4ouKqkD2Lu8/s1600/11+-+1" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-Ze6iXuhjyuw/ThNV-BY1HxI/AAAAAAAAAiM/4ouKqkD2Lu8/s320/11+-+1" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
I just finished reading Uncle Bob Martin's book The Clean Coder and it is a great read for any software developer who cares about their craft. This book already has taken its place among the books that have changed the way I look at software development and my carreer (i.e. The Pragmatic Programmer, Code Complete).&lt;br /&gt;
&lt;br /&gt;
If you haven't read this book, you should go out and read it. I'd suggest getting the actual book instead of the Kindle version so you can write notes in the margins.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-4188207847968328592?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=p2VZP6hhtDw:V5HIUdQUtFw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=p2VZP6hhtDw:V5HIUdQUtFw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=p2VZP6hhtDw:V5HIUdQUtFw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=p2VZP6hhtDw:V5HIUdQUtFw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=p2VZP6hhtDw:V5HIUdQUtFw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=p2VZP6hhtDw:V5HIUdQUtFw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=p2VZP6hhtDw:V5HIUdQUtFw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=p2VZP6hhtDw:V5HIUdQUtFw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/p2VZP6hhtDw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/4188207847968328592/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2011/07/clean-code.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/4188207847968328592?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/4188207847968328592?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/p2VZP6hhtDw/clean-code.html" title="Clean Code" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Ze6iXuhjyuw/ThNV-BY1HxI/AAAAAAAAAiM/4ouKqkD2Lu8/s72-c/11+-+1" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2011/07/clean-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cEQHw-fyp7ImA9Wx9REkw.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-6795075784640299075</id><published>2010-12-12T22:43:00.000-07:00</published><updated>2010-12-12T22:43:21.257-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-12T22:43:21.257-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SpecFlow .NET Testing BDD" /><title>Trying out BDD With SpecFlow and Selenium - Part 1</title><content type="html">One of the biggest things I learned when I was working as a tester at IBM is how important testing really is in applications large and small. While I've moved on to full time development the test side of my work has really never gone away. While working on updating one of the features of the Extend Health side we've decided that it would be a good time to try out some testing that hasn't been covered much.&lt;br /&gt;
&lt;br /&gt;
So with that we've decided to try out some Behavior Driven Development and write some integration tests for this new feature. Since we're a .NET shop we've decided to give &lt;a href="http://specflow.org/"&gt;SpecFlow&lt;/a&gt; a try instead of running &lt;a href="http://cukes.info/"&gt;Cucumber&lt;/a&gt; straight on Ruby. Fortunately if we ever decide to switch from SpecFlow to Cucumber our features will transition directly since they are in the &lt;a href="https://github.com/aslakhellesoy/cucumber/wiki/gherkin"&gt;Gherkin&lt;/a&gt; format. The main reason we're trying out this Gherkin format is that it gives us a &lt;a href="http://martinfowler.com/bliki/BusinessReadableDSL.html"&gt;Business Readable Domain Specific Language&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
The advantage that this would buy us is that we could document the sites features in a way that both the business development team could read and write features in a way that we in development could directly write tests against them. This also helps us in development because we have a solid list of features we know that we need to implement and that we should be less likely to either break that feature or miss it altogether. This is one thing that Unit Tests just don't really buy you. It would be easy enough to write a suite of Unit Tests that don't cover the actual feature itself as described by the business.&lt;br /&gt;
&lt;br /&gt;
So lets get to what a test in SpecFlow looks like. &lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: text" title="A simple SpecFlow Feature with a Scenario"&gt;Feature: Share this post
    In order to increase traffic to the blog to increase advertising revenue
    I want readers to share posts they find interesting

Scenario: Share on Twitter
    Given a person reading a blog post
    When they press the "Tweet This" button
    Then the Twitter popup should appear
&lt;/pre&gt;&lt;br /&gt;
So there we go, that's pretty simple looking right? That right there is the beauty of the Gherkin syntax to me. It is structured enough that we crazy programmer types could turn that into some tests (and we'll get there) but the business types can also read and understand what is going on here. Oh and because I think this is awesome, using Cucumber you can write this in a ton of different spoken &lt;a href="https://github.com/aslakhellesoy/cucumber/wiki/Spoken-languages"&gt;languages&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
One thing I'd like to point out though, is that while features and scenarios look really simple, I've found so far that the hardest part is writing a clear feature and scenario. Writing unit tests aren't very difficult since you break that down as much as possible. It all comes down to communication really, finding the best way to describe a feature without getting too broad or too detailed. The cucumber docs do have a really great &lt;a href="https://github.com/aslakhellesoy/cucumber/wiki/"&gt;example&lt;/a&gt; (scroll to the bottom) of applying the &lt;a href="http://en.wikipedia.org/wiki/5_Whys"&gt;Five Whys&lt;/a&gt; to really decide why you want a feature and how to describe it.&lt;br /&gt;
&lt;br /&gt;
So now that we've had a chance to check out the Gherkin syntax that SpecFlow uses, in my next post I'll show the actual code behind this feature and how we're starting to use Selenium to verify these features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-6795075784640299075?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=iQqh4vOwouY:fWVx-3GMFZs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=iQqh4vOwouY:fWVx-3GMFZs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=iQqh4vOwouY:fWVx-3GMFZs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=iQqh4vOwouY:fWVx-3GMFZs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=iQqh4vOwouY:fWVx-3GMFZs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=iQqh4vOwouY:fWVx-3GMFZs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=iQqh4vOwouY:fWVx-3GMFZs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=iQqh4vOwouY:fWVx-3GMFZs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/iQqh4vOwouY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/6795075784640299075/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2010/12/trying-out-bdd-with-specflow-and.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/6795075784640299075?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/6795075784640299075?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/iQqh4vOwouY/trying-out-bdd-with-specflow-and.html" title="Trying out BDD With SpecFlow and Selenium - Part 1" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2010/12/trying-out-bdd-with-specflow-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cAQn06fyp7ImA9Wx9SFUk.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-564931761907287818</id><published>2010-12-05T01:41:00.001-07:00</published><updated>2010-12-05T02:24:03.317-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-05T02:24:03.317-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript jquery asp.net-mvc c#" /><title>One Week Down Learning JavaScript and jQuery</title><content type="html">Like I mentioned in my &lt;a href="http://smerrell.blogspot.com/2010/11/change-of-pace.html"&gt;last post&lt;/a&gt;&amp;nbsp;I've started a new job this Monday at &lt;a href="http://extendhealth.com/"&gt;Extend Health&lt;/a&gt;&amp;nbsp;working in .NET with a bunch of fun technologies including ASP.NET MVC2, Nhibernate, some FubuMVC and &amp;nbsp;using a bunch of jQuery. At my last job at Mediaport I had just started teaching myself both ASP.NET MVC2 and digging deeper into JavaScript and jQuery. Now that my first week is done at Extend Health I've been happily digging through all the code and working on my assignment to study some more on JavaScript.&lt;br /&gt;
&lt;br /&gt;
This week I have been reading Douglas Crockford's book &lt;a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742"&gt;JavaScript: The Good Parts&lt;/a&gt;. I had watched a video of his talk about JavaScript's good parts at Yahoo! before but reading this book has really opened my eyes to JavaScript and the power as well as pitfalls of the language. It is definitely going to take some time to fully appreciate the power JavaScript has.&lt;br /&gt;
&lt;br /&gt;
So onto a little bit of what I've been up to during my first week.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;jQuery Templates:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Besides just trying to become more familiar with JavaScript as well as jQuery I was looking at places we might be able to try out &lt;a href="http://api.jquery.com/category/plugins/templates/"&gt;jQuery Templates&lt;/a&gt;&amp;nbsp;which is one of the plugins developed by Microsoft that have recently become official parts of jQuery. After playing a little bit with the jQuery Templates I have to say that I really like them. I've seen a few template plugins that rely on you dumping all the templates into big ugly strings and with jquery-tmpl you can avoid all that. Here is a quick sample of one:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: html" title="Knockout.js bindings"&gt;&lt;script id="contacttmpl" type="text/x-jquery-tmpl"&gt;
&lt;tr&gt;
    &lt;th&gt;&amp;nbsp&lt;/th&gt;
    &lt;th&gt;First Name&lt;/th&gt;
    &lt;th&gt;Last Name&lt;/th&gt;
&lt;tr&gt;
  {{each contacts}}
&lt;tr class="contact"&gt;
      &lt;td&gt;&amp;nbsp;&lt;/td&gt;
      &lt;td&gt;&lt;input name="firstName" class="contact" type="text" value="${firstName}"&lt;/td&gt;
      &lt;td&gt;&lt;input name="lastName" class="contact" type="text" value="${lastName}"&lt;/td&gt;
    &lt;/tr&gt;
{{/each}}
&lt;/script&gt;
&lt;/pre&gt;&lt;br /&gt;
Pretty straightforward but the nice thing is that you don't have any ugly string to muck with. Instead you get a nicely encapsulated template which has a competent set of features including the each, if/else, and nesting of templates. I'll have to use it some more but this plugin looks really great and should get even better over time.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;jQuery Datalink and Knockout.js&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
Along with the jQuery Templates I checked out another plugin from Microsoft called jQuery Datalink. The datalink plugin lets you bind a JavaScript object to a form and keep the two in sync without having to write a bunch of extra code. Here is a quick example of binding a form to a JavaScript object.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: html" title="The form we're going to bind to"&gt;&lt;form action=""&gt;    &lt;label for="firstName"&gt;First Name:&lt;/label&gt;
    &lt;input name="firstName" type="text" value="" /&gt;
    &lt;label for="lastName"&gt;Last Name:&lt;/label&gt;
    &lt;input name="lastName" type="text" value="" /&gt;
&lt;/form&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;pre class="brush: javascript" title="Binding to the form"&gt;    var person = {};
    $("form").bind(person);
&lt;/pre&gt;&lt;br /&gt;
With that, we've bound the person object to the form. This will give person the attributes firstName and lastName. Now whenever the text changes for the firstName or lastName text inputs the person object will be updated. Pretty simple, but it could prove useful.&lt;br /&gt;
&lt;br /&gt;
While looking at the jQuery Datalink plugin I heard about Knockout.js which also provides databinding but takes a different approach than jQuery Datalink. In Knockout things are much more JavaScript oriented and is based of of the &lt;a href="http://en.wikipedia.org/wiki/Model_View_ViewModel"&gt;Model View ViewModel&lt;/a&gt; (MVVM) pattern. &lt;br /&gt;
So in Knockout, we create a view model that we will bind its attributes to in the HTML. &lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: html" title="The knockout bindings"&gt;    The first name is &lt;span data-bind="text: personFirstName"&gt;&lt;/span&gt;
    The last name is &lt;span data-bind="text: personLastName"&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;pre class="brush: javascript" title="The view model we want to use"&gt;    var myViewModel = {
        personFirstName: ko.observable('Bob'),
        personLastName: ko.observable('Marley'),
    }

    ko.applyBindings(myViewModel);
&lt;/pre&gt;&lt;br /&gt;
And with that whenever the underlying JavaScript object changes the values will be updated in the HTML. That is just a simple example of what Knockout can do. Knockout looks like a really interesting project and the style of binding should feel familiar to any Silverlight or WPF developers since that is what this is based off. Hopefully I'll have some more time to write about Knockout.js as it seems like a really interesting project.&lt;br /&gt;
&lt;br /&gt;
My first week has been really fun and I'm really looking forward to mastering JavaScript and digging much deeper in to ASP.NET MVC and C#. So here's to learning more code!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-564931761907287818?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=3w0Exo3HRGI:8Ip5jNKgHY0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=3w0Exo3HRGI:8Ip5jNKgHY0:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=3w0Exo3HRGI:8Ip5jNKgHY0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=3w0Exo3HRGI:8Ip5jNKgHY0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=3w0Exo3HRGI:8Ip5jNKgHY0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=3w0Exo3HRGI:8Ip5jNKgHY0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=3w0Exo3HRGI:8Ip5jNKgHY0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=3w0Exo3HRGI:8Ip5jNKgHY0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/3w0Exo3HRGI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/564931761907287818/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2010/12/one-week-down-learning-javascript-and.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/564931761907287818?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/564931761907287818?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/3w0Exo3HRGI/one-week-down-learning-javascript-and.html" title="One Week Down Learning JavaScript and jQuery" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2010/12/one-week-down-learning-javascript-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QNSXc_fCp7ImA9Wx5aEko.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-3910496583330282596</id><published>2010-11-08T21:03:00.000-07:00</published><updated>2010-11-08T21:03:18.944-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-08T21:03:18.944-07:00</app:edited><title>A Change of Pace</title><content type="html">It has been a while since I last posted anything up on my blog (apparently when IBM laid me off) so I'm starting to sense a bit of a trend here. :)&lt;br /&gt;
&lt;br /&gt;
Since my last post I got a job with a couple of great friends at Mediaport Entertainment doing .NET development starting with Silverlight and ASP.NET. It has been a really great experience to get back into .NET from Java and I've had lots of fun picking up the many ways C# has changed from its early Java-clone days. We've been working on the next version of our web store and I helped decide that we should move away from Silverlight and ASP.NET to give ASP.NET MVC a try. It has been a great experience learning web development with this platform and I'm excited to keep building my skills in web development and learning Javascript / jQuery.&lt;br /&gt;
&lt;br /&gt;
But now I'm moving to a new company that I'm really excited about. &lt;a href="http://www.extendhealth.com/"&gt;Extend Health&lt;/a&gt; is where I've decided to move to now and I am really looking forward to starting there. They have a great team of developers, many of them Neumont graduates. I'll still be doing .NET and ASP.NET MVC development but I feel I'm going to have a great time learning from all the developers there.&lt;br /&gt;
&lt;br /&gt;
And to finish off Extend Health was the first company I've had an interview where I was asked to build a web app and on the next interview we would discuss it. I have to say I love that idea for an interview so much better than whiteboarding a simple linked list implementation!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-3910496583330282596?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=cTSrT7up_jQ:WXZRsvIVORk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=cTSrT7up_jQ:WXZRsvIVORk:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=cTSrT7up_jQ:WXZRsvIVORk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=cTSrT7up_jQ:WXZRsvIVORk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=cTSrT7up_jQ:WXZRsvIVORk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=cTSrT7up_jQ:WXZRsvIVORk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=cTSrT7up_jQ:WXZRsvIVORk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=cTSrT7up_jQ:WXZRsvIVORk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/cTSrT7up_jQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/3910496583330282596/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2010/11/change-of-pace.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/3910496583330282596?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/3910496583330282596?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/cTSrT7up_jQ/change-of-pace.html" title="A Change of Pace" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2010/11/change-of-pace.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUEQn08cSp7ImA9WxBUFUw.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-9055537271216488304</id><published>2010-03-02T01:06:00.000-07:00</published><updated>2010-03-02T01:06:43.379-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-02T01:06:43.379-07:00</app:edited><title>Time for a Change</title><content type="html">This Monday has proven to be an interesting one. I arrived at work in the morning and managed to start getting into a productive groove, which can be difficult on a Monday, only to have everything flopped upside down by lunch. I had a meeting with my manager and found out that I've been part of a Resource Action (IBM-speak for layoff) so as of March 1st I am back on the market for a new job. Even though I was aware something like this might come up I have to admit I'm still trying to get my head around what has happened. My first job and also my first layoff... Live and learn I suppose.&lt;br /&gt;
&lt;br /&gt;
I've had a lot of fun at IBM and I've really had a great learning experience of life inside a company as big as IBM. Going straight from school to IBM was daunting to me but I feel really great that I have accomplished something for myself. I've met some really great people that I hope to keep in contact with once I find a new job. So as my time with IBM has come to an end I am looking forward anxiously to the next thing for me to work on. Thanks for all the good times IBM!&lt;br /&gt;
&lt;br /&gt;
Now that all that is out of the way, if you happen to be hiring or know anyone who may be hiring I'd love to hear from you! :-) You can find me on &lt;a href="http://www.linkedin.com/in/smerrell"&gt;LinkedIn&lt;/a&gt; or check my &lt;a href="http://careers.stackoverflow.com/smerrell"&gt;Stack Overflow CV&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-9055537271216488304?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Qc0KYSb0e10:JI5ceK91U4g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Qc0KYSb0e10:JI5ceK91U4g:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Qc0KYSb0e10:JI5ceK91U4g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=Qc0KYSb0e10:JI5ceK91U4g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Qc0KYSb0e10:JI5ceK91U4g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=Qc0KYSb0e10:JI5ceK91U4g:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Qc0KYSb0e10:JI5ceK91U4g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=Qc0KYSb0e10:JI5ceK91U4g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/Qc0KYSb0e10" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/9055537271216488304/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2010/03/time-for-change.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/9055537271216488304?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/9055537271216488304?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/Qc0KYSb0e10/time-for-change.html" title="Time for a Change" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2010/03/time-for-change.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFR3k6cSp7ImA9WxFQGE0.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-7984250381362027671</id><published>2010-01-17T20:05:00.005-07:00</published><updated>2010-05-13T21:51:56.719-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-13T21:51:56.719-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scala" /><title>Learning Scala pt 1: First Impressions</title><content type="html">&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: small;"&gt;My first foray into learning Scala with the help of O'Reilly's &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;Learning Scala&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;, and the interwebs&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;. I'll be posting things as I learn them in a way to help cement my understanding of the language and so if I'm wrong, people can call me on it&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As a Java programmer, I've been very interested in watching all the languages that are beginning to spring up around the JVM. From JRuby, Jython, Groovy, Clojure, and Scala they've all been interesting to watch take the JVM to new heights beyond Java. So far, I've been mostly interested in languages started on the JVM (though JRuby and Jython look nice) since they are designed from the ground up to take advantage of the vast number of Java libraries in a natural way.&lt;br /&gt;
&lt;br /&gt;
My first dabble was with Groovy which takes many of its ideas from Ruby, but can still be written in a very Java-centric way. Specifically, Groovy was written to be more of a superset of Java including duck typing and Closures into the mix and letting you write applications much more quickly and concisely than one could in Java. Unfortunately I haven't really played with Groovy much recently but it seems like it would be a great JVM-based glue language or for writing up a quick prototype.&lt;br /&gt;
&lt;br /&gt;
Scala has been drawing me in over the past couple weeks and feels like it could be a full replacement language for Java where with Groovy it felt like an additional tool in my Java workbench. After reading Chapter 1 of &lt;i&gt;Learning Scala&lt;/i&gt; here are my impressions of Scala thus far:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Functional and Object Oriented&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
From the start Scala mixes both functional aspects (much of which still confuse my Object Oriented mind so far), and Object Oriented programming. We have Classes and inheritance but also have pattern matching and Actors.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Less Verbose than Java&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
Scala, like many other languages, is less verbose than Java in several ways. First, there is no need for the semicolon (in most cases), or even for return statements of methods. Scala will usually handle these things for you, so a method &lt;i&gt;foo, &lt;/i&gt;that adds two numbers, could be written like this:&lt;br /&gt;
&lt;pre class="brush: scala"&gt;def foo = { 1 + 1 }
&lt;/pre&gt;Which returns an Integer.&lt;br /&gt;
&lt;br /&gt;
A nice feature of Scala is that you can choose to specifically type your variables or let Scala figure that out. In Scala, the type comes &lt;i&gt;after&lt;/i&gt; the variable name to make it easy to parse when the variable is not typed.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Strange at First&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
As a Java programmer I've gotten pretty used to how things are with Java so beginning to learn Scala has left a few parts of my mind that stick out.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Method Names&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
Scala is much more flexible in what a method name can be, this includes these characters to name a few: "+,-,&amp;lt;,&amp;gt;,*,/,?,!". This seemed very unnatural to me coming from Java where this is not possible. This also is confusing because it looks like operator overloading but actually isn't operator overloading, these are method names, so one could define a "+" method or a "&amp;gt;" method and be perfectly fine with Scala.&lt;br /&gt;
&lt;br /&gt;
This will definitely take some getting used to but I think it could be very handy especially when the need for a DSL arises.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;No static keyword&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
With Java, declaring a class-level variable is as easy as tacking the static keyword to it. With Scala, there is no static keyword, instead, for class level variables you use the object keyword instead of class.&lt;br /&gt;
&lt;pre class="brush: scala"&gt;class foo() {         
    // Instance variables go here 
}

object foo() {         
    // Class level variables go here
}
&lt;/pre&gt;&lt;br /&gt;
Overall Scala isn't too different from Java on first glance. While there certainly will be more differences, it is easy enough for me to start jumping in and playing around with Scala.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-7984250381362027671?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=chDZtyE9yGg:mLsJfFWOaNw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=chDZtyE9yGg:mLsJfFWOaNw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=chDZtyE9yGg:mLsJfFWOaNw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=chDZtyE9yGg:mLsJfFWOaNw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=chDZtyE9yGg:mLsJfFWOaNw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=chDZtyE9yGg:mLsJfFWOaNw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=chDZtyE9yGg:mLsJfFWOaNw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=chDZtyE9yGg:mLsJfFWOaNw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/chDZtyE9yGg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/7984250381362027671/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2010/01/learning-scala-pt-1-first-impressions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/7984250381362027671?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/7984250381362027671?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/chDZtyE9yGg/learning-scala-pt-1-first-impressions.html" title="Learning Scala pt 1: First Impressions" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2010/01/learning-scala-pt-1-first-impressions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMNRn85eyp7ImA9WxBQF0o.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-1985016370261993187</id><published>2010-01-17T17:25:00.004-07:00</published><updated>2010-01-17T17:28:17.123-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-17T17:28:17.123-07:00</app:edited><title>test</title><content type="html">trying out some code formatting&lt;br /&gt;&lt;script type="syntaxhighlighter" class="brush: scala"&gt;&lt;![CDATA[&lt;br /&gt;object Hello {&lt;br /&gt;    def main(args: String*) = {&lt;br /&gt;        println("Hello, World!")&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;]]&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-1985016370261993187?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=uOmPL-NVoew:njUy4g0IH64:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=uOmPL-NVoew:njUy4g0IH64:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=uOmPL-NVoew:njUy4g0IH64:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=uOmPL-NVoew:njUy4g0IH64:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=uOmPL-NVoew:njUy4g0IH64:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=uOmPL-NVoew:njUy4g0IH64:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=uOmPL-NVoew:njUy4g0IH64:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=uOmPL-NVoew:njUy4g0IH64:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/uOmPL-NVoew" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/1985016370261993187/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2010/01/test.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/1985016370261993187?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/1985016370261993187?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/uOmPL-NVoew/test.html" title="test" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2010/01/test.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAMSHkzeip7ImA9WxNXFUQ.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-8213208537707098247</id><published>2009-10-03T13:22:00.001-06:00</published><updated>2009-10-03T13:23:09.782-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-03T13:23:09.782-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JSR" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="JCP" /><title>JCP Death spiral or "Normal for a Maturing Language"</title><content type="html">140 characters wasn't enough to write my thoughts down on&lt;a href="http://twitter.com/snoopdave"&gt;&lt;/a&gt;&lt;a href="http://twitter.com/snoopdave/status/4580248527"&gt;&lt;/a&gt; Stephen Colebourne's &lt;a href="http://www.jroller.com/scolebourne/entry/jsrs_submitted_over_time"&gt;blog post&lt;/a&gt; about the JCP I came across via @&lt;a href="http://twitter.com/snoopdave/status/4580248527"&gt;snoopdave&lt;/a&gt;. Since I live in Java land I've thought a lot about the JCP, Java, and how things will be once Oracle absorbs Sun. No one really knows what Oracle may, or may not do with Java and the JCP but one thing I'm certain of is that things are changing whether Oracle does anything about it or not.&lt;br /&gt;&lt;br /&gt;I've been following the long &lt;a href="http://www.jroller.com/scolebourne/entry/shedding_new_light_on_no"&gt;saga &lt;/a&gt;between The Apache Software Foundation and the Sun over Apache Harmony for a while now and there are definitely problems with the JCP that need to be resolved. Colebourne's post shows the declining trend in numbers of JSRs submitted to the JCP and brings up the question as to whether this is a sign of the times for the JCP or something normal for a maturing language such as Java.&lt;br /&gt;&lt;br /&gt;I think the answer is a bit of both. As Colebourne points out, his chart only includes new JSRs and not ones that are in maintenance mode or being updated, such as Java EE 6 for example (which connects about 30 other JSRs, most of which are not new). Since Java is a large platform that has been around for quite some time now that seems very normal to me from a mature language.&lt;br /&gt;&lt;br /&gt;The other part I'm starting to see comes more from how other standards outside of Java come about. To me, the JCP often is done in a backwards sort of manner where the spec is defined &lt;i&gt;before &lt;/i&gt;any real code has been written. EJB is a good example of a spec that was very complicated and had to go through several painful revisions (Ask Java devs about EJB 2), before we started to see a push to make the spec simpler (EJB3). This sort of spec first code later attitude seems to be challenged more and more by the rough code, general consensus crowd. A couple of good examples that come to mind are Spring and OSGi which both came about outside of the JCP and both now have &lt;a href="http://blog.springsource.com/2008/10/27/a-word-about-the-election/"&gt;&lt;/a&gt;JCP experience in &lt;a href="http://blog.springsource.com/2008/10/27/a-word-about-the-election/"&gt;different&lt;/a&gt; &lt;a href="http://jcp.org/en/jsr/detail?id=291"&gt;ways&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Rod Johnson of Spring also believes in rough code, general consensus when he wrote about his and Spring Source's &lt;a href="http://blog.springsource.com/2007/09/30/our-approach-to-the-jcp/"&gt;approach to the JCP&lt;/a&gt;. This move towards proving technologies and techniques before submitting a JSR is something we will see happen more and more as Java progresses. &lt;a href="http://jcp.org/en/jsr/detail?id=330"&gt;JSR330&lt;/a&gt; - Dependency Injection for Java, is a good example of this happening. JSR330 combines the knowledge learned from Spring and Guice to define some basic annotations for Dependency Injection in Java.&lt;br /&gt;&lt;br /&gt;In the end, I'm glad to see fewer JSRs being submitted and giving more time for techniques and technologies to adapt and mature before working through the JCP to define a standard. Now all we need to do is get more people to experiment with closures and reified Generics...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-8213208537707098247?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=sm-xMziUv0U:S8y9DbX6z8I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=sm-xMziUv0U:S8y9DbX6z8I:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=sm-xMziUv0U:S8y9DbX6z8I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=sm-xMziUv0U:S8y9DbX6z8I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=sm-xMziUv0U:S8y9DbX6z8I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=sm-xMziUv0U:S8y9DbX6z8I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=sm-xMziUv0U:S8y9DbX6z8I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=sm-xMziUv0U:S8y9DbX6z8I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/sm-xMziUv0U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/8213208537707098247/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2009/10/jcp-death-spiral-or-normal-for-maturing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/8213208537707098247?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/8213208537707098247?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/sm-xMziUv0U/jcp-death-spiral-or-normal-for-maturing.html" title="JCP Death spiral or &quot;Normal for a Maturing Language&quot;" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2009/10/jcp-death-spiral-or-normal-for-maturing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08GSH04fyp7ImA9WxVQEkQ.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-5268657140724245290</id><published>2009-01-29T22:01:00.006-07:00</published><updated>2009-01-29T22:03:49.337-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T22:03:49.337-07:00</app:edited><title>Impressive = KeyJnote</title><content type="html">I'm glad to see that KeyJNote has returned as &lt;a href="http://impressive.sourceforge.net/"&gt;Impressive&lt;/a&gt;. A while ago it seemed like KeyJNote had fallen off the face of the earth, but now its back with a new name. I'll have to try it out some more now that I can find it again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-5268657140724245290?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xEK2ALvMl2A:358gguPE_IE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xEK2ALvMl2A:358gguPE_IE:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xEK2ALvMl2A:358gguPE_IE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=xEK2ALvMl2A:358gguPE_IE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xEK2ALvMl2A:358gguPE_IE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=xEK2ALvMl2A:358gguPE_IE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xEK2ALvMl2A:358gguPE_IE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=xEK2ALvMl2A:358gguPE_IE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/xEK2ALvMl2A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/5268657140724245290/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2009/01/impressive-keyjnote.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/5268657140724245290?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/5268657140724245290?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/xEK2ALvMl2A/impressive-keyjnote.html" title="Impressive = KeyJnote" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2009/01/impressive-keyjnote.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08BSH86cSp7ImA9WxVSGE8.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-6406935020301017227</id><published>2009-01-12T22:46:00.003-07:00</published><updated>2009-01-12T22:50:59.119-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-12T22:50:59.119-07:00</app:edited><title>Ubuntu on a Stick</title><content type="html">I got a &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820220261"&gt;Patriot Xporter 32Gb&lt;/a&gt; thumb drive for Christmas and I finally got around to installing Ubuntu 8.10 on it. This was my first experience with installing any Linux distro on a thumb drive and booting from USB so it has been an interesting experience, here is what I encountered when trying to get my thumb drive working.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;8.10 USB Startup Disk Creator&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Of course, the first place I started was the USB Startup Disk Creator, which has been available since Ubuntu 8.04. The process is simple:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Popped in my USB drive.&lt;/li&gt;&lt;li&gt;Went to System&amp;gt;Administration&amp;gt;Create a USB Startup Disk&lt;/li&gt;&lt;li&gt;Selected my USB drive and selected the option "Stored in reserved extra space"&lt;/li&gt;&lt;li&gt;Adjusted the extra space slider to the full 32 Gb&lt;/li&gt;&lt;li&gt;Clicked "Make startup disk"&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Easy.... and slow. It took a pretty good amount of time for the drive to be completely setup. Nothing too bad, but enough to get up and find something else to do for a while. Unfortunately something went wrong in the process or my laptop is messed up (which it could possibly be). When I restarted my computer and selected the USB drive as the primary boot device, I would only get that the drive was corrupted. I tried to troubleshoot the problem and also tried to recreate the startup disk to no avail.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I'm not sure what happened, but I'm pretty sure its something on my end (perhaps the USB drive) and not that of the USB Startup Disk creator. Fortunately, I found an alternative method that I did get working for me.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;UNetbootin to the rescue&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;While searching around for clues to my problems from the startup disk creator, I ran across &lt;a href="http://unetbootin.sourceforge.net/" id="uja-" title="UNetbootin"&gt;UNetbootin&lt;/a&gt; so I decided I'd give it a try. Here are the steps I took with UNetbootin:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Downloaded and started UNetboontin on my XP laptop.&lt;/li&gt;&lt;li&gt;Downloaded the Ubuntu 8.10 iso - (I actually already had an iso on the laptop, doh)&lt;/li&gt;&lt;li&gt;Selected my Distro - Ubuntu 8.10&lt;/li&gt;&lt;li&gt;Checked Disk Image and pointed UNetboontin to the Intrepid iso&lt;/li&gt;&lt;li&gt;Selected my USB drive as the device to be installed to&lt;/li&gt;&lt;li&gt;Pressed ok and sat back&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The UNetbootin process was extremely easy to follow and it seemed to me that it took less time to format the disk and get the USB drive set up. After I finished, I rebooted XP and switched the boot device to USB again. This time it dropped right into the Ubuntu live menu where I started Ubuntu right up. Success! Both methods were extremely easy to use and weren't very time consuming.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ubuntu from a thumb drive&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Ubuntu takes quite a while to boot up from my thumb drive, but once it does its very responsive and quite fun to work with. Unfortunately you don't want to do too much disk intensive work since it seems like the writes are a little on the slow side, but bearable. Its been really fun to set up my own portable Ubuntu install with a decent amount of storage. In the coming months I'll try running the portable install on several computers to get a feel for how actually portable it is. For now though, I've been very pleased with the results and I look forward to using this as my portable Linux haven from now on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;This also has prompted me to consider picking up a couple 4 Gb thumb drives so I won't have to burn another install disk. I hate having so many piles of CD-Rs with different distros on it when I could just slap it on a thumb drive and go. (unless I can't boot from USB, but thats besides the point) So congrats to the Ubuntu team on a lovely tool as well as the Fedora team who helped motivate the Ubuntu team to improve their USB install tools as well.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-6406935020301017227?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=miIXVPtNQxU:qriqiqDa8SI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=miIXVPtNQxU:qriqiqDa8SI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=miIXVPtNQxU:qriqiqDa8SI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=miIXVPtNQxU:qriqiqDa8SI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=miIXVPtNQxU:qriqiqDa8SI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=miIXVPtNQxU:qriqiqDa8SI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=miIXVPtNQxU:qriqiqDa8SI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=miIXVPtNQxU:qriqiqDa8SI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/miIXVPtNQxU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/6406935020301017227/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2009/01/ubuntu-on-stick.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/6406935020301017227?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/6406935020301017227?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/miIXVPtNQxU/ubuntu-on-stick.html" title="Ubuntu on a Stick" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2009/01/ubuntu-on-stick.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMNQXw5cSp7ImA9WxVTFEw.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-6752651051558105525</id><published>2008-12-27T13:36:00.005-07:00</published><updated>2008-12-27T13:41:30.229-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-27T13:41:30.229-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="education" /><category scheme="http://www.blogger.com/atom/ns#" term="Neumont" /><title>Education in Software Development</title><content type="html">Computer Science just isn't hard enough.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/sybrenstuvel/2468506922/" target="_blank"&gt; &lt;img src="http://docs.google.com/File?id=df4ppd68_32fbfmsrg5_b&amp;amp;writelyrefresh=0" style="margin: 1em 1em 0pt 0pt; width: 250px; height: 204px; float: left;" /&gt;&lt;/a&gt;&lt;br /&gt;Joel Spolsky of Joel on Software puts it &lt;a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html" id="gebs" title="plainly enough"&gt;plainly enough&lt;/a&gt;, but he isn't the only one who thinks CS courses need a change. Bjarne Stroustrup of C++ fame recently did an interview with Datamation discussing &lt;a href="http://itmanagement.earthweb.com/features/article.php/3789981" id="fyql" title="Educating Software Developers"&gt;Educating Software Developers&lt;/a&gt;. As a student, I became very interested in how computer science courses could be changed along with different approaches that could be taken. Bjarne Stroustrup, unlike many in academia, has a strong background in commercial software development. Academia has been producing graduates who are unprepared to enter the world of a working software developer because computer science courses are not designed to help produce great software developers.&lt;br /&gt;&lt;br /&gt;So how has my education affected me?&lt;br /&gt;&lt;br /&gt;I graduated from &lt;a href="http://neumont.edu/" id="jf:2" title="Neumont University"&gt;Neumont University&lt;/a&gt;, a private, for-profit school that offers a Bacherlor of Science in Computer Science degree. Neumont's curriculum was created by Graham Doxey, Scott McKinley, and Marlow Einelund as a response to the growing demand for qualified CS graduates. Neumont attempts to fill the gap that many computer science courses create when a student graduates. New graduates often have little to no working knowledge of programming in the software development industry. Neumont's project-based curriculum teaches students early on how to work in teams to accomplish a goal.&lt;br /&gt;&lt;br /&gt;The project-based teaching style at Neumont is what attracted me to the school.&lt;br /&gt;&lt;br /&gt;So what did I like about Neumont's approach and what could be improved now that I've had some working experience with software development? Lets start out with what Neumont does right.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Project-based Learning&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Serious programming is a team sport.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Bjarne Stroustrup emphasizes that serious programming is not done individually, it is done as a team, often working with other teams to accomplish a goal. Project-based learning helps teach students how to interact with other team members in an effective team dynamic.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://neumont.edu/cmsimages/project_experience_timeline.png" target="_blank"&gt;&lt;img id="kylx" src="http://docs.google.com/File?id=df4ppd68_34hhpg9rf7_b" style="margin: 1em 0pt 0pt 1em; float: right;" height="127" width="250" /&gt;&lt;/a&gt;Neumont's project-based curriculum works great in this aspect. From the very first quarter I started, I was working in at least one team to accomplish a programming goal. The course curriculum starts with small team projects and begins to add more and more responsibility to the teams as the students progress. By the time students are seniors, you are working most of your time in a group on projects. The &lt;a href="http://neumont.edu/industrypartners/enterprise_projects.html" id="ufws" title="Enterprise Project"&gt;Enterprise Project&lt;/a&gt; aspect places these groups inside real companies such as IBM, Novell, and EDS.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Business Skills&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Project-based learning also helps Neumont emphasize the business side of software development. Working in teams allows us to learn how to communicate better among our our teams, other teams, and our teachers. Skills we need to learn how to function on a team come with experience. With each project we attempted, we learned how to work as a team and manage all the "soft" issues that come with teamwork.&lt;br /&gt;&lt;br /&gt;There were teams that were great, and we learned how a well-gelled team comes together to produce great results. There were dysfunctional teams, where no one got along with each other and the project floundered. There was the prodigy programmer who obsessively controlled all their code and re-wrote any code he had to touch that wasn't written by him. There was the lazy teammate, the ever-late teammate, and your indecisive teammates. Each type I encountered helped me learn ways to work to keep my team as gelled as possible and ways to work with each type of teammate.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/inju/707390839/" target="_blank"&gt;&lt;img id="kmw_" src="http://docs.google.com/File?id=df4ppd68_35g2wxp5k5_b" style="margin: 1em 1em 0pt 0pt; width: 250px; height: 187.5px; float: left;" /&gt;&lt;/a&gt;As Bjarne Stroustrup summarized, developers need to learn how to present clearly your projects, ideas, and the goals the project achieves. Neumont helped me improve my presentation skills dramatically from when I started school. Each quarter students do at least one presentation in front of their class. Most often it is at the end of a project class to present the project you worked on and attempt to 'sell' the product to the class.&lt;br /&gt;&lt;br /&gt;Its easy to spot the difference between new students and those who have learned from a few bad presentations. As I learned more, my presentations sucked less and less and I was able to present a clear, concise idea of my teams project and what it could do.&lt;br /&gt;&lt;br /&gt;Writing skills are also critically important as a student at Neumont. Email and IM are two major forms of communication between students, teams, and teachers. My time at Neumont quickly taught me how to keep my emails short and concise to keep the communication understandable. I also learned the importance of IM while going to Neumont. This has become very handy when I joined IBM since IM is now the preferred method of communication for many IBMers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Learning&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;a id="nybp" href="http://www.flickr.com/photos/jiscinfonet/146842557/" target="_blank"&gt;&lt;img style="margin: 1em 0pt 0pt 1em; width: 250px; height: 355.114px; float: right;" src="http://docs.google.com/File?id=df4ppd68_36ztd6tfgd_b" /&gt;&lt;/a&gt;Probably the most important skill I learned from Nemont is also an important business skill that is can be very difficult to master. I have become a self-directed  learner. I am by no means an expert at self-directed learning but by nature of the compressed course schedule at Neumont, I spent much of my time at Neumont teaching myself more about what we were learning in class.&lt;br /&gt;&lt;br /&gt;I consider this the most valuable skill I learned from Neumont. It allows me to adapt to new changes in the workplace and to learn skills to stay ahead of the technology curve. At IBM, many of our teams are beginning to transition from the old-school waterfall method of software development to more agile practices. This transition seems to be a little more difficult for some of the developers who have been with IBM for a long time. Being a self-directed learner lets me cope with any transitions and learn how to work in new environments or programming languages more quickly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Verdict&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Overall I feel that I received a great education from Neumont that allowed me to learn in a style that feels very comfortable to me. Neumont's project-based curriculum is what made me decide to even attend school in the first place. I feel that I graduated with a great working knowledge of the business and soft skills that I need to really become a great software developer.&lt;br /&gt;&lt;br /&gt;Neumont is not without faults, of course, there are many many things about the curriculum I feel need to be improved, but that will be the subject of another blog post soon enough. :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;b&gt;&lt;br /&gt;&lt;i&gt;Image Attributions:&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;br /&gt;Image by: &lt;a href="http://www.flickr.com/photos/sybrenstuvel/"&gt;Sybren Stüvel&lt;/a&gt;&lt;br /&gt;Image from: &lt;a href="http://neumont.edu/cmsimages/project_experience_timeline.png"&gt;Neumont.edu&lt;/a&gt;&lt;br /&gt;Image by: &lt;a href="http://www.flickr.com/photos/inju/"&gt;inju&lt;/a&gt;&lt;br /&gt;Image by: &lt;a title="jisc_infonet" href="http://www.flickr.com/photos/jiscinfonet/" id="fali"&gt;jisc_infonet&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-6752651051558105525?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=IeMhG0QdjMk:e6i1gUw0YEc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=IeMhG0QdjMk:e6i1gUw0YEc:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=IeMhG0QdjMk:e6i1gUw0YEc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=IeMhG0QdjMk:e6i1gUw0YEc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=IeMhG0QdjMk:e6i1gUw0YEc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=IeMhG0QdjMk:e6i1gUw0YEc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=IeMhG0QdjMk:e6i1gUw0YEc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=IeMhG0QdjMk:e6i1gUw0YEc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/IeMhG0QdjMk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/6752651051558105525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/12/education-in-software-development_3096.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/6752651051558105525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/6752651051558105525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/IeMhG0QdjMk/education-in-software-development_3096.html" title="Education in Software Development" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/12/education-in-software-development_3096.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UHSX05eip7ImA9WxRVGU4.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-832590283960416944</id><published>2008-11-17T09:27:00.001-07:00</published><updated>2008-11-17T09:27:18.322-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-17T09:27:18.322-07:00</app:edited><title>Alt+Drag for Windows</title><content type="html">&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://code.google.com/p/altdrag/'&gt;altdrag&lt;/a&gt; is a little utility that gives Windows users a feature Linux users have had for a long time  now, the ability to move a window by holding alt and clicking on a window anywhere to move it around. This is one feature I constantly try to do in Windows. Its light on the memory usage and is in a 10k 7z file so check it out.&lt;br/&gt;&lt;blockquote/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-832590283960416944?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=shSNc2k4NB0:H87BaN7mjMs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=shSNc2k4NB0:H87BaN7mjMs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=shSNc2k4NB0:H87BaN7mjMs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=shSNc2k4NB0:H87BaN7mjMs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=shSNc2k4NB0:H87BaN7mjMs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=shSNc2k4NB0:H87BaN7mjMs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=shSNc2k4NB0:H87BaN7mjMs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=shSNc2k4NB0:H87BaN7mjMs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/shSNc2k4NB0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/832590283960416944/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/11/altdrag-for-windows.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/832590283960416944?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/832590283960416944?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/shSNc2k4NB0/altdrag-for-windows.html" title="Alt+Drag for Windows" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/11/altdrag-for-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIBSH8-eCp7ImA9WxRRGEk.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-1328352211808250100</id><published>2008-09-22T14:05:00.001-06:00</published><updated>2008-10-01T02:09:19.150-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-01T02:09:19.150-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Security" /><category scheme="http://www.blogger.com/atom/ns#" term="Chrome" /><title>Chrome SSL Certificate Fun</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://draft.blogger.com/"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_ZYmLoxSrlTY/SNf-mmhe2yI/AAAAAAAAANY/kJQSl7kqOTc/s1600-h/chrome-ssl-error.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ZYmLoxSrlTY/SNf-mmhe2yI/AAAAAAAAANY/kVRK_UIycho/s400-R/chrome-ssl-error.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;One warning that has become very annoying to me in Firefox and Chrome is the self-signed certificate warning. Many sites on IBM's intranet use self-signed certificates and I hate having to wade through this screen the first time. Chrome uses the the operating systems certificate store so you simply need to add the certificate to your trusted root certificate authorities to bypass the signed certificate problem in Chrome. I found a way to import the certificate using IE on the &lt;a href="http://groups.google.com/group/google-chrome-help-how-to/browse_thread/thread/c9c3c658db3dbd70"&gt;Chrome Google Group&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
To import the certificate:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Go to the site in IE&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SNgCirYmDWI/AAAAAAAAANg/js27EEbO7Ec/s1600-h/cert_error.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SNgCirYmDWI/AAAAAAAAANg/oI2Waan6lsg/s400-R/cert_error.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Go to the security report (&lt;span style="font-style: italic;"&gt;View &amp;gt; Security Report) &lt;/span&gt;and click 'View certificates'&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SNgC_P4Y7KI/AAAAAAAAANo/9J8NeXsB8ug/s1600-h/Sec_info.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SNgC_P4Y7KI/AAAAAAAAANo/22TFN7UtmgY/s400-R/Sec_info.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;In the Certificate Import Wizard press 'Next' and select 'Place all certificates in the following store'&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZYmLoxSrlTY/SNgERHHSURI/AAAAAAAAANw/4wGxPwMp_Tg/s1600-h/import_wzrd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ZYmLoxSrlTY/SNgERHHSURI/AAAAAAAAANw/lK964xw7SJM/s400-R/import_wzrd.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Then choose Trusted Root Certification Authorities&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SNgEce1f-rI/AAAAAAAAAN4/mDdo9fGnFMU/s1600-h/import_wzrd-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SNgEce1f-rI/AAAAAAAAAN4/wDjxFv4FTHI/s400-R/import_wzrd-01.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;After that, you simply finish up the wizard and you're all done! Chrome will now see the certificate in the Trusted Root Certification Authorities and will stop throwing up the Certificate Not Trusted screen on any pages that use that certificate. This is very handy for those of us who use many intranet sites that are self signed.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I imagine there are other, probably better ways so please let me know in the comments if there is an easier way.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;*edit*&lt;/span&gt; For those of you wondering if that first picture is a screenshot from my computer, I assure you it &lt;a href="http://blogs.eweek.com/cheap_hack/content/browsers/chrome_safari_and_seltsigned_certificates.html"&gt;is not&lt;/a&gt;&amp;nbsp;. I have not updated to Vista nor do I plan on updating to Vista.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-1328352211808250100?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=KR7voctmPXQ:xlC8DkQvkzA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=KR7voctmPXQ:xlC8DkQvkzA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=KR7voctmPXQ:xlC8DkQvkzA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=KR7voctmPXQ:xlC8DkQvkzA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=KR7voctmPXQ:xlC8DkQvkzA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=KR7voctmPXQ:xlC8DkQvkzA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=KR7voctmPXQ:xlC8DkQvkzA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=KR7voctmPXQ:xlC8DkQvkzA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/KR7voctmPXQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/1328352211808250100/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/09/chrome-ssl-certificate-fun.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/1328352211808250100?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/1328352211808250100?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/KR7voctmPXQ/chrome-ssl-certificate-fun.html" title="Chrome SSL Certificate Fun" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_ZYmLoxSrlTY/SNf-mmhe2yI/AAAAAAAAANY/kVRK_UIycho/s72-Rc/chrome-ssl-error.jpg" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/09/chrome-ssl-certificate-fun.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEHSHs-eSp7ImA9WxRTEkU.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-6979147900763076592</id><published>2008-08-31T10:34:00.010-06:00</published><updated>2008-09-01T11:03:59.551-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-01T11:03:59.551-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="coding dojo" /><category scheme="http://www.blogger.com/atom/ns#" term="practice" /><category scheme="http://www.blogger.com/atom/ns#" term="code kata" /><title>My Coding Dojo</title><content type="html">&lt;div style="font-family: inherit;" xmlns="http://www.w3.org/1999/xhtml"&gt;After reading Jeff Atwood's post on &lt;a href="http://www.codinghorror.com/blog/archives/001138.html"&gt;code kata&lt;/a&gt; I decided that I was going to start a &lt;a href="http://www.codingdojo.org/"&gt;Coding Dojo&lt;/a&gt; at work so I could improve my coding skills and learn new tricks from other developers. Since this is an ongoing process, I'm going to document our experiences here on my blog.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ideas&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
After reading Jeff Atwood's code kata post, I followed a few of his links and read about &lt;a href="http://www.codingdojo.org/"&gt;Coding Dojos&lt;/a&gt; and where the dojo got its start: &lt;a href="http://www.codekata.com/"&gt;Dave Thomas' 21 Code Katas&lt;/a&gt;. Pragmatic Dave's code kata really got me excited and interested in how I could continually become a better programmer through disciplied practice. Work alone is just not enough, you have to sit down and actively try something new and fail at it a few times to learn. Work does not allow you to do that often, if ever. Now that the seeds have been planted, I need to figure out where to go next. I thought it might be a good idea to look for local dojos.&lt;br /&gt;
&lt;br /&gt;
Nothing in my area and nothing I could find at work either.&lt;br /&gt;
&lt;br /&gt;
OK. Now what?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;New Dojo&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
It was time I started my own dojo, but how was I going to do that? To help me figure that out, I wrote down some ideas I should look into while I started this dojo.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;What do I want from the dojo&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;How will the dojo help others around me&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;How will the meetings go&lt;/li&gt;

&lt;ol&gt;&lt;li&gt;What kata should we use&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Meeting styles e.g. &lt;a href="http://www.codingdojo.org/cgi-bin/wiki.pl?RandoriKata"&gt;Randori Kata&lt;/a&gt;, &lt;a href="http://www.codingdojo.org/cgi-bin/wiki.pl?PreparedKata"&gt;Prepared Kata &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Meeting length&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;How often will we meet&lt;/li&gt;
&lt;li&gt;How many people is the best size for a dojo&lt;/li&gt;
&lt;/ol&gt;Using these guides I had written I began to piece together my concept for the an IBM code dojo on my team wiki. Piece by piece I began to assemble what a code dojo would mean to me and my fellow IBMers. Along the way, I came to the conclusion that when starting a coding dojo, there is one important idea to remember:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;i&gt;Above all things, do what works best for you and your dojo.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
What works best for my dojo may not work best for your dojo so don't feel you have to work the dojo in any sort of prescribed way. The best part of a coding dojo is that it is flexible and adaptive to the needs and desires of the members of the dojo. If you don't like doing the kata, then do something else that helps you learn and grow as developers.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;First Meeting&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
After working out what I wanted the coding dojo to be for me, it was time to invite some people to join the dojo. Starting out I got about five people to join, by keeping the numbers small I can work with the dojo better so we can work out any kinks in how our dojo will operate.&lt;br /&gt;
&lt;br /&gt;
Before our first meeting, I had come up with some points I'd like to bring up. These might help you to work out a first dojo meeting as well.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;What I'd like to get from our dojo&lt;/li&gt;
&lt;li&gt;A brief description of how kata might work for us&lt;/li&gt;
&lt;li&gt;What everyone else would like to get from the dojo&lt;/li&gt;
&lt;li&gt;How often we should meet&lt;/li&gt;
&lt;li&gt;Introduce a sample kata (see &lt;a href="http://www.codekata.com/"&gt;Code Kata&lt;/a&gt; for some ideas)&lt;/li&gt;
&lt;li&gt;Introduce the dojo wiki&lt;/li&gt;
&lt;li&gt;Plan next dojo meeting and kata topic&lt;/li&gt;
&lt;li&gt;Write up a meeting retrospective&lt;/li&gt;
&lt;ol&gt;&lt;li&gt;What went well&lt;/li&gt;
&lt;li&gt;What didn't go well&lt;/li&gt;
&lt;li&gt;What could we improve next time&lt;/li&gt;
&lt;/ol&gt;&lt;/ol&gt;After going through this agenda with the dojo, we had some great feedback on what we would like to achieve individually and as a dojo. We also got much of the administrative sort of work (meeting times / location) out of the way quickly with little hassle &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Future&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
My dojo will be holding its second meeting in the next few days, and as we grow and learn as a dojo I am going to document our progress here on this blog. As I document our progress, I'm going to be writing in a way that&amp;nbsp; others wishing to start their own dojo have some insight and suggestions on how to go about that. So for now, farewell and I'll be writing about our dojo in the next couple of weeks.&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-6979147900763076592?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=jb7GymxpHdo:iap50pX5Dkg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=jb7GymxpHdo:iap50pX5Dkg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=jb7GymxpHdo:iap50pX5Dkg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=jb7GymxpHdo:iap50pX5Dkg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=jb7GymxpHdo:iap50pX5Dkg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=jb7GymxpHdo:iap50pX5Dkg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=jb7GymxpHdo:iap50pX5Dkg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=jb7GymxpHdo:iap50pX5Dkg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/jb7GymxpHdo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/6979147900763076592/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/08/my-coding-dojo.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/6979147900763076592?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/6979147900763076592?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/jb7GymxpHdo/my-coding-dojo.html" title="My Coding Dojo" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/08/my-coding-dojo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MNR308fyp7ImA9WxdbF0k.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-1681055751093565280</id><published>2008-08-14T13:16:00.004-06:00</published><updated>2008-08-14T13:18:16.377-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-14T13:18:16.377-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="collaboration" /><category scheme="http://www.blogger.com/atom/ns#" term="kicking ass" /><title>Kicking Ass</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://headrush.typepad.com/"&gt;Creating Passionate Users&lt;/a&gt; was by far one of my favorite blogs I used to read, but unfortunately it has gone dark for now. Fortunately, &lt;a href="http://twitter.com/KathySierra"&gt;Kathy Sierra &lt;/a&gt;has started microblogging over at Twitter and its great to read what she has to say again. Recently she &lt;a href="http://twitter.com/KathySierra/statuses/886674447"&gt;tweeted&lt;/a&gt; something that really got my attention:&lt;br /&gt;&lt;span id="loader" style="display: none;"&gt;&lt;img alt="Loader" src="http://assets1.twitter.com/images/loader.gif?1218678123" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;We tell our authors: "Don't focus on making your BOOK better... focus on making the READER better." Often changes TOC (fewer topics) &amp;amp; tone&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;This got me thinking... What am &lt;b&gt;I&lt;/b&gt; doing on my blog to help &lt;b&gt;you&lt;/b&gt; kick ass? When I thought about that, realized I wasn't doing anything to help readers kick ass. I had simply put up whatever idea comes to my head. Now I'd like to change my direction and write more on how I can help you, the reader, kick ass. Not only will this help you, but it helps me become a better writer, programmer, and technology enthusiast.&lt;br /&gt;&lt;br /&gt;Here's to helping each other kick ass.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-1681055751093565280?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ZFVlnrZFqjk:rwk1FdppmK0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ZFVlnrZFqjk:rwk1FdppmK0:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ZFVlnrZFqjk:rwk1FdppmK0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ZFVlnrZFqjk:rwk1FdppmK0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ZFVlnrZFqjk:rwk1FdppmK0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ZFVlnrZFqjk:rwk1FdppmK0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ZFVlnrZFqjk:rwk1FdppmK0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ZFVlnrZFqjk:rwk1FdppmK0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/ZFVlnrZFqjk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/1681055751093565280/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/08/kicking-ass.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/1681055751093565280?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/1681055751093565280?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/ZFVlnrZFqjk/kicking-ass.html" title="Kicking Ass" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/08/kicking-ass.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EDRHc4eSp7ImA9WxdVEks.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-2676957152135934493</id><published>2008-07-16T22:29:00.002-06:00</published><updated>2008-07-16T22:41:15.931-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-16T22:41:15.931-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="office" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><title>Office Redesign</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Following a link from Stack Overflow's &lt;a href="http://draft.blogger.com/goog_1216269582525"&gt;blog&lt;/a&gt;&lt;a href="http://draft.blogger.com/"&gt;&lt;/a&gt; on Microsoft's new &lt;a href="http://www.fastcompany.tv/video/the-innovations-microsoft%E2%80%99s-new-research-building"&gt;research lab&lt;/a&gt; got me thinking more about how important it is for developers and the rest of the business world really, to have offices designed to help them be more productive.&lt;br /&gt;
&lt;br /&gt;
I work for IBM and I can attest to how drab, corporate office designs can start to get to you after a while. While my office building is no &lt;a href="http://www.businessweek.com/innovate/content/oct2007/id20071015_602520.htm"&gt;Intel&lt;/a&gt; office layout, it was definitely designed with space efficiency in mind, not for those who are going to be working there.&lt;br /&gt;
&lt;br /&gt;
I first read about how important office design is from &lt;a href="http://www.amazon.com/Peopleware-Productive-Projects-Teams-Second/dp/0932633439"&gt;Peopleware&lt;/a&gt; back in school and it has really stuck with me. Peopleware suggests that its more important that offices are designed for the developers than for space efficiency. Programming is a creative effort and it is very important to create an environment that caters to the developers. After reading Peopleware I have become much more aware of the change major companies such as Google, Intel, and Microsoft have begun to take heed of their developers and actually design spaces to spur creativity and team building.&lt;br /&gt;
&lt;br /&gt;
A few changes I've begun to see in modern office designs:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Open Space&lt;/li&gt;
&lt;li&gt;Individual Offices&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Whiteboards everywhere&lt;/li&gt;
&lt;li&gt;Reconfigurable spaces&lt;/li&gt;
&lt;li&gt;Natural Lighting&lt;/li&gt;
&lt;li&gt;Collaborative Spaces&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;It is really exciting to see that large software companies begin to design offices with actual human being in mind instead of mindless corporate drones of years prior. This isn't just for crazy smaller sized companies with &lt;a href="http://www.joelonsoftware.com/articles/BionicOffice.html"&gt;office fetishes&lt;/a&gt; anymore. I hope to see more design that focuses on attention to detail that Microsoft's new office design and Joel Spolsky's Fog Creek office design.&lt;br /&gt;
&lt;br /&gt;
After watching the Microsoft research office video, I feel like I might have some more energy talking about office layout. So this is it for now, but keep your eyes out for more articles on office layout and design in the future.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-2676957152135934493?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=6BGLAw4hxJU:cqUSYp6S46M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=6BGLAw4hxJU:cqUSYp6S46M:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=6BGLAw4hxJU:cqUSYp6S46M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=6BGLAw4hxJU:cqUSYp6S46M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=6BGLAw4hxJU:cqUSYp6S46M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=6BGLAw4hxJU:cqUSYp6S46M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=6BGLAw4hxJU:cqUSYp6S46M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=6BGLAw4hxJU:cqUSYp6S46M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/6BGLAw4hxJU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/2676957152135934493/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/07/office-redesign.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/2676957152135934493?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/2676957152135934493?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/6BGLAw4hxJU/office-redesign.html" title="Office Redesign" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/07/office-redesign.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUFR30zcCp7ImA9WxdRFkk.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-5974212099384620878</id><published>2008-06-04T22:05:00.007-06:00</published><updated>2008-06-04T22:30:16.388-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-04T22:30:16.388-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="work" /><category scheme="http://www.blogger.com/atom/ns#" term="office" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="ergonomics" /><title>Office Design</title><content type="html">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;While I haven't worked in a real office for even a year yet, there are some things I've become acutely aware of regarding my office space. Office design and layout is incredibly important to everyone and can have a large impact on how I work. While I'm glad I'm not stuck in a cube farm and actually have an office where I can shut my door, there are still some things I think all offices should have. Here are just a few of the things I would like to see in my office.&lt;br /&gt;&lt;br /&gt;1. Ergonomic Chair&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/crouchingdonkey/1184621826/"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SEdoB-raZjI/AAAAAAAAAMg/UehY-BELDgI/s400/aeron.jpg" alt="" id="BLOGGER_PHOTO_ID_5208245877291509298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Image by: &lt;a href="http://www.flickr.com/photos/crouchingdonkey/"&gt;Crouching Donkey&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had the opportunity to use a nice ergonomic chair a few weeks ago and now I'm wondering how I still sit in a regular, barely adjustable chair. I was much more comfortable in the ergonomic chair and that allowed me to focus on my work better and for a longer period of time. My only problem with an ergonomic chair? They are pretty pricey, hopefully you can convince your work that you should be using an ergonomic chair.&lt;br /&gt;&lt;br /&gt;2. Adjustable Desk&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.biomorphdesk.com/1-888-302-DESK/maxo/overview.html"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_ZYmLoxSrlTY/SEdpFuraZkI/AAAAAAAAAMo/pmWZ4QyxngU/s400/biomorph_maxo.jpg" alt="" id="BLOGGER_PHOTO_ID_5208247041227646530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.biomorphdesk.com/1-888-302-DESK/maxo/overview.html"&gt;&lt;span style="font-size:78%;"&gt;Biomorph Maxo&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I like having a nice big desk like I do at work, but what I don't like is that its one huge hunk of desk. My desk also lacks the under-desk keyboard and mouse tray, this has been making me keep my arms in a much more uncomfortable position and it has been making my shoulders ache. I've also been interested in sit-to-stand desks lately because I get tired of sitting all day at work and standing for a while would also help me make sure I'm taking regular breaks to reduce fatigue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Multiple Monitors&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/Image:Dual_apple_monitors.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_ZYmLoxSrlTY/SEdrYuraZlI/AAAAAAAAAMw/KI9ZZnmNyoI/s400/Dual_apple_monitors.jpg" alt="" id="BLOGGER_PHOTO_ID_5208249566668416594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Image by: Alastair Tse&lt;br /&gt;&lt;br /&gt;Right now I use my Lenovo T60p as my main computer, but I have two other desktops that are also being used. One of them runs without a monitor via VNC and the other uses a crappy old Dell CRT. As a developer, I would be so much more productive with at least two monitors, the &lt;a href="http://www.nytimes.com/2006/04/20/technology/20basics.html?ex=1303185600&amp;amp;en=6fc17b9bf54c62ef&amp;amp;amp;ei=5088&amp;amp;amp;partner=rssnyt&amp;amp;amp;emc=rss"&gt;studies&lt;/a&gt;, and &lt;a href="http://www.codinghorror.com/blog/archives/000666.html"&gt;developers using multiple monitors&lt;/a&gt; can't be wrong.&lt;br /&gt;&lt;br /&gt;Those for me, are the most important changes I would like to see in my office. Hopefully I can start working towards a more ergonomic, and productive office space.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-5974212099384620878?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Ww9t1qhF8bg:a0mYktvPn9Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Ww9t1qhF8bg:a0mYktvPn9Q:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Ww9t1qhF8bg:a0mYktvPn9Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=Ww9t1qhF8bg:a0mYktvPn9Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Ww9t1qhF8bg:a0mYktvPn9Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=Ww9t1qhF8bg:a0mYktvPn9Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=Ww9t1qhF8bg:a0mYktvPn9Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=Ww9t1qhF8bg:a0mYktvPn9Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/Ww9t1qhF8bg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/5974212099384620878/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/06/office-design.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/5974212099384620878?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/5974212099384620878?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/Ww9t1qhF8bg/office-design.html" title="Office Design" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SEdoB-raZjI/AAAAAAAAAMg/UehY-BELDgI/s72-c/aeron.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/06/office-design.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AGQ3k_fCp7ImA9WxdSFkg.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-1948812671515352745</id><published>2008-05-21T15:28:00.010-06:00</published><updated>2008-05-24T11:55:22.744-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-24T11:55:22.744-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Novell" /><category scheme="http://www.blogger.com/atom/ns#" term="Suse" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="SLED" /><title>Suse Linux Enterprise Desktop 10 Test Run</title><content type="html">A while back I mentioned that I was &lt;a href="http://smerrell.blogspot.com/2008/05/hasta-la-vista-windows.html"&gt;leaving Windows for Linux&lt;/a&gt;, I have been very busy at work though so I hadn't had the time to actually install anything on my desktop at work until a few days ago.  Because of my line of work, I was unable to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Ubuntu&lt;/span&gt; like I had originally planned and had a choice between &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;RedHat&lt;/span&gt; Enterprise Linux or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Suse&lt;/span&gt; Linux Enterprise Desktop. Taking the advice from my friend &lt;a href="http://blog.sontek.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Sontek&lt;/span&gt;&lt;/a&gt; I decided to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Suse&lt;/span&gt; Linux Enterprise Desktop 10 over &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;RedHat&lt;/span&gt;. After some asking around at work I found out where to get my hands on SLED 10 and got to downloading.  Unfortunately the most recent version of SLED I found was version 10 ( although I might be able to get 10 SP 2 now).&lt;br /&gt;&lt;br /&gt;I had always heard how easy it was to install SLED 10 and how well most hardware was supported. It is actually pretty nice on the hardware support... if you are using the latest version (10 SP2). I, on the other hand was only using version 10.0. I popped in the 1st install CD and rebooted my machine. It booted onto the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Suse&lt;/span&gt; installer where it stalled for a few seconds and dropped into the console installer saying it couldn't find CD1. I checked the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;md&lt;/span&gt;5 sum of the CD, it was fine, so the installer must not be recognizing the CD.  I didn't have time to investigate until the next day so I went home without &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Suse&lt;/span&gt; installed.&lt;br /&gt;&lt;br /&gt;The next morning I did some research and discovered an issue with some motherboards not actually running a real &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;PATA&lt;/span&gt; controller and instead handing the duty off to a host controller.  Because of this, the default modules loaded up by the installer weren't enough. The fix was easy enough though, I just loaded a few &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;pata&lt;/span&gt; modules and the CD recognized properly. After that, the install was a breeze albeit very slow.&lt;br /&gt;&lt;br /&gt;After about an hour and a half the install was finally complete and Gnome booted up... unfortunately the video wasn't recognized and was not displaying correctly at all. I squinted at the screen for a second and switched over to a virtual console and booted up &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Yast&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Suse&lt;/span&gt; wasn't recognizing my video card correctly and had the color settings wrong so I fixed that and restarted Gnome. OK, no we are good. EXCEPT... now my Ethernet connection is not being recognized. Apparently the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;NIC&lt;/span&gt; I was using needed a module that wasn't in the 2.6.16 kernel that was installed. After some research I found out that I needed the e1000e module that was introduced in the 2.6.23 kernel!&lt;br /&gt;&lt;br /&gt;No big deal though, since I want to learn more about Linux I got my chance to try out compiling my own kernel! So I jumped onto my laptop and downloaded the 2.6.25.4 kernel and went through the the how to at &lt;a href="http://www.howtoforge.com/kernel_compilation_suse"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Howtoforge&lt;/span&gt;&lt;/a&gt;. I actually found the process to be very interesting and a great learning process for myself. Obviously I'm still a kernel &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;noob&lt;/span&gt; but at least now I have some experience compiling my own kernel. After I compiled the kernel and got the GRUB settings right I restarted &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Suse&lt;/span&gt; into my brand new kernel! After a successful &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;login&lt;/span&gt; I was ecstatic I actually got a working compiled kernel!&lt;br /&gt;&lt;br /&gt;That leads me to where I am today with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Suse&lt;/span&gt;, my first install and a kernel compilation later everything seems to be working out well. There are some things I don't like about SLED so far, but I'll write those up later after I've had some time to use SLED and get used to it. This experience has been a good one for me though as it has taught me how to troubleshoot issues better and introduced me to compiling my own kernel. After all that I'm ready to install &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;openSUSE&lt;/span&gt; 10.3 on my desktop at home!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-1948812671515352745?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=QRCwO0D57_Q:qNAVKonRCwQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=QRCwO0D57_Q:qNAVKonRCwQ:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=QRCwO0D57_Q:qNAVKonRCwQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=QRCwO0D57_Q:qNAVKonRCwQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=QRCwO0D57_Q:qNAVKonRCwQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=QRCwO0D57_Q:qNAVKonRCwQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=QRCwO0D57_Q:qNAVKonRCwQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=QRCwO0D57_Q:qNAVKonRCwQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/QRCwO0D57_Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/1948812671515352745/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/05/suse-linux-enterprise-desktop-10-test.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/1948812671515352745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/1948812671515352745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/QRCwO0D57_Q/suse-linux-enterprise-desktop-10-test.html" title="Suse Linux Enterprise Desktop 10 Test Run" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/05/suse-linux-enterprise-desktop-10-test.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IGRHcyfCp7ImA9WxdWEEg.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-460176654491303371</id><published>2008-05-10T13:02:00.011-06:00</published><updated>2008-07-02T21:25:25.994-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-02T21:25:25.994-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Netbeans" /><title>Eclipse</title><content type="html">I've been an Eclipse user ever since I started programming in Java *way* back in 2006 and I've been very happy with Eclipse ever since then. I have to admit that I've used Netbeans a few times before, but I've always preferred Eclipse to Netbeans, mostly for the wide array of plugins available for Eclipse. Since Netbeans 6.1 has come out I've been tempted to jump over and compare the two yet again. This got me thinking about what I like about Eclipse and also what has been annoying the hell out of me the past couple weeks. So here are a few things that have been driving me crazy about Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.  Project Explorer Forgets&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SCacj_EPLDI/AAAAAAAAAMQ/MuQEhdFyiJQ/s1600-h/stayopen.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5199014961884376114" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SCacj_EPLDI/AAAAAAAAAMQ/MuQEhdFyiJQ/s320/stayopen.png" style="margin: 0pt 10px 10px 0pt; float: left;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Maybe this is an incorrect setting or something but why does my project explorer forget where it was when I restart Eclipse? If I have a project workspace setup and have tab open, I'd like to have the project explorer also remember where I was in the folder system. It gets really old to have to navigate back to the folder I was looking at when I restarted Eclipse to get a new plugin. This really drives me crazy since the projects I have are pretty large and it makes Eclipse lag a bit while it opens the folder tree.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;i style="color: rgb(255, 0, 0);"&gt;Update&lt;/i&gt;: Thanks to George's awesome &lt;a href="http://smerrell.blogspot.com/2008/05/eclipse.html?showComment=1214948880000#c6200600220765237867"&gt;comment&lt;/a&gt;, my problem has been solved! Eclipse has had the "link with editor" button for a while now and it keeps the navigator tree open to the files you have open. Thanks!&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SGxC60BFkvI/AAAAAAAAAM4/z92im_eXY7s/s1600-h/navigator_link1.png" imageanchor="1" style="border: 0pt none ; background-color: transparent; clear: left; margin-bottom: 1em; float: left; margin-right: 1em;"&gt;&lt;img src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SGxC60BFkvI/AAAAAAAAAM4/oBPt8uFGjdA/s320-R/navigator_link1.png" style="border: 0pt none ;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Helpful Tips&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_ZYmLoxSrlTY/SCadEPEPLEI/AAAAAAAAAMY/Wm5sZ-onkLk/s1600-h/link.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5199015515935157314" src="http://4.bp.blogspot.com/_ZYmLoxSrlTY/SCadEPEPLEI/AAAAAAAAAMY/Wm5sZ-onkLk/s400/link.png" style="cursor: pointer;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I love the fact that I can hover my mouse over a class and see the default Javadoc for that class, but I have one serious complaint about this tool tip. Why is it not HTML? Javadoc allows you to link to other classes' Javadoc using HTML tags as well as the {@link} tag. Why can I not click on it when I focus on the tool tip? I know I can ctrl+click on the class to go there, but you are ignoring all the HTML rendering that can be done with Javadoc! This is annoying as hell! Please Eclipse, take a hint from Netbeans and fix this!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="" style="text-align: left; clear: both;"&gt;Update: Eclipse 3.4 Ganymede fixed this problem. Go &lt;a href="http://www.eclipse.org/ganymede/"&gt;get Ganymede&lt;/a&gt; and enjoy all the new features. (I like the new update system)&lt;/div&gt;&lt;br /&gt;&lt;div class="" style="text-align: left; clear: both;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="text-align: left; clear: both;"&gt;&lt;a href="http://4.bp.blogspot.com/_ZYmLoxSrlTY/SGxGXtLLFeI/AAAAAAAAANQ/nVLqjC6ew10/s1600-h/links_work1.png" imageanchor="1" style="border: 0pt none ; background-color: transparent; clear: left; margin-bottom: 1em; float: left; margin-right: 1em;"&gt;&lt;img src="http://4.bp.blogspot.com/_ZYmLoxSrlTY/SGxGXtLLFeI/AAAAAAAAANQ/TqSBD82oGDU/s320-R/links_work1.png" style="border: 0pt none ;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Off the top of my head those are my most annying complaints, but as I run into more issues with Eclipse I'll post my issues here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-460176654491303371?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ORoL6owusu0:s1cwuN8Bg0w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ORoL6owusu0:s1cwuN8Bg0w:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ORoL6owusu0:s1cwuN8Bg0w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ORoL6owusu0:s1cwuN8Bg0w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ORoL6owusu0:s1cwuN8Bg0w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ORoL6owusu0:s1cwuN8Bg0w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ORoL6owusu0:s1cwuN8Bg0w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ORoL6owusu0:s1cwuN8Bg0w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/ORoL6owusu0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/460176654491303371/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/05/eclipse.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/460176654491303371?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/460176654491303371?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/ORoL6owusu0/eclipse.html" title="Eclipse" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SCacj_EPLDI/AAAAAAAAAMQ/MuQEhdFyiJQ/s72-c/stayopen.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/05/eclipse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEEQ3s8fyp7ImA9WxdTEEU.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-7405276548034840823</id><published>2008-05-06T08:20:00.000-06:00</published><updated>2008-05-06T08:20:02.577-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-06T08:20:02.577-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><title>Hasta la Vista, Windows</title><content type="html">Dear Windows,&lt;br /&gt;&lt;br /&gt;You are a long time pal of mine, we've been friends since you were just 3.1. I've grown up with you on my computer and we have many fond memories together (except during your ME years), but I have to tell you something old pal. I've found someone else. I know, I know, this may come as a shock to you, but ever since you grew out of XP and into your new Vista body things just haven't been the same. Its not you, its me... ok its you too, but you just don't have the tools and stability that I need. Plus I'm tired of telling you that I'm your Genuine® friend all the time. Why are you so insecure about that?&lt;br /&gt;&lt;br /&gt;Now I know who you think I've &lt;a href="http://www.apple.com/macosx/"&gt;found&lt;/a&gt;, but you're wrong. They may have better looks then you (sorry) and seem to be cooler than you (again, sorry) but they are even more controlling than you are. I just can't be with an operating system that is so willing to lock me down in both hardware and software. Instead, I've found someone &lt;a href="http://en.wikipedia.org/wiki/Linux"&gt;else&lt;/a&gt;, and they aren't afraid of a little choice. And not just between Home Basic, Home Premium, Business, or Ultimate (what do they all mean anyway?).&lt;br /&gt;&lt;br /&gt;I'm sorry Windows, but I will not be installing another version at home again and I will avoid you as much as I can at work as well. Of course, we'll see each other from time to time since I have to make sure my code works with you, but thats all it will be. Linux is my new best friend and we are happy to have superior tools and the freedom to use and modify them how we choose. Its been fun Windows, but your day has passed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-7405276548034840823?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=-_Q0H3NNrLw:CdrfSOTU-xY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=-_Q0H3NNrLw:CdrfSOTU-xY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=-_Q0H3NNrLw:CdrfSOTU-xY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=-_Q0H3NNrLw:CdrfSOTU-xY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=-_Q0H3NNrLw:CdrfSOTU-xY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=-_Q0H3NNrLw:CdrfSOTU-xY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=-_Q0H3NNrLw:CdrfSOTU-xY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=-_Q0H3NNrLw:CdrfSOTU-xY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/-_Q0H3NNrLw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/7405276548034840823/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/05/hasta-la-vista-windows.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/7405276548034840823?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/7405276548034840823?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/-_Q0H3NNrLw/hasta-la-vista-windows.html" title="Hasta la Vista, Windows" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/05/hasta-la-vista-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EEQHY_cSp7ImA9WxZaGUQ.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-8843040335371068528</id><published>2008-05-05T09:00:00.001-06:00</published><updated>2008-05-05T09:00:01.849-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-05T09:00:01.849-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="Testing" /><category scheme="http://www.blogger.com/atom/ns#" term="Peer review" /><title>Peer Review Your Tests</title><content type="html">Software review has been around since the &lt;a href="http://en.wikipedia.org/wiki/Fagan_inspection"&gt;70&lt;/a&gt;'s, but one place I see it skipped over often is in the test world. Why would anyone want to peer review your test cases? The answer to that is, why wouldn't you?&lt;br /&gt;&lt;br /&gt;It seems to me that many testers don't have their code reviewed because it often does not intermix with anyone else's code. This is one problem that leads you to owning "your" parts of the code and ignoring "someone else's" code. This creates a sort of hands off environment where people begin to guard their code and resent when someone else is prodding at its inner workings. This is where a culture of voluntary peer reviews can help bring the test teams together into a more cohesive, and open unit.&lt;br /&gt;&lt;br /&gt;I say voluntary because formal reviews do not sit well with developers (or anyone else involved for that matter), because of the stiff formality and time spent reviewing. The best way to get a team of developers reviewing each other's code is to introduce it and start using it yourself first. Once the benefits become clear, the stragglers will be interested. Also, by keeping the code reviews informal and voluntary, the reviewee's attitude is much different than if they were being forced to do a review.&lt;br /&gt;&lt;br /&gt;So what benefits does a test team gain from using a peer review system? Just the same as they have been argued for developers. A good peer review setup will help keep your test cases consistent and readable among the differing 'silos' of tests in your suite. Also, by showing your code to your other teammates they can save you time debugging if they spot a problem with your testcase. This, to me, is one of the most valuable assets to a code review system. If someone can point out a problem before I waste time on it, I'm eternally grateful. The second most useful aspect of code reviews have absolutely  nothing to do with finding bugs. The side effect of doing a peer review comes in the form of skill transfer. If I'm working on some web service tests and I'm reviewing tests for web services security, I'm going to pick up how their tests work as well as how the web services security works. This can also help foster another important and very useful activity within the team, mentoring.&lt;br /&gt;&lt;br /&gt;While there are many more reasons why you should implement an informal peer review system, I'm going to leave what I have at this and open up to discussion on peer reviews. How have they worked for you and how did you implement a code review system? Let me know in the comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-8843040335371068528?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=pQcvUCM42js:S1pXNFONMko:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=pQcvUCM42js:S1pXNFONMko:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=pQcvUCM42js:S1pXNFONMko:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=pQcvUCM42js:S1pXNFONMko:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=pQcvUCM42js:S1pXNFONMko:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=pQcvUCM42js:S1pXNFONMko:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=pQcvUCM42js:S1pXNFONMko:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=pQcvUCM42js:S1pXNFONMko:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/pQcvUCM42js" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/8843040335371068528/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/05/peer-review-your-tests.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/8843040335371068528?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/8843040335371068528?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/pQcvUCM42js/peer-review-your-tests.html" title="Peer Review Your Tests" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/05/peer-review-your-tests.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEHRno_cCp7ImA9WxZaGUw.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-8784951230092600038</id><published>2008-05-04T09:44:00.003-06:00</published><updated>2008-05-04T10:30:37.448-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-04T10:30:37.448-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Twitter" /><category scheme="http://www.blogger.com/atom/ns#" term="Product Management" /><title>Follow Your Users</title><content type="html">Thanks to a &lt;a href="http://twitter.com/charlieoliver/statuses/803050999"&gt;tweet &lt;/a&gt;on Twitter I came across an interesting article on why companies should &lt;a href="http://www.techcrunch.com/2008/04/06/comcast-twitter-and-the-chicken-trust-me-i-have-a-point/"&gt;pay more attention to their customers complaints.&lt;/a&gt; But it doesn't stop just at companies keeping track of their brand reputation among their customers, this can (and should) be done much more often than it is today.  Here are a couple people and groups that I think should be interested in what complaints they are receiving.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Open Source Projects:&lt;/span&gt;&lt;br /&gt;If you run an open source project, you should be keeping track of what people are complaining about. Many open source projects get lulled into believing that if their users have a problem they will fix it and submit a patch for it. While this definitely happens, there are many more users out there that either just don't have the time or skills to fix it, or they may not even know that they can fix it themselves. This also leads me to another issue many open source projects have, it seems that many projects think that if someone has a complaint but is unable to fix it, they will go to the forums and start a discussion about this. Again, many people will simply post their complaint to their blog or Twitter and leave it at that. This isn't a bad thing, it just means that we need to go out there and actively be looking for what people are complaining about.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Product Managers&lt;/span&gt;:&lt;br /&gt;Every product manager (software and non-software) should be keeping track of what people are saying about your product. While most products spend a load of money on doing customer research and analysis, it really doesn't cover you. While many people may fill out a survey about your product, they don't get to express their true feelings about it unless they get to say it in their own words. Product research will only get you so far, let your customers tell you what they think of it for free!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Specification Leads:&lt;/span&gt;&lt;br /&gt;You definitely need to be listening to what users are saying about your previous specification revision or similar specification if its a new spec. It seems to me that most specifications written seem very out of touch with how people are working with the last revision. It took the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;EJB&lt;/span&gt; specification 3 revisions to begin to even remotely come close to what users wanted. If the spec leads had been listening to what users were saying about the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;EJB&lt;/span&gt; specification we could have avoided much of the hassle that was &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;EJB&lt;/span&gt;2.&lt;br /&gt;&lt;br /&gt;While there are more places listening to customer/user feedback is important, I'm going to leave it at these three. What's most important to remember is that you should be listening to what people are saying about your product, project, or whatever else it is. You need to listen to what they are saying and actually do something about it. You also should not be afraid to talk with your users and let them know that you do care and that you do know they exist. &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;What other places could you find this helpful in? Leave some comments and let me know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-8784951230092600038?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ieWfcFSjGhE:L0trkeIwDZo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ieWfcFSjGhE:L0trkeIwDZo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ieWfcFSjGhE:L0trkeIwDZo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ieWfcFSjGhE:L0trkeIwDZo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ieWfcFSjGhE:L0trkeIwDZo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ieWfcFSjGhE:L0trkeIwDZo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=ieWfcFSjGhE:L0trkeIwDZo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=ieWfcFSjGhE:L0trkeIwDZo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/ieWfcFSjGhE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/8784951230092600038/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/05/follow-your-users.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/8784951230092600038?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/8784951230092600038?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/ieWfcFSjGhE/follow-your-users.html" title="Follow Your Users" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/05/follow-your-users.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIEQ3g9fCp7ImA9WxZaFEU.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-8502890869376524986</id><published>2008-04-29T09:50:00.003-06:00</published><updated>2008-04-29T09:55:02.664-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-29T09:55:02.664-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gnu" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="unix" /><category scheme="http://www.blogger.com/atom/ns#" term="tee" /><title>Tee'd off</title><content type="html">Recently I was trying to figure out how to output text from a command to both a text file and the console. My twitter friends weren't sure how to do this but fortunately a friend of mine reminded me of a handy little tool named tee.&lt;br /&gt;&lt;br /&gt;from the tee man file:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;tee - read from standard input and write to standard output and files&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A simple example of using tee:&lt;br /&gt;`&lt;span style="font-style: italic;"&gt;cat somefile.txt | tee output.txt&lt;/span&gt;`&lt;br /&gt;&lt;br /&gt;So next time  you need to write to both the console and a text file don't get so Tee'd off! (cheesy I know)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-8502890869376524986?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=_6DyZse2afA:TDYJoJLgKk8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=_6DyZse2afA:TDYJoJLgKk8:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=_6DyZse2afA:TDYJoJLgKk8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=_6DyZse2afA:TDYJoJLgKk8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=_6DyZse2afA:TDYJoJLgKk8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=_6DyZse2afA:TDYJoJLgKk8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=_6DyZse2afA:TDYJoJLgKk8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=_6DyZse2afA:TDYJoJLgKk8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/_6DyZse2afA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/8502890869376524986/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/04/teed-off.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/8502890869376524986?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/8502890869376524986?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/_6DyZse2afA/teed-off.html" title="Tee'd off" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/04/teed-off.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MEQXgzcSp7ImA9WxZaEEw.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-4663197222801034057</id><published>2008-04-23T22:23:00.002-06:00</published><updated>2008-04-23T22:30:00.689-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-23T22:30:00.689-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Trent Reznor" /><category scheme="http://www.blogger.com/atom/ns#" term="NIN" /><category scheme="http://www.blogger.com/atom/ns#" term="Nine Inch Nails" /><title>Discipline</title><content type="html">I don't know what super fuel Nine Inch Nails has been running on lately, but it sure seems like they have found a new creative well to tap. They keep coming out with more of everything in less time. Definitely not the typical four-to-five-years-between-albums Nine Inch Nails we have been used to. I just Downloaded their new song &lt;a href="http://discipline.nin.com"&gt;Discipline&lt;/a&gt; and its amazing! It gets me wondering what they are up to now that Robin Finck has joined the Nine Inch Nails fold &lt;a href="http://www.flickr.com/photos/nineinchnails/2387960399/"&gt;yet again&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Oh yeah, and they are going on tour.... soon.&lt;br /&gt;&lt;br /&gt;If you haven't clicked the link earlier, go download Discipline &lt;a href="http://discipline.nin.com"&gt;now&lt;/a&gt;. If you are musically inclined, you should go to &lt;a href="http://remix.nin.com"&gt;remix.nin.com&lt;/a&gt; and get the multitracks of Discipline in the Mix section.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-4663197222801034057?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=PcWwGXf9BeY:FIg9Efyo6Jg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=PcWwGXf9BeY:FIg9Efyo6Jg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=PcWwGXf9BeY:FIg9Efyo6Jg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=PcWwGXf9BeY:FIg9Efyo6Jg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=PcWwGXf9BeY:FIg9Efyo6Jg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=PcWwGXf9BeY:FIg9Efyo6Jg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=PcWwGXf9BeY:FIg9Efyo6Jg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=PcWwGXf9BeY:FIg9Efyo6Jg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/PcWwGXf9BeY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/4663197222801034057/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/04/discipline.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/4663197222801034057?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/4663197222801034057?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/PcWwGXf9BeY/discipline.html" title="Discipline" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/04/discipline.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcGQHg8eCp7ImA9WxZbF0Q.&quot;"><id>tag:blogger.com,1999:blog-5174056046338641504.post-7630308968155396965</id><published>2008-04-21T09:46:00.003-06:00</published><updated>2008-04-21T09:50:21.670-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-21T09:50:21.670-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Git" /><category scheme="http://www.blogger.com/atom/ns#" term="version control" /><title>Git on Cygwin</title><content type="html">Lately I've been trying out Git and I have been very impressed so far. I enjoy how Git doesn't impose any set method on how to do things, instead it lets me write code how I want to and forget about my version control. I did run into one annoying problem with Git on Cygwin though. Apparently, the default install for Git enables _all_ the pre-commit hooks for Git. The Linux version, on the other hand, *disables* all the pre-commit hooks. This kept me running into an annoying problem where Git wouldn't let me commit files because of bad whitespace in a couple files.&lt;br /&gt;&lt;br /&gt;Fortunately I found a solution to the problem &lt;a href="http://www.cygwin.com/ml/cygwin/2007-08/msg00260.html"&gt;here&lt;/a&gt;. Its a simple '&lt;span style="font-style: italic;"&gt;chmod a-x .git/hooks/pre-commit&lt;/span&gt;'.&lt;br /&gt;&lt;br /&gt;Now that I have that out of the way, I'm going to try Git some more and compare it to my experiences with Mercurial (which I think is another great version control system).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5174056046338641504-7630308968155396965?l=smerrell.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xd2XcXLjYJE:ew4IBRXQ_tA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xd2XcXLjYJE:ew4IBRXQ_tA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xd2XcXLjYJE:ew4IBRXQ_tA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=xd2XcXLjYJE:ew4IBRXQ_tA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xd2XcXLjYJE:ew4IBRXQ_tA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=xd2XcXLjYJE:ew4IBRXQ_tA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SamMerrell?a=xd2XcXLjYJE:ew4IBRXQ_tA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SamMerrell?i=xd2XcXLjYJE:ew4IBRXQ_tA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SamMerrell/~4/xd2XcXLjYJE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://smerrell.blogspot.com/feeds/7630308968155396965/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://smerrell.blogspot.com/2008/04/git-on-cygwin.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/7630308968155396965?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5174056046338641504/posts/default/7630308968155396965?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SamMerrell/~3/xd2XcXLjYJE/git-on-cygwin.html" title="Git on Cygwin" /><author><name>Sam Merrell</name><uri>http://www.blogger.com/profile/00523709585823122064</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_ZYmLoxSrlTY/SmoZ2I4KRjI/AAAAAAAAAV0/W9NZku1qd1o/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://smerrell.blogspot.com/2008/04/git-on-cygwin.html</feedburner:origLink></entry></feed>

