Menu

Tweaks

Safari Luca

Over the many years that PyJudo has been dorment, a lot of information was lost as sourceforge updated past various systems PyJudo originally used for posting content, release notes, etc.

All of their improvements were worth it, and it was our failing that we didn't retrieve everything off the old systems before they were converted.

The only history that remained was these development notes about the history of some tweaks between the final releases (2009 and earlier). Enjoy!

Tweak 17 -- IJF Compliance

IJF rules changed so that official matches no longer use the "koka" scoring. This is simply a PyJudo update conforming to that adjustment. This is yet another reason to push up the Alpha 0.25 release! Over the next few weeks, PyJudo will go through the standard pre-release tests, and we'll try to sneak in any last minute low-risk features. Expect Alpha 0.25 in December!

Tweak 16 -- Buzzer

A simple but necessary addition to PyJudo is a buzzer to sound when the match is over. Currently it is programmed to report in the following conditions:

  • During play:
    • When a player achieves 25 seconds OSAEKOMI (pin).
    • When a player achieves 20 seconds OSAEKOMI if they already had 1 WAZAARI.
  • End of match:
    • When 0 seconds is reached on the main clock and nobody is in OSAEKOMI.
  • Extended match:
    • Match can go over to allow an OSAEKOMI to be resolved. Buzzer is then same as During play since the resolution of the OSAEKOMI is concurrent with the end of the match.
The buzzer sound was implemented using wxSound, so we'll want to test it for OS/platform compatibility before the next release.

Tweak 15 -- Spanish Translation / Traducción Español

Thanks to the addition of huma2000 to the PyJudo project, we now have a Spanish translation! Check it out in the SVN repository.

To enable Spanish, click "Settings" and then select "Español" in the Languages area of the Defaults tab. PyJudo will need to be restarted for the language change to take effect.

After some testing and feedback, we will release Alpha 0.25 instead of waiting for Alpha 0.3 in response to the demand for alternate languages (Spanish being at the forefront).

Tweak 14 -- Shido Indicators

IJF rules require markers indicating when a partial point category (wazaari, yuko, koka) has a score added to it due to a corresponding opponent shido. This indicator is useful for tracking these linked points for multiple purposes as Bug Submission 1895718 reminded us.

We chose to use a red pip visible under the score in the corresponding column as our indicator and welcome your suggestions for alternative preferences.

Keep in mind that the link between the penalty and partial point is automated functionality. Therefore the indicators are only visible if shido automation is enabled.

Tweak 13 -- Shido Protection
We were concerned about the possibility that a scoreboard operator may mistakenly remove a point that is linked to an opponent shido. To counter this possibility, we've put in a simple check.

Situation: A player has only "1" in a partial point category (wazaari, yuko, koka).
Scoreboard Operator Action: Remove that point by selecting "down button" (reduce value by 1 button).
Check: Test whether or not a point is added to that category because of an opponent shido. If this test result is positive, the last point is protected from being removed (the exception being modification of the opponent's shido value).

Of course this feature is only effective when shido automation is turned on. If a scoreboard operator is in manual mode, they wouldn't want these kind of restrictions. As always, we highly recommend keeping automation on as it assists the scoreboard operator with many scoring rules and helps insure IJF compliance.

Tweak 12 -- Display Previous Osaekomi

We know that checking logs can get tedious, so we're building tools into PyJudo to make the most wanted information at your immediate disposal.

One of these tools is the Previous osaekomi display, as suggested in Feature Request 1901978. Now the scoreboard operator can see what the last osaekomi time a player achieved was, even after a Osaekomi Clock has been cleared. This could be especially useful if prompted for this information by a referee, or if there is a referee debate as to the length of an expired osaekomi time.

This unsophisticated solution places a mini "previous osaekomi clock" next to the current osaekomi clock for each player. Each time a scoreboard operator selects "toketa," the mini clock is replaced with the new value. Take a look at the Buttons Panel screenshot to see this implementation.

Tweak 11 -- Player Names in UI

This week we made some layout adjustments in the PyJudo Buttons Panel to support several features that will be completed in tweaks 11-14.

Tweak 11 specifically satisfies feature request 1888925 by simply placing the custom player names in the operator's user interface, matching the functionality already available on the scoreboard output.

Tweak 10 -- Layout Orientation Wizard

This week's tweak is all about making things easy.

As of tweak 9, users can swap player orientation on both the Buttons Panel and the Scoreboard Output. Just because it's possible doesn't make it easy, and we anticipate some left/right confusion.

For Tweak 10 we've generated a user-friendly solution: a setup Orientation Wizard!
The wizard guides users through setting up the orientation by asking them two simple questions: where is the scoreboard, and where is the Blue player? To answer, users simply click on the appropriate images that match their answers. PyJudo takes care of the rest!
The wizard even has restrictions to encourage users to set up their mat to conform with IJF standards, but these restrictions can be easily overridden when users want.
The Orientation Wizard can be accessed from the "scoreboard" or "buttons panel" tabs in the "Settings" dialog.

Remember to hop on over to the svn repository to get the benifits of tweaks 9 and 10!

Tweak 9 -- Swap Player Orientation

I've always been interested in being able to swap the left-right orientation of the blue and white player on the fly. Now we can! We should also mention that this is yet another feature that utilizes the settings.ini file, remembering your last saved settings.

This is a big step in reaching toward the goal of flexing PyJudo around your setup, not vice versa.

Under "Settings" there is a manual swap for the Buttons Panel and the Scoreboard in their respective tabs.
Enjoy! Next week's tweak will be a Wizard for guiding a user through the best layout for each of the four possible combinations.

Tweak 8 -- Shido Scoring Correction

A simple Tweak for a simple problem (originally brought up in bug 1895718 ) involved how PyJudo was handling Shido scoring incorrectly.

When a player commits a shido, that player's opponent receives a corresponding score:

Player Penalty
Opponent Score
1st Shido
+1 Koka
2nd Shido
+1 Yuko
3rd Shido+1 Wazaari
4th Shido (Hansokumake)Ippon

The exclusive score the opponent receives is not cumulative. For example when the 2nd Shido is committed, the opponent gets +1 Yuko and -1 Koka, removing the previously awarded Koka.
As of Tweak 8, PyJudo conforms to this rule.

Tweak 7 -- System Clock Tolerance

As pointed out in bug 2259069, there could be a situation where the system time becomes unreliable while PyJudo is running.

As of Tweak 7, a check is performed at each clock decrement comparing the actual value to a multiplication of the expected value. If the system time isn't properly being kept PyJudo warns the user with a dialog box and prompts for alternative score-keeping (or switching the host computer) and quitting PyJudo.

Without this tweak, the match clock's dependence on the system clock could cause an unacceptable error in timekeeping upon a timing event such as system clock lag, CMOS reset, or explicit system clock change by the user.

Tweak 6 -- New Clock Method

We are excited to announce our most difficult Tweak yet!
As of Tweak 6, PyJudo is operating under a new clock/timing system.
This new system is better for many reasons including:

Feature

New System

Previous System

Accuracy
+/- 0.01 Seconds
+/- 1 Second
Event Reaction Precision
< 0.01 Seconds
< 1 Second
Event Timing
Asynchronous
Synchronous
Threading Utilizationruns in own Threadminimal
Multi-Toggle Errors (see bug 1888781 )
None

Possible

This tweak also required other sections of code to be reevaluated and rewritten, such as osaekomi-based time extensions.

So how does the new method work?
PyJudo now uses a series of host system clock polls to determine the relative passage of time. The polling frequency is adjustable, but we believe we've chosen a reasonable rate. We've also determined that 0.01 Second precision is good enough, since the human scoreboard operator is likely to be off by a greater margin anyway.
With a new system comes new flaws, this example being no exception. You see, depending on the host pc's system clock has its risks, such as events that can alter the system clock time (see bug 2259069 , which we hope to address in the immediate future).

This tweak is such a significant improvement since Alpha 0.1 that we've decided to push up our Alpha 0.2 release deadline to January 1st, 2009!

Tweak 5 -- non-match functionality control

Our team was concerned about the possibility of a scoreboard operator accidentally opening/using non-match PyJudo functionality during a Judo match (while the clock is running) as stated in Feature Request 2259076. We don't want scoreboard operators to be confused or overwhelmed, so streamlining operator options during matches could help.

As of Tweak 5, the "New Match" , "Settings" , "Clocks" , and "PyJudo Info" buttons are disabled temporarily while the clock is running. As an added bonus, there is an additional visible difference (besides the name of the main clock toggle) that the main clock is running.
Once the clock has stopped, for any reason, the buttons become available again.

Tweak 4 -- Clocks Dialog Revamp

Something that's always bothered us: the appearance of the "change clock" dialog. The expanded spin controls looked very ugly under Windows, and didn't even expand under OSX. We would also like additional functionality, for example the ability to change the osaekomi clock values. As we develop the new core timing method (Tweak 6), we want to include a way to access the "true time" upon request.

The new timing system will use a clock with precision to one hundredth of a second, but displaying all digits on the board output seems excessive. Instead, we felt the Clocks dialog would be a prudent display location. We've also put in spacers for editing the osaekomi clocks, which is a functionality we plan to include in an upcoming tweak. Check out the new dialog appearance, which is shown when the "Clocks" button is pressed.

Tweak 3 -- Player Names

Several of the disappointing player name flaws are addressed with this tweak, including:

1) The use of TEXTCTRL boxes for scoreboard player name enumeration. This not only seemed to be "bad practice" but it also negatively affected player name appearance for our OSX users. OSX TEXTCTRL widgets don't accept custom backgrounds, forcing the backgrounds of the player names to be white. On an otherwise black scoreboard, that was an unacceptable cosmetic defect. It also looks bad since we like the player names to appear white and blue as the rest of the scoreboard text elements do. In Alpha 0.1, this wasn't fixed due to time constraints and concerns about STATICTEXT limitations.
Solution: Use STATICTEXT boxes with pre-determined sizes and wxST_NO_AUTORESIZE enabled. The latter setting addressed our concerns about the appearance of player names upon being changed. This tweak has also been commented on in bug 1890821, which is dedicated to OSX visual concerns.

2) The option to edit the default player names through the Settings dialog hadn't been implemented.
Solution: ConfigParser use (with file settings.ini), much like tweak 1.

3) There was no limit on the character length of player names, allowing them to extend off the edges of the board
Solution: Player name character length has been arbitrarily set to 12 characters (temporarily). This is not the best fix, because there are certain character combinations that can exceed the boundries, but it is a good start until a more dynamic solution is implemented.

Tweak 2 -- Addressed Bug 2143119

This week's tweak addressed Bug 2143119 . Please see the details in the Bug Tracker for more information.

Tweak 1 -- Ability to Go Manual: Osaekomi and Shido Automation

The first tweak is a simple one, but one that could matter to you more than you think.

PyJudo's allure is often found in it's automated abilities, but sometimes you just want to do things yourself.
Introducing a tweak that will allow scoreboard operators to go manual. Osaekomi automation and Shido automation can now be turned off in the settings dialog!

This could be most useful if or when a scoreboard operator encounters a referee that wants more explicit control over scoring events.

Not sure what the automation does? Check out the online documentation for more details. As always, remember that you can take advantage of these tweaks right away by downloading the latest version of PyJudo from the SVN repository.


Related

Wiki: Home