Building Keyboard Layouts

It’s commonly known, to a certain kind of person at least, that the normal QWERTY keyboard layout is not particularly well suited to typing English prose. The usual story is that it was designed to intentionally slow typists down so that the physical hammer mechanism used by early typewriters would have time to clear between key punches so as to not jam. Probably, that’s a bit suspect. But certainly the design was affected by the implementation on these typewriters to some degree.

Read More

sls (framework for developing Stochastic Local Search algorithms)

This code formed the experimental basis for my dissertation work on multiobjective landscape analysis. It is a fairly general platform for implementing multiobjective metaheuristics for numeric or combinatorial optimization. A fair number of my publications reflect algorithms and experiments present in this code. The code is all C++, and relies rather heavily on features of modern C++, or at least what passed for Modern C++ circa 2006 when it was largely developed.

Read More