<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Rambling about...</title>
	<atom:link href="http://ramblingabout.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ramblingabout.wordpress.com</link>
	<description>Everyting and nothing in particular.</description>
	<pubDate>Sun, 01 Jun 2008 22:25:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>IAM/q4e 0.7.0 has been released</title>
		<link>http://ramblingabout.wordpress.com/2008/06/01/iamq4e-070-has-been-released/</link>
		<comments>http://ramblingabout.wordpress.com/2008/06/01/iamq4e-070-has-been-released/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 22:25:45 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[iam]]></category>

		<category><![CDATA[maven]]></category>

		<category><![CDATA[q4e]]></category>

		<category><![CDATA[new]]></category>

		<category><![CDATA[new and noteworthy]]></category>

		<category><![CDATA[noteworthy]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=131</guid>
		<description><![CDATA[The Eclipse IAM/q4e team has released a new version.
I would talk about the new features, but there is an extremely nice New and Noteworthy page on the wiki which has saved me some work.
I would point out only a few features that I really like:

Autocompletion for dependencies in pom.xml. This is nicely done by installing [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The Eclipse IAM/q4e team has released a new version.</p>
<p>I would talk about the new features, but there is an extremely nice <a title="New in 0.7.0, including XML autocompletion" href="http://code.google.com/p/q4e/wiki/New_in_0_7_0" target="_blank">New and Noteworthy</a> page on the wiki which has saved me some work.</p>
<p>I would point out only a few features that I really like:</p>
<ol>
<li>Autocompletion for dependencies in pom.xml. This is nicely done by installing the WTP XML editor if your eclipse doesn&#8217;t have it. Suggestions come from the new artifact search framework.</li>
<li>Using maven mojos in the workspace for your builds. This new feature will be really useful for maven plug-in developers&#8230; we want your feedback!</li>
<li>An upgraded embedder which allows the use of Maven 2.0.9 features (and plug-ins using those feaures).</li>
</ol>
<p>Hope you enjoy using q4e as much as we enjoyed making this release!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/131/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/131/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=131&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/06/01/iamq4e-070-has-been-released/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>SWT tip: Using SelectionAdapter</title>
		<link>http://ramblingabout.wordpress.com/2008/05/15/swt-tip-using-selectionadapter/</link>
		<comments>http://ramblingabout.wordpress.com/2008/05/15/swt-tip-using-selectionadapter/#comments</comments>
		<pubDate>Thu, 15 May 2008 20:31:12 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[button]]></category>

		<category><![CDATA[selection]]></category>

		<category><![CDATA[swt]]></category>

		<category><![CDATA[tip]]></category>

		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=130</guid>
		<description><![CDATA[This one is probably for newbies.
When providing a SelectionListener for doing a something when a SWT button is pressed, you&#8217;ll need to implement two methods:


Button b = new Button(container, SWT.PUSH);
b.addSelectionListener( new SelectionListener()
{
  public void widgetSelected( SelectionEvent e )
  {
    // TODO Auto-generated method stub
  }

  public void widgetDefaultSelected( [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This one is probably for newbies.</p>
<p>When providing a <em>SelectionListener</em> for doing a something when a SWT button is pressed, you&#8217;ll need to implement two methods:</p>
<pre name="code" class="java">

Button b = new Button(container, SWT.PUSH);
b.addSelectionListener( new SelectionListener()
{
  public void widgetSelected( SelectionEvent e )
  {
    // TODO Auto-generated method stub
  }

  public void widgetDefaultSelected( SelectionEvent e )
  {
    // TODO Auto-generated method stub
  }
} );
</pre>
<p>However, only one of those methods will be called: <em>widgetSelected</em></p>
<p>So you can save a couple of lines (which is always nice, specially when inlining the handlers like in these examples) by using <em>SelectionAdapter</em>, an implementation of <em>SelectionListener</em> with default implementation of both methods (which is to do nothing).</p>
<p>The final, shorter, core looks like this:</p>
<pre name="code" class="java">

Button b = new Button(container, SWT.PUSH);
b.addSelectionListener( new SelectionAdapter()
{
  public void widgetSelected( SelectionEvent e )
  {
    doSomething();
  }
} );
</pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/130/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/130/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=130&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/05/15/swt-tip-using-selectionadapter/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;m on Twitter now</title>
		<link>http://ramblingabout.wordpress.com/2008/05/12/im-on-twitter-now/</link>
		<comments>http://ramblingabout.wordpress.com/2008/05/12/im-on-twitter-now/#comments</comments>
		<pubDate>Mon, 12 May 2008 23:17:27 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<category><![CDATA[curiosity]]></category>

		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=129</guid>
		<description><![CDATA[I finally gave up on trying to resist. Curiosity was stronger&#8230; so now you can read my tweets at http://twitter.com/amuino
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I finally gave up on trying to resist. Curiosity was stronger&#8230; so now you can read my <em>tweets</em> at <a title="It's me on twitter" href="http://twitter.com/amuino" target="_blank">http://twitter.com/amuino</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/129/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/129/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=129&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/05/12/im-on-twitter-now/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>Q4E Screencasts available on mirrors</title>
		<link>http://ramblingabout.wordpress.com/2008/05/01/q4e-screencasts-available-on-mirrors/</link>
		<comments>http://ramblingabout.wordpress.com/2008/05/01/q4e-screencasts-available-on-mirrors/#comments</comments>
		<pubDate>Thu, 01 May 2008 12:37:33 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[q4e]]></category>

		<category><![CDATA[mirror]]></category>

		<category><![CDATA[screencast]]></category>

		<category><![CDATA[wtp]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=127</guid>
		<description><![CDATA[I&#8217;ve received notice from Jing (owners of screencast.com where q4e screencasts are hosted) that the allowed bandwidth is about to be exceeded&#8230; Thanks for the interest!
As a reminder, you can watch the WTP Screencast from Joakim&#8217;s site.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve received notice from <a title="Jing Project" href="http://www.jingproject.com/" target="_blank">Jing</a> (owners of <a title="Screencast dot com" href="http://screencast.com" target="_blank">screencast.com</a> where q4e screencasts are hosted) that the allowed bandwidth is about to be exceeded&#8230; Thanks for the interest!</p>
<p>As a reminder, you can watch the <a title="WTP Screencast" href="http://joakim.erdfelt.com/q4e/q4e-wtp.swf" target="_blank">WTP Screencast</a> from <a title="Joakim Erdfelt" href="http://joakim.erdfelt.com" target="_blank">Joakim&#8217;s site</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/127/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/127/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=127&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/05/01/q4e-screencasts-available-on-mirrors/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>Q4E at EPIC (Eclipse Plug-in Central)</title>
		<link>http://ramblingabout.wordpress.com/2008/04/30/q4e-at-epic-eclipse-plug-in-central/</link>
		<comments>http://ramblingabout.wordpress.com/2008/04/30/q4e-at-epic-eclipse-plug-in-central/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 10:52:07 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[q for eclipse]]></category>

		<category><![CDATA[q4e]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=126</guid>
		<description><![CDATA[Q4E, the maven integration plug-in that has brought WTP support and Dependency Analysis to the Eclipse&#38;Maven users is now listed at the Eclipse Plugin Central.
You can visit EPIC, rate Q for Eclipse and leave your comments.
It should also be much easier for new users to get to know Q for Eclipse.
     [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a title="Q for Eclipse project home" href="http://code.google.com/p/q4e/" target="_blank">Q4E</a>, the maven integration plug-in that has brought WTP support and Dependency Analysis to the Eclipse&amp;Maven users is now listed at the <a title="Eclipse Plugin Central" href="http://www.eclipseplugincentral.com/" target="_blank">Eclipse Plugin Central</a>.</p>
<p>You can visit EPIC, <a title="Q for Eclipse at EPIC" href="http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-1222.html" target="_blank">rate Q for Eclipse</a> and leave your comments.</p>
<p>It should also be much easier for new users to get to know Q for Eclipse.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/126/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/126/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/126/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=126&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/04/30/q4e-at-epic-eclipse-plug-in-central/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>Q for Eclipse closer to becoming an Eclipse Project</title>
		<link>http://ramblingabout.wordpress.com/2008/04/12/q-for-eclipse-closer-to-becoming-an-eclipse-project/</link>
		<comments>http://ramblingabout.wordpress.com/2008/04/12/q-for-eclipse-closer-to-becoming-an-eclipse-project/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 13:06:15 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[iam]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[maven]]></category>

		<category><![CDATA[q4e]]></category>

		<category><![CDATA[wtp]]></category>

		<category><![CDATA[eclipse proposal]]></category>

		<category><![CDATA[mentors]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=125</guid>
		<description><![CDATA[Q for Eclipse, or q4e for short, is an open-source and open-development eclipse plug-in for bridging the gap between Eclipse and Maven. It is available from its google code home.
Since we believe that every eclipse user should be able to enjoy the benefits of using maven, we&#8217;ve proposed IAM (Integration for Apache Maven) as a [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Q for Eclipse, or q4e for short, is an open-source and open-development eclipse plug-in for bridging the gap between Eclipse and Maven. It is available from <a title="q4e in google code" href="http://code.google.com/p/q4e/" target="_blank">its google code home</a>.</p>
<p>Since we believe that every eclipse user should be able to enjoy the benefits of using maven, we&#8217;ve proposed <a title="Eclipse IAM proposal" href="http://www.eclipse.org/proposals/iam/" target="_blank">IAM (Integration for Apache Maven)</a> as a new Eclipse project. Of course we offered q4e as an initial code contribution for the project. The proposal is discussed on its <a title="Eclipse IAM newsgroup" href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.iam" target="_self">eclipse newsgroup</a> (you&#8217;ll need to <a title="Eclipse newsgroups password registration" href="http://www.eclipse.org/newsgroups/register.php" target="_blank">get a password</a> from eclipse).</p>
<p>We&#8217;ve been working towards becoming a good candidate for an Eclipse project. The <a title="q4e committers at Ohloh" href="http://www.ohloh.net/projects/compare?metric=Contributors&amp;project_0=Q+for+Eclipse" target="_blank">number of committers</a> and the overall <a title="q4e activity at Ohloh" href="http://www.ohloh.net/projects/compare?metric=Activity&amp;project_0=Q+for+Eclipse" target="_blank">project activity</a> has been growing, we&#8217;ve provided <a title="New in 0.6.0, including WTP support" href="http://code.google.com/p/q4e/wiki/New_in_0_6_0" target="_blank">WTP integration</a>, allowed sophisticated <a title="Dependency analysis view in q4e" href="http://code.google.com/p/q4e/wiki/DependencyAnalysis" target="_blank">dependency analiysis</a>&#8230;   and much more.</p>
<p>Now, we&#8217;re gearing towards the final step for donating q4e source to the IAM proposal&#8230; getting IAM into the eclipse incubator.</p>
<p>For this, we needed two eclipse mentors.</p>
<p>Well, we&#8217;ve got three <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<ul>
<li>Ed Merks, IBM: Eclipse EMF</li>
<li>Thomas Watson, IBM, Equinox</li>
<li> Brett Porter, Exist Global: Maven PMC, Apache member,&#8230;</li>
</ul>
<p>Being an official Eclipse project can only bring good things to q4e. Since we will have more eyes on the project, more enhancements will be requested and more hands will join in.</p>
<p>If you use q4e, feel free to write some quotes <a title="IAM newsgroup at eclipse" href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.iam">on the IAM group</a>. We always like to know who&#8217;s using q4e and where!</p>
<p>Exciting times are ahead!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/125/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/125/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=125&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/04/12/q-for-eclipse-closer-to-becoming-an-eclipse-project/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>Deadlock quiz&#8230; the answer</title>
		<link>http://ramblingabout.wordpress.com/2008/04/10/deadlock-quiz-the-answer/</link>
		<comments>http://ramblingabout.wordpress.com/2008/04/10/deadlock-quiz-the-answer/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 19:50:45 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[personal]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[deadlock]]></category>

		<category><![CDATA[quiz]]></category>

		<category><![CDATA[solution]]></category>

		<category><![CDATA[static]]></category>

		<category><![CDATA[thread]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=124</guid>
		<description><![CDATA[If you have not yet read it, lets go and check the piece of code causing a deadlock.
In order to not spoling the fun, I&#8217;m providing the answer in the full post.

Here&#8217;s the code again, so you don&#8217;t need to jump between both posts:


public class Singleton implements Runnable {
  public static final String A_STRING [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you have not yet read it, lets go and <a title="Deadlock Quiz" href="http://ramblingabout.wordpress.com/2008/04/02/deadlock-quiz/" target="_blank">check the piece of code causing a deadlock</a>.</p>
<p>In order to not spoling the fun, I&#8217;m providing the answer in the full post.</p>
<p><span id="more-124"></span></p>
<p>Here&#8217;s the code again, so you don&#8217;t need to jump between both posts:</p>
<pre name="code" class="java">

public class Singleton implements Runnable {
  public static final String A_STRING = &quot;Hello World&quot;.toLowerCase();

  public static final Singleton INSTANCE = new Singleton();

  public static Singleton getInstance() {
 	return INSTANCE;
  }

private Singleton() {
 	super();
 	launchThread();
 }

public void launchThread() {
 	synchronized (this) {
 		Thread t = new Thread(this);
 		t.start();
 		while (t.isAlive()) {
 			try {
 				wait(100);
 			} catch (InterruptedException e) {
 				// Interrupted.
 			}
 		}
 	}
 }

public void run() {
 	System.out.println(A_STRING);
 }

public static void main(String[] args) {
 Singleton.getInstance();
 }
}
</pre>
<p>This code basically calls a thread from its static initialization. This thread then tries to access some other static data on the class (<code>A_STRING</code>).</p>
<p>That&#8217;s the cause of the problem. Class initialization can only happen in one thread, so the second thread can not access <code>A_STRING </code>until the class is fully initialized. As pointed <a title="Deadlock Quiz, comment by Piotr Smolinski" href="http://ramblingabout.wordpress.com/2008/04/02/deadlock-quiz/#comment-2322" target="_blank">on the comments of the previous post</a>, this does not happen with constant values, only when there&#8217;s a method call involved.</p>
<p>So the thread is waiting for the class to initialize.</p>
<p>The other side of the deadlock is the code in the <code>launchThread</code> which is waiting for the thread to end before exiting. Since the thread is waiting for the static initialization to finish, it never terminates and the static initialization never ends&#8230; and we have a deadlock.</p>
<p>Now, you might be wondering&#8230;</p>
<blockquote><p>how could you think of such a complicated thing?</p></blockquote>
<p>Well, it was in some code I was refactoring at work. It used to work extremely well&#8230; until I added a log4j logger with:</p>
<pre name="code" class="java">

private static final Logger logger =
    Logger.getLogger(Singleton.class);
</pre>
<p>There it is, a static initialization with a method invocation. And the thread tried to use it, of course&#8230;</p>
<p>This is how a working code can be broken by an (apparently) safe change&#8230; So learn from my mistakes, be careful and be sure to have unit tests at hand.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/124/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/124/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=124&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/04/10/deadlock-quiz-the-answer/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>Deadlock quiz</title>
		<link>http://ramblingabout.wordpress.com/2008/04/02/deadlock-quiz/</link>
		<comments>http://ramblingabout.wordpress.com/2008/04/02/deadlock-quiz/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 18:26:36 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[personal]]></category>

		<category><![CDATA[deadlock]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[quiz]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=123</guid>
		<description><![CDATA[Suppose you have this class:


public class Singleton implements Runnable {
	public static final String A_STRING = &#34;Hello World&#34;.toLowerCase();

	public static final Singleton INSTANCE = new Singleton();

	public static Singleton getInstance() {
		return INSTANCE;
	}

	private Singleton() {
		super();
		launchThread();
	}

	public void launchThread() {
		synchronized (this) {
			Thread t = new Thread(this);
			t.start();
			while (t.isAlive()) {
				try {
					wait(100);
				} catch (InterruptedException e) {
					// Interrupted.
				}
			}
		}
	}

	public void run() {
		System.out.println(A_STRING);
	}

	public static void main(String[] args) [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Suppose you have this class:</p>
<pre name="code" class="java">

public class Singleton implements Runnable {
	public static final String A_STRING = &quot;Hello World&quot;.toLowerCase();

	public static final Singleton INSTANCE = new Singleton();

	public static Singleton getInstance() {
		return INSTANCE;
	}

	private Singleton() {
		super();
		launchThread();
	}

	public void launchThread() {
		synchronized (this) {
			Thread t = new Thread(this);
			t.start();
			while (t.isAlive()) {
				try {
					wait(100);
				} catch (InterruptedException e) {
					// Interrupted.
				}
			}
		}
	}

	public void run() {
		System.out.println(A_STRING);
	}

	public static void main(String[] args) {
		Singleton.getInstance();
	}
}
</pre>
<p>If you run the main method, it hangs in a deadlock. Can you see the reason?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/123/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/123/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=123&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/04/02/deadlock-quiz/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>Eclipse 4 released</title>
		<link>http://ramblingabout.wordpress.com/2008/04/01/eclipse-4-released/</link>
		<comments>http://ramblingabout.wordpress.com/2008/04/01/eclipse-4-released/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 19:20:28 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[eclipse announcement]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=122</guid>
		<description><![CDATA[It has just been announced&#8230;
Are you ready for it?
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.eclipse.org/org/press-release/20080401_nextgen.php" title="Eclipse Announces Next Generation Platform, e4, Is Now Available">It has just been announced</a>&#8230;</p>
<p>Are you ready for it?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/122/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/122/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=122&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/04/01/eclipse-4-released/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
		<item>
		<title>Developers, classifed</title>
		<link>http://ramblingabout.wordpress.com/2008/03/30/developers-classifed/</link>
		<comments>http://ramblingabout.wordpress.com/2008/03/30/developers-classifed/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 21:03:09 +0000</pubDate>
		<dc:creator>Abel Muiño</dc:creator>
		
		<category><![CDATA[Blogroll]]></category>

		<category><![CDATA[personal]]></category>

		<category><![CDATA[developer types]]></category>

		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://ramblingabout.wordpress.com/?p=121</guid>
		<description><![CDATA[I&#8217;ve come across this interesting classification of developer types, by Frank Kelly.
It is a funny read&#8230; just try to assign a label to your workmates&#8230; and think which label they&#8217;ll apply to you :-).
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve come across this interesting <a href="http://softarc.blogspot.com/2008/03/it-does-not-take-superstar-developer.html" title=" It does not take a Superstar - Developer types enumerated" target="_blank">classification of developer types</a>, by <a href="http://softarc.blogspot.com/" title=" The Art and Craft of Great Software Architecture and Development" target="_blank">Frank Kelly</a>.</p>
<p>It is a funny read&#8230; just try to assign a label to your workmates&#8230; and think which label they&#8217;ll apply to you :-).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ramblingabout.wordpress.com/121/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ramblingabout.wordpress.com/121/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ramblingabout.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ramblingabout.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ramblingabout.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ramblingabout.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ramblingabout.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ramblingabout.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ramblingabout.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ramblingabout.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ramblingabout.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ramblingabout.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ramblingabout.wordpress.com&blog=409284&post=121&subd=ramblingabout&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ramblingabout.wordpress.com/2008/03/30/developers-classifed/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/amuino-128.jpg" medium="image">
			<media:title type="html">amuino</media:title>
		</media:content>
	</item>
	</channel>
</rss>