I have worked on a fair number of projects, and here is an (incomplete) list.

DMOJ

The DMOJ is an online judge developed by me and Tudor. It is a distributed system with the capability of grading massive amounts of submissions simultaneously, as would be required by large programming contests. Some notable features include:

  • Support for IO-based, interactive, and signature-graded tasks.
  • Submission in over 50 programming languages.
  • Live submission status.
  • Powerful administration interface.
  • Secure and powerful sandbox, permitting full control over the user-submitted program.

For more details, see the GitHub project for the site and judging backend.

Smaller Projects

MusicKeyboard Preview
MusicKeyboard
Turns your computer keyboard into one for music. Easily play any song to your heart's content with any MIDI instrument.

The latest download is available on Jenkins (direct link).

More features include:

  • Full chording support in program, but due to the keyboard chording limitations, only 3 - 7 keys may be pressed simultaneously, so your milage may vary.
  • Multitouch with hardware support.
  • Recording music into a MIDI file.
  • Key signature changing.
  • Different keyboard layouts.
  • Using Windows's builtin beeping functionality when MIDI is unavailable.
2048 Preview
2048
My version of 2048 game, with multi-instance support, restored from an old high school project.

Installation

Run pip install 2048.

Run 2048 to play the game. Enjoy.

On Windows, you can run 2048w to run without the console window.

Resetting the game

If for some reason, the data files get corrupted or you want to clear the high score...

  • On Windows, delete C:\Users\<yourname>\AppData\Roaming\Quantum\2048.
  • On macOS, delete /Users/<yourname>/Library/Application Support/2048.
  • On Linux, delete /home/<yourname>/.local/share/2048.
Zalgo Preview
Zalgo
A Windows application converting your text to and from Zalgo, Greek, Cyrillic, between Unicode NFC and NFD, and X-SAMPA.

The latest download is available on Jenkins (direct link).

Features:

  • Zalgo encoding and decoding,
  • Customizable Zalgo level.
  • Control Unicode diacritics used.
  • Load and save potentially large Zalgo files directly.
  • Quick trascription between Latin, Cyrillic, and Greek.
  • Convert X-SAMPA into IPA.
  • Convert between Unicode normalization format C and D.
clickkeys preview
clickkeys
A tool to use keyboard buttons to click the mouse, for when your mouse button is broken.

Sometimes, your mouse button does not register when clicked, and sometimes it registers as multiple separate clicks. This can be annoying, but you may not be able to replace it right away. This program solves the issue.

The latest download is available on GitHub.

Features:

  • A press of the pause/break key is translated into a single instaneous click of the primary button (usually left).
    • This is helpful to click without stopping the mouse.
    • +Alt+Shift+M can be used to toggle this feature.
  • The context menu key press/release is directly translated into press/release of the primary mouse button.
    • This is helpful for dragging.
    • Alt+Shift+M can be used to toggle this feature.
  • Ctrl+Alt+Shift+M can be used to toggle this feature.