Music. Coding. Gaming. Life.


Programming has been a hobby of mine since I was a child. I am entirely self-taught, and have managed to carve out a career in the field that spans over fifteen years.

Initially, I worked with BASIC on the TI 99/4A, Atari 130XE, and the Commodore 64 and 128. This transitioned easily to Mac OS 7's QBasic. Then I learned Microsoft Visual Basic 4 through 6 and starting making small programs and games. My first two programming jobs involved me learning Microsoft Access, with all kinds of back-end VBScript.

In 1998, I got heavily interested in web technology, and took a dive into HTML and JavaScript. Soon, I'd pick up Visual Basic.NET, C#, and ASP.NET. I was then able to transition my HTML knowledge to the modern HTML5 browser. My JavaScript experience also readied me for learning Node.js. Along the way I've picked up a bunch of PHP and C/C++ as well somehow.

In many ways, I consider the core concept of coding to come quite naturally to me. You simply break a task down into smaller and smaller tasks. What really fascinates me about coding, however, is how you can put all these simple tasks together to do something phenomenal.

I am involved in many projects outside of my professional career that involve programming in some way. This page is dedicated to showcasing those projects.

Current Projects

Commits and Releases

Refactor database calls.
Released v1.4
Use database library, and better handle calls to the database.
Add Brigitte to randomonium.
Released v1.0.2
Use promises recently added to the mssql library for better exception handling.
Released v1.0.0
Initial commit.
Fix comments.
Released v1.0.1
Readme update.
Let's make this more object-oriented, so we can have multiple instances that connect to different databases.
Released v1.0.0
Initial commit.
Visual Studio doesn't know what it's doing sometimes.
Updates for Visual Studio solution.
Update readme.
Update remaining dependencies on
Version 1.0.6. Upgrade all packages to their latest versions, now using node.js v10.
Some minor fixes.
Version 1.0.0.
Add social icons, fix equalizer.
Update SDLMain.m:

commit c4417aafb1fff5ab5b703a340a24d741649bc389 upstream.

10.9 changed how applications were launched, making the old method of detecting a Finder launch fail.
(7 total commits)
Fix FPS.
(7 total commits)
Ensure FrameTime > 0 before starting the frame.
Fix FPS locking and FPS display implementations.
Add missing glDisableClientState call.
Update SDLMain.m:
10.9 changed how applications were launched, making the old method of detecting a Finder launch fail.
(5 total commits)
Fix FPS.
Fix license link.
Fix duplicate scroll input on windows 10 (from opentk/opentk@9ef456b)
Implement methods for PCM 8-bit and 16-bit output.
Fix bug with linking objects to a segment when the segment thinks they are already linked to that object.
Capitalize globals.
These don't need to be in the for loop.
Be certain with shields if shields are below 0.
- Send network token with UPID_GAME_INFO, so that the client already has it when we join.
- Initialize player stats for new ships at the beginning of a multi game BEFORE the level is loaded, so that the stats are initialized before receiving packets from the master.
- Implement a shields_certain flag on players to indicate to observers whether we are confident that the shield counts are accurate. Inaccurate shield counts can happen from out of order or dropped packets. Uncertain shield counts are denoted with a question mark after the shield counts.
- Fix clients setting Netgame.max_numobservers after receiving Netgame.numobservers
Fix run display and shield display on ships.
Seriously, how did this ever work??? Fixed observatory view.
Honor no cockpit mode if set.
Fix various bugs with the observatory interface. Still needs a bit of testing.
Typo fix.
Restore GOG notice.
Allow players to observe a game that hasn't started yet. They will wait at the menu just like a new player would until the host begins the game.
Since we're calculating FrameTime when paused, we no longer need to worry about resetting the last_timer_value when unpausing.
"Draw" energy gauge with a rect instead of a line, and fix coordinates.
Missed a version update.
Typo fix in scons
Windows 10 2017 Fall Creator's Update performance warning.
Released DXX-Retro 1.4X3
Fix Mac compile bug.
(17 total commits)
Reset obs when obs'd player dies in mine.
Use correct bool for determining if they died in mine.
Set player to died in mine if they died in mine.
Don't draw invuln if time ran out... this fixes a symptom, but I'm not sure why the flags aren't sending.
Only keep shield change alive when the shields actually change.
End level packet sent by observer is unnecessary.
Whoops, left bad code in.
Trying again, allow only certain packets from observer.
Allow observer packets through, but only accept packets if you're the master and it's a ping packet.
Temporary 1.4X7 multiplayer protocol.
Whoops, bug fix.
Various fixes with ship status.
The Observatory Season 8.
Fix mouse issues on automap. This fixes CDarrow/DXX-Retro#99.
Fix various bugs.
Remove streamers who have left the Discord server.
(2 total commits) Media Player