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…
- ⤿ @komlasapaty Thanks Seyram!
- 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-…- ⤿ @JuanitoFatas @crunchydata Thank you Juanito! Definitely more of those to come :)
- ⤿ @kirshatrov As bad as California is right now (it "fully reopens" June 15, but all that means is many restrictions have just been made permanent), most of Western Europe just seems like a nightmare. I read that you got pubs back at least?
- ⤿ @wulymammoth @crunchydata Haha, thanks David!
- 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.
- ⤿ @RattrayAlex @bonjouryannick @crunchydata I guess it kind of is, but also minus SQL, referential integrity, or any of the Postgres performance/space optimizations of the last twenty years.
(And thanks Yannick!)- ⤿ @kirshatrov @crunchydata Thank you Kir!
- ⤿ @jkatz05 @crunchydata Thanks Jonathan! And same to you.
- ⤿ @johnsheehan @craigkerstiens Yikes ... that's crazy.
- ⤿ @craigkerstiens @crunchydata Crunchy Mongo Bridge.
- ⤿ @spakhm @crunchydata Thanks Slava! :) Appreciate it.
- ⤿ @petervgeoghegan @crunchydata Thanks! I think so too :)
- ⤿ @appltn @crunchydata Thanks Andy! And yeah, it's sure hard to change databases. You're usually just stuck with what you find.
- ⤿ @davidfetter @crunchydata Thanks David! :)
- ⤿ @_raulb_ @crunchydata Thanks Raul, and appreciate it :)
- ⤿ @embano1 @crunchydata Haha me too :) Thanks Michael!
- ⤿ @kevinswiber @crunchydata Thank you Kevin! :)
- ⤿ @implgeo @pwramsey @rustlang Thanks Pirmin! And will do :)
- ⤿ @yaw__asare @crunchydata Thank you! :)
- ⤿ @roopakv @crunchydata Thanks Roopak! :)
- ⤿ @Benoit_Tgt @crunchydata Haha! Yes, turns out ;)
- ⤿ @asenchi @crunchydata Thank you Curt!
- ⤿ @Ethervoid @crunchydata Thank you, and yes, looking forward to getting to know this community more :)
- ⤿ @__xuorig__ @crunchydata Thanks Marc-André! There will definitely be many more coming from here :)
- 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…- ⤿ @micsolana Great historical parallels for this one too ;)
en.wikipedia.org/wiki/Constitut…- ⤿ @craigkerstiens @asenchi Haha, I think I force opted you into my _other_ newsletter, which I haven't written in a while ;) This one started with a fresh list.
Thanks @asenchi!- 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…- ⤿ @craigkerstiens Please tell me you're not buying.
- 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
- ⤿ @spakhm Hoping for the best, expecting the worst.
- 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…)
- ⤿ @kch Ah neat — that is a cool trick. Thanks!
- ⤿ @vikasgorur lol! Yes, please. Did it work?
- ⤿ @felixhuttmann Yes, this was inspired by a work situation :)
I do believe that it is possible to make a monorepo really work, but yeesh, it is a lot of time and resources just to get you back to level.That said, I do acknowledge the niceties of a monorepo. There are certainly advantages.- ⤿ @visigoth @chofter Fair enough!
(And not projecting this onto you because I don't know enough about other situations, but) I will say that there are quite a few people in my current monorepo situation that would say "it's fine!" even though it's not. Some people have very high pain tolerance.- ⤿ @spakhm Yeah +1. Having worked in both environments, there's _so_ much about the non-mono approach to like that's not just related to Git performance, and I'd generally prefer that.
That said, the ease-of-refactoring, tooling-in-one-place, and a few other mono features are nice.- ⤿ @chofter My hot take: Git was right. Even if Facebook makes Mercurial work, you've just reinvented Perforce. It's never going to be a pleasant system to work with.
- 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.
- ⤿ @Jeka Yeah, using Canada as an extreme example because Trudeau's printing like crazy there relative to GDP, but every desirable metro area (and especially the nice more suburban parts) is on fire.
- 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/- ⤿ @StbG @Shopify @graalvm Very cool stuff, although I'm not sure I'd switch to the heaviness of the Java toolchain just so I could go back to writing Ruby code, hah ;) Thanks for the tips — that paper's on my reading list now.
- ⤿ @johnmathews Not yet, but I will. Thanks for the tip! I think I'm still on Ale (after moving to that from YouCompleteMe). It seemed to work okay at first, but I feel like my installation's been getting worse instead of better, hah.
- ⤿ @_raulb_ @GoLandIDE Hah, I know that feeling well. I'm still trying to remember basic shortcuts a lot of the time, and have started maintaining a cheat sheet to help me remember things that I've already found.
- ⤿ @art_spb @s0xzwasd @_raulb_ @GoLandIDE Great tips everyone — thanks! "Find action" is very equivalent to VSCode's command palette, and might just be the perfect compromise for those shortcuts you use, but not all that often, and may not need a specific key combination for.
- 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
- ⤿ @spakhm Excellent choices. Well, on the last piece anyway :) The first two seem okay too.
- ⤿ And very insightful thoughts from Michael Geist (who started blogging almost 20 years ago now!) on the implication's of Australia's new framework on Canada and other countries.michaelgeist.ca/2021/02/beware…
- 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…- ⤿ @stevegraham Wow. Wish I'd headed straight to South America a year ago lol.
- 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/- ⤿ @craigkerstiens @jkatz05 Just put the tracking on your actual logo.gif!
- ⤿ @jkatz05 lol! In this case, it's more like HN is more popular than I thought it was.
I had to double check that this wasn't a comment from @craigkerstiens. You're not picking up any bad habits from that guy are you? ;)- ⤿ @be_haki Nah, I'm using the centrally hosted version for now. The difference is probably a difference in the bot lists used by each operation.
For logs, I've been filtering out robots using something like this:github.com/brandur/logs/b…- ⤿ @benskuhn Nice! And hah, yes, I did something very similar for my numbers (look familiar?):
github.com/brandur/logs/b…And TBC, the CLI is pretty raw (handrolled by me in a few hours), but so far holding up okay.- ⤿ @kyle_conroy (Next step is to make this more re-usable. I was thinking about making the SQL queries ERB templates so that I could have a robot list partial which could be universally included in other queries. Gods save my soul.)
- ⤿ @kyle_conroy Didn't talk about it too much, but basically both GoAccess and my SQL queries have robot lists that they exclude.
See here for full example:github.com/brandur/logs/b…- 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- ⤿ @mfioretti_en Haha, I try :) The internet would be a better place if we'd all stuck to RSS instead of social media.
And very nice! Keep fighting the good fight.- ⤿ @johnmathews That's probably fine a solution too. Two minor advantages I'd cite are that:
(1) You probably already have an AWS account anyway, and it's nice to keep everything on one stack.(2) If you want to expand out of static site hosting, AWS certainly has a product for that.- ⤿ @jsgjames Glad that it may still be somewhat useful. I wrote that almost ten years ago, so I would've expected it to be grossly out of date by now! :)
- ⤿ @thesephist Thanks for the kind words Linus! :)
- 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…- ⤿ @kingersoll Yeah, Twitter -> Mastodon was a bit arbitrary, but I figure Twitter is more likely to last (unfortunately), and its lower char limit makes T -> M easier than the other way around.
Interesting on Perkeep! Hadn't seen this. Too bad it's stalled because I kind of want it ...- 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…- ⤿ @_raulb_ @heroku Holy crap, that's huge! (Congrats.) Still remember holing up with you in that tiny corner meeting room in the 11th Street office in my first days.
- 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.- ⤿ @ekryski Yes! But only for another few days unfortunately :/ Should have stayed longer haha.
- 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.- ⤿ @appltn Hmm, that would have been a good one to try, but I didn't even think of it when I wrote that — I'm all just image-less static binaries these days (or building images in the cloud from GCP and the like).
Just via Google though, looks like they've made good progress.- RT @gertjanwilde: What's good about offset pagination; designing parallel cursor-based web APIs — by @brandur buff.ly/3ovE4Nl #API
- ⤿ @maxchehab I'm a little out of the loop in recent years (being down in California), but I think this isn't _too far_ off of normal.
- ⤿ @hendi Wow that's awesome, and yeah, the space in the area is a really nice feature. I thinkkkk I've done Corey Pass, but it's been a few decades at this point :)
- A few romantic shots of Banff to help get your week started. Can't believe I'm still hiking in January.
- ⤿ @MichaelBurjack Thanks! I'll try your first set of recommendations and get back to you.
(Also, I was largely joking in my original tweet — I don't care that much, and also it'll be very difficult in practice to win back against IKEA. My best hope is probably that they deprecate the product ;)- 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…- ⤿ @jdxcode @DenisTrailin That's good to hear!
I'll stay optimistic, although knowing nothing else about it, loss leading products that don't supply enough of their own revenue stream tend to get nailed down given enough time. WhatsApp is incredibly popular, but encryption means FB's gain is minimized.- ⤿ @jdxcode @DenisTrailin Honestly, I don't really expect that much to change since I assume FB knows everything about me.
For most people though, I think it's (1) they're not on FB already, and/or (2) sets bad precedent — relaxing message privacy/encryption could be next.- ⤿ @DenisTrailin I'm still a little concerned about my ability to sell why WhatsApp is bad to non-tech friends, especially considering many of them post to FB like three times a day.
But yeah ... group chats. Those are going to be expert mode level of difficulty.- ⤿ @bitsandhops I feel like even once I'm on Signal, I'm still going to be all the ones you mentioned _plus_ WhatsApp, still. Geeze I miss open chat protocols (or even open-ish).
- ⤿ @asp_net Exactly! We'll see how it goes.
The good news is that the address book import on things like Signal definitely make it more tractable — I checked who was on there in my list and will consider using Signal instead of WhatsApp next time I message them.- ⤿ @spakhm Not sure I'd go with "easy", but maybe now at least "possible".
Agreed that if there's a time to do it, that time is now, which is why I took the plunge.Not optimistic about non-tech friends though. Most of them probably assumed FB data sharing anyway and won't care much.- 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.- ⤿ @MichaelBurjack Haha, thank you — I copied these into my TODOs.
I struggled on what the correct h1 should be when first designing the site, but ended up putting the page/article's title as the top header. That still does seem more semantically correct even if it's a Google de-optimization :/- ⤿ @hgmnz @jkakar Spent five min trying to think of a joke to top that one. Can't do it. Nice one haha.
- ⤿ @ideasasylum lol! Excellent idea. "Review: Brandur by Brandur"
- ⤿ @rponte @sorentwo @petervgeoghegan Thanks! Yeah, that article is a bit old, and since then Que went through a reimplementation that fixed the problem by finding jobs more efficiently.
Being optimized upstream is still nice. There are many workloads that aren't async jobs specifically that'll also benefit.- ⤿ @kirshatrov Maybe! I'd have to dig in more (i.e. specifics around ease of index creation or changing not nulls, etc.). Some of what's in the list isn't even solvable by technology though — just needs better practice.
- ⤿ @edoardoc Could've been better too! Personally was hoping for a cocktail bar or IKEA-branded pool table or something ;)
- ⤿ @ekryski @github That commit graph is worrying there, Eric.
- ⤿ @craigkerstiens Dammit Craig. That product is undervalued. What a steal.
- ⤿ @_raulb_ LOL. Yeah, the only ones I know are this and "malm" (the bed).
- 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.- ⤿ @zdne Yep, totally. I wish I could just opt out of the whole thing ...
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.
- ⤿ @csperkins Ugh, that's what I get for writing late at night when my mind doesn't work. Fixed! Thank you.
- ⤿ @jdxcode Oh interesting — I was missing that context.
Citation needed, but I'd guess that it's not uncommon for compilation from source to eventually want/need an old compiler. At some point going back and compiling every version since it became self-bootstrapped would become difficult.- ⤿ @jdxcode Yeah, this is into hazy territory for me. Does it matter that much if you can't bootstrap from the original version of Go on ARM though? As long as you can bootstrap from _a_ previous Go version that works on ARM, you should be alright I think?
- ⤿ @jdxcode Hah, good question. I'm not sure, but traditionally Go is pretty good at targeting alternate architectures through GOOS and GOARCH, so I imagine you can build from a non-ARM machine.
- 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…- ⤿ @maxdeviant @DRMacIver Nice!! Only saw the mobile version for now, but love the look!
- ⤿ @spakhm @deontologician Yeah, the kanji has a general meaning and "readings", but isn't necessarily vocabulary by itself — it may need to be combined with other kana to become a full word.
This was a major TIL for me. I wrote a little primer in a few paragraphs here:brandur.org/fragments/kanji- ⤿ @spakhm If you're interested, I'd suggest running through this tutorial to learn hiragana. It's free, and by the same people as Wani and uses a similar learning style with mnemonics.
If you like it/get hooked, then Wani might also be for you.
- 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.