Author Archives: Andy

Can't sing, can't dance, can handle a sword a little.

Empirical evidence about the UML: A Systematic Literature Review

As part of my work with EPIC I worked on a systematic literature review of empirical evidence concerning the UML. This study recently appeared in the journal Software – Practice and Experience, published by Wiley.

The study intended to assess the current state of research into the UML – specifically in the areas of metrics, comprehension, model quality, methods and tools and adoption. We identified and reviewed nearly 50 publications and arrived at the conclusion that “[d]espite indications that a number of problems exist with UML models, researchers tend to use the UML as a ‘given’ and seem reluctant to ask questions that might help to make it more effective.”

Abstract:

The Unified Modeling Language (UML) was created on the basis of expert opinion and has now become accepted as the ‘standard’ object-oriented modelling notation. Our objectives were to determine how widely the notations of the UML, and their usefulness, have been studied empirically, and to identify which aspects of it have been studied in most detail. We undertook a mapping study of the literature to identify relevant empirical studies and to classify them in terms of the aspects of the UML that they studied. We then conducted a systematic literature review, covering empirical studies published up to the end of 2008, based on the main categories identified. We identified 49 relevant publications, and report the aggregated results for those categories for which we had enough papers— metrics, comprehension, model quality, methods and tools and adoption. Despite indications that a number of problems exist with UML models, researchers tend to use the UML as a ‘given’ and seem reluctant to ask questions that might help to make it more effective.


Perforce Woes

Quick tip from a Perforce newbie…

Sometimes, for whatever reason, Perforce might miss updates – additions, deletions or edits – and they simply won’t appear in any change-lists. The changes show up in a diff, but good luck trying to commit the changes.

The solution: right click on the file/folder in the workspace browser and select Reconcile Offline Work. A warning though – this diffs every single file in your selection, so an entire project or workspace may take several coffees.


Inevitable Picsie

Alpha 1.9: Since it’s been a while, have a quick Picsie update – images now show tooltips when you hover over them.

Available, as always, from the main Picsie page


Picsie bug fix

I just noticed that animated GIFs aren’t being released when you move on to another image. Fixed now.

Alpha 1.8 (30 November 2010)

  • Installer (~75KB). This will set up your file associations for you.
  • Standalone .exe (~200KB). Use this if you already have Picsie installed and you just want the latest version. Just drop it over the existing one.

Changelog

  • Now properly releases animated GIFs when you switch to a different image.

For a full changelog, see the main Picsie page.


Quick Picsie update

Picsie how has a taskbar icon in Windows 7, to take advantage of the shiny new taskbar system.

Alpha 1.7 (18 November 2010)

  • Installer (~75KB).  This will set up your file associations for you.
  • Standalone .exe (~200KB).  Use this if you already have Picsie installed and you just want the latest version.  Just drop it over the existing one.

Changelog

  • Has a taskbar icon in Windows 7

For a full changelog, see the main Picsie page.


Of Windows and Minecraft

A Minecraft addiction seems to be this year’s must-have psychosis, and I jumped on that bandwagon with gusto.  Earlier today, thanks to a combination of a loose power cable and wildly flailing feet I managed to switch off my computer several hours into playing Minecraft.  No harm done, switch the computer on, reload Minecraft, click on “World 2″… no World 2.

A lot of time has gone into World 2.  I’ve made bases, sculptures,  gardens, forests, mines and towers.  A lot of time.

I could accept losing several hours of progress, but for the world to be gone completely?  No.  The files were still there, but level.dat and level.dat _old were corrupt.  The internet informed me that with a bit of trickery I could get the world working again by dropping the data into a different world, but there would be… issues.

And here is where Windows comes to the rescue.   While I tend to back my stuff up at irregular intervals, relying on Dropbox for my important stuff, I’m essentially terrible at it.  Windows, bless its unsung soul, has been doing it for me, and I never even knew.

If you’ve managed to corrupt your world, right click on level.dat, go to properties, then to the “Previous Versions” tab.  If the winds are right, you’ll have a bunch of versions you can restore to – thankfully Windows had one made yesterday with a System Restore Point.  Restore that version, reload Minecraft…

And voila, World 2 was back.  Sure, I’d lost a couple of hours of work (but not as much as I thought), and my inventory had gone back to yesterday, but World 2 lives!

Thank you Microsoft, for your Minecraft autobackup feature.

tldr; You can fix corrupted Minecraft saves by using Windows’ “Previous Versions” feature – since the Minecraft data is in your AppData folder, it gets backed up automatically when restore points are made.


Picsie: Now with less broken zooming

Well, that was a bit embarrassing…  All that effort to pre-compute a decent zoom level for images when you load them, and then completely ignoring it.  Oops, fixed now.

Alpha 1.6 (13 October 2010)

  • Installer (~75KB).  This will set up your file associations for you.
  • Standalone .exe (~200KB).  Use this if you already have Picsie installed and you just want the latest version.  Just drop it over the existing one.

Changelog

  • Fix: Sets the zoom level properly when you load an image
  • Fix: Now consistently applies the minimum zoom level

For a full changelog, see the main Picsie page.


Picsie Update

Nice little update to Picsie for you.

Alpha 1.5 (26 September 2010)

  • Installer (~75KB).  This will set up your file associations for you.
  • Standalone .exe (~200KB).  Use this if you already have Picsie installed and you just want the latest version.  Just drop it over the existing one.

Read More →


Minor Picsie update

Just made a quick update to Picsie – larger images wouldn’t zoom to fill the screen properly, this has been fixed.  At some point I’ll stop being lazy and deal with the “forms can’t be much bigger than the screen” limitation…

Alpha 1.4 (4 September 2010)

  • Installer (~75KB).  This will set up your file associations for you.
  • Standalone .exe (~200KB).  Use this if you already have Picsie installed and you just want the latest version.  Just drop it over the existing one.

Read More →


Remote debugging Tomcat with Eclipse

When you’re running a Tomcat server on your own machine for development purposes, it’s pretty easy to tie it to Eclipse.  When that Tomcat instance (or, in my case, instances) are running as a service, without the benefit of the control panel, it gets a little harder.  Especially if it’s not a traditional web application, but a desktop app with a supporting web back-end.

Here’s how to debug a Tomcat server with Eclipse when it’s running as a service.  This example assumes that the server is at localhost, and that you’ll be debugging on port 5003 (your choice, so long as it’s available – and it can’t be the port that that Tomcat is already on).

Firstly, when you start your Tomcat service you need to pass a few additional options:

set JPDA_TRANSPORT=dt_socket
set JPDA_ADDRESS=5003

Next, the line that actually launches the service needs to pass those options in the JvmOptions parameter:

--JvmOptions "-XDebug;-Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n;-DJAVA_HOME=...

Important: no white-space in there.

Lastly, create the debug configuration in Eclipse:  Run -> Debug Configurations, add a new Remote  Tomcat Application.

  • Connection Type: Standard (Socket Attach)
  • Host: localhost
  • Port: 5003

Et viola, start this debug configuration to attach to the server, then launch your application as normal.