This is pretty niche, but I wrote Go API bindings for WaniKani.

github.com/brandur/wanikaniapi

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-kan

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/mastodon

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-rac

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 t.co/VSrnU1Sy0E

A few romantic shots of Banff to help get your week started. Can't believe I'm still hiking in January. t.co/W5dsoSK8u7

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: t.co/DtvRU435Ws

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.

t.co/EF80vm1hEU

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…

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. t.co/IP6CEKXwIh

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. t.co/Gse5WoOD4N

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. t.co/hBPCkGYLeR

Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!