HN user

DanHulton

5,678 karma

dan (at) danhulton (dot) com

---

Working on Nodewood (https://nodewood.com/) - a SaaS starter kit designed to save weeks or months of development time. Skip out on the boring user and subscription boilerplate, and start writing business logic out of the box!

---

Senior Software Engineer at https://www.evisort.com/

Posts38
Comments1,122
View on HN
greaterdanorequalto.com 1y ago

AI code generation as an agent of tech debt creation

DanHulton
5pts0
greaterdanorequalto.com 3y ago

I've Soured on Open Source

DanHulton
4pts1
nodewood.com 3y ago

Show HN: 1.0 launch of Nodewood, a Node.js SaaS starter kit

DanHulton
2pts0
nodewood.com 4y ago

How to Screw Up When Choosing a Business Name

DanHulton
2pts1
greaterdanorequalto.com 5y ago

Evaluating Modest SaaS Business Ideas

DanHulton
365pts43
ipaidthemost.com 5y ago

Show HN: I Paid the Most

DanHulton
1pts1
ipaidthemost.com 5y ago

Show HN: I Paid the Most

DanHulton
5pts3
nodewood.com 5y ago

How To Speed up Docker on macOS by 100% or more

DanHulton
3pts0
nodewood.com 5y ago

How To Speed up Docker on macOS by 100% or more

DanHulton
2pts0
nodewood.com 5y ago

Show HN: Nodewood, a JavaScript SaaS web app starter kit

DanHulton
4pts1
nodewood.com 5y ago

Show HN: Nodewood, a JavaScript SaaS web app starter kit

DanHulton
5pts1
nodewood.com 6y ago

An In-Depth Look at Developing a Simple Feature with Nodewood

DanHulton
1pts0
nodewood.com 6y ago

Code to Write to Start a SaaS

DanHulton
84pts32
nodewood.com 6y ago

The List of Code You Need to Write to Start a SaaS

DanHulton
2pts0
greaterdanorequalto.com 6y ago

Kicking the “For Loop” Habit

DanHulton
3pts0
greaterdanorequalto.com 7y ago

You Probably Have Too Many Free Trials

DanHulton
1pts0
greaterdanorequalto.com 7y ago

You Probably Have Too Many Free Trials

DanHulton
1pts0
greaterdanorequalto.com 7y ago

Who Cares About Trial-to-Paid Conversion?

DanHulton
1pts0
greaterdanorequalto.com 7y ago

If You Don't Respect Your Users, You Don't Deserve Their Respect

DanHulton
2pts0
greaterdanorequalto.com 7y ago

Don't Waste Time on User Onboarding

DanHulton
208pts112
greaterdanorequalto.com 7y ago

Trial-to-Paid Conversion: Your SaaS Superhero

DanHulton
2pts0
danhulton.com 8y ago

Solving the Node require() path problem for once and for all

DanHulton
1pts0
www.chatandslash.com 8y ago

Show HN: Chat and Slash – An RPG You Play in Slack, Now in the App Directory

DanHulton
1pts1
danhulton.com 10y ago

Code faster with simple Sublime Text improvements

DanHulton
2pts0
receiptron.com 11y ago

Show HN: Receiptron – The friendly receipt-saving robot

DanHulton
1pts1
danhulton.com 12y ago

Rage-quit support for fish shell

DanHulton
2pts0
danhulton.com 12y ago

Is scarcity alone valuable? A social experiment.

DanHulton
2pts3
blog.danhulton.com 13y ago

Fine, eBay. Here’s your $2. I hope you choke on it.

DanHulton
292pts122
panic-press.com 13y ago

An in-depth review of the Hotfix WordPress Plugin

DanHulton
1pts0
news.ycombinator.com 13y ago

Show HN: My WordPress Plugin adding 2-factor auth via Twilio

DanHulton
8pts1

One of the big dead giveaways for AI videos is the sequence of slow pan shots without any sort of real action or focus. Once you start seeing it in a few of them, you'll start seeing it in _all_ of them. Just shot after shot of a slow pan of a scene with minimal action happening in only a few areas.

Resetting Xbox 16 days ago

Switch vs Switch OLED is fine, comparatively, because you are forgetting about the worst (non-Microsoft) naming choice of all consoles: the New 3DS.

This lead to situations where you could have a new 3DS that wasn’t a new New 3DS, and didn’t play the games you bought with it. You could also, somehow, have an old New 3DS, a logical impossibility.

Anyone in charge of naming anything that just calls it the “new” thing should be fired for not taking their job seriously.

Resetting Xbox 16 days ago

I mean, the first one was just called Xbox.

(Tiny rant - and even THAT name sucked. Internally, since it ran on DirectX (already a name that only a mother could love), it was called the DirectX Box. And rather than come up with a real name, they got attached to their lazy idea and shortened it to Xbox. They have made miserable naming choices for this thing since day one. Since BEFORE day one.)

There’s certainly a debate as to whether animals are conscious or not, and if we’ve just been engaging in a kind of human chauvinism all this time, but I mean consciousness definitely exists. There’s an “I” in here that perceives, and it’s reasonable to extrapolate that I’m not particularly special, that others that have the same parts as me have the same properties (consciousness).

It’s not an absolute. The fallacy doesn’t imply that every building would be better with a doorman. But it does suggest that buildings that DO have them aren’t necessarily making a wise choice by getting rid of them.

At this point, though, I mean if you don’t get it, you don’t get it.

This is what I run on an M5 MacBook Air 32GB. Works great.

I’m not having it build whole features from scratch, though. I give it pretty explicit instructions closer to the class or function level, and it still saves me an immense amount of time, while I’m very connected to the code that’s written.

Definitely the sweet spot for me.

What the article misses is that money is saved for the company by moving the work to the customer / end user.

What? No, you're making the Doorman fallacy here, explicitly.

The company THINKS they're saving money by pushing the work to the customer/end user, but there's more to wait staff than just taking orders and payment - they provide the ability to smooth over any difficulties experienced during the meal, they signal status, etc, which would theoretically allow the restaurant to charge more than if they force customers to do all this work themselves.

Not to mention, if I had an experience this miserable at a restaurant, I wouldn't be back, which is a direct loss in revenue.

Restaurants aren't monopolies, except in really extreme cases.

Nothing on that list sounds like a particular hardship. Your "Oh, and" is unfortunate and ought to be addressed, but then again, that was intended as your cherry-topper, not your main course.

This is people's _homes_ we're talking about here, not a baseball card where privileging the owner is without too much consequence. If you lack the empathy to understand why this is a special case, maybe don't be a landlord.

The AirPods Effect 1 month ago

Correlation ... causation

Yeah, I'm surprised this isn't highlighted more in these comments. "A small study" and "an article" and such seems to be the basis for this article, and yet there's seemingly no work done to identify if it's actually that people's attitudes have changed, and they're adopting headphones because of that.

It's not as if there's been major, literal earth-changing events that happened in incredibly recent memory that might have changed how people socialize or interact or anything, right? Let's just blame a specific brand of a piece of technology that has existed for decades, instead.

Why would you even WANT to become a billionaire?

Wealthy, sure, but becoming a billionaire effectively destroys your place in any of your social circles. It obliterates any dynamics of trust and interdependence you may have and replaces them with a gnawing unease about if they’re still hanging out with you, or if they’re hanging out with the money.

Not to mention, Graham entirely fails to differentiate between EARNING a billion dollars and HAVING a billion dollars. You can be part of a structure that earns a billions dollars without “cheating”, there are all kinds of companies that do that. But if you let that wealth accumulate in yourself? There’s something wrong there. You are almost guaranteed to be under-valuing the contributions of others, or the externalities of the systems in which you operate or SOMETHING.

And even if you’re not? That’s a dragon’s hoard of money. You’d have a very difficult time spending that much money on yourself and your lifestyle, and I find it hard to justify sitting on the rest, just to have it. It is literally a hoarding problem at that point. You do not need that money, it is actively making your life worse (look up the Billionaire’s Social Calendar: it’s the list of ultra-wealthy-only events that billionaires must attend if they want even a chance of interacting with people as peers instead of dependents), just let it go.

Yeah, honestly, as one of those managers with calendars full of 1:1s, I was kinda surprised at this. They’re frequently the most-useful meetings I have all week.

The first ten minutes are usually kinda whatever, just catching up or chatting, but at around the halfway point, the REAL shit comes out. The things that were bothering them, or the task they were stuck on, or the team that’s been blocking them, or in better weeks, the ideas that have been really exciting them, or the people they’ve really been enjoying working with, or the tools they’ve been having success with, that kind of thing.

All of that stuff is INSANELY actionable for me. Sure, I can do project-steering work until the cows come home, but all these “little things” I find out in 1:1s that let me reduce friction or create opportunities, that’s gold.

I dunno, the rest of the article feels very AI-written as well. Immediately after that, it goes into an overly in-depth bullet-pointed breakdown, it repeats information constantly...

It’s either written by an AI or I’m sorry, it’s just poorly written.

I know it's "Evil AL", not "Evil AI", but there _is_ an "Evil AI" at work here - this is aislop, pure and simple. I wondered for a bit why the whole thing felt repetitive and boring, and then I hit this paragraph and it threw everything else into context:

LAN-LOK is more than a forgotten DOS curiosity, it is a preserved moment in the daily life of Antarctic research stations during the earliest days of their local area networks. It captures the frustrations, humor, and personalities that shaped computing at Palmer Station as it transitioned from isolated standalone PCs to a shared (fragile) LAN.

It's frustrating, because this game absolutely has the vibes of a lot of old DOS/door games and I was kinda interested in learning about it, but this just sucks all the fun and interest out of it.

noscript came before modern CSS, it came before XMLHttpRequest, it was around before a lot of things. It was before we had modern standards and practices around progressive enhancement. A lot of things that are commonplace and easy to do now would require hours and hours of hand-writing javascript, instead of using modern libraries and selectors to easily target and replace content.

I don't know if you were coding back in those days, but I definitely remember how much more work it was to do progressive enhancement back then if you wanted a really JS-enhanced site. We were all basically individually inventing it, because it hadn't be standardized and popularized yet.

I honestly don't understand the framing of best practices here as "whining." I also don't understand your refusal to read the article, because you say "no reason" but the article explicitly states the reason:

The noscript element is a blunt instrument. Sometimes, scripts might be enabled, but for some reason the page's script might fail.

I dunno, I like having my page continue to reasonably work when unforeseen errors happen. (And they do happen. We've been at this business for decades, but errors have happened, can happen, and will continue to happen.) I generally prefer my users to have a good experience when possible. And if I can design my page intelligently, to progressively enhance, instead of displaying a blunt "WHAT ARE YOU, A JAVASCRIPT-HATER LOL" error message, well, I'd prefer that. =)

I think you're missing the part where they quote the recommendation from the HTML spec:

For this reason, it's generally better to avoid using noscript, and to instead design the script to change the page from being a scriptless page to a scripted page on the fly

That seems perfectly reasonable for modern sites and browsers to be able to do. `noscript` is effectively a relic from older days where you just didn't have the same budgets, tools, and browsers as today, where you couldn't seamlessly enhance the site how you can now. We shouldn't continue to use it in the same way we shouldn't continue to use `marquee` or `blink`.

Oh my god, yet _another_ "developer-focused" laptop with full-sized left/right arrow keys, which are an absolutely miserable experience to actually use.

How is it that Apple is the only company these days() that consistently gets this right?

( Yes, I know they used full-sized keys for a while, I moaned and cursed them at the time as well.)

We've been here before. Outsourcing of coding was really big for a while, until the reality of that situation caught up with those who practiced it - if you were saving a bundle on outsourcing your coding work, you were only saving money _now._ Down the line, you'd have to pay extra for someone competent to re-implement the work with an eye to quality.

(Sure, there were good outsourcing shops, but you didn't tend to save too much with them, since they knew they were good and charged appropriately.)

"Slop" ai-generated code is the same tradeoff as cheap outsourcing shops. You move quicker and cheaper now, but there will come a day when code quality will dip low enough that it will be difficult enough to make new changes that a refocus on quality becomes not just worthwhile, but financially required as well.

(And you may argue that you're using ai-generated code, but are maintaining a high code quality, and so for you this day will never come and you might be right! But you're the "good outsourcing shop", and you're not "saving" nearly as much time or money as those just sloppin' it up these days, so you're not really the issue, I'd argue.)

It's really thrown off some old adages. It's now "the first 90% takes 90% of the time, the last 10% takes the other 90,000,000% of the time."

Just doesn't have the same ring to it.

This is why I've been pushing back on the "just have the AI generate the tests!" mentality. Sure, let it help you, but those tests are the guarantee of quality and fit for purpose. If you vibe code them, how the hell do you know if it even does what you think it does?

You should be planning out the tests to properly exercise the spec, and ensuring those tests actually do what the spec requires. AI can suggest more tests (but be careful here, too, because a ballooned test suite slows down CICD), but it should never be in charge of them completely.

I was wondering why that wasn't mentioned once!

The first realtor to walk the land would have noticed that sign in a hurry, I figure.

...this is actually a really interesting thought.

The act of writing in lowercase is not, in itself, funnier. But writing in the training set that is in all lowercase is _probably_ going to be the funnier writing.

Considering modern pundits online, "lowercase" is usually the case of the humourist. Lowercase also tends to be the case of sarcasm, almost exclusively deployed to be funny.

So it would make sense that models attempting to select for funny would also write in lowercase.

Xyz makes sense because that is what those axes are literally labeled, but ijk I will rail against until I die.

There's no context in those names to help you understand them, you have to look at the code surrounding it. And even the most well-intentioned, small loops with obvious context right next to it can over time grow and add additional index counters until your obvious little index counter is utterly opaque without reading a dozen extra lines to understand it.

(And i and j? Which look so similar at a glance? Never. Never!)

If you're logging and reporting on ERRORs for 400s, then your error triage log is going to be full of things like a user entering a password with insufficient complexity or trying to sign up with an email address that already exists in your system.

Some of these things can be ameliorated with well-behaved UI code, but a lot cannot, and if your primary product is the API, then you're just going to have scads of ERRORs to triage where there's literally nothing you can do.

I'd argue that anything that starts with a 4 is an INFO, and if you really wanted to be through, you could set up an alert on the frequency of these errors to help you identify if there's a broad problem.

From both the developer and manager side of things, I've found that the most important attribute of estimates is frequently the least paid attention to: that they be kept up to date.

When you discover more work hidden under that "simple" pile of code, you absolutely HAVE to update your estimate. Add more points, add more tickets, whatever. But then your various managers have the ammunition to decide what to do next - allocate more resources to the project, descope the project, push back the release date, etc.

Far too frequently, the estimate is set in stone at the start of the project and used as a deadline that is blown past, with everyone going into crisis mode at that point. The earlier the estimate is updated, the calmer and more comprehensive action everyone responsible can take.

Multiblocks power fail and void, but then your machine shuts down until you restart it. This is much better than suggested above, where you'd void over and over, but it can still utterly mess up a large craft being orchestrated thru AE2, which is still waiting forever for he failed craft to submit a part back into the system.