After killing rofl with CTRL-C, commands I type are invisible. My PS1 still appears. I'm using iTerm 2 and ruby 1.9.2
I don't have that problem with zsh, but it does seem to be a problem for bash.
There's undoubtedly some escape codes we're missing.
Typing reset (even if you can't see what you're typing) will fix it in the mean time.
Will look for the escape codes when I get a moment.
The man page for tput and reset says:
reset Instead of putting out initialization strings, the terminal's reset strings will be output if present (rs1, rs2, rs3, rf). If the reset strings are not present, but
initialization strings are, the initialization strings will be output. Otherwise, reset acts identically to init.