Implementing the .NET Profiling API in Rust
August 10, 2020
Implementing the .NET Profiling API in Rust

The .NET Profiling API is a mechanism exposed by the .NET runtime which allows an external library to hook into certain events such as garbage collection, jit compilation, and assembly loading.

Read More
The Expression Problem in .NET
May 18, 2018
The Expression Problem in .NET

Background The expression problem is an ideal to strive towards in the design of programming languages. It is relevant when the data in your program can be represented as cases, with operations that operate on those cases. For example, say your data represents shapes....

Read More
7 Ways to Create Sequences in Python
May 12, 2018
7 Ways to Create Sequences in Python

A sequence in mathematics, is a collection (like a set) of mathematical objects where the order of the objects is significant, and duplicate members of the collection are allowed. In computer science, we represent sequences as arrays, lists, streams, and a variety of other data structures. Creating sequences and operations on already existing sequences is at the core of many software applications.

Read More
Fun Tricks with Mono.Cecil in F#
May 5, 2018
Fun Tricks with Mono.Cecil in F#

Static code analysis is the process of investigating the structure of a program without actually executing it (as opposed to things that happen at runtime like reflection, logging, running unit tests, or debugging). In this post, we'll be investigating interesting ways to leverage the Mono.Cecil library to analyze .NET projects.

Read More
Getting Started with the Hugo Static Site Generator
February 24, 2018
Getting Started with the Hugo Static Site Generator

In this post, I will document the process of creating this blog. My primary motivation for creating a blog is to document new topics as I learn them. In the past, I've spent hours exploring a framework or writing a proof of concept to satisfy my curiosity, but these efforts weren't documented anywhere. As a result they have been lost to the sands of time, locked into hard drives that have long since been recycled and disposed of.

Read More