Erik McClure

Rust Async Makes Me Want To Gouge My Eyes Out
One of the most fundamental problems with Rust is the design of Result. It is a lightweight, standardized error return value, similar to C-style error codes but implemented at a type system level that can contain arbitrary information. They are easy to use and very useful, and the ecosystem encourages you to use them over panic! whenever possible. Unfortunately, this ends up creating a problem. Result is not like a C++ exception because it doesn’t contain a stacktrace by default, nor does the compiler have any idea where it was first constructed, unless the error type it contains decides to include that information upon construction by using backtrace.

This is a compilation album consisting of remastered older songs, some of which were never released, plus one original song written for the album.

Buy it on Bandcamp for $4, or $6 on Apple Music, Amazon, and other stores. The album is also available on Spotify, Deezer, other online radios, and can be previewed on YouTube or Newgrounds.

This album is a 6 year journey of musical development, as I attempted to move towards a hybrid orchestral sound and weave traditional instrumentation through digital synths.

Buy it on Bandcamp for $8, or $10 on Apple Music, Amazon, and Google Play. The album is also available on Spotify, Deezer, other online radios, and can be previewed on YouTube or Newgrounds.

An AOT (ahead-of-time) compiler for WebAssembly that creates C compatible binaries, either as sandboxed plugins you can dynamically load, or as stand-alone executables that interface directly with the operating system. This allows webassembly modules to participate in C linking and the build process, either statically, dynamically, or with access to the host operating system.

A highly modular game engine built around a Entity Component System, using ordered systems and optimized component arrays. Comes with built-in support for PlaneShader, Box2D, LuaJIT, and TinyOAL, but can easily be extended to unify any set of technologies needed.

An adaptive, hybrid 2D graphics engine with automatic batch rendering. Currently only supports DirectX on Windows, but can be extended to different graphics APIs and platforms in the future. Allows 2D games to integrate simple 3D effects, and allows implementing a fully gamma-correct 2D lighting pipeline.

An anti-spam bot for Discord used by over 1000 servers spanning nearly a quarter of a million users. Primarily designed to detect and neutralize raids or trolling attempts, and to augment discord’s existing moderation tools. Many users joining at the same time will trigger a lockdown to help immunize the chat against raids. Patreon supporters also have access to a chat log that allows moderators to track deleted messages.

4 years in the making, Aurora Theory is a compilation of all the songs I managed to make while attending university. The earlier songs were extensively improved, and all songs were remastered for the album’s release.

Buy it on Bandcamp for $7, or $10 on iTunes, Amazon, and Google Play. The album is also available on Spotify, last.fm, other online radios, and can be previewed on YouTube.

The Bunny Utility Library is a collection of miscellaneous utility code and algorithm implementations in modern C++20.