Sign in

Fabio Spampinato

@fabiospampinato.bsky.social
138 followers 53 following 53 posts

Trying to write good software.

PostsRepliesMedia
Fabio Spampinato @fabiospampinato.bsky.social · 20/10/2025
Zeptomatch v2.1.0 update 🥳: - Partial matching, for traversing the filesystem easily _and_ efficiently. - Roughly 2x faster single-glob matching, and 4x faster multi-glob matching (it's dependent on the specific globs though). - Now roughly ~10x faster than minimatch. github.com/fabiospampin...
1204
Fabio Spampinato @fabiospampinato.bsky.social · 17/03/2025
Somebody in Chrome should probably look into optimizing ::highlight() selectors because that stuff should go at the speed of light (we know all the matches from the start because the user told us), but it doesn't seem to be, at all.
020
Fabio Spampinato @fabiospampinato.bsky.social · 17/03/2025
I don't get how capturing tracing information from a Chrome instance containing only one tab that is not even filling the screen with content and is using about 400 body elements could possibly take over a minute (I had to kill it). Did Chrome hire people trying to make things slower or something?
010
Reposted by Fabio Spampinato
Ryan "UnionToTuple" Cavanaugh @searyanc.dev · 17/03/2025
Download images: 3831ms Download webfonts: 1912ms JS execution: 34ms DOM reflows: 1109ms Ad loading: 2019ms Someone who can write a JS-to-native transpiler please help, my webpage performance is dying
1254
Fabio Spampinato @fabiospampinato.bsky.social · 15/03/2025
Very interesting how just changing an inline style on an element, which changes the "cursor" being rendered, triggers a style/layout/paint recalc for the entire page in Chrome 🙃 By far the biggest structural performance issue on the web is how rendering works, imo. What are we doing about that?
130
Fabio Spampinato @fabiospampinato.bsky.social · 14/03/2025
Borderline criminal the size of an avocado seed.
010
Fabio Spampinato @fabiospampinato.bsky.social · 05/03/2025
I wonder how much of a difference profit-wise would be for Tesco to use different baskets. The have ones that are very heavy (metal instead of plastic), oddly shaped (they could carry much more stuff without feeling bigger), and with unergonomic handles (thin metal ones that dig into your hands).
000
Fabio Spampinato @fabiospampinato.bsky.social · 04/03/2025
Is there any on-demand CI where you send them the commands to execute and they just run them and give you stdout/stderr back? I'd like to add support for executing my tests ~anywhere to my test runner, but I don't want a github-style CI thing, I just want an extra --flag and my existing workflows.
010
Fabio Spampinato @fabiospampinato.bsky.social · 23/02/2025
I touched moss, does it count?
110
Fabio Spampinato @fabiospampinato.bsky.social · 22/02/2025
Your outie hates each re-render equally
020
Fabio Spampinato @fabiospampinato.bsky.social · 20/02/2025
Some incentives are interestingly different with signals: if you make a component a controlled component or not then updating it costs the same, but with a VDOM if the state lives in the parent now updating it is potentially much more expensive, so you are kinda incentivized to do the wrong thing 🤔
100
Fabio Spampinato @fabiospampinato.bsky.social · 18/02/2025
New package, which is actually a benchmark: "json-simple-parser", the fastest pure-JS implementation I could come up with for a JSON parser. Somewhat useful for benchmarking parser generators, or perhaps JS itself, or different engines, or if you like really ugly code? github.com/fabiospampin...
github.com
GitHub - fabiospampinato/json-simple-parser: The fastest pure-JS implementation for JSON I could come up with.
The fastest pure-JS implementation for JSON I could come up with. - fabiospampinato/json-simple-parser
181
Fabio Spampinato @fabiospampinato.bsky.social · 17/02/2025
I just asked chatGPT to clean up a truly awful JSON parser, and surprisingly the code it gave me still works. It converted it to (nicer?) OOP garbage and it's some 70% slower though. But then I asked it to not make it slower, and it still gave me OOP garbage that's only ~13% slower. Pretty cool.
130
Fabio Spampinato @fabiospampinato.bsky.social · 17/02/2025
Arrow functions seem special in that you can often easily detect when they don't use any of their arguments for sure, like this: ```ts let {toString} = Function.prototype; let isNullaryFunction = typeof fn === 'function' && fn.length === 0 && toString. call(fn).startsWith('() =>'); ```
120
Fabio Spampinato @fabiospampinato.bsky.social · 17/02/2025
Does anybody know what the fastest JSON parser written in JS is? I'd like to check how mine compares against it. github.com/fabiospampin... 👈
5104