November 10, 2022
Did you recently update to Firefox (or Librewolf) 106?
Do you use Tree Style Tabs, and hide the normal tab bar?
Did you notice an inverted caret (
ˇ) that restored the height pixels of the hidden tab bar?
(alt text for this caret labels it "list all tabs")
Did it annoy you that you can't remove that button, even in the "customize toolbar" view?
October 21, 2022
This website features blog posts with many images -- often more than 20 per post!
Meg and I take a lot of these pictures on bike trips. Frequently with a fancy mirrorless Sony camera. They can be pretty large. But they're also frequently very pretty. Neither of us wants to shrink the images into oblivion.
I used to host those chonky images directly in my Jekyll blog, via the
Eventually my site's GitHub repo ballooned to over a gigabyte in size. I know you shouldn't host blobs in source control, but... GitHub doesn't seem to care if your repo is a little big. And it's the cheapest blob storage out there, at a grand total of $0 for a half decade of usage.
But all good things must come to an end, and I started to get worried about the long-term scalability of my blog. Deployments for GitHub pages, which I use to host my site, crept above 10 minutes.
Even worse, I knew my pages weren't respectful of user data connections. Opening one of my blog posts with 20+ images in it resulted in a 200MB download. That's $2 on my Google Fi metered data plan! For one page!
So I decided to solve the problem. I attacked it from multiple angles:
September 13, 2022
I originally wrote this post a short time into my first tech writing job on MongoDB's Server Docs team. I never ended up sharing it because, for a while, I wasn't sure if I would end up staying in the docs world or switching back into software development.
Less than a month ago, I got a new job running documentation at Gradle. My experience as a Developer Educator for MongoDB Realm Docs convinced me that documentation can scratch all of my developer itches -- building automation, infrastructure, and writing tutorials and code snippets.
I've added some thoughts at the end of the post and tightened up some language. But this post largely reflects my thoughts on working as a documentarian very early in my transition from software development. If you're currently pursuing a computer science degree, or attending a coding boot camp, or working as a developer, and it's not completely satisfying... maybe this will help.
September 12, 2022
Over the past few years, I've slowly tried to reduce my dependence on big tech. I know this is popular in some circles right now, and I've made all the standard moves:
But why did I do this? Not (just) because I love to chase the latest technocrat trends. Honestly it's mostly because I hate feeling dirty when I use these services:
When I used Spotify, I was constantly frustrated by regressions and podcasts shoved in my face (despite the fact that I cannot stand Spotify's approach to podcasts, where they buy up exclusive distribution rights to a family of podcasts and turn them into... Spodcasts, which aren't really podcasts because they aren't distributed the way all other podcasts circulate: RSS). And their offline playback support is laughable.
Google services constantly misbehave when you use Firefox or Librewolf, my browsers of choice.
Newsletters constantly send spam mail, and are often much harder to fully unsubscribe from than an RSS feed.
iOS still doesn't support ad blocking anywhere near the level of uBlock Origin, or allow me to use real add-ons in a browser... prompting me to find alternative methods to block ads on my phone.
And every tech company I've ever bought any product from seems to abuse dark patterns to manipulate users out the wazoo. All in the name of getting you to buy one more thing, or look at one more not-really-notification. Weak.
This post talks about how I freed myself from a myriad of big tech services, all with the support of a small investment in hardware, electricity, and personal time. I call my open source confederation of services Natopia, because, well, narcissism.
NOTE: Literally all of this is a work in progress. Open source projects continually develop. Standards change. This all works right now, but there are many pieces I'd like to improve. Expect updates to this page over time.
September 11, 2022
Recently I made the mistake of attempting to log in to my Spectrum account. As a conscious human being with not-so-fond memories of Time Warner Cable, I'm aware that using Spectrum for internet is a fool's errand. But I have no choice in the small New England town that I now live in. Thanks, FCC.
January 28, 2022
This post explains how to make a bootable USB drive for installing Linux, macOS, Windows, or... whatever else you want. From macOS. Using the command line, mostly. And unlike every other article on the internet that explains this concept on the internet, it's not blogspam, it's not filled with ads, and it's not written in broken English or with so much fluff you give up halfway through.
December 11, 2020
Lately I've been doing a lot of work in a relatively new programming language: Kotlin. From my experience, I've concluded that Kotlin is pretty rad. If you've considered learning Kotlin, or just using it in a personal project, this post might help you with your decision. Below, I hope I'll (attempt) to tell you a little bit about my experience with Kotlin, and describe what I liked about Kotlin and what I didn't like.
November 30, 2020
When I originally created this site, I had no clue what I was doing. Some friends told me I should think about creating a personal website, and I thought it would be fun to write a few blog posts. So I threw together a few basic styles with GitHub's static site generator, broke Jekyll a few times, and eventually figured out how to get things working!
March 14, 2018
I have now spent about five months with a work-supplied Macbook Pro 2017, complete with discrete GPU and the infamous TouchBar.
So far, my experience has been... well, I'll get to that eventually.
January 24, 2018
Last week, I read Michael Lewis' Flash Boys. I was unimpressed. I had quite a few complaints, all of which you can read about in my post from last week. If you're looking for a summary, however, it boils down to this: Flash Boys was bad enough that I decided to read a book that is literally just a rebuttal to Flash Boys from the perspective of a former high frequency trader -- one of the many that Michael Lewis didn't bother to interview for his book.
January 18, 2018
Just last week, I finished reading Flash Boys, written by Michael Lewis. This book can be summarized pretty easily by a single statement: "High Frequency Trading".
January 03, 2018
It is now 2018, and I've been thinking about what I intend to accomplish this year. I've never been one to embrace New Years resolutions or anything like that, but I do appreciate the value of outlining some goals for the year, however inconsequential.
December 18, 2017
I'm an adult now -- at least, that's what they tell me. I've been working as a ssoftware developer here at Bloomberg for almost 6 months now - I started June 19th, so it's actually 5 months 29 days today. Since it's the end of the day and programmers start counting at zero, let's just call it 6 months and be done with it.
February 25, 2017
Since I created this site, I've received many questions about the name. As a result, I've created this blog post to try to address the issue. In short, the name of this site stems from Alonzo Church's Lambda Calculus. Lambda Calculus was a highly influential mode of computation invented in the 1930s that eventually influenced a great deal of programming. This is most obvious in the form of the Lisp family of languages, where lambda functions have been present from day one, and where the very structure of code is based off of lambda calculus. However, the Lambda Calculus has now managed to seep into other programming styles-- most famously, C++ and Java have variants of lambda functions.