A Hoverbear's Musings

Articles primarily relating to science and technology.

The Path to Rust on the Web

Recently there has been quite a bit of talk about WebAssembly, a new format for code for the web. It is a compile target for languages like C and Rust that enables us to write, and run, code from these languages in our browser. In the interest of learning more about this technology (and to avoid writing more Javascript) let’s explore together and get our hands dirty! Disclaimer: WebAssembly is stabilized, but most implementations are not. The information contained here may become out of date or be incorrect, despite working at the time of writing. Before we start please make...

Posted on , into Rust and Tutorials .

Setting up a Rust Development Environment

In this post we’ll be discussing one way to set up your machine for Rust development. There are different ways, particularly related to the text editor, so feel free to skip what is irrelevant to you. We’ll focus on: Setting up Rust via Rustup. Valuable tools like clippy and rustfmt. Configuring VS Code for Rust. Debugging with the command line and inside of VS Code. Using different compile targets. Everything we do should be functional on both Linux and MacOS, on Windows your mileage may vary. I, unfortunately, don’t have a Windows instance to test on. In order to finish...

Posted on , into Rust , Tutorials , and Tooling .

The Future with Futures

Recently there has been a lot of progress in the Rust language towards a robust asynchronous stack. In this article we’ll take a look at what these things are, take a tour of what’s available, play with some examples, and talk about how the pieces fit together. We’ll get started with the futures crate to start, move on to futures_cpupool, and then eventually to tokio. We will assume you have some knowledge of programming, and have at least thought about trying Rust before. What are Futures and Async? When writing code to do some action which may take some time,...

Posted on , into Rust and Tutorials .

Pretty State Machine Patterns in Rust

Lately I’ve been thinking a lot about the patterns and structures which we program with. It’s really wonderful to start exploring a project and see familiar patterns and styles which you’ve already used before. It makes it easier to understand the project, and empowers you to start working on the project faster. Sometimes you’re working on a new project and realize that you need to do something in the same way as you did in another project. This thing might not be a functionality or a library, it might not be something which you can encode into some clever macro...

Posted on , into Rust .

An HTTPS Terminator Box

Over the last couple days at asquera we’ve been on a retreat at the Landhaus Fredenwalde. It’s really beautiful out here and it’s given me a chance to work on a few small projects which I’ve been wanting to explore for awhile now. Anyways, yesterday I set up a system that uses Ansible, Let’s Encrypt, nginx, and DigitalOcean to terminate HTTP and proxy requests to arbitrary hosts. The intended use case for this is to have Github Pages sites able to be dropped onto a custom domain that is SSL enabled, but there are many other use cases which I...

Posted on , into Infrastructure and Tooling .

Winds of Change

Unlike most of this blog this post is not technical in the slightest, instead it’s a personal update. Though, I have been wanting to write this post for a long time now! Many things have happened in the last few months, and life is still swirling all around me. Many things seemed uncertain, other things still do. Irregardless, things are pretty darn cool. Anyways, here’s what’s happened lately. The First Degree I went Camosun College in late 2010, and transfered to the University of Victoria in 2012. As of June 2016, I’ve finished my program and recieved my degree! I’m...

Posted on , into Personal .

The Menagerie of Badssl

Late last year I was given an opporunity to participate in the Mozilla Winter of Security 2016! I’m happy to report it was, and still is, super cool. Plans diverted significantly at the very start of the project as it was discovered that the “menagerie” of certificates we wanted to build already existed. What joy! In order to avoid any “not-invented-here” syndrome problems we pivoted, like a failing startup, and I moved to become a contributor to BadSSL. One of my mentors, April King, happened to already be a contributor to BadSSL and helped me get acquainted with the repository...

Posted on , into UVic .

Site Redesign

I’ve begun redesigning my website with my own theme! With school finishing and new employment looming I decided to take the time to make my site truly my own. As a result I’ve rewritten all of the Jekyll liquid templates and styles myself and have been having a lot of fun learning how to use things like display: flexbox. I’m sure there will be bugs and people will have suggestions on how to improve things, please feel welcome to email me if you do.

Posted on .

Gathering Our Voices 2016

This year helped again with Gathering Our Voices. I worked in the same capacity as previous years and had a similarly great time. Rather than talking at length about events I’d rather share pictures. All of these photos were taken by my friend Geoff Howe. All images are wholly owned by the BCAAFC and you may not reproduce or use them in anything without their permission. Day 1 Day 2 Day 3 Day 4

Posted on , into BCAAFC .

Arch Linux on Docker Revisited

Back in 2014 when I was learning about Docker I got around to making a base image for Arch Linux. It was a really fun exploration and I got to know a lot more about how Docker worked from it. I’d highly suggest trying to make your own sometime! Docker has matured a lot since, and I’ve enjoyed following it. I took some time this last week to revisit my Arch Linux image and ensure it’s still functional. I wasn’t surprised when the scripts continued to work just fine, even after two years. With nothing broken, I knew I only...

Posted on , into Containers and Arch Linux .