• Home
  • Archive
  • About
  • 2020-12-29: Writing a Secure Systemd Service with Sandboxing and Dynamic Users
  • 2020-11-09: A Quick Tour of Trade-offs Embedding Data in Rust
  • 2020-11-02: Designing a Decaying Leaderboard with Redis
  • 2020-10-05: Results of Authoring a JS Library with Rust and Wasm
  • 2020-08-20: Migrating a 160k Word Jekyll Blog to Hugo
  • 2020-08-16: Backblaze B2 as a Cheaper Alternative to Github's Git LFS
  • 2020-07-17: My Bet on Rust has been Vindicated
  • 2020-07-13: Reasons to Migrate away from Gatsby
  • 2020-04-04: Opinionated Guide for Web Development with Rust Web Workers
  • 2020-02-19: Parsing Performance Improvement with Tapes and Spatial Locality
  • 2019-07-03: Monitoring Remote Sites with Traefik and Prometheus
  • 2019-05-07: Downsampling Timescale Data with Continuous Aggregations
  • 2019-03-03: SQLite: Dropping an index for a 300x speedup
  • 2019-02-28: Azure Pipelines for Rust Projects
  • 2019-01-27: Guidelines on Benchmarking and Rust
  • 2018-12-15: Quick investment advice for the smart and lazy
  • 2018-10-14: Leaning on Algo to route Docker traffic through Wireguard
  • 2018-09-11: Exploring TimescaleDB as a replacement for Graphite
  • 2018-09-04: Hashing strings bytewise in C#
  • 2018-08-11: IPv6 only networking not viable in 2018
  • 2018-07-24: Satisfying NAS share and backup solution
  • 2018-05-21: Migrating to Actix Web from Rocket for Stability
  • 2018-05-03: Viewing WireGuard Traffic with Tcpdump
  • 2018-04-19: Lessons learned: ZFS, databases, and backups
  • 2018-03-29: Routing Select Docker Containers through Wireguard VPN
  • 2018-02-23: Integrating Kotlin with a Dropwizard App
  • 2018-02-04: Dropwizard 1.3 Upcoming TLS Improvements
  • 2018-01-15: Fighting Instability and Rust
  • 2017-11-21: Replacing Elasticsearch with Rust and SQLite
  • 2017-10-22: Back to the Register: Distilling the Federal Register for All
  • 2017-09-12: WireGuard VPN Walkthrough
  • 2017-08-23: Robust systemd Script to Store Pi-hole Metrics in Graphite
  • 2017-08-14: Building a Home Server
  • 2017-07-24: Investigation into the Inefficiencies of Node.js Http Streams
  • 2017-07-19: Writing a high performance TLS terminating proxy in Rust
  • 2017-06-10: Creating a parallel AMP site with Jekyll
  • 2017-05-22: Introduction to Journald and Structured Logging
  • 2017-04-26: Migrating to the new NET SDK MSBuild Project Files
  • 2017-03-26: The Difficulty of Performance Evaluation of HikariCP in Dropwizard
  • 2017-03-06: First Impressions of the Google Pixel
  • 2017-02-04: The Last Hooray, Bye Windows Phone
  • 2017-01-22: The Cost of TLS in Java and Solutions
  • 2016-12-29: Exporting Open Hardware Data into Graphite
  • 2016-12-27: Monitoring Windows system metrics with Grafana
  • 2016-12-18: Exploring Data: Michigan Traffic Accidents
  • 2016-11-19: Another Year, Another Site Refresh
  • 2016-11-14: Waning F#
  • 2016-11-09: Dropwizard 1.1 and Let's Encrypt with no Downtime
  • 2016-10-22: Dropwizard Multipart Form Quickstart
  • 2016-09-14: Boxcars: an Example Rocket League Replay Parser Using Rust and Nom
  • 2016-09-07: Know Thy Threadpool: A Worked Example with Dropwizard
  • 2016-09-01: Dropwizard 1.0 TLS Checklist
  • 2016-07-16: Fun with Pfarah: a Paradox Clausewitz Parser
  • 2016-06-14: ISO 8601 and Nanosecond Precision Across Languages
  • 2016-06-01: Visualizing Ann Arbor Incidents
  • 2016-05-15: Introduction to IMAP
  • 2016-04-23: Initial Impressions of a Website with Modern Build Tools
  • 2016-03-12: A Java Result Algebraic Data Type Worth Using
  • 2016-02-23: Turning Dropwizard Performance up to Eleven
  • 2016-02-17: Federal Register Data Exploration with R
  • 2016-02-10: Modern Website over HTTP 2 and SSL with Nginx and Let's Encrypt
  • 2015-12-12: Trading Beauty for Performance: F# active patterns vs Nullable
  • 2015-10-20: Most Popular Electron UI Libraries
  • 2015-10-16: Disecting the Postgres Bulk Insert and Binary Format
  • 2015-09-15: XSLT 2.0 Processing in Postgres
  • 2015-08-09: Guide and Explanation for Metrics in Dropwizard
  • 2015-07-14: Processing arbitrary amount of data in Python
  • 2015-04-16: Getting Started with Dropwizard: Testing
  • 2015-04-05: F# and Data go Hand in hand
  • 2015-02-15: Writing a Dropwizard JSON App
  • 2014-12-31: Optimizing Innodb for Bulk Insert
  • 2014-12-17: Announcing EU4 Stats
  • 2014-09-08: Continuous Integration and Delpoyment with .NET/Mono
  • 2014-07-23: C#, Mono, Nuget, Nunit, T4, CI, Oh My!
  • 2014-07-18: C# and Threading: Explicit Synchronization isn't Always Needed
  • 2014-06-08: Await Async in C# and Why Synchrony is Here to Stay
  • 2014-04-25: Deathmark Postmortem: a Game Where Everyone Dies
  • 2014-03-22: Migrating from GoDaddy/IIS/WCF/C#/MySQL to DigitalOcean/Apache/Flask/Python/SQLite
  • 2014-02-07: Computer Game Development at Michigan: Zelda Postmortem
  • 2014-01-17: Computer Game Development at Michigan Week 2: Start of Unity
  • 2014-01-08: Computer Game Development at Michigan Week 1: Introduction
  • 2014-01-05: Linux Virtualization with a Mounted Windows Share on Client Hyper-V
  • 2013-12-31: A New Way In Writing Documents With Markdown and Pandoc
  • 2013-09-26: Software Engineering Interview Questions that Make an Impact
  • 2013-09-22: Distributing and Deploying a Linux Python Application
  • 2013-08-24: Design Dilemma: Configuration Files
  • 2013-07-25: On Résumés
  • 2013-07-06: Design Pattern Dilemma: A Localizable Object
  • 2013-06-16: High Performance Unsafe C# Code is a Lie Redux
  • 2013-06-08: The Two Extremes of a Startup and a Corporation
  • 2013-06-03: The Perfect Blogging Workflow
  • 2013-06-02: Premier of Perl and Stocks
  • 2013-05-30: Chicago Calls
  • 2013-04-14: The Legacy and Opportunity of 1.5 Million Lines of Code
  • 2013-02-22: Designing a REST API: Unix time vs ISO-8601
  • 2013-02-04: The Joys and Woes of a Forever Project
  • 2013-01-04: Adventures with WriteableBitmap and Bit Manipulation
  • 2012-12-30: Create a Simple Session Aware SSL Bottle Login
  • 2012-12-06: A Lesson in Algorithms and Data Structures: the Traveling Salesman
  • 2012-12-02: The Devils that are Unsigned Numbers
  • 2012-11-22: I Did Not Cheat
  • 2012-10-20: Woes of Linux Virtualization on Windows 8
  • 2012-10-09: C# Refactoring and Failure
  • 2012-09-05: C# For Loops and Iterators Uncovered
  • 2012-09-03: NBSoftSolutions Now Runs on Jekyll
  • 2012-09-02: ENGR151++: Google AI Challenge
  • 2012-08-25: High Performance Unsafe C# Code is a Lie
  • 2012-08-22: Optimizing Code and Why We Should All be Language Agnostic
  • 2012-08-22: Windows 8: Lesser of the Evil
  • 2012-08-21: All Beautiful Code Starts Ugly