<?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>Mark McLaren&#039;s Blog</title>
	<atom:link href="http://www.markmclaren.com/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markmclaren.com/wp</link>
	<description>Real-world Software Development</description>
	<lastBuildDate>Fri, 12 Nov 2010 18:53:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SoyLatte is comparable to Apple&#8217;s JVM</title>
		<link>http://www.markmclaren.com/wp/soylatte-is-comparable-to-apples-jvm/</link>
		<comments>http://www.markmclaren.com/wp/soylatte-is-comparable-to-apples-jvm/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 18:53:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=45</guid>
		<description><![CDATA[Now that Apple has put the knife into their former buddy Java, many programmers are suddenly looking at alternative JVMs for the Mac, such as SoyLatte.
So &#8220;How does SoyLatte compare to Apple&#8217;s JVM?&#8221; is a common question.  Well if your program uses Swing components the answer is &#8220;like a dog&#8217;s breakfast &#8220;.  But [...]]]></description>
			<content:encoded><![CDATA[<p>Now that Apple has put the knife into their former buddy Java, many programmers are suddenly looking at alternative JVMs for the Mac, such as <a href="http://landonf.bikemonkey.org/static/soylatte/">SoyLatte</a>.</p>
<p>So &#8220;How does SoyLatte compare to Apple&#8217;s JVM?&#8221; is a common question.  Well if your program uses Swing components the answer is &#8220;like a dog&#8217;s breakfast &#8220;.  But if you use SWT or don&#8217;t have a graphical interface, your main concern is speed and stability.  I don&#8217;t know how robust SoyLatte is, but to test its speed I went up to the attic and dusted off an old Eclipse plugin I wrote called <a href="http://www.markmclaren.com/wp/javaspeed-eclipse-plugin/">JavaSpeed</a>.  Here&#8217;s the result:</p>
<p><img src="http://www.markmclaren.com/wp/wp-content/uploads/2010/11/soylatte-vs-apple.png" alt="soylatte-vs-apple" title="soylatte-vs-apple" width="517" height="325" class="alignnone size-full wp-image-46" /></p>
<p>The results are based on <a href="http://kano.net/javabench/">this simple benchmark</a>, which I fully admit aren&#8217;t very scientific but are better than nothing.  Apple&#8217;s JVM seems to be better, but SoyLatte hasn&#8217;t disgraced itself.  </p>
<p>I also checked out and built the latest OpenJDK as per <a href="http://wikis.sun.com/display/OpenJDK/Darwin10Build">these instructions</a>, and tested all three JVMs:<br />
<img src="http://www.markmclaren.com/wp/wp-content/uploads/2010/11/compare-3-jvms.png" alt="compare-3-jvms" title="compare-3-jvms" width="520" height="328" class="alignnone size-full wp-image-54" /></p>
<p>If you want to run these tests yourself, it&#8217;s a simple matter of downloading <a href='http://www.markmclaren.com/wp/wp-content/uploads/2010/11/JavaSpeed_1.0.0.zip'>this zip file</a> and extracting into the &#8216;plugins&#8217; directory of Eclipse.  Run Eclipse and click menu Run > Run Configurations > Java Speed and click the &#8216;New&#8217; button.</p>
<p>Finally, let&#8217;s compare Apples with Apples:<br />
<img src="http://www.markmclaren.com/wp/wp-content/uploads/2010/11/compare-apples.png" alt="compare-apples" title="compare-apples" width="518" height="327" class="alignnone size-full wp-image-58" /></p>
<p>Looks like Apple took their eye off the ball when it came to Java, but then you already knew that, didn&#8217;t you?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/soylatte-is-comparable-to-apples-jvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How We Increased Sales by Asking for an Email</title>
		<link>http://www.markmclaren.com/wp/how-we-increased-sales-by-asking-for-an-email/</link>
		<comments>http://www.markmclaren.com/wp/how-we-increased-sales-by-asking-for-an-email/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 14:15:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=22</guid>
		<description><![CDATA[A common question asked by software developers is: Should we ask users for an email before they can try our software?  Asking for an email would be useful for marketing purposes, but would be a turn-off for some users and discourage them from trying it.
This is exactly the question we asked a few months [...]]]></description>
			<content:encoded><![CDATA[<p>A common question asked by software developers is: Should we ask users for an email before they can try our software?  Asking for an email would be useful for marketing purposes, but would be a turn-off for some users and discourage them from trying it.</p>
<p>This is exactly the question we asked a few months ago &#8211; to answer it we set up an A/B test.  Half the visitors to <a href="http://www.solaraccounts.co.uk/download.php">our download page</a> were asked for their name and email address, half weren&#8217;t.<br />
<span id="more-22"></span><br />
Here&#8217;s the two download options side-by-side:</p>
<p><img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2009/08/download-split-example1.jpg" alt="" title="download-split-example1" width="400" height="240" class="alignnone size-full wp-image-130" /></p>
<p>After thousands of downloads and hundreds of sales, here are the results:<br />
<img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2009/08/download-split-test1.jpg" alt="" title="download-split-test1" width="450" height="370" class="alignnone size-full wp-image-133" /></p>
<p>As expected, the number of downloads dropped off when asking for an email.  But the <em>overall number of sales increased by 18%</em>.  This was a pleasant surprise!  </p>
<p>So what do we do with an email address that compensates for the reduced download rate?  We use it in two ways: </p>
<ol>
<li>As soon as the user downloads the software, we send an email saying, &#8220;Thanks for downloading &#8211; here is a useful How-To guide&#8221;
<li>Two weeks later we send another email (if they have not opted out) asking &#8220;Did you like our software?&#8221;
</ol>
<p>Even though we don&#8217;t get much response from that second email, I suspect it is very useful to remind them to consider our product once again.   Also, it&#8217;s very important not to annoy people who are considering using our software.  That is:</p>
<ol>
<li>The name and email address is <em>optional</em>.  Making it compulsory would just result in lots of fake emails.
<li>There are only 3 fields in the form.  The more fields the more of a turn-off, and we only really care about the email address (and their name to get though spam filters).
<li>There&#8217;s an option to opt out of receiving marketing email.  This gives the user added confidence that we &#8216;play by the rules&#8217;.
</ol>
<p>Of course, every software product is different, and you may not get the same results.  The best way to be sure is to do an A/B test yourself &#8211; if you have your own results please post a comment below!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/how-we-increased-sales-by-asking-for-an-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The UML Diagram They Don&#8217;t Teach You in School</title>
		<link>http://www.markmclaren.com/wp/the-uml-diagram-they-dont-teach-you-in-school/</link>
		<comments>http://www.markmclaren.com/wp/the-uml-diagram-they-dont-teach-you-in-school/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 06:44:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=20</guid>
		<description><![CDATA[I love class diagrams.  When I&#8217;m knee-deep in spaghetti code there&#8217;s nothing better to help me understand what&#8217;s going on.  I&#8217;ve even developed an obsessive-compulsive disorder which requires me to have a pen and paper handy at all times &#8216;just in case&#8217; I need to jot down a little class diagram.
But recently I [...]]]></description>
			<content:encoded><![CDATA[<p>I love class diagrams.  When I&#8217;m knee-deep in spaghetti code there&#8217;s nothing better to help me understand what&#8217;s going on.  I&#8217;ve even developed an obsessive-compulsive disorder which requires me to have a pen and paper handy at all times &#8216;just in case&#8217; I need to jot down a little class diagram.</p>
<p>But recently I came across a bit of code that was resistant to the power of the class diagram.  What if there are no significant class relationships, just a bunch of static methods?<br />
<span id="more-20"></span><br />
Here&#8217;s what I mean:</p>
<p><img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/07/bunch-of-static-methods.png" alt="" title="bunch-of-static-methods" width="315" height="254" class="alignnone size-full wp-image-65" /></p>
<p>The solution: a method call diagram.  This diagram just shows a circle for each method and an arrow for each method call.  From there it&#8217;s easy to see how to merge methods and simplify the call structure.  </p>
<p><a href="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/07/method-call-diagram2.jpg"><img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/07/method-call-diagram2.jpg" alt="" title="method-call-diagram" width="453" height="678" class="alignnone size-full wp-image-68" /></a></p>
<p>Obvious?  Perhaps,  but doesn&#8217;t seem to get the airplay it deserves.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/the-uml-diagram-they-dont-teach-you-in-school/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solar Accounts Released</title>
		<link>http://www.markmclaren.com/wp/solar-accounts-released/</link>
		<comments>http://www.markmclaren.com/wp/solar-accounts-released/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 11:45:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=18</guid>
		<description><![CDATA[Well after 3 years development we&#8217;ve finally released Solar Accounts:

www.SolarAccounts.co.uk


]]></description>
			<content:encoded><![CDATA[<p>Well after 3 years development we&#8217;ve finally released Solar Accounts:</p>
<p>
<a href="http://www.solaraccounts.co.uk">www.SolarAccounts.co.uk</a></p>
<p>
<a class="imagelink" href="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/02/home_thumb.png" title="home_thumb.png"><img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/02/home_thumb.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/solar-accounts-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ten Under-Appreciated Eclipse Keystrokes</title>
		<link>http://www.markmclaren.com/wp/ten-under-appreciated-eclipse-keystrokes/</link>
		<comments>http://www.markmclaren.com/wp/ten-under-appreciated-eclipse-keystrokes/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 11:32:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=16</guid>
		<description><![CDATA[Think you know Eclipse?  Most programmers quickly learn the common keystrokes but don&#8217;t take advantage of other good shortcuts.  Here are my favourite lesser-known ones:

1. Ctrl-F6 &#8211; Next Editor
 This handy little keystroke gives you a stack of open windows to cycle through, similar to Alt-Tab in Windows.  I use it so [...]]]></description>
			<content:encoded><![CDATA[<p>Think you know Eclipse?  Most programmers quickly learn the <a href="http://sureshkrishna.wordpress.com/2007/09/15/top-10-eclipse-shotcuts/">common keystrokes</a> but don&#8217;t take advantage of other good shortcuts.  Here are my favourite lesser-known ones:<br />
<span id="more-16"></span></p>
<h4 style="font-size:12px">1. Ctrl-F6 &#8211; Next Editor</h4>
<p><img id="image53" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/01/ctrl-f6.png"  alt="ctrl-f6.png" style="float:right;margin-left:12px;" /> This handy little keystroke gives you a stack of open windows to cycle through, similar to Alt-Tab in Windows.  I use it so often I&#8217;ve re-mapped it to Ctrl-Tab.<br />
<br/></p>
<h4 style="font-size:12px">2. Ctrl-1 &#8211; Quick Fix</h4>
<p><img id="image56" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/01/ctrl-1.png" alt="Ctrl-1" style="float:right;margin-left:12px;" /></p>
<p>Okay, so you know about this one.  But do you create errors <i>on purpose</i> so Quick Fix can do its magic?  This is often faster than typing the correct code.  Some examples:</p>
<ul>
<li>When creating new variables, don&#8217;t declare the type &#8211; let Eclipse figure it out from the assignment expression.</li>
<li>Call a method that doesn&#8217;t exist yet and Eclipse will add it for you, complete with semi-intelligent parameter names.</li>
<li>Need to add or remove method arguments?  Just change the method call and Eclipse will update the method declaration.</li>
<li>On a line with no errors, use Ctrl-1 to &#8216;Rename in File&#8217;, which executes much faster than Ctrl-R.  (If the line has errors, you&#8217;ll have to select the element you want to rename)</li>
</ul>
<p><br/></p>
<h4 style="font-size:12px">3. Ctrl-T &#8211; Quick Hierachy</h4>
<p><img id="image57" style="float:right;margin-left:12px;" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/01/ctrl-t.png" alt="Ctrl-T" />From within a method press Ctrl-T to quickly navigate to a sub-class implementation or to a super-class definition.<br />
<br/><br />
<br/></p>
<h4 style="font-size:12px">4. Ctrl-Q &#8211; Go To Last Edit Position</h4>
<p>Does exactly what it says on the tin.  Useful when you&#8217;ve copied a bit of text and want to paste it into your last edit position. This keystroke is so good I find myself instinctively using it in editors outside Eclipse.<br />
<br/></p>
<h4 style="font-size:12px">5. Alt-Shift-Up &#8211; Expand Selection To Enclosing Element</h4>
<p><img id="image58" style="float:right;margin-left:12px;"  src="http://markmclaren.com/wp/pre-conversion-content/uploads/2008/01/ctrl-shift-up.png" alt="Ctrl-Shift-Up" />This keystroke is often faster and more accurate than a mouse in selecting text.  <br/>Use Alt-Shift-Down for the reverse operation.<br />
<br/></p>
<h4 style="font-size:12px">6. Ctrl-Space &#8211; Content Assist</h4>
<p>Use this <i>outside a method</i> to add constructors, getters, setters and overridden methods to a class.<br />
<br/></p>
<h4 style="font-size:12px">7. Alt-Up/Down &#8211; Move Line Up/Down</h4>
<p>Move the current line or selection up or down.<br />
<br/></p>
<h4 style="font-size:12px">8. Ctrl-Delete/Backspace &#8211; Delete Word</h4>
<p>These are two &#8220;standard&#8221; keystrokes used in many editors and are very useful.  I have to admit I only discovered them about a year ago!<br />
<br/></p>
<h4 style="font-size:12px">9. Ctrl-D &#8211; Delete Line</h4>
<p>Like me, many developers have discovered this one accidentally while habitually pressing Ctrl-S to save their work;  &#8220;Damn! What did I press?!  Hmm&#8230; actually that&#8217;s quite useful&#8230;&#8221;<br />
<br/></p>
<h4 style="font-size:12px">10. Ctrl-M &#8211; Maximise Editor</h4>
<p>Not used in everyday desktop programming, but indispensable on a laptop.  If you use it much you&#8217;ll want to turn off the animation (Window -> Preferences -> Appearance).  Even then, this feature is noticeably slower than in the good ol&#8217; version 2.0 days.<br />
<br/><br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/ten-under-appreciated-eclipse-keystrokes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Negative Productivity</title>
		<link>http://www.markmclaren.com/wp/negative-productivity/</link>
		<comments>http://www.markmclaren.com/wp/negative-productivity/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 09:30:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=14</guid>
		<description><![CDATA[Would you rather have a team of three excellent programmers or 15 with average ability?  Most programmers would want the team of three, but  most managers I suspect would pick the larger team.  There&#8217;s plenty of  support for the idea that the excellent-to-average productivity ratio is at least five, but you [...]]]></description>
			<content:encoded><![CDATA[<p>Would you rather have a team of three excellent programmers or 15 with average ability?  Most programmers would want the team of three, but  most managers I suspect would pick the larger team.  There&#8217;s <a href="http://www.joelonsoftware.com/articles/HighNotes.html">plenty</a> <a href="http://www.paulgraham.com/gh.html">of</a>  <a href="http://blog.revsys.com/2007/08/a-guide-to-hiri.html">support</a> for the idea that the excellent-to-average productivity ratio is at least five, but you occasionally hear, &#8220;Well, I could believe two or three times as productive, but <em>five or ten</em>&#8230;?&#8221;<br />
<span id="more-14"></span><br />
What&#8217;s more, software isn&#8217;t just about programming; you need someone to decide <em>what</em> to program.  Business Analyst types have their own productivity ratios which are even higher than programmers.  Partly this is because their effect is magnified by the size of the team, but also because they can so easily go backwards; they reduce the value of the software they touch.</p>
<p>A good example is the Alt-Tab behaviour in Windows Vista.  Since the dawn of time &#8211; or at least Windows 3.1 &#8211; the window which pops up when pressing Alt-Tab has been comfortingly simple:</p>
<p><img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2007/10/xp-alt-tab.png" alt="Alt-Tab in XP" /></p>
<p>But Microsoft and Simple are no longer on speaking terms. In Vista the window has been polluted with little screenshots like this:</p>
<p><img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2007/10/cropped-vista-alt-tab.png" alt="Alt-Tab in Vista" /></p>
<p>The time it takes to recognise the window you want is critical.  Any longer than a fraction of a second and you will start to forget why you wanted to switch in the first place.  Humans have evolved to immediately distinguish objects with different colour and shape &#8211; which makes the original use of icons perfect for the task.  But now these icons struggle for impact, competing with (mostly grey and white) screenshots.</p>
<p>Perhaps there was a Business Analyst in Redmond who worried the Mac OSX dock with its little screenshots looked better than the Windows taskbar. Or maybe she ran out of useful functionality to add to Windows.  Or maybe she was talked into it by programmers who thought it would be &#8216;cool&#8217;.  However it happened, a heap of effort was expended but <em>reduced</em> the value of the software.  That&#8217;s Negative Productivity.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/negative-productivity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Swing Font Rendering Still Playing Catch-up</title>
		<link>http://www.markmclaren.com/wp/swing-font-rendering-still-playing-catch-up/</link>
		<comments>http://www.markmclaren.com/wp/swing-font-rendering-still-playing-catch-up/#comments</comments>
		<pubDate>Thu, 14 Jun 2007 15:42:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=11</guid>
		<description><![CDATA[Three years ago we chose SWT for our accounting software partly because Swing was painfully bad at rendering text.  Since then Swing has come a long way, though it&#8217;s still not as good as Microsoft or Apple.
See for yourself; below are examples of different fonts rendered on different platforms.

Times New Roman:


Swing clearly has room [...]]]></description>
			<content:encoded><![CDATA[<p>Three years ago we chose SWT for our <a href="http://www.solaraccounts.co.uk">accounting software</a> partly because Swing was painfully bad at rendering text.  Since then Swing has come a long way, though it&#8217;s still not as good as Microsoft or Apple.</p>
<p>See for yourself; below are examples of different fonts rendered on different platforms.<br />
<span id="more-11"></span><br />
Times New Roman:</p>
<p><img alt="Times New Roman Sample" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2007/06/sample-times_new_roman.png" /><br />
<!--more--></p>
<p>Swing clearly has room to improve.  But maybe a change of font will do it good.  Let&#8217;s try Courier New:</p>
<p><img alt="Courier New Sample" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2007/06/sample-courier_new.png" /></p>
<p>This beauty contest is more evenly balanced.  Swing is still too jagged, but Gnome&#8217;s by-line is too light and Apple&#8217;s header is bleeding into the &#8216;paper&#8217;.</p>
<p>Now let&#8217;s try Verdana:</p>
<p><img alt="Verdana Sample" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2007/06/sample-verdana.png" /></p>
<p>Oh dear, Gnome really fell over.  And is it just me, or does Java Swing have a greenish hue?  Not healthy.</p>
<p>So it looks like Microsoft&#8217;s ClearType is the winner, followed closely by Apple, with Gnome and Swing bringing up the rear.</p>
<p>Notes:</p>
<ol>
<li>More discussion of Microsoft vs Apple font rendering is <a href="http://joelonsoftware.com/items/2007/06/12.html">here</a> and <a href="http://www.codinghorror.com/blog/archives/000885.html">here</a>.</li>
<li>The html to reproduce the tests is <a href="http://markmclaren.com/wp/pre-conversion-content/uploads/2007/06/sample2.html">here</a>.  For JEditorPane, change &#8216;px&#8217; to &#8216;pt&#8217;.  The exact configuration was:<br />
<span style="font-style: italic"> Gnome:</span> Firefox on Ubuntu 7.04 with font rendering set to &#8216;Subpixel Smoothing&#8217;<br />
<span style="font-style: italic"> Swing:</span> JEditorPane on Java 1.6.0_01 (with VM property awt.useSystemAAFontSettings=lcd)<br />
<span style="font-style: italic"> Windows:</span> Firefox on Windows XP SP2 with ClearType<br />
<span style="font-style: italic"> Apple:</span> Safari browser on Windows XP SP2</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/swing-font-rendering-still-playing-catch-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Missing Swing Components</title>
		<link>http://www.markmclaren.com/wp/missing-swing-components/</link>
		<comments>http://www.markmclaren.com/wp/missing-swing-components/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 11:09:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/8/</guid>
		<description><![CDATA[For years Swing has been missing some very obvious components.  Java developers have been crying out for common controls such as a Date Picker, Wizard Dialog and Progress Dialog.
Sure, there are dozens of third-party libraries, but these are generally third-rate solutions.  I don&#8217;t want to use something a kid put together for his [...]]]></description>
			<content:encoded><![CDATA[<p>For years Swing has been missing some very obvious components.  Java developers have been crying out for common controls such as a Date Picker, Wizard Dialog and Progress Dialog.</p>
<p>Sure, there are dozens of third-party libraries, but these are generally third-rate solutions.  I don&#8217;t want to use something a kid put together for his college assignment, and I don&#8217;t want to pay fifty bucks for a simple date text field.  There needs to be <i>one, official, standard</i> implementation for each common control.  <a title="DateTimePicker" href="http://msdn2.microsoft.com/en-US/library/system.windows.forms.datetimepicker.aspx">Microsoft</a> <a title="ProgressDialog" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iprogressdialog/iprogressdialog.asp">understands</a> <a title="ProgressDialog" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iprogressdialog/iprogressdialog.asp" /><a title="Wizards" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/propsheet/wizards.asp">this</a>.   <a href="http://download.eclipse.org/eclipse/downloads/documentation/2.0/html/plugins/org.eclipse.platform.doc.isv/reference/api/index.html">So</a> <a href="http://www.eclipsezone.com/eclipse/forums/t83882.html">does</a> <a href="http://download.eclipse.org/eclipse/downloads/documentation/2.0/html/plugins/org.eclipse.platform.doc.isv/reference/api/index.html">Eclipse</a>. Why can&#8217;t Sun?</p>
<p>Having said this, here is my attempt at a couple of these dialogs:<br />
<span id="more-8"></span><br />
<img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/11/jswingface-screenshot.png" alt="JSwingFace Screenshot" /></p>
<p><!--more--></p>
<p>(These dialogs came about as I investigated re-writing my <a href="http://markmclaren.com/old/desktop.html">Solar Accounts</a> project in Swing &#8211; mainly due to <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67384">this SWT bug</a>)</p>
<p>Click on &#8216;launch&#8217; to run the examples:<br />
<center></p>
<p><a href="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/11/jswingface.jnlp"><img src="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/11/webstartsmall2.gif" alt="Launch JSwingFace Example" /></a></p>
<p></center></p>
<p>The source code is <a href="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/11/jswingfacesource.zip">here</a> &#8211; feel free to use it in any way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/missing-swing-components/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaSpeed Eclipse Plugin</title>
		<link>http://www.markmclaren.com/wp/javaspeed-eclipse-plugin/</link>
		<comments>http://www.markmclaren.com/wp/javaspeed-eclipse-plugin/#comments</comments>
		<pubDate>Sat, 21 Oct 2006 00:41:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=5</guid>
		<description><![CDATA[Benchmarks are tedious to run.  You have to compile the code, execute the tests, record the results, create charts and tables. Then the benchmark becomes out of date as soon as a new compiler, JRE or CPU is released.
So I&#8217;ve created JavaSpeed, an Eclipse plugin to run a small set of performance tests based [...]]]></description>
			<content:encoded><![CDATA[<p>Benchmarks are tedious to run.  You have to compile the code, execute the tests, record the results, create charts and tables. Then the benchmark becomes out of date as soon as a new compiler, JRE or CPU is released.</p>
<p>So I&#8217;ve created <a href="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/10/javaspeed_100.zip">JavaSpeed</a>, an Eclipse plugin to run a small set of performance tests based on <a href="http://kano.net/javabench/">this benchmark</a>.   The screenshots are self-explanatory:</p>
<p><img alt="Screenshot 1" title="Screenshot 1" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/10/javaspeed-screenshot-1.png" /></p>
<p><span id="more-5"></span></p>
<p><img alt="Screenshot 2" title="Screenshot 2" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/10/javaspeed-screenshot-2.png" /></p>
<p>You can also compare against a Microsoft-compiled C++ set of tests:</p>
<p><img alt="Screenshot 3" title="Screenshot 3" src="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/10/javaspeed-screenshot-3.png" /></p>
<p><em> (Note: I couldn&#8217;t compile the C++ Hash and Hash2 tests so ignore those two zeros) </em></p>
<p>To install this plugin, download this <a href="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/10/javaspeed_100.zip">zip file</a> and extract it into your eclipse plugins directory.</p>
<p>Finally, this is more a proof-of-concept than a rigorous benchmark.  Feel free to grab the <a href="http://markmclaren.com/wp/pre-conversion-content/uploads/2006/10/javaspeedsource.zip">source code</a> and improve it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/javaspeed-eclipse-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the Bandwagon</title>
		<link>http://www.markmclaren.com/wp/on-the-bandwagon/</link>
		<comments>http://www.markmclaren.com/wp/on-the-bandwagon/#comments</comments>
		<pubDate>Fri, 20 Oct 2006 22:14:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.markmclaren.com/wp/?p=1</guid>
		<description><![CDATA[Like literally a million other people, I&#8217;ve decided to set up my blog.  I&#8217;m not aiming for a Pulitzer prize, just something above the usual What-My-Cat-Ate-For-Breakfast drivel.  I believe Steve Martin said it best in Planes, Trains and Automobiles:
&#8220;And by the way, you know, when you&#8217;re telling these little stories? Here&#8217;s a good [...]]]></description>
			<content:encoded><![CDATA[<p>Like literally a million other people, I&#8217;ve decided to set up my blog.  I&#8217;m not aiming for a Pulitzer prize, just something above the usual What-My-Cat-Ate-For-Breakfast drivel.  I believe Steve Martin said it best in <em>Planes, </em><em>Trains and Automobiles</em>:</p>
<blockquote><p>&#8220;And by the way, you know, when you&#8217;re telling these little stories? Here&#8217;s a good idea &#8211; have a <em>point</em>. It makes it <em>so</em> much more interesting for the listener!&#8221;</p></blockquote>
<p>For the curious, my old site is <a title="Old Site" href="http://markmclaren.com/old">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markmclaren.com/wp/on-the-bandwagon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
