<?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'><id>tag:blogger.com,1999:blog-9088482399688345277</id><updated>2009-12-03T17:24:42.930-07:00</updated><title type='text'>BruceBlog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default?start-index=26&amp;max-results=25'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>150</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-8338563330630256848</id><published>2009-11-12T13:50:00.007-07:00</published><updated>2009-11-12T22:24:12.494-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac os x java snow leopard 1.5'/><title type='text'>Grrr - What Happened to Java 1.5 on Snow Leopard?!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm1.static.flickr.com/22/26044351_fa9bf19dc5.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px;" src="http://farm1.static.flickr.com/22/26044351_fa9bf19dc5.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just this week I updated to Mac OS X Snow Leopard (10.6.2) only to discover that it removes Java 1.5 entirely - WTF?! I have no idea why Java 1.5 was removed but it was a bad decision. How is it logical that Java 1.3 is reinstalled but Java 1.5 is removed? Anyway, after some searching and a bit of trial and error on my system, here are steps that I had to take to fix this situation: &lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Download &lt;a href="http://support.apple.com/downloads/Java_for_Mac_OS_X_10_5_Update_4"&gt;Java for Mac OS X 10.5 Update 4&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;IMPORTANT!!!&lt;/b&gt; Make sure to run the following two commands BEFORE proceeding: &lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; &lt;tt&gt;sudo rm /System/Library/Frameworks/JavaVM.framework/Versions/1.5&lt;/tt&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;sudo rm /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0&lt;/tt&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;This removes the old Java 1.5 sym links to prevent the Java 1.6 directory from being overwritten (very bad)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Using the Finder, locate the &lt;tt&gt;JavaForMacOSX10.5Update4.dmg&lt;/tt&gt; file and double-click on it to mount the disk image&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create a sym link to a missing utility: &lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;sudo ln -s /usr/bin/update_dyld_shared_cache /usr/bin/update_prebinding&lt;/tt&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;This command fixes a missing sym link in Snow Leopard that is needed by the Pacifist in the next step&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Using the &lt;a href="http://www.charlessoft.com/"&gt;Pacifist&lt;/a&gt;, open the&lt;tt&gt; JavaForMacOSX10.5Update4.pkg&lt;/tt&gt; file from the mounted disk image&lt;/li&gt;&lt;br /&gt;&lt;/li&gt;In the Pacifist, navigate to &lt;tt&gt;/System/Library/Frameworks/JavaVM.framework/Versions&lt;/tt&gt; and follow these steps: &lt;/li&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Right-click on 1.5 and select 'Install to Default Location'&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Right-click on 1.5.0 and select 'Install to Default Location'&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;After going through these steps, Java 1.5 should now be installed on the system. You can see this by listing the following: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions/1.5&lt;br /&gt;lrwxr-xr-x  1 bsnyder  staff  5 Nov 12 13:47 /System/Library/Frameworks/JavaVM.framework/Versions/1.5 -&gt; 1.5.0&lt;br /&gt;$ ls -1 /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/&lt;br /&gt;Classes&lt;br /&gt;Commands&lt;br /&gt;Headers&lt;br /&gt;Home&lt;br /&gt;Libraries&lt;br /&gt;Resources&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.adelaideflashmob.com/wp-content/uploads/2008/12/ninja_crouch.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 75px;" src="http://www.adelaideflashmob.com/wp-content/uploads/2008/12/ninja_crouch.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; Through my travels, I've found that many people have no idea that you could switch between different versions of Java. To make the task of switching extremely easy, grab my friend David's &lt;a href="http://docs.codehaus.org/display/ninja/setjdk"&gt;setjdk&lt;/a&gt; script and use it to handle this task from the command line. It's a bash script that even supports tab completion. So once the script is set up in your environment, switching between versions of Java is as easy as running the following command to see the available Java versions:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;$ setjdk &amp;lt;tab&amp;gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Then just choose the version you'd like to use, e.g.: &lt;br /&gt;&lt;br /&gt;&lt;tt&gt;$ setjdk 1.5&lt;br /&gt;Setting this terminal's JDK to 1.5 ... java version "1.5.0_19"&lt;br /&gt;Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304)&lt;br /&gt;Java HotSpot(TM) Client VM (build 1.5.0_19-137, mixed mode, sharing)&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE:&lt;/b&gt; I had to use the steps above to reinstall the documentation for Java 1.5 as well. I found it in the &lt;a href="http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/207/wa/download?path=%2FJava%2Fjava_for_mac_os_x_10.5_update_4_developer_documentation%2Fjavaformacosx10.5update4docmanual.dmg&amp;wosid=4T5nczTZSGmU2EJH37Y1nPebTiB"&gt;Java for Mac OS X 10.5 Update 4 Developer Documentation&lt;/a&gt;. This placed the &lt;tt&gt;appledocs.jar&lt;/tt&gt;, the &lt;tt&gt;doc.jar&lt;/tt&gt; and the &lt;tt&gt;src.jar&lt;/tt&gt; files into the &lt;tt&gt;/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home&lt;/tt&gt; directory. Then I just expanded the &lt;tt&gt;doc.jar&lt;/tt&gt; file to be able to browse the API docs for Java 1.5 via a browser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-8338563330630256848?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/8338563330630256848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=8338563330630256848&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/8338563330630256848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/8338563330630256848'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/11/grrr-what-happened-to-java-15-on-snow.html' title='Grrr - What Happened to Java 1.5 on Snow Leopard?!'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-3054072339617153229</id><published>2009-06-20T10:07:00.004-06:00</published><updated>2009-06-20T10:40:15.245-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='core spring springsource'/><title type='text'>SpringSource University in Denver</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.springsource.com/files/u1/SU-logo.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 221px; height: 67px;" src="http://www.springsource.com/files/u1/SU-logo.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On Tuesday morning I had just returned from a run at about 9:35am and was checking my messages before I showered and began working for the day. As I was reading various messages, dripping sweat and sipping on some water, I was pinged by my friend and colleague Filip Hanik on IRC. He  told me that he was sitting in a classroom in Denver for the &lt;a href="http://www.springsource.com/training"&gt;SpringSource University Core Spring Training&lt;/a&gt;. Here's how the conversation went: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;b&gt;Filip:&lt;/b&gt; hey &lt;br /&gt;&lt;b&gt;Bruce:&lt;/b&gt; hey, what's up? &lt;br /&gt;&lt;b&gt;Filip:&lt;/b&gt; sitting at Core Spring in Denver, but there is no trainer &lt;br /&gt;&lt;b&gt;Bruce:&lt;/b&gt; whoops &lt;br /&gt;&lt;b&gt;Bruce:&lt;/b&gt; sorry to hear that, is there anything I can do to help? &lt;br /&gt;&lt;b&gt;Filip:&lt;/b&gt; yeah, you can come down here and teach this course :)&lt;br /&gt;&lt;b&gt;Bruce:&lt;/b&gt; are you serious? &lt;br /&gt;&lt;b&gt;Filip:&lt;/b&gt; yes &lt;br /&gt;&lt;b&gt;Bruce: &lt;/b&gt; headed for the shower now, see you about 11 &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;By 11am I was in Denver and teaching the first day of the course. &lt;br /&gt;&lt;br /&gt;Lucky for me, Chris Beams, a stellar consultant/engineer/trainer at SpringSource, was en route to deliver the rest of the course. Chris arrived later Tuesday evening and taught the course for the rest of the week through Friday and I was lucky enough to sit in. Chris went the extra mile to arrive early and stay late for the rest of the week and even wound up finishing on time on Friday afternoon, a testament to his talents, for sure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-3054072339617153229?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/3054072339617153229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=3054072339617153229&amp;isPopup=true' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3054072339617153229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3054072339617153229'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/06/springsource-university-in-denver.html' title='SpringSource University in Denver'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-5244933172235650523</id><published>2009-06-20T10:02:00.002-06:00</published><updated>2009-06-20T10:07:21.110-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maven m2eclipse'/><title type='text'>Using Maven? You Should Be Using m2eclipse</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_pSHP7VYSIjE/SQdGqt2w0mI/AAAAAAAAANs/bPiBK5EygvI/s200/Maven_logo.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 46px;" src="http://4.bp.blogspot.com/_pSHP7VYSIjE/SQdGqt2w0mI/AAAAAAAAANs/bPiBK5EygvI/s200/Maven_logo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you use Maven for your Java projects, then you should take a look at &lt;a href="http://eclipse.org/m2e/"&gt;m2eclipse&lt;/a&gt; plugin for Eclipse. After all, there's now a whole &lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/"&gt;book on m2eclipse&lt;/a&gt; instead of just a single chapter!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-5244933172235650523?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/5244933172235650523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=5244933172235650523&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5244933172235650523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5244933172235650523'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/06/using-maven-you-should-be-using.html' title='Using Maven? You Should Be Using m2eclipse'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_pSHP7VYSIjE/SQdGqt2w0mI/AAAAAAAAANs/bPiBK5EygvI/s72-c/Maven_logo.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-5076317595808979863</id><published>2009-06-11T15:25:00.003-06:00</published><updated>2009-06-11T15:43:50.858-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='integration apache camel javaone'/><title type='text'>Enterprise Integration Patterns in Practice at JavaOne 2009</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sun.com/images/l2/l2_2009_J1.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 100px; height: 88px;" src="http://www.sun.com/images/l2/l2_2009_J1.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Last week I was in San Francisco to speak at JavaOne 2009 to deliver a talk named &lt;i&gt;Enterprise Integration Patterns in Practice&lt;/i&gt; where I co-presented with Andreas Egloff from Sun. &lt;br /&gt;&lt;br /&gt;We talked about implementing &lt;a href="http://eaipatterns.com/"&gt;EIP&lt;/a&gt; patterns using &lt;a href="http://camel.apache.org/"&gt;Apache Camel&lt;/a&gt; and Sun's &lt;a href="https://fuji.dev.java.net/"&gt;Fuji&lt;/a&gt;. I used &lt;a href="http://activemq.apache.org/"&gt;ActiveMQ&lt;/a&gt; in my demo which was rather short but worked well (yay! the demo gods smiled on me last week :-) ) and Andreas showed off Sun's web-based EIP editor. Although this editor looks very cool and Andreas showed how to edit scripting code in each component on the diagram, it left me wondering how it interfaces with Java code. After our demos, my laptop would not flip back to the presentation at the end (which presented an abrupt ending) but still we received a lot of complements throughout the rest of the week. &lt;br /&gt;&lt;br /&gt;Beyond the talk, I got to see tons of friends who I don't see that often throughout the year including Debbie, Guillaume, Hiram and Rob, as well as many new &lt;a href="http://springsource.com/"&gt;SpringSource&lt;/a&gt; colleagues (since the acquisition of &lt;a href="http://hyperic.com/"&gt;Hyperic&lt;/a&gt;). I also met many, many new folks including Colin and Jamie. I was also lucky enough to eat Thai food twice (love the yellow curry) and sushi once during the week - mmmmmmmmmmm. &lt;br /&gt;&lt;br /&gt;If you would like a copy of the presentation, just drop me an email and I'll send it your way (bruce DOT snyder AT gmail DOT com). I'm not sure how much sense the slides will make without the delivery, but it seems like folks are always requesting my presentations after the fact.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-5076317595808979863?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/5076317595808979863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=5076317595808979863&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5076317595808979863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5076317595808979863'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/06/enterprise-integration-patterns-in.html' title='Enterprise Integration Patterns in Practice at JavaOne 2009'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-707641253924687787</id><published>2009-05-12T17:44:00.006-06:00</published><updated>2009-08-25T07:24:46.404-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JeOS Oracle VMWare'/><title type='text'>JeOS, Oracle XE and VMWare on MacOS X</title><content type='html'>Last week I installed &lt;a href="https://help.ubuntu.com/community/JeOS"&gt;JeOS&lt;/a&gt; (Just Enough Operating System) on VMWare Fusion. JeOS is a slimmed-down version of Ubuntu specifically made for installation in a virtual machine so that it has a much smaller footprint than the normal Ubuntu distribution. Anyway, I did this so that I'd have a VM with a smaller footprint that I can use on my MacBook Pro for development and testing. &lt;br /&gt;&lt;br /&gt;After setting up JeOS, I installed &lt;a href="http://www.oracle.com/technology/products/database/xe/index.html"&gt;Oracle XE&lt;/a&gt; on it. Oracle XE is a slimmed down version of Oracle that is free for development and distribution. I used these &lt;a href="http://www.oracle.com/technology/tech/linux/install/xe-on-kubuntu.html"&gt;instructions for installing Oracle XE on Ubuntu&lt;/a&gt; but there were some catches, namely that by default the web application for Oracle XE was bound to the localhost, i.e., I couldn't see the web app from Firefox in MacOS X. This was easily remedied via &lt;a href="http://tedwise.com/2008/10/03/running-oracle-for-development-on-the-mac/comment-page-1/#comment-89"&gt;this comment on a blog post about this very topic&lt;/a&gt;. After that, I could access Oracle XE from MacOS X. After adding a user for myself via the web app and setting up the environment on JeOS to use sqlplus, I was good to go: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server&lt;br /&gt;export PATH=${PATH}:${ORACLE_HOME}/bin&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This setup has been working very well for me until today. For no apparent reason, the networking in JeOS went flaky and I could not access the outside world at all. I switched between NAT and host-only networking in VMWare multiple times, rebooting the VM each time - no dice. I upgraded to the latest VMWare Fusion - no dice. I could SSH into the VM from MacOS but that was it. No commands from JeOS would reach the outside world. So on a whim, I reran the &lt;tt&gt;vmware-install.pl&lt;/tt&gt; script again and after that the networking seems to work again. I still have no idea why this happened which is a bit troubling. I don't want to just blindly keep running the install script again with no idea why it's fixing this networking issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-707641253924687787?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/707641253924687787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=707641253924687787&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/707641253924687787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/707641253924687787'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/05/jeos-oracle-xe-and-vmware-on-macos-x.html' title='JeOS, Oracle XE and VMWare on MacOS X'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-5490864537397988618</id><published>2009-05-07T10:29:00.005-06:00</published><updated>2009-05-07T11:46:05.893-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java spring springsource tool suite sts'/><title type='text'>SpringSource Tool Suite Now Available For FREE!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY38k7W2QI/AAAAAAAAAP8/AlUtr2ODfIk/s1600-h/springsource-logo.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 75px;" src="http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY38k7W2QI/AAAAAAAAAP8/AlUtr2ODfIk/s200/springsource-logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5320501523629136130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Last week in Amsterdam, at the &lt;a href="http://europe.springone.com/"&gt;SpringOne EU&lt;/a&gt; conference, it was announced that &lt;b&gt;the &lt;a href="http://www.springsource.com/products/sts"&gt;SpringSource Tool Suite&lt;/a&gt; (STS) is now available for FREE!&lt;/b&gt; I was very pleased that we made this move as STS is an excellent set of Eclipse-based development tools that can make your Java development much more productive. &lt;br /&gt;&lt;br /&gt;If you use Eclipse for your Java development and you use the Spring Framework, then you should really take STS for a spin. It's just like using the Eclipse you know and love but with many added features to make your development more productive. &lt;a href="http://www.springsource.com/products/sts/registration"&gt;Download the SpringSource Tool Suite now!&lt;/a&gt;  &lt;br /&gt;&lt;br /&gt;I also saw many great talks at SpringOne EU that showcased STS via demos using it. Here is a partial list of some that I saw: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Development using the &lt;a href="http://www.springframework.org/"&gt;Spring Framework&lt;/a&gt;; editing Spring XML files is so much easier with STS.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Demos of OSGi development using the &lt;a href="http://www.springsource.com/products/dmserver"&gt;SpringSource dm Server&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Many demos using the feverishly popular (and close to me because I work on it) &lt;a href="http://www.springsource.com/products/tcserver"&gt;SpringSource tc Server&lt;/a&gt; (BTW, the interest in tc Server is through the roof! Who knew it would be such a hit?)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Numerous &lt;a href="http://www.grails.org/"&gt;Grails&lt;/a&gt; demos using &lt;a href="http://www.springsource.com/products/tcserver"&gt;SpringSource tc Server&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Combined with the official unveiling of &lt;a href="http://blog.springsource.com/2009/05/01/roo-part-1/"&gt;SpringSource Roo&lt;/a&gt;, the increase in productivity surprised even me.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;One of the demos that stands out in my mind was delivered by Adrian Colyer during his keynote on day two that utilized many technologies. But the thing I remember the most (and wish that I had more time to play with) was the use of the &lt;a href="http://aws.amazon.com/eclipse/"&gt;AWS Toolkit for Eclipse&lt;/a&gt; and Chris Richardson's &lt;a href="http://www.cloudfoundry.com/"&gt;Cloud Foundry&lt;/a&gt;, both for working with app deployment and monitoring in the cloud. The ease with which Adrian deployed apps to Amazon EC2 and was able to monitor them were amazing. I say it was amazing because I started working with Amazon EC2 from the command line before any such polished tools were available. It is really great to see the ever-increasing ease of working with cloud-based platforms. If you haven't checked out these two tools and you work with Amazon EC2, I highly encourage you to take some time to do so. Coupled with STS, they will make your life much, much easier. &lt;br /&gt;&lt;br /&gt;I have to say it is very cool to see the products all come together like this. It's also awesome to watch demos delivered by folks who know each tool so well. It makes me wish that we had more face-to-face meetings so that I could sponge more of the product knowledge from folks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-5490864537397988618?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/5490864537397988618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=5490864537397988618&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5490864537397988618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5490864537397988618'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/05/springsource-tool-suite-now-available.html' title='SpringSource Tool Suite Now Available For FREE!'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY38k7W2QI/AAAAAAAAAP8/AlUtr2ODfIk/s72-c/springsource-logo.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-7060259908057929026</id><published>2009-04-03T10:51:00.002-06:00</published><updated>2009-04-03T11:08:39.594-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='springone activemq'/><title type='text'>Apache ActiveMQ at SpringOne EU</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.springframework.org/images/i21-spring-one-logo.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 197px; height: 52px;" src="http://static.springframework.org/images/i21-spring-one-logo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Later this month I'll be in Amsterdam again, this time to speak at &lt;a href="http://europe.springone.com/"&gt;SpringOne EU&lt;/a&gt; about &lt;a href="http://activemq.apache.org/"&gt;Apache ActiveMQ&lt;/a&gt;. It will be great to be back in Amsterdam, especially because the annual &lt;a href="http://en.wikipedia.org/wiki/Koninginnedag"&gt;Queen's Day celebration&lt;/a&gt; takes place the week of the conference, which is always a fun time. &lt;br /&gt;&lt;br /&gt;My first SpringOne conference was back in December in Florida and it was very good. Unfortunately I had a lot of travel booked back-to-back at the time so I wasn't able to be there for the entire conference. This time I will be able to spend the entire week at the conference which will be great because there are many sessions I'd like to see. Here are just a few: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://europe.springone.com/europe-2009/presentation/Extreme+Productivity+in+Application+Development"&gt;Extreme Productivity in Application Development&lt;/a&gt; - A talk by Ben Alex about Spring ROO&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://europe.springone.com/europe-2009/presentation/Advanced+Concurrency%3A+Design+and+Construction"&gt;Advanced Concurrency: Design and Construction&lt;/a&gt; - A talk by Rob Harrop about, well, concurrency&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://europe.springone.com/europe-2009/presentation/Implementing+REST+Web+Application+Architectures+with+Spring+MVC"&gt;Implementing REST Web Application Architectures with Spring MVC&lt;/a&gt; - A talk by Arjen Poutsma about the Spring 3.0 support for REST&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://europe.springone.com/europe-2009/presentation/Practical+Usages+of+SpringSource+dm+Server"&gt;Practical Usages of SpringSource dm Server&lt;/a&gt; - Another talk by Rob Harrop but this one is about building OSGi applications&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://europe.springone.com/europe-2009/presentation/Introduction+to+Spring+Integration"&gt;Introduction to Spring Integration&lt;/a&gt; - A talk by Mark Fisher about Spring Integration (believe it or not, I don't know much about it - but I intend to learn ;-))&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;There are many other talks I'd like to see, just too many to list. Take a look at the &lt;a href="http://europe.springone.com/europe-2009/schedule/"&gt;SpringOne EU schedule&lt;/a&gt; for the full list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-7060259908057929026?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/7060259908057929026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=7060259908057929026&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/7060259908057929026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/7060259908057929026'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/04/apache-activemq-at-springone-eu.html' title='Apache ActiveMQ at SpringOne EU'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-2252900138991668050</id><published>2009-04-03T10:21:00.004-06:00</published><updated>2009-04-03T10:51:48.960-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='springsource'/><title type='text'>Working For SpringSource</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY38k7W2QI/AAAAAAAAAP8/AlUtr2ODfIk/s1600-h/springsource-logo.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 75px;" src="http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY38k7W2QI/AAAAAAAAAP8/AlUtr2ODfIk/s200/springsource-logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5320501523629136130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I keep hearing from folks who aren't aware that I made a move recently. So for those who don't already know it, I'm working for SpringSource now. So far the experience has been terrific because I'm surrounded by nothing but very smart people, some of whom I already knew and respected. SpringSource is most notable for one of the most widely adopted Java frameworks in existence today, the &lt;a href="http://springframework.org/"&gt;Spring Framework&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;I began using the Spring Framework back in 2003 and I can't see developing any new applications without using it. Although I don't have the privilege of working on the Spring Framework, I do get to heckle Juergen and team from the sidelines. My role hasn't changed much from the past in that I continue to do consulting and engineering. I  spend my time working on &lt;a href="http://activemq.apache.org/"&gt;Apache ActiveMQ&lt;/a&gt;, &lt;a href="http://camel.apache.org/"&gt;Apache Camel&lt;/a&gt;, &lt;a href="http://www.springsource.com/products/ams"&gt;SpringSource AMS&lt;/a&gt; and &lt;a href="http://www.springsource.com/products/tcserver"&gt;SpringSource tc Server&lt;/a&gt;. I still enjoy working with customers but I'm getting to spend a lot more time doing engineering work which is a nice change. &lt;br /&gt;&lt;br /&gt;If you want to hear me blather on more, just &lt;a href="http://www.twitter.com/brucesnyder"&gt;follow me on Twitter&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-2252900138991668050?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/2252900138991668050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=2252900138991668050&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/2252900138991668050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/2252900138991668050'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/04/working-for-springsource.html' title='Working For SpringSource'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY38k7W2QI/AAAAAAAAAP8/AlUtr2ODfIk/s72-c/springsource-logo.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-5041010431432033505</id><published>2009-04-03T09:49:00.004-06:00</published><updated>2009-04-03T11:10:16.531-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache camel integration'/><title type='text'>Need Integration? Camel Integrates With 70+ Protocols</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY1RckvYVI/AAAAAAAAAP0/QU7gpDbElO0/s1600-h/camel.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px;" src="http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY1RckvYVI/AAAAAAAAAP0/QU7gpDbElO0/s200/camel.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5320498583629160786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apache Camel already provides easy integration with over 70 different protocols! And the list is still growing! Take a look at the &lt;a href="http://camel.apache.org/components.html"&gt;Camel components&lt;/a&gt; and the &lt;a href="http://code.google.com/p/camel-extra/"&gt;Camel Extras&lt;/a&gt; project to see the protocols that exist today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-5041010431432033505?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/5041010431432033505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=5041010431432033505&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5041010431432033505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5041010431432033505'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/04/need-integration-camel-integrates-with.html' title='Need Integration? Camel Integrates With 70+ Protocols'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pSHP7VYSIjE/SdY1RckvYVI/AAAAAAAAAP0/QU7gpDbElO0/s72-c/camel.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-6232203808034079346</id><published>2009-04-02T12:12:00.008-06:00</published><updated>2009-04-03T11:24:26.777-06:00</updated><title type='text'>Why Hiring Consultants is Good For Business</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_pSHP7VYSIjE/SdUDaiM47JI/AAAAAAAAAPs/ORBvgoI7dfU/s1600-h/ren-stimpy.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 125px;" src="http://2.bp.blogspot.com/_pSHP7VYSIjE/SdUDaiM47JI/AAAAAAAAAPs/ORBvgoI7dfU/s200/ren-stimpy.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5320162289200458898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Anyone whose seen the goofball comedy The Office knows who Dwight is and how his co-workers enjoy winding him and watching him go. Well it turns out that the Dwights of the world (aka the oddball) or someone who thinks different or even just someone from the outside is actually &lt;a href="http://www.time.com/time/health/article/0,8599,1888696,00.html?cnn=yes"&gt;good for business&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This doesn't surprise me at all because as a consultant sometimes it is odd to walk into a business and discover that the reality inside doesn't quite match the reality outside. Inviting opinions from someone who doesn't know the business and isn't afraid to ask crazy questions helps everyone to see the familiar from a different point of view. And this is partially what I enjoy about being a consultant. By not having been a part of the team, you enter the group with a fresh perspective that will hopefully spawn many ideas. So assembling a team of miscreants and hooligans is not always a bad thing ;-).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-6232203808034079346?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/6232203808034079346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=6232203808034079346&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/6232203808034079346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/6232203808034079346'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/04/why-hiring-consultants-is-good-for.html' title='Why Hiring Consultants is Good For Business'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_pSHP7VYSIjE/SdUDaiM47JI/AAAAAAAAAPs/ORBvgoI7dfU/s72-c/ren-stimpy.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-537873230454566018</id><published>2009-04-01T22:38:00.000-06:00</published><updated>2009-04-02T12:08:27.632-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='calendars'/><title type='text'>Syncing Multiple Calendars With Google Calendar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dabbledoo.com/ee/images/uploads/appletell/iCal.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 100px;" src="http://www.dabbledoo.com/ee/images/uploads/appletell/iCal.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Calendars are important in my family. My wife and I are both busy professionals, I travel for work a fair amount and we have the events from our two kids as well. Given that we both use MacBook Pros at home this would be very easy. But for her professional life, my wife uses a Palm Treo phone and that's her master calendar. She (begrudgingly) syncs her Treo with her Windows PC at work. I use an iPhone which syncs easily with my MacBook. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.blogcdn.com/www.engadgetmobile.com/media/2006/11/11.5.06---goosync.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 157px;" src="http://www.blogcdn.com/www.engadgetmobile.com/media/2006/11/11.5.06---goosync.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So I hunted around a bit and found something called &lt;a href="http://www.goosync.com/"&gt;GooSync&lt;/a&gt; that can sync the Treo calendar with Google Calendar. This works great for her and all I had to do was sign up for a free account. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://busymac.com/images/icon.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 100px;" src="http://busymac.com/images/icon.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Syncing my iCal calendar from my MacBook was also easy using &lt;a href="http://busymac.com/"&gt;BusySync&lt;/a&gt;. This works great, but in the future it would really be nice if I could set up a CalDav server like the &lt;a href="http://www.apple.com/server/macosx/features/ical.html"&gt;iCal Server&lt;/a&gt; from Apple. &lt;br /&gt;&lt;br /&gt;At SpringSource we recently switched from using &lt;a href="http://www.zimbra.com/"&gt;Zimbra&lt;/a&gt; to Microsoft Exchange (blech) which made me pull out Entourage again (essentially Outlook/Lookout for the Mac - happy, happy, joy, joy). When this change occurred I started maintaining my Exchange calendar via Entourage which gave me yet another calendar to maintain. Fortunately Entourage has a feature that will automatically sync an Exchange calendar with iCal automatically. Unfortunately this is a client-side solution so Entourage must be running for the sync to take place. Luckily, EasySync just syncs another calendar from iCal to Google Calendar and my iPhone just does the same automatically. &lt;br /&gt;&lt;br /&gt;The whole point of all this syncing to Google Calendar is so that we can each share one another's calendars via Google Calendar. Each syncing solution syncs in a bi-directional manner from Google Calendar making all of this possible. We've been using this for nearly a year and so far we haven't had any hiccups with any of these solutions and everything has worked great. &lt;br /&gt;&lt;br /&gt;Good solutions are good because you don't hardly notice them after the initial configuration and that initial configuration doesn't require a huge time investment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-537873230454566018?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/537873230454566018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=537873230454566018&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/537873230454566018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/537873230454566018'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/04/syncing-multiple-calendars-with-google.html' title='Syncing Multiple Calendars With Google Calendar'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-9006877996866022890</id><published>2009-04-01T15:54:00.003-06:00</published><updated>2009-04-01T16:16:05.297-06:00</updated><title type='text'>EIP Patterns in OmniGraffle</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://graffletopia.com/images/previews/137/original.png?1212108551"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 250px;" src="http://graffletopia.com/images/previews/137/original.png?1212108551" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you use OmniGraffle and you haven't checked out &lt;a href="http://graffletopia.com/"&gt;Graffletopia&lt;/a&gt; yet, do it now! Graffletopia is full of stencils galore for OmniGraffle that have been created by folks in the community. &lt;br /&gt;&lt;br /&gt;Sadly, our non-Mac friends are out of luck with the fine collection of apps from the OmniGroup as all the Omni apps are only available on MacOS X. But if you're a Mac user, like my buddy &lt;a href="http://www.sonatype.com/people/author/jason/"&gt;Jason&lt;/a&gt; says, 'Omni apps are like crack.' Totally true! &lt;br /&gt;&lt;br /&gt;Here's an awesome &lt;a href="http://graffletopia.com/stencils/137"&gt;EIP patterns stencil&lt;/a&gt; for those who work with the EIP patterns and need to create nice diagrams noting the patterns. I've used this for a while but, again, someone noticed me using it recently and asked where I got the icons for the patterns. &lt;br /&gt;&lt;br /&gt;My latest cool find on Graffletopia is shown below, it's called &lt;a href="http://graffletopia.com/stencils/449"&gt;Napkin UML&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://graffletopia.com/images/previews/449/original.png?1237196049"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 175px" src="http://graffletopia.com/images/previews/449/original.png?1237196049" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Simple, straightforward UML that looks as if it was hand drawn.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-9006877996866022890?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/9006877996866022890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=9006877996866022890&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/9006877996866022890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/9006877996866022890'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/04/eip-patterns-in-omnigraffle.html' title='EIP Patterns in OmniGraffle'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-5562715755553537661</id><published>2009-04-01T10:23:00.001-06:00</published><updated>2009-04-02T14:56:09.397-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>Productivity Tools and Techniques</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://thumb.visualizeus.com/thumbs/08/04/04/cartoon,funny,list,procrastination,productivity,spongebob,to,do-184c68999c1dd8a81cad33d00af7afbb_m.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 125px;" src="http://thumb.visualizeus.com/thumbs/08/04/04/cartoon,funny,list,procrastination,productivity,spongebob,to,do-184c68999c1dd8a81cad33d00af7afbb_m.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It seems that many times when I am sitting side-by-side working with others, they start asking me about the software on my computer that they see me using. At that point I have explain GTD and many things surrounding it. So here are some unique productivity tools and techniques, some that I've used for a while and one I just discovered: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Getting_Things_Done"&gt;Getting Things Done (GTD)&lt;/a&gt; is a book and a way of working. In the last few years many apps have sprung up surrounding the GTD style including &lt;a href="http://www.omnigroup.com/applications/omnifocus/"&gt;OmniFocus&lt;/a&gt;, &lt;a href="http://www.rememberthemilk.com/"&gt;RememberTheMilk&lt;/a&gt;, &lt;a href="http://culturedcode.com/things/"&gt;Things&lt;/a&gt;, &lt;a href="http://bargiel.home.pl/iGTD/"&gt;iGTD&lt;/a&gt;, &lt;a href="http://www.gtdgmail.com/"&gt;GTDInbox/GTDGMail&lt;/a&gt; and many, many more. I have used and like RememberTheMilk and OmniFocus, though I must say that OmniFocus has won me over more because I used kGTD (though I haven't shelled out for the iPhone app yet). Check out this &lt;a href="http://www.priacta.com/Articles/Comparison_of_GTD_Software.php"&gt;GTD software comparison&lt;/a&gt; for a huge list of GTD software for many platforms.&lt;/li&gt; &lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.pomodorotechnique.com/"&gt;The Pomodoro Technique&lt;/a&gt; is interesting to me because I'm into GTD. This was introduced to me by my friend &lt;a href="http://blog.arendsen.net/"&gt;Alef&lt;/a&gt; and is rather practical. This technique helps you to actually execute if you use GTD. The Pomodoro Technique advises you to gather your tasks in the morning on a sheet of paper as a todo list and then work down the list in uncommitted blocks of 25 minute periods. Although David Allen says that the morning todo list idea is less than ideal, it works for some folks. I don't stick to it religiously, but when I use it I'm much more productive.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;(Just a quick mention since I mentioned GTD,  has anyone ready David Allen's new book, &lt;a href="http://www.davidco.com/miaw.php"&gt;Making It All Work&lt;/a&gt;, the follow-up to GTD? Unfortunately I haven't had the time to read this one yet.) &lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://dejal.com/timeout/"&gt;Dejal Time Out&lt;/a&gt; is great for sticking to a regular schedule of taking breaks throughout the work day. It also works well for use with the Pomodoro Technique mentioned above. Believe it or not, this is a great tool for keeping you focused on tasks by making you take regular breaks. For years I've always thought about difficult problems by getting away from them completely and doing something like playing my guitar. Well this app regularly reminds me to clear my mind to make room for productive thinking.&lt;/li&gt; &lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://visitsteve.com/work/selfcontrol/"&gt;SelfControl&lt;/a&gt; allows you to set up a blacklist of sites to block in an effort to make you stop visiting certain URLs. This app is funny but I'll bet it works, I haven't tried it yet. I typically will just close email apps and the browser (not always possible when developing web apps) to dampen the distraction that is the internet. Research shows that multi-tasking is bullshit. I like to call it multi-ignoring.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.apimac.com/timer/index.php"&gt;Timer for Mac OS X&lt;/a&gt; is something I used before I discovered Dejal Time Out. I still tend to go back and forth between this and Time Out. Just set the timer to count down for 25 minutes and go.&lt;/li&gt; &lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/time-tracker-mac/"&gt;Time Tracker&lt;/a&gt; is a very simple app for tracking time on a task. This one works well but is less needed if I can stick to working in 25 minute blocks.&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;This post is really a quick braindump of stuff. There are many other items that I could add and maybe I will over time through more posts. But for now, this is what I had available in the cache tonight. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Do you know of any other tools and techniques that you find handy? Tell me about them.&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-5562715755553537661?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/5562715755553537661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=5562715755553537661&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5562715755553537661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/5562715755553537661'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/03/productivity-tools-and-techniques.html' title='Productivity Tools and Techniques'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-7845850115154079689</id><published>2009-04-01T09:20:00.002-06:00</published><updated>2009-04-01T09:30:55.957-06:00</updated><title type='text'>Google CADIE - AI for Email and a Hilarious Home Page</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/googleblogs/images/cadie/anipanda.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 94px; height: 117px;" src="http://www.google.com/googleblogs/images/cadie/anipanda.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Early this morning when I logged into GMail, I noticed that the GMail home page was displaying information about Google's Cognitive Autoheuristic Distributed-Intelligence Entity (CADIE). Immediately I remembered playing with &lt;a href="http://search.cpan.org/dist/Chatbot-Eliza/"&gt;Chatbot::Eliza&lt;/a&gt; many years ago in Perl. A very interesting idea with many possibilities. &lt;br /&gt;&lt;br /&gt;Then I checked out the &lt;a href="http://cadiesingularity.blogspot.com/"&gt;CADIE homepage&lt;/a&gt; only to be greeted by a cheesy, panda-laden website with goofy music playing in the background. At first I thought that I must have landed on the wrong page somehow. But after reading the page and seeing the link to the technical info about CADIE, I really laughed. Good to see folks with a healthy sense of humor about themselves. What a hoot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-7845850115154079689?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/7845850115154079689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=7845850115154079689&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/7845850115154079689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/7845850115154079689'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/04/google-cadie-ai-for-email-and-hilarious.html' title='Google CADIE - AI for Email and a Hilarious Home Page'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-240671598681031234</id><published>2009-03-31T09:52:00.006-06:00</published><updated>2009-03-31T16:59:29.960-06:00</updated><title type='text'>Last Day to Get 40% Off of ActiveMQ in Action</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://manning.com/snyder/snyder_cover150.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 188px;" src="http://manning.com/snyder/snyder_cover150.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Today is the last day to get 40% off of &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=1063_140"&gt;ActiveMQ in Action&lt;/a&gt; (either print+ebook or just ebook). Just use the coupon code &lt;b&gt;activemq40&lt;/b&gt; to get the discount at the time of checkout. Hurry!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE: I've just been informed that the code above was mistakenly deactivated for a short time and has since been corrected. Now this code will not expire until tomorrow. So now you have an additional day!&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-240671598681031234?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/240671598681031234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=240671598681031234&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/240671598681031234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/240671598681031234'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/03/last-day-to-get-40-off-of-activemq-in.html' title='Last Day to Get 40% Off of ActiveMQ in Action'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-2707826125417750114</id><published>2009-03-30T16:48:00.003-06:00</published><updated>2009-03-30T16:54:36.513-06:00</updated><title type='text'>The Sheep Market</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_pSHP7VYSIjE/SdFMo0Fn-cI/AAAAAAAAAPk/rdXkHt-_F1I/s1600-h/sheep.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 205px; height: 205px;" src="http://2.bp.blogspot.com/_pSHP7VYSIjE/SdFMo0Fn-cI/AAAAAAAAAPk/rdXkHt-_F1I/s320/sheep.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5319116898961979842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This has been around the internet for a few years but it's still neat. If you haven't seen &lt;a href="http://www.thesheepmarket.com/"&gt;The Sheep Market&lt;/a&gt; yet, you should check it out. My kids love it and enjoy looking at the sheep drawings. Not only that, but the app itself is kinda cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-2707826125417750114?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/2707826125417750114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=2707826125417750114&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/2707826125417750114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/2707826125417750114'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/03/sheep-market.html' title='The Sheep Market'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_pSHP7VYSIjE/SdFMo0Fn-cI/AAAAAAAAAPk/rdXkHt-_F1I/s72-c/sheep.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-7090684630739785187</id><published>2009-03-17T12:51:00.003-06:00</published><updated>2009-03-17T13:15:40.047-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache camel eip'/><title type='text'>Apache Camel and EIP at JavaOne 2009</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eaipatterns.com/img/book_cover.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px;" src="http://www.eaipatterns.com/img/book_cover.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looks like I'll be headed to San Francisco to speak at JavaOne in June. If you're at all familiar with the wonderful &lt;a href="http://eaipatterns.com/"&gt;Enterprise Integration Patterns&lt;/a&gt; book, then this will be of interest to you since it's focused on using the EIP patterns in your applications. &lt;br /&gt;&lt;br /&gt;I'm doing a session titled &lt;a href="http://www28.cplan.com/cc230/session_details.jsp?isid=304839&amp;ilocation_id=230-1&amp;ilanguage=english"&gt;Enterprise Integration Patterns In Practice&lt;/a&gt; with Andreas Egloff from Sun. Andi is going to speak about &lt;a href="https://fuji.dev.java.net/"&gt;Fuji&lt;/a&gt; and I'll be talking about &lt;a href="http://camel.apache.org/"&gt;Apache Camel&lt;/a&gt;. Both software packages allow you to make use of EIP patterns in their own way. We're planning to discuss the patterns themselves and where they might fit into your applications, the use of Domain Specific Languages to express EIP patterns, the relation of EIP patterns to items such as Message Oriented Middleware and Service Oriented Architecture and we'll do a demo of  both Fuji and Camel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-7090684630739785187?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/7090684630739785187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=7090684630739785187&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/7090684630739785187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/7090684630739785187'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/03/apache-camel-and-eip-at-javaone-2009.html' title='Apache Camel and EIP at JavaOne 2009'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-3886275618679332765</id><published>2009-03-12T12:58:00.003-06:00</published><updated>2009-05-14T13:56:10.060-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Direct Linux Kernel Input</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.gnist.org/images/articles/sysrq_1_original.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 275px;" src="http://blog.gnist.org/images/articles/sysrq_1_original.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CAUTION: &lt;/b&gt;Wicked powerful feature in Linux&lt;br /&gt;&lt;br /&gt;I've worked with Linux since back around 1995 or 1996 and I was not aware of this feature until yesterday. Did you know that you can send commands directly into the Linux kernel via &lt;a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/en-US/Reference_Guide/s2-proc-sysrq-trigger.html"&gt;&lt;tt&gt;/proc/sysrq-trigger&lt;/tt&gt;&lt;/a&gt;? You can instruct the kernel to perform such tasks as rebooting the kernel and crashing the system among many others.  This winds up being very handy for testing purposes (and incredibly powerful). &lt;br /&gt;&lt;br /&gt;Just don't invoke this command without first checking with your sysadmin or you might be heavily flogged.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-3886275618679332765?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/3886275618679332765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=3886275618679332765&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3886275618679332765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3886275618679332765'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/03/direct-linux-kernel-input.html' title='Direct Linux Kernel Input'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-6668053556197842331</id><published>2009-03-10T21:36:00.006-06:00</published><updated>2009-03-31T09:52:11.227-06:00</updated><title type='text'>40% Off of ActiveMQ in Action!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://manning.com/snyder/snyder_cover150.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 188px;" src="http://manning.com/snyder/snyder_cover150.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Starting today Manning is offering 40% off &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=1063_140"&gt;ActiveMQ in Action&lt;/a&gt; (either print+ebook or just ebook) redeemable at checkout. You can use the coupon code &lt;b&gt;activemq40&lt;/b&gt; to get the discount. This offer expires on  Tuesday, 31 March 2009.&lt;br /&gt;&lt;br /&gt;Your Mom wants you to &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=1063_140"&gt;buy this book&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-6668053556197842331?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/6668053556197842331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=6668053556197842331&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/6668053556197842331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/6668053556197842331'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/03/40-off-of-activemq-in-action.html' title='40% Off of ActiveMQ in Action!'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-4486818035993040572</id><published>2009-03-05T20:56:00.003-07:00</published><updated>2009-03-05T22:15:04.397-07:00</updated><title type='text'>Web Designer/Webmaster Position at SpringSource</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_pSHP7VYSIjE/SbCi7mmQ4JI/AAAAAAAAAO8/Yk9-nv0ggtc/s1600-h/springsource-logo.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 222px; height: 83px;" src="http://1.bp.blogspot.com/_pSHP7VYSIjE/SbCi7mmQ4JI/AAAAAAAAAO8/Yk9-nv0ggtc/s320/springsource-logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5309923105526833298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please DO NOT APPLY for this position if you: &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Are a talentless hack whose best skill is procrastination&lt;/li&gt; &lt;br /&gt;&lt;li&gt;You crumble under pressure&lt;/li&gt; &lt;br /&gt;&lt;li&gt;You disdain collaborating with coworkers&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Please DO APPLY for this position if you:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Enjoy working in Flash, Illustrator and Photoshop&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Live to hack CSS, Javascript and PHP&lt;/li&gt; &lt;br /&gt;&lt;li&gt;You are enthusiastic and focused on users and their experience on your websites&lt;/li&gt; &lt;br /&gt;&lt;li&gt;You enjoy working with an incredibly talented group of folks&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You want to work for a company whose products are incredibly popular and have been adopted far and wide&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;At &lt;a href="http://springsource.com/"&gt;SpringSource&lt;/a&gt; we're looking for somebody who lives to handle everything about websites from graphic design to technical infrastructure to marketing to support to site analytics. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/jobs?viewJob=&amp;jobId=661524&amp;trk=NUS_JOBP_title&amp;goback=%2Ehom"&gt;APPLY TODAY&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-4486818035993040572?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/4486818035993040572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=4486818035993040572&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/4486818035993040572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/4486818035993040572'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/03/web-designerwebmaster-position-at.html' title='Web Designer/Webmaster Position at SpringSource'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_pSHP7VYSIjE/SbCi7mmQ4JI/AAAAAAAAAO8/Yk9-nv0ggtc/s72-c/springsource-logo.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-3121094659277801525</id><published>2009-03-05T14:15:00.007-07:00</published><updated>2009-03-05T17:25:47.907-07:00</updated><title type='text'>Systems Integration Has Done It Again, Mein Furer</title><content type='html'>Below is a clip from a film about Nazi Germany named &lt;a href="http://www.downfallthefilm.com/"&gt;Downfall&lt;/a&gt;(Der Untergang in German - thanks Emmanuel). The subtitles were added so as to relate the entire clip to systems integration and the seeming battle over control amongst teams inside of a company (as well as a little hat tip to my friend Ross and his system integration product named &lt;a href="http://www.mulesource.org/"&gt;Mule&lt;/a&gt;). This had me laughing out loud a few times - absolutely hilarious!&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4qeWTg5b3mw&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/4qeWTg5b3mw&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;For some reason the embedded video is a bit chopped so here's the &lt;a href="http://www.youtube.com/watch?v=4qeWTg5b3mw"&gt;link to YouTube&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-3121094659277801525?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/3121094659277801525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=3121094659277801525&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3121094659277801525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3121094659277801525'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/03/systems-integration-has-done-it-again.html' title='Systems Integration Has Done It Again, Mein Furer'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-4103210711173450525</id><published>2009-02-27T06:08:00.006-07:00</published><updated>2009-02-27T16:14:39.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac os x safari'/><title type='text'>Safari 4 Beta - Nice and Speedy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://images.apple.com/safari/images/button-download-icon-20090217.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 93px; height: 102px;" src="http://images.apple.com/safari/images/button-download-icon-20090217.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;I've been a dedicated Firefox user for years now, but I tend to open many, many tabs at once causing it to push the CPU quite a lot. This isn't a big deal when my MacBook Pro is plugged in but when running on battery it means that the battery life can take a serious hit - down to less than two hours at times. So over the last few months I have tended to dance back and forth between FireFox and Safari even more. &lt;br /&gt;&lt;br /&gt;Although there are some FireFox plugins I use fairly regularly, I've been living OK without them in Safar. The biggest discovery I made in Safari a couple months ago was the restoration of tabs and windows after quitting Safari. Firefox handles this automatically. After poking around under the History menu I found an option named 'Reopen All Windows From Last Session' and another option named 'Reopen Last Closed Window'. These two options in Safari are the equivalent of two options I use in Firefox all the time. The difference with Firefox is that it will prompt you when it opens asking if you'd like to restore the tabs and windows from the last session. Then this week I saw some folks talking about upgrading to Safari 4, so I took the plunge and it was well worth it. &lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Safari 4 is simply much faster. GMail is incredibly fast (not a huge surprise since it has always been faster than Firefox) - even faster than Safari 3.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The new visual history feature named Top Sites is nice eye candy but not earth-shattering as Opera already has similar features.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Top Sites also offers a nice search feature. It's really no different from standard history searching but it uses Top Sites so it shows the visual preview of the pages in your history.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tabs have been moved to the very top of the overall window which is a little goofy looking at first, but they can be dragged around and even dragged off the current window to make a new window or even dragged onto an existing window to form a tab.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Autocomplete on the browser command line with a suggestion about what you're typing is pretty cool.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The reload button has been moved to the end of the browser command line (like the iPhone).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Safari 4 upgraded and didn't break the DeliciousSafari plugin I use. Very nice considering that many Firefox plugins need to be upgraded after a FireFox upgrade.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;I'm sure there's much more to the Safari 4 upgrade, but these are the items I noticed right away. Here's a &lt;a href="http://www.apple.com/safari/features.html"&gt;list of 150 features in Safari 4&lt;/a&gt; from Apple with the new features flagged. &lt;br /&gt;&lt;br /&gt;One thing I found odd was that the upgrade required MacOS X to be rebooted. I'm sure there's good reason, but what a PITA. Oh well, small pain for big gains in speed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPDATE:&lt;/b&gt; Well, what I said about the DeliciousSafari seems to only apply to it. It looks like 1Password is not working at all so I need to look into reinstalling it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-4103210711173450525?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/4103210711173450525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=4103210711173450525&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/4103210711173450525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/4103210711173450525'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/02/safari-4-beta-nice-and-speedy.html' title='Safari 4 Beta - Nice and Speedy'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-3828957764097393419</id><published>2009-02-17T23:53:00.003-07:00</published><updated>2009-02-17T23:58:12.889-07:00</updated><title type='text'>Do You Need Integration Patterns? You Need Camel</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://fohn.net/camel-pictures-facts/the-pictures/Arabian-Camel-800x600.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://fohn.net/camel-pictures-facts/the-pictures/Arabian-Camel-800x600.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm in Germany consulting this week and it is cold and snowy - brrrr. I miss the Colorado sunshine. &lt;br /&gt;&lt;br /&gt;This is just a quick re-blog of Jon's awesome entry about EIPs and Camel named &lt;a href="http://janstey.blogspot.com/2009/02/apache-camel-more-eips-than-you-can.html"&gt;Apache Camel... more EIPs than you can shake a stick at!&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;If you need enterprise integration patterns, you need Apache Camel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-3828957764097393419?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/3828957764097393419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=3828957764097393419&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3828957764097393419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3828957764097393419'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/02/do-you-need-integration-patterns-you.html' title='Do You Need Integration Patterns? You Need Camel'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-4864623353866248937</id><published>2009-02-15T05:57:00.002-07:00</published><updated>2009-02-15T06:07:27.966-07:00</updated><title type='text'>If You Use Maven, You Need These Books</title><content type='html'>If you use Maven at all, you should really check out the list of books surrounding Maven and developing with Maven that &lt;a href="http://www.sonatype.com/documentation/books"&gt;Sontaype now offers&lt;/a&gt;. Judging by the quality of &lt;a href="http://www.sonatype.com/books/maven-book/reference/"&gt;Maven: The Definitive Guide&lt;/a&gt; and the quality of Sonatype software, the books on Nexus and Eclipse look equally good. &lt;br /&gt;&lt;br /&gt;I use m2e and Nexus in my daily development and can't live without either of them. m2e makes working with Maven from within Eclipse extremely easy and I use it every day. There are just too many great features in m2e to name them and I can't recommend it enough. I also use and am very happy with Nexus. In fact, &lt;a href="http://bsnyderblog.blogspot.com/2008/08/do-you-use-maven-if-so-you-need-nexus.html"&gt;I run a local copy of Nexus&lt;/a&gt; because it speeds up my Maven builds tremendously. If you don't believe me, try it out yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-4864623353866248937?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/4864623353866248937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=4864623353866248937&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/4864623353866248937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/4864623353866248937'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/02/if-you-use-maven-you-need-these-books.html' title='If You Use Maven, You Need These Books'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9088482399688345277.post-3442544407551401952</id><published>2009-02-09T16:02:00.004-07:00</published><updated>2009-02-09T16:40:48.914-07:00</updated><title type='text'>Use Dropins to Make Eclipse Plugin Management Easier</title><content type='html'>In Eclipse 3.3 I used to manage plugins by keeping them all in a local site that was a completely separate directory from my eclipse directory. In Eclipse 3.4, this functionality was more or less eliminated as adding a local site actually copies the plugin into the features and plugins dirs under the Eclipse dir. But last Summer I discovered a feature in Eclipse 3.4 that makes managing plugins much easier named &lt;a href="http://wiki.eclipse.org/Equinox_p2_Getting_Started#Dropins"&gt;dropins&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This is nothing more than a known watched directory named dropins that is scanned at startup. There are some additional features, but this is the basic functionality. It supports a few different formats but the one I've used is demonstrated below. In the base eclipse dir, I create a dir named dropins. Then I manually download and expand plugins that I'd like to use into the dropins dir. For example, here are the contents of a dropins dir I've used: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ls -1 ./eclipse/dropins/&lt;br /&gt;GEF-SDK-3.4.1&lt;br /&gt;GEF-zest-sdk-3.4.1&lt;br /&gt;ajdt_1.6.0_for_eclipse_3.4&lt;br /&gt;dtp-sdk_1.6.1&lt;br /&gt;emf-runtime-2.4.1&lt;br /&gt;mylyn-3.0.3-e3.4&lt;br /&gt;site-1.4.3&lt;br /&gt;wtp-sdk-R-3.0.2-20080921203356&lt;br /&gt;xsd-runtime-2.4.1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The contents of the GEF-SDK dir looks like this: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ls -1 ./eclipse/dropins/GEF-SDK-3.4.1/eclipse/&lt;br /&gt;epl-v10.html&lt;br /&gt;features&lt;br /&gt;notice.html&lt;br /&gt;plugins&lt;br /&gt;readme&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is nothing more than an expanded copy of the GEF-SDK. Instead of being expanded into the base eclipse dir, it's expanded into a dir of its own inside the dropins dir. so the contents of the features dir is here: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ls -1 ./eclipse/dropins/GEF-SDK-3.4.1/eclipse/features/           &lt;br /&gt;org.eclipse.draw2d.sdk_3.4.1.v20080806-67718083A56B4H3F84A-__6_2A32&lt;br /&gt;org.eclipse.draw2d.source_3.4.1.v20080806-3307w31191_2102462&lt;br /&gt;org.eclipse.draw2d_3.4.1.v20080806-3307w31191_2102462&lt;br /&gt;org.eclipse.gef.sdk_3.4.1.v20080806-7B7E297OK9c7WEeDMZJfHVNDRBPX&lt;br /&gt;org.eclipse.gef.source_3.4.1.v20080806-67718083A56B4H2A3213573&lt;br /&gt;org.eclipse.gef_3.4.1.v20080806-67718083A56B4H2A3213573&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And the contents of the plugins dir is here: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ls -1 ./eclipse/dropins/GEF-SDK-3.4.1/eclipse/plugins/&lt;br /&gt;org.eclipse.draw2d.doc.isv_3.4.1.v20080806.jar&lt;br /&gt;org.eclipse.draw2d.source_3.4.1.v20080806-3307w31191_2102462&lt;br /&gt;org.eclipse.draw2d_3.4.1.v20080910-1351.jar&lt;br /&gt;org.eclipse.gef.doc.isv_3.4.1.v20080806.jar&lt;br /&gt;org.eclipse.gef.examples.ui.pde_3.4.0.v20080226.jar&lt;br /&gt;org.eclipse.gef.source_3.4.1.v20080806-67718083A56B4H2A3213573&lt;br /&gt;org.eclipse.gef_3.4.1.v20080806.jar&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This makes managing many plugins in many different Eclipse instances much easier. But I must warn you that troubleshooting can try your nerves. If the contents of a dir is not formatted correctly, Eclipse just won't load the plugin. Though Eclipse does output some errors to the &lt;tt&gt;$WORKSPACE/.metadata/.log&lt;/tt&gt; file which can be very handy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9088482399688345277-3442544407551401952?l=bsnyderblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bsnyderblog.blogspot.com/feeds/3442544407551401952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=9088482399688345277&amp;postID=3442544407551401952&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3442544407551401952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9088482399688345277/posts/default/3442544407551401952'/><link rel='alternate' type='text/html' href='http://bsnyderblog.blogspot.com/2009/02/use-dropins-to-make-eclipse-plugin.html' title='Use Dropins to Make Eclipse Plugin Management Easier'/><author><name>Bruce Snyder</name><uri>http://www.blogger.com/profile/18285794923769241032</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07492076612999620644'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>