Sign in

Andrew Johnston

@billywhizz.bsky.social
371 followers 1.1K following 229 posts

billywhizz.io pushing bits @bloomberg.com hacking on a js runtime at github.com/just-js opinions are my own

PostsRepliesMedia
Andrew Johnston @billywhizz.bsky.social · 14/02/2026
"Even with increasingly sophisticated context engineering, models often fail in subtle but consequential ways. Providing context is not enough if the model cannot truly learn from it" hy.tencent.com/research/100...
an image of a table showing results of benchmarks with the best model (GPT 5.1 High) scoring 23.7%.
030 0
Andrew Johnston @billywhizz.bsky.social · 13/02/2026
can't wait to read this. 🥸🤖
an O'Rly book cover with a picture of a sloth and the title "Copying and Pasting from ChatGPT" and the subtitle "Deploying untested code at breakneck speeds"
050 0
Andrew Johnston @billywhizz.bsky.social · 16/01/2026
"all they've proved so far, is that agents can output millions of tokens and still not end up with something that actually works" 🤪 embedding-shapes.github.io/cursor-impli...
a screenshot of a demo video of the cursor browser
050 0
Andrew Johnston @billywhizz.bsky.social · 04/12/2025
"those companies all realized they can make billions more dollars making RAM just for AI datacenter products, and neglect the rest of the market" www.jeffgeerling.com/blog/2025/ra...
a screen grab of the related youtube video, with the "grim reaper" as "RAM Prices" meme showing Lenovo, Raspberry Pi and Samsung already dead.
030 0
Andrew Johnston @billywhizz.bsky.social · 19/10/2025
"The result is raw hardware capable of millions of writes per second, but etcd delivering orders of magnitude less due to the interfaces and guarantees it must uphold" bchess.github.io/k8s-1m/
a graph showing the proposed alternative scheduler massively outperforming stock kubernetes scheduler
010 0
Andrew Johnston @billywhizz.bsky.social · 15/10/2025
nice summary of why vite is... good? #smallcore ftw! 💪 www.youtube.com/watch?v=B_H1...
a screen grab from the youtube video displaying a smiling 1950's woman from an ad and the message CORE = small + stable
000 0
Andrew Johnston @billywhizz.bsky.social · 08/08/2025
i did a little bench against v8 3.8 which has these changes. even on my crappy old laptop it's 2x for simple payloads. pretty much on par with Bun/JSC now.
screenshot of benchmark results showing 2x improvement with v8 3.8 versus current node.js.
030 0
Andrew Johnston @billywhizz.bsky.social · 08/08/2025
"By rethinking JSON.stringify from the ground up, from its high-level logic down to its core memory and character-handling operations, we've delivered a more than 2x performance improvement" 🚀 v8.dev/blog/json-st...
benchmark graphs showing 2x throughput improvement on Mac M1, Win 11, Linux and Pixel9
161 0
Andrew Johnston @billywhizz.bsky.social · 19/07/2025
"it may be that these "off-Web" platforms... will become fruitful environments for experimentation with new WebAssembly concurrency features that would be too onerous for Web browsers to speculatively prototype" queue.acm.org/detail.cfm?i...
diagram of web assembly shared instances proposal
010 0
Andrew Johnston @billywhizz.bsky.social · 02/06/2025
this site is one of the oldest on the www. it literally hasn't changed since 2003. i bet it's way more usable for most folks than the majority of "modern" sites. and it has a lighthouse score of 97% despite making no effort to be "performant". 💪🙇 cfg.com
screenshot of cfg.com home page
000 0
Andrew Johnston @billywhizz.bsky.social · 31/05/2025
"This systematic approach toward systems correctness has become a force multiplier at AWS’s scale, enabling faster development cycles through improved developer velocity while delivering more cost-effective services to customers" cacm.acm.org/practice/sys...
a graph of an overloaded system
010 0
Andrew Johnston @billywhizz.bsky.social · 10/04/2025
quite the difference between this and the equivalent C program with `-O3 -s -static` 🤭
comparison of tiny assembly custom binary format linux program and elf binary compiled by C
010 0
Andrew Johnston @billywhizz.bsky.social · 10/04/2025
"This delightfully unadulterated binary file is almost a quarter the size of the smallest possible ELF executable, and less than a third the size of the aout executable that inspired this (admittedly ridiculous) exploration" www.muppetlabs.com/~breadbox/tx...
Illustration of author surveying the fruits of his labor by Bomberanian
100 0
Andrew Johnston @billywhizz.bsky.social · 18/03/2025
"the code inside is more like a DSL (Domain Specific Language) processed by a special purpose compiler built into the library (JAX or Triton). Another way to think about it is that Python is used as a meta language to describe computations" eli.thegreenplace.net/2025/decorat...
pipeline from python source to JITted code
000 0
Andrew Johnston @billywhizz.bsky.social · 03/02/2025
and finally on a Raspberry Pi 3B+, for some reason we do way better than both @bun.sh and @deno.land. i haven't had time to investigate why. in general bun seems to do worse the more arguments we pass and has some syscall overhead. i am guessing due to gc? 🤔 /6
graphs of linux/arm64 (raspberry pi) benches
110 0
Andrew Johnston @billywhizz.bsky.social · 03/02/2025
on macos/arm64 we see @deno.land doing a bit better than this (but not much). i am still not sure quite why. might be something to do with different versions of v8 or different ways v8 library was compiled. afaik the machine code being generated should be roughly the same. 🔎 /5
graphs of macos/arm64 benches
110 0
Andrew Johnston @billywhizz.bsky.social · 03/02/2025
these benchmarks are not very scientific but they show promise. i will do a fuller set of benches when i get time, and there is still lots of work to do to make this more correct/robust/complete. this is what we see on linux/x64 Core i5 8th gen. /4
linux/x64 core i5 benchmark charts
110 0
Andrew Johnston @billywhizz.bsky.social · 01/02/2025
👀😆
a graph of ffi benchmarks comparing bun, deno and lo javascript runtimes
140 0
Andrew Johnston @billywhizz.bsky.social · 24/01/2025
chrome isolated apps look interesting. has anyone played with them? chromestatus.com/feature/5146...
screenshot of a description of chrome isolated apps from the link in the post
110 0
Andrew Johnston @billywhizz.bsky.social · 08/01/2025
"Due to the addition of BPF it can be programmed to yield back only for the desired system calls, which significantly reduces the performance penalty and unaffected sections of the traced program run almost as if no tracer was attached at all" blog.mggross.com/intercepting...
screenshot of seccomp BPF being compiled in a C function
020 0
Andrew Johnston @billywhizz.bsky.social · 27/12/2024
"Scientifical calculators and mini computers - technikum29" www.technikum29.de/en/computer/...
a photograph of a pdp-8 system in all its glory
000 0
Andrew Johnston @billywhizz.bsky.social · 26/12/2024
"The best components are those that provide powerful functionality yet have a simple interface" minds.md/zakirullin/c...
a cartoon of good v bad showing the share of cognitive load versus smart developer's quirks
010 0
Andrew Johnston @billywhizz.bsky.social · 19/11/2024
"For the start-up script of a release-mode RN app, JWST-WASM is ~10.5x and ~126% faster than V8 without code cache and with code cache, respectively, on Kirin990E CPUs" 🔥 lists.w3.org/Archives/Pub...
graph comparing evaluation time of JWST release mode versus v8 with and with code cache
020 0
Andrew Johnston @billywhizz.bsky.social · 16/11/2024
👀😆
twitter screenshot - Technology Trending - "Bluesky" - 150k posts
031 0
Andrew Johnston @billywhizz.bsky.social · 13/11/2024
what do front-end folks use for high performance timing these days? i did a little bench of performance.now() on chrome and it's very slow. ~250 ns per op. compared to ~30ns per op on Bun or ~60 ns on node.js. i am assuming this is due to mitigations for timing attacks? 🤔
function assert (condition, message, ErrorType = Error) {
  if (!condition) {
    if (message && message.constructor.name === 'Function') {
      throw new ErrorType(message(condition))
    }
    throw new ErrorType(message || "Assertion failed")
  }
  return condition
}

function bench () {
  const runs = 50000000
  const start = Date.now()
  for (let i = 0; i < runs; i++) {
    assert(performance.now())
  }
  const elapsed = Date.now() - start
  const rate = runs / (elapsed / 1000)
  const div = document.createElement('div')
  div.innerText = rate
  document.body.appendChild(div)
  setTimeout(bench, 100)
}

setTimeout(bench, 100)
210 0