18 Dec 2006

Very hospitable snake and chess lovers.

I have to admit I didn't expected it will happen so fast - I joined a pychess project. It has published a 0.6.0beta2 release as I am writing this post. I have just checked out the source and had a short look at it. The application itselft looks quite good, but the code is not that good documented as Jin's. Yet there is an issue raised for documenting and hopefully I will be able to help. For me developing Tonic was so easy thanks to well documented Jin's code. Sure, when you are the writer of method or if they are self-explanatory it is tempting to not to document, but when beginner approches such a undocumented code he feels discouraged - believe me!

11 Dec 2006

New release is online

This one contains some new features:

  1. Ability to observe, examine and, almost, play :) Bughouse/Crazyhouse games. Jin just couldn't even start a B or zh game. Moves are displayed in moves' table. If you need you can drop piece on the board using Main Console. Just Q@a5.

  2. Dropped pieces are highlighted on the board.

  3. You don't have to worry about special signs in you language. You can type them - you won't get disconnected because Tonic will convert them to normal signs.

  4. Plain tab is present in Channels Tab.

Not too much as I don't have too much spare time these days.

I have to admit I didn't have enough energy to finish a panel displaying available pieces for dropping when playing Bughouse game, but it is high on my to do lisst. Anyway I hope you find some of the features in Tonic useful. Enjoy!

22 Nov 2006

JRockit didn't Rock

Well, I tested as I promised. BEA JRockit hadn't problems with handling JDIC library - it is just better at ignoring staff that it doesn't handle. But I've noticed problems with rendering pieces. I examined through a game, or played, not sure :), and all of the sudden I got just the raw silhouettes of the pieces. It looked bad. Is it a surprise that Sun's Java is a winner in this test?

I still struggle to create a JBughousePiecePanel thingy. It will (hopefully soon) render pieces available for both players to drop on the board. I dream to say someday "Happy dropping!".

7 Nov 2006

Does Big and Blue means Bad and Begone?

Recently I wanted to test whether Tonic works on Java Virtual Machine from IBM. I was surprised to conclude that JDIC project uses some feature of Sun's Java VM that is not available in IBM's thus I crashes Tonic on this VM. So my rant questions are: Do developers of JDIC know it? Did they test against various VMs? I will certainly test Tonic on BEA JRockit 5.0 I have downloaded at the very moment of writing this entry.

19 Oct 2006

I have a great IDEA!

On 7th October I sent a request to Jetbrains for Open Source License for IntelliJ IDEA. Three days later I got e-mail confirming Tonic had been approved to get this license! I am glad that now I can use this great tool.

And that was the good news. The bad is I am ill... Some might think that being ill gives opportunity to develop more - it wasn't like that. I was so exhausted after having 39°C. Now I am quite fine and I intend to have a look at Tonic :). Maybe I will even write some lines of code...

8 Oct 2006

How to cut ogonek with a snake?

This weekend I have been coding one nice feature for Tonic for those who sometimes forget how lazy fics happens to be ;). Have you ever forgot to be careful when sending text to fics? If you happen to come from a country which language uses some special (non-ASCII) signs, you sometimes might be surprised how inhospitable fics is (for those who haven't experience it yet - fics disconnects user when she sends some non-ASCII character to server). From now on Tonic is smarter then you... or the server :). It converts letter with ogoneks, acutes, strokes etc. to simple letter, but it also, just to be sure that fics don't disconnects on you, cut other non-ASCII characters to '?'. Anyway, now you can cut'n'paste anything to Tonic to send to server, enjoy!

And as far as concerns goes for next release - it will happen soon. Most notable feature for bridge4 will be ability to observe Bughouse/Crazyhouse games. You will be also able to examine or play such games, but there won't be any gui for it, yet. Less notable feature is that you will be able to play pawns-only wild variant.

I've almost forgotten to explain the title of this post. To make Tonic convert letters with ogoneks I've used simple switch statement. Statement is simple, but the number of latin letter with other characters is quite long... And this is the place where smart ficsers and snake comes into play. Not to mention google... maciejg suggested that I should parse the site with Unicode tabel, which, after, something like 5 hours of struggling with Python, I did. There are 182 case statements in Tonic for converting letters. I am sooo glad I didn't have to do it by hand. Of course, it could take this 5 hours of learning basics of Python, but it wouldn't be fun, would it? And Python is so smooth and silky I really don't regret this time.

18 Sep 2006

New Feature Requests

I've decided to make some clean up in Features Requests section on Sourceforge project site. I've opened 5 new Feature Requests - they are mainly taken from one bigger and older Feature Request from ryoshu from fics. Through opening new Feature Requests I will try to organize development of Tonic and inform user about my plans and what changes were done to Tonic. Of course I welcome all of them to ask for new features! And would be glad to see some feedback from Tonic user, but I think it is little to early to expect any big interest in Tonic, or am I wrong? Nah!

31 Aug 2006

Back with something new

From now on tray icon in system tray/notification area is optional. It was not so hard to implement thanks to Jin's/Tonic's API. Creating a plugin with some user interface for preferences is a matter of minutes. I have to thank AlexTheGreat - he put a lot effort to make Jin really open source - well documented, readable and reusable. I hope he will find time to work more on Jin.

30 Aug 2006

Good time, hard time, no time at all

It may seem I have no time for Tonic - there were no new posts on this blog latly, no commits to CVS , not to mention about new releases. Well, I haven't abonded Tonic, believe me. I like coding it even if it gives headache like yesterday. The feature I was working on was displaying available pieces for Bughouse/Crazyhouse players. I've failed this time, I've made wrong decision to display them on the board. I've decided I will make completly new component for it. Keep your fingers crossed - I won't be able to do it while coding - I am using ten fingers to type ;).

Anyway, I just deleted the wrong code and squizzed a bug in consoles. The bug was: when sending command to server there was space added in front of command. This space was added every time you tried to send command from history too, so you could end up with quite a lot spaces in front of your command... Still full command is stored in history and it is bad feature when you use console with prefix supplier - it will repeat prefix over and over again when you issue command taking it from history. I will work on that soon. [Few minutes after publishing this post I've get rid of this bug too, so it really is a good time ;)] And on making tray icon an option, because some of ficser found it to be bad idea to have next tray icon, I can understand that :).

4 Aug 2006

I was too optimistic

I agree I was too optimistic saying you may not even notice slowdown in development in Tonic. Getting to know my job takes a lot of my energy. Well, I have it enough to play America's Army from time to time, but not enough to sit down for late night coding. Although I am still sure Tonic will evolve and will get Bughouse/Crazyhouse support, eventually. I've just decided that then I put it in the list of interfaces at Free Internet Chess Server site. I hope it will give it more attention from ficsers. Anyway, it is good to have a job and I learn a lot doing it so I benefit two way.

24 Jul 2006


As I said before, one of three most wanted features for Tonic is Bughouse and Crazyhouse variants support. The good news is that now I can examine and play Bughouse/Crazyhouse games in Tonic, bad news - to drop pieces I have to still use console. The side effect of implementing Bug/Crazyhouse is one more feature for Tonic - it now recognizes what is the variant of examined game. I implemented it mainly because I wanted to easily test Bughouse support in Tonic ;), but I think many of user will find it useful to be able to examined diffrent sort of games with Tonic - earlier it was possible to examine through any game, even those that Tonic didn't support - this way I could see what was send from server when playing Bughouse games :). I'll wait with release untill I create ui for dropping pieces. I will commit changes to cvs asap. So, here is the teaser for now.

I got employed finally so I will now have less time for Tonic, but again I code a bit faster so you may even not notice a slowdown in development.

20 Jul 2006

New bridge on a way to real Tonic

I hope you all welcome this new bridge. I know I've said it already, but this time I'm pretty sure Channels Manager works as expected. And not only that. Now you can:

1.Remove channels by closing corresponding tabs.
closeable tabs

If you aren't in a need to practice mouse sharpshooting (for some close icon might be a problem - it is in a small area and thus likely to be incidentally clicked) you can:
2.Set off closeable tabs for Channels Manager and also in the same dialog 3.Set Channels Manager to display timestamp at every tell.
preferences for channels manager

4.You can still close tabs with popup menu (under mouse right button).
popup user friend

5.And the other option is to use this dialog. Just remember to put '-' in front of number of channels you want to remove. Type all numbers of channels you want add/remove and hit enter.
channels add/remove dialog

6. Channels Manager is not the only one part of Tonic that got mine attention. You can set initial size for new consoles in Main Console preferences panel. Note that if you've created a new console window it will hold values when it was last shown. This preferences is only for enteirly new consoles - like the ones you create when first chatting with user.
new console size

7. And one last little thing. Main Console window will now remember in which state you left new console panel. So you won't have to hide it every time you start Tonic (mine problem ;)).
good memory of main console

8. You can open new console for chatting from console popup menu. Just point your mouse over user's name and choose 'Talk with'.

I also managed to logon with Tonic to ICC. It wasn't possible with previous bridge releases. If you want to try it too you will have copy icc directories from Jin resource/pieceset and resource/boardset to corresponding Tonic directories. I didn't do it for release packages since I don't support ICC (for now).

NOTE: This release needs Java 1.5.0 to run.

12 Jul 2006

The source code is there

From now on Tonic is really open source software (and free as in libre as well) - I managed (I had some problems last time I tried) to import source to cvs sourceforge repository. It is a bridge2 release source with few little modifications. You can read how to get it from cvs here. If you are impatient paste'n'enter in console:

cvs -d:pserver:anonymous@tonic-chess.cvs.sourceforge.net:/cvsroot/tonic-chess login

When prompted for password just hit enter. And then:

cvs -z3 -d:pserver:anonymous@tonic-chess.cvs.sourceforge.net:/cvsroot/tonic-chess co -P tonic

You should see a list of files downloaded from cvs repository. If you are a non-console user (i.e. Windows or Mac user) I recommend visiting this site. I myself use Linux for development. And Netbeans sometimes as you could figure out from examining the contents of tonic directory. So, enjoy the opensourceness of Tonic!

I uploaded new screenshot to Tonic project site. It is Tonic in Aero GTK engine tuxedo. Quite a peculiar engine imo, but you can use other GTK engines if you run Tonic in Java 6 aka Mustang (you know you can get it from here, don't you?) I test Tonic with Mustang and I've problems with tray icon. After some searching I've realized why Tonic crashed under Java 6 - the problem was tray.jar plugin and its dependencies - tray.so or tray.dll, so if you want to run Tonic on Java 6 move them away from theirs directory. I've written a class for tray icon using new desktop API from Mustang, but it doesn't work as expected in KDE (tray icon is invisible) ; GNOME is better, but I have to work on the popup menu. Well, what could I say? Mustang is in beta stage, but it has some goodies to wait for (early splashscreen, access to tab component, ...).

5 Jul 2006

Being lazy?

Have you noticed that you can stay in touch with Tonic related stuff using news aggregator? Here is the list for project's news and for this site you have Site feed entry in Links section.

For the next release I plan to fix the bug in Channels Manager I wrote about in last post. I also would like to add a popup menu for tabs. I've noticed that there is some problem with readability in Sought Graph. When Sought Graph's window is small time control types are too small to be read. Well, these are all small changes, but I plan to add something bigger. Maybe not in the next release, but... I think about bughouse/crazyhouse support. I've been looking at the code and tinkering how to do it and I have some ideas. I hope to test them next week. If you have any feature request or bug submission do not hesitate to use sourceforge Tonic's project site sections.

2 Jul 2006

Workaround for Channels Manager's bug

So you don't see all the channels from your list in Channels Manager's tabs? If you want your tabs now just set width 119 and restart Tonic. If tabs aren't still there you can set width to bigger number. I plan to fix this issue in next release so you won't have to set width to some nonstandard values. If you found any bugs or thought about some feature that might be useful please use sourceforge.net site's sections (Bugs, RFE, Forums).

28 Jun 2006

Bad luck - no release today, tommorrow maybe

I was going to release new builds. New and better builds although changes wouldn't have been very visible:

  • Prefix in new console if you want to talk to one person

  • prefix for private
  • You can hide panel at the top of main console

  • hide the panel

The main feature for the next release is _really_ working Channels Manager. And there will be some extra goodies for Windows' users. You'll have to wait for new build - sourceforge was down for maintaince when I was trying to create new release.

25 Jun 2006

Be aware of Dockable Document Interface

There is one feature which some of you may find tempting to try, but results may be awful.
be aware of ddi!

First of all when using some of look and feels there won't be any action buttons on titlebars,
no action buttons on titlebar
which are pretty useful in fact - letting you minimize panel to window's borders and closing the windows. This might be inconvienient, but it certainly isn't so severe problem as ui hanging when trying to drag game board out of the window to make it floating window or trying to reopen chess board window - it won't work as well (or bad rather).

Thanks for the interest

I'd like to thank all ficsers that despite funky release name, quality warnings and not too informative file names they downloaded Tonic and tried it. mccrack tried to run on MacOS X and he reported it worked fine. On the other side of barricade maciejg run Tonic on Windows and he didn't encounter any severe problems. Just to ease running Tonic - main jar is tonic.jar in tonic's directory and you should start with java -jar tonic.jar command or double-click on it (depends on your platform).

By the way, I 've found two bugs: 1. User is not able to access board preferences panel from button on the board. 2. When user adds/removes channel from channel list, chat notification icons does not appear on the right tabs in Channels Manager window. The latter was solved just minutes ago. The former I leave myself for breakfast.

But before going to sleep I have one question: have you noticed two new buttons in board window?

flip and prefs

Unfortunatly the one with thick does not work as excpected (see bug 1. above), but you can still customize board through menu Preferences>Chess Board item. Second button does flip the board so now you examine your games from the right perspecitve.

24 Jun 2006

So it have begun

Today I released first Tonic packages to public. It is just a prelease and I tested it only on Linux. I hope there will be some users that will find some of the features I developed useful. Tonic package for Linux can be grabbed from here and for Windows/Mac users here.

23 Jun 2006

I thought it would be harder

Some time ago ryoshu from FICS asked me to add tabs for shouts in Channels Manager window. Well, know they are in place. I thought it would be harder.

I don't know if you find ability to have multiple console for chatting useful, but I find it so. Tonic is now capable of creating multiple consoles that can hold all kinds of tells from FICS (I am not implementing any new features for ICC - it is enough for me to learn Java and code goodies for FICS, but I am sure there is a way to change my mind). New consoles can be spiced up to your taste: you can choose from various types in drop down list with one being special - Custom console...
custom console
Choosing this item from list enables text field at the right when you can type what kind of tells new console will receive. It can be any of:

  • announcment,
  • channel-tell # (where # stands for channel number),
  • cshout (chess shouts),
  • ishout ("it" kind of shouts),
  • kibitz # (kibitzes, where # stands for game number),
  • ptell (partner tells),
  • qtell (bots tells),
  • say (opponent tells),
  • shout (normal shouts),
  • tshout (tourney shouts, I think it is ICC kind of tell, isn't?),
  • whisper # (whisper for the game number #).

multi chat console
I hope you will find this feature useful. If you have found any bugs or have feature request, questions etcetera please use tonic project site on sourceforge.net.

20 Jun 2006

Back to Poznań

We've came back this Sunday. The long weekend was nice, but not always easy.

After some thinking I decided that colorful tabs for notifying about chatting events is not so good idea - some (read many) look and feels for Java doesn't honour changing background color. It is easier to notify user with icons. Nothing special I think, with one exception - when there is user's name in chat text diffrent icon will apear on the tab.
icons for chat events

One of the first things I'd wanted to change in Jin was the background of Seek graph. Well, in Tonic I still haven't changed the background image, but I've thought that it would be better to have information about seek in tooltip - it is not size dependant like in Jin. I know size does matter, but not everyone likes his seek graph taking one quater of screen, right?
tooltip for seek

14 Jun 2006

Waiting is over, let the weekend begin!

So there is a tonic-chess on sourceforge.net. No content yet, but it is just a matter of time - I have to learn how to import sources to cvs and how to distribute builds. Today we (I am married, you know) are going north for long weekend. Tommorrow is free day for my wife, while I still haven't found a job.

But before I leave I want to show one more thing that I am devoloping for tonic - it is icon in the notification area.
icon in notification area

So there it is. For now I only tested it on Linux, but I will test on Windows as well. This feature was possible to implement thanks to JDIC (Java Desktop Integration Components) library and with Java 6 (aka Mustang) you can do it without any outside libraries, but I haven't tried that since Java 6 is far away from final release.

12 Jun 2006


Last Saturday I applied for a project on sourceforge.net for tonic - internet chess interface of mine. As it is based on Jin source code tonic is quite feature rich and I continue to add a useful IMHO features here and there. Small things as I am not a Java developer. For example I added a window with separate tabs for every channel, that changes colors (randomly for now) when new chat message is sent to specific channel.
colorfull tabs

Prefix supplier for easier chatting.
prefix for tells
I have almost forgotten to mention that tabs are channel list aware - i.e. if you type for example "+ch 67" tab for this channel will apear and when you remove channel corresponding tab will disapear. Of course there is plenty room for improvement (list of channels with descriptions for adding and removing, better way for notifing user about channel tells, more features for prefix supplier and whatever user may find useful and developer within his skill range).