RSSAmplifier

Blog

chris' random ramblings

programming, photography, media, and anything else that strikes my fancy

atlee.caRSS feed ↗10 posts

Latest posts

CO2 Monitoring with ESPHome

Help! My Head Hurts and My Nose is Burning: A CO2 Wake-Up Call 😵💨 For the past few years, I've been working from my small home office. This winter has been colder than usual, so I've been keeping the windows closed with little thought to the air around me. But then I started noticing a pattern — by the afternoon, headaches would creep in, and sometimes, upon reentering my office, I’d be hit with…

Advent of Code - 2024

Advent of Code 2024 in Zig This year, I decided to make things interesting and tackle Advent of Code using Zig . Zig is a low-level systems language that aims to be simple, predictable, and efficient. Coming from a Ruby, Python, and Rust background, diving into Zig was a mix of fun, frustration, and some unexpected insights. What I Liked Iteration Feels Good 🚀 Zig has a few neat iteration…

Packing bits with Rust & Ruby

The missing C of CHD Packing seeds Bridging the gap between Rust & Ruby BitPacking gem The missing C of CHD One element of the CHD (compress-hash-displace) algorithm that I didn't implement in my previous post was the "compress" part. This algorithm generates an auxiliary table of seeds that are used to prevent hash collisions in the data set. These seeds need to be encoded somehow and transmitted…

Efficient Hash Lookups: Adventures with Benchmarks!

Efficient data retrieval is crucial for high performance applications. Whether you're configuring a complex system or handling large datasets, the speed of hash lookups can significantly impact performance. In this post, we'll explore various methods to optimize hash lookups and benchmark their performance. You can find my benchmarking code available here . The Challenge Awesome, what's the…

Extrakto!

One of my favourite tmux plugins is extrakto . It's this amazing little plugin that lets you insert text by fuzzy finding within the current tmux session. Why is this useful? Think of how often you copy/paste some line of text from the terminal in order to pass it into another command. For example, the output of git status , or perhaps your build or test failed and you want to open that file in…

Pull Diagnostic Support for Neovim

I've used vim as my primary text / code editing tool for...literally decades. A few years ago, I tried out neovim , hoping to take advantage of more advanced developer oriented features like treesitter and native LSP support. At Shopify , I do a lot of work in Ruby. Our incredible developer experience team maintain ruby-lsp , a language server for the Ruby language. Of course, I wanted to make…

Layoffs & Survivor's Guilt

Shopify just laid off approximately 20% of its staff. A lot of fantastic people were let go. (If you're hiring, let me know , I can put you in touch with some amazing engineers, managers, and designers!) For those of us left behind, there's a bit of a sense of "what now?", "why wasn't I laid off too?", or "why did X get laid off instead of me (or Y)?"" One of Shopify's values is: "Thrive on…

Rust learning resources

For the past 5 years to so, I've been telling myself that I want to learn rust . And for the past 4 years, I've finished the year doing little to no rust learning :( This year I've actually made some progress! I wanted to share some of the things that finally helped me get past the learning hump I was struggling with. Rustlings Rustlings is a great little project that you run locally. It presents…

Managing dotfiles with dotbot

We have an amazing development tool at Shopify called spin . Spin lets you create brand new cloud-based development environments in just a few seconds, right from your CLI. These environments are meant to be somewhat short-lived; I often spin one up just for the day to work on a PR, and then destroy it after my PR is merged. As a longtime vim and linux user, I want to make sure that all my…

Learning Ruby as an experienced Python developer

As I mentioned in my previous post , in my new role at Shopify, I've been doing backend development in Ruby. Previously I had been working nearly exclusively with Python for over ten years, so I was a bit nervous about the move. In addition to my regular work, I also tried to solve other types of problems using Ruby. Advent of code was a really great way to learn a new language. After nearly two…