Weeknotes 122
29th October, 2023
“Closing all buffers”
-
Protomaps - A free and open source map of the world.
Protomaps is an open source map of the world, deployable as a single static file on cloud storage.
I will have to remember this next time I need a map.
-
Hosting SQLite databases on Github Pages 🤯
Hosting a static website is much easier than a “real” server - there’s many free and reliable options (like GitHub, GitLab Pages, Netlify, etc), and it scales to basically infinity without any effort. So I wrote a tool to be able to use a real SQL database in a statically hosted website!
This led to official support for Wasm from SQLite.
-
I’ve been
mucking about withimproving my Neovim workflow a bit this week (or attempting to anyway) after I took part in some pairing with another developer and found myself flailing about. As a result I learnt aboutiskeyword
in Neovim.iskeyword
tells Neovim what to consider a “word”. In particular this affects word motions usingw
and searching using*
. When I am focussed on a word and hit*
it searches for that word in the current buffer.By default
iskeyword
includes all the normal “word” characters you would expect, but it can be useful for this setting to include other characters dependant on the context. For example, Ruby code often has methods which end with?
or!
. In that case if you want to search for a method name which ended with a?
the defaultiskeyword
setting would not include it. (I’ve been working around this by visually selecting the whole method name and then hitting*
, but this is slow and error prone).So, I’ve included
?
and!
in myiskeyword
setting for Ruby files.I’m slightly hesitant about this change because it feels like it could have far reaching affects, but I will see how it goes. So far, so good. It certainly seems to work.
Reference: https://vi.stackexchange.com/a/18508/28669
-
I’ve also been working on a way to clear out buffers I no longer need. Closing all buffers is easily achieved with
:%bd
, but I often only want to close some and that is more of a hassle.It turns out that I already had
:BD
command which allowed fuzzy finding and deleting of buffers usingfzf
, but I had forgotten about it, and now that I’m all in on the Telescope lifestyle it would be good to have something that fits in with that.So now I can hit ctrl d when using
Telescope buffers
command and buffers will be removed. -
Unless you have solid numbers to show that H2 is truly improving things for you and your clients, you should just turn it off.
Someone is not a fan of HTTP/2.
-
It’s 2023, here is why your web design sucks. It does, indeed, suck.
-
Ben Sheldon of GoodJob reflects on job queue design in the context of Rails including a new job queue by default called Solid Queue.
GoodJob targets the small and medium end of projects (though some big ones use it too) and prioritizes operational simplicity over performance. That works for me (and a lot of others!) but also isn’t really reflective of the scale of companies leading Rails development. There’s a tension here.
The reality is that a lot of projects will probably be fine storing their jobs in a database. Maybe not your Shopifys or your GitHubs, but lots of people.
I’ve not had the chance to use GoodJob, but it seems similar to Oban in that it leans heavily on Postgres-only features (although Oban also supports SQLite so I’m not sure what they do there?) so it will be interesting to see how this ends up working with MySQL, which some big players are keen on.
GoodJob maintains a lot of bookkeeping, keeping job and granular execution data around after execution so it can be inspected.
This has been my experience in my experiments with Oban. Being able to see the jobs after they have executed is massively helpful. With Sidekiq the jobs just disappear into the ether. This is surely by design to sell Sidekiq Pro, which is absolutely fair enough.
I’m definitely interested in seeing what Solid Queue might become.
-
Back to the gym properly this week after several weeks off due to a combination of laziness and travel 🏋️