I’ve really not touched RTools much in the last few months. The main reason is uncertainty; there just isn’t any reason for me to spend significant time on RTools 4. What I do want to touch on, though, is where RTools 4 was last left off in development:
– The database-access systems have been rewritten slightly, and been given some new code which detects for changes in the source files. This was designed to make auto-updating of windows a system-wide default, while still minimizing the potential for read/write conflicts.
– The scrolling engine (where pairings, standings, etc. are displayed) was rewritten. The revised engine uses 1/2 the classes, about 2/3 the total code, and runs about 20-30% more efficiently. If there is one thing I may decide to back-port into RTools 3.x, it would be this.
– The framework for a new networking system was in-place, greatly increasing reliability of the to-be system.
KTS + RTools
I’ve gotten word from more than one source that RTools is no longer working with KTS. KTS is an interesting beast for me, as I cannot readily access new versions of the program. Once I’m able to find a copy of the current version, I can do some looking around to see if I can fix whatever is going wrong.
EE – Network Timer
I’ve received a couple people noting that they still want to use the timer at larger events, and as a result I’m doing some re-jiggling of the timer code and will hopefully release it sometime in November. This will essentially be the timer + networked timers in RTools 3.2.x, with a few differences:
– The timer positioning code finally works right! The code to physically position the clock and labels was always a bit hit-or-miss, due to a whole bunch of programming concepts. (typographic positioning and insets, primarily) Now, everything is placed nicely and resizes nicely.
One downside here – font changing is disabled. This is due to how one figures out the space that a font takes up programmatically. In Java, (and other languages) this is done with a class called FontMetrics; essentially, you can feed this class a font and a context (the rules that govern where the font is being placed) and it can spit out a rectangle containing the full area the font takes up.
Now, the problem is that most fonts won’t use that full space up; if I were to base the window size directly on this, there would be about 20% wasted space on top. So, I have to make adjustments for the specific font such that it fits nicely into the space it says it needs. If I were to use another font, the relationship of space may not hold in the same way, so for now I just need to settle on everyone using the same font.
– The one thing I’m researching now is kind of the same thing that I was researching at the stage RT4 ended in – building a solid, usable networking system. This is something that I want to get right on this redevelopment, so I’m taking some time figuring it all out.