Thursday, July 31, 2008

Implementing an finite state machine

I have to confess that informatics has to offer some really useful concepts. One of them is the finite state machine. Basically it works like this: The system is in a certain state. Then you have transition matrix that contains the condition for a transition from one state to another. If the update() function is called matrix conditions are checked. If a conditions is fulfilled for the current state a transition is done and the system enters the new state. Here is the current transition matrix:

The states used are:
  • Init: asks the user to drag in some files
  • add_files: at least one file dragged in
  • to_many_files: over fifty files dragged in. Tells the user that less would be better but doesn't force him to do so
  • select_ungrouped: asks to select the "ungrouped cluster"
  • choose_method: ask to put mouse over scan or lookup to get an detailed description of the two methods
  • explain_lookup: As it says, explains the lookup process, advantages and disadvantages
  • explain_scan: same here
  • process_scan: displayed while scan is in progress
  • process_lookup: same
  • successful_finished: explains the color thing and so on..
  • unmatched_files_scan: if scan produced unmatched files the user could try should try lookup.
  • unmatched_files_lookup: if lookup produced unmatched files the user could try scan
  • please_submit: if both methods failed, the user is asked to help MB by submitting the files if possible
Overall the implementation is quite flexible and hopefully easy to maintain.

Monday, July 28, 2008

Second part started

I'm glad the wiki thing worked and I'm already working on the in application support part of my project.

The goal is to guide a first time user through the process of tagging. This will be accomplished by a little box above the two main panels that provides information on what to do next automatically and based on the users action.

Although I realized that there a many ways users are working with Picard, I decided to go a simple way that should work for most users. As the user advances in using Picard, he'll find his own favorite way of tagging.

Wednesday, July 16, 2008

Help me to improve support texts

under the hood the wizard now is quite finished. But as I'm not a native English speaker I need your help at improving the support texts given inside the wizard.

They are, as Robert stated a bit to formal and stiff.

I really would be glad if some of you could have a look at the wiki page, where you can edit the texts.

Thursday, July 10, 2008

Midterm evaluation is near

It's already some time ago that I last posted an update. Doing something really periodic seems to be my week point.
The time of the midterm evaluation has finally come. This means I have to fill a survey on how things are going for me and my mentor. I have to say, that everything seems to be alright. The Wizard part of my project is quite finished despite of some smaller fixes and a bit code cleanup. Here you can see it in it's full beauty:

From the last time I posted changed that it now has an functionality to sort out duplicates in various manners. Another thing is that the wizard can be disabled to show up on when starting Picard. On the other hand it can be started from the menu now. If one clicks cancel without completing it one is also asked if it should show up the next time Picard starts. This should be enough to prevent the wizard from annoying long-term Picard users.