<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<meta http-equiv="Expires" content="Mon, 01 Jan 1990 01:00:00 GMT" />
	<meta name="generator" content="Squib/0.4.0.282" />
	<meta name="author" content="Matt Mower" />
	<meta name="keywords" content="matt mower,london,paoga,squib" />
	<meta name="description" content="Curiouser and Curiouser is the weblog of Matt Mower a London based technical marketing manager for software company PAOGA. In his spare time Matt Mower enjoyes developing software applications including this weblog application Squib." />
	<title>Curiouser and Curiouser!</title>
	<link href="http://matt.blogs.it/rss.xml" rel="alternate" title="RSS" type="application/rss+xml" />
<link href="http://matt.blogs.it/themes/fragen3.14/styles/theme_candc.css" media="screen" rel="stylesheet" type="text/css" />

</head>
<body>
<div id="page">
<div id="banner">
    <h1>Curiouser and Curiouser!</h1>
    <em>'Where shall I begin, please your Majesty?' He asked. 'Begin at the beginning,'
the King said, very gravely, 'and go on till you come to the end: then stop.'</em>
</div>
<div id="nav">
    
<div class="box" id="box_about">
<p><strong>About</strong></p>

<p>Wherein Matt Mower (aka rubymatt on FreeNode) rambles about technology, the love of a good MacTop, ruby coding, rails, topics, knowledge management and learning, and politics.</p>
</div>


    
<div class="box" id="box_navigation">
<p><strong>Navigation</strong></p>

<ul>
<li><a href="http://matt.blogs.it/">Home</a></li>
<li><a href="http://matt.blogs.it/all_posts.html">All Posts by Title</a></li>
<li><a href="http://matt.blogs.it/all_archives.html">Monthly Archives</a></li>
<li><a href="http://matt.blogs.it/topics/index.html">Topics</a></li>
</ul>
</div>


    
    
<div class="box" id="box_blogroll">
<strong>Blogroll</strong><ul class="blogroll"><li><a class="orangeButton" href="http://www.tapestrycomics.com/dilbert.xml">XML</a> <a href="http://www.dilbert.com/">Dilbert</a></li>
<li><a class="orangeButton" href="http://www.tapestrycomics.com/getfuzzy.xml">XML</a> <a href="http://www.comics.com//comics/getfuzzy/">Get Fuzzy</a></li>
<li><a class="orangeButton" href="http://www.tapestrycomics.com/liberty.xml">XML</a> <a href="http://www.comics.com/creators/liberty/">Liberty Meadows</a></li>
<li><a class="orangeButton" href="http://www.phoenyx.net/feeds/comics/hedge.rdf">XML</a> <a href="http://www.comics.com/comics/hedge/">Over the Hedge</a></li>
<li><a class="orangeButton" href="http://www.tapestrycomics.com/peanuts.xml">XML</a> <a href="http://www.comics.com//comics/peanuts/">Peanuts</a></li>
<li><a class="orangeButton" href="http://atheos.de/funnies/pvp.rdf">XML</a> <a href="http://www.pvponline.com/">PvP Online</a></li>
<li><a class="orangeButton" href="http://rss.xiffy.nl/xml.php?channel=391">XML</a> <a href="http://www.userfriendly.org/">User Friendly the Comic Strip. by Illiad</a></li>
<li><a class="orangeButton" href="http://www.tapestrycomics.com/wizardofid.xml">XML</a> <a href="http://www.comics.com/creators/wizardofid/">Wizard of Id</a></li>
<li><a class="orangeButton" href="http://matt.blogs.it/rss.xml ">XML</a> <a href="http://matt.blogs.it/">Curiouser and Curiouser!</a></li>
<li><a class="orangeButton" href="http://www.pubsub.com/site_stats_feed.php?site=matt.blogs.it">XML</a> <a href="http://www.pubsub.com/linkcounts.php">PubSub PubStats for matt.blogs.it</a></li>
<li><a class="orangeButton" href="http://www.technorati.com/watchlists/rss.html?wid=2122">XML</a> <a href="http://www.technorati.com/search/matt.blogs.it">Technorati Search for: Curiouser and curiouser!</a></li>
<li><a class="orangeButton" href="http://www.terryfrazier.com/weblog/rss.xml">XML</a> <a href="http://www.terryfrazier.com/weblog/index">b.cognosco</a></li>
<li><a class="orangeButton" href="http://www.bethlet.net/atom.xml">XML</a> <a href="http://www.bethlet.net/">bethlet.net</a></li>
<li><a class="orangeButton" href="http://del.icio.us/rss/devzero/osx">XML</a> <a href="http://del.icio.us/devzero/osx">del.icio.us/devzero/osx</a></li>
<li><a class="orangeButton" href="http://del.icio.us/rss/tag/osx">XML</a> <a href="http://del.icio.us/tag/osx">del.icio.us/tag/osx</a></li>
<li><a class="orangeButton" href="http://weblog.infoworld.com/foster/rss.xml">XML</a> <a href="http://weblog.infoworld.com/foster/">Ed Foster's Radio Weblog</a></li>
<li><a class="orangeButton" href="http://blog.grahamsadd.com/atom.xml">XML</a> <a href="http://blog.grahamsadd.com/">Graham Sadd's Weblog</a></li>
<li><a class="orangeButton" href="http://feeds.feedburner.com/letTheGoodTimesRollByGuyKawasaki">XML</a> <a href="http://blog.guykawasaki.com/">Let the Good Times Roll by Guy Kawasaki</a></li>
<li><a class="orangeButton" href="http://blog.mathemagenic.com/rss.xml">XML</a> <a href="http://blog.mathemagenic.com/">Mathemagenic</a></li>
<li><a class="orangeButton" href="http://maxblumberg.typepad.com/dailymusings/atom.xml">XML</a> <a href="http://maxblumberg.typepad.com/dailymusings/">Max Blumberg Positioning Game</a></li>
<li><a class="orangeButton" href="http://www.drmartinhall.com/index.rdf">XML</a> <a href="http://www.drmartinhall.com/">Minessence -- Doc Martin's Musings</a></li>
<li><a class="orangeButton" href="http://theobvious.typepad.com/blog/atom.xml">XML</a> <a href="http://theobvious.typepad.com/blog/">The Obvious?</a></li>
<li><a class="orangeButton" href="http://onlyagame.typepad.com/only_a_game/atom.xml">XML</a> <a href="http://onlyagame.typepad.com/only_a_game/">Only a Game</a></li>
<li><a class="orangeButton" href="http://paolo.evectors.it/rss.xml">XML</a> <a href="http://paolo.evectors.it/">Paolo Valdemarin: Paolo's Weblog</a></li>
<li><a class="orangeButton" href="http://bash.org/xml/">XML</a> <a href="http://www.bash.org">QDB: Quote Database</a></li>
<li><a class="orangeButton" href="http://ross.typepad.com/blog/index.rdf">XML</a> <a href="http://ross.typepad.com/blog/">Ross Mayfield's Weblog</a></li>
<li><a class="orangeButton" href="http://www.scripting.com/rss.xml">XML</a> <a href="http://www.scripting.com/">Scripting News</a></li>
<li><a class="orangeButton" href="http://www.myelin.co.nz/post/rss.xml">XML</a> <a href="http://www.myelin.co.nz/post/">Second p0st</a></li>
<li><a class="orangeButton" href="http://www.synesthesia.co.uk/blog/feed/rss2/">XML</a> <a href="http://www.synesthesia.co.uk/blog">Synesthesia</a></li>
<li><a class="orangeButton" href="http://the.taoofmac.com/space/RecentChanges?filter=blog&amp;amp;format=rss">XML</a> <a href="http://the.taoofmac.com/space">The Tao of Mac</a></li>
<li><a class="orangeButton" href="http://anjo.blogs.com/metis/index.rdf">XML</a> <a href="http://anjo.blogs.com/metis/">Anjo Anjewierden</a></li>
<li><a class="orangeButton" href="http://www.beyondbullets.com/index.rdf">XML</a> <a href="http://www.beyondbullets.com/">beyond bullets</a></li>
<li><a class="orangeButton" href="http://bps-research-digest.blogspot.com/atom.xml">XML</a> <a href="http://bps-research-digest.blogspot.com">BPS Research Digest</a></li>
<li><a class="orangeButton" href="http://chocnvodka.blogware.com/blog/index.xml">XML</a> <a href="http://chocnvodka.blogware.com/blog">Chocolate and Vodka</a></li>
<li><a class="orangeButton" href="http://feeds.feedburner.com/Corporatebloggingblog">XML</a> <a href="http://www.corporateblogging.info/">CorporateBloggingBlog</a></li>
<li><a class="orangeButton" href="http://del.icio.us/rss/tag/lifehacks">XML</a> <a href="http://del.icio.us/tag/lifehacks">del.icio.us/tag/lifehacks</a></li>
<li><a class="orangeButton" href="http://www.firstadopter.com/index.rdf">XML</a> <a href="http://www.firstadopter.com/">FirstAdopter.com</a></li>
<li><a class="orangeButton" href="http://homepage.mac.com/dave_rogers/news.rss">XML</a> <a href="http://homepage.mac.com/dave_rogers/">Groundhog Day</a></li>
<li><a class="orangeButton" href="http://cgi.pbs.org/cgi-registry/cringely/cringelyrdf.pl">XML</a> <a href="http://www.pbs.org/cringely/">I, Cringely @ PBS.org</a></li>
<li><a class="orangeButton" href="http://marktsinfoblog.blogspot.com/atom.xml">XML</a> <a href="http://marktsinfoblog.blogspot.com">Mark T's information blog</a></li>
<li><a class="orangeButton" href="http://maxblumberg.typepad.com/maxwellbeing/index.rdf">XML</a> <a href="http://maxblumberg.typepad.com/maxwellbeing/">MaxWellBeing</a></li>
<li><a class="orangeButton" href="http://dev.metavalues.com/metavalues/timeline?daysback=90&amp;amp;max=50&amp;amp;wiki=on&amp;amp;ticket=on&amp;amp;changeset=on&amp;amp;milestone=on&amp;amp;format=rss">XML</a> <a href="http://bidwell.textdrive.com:9009/metavalues/timeline">MetaValues: Timeline</a></li>
<li><a class="orangeButton" href="http://blog.monkeymethods.org/atom.xml">XML</a> <a href="http://blog.monkeymethods.org/">monkey methods</a></li>
<li><a class="orangeButton" href="http://googleblog.blogspot.com/atom.xml">XML</a> <a href="http://googleblog.blogspot.com">Official Google Blog</a></li>
<li><a class="orangeButton" href="http://presentationzen.blogs.com/presentationzen/atom.xml">XML</a> <a href="http://presentationzen.blogs.com/presentationzen/">Presentation Zen</a></li>
<li><a class="orangeButton" href="http://simon.incutio.com/syndicate/rss1.0">XML</a> <a href="http://simon.incutio.com/">Simon Willison's Weblog</a></li>
<li><a class="orangeButton" href="http://www.unstruct.org/wp-rdf.php">XML</a> <a href="http://www.unstruct.org">unstruct.org</a></li>
<li><a class="orangeButton" href="http://www.wingedpig.com/index.rdf">XML</a> <a href="http://www.wingedpig.com/">wingedpig.com - Mark Fletcher's Blog</a></li>
<li><a class="orangeButton" href="http://feeds.feedburner.com/Wonderland">XML</a> <a href="http://crystaltips.typepad.com/wonderland/">Wonderland</a></li>
<li><a class="orangeButton" href="http://psychcentral.com/blog/feed/">XML</a> <a href="http://psychcentral.com/blog">World of Psychology</a></li>
<li><a class="orangeButton" href="http://www.slash7.com/xml/rss/feed.xml">XML</a> <a href="http://www.slash7.com/">(24)slash7</a></li>
<li><a class="orangeButton" href="http://www.artima.com/rubycs/feeds/rubycs.rss">XML</a> <a href="http://www.artima.com/">Articles published in Ruby Code &amp; Style</a></li>
<li><a class="orangeButton" href="http://www.chadfowler.com/index.cgi?rss">XML</a> <a href="http://www.chadfowler.com/index.cgi">ChadFowler.com</a></li>
<li><a class="orangeButton" href="http://feeds.feedburner.com/curthibbs">XML</a> <a href="http://blog.curthibbs.us/articles">Curt's Comments</a></li>
<li><a class="orangeButton" href="http://eigenclass.org/hiki.rb?c=rss;tags=blog">XML</a> <a href="http://eigenclass.org/hiki.rb?c=recent">Eigenclass (blog)</a></li>
<li><a class="orangeButton" href="http://www.livejournal.com/users/drbrain/data/rss">XML</a> <a href="http://www.livejournal.com/users/drbrain/">Eric Hodel</a></li>
<li><a class="orangeButton" href="http://tomcopeland.blogs.com/juniordeveloper/rss.xml">XML</a> <a href="http://tomcopeland.blogs.com/juniordeveloper/">Junior developer</a></li>
<li><a class="orangeButton" href="http://www.koziarski.net/feed/atom/">XML</a> <a href="http://www.koziarski.net">Koz Speaks</a></li>
<li><a class="orangeButton" href="http://www.loudthinking.com/index.rdf">XML</a> <a href="http://www.loudthinking.com/">Loud Thinking</a></li>
<li><a class="orangeButton" href="http://www.mad4milk.net/feeds/tag/moo.fx/weblog">XML</a> <a href="http://www.mad4milk.net/tag/weblog/moo.fx">mad4milk feed for tag moo.fx in weblog section</a></li>
<li><a class="orangeButton" href="http://www.magpiebrain.com/index_full.xml">XML</a> <a href="http://www.magpiebrain.com/">magpiebrain</a></li>
<li><a class="orangeButton" href="http://mir.aculo.us/xml/rss/feed.xml">XML</a> <a href="http://mir.aculo.us/articles">mir.aculo.us</a></li>
<li><a class="orangeButton" href="http://jroller.org/rss/obie">XML</a> <a href="http://jroller.com/page/obie">Obie Fernandez</a></li>
<li><a class="orangeButton" href="http://outside-thoughts.octopod.info/xml/atom/feed.xml">XML</a> <a href="http://outside-thoughts.octopod.info/">Octoblog</a></li>
<li><a class="orangeButton" href="http://blog.zenspider.com/index.rdf">XML</a> <a href="http://blog.zenspider.com/">Polishing Ruby</a></li>
<li><a class="orangeButton" href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi/index.rss">XML</a> <a href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi">PragDave</a></li>
<li><a class="orangeButton" href="http://feeds.feedburner.com/projectionist">XML</a> <a href="http://project.ioni.st/">Projectionist</a></li>
<li><a class="orangeButton" href="http://feeds.feedburner.com/raganwald">XML</a> <a href="http://www.braithwaite-lee.com/weblog/">Raganwald</a></li>
<li><a class="orangeButton" href="http://railsexpress.de/blog/xml/rss20/feed.xml">XML</a> <a href="http://railsexpress.de/blog/">RailsExpress.blog</a></li>
<li><a class="orangeButton" href="http://onestepback.org/gemwatch.rss">XML</a> <a href="">Recent Gems</a></li>
<li><a class="orangeButton" href="http://redhanded.hobix.com/index.xml">XML</a> <a href="http://redhanded.hobix.com">RedHanded</a></li>
<li><a class="orangeButton" href="http://weblog.rubyonrails.com/feed/rss2/">XML</a> <a href="http://weblog.rubyonrails.com/">Riding Rails</a></li>
<li><a class="orangeButton" href="http://rubyweeklynews.org/index.xml">XML</a> <a href="http://www.rubyweeklynews.org">Ruby Weekly News</a></li>
<li><a class="orangeButton" href="http://blog.xeraph.org/feed/rss2/">XML</a> <a href="http://blog.xeraph.org">Slave To The Machine</a></li>
<li><a class="orangeButton" href="http://split-s.blogspot.com/atom.xml">XML</a> <a href="http://split-s.blogspot.com">split-s</a></li>
<li><a class="orangeButton" href="http://techno-weenie.net/blog/?rss=1">XML</a> <a href="http://techno-weenie.net/blog/">techno weenie</a></li>
<li><a class="orangeButton" href="http://tech.rufy.com/feed/rss2/">XML</a> <a href="http://tech.rufy.com">Technoblog</a></li>
<li><a class="orangeButton" href="http://jamis.jamisbuck.org/blog.cgi/index.rss">XML</a> <a href="http://jamis.jamisbuck.org/">the { buckblogs :here }</a></li>
<li><a class="orangeButton" href="http://onestepback.org/index.cgi/index.rss">XML</a> <a href="http://onestepback.org/index.cgi">{ | one, step, back | }</a></li>
<li><a class="orangeButton" href="http://habtm.com/xml/atom/feed.xml">XML</a> <a href="http://habtm.com/">~:caboose</a></li>
<li><a class="orangeButton" href="http://www.decafbad.com/atom.xml">XML</a> <a href="http://www.decafbad.com/">0xDECAFBAD</a></li>
<li><a class="orangeButton" href="http://www.alistapart.com/rss.xml">XML</a> <a href="http://www.alistapart.com/">A List Apart</a></li>
<li><a class="orangeButton" href="http://www.ajaxian.com/index.xml">XML</a> <a href="http://www.ajaxian.com/">Ajaxian</a></li>
<li><a class="orangeButton" href="http://www.backpackit.com/weblog/index.xml">XML</a> <a href="http://backpackit.com/weblog/">Backpack Weblog</a></li>
<li><a class="orangeButton" href="http://blog.monstuff.com/index.xml">XML</a> <a href="http://blog.monstuff.com/">Curiosity is bliss</a></li>
<li><a class="orangeButton" href="http://homepages.ihug.com.au/~naseby/rss.xml">XML</a> <a href="http://homepages.ihug.com.au/~naseby/">David Naseby's World</a></li>
<li><a class="orangeButton" href="http://www.docuverse.com/blog/donpark/rss.xml">XML</a> <a href="http://www.docuverse.com/blog/donpark/">Don Park's Daily Habit</a></li>
<li><a class="orangeButton" href="http://epeus.blogspot.com/atom.xml">XML</a> <a href="http://epeus.blogspot.com">Epeus' epigone</a></li>
<li><a class="orangeButton" href="http://dev.r.tucows.com/blog/index.xml">XML</a> <a href="http://farm.tucows.com/blog">The Farm: The Tucows Developers' Hangout</a></li>
<li><a class="orangeButton" href="http://grahamglass.blogs.com/main/atom.xml">XML</a> <a href="http://grahamglass.blogs.com/main/">Graham Glass, etc.</a></li>
<li><a class="orangeButton" href="http://haoli.dnsalias.com/index.xml">XML</a> <a href="http://haoli.dnsalias.com">h a o l i</a></li>
<li><a class="orangeButton" href="http://hypermetrics.com:3000/xml/rss/feed.xml">XML</a> <a href="http://hypermetrics.com:3000/">Hal-lucinations</a></li>
<li><a class="orangeButton" href="http://www.joelonsoftware.com/rss.xml">XML</a> <a href="http://www.joelonsoftware.com">Joel on Software</a></li>
<li><a class="orangeButton" href="http://weblog.infoworld.com/udell/rss.xml">XML</a> <a href="http://weblog.infoworld.com/udell/">Jon's Radio</a></li>
<li><a class="orangeButton" href="http://martinfowler.com/bliki/bliki.rss">XML</a> <a href="http://martinfowler.com/bliki">Martin Fowler's Bliki</a></li>
<li><a class="orangeButton" href="http://minimsft.blogspot.com/atom.xml">XML</a> <a href="http://minimsft.blogspot.com">Mini-Microsoft</a></li>
<li><a class="orangeButton" href="http://www.redhillconsulting.com.au/blogs/simon/index.xml">XML</a> <a href="http://www.redhillconsulting.com.au/blogs/simon/">My hovercraft is full of eels</a></li>
<li><a class="orangeButton" href="http://blogs.osafoundation.org/news/index.xml">XML</a> <a href="http://www.osafoundation.org/">OSAF News</a></li>
<li><a class="orangeButton" href="http://peterkaminski.com/index.rdf">XML</a> <a href="http://peterkaminski.com/">Peter Kaminski</a></li>
<li><a class="orangeButton" href="http://www.cincomsmalltalk.com/rssBlog/ralph-rss.xml">XML</a> <a href="http://www.cincomsmalltalk.com/userblogs/ralph/blogView">Ralph Johnson - Blog</a></li>
<li><a class="orangeButton" href="http://www.intertwingly.net/blog/index.rss2">XML</a> <a href="http://www.intertwingly.net/blog/">Sam Ruby</a></li>
<li><a class="orangeButton" href="http://37signals.com/svn/index_full.rdf">XML</a> <a href="http://37signals.com/svn/">Signal vs. Noise</a></li>
<li><a class="orangeButton" href="http://mmower.backpackit.com/feed/580c59a670b1f7c852e0901b7976e0e8">XML</a> <a href="http://mmower.backpackit.com/account/start">Backpack</a></li>
<li><a class="orangeButton" href="http://www.choof.org/MT/index.xml">XML</a> <a href="http://www.choof.org/MT/">choof.org</a></li>
<li><a class="orangeButton" href="http://www.idealgovernment.com/index.php/weblog/rss_2.0/">XML</a> <a href="http://www.idealgovernment.com/index.php/weblog/index/">Ideal Government</a></li>
<li><a class="orangeButton" href="http://www.idcorner.org/wp-rss2.php">XML</a> <a href="http://www.idcorner.org">The Identity Corner</a></li>
<li><a class="orangeButton" href="http://www.identityblog.com/rss.xml">XML</a> <a href="http://www.identityblog.com/">Kim Cameron's Identity Weblog</a></li>
<li><a class="orangeButton" href="http://danielsolove.blogspot.com/atom.xml">XML</a> <a href="http://danielsolove.blogspot.com">The Solove Chronicles</a></li>
<li><a class="orangeButton" href="http://www.technorati.com/watchlists/rss.html?wid=64358">XML</a> <a href="http://www.technorati.com/cosmos/search.html?url=paoga">Technorati Search for: paoga</a></li>
<li><a class="orangeButton" href="http://blogs.sun.com/roller/rss/wizidm">XML</a> <a href="http://blogs.sun.com/roller/page/wizidm">Wizard of IdM</a></li>
</ul>
</div>


    
<div class="box" id="box_syndication">
<strong>Syndication</strong>
<div id="syndication">
<ul>
	<li><a class="orangeButton" href="http://matt.blogs.it/rss.xml">XML</a></li>
	<li><script type="text/javascript">eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%73%65%6c%66%40%6d%61%74%74%6d%6f%77%65%72%2e%63%6f%6d%22%3e%45%6d%61%69%6c%20%4d%65%3c%2f%61%3e%27%29%3b'))</script></li>
</ul>
</div>
</div>


</div>
<div id="wrapper">
	<div id="content">
		<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:ent="http://www.purl.org/NET/ENT/1.0/">
  <channel>
    <title>Curiouser and Curiouser! on java</title>
    <link>http://matt.blogs.it/</link>
    <description>RSS feed for topic java</description>
    <copyright>Copyright 2006 Matt Mower</copyright>
    <generator>Squib/0.1</generator>
    <managingEditor>self@mattmower.com</managingEditor>
    <webMaster>self@mattmower.com</webMaster>
    <language>en-gb</language>
    <item>
      <title>Java XML-RPC</title>
      <pubDate>Fri, 23 Aug 2002 16:25:14 +0100</pubDate>
      <description>&lt;P&gt;I've not done anything Java wise for a couple of months but, partly to keep my hand in, and partly because I think it's easier I've been thinking about using an applet or Java WebStart application for managing the topic information in liveTopics.&amp;nbsp; This leads to some questions:&lt;/P&gt;
&lt;P&gt;What's the best XML-RPC implementation for Java at the moment?&lt;/P&gt;
&lt;P&gt;For a simple API is XML-RPC a better bet than SOAP?&lt;/P&gt;
&lt;P&gt;Is it safe to use Swing in applets these days?&lt;/P&gt;
&lt;P&gt;What are the relative advantages/disadvanages of JWS over Applets?&amp;nbsp; Maybe even thinlets?&lt;/P&gt;
&lt;P&gt;And what IDE should I be using (I used to use JBuilder)&lt;/P&gt;
&lt;P&gt;Can anyone help me out?&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000446.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/american-culture.xml" ent:id="american-culture" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>XML-RPC does the trick, IDEA maybe</title>
      <pubDate>Thu, 29 Aug 2002 10:56:23 +0100</pubDate>
      <description>&lt;DIV&gt;
&lt;P&gt;&lt;EM&gt;What's the best XML-RPC implementation for Java at the moment?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Apache XML-RPC (originally Helma) - &lt;A href="http://xml.apache.org/xmlrpc/"&gt;&lt;A href="http://xml.apache.org/xmlrpc/"&gt;http://xml.apache.org/xmlrpc/&lt;/A&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;For a simple API is XML-RPC a better bet than SOAP?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;No - build it using &lt;A href="http://www.themindelectric.com/glue"&gt;Glue&lt;/A&gt;, it's SOAP made easy for Java. It's a dream to use. And free for most uses.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Is it safe to use Swing in applets these days?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Wrong person to ask. &lt;IMG height=11 src="http://static.userland.com/shortcuts/images/qbullets/sidesmiley.gif" width=11 align=absMiddle&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;What are the relative advantages/disadvanages of JWS over Applets?&amp;nbsp; Maybe even thinlets?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Complex question. Thinlets are only really good for small tasks, but are very rapid to develop. JWS is easy to write and 'deploy' any Swing app anywhere. I'd say JWS Swing is better than applets, but I'm biased.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;And what IDE should I be using (I used to use JBuilder)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Easy - &lt;A href="http://www.intellij.com/"&gt;IDEA&lt;/A&gt;. &lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;[&lt;A href="http://radio.weblogs.com/0107789/"&gt;rebelutionary&lt;/A&gt;]&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;» Okay I'm finally catching up on all the news I haven't read for a few days.&amp;nbsp; Some interesting points from Mike.&lt;/P&gt;
&lt;P&gt;As luck would have it Apache XML-RPC is the one I ended up downloading.&amp;nbsp; I had it hooked up to Radio and exchanging data in about as long as it took me to type this sentence, that was pretty cool.&lt;/P&gt;
&lt;P&gt;I also choose to re-evaluate IDEA.&amp;nbsp; I actually came across this IDE a long time ago when I was using some of their refactoring tools for JBuilder.&amp;nbsp; At the time I dismissed it because (a) it didn't do very much that the free &lt;A href="http://jrefactory.sourceforge.net/"&gt;JRefactory&lt;/A&gt; tool couldn't already do, and, (b) I was doing GUI stuff and JBuilder does that.&lt;/P&gt;
&lt;P&gt;I like a lot of what I see in IDEA and it's certainly a lot cheaper than JBuilder.&amp;nbsp; I just wonder how I'll hack the GUI bits and pieces without a visual designer...&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000473.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/politics.xml" ent:id="politics" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/shrub.xml" ent:id="shrub" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/trust.xml" ent:id="trust" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Blogplex in WebWork</title>
      <pubDate>Fri, 18 Oct 2002 10:39:12 +0100</pubDate>
      <description>&lt;A href="http://radio.weblogs.com/0107789/2002/10/18.html#a987"&gt;Web-excellent-work!.&lt;/A&gt;. 
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;A href="http://roller.anthonyeden.com/page/rsal/20021016"&gt;Web-excellent-work!&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;I know, bad title. Just wanted to add another note to the large list of pluses about &lt;A href="http://www.opensymphony.com/webwork"&gt;WebWork&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;It's so easy to protype new use cases (stories for you XP'ers') with webwork. I managed to knock off quite a few today to meet a delivery time for our project. Once you understand ww, throwing something together is a piece of cake!&lt;/P&gt;
&lt;P&gt;Throw in SiteMesh with a decorator and you can prototype an entire site in a day. Gotta love that!&lt;/P&gt;
&lt;P&gt;[&lt;A href="http://roller.anthonyeden.com/page/rsal"&gt;Rick Salsa&lt;/A&gt;]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;'nuf said really?&lt;/P&gt;
&lt;P&gt;(&lt;A title="Click to read comments about this item." href="http://radiocomments.userland.com/comments?u=107789&amp;p=987&amp;link=http%3A%2F%2Fradio.weblogs.com%2F0107789%2F2002%2F10%2F18.html%23a987"&gt;comments&lt;/A&gt;) [&lt;A href="http://radio.weblogs.com/0107789/"&gt;rebelutionary&lt;/A&gt;]&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=red&gt;»&lt;/FONT&gt; I don't post on Java stuff too often.&amp;nbsp; It's not my day-to-day anymore and I don't often have a lot to add to what I see (although I file a good deal of it away for later).&amp;nbsp; However two factors make this look interesting:&lt;/P&gt;
&lt;P&gt;1. I'm going to have to do a lot more Java consultancy&amp;nbsp;work than I expected if I want to stay financially&amp;nbsp;afloat.&amp;nbsp; Most Java jobs say J2EE (whether they mean it or not) and this looks like a great J2EE project to get to grips with.&amp;nbsp; (I have a lot of Java experience but absolutely no J2EE).&lt;/P&gt;
&lt;P&gt;2. I was going to implement the BlogPlex server part of liveTopics as a Radio/Frontier application.&amp;nbsp; However my experiences developing on the platform make me very leery of attempting an even larger project on it.&lt;/P&gt;
&lt;P&gt;If I was a PHP expert like "!fuzzygroup" I would probably be thinking of Apache/PHP, but I'm not, so I'm considering implementing it as a J2EE service.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000753.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>javablogs.com</title>
      <pubDate>Wed, 27 Nov 2002 10:04:06 +0000</pubDate>
      <description>&lt;A href="http://radio.weblogs.com/0107789/2002/11/27.html#a1027"&gt;javablogs.com&lt;/A&gt;. 
&lt;P&gt;OK - &lt;A href="http://www.javablogs.com"&gt;javablogs.com&lt;/A&gt; is ready to beta test, and we brought it in an hour under the time frame, it must be some sort of miracle.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is it?&lt;BR&gt;&lt;/STRONG&gt;Basically a replacement for the &lt;A href="http://radio.weblogs.com/0107789/stories/2002/06/03/javaAndJ2eeWeblogs.html"&gt;Java and J2EE Weblogs&lt;/A&gt; list - that grew out of hand as feature-itis took over. Each blogger can add their own blog, and decide if they want it aggregated (ie the content will show up), searchable (ie the content is indexed and can be searched), both or neither. We tried to leave all the power in the bloggers hands (blogging is after all a decentralised medium!).&lt;/P&gt;
&lt;P&gt;The search function is especially useful, and will be more so over time I think! (Forgot where you heard about AOP? &lt;A href="http://www.javablogs.com/Search.jspa?query=aop"&gt;Try searching for it&lt;/A&gt;) You can also get an &lt;A href="http://www.javablogs.com/ViewBlogs.jspa?max=-1&amp;order=alpha&amp;view=opml"&gt;OPML feed&lt;/A&gt; of all the blogs now (which lots of people have asked for), and the &lt;A href="http://www.javablogs.com/ViewBlogs.jspa?max=15&amp;order=recent&amp;view=rss"&gt;RSS feed&lt;/A&gt; of new blogs is updated in real time.&lt;/P&gt;
&lt;P&gt;There's a million other features we want to add (personalisation, group moderation, some sort of statistical / intelligent filtering, keyword categorisation, SOAP API, hot entries, popular searches etc), but I think we've got a good start so far. Feedback? Either email me or just comment on this post!&lt;/P&gt;
&lt;P&gt;[&lt;A href="http://radio.weblogs.com/0107789/"&gt;rebelutionary&lt;/A&gt;]&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT color=red&gt;»&lt;/FONT&gt; Looks great.&amp;nbsp; Makes me wish I was a Java blogger!&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000866.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/test.xml" ent:id="test" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Another IDEA convert</title>
      <pubDate>Sun, 08 Dec 2002 10:24:57 +0000</pubDate>
      <description>&lt;P&gt;When &lt;A href="http://www.intellij.com/"&gt;IDEA&lt;/A&gt; v3.0 was released recently I thought I would evaluate it again and I'm glad I did.&amp;nbsp; This is a good software.&lt;/P&gt;
&lt;P&gt;I've used every version of JBuilder and seen it mature from a piece of crap, to a great IDE, and on to a&amp;nbsp;rather swollen mess.&amp;nbsp; I don't think the IDE part of JBuilder has improved much in the last few releases, Borland have choosen to concentrate on other areas.&amp;nbsp;IDEA on the other hand is impressive.&amp;nbsp; It works very smoothly, it's features are intelligent (like folding that works,&amp;nbsp;and fantastic code completion).&amp;nbsp; It also has the best refactoring support I've seen so far.&amp;nbsp; As a coders tool IDEA looks &lt;EM&gt;very&lt;/EM&gt; good.&lt;/P&gt;
&lt;P&gt;About the only significant downside for me is the lack of a GUI builder.&amp;nbsp;I guess if you're only doing J2EE based (I'm not qualified to evaluate the J2EE support) that's not a problem.&amp;nbsp; For me, it is.&amp;nbsp; I don't particularly like the JBuilder GUI designer or the code it creates, but it is better than nothing.&lt;/P&gt;
&lt;P&gt;So, in short, IDEA goes on the wish list.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000959.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/knowledge-management.xml" ent:id="knowledge-management" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Another A for IDEA</title>
      <pubDate>Tue, 10 Dec 2002 23:28:47 +0000</pubDate>
      <description>Another &lt;A href="http://techupdate.zdnet.co.uk/story/0,,t481-s2123240,00.html"&gt;good review&lt;/A&gt; for &lt;A href="http://www.intellij.com."&gt;IDEA&lt;/A&gt;.</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000981.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>The Intellijent choice</title>
      <pubDate>Mon, 06 Jan 2003 19:42:36 +0000</pubDate>
      <description>&lt;P&gt;I'm grateful to "!mcb" for recommending &lt;A href="http://www.intellij.com/"&gt;Intellij&amp;nbsp;IDEA&lt;/A&gt; because it is great software.&amp;nbsp; Although, right now, I have no money to buy software I noticed they have a special offer until Jan 13th to buy a&amp;nbsp;copy (discounted from $499 to $200).&amp;nbsp; I can't turn that down.&lt;/P&gt;
&lt;P&gt;It's not often that, as I come to the end of an evaluation period, I think "I&amp;nbsp;just&amp;nbsp;&lt;STRONG&gt;do not&lt;/STRONG&gt; want to&amp;nbsp;stop using this.&amp;nbsp; Where do I pay?"&amp;nbsp; It really is just that good and, if you're a Java developer, I think you need to have a view on this product.&lt;/P&gt;
&lt;P&gt;I just hope Borland don't buy them or something.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001037.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/howard-dean.xml" ent:id="howard-dean" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/patent-reform.xml" ent:id="patent-reform" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Looking for my next aggregator</title>
      <pubDate>Wed, 08 Jan 2003 23:15:36 +0000</pubDate>
      <description>&lt;P&gt;Okay this is a real problem with the Radio news aggregator.&amp;nbsp; There is an RSS item that I know is in there somewhere, I saw it this afternoon, but I can't find it.&lt;/P&gt;
&lt;P&gt;It has been buried by a mountain of new items.&amp;nbsp; As far as I can tell the only way to find it again is to delete enough items that Radio will show it on the news page again.&amp;nbsp; Oh I guess that I can find the feed URL and fake a URL for the Zoom feature to display all items from that feed... (since the feed doesn't appear on the news page at all right now).&lt;/P&gt;
&lt;P&gt;As I come to depend more and more upon RSS to keep track of the life &amp; work of the people I am becoming friends and colleagues with I am increasingly finding that the Radio aggregator doesn't cut it.&amp;nbsp; This is just one of a number of items that are bugging me and I don't have time to address, even if I thought it was a worthwhile exercise.&lt;/P&gt;
&lt;P&gt;I'd really like to try out some of the alternatives.&amp;nbsp; Can anyone &lt;FONT color=maroon&gt;recommend&lt;/FONT&gt; any aggregator software?&amp;nbsp; It must run on&amp;nbsp;Windows (so don't suggest &lt;EM&gt;iNews&lt;/EM&gt;) and ideally it should be written in Java (but that's just a nice to have).&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001051.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Making TagSoup (add salt)</title>
      <pubDate>Thu, 09 Jan 2003 14:39:51 +0000</pubDate>
      <description>&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;This announces the first public release of TagSoup, TagSoup 0.8. Those of you who heard about it at either the November NYC XML SIG meeting or at XML 2002 can now download it from the TagSoup home page at:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.ccil.org/~cowan/XML/tagsoup"&gt;http://www.ccil.org/~cowan/XML/tagsoup&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Currently available are the source and object code, and the presentation slides in Powerpoint format (but created by OpenOffice.org 1.0).&lt;/P&gt;
&lt;P&gt;From: &lt;A href="http://lists.xml.org/archives/xml-dev/"&gt;xml-dev&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This announcement for TagSoup is from about 3 weeks back, but hey, it's still good.&amp;nbsp; TagSoup is an HTML parser that&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;parses HTML as it is found in the wild: nasty and brutish, though quite often far from short&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;and provides a SAX interface to allow standard XML tools to grok the parsed HTML.&amp;nbsp; Very neat!&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001056.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Sun Tech Day</title>
      <pubDate>Wed, 05 Feb 2003 11:43:32 +0000</pubDate>
      <description>&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;A href="http://www.sockdrawer.org/blog/index.php?p=2&amp;c=1"&gt;Sun Tech Day - London&lt;/A&gt;. Just got back from the Sun 'Tech Day' in London. I thought the line up of sponsors was interesting - aside from Sun, the sponsors were: Oracle, Nokia, Motorola, Macromedia and Novell. Oracle and Novell's presence is no suprise - they bought into Java wholesale some time ago and Macromedia ... [&lt;A href="http://www.sockdrawer.org/blog/index.php"&gt;sockdrawer.org&lt;/A&gt;]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;A blog! A blog! My kingdom for a blog!&lt;/P&gt;
&lt;P&gt;My friend Paul has&amp;nbsp;&lt;STRONG&gt;&lt;EM&gt;finally&lt;/EM&gt;&lt;/STRONG&gt; got his blog going and ruminates on a recent Sun Tech Day.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001128.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Aspects of Lisp</title>
      <pubDate>Wed, 12 Feb 2003 10:11:14 +0000</pubDate>
      <description>&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;A href="http://radio.weblogs.com/0106046/2003/02/11.html#a230"&gt;Design Patterns in Functional languages&lt;/A&gt;. A couple months ago, I &lt;A href="http://radio.weblogs.com/0106046/2002/07/14.html"&gt;asked&lt;/A&gt; what Design Patterns would look like in a Scheme.&amp;nbsp; Ted Leung has the &lt;A href="http://www.sauria.com/blog/2003/02/11#40"&gt;answer&lt;/A&gt;, in the form of a presentation by Peter Norvig.&amp;nbsp; Lots of people talking about functional languages these days: &lt;A href="http://www.cookcomputing.com/blog/archives/000209.html#209"&gt;Charles Cook&lt;/A&gt;, &lt;A href="http://radio.weblogs.com/0102385/2003/02/12.html"&gt;Chris Double&lt;/A&gt;, &lt;A href="http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;entry=3222404468"&gt;James Robertson&lt;/A&gt;.&amp;nbsp; Even Sam Gentile's picking up on &lt;A href="http://dotnetweblogs.com/sgentile/Comments/359.aspx"&gt;generative programming&lt;/A&gt;.&amp;nbsp; Something's in the air, for sure. [&lt;A href="http://radio.weblogs.com/0106046/"&gt;Gordon Weakliem's Radio Weblog&lt;/A&gt;]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Back when I was involved, full-time, in Java development one of my biggest interests was &lt;A href="http://www.eclipse.org/aspectj/"&gt;AspectJ&lt;/A&gt;&amp;nbsp;(which I notice is now part of the Eclipse project).&amp;nbsp; We were building a dynamic, adaptive, component framework and I could see that aspects provided for some interesting solutions to thorny problems.&amp;nbsp; At the time AJ was&amp;nbsp;still beta'ish and the language evolving from release-to-release&amp;nbsp;so I was biding my time.&amp;nbsp; Then the company went phut!&lt;/P&gt;
&lt;P&gt;But in reading the &lt;EM&gt;&lt;A href="http://www.sauria.com/blog/2003/02/11#40"&gt;answer&lt;/A&gt;&lt;/EM&gt; above I get a hint about what is drawing me toward Lisp.&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;If Java had macros ( in the Lisp sense and not C-style macros ), we could integrate AOP in a seamless way, without having to write custom compilers and all the rest of the stuff that the AspectJ guys are doing. And besides, the AspectJ folks are taking all the lessons that they learned doing Meta Object Protocols for Lisp/CLOS and repackaging them as AOP.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I gotta get me a copy of Paul Graham's Lisp book...&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001154.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Closures open new avenues</title>
      <pubDate>Tue, 18 Feb 2003 21:17:46 +0000</pubDate>
      <description>&lt;P&gt;Lisp really is a fascinating language.&amp;nbsp; When I read Paul Graham talking about Arc and CLOS thus:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;I personally have never needed object-oriented abstractions. Common Lisp has an enormously powerful object system and I've never used it once. I've done a lot of things (e.g. making hash tables full of closures) that would have required object-oriented techniques to do in wimpier languages, but I have never had to use CLOS.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;At first I was inclined to dismiss it, after all lots of people denigrate OOP or say they don't need it.&amp;nbsp; However already I can kind of see what he means.&lt;/P&gt;
&lt;P&gt;I'm just running through tutorials at the moment, messing with functions and closures and messing with lists of functions and lists of data and...&amp;nbsp; Well, lets just say it's opening some new pathways.&lt;/P&gt;
&lt;P&gt;I still like Java, I'm still happy to code in Java, but I'm definitely enjoying Lisp and wonder about where it might take me.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001179.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/k-collector.xml" ent:id="k-collector" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/knowledge-management.xml" ent:id="knowledge-management" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/micro-content.xml" ent:id="micro-content" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/topic-mapping.xml" ent:id="topic-mapping" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>MultiJava</title>
      <pubDate>Sat, 08 Mar 2003 13:08:02 +0000</pubDate>
      <description>&lt;P&gt;&lt;A href="http://multijava.sourceforge.net/index.shtml"&gt;MultiJava&lt;/A&gt; is an open project to add open classes and symmetric multiple dispatch to Java.&lt;/P&gt;
&lt;P&gt;Open classes allow one to add to the set of methods that an existing class supports without creating distinct subclasses or editing existing code.&amp;nbsp; Multiple dispatch, found in languages such as allows the method invoked by a message send to depend on the run-time classes of any subset of the argument objects.&lt;/P&gt;
&lt;P&gt;In concert with AspectJ this would appear to add some very powerful capabilities to Java.&lt;/P&gt;
&lt;P&gt;Of course&amp;nbsp;&lt;A href="http://lcgapp.cern.ch/project/cls/greenspun.html"&gt;Greenspun&lt;/A&gt; might argue that you should just use Lisp in the first place... ;-)&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001262.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Java Generics: a double edged sword</title>
      <pubDate>Mon, 17 Mar 2003 14:26:03 +0000</pubDate>
      <description>&lt;P&gt;Java generics are going to come at a cost according to Eric Allen's &lt;A href="http://www-106.ibm.com/developerworks/library/j-djc03113.html?ca=dnt-410"&gt;article&lt;/A&gt; and I'm inclined to agree.&amp;nbsp; The prize of keeping compatibility with previous JVM's is, I guess, a valuable one but for me breaking the type system like this (or at least introducing ways to create new and subtle bugs) seems too high a price.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001282.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/activism.xml" ent:id="activism" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/corporations.xml" ent:id="corporations" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/film-and-digital-cinema.xml" ent:id="film-and-digital-cinema" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Looking good in Java</title>
      <pubDate>Wed, 26 Mar 2003 18:57:23 +0000</pubDate>
      <description>&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;STRONG&gt;A nice Java pluggable look and feel&lt;/STRONG&gt; is what &lt;A href="http://www.dynamicobjects.com/d2r/archives/001830.html"&gt;Diego is looking for&lt;/A&gt; to apply to his great &lt;EM&gt;spaces&lt;/EM&gt; app. A decent font rendering by the Java VM is what I hope Sun will provide, sooner or later. [&lt;A href="http://www.cristianvidmar.com/"&gt;CristianVidmar.com&lt;/A&gt;]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Of the L&amp;F that I have seen &lt;A href="http://www.incors.com/lookandfeel/"&gt;Alloy&lt;/A&gt; looks quite promising.&amp;nbsp; However I think the best L&amp;F I have seen so far is that of the Intellij &lt;A href="http://www.intellij.com/idea/new30.jsp"&gt;IDEA&lt;/A&gt; development environment.&amp;nbsp; I wonder if they could be persuaded to package it?&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001325.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/aop.xml" ent:id="aop" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/how-to-develop-software.xml" ent:id="how-to-develop-software" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/java.xml" ent:id="java" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Buoying up Swing</title>
      <pubDate>Tue, 15 Jul 2003 16:52:05 +0100</pubDate>
      <description>&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;A href="http://weblogs.java.net/pub/wlg/249"&gt;Coding Naked&lt;/A&gt;. Getting started programming in Java can be a daunting task. Experienced programmers don't think twice about creating a GUI and adding a JButton. Ken Arnold suggests that you look at the JButton class with the eyes of a newbie. It is overwhelming. Scan the number of methods that are available to you from JButton directly and from the hierarchy from which it descends: AbstractButton, JComponent, Container, Component, and Object itself. All you want to do is create a button with a label that is tied to some action when it is clicked. What's all this other stuff? [&lt;A href="http://today.java.net/"&gt;Java Today Daily News&lt;/A&gt;]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Another good reason to take a look at &lt;A href="http://buoy.sourceforge.net/"&gt;Buoy&lt;/A&gt;.&amp;nbsp; It's good software.&amp;nbsp; Using the FormContainer to layout dialogs is so easy and straightforward, the event model is sweet.&amp;nbsp; What's not to like?&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001512.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/blogging.xml" ent:id="blogging" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/blogtalk.xml" ent:id="blogtalk" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/mark-bernstein.xml" ent:id="mark-bernstein" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/social-physics.xml" ent:id="social-physics" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/thomas-burg.xml" ent:id="thomas-burg" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Getting at meanings</title>
      <pubDate>Mon, 28 Jul 2003 08:20:49 +0100</pubDate>
      <description>&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;A href="http://www.sauria.com/blog/2003/07/27#410"&gt;Classifier4J&lt;/A&gt;. Nick Lothian &lt;A title="Text Summaries in Java" href="http://www.mackmo.com/nick/blog/java/?permalink=TextSummarizing.txt"&gt;tracked back&lt;/A&gt; with his checkin of the latest version of &lt;A title=Classifier4J href="http://classifier4j.sourceforge.net/"&gt;Classifier4J&lt;/A&gt;. This is definitely worth looking into for Java projects. &lt;A title="Open Text Summarizer" href="http://libots.sourceforge.net/"&gt;libots&lt;/A&gt; is still interesting because it's in C and could be wrapped for Python or Ruby. &lt;/P&gt;
&lt;P&gt;Nick also has a cool hover trick for the background of the blog entry that your mouse is over. [&lt;A href="http://www.sauria.com/blog/"&gt;Ted Leung on the air&lt;/A&gt;]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I'm really enjoying reading Ted's blog.&amp;nbsp; He's got some great developer content and, since I am not doing much Java development these days, it's good to be able to keep up with new projects &amp; innovations in this area.&amp;nbsp; In particular, right now, I am very interested in text classification - getting at meanings.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001531.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/microsoft-onenote.xml" ent:id="microsoft-onenote" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/note-taking.xml" ent:id="note-taking" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/tinderbox.xml" ent:id="tinderbox" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Abusing Bach</title>
      <pubDate>Sun, 17 Aug 2003 20:28:21 +0100</pubDate>
      <description>&lt;P&gt;Via a recent&amp;nbsp;&lt;A href="http://java.sun.com/jdc/JDCTechTips/2003/tt0805.html"&gt;Tech Tip&lt;/A&gt;&amp;nbsp;i've learned a little bit about Java's sound capabilites and, in particular, using Java to play MIDI.&amp;nbsp; It was fun typing in a little java program and hearing piano's playing a few notes.&amp;nbsp; Something to while away a few minutes on a hot afternoon.&lt;/P&gt;
&lt;P&gt;Then I started thinking about algorithmically generating music.&amp;nbsp; I am deuced unmusical (lacking both rhythmn and a good pitch ear) which has lead, in the past,&amp;nbsp;to some frustrating attempts to use professional software to make compositions.&amp;nbsp; I can program Java though.&lt;/P&gt;
&lt;P&gt;I have a program which I use to generate random pronounceable passwords.&amp;nbsp; Although it's hit rate for generating memorable words is about 1 in 40, I can remember the good passwords some 6 years after first using them.&amp;nbsp; It works by analysing a body of text and calculating the frequency of each 3 letter combination that appears.&amp;nbsp; Then it uses some simple rules to&amp;nbsp;combine these 3 letter combinations into &lt;EM&gt;words&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;So I started to wonder if the same thing could be done with music.&amp;nbsp; Could you stitch together 3 note combinations into something resembling music? (for the moment let's set aside the question of &lt;EM&gt;why on earth would you do this?&lt;/EM&gt;)&lt;/P&gt;
&lt;P&gt;Java has a very simple call:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT face=Geneva,Arial,Sans-Serif&gt;MidiSystem.getSequence( file )&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;which loads a MIDI file into an array of Track objects from which you can access the events which play the various notes of the piece.&amp;nbsp; There are equivalent calls for creating &amp; playing tracks (which use your sound card like a synthesizer).&lt;/P&gt;
&lt;P&gt;I started with some Bach that I found on the net.&amp;nbsp; My aim was to do a frequency analysis of the 3-note combinations.&amp;nbsp; Somewhat to my surprise though I discovered there weren't any repetitions.&amp;nbsp; That is, no exact 3 note combination was ever repeated.&amp;nbsp; At least, unless I got my program wrong.&amp;nbsp; The resulting noise led my housemates to question whether I was safe to be left home alone.&lt;/P&gt;
&lt;P&gt;Not to be discouraged I tried a second approach, analysing, for each note played the range of notes which could follow and probability of each.&amp;nbsp;&amp;nbsp;This, coupled with some simple selection logic, allows me to play something that sounds almost totally unlike music (and certainly unlike Bach's music).&amp;nbsp; Mostly it has taught me that music is vastly more complex in structure than words.&lt;/P&gt;
&lt;P&gt;Still, it's been a diverting way to spend an afternoon &lt;STRONG&gt;AND&lt;/STRONG&gt; i've learned something.&lt;/P&gt;
&lt;P&gt;Some other notes.&amp;nbsp; My development environment is IDEA by &lt;A href="http://www.intellij.com/"&gt;Intellij&lt;/A&gt;. I've tried pretty much every Java IDE going and this one is the best by far.&amp;nbsp; If you haven't tried Intention actions yet, well...&amp;nbsp;&amp;nbsp;&amp;nbsp; The GUI was built using Peter Eastman's &lt;A href="http://buoy.sourceforge.net/"&gt;Buoy&lt;/A&gt; widget set.&amp;nbsp;&amp;nbsp; Peter is also responsible for the Java based 3D rendering suite &lt;A href="http://www.artofillusion.org/"&gt;ArtOfIllusion&lt;/A&gt;.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001546.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Better byte code managament</title>
      <pubDate>Tue, 19 Aug 2003 12:32:17 +0100</pubDate>
      <description>&lt;A href="http://asm.objectweb.org/"&gt;ASM&lt;/A&gt; is a Java byte code engineering library similar to Apache &lt;A href="http://jakarta.apache.org/bcel/"&gt;BCEL&lt;/A&gt;.&amp;nbsp; The claimed advantages are that is is much smaller and faster than BCEL.&amp;nbsp; The figures given were 21K vs 350K and average overhead of 60% vs. ~700%.&amp;nbsp; Much of this appears to be down to ASM's&amp;nbsp;decision not to represent the class via an&amp;nbsp;object model which may have other usability tradeoff's.&amp;nbsp; However with performance in this range ASM may be a good fit for applications which require dynamic modification/generation of classes.</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001556.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Cougaar</title>
      <pubDate>Thu, 06 Nov 2003 16:21:09 +0000</pubDate>
      <description>&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.cougaar.org/"&gt;Cougaar is a Java-based architecture for the construction of large-scale distributed agent-based applications. &lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;[&lt;A href="http://www.decafbad.com/blog"&gt;0xDECAFBAD&lt;/A&gt;]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It's been a long time since I last experimented with Java agents.&amp;nbsp; I think it was&amp;nbsp;Voyager 1.0 (from &lt;A href="http://radio.weblogs.com/0109134/"&gt;Graham Glass&lt;/A&gt;' old, old,&amp;nbsp;company ObjectSpace).&amp;nbsp; Cougaar seems like an impressive framework.&amp;nbsp; I could get interested in this stuff again.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001700.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Buoying up Swing (Pt.2)</title>
      <pubDate>Fri, 14 Nov 2003 15:54:39 +0000</pubDate>
      <description>&lt;div style="margin-left: 40px;"&gt;&lt;a href="http://weblogs.java.net/pub/wlg/650"&gt;Swing - again&lt;/a&gt;.
"I believe in Swing. I really think it's the best toolkit for writing
robust cross-platform applications. However, if we don't do something
to jumpstart it's growth then it'll die along with the dinosaurs: big,
powerful, and unable to keep up." [&lt;a href="http://today.java.net/"&gt;java.net Daily News&lt;/a&gt;]&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
Peter Eastman (author of the &lt;a href="http://www.artofillusion.org/index"&gt;Art of Illusion&lt;/a&gt; package) has just released the beta version of &lt;a href="http://buoy.sourceforge.net/"&gt;Buoy&lt;/a&gt; which is a widget set that &lt;span style="font-style: italic;"&gt;kind of&lt;/span&gt;
replaces Swing.  The intention isn't really to do away with Swing
since Buoy is largely implemented on top of Swing and you can access the
underlying Swing components if you need the more esoteric features
therein.&lt;br&gt;
&lt;br&gt;
What Buoy does is to offer a considerably simpler API set than Swing.&amp;nbsp; For example, quooting from the &lt;a href="http://buoy.sourceforge.net/AboutBuoy.html"&gt;documentation&lt;/a&gt;:&lt;br&gt;
&lt;br&gt;
&lt;div style="margin-left: 40px;"&gt;
In all cases, Widgets present a far simpler API than the corresponding 
Components.  For example, the J2SE 1.4.1 version of JComponent has 306 
public methods.  The current version of Widget has 37.&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
This is often achieved by not offering 100 different ways of doing
everything and by hiding away details that may only be of interest to
5% of developers.&lt;br&gt;
&lt;br&gt;An even bigger treat is the Buoy event model which is more elegant
and more powerful than Swings. Buoy events can do things that aren't
possible in Swing.&amp;nbsp; I think it's worth posting part of the
introduction to show just how powerful this thing is.&lt;br&gt;
&lt;br&gt;
&lt;div style="margin-left: 40px;"&gt;

I have now given many examples of ways that Buoy's event handling mechanism
produces simpler, more easily maintainable code than Swing's.  Are you
convinced that it is better?  Well don't answer yet, because I haven't even
started!  All of the advantages I have described above are important benefits
of using Buoy, but I must admit that &lt;i&gt;none&lt;/i&gt; of them was the reason I
designed it the way I did.
&lt;/div&gt;
&lt;p style="margin-left: 40px;"&gt;
The true reason for Buoy's event handling mechanism is that it is vastly more
powerful than Swing's.  It makes it easy, even trivial, to do things that are
difficult or impossible with Swing.  Let me give a few examples.
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
Suppose that you want to monitor every event of any sort that is generated by
a particular Widget.  Simply call
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
&lt;tt&gt;
addEventLink(Object.class, this);
&lt;/tt&gt;
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
and you will get them all.  Suppose you then want to "play back" those events
at a later time.  Simply pass them to the Widget's &lt;tt&gt;dispatchEvent()&lt;/tt&gt;
method.  This will work even if you have no idea what types of event the
Widget might generate, even if some of the events are a custom event class
that you do not even know exists.
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
Doing the same thing with Swing would be an enormous undertaking.  You must
know in advance every type of event a particular Component may generate.  You
must implement the event listener interfaces for every one of those event
types, and provide a nearly identical implementation of every method defined
by every one of those interfaces.
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
Here is another example.  Suppose that a window's contents are variable.
Other objects may want to be notified of events being generated by Components
inside it, but that list of Components may change at any time.
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
To do this with Swing, an object that wants to be notified of a particular
event type would need to recursively go through the containment hierarchy,
identify every Component in the window that can generate that type of event,
and add itself as a listener to each one.  Any time the contents of the
window changed, each listener would need to repeat this process to make sure
it is still a listener for every Component.  This could possibly be done by
listening for &lt;tt&gt;HierarchyEvents&lt;/tt&gt;, or alternatively the window itself
could provide a notification mechanism to inform outside objects when its
contents have changed.
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
An alternative solution would be to have the window (or another object) act as a "proxy" for
events generated by its contents.  The window would add itself as a listener
to each Component inside it, then forward events to other objects that wanted
to receive them.  The window would need to implement an appropriate mechanism
for objects to request notification of events generated by its contents, and
of course the entire system would need to be implemented separately for every
type of event that could be generated.  Needless to say, this system will
only work if you know in advance every type of event that might be generated
by any Component in the window.
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
With Buoy, proxying events is so trivial that it's almost embarassing.  The
window simply invokes the following method on each of its child Widgets:
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
&lt;tt&gt;widget.addEventLink(Object.class, this, "dispatchEvent");&lt;/tt&gt;
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
Any object can then call &lt;tt&gt;addEventLink()&lt;/tt&gt; on the window, and be
notified of any event generated by any Widget in the window.  This works even
if you have no idea what event types the child Widgets might generate, or
which ones an outside listener might be interested in.
&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;
One more example.  Suppose you want your program's menus to be user
configurable.  This can be done by using a file to define the list of items
in each menu.  With either Swing or Buoy, the file can define the name,
position, keyboard shortcut, and action command of each menu item.  With
Buoy, you can take this a step further and actually define what method should
be called when the menu item is selected.  The is an incredibly powerful
technique, especially for programs that can be extended by means of a plugin
mechanism.

&lt;/p&gt;
With the new beta Peter has made Buoy almost feature complete. 
I'm looking forward to trying it out in some of my applications.&amp;nbsp; Highly recommended.&lt;br&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001730.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>First steps with Lucene</title>
      <pubDate>Tue, 02 Dec 2003 20:43:39 +0000</pubDate>
      <description>I'm playing with the &lt;a href="http://jakarta.apache.org/lucene/"&gt;Jakarta Lucene&lt;/a&gt; search engine at the moment as a way of implementing some neat new stuff for &lt;a href="http://w4.evectors.it/"&gt;K-Collector&lt;/a&gt;.&amp;nbsp;
I've got a Java app talking to K-Collector via XML-RPC and indexing
posts from our database.&amp;nbsp; I think it took me about 15 minutes from
cold to having butchered the sample apps to do what I want.&amp;nbsp; That
seems like a good sign to me.&amp;nbsp; While browsing for more information
about Lucene I came across &lt;a href="http://www-106.ibm.com/developerworks/library/j-lucene/"&gt;an article&lt;/a&gt; talking about Lucene and another Jakarta library called &lt;a href="http://jakarta.apache.org/commons/digester.html"&gt;Digester&lt;/a&gt;.&amp;nbsp; Digester is a neat XML to Java object mapper.&amp;nbsp; I'll be taking a better look at it over the next few days.&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001781.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/bluetooth.xml" ent:id="bluetooth" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/motorola.xml" ent:id="motorola" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/skype.xml" ent:id="skype" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>The generic Dog</title>
      <pubDate>Fri, 16 Jan 2004 20:36:17 +0000</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://weblogs.java.net/pub/wlg/914"&gt;Not wild enough&lt;/a&gt;. Although Generics already introduce more flexibility when referring to type there are times when you "want to leave the type parameter unbound". [&lt;a href="http://www.java.net/"&gt;java.net java.net Daily Update&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;Is &lt;code&gt;List&lt;Dog&gt;&lt;/code&gt; a subclass of &lt;code&gt;Collection&lt;Animal&gt;&lt;/code&gt; - all this and more!&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001818.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/apple.xml" ent:id="apple" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/macosx.xml" ent:id="macosx" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>It's not a simple world (thank god!)</title>
      <pubDate>Sun, 18 Jan 2004 19:49:01 +0000</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://www.docuverse.com/blog/donpark/EntryViewPage.aspx?guid=1bf3d661-844f-4a17-9543-33dfd8987868"&gt;Java is Mature&lt;/a&gt;. &lt;p&gt;
   Java is a mature proven language for non-GUI applications.&amp;nbsp; What it means is
   that it does what you expect it to and there is a large body of open source software
   you can leverage.&amp;nbsp; &lt;a href="http://www.manageability.org/"&gt;Carlos E. Perez&lt;/a&gt;'s
   enumeration of &lt;a href="http://www.manageability.org/blog/stuff/open-source-web-crawlers-java"&gt;Open
   Source Web Crawlers Written in Java&lt;/a&gt; is a good example.
&lt;/p&gt;
&lt;p&gt;
   C# and .NET, on the other hand, has a long way to go still and there is no easy to
   extend IDE like Eclipse for developers to rally around.&amp;nbsp; Working with .NET at
   this point is like working in a new town destined to grow, maybe like Chicago was
   around 1840.&amp;nbsp; As for my involvement with .NET, I enjoy the rough life.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.docuverse.com/blog/donpark/aggbug.ashx?id=1bf3d661-844f-4a17-9543-33dfd8987868"&gt; [&lt;a href="http://www.docuverse.com/blog/donpark/"&gt;Don Park's Daily Habit&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;As someone who wrote his first C# application on Friday I could get to like the language.  But it's not cross-platform and Visual Studio.NET 2003 is, compared to Intellij IDEA, a piece of junk.  I guess if all I did were write apps for Windows boxes every day it would be fine.  I don't yearn for that kind of simplicity though.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001833.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/fraud.xml" ent:id="fraud" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>You've been shunned</title>
      <pubDate>Thu, 05 Feb 2004 14:27:06 +0000</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://www.webmink.net/2004_02_01_oldblog.htm#107597045183637502"&gt;Projection&lt;/a&gt;. I'm preparing my talk for EclipseCon and I notice yesterday's talk was by Michael Tiemann from Red Hat. I personally love the book he was citing (see my &lt;a href="http://www.webmink.net/?books"&gt;books page&lt;/a&gt;). While I recognise the need to make allowances for the audience he was speaking to, the &lt;a href="http://www.eweek.com/article2/0,4149,1515498,00.asp"&gt;report in eWeek&lt;/a&gt; (which I've verified with some delegates) suggests he went beyond the bounds of decency as he expounded his hatred of the Java environment and encouraged the Eclipse faithful to bring down Java from the inside.&lt;/blockquote&gt;
&lt;p&gt;Reading Tiemann's comments I wonder what:
&lt;blockquote&gt;"In my travels I have found the Java community to be marginalized by the Java apartheid meaning if you are programming in Java you have to shun all other communities."&lt;/blockquote&gt;is all about.  I used Java and don't feel like I have shunned other communities.  What's it all about?&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001849.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Get it under control</title>
      <pubDate>Sat, 14 Feb 2004 07:44:14 +0000</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://weblogs.java.net/pub/wlg/1018"&gt;Source control, change tracking, and regular builds&lt;/a&gt;. Michael Ivey writes that if you don't yet use source control, change tracking, and regular builds in your process, you should implement them today. [&lt;a href="http://www.java.net/"&gt;java.net java.net Daily Update&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;Sound advice.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001881.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/ruby.xml" ent:id="ruby" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Catching up on AOP</title>
      <pubDate>Sun, 15 Feb 2004 12:17:37 +0000</pubDate>
      <description>&lt;blockquote&gt;Last tweak of AOP performance. With a last session of performance tweaking, and with help from the CGLIB people, our framework can now perform 17 million AOP method calls per second. CGLIB was updated to not create any Object[] array for zero-argument method calls, and along with caching of Invocation objects (per thread, in a threadlocal) calls can now be made without creating ANY objects as a side-effect. There is also no synchronization in the method invocation code, so there's no performance degradation when multiple threads are working simultaneously. Very nice.
&lt;p&gt;
This means that it is possible to implement dynamic AOP in a rather performant way. I was worried that all of that framework stuff would make it crawl, but 17 million calls per second is actually quite decent, at least for a large portion of applications. [&lt;a href="http://jroller.com/page/rickard"&gt;Random thoughts&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;After a really long hiatus I have been picking up on Aspects again.   I came across some stuff written by Rickard which really tweaked my curiousity.  I last looked at AOD about 3-4 years ago when &lt;a href="http://eclipse.org/aspectj/"&gt;AspectJ&lt;/a&gt; was pretty new, now it's part of the Eclipse project and aspects seem to have become a credible solution to some real OOD problems.  That's cool, they always appealed to me.  I like the look of &lt;a href="https://dynaop.dev.java.net/"&gt;Dynaop&lt;/a&gt; myself.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001887.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/amerika.xml" ent:id="amerika" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Step forward Java</title>
      <pubDate>Thu, 26 Feb 2004 14:24:22 +0000</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://www.intertwingly.net/blog/1722.html"&gt;Open Source Java&lt;/a&gt;. &lt;a href="http://www.sys-con.com/story/?storyid=43801&amp;DE=1"&gt;Rod
Smith&lt;/a&gt;: &lt;em&gt;Here is the offer: IBM would like to work with Sun
on an independent project to open source Java.&lt;/em&gt; [&lt;a href="http://www.intertwingly.net/blog/"&gt;Sam Ruby&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;This seems like, if it was taken, it would be a significant step.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001933.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/bill-gates.xml" ent:id="bill-gates" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/computing-history.xml" ent:id="computing-history" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Static crosscutting</title>
      <pubDate>Tue, 02 Mar 2004 07:23:12 +0000</pubDate>
      <description>&lt;blockquote&gt;Static crosscutting rocks!. As outlined in &lt;a href="http://www-106.ibm.com/developerworks/java/library/j-aopsc/?ca=dgr-jw23j-aopsc"&gt;this&lt;/a&gt; article, static crosscutting can be a powerful tool when designing a complex system, especially as it in my experience enables incredible levels of reuse.[&lt;a href="http://jroller.com/page/rickard"&gt;Random thoughts&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;Static crosscutting does look like a powerful way to add functionality to solutions without introducing potentially harmful dependencies.  This will need some more thinking about.&lt;p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001942.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/identity.xml" ent:id="identity" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/paoga.xml" ent:id="paoga" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/permission-based-marketing.xml" ent:id="permission-based-marketing" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>A little light reading</title>
      <pubDate>Sun, 14 Mar 2004 13:26:15 +0000</pubDate>
      <description>&lt;p&gt;Papers I read on the plane home yesterday:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jroller.com/page/rickard/20040306"&gt;Implementing dynamic AOP using abstract schema&lt;/a&gt; by &lt;a href="http://www.jroller.com/page/rickard"&gt;Rickard Öberg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cognexus.org/"&gt;Sense-Making and Knowledge Collaboration Tools&lt;/a&gt; by Dr. Jeffrey Conklin.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;Rickard is doing a lot of thinking (&amp; acting) in the Aspect Oriented Programming (AOP) field.  I think it's pretty exciting and fully expect AOP to be as mainstream, in 3-5 years, as OOP is today.  I'm playing with &lt;a href="https://dynaop.dev.java.net/"&gt;Dynaop&lt;/a&gt; which is a very &lt;em&gt;low impact&lt;/em&gt; AOP solution for Java written by &lt;a href="http://crazybob.org/roller/page/crazybob"&gt;&amp;quot;Crazy Bob"&lt;/a&gt;.  It's a great package and laughably easy to get started with.&lt;/p&gt;
&lt;p&gt;Sense making is I guess one of my key themes these days.  My work has taken me from the mainstream of KM (i.e. document management) into the world of organisational complexity, deep collaboration, &lt;em&gt;wicked&lt;/em&gt; problems, patterns in information and making sense of it all.  In particular this paper introduced me to Issue Based Information Systems (IBIS) and how they affect tools &amp; approaches.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001983.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/life.xml" ent:id="life" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>JDO: A persistent topic</title>
      <pubDate>Mon, 15 Mar 2004 09:40:11 +0000</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://www.sockdrawer.org/blog/archives/000005.php"&gt;For JDO, the Time Is Now&lt;/a&gt;. "Without a dominant proprietary solution and with EJB in disarray, the software industry has a significant vacuum in the Java persistence solution market. Many are looking to the next best standard. With the Java Data Objects (JDO) 2.0 specification... [&lt;a href="http://www.sockdrawer.org/blog/"&gt;sockdrawer.org&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;My friend Paul pointed this out to me this morning.  Good timing as we are looking into Java databases at the moment.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00001998.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/airships.xml" ent:id="airships" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/dreams.xml" ent:id="dreams" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/life.xml" ent:id="life" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/the-black-pyramid.xml" ent:id="the-black-pyramid" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>I need HiveMind</title>
      <pubDate>Tue, 06 Apr 2004 07:09:41 +0100</pubDate>
      <description>&lt;p&gt;Just come across a newish Jakarta project which looks very interesting.  Called &lt;a href="http://jakarta.apache.org/hivemind/"&gt;HiveMind&lt;/a&gt; it is a java services and configuration microkernel.  From the introduction:
&lt;blockquote&gt;&lt;p&gt;HiveMind allows you to create your application using a service oriented architecture. In HiveMind, you architect your application in terms of POJOs (Plain Old Java Objects) and interfaces, and let the HiveMind framework do the busy work of instantiating your services and connecting them together.&lt;/p&gt;
&lt;p&gt;In HiveMind, a service is an implementation of a Java interface. Unlike other SOAs (Service Oriented Architectures, such as a SOAP, or EJBs), HiveMind is explicitly about combining Java code within a single JVM. HiveMind uses an XML descriptor to describe different services, their lifecycles, and how they are combined. HiveMind takes care of thread-safe, just-in-time creation of singleton service objects so your code doesn't have to.&lt;/p&gt;
&lt;p&gt;HiveMind provides powerful tools for configuring services in a decentralized manner; configuration data can be spread across many HiveMind modules. HiveMind configurations allow for powerful, data-driven solutions which combine seemlessly with the service architecture.&lt;/p&gt;
&lt;p&gt;HiveMind allows you to create more complex applications, yet keep the individual pieces (individual services) simple and testable. It offloads all the work of instantiating services, configuring them, and connecting them together. It lets you concentrate on best practices: coding to interfaces, not implementations, and designing your code to be easily unit tested.&lt;/p&gt;&lt;/blockquote&gt;&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002048.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/iraq.xml" ent:id="iraq" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Eclipse hits another milestone</title>
      <pubDate>Tue, 06 Apr 2004 12:51:02 +0100</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://www.sockdrawer.org/blog/archives/000011.php"&gt;Eclipse 3.0 Milestone build 8&lt;/a&gt;. I have been using Eclipse as my main Integrated Development Environment for about 18 months now, and have seen it go from strength to strength during this period. Initially, I was hooked by the idea of it more than it's... [&lt;a href="http://www.sockdrawer.org/blog/"&gt;sockdrawer.org&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;Poor deluded non-&lt;a href="http://www.jetbrains.com/"&gt;IDEA&lt;/a&gt; user ;-)&lt;/p&gt;
&lt;p&gt;I can see Paul's point though, Eclipse is becoming a de facto platform through it's wide support base.  But I think it would be a sad day if Eclipse squashed all the rest.  You need strong competition to stay healthy.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002050.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/life.xml" ent:id="life" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/psychology.xml" ent:id="psychology" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>xDoclet troubles</title>
      <pubDate>Fri, 09 Apr 2004 18:13:12 +0100</pubDate>
      <description>I find myself needing to do some attribute based programming.&amp;nbsp;
That is to be able to specify certain attributes of domain classes and
have things happen automatically because of those attributes.&amp;nbsp; In
this case generating type &amp; &lt;a href="https://dynaop.dev.java.net/"&gt;dynaop&lt;/a&gt; proxy factories, and updating proxy &amp; reflector configurations.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://xdoclet.sourceforge.net/"&gt;xDoclet&lt;/a&gt; appears to be the
standard way of doing this in a Java project and, at first glance, all
looked good.&amp;nbsp; However now that I am waist deep in learning how to
write my own tasks and such I'm finding it very hard going.&amp;nbsp; I
can't find a good guide to this and don't have the money to shell out
on &lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/1932394052/ref=sr_aps_books_1_2/026-6301417-0432434"&gt;xDoclet in Action.&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Are there any patient xDoclet guru's out there who might be able to give me hand?&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002051.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/rails.xml" ent:id="rails" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Java tools have come a long, long way</title>
      <pubDate>Mon, 12 Apr 2004 15:29:46 +0100</pubDate>
      <description>Just a quick note about tools.&amp;nbsp; Over the last couple of months I've been experimenting with the &lt;a href="http://www.db4o.com/"&gt;db4o&lt;/a&gt;
Java object database.&amp;nbsp; It's compact, yet very powerful and
improving all the time.&amp;nbsp; I prefer the idea of an object database
to using SQL because, although you can get object-relational mapping
layers the fundamental problem is that you have to have SQL under the
hood.&lt;br&gt;
&lt;br&gt;
However, like most object databases, db4o comes with it's own problem:
activation.&amp;nbsp; Because an object database is basically a serialized
graph of objects when you read one back you either have to bring back
every object it is associated with, or just bring back some (or maybe
none) of those objects.&amp;nbsp; In the former case you spend a long time
reading objects from the database and spend the memory on them (whether
you use them or not) and in the latter case you end up managing
references to potentially deactivated objects.&amp;nbsp; It's painful
either way round.&lt;br&gt;
&lt;br&gt;
I decided to try and tackle this problem using the &lt;a href="http://dynaop.dev.java.net/"&gt;Dynaop&lt;/a&gt;
aspect framework by Bob Lee.&amp;nbsp; It was a chance for me to put Dynaop
through it's paces against a real problem.&amp;nbsp; So far it's looking
very promising.&amp;nbsp; Dynaop is very simple to understand and
implementing activation and storage interceptors (and the corresponding
reflector package for db4o) was not terribly hard.&lt;br&gt;
&lt;br&gt;
I was soon able to have domain objects activating and storing
themselves on demand without any actively calling into the persistence
layer.&amp;nbsp; However two things were left:&amp;nbsp; (1) an untidy amount
of "glue" in the form of marker interfaces and configuration files, (2)
transaction support.&lt;br&gt;
&lt;br&gt;
The answer to both of these turns out to be &lt;a href="http://xdoclet.sourceforge.net/"&gt;xDoclet&lt;/a&gt;.&amp;nbsp;
Using some customised xDoclet templates it is possible to generate all
the type factories (required to build the aspect proxied domain
objects), to build the configuration required by the aspect layer, and
also to mark methods which should be considered as transactional.&amp;nbsp;
A lot of this is possible because Dynaop uses the excellent &lt;a href="http://www.beanshell.org/"&gt;BeanShell&lt;/a&gt; to provide run-time configuration and xDoclet can be tailored to generate Beanshell scripts very easily.&lt;br&gt;
&lt;br&gt;
The net result is that most aspects of domain object persistence can be
handled with no requirement for the classes themselves to be aware of
the persistence layer at all.&amp;nbsp; All the configuration is dynamic at
run-time and can be automatically generated from comments in the source
code!&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.db4o.com/"&gt;Db4o&lt;/a&gt;, &lt;a href="http://dynaop.dev.java.net/"&gt;Dynaop&lt;/a&gt;, &lt;a href="http://xdoclet.sourceforge.net/"&gt;xDoclet&lt;/a&gt;, &lt;a href="http://www.beanshell.org/"&gt;Beanshell&lt;/a&gt;.&amp;nbsp;&amp;nbsp; Java tools sure have come a long way.&lt;br&gt;
&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002056.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:href="http://matt.blogs.it/topics/blog.xml" ent:id="blog" ent:classification="user"/>
        <ent:topic ent:href="http://matt.blogs.it/topics/google.xml" ent:id="google" ent:classification="user"/>
      </ent:cloud>
    </item>
    <item>
      <title>Word escape velocity attained at last!</title>
      <pubDate>Mon, 26 Apr 2004 09:22:41 +0100</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://www.sockdrawer.org/blog/archives/000012.php"&gt;Using Open Office to convert MS Word documents&lt;/a&gt;.
Rickard Öberg recently posted a request for suggestions about using
Java to convert MS word docs into HTML. I have been doing some work on
this lately using the freely availiable, open-source OpenOffice.org to
do the hard parts, making calls... [&lt;a href="http://www.sockdrawer.org/blog/"&gt;sockdrawer.org&lt;/a&gt;]&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
Paul has done some very craft work here -- many people want to solve this problem.&lt;br&gt;
&lt;br&gt;
In fact it's a problem that he and I worked on last year.&amp;nbsp; At that
time we were looking for out of the box tools to do the job and not
getting very far with it.&amp;nbsp; Since then he's cooked up a clever
solution by implementing RPC with an OpenOffice server.&amp;nbsp; Neat!!&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002125.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Not a paper tiger</title>
      <pubDate>Thu, 29 Apr 2004 13:44:40 +0100</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://dev.r.tucows.com/blog/_archives/2004/4/28/44071.html"&gt;Taming Tiger&lt;/a&gt;. 
  &lt;p&gt;&lt;a href="http://javaworld.com"&gt;&lt;span style="font-style: italic;"&gt;JavaWorld&lt;/span&gt;&lt;/a&gt; (nice to see them back -- when did that happen?) has the first in a three-part series of articles on J2SE 1.5 called &lt;a href="http://www.javaworld.com/javaworld/jw-04-2004/jw-0426-tiger1.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Taming Tiger&lt;/span&gt;&lt;/a&gt; ("Tiger" is 1.5's codename). Part 1 covers new language features, namely:&lt;/p&gt;
  &lt;ul&gt;
&lt;li&gt;Boxing and unboxing&lt;/li&gt;&lt;li&gt;An improvcd for loop specifically designed for iterating over array/collection elements&lt;/li&gt;
  &lt;li&gt;Variable numbers of arguments for methods&lt;/li&gt;
  &lt;li&gt;Enumerations (&lt;span style="font-style: italic;"&gt;IT'S! ABOUT! TIME!&lt;/span&gt;)&lt;/li&gt;
  &lt;li&gt;Static imports&lt;br&gt;
  &lt;/li&gt;
  &lt;/ul&gt;
 [&lt;a href="http://dev.r.tucows.com/blog"&gt;The Farm: The Tucows Developers' Hangout&lt;/a&gt;]&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
I'm really looking forward to JDK1.5 becoming a reality and to the forthcoming support for it in my IDE of choice, &lt;a href="http://www.intellij.com/"&gt;IntelliJ IDEA&lt;/a&gt; (they already have support for generics).&lt;br&gt;
&lt;br&gt;
However, they don't list the new feature I am looking forward to most of all:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=175"&gt;JSR-175&lt;/a&gt; - attribute based programming.&lt;/li&gt;
&lt;/ul&gt;
Thanks to &lt;a href="http://xdoclet.sourceforge.net/"&gt;xDoclet&lt;/a&gt; I am
already a convert to this way of working.  Flexible, attribute
based, code generation is very powerful.  But you can generate
other things too.  For example I also generate &lt;a href="http://www.beanshell.org/"&gt;BeanShell&lt;/a&gt;
scripts which are used to configure runtime &lt;a href="https://dynaop.dev.java.net/"&gt;aspect&lt;/a&gt; weaving and object
configuration.  This kind of thing makes me smile :-)&lt;br&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002135.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Software customisation the BeanShell way</title>
      <pubDate>Fri, 30 Apr 2004 11:04:40 +0100</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://weblog.infoworld.com/udell/2004/04/27.html#a983"&gt;Radical software customization&lt;/a&gt;. The always-interesting Sean McGrath has a great column this week about software customization. He says, in part:
  &lt;blockquote class="personQuote SeanMcGrath"&gt;
In order to stay sane, most programmers concentrate on the part of the
problem they are working on today. As a consequence, their view of what
pieces of the functions under development need to be parameterized and
which do not, tends to be a quite low level. Indeed, most of the items
programmers will chose to parameterize will amount to double dutch to
the business analysts. [&lt;a href="http://www.itworld.com/nl/ebiz_ent/04272004/"&gt;Sean Mcgrath: The mysteries of flexible software&lt;/a&gt;] 
  &lt;/blockquote&gt;

In the companion &lt;a href="http://seanmcgrath.blogspot.com/archives/2004_04_25_seanmcgrath_archive.html#108305574138645334"&gt;blog entry&lt;/a&gt;
Sean gives the example of a Jython script that he used, instead of an
XML configuration file, to parameterize a piece of software. It
illustrates, by example, one of the points I tried to make in my recent
  &lt;a href="http://www.itconversations.com/transcripts/117/transcript117-1.html"&gt;IT Conversations&lt;/a&gt;
interview with Doug Kaye. Dynamic languages are a great way to record
data when a solution is fluid and requirements are evolving. And, come
to think of it, when aren't those things true? &lt;b&gt;...&lt;/b&gt; [&lt;a href="http://weblog.infoworld.com/udell/"&gt;Jon's Radio&lt;/a&gt;]&lt;br&gt;
&lt;/blockquote&gt;

&lt;br&gt;I've seen the power of this approach too.&amp;nbsp; When I needed a way
to run-time configure a customised Reflection package I was originally
going to write a configuration file, maybe a .properties file or, since
everything must be XML these days, use some cool XML syntax.&amp;nbsp; Just
as I was gritting my teeth at the thought of parsing XML to read in
class names, light dawned!&lt;br&gt;
&lt;br&gt;Took a leaf out of the &lt;a href="https://dynaop.dev.java.net/"&gt;Dyanop&lt;/a&gt; book I decided to use a &lt;a href="http://www.beanshell.org/"&gt;BeanShell&lt;/a&gt;
script
instead. A simple modification to the Reflector class makes it execute
a pre-defined script when instantiated.&amp;nbsp; Before the script runs
the Reflector statically imports a method called &lt;b&gt;registerClass&lt;/b&gt; into the
scripts namespace.&amp;nbsp; The &lt;i&gt;configuration file&lt;/i&gt; is then a simple script as follows:&lt;br&gt;&lt;code&gt;&lt;br&gt;
// Generated file - Do not edit!&lt;br&gt;
//&lt;br&gt;
// This file configures the Db4o activator reflector package.&lt;br&gt;
//&lt;br&gt;
&lt;br&gt;
registerClass( com.evectors.persistence.samples.SampleComposite.class );&lt;br&gt;
registerClass( com.evectors.persistence.samples.SampleType.class );&lt;br&gt; &lt;/code&gt;&lt;br&gt;
Job done!&amp;nbsp; If the reflector ever requres more
advanced configuration options I can just add the appropriate methods
to the Reflector class and import them into the script namespace.&lt;br&gt;
&lt;br&gt;
And, best of all, not a &lt;a href="http://www.depeupleur.com/blog/TT_blog/archives/000016.html"&gt;hint of XML&lt;/a&gt; in sight!&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002150.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Advantage BeanShell</title>
      <pubDate>Tue, 04 May 2004 21:51:25 +0100</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://weblogs.java.net/pub/wlg/1259"&gt;The role of Jython&lt;/a&gt;. "Whether or not you like dynamic languages, you better warm up to 'em because they're not going away any time soon." [&lt;a href="http://www.java.net/"&gt;java.net Daily Update&lt;/a&gt;]&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
Whilst I agree with the message I'm puzzling over the seemingly popularity of Jython when something like &lt;a href="http://www.beanshell.org/"&gt;BeanShell&lt;/a&gt;
is available.&amp;nbsp; For one thing I don't get Python, to me it looks
like a mess (although I'm sure it all makes sense really.)&amp;nbsp; But,
more important, since I am writing Java applications it makes sense
that I have interpreted Java as my dynamic scripting language.&lt;br&gt;
&lt;br&gt;
Not only does it mean I don't have to mix/learn another language but it
also holds out the possibility of being able to move compiled code out
into scripts where flexibility was an advantage, or bring scripts back
into compiled code where performance becomes an issue.&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002186.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Lisped Java</title>
      <pubDate>Tue, 04 May 2004 22:27:15 +0100</pubDate>
      <description>On the subject of dynamic languages for Java I wondered whether anyone had created embeddable &lt;a href="http://www.apl.jhu.edu/%7Ehall/lisp.html"&gt;Common Lisp&lt;/a&gt;.&amp;nbsp; Turns out they had and it's called &lt;a href="http://sourceforge.net/projects/jatha/"&gt;Jatha&lt;/a&gt;.&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002188.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>All formats lead to Rome (and back again)</title>
      <pubDate>Thu, 17 Jun 2004 22:04:17 +0100</pubDate>
      <description>I'm doing some work with &lt;a href="https://rome.dev.java.net/"&gt;Rome&lt;/a&gt; which is an ambitious open source Java RSS toolkit by &lt;a href="http://blogs.sun.com/tucu/"&gt;Alejandro Abdelnur&lt;/a&gt;, &lt;a href="http://www.chanezon.com/pat/weblog/"&gt;Patrick Chanezon&lt;/a&gt;, and Elaine Chien of Sun.&lt;br&gt;
&lt;br&gt;
Rome does not attempt to be all things to all men, choosing (correctly
imo) to concentrate on providing low-level feed parsing &amp;
generation services.&amp;nbsp; It can read &amp; write RSS in all it's
flavours 0.9x, 1.0, 2.0 as well as Atom 0.3.&amp;nbsp; It can also convert
feeds between formats and provide an abstract &lt;i&gt;syndication feed&lt;/i&gt; layer over them.&amp;nbsp; Crucially they have good support for modular extension &amp; I am bashing out an &lt;a href="http://www.purl.org/NET/ENT/1.0/"&gt;ENT 1.0&lt;/a&gt; module which I'll contribute back to the project.&lt;br&gt;
&lt;br&gt;
It's still alpha but already looks impressively useable.&amp;nbsp; Good stuff.&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002339.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Ok I guess I'm a little offended</title>
      <pubDate>Thu, 05 Aug 2004 16:41:15 +0100</pubDate>
      <description>&lt;blockquote&gt;&lt;a href="http://lemonodor.com/archives/000871.html"&gt;Great Hackers&lt;/a&gt;. 
  &lt;p&gt;
Paul Graham has posted &lt;a href="http://paulgraham.com/gh.html"&gt;Great Hackers&lt;/a&gt;, an essay based on his keynote at &lt;a href="http://www.oreillynet.com/oscon2004/"&gt;OSCON&lt;/a&gt;.
  &lt;/p&gt;
  &lt;blockquote&gt;

&lt;p&gt;For example, if your company wants to write some software, it might
seem a prudent choice to write it in Java. But when you choose a
language, you're also choosing a community. The programmers you'll be
able to hire to work on a Java project won't be as smart as the ones
you could get to work on a project written in Python. [2] And the
quality of your hackers probably matters more than the language you
choose. Though, frankly, the fact that good hackers prefer Python to
Java should tell you something about the relative merits of those
languages.
&lt;/p&gt;[...]&lt;br&gt;
  &lt;/blockquote&gt;
 [&lt;a href="http://lemonodor.com/"&gt;Lemonodor&lt;/a&gt;]&lt;br&gt;
&lt;/blockquote&gt;




&lt;br&gt;
As someone who quite likes Java and isn't quite so keen on Python I
guess i'm one of the less smart programmers around. Bummer.&amp;nbsp; Does
my interest in Lisp score me any points?&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002421.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>JSP's get a new face</title>
      <pubDate>Fri, 06 Aug 2004 08:24:54 +0100</pubDate>
      <description>I'm keeping an eye on how to build web apps using JSPs and seeing more
and more stuff about the Java Server Faces (JSF) web application
framework. More &lt;a href="http://java.sun.com/j2ee/javaserverfaces/"&gt;here&lt;/a&gt;, &lt;a href="http://www.jsfcentral.com/"&gt;here&lt;/a&gt;, and &lt;a href="http://www.myfaces.org/"&gt;here&lt;/a&gt;.&lt;br&gt;
</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002425.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Here's why I haven't used Java in over a year</title>
      <pubDate>Fri, 28 Oct 2005 12:41:15 +0100</pubDate>
      <description>&lt;p&gt;&lt;a href="http://jutopia.tirsen.com/articles/2005/10/28/why-ruby-on-rails"&gt;Why Ruby on Rails?&lt;/a&gt;.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00003060.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
  </channel>
</rss>

	</div>
</div>
<div id="footer">
	<div class="info">
Copyright 2006 Matt Mower -- <a href='http://squib.rubyforge.org/'>Squib</a> Version 0.4.0 (Release 282)&nbsp;&nbsp;Updated: 19/01/2006 18:51
	</div>
</div>
</div>
</body>
</html>
