HNHacker News
TopNewBestAskShowJobs

jasonkester

23,132 karma · joined April 10, 2007

In order, here's my business, blog, current project, claim to fame, and rent-paying product:

http://www.expatsoftware.com/

http://www.expatsoftware.com/articles

https://stravaeger.com/

http://www.twiddla.com/

https://www.s3stat.com/

I'm jason@ any one of those domains if you'd like to get ahold of me.

submissionscomments
jasonkester··on Show HN: How long do I need to work at my salary before I can coast, or retire?
Personally, programming computers is one of my favorite things to do, so I'm with you on wanting to keep doing it.

It's just the part where you have to do 2000 hours of it each year for somebody else that I never got along with, so I spent the first 20 years of my career making sure I didn't need to do that.

I "retired" in my 30s from fulltime jobs, and focused on building SaaS products and contracting. That left me not really needing to work at all anymore somewhere in my 40s, though I kept at it a while after that since the companies I was working with were full of fun people.

Now, I dip in and out as I like, picking up the odd contract but mostly doing my own thing. I've been proper, capital R, Retired for the last few years, building a game to keep the brain fed and the skills up.

With luck, I'll also write some code on my dying day. But it'll be on my terms.

jasonkester··on I don't want to read what you didn't write
You could try throwing in the odd homonym in place of an important word so that people know it must have been written by a human.
jasonkester··on Google AI Studio fakes data deletion. VRP auto-banned me in 60s for reporting it
But that's silly. If you don't trust a website with your cat photo, don't upload your cat photo the website.

As I said above, the only thing my site does with your cat photo is show it back to you when you ask to look at it. No training. No selling your data to anybody. All I'm doing is storing it because you asked me to, and showing it to the people you ask me to.

You can certainly ask me to stop showing it to people. But please don't get all excited about how your rights have somehow been violated.

The fact is, people click delete buttons without thinking about it. Those people get way more mad when they can't undo that delete than you are now.

jasonkester··on Google AI Studio fakes data deletion. VRP auto-banned me in 60s for reporting it
Anybody who has ever run a website with customer data can instantly understand why they do it this way. I don't see any malice.

It's simple, really. You have a website where people can upload their cat photos. There's a delete button. People click the delete button, read the "This will really Delete your Thing. It's Permanent. You CAN'T GET IT BACK!" warning, and click the confirm button.

Then you get an angry email (and twitter post, and blog entry, and Reddit mob) saying "I can't believe you deleted my photo without asking. That was my favorite cat photo it was my only copy I'LL SUE YOU!@!!"

So you go into your console and flip the .isActive bit back to 1 on that photo, send off your stock apology, and get on with your day.

To run your business any other way is madness. You're not training or selling or otherwise misusing that cat photo. You just don't want to deal with that hassle every day. So you "delete" things by moving them someplace where they're not public anymore.

It's just what you do...

jasonkester··on Ask HN: What are you working on? (September 2026)
Somebody suggested tagging posts to specify whether they were things you built vs things you asked an llm to build.

That was just a copy paste of one of the options.

jasonkester··on Ask HN: What are you working on? (September 2026)
Good idea. I've edited my post to include that.

Frankly, it's surprising that we'd even need to stipulate something like this. It would never occur to me to post to a "show us what you're cooking" thread with: "Look what I asked DoorDash to bring me!", but I guess that's where we are now...

jasonkester··on Ask HN: What are you working on? (September 2026)
[HUMAN-CODE]

I'm building a video game. It's part Valheim, part Ultima IV:

https://stravaeger.com/

You can play the demo in the browser now (mobile as well as desktop), but I'll be packaging it up for Steam soon.

It's all vanilla javascript, html and css. No AI, no 3rd party game engine, no build system even, and just a couple external dependencies for things like networking that I didn't want to reinvent myself.

It's been fun. I'd love to get some feedback!

jasonkester··on Three sites made 215,128 “best software” pages for AI. Perplexity cites them
I expect that after enough cycles of it training on it’s own output, it will converge on the One True Paragraph filled to saturation with AI cliches, and will refuse output anything else.
jasonkester··on Fine, I'll build my own text editor
Don’t forget the old “downvote the other comments so mine goes to the top “ trick.

All your best stuff will get downvoted by at least somebody eventually. For some reason, that somebody always gets in early enough that you notice.

jasonkester··on I were 17, I'd learn how to build LLMs from scratch
> Personally I do both

That’s what you get from listening to “successful people”. You get to learn about all the things they tried that failed, then the things that did work on that 24th try, which was successful.

The “survivorship bias” people always seem to assume that the “survivor” lucked into his fortune on his first try ever, so he can’t have learned anything, so we don’t have to listen to him. But that’s seldom the case.

I’ve written about this before:

https://expatsoftware.com/Articles/survivorship-bias.html

jasonkester··on Why Book Corners won't sync contributions back to OpenStreetMap
It's best not to think of BigCentralThing as your "partner". They're just the big central thing that lists things. They have their own motivations that don't matter to you, so long as they continue to list the things.

I used YouTube as an example earlier. OSM is a good one too. Neither needs to care about you. They only need to care about their own job, which is knowing about their list of things (videos, roads, electronic part numbers, etc.). So long as they continue to do that, and have an easy way to tell them about the things they do care about, you're good.

They're already "putting in the work". Because it's their work to keep the list. That's all they do.

jasonkester··on Why Book Corners won't sync contributions back to OpenStreetMap
Pretend the SPOT is youtube, for an example. Upload your video there, then drop a link to (any variation of) the url into this text field. A quick import script runs, and now we have the video in our database too. Or at least, a record with a link to it and whatever info we need to pull from it, along with extra fields we need to do whatever our website does.

It still lives in both places, but (assuming other websites also use the same Single Point Of Truth) if the title changes or whatever, everything stays synced up everywhere.

In my concrete example, bleau.info doesn't need to know that a given line has never had an ascent by anybody shorter than 165cm. So I write that down on my copy. But I don't need to track anything else about that line to use it and to link to Boolder, 27 Crags and 8a.nu's pages about it.

jasonkester··on Why Book Corners won't sync contributions back to OpenStreetMap
I haven't seen this in practice. For my site, roughly 100% of the new additions to our database come from people climbing a route that's in the Big Database that we just don't know about yet.

It's just a matter of dropping a link to that route's page into an importer to scrape it in and have it be usable at our end.

But yeah, for a space where the Big Database didn't often have a record for the things your users want to add, I could see it being more of an issue.

jasonkester··on Why Book Corners won't sync contributions back to OpenStreetMap
It sounds like the real issue is the "stable ids" one. You need a Single Point of Truth that matches up stretches of waterway with an ID that won't change. You can then sprinkle .isNavigable and such onto your record along with a reference to that magic ID. But yeah, if they don't provide is, they're not a very good point of truth.

I have to deal with this in my little bouldering database as well, since the source I mentioned does in fact change or reuse its IDs every so often. There's already a periodic update that has to happen on any given boulder problem, to pull down changes from the other end. That also needs a way to self-heal if a record at the other end splits off into two pieces, and my ID now points to the wrong half of it.

It's all stuff you have to keep on top of, but your idea of keeping your own table with each record pointing back to OSM seems like the only path that avoids madness. Even it it does take some work to keep those references up to date.

jasonkester··on Don't be a meat proxy
No. I’m expecting everyone to answer direct questions that they are the only one who can answer by thinking up the answer with their own brain then writing or speaking that.
jasonkester··on Why Book Corners won't sync contributions back to OpenStreetMap
Yeah, it's tough because to be the Single Point of Truth, you'd need to be the List of Parking Places in the Netherlands, not just the accessible ones that you care about. You might even need to be The List for Europe.

Being The List of anything is a big, thankless job filled with nonstop toil to keep it up to date. It's not something you want to do unless it's truly your passion or somebody is paying you (a lot) to do it.

The problem is that building to tools to Be The List is pretty straightforward and fun. You only learn about the toil you've signed yourself up after the fact, once people start relying on it.

Good luck!

jasonkester··on Don't be a meat proxy
I just can’t understand why this is not a fireable offense.

Like, I can see getting a strong warning the first time somebody notices you do this, then if you persist you’d have to be let go.

Just like anybody else who is clearly not doing their job.

Why would you tolerate this sort of behavior at your company?

jasonkester··on Why Book Corners won't sync contributions back to OpenStreetMap
I run a website that's in a similar situation, and it sounds like the author is close to the correct solution, but needs to take things one step further:

There needs to be a Single Point of Truth, and it should not be your little website.

BigCentralThing should be the official database that knows about where all the Whatevers are. Your little Whatever Locator site should only ever _pull_ from them. Need a new Whatever in the database? Get BigCentralThing to add it, then pull it in.

As an example, I run https://bettybeta.com/, a select guide to bouldering in Fontainebleau tailored for Women and short folk. We have a list of boulder problems in our database, but no way for anybody (even an admin) to add a new one. Every boulder problem record includes a link to its page at https://bleau.info/, who are dedicated to cataloging every climb in the forest.

Bleau.info is the Single Point of Truth. If one of our users does a First Ascent and wants to log it with us, we'll point them at that other site with instructions on how to get their climb in there, and tell them how to get us to import it. Any other path would lead to our database and the "official" database eventually diverging.

There are half a dozen other websites doing similar things to us. Some do what we do, but the ones that don't quickly find themselves out of sync and end up with a lot more work on their hands.

It's tough because, as the author says, writing the flow to import at our end is really easy (I've written it, before coming to this realization and hiding it again). But doing it is a trap.

jasonkester··on The Difference Between a Button and a Link
“Logout buttons must be buttons because they trigger unsafe requests”

But this is just more of the pedantic developer nonsense that everyone is complaining about here.

I’ve built tons of sites in my time, and the logout “button” is always a link to “/?logout=1”. In 30 years, this has never caused a problem.

jasonkester··on Show HN: Bento - An entire PowerPoint in one HTML file (edit+view+data+collab)
Actually, for me, being llm generated makes this more impressive because it marks the first real world example of a genuine new product built with ai that I have ever seen.

For 6 years I’ve been reading hype about amazing productivity boosts from this stuff, but until now the expected flood of cool new products never arrived. Just lots of tools and harnesses and swarm coordination stuff to help companies spend more money on the hype cycle.

But finally somebody actually built an app and released it. I call that a milestone.

jasonkester··on AI advice made people less accurate but more confident – sudy
Can we save everybody having to put “I know about ChatGPT, but I’m asking for advice from an actual human who has experience with this so please refrain from answering if you’re not one of those” on every post they make, and just have that be a baked into the etiquette when discussing things online?
jasonkester··on AI advice made people less accurate but more confident – sudy
> We’ve just got this wild culture where everyone puts such a premium on their own time but now doesn’t value anyone else’s

My favorite example of this is dropping a random acronym into a message board reply and repeating it five times without ever defining it, expecting every single person who reads your post to google it themselves to understand what you’re talking about, thus saving you having to type three words yourself.

“I tried BDI for a while, and I found the important thing is to focus on biased BDI and not just the vanilla BDI that you see so much of in the BDI community”

… tossed into a 30 comment thread where no other comments mention anything similar.

jasonkester··on Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day
For what it’s worth, I recently retired from a 30 year career as a developer and while I’m aware of all three of those things, I’ve never used any of them in or out of work.

And I’ve hosted my own web server these last 20 years.

jasonkester··on The zero-cost fallacy: open-source software in the agentic era
I had to flag this article for violating HN's policy against submitting things written by AI.

Which is a shame, because the premise is intriguing. But it's pretty rude to expect every one of us to sift through ten pages of AI tells to reverse engineer the prompts that hold the information the author wanted to convey. As the saying goes, "if you couldn't be bothered to write it, why should I bother to read it?"

So I ask the Author: Please write this article for us using your own words, taking your own time to convey your thoughts. Submit it and let us read it.

I bet it will be better than this.

jasonkester··on Box3D, an open source 3D physics engine
I don’t think this is about fairness so much as a wish that developers would look out for their own self interest just a tiny bit.

We all get the full-court open source brainwashing during our early years of learning about programming, so it’s hard to ever step back and look at creating something from any other lens than “I should release this as open source”.

That’s the default, and anything less might get you grumped at by “the community”, so it’s the safest option.

But if your thing can be picked up by a megacorp and used as the basis for their $100M product, it might be in your best interest to carve yourself out a little clause that lets you capture some of that.

jasonkester··on Ford AI hiccups push carmaker to rehire ‘gray beard’ inspectors
I’ve had this happen a few times in the past, back when you’d fire your expensive people and replace them with cheap human labour instead of AI, so I have a word of advice.

Be sure to have “updated your rate schedule” recently, which explains why you’re now twice as expensive as before.

They know how bad they screwed up and how bad they need you now. I’ve never had anybody refuse a giant rate bump now that we were all on the same page.

jasonkester··on Show HN: Write SaaS apps where users control where their data is stored
I don’t get it. Why did you title your hn submission after a feature that doesn’t exist?

Why not use that space to say something that your thing actually does? It’d save everyone a lot of confusion.

jasonkester··on Show HN: Write SaaS apps where users control where their data is stored
I tried your monsterwriter site (nice looking app, by the way), and logged in with google. I don't see any option to "control where my data is stored". As far as I can tell as an end user, I've just created an account on your site.

Reading the Getting Started code, it only shows me configuring storage as a developer. Nothing about users doing any sort of bring-your-own storage, let alone firing one up from scratch with a friendly workflow.

What am I missing?

jasonkester··on Show HN: Write SaaS apps where users control where their data is stored
Yeah, you definitely should have linked to that instead of a Github repo (or copied the text across to the repo readme).

The copy is still pretty focused on the Developer experience building something that uses your thing. But I can't imagine anybody choosing to use this for a product until they know for sure that the end-user experience is painless and frictionless.

I'm actually in the market for something like this. I'm building a game that could benefit from letting people store their savegames in the cloud, but I don't see any particular reason for it to be _my_ cloud. I'd rather not store user/pass information or data at my end, and I'm sure players aren't interested in making an account on my site just to play the game.

If there was something like this that was sufficiently frictionless (on the order of magnitude of going through a "Log in with Google" flow) to set up, I'd be keen to give it a shot. But if there was anything user facing that felt "Open Source", that would kill the idea dead.

Do you have an example of a user setup flow?

jasonkester··on Show HN: Write SaaS apps where users control where their data is stored
Sounds cool, but you never got around to explaining how “users control where their data is stored “, which is odd because that’s the title of your post.

So if I’m a user of an app built with your thing, how do I go about controlling where my data is stored? What’s the experience like for the end user to set this up and connect it to an app?

Page 1 of 34Next →