These are the articles about the Rust programming language, or things that I've written in Rust.
The Localhost Podcast CLI Tool
I use a podcast player to queue up media from my computer to watch on my phone. I've recently written a new CLI tool to streamline my process.
Leveling Up Your Git Server - Sharing Repos with a Friend
In this article, I continue from my previous article about setting up your own Git server. Specifically, this article shows how you can support multiple users and shared repositories using Linux groups and file permissions. Finally, I show how you can use Shackle Shell to make the server a bit more secure and a bit easier to use.
My Current Pick of Rust Performance Optimization Tools
I've recently been working on some Rust code that I'd like to be rather efficient. Along the path of optimizing, I've come across some tools that make things much easier.
The Newtype Pattern in Rust
Programming design patterns are patterns that come up in a variety of different situations while programming. In this article I discuss the Newtype design pattern. Specifically, I discuss it in the context of the Rust programming language, and how to solve some of the problems that arise when using the Newtype pattern in Rust.
A Fancy New Website Redesign
I've done a redesign on this website. It has a new fancy stylesheet, a new fancy static site generator, and a new fancy URL scheme. In this article, I talk about what's new. I tried to make this transition seamless for RSS readers, but it's hard to know exactly how all readers will respond. If you subscribe to this site using RSS, and have just been notified about the whole site being new, I'm sorry.
Advent of Code: Expressing yourself
Every year, I participate in the Advent of Code programming advent calendar. This year, I set myself the challenge to complete the puzzles using only pure expressions in Rust. In this article, I share some of the techniques I used and how it worked out.
Rust Iterators
In my opinion, iterators are one of the most powerful tools you can add to your toolbelt as a programmer. I've met many programmers who struggled to understand the various iterator functions and how to use them. In this article, I explore a number of iterator functions available in Rust's standard library, and explain them by giving an example of how you would get the same effect using for loops.
Implementing a Bitwise Simulation
This is part three in a three part series where I discuss how I did performance optimization on a Rust applilcation I developed: a submission to a programming competition called the Entelect Challenge. In this article, I introduce the various bitwise operations, and demonstrate how I composed them together to implement all of the game rules.
Compile Time Feature Flags in Rust
Feature flags are a usefull tool in software engineering. However, when you're working on high performance systems, you might be worried about the runtime cost of your software supporting multiple ways of doing things. In this article, I demonstrate how the Rust programming language allows you to specify feature flags at compile time which have zero runtime cost.
Property Based Testing
Property based testing is a useful technique for testing software. In this article, I discuss property based testing, and show an example of how I used a property based testing approach when competing in the Entelect Challenge.
Going Four Times Faster using Multi-Threading
This is part two in a three part series where I discuss how I did performance optimization on a Rust applilcation I developed: a submission to a programming competition called the Entelect Challenge. In this article, I show how I used Rayon to make an embarrasingly parallel program I'd written in Rust multithreaded.
Performance Tuning in Rust using Benchmarking and Perf
This is part one in a three part series where I discuss how I did performance optimization on a Rust applilcation I developed: a submission to a programming competition called the Entelect Challenge. In this article, I talk about measuring your current performance so that you know when you're moving in the right direction, and using Perf in Linux to find the parts of your code that you need to focus on.
Coding for the Win
I recently competed in the Entelect Challenge annual programming competition. This is my story about how it went, and what I found worked well for me in the competition.
WebAssembly
In this article, I explore the opportunity that WebAssembly brings to bridge the gap between native desktop applications and web applications.
Writing an Entelect Challenge bot in Rust
Each year, Entelect hosts a programming competition called the Entelect Challenge. They have graciously offered to support any programming language if someone provides a "starter bot" in that language. This article is a starter bot in Rust, written as a literate program.
Monte Carlo Simulations
Monte Carlo simulations are a class of algorithms that use probability and randomness to solve problems. In this article, I discuss what Monte Carlo simulations are and how to use them.
What's a WASM?
What is WebAssembly? How do you compile your Rust code to WebAssembly? Once you have some WebAssembly functions, how do you use them from JavaScript? This article aims to answer those questions.
Why functional programmers should care about Rust
In this article, I present an argument for why people who are passionate about functional programming should consider learning the Rust programming language.
Multi-platform Rust and Emscripten-Specific Functions
When you're writing Rust code that targets multiple platforms, like both desktop and the web, not all of your code will work on all platforms. This article will show how you can write platform-specific code alongside your platform-independent code.
Writing Git Hooks using Rust
Git hooks are a method of triggering scripts automatically while using the Git version control system. All of the examples of hooks that are bundled with Git are shell scripts, but they don't have to be! In this article, I'll show how you can write your Git hooks in the Rust programming language.
Rusty Microphone
In this article, I show off a program that I wrote to give myself real time feedback on my intonation while playing the trumpet.
A Rusty Tale of Shared Memories and Passed Messages Part 2: Pointers to Shared Memory
Writing multithreaded code can be challenging. Luckily, the Rust programming language aims to make it easier by baking information about multithreading directly into the language's type system. This post explores the second way that you can have multiple threads communicate with each other in Rust: pointers to shared memory, with concurrent access protected with a lock.
A Rusty Tale of Shared Memories and Passed Messages Part 1: Channels
Writing multithreaded code can be challenging. Luckily, the Rust programming language aims to make it easier by baking information about multithreading directly into the language's type system. This post explores the first way that you can have multiple threads communicate with each other in Rust: message passing using channels.
Updated Thoughts on using GTK in Rust
A few months back, I started using GTK inside a Rust project I was working on. At the time, I wrote a post about how I was making it all fit together. Some of my opinions have changed a bit since I started, and I'd like to give an update.
What Note Is This? Part 2: Taking a signal from a microphone, and making sense of it musically
I'm currently working on a project to help me to improve my trumpet playing by giving me real-time feedback on pitch. This is the second post in a two part series, where I discuss how I process the sound from the microphone to determine its musical pitch.
What Note Is This? Part 1: What is sound, and how do I use it in a program?
I'm currently working on a project to help me to improve my trumpet playing by giving me real-time feedback on pitch. This is the first post in a two part series, where I discuss what sound is, and how you can get it into your computer.
Aliasing Traits in Rust
In my article on programming with generic types in Rust, I found that some of the type declarations got pretty long and repetitive. In this article, I show how you can alias a collection of traits together into one trait.
What's in a Generic Number Type?
I've been working on a small signal processing library as a learning exercise. As part of doing this, I've been exploring using generic types in Rust. This article is my notes on that exploration.
My first GUI with GTK and Rust
I've recently started using GTK from Rust. I'm new to this, and here are some of the patterns that I've found so far to stick things together.
All about Rust: The programming language, not the game
In this post, I introduct the Rust programming language and some particular problems that it solves.