## Begin at the beginning…

Maybe it’s that I started computing from a math point of view: elegance attracts me. More specifically: I start on a point of elegance, and see how it works in the real world (hey, I did end up in software).

The search for elegance started me reading a lot of abstracts and theses. There are a lot of frogs to kiss out there. A few (other) people have turned frogs into princes; more people have wasted their lives on a Michigan J. Frog; a lot more people have tried to dress up cane toads and pass them off as princes. I look at a frog and say, what makes you special? And why did so many people pass over a special frog like you?

In the world of algorithms, there are assumptions built into what people are taught, about the absolute limits on what can be done. NP-complete is mostly learned and forgotten. O(N*log N) is the bound for many searching and sorting problems, given constraints.

Algorithms that beat the bounds are considered (sometimes rightly) overspecific curiosities, or mere perpetual-motion machines — they must have a catch, even if you can’t see it.

It’s the former that intrigue me: something that only works for, say, short binary keys, or has an O(n * n) algorithm at its heart. How could I make those work practically, scalably? In the upcoming posts, I’ll show you what I’ve done, and how I got there — not always by accident. And I’d appreciate anyone pointing me at algorithms that they found so damn promising, but in the end not practical.

Unrelated to that: I have a hobby: four-letter amphibian names. People who’ve worked with me are used to finding temp files with names “frog”, “toad”, “newt”, “bufo”, “rana”. I’m always looking for more, in any language. Any herpetologists out there?