Hacker News new | ask | show | jobs
by prewett 806 days ago
Who is the target audience for this? Software developers are obviously a good fit, but after spending all day on puzzles, I might not be interested in doing it read a novel, especially one that appears to be about an angsty teenager. (But it is also an interesting idea that makes me curious.) People like my mother, who likes word games and sudoku, also seem like a good audience, but she has no programming background and is probably not excited by the prospect of: choose a suitable programming language + figure out how to install it + editor? + compiling/running + learning the API + who knows what else (from her perspective). However if you could narrow it down to putting together a bunch of primitives (e.g. "swap letters", "swap words", "swap lines", etc.) that would help. This would be similar to text adventure games which give a list of verbs, possibly not exclusive, that you can use. Alternatively, if that gives too much away, having solved it, you could give a list of the functions that are necessary (e.g. if, for, anything in String, anything in Array).

Assuming that the purpose is the puzzle, not programming (unclear, since presumably your wife had to write a program to generate the puzzle text), I would recommend shipping a script with a framework that defines a bunch of solve01, solve02, etc. functions that it calls when you run the script. This framework would load the text, call pass the text to solve01, compute the checksum and if it passes, call solve02 with the result, etc. (And if it fails, stop and report that problem 1 has not been correctly solved yet.) You probably want to provide a much simpler, solved tutorial that introduces loops, arrays, newlines, etc.

This seems like it might be a good way to introduce kids to programming, especially with a framework that holds their hands for things like reading the file for the source text, but which is examinable to see how it works (especially with liberal commenting). You could also provide an inverse, generating framework so that they could write their own puzzles.

I would recommend some usability improvements:

- ship the cyphertext as its own file; this makes it much more reliable for the user to correctly extract the text (because they don't have to). At least give a checksum for the source text.

- non-programmers will need to know that the text must be treated as list of characters, including space, newline, punctuation, etc. (At least, I assume that is required)

- a tutorial program that solves the original boustrophedon-line diary. Personally I think that Python is a better language for a complete beginner than Ruby; it is about as close to running pseudocode as you can get.

2 comments

As a counterpoint, I really like that the whole puzzle is just a text file. It's simple, and as I mention in another comment, it reminds me of learning to program in my early days.

This may not have any other real purpose than to be a piece of art. Or perhaps it's aimed at a narrow demographic of kids who are already decent programmers. However, it's also entirely possible that others will create a whole ecosystem of "unofficial" tutorials and libraries/frameworks around it.

>This may not have any other real purpose than to be a piece of art.

Christine would've loved this answer.

This is exactly the kind of art I've always enjoyed the most, but I'm most glad that someone finally pointed out to me that it was art. Thank you!
I think it's probably the same audience as something like Advent of Code. People who want to solve programming problems that are more interesting than the typical business logic we have to work on all day.