Have you ever debugged something that wasn't broken?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Have you ever debugged something that wasn't broken?

Post by mvanthoor »

Hi :)

As I'm now implementing the UCI-interface for my engine, I obviously need to connect it to a user interface to be able to test it. I've installed Arena, because it has a debug / log window where it displays engine communication. In Arena, my implementation seemed to work fine. I could load my engine, and it would respond with the correct commands. At that point, it wouldn't do anything, because not a single version of "go" was implemented yet.

I also tried the engine in the Fritz 17 GUI. When you connect an engine, it makes some sounds. AFAIK, they can't be disabled short of deleting the files. (I have not tested yet if this crashes the program.) If I connect an engine such as Stockfish, or the Fritz engine, it makes humming and clanking noises to let the user know that the engine is now running.

When I connected my engine, the sound was "drrr-oink" (Spring.mp3). It very much sounds like an error sound to me.

I assumed that the GUI was not loading the engine, so I went on a two hour debugging spree to see if I missed a command somewhere, sent CRLF the wrong way (in such a way that Arena could handle it but Fritz couldn't), or whatever. I downloaded BBC by Maksim because I know it sends some commands at the wrong time (it immediately sends id name, id author and uciok on startup, before receiving uci), but even that engine worked fine with commands out of order.

After two hours I decided to give up and just finish the implementation of "go infinite" to actually be able to test the engine.

As I posted in the progress thread... it works. In both Arena and the Fritz GUI. There was never a problem. The engine still makes that spring sound that sounds like an error but isn't. Even when I remove the engine from the program and then add it again, it again assigns that "spring" sound to it.

Because of that, I've spend two hours hunting for a problem in my UCI implementation, when in fact, there wasn't any.

Maybe someone with Chessbase needs a little refresher with regard to user experience; it's not helpful to have your program make sounds that will generally interpreted as "error" when in fact nothing is wrong. I'm going to replace the "spring.mp3" with something else.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Have you ever debugged something that wasn't broken?

Post by jdart »

You can give them this feeback via info@cheessbase.com.

They do fix things in their programs via updates. I really wish they'd fix the resource leaks in ChessBaxe that make you have to shut it down and restart every once in a while.