Knod Box 0.2
Spoiler: What if we created puzzles one could play offline?
I believe what I love most in computer science is programming. I almost never say no when it comes to setting up a new machine and I have to admit I get a real kick out of configuring a network but... programming is something else... I'd gladly do it pro bono if only I didn't need money to live.
It shares that demigod aspect common to all of computing. After all, whenever we install services or interconnect them, we are all just creating small virtual worlds... But programming is something else. We aren't merely instantiating a universe designed by another god; we are building our own!
Lately, I had drifted away from programming. My assignments didn't require me to write any code. But after a while, I missed writing code. Any code would do. I just wanted to savor that unique sensation of being in my own coder's bubble...
Programming Challenges
Except I couldn't find anything interesting to code...
Sure, I have a few scripts I use in my forensic work that I could clean up or improve, but developing them isn't exciting. I also have some nice algorithm ideas1, but without a concrete use case, once the proof of concept is built, I lose the motivation to return to them, and they end up gathering dust in a corner2.
So I turned to programming challenge platforms, thinking each challenge would be an excuse to code something. There are plenty of them, catering to all tastes. Broadly speaking, they fall into two categories:
- All-in-one platforms. They provide a web environment where you can write code and handle all the technical details like compilation, interpretation, and result validation3. I hung around Coding Game quite a bit back in the day, but I felt restricted and trapped within their web interface.
- Puzzle platforms. They provide a problem statement, possibly some supplementary files, and let you code the way you want, as long as you submit the answer in their web form. I used to be on Newbie Contest some time ago, and I recently finished the 256 statements of the Turing Challenge, but I was left with a bitter taste from having to create an account just to play.
Now, I understand the reasoning behind these sign-ups... Enabling a hall of fame where players can see (and compare) their rankings and achievements. Allowing those who have solved a challenge to share amongst themselves. Restricting access to a challenge to those who have solved the previous one. But even knowing that, as soon as I see that registration is required to play, I close the tab and move on.
So, apart from exercises that are not always corrected, found in algorithmics or programming courses (in paper books or PDFs when teachers distribute their lab sessions), I haven't found anything playable offline.
The other issue I encountered with these platforms is the publication of write-ups or solutions. It really depends on the player community, but sometimes, some feel the need to prove their success outside the challenge platform. They then publish the answer, the code, or explanations to show everyone that they solved the challenge.
I admit that sometimes explanations are quite handy. When a problem statement has an ambiguity4 or a flaw5, explanations can help unblock the situation. But answer lists and write-ups go too far in my opinion: they ruin the pleasure of playing.
On the other hand, it's hard to blame them. By keeping the all of fame for themselves, these platforms end up trapping their players and buildign a kind of prison around them. It's only natural that they try to break out... by publishing their answers.
The Knod Box
I've been thinking about a solution to these problems for a few years now. How to play offline and how to prove you've solved a puzzle without publishing the answer... I had imagined ideas that worked, coded a few prototypes, but the solutions never fully satisfied me.
Eventually, I think I've found an idea that could work... Selenith tested version 0.1. I was able to fix a few errors here and there and improve the overall experience.
So I'm submitting version 0.2 to you. I hope you'll enjoy it; here it is.
This image contains everything you need to play. Save it to your machine and you can start playing. You will know when you have solved a puzzle. And you will be able to prove it to us (and we will be able to verify that proof).
I prefer not to explain how it works just yet. On one hand, because you will have more fun discovering it by yourself. On the other, because I would like to have your impressions on this first version.
Please feel free to write to us after playing. You can also discuss it on the mailing list.
Edit of June 20th 22:43. Two mistakes have been fixes in the box. One about the verification of the badges. The other about the content of one puzzle (a page from the story was missing). If you've downloade the knod box before, please update to the new version.