<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7016337</id><updated>2011-04-22T08:19:59.363+10:00</updated><category term='gdd07'/><category term='agile 2007'/><category term='gdd07au'/><title type='text'>geekbeers</title><subtitle type='html'>Ben Hogan's blog about Java, XP, Agile, OO and more.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7016337.post-7153806689175424834</id><published>2009-05-19T00:10:00.000+10:00</published><updated>2009-05-19T00:11:13.838+10:00</updated><title type='text'>The Downfall of Agile Hitler</title><content type='html'>Great video..&lt;br /&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/l1wKO3rID9g&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/l1wKO3rID9g&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-7153806689175424834?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/7153806689175424834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=7153806689175424834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/7153806689175424834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/7153806689175424834'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2009/05/downfall-of-agile-hitler.html' title='The Downfall of Agile Hitler'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-8933772744864492856</id><published>2009-05-13T20:06:00.003+10:00</published><updated>2009-05-13T20:09:30.072+10:00</updated><title type='text'>Runwayapp.com launched</title><content type='html'>Steve and the crew at Cogent have launched their first product, a shiny new Getting Things Done app. It's nicely done and looks awesome!&lt;br /&gt;&lt;br /&gt;Worth a visit to &lt;a href="http://runwayapp.com"&gt;http://runwayapp.com&lt;/a&gt; if only to see the clean UI and innovative "focus" feature.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-8933772744864492856?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://runwayapp.com' title='Runwayapp.com launched'/><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/8933772744864492856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=8933772744864492856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/8933772744864492856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/8933772744864492856'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2009/05/runwayappcom-launched.html' title='Runwayapp.com launched'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-5087095657362381851</id><published>2007-08-08T12:08:00.000+10:00</published><updated>2007-08-08T12:11:45.538+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile 2007'/><title type='text'>Facebook for Agile 2007</title><content type='html'>It's almost time for the Agile 2007 conference.  I've &lt;a href="http://www.facebook.com/group.php?gid=4224369491"&gt;created a Facebook &lt;/a&gt;for us to share photos, video and messages for those attending.&lt;br /&gt;&lt;br /&gt;I hope to see many of you there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-5087095657362381851?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/5087095657362381851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=5087095657362381851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/5087095657362381851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/5087095657362381851'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2007/08/facebook-for-agile-2007.html' title='Facebook for Agile 2007'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-8527833111421413463</id><published>2007-05-31T09:54:00.000+10:00</published><updated>2007-05-31T13:22:01.470+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gdd07au'/><category scheme='http://www.blogger.com/atom/ns#' term='gdd07'/><title type='text'>Google Gears - offline ajax</title><content type='html'>Google has just now announced a tool called Google Gears to run ajax applications offline.&lt;br /&gt;&lt;br /&gt;Currently google's search engine has not indexed the site (too new?) so use &lt;a href="http://gears.google.com/"&gt;gears.google.com&lt;/a&gt; to install the toolkit locally in your browser.&lt;br /&gt;&lt;br /&gt;InfoWeek has the &lt;a href="http://www.informationweek.com/news/showArticle.jhtml?articleID=199703671"&gt;story here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Aaron Boodman, Gears Engineer is speaking about the tookit at Google Developer Day in Sydney now and he says the following about gears:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gears is implemented as a browser plugin, and currently supports IE, Firefox, Windows, Mac, Linux and (almost) Safari.&lt;/li&gt;&lt;li&gt;The framework is fully open source (see code.google.com) and has a "new BSD" license.&lt;/li&gt;&lt;li&gt;Architecture of gears: You UI code &lt;span style="font-style: italic;"&gt;always &lt;/span&gt;uses the local DB, and the framework syncs with the server periodically. This allows a seamless online/offline experience.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The gears component "LocalServer" adds a special cache in the browser. It has a ManagedResourceStore that can store an entire web application into a "manifest" with an auto update feature to ensure changes to the web app are updated to the client.&lt;/li&gt;&lt;li&gt;Gears comes with a real database! It uses the tiny opensource SQLite db. Code example:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;db = google.gears.factory.create('beta.database', '1.0');&lt;/li&gt;&lt;li&gt;db. execute('insert into .... values (?, ?)', ['foo', 'bar']);&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;SDK now available online.&lt;/li&gt;&lt;li&gt;Has a database tool: dbquery.html&lt;/li&gt;&lt;li&gt;Has a component called "WorkerPool" that provides a thread-like non-blocking  javascript api. This allows for CPU intensive calculations to be run in the background without impacting the browser's responsiveness.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bonus: full text search capability using SQLite and Google's "FTS2" open source project. This supports millions of documents. FTS3 is in development with a much larger number of documents.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-8527833111421413463?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/8527833111421413463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=8527833111421413463' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/8527833111421413463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/8527833111421413463'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2007/05/google-gears-offline-ajax.html' title='Google Gears - offline ajax'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-6160430747524286250</id><published>2007-05-31T08:58:00.000+10:00</published><updated>2007-05-31T13:21:23.910+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gdd07au'/><category scheme='http://www.blogger.com/atom/ns#' term='gdd07'/><title type='text'>Google Developer Day Sydney</title><content type='html'>I'm at the Google Developer Day - I'll let you know how it goes.&lt;br /&gt;&lt;br /&gt;Here is a photo of the "blogger lounge.." :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_wQo2LzfwmKg/Rl4Dd14Nm5I/AAAAAAAAAAM/VNu9z0uew3g/s1600-h/Google+Developer+Day.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_wQo2LzfwmKg/Rl4Dd14Nm5I/AAAAAAAAAAM/VNu9z0uew3g/s320/Google+Developer+Day.jpg" alt="" id="BLOGGER_PHOTO_ID_5070494041679698834" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-6160430747524286250?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/6160430747524286250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=6160430747524286250' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/6160430747524286250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/6160430747524286250'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2007/05/google-developer-day-sydney.html' title='Google Developer Day Sydney'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_wQo2LzfwmKg/Rl4Dd14Nm5I/AAAAAAAAAAM/VNu9z0uew3g/s72-c/Google+Developer+Day.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-115387700108799573</id><published>2006-07-26T11:11:00.000+10:00</published><updated>2006-07-26T11:23:21.656+10:00</updated><title type='text'>Agile 2006 Day 3</title><content type='html'>Today Mike Cohn talked about agile estimating and planning (he's a good speaker) and gave out sets of planning poker cards.&lt;br /&gt;&lt;br /&gt;James Shore lead an interesting openspace talking about the possible replacement of automated end-to-end tests with a mixture of exploratory testing and root cause analysis combined with unit testing using TDD/xUnit and a special flavor of FIT tests he coined "Automatically Checked Examples".  I'm sure he'll have a article on his site soon to explain the details, but my take away from the session is that rapid delivery and verification is a very worthy goal for agile teams, and we may better achieve this by eliminating the slow and fragile automated end-to-end tests.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-115387700108799573?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/115387700108799573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=115387700108799573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/115387700108799573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/115387700108799573'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2006/07/agile-2006-day-3.html' title='Agile 2006 Day 3'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-115383401061692045</id><published>2006-07-25T23:15:00.000+10:00</published><updated>2006-07-27T23:02:10.216+10:00</updated><title type='text'>Unleash your inner bonobo!</title><content type='html'>2 days into Agile 2006 it has already been a fantastic conference.&lt;br /&gt;&lt;br /&gt;First day highlights (Sunday) included a hilarious talk by Linda Rising where she spoke about the &lt;a href="http://www.massey.ac.nz/%7Ekbirks/gender/viol/bonobos.htm"&gt;Bonobo species of ape&lt;/a&gt;, and how Agile may be tapping into the peaceful, loving and sharing natures of our evolutionary past.&lt;br /&gt;&lt;br /&gt;The "Ice Breaker" was excellent and I got to talk to Ward Cunningham there about his interest in biological computing that he has used to create electronic art such as the "&lt;a href="http://www.instructables.com/id/ENUETUPQ5MEP2879TA/"&gt;LED Throwie Talkie&lt;/a&gt;" that uses a single chip computer to blink the morse code of a wikipedia article about &lt;a href="http://graffitiresearchlab.com/"&gt;graffiti&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first full day (Monday) was good fun. I went to a workshop with Joshua Kerievsky where we test-drove his new refactoring playing cards (coming soon) similar to the excellent extreme programming &lt;a href="http://www.industriallogic.com/games/eppc.html"&gt;playing cards&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I bumped into Alistair Cockburn who spoke about his new passions: &lt;a href="http://alistair.cockburn.us/index.php/Main_Page"&gt;wiki&lt;/a&gt;, shoes, poetry and text-books.&lt;br /&gt;&lt;br /&gt;There was a faccinating talk about the different "Agile Styles" from Kent (XP), Mary (Lean), Ken (SCRUM), David (FDD) Jean (DSDM) and Alistar (Crystal) that you can watch online (in a week or so) on the latest site from Floyd Marinescu (The Server Side founder):  &lt;a href="http://www.infoq.com/"&gt;infoq.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I had a wonderful time last night at Mary and Tom Poppendieck's home where they held a fabulous cook-out complete with a tent, fresh corn, smores and a keg of beer. There were lots of interesting people there including some great people from NASA and Microsoft apart from the usual crowd of authors.&lt;br /&gt;&lt;br /&gt;After all this I returned to the hotel bar where a bunch of ThoughtWorkers played Carcassonne and &lt;a href="http://www.sjgames.com/munchkin/game/"&gt;Munchkin&lt;/a&gt; with Martin till the wee hours of the morning.&lt;br /&gt;&lt;br /&gt;And all of that in the first two days.. Wish me luck with day 3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-115383401061692045?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/115383401061692045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=115383401061692045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/115383401061692045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/115383401061692045'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2006/07/unleash-your-inner-bonobo.html' title='Unleash your inner bonobo!'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-115363705481702763</id><published>2006-07-23T16:41:00.000+10:00</published><updated>2006-07-23T16:44:14.830+10:00</updated><title type='text'>Agile 2006</title><content type='html'>I'm at my hotel in Minneapolis, having traveled from Australia for over 20 hours straight!&lt;br /&gt;&lt;br /&gt;Dispite my jet lag, I'm looking forward to tomorrow, when the Agile 2006 conference starts in Minneapolis.&lt;br /&gt;&lt;br /&gt;I hope to post some hilights of the conference here.. stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-115363705481702763?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/115363705481702763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=115363705481702763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/115363705481702763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/115363705481702763'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2006/07/agile-2006.html' title='Agile 2006'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-113866234745563367</id><published>2006-01-31T10:03:00.000+11:00</published><updated>2006-02-04T00:13:40.783+11:00</updated><title type='text'>Announcing Codegeist Plugin Workshop at SyXPAC (Sydney)</title><content type='html'>What: Codegeist Plugin Workshop&lt;br /&gt;When: This Monday, 6th Feb&lt;br /&gt;Where: Atlassian Office - Level 1, 275 George Street&lt;br /&gt;What: &lt;span style="font-weight: bold;"&gt;Bring your laptop!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Win up to $5,000&lt;br /&gt;- 6 weeks to build the coolest plugin&lt;br /&gt;- Get a free shirt&lt;br /&gt;&lt;br /&gt;In partnership with Atlassian, &lt;a href="http://confluence.public.thoughtworks.org/display/GN/GeekNightSydney"&gt;Syxpac&lt;/a&gt; is pleased to announce your&lt;br /&gt;secret weapon in the codegeist plugin programming competition.&lt;br /&gt;&lt;br /&gt;Meet and learn from the Confluence and JIRA developers all the tricks&lt;br /&gt;to building the coolest plugin.&lt;br /&gt;&lt;br /&gt;Competition details, prizes and rules: &lt;a href="http://atlassian.com/codegeist/"&gt;http://atlassian.com/codegeist/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-113866234745563367?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/113866234745563367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=113866234745563367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/113866234745563367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/113866234745563367'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2006/01/announcing-codegeist-plugin-workshop.html' title='Announcing Codegeist Plugin Workshop at SyXPAC (Sydney)'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-112373484083642222</id><published>2005-08-11T14:24:00.000+10:00</published><updated>2005-08-11T15:31:03.293+10:00</updated><title type='text'>No time for meetings!</title><content type='html'>Today we had a fascinating brown-bag lunch where Darren Cotterill spoke about his latest project. I left the talk feeling energised, and encouraged: his latest project was really working and it seemed agility had triumphed.&lt;br /&gt;&lt;br /&gt;Hopefully you can catch Darren at the local Sydney XP group: &lt;a href="http://syxpac.org/"&gt;SyXPAC&lt;/a&gt; talking about his experiences, but for now here are the highlights:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Weekly iterations mean &lt;span style="font-weight: bold;"&gt;no time for meetings&lt;/span&gt;, meaning very low ceremony: no formal Iteration Planning Meeting, Retrospective, Tear-Down of Kick-off. The development team is picking the stories for the next iteration.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;A &lt;span style="font-weight: bold;"&gt;small team &lt;/span&gt;of 3 devs, 1 PM, 1 BA are collocated and collaborating like mad: small teams rock!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Good use of the &lt;span style="font-weight: bold;"&gt;iteration whiteboard &lt;/span&gt;means it has become the source of truth, and the PM trusts it for reporting development status.&lt;/li&gt;&lt;li&gt;A running &lt;span style="font-weight: bold;"&gt;issues backlog&lt;/span&gt; on the whiteboard acts like a continuous retrospective.&lt;/li&gt;   &lt;li&gt;An &lt;span style="font-weight: bold;"&gt;excellent BA &lt;/span&gt;provides HTML screen mockups (no kidding!) along with simple story cards complete with acceptance criteria.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Recently a re-estimation involving the whole team provided &lt;span style="font-weight: bold;"&gt;trustworthy estimates&lt;/span&gt;. It was achieved using a relative size estimation technique, on a whiteboard, at a rate of 100 stories in 6 hours.&lt;/li&gt;   &lt;li&gt;An &lt;span style="font-weight: bold;"&gt;excellent burn-up-chart &lt;/span&gt;shows completed stories per iteration and three projected dates to completion of the three levels of story priority.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;The team is using a very &lt;span style="font-weight: bold;"&gt;simple change tracking &lt;/span&gt;mechanism where they create a new index card, and give it a number based on the original story card. For example if there was a requirements change to story number 33, the new card would be created as 33.1 and would be added to the total scope of the project, thus adjusting the projected completion date on the burn-up-chart.&lt;/li&gt;  &lt;/ol&gt;Not only is the process going well, but the technology is excellent:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;They have achieved the nirvana of a &lt;span style="font-weight: bold;"&gt;fast-feedback loop&lt;/span&gt; during development: edit, run and test in-place in the IDE using &lt;a href="http://jetty.mortbay.org/jetty/"&gt;Jetty &lt;/a&gt;and careful source tree management.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Using &lt;span style="font-weight: bold;"&gt;Hibernate, Spring &lt;/span&gt; and a tiny bit of Struts the team has achieved a light-weight and clean architecture.&lt;/li&gt;   &lt;li&gt;Using a &lt;a href="http://www.hibernate.org/43.html"&gt;&lt;span style="font-weight: bold;"&gt;session-in-view filter&lt;/span&gt;&lt;/a&gt; they can use the domain in the view. Note that I think this is a sign of maturity and a source of productivity in enterprise apps, but others may be shouting things like "encapsulation!" and "layered-architecture!". YMMV.&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold;"&gt;Automated functional testing &lt;/span&gt;using     &lt;a href="http://selenium.thoughtworks.com/index.html"&gt;the browser-driver Selenium&lt;/a&gt; allowing both visual and automated verification of end-to-end behavior in a real browser.&lt;/li&gt;   &lt;li&gt;&lt;a href="http://cruisecontrol.sourceforge.net/"&gt;CruiseControl&lt;/a&gt; continuous integration with &lt;span style="font-weight: bold;"&gt;automated deployment &lt;/span&gt;to a prod-like environment allowing instant and adhoc demos to the customer of the very latest code.&lt;/li&gt; &lt;/ol&gt;Now there is a project that sounds like a success waiting to happen. I guess our job now is to make our next project a bit more like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-112373484083642222?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/112373484083642222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=112373484083642222' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/112373484083642222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/112373484083642222'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2005/08/no-time-for-meetings.html' title='No time for meetings!'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-112046309006634351</id><published>2005-07-04T17:29:00.000+10:00</published><updated>2005-07-04T17:45:53.676+10:00</updated><title type='text'>4 Types of SOA</title><content type='html'>Boink!&lt;br /&gt;&lt;br /&gt;That's the sound of me understanding why my SOA-guru collegues don't seem to be making sense, they keep talking about SOA, but I'm not getting any signal.&lt;br /&gt;&lt;br /&gt;It turns out that there are at least  &lt;a href="http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html"&gt;4 types of SOA&lt;/a&gt; here that Martin has &lt;a href="http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html"&gt;kindly described&lt;/a&gt;. Here is my very shoddy summary of his much nicer article:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Type 1 - XML over HTTP&lt;/li&gt;   &lt;li&gt;Type 2 - Application builders consuming enterprise services&lt;/li&gt;   &lt;li&gt;Type 3 - "CORBA with angle brackets"&lt;/li&gt;   &lt;li&gt;Type 4 - Asynchronous message based enterprise integration&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;Now all we need are snazzy names for each type, so we don't end up having to use these names like &lt;a href="http://www.picocontainer.org/Inversion+of+Control+Types"&gt;what happened with IoC&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-112046309006634351?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/112046309006634351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=112046309006634351' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/112046309006634351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/112046309006634351'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2005/07/4-types-of-soa.html' title='4 Types of SOA'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-112011574971490691</id><published>2005-06-30T17:08:00.000+10:00</published><updated>2005-06-30T17:15:49.720+10:00</updated><title type='text'>Inheritance over Interfaces?</title><content type='html'>I was looking through Microsoft's &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconbaseclassusageguidelines.asp"&gt;Design Guidelines&lt;/a&gt; for Class Library Developers, and was a bit shocked to see this advice:  "Use base classes instead of interfaces whenever possible."&lt;br /&gt;&lt;br /&gt;My experience has been that inheritance is not much fun, and interfaces are great. Anyone want to discuss?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-112011574971490691?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/112011574971490691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=112011574971490691' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/112011574971490691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/112011574971490691'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2005/06/inheritance-over-interfaces.html' title='Inheritance over Interfaces?'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-111836813365842651</id><published>2005-06-10T11:30:00.000+10:00</published><updated>2005-06-10T11:48:53.663+10:00</updated><title type='text'>Trust Me, I'm a Manager</title><content type='html'>Since my last post (has it really been 6 months?) I have taken on the role of Iteration Manager for a team of 6 developers, part of a larger long running Agile project.&lt;br /&gt;&lt;br /&gt;despite my fervent belief that the most important attribute of a good agile manager is &lt;span style="font-weight: bold;"&gt;Demonstrating Trust&lt;/span&gt; I've had some unexpected problems doing just this.&lt;br /&gt;&lt;br /&gt;The first week in the role, I found myself checking up on the team every 10 minutes. I'd look up from my machine and say things like "do you want a pair for that?" and "How is that story card going?". To put it mildly, this behavior started annoying the team very quickly.&lt;br /&gt;&lt;br /&gt;Since that rocky start, I think I'm getting better at letting go. I've restricted my outbursts to a couple of times a day (often at the standup), but I still get the feeling I am powerless to control the outcome of the iteration without direct intervention.&lt;br /&gt;&lt;br /&gt;The big surprise for me was that after years of judging my managers ("They're showing a total lack of trust, and are clearly lacking people management skills") I find myself suddenly in their shoes. And their incompetence suddenly seems different from here. Ouch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-111836813365842651?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/111836813365842651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=111836813365842651' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/111836813365842651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/111836813365842651'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2005/06/trust-me-im-manager.html' title='Trust Me, I&apos;m a Manager'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-110204657152849934</id><published>2004-12-03T14:59:00.000+11:00</published><updated>2004-12-03T15:05:23.510+11:00</updated><title type='text'>Google doing BDUF?</title><content type='html'>From &lt;a href="http://www.developertesting.com/archives/200411/LiveBlogFromDeveloperTestingForum.html"&gt;www.developertesting.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"9:22 Google has focused a lot on the early part of the development process-quality via design and review process. Design documents are required for all non-trivial projects and a formal peer review process is done. All changes to code base require peer review. Strict programming style guidelines and formal initiation to those guidelines for all new engineers. Great code comes from a good early design and review process! Process moves a bit slower because of thise, but quality and end-results are better."&lt;br /&gt;&lt;br /&gt;While google have adopted a lot of XP practices such as TDD, it seems there is some formality in the design phase. I wonder how much use they are getting out of the documents they are producing.&lt;br /&gt;&lt;br /&gt;(BDUF = Big Design Up Front, see &lt;a href="http://xp.c2.com/BigDesignUpFront.html"&gt;http://xp.c2.com/BigDesignUpFront.html&lt;/a&gt;)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-110204657152849934?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/110204657152849934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=110204657152849934' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/110204657152849934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/110204657152849934'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/12/google-doing-bduf.html' title='Google doing BDUF?'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109867826388427928</id><published>2004-10-25T13:53:00.000+10:00</published><updated>2004-11-08T09:22:10.353+11:00</updated><title type='text'>Delegate Now</title><content type='html'>I'm working on a large code base, and I'm really starting to dislike inheritance as a way to combat code duplication.&lt;br /&gt;&lt;br /&gt;Every time I see an "extends" keyword, I think, gee, this would be much nicer if it was using delegation. It would be more explicit. It would be easier to test. It would be easier to re-use the delegated code elsewhere.&lt;br /&gt;&lt;br /&gt;But why dont we all use delegation all the time if it is so much nicer?&lt;br /&gt;&lt;br /&gt;One theory is that creating new classes is too costly. While this might not be true, I suspect that we could easily feel this way: "What do I call the new class?" "Where do I put it?" "Do I have to test it?". All these questions probably add up to make it less attractive than "Extract Superclass".&lt;br /&gt;&lt;br /&gt;But don't be fooled. Delegate Now, not later. Call the class "FooService" if you cant think of a name immediatley. Put it in the current package. Move or implement the test methods later.&lt;br /&gt;&lt;br /&gt;Furthur reading:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html?post=677&amp;amp;lastpage=1#talkback"&gt;javaworld&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.manageability.org/blog/stuff/inheritance_revisited/view"&gt;"The Fallacies of Inheritance"&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Cedric: &lt;a href="http://beust.com/weblog/archives/000077.html"&gt;"Don't call super"&lt;/a&gt; and &lt;a href="http://www.beust.com/weblog/archives/000004.html"&gt;"Inheritance considered evil" considered evil&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Charles Miller &lt;a href="http://fishbowl.pastiche.org/2002/12/17/inheritance_taxonomy"&gt;"Inheritance Taxonomy"&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Nat Pryce &lt;a href="http://nat.truemesh.com/archives/000193.html"&gt;"Refactor to Delegation"&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109867826388427928?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109867826388427928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109867826388427928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109867826388427928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109867826388427928'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/10/delegate-now.html' title='Delegate Now'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109842182514548056</id><published>2004-10-22T14:45:00.000+10:00</published><updated>2004-10-25T10:51:36.673+10:00</updated><title type='text'>The pen is mightier than the spreadsheet</title><content type='html'>Brian has &lt;a href="http://www.testing.com/cgi-bin/blog/2004/10/21#burndown-weyruch"&gt;just blogged about a burn down chart&lt;/a&gt;, he says: &lt;br/&gt; &lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;"My chart differs from Kelly's in that I removed some extrapolated lines he uses. I like to get away with as few predictions as possible. To emphasize that, &lt;span style="font-weight: bold;"&gt;I hand-drew the one prediction&lt;/span&gt;. That makes the line seem less authoritative and believable than one Excel draws, which is appropriate."&lt;/span&gt;&lt;/blockquote&gt;When your sponsors are making financial decisions based on your reports, you want to make it clear that the predicted end-date is just a guess, not a calculation.&lt;br/&gt;This concept has some similarity to the idea of &lt;a ref="http://abc.truemesh.com/archives/000185.html"&gt;fuzzy vs hard&lt;/a&gt; analysis and &lt;a  ref="http://www.ecommuse.com/research/publications/OZCHI2000.htm"&gt;lo-fi prototyping&lt;/a&gt;, and is probably even more important for project reporting than requirements gathering.&lt;br/&gt;Incidently, this is why I dont like function points and other calculated estimates, I prefer a hand written number on an index card: it is clear this is just a gut feel. It makes it much harder to leap to the wrong conclusion (that reality will somehow match up to the plan).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109842182514548056?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109842182514548056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109842182514548056' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109842182514548056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109842182514548056'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/10/pen-is-mightier-than-spreadsheet.html' title='The pen is mightier than the spreadsheet'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109574280656736936</id><published>2004-09-21T14:44:00.000+10:00</published><updated>2006-11-21T08:44:32.520+11:00</updated><title type='text'>Layered Architecture vs Living Domain Model</title><content type='html'>Update: Fowler has &lt;a href="http://martinfowler.com/bliki/LocalDTO.html"&gt;blogged about this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I just finished a great talk with &lt;a href="http://blogs.codehaus.org/people/tirsen/"&gt;Jon Tirsen&lt;/a&gt;, basically he points out that a layered architecture can get between you and your domain model.&lt;br /&gt;&lt;br /&gt;We were discussing that the "small talk way" (i.e. the OO way) is to have a rich, living, useful domain model that does all the interesting things in your application.&lt;br /&gt;&lt;br /&gt;If you have a layered architecture, you can end up having a &lt;a href="http://martinfowler.com/eaaCatalog/serviceLayer.html"&gt;service layer&lt;/a&gt; that seperates your client code (view or action) from your domain model.&lt;br /&gt;&lt;br /&gt;Jon pointed out that having one of these layers, when you dont need one, is like burning $50 notes. You end up writing hundreds of lines of code in your service layer including marshalling and unmarshalling across the boundaries.&lt;br /&gt;&lt;br /&gt;Another bad effect is that teams often end up implementing functionality as &lt;a href="http://martinfowler.com/eaaCatalog/transactionScript.html"&gt;transaction scripts&lt;/a&gt; rather than in the domain where it belongs. The more you do this, the more &lt;a href="http://www.martinfowler.com/bliki/AnemicDomainModel.html"&gt;anemic&lt;/a&gt; your domain model becomes, and the less useful your domain language becomes for solving problems in the future.&lt;br /&gt;&lt;br /&gt;The advice from all this is that the one kind of appliction that does NOT need a layered architecture is a web application. Your views can and should have a rich and close collaboration with your domain code.&lt;br /&gt;&lt;br /&gt;This conversation really got me thinking, is it actually possible to maintain a living domain model with a service layer in the way?&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109574280656736936?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109574280656736936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109574280656736936' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109574280656736936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109574280656736936'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/09/layered-architecture-vs-living-domain.html' title='Layered Architecture vs Living Domain Model'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109533750197953836</id><published>2004-09-16T22:15:00.000+10:00</published><updated>2004-09-16T22:25:01.980+10:00</updated><title type='text'>Are Index Cards Kaikaku?</title><content type='html'>My friend Julian Boot pointed out this Japanese word to me - Kaikaku - meaning a revolution. People sell a &lt;a href="http://www.factory-tours.com/"&gt;Kaikaku experience&lt;/a&gt; to help promote a cultural change.&lt;br /&gt;&lt;br /&gt;I think the idea is that really experiencing new ideas at an emotional level is needed to get cutural shift to happen.&lt;br /&gt;&lt;br /&gt;For me, good old index cards for planning can be a physical token of the cultural change involved with Agile planning.&lt;br /&gt;&lt;br /&gt;Are you using a spreadsheet for your agile project? Try index cards and see if you dont get better results, perhaps not because they are index cards, but because they are totally different to the old way of doing it.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109533750197953836?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109533750197953836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109533750197953836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109533750197953836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109533750197953836'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/09/are-index-cards-kaikaku.html' title='Are Index Cards Kaikaku?'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109529641986152505</id><published>2004-09-16T11:00:00.000+10:00</published><updated>2004-09-16T19:51:44.086+10:00</updated><title type='text'>Developer Estimation: Good or Evil?</title><content type='html'>In some projects, estimation seems be harmful to the team members where in other environments it can be benificial.&lt;br /&gt;&lt;br /&gt;The important difference is how you use the number. If you are using the number as a commitment to complete a task in a specific time or tracking individual developers success or failure against an estimate, then you have a problem.&lt;br /&gt;&lt;br /&gt;If, on the other hand, you use the number as a rough guide you are better off. Even better if you use the sum total of everyones estimates to get a holistic picture for planning.&lt;br /&gt;&lt;br /&gt;Why is this second way better? Because if you are using the first technique, you are setting people up to fail. Developers will often fail to deliver to their original "promise" and this is stressful, demoralising and unnessesary.&lt;br /&gt;&lt;br /&gt;Mike Williams has written &lt;a href="http://www.dogbiscuit.org/mdub/weblog/Tech/Agile/IdealTimeEstimationPain"&gt;this post&lt;/a&gt; on how the name you use for your estimates can also effect how they are percieved.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109529641986152505?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109529641986152505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109529641986152505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109529641986152505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109529641986152505'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/09/developer-estimation-good-or-evil.html' title='Developer Estimation: Good or Evil?'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109342301346271234</id><published>2004-09-10T14:36:00.000+10:00</published><updated>2004-09-16T19:54:17.543+10:00</updated><title type='text'>Bookshelved</title><content type='html'>Have you discovered Bookshelved yet? It is a Wiki community around books.&lt;br /&gt;&lt;br /&gt;While I was browsing through the site I discovered a treasure trove of technical book suggestions from some very well read software developers. I added the books that sounded interesting to my bookshelved wiki page:&lt;br /&gt;&lt;br /&gt;See my bookshelved page here: &lt;a href="http://bookshelved.org/cgi-bin/wiki.pl?BenHogan"&gt;http://bookshelved.org/cgi-bin/wiki.pl?BenHogan&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109342301346271234?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109342301346271234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109342301346271234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109342301346271234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109342301346271234'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/09/bookshelved.html' title='Bookshelved'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109419509549934950</id><published>2004-09-03T16:36:00.000+10:00</published><updated>2004-09-03T17:04:55.500+10:00</updated><title type='text'>Geekbeers?</title><content type='html'>I'm interested in building and participating in the community aspects of software development, particularly Agile, XP, OO, Java, .Net and other geeky things. &lt;br /&gt;&lt;br /&gt;I find some good beer really helps the conversation along.&lt;br /&gt;&lt;br /&gt;My first experience with this kind of community was the &lt;a href="http://www.xpdeveloper.com/xpdwiki/Wiki.jsp"&gt;Extreme Tuesday Club&lt;/a&gt; (XTC) in London, where some of the best developers in the world seem to hang out. Inspired by this I started a &lt;a href="http://www.xpdeveloper.com/xpdwiki/Wiki.jsp?page=BrisbaneXtc"&gt;Brisbane XTC&lt;/a&gt;, but sadly moved to Sydney before gaining much momentum. I am now involved with the &lt;a href="http://groups.yahoo.com/group/SyXPAC/"&gt;Sydney XP Activities Club&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you want to learn new things, this is a very enjoyable way to do it.  Hanging out with smart people over a beer is very different to reading a book alone.&lt;br /&gt;&lt;br /&gt;I'd like to invite you to give it a try, have a look at the &lt;a href="http://www.agilealliance.org/userGroups/index"&gt;Agile Alliance site&lt;/a&gt; for your local group.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109419509549934950?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109419509549934950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109419509549934950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109419509549934950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109419509549934950'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/09/geekbeers.html' title='Geekbeers?'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109419290356008521</id><published>2004-09-03T16:16:00.000+10:00</published><updated>2004-09-03T16:28:23.560+10:00</updated><title type='text'>ActiveMQ adds messaging to HTML</title><content type='html'>&lt;a href="http://radio.weblogs.com/0112098/2004/08/27.html"&gt;James Strachan&lt;/a&gt; recently pointed out that the ActiveMQ project has added some code that allows you to  &lt;span style="font-style: italic;"&gt;"...make HTTP requests from inside JavaScript to make a DHTML web page which can do dynamic, real time messaging." &lt;/span&gt;&lt;br /&gt;&lt;a href="http://joe.truemesh.com"&gt;Joe Walnes&lt;/a&gt; demoed this to me at ADC 2004 with a real working example. I'll update this blog entry with a mini tutorial when I get time to check it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109419290356008521?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109419290356008521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109419290356008521' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109419290356008521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109419290356008521'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/09/activemq-adds-messaging-to-html.html' title='ActiveMQ adds messaging to HTML'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109386625859778036</id><published>2004-08-30T21:30:00.000+10:00</published><updated>2004-08-30T22:31:40.443+10:00</updated><title type='text'>Cheap Ware</title><content type='html'>There is an enormous amount of high quality, easy to use, and &lt;i&gt;inexpensive&lt;/i&gt; development tools on the market.&lt;br /&gt;&lt;br /&gt;Here are my top picks (and their free equivalents)&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;&lt;a href="http://intellij.com/"&gt;IntelliJ&lt;/a&gt; - the best Java IDE bar none (like &lt;a href="http://www.google.com.au/search?q=eclipse"&gt;eclipse&lt;/a&gt; but better)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cenqua.com/"&gt;FishEye&lt;/a&gt; - put your version control system to work for you (like &lt;a href="http://www.google.com.au/search?q=viewcvs"&gt;viewcvs&lt;/a&gt; but better)&lt;/li&gt;   &lt;li&gt;&lt;a href="http://atlassian.com/"&gt;Jira&lt;/a&gt; - the defacto standard in bug and issue tracking software (like &lt;a href="http://www.google.com.au/search?q=bugzilla"&gt;bugzilla&lt;/a&gt; but better)&lt;/li&gt;&lt;li&gt;&lt;a href="http://atlassian.com/"&gt;Confluence&lt;/a&gt; - enterprise strength collaborative documentation (like a &lt;a href="http://wiki.org/wiki.cgi?WhatIsWiki"&gt;wiki&lt;/a&gt; but better)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sonicsoftware.com/products/sonicmq/index.ssp"&gt;SonicMQ&lt;/a&gt;- Light-weight messaging middleware (like &lt;a href="http://www.google.com.au/search?q=activeMQ"&gt;activeMQ&lt;/a&gt; but better)&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.cenqua.com/"&gt;Clover&lt;/a&gt; - code test coverage tool (like &lt;a href="http://www.google.com.au/search?q=emma+code+coverage"&gt;emma&lt;/a&gt; but better)&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.urbancode.com/projects/anthill/default.jsp"&gt;AntHill&lt;/a&gt;, &lt;a href="http://pols.co.uk/beetlejuice/index.html"&gt;BeetleJuice&lt;/a&gt; - continuous integration build servers (like &lt;a href="http://www.google.com.au/search?q=cruisecontrol"&gt;cruisecontrol&lt;/a&gt;/&lt;a href="http://www.google.com.au/search?q=damagecontrol"&gt;damagecontrol&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109386625859778036?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109386625859778036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109386625859778036' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109386625859778036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109386625859778036'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/08/cheap-ware.html' title='Cheap Ware'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109296981124047902</id><published>2004-08-20T12:16:00.000+10:00</published><updated>2004-08-30T22:58:33.356+10:00</updated><title type='text'>J2EE Strategy Panel</title><content type='html'>&lt;p&gt;I'll be at the &lt;a href="http://www.slatteryit.com.au/seminars.html"&gt;Enterprise Java Industry Forum&lt;/a&gt; in Sydney on Tuesday 31st August. I'll be on a panel addressing the &lt;em&gt;most important elements for a high quality enterprise J2EE strategy.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;We'll be talking about the following: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;J2EE Vendor Software Strategy&lt;br /&gt;- Vendor Selection&lt;br /&gt;- Interoperability &lt;/li&gt;&lt;li&gt;Architecture&lt;br /&gt;- Presentation Layer&lt;br /&gt;- Persistence Layer&lt;br /&gt;- Integration Layer&lt;/li&gt;&lt;li&gt;Open Source Strategy&lt;br /&gt;- Management&lt;br /&gt;- Selection&lt;/li&gt;&lt;li&gt;Quality&lt;br /&gt;- Testing practices&lt;br /&gt;- Programming practices&lt;/li&gt;&lt;li&gt;People&lt;br /&gt;- Training&lt;br /&gt;- Agile development practices&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Vendor Selection&lt;/span&gt; - Adopt an lightweight, evolutionary strategy.&lt;br /&gt;&lt;br /&gt;What EJB application server should I buy?  This is the &lt;i&gt;wrong question&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Firstly, any technology or tool choice is not nearly as important as the quality of your people, your working environment or your software design.&lt;br /&gt;&lt;br /&gt;Ask yourself, what am I trying to achieve? Standardisation? Why? Probably you are looking to lower your cost of maintenence.&lt;br /&gt;&lt;br /&gt;But &lt;b&gt;standardisation can bite you in the arse&lt;/b&gt;. There is a risk to making a descision too early, and if you choose the wrong tool for the job, you are in trouble. But if you choose the wrong tool for the next 5 years, you are toast. Chris Matts &lt;a href="http://abc.truemesh.com/archives/000138.html"&gt;explains&lt;/a&gt; in &lt;a href="http://abc.truemesh.com/archives/000230.html"&gt;these&lt;/a&gt; &lt;a href="http://abc.truemesh.com/archives/000252.html"&gt;articles&lt;/a&gt;&lt;b&gt; &lt;/b&gt;&lt;a href="http://abc.truemesh.com/archives/000253.html"&gt;about &lt;/a&gt;&lt;a href="http://abc.truemesh.com/archives/000315.html"&gt;options&lt;/a&gt; &lt;a href="http://abc.truemesh.com/archives/000255.html"&gt;theory&lt;/a&gt;, as used in the financial markets to manage risk. Options have value because they &lt;b&gt;defer a descision&lt;/b&gt;.&lt;b&gt; &lt;/b&gt;The Lean Software Development guru Mary Poppendick say in &lt;a href="http://www.poppendieck.com/pdfs/Predictability_Paradox.pdf"&gt;this article&lt;/a&gt;, you should defer all descisions till the &lt;b&gt;last responsible moment&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;We should strive to &lt;b&gt;have defaults, not standards&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Standard have another dark side, if you mandate standards, you will miss out on any cost savings you might discover as you go along. You aslo might also find that &lt;b&gt;really good developers don't like being told how to do their job&lt;/b&gt;, infact you might find all your best people leaving if you mandate a standard, lowering the skills in your organisation and increasing turnover.&lt;br /&gt;&lt;br /&gt;Having said all that, what EJB container should I use? My answer is &lt;b&gt;&lt;i&gt;Don't use EJB!&lt;/i&gt;&lt;/b&gt; There is a growing trend in the java community towards lightweight containers because they are open source, simple and help developers write enterprise apps in a decoupled and more maintainable way. Now as Mike Cannon-Brookes from Atlassian says, "The big vendors don't like lightweight containers." and for obvious reasons, only one being that they are free. Don't let this stop you.&lt;br /&gt;&lt;br /&gt;If you find you still have the urge to buy something up front,  have a look at this collection of awesome &lt;a href="http://geekbeers.blogspot.com/2004/08/cheap-ware.html"&gt;&lt;i&gt;&lt;b&gt;cheap ware&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; as these tools can be much &lt;span style="font-style: italic;"&gt;more &lt;/span&gt;valuable than their large, enterprise scale and expensive equivalents. They are less complicated and quicker to integrate, they add less overhead to the project, they are quicker to learn and can even have better support. Some even include full source code, for example, Confluence.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;People&lt;/span&gt;&lt;br /&gt;People issues are going make or break your J2EE project. The one rule is, you can't affort to &lt;span style="font-style: italic;"&gt;not have &lt;/span&gt;really great people. One really experienced developer outweighs any product or process impact.&lt;br /&gt;&lt;br /&gt;Want an effective J2EE development team? You need to &lt;i&gt;infect &lt;/i&gt;your people with as much experience and knowledge that you can. Using a military metaphor, Jason Yip has said you should use &lt;a href="http://jchyip.blogspot.com/2004/08/force-multiplication-and-enabling.html"&gt;force multiplication&lt;/a&gt; to skill up your people. The idea is that you should get a bunch of really talented developers and start succeeding in your organisation with them, as each team becomes effective you slowly split the team in half and spread the experience like a virus.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109296981124047902?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109296981124047902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109296981124047902' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109296981124047902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109296981124047902'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/08/j2ee-strategy-panel.html' title='J2EE Strategy Panel'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109297000291804861</id><published>2004-08-20T09:44:00.000+10:00</published><updated>2004-08-20T12:47:31.596+10:00</updated><title type='text'>Constructor Dependency Injection In Java</title><content type='html'>I have written a draft article on &lt;a href="http://lizardsoftware.com/thewiki/ConstructorDependencyInjectionInJava"&gt;Constructor Dependency Injection In Java&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Your comments would be appreciated.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109297000291804861?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109297000291804861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109297000291804861' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109297000291804861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109297000291804861'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/08/constructor-dependency-injection-in.html' title='Constructor Dependency Injection In Java'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-109284070496685682</id><published>2004-08-19T00:40:00.000+10:00</published><updated>2004-08-20T14:25:17.080+10:00</updated><title type='text'>Too much XP bad for perspective?</title><content type='html'>I just finished a conversation with a good friend of mine on yahoo, back in London.&lt;br /&gt;&lt;br /&gt;He is actually doing waterfall, the full thing, in all its glory! He is working 70 hours a week, and the consultants at the client site are doing the full power-point, ms-word, up-front, plan, design and schedule thing to the hilt.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"the hillarious thing is, we are so far behind schedule that none of the docs relate to the solution"&lt;/i&gt; he says.&lt;br /&gt;&lt;br /&gt;Doing XP for years has been bad for my perspective. I'm not sure I could tolerate that kind of environment any longer.&lt;br /&gt;&lt;br /&gt;Am I ruined as a consultant?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-109284070496685682?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/109284070496685682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=109284070496685682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109284070496685682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/109284070496685682'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/08/too-much-xp-bad-for-perspective.html' title='Too much XP bad for perspective?'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7016337.post-108683667922139425</id><published>2004-06-10T12:47:00.000+10:00</published><updated>2004-06-11T21:11:35.100+10:00</updated><title type='text'>The Secret Hibernate Go-Faster Switch</title><content type='html'>Gavin King recently helped us with our hibernate performance and we extracted from him a few secrets, one of which is the undocumented "batch-size" attribute. To use it add the attribute as shown here:&lt;br /&gt;&lt;br /&gt;&amp;lt;hibernate-mapping&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;class name="tw.Foo" &lt;b&gt;batch-size="25"&lt;/b&gt; /&amp;gt;&lt;br /&gt;&amp;lt;/hibernate-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt;You might already know that Hibernate creates its queries on startup, but if batch-size is more than 1, it creates three. For example if batch size is 25 it create the following queries:&lt;br /&gt;- select domain where id = '?'&lt;br /&gt;- select domain where id = '?' or id='?' ... (for 5 possible ids)&lt;br /&gt;- select domain where id = '?' or id='?' or id='?' ... (for 25 ids)&lt;br /&gt;&lt;br /&gt;Where the size of the second query is the square root of the batch size.&lt;br /&gt;&lt;br /&gt;If there were 10 objects in your collection hibernate will do the middle query twice rather than the default behavior that is using the first query 10 times, thus improving your performance!&lt;br /&gt;&lt;br /&gt;When asked why this is not on by default, Gavin said he felt this feature was not the ideal way to load collections, instead he prefers some more advanced techniques, but for me, the simplicity makes it a no-brainer.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7016337-108683667922139425?l=geekbeers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekbeers.blogspot.com/feeds/108683667922139425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7016337&amp;postID=108683667922139425' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/108683667922139425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7016337/posts/default/108683667922139425'/><link rel='alternate' type='text/html' href='http://geekbeers.blogspot.com/2004/06/secret-hibernate-go-faster-switch.html' title='The Secret Hibernate Go-Faster Switch'/><author><name>Ben Hogan</name><uri>http://www.blogger.com/profile/03012513938957361790</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
