I have worked on a fair number of projects, and here is an (incomplete) list.
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.
Open Source Work
I am currently one of the developers for the Looking Glass project, a display solution for virtual machines with GPU passthrough. My work focuses on improving Wayland and Windows support.
I’ve contributed to many open source projects, the most significant of which include emscripten and LLVM. I’ve also made minor contributions to various other open source projects, addressing some of the bugs I ran into, but they are not significant enough to be listed here.
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.
pip install 2048.
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
On macOS, delete
On Linux, delete
- 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.
optimize-laterto time code for notification when it is too slow.
Content-Security-Policy(CSP) middleware for Django, allowing manipulation at every level.
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.
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.