Monthly Archives: January 2014

chess4j gets a little smarter

Over the holidays I managed to find a little time to do some work on chess4j. It felt really good to dust the codebase off and make some improvements that have had real impact on playing strength.

Up to this point, I have not really focused on playing strength at all. The official release number is 1.2. The focus of the entire initial release (well, the entire 1.x series of releases) has been to create a Winboard compatible program that is rock solid in terms of reliability, and to do so in a test driven manner, meaning a high percentage of the code is covered by unit tests, with some functional tests thrown in for good measure. That goal was accomplished. chess4j has played literally thousands of games on the Internet Chess Club, and it never crashes. It loses a lot! But, it never crashes.

The goal of the 2.x series will be to implement some well known search improvements. This probably will not include parallel or distributed search just yet, just ways to make the single threaded search more efficient. The focus will be on intelligently ordering moves to reduce the branching factor, implementing a capture-only search towards the leaf nodes, extending promising lines, and pruning back less promising lines.

Over the holidays I accomplished the following:

  • added the ability to process test suites, which included a FEN parser, in order to help measure the impact of search improvements
  • implemented a transposition table using an “always replace” strategy.
  • modified the search loop to order moves instead of just playing them in the order they were generated (the only exception to this is it was playing the previous PV first). Now it plays the previous PV, followed by any move suggested by the transposition table, followed by promotions and then all captures, with captures sorted by the well known MVV/LVA algorithm.
  • made a couple of obvious speed/efficiency improvements

I haven’t gotten to the point where I need to be too scientific about measuring the impact of improvements yet. But, there’s no doubt those changes have had a dramatic impact. Before, chess4j’s blitz rating on ICC was typically in the 1100-1200 range. As I type this, it has a blitz rating of 1419. That’s still very, very weak, and far far below Prophet’s former strength, but the point is those changes are having the desired effect!

All of this has been committed to the Sourceforge account, so anyone is free to peek at the code. The official release doesn’t include these changes yet, and probably won’t for several months, but the code is committed for my developer friends who’d like to get a sneak peek at the changes coming in the 2.x line.

The project website: http://chess4j.sourceforge.net/

Escape from the Salt Mine!

Yep. My consulting career has been taken off hold. As of Jan. 1st I am officially (and once again) NOT an employee of A Wireless.

First, let me say that everything I wrote in this blog post still holds true. I went back to A Wireless because, well, they needed an IT Director, and I wanted to explore the possibility of a CIO type career track. That said, neither party was under the illusion this would last more than a couple of years.

Well, obviously it didn’t even last that long. In total I was employed around 15 months. It really didn’t take more than a few months for me to figure out that the CIO / management track was not for me. Oh, I had a GREAT team of guys working for me, but man did I miss writing software and working projects. Instead of studying up on testing methodologies, I was reading business management books. Instead of doing code commits I was submitting TPS reports. Instead of solving technical problems I was solving personnel problems. Instead… well, you get the idea.

I’m truly very grateful for the opportunity, but it wasn’t for me, and once I discovered that there was really no need to drag it out. During the summer I talked with my boss about it, and we worked together to come up with a plan that worked for all parties. The ironic thing is that one of the guys working for me (Stephen Stanton) was such an obvious fit for the position that I don’t know why they didn’t promote him up to it in the first place! But, it’s his now! Congratulations Stephen!

So, I can now announce with some excitement that Swafford Consulting LLC is now open for business! I already have three clients, and there is a prospect for something very big in the coming months, but those are all posts for another time.