Working on Tarrasch Again
It’s a wonderful world we all live in these days. Modern computer technology has enabled an environment where individuals can express themselves by easily creating content (whether fiction, non-fiction, software, podcasts, videos whatever) and pushing it out to the world. I wanted to play my tiny part in this revolution and the Tarrasch Chess GUI is the result. It’s a small and modest thing, but it’s something. It’s different, it’s fit for purpose and I like it. The end.
Well actually no. It’s not the end, I am working on Tarrasch again, and I am sure I will be putting out a much enhanced new version. I haven’t written anything here for a long time, because I didn’t really want to commit to a new version. I’ve actually been working on the new version for months now. And it will be months more before I am ready to release an alpha or beta version. I am writing this because for a long time progress was glacial, and I wasn’t sure I would ever get anywhere. But recently I’ve turned a corner and started making faster progress. I’m starting to believe again and a public commitment is a good way to stay motivated. If you’ve promised something to an audience, giving up is just too embarrassing. I think this blog was a key factor in getting Tarrasch V2 out the door, and hopefully posting again (maybe not so frequently) will do the same thing for V3.
So how will V3 differ from V2 ? I know there have been posts and discussions here before about this very subject, but I am afraid the reality has nothing to do with those posts! Tarrasch has always been about me making the chess workbench that I need, with the hopeful side-effect that it would be useful to others as well. Basically I started playing around, adding the missing features that were forcing me to resort to other Chess GUIs sometimes.
So what have I been adding ? In rough order of importance;
- Database support.
- Multiple Tabs
- Web publishing
- Mac version
I can’t even remember if database support has ever been discussed in this blog before. But in retrospect it is such an obvious deficiency, and at the same time a great opportunity for improvement. When I am working as an (amateur) chess journalist on the New Zealand Chess Magazine or the Wellington Chess Club website, I need more than just engine evaluations. I need to know how the opening phase compares to master praxis. Obviously a keen player who is working on his game wants the same thing. Why I thought Tarrasch was complete without such a feature now puzzles me.
Multiple Tabs arose as a side effect of database support. The database feature lets you call up a list of database games featuring the current position. You need to be able to load a game or games from this list into the normal Tarrasch interface without in any way sidelining the original game you were working with. After coming up with a variety of artificial and unsatisfactory ways to do that I realised there was an existing highly successful and fashionable user interface paradigm that was eminently suitable. A tabbed workspace not only solves the database dilemma, it extends Tarrasch in a useful and powerful way without requiring a complete new approach to everything. Software happiness achieved.
A web publishing feature arose from my needs as a chess journalist (see above) and also because I suffer from the slight arrogance that makes me think that existing solutions are poor and that I can do better. My idea is to create a traditional chess book like layout, with optional dynamic interactivity. How do you turn on interactivity ? Click on a move. The original point comes next – the nearest traditional chess book diagram then transforms into a dynamic, live computer board with media (forward/backward/play/pause) buttons. As you move through the game in interactive mode, the dynamic board smoothly transitions to whichever traditional chess book diagram is closest. I think it works sensationally well – but of course I am hugely biased. For an example, see http://nzchessmag.com/wellingtonchessclub/champs2013b.html
I bought a Mac a couple of years ago, not with the intention of leaving Windows forever, but with the idea of participating in Apple’s “ecosystem” and maybe making some money from my hobby sometime. Well that hasn’t happened yet but it’s early days 🙂 I didn’t want to waste my investment and so I decided to force myself to work on the new Tarrasch version on my idle Mac. I always wanted the C++ code to be portable, and this was a chance to move from theoretical portability to practical portability. The plan has worked well and I am now pretty much as happy in the XCode (Mac) environment as the Visual Studio (Windows) environment. Well maybe not quite. The Mac cultists won’t believe me, but I think Visual Studio is better. Getting Tarrasch to work at all in Mac was a lot of work, symptomatic of a big problem in the Tarrasch source code. Basically I took too many shortcuts to get Tarrasch 2 out, and I have some big internal messes that I am still trying to resolve. The technical management term for this situation is “technical debt”. I have to pay back my technical debt before I can move forward.
That’s enough for one post. I should quickly add something about the “maintenance version” of Tarrasch I released a few months ago. Keen observers might have noticed this, the only visible thing to have happened at triplehappy.com for a long, long time. There’s not much too say so I won’t say much. Basically I had some bugs that I didn’t feel comfortable leaving unfixed. Not a problem for casual users, but if you use Tarrasch a lot (like me) it’s worth the effort to download and install the newer version on top of the original Tarrasch V2 release.