In the early 90s, there was this thing called a centronics port. You looked behind an old dot matrix printer, you found this large ugly parallel port with 25 pins ( http://bit.ly/YT4xRh ). I asked my professor "how does the printer print ? ". He took my question at face value, hooked up the centronics port to a CRT...soon I realized pins 2-9 would output any goddamn digital signal ! Literally anything I wanted. I wrote a quickbasic program to print square wave, sine wave sawtooth... and those waves started showing up on the CRT. So it got me thinking...if I feed that 8 bit output to an 8-bit TI DAC, I can make an analog function generator! ( http://bit.ly/WmFy8o ) My final version needed a 741 op-amp & a 555 timer, but it actually worked over a wide range of frequencies, and was about one hundredth the price of a real Kenwood function generator! Ofcourse, back in those days, there was no YC or startup culture, & that was the end of that device...:( But just thinking about that one hardware device gives me more pleasure than all the software I wrote after graduating.