Here, you can find fun and useful software, libraries and documents created by Dave. Dave is a graduate of computer science at the University of Manitoba who likes networking, mobile robotics, and ATVs. Current projects include ARC-Pad, EbonHack, and a tele-operated vehicle unimaginatively called the Telebot. In his spare time he creates very, very plain websites that are easy on his dial-up modem and meager HTML skills, and refers to himself in the third person.
David C. McCallum and Pourang Irani. 2009. ARC-Pad: absolute+relative cursor positioning for large displays with a mobile touchscreen. In Proceedings of the 22nd Annual ACM Symposium on User Interface Software and Technology (UIST '09), 153-156.
David C. McCallum, Edward Mak, Pourang Irani and Sriram Subramanian. 2009. PressureText: Pressure Input for Mobile Phone Text Entry. In Proceedings of the 27th International Conference Extended Abstracts on Human Factors in Computing Systems (CHI EA '09), 4519-4524.
QStreamer provides a very simple webcam-capture API. It is integrated into the Qt framework, and emits a signal whenever a new image is available. QStreamer uses xawtv's streamer program to retrieve webcam images, which is only available under Linux. The streamer program normally outputs the images to hard drive, but QStreamer re-directs them to RAM.
QStreamer.tar.gz (5.2 KB) QStreamer 1.00, for Linux.
Online Manual
A graphical telnet client for nethack. Now you can play online, submit high scores, and watch other player's games! EbonHack includes graphics for most creatures, items and dungeon features, and drop down menus for in-game commands. Works in Windows and Linux.
Note: if graphics are being displayed at inappropriate times, use the Home key to toggle graphics mode on and off. DEC graphics mode should be disabled.
ebonhack120.zip (8.7 MB) EbonHack 1.20, with Windows executable.
ebonhack120.tar.gz (2.5 MB) EbonHack 1.20, source code only.
A simple networked paint program. Up to eight users can connect to a session, and collaborate on a drawing in real time. The bandwidth requirements for clients is modest, and dial-up users should be able to join sessions without problems. Hosting a session requires you to upload 3 Kbps per client, and requires broadband if you intend to have more than one client connected.
Type enter to chat with your fellow artists.
fnpaint121.zip (2.4 MB)
Screenshots
Known Bugs: some users have reported a getnameinfo error when they attempt to connect to a session.
We finished water-proofing the Telebot, and took it for a spin around the yard. It handled fairly well with a video feed of 3.5 to 5.5 frames per second.
A mobile robot. It has a Mini-ITX motherboard that takes input from a webcam, and transmits it over a wireless network. Useful for exploring your neighbourhood from the comfort of your computer room. Also it's great fun to drive.
Some webcam pictures from the Telebot's first trial run.
Dasyne is a high-performance TCP networking library for C++. It builds on top of Boost::ASIO, making it efficient, scalable and cross-platform. Dasyne provides an object oriented, event-based API with a focus on simplicity and ease of use.
Features include:
Dasyne100.tar.gz (285 KB)
For the previous version of this library, DyConnect, see here: DyConnect
A real-time strategy game, with a view from the side rather than the top. Comes complete with a race editor and three pre-created races. Age of Invasion was originally written with DJGPP under ms-dos 6.22. It was later ported to Windows 98 SE, and development was finished with Dev-Cpp. The graphics, timers and input were implemented using the Allegro library. Development of this game was completed in 2003, with the exception of multiplayer.
Known Issues: occasional crashes when playing the Lake Placid and Spider Cavern maps.
Age of Invasion Original Web Page, left for amusement value.
Screen Shots
Invasion080.zip (3.02 MB)
A short tutorial on data analysis with R Commander. R_Commander.pdf
Some handy links:
www.cplusplus.com A full description of C++, including the Standard Template and IOStream libraries.
www.llnl.gov Programming POSIX Threads.
beej.us Beej's Guide to Network Programming
www.allegro.cc When all else fails, ask here.
White_Noise.ogg Soothing white noise to calm the troubled programmer.
You can contact me with bugs, feature requests or anything else at dmccallum9@gmail.com