Saturday, January 7, 2012

This week in uDig - January Week 1

I may as well take a turn writing one of these posts - Happy New Year from the uDig Team!

This week has a bit of catch up; as several github "pull requests" have been submitted over the break.

1.3.1
We have issued a small uDig 1.3.1 patch release just prior to the holidays. The release notes are up; but it amounts to a couple fixes reported on the user list (zoom out and copying features into the feature table).

Thanks to those who took part in testing over December!

SDK
The bulk of my week was devoted to the construction of a SDK bundle. Panagiotis from udig-devel supplied a patch changing the manner in which "source features" are generated to  follow the Eclipse 3.2 standard.

Each feature is responsible for packaging a number of plugins for deployment; the generated source feature is now a single jar (with internal folder structure matching the listed plugins. 

The SDK is now available from the uDig download page. Maurcio and Panagiotis report success (although I am not sure if they have updated the SDK instructions).

Native Code Fragments
Frank Gasdorf has been a whirlwind of productive (and indeed hard to keep up with). Frank has been exploring the the use of fragments to package the native code we use in the uDig project. We have several categories of native code; extensions for Java (such as Java Advanced Imaging, ImageIO and ImageIO-Ext); GDAL (for ImageIO-EXT to use); and that native Eclipse code (such as Standard Widget Toolkit).

The native Eclipse code is packaged into platform specific 'fragments' which are wired up when the application launches - accounting for both the java class path and the corresponding native library path.

uDig has been dependent on a combination of a custom JRE (where we place the Java extensions into the ext/lib folder; and their native code into the bin folder) and the "udig.sh" or "udig.bat" script (so we can set the GDAL environmental variables correctly).

When Frank has successfully packaged the native code as fragments we will switch over to using JAI, ImageIO and ImageIO-EXT as jars and no longer be dependent on their presence as java extensions. We trust this will result in a smaller download; and better integration options with projects such as the OSGeo Live DVD.

Eclipse Modelling Framework Code Generation
One of the most impressive changes this week was the work Paul Pfeiffer put into the core Map, Layer and Viewport classes. These classes make use of the Eclipse Modelling Framework; allowing developers to update the model and generate out the changes to the code.

Paul has update the java interfaces ( a couple new zoom methods) and hit the magic code generation button. The net result of this is a simplification to to some of our classes (EMF now provides base classes with many of the boilerplate methods) and an update to use Java Collections with generics.

A new feature of EMF is the inclusion of a UML editor to visually review your model. Here is an example of the rendering system displayed with this tool.
Render Manager
I have copied several of these diagrams into the developers guide. Paul's work will continue next week as we are going to clean up some of the method names in ILayer.


Thursday, December 8, 2011

uDig 1.3.0 Released

The uDig Community is pleased to announce the release of uDig 1.3.0.

This release is made in conjunction with GeoTools 8.0-M4. Thanks to Andrea Amie and Gabriel Roldan for support, encouragement and timely bug fixes.

This point release includes significant usability improvements and new functionality - thanks to the hard work of Levi Putna and Paul Pfeiffer.

For more information on User-friendly Desktop Internet GIS please check out the uDig Overview.

Release Details

Download the package appropriate to your platform, unzip and run:

About uDig 1.3

This release features some great usability improvements with a new tool palette and easy to access tool options.

Here are some new features you can look forward to:

  • Area of Interest support - define your area of interest based on CRS, current screen or a bookmark
  • Filter the Table view using the current area of interest - a great way to focus on what is on screen
  • Updated Info and Profile tool for raster data
  • Teradata support
  • Spatial Toolbox view allowing access to OMS3 processing; with tutorial!
  • New import and export formats: CSV and KML.
  • Check out What is new page for details

Usability Improvements

  • New Tool Palette with easy to use Tool Options for quick access to preferences (blog)
  • New "cheatsheet" help system offering guide assistance to new users (blog)
  • Control Tool interaction with your layers with the ability to mark background layers

Additional documentation:

For developers:
  • Access to the latest GeoTools 8.0-M4 release
  • Access to the latest JTS 1.12
  • Access to the latest ImageIO-EXT 1.1.2
  • Fork me on github
  • Works with Eclipse 3.7

Tuesday, October 4, 2011

Adding CheatSheets Interactive Help to uDig

I have been putting together the release notes for the upcoming uDig 1.2.3 and ran into a really great usability feature that we have not mentioned on our blog feed yet.

The next release of uDig includes the concept of "Cheatsheets"; these act in a manner similar to a wizard (in that the provide a series of steps); but instead are designed to supliment the running application. What is impressive is the "Click to Perform" button which will perform the task it is describing so it can show you the result.

The Quickstart cheatsheet included in uDig 1.2.3 uses this to great effect when showing the differences between the normal Map Perspective (used for working on data) and the Style Perspective (used for working on presentation).

What is even more impressive is this form of help follows you into dialogs and screens offering helpful advice as it shows you how to perform an activity.

The traditional uDig online documentation is of course still available.

This week in udig - Sep - Week 4


Levi Putna is making progress in the development of Smart Buffer tool, the following demo shows how it works.

video

Levi has done a great work with Map Status Bar Tool Options. It can now take a preference page id that will be opened when the tool icon is clicked in the status bar option contribution. 

Emily have resolved the following bugs (thanks a lot!):

Jesse, Jody and Mauricio have done the codereview of the issues described above.



Monday, October 3, 2011

Tool Palette and Options

Tools have gotten a major usability improvement featuring:

  • ToolPalette - used to quickly explore available tools, configure tool display to show labels, descriptions or large icons for a helpful hand when learning. By default the Palette is displayed along side your Map; you can also Choose Show View > Other and Open the Palette on its own as a tear off View. This is great for users with more than one monitor or when you have multiple maps open side by side. This is the same Palette used during Page printing.
  • ToolOptions - quick access to common tool preferences from the Map Status Line. This has allowed us to reduce the number of tools while maintaining the same functionality.

These change combine to make uDig even more User-friendly with a presentation of tools similar to a paint program. As an example edit tools can use the area to make options such as "snapping" visible (previously available as a keyboard shortcut!). It is also an efficient use of screen real estate as snapping options do not waste space when they are not needed.

Palette

Here are a couple examples how how the palette looks using the Large Icons preference.

Extension

uDig practices an open development model with a couple Request for Change proposals being closed today.

As part of that the following pages have been updated in the user guide:

For more information about what is new in the uDig 1.2 series see the user guide.

And developer documentation for the new tool option functionality:

The good bit is covered here:
public class OptionContribtionItem extends ToolOptionContributionItem {
     public IPreferenceStore fillFields( Composite parent ) {
            Button check = new Button(parent,  SWT.CHECK );
            check.setText("Scale");
            addField( NavigationToolPreferencePage.SCALE, check );
         
            Button tiled = new Button(parent,  SWT.CHECK );
            tiled.setText("Tiled");
            addField( NavigationToolPreferencePage.TILED, tiled );
            
            return ToolsPlugin.getDefault().getPreferenceStore();
        }
    };

Tuesday, September 27, 2011

uDig Source Code Visualisation

Continuing on to uDig for a great gource visualisation showing the impact of a couple of code sprints in 2010; and a new development team starting up in 2011.

Here is the link: http://www.youtube.com/watch?v=cqxXJ7bOBTg and the video itself is shown below.

Aside: This is a much better visualisation as I have been learning to gource control options (so the video tracks activity for a better view of what is going on).

By popular request (on IRC) here are the command line options used for code.google.com/p/gource project.

I started by using "camera-mode" track to make the action focused; I also really lowered the number of seconds used to represent each day so that we could quickly cover two years of development.

gource -title uDig -1280x720 --camera-mode track --auto-skip-seconds 1 --seconds-per-day 0.05 -o udig.ppm 

And then I stitched the result into a movie using ffmpeg:

 ffmpeg -y -b 10000K -r 60 -f image2pipe -vcodec ppm -i udig.ppm -vcodec libx264 -vpre slow -threads 0 -bf 0 udig.x264.mp4

Wednesday, September 21, 2011

THIS WEEK IN UDIG - SEP - WEEK 3


  • Jody has done a geat difusion task in FOSS4G2011 Denver. He leaded the uDig code sprint. It looks like the people have had a good time as is shown in the event's snapshots
  • Emily Gouge has been working to fix up some bugs in the uDig paltform.