Sharing GWT projects to SVN with Subclipse

If you try to add your GWT project to an SVN repository with Subclipse, by default Subclipse will also put all GWT-generated files (which can be several MBs in size) under version control. To avoid this, before sharing your project you should mark the following folders of your project as derived in Eclipse, so that Subclipse ignores them when it tries to share the project.

  • war/WEB-INF/deploy
  • war/<module_name>
  • gwt-unitCache

To mark a folder as derived in Eclipse you need to right-click it in the Package Explorer view, click Properties, check the Derived option in the Resource panel and click OK.


Model Transformation Papers

Below is a short list of papers and other resources in the area of model(-to-model) transformation aimed at newcomers to the field.

Reviewing PDF Documents using Skim

When reviewing PDF documents (papers, reports etc.) I often need to produce a list of comments in a separate text file. For quite some time I’ve been doing this by switching back and forth between the PDF viewer and a text editor but I’ve recently found a more efficient way of doing this so I thought I’d share it.

To avoid switching between applications, I started marking my comments using highlights in Skim and exporting them using File->Export->Notes as Text which creates a file with the following format.

* Highlight, page 2
some bold claim -> needs reference

* Highlight, page 3
confusing sentence -> Not entirely clear what this means

* Highlight, page 4
tyop -> typo

This was not quite the format I wanted, so to fix this I’ve created a new Skim template (Compact Notes.txt) which produces notes in the following format:

Page 2: some bold claim -> needs reference
Page 3: confusing sentence -> Not entirely clear what this means
Page 4: tyop -> typo

To use Compact Notes.txt, you need to download and place it under /Library/Application Support/Skim/Templates/ (you’ll need to create any missing folders in this hierarchy). Once the template is in place, you can choose it in the File Format drop down menu as displayed below:

Eclipse LaunchConfigurationDelegate prone to memory leaks

LaunchConfigurationDelegates in Eclipse remain in memory after their launch method has executed. As such, they also prevent any object they reference from being garbage-collected. For example in the following code

class MyLaunchConfigurationDelegate extends LaunchConfigurationDelegate {

    protected BigObject bigObject = null;

    public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor progressMonitor) throws CoreException {
        this.bigObject = createBigObject();		

bigObject will remain in memory for ever, so it’s worth keeping this in mind and cleaning up before returning from launch().