HNHacker News
TopNewBestAskShowJobs

erhaetherth

305 karma · joined May 11, 2023

submissionscomments
erhaetherth··on Htmx and the Rule of Least Power
I still use Twig templates for a couple of my simple marketing websites, backed by about 100 lines of PHP to make it work. Simple enough that my non-programmer friend can edit it, powerful enough that... well it's not that powerful but it can do templates, which is all I want out of it. And I can still fall back to PHP if I do need to sprinkle some server-side magic in it. Stable, no maintenance, just keeps working and working, over a decade later.
erhaetherth··on Htmx and the Rule of Least Power
React itself has been pretty smooth, and I've been using it since 0.14. Not on any massive projects mind you, but still.
erhaetherth··on Htmx and the Rule of Least Power
Better choose ExpressJS then. They still haven't quite made it to 5.0 since they started in 2014.
erhaetherth··on Htmx and the Rule of Least Power
To use his own "butter knife / cheese knife / lightsabre" example, it's like if I want to butter some toast, I should choose the butter knife, right? Oh but now I want to cut that melon and the butter knife is the only knife I have because I chose the least versatile/powerful knife because they told me to.
erhaetherth··on WebAssembly adoption: Is slow and steady winning the race?
But you can do file association on the web https://developer.mozilla.org/en-US/docs/Web/Progressive_web...
erhaetherth··on WebAssembly adoption: Is slow and steady winning the race?
Sounds like Tauri, which is built on Rust instead of Go.

> By using the OS's native web renderer, the size of a Tauri app can be less than 600KB.

erhaetherth··on ESLint v9.0
DataTables released in about 2008 (https://cdn.datatables.net/1.0.0/js/jquery.dataTables.js) and just released 2.0 on Feb 15 this year (https://cdn.datatables.net/2.0.0/). No BC-breaks that I'm aware of in 16 years.

Not saying every project can do it, but some of these ESLint changes seem rather unnecessary.

React always adds warnings in 1 major release and then removes in the following major release, meaning if you have no warnings you can just upgrade without fear, which is quite a nice way of doing it.

erhaetherth··on Why Don't I Like Git More?
There's also Jujutsu; https://github.com/martinvonz/jj
erhaetherth··on Identifying Stable Diffusion XL 1.0 images from VAE artifacts (2023)
As a user, I don't really care one way or the other. I'm not trying to trick anyone. I also don't care if they can readily tell if my image was AI generated. I don't post much media though. If I did, I'd probably use it for a game. And if it's a game, does it matter if I touched it up in Photoshop vs StableDiffusion? There's going to be some processing either way to get the art asset I need.

The toolmakers might have a mild incentive to tag images generated with their tool to prevent too easily creating these 'fakes' or just for analytics purposes so they can see how their output is spreading.

But regardless, it's a fools errand like the other poster said. Anyone that is serious about tricking the mass media will strip out the watermark or use a different tool.

erhaetherth··on Why CockroachDB doesn't use EvalPlanQual
I'm having trouble with the example given.

If `UPDATE player SET level = 'AA' WHERE team = 'Gophers';` is executed before the player swap, then why should "Stonebreaker" be upgraded to "AA"? I'd be pretty mad at my database if I sent those 2 queries in sequence and my DB decided to re-order them.

The sleep actually really complicates things here. I understand some queries run slower than others and the sleep is a useful tool to artificially slow things down, but now I don't know I don't know if I should interpret that as one command or two. If `WITH sleep AS (SELECT pg_sleep(5)) UPDATE player SET level = 'AA' FROM sleep WHERE team = 'Gophers';` is atomic then I'd expect it to put a lock on the 3 Gophers (which doesn't include Stonebreaker), wait the 5 seconds and then complete the update. The player swap would be blocked for those 5 seconds because it touches a row that's being updated.

erhaetherth··on Oh, Cool, Our $69K Fisker Ocean Is Only Worth $21K Now
No, but if you buy a car it's not unreasonable to expect to have a functional car you can drive for 5 years. If your car turns out to be a lemon and you want to sell it in the first year... well, that's a shitty situation regardless of "financial investments"
erhaetherth··on Bun 1.1
I don't buy it. That might be how every tool today works, but there's no reason V8 or whatever can't run TS the same way it runs JS.
erhaetherth··on Bun 1.1
Right...but if you're going to fork it and create fragmentation, then we might as well go back to Node which has at least been stable for the past few years.
erhaetherth··on Bun 1.1
Languagy type things tend to be more stable than the myriad of random npm packages out there. Hopefully Bun remains pretty stable.

I'm currently fighting PHP + Laravel. I want to upgrade PHP but I can't because the version of Laravel I'm using depends on an older version of PHP. So I have to upgrade them both in lockstep anyway.

erhaetherth··on Bun 1.1
It's still faster. `bun test` is like a gajillion times faster than jest + all the voodoo to make it run TS.
erhaetherth··on Bun 1.1
If it is... they're doing a really good job staying composed, because I couldn't tell. It would be amusing if true.
erhaetherth··on Bun 1.1
That's what I've been waiting for too. The URL params always seemed rather sketch to me. No bundlers seem to be using it that way though.
erhaetherth··on Bun 1.1
Bun has -i/--install=fallback which I thought was pretty similar to Deno but I haven't used Deno much to compare. I was thinking about starting to write my scripts with `#!bun -i` but haven't fiddled with it much yet.
erhaetherth··on Bun 1.1
It is very cool, but not new. zx does that too. And I did the same thing for MySQL years ago.
erhaetherth··on Backdoor in upstream xz/liblzma leading to SSH server compromise
Is 5.2.2 safe? Just 5.6.0 and 5.6.1 are bad?
erhaetherth··on Don't fuck with paste
How is the real owner going to know to cancel the delete? Did it send them...an email?
erhaetherth··on Don't fuck with paste
Hah..you just reminded of me of something I implemented at my old company. We had a similarly short timeout, so I put in a 'heartbeat' that would refresh the timeout if you move your mouse or do anything.
erhaetherth··on Don't fuck with paste
Pretty sure Microsoft did this at some point. Maybe for Hotmail.
erhaetherth··on Zshell
It still boggles my mind how CLIs are slow as molasses even on high end PCs. I will never understand.
erhaetherth··on FastUI: Build Better UIs Faster
No, hadn't heard of that. Looks like it's doing a bit too much. I'm not sold on ORMs or auto-genned scaffolding apps. The tRPC lib they're using OTOH looks interesting. Kind of. Looks like I'd have to give up my server lib/router for theirs, but then it looks like they botched the client-side error formatting which is the one thing I haven't solved: https://trpc.io/docs/server/error-formatting How is this good UX?

    <pre>Error: {JSON.stringify(mutation.error.data.zodError, null, 2)}</pre>
Formik (https://formik.org/docs/api/errormessage) does OK with the "touched" and "errors" objects, that helps you render out the error messages nicely, next to the inputs, but for my very first use-case I wanted to validate a File input and it seems to struggle with that a bit. Can't do it without suppressing some TS errors but maybe it's an edge case. And it of course doesn't handle the server half of the equation. So.. yeah.
erhaetherth··on Show HN: Darwin – Automate Your GitHub Project with AI
FWIW, when I integrate APIs, I always try to ask for as little as possible. Years ago I was trying to integrate some 3rd party logins and they're all trying to give me the user's email address. I'm like I don't even need that, just give me a unique identifier I can throw in my DB. Nothing more.

Better yet, I should be able to request a list of "required" permissions and "optional" permissions. Sometimes optional stuff is handy for optional features or to prefill stuff for the user to make it easier on them but not required for the app to function.

erhaetherth··on Aliens haven't visited. Why are so many smart people insisting otherwise?
Sure, they're so far advanced that we can't see them, and they just came over here to chill. Like a nice vacation for them. No desire to extinguish us or talk to us. Just hanging out.
erhaetherth··on The Layoff
Vague titles are bad news 99% of the time.

I say 99 not 100 because a certain VP in my org chart likes to schedule meetings called "News and updates" which is actually very innocent. Maybe he's playing the long con.

erhaetherth··on Hyrum's Law
In times of lay offs, a bus factor of 1 is preferable.
erhaetherth··on Air Canada is responsible for chatbot's mistake: B.C. tribunal
Those 2 sentences are identical? Unless they meant the company that made the chatbot was a separate legal entity. If the chatbot itself is a "separate legal entity" then that's basically saying the same thing.
← PreviousPage 2 of 7Next →