Luke Edwards @lukeed.bsky.social · 04/06/2026static.klipy.comMan Working Under A Rock In OfficeALT: Man Working Under A Rock In Office 140
Luke Edwards @lukeed.bsky.social · 04/06/2026TBD, but hopeful! I was putting in double time to try working on my Cf-oriented OSS projects (worktop, dog, production-saas). With Hono they seemed to have learned lesson but I dunno what’s happening behind the scenes or if it’s a happy timezone side effect. All 👀 on them now 120
Luke Edwards @lukeed.bsky.social · 04/06/2026A little bit less :) I was there pitching they hire you before Vercel scooped you up 370
Luke Edwards @lukeed.bsky.social · 22/04/2026Shipping 7.0 without programmatic api is a mistake. This alias mapping + reexport is going to be a messy web come 6-8 months when 7.1 rolls out 090
Reposted by Luke EdwardsCassie Evans @cassiecodes.bsky.social · 28/07/2025AI isn't "increasing efficiency" if other people end up having to parse, fact check and correct your work. 38017
Luke Edwards @lukeed.bsky.social · 10/06/2025Ah gotcha. The latter. I’m looking to make a new builder/renderer. Basically a stand-in for storybook/html or storybook/preact 200
Luke Edwards @lukeed.bsky.social · 10/06/2025Trying to write a custom Storybook renderer. Anyone have any starters/pointers? 110
Reposted by Luke EdwardsDeno @deno.land · 01/05/2025Deno 2.3 is here: 🌱 deno compile with FFI & Node native add-ons 📦 Local npm packages ⭐ deno fmt CSS/HTML/SQL in tagged templates 🔭 OTel event recording & tracing in distributed services and more — deno.com/blog/v2.3deno.comDeno 2.3: Improved deno compile, local npm packages, and moreDeno 2.3 adds new features for deno compile and deno fmt, support for using local npm packages, several performance improvements, and more. Here are the biggest highlights. 0699
Luke Edwards @lukeed.bsky.social · 29/04/2025empathic@1.1 🔸Adds CommonJS support 🔹Allows Node 14 engines No code changes or bloating were needed on my end 💪 **The entire package is still less than 2kB and still fast.** The benchmarks compare `empathic/` submodules to their counterparts across the ecosystem. More: github.com/lukeed/empat...github.com 040
Luke Edwards @lukeed.bsky.social · 29/04/2025Published empathic@1.1 🎉 (benchmarks below) Many packages are eagerly joining the @e18e.dev effort but (understandably) have existing support restrictions to maintain & so can't make as much progress as they'd like. This release helps with that~! (cont.) 1286
Luke Edwards @lukeed.bsky.social · 20/03/2025Released `hrana` -- a 1kB libsql/hrana client 🔸runtime agnostic, works anywhere 🔹transaction and batch stmt support 🔸CI includes a cron check for Hrana spec updates 🔹dual JSR and npm publish, with provenance 🔸strictly typed 👉 github.com/lukeed/hrana /cc @tur.so 070
Luke Edwards @lukeed.bsky.social · 23/01/2025Monomorphism and variable reuse were the keys. Once that happens then a recursive function helps a bit too 110
Luke Edwards @lukeed.bsky.social · 14/01/2025Going straight to top of the current leaderboard is a good move 👍 010
Luke Edwards @lukeed.bsky.social · 14/01/2025It’s v cool but also well known that anything would be a massive performance improvement over the existing/angular signals 110
Luke Edwards @lukeed.bsky.social · 13/01/2025Thanks ☺️ I have an argv parser that probably ~700b and 10m op/s but purposefully doesn’t support all the normal features… ~1.5ops is good enough 😅 020
Luke Edwards @lukeed.bsky.social · 07/01/2025Then perhaps bun for you? Not sure as this isn’t an issue for me. I run into fetch failed every time I try to use Node since 18 000
Luke Edwards @lukeed.bsky.social · 07/01/2025At that point it’s easier to use something else. undici was perhaps the final dagger that had me leave Node (where I can help it) Deno ftw 110
Luke Edwards @lukeed.bsky.social · 07/01/2025I wish Node didn’t embed a pure JS polyfill and call it a day 110
Luke Edwards @lukeed.bsky.social · 07/01/2025error: TypeError: fetch failed at node:internal/deps/undici/undici:13178:13 at processTicksAndRejections (node:internal/process/task_queues:95:5) at runNextTicks (node:internal/process/task_queues:64:3) at process.processImmediate (node:internal/timers:454:9) 170
Luke Edwards @lukeed.bsky.social · 27/12/2024Writing a new database client was easier than (still) trying to get its transitive `require` and `module` usage to transpile and/or polyfill correctly If anyone knows this fix I'd be happy to delete my client: ReferenceError: module is not defined 040
Reposted by Luke EdwardsEvan You @evanyou.me · 19/12/2024As a result, Rolldown is now the fastest possible bundler you can run in the browser. Here are the numbers when bundling a benchmark app with 2.5k modules: - esbuild: 22.19s - Vite (via Rollup): 4.52s - Rolldown: ⚡️613.43 ms Try it out yourself on StackBlitz: stackblitz.com/~/github.com...stackblitz.comStackBlitz 117718
Luke Edwards @lukeed.bsky.social · 18/12/2024is GCP Postgres (Cloud SQL) supported? I'm guessing it would be since RDS is 100
Luke Edwards @lukeed.bsky.social · 14/12/2024Not sure that I caused much of anything 😅 to be clear the benchmarking didn’t include Node cuz it’s still WIP there 000
Luke Edwards @lukeed.bsky.social · 11/12/2024I’ll wait for it to stabilize a bit but it’s worth the effort. Current project isn’t using any js runtime & don’t wanna add 000
Luke Edwards @lukeed.bsky.social · 11/12/2024Thanks, figured :) thought id ask since it took a while to get set up last night haha Was looking to embed rolldown into a rust app directly 100
Luke Edwards @lukeed.bsky.social · 10/12/2024The only caveat (for Object.keys) is some mraleph article that showed that loops over an Object.keys() list makes it a static list and faster access … somehow making the extra loop cost worth it..? Fuzzy memory but it’s somewhat there. Overall yes 1000% 030
Luke Edwards @lukeed.bsky.social · 07/12/2024It’s semantically different to pass in a URL vs an object of properties. The latter would/still necessitate normalization because it’s just a way to pass in raw string values for the parts cared about URL = “this is fully parsed and normalized, skip to stage 2” 000
Luke Edwards @lukeed.bsky.social · 07/12/2024Hence hope for amending spec, adding init: URL type, which leads to fast path 240
Luke Edwards @lukeed.bsky.social · 07/12/2024Right, that makes sense why string is faster. I get that reasoning, but on the spec level, I would argue that passing in a URL *should* be taken as truth, *because* the setters are always running ensuring a valid, serializable instance. Doing all that work again is redundant, esp per property. 100
Luke Edwards @lukeed.bsky.social · 07/12/2024There's no special mention given to `if received a URL, take it as is` And to your point: extra R.I.P if not using Ada parser.. cuz then the `new URL` cost is heavier. 110
Luke Edwards @lukeed.bsky.social · 07/12/2024Yes, this is the problem -- or at least why passing in URL is significantly slower: urlpattern.spec.whatwg.org#high-level-o... Point 8 says that for *every* property, it must be canonicalized, which must be done by creating *its own* URL for parsing So passing in a URL loops all properties; is N+1urlpattern.spec.whatwg.orgURL Pattern Standard 130
Luke Edwards @lukeed.bsky.social · 07/12/2024Yeah I'm seeing the same. String inputs are the fastest (but still slow overall). Passing in any object, including a proper URL instance is slower than strings It seems like every object property goes thru canonicalization, which creates its own URL urlpattern.spec.whatwg.org#canonicalize...urlpattern.spec.whatwg.orgURL Pattern Standard 120
Luke Edwards @lukeed.bsky.social · 07/12/2024I'm seeing this on Chrome and Deno What it suggests to me is that non-strings are converted back to string, then for each URLP property, doing repeating parsing -> canonicalization step Sure it may invoke Ada/URL a number of times in that process, but my point is that it shouldnt be at all. 100
Luke Edwards @lukeed.bsky.social · 07/12/2024See linked benchmarks I’m not coming for or doubting Ada. I don’t think Ada is even involved in what I’m benchmarking given that Node isn’t pictured anywhere here. URLP.exec(“https…”) faster than URLP.exec({ pathname }) faster than URLP.exec(URL) faster than URLP.exec(new URL)urlp.ec 100
Luke Edwards @lukeed.bsky.social · 06/12/2024Yes I followed that work 👍 A simple `input instanceof URL ? input : …` should already make a big difference. But I have concerns with the way the spec reads, cuz it specifically calls for a fresh state every time. 020
Luke Edwards @lukeed.bsky.social · 06/12/2024Great but is the spec amendable or too far gone? Rebuilding a URL state every exec (even if given URL{} instance) seems not great 320