Randy Rossi - 'On the side' Software Projects

 
  Anyone who knows me knows I code for fun outside work. I have developed a number of programs out of interest and personal development over the years. Here is my collection of my software projects and a short description of each. You can click on the links for the source or more info/screenshots.

Freemote Control Java/C FINISHED This is an application I wrote that turns your Smartphone/Tablet into a remote control for your PC mouse/keyboard. I developed it to control my MythTV PVR hooked up to my TV. Clients were written for BlackBerry, iPhone and PlayBook. Server can compile on Windows, Linux and Mac. Wifi connections are suppported for all platforms while Bluetooth is supported on Windows/Linux only. There have been over 10,000 downloads of the BlackBerry client since Jan 2009. I maintain a website with demo links and support forum here.
Software Modem C/C++ IN PROGRESS This project is based on (the late) Professor Tony Fischer's software modem project. His application was initially written to let his students fax documents from a telnet session through a sound card connected to a phone line. I ported the code to linux and rearchitected it to experiment with the idea of being able to make a connection to a real modem via a cell phone audio link:
  1. changed the producer/consumer co-routines to be threads instead (much more efficient on CPU)
  2. added a HAYES modem emulation so other apps can issue real HAYES commands to control the modem (plan is to be able to use PPP)
  3. switched to C++ for more modularity
X Windows Keyboard/Mouse Relay C/XWindows COMPLETE This is a small utility I wrote that lets you use the mouse/keyboard from one X windows display to control the mouse/keyboard on another. Source is available on SourceForge.net
Speech Synthesizer Java EXPERIMENTAL This was my attempt at creating a speech synthesizer using my own voice. I was trying to see if I could smooth out the transitions between phonemes by recording pairs of phonemes instead of individual phonemes. I would then overlap the common parts and get an uninterrupted flow between consonants and vowels. Here are the results
Lunar Defence Java BlackBerry FINISHED This is the first game I wrote for BlackBerry smartphones. You have to defend your lunar base stations from incoming asteroids with your laser defence system. (Missile Command'ish)
BlackJack Enthusiast Java BlackBerry FINISHED This is the second game I wrote for BlackBerry smartphones. It is a highly configurable BlackJack game/simulator. I started writing this after a weekend trip to Vegas and got addicted (to coding up the game).
Classic 15 Java BlackBerry FINISHED An implementation of the classic 15 puzzle sliding block puzzle for touch screen BlackBerry's. I whipped this up on a weekend, mostly to learn the new BlackBerry touch screen API.
Word Link Java PlayBook FINISHED To become familiar with the Adobe Air SDK, I wrote Word Link for the PlayBook. You are given two four letter words. Your challenge is to find a sequence of words leading from the first to the second, changing only one letter at a time. Most of the work was figuring out how to animate sprites. I'll buy a beer for anyone who is interviewing me if they refer to this game during the interview. The user can spin letters up/down with inertia/fading effects.
VICE Commodore 64 Emulator Interface C/OpenGL/Alsalib PlayBook FINISHED I took VICE's Commodore 64 emulator and created a GUI and sound provider for the BlackBerry PlayBook using OpenGL and Alsalib. The core emulation is obviously VICE code but the interface (keyboard, joystick controls, video screen, buttons) as well as audio was written by me. I submitted this project internally at RIM over a year and a half ago but they did not do anything with it so I'm posting it here for side-load. You can download the BAR file here : C64 Emulator for BlackBerry PlayBook
Ocarina C/OpenGL/Alsalib PlayBook FINISHED I wrote my own four hole Ocarina app for the BlackBerry PlayBook where the user can blow into the mic to make the sound. I played around with various techniques to turn the recorded noise into a flute sound. Eventually I had to add a high pass filter to prevent feedback. Very cool!