How to Choose Mountain Bike Brake Pads

How to Choose Mountain Bike Brake Pads

Whether you think about them all the time or never at all – mountain bike brakes are what keep you alive on those gnarly descents. And while the whole braking system matters, I’m not going to talk about rotor sizes, 2-piston vs. 4-piston, or lever angle; I’m talking about the humble brake pad.

I had long considered brake pad choice a foregone decision – resin (organic) pads are king and metal pads (sintered) are for Huffy! But that’s not very well informed. You should choose brake pads based on how you like your brakes to feel when you slow down.

Read more →

My Math Confession

I did math for the first time when I was 29 years old. This isn’t a self-deprecating snipe or feigned humility. I did math for the first time when I was 29 years old. When I finally did it for the first time – at least, the first recorded time – I didn’t know it had happened. It was six years later reading Paul Lockhart’s excellent piece entitled, “A Mathematician’s Lament” that I realized what I’d done; I’d finally done math all those years ago. At the time I was pretty sure I was programming, or something close to it. It was one part statistics, one part algorithms, and one part math. I’m not even sure today what constitutes the whole of what I was doing, but those are without a doubt three of the parts. I was also pretty sure that I was doing something related to cancer. After all, I was doing what I was doing because I was getting paid for it. And I knew that the money came circuitously to me by way of the National Cancer Institute. And if there’s one thing I know about the NCI, I know that they care about fighting cancer. So I was probably doing something related to cancer, too.

Read more →

Configuring Sierra Wireless RV55 for IVPN

Configuring Sierra Wireless RV55 for IVPN

After figuring out a problem after hours of struggle, the simplicity of the result often belies the difficulty of the process. When I look at the final configuration that I came up with in ACEManager, everything looks simple and obvious, but the process was far from it. That’s the case nearly every time I configure a new feature on my Sierra Wireless RV55 LTE router. This device is not made for consumers. It’s built for ambulances, traffic lights, Greyhound buses, remote gas pipelines, and their ilk. Not bozos like myself boondocking in their RVs. Lucky for me, I know my way around this thing pretty well now.

Read more →

My Wireless Internet Setup

My Wireless Internet Setup

If you’re reading this, you’re probably familiar with the fact that I’m permanently roaming, and I’d be foolish not to acknowledge the importance of my wireless setup in making that possible. Getting – and staying – connected while permanently roaming is nothing like paying the local cable cabal to get your house or apartment connected.

Remember the last show you binged on Netflix over the weekend? That consumed 20x most mobile users’ monthly data allotment, but you never had to think about data because when you’re wired you generally don’t pay for consumption. How many hours of video conferencing do you do every day? That’ll be ~1GB/hr, please.

Read more →

Farewell Estes Park

Farewell Estes Park

This is less about saying farewell to Estes Park than it is about a ride I’ve been eyeing for over five years. Not only did I have the wrong bike when I was here in September, 2015, but I learned that this route existed the day after I finished an out-and-back run of Trail Ridge Road on my old Giant roady. TRR is the downhill paved segment of today’s route.

Read more →

Roaming

Roaming

Where am I?

I’ve been wanting to write about what I’ve been up to the past couple of months and keep putting it off because I convinced myself that I need to write a long and protracted post about why I’m living in a travel trailer. Oh yeah, I live in a travel trailer now. But I don’t think I’ll delve into why I felt compelled to leave NYC and become trailerfolk because it’s really not that profound or interesting. Before anyone asks – it had nothing to do with COVID-19. In fact, this has been my plan for well over a year.

Read more →

How to Use Linode Object Storage as a Terraform Backend

This is mostly a note to my future self since I couldn’t find any documentation on using Terraform with Linode Object Storage as a Terraform state backend. With that said, I hope to save other intrepid Linode users some time if they’re lucky enough to come across this post. While I’ve explained the problem in terms of Linode, the solution here applies to any non-S3 object store compatible with the S3 API. Swap in the appropriate endpoint for your provider.

Read more →

di-tui terminal UI player for di.fm

Hey all, just a quick post about di-tui, my new di.fm terminal UI player. I’ve been playing hours of music with this player over the past two weeks and have to say that I really love it and am proud of its ease of use and simplicity.

Most people who know me know that I work almost exclusively in the terminal: tmux, mutt, slack-term, vim, and now di-tui and many more. Now I finally have great music in the terminal!

Read more →

Don’t be Dangerous

Don't be Dangerous

Shipping production software requires a lot of housekeeping; so much so that many developers mentally block out just how much time a day they spend endlessly shepherding their work through the release lifecycle. Does the pull request have merge conflicts? Are tests passing? Is the linter happy? Is some other automated check failing?

Most of these failures require intervention; whether it’s a finicky spec failing in a test suite or something more serious like a merge conflict. Intervening on behalf of multiple in-flight features, at a certain point, is a full time job. I set out a long time ago (maybe more on that in another post) to fix one of these problems because of the unappreciated amount of risk it poses to releasing software: merge conflicts.

Read more →

JWTs Are Not the Enemy

JWTs Are Not the Enemy

I finally felt compelled to write this after reading a little tidbit from a blog posted on Hacker News containing this perennial piece of technoFUD

One of the downsides with JWTs is that banning users or adding/removing roles is a little harder if you need the action to be immediate.

Since the token is stored client side, there is no way to directly invalidate the token even if you mark the user as disabled in your database. Rather, you must wait until it expires.

Read more →