Use Ruby + a MIDI keyboard for a programmable piano exercise tool.
Usage:
$ ruby practice.rb <exercise>-<key>[,<key>, ...] [<exercise>, ...]
Example:
$ ruby practice.rb major_scale-C3,D2
Available exercises:
major_scale
major_third
major_third_first_inversion
major_third_second_inversion
minor_third