Version 2.3: March 2010

Version 2.3: General Improvements and
Enhancements

Show/hide advanced features

To reduce the complexity of the user interface, some less-frequently used features are now hidden by default. They can be enabled on this new preference page and will reappear after a shutdown and restart of Regatta Workbench.

Filtered race results

The all-race results reports available through the main menu bar can now be configured to filter which race results are rendered based on the race's status. Prior to this all non-scratched races printed on results reports with no option for filtering.

New Ranking Import Wizard

Seeding races using rankings derived from a previously completed regatta is now supported. It's a two step process:

  1. rank crews in one of three ways
    1. import the rankings from a previous completed regatta's .rml file, or
    2. order the crews in the list under each event to be seeded using drag and drop, or
    3. a combination of 1 and 2
  2. create stages, races and seed the first round stages with crews
    for each event based on one of three available seeding criteria:
    • randomly selected from the list of crews in an event,
    • crew order as listed in each event
    • crews ordered by rank with any remaining unranked crews added in the order as listed in each event

A new integer-based 'rank' attribute has been added to each crew. A zero or lesser value in the rank field will means the crew is unranked.

The goal of the new wizard is to compute and transfer rankings from crews that rowed in a prior regatta's event to a corresponding crew in a corresponding event in an upcoming regatta. To do this the new wizard collects mapping information between crews and events in the two regattas RML files. Once mapped, the wizard can transfer the rankings to the target crew's rank attribute.

Step 1:

The new 'Import Crew Rankings Wizard' is initiated from the Regatta object's context menu:

The wizard performs these functions:

  • loads a completed regatta
  • computes rankings for each crew
  • optionally make a best effort to match events and crews
  • allows the user to manually update any unmapped events and crews that
  • moves the rankings to the crews in the new regatta

Three toolbar buttons in the center-right of the page (disabled in this particular view) control the manual and automatic mapping work. These buttons are enabled and disabled depending on what objects are selected in the left and right views and the object's currently mapped state.

The toolbar button with the double sided arrow and the letter  does the best-efforts matching. Events are matched by event name, and crews are matched by their integer Organization Id, if it is greater than zero and Organization name otherwise. A second level crew match is also done on seed, e.g. 'A', 'B', etc. The algorithm is smart enough to accommodate unmatched seeds letters in cases where it makes sense to map these crews. Other buttons provide the ability to manually map and unmap crews and events where the best-efforts matching may have failed.

The matching algorithm is design to be conservative, yielding few or no false positive matches. Only very close or identical matches are mapped to one another.

Here is an example mapping from two regattas in a series where the event names and crew organization names are consistent between the two regattas. The small green and brown arrow decorators indicate mappings between the left and right regattas. Double clicking on the Event or Crew moves the highlights the corresponding mapped object in the other view.

Step 2:

Once the crews are ranked, you are ready to create the race framework for the events. To do this, the new Create Stages and Races wizard collects

  • Progression System
  • Lane Assignment method (Middle Out Low, Middle Out High, etc) and
  • Race Assignment method (Fast Against Slow, Same Speed Together) and
  • Seeding Criteria (by rank, order listed or random)

The wizard is initiated using an Event context menu (multiple selected Events is supported):

The Create Stage and Races wizard uses the chosen progression system and the number of entries in the event to decide what heats, repechages, semifinals and finals need to be created, then uses the crew rankings to distribute crews to the initial stage of qualifying races and assign each a lane. The wizard can use explicit integer rankings stored in the crew's rank attribute ('crewRanking') or implicit rankings derived from the ordering of crews as they are listed in the their respective events in the Navigator ('crewOrdering').

For more details on the Create Stage and Races wizard, see the 'New Create Stages and Races Wizard' section below.

To more easily visualize the results of imported crew rankings, you can now sort crews by their rank attribute.

New Coaches report

A new Coaches report is meant to
answer a few questions for those who are coordinating race day activities for an organization --- usually a team's coaches or assistants:

1. When do my crews race?
2. What bow/lane number do they need?
3. When should the crew start preparing to race and be at the dock?

The report is generated using the Reports menu and is available in both portrait and landscape versions.

The offset before race time of first, second and last calls are configurable in Regatta Workbench in the launch site object:

This report is grouped and sorted by crew within primary regatta entry contact within organization. Here's a snippet of the portrait version of the printed Organization Race Schedule report:

Organization Entries report updated to show progression rules

New Create Stages and Races Wizard The need to support additional progression systems, ranking and seeding mechanisms, race assignment methods and lane assignment methods drove the requirement for a dedicated wizard to create the stages and races in each event. A context menu available from a single- or multi-selected events now offers a Create Stage and Races action that invokes the wizard:

Once the crews are registered in each event, the progression framework of races and stages needs to be created. Crews advance from stage to stage, for example heats to semifinals, based on progression rules. A progression system is the set of rules that govern how races within an event are structured along with the instructions for how crews advance from stage to stage. Regatta Workbench support standard USRowing and FISA progression systems as well as custom progression systems of your own design.

The framework the Create Stages and Races wizard will build for each event depends on 2 main things: the progression system and the number of
entries in each event. Using these Regatta Workbench produces a racing framework -- the stages with the Advance Selectors and enough races in
each stage to hold the crews for the given race course.

 

Advance Selectors are the workhorses for advancing crews from stage to stage. They provide the instructions that the Progression Wizard interprets when it selects advancing crews. Each qualifying stage contains the necessary Advance Selectors needed to advance crews from that stage.

Here the order in which lanes are filled for each Lane Assignment method for various race course widths:
middleOutLow, lanes: 2 [1 2 ]
middleOutLow, lanes: 3 [2 3 1 ]
middleOutLow, lanes: 4 [2 3 1 4 ]
middleOutLow, lanes: 5 [3 4 2 5 1 ]
middleOutLow, lanes: 6 [3 4 2 5 1 6 ]
middleOutLow, lanes: 7 [4 5 3 6 2 7 1 ]
middleOutLow, lanes: 8 [4 5 3 6 2 7 1 8 ]

middleOutHigh, lanes: 2 [2 1 ]
middleOutHigh, lanes: 3 [2 1 3 ]
middleOutHigh, lanes: 4 [3 2 4 1 ]
middleOutHigh, lanes: 5 [3 2 4 1 5 ]
middleOutHigh, lanes: 6 [4 3 5 2 6 1 ]
middleOutHigh, lanes: 7 [4 3 5 2 6 1 7 ]
middleOutHigh, lanes: 8 [5 4 6 3 7 2 8 1 ]

firstToLast, lanes: 2 [1 2 ]
firstToLast, lanes: 3 [1 2 3 ]
firstToLast, lanes: 4 [1 2 3 4 ]
firstToLast, lanes: 5 [1 2 3 4 5 ]
firstToLast, lanes: 6 [1 2 3 4 5 6 ]
firstToLast, lanes: 7 [1 2 3 4 5 6 7 ]
firstToLast, lanes: 8 [1 2 3 4 5 6 7 8 ]

lastToFirst, lanes: 2 [2 1 ]
lastToFirst, lanes: 3 [3 2 1 ]
lastToFirst, lanes: 4 [4 3 2 1 ]
lastToFirst, lanes: 5 [5 4 3 2 1 ]
lastToFirst, lanes: 6 [6 5 4 3 2 1 ]
lastToFirst, lanes: 7 [7 6 5 4 3 2 1 ]
lastToFirst, lanes: 8 [8 7 6 5 4 3 2 1 ]

If any part of the created race progression framework needs to be tweaked, the navigator's tree and each object's properties page can be used to edit any aspect that need to be changed.

Auto-Save timer and status

Due to the hectic pace of race day results management, it's easy to forget to save your regatta's RML file on a regular basis. To help prevent data loss, a new auto-saver has been added. By default, the auto-saver is disabled, but it can be enabled in a preference panel entitled 'Auto Save Timer'.

The auto-save timer starts counting down to its next save when it detects the first change to the unsaved regatta in-memory. Auto-save keeps track of whether the in-memory regatta is synchronized with the version on saved on disk.

If a user-initiated save takes place before the auto-save timer expires and save the RML file itself, the auto-saver will reset itself, disarm the timer and only rearm the timer on the next changes to the in-memory model.

To provide feedback on the state of the auto-save feature, an optional auto-save monitor can be configured to show in the Regatta Workbench status line that displays the auto-save current state and time (in seconds) remaining before the next auto-save.

As long as the in-memory copy of the regatta matches that saved on disk, the auto-saver will remain in the 'Ready' state:

Once a change to the loaded regatta is made that makes it out of sync with the version saved on disk, the auto-saver start its countdown timer and updates the status monitor with the time remaining before the next auto-save.

Clicking on the diskette image in the auto-save status monitor will initiate a manual save operation and subsequently reset the auto-saver to the 'Ready' state.


Support for additional handicap systems

USRowing draws a strong distinction between crew disqualification and exclusion. Previously Regatta Workbench only supported disqualification. The addition of exclusion closes an important gap in properly communicating the status of an excluded crew. From a reporting and program logic standpoint, excluded crews are treated exactly the same as disqualified crew, but use a different label.

All user interface components that specify crew status have been updated to include the new 'excluded' status. Here's how it looks in the race results editor:

And here's how an excluded crew shows up in an individual race results report:

RegattaCentral and RML-to-RML synchronization

Regatta data synchronization is one of the most and powerful features added in this release of Regatta Workbench.

A common issue many regattas encounter that use regatta registrars such as RegattaCentral is maintaining data currency and a single version of the truth the week before the regatta. Typically, there is a window of time when updates continue in two separate data stores that need to be synchronized: a registrar such as RegattaCentral and in Regatta Workbench's RML file.

Regatta directors and committees want to begin the regatta setup process --- race scheduling, building the event progressions, assign crews to races, etc --- knowing full well that some entry information may change in the registrar's database.

Prior to the availability of this synch feature, regatta directors had to either manually update their copy of the Regatta Workbench data or postpone the download and until very near the regatta's start date. Even if the downloaded data from the registrar contained only a few changes from the previous download, changes were not mergeable into and already-modified version of the regatta in Regatta Workbench.

Version 2.3 changes this. The new Sync Wizard can merge changes into the modified RML, while preserving changes made to the races, race schedule, stages, lane assignments, etc.

The Sync wizard is invoked from a context menu on the regatta object:

The new synchronization feature is design to handle two different
scenarios:

  1. incremental updates from RegattaCentral, and
  2. importing updates from other RML file that may have been modified
    by another user.

Due to differences in the way entities in each of the two scenarios are matched, there are some key restrictions you must adhere to for synchronization to work properly.

In the first case, the file being updated must have originated from RegattaCentral before it can accept updates from RegattaCentral.

In the second case, the two files involved in the sychronization must have a common ancestor file that each was derived from.

Sync is smart enough to update only the attributes available from RegattaCentral and leave unchanged all the concepts and entities not in a RegattaCentral download: stage, races, lane assignments, race schedule, etc.

It's sometimes important to accept and merge only a subset of the changes Regatta Workbench was able to find when it compared the updated regatta with the current in-memory version. The Sync wizard's 'Select and Merge Changes' page enable both the selection of change to accept (top) and a visualization of the mapping of these changes between the models (bottom).

Changes move from left to right --- from the updated regatta on the left to the current regatta loaded in Regatta Workbench shown on the right.

New race schedule report

A one- and two-column race schedule report is now available.

 

Custom progression systems

When one of the standard progression systems doesn't quite fit, maybe a custom progression system will. Each regatta can have one custom progression system configured. A new custom progression system is created using the regatta object's 'New' context menu:

A custom progression system is created by adjusting a series of parameters. The impact of changing each parameter is immediately visible in the dynamically updated 'Progression Scenarios' view:

Once the custom progression system is created, it is available in the Create Stages and Races wizard drop down menu:

To edit an existing custom progression, double click on the custom progression object in the navigator.

Heat sheet report updates

Lane and race assignments have been added into the heat sheet. They accurately reflect the Advance Selectors and all the race assignment and lane assignment options.

Since under the covers Regatta Workbench is running a simulation of the actual progression, it only can simulate
progressing from previous stages that have crews populated into races. This means that it can show the lane assignment instructions for the
next un-progressed stage, but none beyond that.

More concretely, for example, at the beginning of a regatta it can show the Semifinal lane assignments, but not Finals lane assignments until you've progressed crews into the Semifinals.

Alternating-reverse race assignment ment ordering

A new option called 'alternating reverse' was added to control the order in which crews are distributed into race.

For example, for an 18-crew, 6-lane semi-final stage with the alternating reverse option turn on, Regatta Workbench will fill lanes in this order:

 

 

Lane 1

Lane 2

Lane 3

Lane 4

Lane 5

Lane 6

Heat 1

13

7

1

6

12

18

Heat 2

14

8

2

5

11

17

Heat 3

15

9

3

4

10

16

Without the alternating reverse option, the standard lane assignment
fill order is

 

 

 

Lane 1

Lane 2

Lane 3

Lane 4

Lane 5

Lane 6

Heat 1

13

7

1

4

10

16

Heat 2

14

8

2

5

11

17

Heat 3

15

9

3

6

12

18


It's implemented as a attribute of the Stage object:

The progression wizard demonstrates the impact of this new progression option:

Live Capture split checker report

Live Capture v1.0.5 is available. To better support the manual split checking process, a news report and toolbar action was added to enable start and finish timers to compare results from two or more Live Capture stations.

The report enables side-by-side comparison of time from multiple Live Capture stations:

Experimental report generation

Two new experimental features auto-generate results reports. The intended use case is for regattas that update race results to a web site and do frequent print/exports and uploads. The new feature generates file in the 'workspace' directory.

  1. features to support the split checker role for managing head-style races

It can be turned on from a preference panel:

Once automatic report generation is turned on, Regatta Workbench monitors races as you enter results and change race statuses. Once they become ready to print, the feature prints both individual race reports and 'all races' report to a file in the 'workspace' directory.

RW looks for two things to determine whether a race is ready to print:

  1. Are all the split times entered? For head races, this means having both the start and finish times entered for all the unscratched crews. For sprint races completeness is having the race's winning time and the splits for all the crews entered.
  2. Is the race in the a status that is configured to be auto-printed? Based on the preference page configuration, RW will print only races that fall in the specified statuses, for example 'official' or 'preliminary'

If a split is changed in any race, both the individual race results report for that race and the 'all races' report will be regenerated. You can browse the auto-printed reports in the workspace using the File Navigator view:

FinishLynx file import warning dialog

To streamline importing FinishLynx .lif files, Regatta Workbench is configured to use a naming convention to avoid the 'Browse' for file step in the Split import wizard.

As designed, after the first race's .lif file is loaded the user should not have to press the Browse button again --- the FinishLynx import wizard will find, pre-fill and load the .lif file associated with the race in the current editor. The idea is to avoid using the file browser at all for the repetitive FinishLynx import task. The wizard remembers different directories for start and finish .lif files.

Previously, Regatta Workbench gave no user feedback when it couldn't find the .lif file it expected to find for a particular regatta. A dialog has been addedthat notifies the user about the FinishLynx LIF file import wizard's inability to find the file associated with the race. Now the user knows what file and directory Regatta Workbench is looking for and if the user wants to turn off this warning, he/she can.

Whether this dialog is shown can be toggled from a preference page:

The file naming convention used is composed of three parts: three digit event number, stage name and race number. For example, Event 27, Flight, Race 27a would have a LIF file name named '027-flight-27a.lif'. The FinishLynx user interface can be configured to create file names of this format if it is using a Regatta Workbench generated EVT file. Here's a snippet from a typical EVT file:

14,flight,14a,14a @ 10:00 AM Boys Gig/Novice 1x Flight
,,2,Bartholomew,Tucker,Science Leadership (T. Bartholomew)
,,3,Dickstein,Reuben,Central (R. Dickstein)
,,4,Bair,Andrew,Germantown Friends (A. Bair)
,,5,Yerger,Kyle,Strath Haven (K. Yerger)
35,flight,35a,35a @ 10:07 AM Girls Freshman 4+ Flight
,,2,Opsal,Jessica,Delaware Military (J. Opsal)
,,4,Levinsky,Heather,Concord HS (H. Levinsky)

<snip>

Orphaned racing crew warning Under some synchronization scenarios, it is possible that an orphaned racing crew will be left with no corresponding entry in a race.

 

Now ths problem will be
flagged. Here's how it looks:

Misc fixes and features
  • 10x performance increase in RML file load time. Any time a regatta is loaded --- during Sync, during Ranking and on File->Open, the load will be much faster. Large regattas will see the biggest benefits.
  • There was a bug in re-sync for spare rowers. It's fixed.
Incomplete results warning for official races It is possible to post results for a race where not all the crews have results entered. Here's a screen shot of the result page demonstrating this situation:

Because RW did not provide any feedback when this situation occurred, the racing crew with the issue is now flagged. This error decorator and problem record is only created is the race is in 'official' status. If the race is in preliminary status, no error is displayed.

Here's how it looks in the Problems view: