<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2644648721745474693</id><updated>2011-08-16T21:01:19.003-06:00</updated><category term='Wireless'/><category term='Mobile'/><category term='WebBrowser'/><category term='Drivers'/><category term='MacOS'/><category term='Exercise'/><category term='Presenting'/><category term='Apple'/><category term='Java'/><category term='RIA'/><category term='Ajax'/><category term='OpenSource'/><category term='Programming'/><category term='Testing'/><category term='DJUG'/><category term='JavaFX'/><category term='Business'/><category term='DOSUG'/><category term='Productivity'/><category term='iPhone'/><category term='Ergonomics'/><category term='Maven'/><category term='Eclipse'/><category term='Software'/><category term='Marketing'/><category term='Work'/><category term='Hardware'/><category term='Verizon'/><category term='SocialNetwork'/><category term='Uncategorized'/><category term='Sports'/><category term='Cellphone'/><category term='Books'/><title type='text'>Matthew McCullough's Denver Dev</title><subtitle type='html'>Matthew McCullough's insights on Software Development in Denver, Colorado while working as Co-Founder of Ambient Ideas, LLC</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>100</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8951430706108011544</id><published>2009-02-19T20:36:00.001-07:00</published><updated>2010-07-21T22:49:54.713-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Uncategorized'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><title type='text'>Using the Maven Command Line Interface Plugin</title><content type='html'>&lt;p&gt;&lt;a href="http://maven.apache.org/maven-1.x/plugins/console/" target="_blank"&gt;Maven 1.0 users were spoiled with the console plugin&lt;/a&gt;, and now Maven 2.0 users can get a nearly equivalent experience with a high-performance bootstrapped prompt &lt;a href="http://wiki.github.com/mrdon/maven-cli-plugin" target="_blank"&gt;via the Command Line Interface plugin&lt;/a&gt;. Watch this quick screencast for a tour of using this plugin and start saving even more time with Maven.&lt;/p&gt;&lt;embed src="http://blip.tv/play/Ae3Wf5SLPw" type="application/x-shockwave-flash" width="1024" height="600" allowscriptaccess="always" allowfullscreen="true" /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8951430706108011544?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8951430706108011544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8951430706108011544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8951430706108011544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8951430706108011544'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/02/using-maven-command-line-interface.html' title='Using the Maven Command Line Interface Plugin'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3062191159043013082</id><published>2009-02-02T12:43:00.000-07:00</published><updated>2009-02-02T12:44:00.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='SocialNetwork'/><title type='text'>Relocating to a permanent home</title><content type='html'>&lt;p&gt;Finally, the Denver Dev blog has a more official home attached to &lt;a href="http://ambientideas.com/" target="_blank"&gt;Ambient Ideas&lt;/a&gt;. The new URL is: &lt;a href="http://ambientideas.com/blog/" target="_blank"&gt;http://ambientideas.com/blog/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This blogspot.com site will continue to stay up and serve up the old articles with comments, but all the existing articles through 2007 have been &lt;a href="http://ambientideas.com/blog/" target="_blank"&gt;migrated to the new site as well&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All new posts will be put on the &lt;a href="http://ambientideas.com/blog/" target="_blank"&gt;new URL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks for staying tuned! Up next, an article about Git and how it literally changes team and OSS dynamics.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3062191159043013082?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3062191159043013082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3062191159043013082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3062191159043013082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3062191159043013082'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/02/relocating-to-permanent-home.html' title='Relocating to a permanent home'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-7417698823839031046</id><published>2009-01-16T15:34:00.000-07:00</published><updated>2009-01-16T17:29:36.977-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOS'/><title type='text'>iPhone SDK, Cocoa &amp; RESTful Web Services, Memory Leak</title><content type='html'>&lt;p&gt;Recently, I gave the second version of my iPhone and Java Web Services talk at the &lt;a href="http://www.boulderjug.org" target="_blank"&gt;Boulder JUG&lt;/a&gt;. It was a great audience filled with interest and great questions. I promised them I would continue to load up &lt;a href="http://delicious.com/matthew.mccullough/iphone" target="_blank"&gt;my Delicious bookmarks with great iPhone links&lt;/a&gt;, and I'm doing just that.&lt;/p&gt;
&lt;p&gt;Pertinent to that talk, let's quickly revisit that memory leak issue for NSURLConnection. In short, if you call sendSynchronousRequest, you get an internal memory leak of 128 bytes of a NSCFString object from inside the API.&lt;/p&gt;
&lt;p&gt;To isolate this from my application coding skills via &lt;a href="http://github.com/matthewmccullough/iphoneandjavawebservices/" target="_blank"&gt;the iPhone and Java Web Services demo code&lt;/a&gt;, let's look at an example called &lt;a href="http://appsamuck.com/day15.html" target="_blank"&gt;ZipWeather from AppsAmuck&lt;/a&gt;. Attach the profile to the ZipWeather, exactly as downloaded. Run it. Type a zip code. It leaks.&lt;/p&gt;
&lt;p&gt;It appears that the &lt;a href="http://raoli.com/2004/03/11/nsurlconnection-and-amazon-web-services/" target="_blank"&gt;NSURLConnection:sendSynchronousRequest() Flaking out, even for others, calling this API&lt;/a&gt; to Amazon Web Services. I believe it may &lt;a href="http://lists.apple.com/archives/Macnetworkprog/2008/Nov/msg00002.html" target="_blank"&gt;be the leak contributing to these hiccups&lt;/a&gt;. I've &lt;a href="http://lists.apple.com/archives/Macnetworkprog/2008/Nov/msg00013.html" target="_blank"&gt;tried turning off the cache, but it still leaks. I've tried the async version and it still leaks too&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This &lt;a href="http://developer.apple.com/webapps/articles/creatingrestfulclients.html" target="_blank"&gt;Apple article even suggests using this same API in the same way&lt;/a&gt; that ZipWeather and my iPhone and Java Web Services app does.&lt;/p&gt;
&lt;p&gt;In short, I'm submitting another &lt;a href="https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/wa/signIn" target="_blank"&gt;Radar report to Apple&lt;/a&gt; about this and hope it doesn't get closed out as "Unable to reproduce" as &lt;a href="http://lists.apple.com/archives/Macnetworkprog/2008/Nov/msg00006.html" target="_blank"&gt;João Pavão's defect # 6179277&lt;/a&gt; did. I'm able to reproduce it every time, with everyone's sendSynchronousRequest calls.&lt;/p&gt;
&lt;p&gt;I love the platform, but as you all know, one core API bug can really cause a lot of challenges until resolved. Let's hope this one gets resolved very soon!&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/2841-resolved-how-call-soap-service-3.html" target="_blank"&gt;SOAP Service Calls on the iPhone&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://stackoverflow.com/questions/393803/accessing-a-webserver-from-a-cocoa-application" target="_blank"&gt;Stack Overflow thread on Cocoa Web Service Access&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://developer.apple.com/iphone/" target="_blank"&gt;Apple iPhone Dev Center&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://kosmaczewski.net/2008/03/26/playing-with-http-libraries/" target="_blank"&gt;A Blog about 5 languages calling web services, including Objective-C&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://kosmaczewski.net/2008/10/18/rest-and-objective-c-again/" target="_blank"&gt;A continuation blog post specifically on Objective-C and REST&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://kosmaczewski.net/projects/objective-c-rest-client/" target="_blank"&gt;And a download of a sample client in Objective-C that calls REST methods&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;UPDATE: &lt;a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/3174-memory-leak.html#post41589" target="_blank"&gt;SeismicXML leak discussion&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;UPDATE: &lt;a href="http://forums.macrumors.com/showthread.php?t=576680" target="_blank"&gt;MacRumors sendSynchronousRequest leak discussion&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;UPDATE: &lt;a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/4910-nsxmlparser-rssparser-causing-memory-leak.html#post39064" target="_blank"&gt;NSXMLParser leaks too&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br /&gt;
&lt;img src="http://farm4.static.flickr.com/3298/3201729569_ea16f4718d_o.jpg" width="794" height="578" alt="200901161532.jpg" /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-7417698823839031046?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/7417698823839031046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=7417698823839031046' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7417698823839031046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7417698823839031046'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/iphone-sdk-cocoa-restful-web-services.html' title='iPhone SDK, Cocoa &amp;amp; RESTful Web Services, Memory Leak'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3997494113115122278</id><published>2009-01-15T09:33:00.001-07:00</published><updated>2009-01-15T09:33:29.211-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Open Source - 5 Big Reasons</title><content type='html'>&lt;p&gt;I was asked to write a few paragraphs for a client on why they should primarily &lt;a href="http://linux.slashdot.org/article.pl?sid=09%2F01%2F02%2F2330237&amp;amp;from=rss" target="_blank"&gt;chose open source software in the current state of our industry&lt;/a&gt;. In addition to a &lt;a href="http://www.sys-con.com/node/797241" target="_blank"&gt;few articles supporting these positions&lt;/a&gt;, many have posited that we should even use &lt;a href="http://news.slashdot.org/article.pl?sid=09%2F01%2F14%2F0032223&amp;amp;from=rss" target="_blank"&gt;government incentives to further boost OSS as a spark to re-ignite the industry&lt;/a&gt;. Leave your feedback on what your feelings are on OSS and I'll look into using some of the responses in my next presentation...&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Open source is gaining momentum like never before in the most respected of institutions and enterprises. Originally, the choice to use open source was made only by smaller companies for strictly financial reasons. Those reasons still hold, but are now joined by a chorus of other great points in the current intellectual property, commercial vendor, and economic state that the business world is currently in.&lt;/p&gt;

  &lt;p&gt;Interoperability is strongest in the Open Source realm. Open Source enjoys the absence of financial motivations to close data inputs, and the existence of desire to have adopters join in and migrate from other open and closed platforms. You'll find that there are numerous import &amp;amp; migration tools for your existing data, and you'll discover that your data is stored in highly interoperable formats for future migration to any platform your business needs dictate.&lt;/p&gt;

  &lt;p&gt;Cost continues to be a factor leading towards Open Source in today's economic climate. Open Source wins every time on initial acquisition cost, but also on maintenance expenses over time. You can budget for well known project costs without yearly surprise increases in maintenance just because a commercial vendor raises renewal prices.&lt;/p&gt;

  &lt;p&gt;Quality is also a strong point of Open Source. This can be surprising to teams who think that well funded commercial products would have higher quality due to all the talent on such teams. But Open Source also sports excellent talent, as well as the hidden weapon of breadth of automated unit tests, constantly guarding the product's quality at each and every release.&lt;/p&gt;

  &lt;p&gt;In this uncertain economic climate, it can actually make more sense to know you perpetually have the full source code to your product. This removes the dangerous dependency on the continued solvency of a particular vendor. Open Source allows you to control and know your software destiny beyond any outside economic influences.&lt;/p&gt;

  &lt;p&gt;In sum, Open Source presents an attractive package in terms of cost, sustainability, and quality that are a perfect fit for the current business conditions of 2009 and beyond.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3997494113115122278?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3997494113115122278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3997494113115122278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3997494113115122278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3997494113115122278'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/open-source-5-big-reasons.html' title='Open Source - 5 Big Reasons'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-631831291357437487</id><published>2009-01-11T16:22:00.001-07:00</published><updated>2009-01-15T09:35:08.261-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SocialNetwork'/><title type='text'>Matthew's Social Networks Graph, Winter 2009 Edition</title><content type='html'>&lt;p&gt;Every once in a while, I aggregate all my social network links for the new subscribers to the blog. Here's the Winter 2009 edition:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href="http://delicious.com/matthew.mccullough" target="_blank"&gt;Delicous Bookmarks&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://twitter.com/matthewmccull" target="_blank"&gt;Twitter @matthewmccull&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;span style="color: #0000EE; text-decoration: underline;"&gt;&lt;a href="http://www.icalx.com/html/programr/year.php?cal=Java+Conferences+%26+Speaking+Events&amp;amp;getdate=20090111" target="_blank"&gt;Global Java Conferences Calendar&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.icalx.com/html/programr/year.php?cal=Denver+Developer+Events&amp;amp;getdate=20090111" target="_blank"&gt;Denver Java Events Calendar&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.linkedin.com/in/matthewatambientideas" target="_blank"&gt;Linkedin&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.facebook.com/people/Matthew-McCullough/658511739" target="_blank"&gt;Facebook&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://friendfeed.com/matthewmcc" target="_blank"&gt;Friendfeed&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.denveropensource.org" target="_blank"&gt;DOSUG Homepage&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://denverdev.blogspot.com/" target="_blank"&gt;Blog (this page)&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.tripit.com/people/matthewmccullough" target="_blank"&gt;Tripit&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.slideshare.net/programr" target="_blank"&gt;Slideshare&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://github.com/matthewmccullough/" target="_blank"&gt;GitHub&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://gist.github.com/matthewmccullough" target="_blank"&gt;GitHub Gists&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;[2009-01-15 Updated with SlideShare, GitHub, Gist]&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-631831291357437487?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/631831291357437487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=631831291357437487' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/631831291357437487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/631831291357437487'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/matthew-social-networks-graph-winter.html' title='Matthew&amp;#39;s Social Networks Graph, Winter 2009 Edition'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6957752105854287070</id><published>2009-01-11T15:11:00.001-07:00</published><updated>2009-01-11T15:11:50.679-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Developer Syntax Highlighting for Presentations, Copy-And-Paste on the
Mac</title><content type='html'>&lt;p&gt;Based on some Twitter conversations with @fredjean about the &lt;a href="http://groups.google.com/group/webslideshow?pli=1" target="_blank"&gt;Codex Ruby Gem&lt;/a&gt;, I've been inspired to stop taking screenshots of code for slides and rather putting in formatted text. But this isn't as easy to do as it should be. Eclipse 3.4 has lost (for me, and others) the ability to copy and paste rich text so that it appears formatted in the paste destination. Maybe that's a MacOS failure of later Eclipse versions. No matter though, as I drift father from Eclipse usage. My favorite other two editors can fulfill this need nicely with two simple add-ons.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://onestepback.org/index.cgi/General/PresentingCode.red" target="_blank"&gt;Jim Weirich's blog post about using Ruby and posting source&lt;/a&gt; as a means&lt;/p&gt;
&lt;p&gt;Dave Thomas (@pragdave) &lt;a href="http://pragdave.blogs.pragprog.com/pragdave/2008/05/our-take-on-pre.html" target="_blank"&gt;chimes in with his similar thread about presenting code&lt;/a&gt; -- gasp -- without Keynote entire.&lt;/p&gt;
&lt;h1&gt;Textmate: Copy as RTF Bundle (Plugin)&lt;/h1&gt;
&lt;p&gt;This &lt;a href="http://github.com/drnic/copy-as-rtf-tmbundle/tree/master" target="_blank"&gt;sweet plugin lets you copy formatted code of any language TextMate recognizes as RTF&lt;/a&gt;. Perfectly suitable for pasting into MS Word, Pages, TextEdit, or namely, Keynote. Install it via:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;strong&gt;cd ~/Library/Application Support/TextMate/Bundles&lt;br /&gt;
git clone git://github.com/drnic/copy-as-rtf-tmbundle.git "Copy as RTF.tmbundle"&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Initialized empty Git repository in /Users/mccm06/Library/Application Support/TextMate/Bundles/Copy as RTF.tmbundle/.git/&lt;br /&gt;
remote: Counting objects: 34, done.&lt;br /&gt;
remote: Compressing objects: 100% (17/17), done.&lt;br /&gt;
remote: Total 34 (delta 14), reused 34 (delta 14)&lt;br /&gt;
Receiving objects: 100% (34/34), 6.88 KiB, done.&lt;br /&gt;
Resolving deltas: 100% (14/14), done.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The copy:&lt;br /&gt;
&lt;img src="http://farm4.static.flickr.com/3521/3188571041_bcbcf3d1fb.jpg" width="480" height="193" alt="200901111502.jpg" style="border:1px #000000 dotted;" /&gt;&lt;/p&gt;
&lt;p&gt;And the paste:&lt;br /&gt;
&lt;img src="http://farm4.static.flickr.com/3494/3188571365_136c96ee78.jpg" width="480" height="389" alt="200901111503.jpg" style="border:1px #000000 dotted;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;IntelliJ: Copy as HTML Plugin&lt;/h1&gt;
&lt;p&gt;Similar functionality works from IntelliJ. Just install the plugin "Copy to Clipboard as HTML".&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3430/3189416730_91caa7bb4b_o.jpg" width="640" height="426" alt="200901111508.jpg" style="border:1px #000000 dotted;" /&gt;&lt;/p&gt;
&lt;p&gt;The copy:&lt;br /&gt;
&lt;img src="http://farm4.static.flickr.com/3472/3188571739_ee8ef3b789.jpg" width="480" height="219" alt="200901111509.jpg" style="border:1px #000000 dotted;" /&gt;&lt;/p&gt;
&lt;p&gt;And, the paste:&lt;br /&gt;
&lt;img src="http://farm4.static.flickr.com/3332/3188572367_ba635b0315.jpg" width="480" height="420" alt="200901111510.jpg" style="border:1px #000000 dotted;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6957752105854287070?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6957752105854287070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6957752105854287070' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6957752105854287070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6957752105854287070'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/developer-syntax-highlighting-for.html' title='Developer Syntax Highlighting for Presentations, Copy-And-Paste on the&#xA;Mac'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3521/3188571041_bcbcf3d1fb_t.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-569537016065836583</id><published>2009-01-10T16:44:00.001-07:00</published><updated>2009-01-10T16:44:24.800-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Presentation Techniques in Video Form</title><content type='html'>&lt;p&gt;I just finished &lt;a href="http://www.empoweryourpoint.com/2009/01/10-reasons-why-presentations-are-going-to-make-it-big-in-2009-speakers/" target="_blank"&gt;watching several excellent presenters from a summary page of 10 video clips&lt;/a&gt;. Everyone should consider watching these to improve their talks in 2009. These are the superstars of this skillset and there's so much to be learned from them.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-569537016065836583?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/569537016065836583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=569537016065836583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/569537016065836583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/569537016065836583'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/presentation-techniques-in-video-form.html' title='Presentation Techniques in Video Form'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-538465332021564157</id><published>2009-01-10T11:18:00.001-07:00</published><updated>2009-01-10T11:18:26.410-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Sean Kelly's Web Application Framework Comparison Presentation Video</title><content type='html'>&lt;p&gt;Sean Kelly of NOAA and JPL does a &lt;a href="http://video.google.com/videoplay?docid=6297126166376226181" target="_blank"&gt;head to head comparison of TurboGears, Zope, J2EE, Ruby On Rails and Django&lt;/a&gt;. It's articular, fun, fast, and well presented. It's worth your time to listen to expand your horizons.&lt;br /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-538465332021564157?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/538465332021564157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=538465332021564157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/538465332021564157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/538465332021564157'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/sean-kelly-web-application-framework.html' title='Sean Kelly&amp;#39;s Web Application Framework Comparison Presentation Video'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-687265438787366111</id><published>2009-01-10T11:14:00.001-07:00</published><updated>2009-01-10T11:14:11.544-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='WebBrowser'/><title type='text'>Mouseless Web Browsing</title><content type='html'>&lt;p&gt;I'm a keyboard lover. The productivity from keyboard shortcuts is just amazing. So I'm constantly keeping an eye out for new keyboard navigation techniques. Web browsers have been a sore point, because to click a link with the keyboard you first have to tab to it. This can be, on link heavy pages, 20 or more tabs before I can hit enter. Hardly productive if you ask me.&lt;/p&gt;
&lt;p&gt;That's where &lt;a href="http://www.mouseless.de/index.php?/component/option,com_frontpage/Itemid,1/" target="_blank"&gt;Mouseless Browsing for Firefox&lt;/a&gt; comes in. It puts a number next to each link and you just type the number on the keyboard, press enter, and away you go. It couldn't be easier. Go forth and use the mouse no more for your web browsing efforts and watch your productivity take a leap!&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;img src="http://farm4.static.flickr.com/3090/3179188935_def8197ce6_o.png" width="1024" height="768" alt="Cnn.png" /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-687265438787366111?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/687265438787366111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=687265438787366111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/687265438787366111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/687265438787366111'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/mouseless-web-browsing.html' title='Mouseless Web Browsing'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8015268908294150410</id><published>2009-01-04T18:18:00.000-07:00</published><updated>2009-01-04T18:21:01.630-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cellphone'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>iPhone 2G Network Switching from 850Mhz to 1900Mhz?</title><content type='html'>&lt;p&gt;Here's an interesting, though only lightly cross verified fact. &lt;a href="http://www.ofb.biz/safari/article/512.html" target="_blank"&gt;AT&amp;amp;T might be moving the 2G network over to the 1900Mhz band (your phones are practically tri-band, nowadays) and using 850Mhz for more of the 3G network.&lt;/a&gt; 850Mhz penetrates barriers more easily, thereby yielding, in most cases, a better signal reach and strength. I have noticed and commented to co-workers (prior to this article) an lessened ability to get 2G signal in many of my normal locations around Denver. So to me, this is a consumer scientific same-data-point test, and I'm seeing reduced throughput and signal strength (in some cases, 0 bars now at places I used to be able to get 2 or 3). Comments from anyone with a 1st Gen iPhone?&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8015268908294150410?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8015268908294150410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8015268908294150410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8015268908294150410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8015268908294150410'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/iphone-2g-network-switching-from-850mhz.html' title='iPhone 2G Network Switching from 850Mhz to 1900Mhz?'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6206261947044020504</id><published>2009-01-01T18:34:00.002-07:00</published><updated>2009-01-02T00:12:05.363-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>QuickBooks Pro 2009</title><content type='html'>&lt;p&gt;I have used QuickBooks Pro for about 8 years. The upgrade to the 2009 edition is the single worst upgrade ever. And trust me, I've submitted insane everyday-workflow bugs against the other older editions, so saying this is the worst is saying a lot.&lt;/p&gt;
&lt;p&gt;Let's articulate.&lt;/p&gt;
&lt;p&gt;1) They have redesigned the transaction download screen. So far, I've yet to be able to find ANYONE who thinks it is an improvement. Read these three long forums and reviews for just a smattering of the loathing going on:&lt;br /&gt;
&lt;a href="http://www.donloper.com/product-service-reviews/quickbooks-2009-online-banking-absolutely-horrible.html" target="_blank"&gt;An Accountant's Review, request for time-loss reimbursement&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://community.intuit.com/post/detail/db1_IYMvSr3yp1acfARklS?page=15" target="_blank"&gt;Intuit Community Post (got so long, they had to start a new one)&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://community.intuit.com/post/detail/aDJvSQXt8r3BT3acfAQhOa" target="_blank"&gt;Intuit Community Posts about Online Banking feature destruction in 2009&lt;/a&gt;&lt;br /&gt;
And those are just the first Google Hits. There are hundreds.&lt;/p&gt;
&lt;p&gt;2) So, an apology would be in order, right? And just restore the 2008 features, right? Nope. No can do according to "Greg Wright, the product manager for QuickBooks".&lt;/p&gt;
&lt;p&gt;"I care a lot about fixing the QuickBooks online banking feature so that it works as well as it used to. ... I can't go into details yet about what our plans are..."&lt;br /&gt;
You can find this quote in the forums.&lt;/p&gt;
&lt;p&gt;3) The amazon.com rating has dropped so dramatically that Mr. Wright has &lt;a href="http://www.amazon.com/review/product/B001ECGT8A/ref=cm_cr_pr_link_1?%5Fencoding=UTF8&amp;amp;showViewpoints=0" target="_blank"&gt;reached out to customers, pleading for their patience in the form of a review&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;4) I have sent Mr. Write a personal email outlining the 8 problems, including the ones in the Online Transactions window, in the latest R05 release. That's right folks, there are 5 service releases for this 2009 app and we just rang in the new year 18 hours ago. And they still haven't even addressed the bugs, and are still asking for our patience to get this screen back to it's '08 behavior. Wow.&lt;/p&gt;
&lt;p&gt;I applaud Mr. Wright for replying, but he also better get the team coding/fixing/reverting. Mr. Wright noted "&lt;em&gt;We have the developers working nights and weekends to fix this.&lt;/em&gt;" Maybe a quick subversion revert is all that's needed guys.&lt;/p&gt;
&lt;p&gt;Problem list, from 45 minutes of using it and 2 hours updating it:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;1) A forced call in to activate? I am OK with DRM for licensing, but a forced call to try and be sold to all kinds of services that I don't use feels very wrong. It took over 15 minutes of my very valuable time listening to a non-english speaking rep ask me non-sensical questions. I am patient with ESL folks, but one of the questions she kept repeating (I asked and wrote it down carefully so I could send it to you) was "And is role add what?" I tried three times, then eventually just replied, "None". I have no idea what I was answering. She also kept asking me how my Christmas was. That's nice once, but three times? Please, I am busy running a small business. Just give me my code and let me get on with business.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;2) No way to disable Online services advertisement at login to the application. Only choices are Later and Sign Up. How about a Never button?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;Online/Downloaded Transactions Screen--&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;3) Can't copy and paste between any text field in the transactions fields (with mouse right click or keyboard)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;4) Billable -- Can't ever get it to stay checked. It flickers off a millisecond after I click it. It does this no matter how many times I click it.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;5) Amount is not populated into the split. And I have to use split because that is the only way I can enter a Class. I have to tediously click the "Show Splits" option just to enter a class.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;6) Can't do a "Receive Payment from Customer" like I could in 2008. I have to go out and manually do that via the menus, then enter back in to the online transaction view (even worse since it requires all other screens to be closed)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;7) Close all other windows? I've never had to do this in any previous version. This is an extremely odd step backwards, given that the new screen is otherwise a net loss of features. Perhaps I could have lived with this if the downloaded transactions screen was more feature-ful than ever before.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Andale Mono';"&gt;8) Have to click NOT AN EXPENSE to get the manual match screen? But it is an expense. So clicking on NOT AN EXPENSE makes no sense. I need a "Match Manually" link like we used to have in 2008.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6206261947044020504?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6206261947044020504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6206261947044020504' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6206261947044020504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6206261947044020504'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2009/01/quickbooks-pro-2009.html' title='QuickBooks Pro 2009'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1947158783286658421</id><published>2008-12-27T12:37:00.001-07:00</published><updated>2008-12-27T12:37:24.625-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Presentation Skills of Benjamin Zander</title><content type='html'>&lt;p&gt;The &lt;a href="http://www.poptech.org/popcasts/?viewcastid=211" target="_blank"&gt;presentation skills of Benjamin Zander are absolutely amazing&lt;/a&gt;. He says so little, yet so much. &lt;a href="http://www.presentationzen.com/presentationzen/2008/12/benjamin-zander-at-poptech-2008-how-fascinating.html" target="_blank"&gt;He uses paper easels rather than PowerPoint and live demonstrations rather than canned demos.&lt;/a&gt; He works the audience and circulates amongst them. What an excellent example to aspire to.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1947158783286658421?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1947158783286658421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1947158783286658421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1947158783286658421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1947158783286658421'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/12/presentation-skills-of-benjamin-zander.html' title='Presentation Skills of Benjamin Zander'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1088872789471671630</id><published>2008-12-26T18:13:00.001-07:00</published><updated>2008-12-26T18:13:26.651-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>JMeter &amp; Plugins</title><content type='html'>&lt;p&gt;&lt;a href="http://mikedesjardins.us/wordpress/2008/12/test-your-ejbs-with-jmeter/" target="_blank"&gt;I noticed a post on JMeter EJB plugin. It is a short but well written example.&lt;/a&gt; My ears are a bit more attuned to &lt;a href="http://jakarta.apache.org/jmeter/" target="_blank"&gt;Apache JMeter&lt;/a&gt; these days &lt;a href="http://code.google.com/p/jmeter-groovy-sampler/" target="_blank"&gt;after I wrote the first OSS Groovy plugin for JMeter last month&lt;/a&gt;. One of my clients is now using it for scalability testing of a JEE application. &lt;a href="http://code.google.com/p/jmeter-groovy-sampler/" target="_blank"&gt;I highly suggest you take a look and consider contributing ideas or code to the project&lt;/a&gt;. I'd be glad to have other contributors.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1088872789471671630?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1088872789471671630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1088872789471671630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1088872789471671630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1088872789471671630'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/12/jmeter-plugins.html' title='JMeter &amp;amp; Plugins'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3243044825777462607</id><published>2008-12-10T21:27:00.001-07:00</published><updated>2008-12-10T21:27:17.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOS'/><title type='text'>MacBook Pro (late 2008) "Hot Laptop In Bag" Troubles</title><content type='html'>&lt;p&gt;As an owner of two "&lt;em&gt;MacBook Pro (late 2008)&lt;/em&gt;" units (gotta love the Apple official model title), I've experienced an overheating issue quite frequently. It's becoming known as "hot laptop in bag, syndrome, v2". Here's a quick tour of the problem with a bunch of the news articles published in just the last few days.&lt;/p&gt;
&lt;p&gt;There's a &lt;a href="http://gizmodo.com/5104487/new-macbooks-are-cranky-they-have-insomnia-and-hate-third+party-ram" target="_blank"&gt;quick description of the problem by Gizmodo&lt;/a&gt; then, the &lt;a href="http://discussions.apple.com/thread.jspa?threadID=1760972" target="_blank"&gt;actual thread on the Apple site&lt;/a&gt;, followed by a suggestion to use &lt;a href="http://www.jinx.de/SmartSleep.html" target="_blank"&gt;SmartSleep to turn on Hibernate mode&lt;/a&gt; only, or &lt;a href="http://support.apple.com/kb/HT1411" target="_blank"&gt;reset your SMC&lt;/a&gt;, or &lt;a href="http://support.apple.com/kb/HT1379" target="_blank"&gt;reset your PRAM&lt;/a&gt;, or &lt;a href="http://www.tuaw.com/2008/12/10/apple-issues-smc-and-firmware-update-for-all-macbooks/" target="_blank"&gt;actually get a firmware fix&lt;/a&gt;. Take your pick.&lt;/p&gt;
&lt;p&gt;And if you don't find that enough, go ahead and check out the &lt;a href="http://www.theinquirer.net/inquirer/news/921/1049921/inquirer-confirms-apple-macbook-pros-have-nvidia-bad-bump-material" target="_blank"&gt;electron microscope pictures and spectrograph of the bump composition that says NVidia&lt;/a&gt; is not being transparent about the failing video chip problem.&lt;/p&gt;
&lt;p&gt;Does this just make you want to run out and buy one of these new units?&lt;/p&gt;
&lt;p&gt;Lest you think I'm switching back to PCs, these Macs are still way better than my last Dell D600 that required 4 complete overhauls for failed components in a 90 day period.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3243044825777462607?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3243044825777462607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3243044825777462607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3243044825777462607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3243044825777462607'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/12/macbook-pro-late-2008-laptop-in-bag.html' title='MacBook Pro (late 2008) &amp;quot;Hot Laptop In Bag&amp;quot; Troubles'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-2072187049848416758</id><published>2008-11-18T13:26:00.001-07:00</published><updated>2008-11-18T13:27:24.742-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>JCP Executive Commitee Results</title><content type='html'>&lt;p&gt;&lt;a href="http://www.jcpelection2008.org/jcp/overview" target="_blank"&gt;I applied this year to the EC elections of the JCP&lt;/a&gt; for a seat on the Java SE board. I &lt;a href="http://www.jcpelection2008.org/jcp/election_results" target="_blank"&gt;got 15.8% of the vote&lt;/a&gt;, but alas, did not win a seat. The &lt;a href="http://www.prnewswire.com/news/index_mail.shtml?ACCT=104&amp;amp;STORY=/www/story/11-18-2008/0004928225&amp;amp;EDATE=" target="_blank"&gt;PR release for this can be read here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Standard / Enterprise Edition Executive Committee&lt;br /&gt;&lt;/strong&gt;Number of eligible voters: 948&lt;br /&gt;
Percent voting members casting votes: 26.9%&lt;/p&gt;
&lt;p&gt;The top two members have been elected and will serve for the next three years.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Intel Corp. 46.4%&lt;br /&gt;
Keil, Werner 24.9%&lt;br /&gt;
McCullough, Matthew 15.8%&lt;br /&gt;
Tiwari, Shashank 12.7%&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-2072187049848416758?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/2072187049848416758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=2072187049848416758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2072187049848416758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2072187049848416758'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/11/jcp-executive-commitee-results.html' title='JCP Executive Commitee Results'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3572697590951561806</id><published>2008-11-18T10:49:00.000-07:00</published><updated>2008-11-18T13:12:19.798-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Other NFJS Denver Reviews</title><content type='html'>&lt;p&gt;Several other attendees, namely &lt;a href="http://www.augusttechgroup.com/tim/blog/2008/11/17/no-fluff-just-stuff-denver-fall-08-wrap/#comment-32" target="_blank"&gt;Tim Berglund&lt;/a&gt; and &lt;a href="http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/" target="_blank"&gt;Mike Brevoort&lt;/a&gt; took some excellent notes on the specific sessions they attended at &lt;a href="http://www.nofluffjuststuff.com" target="_blank"&gt;No Fluff Just Stuff&lt;/a&gt;. If you want a recap of the sessions so you can best choose what to attend when &lt;a href="http://www.nofluffjuststuff.com" target="_blank"&gt;NFJS hits your city&lt;/a&gt;, take a moment to read their summaries.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3572697590951561806?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3572697590951561806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3572697590951561806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3572697590951561806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3572697590951561806'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/11/other-nfjs-denver-reviews.html' title='Other NFJS Denver Reviews'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4028567157211338205</id><published>2008-11-17T07:44:00.001-07:00</published><updated>2008-11-17T08:28:50.803-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>No Fluff Just Stuff and Open Source in the Enterprise</title><content type='html'>&lt;p&gt;My attendance this weekend of the &lt;a href="http://www.nofluffjuststuff.com.com" target="_blank"&gt;NFJS tour&lt;/a&gt; in Denver, CO proved once again to be as valuable as ever. With a heavy penchant for Open Source and its rapid innovation, the speakers showcased technologies that weren't even on people's vocabulary lists just last year. And take note, these are not just technologies for the sake of technology. The speakers such as &lt;a href="http://kensipe.blogspot.com/" target="_blank"&gt;Ken Sipe&lt;/a&gt;, &lt;a href="http://www.agiledeveloper.com" target="_blank"&gt;Venkat Sumbramaniam&lt;/a&gt;, &lt;a href="http://thinkrelevance.com/" target="_blank"&gt;Stu Halloway&lt;/a&gt;, &lt;a href="http://memeagora.blogspot.com" target="_blank"&gt;Neal Ford&lt;/a&gt;, and more served out a steady stream of reasons why each new technology is a game-changer in its given space.&lt;/p&gt;
&lt;p&gt;A quick top 5 list of the best presentations (that I attended):&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Hacking, The Dark Arts by Ken Sipe&lt;/li&gt;

  &lt;li&gt;Towards an Evolutionary Design by Venkat Subramaniam&lt;/li&gt;

  &lt;li&gt;Git by Stu Halloway&lt;/li&gt;

  &lt;li&gt;Failing with 100% Test Coverage by Stu Halloway&lt;/li&gt;

  &lt;li&gt;Mylin by Brian Sam-Bodden&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have an opportunity to get your employer to purchase a seat for you to &lt;a href="http://www.nofluffjuststuff.com" target="_blank"&gt;attend a stop on the NFJS tour&lt;/a&gt;, do it. If you are self employed, then don't even think about not going. This is one of the best ROI's of any conference going today. As Ken Sipe said in his keynote address, you &lt;strong&gt;must&lt;/strong&gt; increase your networking, you &lt;strong&gt;must&lt;/strong&gt; increase your knowledge portfolio, and you &lt;strong&gt;must&lt;/strong&gt; continue to constantly change and improve as we IT professionals work in literally one of the most dynamic industry verticals in the world.&lt;/p&gt;
&lt;p&gt;A very interesting &lt;a href="http://www.informationweek.com/news/software/open_source/showArticle.jhtml?articleID=212002355" target="_blank"&gt;article from InformationWeek&lt;/a&gt; also touches on the impact of Open Source, like &lt;a href="http://www.terracotta.org" target="_blank"&gt;TerraCotta&lt;/a&gt; in the Enterprise. With so much Open Source presented at NFJS, one can't help but imagine the NFJS attendees are the drivers of this migration.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4028567157211338205?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4028567157211338205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4028567157211338205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4028567157211338205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4028567157211338205'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/11/no-fluff-just-stuff-and-open-source-in.html' title='No Fluff Just Stuff and Open Source in the Enterprise'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8863050741362178420</id><published>2008-10-31T09:44:00.001-06:00</published><updated>2008-10-31T09:44:49.870-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaFX'/><category scheme='http://www.blogger.com/atom/ns#' term='RIA'/><title type='text'>SwingX No Longer Funded</title><content type='html'>&lt;p&gt;Well, it looks like Swing continues to be a technology that has matured enough to be left out to pasture. In addition to the Swing team departures at Sun, the most recent related event is that &lt;a href="http://forums.java.net/jive/thread.jspa?messageID=313969" target="_blank"&gt;SwingX, one of my favorite libraries, has stopped being funded&lt;/a&gt;. I don't see this as a huge problem, as most applications are heading to the web nowadays unless they have a hugely compelling reason to be on the desktop (Development IDEs, CAD, Drawing, Graphics apps). JavaFX continues to be the also-ran in the RIA lineup against &lt;a href="http://www.adobe.com/products/flex/" target="_blank"&gt;Flex&lt;/a&gt; (forefront) and &lt;a href="http://silverlight.net/" target="_blank"&gt;Silverlight&lt;/a&gt; (2nd place).&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8863050741362178420?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8863050741362178420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8863050741362178420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8863050741362178420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8863050741362178420'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/10/swingx-no-longer-funded.html' title='SwingX No Longer Funded'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4392680011453373017</id><published>2008-10-17T23:07:00.001-06:00</published><updated>2008-10-17T23:07:40.226-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Open Source Survey Results</title><content type='html'>&lt;p&gt;A recent survey reveals the &lt;a href="http://ostatic.com/173587-blog/census-reveals-the-top-20-open-source-packages" target="_blank"&gt;top Open Source packages of 2008&lt;/a&gt;. I find it not at all surprising that &lt;a href="http://www.mozilla.org" target="_blank"&gt;Firefox&lt;/a&gt; tops the list and very interesting that &lt;a href="http://xerces.apache.org" target="_blank"&gt;Xerces&lt;/a&gt; cracks the top 3.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4392680011453373017?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4392680011453373017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4392680011453373017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4392680011453373017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4392680011453373017'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/10/open-source-survey-results.html' title='Open Source Survey Results'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-5857527329459440638</id><published>2008-10-17T23:03:00.001-06:00</published><updated>2008-10-17T23:03:15.465-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='DJUG'/><title type='text'>Ambient Ideas on the iPhone</title><content type='html'>&lt;p&gt;&lt;a href="http://www.ambientideas.com" target="_blank"&gt;Ambient Ideas&lt;/a&gt; has officially been accepted into the &lt;a href="http://developer.apple.com/" target="_blank"&gt;iPhone Developer Program&lt;/a&gt;, meaning we can finally deploy beta software to actual handsets and completed products to the iTunes / iPhone Application Store. Keep an eye out for our upcoming presentations at &lt;a href="http://www.denverjug.org" target="_blank"&gt;DJUG&lt;/a&gt; on iPhone + Java Web Services integration.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm3.static.flickr.com/2177/2951152234_bdc725425f.jpg" width="480" height="164" alt="iPhone Developer Program - Ambient Ideas Accepted.png" /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-5857527329459440638?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/5857527329459440638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=5857527329459440638' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5857527329459440638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5857527329459440638'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/10/ambient-ideas-on-iphone.html' title='Ambient Ideas on the iPhone'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2177/2951152234_bdc725425f_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-7395952500677288934</id><published>2008-10-17T22:55:00.001-06:00</published><updated>2008-10-17T22:55:48.866-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='DOSUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Appcelerator at DOSUG</title><content type='html'>&lt;p&gt;&lt;a href="http://mattquinlan.blogspot.com" target="_blank"&gt;Matt Quinlan&lt;/a&gt; of &lt;a href="http://www.appcelerator.org" target="_blank"&gt;Appcelerator&lt;/a&gt; visited the &lt;a href="http://www.denveropensource.org" target="_blank"&gt;Denver Open Source Users Group&lt;/a&gt; for our October meeting and gave a great presentation on how Appcelerator is an abstraction layer from your choice of backend web service provider (Java, PHP, ruby, .Net) and also provides a tag library that gives you access to the best of Prototype, JQuery (coming soon), YUI, Scriptaculous, and more.&lt;/p&gt;
&lt;p&gt;The best part is how easy it is to try out Appcelerator. &lt;a href="http://try.appcelerator.org" target="_blank"&gt;Just load up this page and start playing&lt;/a&gt;. You'll be hooked in no time and ready to &lt;a href="http://www.appcelerator.org/download" target="_blank"&gt;download the SDK installer for your platform of choice&lt;/a&gt;.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-7395952500677288934?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/7395952500677288934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=7395952500677288934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7395952500677288934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7395952500677288934'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/10/appcelerator-at-dosug.html' title='Appcelerator at DOSUG'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3298729009554846750</id><published>2008-10-17T22:40:00.000-06:00</published><updated>2008-10-17T22:41:12.550-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='DJUG'/><title type='text'>DJUG October - Ken Sipe on JMX, Spring, MBeans</title><content type='html'>&lt;p&gt;Attended &lt;a href="http://www.denverjug.org" target="_blank"&gt;DJUG's October meeting&lt;/a&gt;, which was sponsored by &lt;a href="http://www.nofluffjuststuff.com" target="_blank"&gt;NFJS&lt;/a&gt; and had &lt;a href="http://kensipe.blogspot.com/" target="_blank"&gt;Ken Sipe&lt;/a&gt; as presenter. He gave two presentations, the first on &lt;a href="http://www.springframework.org" target="_blank"&gt;Spring&lt;/a&gt; and JMX, the second on &lt;a href="http://delicious.com/kensipe/7habits" target="_blank"&gt;7 Habits of Highly Productive Developers&lt;/a&gt;. The room was packed. It was standing room only.&lt;/p&gt;
&lt;p&gt;JMX Presentation Takeaways:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;You need to use &lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/jmx/tutorial/essential.html" target="_blank"&gt;JMX&lt;/a&gt;.&lt;/li&gt;

  &lt;li&gt;Would you fly a plane without instruments?&lt;/li&gt;

  &lt;li&gt;Then why fly software without JMX data on its in-flight status?&lt;/li&gt;

  &lt;li&gt;Java 5 and above has MBean server.&lt;/li&gt;

  &lt;li&gt;JSR 3 (literally, the 3rd JSR ever) = JMX&lt;/li&gt;

  &lt;li&gt;JDK 6 -&amp;gt; Even Simpler -&amp;gt; &lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/ManagementFactory.html" target="_blank"&gt;GetPlatformMBeanServer()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3158/2950268987_17c9f4b6d9.jpg" width="360" height="480" alt="IMG_0004.JPG" /&gt; &lt;img src="http://farm3.static.flickr.com/2067/2951122074_dd94d1eff1.jpg" width="480" height="360" alt="IMG_0005.JPG" /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3298729009554846750?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3298729009554846750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3298729009554846750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3298729009554846750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3298729009554846750'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/10/djug-october-ken-sipe-on-jmx-spring.html' title='DJUG October - Ken Sipe on JMX, Spring, MBeans'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3158/2950268987_17c9f4b6d9_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1335819896146047701</id><published>2008-10-17T22:01:00.000-06:00</published><updated>2008-10-17T22:13:18.879-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cellphone'/><category scheme='http://www.blogger.com/atom/ns#' term='Wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Drivers'/><category scheme='http://www.blogger.com/atom/ns#' term='Verizon'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOS'/><title type='text'>Verizon Pantech UM175 Mobile Wireless Card on Mac OS 10.5 with Native
Drivers</title><content type='html'>&lt;p&gt;&lt;a href="http://discussions.apple.com/thread.jspa?messageID=7927262&amp;amp;#7927262" target="_blank"&gt;Apple has a discussion forum going on this very card&lt;/a&gt;, but I couldn't make heads or tails of which was actually the right solution. So, I present to you here, screenshots and a walkthrough of the setup.&lt;/p&gt;
&lt;p&gt;1) Purchase a Verizon Pantech UM175, one of the latest USB wireless cards from Verizon. Should be able to get it for $0 with a 2 year contract.&lt;/p&gt;
&lt;p&gt;2) Plug it in. Mac OSX 10.5 Leopard will detect it as a modem&lt;/p&gt;
&lt;p&gt;3) Change the settings per the screenshots below&lt;br /&gt;
3.a) Vendor: Sierra, Model: CDMA, Dial Mode: Ignore dial tone when dialing&lt;br /&gt;
3.b) Telephone Number: #777, Account Name: YOURNUMBER@vzw3g.com, Password: VZW&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;img src="http://farm4.static.flickr.com/3036/2951065358_9cca915b67.jpg" width="480" height="345" alt="Verizon Wireless Card Settings 2.png" /&gt; &lt;img src="http://farm4.static.flickr.com/3293/2950212307_1a6fcff801.jpg" width="480" height="395" alt="Verizon Wireless Card Settings 1.png" /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1335819896146047701?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1335819896146047701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1335819896146047701' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1335819896146047701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1335819896146047701'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/10/verizon-pantech-um175-mobile-wireless.html' title='Verizon Pantech UM175 Mobile Wireless Card on Mac OS 10.5 with Native&#xA;Drivers'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3036/2951065358_9cca915b67_t.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-283326226067936378</id><published>2008-09-28T16:22:00.001-06:00</published><updated>2008-09-28T16:22:33.370-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><title type='text'>JQuery bridges the Open Source / Java / Microsoft Divide</title><content type='html'>&lt;p&gt;&lt;a href="http://jquery.com/" target="_blank"&gt;JQuery is, in my opinion, the most unique JavaScript libraries&lt;/a&gt; in terms of being able to modify content on-the-fly. One such incredibly useful example that I'm able to apply often, is adding PDF icons and _newwindow targets to all URLs with .PDF as an extension on all pages in a site without ever touching the source of the pages themselves, but rather just on one common include page.&lt;/p&gt;
&lt;p&gt;Well, this library just got a &lt;a href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/" target="_blank"&gt;major injection of Redmond steroids&lt;/a&gt; by the &lt;a href="http://ajaxian.com/archives/jquery-finds-its-way-into-microsoft-and-nokia-stacks/trackback" target="_blank"&gt;announcement, by way of Dion Almaer of Google, that Microsoft will be adding it to its standard development platform&lt;/a&gt;. Scott Guthrie has a &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank"&gt;quick demo of IntelliSense integration with JQuery&lt;/a&gt; in the ASP.NET toolset.&lt;/p&gt;
&lt;p&gt;It's neat to see technologies such as &lt;a href="http://www.hibernate.org" target="_blank"&gt;Hibernate&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Object-relational_mapping" target="_blank"&gt;ORM&lt;/a&gt;, and &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx" target="_blank"&gt;Linq&lt;/a&gt; or actual implementations, such a JQuery in this case, span the borders to what I consider the three development realms - Open Source, Java and Microsoft.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-283326226067936378?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/283326226067936378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=283326226067936378' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/283326226067936378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/283326226067936378'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/09/jquery-bridges-open-source-java.html' title='JQuery bridges the Open Source / Java / Microsoft Divide'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-2010493954111746994</id><published>2008-09-22T21:53:00.001-06:00</published><updated>2008-09-22T21:53:44.595-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Business'/><title type='text'>Be nice. But not too nice.</title><content type='html'>&lt;p&gt;&lt;a href="http://cio.com/article/print/450066" target="_blank"&gt;An article I picked up about "being too nice"&lt;/a&gt; from &lt;a href="http://www.augusttechgroup.com" target="_blank"&gt;Tim Berglund&lt;/a&gt; that was published on &lt;a href="http://CIO.com" target="_blank"&gt;CIO.com&lt;/a&gt; hits a very sensitive spot. It indicates that being too nice, when it means compromising your position and ideas, is a career risk. When you step back and think about it, that makes perfect sense. I have taken a cautious few steps towards the solidarity-of-position, even when it poses small endangerments of conflict. I am already starting to see some of the benefits. But this is truly a fine line to walk. &lt;a href="http://itmanagement.earthweb.com/features/article.php/12297_3771746_2" target="_blank"&gt;Don't take it too far.&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-2010493954111746994?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/2010493954111746994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=2010493954111746994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2010493954111746994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2010493954111746994'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/09/be-nice-but-not-too-nice.html' title='Be nice. But not too nice.'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-738973663415417980</id><published>2008-09-20T15:19:00.001-06:00</published><updated>2008-09-23T20:32:28.310-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Spring Framework License Change</title><content type='html'>&lt;p&gt;I'm hearing a huge buzz across the blogsphere about the &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=50727" target="_blank"&gt;maintenance changes to the Spring Framework&lt;/a&gt;. It appears at &lt;a href="http://www.springsource.com/node/558" target="_blank"&gt;first interpretation that only the first three bug fix drops will be community available&lt;/a&gt;, and the others will be available only to paying enterprise customers.&lt;/p&gt;
&lt;p&gt;Perhaps more concerning and going hand in hand with this is that largely only internal Spring employees are working on the codebase fixing bugs. If the community were allowed to be more involved, perhaps this strange commercialization positioning would not be necessary. Lastly, the venerable &lt;a href="http://raibledesigns.com/rd/entry/re_how_open_source_is" target="_blank"&gt;Matt Raible can't even get access to the Spring 3.0 source code&lt;/a&gt;. If it is an open source product, where's the source?&lt;/p&gt;
&lt;p&gt;Please offer your comments and feedback. I'm interested to hear even more opinions on this change.&lt;/p&gt;
&lt;p&gt;Update 2008-09-23 3:30 PM: &lt;a href="http://java.dzone.com/articles/springsource-and-lost-tag" target="_blank"&gt;More buzz on this at DZone.com from some respected names.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Update 2008-09-23 8:30 PM: And yet another &lt;a href="http://www.springsource.com/products/enterprise/maintenancepolicy/faq" target="_blank"&gt;update from the SpringSource team directly in the form of an FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-738973663415417980?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/738973663415417980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=738973663415417980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/738973663415417980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/738973663415417980'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/09/spring-framework-license-change.html' title='Spring Framework License Change'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6840288600029475269</id><published>2008-09-08T21:55:00.001-06:00</published><updated>2008-09-08T21:55:44.017-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOS'/><title type='text'>Setting up Sun's VisualVM on Mac OSX</title><content type='html'>&lt;p&gt;There is a relatively new tool out from Sun call the &lt;a href="https://visualvm.dev.java.net" target="_blank"&gt;VisualVM&lt;/a&gt;. It is, in short a super new version of &lt;a href="http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html" target="_blank"&gt;JConsole&lt;/a&gt;. In fact, it even runs all the extensions you have previously written for JConsole. Nice job Sun! You can profile, &lt;a href="https://visualvm.dev.java.net/features.html" target="_blank"&gt;take snapshots, and watch in real time, threads, memory usage&lt;/a&gt;, and so much more of any local or remote java application.&lt;/p&gt;
&lt;p&gt;Now, it takes a little bit of a trick to get it to work on Mac OSX. You need the &lt;a href="http://developer.apple.com/java/download/" target="_blank"&gt;latest Java 6 JDK installed,&lt;/a&gt; though it can monitor apps running on JRE 1.4 through JRE 7.0. But if you don't set it as your default JDK, which can cause many apps such as &lt;a href="http://www.eclipse.org" target="_blank"&gt;Eclipse&lt;/a&gt; and &lt;a href="http://cyberduck.ch/" target="_blank"&gt;CyberDuck&lt;/a&gt; to stop working, then you'll need to use the --jdkhome option when launching visualvm. I set up a shell script to do so. The full invocation is as follows:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;visualvm --jdkhome /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There is even a &lt;a href="https://visualvm.dev.java.net/gettingstarted.html" target="_blank"&gt;getting started guide&lt;/a&gt; that shows you the basic features. And if video is more your style, there's a &lt;a href="http://java.sun.com/javaone/sf/media_shell.jsp?id=FRdamp267672" target="_blank"&gt;vodcast that shows off this new app&lt;/a&gt; as well. If you still can't get enough of this new tool, there's a neat &lt;a href="http://java.dzone.com/news/visual-vm-free-and-open-source" target="_blank"&gt;DZone overview written by Geertjan Wielenga&lt;/a&gt;.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6840288600029475269?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6840288600029475269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6840288600029475269' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6840288600029475269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6840288600029475269'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/09/setting-up-sun-visualvm-on-mac-osx.html' title='Setting up Sun&amp;#39;s VisualVM on Mac OSX'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1439274854219175776</id><published>2008-09-03T22:03:00.001-06:00</published><updated>2008-09-03T22:03:41.740-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='WebBrowser'/><title type='text'>DNS, Tertiary SubDomain Tricks for Web 2.0 Apps</title><content type='html'>&lt;p&gt;Never really thought about this approach before, but if your DNS * record for your domain maps to your web server, you can use just a servlet filter or whatever other technology you want to use to capture custom tertiary level subdomains URLs and redirect to a user-specific page.&lt;/p&gt;
&lt;p&gt;For example, if you want http://matthew.ambientideas.com to take your users to a user-profile page, there's no need to wire in your DNS to your software app, constantly updating it per user. You just capture the URL, parse out the tertiary domain part, and redirect, say, to http://ambientideas.com/users/?user=matthew. Easy, straightforward and cool. Kudos to &lt;a href="http://ambientideas.com/advertising/index.html" target="_blank"&gt;Jordan&lt;/a&gt; for the first implementation for an &lt;a href="http://www.realated.com" target="_blank"&gt;upcoming app&lt;/a&gt; from Ambient Ideas.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1439274854219175776?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1439274854219175776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1439274854219175776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1439274854219175776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1439274854219175776'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/09/dns-tertiary-subdomain-tricks-for-web.html' title='DNS, Tertiary SubDomain Tricks for Web 2.0 Apps'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4304065553937835040</id><published>2008-09-01T17:24:00.001-06:00</published><updated>2008-09-01T17:24:22.187-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='WebBrowser'/><title type='text'>Ubiquity - QuickSilver Like Plugin for Firefox</title><content type='html'>&lt;p&gt;If you like &lt;a href="http://blacktree.com/?quicksilver" target="_blank"&gt;Quicksilver for your Mac&lt;/a&gt;, then you should check out &lt;a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/" target="_blank"&gt;Ubiquity for Firefox.&lt;/a&gt; Same concept, with the power extended to the browser. &lt;a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/" target="_blank"&gt;Video review available.&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4304065553937835040?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4304065553937835040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4304065553937835040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4304065553937835040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4304065553937835040'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/09/ubiquity-quicksilver-like-plugin-for.html' title='Ubiquity - QuickSilver Like Plugin for Firefox'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3926958721937633969</id><published>2008-09-01T09:48:00.001-06:00</published><updated>2008-09-01T09:48:43.424-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Monty Python Investigates Erlang Programming</title><content type='html'>&lt;p&gt;Got this link from my Twitter network, and haven't laughed this hard in weeks. If the crew of Monty Python all got together and decided to do a &lt;a href="http://video.google.com/videoplay?docid=-5830318882717959520" target="_blank"&gt;show about the programming language Erlang, this is what it would look like&lt;/a&gt;. 80's haircuts (70's?), DTS telephone systems, and prolific use of Sun Workstations with X Windows in 16 colors (or is it monochrome?). &lt;a href="http://www.erlang.org/" target="_blank"&gt;Erlang has a bit more modern web site now&lt;/a&gt;, but the video image will forever be emblazoned in my mind.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3926958721937633969?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3926958721937633969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3926958721937633969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3926958721937633969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3926958721937633969'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/09/monty-python-investigates-erlang.html' title='Monty Python Investigates Erlang Programming'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6735940431443652231</id><published>2008-08-29T19:05:00.001-06:00</published><updated>2008-08-29T19:05:24.552-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Useful Apple Mac OSX Java Mailing Lists</title><content type='html'>&lt;p&gt;The official &lt;a href="http://lists.apple.com/archives/java-dev/2008/" target="_blank"&gt;Apple Mac OSX Java Mailing List Archives&lt;/a&gt; contain some excellent technical insights, with replies directly back from Apple in many cases. There's even one great particular article in question that explains &lt;a href="http://lists.apple.com/archives/java-dev/2008/Aug/msg00181.html" target="_blank"&gt;what in the world the A folder is in your /System/Library/Frameworks/JavaVM directory.&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6735940431443652231?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6735940431443652231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6735940431443652231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6735940431443652231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6735940431443652231'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/08/useful-apple-mac-osx-java-mailing-lists.html' title='Useful Apple Mac OSX Java Mailing Lists'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4851998948475047640</id><published>2008-08-12T21:53:00.001-06:00</published><updated>2008-08-12T21:53:43.951-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title type='text'>Neal Ford's Productive Programmer, 2nd Printing</title><content type='html'>&lt;p&gt;Neal Ford just &lt;a href="http://memeagora.blogspot.com/2008/08/in-praise-of-technical-reviewers.html" target="_blank"&gt;wrote a very generous post about the second printing of "The Productive Programmer"&lt;/a&gt;, a book I highly recommend and have encouraged many fellow developers to &lt;a href="http://softpro.stores.yahoo.net/info.html" target="_blank"&gt;go to SoftPro and purchase&lt;/a&gt;. He thanked the technical reviewers that contributed, including some of my acquaintances such as &lt;a href="http://www.denverjug.org/" target="_blank"&gt;Greg Ostravich of the Denver Java Users Group&lt;/a&gt; and &lt;a href="http://www.agiledeveloper.com/blog/" target="_blank"&gt;Venkat Subramaniam&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The section, to be generously added to the 2nd printing reads:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="http://memeagora.blogspot.com/2008/08/in-praise-of-technical-reviewers.html" target="_blank"&gt;"A special thanks goes out to the technical reviewers for this book. Without their hard work and dedication, this book would suffer lots of silly mistakes and confusing explanations. Thanks to Greg Ostravich (who has reviewed every book of mine for the last few years and gotten no recognition, unfortunately), Venkat Subramaniam, David Bock, Nathaniel Schutta, and Matthew McCullough."&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4851998948475047640?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4851998948475047640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4851998948475047640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4851998948475047640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4851998948475047640'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/08/neal-ford-productive-programmer-2nd.html' title='Neal Ford&amp;#39;s Productive Programmer, 2nd Printing'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-5579660615554613446</id><published>2008-07-18T09:43:00.000-06:00</published><updated>2008-07-18T10:18:07.764-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Petcha Kucha - Should Open Source User Groups Use This?</title><content type='html'>&lt;img src="http://farm4.static.flickr.com/3065/2680299006_d5f5eee4a3.jpg" width="480" height="314" alt="200807180940.jpg" style="float:right;" /&gt;
&lt;p&gt;When running an &lt;a href="http://www.denveropensource.org" target="_blank"&gt;Open Source Group&lt;/a&gt; such as the &lt;a href="http://www.denveropensource.org" target="_blank"&gt;Denver Open Source Users Group&lt;/a&gt; or attending another &lt;a href="http://denverjug.org" target="_blank"&gt;technical Users Group&lt;/a&gt;, I find folks engaged 50% and falling asleep wanting the presenter to just finish up the other 50% of the time. It is painful to be in audience when wanting such a speaker to wrap up. It is ever worse when occasionally you ARE that speaker they want to wrap up.&lt;/p&gt;
&lt;p&gt;Maybe it's time we rehearse so well for the "quick dips" into some technologies that we &lt;a href="http://www.wired.com/techbiz/media/magazine/15-09/st_pechakucha" target="_blank"&gt;could present them in Petcha Kucha format&lt;/a&gt;. This is a &lt;a href="http://www.pecha-kucha.org/" target="_blank"&gt;type of presentation that lasts exactly 400 seconds with each slide on screen for exactly 20 seconds&lt;/a&gt;. It requires impressive rehearsal and great density of information. Code demos could come as an after-session roundtable or just be downloaded at home by the audience, as they wouldn't really fit into such a format.&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;What do you think? Leave a comment. Your input will be fashioned into &lt;a href="http://www.denveropensource.org/upcoming" target="_blank"&gt;DOSUG's future meetings&lt;/a&gt;.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-5579660615554613446?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/5579660615554613446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=5579660615554613446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5579660615554613446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5579660615554613446'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/07/petch-kucha-should-open-source-user.html' title='Petcha Kucha - Should Open Source User Groups Use This?'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3065/2680299006_d5f5eee4a3_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-5471205263553285661</id><published>2008-07-17T09:46:00.001-06:00</published><updated>2008-07-17T09:46:55.005-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Business'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Too Much Reliance on Software</title><content type='html'>&lt;p&gt;When we &lt;a href="http://adweek.blogs.com/adfreak/2008/07/then-well-grab.html" target="_blank"&gt;begin to rely on software wholly, utterly, and without any safety-net or reservation&lt;/a&gt;, we end up with signs like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3007/2677560776_0e3215da91_o.jpg" width="370" height="278" alt="200807170935.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;If the machines were capable of laughing at us, they certainly would. Maybe we should reconsider the importance of &lt;a href="http://www.amazon.com/Whole-New-Mind-Right-Brainers-Future/dp/1594481717/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1216308904&amp;amp;sr=8-1" target="_blank"&gt;intelligence, skill, and creativity&lt;/a&gt; in the humans working with the computers as well.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-5471205263553285661?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/5471205263553285661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=5471205263553285661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5471205263553285661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5471205263553285661'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/07/too-much-reliance-on-software.html' title='Too Much Reliance on Software'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8878612393520305743</id><published>2008-07-10T08:05:00.000-06:00</published><updated>2008-07-10T08:06:17.273-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Neal Ford's "The Productive Programmer" book is now available</title><content type='html'>&lt;p&gt;I am excited to tell you that I received one of the very first copies of the O'Reilly &lt;a href="http://www.amazon.com/Productive-Programmer-Neal-Ford/dp/0596519788" target="_blank"&gt;Neal Ford book, "The Productive Programmer"&lt;/a&gt;, as a result of being one of the tech editors (&lt;a href="http://www.linkedin.com/pub/1/06b/432" target="_blank"&gt;Greg Ostravich&lt;/a&gt;, &lt;a href="http://www.agiledeveloper.com/blog/" target="_blank"&gt;Venkat Subramaniam&lt;/a&gt;). The book is excellent and I am proud to have contributed effort to it. Neal was a great guy to work with -- responsive, cordial, and appreciative.&lt;/p&gt;
&lt;p&gt;This book offers some neat, language agnostic tips and tricks for your daily work life as a programmer. You'll find yourself incorporating no fewer than 5 of these the first day after you've picked up the book. It offers suggestions such as keyboard shortcut "helper apps" and ways to create shell scripts to stop you from performing repetitive tasks manually. Grab a copy from your &lt;a href="http://softpro.stores.yahoo.net/" target="_blank"&gt;local bookstore&lt;/a&gt; as soon as you can.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Productive-Programmer-Neal-Ford/dp/0596519788" target="_blank"&gt;&lt;img src="http://farm4.static.flickr.com/3054/2655923748_b7c93da19e_o.gif" width="180" height="236" alt="Neal Ford, Productive Programmer.gif" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8878612393520305743?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8878612393520305743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8878612393520305743' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8878612393520305743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8878612393520305743'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/07/neal-ford-productive-programmer-book-is.html' title='Neal Ford&amp;#39;s &amp;quot;The Productive Programmer&amp;quot; book is now available'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-7332244723847337403</id><published>2008-06-30T10:26:00.001-06:00</published><updated>2008-06-30T10:26:40.092-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Collaboration in Eclipse</title><content type='html'>&lt;p&gt;There's an amazing new version of the &lt;a href="http://www.eclipse.org/ecf/" target="_blank"&gt;ECF plugin for Eclipse&lt;/a&gt; that allows for &lt;a href="http://wiki.eclipse.org/DocShare_Plugin" target="_blank"&gt;remote Collaboration in Eclipse&lt;/a&gt; via the XMPP (Jabber, GTalk). Just log in to your GTalk account and start sharing editors with a friend.&lt;/p&gt;
&lt;p&gt;You can &lt;a href="http://www.vimeo.com/1195398?pg=embed&amp;amp;sec=1195398" target="_blank"&gt;see this in action in this video&lt;/a&gt;.&lt;/p&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_377163950061450" name="doc_377163950061450" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;
  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=3587749&amp;amp;access_key=key-sqx1qdwes5mr3yimwki&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true" /&gt;
  &lt;param name="quality" value="high" /&gt;
  &lt;param name="play" value="true" /&gt;
  &lt;param name="loop" value="true" /&gt;
  &lt;param name="scale" value="showall" /&gt;
  &lt;param name="wmode" value="opaque" /&gt;
  &lt;param name="devicefont" value="false" /&gt;
  &lt;param name="bgcolor" value="#ffffff" /&gt;
  &lt;param name="menu" value="true" /&gt;
  &lt;param name="allowFullScreen" value="true" /&gt;
  &lt;param name="allowScriptAccess" value="always" /&gt;
  &lt;param name="salign" value="" /&gt;

  &lt;p&gt;&lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=3587749&amp;amp;access_key=key-sqx1qdwes5mr3yimwki&amp;amp;page=&amp;amp;version=1&amp;amp;auto_size=true" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#FFFFFF" name="doc_377163950061450_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%" style="width: 100%; height: 200px;" /&gt;&lt;/p&gt;
&lt;/object&gt;&lt;br /&gt;
&lt;div style="font-size:10px;text-align:center;width:100%"&gt;
  &lt;a href="http://www.scribd.com/doc/3587749/Wiring-Hacker-Synapses"&gt;Wiring Hacker Synapses&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a Document to Scribd&lt;/a&gt;
&lt;/div&gt;
&lt;div style="display:none"&gt;
  Read this document on Scribd: &lt;a href="http://www.scribd.com/doc/3587749/Wiring-Hacker-Synapses"&gt;Wiring Hacker Synapses&lt;/a&gt;
&lt;/div&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-7332244723847337403?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/7332244723847337403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=7332244723847337403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7332244723847337403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7332244723847337403'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/06/collaboration-in-eclipse.html' title='Collaboration in Eclipse'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-2982367113919872472</id><published>2008-06-11T09:50:00.001-06:00</published><updated>2008-06-11T09:50:33.315-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='Business'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>QuickSilver for Linux</title><content type='html'>&lt;p&gt;There's a new Linux competitor to &lt;a href="http://www.blacktree.com/" target="_blank"&gt;QuickSilver&lt;/a&gt; in town. It's called &lt;a href="http://blog.davebsd.com/2008/06/09/gnome-do-05/" target="_blank"&gt;GNOME Do, and it just reached version 0.5&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It offers the same quick keyboard shortcut commands that QuickSilver does. Noun-verb-directobject goodness abounds.&lt;/p&gt;
&lt;p&gt;If you've never used QuickSilver on the Mac, use it for a week, and you'll never be the same again. The keyboard takes on a whole new power.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3053/2570843048_92b2921b06.jpg" width="480" height="348" alt="GNOMEDoScreenshot.jpg" /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-2982367113919872472?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/2982367113919872472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=2982367113919872472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2982367113919872472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2982367113919872472'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/06/quicksilver-for-linux.html' title='QuickSilver for Linux'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3053/2570843048_92b2921b06_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6295620289120056097</id><published>2008-06-08T23:36:00.001-06:00</published><updated>2008-06-10T14:14:39.639-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business'/><category scheme='http://www.blogger.com/atom/ns#' term='Marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><title type='text'>Seth Godin Books</title><content type='html'>&lt;p&gt;Here are &lt;a href="http://sethgodin.com/sg/books.asp" target="_blank"&gt;some excellent books&lt;/a&gt; on marketing by &lt;a href="http://en.wikipedia.org/wiki/Seth_Godin" target="_blank"&gt;Seth Godin&lt;/a&gt; that I'm also done reading. At first you'll say, "I'm not a marketer, so why would I read these?" One quick read through these books will change forever how you look at things that are marketed to you every day. It will make you a cynic about most ads, and also give you an entirely new vantage point on whatever you job is and how you "market" it to other people, perhaps without even knowing it. He also has &lt;a href="http://sethgodin.com/sg/" target="_blank"&gt;a web site&lt;/a&gt; and more useful / &lt;a href="http://sethgodin.typepad.com/" target="_blank"&gt;very insightful blog&lt;/a&gt;. Even his v&lt;a href="http://video.google.com/videoplay?docid=-6909078385965257294" target="_blank"&gt;ideo of his talk at Google is pretty good&lt;/a&gt;, though a bit longer than it should have been. I love his story about, "&lt;span style="font-style: italic;"&gt;If cat food were being marketed to cats, it would come in one flavor, MOUSE! Instead, it is being marketed to people so it comes in flavors like Grilled Salmon. Because of course, cats in the wild start open fires and GRILL the salmon they catch in the river.&lt;/span&gt;"&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;&lt;a href="http://sethgodin.com/sg/books.asp"&gt;&lt;img src="http://farm4.static.flickr.com/3181/2563894680_0aeb7de9a7_o.jpg" width="125" height="155" alt="bigmoo.jpg" /&gt; &lt;img src="http://farm4.static.flickr.com/3139/2563894886_f1a56706a6_o.jpg" width="125" height="155" alt="small.jpg" /&gt; &lt;img src="http://farm4.static.flickr.com/3118/2563069717_8a83a0597b_o.jpg" width="125" height="155" alt="meatball.jpg" /&gt; &lt;img src="http://farm4.static.flickr.com/3167/2563069961_41ef6c2080_o.jpg" width="125" height="155" alt="dip.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6295620289120056097?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6295620289120056097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6295620289120056097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6295620289120056097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6295620289120056097'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/06/seth-godin-books.html' title='Seth Godin Books'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8435017305585738425</id><published>2008-06-08T13:43:00.001-06:00</published><updated>2008-06-10T14:09:37.251-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Work'/><category scheme='http://www.blogger.com/atom/ns#' term='Ergonomics'/><category scheme='http://www.blogger.com/atom/ns#' term='Exercise'/><title type='text'>High Tech Way to Walk to Work</title><content type='html'>&lt;p&gt;I can hardly believe &lt;a href="http://www.details-worktools.com/product_details.php?pid=740" target="_blank"&gt;this work/exercise unit is truly in production&lt;/a&gt;, but sure enough, it is...&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3137/2561422647_a5ca6fcceb.jpg" width="420" height="480" alt="A7TG660606H.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;And although I can hear you runners out there getting excited, you will be dismayed that it maxes out at 2.0MPH. They are trying to be &lt;a href="http://www.youtube.com/v/miqCAUVZBbI" target="_blank"&gt;hip marketers with this YouTube video&lt;/a&gt;, but somehow, I just can't see any of my coworkers crying out for this, nor getting an employer to pay for it.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8435017305585738425?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8435017305585738425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8435017305585738425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8435017305585738425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8435017305585738425'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/06/high-tech-way-to-walk-to-work.html' title='High Tech Way to Walk to Work'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3137/2561422647_a5ca6fcceb_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3985005830391471470</id><published>2008-03-23T15:54:00.001-06:00</published><updated>2008-03-23T15:54:17.376-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>No More JFrames</title><content type='html'>&lt;p&gt;I just read an interesting overview of the JSR-296 Framework. It basically takes away the mundane setup of your main application frame. I think many individuals have been using Eclipse RCP and NetBeans Application Framework to accomplish this in much too heavyweight a fashion. JSR-296 provides a very simple and lightweight way to restore application UI state, set up the main application title, and set the default close operation.&lt;/p&gt;
&lt;p&gt;Read more about it at &lt;a href="http://java.dzone.com/news/jsr-296-end-jframe" target="_blank"&gt;this DZone article by Geertjan Wielenga&lt;/a&gt;.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3985005830391471470?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3985005830391471470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3985005830391471470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3985005830391471470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3985005830391471470'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/03/no-more-jframes.html' title='No More JFrames'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8947814254088303735</id><published>2008-02-25T09:38:00.001-07:00</published><updated>2008-02-25T09:38:56.442-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>JavaFX Script Presentation at NCAR</title><content type='html'>&lt;p&gt;Last Wednesday I had the privilege of being invited to speak about JavaFX at the &lt;a href="http://www.ncar.ucar.edu/" target="_blank"&gt;National Center for Atmospheric Research&lt;/a&gt; in Boulder, CO. It was a great audience with some very interesting questions. Thanks to Ken Kim and his team for a great speaking experience.&lt;/p&gt;
&lt;p&gt;Also, thanks to these folks, the &lt;a href="http://www.slideshare.net/programr/java-fx-script-from-takeoff-to-cruising-altitude/" target="_blank"&gt;JavaFX Script slides I was presenting&lt;/a&gt; got awarded "Slideshow of the Day" on slideshare.net for a second time in just one week. These slides were the most viewed and downloaded of any slides on the site. Very exciting.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8947814254088303735?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8947814254088303735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8947814254088303735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8947814254088303735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8947814254088303735'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/02/javafx-script-presentation-at-ncar.html' title='JavaFX Script Presentation at NCAR'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-355569644256170237</id><published>2008-02-13T13:33:00.002-07:00</published><updated>2008-06-10T14:39:01.778-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>JavaFX Presentation with Jim Weaver</title><content type='html'>&lt;p&gt;&lt;a href="http://learnjavafx.typepad.com/weblog/2008/02/great-javafx-pr.html" target="_blank"&gt;Jim Weaver gave an excellent talk on JavaFX Script last night at the Boulder Java Users Group&lt;/a&gt;. He had deep code examples and showcased his NFJS-style winner-wheel example. Always a hit with the audience. His blog has entries about it can be found &lt;a href="http://java.dzone.com/articles/excellent-javafx-script-presen" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://learnjavafx.typepad.com/weblog/2008/02/great-javafx-pr.html" target="_blank"&gt;here&lt;/a&gt;. I did a little intro talk prior to that on JavaFX Script as well. &lt;a href="http://www.slideshare.net/programr/java-fx-script-from-takeoff-to-cruising-altitude" target="_blank"&gt;My slides can be found at slideshare.net&lt;/a&gt; along with some of our other past DOSUG presentations as well (just search for DOSUG in the search box).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-355569644256170237?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/355569644256170237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=355569644256170237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/355569644256170237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/355569644256170237'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/02/javafx-presentation-with-jim-weaver.html' title='JavaFX Presentation with Jim Weaver'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-2310760285685131484</id><published>2008-02-10T11:59:00.001-07:00</published><updated>2008-02-10T11:59:15.016-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='MacOS'/><title type='text'>How To Remove Stuck Sidebar Items in MacOS</title><content type='html'>&lt;p&gt;Well, here's one of those things that isn't Mac-easy on Mac OS. Say you create a sidebar link to a server. Say you no longer have access to that server. Whoa. Can't click on it and remove it. Just keeps popping up an error message. Well, it turns out you have to &lt;a href="http://sonicchicken.net/blog/wordpress/20070328/mac-osx-finder-the-volume-cannot-be-found/" target="_blank"&gt;follow these instructions&lt;/a&gt; and edit the &lt;span style="font-style: italic;"&gt;~/Library/Preferences/com.apple.sidebarlists.plist&lt;/span&gt; file to purge the offending link. Come on! You have to be kidding Steve, right?&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-2310760285685131484?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/2310760285685131484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=2310760285685131484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2310760285685131484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2310760285685131484'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/02/how-to-remove-stuck-sidebar-items-in.html' title='How To Remove Stuck Sidebar Items in MacOS'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1990358148824031969</id><published>2008-01-23T09:52:00.001-07:00</published><updated>2008-01-23T09:52:41.299-07:00</updated><title type='text'>JavaFX: Can You Do This?</title><content type='html'>&lt;p&gt;I saw a blog post today that showcased some amazing effects in flash for a user interface. I wonder if this can be easily accomplished using Java 3d and JavaFX in concert?&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.screenvader.com/root.html" target="_blank"&gt;Check out the Screenvader User Interface&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1990358148824031969?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1990358148824031969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1990358148824031969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1990358148824031969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1990358148824031969'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/01/javafx-can-you-do-this.html' title='JavaFX: Can You Do This?'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-917238558676000444</id><published>2008-01-21T23:14:00.001-07:00</published><updated>2008-01-21T23:14:52.981-07:00</updated><title type='text'>Upcoming JavaFX Script Presentation</title><content type='html'>&lt;p&gt;Just a quick heads up. &lt;a href="https://openjfx.dev.java.net/events.html" target="_blank"&gt;My intro and Jim Weaver's advanced JavaFX Script presentations&lt;/a&gt; will be in &lt;a href="http://www.boulderjug.org/viewJugMain.jsp?jugId=1" target="_blank"&gt;Boulder on Feb 12&lt;/a&gt; and &lt;a href="http://www.denverjug.org/index.jsp" target="_blank"&gt;Denver on Feb 13&lt;/a&gt;. Come and learn about the latest language from the folks at Sun.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-917238558676000444?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/917238558676000444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=917238558676000444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/917238558676000444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/917238558676000444'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/01/upcoming-javafx-script-presentation.html' title='Upcoming JavaFX Script Presentation'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-7175704695688450170</id><published>2008-01-02T22:52:00.000-07:00</published><updated>2008-01-02T22:53:14.669-07:00</updated><title type='text'>MsgFiler and OmniFocus Help Me Cut the eMail Clutter Fast</title><content type='html'>&lt;p&gt;Every once in a while, I post about productivity apps. This time, I've got two that you should go and purchase, now. If you don't you are simply wasting valuable time.&lt;/p&gt;
&lt;p&gt;The first is &lt;a href="http://www.tow.com/msgfiler/" target="_blank"&gt;MsgFiler&lt;/a&gt;. I've been using it every since I switch to Mac. With a CMD-9 keystroke, it lets you move messages into folders anywhere in your mail folders hierarchy. And trust me, I have a huge hierarchy. I received and sent a little over 28,000 retainable (doesn't count junk or ones I threw out) messages this year. So I need a tool like this, desperately. And Adam Tow, the developer, even takes the time to email back to his users; a rarity these days. &lt;a href="http://www.tow.com/2007/12/27/msgfiler-20-released/" target="_blank"&gt;He just rewrote the app for Leopard in Cocoa&lt;/a&gt;, and it is amazingly fast (perhaps 5x its previous speed).&lt;/p&gt;
&lt;p&gt;The second product is a GTD implementation called &lt;a href="http://www.omnigroup.com/applications/omnifocus/" target="_blank"&gt;OmniFocus&lt;/a&gt;. It is a task manager on steroids for those of us trying to live the GTD way of life. Couldn't live without it now. I'm hooked.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-7175704695688450170?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/7175704695688450170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=7175704695688450170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7175704695688450170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7175704695688450170'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2008/01/msgfiler-and-omnifocus-help-me-cut.html' title='MsgFiler and OmniFocus Help Me Cut the eMail Clutter Fast'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4742514863438366189</id><published>2007-12-16T12:51:00.001-07:00</published><updated>2007-12-16T12:51:30.870-07:00</updated><title type='text'>Better Presentations</title><content type='html'>&lt;p&gt;I've been gathering some really cool links to giving better presentations. If you are an occasional presenter, take a look at the following:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.slideshare.net/thecroaker/death-by-powerpoint" target="_blank"&gt;Death by Powerpoint&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;a href="http://www.43folders.com/2007/08/23/better-presentations" target="_blank"&gt;Better Presentations&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;a href="http://www.43folders.com/2005/11/18/presentation-tips" target="_blank"&gt;Presentation Tips&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;a href="http://www.ted.com/index.php/talks/view/id/187" target="_blank"&gt;TED Talks&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;a href="http://lifehacker.com/software/geek-to-live/rock-your-presentation-with-the-right-tools-and-apps-304418.php" target="_blank"&gt;Rock Your Presentation with the Right Tools and Apps&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4742514863438366189?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4742514863438366189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4742514863438366189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4742514863438366189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4742514863438366189'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/12/better-presentations.html' title='Better Presentations'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8701283375096274517</id><published>2007-12-16T12:43:00.001-07:00</published><updated>2007-12-16T12:43:50.028-07:00</updated><title type='text'>No Fluff Just Stuff Conference</title><content type='html'>&lt;p&gt;Several weeks ago, I attended one of the best conferences on software development ever. It was pure learning, from truly knowledgeable speakers. If you've never been before, attend a &lt;a href="http://www.nofluffjuststuff.com" target="_blank"&gt;No Fluff Just Stuff&lt;/a&gt; conference as soon as you can! Jay Zimmerman has even indicated that he'll be able to send a NFJS speaker to the &lt;a href="http://www.denveropensource.org" target="_blank"&gt;Denver Open Source Users Group&lt;/a&gt; this coming year. Can't wait!&lt;br /&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8701283375096274517?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8701283375096274517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8701283375096274517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8701283375096274517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8701283375096274517'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/12/no-fluff-just-stuff-conference.html' title='No Fluff Just Stuff Conference'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6152248158493402028</id><published>2007-12-16T10:13:00.001-07:00</published><updated>2007-12-16T10:13:26.582-07:00</updated><title type='text'>Eclipse Plugin Management</title><content type='html'>&lt;p&gt;&lt;a href="http://www.grok-programming.com/2007/12/13/how-to-manage-your-eclipse-add-ons-painlessly/" target="_blank"&gt;How to Manage Your Eclipse Add-Ons Painlessly&lt;/a&gt; is an interesting summary of the three tools that can be used to efficiently manage Eclipse plugins. Those are, in no special order, &lt;a href="http://www.poweredbypulse.com/" target="_blank"&gt;Pulse&lt;/a&gt;, &lt;a href="http://www.yoxos.com/en/home.html" target="_blank"&gt;Yoxos&lt;/a&gt;, and &lt;a href="http://www.easyeclipse.org/site/home/" target="_blank"&gt;EasyEclipse&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Stop manually managing your plugins and download one of the tools/distributions listed above.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6152248158493402028?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6152248158493402028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6152248158493402028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6152248158493402028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6152248158493402028'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/12/eclipse-plugin-management.html' title='Eclipse Plugin Management'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4258585404735643699</id><published>2007-11-25T19:23:00.000-07:00</published><updated>2008-01-21T23:07:26.176-07:00</updated><title type='text'>Denver Open Source Users Group: Aggregated Java Conferences, Events
Calendars</title><content type='html'>Denver Open Source User Group Members,&lt;div&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;Several folks, including Jay Zimmerman, have recently mentioned that &lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;someone&lt;/span&gt; should put together an aggregated calendar of Java events on both the local (Denver) and International level. &amp;nbsp;Well, I've taken the time this weekend to make a first stab at both.&lt;br&gt;&lt;div&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;I've just published two webcal calendars (works with Outlook, Mac iCal, many other client apps) that will aid all of us in expanding our exposure to programming related events.&lt;/div&gt;&lt;div&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;The first calendar is for &lt;b style=""&gt;Java Conferences on the National and International level&lt;/b&gt;, and can be added to Outlook or iCal via:&lt;/div&gt;&lt;div&gt;&lt;a href="webcal://icalx.com/public/programr/Java%20Conferences%20&amp;amp;%20Speaking%20Events.ics"&gt;webcal://icalx.com/public/programr/Java%20Conferences%20&amp;amp;%20Speaking%20Events.ics&lt;/a&gt;&lt;/div&gt;&lt;div&gt;and has an awesome web-viewer as well:&lt;/div&gt;&lt;div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "&gt;&lt;a href="http://www.icalx.com/html/programr/year.php?cal=Java+Conferences+%26+Speaking+Events&amp;amp;getdate=20071125"&gt;http://www.icalx.com/html/programr/year.php?cal=Java+Conferences+%26+Speaking+Events&amp;amp;getdate=20071125&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;and the second is for &lt;b&gt;Denver and Front Range Java-related events&lt;/b&gt;:&lt;/div&gt;&lt;div&gt;&lt;a href="webcal://icalx.com/public/programr/Denver%20Developer%20Events.ics"&gt;webcal://icalx.com/public/programr/Denver%20Developer%20Events.ics&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;and also has a web-viewer:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "&gt;&lt;a href="http://www.icalx.com/html/programr/year.php?cal=Denver+Developer+Events&amp;amp;getdate=20071125"&gt;http://www.icalx.com/html/programr/year.php?cal=Denver+Developer+Events&amp;amp;getdate=20071125&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;If you notice any discrepancies, please let me know right away and I'll correct them for the benefit of all. &amp;nbsp;If you also see any events that should be added, send those my way.&lt;/div&gt;&lt;div&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;I will also be posting these links for future reference at the DOSUG web site:&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#144FAE"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;a href="http://www.denveropensource.org/presenterresources"&gt;http://www.denveropensource.org/presenterresources&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br class="webkit-block-placeholder"&gt;&lt;/div&gt;&lt;div&gt;Comments, feedback, and corrections welcome. &amp;nbsp;Send them to&amp;nbsp;&lt;a href="mailto:matthewm@ambientideas.com"&gt;matthewm@ambientideas.com&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Sincerely,&lt;/div&gt;&lt;div&gt;Matthew McCullough&lt;/div&gt;&lt;div&gt;Managing Partner&lt;/div&gt;&lt;div&gt;Ambient Ideas, LLC&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ambientideas.com"&gt;http://www.ambientideas.com&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4258585404735643699?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4258585404735643699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4258585404735643699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4258585404735643699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4258585404735643699'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/11/denver-open-source-users-group.html' title='Denver Open Source Users Group: Aggregated Java Conferences, Events&#xA;Calendars'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1140978980494818679</id><published>2007-11-21T14:05:00.001-07:00</published><updated>2007-11-21T14:05:15.477-07:00</updated><title type='text'>VMWare Importer</title><content type='html'>&lt;blockquote cite="chrome://flock/content/shelf/notesSidebar.xul"&gt;&lt;a href="http://feeds.tuaw.com/%7Er/weblogsinc/tuaw/%7E3/184186867/"&gt;VMware Importer makes migrating from Parallels a snap&lt;/a&gt;&lt;div class="entry-author"&gt;&lt;span class="entry-source-title-parent"&gt;from &lt;a href="/reader/view/feed/http%3A%2F%2Ffeeds.tuaw.com%2Fweblogsinc%2Ftuaw" class="entry-source-title" target="_blank"&gt;The Unofficial Apple Weblog (TUAW)&lt;/a&gt;&lt;/span&gt; by &lt;span class="entry-author-name"&gt;Mat Lu

&lt;/span&gt;&lt;/div&gt;&lt;div class="entry-body"&gt;&lt;div id=""&gt;&lt;ins class="item-body"&gt;&lt;div&gt;&lt;img alt="" src="http://www.blogsmithmedia.com/www.tuaw.com/media/2007/11/vmwareimporter111307.jpg" border="1" hspace="4" vspace="4" /&gt;

In &lt;a target="_blank" href="http://www.tuaw.com/2007/11/12/vmware-fusion-1-1-released/"&gt;our post&lt;/a&gt; yesterday on VMware Fusion 1.1 we mentioned that VMware had also included a beta of their &lt;a target="_blank" href="http://www.vmware.com/download/fusion/importer_tool.html"&gt;new Importer application&lt;/a&gt;. However, after using it tonight, I thought it was worth a separate post of its own, because it makes migrating from Parallels to Fusion incredibly easy. The amazing thing is that I converted an old Parallels 2.5 WinXP VM which Parallel's 3 itself had not been able to import successfully!

Basically, when you start the Importer it gives you a window in which to drop the Parallels .pvs file (just Win2000, WinXP, Win2003 Server or Vista at this time). It asks you where you want to save the new Virtual Machine and a few minutes later, boom it starts right up in Fusion -- no muss and no fuss.&lt;h6 style="border: 0pt none ; margin: 0pt; padding: 0pt; clear: both; font-size: 1px;"&gt;&lt;/h6&gt;&lt;/div&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;ins class="item-body"&gt;
&lt;/ins&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1140978980494818679?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1140978980494818679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1140978980494818679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1140978980494818679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1140978980494818679'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/11/vmware-importer.html' title='VMWare Importer'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1980995123260025971</id><published>2007-11-21T13:40:00.001-07:00</published><updated>2007-11-21T13:40:19.710-07:00</updated><title type='text'>Flock Browser</title><content type='html'>I've just discovered the &lt;a href="http://www.flock.com"&gt;Flock web browser&lt;/a&gt;, based on Firefox.&amp;nbsp; It is like taken to the next level.&amp;nbsp; If you use Blogging tools, and Social Bookmarks, you must check out this browser!&amp;nbsp; It offers convenience-tools (built-in) for all kinds of Social Web activities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1980995123260025971?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1980995123260025971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1980995123260025971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1980995123260025971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1980995123260025971'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/11/flock-browser.html' title='Flock Browser'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-7611450548877560039</id><published>2007-11-18T18:14:00.001-07:00</published><updated>2007-11-18T18:14:24.334-07:00</updated><title type='text'>Groovy for Java Developers</title><content type='html'>&lt;div &gt; This is a great VideoCast of a Groovy introduction.  I liked Scott Davis' better at No Fluff Just Stuff (&lt;a href="http://www.nofluffjuststuff.com" rel="nofollow" target="_blank"&gt;www.nofluffjuststuff.com&lt;/a&gt;), but this is still a good one. &lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="margin: 12px 0px; font-family: arial; color: #333333; background: #ffffff; border: solid 4px #e5e5e5; width: 100%; clear: left;"&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;!-- BEGIN_CLIP_CONTENT ID:ED8DA1F6-2E77-40E9-9C4B-F949F2D9428A:0 CLIPMARKS.COM --&gt;&lt;div class="CM_CTB_Content_Wrap" style="margin: 0px; padding: 0px;background-color: #ffffff;"&gt;&lt;div style="border-bottom: solid 1px #dcdcdc; white-space: nowrap; margin-bottom: 8px; background-color: #eeeeee ;background-image: url(http://clipmarks.com/images/source-bg.gif); background-repeat: repeat-x; height: 24px; line-height: 24px; vertical-align: middle; padding-bottom: 4px; color: #666666; font-size: 10px;" &gt;&lt;a href="http://clipmarks.com/clip-to-blog/" title="clipmarks' clip-to-blog"&gt;&lt;img src="http://content.clipmarks.com/blog_icon/9a555c32-38f3-41ae-861c-f54313ba931a/ED8DA1F6-2E77-40E9-9C4B-F949F2D9428A/" alt="" width="19" height="19" border="0" style="vertical-align: middle; margin: 0px 4px; display: inline; border: none; float:none;" /&gt;&lt;/a&gt;clipped from &lt;a title="http://www.theserverside.com/news/thread.tss?thread_id=47576" href="http://www.theserverside.com/news/thread.tss?thread_id=47576" style="font-size: 11px;"&gt;www.theserverside.com&lt;/a&gt;&lt;/div&gt;&lt;blockquote style="text-align: left; padding: 0px 8px; margin: 4px 0px 8px 0px; background: transparent; border: none;" cite="http://www.theserverside.com/news/thread.tss?thread_id=47576"&gt;&lt;table background="undefined" bgcolor=""&gt;&lt;tr&gt;&lt;TD colspan="2"&gt;&lt;H1&gt;Jeff Brown on Groovy for Java Developers&lt;/H1&gt;
&lt;DIV class="iteminfo"&gt;
        Posted by:
        &lt;A title="view Nitin Bharti's recent threads ..." href="http://www.theserverside.com/user/userthreads.tss?user_id=107747"&gt;
         Nitin Bharti
        &lt;/A&gt;
        on
        November 14, 2007
&lt;A href="javascript:alert('This link contains javascript. Please visit the clip source to follow this link.');" target="_self" title=" Add this page to digg.com bookmarks "&gt;DIGG&lt;/A&gt;
&lt;/DIV&gt;&lt;DIV&gt;
Groovy, an agile dynamic language for the Java platform, has a Java-like syntax along with many features inspired by languages like Python, Ruby and Smalltalk. &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;In this presentation, recorded at the recent Grails Exchange event in London (organized by &lt;A href="http://www.skillsmatter.com/"&gt;Skills Matter&lt;/A&gt;), Jeff Brown, core member of the Grails development team, demonstrates the power of Groovy through many interactive examples and explains how Java developers can leverage that power in their enterprise applications.&lt;/DIV&gt;&lt;BR /&gt;&lt;a href="http://video.google.com/googleplayer.swf?docId=5667345668214393071&amp;hl=en-GB" class="abp-objtab-03467860773103154 visible ontop" title="Click here to block this object with Adblock Plus"&gt;&lt;/a&gt; &lt;BR /&gt;&lt;BR /&gt;The slides for this presentation can be &lt;A href="http://www.grails-exchange.com/files/JeffBrown%20-%20GroovyForJavaProgrammers_GrailsExchange.pdf"&gt;downloaded here&lt;/A&gt; (1.57 MB)

&lt;/TD&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="margin: 0px 6px 6px 4px;"&gt;&lt;table style="font-size: 11px;border-spacing: 0px;padding: 0px;" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tr&gt;&lt;td style="background:transparent;border-width:0px;padding:0px;"&gt;&amp;nbsp;&lt;/td&gt;&lt;td align="right" style="background:transparent;border-width:0px;padding:0px;width:107px" width="107"&gt;&lt;a href="http://clipmarks.com/share/ED8DA1F6-2E77-40E9-9C4B-F949F2D9428A/blog/" title="blog or email this clip"&gt;&lt;img src="http://content5.clipmarks.com/images/c2b-foot.png" border="0" alt="blog it" width="107" height="17" style="border-width:0px;padding:0px;margin:0px;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;!-- END_CLIP_CONTENT --&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-7611450548877560039?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/7611450548877560039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=7611450548877560039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7611450548877560039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7611450548877560039'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/11/groovy-for-java-developers.html' title='Groovy for Java Developers'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-128089594826304926</id><published>2007-11-05T19:07:00.000-07:00</published><updated>2007-11-07T08:02:03.738-07:00</updated><title type='text'>Developer Salaries Increase Double Digits</title><content type='html'>Developer salaries as reported by Robert Half Technology have  &lt;br&gt;increased in the double digits and .Net and Java programmers are  &lt;br&gt;earning a 10% premium over their LAMP counterparts.&lt;p&gt;&lt;a href="http://www.regdeveloper.co.uk/2007/11/02/2008_salaries/"&gt;http://www.regdeveloper.co.uk/2007/11/02/2008_salaries/&lt;/a&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-128089594826304926?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/128089594826304926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=128089594826304926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/128089594826304926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/128089594826304926'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/11/developer-salaries-increase-double.html' title='Developer Salaries Increase Double Digits'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1811186351391349063</id><published>2007-10-28T12:06:00.000-06:00</published><updated>2007-10-28T12:07:10.083-06:00</updated><title type='text'>$25000 Prize Awarded for Simplest Turing Machine Ever</title><content type='html'>&lt;p&gt;Math, as related to Computer Science is highly intriguing to me. &lt;a href="http://blog.wolfram.com/2007/10/the_prize_is_won_the_simplest.html" target="_blank"&gt;This article especially caught my eye&lt;/a&gt;, since I saw the &lt;a href="http://blog.wolfram.com/2007/05/today_we_put_a_prize_on_a_smal.html" target="_blank"&gt;challenge posted some five months ago&lt;/a&gt;. Well, in an untypically fast timeframe for math solutions, Alex Smith from Birmingham, UK has proved that this machine is indeed universal -- the simplest (first?) 2,3 Turing Machine ever proven to be so.&lt;/p&gt;
&lt;p&gt;Just two states and three colors. It is almost a puzzle in and of itself that such a simple machine can be universal. This is a nice rebuttal to the academics that state most innovative solutions in mathematics have already been done by our predecessors. Alex Smith has quite negated that statement through his proof.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1811186351391349063?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1811186351391349063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1811186351391349063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1811186351391349063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1811186351391349063'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/25000-prize-awarded-for-simplest-turing.html' title='$25000 Prize Awarded for Simplest Turing Machine Ever'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-43667332964110336</id><published>2007-10-26T17:08:00.001-06:00</published><updated>2007-10-26T17:08:59.207-06:00</updated><title type='text'>Open Source Billing Solutions</title><content type='html'>&lt;p&gt;I was asked about Open Source Billing solutions via email today. It had been a while since I had reviewed this space, but a few minutes in my deli.cio.us network revealed some interesting titles:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.sisd.com/freeside/" target="_blank"&gt;Freeside billing and trouble ticketing&lt;/a&gt; (primarily geared towards ISPs)&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.citrusdb.org/" target="_blank"&gt;CitrusDB&lt;/a&gt; (CRM, Customer Care, and Billing for ISPs, Consulting and Telcos)&lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.jbilling.com/" target="_blank"&gt;JBilling&lt;/a&gt; (I'm pleased to see that one is based on the JEE platform)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al, Scott, I hope you find these products beneficial. Let us know which one you settle with and I'll post your review here.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-43667332964110336?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/43667332964110336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=43667332964110336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/43667332964110336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/43667332964110336'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/open-source-billing-solutions.html' title='Open Source Billing Solutions'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4607843655746961511</id><published>2007-10-25T20:50:00.001-06:00</published><updated>2007-10-26T16:05:44.542-06:00</updated><title type='text'>No Java 6 On Mac Ever?</title><content type='html'>&lt;p&gt;We're hearing rumors that there might not ever be &lt;a href="http://wolfpaulus.com/journal/java/java6osx.html" target="_blank"&gt;Java 6 on Mac&lt;/a&gt;. Say it isn't so!&lt;/p&gt;UPDATE: Well folks, it isn't looking good. &lt;a href="http://www.cafeaulait.org/#October_25_2007_33323" target="_blank"&gt;Leopard is Java 5&lt;/a&gt; and the Java 6 preview has been ripped down from the Mac Developer site. What gives Steve? Some of your biggest fans are Java coders. If you can't get a final Java 6 to them soon we'll be the laughing stock and will have to resort back to any platform that does delivery Java 6.

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4607843655746961511?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4607843655746961511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4607843655746961511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4607843655746961511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4607843655746961511'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/no-java-6-on-mac-ever.html' title='No Java 6 On Mac Ever?'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3361525842261497520</id><published>2007-10-25T07:29:00.000-06:00</published><updated>2007-10-25T07:30:03.479-06:00</updated><title type='text'>A Better Java Collections Library from Google</title><content type='html'>&lt;p&gt;I'm working on a project that is going to need extreme performance capabilities, as well as some unique libraries. Of course, any good Open Source practitioner should do some searching and check their &lt;a href="http://del.icio.us/network/programr" target="_blank"&gt;deli.cio.us network's bookmarks&lt;/a&gt; before writing their own library. I stumbled across the &lt;a href="http://code.google.com/p/google-collections/" target="_blank"&gt;Google Collections library&lt;/a&gt; and an &lt;a href="http://www.javalobby.org/articles/google-collections/" target="_blank"&gt;article that interviews the authors&lt;/a&gt;. This exactly fits the bill. The Google Collections library offers such nice-to-haves as Multimap with a sensible interface (e.g. calling multimap.put(bar, baz) rather than building up a list first). Here's &lt;a href="http://publicobject.com/2007/09/series-recap-coding-in-small-with.html" target="_blank"&gt;some code from another related Google Collections series of articles&lt;/a&gt; to show the before-and-after benefits:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Map&amp;lt;Salesperson, List&amp;lt;Sale&amp;gt;&amp;gt; map = new Hashmap&amp;lt;SalesPerson, List&amp;lt;Sale&amp;gt;&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
public void makeSale(Salesperson salesPerson, Sale sale) {&lt;br /&gt;
List&amp;lt;Sale&amp;gt; sales = map.get(salesPerson);&lt;br /&gt;
if (sales == null) {&lt;br /&gt;
sales = new ArrayList&amp;lt;Sale&amp;gt;();&lt;br /&gt;
map.put(salesPerson, sales);&lt;br /&gt;
}&lt;br /&gt;
sales.add(sale);&lt;br /&gt;
}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Multimap&amp;lt;Salesperson, Sale&amp;gt; multimap = new ArrayListMultimap&amp;lt;Salesperson,Sale&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
public void makeSale(Salesperson salesPerson, Sale sale) {&lt;br /&gt;
multimap.put(salesperson, sale);&lt;br /&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3361525842261497520?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3361525842261497520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3361525842261497520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3361525842261497520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3361525842261497520'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/better-java-collections-library-from.html' title='A Better Java Collections Library from Google'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6709054775924763932</id><published>2007-10-24T09:11:00.001-06:00</published><updated>2007-10-24T09:11:43.487-06:00</updated><title type='text'>Jobs, Sponsors, and more presenters at DOSUG</title><content type='html'>&lt;p&gt;The momentum at the &lt;a href="http://www.denveropensource.org" target="_blank"&gt;Denver Open Source Users Group&lt;/a&gt; is really growing. We have three new sponsor companies, including &lt;a href="http://www.atlassian.com" target="_blank"&gt;Atlassian&lt;/a&gt; and &lt;a href="http://www.rht.com" target="_blank"&gt;Robert Half Technology&lt;/a&gt;. 35 folks showed up at the &lt;a href="http://www.denveropensource.org/94" target="_blank"&gt;last meeting&lt;/a&gt; and we've got &lt;a href="http://www.denveropensource.org/96" target="_blank"&gt;4 more presenters&lt;/a&gt; on board for the coming months. We even have new prizes: more books, shirts, and other graciously donated items such as an &lt;a href="http://www.jetbrains.com" target="_blank"&gt;IntelliJ IDEA 7 license&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The talk about &lt;a href="http://tech.groups.yahoo.com/group/denveropensource/files/2007-10/" target="_blank"&gt;Grid Computing&lt;/a&gt; and &lt;a href="http://tech.groups.yahoo.com/group/denveropensource/files/2007-10/" target="_blank"&gt;Apache Commons Configuration&lt;/a&gt; were well received.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6709054775924763932?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6709054775924763932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6709054775924763932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6709054775924763932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6709054775924763932'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/jobs-sponsors-and-more-presenters-at.html' title='Jobs, Sponsors, and more presenters at DOSUG'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6995557427955501976</id><published>2007-10-24T09:01:00.001-06:00</published><updated>2007-10-24T09:01:54.304-06:00</updated><title type='text'>Please, Don't Unit Test GUIs</title><content type='html'>&lt;p&gt;I'm on the side of thinking that believes companies spend way too much money unit testing GUIs when their business logic (their real value, most of the time) hasn't even got great JUnit coverage. I'm not completely against testing GUIs, but let's get our priorities straight -- make sure the business logic is tested first, then we'll talk about the UI. This developer &lt;a href="http://www.regdeveloper.co.uk/2007/10/22/gui_unit_testing/" target="_blank"&gt;has an article that shares some of the same sentiments&lt;/a&gt; and even mentions how &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=25355" target="_blank"&gt;Martin Fowler has frequent "Don'ts" but then leaves it to the user to track them down&lt;/a&gt;.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6995557427955501976?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6995557427955501976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6995557427955501976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6995557427955501976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6995557427955501976'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/please-don-unit-test-guis.html' title='Please, Don&amp;#39;t Unit Test GUIs'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6188885897635897863</id><published>2007-10-24T08:58:00.001-06:00</published><updated>2007-10-24T08:58:16.893-06:00</updated><title type='text'>Social Bookmarking Explained</title><content type='html'>&lt;p&gt;Here's a &lt;a href="http://video.yahoo.com/video/play?vid=1155622&amp;amp;fr=yvmtf" target="_blank"&gt;quick video&lt;/a&gt; explaining to the uninitiated how &lt;a href="http://en.wikipedia.org/wiki/Social_bookmarking" target="_blank"&gt;Social Bookmarking&lt;/a&gt; works. For folks thinking that bookmarks in IE or Firefox are good enough, this is an excellent tool for convincing them otherwise.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6188885897635897863?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6188885897635897863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6188885897635897863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6188885897635897863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6188885897635897863'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/social-bookmarking-explained.html' title='Social Bookmarking Explained'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1178295253390899435</id><published>2007-10-16T07:33:00.001-06:00</published><updated>2007-10-16T07:35:27.689-06:00</updated><title type='text'>Present like Steve, Not like Bill</title><content type='html'>Jordan over at &lt;a href="http://www.ambientideasphotography.com"&gt;Ambient Ideas Photography&lt;/a&gt; sent me a &lt;a href="http://www.presentationzen.com/presentationzen/2007/09/steve-bill-redu.html"&gt;unique article that contrasts and compares Bill Gates' and Steve Jobs' presentation styles&lt;/a&gt;.  One is brief, the other is wordy.  One uses minimalistic slides, the other writes prolifically in slides.  Whom would you rather listen to?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1178295253390899435?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1178295253390899435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1178295253390899435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1178295253390899435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1178295253390899435'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/present-like-steve-not-like-bill.html' title='Present like Steve, Not like Bill'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-7692357440256186297</id><published>2007-10-15T09:00:00.000-06:00</published><updated>2007-10-15T09:01:57.948-06:00</updated><title type='text'>Check In With Clients To Avoid Problems</title><content type='html'>Lifehacker has an excellent but short point.  &lt;a href="http://lifehacker.com/software/communication/check-in-with-clients-to-avoid-problems-309488.php"&gt;Keep in touch with clients on a weekly basis&lt;/a&gt; to smooth the relationship and keep on top of what they need done and what they see as priorities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-7692357440256186297?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/7692357440256186297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=7692357440256186297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7692357440256186297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7692357440256186297'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/check-in-with-clients-to-avoid-problems.html' title='Check In With Clients To Avoid Problems'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4733804268733808135</id><published>2007-10-15T08:21:00.000-06:00</published><updated>2007-10-15T08:26:21.473-06:00</updated><title type='text'>10 Absolute Nos in Consulting For Web Design</title><content type='html'>Samuel makes the excellent point that we all need to be reminded of.  Some "yes" answers in web design lead only to a bad experience for both developer and client.  So it is best to consistently say no to these dangerous questions, such as "can I pay for all the work at the end of the project?"

Read             &lt;a href="http://www.wakeuplater.com/freelance-lessons/10-absolute-nos-for-freelancers.aspx"&gt;10 Absolute "No's!" for Freelancers&lt;/a&gt; at the Wake Up Later blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4733804268733808135?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4733804268733808135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4733804268733808135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4733804268733808135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4733804268733808135'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/10-absolute-nos-in-consulting-for-web.html' title='10 Absolute Nos in Consulting For Web Design'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-9033523313600842050</id><published>2007-10-14T20:25:00.000-06:00</published><updated>2007-10-14T20:28:51.341-06:00</updated><title type='text'>A Programmer On Crete</title><content type='html'>I never thought I would see the day when a famous software developer lived on &lt;a href="http://en.wikipedia.org/wiki/Crete"&gt;the same island of Crete, Greece&lt;/a&gt; that I grew up on.  It is remote, and still had a 1950s switchboard telephone control system when I was there in the late 1980s.  But then again, to each his own.  This is &lt;a href="http://java.sun.com/developer/technicalArticles/Interviews/community/kabutz_qa.html"&gt;an excellent article from Java Champion, Heinz Kabutz on becoming a better programmer&lt;/a&gt; through a few (albeit rather basic) suggestions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-9033523313600842050?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/9033523313600842050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=9033523313600842050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/9033523313600842050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/9033523313600842050'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/programmer-on-crete.html' title='A Programmer On Crete'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3222999146226345027</id><published>2007-10-14T17:15:00.000-06:00</published><updated>2007-10-16T07:52:20.936-06:00</updated><title type='text'>Scalability Research</title><content type='html'>&lt;p&gt;I'm doing a presentation at the &lt;a href="http://www.denveropensource.org/" target="_blank"&gt;Denver Open Source Users Group&lt;/a&gt; on Thursday and thought I'd post some of my research here. If you aren't signed up to the &lt;a href="http://groups.yahoo.com/group/denveropensource" target="_blank"&gt;Yahoo Group for DOSUG&lt;/a&gt; hop over and do it so that you get our monthly meeting annoucements.&lt;/p&gt;&lt;p&gt;Scalability research links:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.infoq.com/vendorcontent/show.action?vcr=174" target="_blank"&gt;The Scalability Revolution: From Dead End to Open Road&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.infoq.com/news/2007/10/java-grids" target="_blank"&gt;Grid Technologies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.infoq.com/news/2007/10/top-ten-architecture-mistakes" target="_blank"&gt;Software Architecture Mistakes&lt;/a&gt;
  &lt;br/&gt;"Start considering performance and scalability early, create performance models to try to predict key performance metrics and spot bottlenecks and get stuck into some practical proof-of-concept work as your design ideas are forming. This will all help to increase confidence that there aren’t any performance and scalability demons lurking in your design."-Eoin Woods, enterprise architect at UBS Investment Bank.
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.infoq.com/vendorcontent/show.action?vcr=183" target="_blank" title="Untitled"&gt;High-Performance, Scalable Applications on Amazon EC2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;taxonomyName=storage&amp;amp;articleId=9042440&amp;amp;taxonomyId=19&amp;amp;intsrc=kc_top" target="_blank"&gt;Google Can't Keep Up With User Space Consumption&lt;/a&gt;
  &lt;br/&gt;"Google claims that people are devouring capacity with photos and other attachments on its Gmail e-mail service faster than the company can add to it at its current pace"
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://highscalability.com/amazon-architecture" target="_blank"&gt;Amazon Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.royans.net/arch/2007/08/28/thoughts-on-scalability/" target="_blank"&gt;Scalable Web Architectures: Thoughts on Scalability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.shinetech.com/display/www/Getting+More+Grunt+with+Terracotta" target="_blank"&gt;Getting More Grunt with Terracotta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.royans.net/arch/2007/09/22/what-is-scalability/" target="_blank"&gt;What Is Scalability?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://javathink.blogspot.com/2007/10/reimplementing-rmi.html" target="_blank"&gt;Reimplementing RMI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://javaworkshop.blogspot.com/2007/09/let-us-see-how-we-can-do-this-with.html" target="_blank"&gt;Working with Terracotta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.terracotta.org/" target="_blank"&gt;Terracotta: Java Scalability Library
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gridgain.com/" target="_blank"&gt;GridGain: Java Grid Processing Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gigaspaces.com/" target="_blank"&gt;GigaSpaces: Extreme Computing Framework
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/browse.html?node=201590011" target="_blank"&gt;Amazon EC2: Cloud Comnputing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/browse.html?node=16427261" target="_blank"&gt;Amazon S3: Scalable Storage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Come on down for our Thursday 6:00pm Meeting in the Denver Tech Center Microsoft Offices and share your scalability experiences with the forum.&lt;/p&gt;&lt;a href="http://www.infoq.com/vendorcontent/show.action?vcr=174" target="_blank"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3222999146226345027?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3222999146226345027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3222999146226345027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3222999146226345027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3222999146226345027'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/scalability-research.html' title='Scalability Research'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-9148671481251715372</id><published>2007-10-12T09:19:00.000-06:00</published><updated>2007-10-12T09:21:56.065-06:00</updated><title type='text'>Is The Desktop Application Nearly Dead?</title><content type='html'>&lt;p&gt;In my consultant capacity, I am helping engineer several applications. One is a Desktop App that has been a Java Swing based application for about 4 years. On version 3.0, it was recommended to switch to a Web Based Application, and a proposal to reuse 80% of the infrastructure was put forward. But instead, the client chose to revamp the Swing app. I think this is an unwise choice, especially for the nature of this CRM application.&lt;/p&gt;
&lt;p&gt;The deployment and distribution costs of desktop apps are quickly becoming an unnecessary cost. Dietrich Kappe makes a &lt;a href="http://blogs.pathf.com/agileajax/2007/10/the-desktop-app.html"&gt;similar point here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;His list of reasons for choosing a desktop app over a web app are brief, and only three points in length:&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;1. It is unwise to expose the application to the outside world. Example: power plant management software.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;2. The application calls for integration with custom hardware or mobile devices. Example: scientific software that integrates with custom measurement devices.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;3. The application requires fine control of the underlying video/audio hardware. Example: first-person shooters.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-9148671481251715372?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/9148671481251715372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=9148671481251715372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/9148671481251715372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/9148671481251715372'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/is-desktop-application-nearly-dead.html' title='Is The Desktop Application Nearly Dead?'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1945241024312636590</id><published>2007-10-04T17:26:00.000-06:00</published><updated>2007-10-04T17:28:33.250-06:00</updated><title type='text'>Write clearer code by inverting your nesting</title><content type='html'>&lt;p&gt;Taylor Gautier has an excellent explanation of how to test your precoditions early in your method, fail FAST, and get out as early as possible. This is a key point that I strive to communicate in my consulting engagements, and leaves code that others can maintain so much more easily.&lt;/p&gt;
&lt;h3 class="post-title"&gt;&lt;a href="http://javathink.blogspot.com/2006/10/short-concise-and-readable-code-invert.html"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 16.25px; line-height: 17px;"&gt;Short, concise and readable code - invert your logic and stop nesting already!&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="post-body"&gt;
  &lt;p style=""&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;Have you ever heard this maxim:&lt;br style="" /&gt;
  &lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; font-style: italic; line-height: 16px;"&gt;"A method should have one and only one exit point"&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;
  Well, it couldn't be more wrong. The following are the attributes of a well written method; it should:&lt;br style="" /&gt;&lt;/span&gt;&lt;/p&gt;

  &lt;ul style=""&gt;
    &lt;li style=""&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;perform one and only one function,&lt;/span&gt;&lt;/li&gt;

    &lt;li style=""&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;be short and to the point,&lt;/span&gt;&lt;/li&gt;

    &lt;li style=""&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;be easy to read and understand,&lt;/span&gt;&lt;/li&gt;

    &lt;li style=""&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;and it should have a descriptive, accurate and concise name.&lt;/span&gt;&lt;/li&gt;
  &lt;/ul&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;Notice that none of these points says anything about how or where a method should exit. To write a clean, easy to read method, follow these guidelines:&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;/span&gt;

  &lt;ul style=""&gt;
    &lt;li style=""&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;follow a template. consistent flow is easier to read.&lt;/span&gt;&lt;/li&gt;

    &lt;li style=""&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;check your pre conditions early. If they fail, exit fast&lt;/span&gt;&lt;/li&gt;

    &lt;li style=""&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;nesting is bad. avoid it. invert your logic at every step of the way.&lt;/span&gt;&lt;/li&gt;
  &lt;/ul&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;First, the template:&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;pre style=""&gt;
&lt;span style="color: #333333; font-family: Courier; font-size: 10.5625px; line-height: 16px;"&gt;[return value] [method name](parameters)&lt;br style="" /&gt;[throws clause]&lt;br style="" /&gt;{&lt;br style="" /&gt;  [check pre conditions]&lt;br style="" /&gt;&lt;br style="" /&gt;  [core logic]&lt;br style="" /&gt;}&lt;br style="" /&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;Pretty simple, right? So what's this about invert your logic? Well have a look at the template up there. Do you see any nesting? Right....neither do I. So let me illustrate a common idiom, one that uses in particular the if/else if/else pattern and the single exit strategy:&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;pre style=""&gt;
&lt;span style="color: #333333; font-family: Courier; font-size: 10.5625px; line-height: 16px;"&gt;/**&lt;br style="" /&gt;* Returns the element at index&lt;br style="" /&gt;*/&lt;br style="" /&gt;public Object getElement(int index)&lt;br style="" /&gt;{&lt;br style="" /&gt;  Object theItem = null;&lt;br style="" /&gt;  boolean listError = false;&lt;br style="" /&gt;  boolean indexError = false;&lt;br style="" /&gt;&lt;br style="" /&gt;  if (list != null) {&lt;br style="" /&gt;    if (index &amp;gt; 0 &amp;amp;&amp;amp; index &amp;lt; list.size()) {&lt;br style="" /&gt;      theItem = list.elementAt(index);&lt;br style="" /&gt;    } else {&lt;br style="" /&gt;      indexError = true;&lt;br style="" /&gt;    }&lt;br style="" /&gt;  } else {&lt;br style="" /&gt;    listError = true;&lt;br style="" /&gt;  }&lt;br style="" /&gt;&lt;br style="" /&gt;  if (listError) {&lt;br style="" /&gt;    throw new Exception("Bad list");&lt;br style="" /&gt;  } else if (indexError) {&lt;br style="" /&gt;    throw new IndexOutOfBoundsException("Bad index");&lt;br style="" /&gt;  } else {&lt;br style="" /&gt;    return theItem;&lt;br style="" /&gt;  }&lt;br style="" /&gt;} &lt;/span&gt;
&lt;/pre&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;Wow, what a mouthful. And I didn't even put in a few while loops, case structures and other nonsense I usually see that ends up with code nested 4 and 6 levels deep. Let me rewrite that code up there making it match the pattern I suggested, inverting the logic, and then I will explain what I did.&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;pre style=""&gt;
&lt;span style="color: #333333; font-family: Courier; font-size: 10.5625px; line-height: 16px;"&gt;/**&lt;br style="" /&gt;* Returns the element at index&lt;br style="" /&gt;*/&lt;br style="" /&gt;public Object getElement(int index)&lt;br style="" /&gt;{&lt;br style="" /&gt;   if (list == null) {&lt;br style="" /&gt;       throw new Exception("Bad list");&lt;br style="" /&gt;   }&lt;br style="" /&gt;&lt;br style="" /&gt;   if (index &amp;lt; 0 || index &amp;gt;= list.size()) {&lt;br style="" /&gt;       throw new IndexOutOfBoundsException("Bad index");&lt;br style="" /&gt;   }&lt;br style="" /&gt;&lt;br style="" /&gt;   return list.elementAt(index);&lt;br style="" /&gt;}&lt;br style="" /&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;Remember when I said check your pre-conditions first, and exit fast. What this allows you to do is evaluate all of the conditions under which your method will&lt;/span&gt; &lt;span style="color: #333333; font-family: Verdana; font-size: 13px; font-style: italic; line-height: 16px;"&gt;fail&lt;/span&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;, and if you detect something amiss, handle it immediately. This strategy is flexible - if the pre-conditions for your class or your method change, you can add and substract the tests for those pre-conditions using this structure without having to modify surrounding code. The worst offender I see is always of the following pattern:&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;pre style=""&gt;
&lt;span style="color: #333333; font-family: Courier; font-size: 10.5625px; line-height: 16px;"&gt;if (condition_to_succeed_is_true) {&lt;br style="" /&gt;   do_something();&lt;br style="" /&gt;} else {&lt;br style="" /&gt;   do_error();&lt;br style="" /&gt;}&lt;br style="" /&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;The problem with this is that the reader of your code has to put the conditional test onto their mental stack while they digest what do_something() is doing. If do_something() happens to be long, or complicated, you'll probably blow the mental stack of the reader, forcing them to look at the condition again just to figure out why the do_error() is being done.&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;On the other hand, when you line up your pre-condition tests linearly, there is no mental stack, the reader simply processes each in turn, and then, when they are all done, they are able to process the real meat - the do_something() - part of your method without all the baggage from your pre-condition tests. So inverting your logic means taking the above test, inverting the condition, and writing it as:&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;pre style=""&gt;
&lt;span style="color: #333333; font-family: Courier; font-size: 10.5625px; line-height: 16px;"&gt;if (!condition_to_succeed_is_true) {&lt;br style="" /&gt;   do_error();&lt;br style="" /&gt;   return;&lt;br style="" /&gt;}&lt;br style="" /&gt;&lt;br style="" /&gt;do_something();&lt;br style="" /&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;So I hope you remember your CS classes and&lt;/span&gt;&lt;/span&gt; &lt;a href="http://en.wikipedia.org/wiki/De_Morgan_duality"&gt;&lt;span style="color: #336699; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;De Morgan's laws&lt;/span&gt;&lt;/a&gt; &lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;- I find coding like this makes me use them all the time.&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;There's one other benefit this strategy has, and that's when you are writing synchronized blocks. When you write a synchronized block, you absolutely must strive to perform as little work as is absolutely necessary inside the synchronized block.&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;Let's look at the problem we have when we use the normal pattern I described above, combined with synchronization -- the code now becomes:&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;pre style=""&gt;
&lt;span style="color: #333333; font-family: Courier; font-size: 10.5625px; line-height: 16px;"&gt;synchronized (lock) {&lt;br style="" /&gt;   if (condition_to_succeed_is_true) {&lt;br style="" /&gt;       do_something();&lt;br style="" /&gt;   } else {&lt;br style="" /&gt;       do_error();&lt;br style="" /&gt;   }&lt;br style="" /&gt;}&lt;br style="" /&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;Ugggh! There's no way, in Java, to release the lock before you perform do_something()! (Which we presume takes time and shouldn't be performed under lock). If you invert the logic, however, you can test the condition and release the lock as soon as you've tested it (note that it's often the case that you might need to use some data you acquired during the lock, in that case you should make a copy on the local stack under the lock, and then release it which I have shown below):&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;pre style=""&gt;
&lt;span style="color: #333333; font-family: Courier; font-size: 10.5625px; line-height: 16px;"&gt;synchronized (lock) {&lt;br style="" /&gt;   if (!condition_to_succeed_is_true) {&lt;br style="" /&gt;       do_error();&lt;br style="" /&gt;       return;&lt;br style="" /&gt;   }&lt;br style="" /&gt;   state = copy_state();&lt;br style="" /&gt;}&lt;br style="" /&gt;&lt;br style="" /&gt;do_something(state);&lt;br style="" /&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;span style="font-family: Times; font-size: 16px;"&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;Remember, in these examples I am assuming that do_something(...) is the non trivial part of your method, both in lines of code, complexity, and execution time.&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;&lt;br style="" /&gt;&lt;/span&gt;&lt;span style="color: #333333; font-family: Verdana; font-size: 13px; line-height: 16px;"&gt;One more thing - I find that using 4 spaces to indent code blocks instead of 2 helps to break me of the habit of nesting my code because it acts like an automatic brake on the indentation level. &lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;http://javathink.blogspot.com/2006/10/short-concise-and-readable-code-invert.html&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1945241024312636590?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1945241024312636590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1945241024312636590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1945241024312636590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1945241024312636590'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/10/write-clearer-code-by-inverting-your.html' title='Write clearer code by inverting your nesting'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-9014654960467973723</id><published>2007-09-26T06:58:00.000-06:00</published><updated>2007-09-26T07:00:09.622-06:00</updated><title type='text'>Productivity Tool Links</title><content type='html'>&lt;p&gt;Consider these three tools to boost your consulting productivity:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;A collaboration calendar and pages tool (Free and Paid subscriptions):&lt;br /&gt;
  &lt;a href="http://www.morguefile.com/"&gt;http://www.backpackit.com/tour&lt;/a&gt;&lt;br /&gt;
  &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;A project status reporting web site (Free):&lt;br /&gt;
  &lt;a href="http://www.morguefile.com/"&gt;http://www.projectstat.us/&lt;/a&gt;&lt;br /&gt;
  &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;And a library of aging stock photography (Free):&lt;br /&gt;
  &lt;a href="http://www.morguefile.com/"&gt;http://www.morguefile.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-9014654960467973723?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/9014654960467973723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=9014654960467973723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/9014654960467973723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/9014654960467973723'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/productivity-tool-links.html' title='Productivity Tool Links'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-2337493583483897685</id><published>2007-09-26T06:52:00.000-06:00</published><updated>2007-09-26T06:54:29.037-06:00</updated><title type='text'>How To Write A Press Release for Your Services</title><content type='html'>&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;An interesting article about maximizing your freelancing exposure through a press release about research you've performed or skills you've gained:&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;"If you have an interesting story to tell, a press release will help you to make newspaper editors aware of it.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Maybe you recently won an award. Maybe you stumbled upon some interesting information in the field you work in. Or maybe your design contributed towards some kind of achievement on behalf of your client.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Depending on the scale and content of your story, you can send your press release to marketing websites, marketing magazines, the relevant trade press, the regional press, and even the business section of the national press."&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Examples:&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;"How a mouse can make you look 10 years younger.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;A release in a fashion magazine about the work of a Photoshop specialist who touches up photo-portraits.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Color purple gets people spending.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;A release in an advertising magazine about how purple advertisements are the most effective at driving sales.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Company makes $500,000 by opening doors six inches wider.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;A release in a marketing magazine, about how a photographer advised her door manufacturing client to re-shoot the company catalog. Photos of closed doors were changed to doors that were slightly ajar—a decision which resulted in extra sales.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;How to hire a full-service marketing agency for just ten bucks.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;A release about a new breed of freelance copywriter/designers, featuring a freelance designer who has recently integrated copywriting into her service—and is introducing the service to new clients for ten dollars per page."&lt;/p&gt;
&lt;p&gt;&lt;a href="http://freelanceswitch.com/finding/how-to-write-a-press-release-for-your-services/"&gt;http://freelanceswitch.com/finding/how-to-write-a-press-release-for-your-services/&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-2337493583483897685?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/2337493583483897685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=2337493583483897685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2337493583483897685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2337493583483897685'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/how-to-write-press-release-for-your.html' title='How To Write A Press Release for Your Services'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1177742438329688225</id><published>2007-09-26T06:49:00.000-06:00</published><updated>2007-09-26T06:51:07.343-06:00</updated><title type='text'>25 Tips for Freelancing</title><content type='html'>&lt;p&gt;25 Freelance Tips for Maximizing Your Income&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;An excellent article by Raj Dash&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Original Article Link:&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;a href="http://performancing.com/25-freelance-tips-for-maximizing-your-income"&gt;http://performancing.com/25-freelance-tips-for-maximizing-your-income&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Some people are just freelancers at heart. They enjoy the freedom of choosing what they'll work on, the variety of work, the opportunity to work with different people, often the chance to work at home, and many other benefits. But there's the good with the bad, and often that includes dry spells mixed in with being overworked.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Here are some tips for maximizing your freelance income, whether it's for blogging services, copywriting, design, SEO or something else. The bulk of these tips are gathered from my own experience as a long-time freelancer, but the references are skewed towards some of my favorite freelance and blogging-related blogs, as well as a few of my own posts on various blogs.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;1. Don't accept all work.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;If you're not going to enjoy it, or the project rate is high but the equivalent hourly rate is low, then think twice before accepting. Also, some clients just require too much of your time for too little return. (I.e., remember the Pareto Principle.)&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;2. Leverage your research time.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;If you work in a certain niche, without conflict for multiple clients, you can often research for mutliple projects at once. For example, if you're writing feature articles on the same topic for two or more clients, you might be able to research online for them simultaneously. Assuming you are paid by the article/ project, they will hardly care that you got work done faster.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;3. Recycle your efforts.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;If you've collected enough notes sufficient for several articles on a topic, or sketched multiple designs for several logos, or whatever, recycle that effort. Can you produce several distinct works that could be sold to anyone besides the client in question? Or can you give these away on your blog? That in it itself would display your abilities and potentially draw future clients, for just a bit more effort.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;4. Have multiple income streams.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Building multiple income streams can go hand in hand with recycling your efforts, or it could refer to having other means of revenue that do not take you away from your main business.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;5. Learn proper multi-tasking.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;A lot of bloggers are slamming multi-tasking, but it's worked for me for a long time. You just have to multitask properly and apply it where it can be applied (non-physical work). It's especially useful if you're juggling multiple projects. Multi-tasking is efficient handling of simultaneous tasks, not tasks done at the same time. There's a huge difference.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;6. Get in the flow.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Multi-tasking is all well and good, but when you actually work on a client's project, be dedicated - get in the flow.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;7. Use efficient bookkeeping.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Keep receipts for everything relating to your work, no matter how frivolous. It just may be tax-deductible. This is especially important if you have a clearly delinated home office area. You can write off some expense based on ratio of office space to home.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;8. Don't undersell yourself.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Set rates based on a simple formula:&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;* Rate = $D/ B hrs.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;* D is the desired salary per year that you want.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;* B is the total number of billable hours that you think you can secure in a given year. Most consultants/ freelancers estimate B on the basis of 15 billable days per month, for an 8-hour day. So that's 15 d/mth x 8 hr/d x 12 mth/yr = 1440 hrs/yr. The rest of each month will usually be spent doing administrative work, seeking out new clients, improving skills, researching, or possibly vacationing. Don't forget to factor in vacation time, any professional costs such as subscriptions, your operating costs, etc.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Once you have that hourly rate, translate that in to flat project rates, when necessary. You'll eventually get a sense for how long a particular task takes, but you might take in less than you want when you first start out.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;9. Track your time.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Keep track of your hours spent, even on a project for which you quoted a flat project rate. This will help ensure you are not charging too little or taking too long on some tasks. This will also help if you outsource any work. You'll learn how long a task should take, plus a buffer for someone with less experience. Consider time and task management tools, or a web-based spreadsheet such as Zoho Sheet or Google Spreadsheets so that you can share information with hires.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;10. Consider work insurance.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;This goes by different names but is essentially liability insurance for freelancers and contract consultants. Some clients in certain industries (e.g., software development) will not sign with you without liability insurance. While this doesn't technically save you money, in given industries it increases your chances of getting high paid work.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;11. Value your time.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;It's one thing to track your time, but if you're wasting part of your day's productive periods not working, then you're effectively reducing potential income. This applies whether you're working at home or in an office. Learn to get the most of your work day, and learn your productive times.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;12. Catalog ideas.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Record any ideas for future work as you have them, even if you can't get to them immediately. I like to use mind mapping software if I need to show hierarchy of ideas and outlines. Other times, I just make a flat list. When I find a lull in my schedule, I explore these ideas. Often, I'll find that when someone asks me to do some work, knowing my areas of interest, I'll have something relevant already scoped out. Thus, some of my legwork is already done, and someone is offering to pay me to complete it.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;13. Blog.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;if you're not already a blogger, no matter what service you freelance, establishing a blog and writing quality content (tutorials, resource lists, reviews, essays) will help promote and establish your authority and eventually bring work. That, of course, depends on what you're writing about. Your blog's topics should be closely related to the services you offer. Just make sure that you are drawing in potential clients, not just random readers. You can track general visitor behavior to your blog with Performancing's own PMetrics and the new plugin.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;14. Network.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;If you do good work, it's likely that you might start getting more work than you can handle. You can turn it down or pass it on to a colleague. No doubt they or another colleague will do the same for you. Or pay it forward. So network online and make sure you're networking on purpose.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;15. Delegate.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Alternately, you can build your business. One drawback with freelancing is that there are only so many hours in the day and week. There's a limit to how many new clients you can take on. However, if you've learned some project management skills and can motivate and manage a small team, you can delegate tasks to people still learning the ropes. This of course changes you from being a lone freelancer to essentially being a consulting firm. You do the billing, allowing room for a reasonable wage/ rate for team members, and a management fee for yourself - since you have expenses and are ultimately responsible for the work.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;16. Partner up.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Partnerships with other freelancer offering complementary services allows you to jointly offer packages. If you're working online, this might include a partnership amongst designers, writers, SEOs, SMMs, marketers, and analysts (web analytics). This allows you to work with Fortune 500 companies, who often prefer to work with a full-service firm. Make sure that someone interfaces with each partner to make the services cohesive.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;17. Be professional.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;While the way you look isn't as much of an issue if you're working online, generally being professional goes a long way to impressing clients. Meet deadlines, make clients happy.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;18. Be timely with invoices.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;If you don't send out invoices on a timely basis, it's unlikely you'll be paid for work on a timely basis. Do yourself a favor and try out a good web-based invoicing tool, some of which send auto reminders and even accept payment online. Either that or use PayPal and request a fraction (25-50%) of the fee upfront, before work begins.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;19. Invest.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;If you do have great clients who pay up early, put some money into a safe investment, such as a federally-insured online savings account or a short-term government bond. Do this especially with money you've set aside for income taxes, if you are not required to make such payments on a quarterly basis.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;20. Know your tools.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;There are tons of web-based freelance tools out there, many of them available free of charge or for a small monthly fee. They might not only save you money but often increase work efficiency as well, leaving you more time for more billable work. Or relaxation. What's more, some of them allow real-time collaboration with partners, teammates, and/or clients.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;21. Know your resources.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;There are numerous sites popping up that list freelance gigs. You might not always need them, but it's good to know they're available. A lull in your work schedule might be filled with a short-term gig.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;22. Get repeat business.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Repeat business from existing clients is more valuable and less stressful. They are a known parameter, and there is less effort on your part in securing even more work later on.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;23. Get referral business.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Your current happy clients are often more than willing to give referrals, especially if you offer a referral bonus. Just watch out for the lies told to freelancers.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;24. Draw positive attention.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;There are positive ways to draw attention to yourself or your website that pay off in the long-run - either through establishing authority or straight out requests for your services. My favorite examples are Seth Godin with his free, oddly-named, informative ebooks, and Hugh MacLeod with his savagely funny Gaping Void cartoons, also available free through a blog widget.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;25. Stay healthy.&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;It should go without saying, but many of us freelancers run ourselves ragged. We don't take breaks to recharge ourselves, to relieve ourselves of stress. And you already know that stress brings illness, which reduces billable time. Of course, you can do research or admin work when you're ill.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1177742438329688225?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1177742438329688225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1177742438329688225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1177742438329688225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1177742438329688225'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/25-tips-for-freelancing.html' title='25 Tips for Freelancing'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4995007050142422639</id><published>2007-09-25T20:59:00.000-06:00</published><updated>2007-09-25T21:01:46.820-06:00</updated><title type='text'>Ten Lies</title><content type='html'>&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;I found this interesting "Top Ten" list by Markus Merz. Worth a quick read for future thought when you are acting as a freelancer and your potential customer mentions one of these:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;1. "Do this one cheap (or free) and we'll make it up on the next one."&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;2. "We never pay a cent until we see the final product."&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;3. "Do this for us and you'll get great exposure! The jobs will just pour in!"&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;4. On looking at sketches or concepts: "Well, we aren't sure if we want to use you yet, but leave your material here so I can talk to my partner/investor/wife/clergy."&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;5. "Well, the job isn't CANCELLED, just delayed. Keep the account open and we'll continue in a month or two."&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;6. "Contract? We don't need no stinking contact! Aren't we friends?"&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;7. "Send me a bill after the work goes to press."&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;8. "The last guy did it for XXX dollars."&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;9. "Our budget is XXX dollars, firm."&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;10. "We are having financial problems. Give us the work, we'll make some money and we'll pay you. Simple."&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;Original Article:&lt;/p&gt;&lt;br /&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;a href="http://performancing.com/revenue/top-ten-lies-every-freelance-writer-or-artist-must-know"&gt;http://performancing.com/revenue/top-ten-lies-every-freelance-writer-or-artist-must-know&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;a href="http://www.paintercreativity.com/articles/top-10-lies.html"&gt;http://www.paintercreativity.com/articles/top-10-lies.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4995007050142422639?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4995007050142422639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4995007050142422639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4995007050142422639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4995007050142422639'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/ten-lies.html' title='Ten Lies'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8601451971749318024</id><published>2007-09-23T11:05:00.000-06:00</published><updated>2007-09-23T11:07:03.857-06:00</updated><title type='text'>10 Things You Didn't Know about Firebug</title><content type='html'>Some quick tips on power-using the FireBug plugin for FireFox

&lt;p&gt;&lt;a href="http://web-wire.blogspot.com/2007/04/10-things-you-didnt-know-about-firebug.html"&gt;http://web-wire.blogspot.com/2007/04/10-things-you-didnt-know-about-firebug.html&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8601451971749318024?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8601451971749318024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8601451971749318024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8601451971749318024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8601451971749318024'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/10-things-you-didn-know-about-firebug.html' title='10 Things You Didn&amp;#39;t Know about Firebug'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-2888183690433332539</id><published>2007-09-23T10:07:00.000-06:00</published><updated>2007-09-23T10:08:39.756-06:00</updated><title type='text'>30 Fonts You Want to Have</title><content type='html'>&lt;p&gt;An excellent list of fonts for print projects:&lt;/p&gt;
&lt;p&gt;"We’ve compiled our own list of 30 fonts we think you should have if you don’t already have them. The list is a mix of some popular ones as listed in a “Favorite Font” thread over at Mintpages, and some of them I have added myself because I happen to be a big fan on them. Each font also has a url listed where you can grab it from"&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.devlounge.net/articles/30-fonts-you-want-to-have"&gt;http://www.devlounge.net/articles/30-fonts-you-want-to-have&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-2888183690433332539?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/2888183690433332539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=2888183690433332539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2888183690433332539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2888183690433332539'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/30-fonts-you-want-to-have.html' title='30 Fonts You Want to Have'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4880033236097873814</id><published>2007-09-23T10:04:00.000-06:00</published><updated>2007-09-23T10:05:56.563-06:00</updated><title type='text'>Why visual metaphors work</title><content type='html'>&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;An excellent article about visual metaphors in web design:&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;"Metaphors visually enhance the subject at hand. Metaphors make you think, inviting you to analyze how two subjects relate. On the web, visual metaphors can enhance content and a site’s purpose dramatically. This works magnificently if you seek to capture the attention of an audience for more than a quick glance."&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;a href="http://www.devlounge.net/articles/visual-metaphors-7-rockstar-examples-on-the-web"&gt;http://www.devlounge.net/articles/visual-metaphors-7-rockstar-examples-on-the-web&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4880033236097873814?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4880033236097873814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4880033236097873814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4880033236097873814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4880033236097873814'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/why-visual-metaphors-work.html' title='Why visual metaphors work'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4212222758119167631</id><published>2007-09-23T09:58:00.004-06:00</published><updated>2007-09-23T09:59:54.741-06:00</updated><title type='text'>Process Your Inbox To Zero</title><content type='html'>This is one of the most sensible presentations I've heard in ages.&lt;br /&gt;
Process your inbox to zero. Mark things down as tasks. Do short&lt;br /&gt;
things immediately.

&lt;p&gt;&lt;a href="http://video.google.com/videoplay?docid=973149761529535925&amp;amp;hl=en"&gt;http://video.google.com/videoplay?docid=973149761529535925&amp;amp;hl=en&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4212222758119167631?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4212222758119167631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4212222758119167631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4212222758119167631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4212222758119167631'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/process-your-inbox-to-zero.html' title='Process Your Inbox To Zero'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-5617234231991896458</id><published>2007-09-23T09:58:00.003-06:00</published><updated>2007-09-23T09:59:48.473-06:00</updated><title type='text'>How do you upgrade the hard drives in the Mac Pro</title><content type='html'>Ever wondered how to add another drive to your MacPro? Here's how:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.everymac.com/systems/apple/mac_pro/faq/mac-pro-how-to-upgrade-hard-drives-what-type-supported.html"&gt;http://www.everymac.com/systems/apple/mac_pro/faq/mac-pro-how-to-upgrade-hard-drives-what-type-supported.html&lt;/a&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-5617234231991896458?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/5617234231991896458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=5617234231991896458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5617234231991896458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5617234231991896458'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/how-do-you-upgrade-hard-drives-in-mac.html' title='How do you upgrade the hard drives in the Mac Pro'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-3307535890954512898</id><published>2007-09-23T09:58:00.002-06:00</published><updated>2007-09-23T09:59:46.100-06:00</updated><title type='text'>Weak Hash Map Breaks</title><content type='html'>WeakHashMap in Java has some serious issues.

&lt;p&gt;&lt;a href="http://blogs.azulsystems.com/cliff/2007/08/why-weakhashmap.html"&gt;http://blogs.azulsystems.com/cliff/2007/08/why-weakhashmap.html&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-3307535890954512898?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/3307535890954512898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=3307535890954512898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3307535890954512898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/3307535890954512898'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/weak-hash-map-breaks.html' title='Weak Hash Map Breaks'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-85443533824251410</id><published>2007-09-23T09:58:00.001-06:00</published><updated>2007-09-23T09:59:39.055-06:00</updated><title type='text'>The 3D Hologram Is Here</title><content type='html'>Researchers at USC have taken another step towards that holiest of sci-fi dreams: the 3D holographic display. Using a spinning mirror covered with a "holographic diffuser," a special DVI implementation, and a high-speed projector, the team's device can project a three-dimensional image that can be viewed from 360 degrees.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.engadget.com/2007/08/31/researchers-develop-a-360-degree-holographic-display/"&gt;http://www.engadget.com/2007/08/31/researchers-develop-a-360-degree-holographic-display/&lt;/a&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-85443533824251410?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/85443533824251410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=85443533824251410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/85443533824251410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/85443533824251410'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/3d-hologram-is-here.html' title='The 3D Hologram Is Here'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-89145057354786616</id><published>2007-09-23T09:58:00.000-06:00</published><updated>2007-09-23T09:59:32.387-06:00</updated><title type='text'>Log Everything All The Time</title><content type='html'>An interesting article on the feasibility (result: it is feasible) to  &lt;br&gt;log your system&amp;#39;s behavior all the time so that when a problem crops  &lt;br&gt;up, you have log data to pore over.  The traditional approach is to  &lt;br&gt;only turn it on when there is a problem, but sometimes, that&amp;#39;s far  &lt;br&gt;too late to be helpful.&lt;p&gt;&lt;a href="http://highscalability.com/log-everything-all-time"&gt;http://highscalability.com/log-everything-all-time&lt;/a&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-89145057354786616?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/89145057354786616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=89145057354786616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/89145057354786616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/89145057354786616'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/log-everything-all-time.html' title='Log Everything All The Time'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-930694524359313205</id><published>2007-09-23T09:57:00.000-06:00</published><updated>2007-09-23T09:59:15.766-06:00</updated><title type='text'>Scriptaculous sample pages</title><content type='html'>Lots of Scriptaculous sample pages. This is a JavaScript library&lt;br /&gt;
that we heavily use in our projects to achieve some awesome cross-&lt;br /&gt;
browser special effects, such as "accordions", "crossfading", and&lt;br /&gt;
"carousels"

&lt;p&gt;&lt;a href="http://www.scriptaculoussamplr.leonardofaria.net/"&gt;http://www.scriptaculoussamplr.leonardofaria.net/&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-930694524359313205?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/930694524359313205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=930694524359313205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/930694524359313205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/930694524359313205'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/scriptaculous-sample-pages.html' title='Scriptaculous sample pages'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6141376698002046875</id><published>2007-09-23T09:56:00.000-06:00</published><updated>2007-09-23T09:57:28.454-06:00</updated><title type='text'>Maven Complex, But Worth The Effort</title><content type='html'>Maven is one of those tools that takes a while to grasp and get&lt;br /&gt;
rocking with. But once you do, you actually feel sorry for the&lt;br /&gt;
"make" and "ant" users out there. Maven looks like a Formula One&lt;br /&gt;
racecar next to a 1950s VW Beetle.

&lt;p&gt;&lt;a href="http://mr-mcwong.blogspot.com/2007/09/dealing-with-maven-bloat-and"&gt;http://mr-mcwong.blogspot.com/2007/09/dealing-with-maven-bloat-and&lt;/a&gt;-&lt;/p&gt;
&lt;p&gt;complexity_05.html&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6141376698002046875?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6141376698002046875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6141376698002046875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6141376698002046875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6141376698002046875'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/maven-complex-but-worth-effort.html' title='Maven Complex, But Worth The Effort'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8138701017428819729</id><published>2007-09-22T17:48:00.001-06:00</published><updated>2007-09-22T17:48:08.885-06:00</updated><title type='text'>Overcoming clients with bad taste…</title><content type='html'>&lt;a href="http://www.creativeui.com/2007/08/27/overcoming-clients-with-bad-taste/"&gt;http://www.creativeui.com/2007/08/27/overcoming-clients-with-bad-taste/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8138701017428819729?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8138701017428819729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8138701017428819729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8138701017428819729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8138701017428819729'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/overcoming-clients-with-bad-taste.html' title='Overcoming clients with bad taste…'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4468550315328859538</id><published>2007-09-22T17:47:00.003-06:00</published><updated>2007-09-22T17:47:56.777-06:00</updated><title type='text'>AJAX Security A Major Concern</title><content type='html'>AJAX, implemented improperly, is a major source of current web app  &lt;br&gt;vulnerabilities.  I&amp;#39;ve even found some in the sites I use every week  &lt;br&gt;for business with vendors.&lt;p&gt;&lt;a href="http://searchsoftwarequality.techtarget.com/originalContent/"&gt;http://searchsoftwarequality.techtarget.com/originalContent/&lt;/a&gt;&lt;p&gt;0,289142,sid92_gci1270910,00.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4468550315328859538?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4468550315328859538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4468550315328859538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4468550315328859538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4468550315328859538'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/ajax-security-major-concern.html' title='AJAX Security A Major Concern'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6161968613703318951</id><published>2007-09-22T17:47:00.001-06:00</published><updated>2007-09-22T17:47:48.464-06:00</updated><title type='text'>JUnit Testing of Inner Classes</title><content type='html'>JUnit has, as I showed in a recent presentation I gave at &lt;A href="http://www.denveropensource.org"&gt;DOSUG&lt;/A&gt;, a great feature for testing inner classes that are sometimes very helpful and clarifying in unit test composition.&lt;DIV&gt;&lt;BR class="khtml-block-placeholder"&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://www.ghostganz.com/blog/articles/2007/09/14/junit-hidden-feature-enclosed"&gt;http://www.ghostganz.com/blog/articles/2007/09/14/junit-hidden-feature-enclosed&lt;/A&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6161968613703318951?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6161968613703318951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6161968613703318951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6161968613703318951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6161968613703318951'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/junit-testing-of-inner-classes.html' title='JUnit Testing of Inner Classes'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6025274830924409473</id><published>2007-09-22T17:46:00.001-06:00</published><updated>2007-09-22T17:46:03.281-06:00</updated><title type='text'>Minimalism Taking Web Design by Storm</title><content type='html'>A concept we&amp;#39;ve tried to share with clients with mixed success is  &lt;br&gt;&amp;quot;minimalism&amp;quot;.  Too much content or too much activity on a web page  &lt;br&gt;merely disturbs the user, and doesn&amp;#39;t necessarily satisfy their  &lt;br&gt;craving for information.  The Apple iPod is the chief example of this  &lt;br&gt;that everyone can relate to.  They eventually did away with the  &lt;br&gt;buttons, leaving just one central &amp;quot;jog wheel&amp;quot; to control a very  &lt;br&gt;powerful device.  Sales climbed.  The device was lauded as a  &lt;br&gt;breakthrough.  This pattern can be applied to all kinds of web  &lt;br&gt;interfaces as well, but the willingness of of clients to let us do  &lt;br&gt;that is still not quite there.&lt;p&gt;&lt;a href="http://rainfall-daffinson.com/minimalism/"&gt;http://rainfall-daffinson.com/minimalism/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6025274830924409473?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6025274830924409473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6025274830924409473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6025274830924409473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6025274830924409473'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/09/minimalism-taking-web-design-by-storm.html' title='Minimalism Taking Web Design by Storm'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-2084531198369604934</id><published>2007-08-26T14:28:00.000-06:00</published><updated>2007-09-23T10:21:50.858-06:00</updated><title type='text'>Cheap Laser Listening Device</title><content type='html'>With a few parts from around-the-office components and a quick trip&lt;br /&gt;
to Radio Shack, you can create a device that allows you to listen in&lt;br /&gt;
to conversations on the INSIDE of windows that you point the laser&lt;br /&gt;
at. Previously, the realm of spies, now in the reach of soldering-&lt;br /&gt;
capable nerds everywhere.

&lt;p&gt;&lt;a href="http://www.metacafe.com/fplayer/767822/laser_espionage_microphone_how_to.swf"&gt;http://www.metacafe.com/fplayer/767822/laser_espionage_microphone_how_to.swf&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-2084531198369604934?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/2084531198369604934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=2084531198369604934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2084531198369604934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2084531198369604934'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/cheap-laser-listening-device.html' title='Cheap Laser Listening Device'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6393148911297231184</id><published>2007-08-24T16:55:00.000-06:00</published><updated>2007-09-23T10:22:18.524-06:00</updated><title type='text'>Quiet Programmers</title><content type='html'>&lt;p&gt;An interesting article about the environment Programmers need to put the design into their heads...&lt;/p&gt;
&lt;p&gt;"Ran across a couple of essays that might sound sort of esoteric but are both approachable and useful for us layfolk.&lt;/p&gt;
&lt;p&gt;The first is a piece by &lt;a href="http://www.paulgraham.com/bio.html"&gt;Paul Graham&lt;/a&gt; called “&lt;a href="http://www.paulgraham.com/head.html"&gt;Holding a Program in One’s Head&lt;/a&gt;,” and it resonated with me because the optimal conditions for the creative process of writing code sound very similar to those for writing prose. “A good programmer working intensively on his own code can hold it in his mind the way a mathematician holds a problem he’s working on,” Graham begins. “Mathematicians don’t answer questions by working them out on paper the way schoolchildren are taught to. They do more in their heads: they try to understand a problem space well enough that they can walk around it the way you can walk around the memory of the house you grew up in. At its best programming is the same. You hold the whole program in your head, and you can manipulate it at will. … Ordinary programmers working in typical office conditions never enter this mode. Or to put it more dramatically, ordinary programmers working in typical office conditions never really understand the problems they’re solving.” Graham offers eight suggestions to help get into that zone, conditions that not coincidentally are the hallmarks of innovative, off-the-books, labor-of-love projects."&lt;/p&gt;&lt;a href="http://svextra.com/blogs/gmsv/2007/08/quiet_programmers_and_loud_music.html"&gt;http://svextra.com/blogs/gmsv/2007/08/quiet_programmers_and_loud_music.html&lt;/a&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6393148911297231184?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6393148911297231184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6393148911297231184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6393148911297231184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6393148911297231184'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/quiet-programmers.html' title='Quiet Programmers'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-7816303020992173583</id><published>2007-08-22T19:18:00.000-06:00</published><updated>2007-09-23T11:00:10.458-06:00</updated><title type='text'>Tips for Google Searching more efficiently</title><content type='html'>A couple of quick tips to enhance and refine your Googling experience...&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://greattime.true.ws/2007/06/20-tips-for-more-efficient-google.html"&gt;http://greattime.true.ws/2007/06/20-tips-for-more-efficient-google.html&lt;/a&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-7816303020992173583?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/7816303020992173583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=7816303020992173583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7816303020992173583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7816303020992173583'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/tips-for-google-searching-more.html' title='Tips for Google Searching more efficiently'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-2063354069588258982</id><published>2007-08-22T15:36:00.000-06:00</published><updated>2007-09-23T11:00:34.367-06:00</updated><title type='text'>Why you really just want to stop using Windows some days</title><content type='html'>Error Message: Your Password Must Be at Least 18770 Characters and Cannot Repeat Any of Your Previous 30689 Passwords&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://support.microsoft.com/kb/276304?"&gt;http://support.microsoft.com/kb/276304?&lt;/a&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-2063354069588258982?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/2063354069588258982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=2063354069588258982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2063354069588258982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/2063354069588258982'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/why-you-really-just-want-to-stop-using.html' title='Why you really just want to stop using Windows some days'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-5531689073515992965</id><published>2007-08-22T07:51:00.000-06:00</published><updated>2007-09-23T11:00:48.820-06:00</updated><title type='text'>Handcrafted Software Experiences</title><content type='html'>Interesting article about a company formed by ex-Microsofties...&lt;br /&gt;
&lt;p&gt;"A team of ex-Microsofties &lt;a href="http://www.istartedsomething.com/20070403/jenny-joins-jacksonfish/"&gt;&lt;b&gt;left&lt;/b&gt;&lt;/a&gt;to create &lt;a href="http://www.jacksonfish.com/"&gt;&lt;b&gt;Jackson Fish Market&lt;/b&gt;&lt;/a&gt;, with the tagline "Handcrafted Software Experiences," in November 2006. In their introductory blog post, co-founder &lt;a href="http://www.jacksonfish.com/blog/2006/11/20/hello-world/"&gt;&lt;b&gt;Hillel Cooperman&lt;/b&gt;&lt;/a&gt;talks about his grandfather's fish store, Jackson Fish, a "small businesses was run by family, with everyone pitching in as best they could" and which sold "handcrafted products" that "that both address a core customer need, but also make them feel emotionally satisfied, content, and… happy." They credit 37 Signals with much of the inspiration behind the company.&lt;/p&gt;
&lt;p&gt;They're working on a number of projects, and "&lt;a href="http://www.theyrebeautiful.com/"&gt;&lt;b&gt;They're Beautiful&lt;/b&gt;&lt;/a&gt;" is the first to launch. It's a free virtual flowers site. Users can send a virtual bouquet to any email address (even without registering). The recipient sees the bouquet and can choose to put it in their Greenhouse on the site by registering. They then must return every few days to "water" the flowers and keep them from wilting.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.techcrunch.com/2007/07/08/ex-microsoft-team-launches-theyre-beautiful/"&gt;http://www.techcrunch.com/2007/07/08/ex-microsoft-team-launches-theyre-beautiful/&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-5531689073515992965?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/5531689073515992965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=5531689073515992965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5531689073515992965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5531689073515992965'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/handcrafted-software-experiences.html' title='Handcrafted Software Experiences'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-5198748441721636519</id><published>2007-08-21T21:33:00.000-06:00</published><updated>2007-09-23T11:00:58.215-06:00</updated><title type='text'>Remote control for iTunes from iPhone</title><content type='html'>Create a Sailing Clicker Remote Control on iPhone and use your iPhone as a remote control for music:&lt;br /&gt;
&lt;br /&gt;
http://www.ibm.com/developerworks/xml/library/x-iphonexmlphp/?ca=dnw-831

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-5198748441721636519?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/5198748441721636519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=5198748441721636519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5198748441721636519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/5198748441721636519'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/remote-control-for-itunes-from-iphone.html' title='Remote control for iTunes from iPhone'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-7050204487093977087</id><published>2007-08-20T22:24:00.000-06:00</published><updated>2007-09-23T11:02:00.433-06:00</updated><title type='text'>Offline sources driving online searches</title><content type='html'>&lt;p&gt;Seeking answers to searching questions: Today brings two developments in the continuing efforts to better understand and measure online search. First, search engine marketing firm iProspect &lt;a href="http://www.iprospect.com/about/researchstudy_2007_offlinechannelinfluence.htm"&gt;released a study&lt;/a&gt; that found, among other things, that &lt;a href="http://www.searchenginejournal.com/search-engine-marketing-firms-study-says-offline-channels-drive-more-searches/5511/"&gt;67 percent of online searches were driven by offline sources&lt;/a&gt;, specifically television ads, word of mouth, print ads, brick-and-mortar stores, and radio ads. What's more, the study found, 39 percent of those searches resulted in a purchase. "It's intuitive, said iProspect President Robert Murray. "It makes sense that offline channel messaging could pique a user's curiosity enough to motivate them to search for additional information. But, most offline advertising doesn't exactly make it easy for customers to find a company's website." The &lt;a href="http://w%20ww.prweb.com/releases/2007/8/prweb547332.htm"&gt;big takeaway from the research&lt;/a&gt;, Murray said, is that "today, it's incumbent upon marketers to integrate search with their offline efforts. Quite simply, their offline messaging needs to be memorable and facilitate search, and their search efforts need to echo that messaging and integrate those keywords. The bottom line is that integration is no longer optional."&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-7050204487093977087?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/7050204487093977087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=7050204487093977087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7050204487093977087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/7050204487093977087'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/offline-sources-driving-online-searches.html' title='Offline sources driving online searches'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-6993173281152720788</id><published>2007-08-20T18:43:00.000-06:00</published><updated>2007-09-23T11:01:18.268-06:00</updated><title type='text'>Diagram of programming paradigms</title><content type='html'>&lt;p&gt;Here's a handy PDF that offers a diagram of programming paradigms. Say that three times fast.&lt;/p&gt;&lt;a href="http://www.info.ucl.ac.be/%7Epvr/paradigmsDIAGRAMeng.pdf"&gt;http://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng.pdf&lt;/a&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-6993173281152720788?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/6993173281152720788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=6993173281152720788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6993173281152720788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/6993173281152720788'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/diagram-of-programming-paradigms.html' title='Diagram of programming paradigms'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-847663570640066587</id><published>2007-08-20T13:18:00.000-06:00</published><updated>2007-09-23T11:01:30.306-06:00</updated><title type='text'>Currying? Food words in JavaScript Coding Constructs?</title><content type='html'>&lt;p&gt;&lt;a href="http://www.coryhudson.com/blog/2007/03/10/javascript-currying-redux/"&gt;http://www.coryhudson.com/blog/2007/03/10/javascript-currying-redux/&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-847663570640066587?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/847663570640066587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=847663570640066587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/847663570640066587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/847663570640066587'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/currying-food-words-in-javascript.html' title='Currying? Food words in JavaScript Coding Constructs?'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1382857041234300691</id><published>2007-08-20T09:55:00.000-06:00</published><updated>2007-09-23T11:01:43.820-06:00</updated><title type='text'>Even Joel on Software has read Design of Everyday Things</title><content type='html'>&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  Joel on Software has read one of my favorite books, mentioned in his rant about the Office 2007 box:
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;a href="http://www.joelonsoftware.com/items/2007/08/18.html"&gt;http://www.joelonsoftware.com/items/2007/08/18.html&lt;/a&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  The Book:
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;a href="http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746"&gt;http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746&lt;/a&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;img src="cid:FB6D91B9-CB5B-48BE-A5FD-041DF9504616@ambientideas.local" /&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  His other book:
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;a href="http://www.amazon.com/Emotional-Design-Love-Everyday-Things/dp/0465051367/ref=sr_1_2/104-0861752-4542326?ie=UTF8&amp;amp;s=books&amp;amp;qid=1187624787&amp;amp;sr=1-2"&gt;http://www.amazon.com/Emotional-Design-Love-Everyday-Things/dp/0465051367/ref=sr_1_2/104-0861752-4542326?ie=UTF8&amp;amp;s=books&amp;amp;qid=1187624787&amp;amp;sr=1-2&lt;/a&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;img src="cid:8DF5CF11-DCBE-4172-89DF-E14BEFA0929F@ambientideas.local" /&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  And all Donald Norman's books:
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/104-0861752-4542326?%5Fencoding=UTF8&amp;amp;search-type=ss&amp;amp;index=books&amp;amp;field-author=Donald%20Norman"&gt;http://www.amazon.com/exec/obidos/search-handle-url/104-0861752-4542326?%5Fencoding=UTF8&amp;amp;search-type=ss&amp;amp;index=books&amp;amp;field-author=Donald%20Norman&lt;/a&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;span&gt;Joel: &lt;i&gt;This is the same box that Vista comes in. Nick White over at Microsoft seems proud of the novel design, but from the comments on the web it seems I'm not the only one who couldn't figure out how to open it. It seems like even rudimentary usability testing would have revealed the problem. A box that many people can't figure out how to open without a Google search is an unusually pathetic failure of design. As the line goes from Billy Madison: "I award you no points, and may God have mercy on your soul."&lt;/i&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  Another interesting rant on Vista -- the third in three days by Windows lovers, no less:
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &lt;i&gt;"I've been using Vista on my home laptop since it shipped, and can say with some conviction that nobody should be using it as their primary operating system -- it simply has no redeeming merits to overcome the compatibility headaches it causes. Whenever anyone asks, my advice is to stay with Windows XP (and to purchase new systems with XP preinstalled)."&lt;/i&gt;
&lt;/div&gt;
&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"&gt;
  &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/2644648721745474693-1382857041234300691?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1382857041234300691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1382857041234300691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1382857041234300691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1382857041234300691'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/even-joel-on-software-has-read-design.html' title='Even Joel on Software has read Design of Everyday Things'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8268715165447535117</id><published>2007-08-20T09:41:00.000-06:00</published><updated>2007-09-23T11:01:53.767-06:00</updated><title type='text'>Hoverbox &amp; Lightbox Examples</title><content type='html'>Always wanted to display a gallery of images in a manner that makes&lt;br /&gt;
efficient use of screen real estate and doesn't require clicks? Here&lt;br /&gt;
are some useful links:

&lt;p&gt;Starting Article:&lt;br /&gt;
&lt;a href="http://mondaybynoon.com/2007/02/19/suckerfish-hoverlightbox-redux/"&gt;http://mondaybynoon.com/2007/02/19/suckerfish-hoverlightbox-redux/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Redux Demo:&lt;br /&gt;
&lt;a href="http://mondaybynoon.com/examples/suckerfish_hoverlightbox_redux/"&gt;http://mondaybynoon.com/examples/suckerfish_hoverlightbox_redux/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Original Demo:&lt;br /&gt;
&lt;a href="http://host.sonspring.com/hoverbox/"&gt;http://host.sonspring.com/hoverbox/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Info:&lt;br /&gt;
&lt;a href="http://sonspring.com/journal/hoverbox-image-gallery"&gt;http://sonspring.com/journal/hoverbox-image-gallery&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8268715165447535117?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8268715165447535117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8268715165447535117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8268715165447535117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8268715165447535117'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/hoverbox-lightbox-examples.html' title='Hoverbox &amp;amp; Lightbox Examples'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-1249181710995676877</id><published>2007-08-16T16:13:00.000-06:00</published><updated>2007-09-23T11:07:23.993-06:00</updated><title type='text'>Excellent presentation techniques outline</title><content type='html'>Be a better presenter. Read these tips.

&lt;p&gt;&lt;a href="http://www.pubcon.com/blog/index.cgi?mode=viewone&amp;amp;blog=1187123220"&gt;http://www.pubcon.com/blog/index.cgi?mode=viewone&amp;amp;blog=1187123220&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-1249181710995676877?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/1249181710995676877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=1249181710995676877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1249181710995676877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/1249181710995676877'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/excellent-presentation-techniques.html' title='Excellent presentation techniques outline'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-8241306773302752526</id><published>2007-08-08T20:12:00.000-06:00</published><updated>2007-09-23T11:07:32.160-06:00</updated><title type='text'>Scott Davis at DJUG</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://bp2.blogger.com/_rImaElMP7xc/Rrp4jMC65OI/AAAAAAAAAII/GSdVJF0_s1w/s1600-h/photo-775876.jpg"&gt;&lt;img src="http://bp2.blogger.com/_rImaElMP7xc/Rrp4jMC65OI/AAAAAAAAAII/GSdVJF0_s1w/s320/photo-775876.jpg" width="320" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-8241306773302752526?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/8241306773302752526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=8241306773302752526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8241306773302752526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/8241306773302752526'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/08/scott-davis-at-djug.html' title='Scott Davis at DJUG'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_rImaElMP7xc/Rrp4jMC65OI/AAAAAAAAAII/GSdVJF0_s1w/s72-c/photo-775876.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2644648721745474693.post-4983102321994064058</id><published>2007-07-28T08:53:00.000-06:00</published><updated>2007-09-23T11:07:39.770-06:00</updated><title type='text'>Restoring MacOS</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://bp1.blogger.com/_rImaElMP7xc/RqtYssC65JI/AAAAAAAAAHg/nEiYyOArkSw/s1600-h/photo-781973.jpg"&gt;&lt;img src="http://bp1.blogger.com/_rImaElMP7xc/RqtYssC65JI/AAAAAAAAAHg/nEiYyOArkSw/s320/photo-781973.jpg" width="320" /&gt;&lt;/a&gt;&lt;/p&gt;Hopefully this will cure the slow boot and other oddities...

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2644648721745474693-4983102321994064058?l=denverdev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://denverdev.blogspot.com/feeds/4983102321994064058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2644648721745474693&amp;postID=4983102321994064058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4983102321994064058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2644648721745474693/posts/default/4983102321994064058'/><link rel='alternate' type='text/html' href='http://denverdev.blogspot.com/2007/07/restoring-macos.html' title='Restoring MacOS'/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_rImaElMP7xc/Sg70OQ2ia6I/AAAAAAAAAlI/oUs6Nj5N1Vk/S220/Matthew+-+Head+Shot+-+KY0L2260+-+XSmall+-+Square.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_rImaElMP7xc/RqtYssC65JI/AAAAAAAAAHg/nEiYyOArkSw/s72-c/photo-781973.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
