2,625 tweets, and 5,086 including replies.
2021
April
- Wrote this one a few months back, but forgot to post it here.Stay optimistic about companies and technologies, but apply healthy skepticism as well — in almost every case, people (very unsurprisingly) leave out the bad stuff.twitter.com/komlasapaty/st…
- Inspired move by Patagonia — no more customized products with corporate logos because products with logos are more likely to end up in landfills.
Companies should embrace this and keep going Patagonia for swag. Brand T-shirts if you have to.patagonia.com/transitioning-…- Just wanted to drop a blanket "thank you" for all the nice comments/messages/likes about my note yesterday. I expected a trickle of encouraging responses, and got a tsunami instead. You people are incredible.
- Recently I had the hard realization that I've spent more years as a Mongo user than as a Postgres one, so I'm changing that this month. Excited to be joining the engineering team at @crunchydata.
A few more words on that: brandur.org/fragments/crun…- Sent 023 this morning on downward assignment, the evolution of properties in C#, and Japanese city pop.
brandur.org/nanoglyphs/023…- TIL: The “Re” we use in subject lines for email replies is a latin phrase abbreviated from “in re” (“in the matter of”). Hah, I always thought it was short for “reply”.
There’s an RFC of course:tools.ietf.org/html/rfc5322#s…- Every time I wake up early enough to go see the sun rise, then walk around to listen to the early morning sounds of nature, I realize that it's completely unreasonable that I don't do this every single morning.
- Reminder that it's worth glancing at the AWS bill every once in a while, even if it's not enormous.
The s-m-r-t idea of always invalidating all index pages in CloudFront on every build cost $8 of a total ~$13 bill last month.github.com/brandur/sorg/c…- Luckily a joke, but it got me. Right in line with Ruby's design principles (succinctly: "include _everything_").
March
- Complained to @keiko713 about the kanji for the word "carrot" — 人参, which makes it "person" + "participate" (?!?!). Was sent this image as a memory aid.(Source: twitter.com/buromasa0423/s…)
- I like the abstract romantic idea of a monorepo as much as the next person, but once one is so big that Git (one of the fastest and best-optimized programs every written) doesn’t really work anymore, the monorepo is too mono.
- Stats from Canadian real estate.
Turns out, super inflationary policy has ramifications. $X,000 in free money today, but $X00,000 more needed to own a home tomorrow. Most Canadians are homeowners and profiting, but think of the children, seriously.creastats.crea.ca/en-CA/- Last Nanoglyph — wrote about how, unsurprisingly, IDEs are a good idea, and how they make writing **even Java** (!!) pretty fun.
Title for next week: "Time and Entropy".brandur.org/nanoglyphs/021…- Impressive video on electric buses in Shenzhen. Imagine buses going from the loudest vehicles on the street to the quietest.
We’ve all internalized that big infrastructure upgrades are impossible, but remember some places in the world still make them.February
- Can’t believe I agree with Facebook on anything, but this is the right move. Big tech isn't good, but legislative overreach and insider graft is worse.Good for society too. Given the quality of today’s news, we’d all do well to consume less of it.about.fb.com/news/2021/02/c…
- Excellent: Go 1.16 finally supports slurping up static files into binaries. 3rd party packages and extra build steps no longer required.
(Like Go, and this is good, but can’t give them _too_ much credit because it should’ve happened >5 years ago.)golang.org/pkg/embed/- Wrote a piece on ditching Google Analytics to run analytics over logs, like it’s 1999 (except now with hosted Presto, etc. bootable in seconds from the cloud ;).
I also estimate how inaccurate hosted analytics are due to adblocked scripts. Answer: very.brandur.org/minimal-analyt…- And worth noting it'll deduplicate too!
twitter.com/starsandrobots…- Periodic reminder that Vim has a built-in `:sort` command that works for an entire file and all the usual selections. Not something you need every day, but the days when you do, it's a _huge_ time saver.
thoughtbot.com/blog/sort-line…- RT @jkspn: As @NotionHQ had a meltdown earlier today, I am reminded of this wonderful read by @brandur on local-first software
The convenience of online apps like Notion, @Figma, @Webflow, etc. can’t be overstated. But ultimately they depen on your connection.brandur.org/nanoglyphs/014…- Some nice people have bumped me on Twitter recently, so I'll take the opportunity for some self promotion —
You might enjoy my newsletter, _Nanoglyph_. It's like a Substack, but from the old school. I'll be shipping a new edition in the next day or two.nanoglyph-signup.brandur.org- RT @thesephist: Since I found it 3 years, ago, @brandur's blog has stayed the best designed blog I've ever seen (obviously, a subjective take). So clean, minimal, without being generic. And lots of attention to detail everywhere.
It was a big inspiration for t.co/K3osrFdbV4's design.- As much as I dislike trading firms and financial institutions, for the sake of my own sanity, I for one am glad that GME didn’t become another Bitcoin — expensive because people say it’s expensive, not because it can it can be used for anything or has any inherent worth.
January
- A little architectural inspiration: amazing house built underground, into the side of of a hill. Concrete and steel everything.Come on billionaires, more Bond villain lairs like this please. Someone needs to do the volcano thing ("You Only Live twice").design-milk.com/a-cave-like-ho…
- RT @adamludwin: An average GameStop by this summer
- Excellent take on social media.
Twitter leaders—with politicians and reporters being the worst offenders—tweet what plays best, and what plays best are divisive semi-truths and reductive caricatures of opponents. We just can’t help ourselves.twitter.com/micsolana/stat…- Programming in Java for a few hours sure makes you appreciate C#.
Java's like an alternate reality where all the nice quality of life features (properties, property init from constructor, option parameters, tuples, etc.) just never happened.At least it finally got closures.- This is pretty niche, but I wrote Go API bindings for WaniKani.
github.com/brandur/wanika…Integrated the good parts of stripe-go, and left out the bad (global state, Java-esque iterators).WaniKani is a microcosm of good API design. More details: brandur.org/fragments/wani…- For fun and (not so much) profit, cross-posting to Mastodon. Get in touch if you use it: mastodon.social/@brandur
Not super optimistic that federation will be the answer, but will try anything that might put a dent in Twitter.Implementation detail: brandur.org/fragments/mast…- Sent Nanoglyph 018 about Ractors in Ruby 3.
A more faithful implementation of the actor model than something Goroutines/channels. Two styles of message passing to get whatever blocking/non-blocking semantics you want to have.brandur.org/nanoglyphs/018…- Yet another Gmail HTML/web oddity: it won’t display an SVG.
To this day the only reliable way of discovering what quirky subset of HTML Gmail supports is trial and error. I’m afraid to even look how my emails render on other even-quirkier web clients like Outlook or AOL.- Played around with Ractors last weekend. Very happy there’s finally parallelism in Ruby.
Worth noting that they’re currently not much use because so much Ruby relies on ambient global state. e.g. Can’t parse TOML in a Ractor, can’t render Markdown. Mostly stdlib-only right now.- RT @gertjanwilde: What's good about offset pagination; designing parallel cursor-based web APIs — by @brandur buff.ly/3ovE4Nl #API
- A few romantic shots of Banff to help get your week started. Can't believe I'm still hiking in January.
- Update on Homebrew on M1: Works great now, and I was able to get rid of the second x86 Homebrew install that ran some programs under Rosetta. For my money, there are no blockers left in these being great machines for development.
More detail: brandur.org/fragments/home…- Nice thinking around easing Ractors into the Ruby ecosystem from @kirshatrov.
Ruby relies heavily on global state so bringing them in at the "top" will be difficult initially, but they're more amenable at the "bottom" where less state needs to be shared.kirshatrov.com/2021/01/06/rub…- RE WhatsApp Facebook-itzation: Baffled by the number of claims of “I left WhatsApp by “just” switching me and every person I know over to Signal!”
Very hard to believe, but they seem to believe what they’re saying. Not sure where the disconnect is, but installed Signal anyway.- RT @petervgeoghegan: Over 5 years ago my then-colleague @brandur wrote about problems with Postgres queues and the accumulation of garbage MVCC versions (see brandur.org/postgres-queues). Expect significant improvements in this area for Postgres 14: postgr.es/m/CAGnEbogATZS…
- After a lengthy battle, my SEO’s been usurped by an IKEA hangar rail for the garage. (Looks pretty nice actually, might get one.)
Do I have any chance of taking it back, or is this the end.- Finally finishing S4 Mr. Robot. Felt less anxiety from the culminating plot than from the idea of hacking via smartphone.
Between autocorrect, no tab button, and half your shell symbols buried in keyboard menus two layers deep, this is the show’s most dystopian concept, by far.- Happy 2021!
A few pretty photos of the Rockies from the other day. Just gorgeous — lots of green, but now with a light layer of snow.2020
December
- Big Sur a few weeks in: Some things are worse (contrast, Finder), many things are different (fonts, menus), but nothing is _better_.Imagine if a big new macOS version introduced new keyboard shortcuts, better multi-tasking, or the like. Innovation in desktop OSes isn’t done.
- Go 1.16 beta1 for ARM-based Macs is a life saver so far. Ran into all kinds of problems with failures and zombie processes with 1.15 under Rosetta.
golang.org/dl/- My closet is indexed on `(season, apparel_type, style, color) WHERE defunct IS FALSE`.
(And given half of those are `(summer, t-shirt, v-neck, black)`, de-duped on the backend ... ;) twitter.com/craigkerstiens…- Going through old tweets, found this 10yo ad for The Camera Store in Calgary. One minute long, no spoken words, pure inspiration. Best enjoyed by photography nerds.
(The ease/art of videography has advanced since then, but this is da Vinci for its time.)youtube.com/watch?v=awq90A…- Life on WaniKani: wake up, underwater, to inbox(hundreds) every morning.
270 kanji in. Last week, from first principles, found that "ichiban" (一番) literally means "number one". Learned that word when I was five, and for the last 30 years thought it meant “noodles”.- After local businesses spent $10,000s they didn't have on outdoor infrastructure, city and state will now force a new, indefinite closure.
It’s been a long time coming, but that’s it — the death knell. Ten years from now, I’ll be able to describe the final days of San Francisco.- On the reasons why RDMSes trend toward glorified key/value stores at scale, and ideas to stop it — twitter.com/planetpostgres…
- A living GitHub issue, and the best project management I've ever seen, in or out of industry.
(Note the 500+ hidden comments too so that it's easier to focus on recent events.)November
- Finally, a blank slate.(Allowing me to start on one part of the surface and work inwards without breaking everything. Wayyyyy too many hours spent refactoring to get here.)
- Trying a site redesign and man, a combination of poor CSS hygiene and CSS defaulting to a mess have caught up to me.
Now building "firebreaks" so changes in one place don't cascade into everything.Lesson: Keep stylesheets highly encapsulated, even where sharing is convenient.- Apple's pulled an Rdio with Big Sur. As much as blown out, low-contrast interfaces with big white space gutters look great in portfolios, they are strictly worse for usability. Modern designers need the equivalent of editorial boards, or something.
October
- Important development in web technology that'd be easy to miss: Very soon there will be no performance advantage to cross-site resource sharing via CDN.Privacy aside, I like the idea of sites hosting their own assets — just seems simpler.stefanjudis.com/notes/say-good…
- I'm extremely jealous of people who can write succinctly, and still get plenty of ideas through.
I start intending to write 20 words. Before I know it, the project's ballooned into a high caloric word salad of 2,000+ words, most uninteresting, but none of which I want to cut.- Like most of everyone, I assumed that container images were our one and only future, but as of ~1 month ago, Heroku-style buildpacks are now quite ubiquitous.
On Digital Ocean App Platform:digitalocean.com/docs/app-platf…On Google Cloud:cloud.google.com/blog/products/…- Planet Earth is one of the best TV series ever created, but a fair critique is how it goes to extreme lengths to gloss over human impact on these ecosystems.
Recommend Attenborough’s “A Life on Our Planet” (Netflix). Same sublime cinematography, but with sobering facts attached.- Maybe best small-ish Postgres improvement in years, 13 has a “force” option for dropping a database even where clients are connected:
$ dropdb --force# DROP DATABASE my_db WITH ( FORCE );That was probably PG's #1 development annoyance. I can feel all that saved time already.- Nanoglyph 015 is about type signatures in Ruby and my impression of how Sorbet’s helped stabilize Stripe. Not a big fan of Ruby 3’s `*.rbs`.
brandur.org/nanoglyphs/015…- Today in writing on iPad: had to google the gesture for redo after accidentally undoing a whole paragraph by — I kid you not — "shaking" the iPad by placing it on a table. This certified-100%-undiscoverable touch/gyro input mystery meat buffet has to stop. More keyboards please.
- It’s THE BEST feeling when after painstakingly learning readings of specific kanji like "previous" 先 (“sen”) and "life" 生 (“sei”), get to a word that combines them (先生), then suddenly realize you’ve known this word for decades (“sensei”), and now know it by first principles.
- Opened Duolingo for the first time in years. Within 20 minutes I’d dismissed 50 modals on “hearts”, “gems”, notifications, etc. You can even buy indulgences — e.g. pay money to continue your streak if you skipped the day.
Sad/awful. We need better monetization models.- RT @_sebgl: I love @brandur's nanoglyphs format and content. Great read for your morning coffee. Please keep them coming!
twitter.com/brandur/status…- Nanoglyph 014 is about local first, diving in Indonesia, and being reminded how great software is when it runs without an internet connection. Also, for good measure, Neil Gaiman’s Sandman.
brandur.org/nanoglyphs/014…- Twin Peaks now re-opened daily for car traffic, proving two core San Francisco principles:
(1) even a single street closed to vehicular traffic is one too many, and (2) in the vanishingly rare case that city leadership accidentally makes a good decision, it’s reverted posthaste.- Back at Heroku, wanted to do the $5 dyno _forever_. It looks like it's finally here, albeit from a different company.
I haven't tried it yet, but this could be the biggest win in internet infrastructure that hobbyists have had in years.September
- More misadventures in trying to learn (to read) Japanese: On the cruelty of kanji.(Knew it was hard. Didn't know it was this hard.)brandur.org/fragments/kanji
- Surprising how split popular sentiment is between siding with Apple vs Epic.
Imagine if the original PCs disallowed user-installable software, and IBM/Apple demanded 30%. Modern computing wouldn’t exist.Mobile platforms are the future. Android/iOS are a duopoly. 30% is nuts.August
- Maybe the first and last time you'll hear me say good things about Mongo, but its TTL indexes are one of the most useful new database features in years.They're an automated way to prune old data, which as it turns out, is something a lot of people need.brandur.org/fragments/ttl-…
- Quite a long hiatus for Nanoglyph. This week (or last week plus some time to jam DMARC into place) wrote about the origins of Postgres.
brandur.org/nanoglyphs/013…- Great history on Firefox's journey from XPCOM to XUL to WebExtensions. Good information on this subject is hard to come by.
- Quite a long hiatus for Nanoglyph. This week (or last week plus some time to jam DMARC into place) wrote about the origins of Postgres.
- Surprising how split popular sentiment is between siding with Apple vs Epic.
- I'm extremely jealous of people who can write succinctly, and still get plenty of ideas through.
- Trying a site redesign and man, a combination of poor CSS hygiene and CSS defaulting to a mess have caught up to me.
- Go 1.16 beta1 for ARM-based Macs is a life saver so far. Ran into all kinds of problems with failures and zombie processes with 1.15 under Rosetta.
- Excellent: Go 1.16 finally supports slurping up static files into binaries. 3rd party packages and extra build steps no longer required.
- Inspired move by Patagonia — no more customized products with corporate logos because products with logos are more likely to end up in landfills.