Alex

Alexander Barry

Software Developer in the D.C. area.


This is alexanderbarry.dev, a website for (mostly) development-related topics.

Eventually I plan on a blog, but for now, here are some of my projects.


gitlab.com/ambarry

github.com/coconaut




Projects

Whom Mail Service

View Code on Gitlab

An SMTP server with STARTTLS extension, DKIM signing (and all the canonicalization fun), and SPF verification.

This is a project I started writing from scratch in Go, the bulk of it during some time off last December.

Currently, I am working on implementing MIME messages, an attachment system, and finishing the SPF testing and DKIM checking.

Implements RFCs 5321 (SMTP), 6376 (DKIM), 7208 (SPF), and partially 2045-2049 (MIME), aiming for eventual full compliance.

There are two storage implementations at the moment, a rudimentary file system store for testing, and the buddings of a Cassandra interface.

Sonar Game Engine

View Code on Gitlab

A 2D Game Engine written in Go.

This game engine runs off a custom ECS (entity-component-system) implementation.

Systems and components are loaded entirely from JSON documents, and new systems and components can be registered in the factory system to load in a similar fashion.

It uses OpenGL for rendering and takes advantage of instance batching to draw sprites.

An OpenAL audio interface provides sound.

Includes movement prediction and frame interpolation system for server-authoritative gameplay.

Parses and loads Tiled tilemaps for easily laying out scenes.

Includes sprite animation system and font atlas library using freetype, the latter of which involved some good fun with fixed point numbers.

Ocra Game Network

View Code on Gitlab

A UDP game server / orchestrator with simple matchmaking and room joining. Whale-themed for fun.

Maintains UDP "sessions" with handshake challenge protocol and reliable, ordered messaging ack system as described by the popular gaming blog Gaffer on Games.

Allows for server-authoritative multiplayer gameplay.

alexanderbarry.dev (this site)

View Code on Gitlab

This very basic website, with all the aesthetic sensibilities of a true programmer.

This site runs on a simple Go http server. It uses Let's Encrypt for the TLS certificate.

The site is built into a Docker container for easy deployment.

The container is run automatically as a Linux service.

Atlas Compiler

View Code on Gitlab

A compiler front-end, or the makings of one, written in C++.

Includes custom grammar in BNF and hand-coded recursive descent lexer / parser.

Yowo (Your World)

View Code on Gitlab

Yowo - a prototype, location-and-time-based social media platform, written in Elixir.

Uses a pub-sub pattern with actors and supervisors to manage state. The server takes advantage of the Elixir / Erlang actor system to allow many simultaneous TCP connections and the ability to easily distribute resources among a cluster of nodes.

Events are broadcast to subscribers.

Data is stored in the Mnesia database, with some queries written in Erlang.

Yowo Android

View Code on Gitlab

An Android app for Yowo, written in Java.

Connects to Yowo servers to send and receive events.

Displays Yowo events on a Map activity.

Maintains local SQLite database of events.

Serializes Java types into ETF (Erlang external term format) for interop with Yowo Elixir servers using ByteBuffers.