Peter Reeves

Peter Reeves

@peterreeves.bsky.social

Web developer in Sydney. Interested in Electric Unicycles (EUCs) and board games. (He/Him)

153 followers667 following295 posts

I tried using CSS subgrid for the first time and, eugh, why do I have to have everything in the chain marked as `display: grid`? I thought it just would find the nearest ancestor but no.

Can't believe it's a year later and nothing has changed. In fact things might be getting worse??? 🫠 discourse.threejs.org/t/three-js-m...

Peter Reeves@peterreeves.bsky.social

What is it about threejs itself and related projects that makes them all just JS with no TypeScript definitions? I really want the culture around threejs to embrace TypeScript already. I'm not thrilled about building 3D web apps with no type safety at all.

Hello lazyweb. I'm loving SvelteKit's `form` Remote Functions, but I'm constantly finding myself reaching for `enhance` so they don't reset after submitting. Is there a better way I'm missing?

Peter Reeves reposted

have you seen the new supply chain vuln? don't update tubu. it's literally on heebee. they got poodee's deps. they infiltrated dippy. roll back weeno. disable scripts in ~/.gumpyrc. it's in poob. do not install poob. do not update poob. uninstall poob right now. poob has it in for you.

I can't fucking believe the amount of glue AWS makes you have to do yourself sometimes. Like for real, you're the experts! Why am I doing this? I'm just trying to get your own fucking services to talk to each other!

It's so funny every time I see WebComponent or HATEOS people push buildless approaches, usually with the line of "never fight with webpack again!". Bruh, nobody is using webpack. We're all on Vite now, and it's magical. I've never had a webpack style issue with Vite. Never. Vite just works.

Spent an hour setting up a SvelteKit project to stream updates using newline delimited JSON from the server that is powered by runes, before remembering that `$effect` doesn't run on the server 🥲 Oh well, I guess I refactor it to use `update` callbacks...

I don't understand people calling for employees of a company to distance themselves from a company's opinion. Because we all know that if some (non-CEO) employee tweets something that it's their own thought. But somehow if the CEO/company tweets something all employees need to make a statement?

In this hellish job market where jobs are being cut left and right, risking your own employment to contradict your employer seems like a bad move. I think people who demand employees make a statement are being completely unrealistic.

I'm beginning to wonder though, with all their LLM focus, will Remix be usable WITHOUT using LLMs? Or will the experience be miserable boilerplate everywhere? In a choice between: a) FW that's ergonomic & efficient for humans b) FW that's LLM friendly I feel I'd want to maintain a) every time

Frameworks like Svelte and Solid do an excellent job at minimizing the amount of code you need to write. Even React is doing better now that it can add in all the memo calls for you. My least favorite web dev memories are debugging through piles of copy pasted imperative spaghetti.

What is it about threejs itself and related projects that makes them all just JS with no TypeScript definitions? I really want the culture around threejs to embrace TypeScript already. I'm not thrilled about building 3D web apps with no type safety at all.

Just hit a fun scenario where prettier removes parenthesis from an expression, but oxlint with the "fix" flag adds them back in (which in my opinion, is the correct choice). I can't wait for the oxc formatter to come out so I can rip out prettier from my projects.

Another day, another "why the fuck does `fetch` STILL not have progress events?!" occurrence that derails my project and makes me lose all momentum. Please for the love of god: browsers, Node, Deno, whoever. Just add download AND upload progress events to fetch. How did you release it in this state?

View full thread

Yeah, nullish coalescing is neat, but I could work around that if it wasn't in the language. I can't work around functionality that used to exist in `XMLHttpRequest` but doesn't exist now (because things rightfully use `Request` & `Response`, and `XMLHttpRequest` doesn't exist in node anyway)

I can't believe we're in this era where React, Svelte, Solid, and other frameworks are all investing heavily in new ways to stream data, but you can't get any of them to display a progress bar because JS has API holes you could fly the fucking moon through.

Another day, another "why the fuck does `fetch` STILL not have progress events?!" occurrence that derails my project and makes me lose all momentum. Please for the love of god: browsers, Node, Deno, whoever. Just add download AND upload progress events to fetch. How did you release it in this state?

Peter Reeves reposted

Replying to @samuel.fm

It’s literally testing the performance of rendering an array into a table/list Do you not have that in your app? I have like 20 of them in a normal app It’s a big and general enough task to not qualify as a microbenchmark

Peter Reeves reposted

Using vanilla JS after only using React for yrs and it feels like a high school reunion …nostagic …vaguely familiar …I used to enjoy spending time here …ah, I probably have been blocking this out of my brain on purpose …wtf is going on …how was I living like this …I see why we haven’t kept in touch

Can someone who is good at TypeScript please help me? I don't understand why it's possible to instantiate a new `Thing` here with two different arguments. Shouldn't a generic parameter on a class require that types passed to a and b match?

Actually I think I get it now. TS isn't forcing it to be a concrete type at construction, so it can be a superposition of both. Looks like I'll need to find another way to encode what I want in types.

Ever since I discovered SvelteKit's ability to stream promises, I now nerd snipe myself constantly trying to stream data. "This data is optional and will take time, I should stream it" "I should stream the results of this processing on the server to the client get a perfect progress bar"

"Pagination? No, I'll just return all the results in a stream powered by an AsyncGenerator" "If I re-architect this section, I can stream the result from S3 to the client and to a local cache at the same time" "This upload should be a stream, just to be safe"