Sign in

Anders Murphy

@andersmurphy.bsky.social
63 followers 33 following 62 posts
PostsRepliesMedia
Anders Murphy @andersmurphy.bsky.social · 25/01/2026
110
Anders Murphy @andersmurphy.bsky.social · 12/12/2025
You know it's going to be a good day as dev when you get a message like this. This is what real engineering looks like:
100
Anders Murphy @andersmurphy.bsky.social · 23/11/2025
With #brotli over SSE, the window size is everything. If your window is thrashing (too small), you can use 100%+ more CPU. This also applies to compression. So you can use brotli 3 rather than 4 (recommend normally) have almost the same compression and be 40-50% faster.
081
Anders Murphy @andersmurphy.bsky.social · 26/10/2025
Love finding random checkbox art
130
Anders Murphy @andersmurphy.bsky.social · 02/10/2025
immersive arts in action love when people get creative like this!
140
Anders Murphy @andersmurphy.bsky.social · 19/09/2025
#datastar is art
131
Anders Murphy @andersmurphy.bsky.social · 12/09/2025
100
Anders Murphy @andersmurphy.bsky.social · 21/08/2025
Adaptive row rendering virtual scroll in #datastar. The red number is the total number of rows rendered including offsets/tolerance.
030
Anders Murphy @andersmurphy.bsky.social · 12/08/2025
`select count(*)` for the win.
010
Anders Murphy @andersmurphy.bsky.social · 27/07/2025
Today I learnt some QR scanners (google lens) struggle/fail with inverted QR codes and generally a lot of scanners scan non inverted QR codes faster. Also CSS is awesome: backdrop-filter: blur(5px)
000
Anders Murphy @andersmurphy.bsky.social · 27/07/2025
If you want to checkout Dundee Founder Collective you can find them here: lu.ma/dll9xxro
100
Anders Murphy @andersmurphy.bsky.social · 27/07/2025
Here's the code to convert the QR Codes to SVG.
100
Anders Murphy @andersmurphy.bsky.social · 27/07/2025
Had a load of fun at Maker Gonna Make Dundee. Ended up making a location share QR code (after spending a morning messing with quadkeys). The codes are generated on the server, converted to SVG and then morphed in to DOM via SSE (using #Datastar). They compress nicely too.
110
Anders Murphy @andersmurphy.bsky.social · 23/07/2025
010
Anders Murphy @andersmurphy.bsky.social · 21/07/2025
Simple checkbox art location share links with #datastar
120
Anders Murphy @andersmurphy.bsky.social · 20/06/2025
Why TCP slow start makes minification matter. 300ms slower when going from a 10kb to 18kb ( #Datastar unminified), both with brotli level 11. What's worse this is on a good connection if it was 3G with higher packet loss the difference would be even larger.
000
Anders Murphy @andersmurphy.bsky.social · 19/06/2025
000
Anders Murphy @andersmurphy.bsky.social · 19/06/2025
In the first frame most of the work is done closing the compressor (somethings not quite right, either in user land or the library implementation). In the second frame (a different library) there's no such close overhead. 5X faster reads. Another win for performance profiling.
010
Anders Murphy @andersmurphy.bsky.social · 18/06/2025
More checkbox art.
110
Anders Murphy @andersmurphy.bsky.social · 16/06/2025
Banksy?
120
Anders Murphy @andersmurphy.bsky.social · 16/06/2025
Nothing beats profiling in production especially when you realise you are spending a large chunk of your CPU on something you can inline cache.🔥 #flamegraphs
010
Anders Murphy @andersmurphy.bsky.social · 15/06/2025
Two way data bindings when you need them makes #datastar an absolute joy to work with.
140
Anders Murphy @andersmurphy.bsky.social · 09/06/2025
Compression vs diffing it's not as intuitive as you think. Sending down 2304+ divs (85041 bytes uncompressed ) over SSE and relying on #brotli compression instead of diffing results in a checkbox change being 13 bytes.
140
Anders Murphy @andersmurphy.bsky.social · 02/06/2025
10000 check request per second (in production). Rendering 10/s. Each check is 2 reads and 1 a write. #SQLite + #Datastar =🐐. Zero impact on user interactions (see the yellow checkboxes).
120
Anders Murphy @andersmurphy.bsky.social · 21/05/2025
And we've been able to do this since 1998.
000
Anders Murphy @andersmurphy.bsky.social · 21/05/2025
#Emacs Tramp + Dired is amazing. Just compiled SQLite on my server and now I can transparently copy it to my local machine. But, as a user it's just like I'm just working on a single machine.
110
Anders Murphy @andersmurphy.bsky.social · 20/05/2025
The JVM is incredible, implementing FFI SQLite bindings for #Clojure in a few evenings with Java 22 Project Panama is an absolute game changer.
130
Anders Murphy @andersmurphy.bsky.social · 21/03/2025
I'm deep down the br-d (brotli shared dictionary) rabbit hole. Didn't realise all chromium browsers already support it.
000
Anders Murphy @andersmurphy.bsky.social · 10/03/2025
A compression ratio of 96:1 on an SSE stream with #brotli (vs 55:1 with gzip). This is why #datastar 's combination of #idiomorph and SSE is so good, you don't need diffs. Do you know what else uses snapshots and compression instead of diffs? Git.
100
Anders Murphy @andersmurphy.bsky.social · 26/02/2025
Adding a simple AI that sometimes collects stars.
100
Anders Murphy @andersmurphy.bsky.social · 26/02/2025
Wow no gif support in Bluesky. Wild. mp4?
030
Anders Murphy @andersmurphy.bsky.social · 26/02/2025
With all the application state on the backend you can write a small script to play the game. This code just calls the action handler with the ids of the stars.
120
Anders Murphy @andersmurphy.bsky.social · 26/02/2025
The joys of the #Clojure REPL modifying a running server in production and changes getting pushed to users seamlessly via #Datastar. How do you deploy with zero down time? That's the neat part you don't!
331