This page describes some of my open-source software projects and contributed work. A lot of this software was written while conducting research projects.
I’m still working on organizing this material, and almost always writing new code. Come back in awhile.
I am an active contributor and committer to the RTEMS Project, an open-source real-time operating system in use by industry, government, academia, and hobbyists.
Some of the larger projects I’ve done include:
Porting RTEMS to the sparc64. I wrote a description on my blog. The code is available on Google Code, and it has been merged upstream.
Refactoring the thread scheduler. I wrote a description on my blog. The code is available on Google Code, and it has been merged upstream.
Some unmerged or archival projects may be found as branches on my github fork.
I mentored the following student projects as part of Google Summer of Code or ESA Summer of Code in Space.
Spencer Goodwin, CTF Integration, 2017. He worked toward using Common Trace Format (CTF) with the RTEMS Capture Engine and Trace Framework.
Habeeb Olufowobi, Porting RTEMS to ARM Cortex M4F, 2016. He added a new board support package for the TM4C129x embedded system.
Sambeet Panigrahi, Porting ROCK on RTEMS, 2016. He worked on updating prior efforts to get the ROCK robotic platform to work with RTEMS.
Rohini Kulkarni, Raspberry Pi 2 Support, 2015. She ported RTEMS to work on the multicore Raspberry Pi 2.
Hermann Felbinger, Improve Code Coverage Analysis Meeting Aviation and Automotive Standards, 2015. He worked on improving the code coverage analysis of RTEMS. This work resulted in a joint paper in the Real-time Linux Workshop.
Saeed Ehteshamifar, RTEMS Fault Tolerance Project, 2015, 2016. He worked on adapting the Slingshot tool to generate fault injection campaigns for RTEMS.
Přemysl Houdek, RTEMS port to Cortex — Rf4, 2014. He ported RTEMS to an ARM board with two processors in lock-step mode for safety-critical systems.
Hesham Moustafa Almatary, Porting RTEMS to OpenRISC, 2014; Enhance low-level API of libmm, 2013; RTEMS MMU/MPU support for ARM architecture, 2012. I have described some of his efforts on my blog: MMU project and libmm. The 2012 and 2013 code is available on github, and much of this work has been merged upstream. Hesham went to University of York for his Master’s degree starting Fall 2014.
Sree Harsha Konduri, Global EDF Scheduler, 2013. He wrote a new SMP scheduler using the existing framework at the time. The code was not merged because the SMP scheduler framework changed a lot afterward.
Petr Benes. Porting of resource reservation framework to RTEMS executive, 2011. The code is available in a tar ball and it has been merged upstream. Petr’s project was a substantial portion of his Master’s thesis at the Czech Technical University in Prague.
I hack on and make contributions (mostly bug fixes) to the gem5 simulator.
I implemented some timing and operation counting within the gcc 4.7.1 (libstdc++) STL profile mode. The code is available on github, but it was not merged upstream. I updated some parts of it to 4.9.2, but the patch fell through the cracks. I described this effort on my blog.
I wrote Python script to ease downloading and applying git patches from gmail.
Stefan Popoveniuc and I implemented a secure bulletin board service for electronic voting. I implemented the back-end consisting of cryptographic multisignatures and majority-rule consensus among mutually untrusting servers in C with the Spread toolkit. Stefan implemented the front-end. The code is not currently available, but I might drop it on github someday.
As an applications analyst for Bloom Road Consulting Group LLC I wrote a handful of C++ data processing applications, along with a number of scripts and modules for Word, Excel, and Base. This software was all proprietary, although I do retain the right to produce derivative works in most cases.
As an industry-funded undergraduate research project, a colleague and I implemented a Monte Carlo simulation of particulate matter segregation in Unified Parallel C (UPC). I implemented the back-end physics engine and collision detection algorithms, and Daphne implemented the graphics and networking subsystems. The code is not currently available; I have it archived, but I am not certain about my intellectual property rights to it. At any rate, I doubt anyone would find it terribly useful, but if you are curious drop me a line and I can find out if I can share any of it.
4 fellow students and I implemented "Super X Racer", a 3-D driving simulation written in C++ with OpenGL and GLUT as a semester-long project in a software development undergraduate class. My primary responsibility was to implement the physics engine, which included acceleration, braking, environment interaction (friction, collision detection), and turning radius enforcement. We all participated in the software requirements specification and design. The code is not currently available, although I think I have it somewhere on a CD.
My earliest released code was a relatively simple program that I wrote in High School that let users explore the range of item modifiers in Diablo II. I put the software up on some fan-site that collected such applications. It was downloaded over a thousand times, which made me feel pretty cool at the time. Of course, the users were probably hoping it actually was an item hack, which it was not. (Much h8 for cheaters.) I never released the source code, although I do still have it; I don’t think it is particularly any good or useful.