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_scalemajor_thirdmajor_third_first_inversionmajor_third_second_inversionminor_third