Finish Your Stuff


If there is one principle that should be added to the UNIX philosophy, it is: "Finish your project.”

Most software projects are never finished, they just keep evolving.

Imagine if carpenters were like programmers, furniture would be chaos.

Everyone thinks there project is a special snowflake. In reality, their projects are too big.


Like I published in 2018 - “Kill All Scope Creep”.

Chessprint is complete. I think there is functionality that could be added in a future version, but there is no reason build a future version, it runs and does it’s job. I actually wouldn’t add any functionality to Chessprint, I would just build other tools to product PGN files. This was my intention when looking into building tactics books: Chessprint is a tool for building ebooks from PGN. If we created another tool, e.g. “TacticsFinder”, it could do read games and find tactics, producting PGN files which could be read by Chessprint.

Additional functionality for Chessprint would be:

  1. Diagram every N moves (which it basically already supports, we just never put it to use)
  2. Different input file (i.e. PGN or list of FEN, maybe support comments with the FEN… but this one probably isn’t even necessary because it can just be a PGN file with the FEN starting position and then the moves to solve the tactic as PGN).