<?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:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>filsa.net</title>
	<atom:link href="http://www.filsa.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.filsa.net</link>
	<description>developing, since 1997.</description>
	<lastBuildDate>Sun, 28 Feb 2010 13:30:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Continuing adventures with GWT</title>
		<link>http://www.filsa.net/2010/02/28/continuing-adventures-with-gwt/</link>
		<comments>http://www.filsa.net/2010/02/28/continuing-adventures-with-gwt/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 13:28:53 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Google Web Toolkit]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=198</guid>
		<description><![CDATA[Well it is already the end of February. I&#8217;ve been silent all month&#8211;not because there is nothing to report but because I&#8217;ve been too busy to write it all down.
My adventures with Google Web Toolkit continue. I am still trying to get the hang of developing with the MVP-style development&#8211;particularly with UIBinder. I&#8217;m following the [...]]]></description>
			<content:encoded><![CDATA[<p>Well it is already the end of February. I&#8217;ve been silent all month&#8211;not because there is nothing to report but because I&#8217;ve been too busy to write it all down.</p>
<p>My adventures with Google Web Toolkit continue. I am still trying to get the hang of developing with the <strong>MVP-style development</strong>&#8211;particularly with UIBinder. I&#8217;m following the GWT group maillist pretty closely, and I am relieved to see that I am not the only one.  I think the biggest currently released source code for a GWT application might be the source for Speed Tracer&#8211;I downloaded it and took a look. It is not quite the MVP style that is in the MVP tutorial, but it is still an eyeopener. Unfortunately, I haven&#8217;t had time to go through it line by line yet.  I hope to put more work into building a more significant app with GWT in March.</p>
<p>That said, I am <strong>getting better at certain aspects of GWT</strong>. Cranking out UIBinder layouts is becoming second nature&#8211;mostly because I have probably created 15-20 GWT projects in the past 3 weeks. It wasn&#8217;t so easy at first, but I created a GWT maven archetype to create UIBinder-friendly default projects for myself. In the process I learned a lot about maven and the <a href="http://mojo.codehaus.org/gwt-maven-plugin/">gwt-maven-plugin</a> (from Codehaus), and creating maven archetypes. Unfortunately, right now the interaction between GWT and the gwt-maven-plugin is a little awkward. The good news is that the GWT Eclipse plugin team <a href="http://groups.google.com/group/google-web-toolkit/msg/8ff67143cce64e19">announced that they will be making some changes </a>to make their plugin more flexible, so that it will work better with maven. When that happens, I plan on updating my archetypes and releasing them, as the one included with the current gwt-maven-plugin is dated and defaults to gwt 1.7.</p>
<p>One more thing about GWT. I <strong>wanted to create some charts and graphics in GWT</strong>. I&#8217;ve had this in the back of my mind since I read the article on the <a href="http://googlewebtoolkit.blogspot.com/2009/09/hydro4ge-paas-built-with-gwt.html">GWT blog about Hydro4ge</a> using a JavaScriptObject wrapper around the <a href="http://raphaeljs.com/">Raphael</a> graphics library. I was going to start on the wrapper for Raphael myself, but it turns out the Hydro4ge guys released their code which they wrote about as <a href="http://code.google.com/p/raphaelgwt/">Raphaelgwt</a>. I got a chance to check it out today. It is fantastic! Hopefully I&#8217;ll have a new gwt-raphael sketch up for you in March.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2010/02/28/continuing-adventures-with-gwt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More on TabLayoutPanel</title>
		<link>http://www.filsa.net/2010/01/23/more-on-tablayoutpanel/</link>
		<comments>http://www.filsa.net/2010/01/23/more-on-tablayoutpanel/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 09:35:23 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Google Web Toolkit]]></category>
		<category><![CDATA[Sketches]]></category>
		<category><![CDATA[TabLayoutPanel]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=183</guid>
		<description><![CDATA[Okay, in the interest of moving on with my life, I am going to call the last couple days of GWT experiments to be over. But first! I am publishing a couple of code sketches of what I&#8217;ve been working on.

I think I have gotten the hang of working with TabLayoutPanel. (see my last post [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, in the interest of moving on with my life, I am going to call the last couple days of GWT experiments to be over. But first! I am publishing a couple of code sketches of what I&#8217;ve been working on.</p>
<p><img class="alignnone size-medium wp-image-186" title="Working with TabLayoutPanel" src="http://www.filsa.net/wp-content/uploads/2010/01/gwt-tablayoutpanel-1-300x168.jpg" alt="" width="300" height="168" /></p>
<p>I think I have gotten the hang of working with TabLayoutPanel. (see my last post for lessons learned). Below are two demos of a financial app that I sketched out.</p>
<ol>
<li>The <a href="http://filsa.org/code/tradedash/v1/">first demo</a> has the TabLayoutPanel working.</li>
<li>The <a href="http://filsa.org/code/tradedash/v2/">second demo</a> I have added icons to the TabLayoutPanel tabs, as well as adding click handlers to the buttons on the InfoBar and the &#8220;About&#8221; link in the header.</li>
</ol>
<p>(Note: above doesn&#8217;t work on IE8. Not sure why, and I haven&#8217;t been testing on IE at all&#8230; well, these are just experiments to learn GWT, so, sorry about that. Moving on&#8230;)</p>
<p>I&#8217;m really not a designer, so forgive the ugly colors and css. But it does work, and it is pretty brilliant that thanks to GWT this will work across browser (although if you look at the demos in IE you will see that my header image isn&#8217;t working right&#8230; that&#8217;s ok, I was focused on the Tab layout in this experiment.)</p>
<p>Below are the UiBinder template I used for the tabs, and also the css:</p>
<pre class="brush: xml; highlight: [48,49,57,58,66,67];">
&lt;!DOCTYPE ui:UiBinder SYSTEM &quot;http://dl.google.com/gwt/DTD/xhtml.ent&quot;&gt;
&lt;ui:UiBinder xmlns:ui=&quot;urn:ui:com.google.gwt.uibinder&quot;
	xmlns:g=&quot;urn:import:com.google.gwt.user.client.ui&quot;
	xmlns:trade=&quot;urn:import:org.filsa.gwt.tradedash.client.ui&quot;
	&gt;

	&lt;ui:image field=&quot;rateTabLogo&quot; src=&quot;chart_24x24.png&quot;&gt;&lt;/ui:image&gt;
	&lt;ui:image field=&quot;listTabLogo&quot; src=&quot;coins_24x24.png&quot;&gt;&lt;/ui:image&gt;
	&lt;ui:image field=&quot;marketTabLogo&quot; src=&quot;yen_24x24.png&quot;&gt;&lt;/ui:image&gt;

	&lt;ui:style&gt;
		.rateboardPanel {
			background: #efefef;
			border-right: 1px solid #cdcdcd;
			border-bottom: 1px solid #cdcdcd;
		}
		.tabCard {
			border: solid 3px #8d8d8d;
			height: 100%;
		}

		.tab { height: 100%;
  		    cursor: pointer;
		    text-shadow: rgba(255, 255, 255, 1) 0 1px 1px;
		    font-size: 1.2em;
		    font-weight: bold;
		    color: #000;
		    border-top: 1px solid #666;
		    border-left: 1px solid #999;
		    border-right: 1px solid #666;

		    vertical-align: middle;

		}

		@sprite .rateTab {gwt-image: &quot;rateTabLogo&quot;;}
		@sprite .listTab {gwt-image: &quot;listTabLogo&quot;;}
		@sprite .marketTab {gwt-image: &quot;marketTabLogo&quot;;}

		.left {float: left;}

	&lt;/ui:style&gt;
	&lt;g:HTMLPanel addStyleNames=&quot;{style.rateboardPanel}&quot;&gt;
		&lt;g:TabLayoutPanel barHeight=&quot;40&quot; barUnit=&quot;PX&quot; ui:field=&quot;tabPanel&quot;&gt;
		&lt;g:tab&gt;
			&lt;g:header&gt;
				&lt;div class=&quot;{style.tab}&quot;&gt;
					&lt;span class=&quot;{style.rateTab} {style.left}&quot;&gt;&lt;/span&gt;
					&lt;span&gt;Rateboard&lt;/span&gt;
				&lt;/div&gt;
			&lt;/g:header&gt;
			&lt;g:Label addStyleNames=&quot;{style.tabCard}&quot;&gt;RateBoard here.&lt;/g:Label&gt;
		&lt;/g:tab&gt;
		&lt;g:tab&gt;
			&lt;g:header&gt;
				&lt;div class=&quot;{style.tab}&quot;&gt;
					&lt;span class=&quot;{style.listTab} {style.left}&quot;&gt;&lt;/span&gt;
					&lt;span&gt;RateList&lt;/span&gt;
				&lt;/div&gt;
			&lt;/g:header&gt;
			&lt;trade:RateListCard  addStyleNames=&quot;{style.tabCard}&quot;&gt;&lt;/trade:RateListCard&gt;
		&lt;/g:tab&gt;
		&lt;g:tab&gt;
			&lt;g:header&gt;
				&lt;div class=&quot;{style.tab}&quot;&gt;
					&lt;span class=&quot;{style.marketTab} {style.left}&quot;&gt;&lt;/span&gt;
					&lt;span&gt;MarketBoard&lt;/span&gt;
				&lt;/div&gt;
			&lt;/g:header&gt;
			&lt;g:Label addStyleNames=&quot;{style.tabCard}&quot;&gt;MarketBoard here here.&lt;/g:Label&gt;
		&lt;/g:tab&gt;

		&lt;/g:TabLayoutPanel&gt;

	&lt;/g:HTMLPanel&gt;
&lt;/ui:UiBinder&gt;
</pre>
<p>Note the highlighted span tags above. I used one span for the image, and one for the title of the tab. If there is a better way to do this I&#8217;m open to suggestions. Please leave a comment!</p>
<p>And the css I used for the gwt-TabLayoutPanel:</p>
<pre class="brush: css; highlight: [3];">
.gwt-TabLayoutPanel
{
	height: 100%;
}
.gwt-TabLayoutPanel .gwt-TabLayoutPanelTabs
{}
.gwt-TabLayoutPanel .gwt-TabLayoutPanelTab
{
		background: #a4a4a4;
		margin: 0px 5px;
}
.gwt-TabLayoutPanel .gwt-TabLayoutPanelTab-selected
{
		background: #8d8d8d;
}
.gwt-TabLayoutPanel .gwt-TabLayoutPanelTabInner
{
}
</pre>
<p>The height:100% is what makes the tab contents appear, otherwise the tab content area doesn&#8217;t show at all. Something to do with absolute positioning in CSS, from what I understand.</p>
<p>Hope this helps, and let me know if you have better suggestions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2010/01/23/more-on-tablayoutpanel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GWT Notes: TabLayoutPanel</title>
		<link>http://www.filsa.net/2010/01/21/gwt-notes-tablayoutpanel/</link>
		<comments>http://www.filsa.net/2010/01/21/gwt-notes-tablayoutpanel/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 14:20:20 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Google Web Toolkit]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[TayLayoutPanel]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=172</guid>
		<description><![CDATA[I&#8217;ve been putting in some time over the past week building UI&#8217;s with GoogleWebToolkit and the new UIBinder.
It is all very spiffy and so much easier to use than 1.7 was. Last summer I tried to put together some moderately complex UI&#8217;s and found that doing everything in Java to be slow and tedious.
I will [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been putting in some time over the past week building UI&#8217;s with GoogleWebToolkit and the new UIBinder.</p>
<p>It is all very spiffy and so much easier to use than 1.7 was. Last summer I tried to put together some moderately complex UI&#8217;s and found that doing everything in Java to be slow and tedious.</p>
<p>I will cautiously say that I am getting the hang of UIBinder, and that is far and away my current favorite feature from the new 2.0.0 release.</p>
<p>That said, there are a few minor snags.</p>
<p>The new <a href="http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html">LayoutPanels</a> are for fast, browser-rendered widgets, done in standards mode. I prefer them to the old Panels they replace because they don&#8217;t use tables, instead the layout is all clean css and &lt;div&gt;s.</p>
<p>But when I started working with the TabLayoutPanel, I ran into some problems which I&#8217;ve listed below.</p>
<p>- <strong>The TabLayoutPanel doesn&#8217;t display at all</strong>, or you get a weird collapsed layout (if you&#8217;ve added css). Remember, you  must use standards mode &lt;!DOCTYPE html&gt; for LayoutPanels, and you have to use RootLayoutPanel.get() instead of the old RootPanel.get().</p>
<div id="_mcePaste">- <strong>There aren&#8217;t any default css styles.</strong> If all you see are the tabs titles with no styling&#8230; check the <a href="http://google-web-toolkit.googlecode.com/svn/javadoc/2.0/com/google/gwt/user/client/ui/TabLayoutPanel.html">apidoc </a>to see the css styles you need to add. This isn&#8217;t actually a bug, but without default css the class is pretty much worthless. (There is an <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=4429">issue</a> for this.)</div>
<div>- <strong>The tabs display, but the tab widgets (content area) don&#8217;t.</strong> You need to set the <a href="http://groups.google.com/group/google-web-toolkit/browse_thread/thread/7c933584b0052743/0762f15fce2d5ca6?lnk=gst&amp;q=TabLayoutPanel#0762f15fce2d5ca6"> height</a> of the <span style="font-family: fixed-width, monospace; line-height: normal; font-size: 12px;">.gwt-<strong><span style="font-weight: normal;">TabLayoutPanel<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: small;"><span style="line-height: 19px;">.</span></span></span></strong></span></div>
<div>- <strong>It doesn&#8217; work in IE</strong> (what does?).  There&#8217;s a <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=4447">bug </a>with TabLayoutPanel and IE, and a simple css workaround:</div>
<pre class="brush: css;">
.gwt-TabLayoutPanel .gwt-TabLayoutPanelTab { float: left; }
</pre>
<p><strong>Update</strong>: See my next post, <a href="http://www.filsa.net/2010/01/23/more-on-tablayoutpanel/">More on TabLayoutPanel</a> for some sample css and demos.</p>
<p><strong>Update 2</strong>: GWT version 2.0.1 address the problems with IE and provides a default CSS style. You still have to remember to use RootLayoutPanel, and standards mode doctype, when using a LayoutPanel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2010/01/21/gwt-notes-tablayoutpanel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whoa, StackOverflow error</title>
		<link>http://www.filsa.net/2010/01/12/whoa-stackoverflow/</link>
		<comments>http://www.filsa.net/2010/01/12/whoa-stackoverflow/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 23:26:04 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=113</guid>
		<description><![CDATA[I totally cracked myself up at work yesterday. I managed to run some code that threw a StackOverflow error.
It was something along the lines of:

public String getSender() { return this.getSender(); }

I had copy-and-pasted some class template code from elsewhere in the (huge, sprawling) code base. Which contained this error, but was not ever called in [...]]]></description>
			<content:encoded><![CDATA[<p>I totally cracked myself up at work yesterday. I managed to run some code that threw a StackOverflow error.</p>
<p>It was something along the lines of:</p>
<p><code><br />
public String getSender() { return this.getSender(); }<br />
</code></p>
<p>I had copy-and-pasted some class template code from elsewhere in the (huge, sprawling) code base. Which contained this error, but was not ever called in the that location, so it never showed up. (So it&#8217;s not my fault really, but I should have caught it. Oh wait, I did!)</p>
<p>Oh, the dangers of copy and paste.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2010/01/12/whoa-stackoverflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Sketch: System Tray in Java</title>
		<link>http://www.filsa.net/2010/01/12/code-sketch-system-tray-in-java/</link>
		<comments>http://www.filsa.net/2010/01/12/code-sketch-system-tray-in-java/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 23:05:41 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Sketches]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=166</guid>
		<description><![CDATA[As I mentioned a week or so ago, this year I am going to release whatever I am working on, on a regular basis. The idea is that even if I fail or release something that is half finished, I can learn more by turning it out to the wild than if I never share [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned a week or so ago, this year I am going to release whatever I am working on, on a regular basis. The idea is that even if I fail or release something that is half finished, I can learn more by turning it out to the wild than if I never share it with anyone.</p>
<p>These bits of code are not big enough to be called apps, and don&#8217;t have enough explanatory text to call them demos or tutorials (although I want to do that as well). I&#8217;ll call them&#8230;. code sketches!</p>
<p>The first one I worked on over the New Year break. It&#8217;s code for a simple system tray, done in Java. The code is available from scn, and the license is GPL.</p>
<div id="attachment_141" class="wp-caption aligncenter" style="width: 343px"><a href="http://www.filsa.net/code/sketches/system-tray/"><img class="size-full wp-image-141 " title="systray notify balloon" src="http://www.filsa.net/wp-content/uploads/2010/01/systray-3-balloon.png" alt="" width="333" height="111" /></a><p class="wp-caption-text">Java allows access to native System Tray notifications.</p></div>
<p>You can check it out here, on the code sketch page: <a href="http://www.filsa.net/code/sketches/system-tray/">/code/sketches/system-tray</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2010/01/12/code-sketch-system-tray-in-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ConcurrentModificationError Mystery</title>
		<link>http://www.filsa.net/2010/01/04/concurrentmodificationerror-mystery/</link>
		<comments>http://www.filsa.net/2010/01/04/concurrentmodificationerror-mystery/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 16:59:07 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[ConcurrentModificationError]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=148</guid>
		<description><![CDATA[So, today I got bit by the ConcurrentModificationError. I had some code which had a bit of a bad smell but was working fine. The class is a batch process, that processes a request. Based on the request, a particular subset of accounts are processed. The method below gets the target accounts based on the [...]]]></description>
			<content:encoded><![CDATA[<p>So, today I got bit by the ConcurrentModificationError. I had some code which had a bit of a bad smell but was working fine. The class is a batch process, that processes a request. Based on the request, a particular subset of accounts are processed. The method below gets the target accounts based on the request, and additionally filters out corporate accounts. And the ConcurrentModificationError happens on line 9:</p>
<pre class="brush: java; highlight: [9];">
	/**
	 * Get accounts to process based on BatchRequest, filtering out corporate accounts.
	 * @param request
	 */
	public void getAccounts (BatchRequest request) {

		List&lt;Account&gt; accounts = AccountManager.getAccounts(request);

		for (Account oneAccount : accounts) {
			if (isCorporateAccount(oneAccounts)) {
				accounts.remove(oneAccount);
			}
		}

	}
</pre>
<p>The List which the AccountManager is passing back has a fail-fast iterator, which detects that it is being modified in line 11, and thus failing. The mystery is&#8211;this has been working in production for months. Today, on UAT we tested a second batch job with very similar data (for all intents and purposes it is completely the same request, just a different group of accounts) and on the second pass <em>only</em>, the ConcurrentModificationError gets thrown. The first pass through it is fine.</p>
<p>Color me confused. It should work both times, or fail both times. And yes, the data is basically the same&#8211;I triple checked that today. But it works the first time, and fails the second.</p>
<p>Rather than spend more time wondering why it works once and fails the second time, I figure I should just eliminate the possibility of the ConcurrentModificationException entirely.  I had to make changes to the AccountManager module, which I hadn&#8217;t had the chance to change before.  But it is definitely a cleaner solution. By adding a signature to the <code>AccountManager.getAccounts(BatchRequest request, boolean includeCorporateAccounts)</code> I was able to simplify the code to something like this:</p>
<pre class="brush: java;">

	private static final boolean EXCLUDE_CORPORATE_ACCTS_FLAG = false;

	/**
	 * Get accounts to process based on BatchRequest, filtering out corporate accounts.
	 * @param request
	 */
	public void getAccounts (BatchRequest request) {

		return AccountManager.getAccounts(request, EXCLUDE_CORPORATE_ACCTS_FLAG);

	}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2010/01/04/concurrentmodificationerror-mystery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello, 2010!</title>
		<link>http://www.filsa.net/2010/01/02/hello-2010/</link>
		<comments>http://www.filsa.net/2010/01/02/hello-2010/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 14:03:50 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Meta]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=133</guid>
		<description><![CDATA[Well, 2009 was an eventful year for me, but not so much for the blog. I am hoping to change that in this brand new decade, with the idea that I can learn and improve faster if I am writing down and sharing what I am learning. In the last couple years the blog has [...]]]></description>
			<content:encoded><![CDATA[<p>Well, 2009 was an eventful year for me, but not so much for the blog. I am hoping to change that in this brand new decade, with the idea that I can learn and improve faster if I am writing down and sharing what I am learning. In the last couple years the blog has mostly been a place for me to make note of a solution to a technical problem I had encountered&#8211;a backup brain of technical stuff  I found useful and was likely to forget. I&#8217;ll probably keep doing that, but also want to write some beefier articles and how-tos and especially post code I&#8217;ve written.</p>
<p>I definitely want to code more little projects. I&#8217;ve decided I&#8217;d rather just create some things and put them out into the world without too much worry about who they will impress or their ultimate usefulness. It&#8217;s better to ship software rather than just have big plans. Just like exercise&#8211;no one will raise an eyebrow at my glacial running pace but really, it&#8217;s for my benefit not everyone else&#8217;s. The same thinking applies to this blog as well.</p>
<p>For those of you who choose to read (hi mom!&#8230;. mom?) thanks for hanging with me and I hope to have something more substantial for you to read in this new year.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2010/01/02/hello-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reading Linux ext2 Disks in Windows</title>
		<link>http://www.filsa.net/2009/12/21/reading-linux-ext2-disks-in-windows/</link>
		<comments>http://www.filsa.net/2009/12/21/reading-linux-ext2-disks-in-windows/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 15:06:37 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=126</guid>
		<description><![CDATA[Sometimes, you need to be able to read a Linux filesystem from Windows. Either you are dual-booting, or perhaps like me you are trying to get some data off some old hard disks that have been in a box for a couple years.
There&#8217;s a handy driver that will mount ext2 disks on Windows available from [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes, you need to be able to read a Linux filesystem from Windows. Either you are dual-booting, or perhaps like me you are trying to get some data off some old hard disks that have been in a box for a couple years.</p>
<p>There&#8217;s a handy driver that will mount ext2 disks on Windows available from <a href="http://fs-driver.org/">http://www.fs-driver.org/</a>. Install it, and when you have attached the drive, use the Control Panel &#8220;IFS Drives&#8221; item to select a drive letter for your volume.</p>
<p>Works great, and transparently in Windows.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2009/12/21/reading-linux-ext2-disks-in-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gwt-maven-plugin updated to 1.2</title>
		<link>http://www.filsa.net/2009/12/20/gwt-maven-plugin-updated-to-1-2/</link>
		<comments>http://www.filsa.net/2009/12/20/gwt-maven-plugin-updated-to-1-2/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 23:50:28 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[gwt]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=122</guid>
		<description><![CDATA[The very handy Google Web Toolkit plugin for Maven has finally been updated in the respoitory to version 1.2.  At this point the docs on the website are still for v1.1 (actually 1.2-snapshot) from October.
But I can finally point at the official repo instead of using my own build in my projects.
It supports the new [...]]]></description>
			<content:encoded><![CDATA[<p>The very handy Google Web Toolkit plugin for Maven has finally been <a href="http://repository.codehaus.org/org/codehaus/mojo/gwt-maven-plugin/">updated in the respoitory to version 1.2</a>.  At this point the <a href="http://mojo.codehaus.org/gwt-maven-plugin/">docs </a>on the website are still for v1.1 (actually 1.2-snapshot) from October.</p>
<p>But I can finally point at the official repo instead of using my own build in my projects.</p>
<p>It supports the new compiler options, and spits out those beautiful SOYC reports. The archetype doesn&#8217;t seem to have had any significant changes  that I can see (could be wrong), but it works just fine under gwt-2.0.0. I wish the default for gwtVersion was 2.0.0 though.</p>
<p>Thank you to the developers of the plugin&#8211;it makes working with the exciting new version 2.0 of GWT that much more easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2009/12/20/gwt-maven-plugin-updated-to-1-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JADclipse and Eclipse 3.5</title>
		<link>http://www.filsa.net/2009/10/06/jadclipse-for-3-5/</link>
		<comments>http://www.filsa.net/2009/10/06/jadclipse-for-3-5/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 01:10:51 +0000</pubDate>
		<dc:creator>phil</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.filsa.net/?p=120</guid>
		<description><![CDATA[JADclipse and Eclipse 3.5
Yesterday was the second time in as many months where I was really, really glad I had a decompiler handy. When you need a decompiler, it turns out, you really need one.
Despite the fact that it was written in 2001, Pavel Kouznetsov&#8217;s JAD decompiler is fast and works more than well enough. [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">JADclipse and Eclipse 3.5</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Yesterday was the second time in as many months where I was really, really glad I had a decompiler handy. When you need a decompiler, it turns out, you really need one.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Despite the fact that it was written in 2001, Pavel Kouznetsov&#8217;s JAD decompiler is fast and works more than well enough. There&#8217;s an Eclipse plugin for it, JADclipse, which takes the JAD output and sticks it into the Class File Viewer.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Both of these projects are no longer maintained, as far as I can tell. The JAD website is gone, and the plugin update site for JADclipse doesn&#8217;t work anymore.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">However, with a bit of searching, I came across this archive of JAD executables, and</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Mike Schrag has graciously hosted update sites for JADclipse. JADclipse itself was created for Eclipse 3.3, but the plugin works with Eclipse 3.4 and I can confirm it works with Eclipse 3.5. Use Mike&#8217;s 3.4 update site and you&#8217;ll be just fine.</div>
<p>Yesterday was the second time in as many months where I was really, really glad I had a decompiler handy. When you need a decompiler, it turns out, you really need one.</p>
<p>Despite the fact that it was written in 2001, Pavel Kouznetsov&#8217;s JAD decompiler is fast and works more than well enough. There&#8217;s an Eclipse plugin for it, JADclipse, which takes the JAD output and sticks it into the Class File Viewer.</p>
<p>Both of these projects are no longer maintained, as far as I can tell. The JAD website is gone, and the plugin update site for JADclipse doesn&#8217;t work anymore.</p>
<p>However, with a bit of searching, I came across this <a href="http://www.varaneckas.com/jad">archive of JAD executables</a>, and Mike Schrag has graciously hosted <a href="http://webobjects.mdimension.com/jadclipse/">update sites for JADclipse</a>. JADclipse itself was created for Eclipse 3.3, but the plugin works with Eclipse 3.4 and I can confirm it works with Eclipse 3.5. Use Mike&#8217;s 3.4 update site and you&#8217;ll be just fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.filsa.net/2009/10/06/jadclipse-for-3-5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
