I got a lot of positive feedback from my recent article on how I cut my webpack bundle size in half, and a common refrain was how folks found themselves in the same position as I did in terms of deciding to migrate off of
A handful of folks suggested date-fns as an alternative.
date-fns has a relatively clumsy name but offered excatly what I was looking for:
- Modularity and tree-shaking compatability.
- Use of native dates
- TypeScript support
So I decided to take the plunge and try migrating: the surface area of my use of moment wasn’t that large, so I hoped it would be relatively painless.
(Spoiler alert: it was.)
I bought them, you see, despite my better instincts.
I already had BlueTooth earphones that worked (albeit not well).
I already had a pair of Bose over-the-ears that are perfect for day-to-day work and for noisy situations, like planes and crowded coffeeshops.
And my army of EarPods (or, perhaps, EarPods knockoffs — I purchased five of them for like $50, with the understanding that I’d lose or break a pair every month or so) was still fine, though its ranks were slowly dwindling.
But I’d been seeing more and more AirPods in the wild, and decided to get a pair.
In the fall, a young man’s fancy lightly turns to thoughts of front-end performance.
When I initially built out Buttondown, I was focused on two aspects above all else:
- It being built quickly.
- It working reasonably well.
Notably excluded from that list is performance. Buttondown isn’t a slow app, but it is a heavy one: the bundle size while developing is measured in megabytes, and there’s a non-trivial loading time for first-time users.
Now that the core feature base has stabilized and nothing is particularly in an “on fire” state, I wanted to turn my eye towards maintenance work, and a big piece of that was seeing what I could do to shrink that bundle.
I hate to be in the position of defending Apple evangelists, but there have been a lot of weird takes about the Apple leaks the past few days. Here’s one:
I keep getting tweets patiently explaining that revealing the details of an Apple event ahead of time is exactly like spoiling Star Wars— Andrew Cunningham (@AndrewWrites) September 10, 2017
Which I guess is a compliment for Apple’s PR team - people view an extended ad for a $1,000 phone the same way they view commercial art— Andrew Cunningham (@AndrewWrites) September 10, 2017
I think the comparison between Star Wars and Apple products is particularly apt because, well, Star Wars isn’t “commercial art”: it’s a meticulously managed piece of intellectual property. It isn’t a singular artistic vision: its the culmination of hundreds of stakeholders, producers, focus testers, and marketers. So much so that the director of a Star Wars movie just got replaced, like a poorly-performing engineering manager:
This week, I turned 25.
I spent my birthday doing the thing I want to spend every birthday doing: I reverse seared a filet, bought a nice scotch, and watched an old movie with Molly.
We were going to watch Bridge on the River Kwoi but didn’t want to start a three-hour movie at eight pm, so we watched The African Queen.
We have become so old. It is fantastic.
Sometimes you procrastinate one feature by writing another. Even if that other feature is pretty small and inconsequential. 1
For me, that other feature — if you can even call it a feature — was password strength testing for Buttondown.
This is one of those things that I always liked on other sites, but didn’t really know how to implement myself!
I built a thing for Buttondown that lets you embed an iFrame to handle subscriptions really nicely:
Changelog entry coming shortly, but pretty pumped about this — embeddable subscription widgets! pic.twitter.com/uf2UjQILZt— Buttondown (@buttondownemail) August 6, 2017
This thing necessitated a change in the UI: The current share page was pretty gross (below), and this was going to make it grosser:
I’ve been programming for the better part of a decade, and I’ve been programming in Python for the better part of that better part.
As loathe as I am to assume the mantel of “X Engineer”, if I were to describe my career in relation to any technology it would be “Python Engineer”.
It is the language I feel most comfortable with; it is the language I reach to first when starting a new project; it is the language I write daily. It is as frictionless as English.
And yet I still find myself losing hours to things I thought I had mastered.
I had some misgivings with the post and the ideas it espoused — namely, that “bloat is bad” is a reductionist truism — but still admired the approach Sandofsky took and the clear tradeoffs and sacrifices he discussed.