HNHacker News
TopNewBestAskShowJobs

d0liver

296 karma · joined March 28, 2020

https://www.doliver.org
submissionscomments
d0liver··on Parse, Don't Validate (2019)
This issue exists with the parsed case, too. If you're using a database to store data, then the lifecycle of that data is in question as soon as it's used outside of a transaction.

We know that external systems provide certain guarantees, and we rely on them and reason about them, but we unfortunately cannot shove all of our reasoning into the type system.

Indeed, under the hood, everything _is_ just a big blob that gets passed around and referenced, and the compiler is also just a system that enforces preconditions about that data.

d0liver··on Parse, Don't Validate (2019)
I think, more generally, "push effects to the edges" which includes validation effects like reporting errors or crashing the program. If you, hypothetically, kept all of your runtime data in a big blob, but validated its structure right when you created it, then you could pass around that blob as an opaque representation. You could then later deserialize that blob and use it and everything would still be fine -- you'd just be carrying around the validation as a precondition rather than explicitly creating another representation for it. You could even use phantom types to carry around some of the semantics of your preconditions.

Point being: I think the rule is slightly more general, although this explanation is probably more intuitive.

d0liver··on Software factories and the agentic moment
> As I understood it the trick was effectively to dump the full public API documentation of one of those services into their agent harness and have it build an imitation of that API, as a self-contained Go binary. They could then have it build a simplified UI over the top to help complete the simulation.

This is still the same problem -- just pushed back a layer. Since the generated API is wrong, the QA outcomes will be wrong, too. Also, QAing things is an effective way to ensure that they work _after_ they've been reviewed by an engineer. A QA tester is not going to test for a vulnerability like a SQL injection unless they're guided by engineering judgement which comes from an understanding of the properties of the code under test.

The output is also essentially the definition of a derivative work, so it's probably not legally defensible (not that that's ever been a concern with LLMs).

d0liver··on Skip is now free and open source
Definition one on Merriam Webster is, "To make into a product suitable for use." This is what I thought you meant, because cost of production is what it costs to forego buying something. IMO, that's the cost you really want to consider.
d0liver··on Skip is now free and open source
If the tool is saving you a large chunk of time, then why does it matter what's happening in another industry? We seem to be losing a really simple thread here: Pay for things because they present more value to you than you're giving away in payment.

Y'all seem to have some notion of what constitutes "fair" payment that you're so attached to that you're willing to shoot yourselves in the foot.

d0liver··on Skip is now free and open source
I assumed that they meant "cost of production", since that's what you give to keep your money, so that includes 0->1. But if what they meant is what you said then I'd say that the cost of 0->1 is not somehow less important. Software does make 1->100 much more accessible though, so, in that way, you have an opportunity to help out very small businesses in a way that you can't in other industries, which is even more of a reason to buy code from your peers, IMO.
d0liver··on Skip is now free and open source
> Manufacturing costs are zero

No. The fact that you built something yourself doesn't make it free to produce.

More over, you __won't__. You simply cannot build all of the things that you could buy at scale. What if you had to write all of your own video games? Or operating systems?

d0liver··on Don't fall into the anti-AI hype
How do you know that it's actually faster than if you'd just written it yourself? I think the review and iteration part _is_ the work, and the fact that you started from something generated by an LLM doesn't actually speed things up. The research that I've seen also generally backs this idea up -- LLMs _feel_ very fast because code is being generated quickly, but they haven't actually done any of the work.
d0liver··on AI misses nearly one-third of breast cancers, study finds
Yes, but then the study result should be, "AI correctly identifies 100% of breast cancers in study"

If we're saying there was a discrepancy and we're saying that all of the patients had cancer, then it would seem that there must have been some that were identified as not having cancer by AI.

d0liver··on AI misses nearly one-third of breast cancers, study finds
> there were zero false negatives

Wouldn't this mean that AI identitied them all has having cancer?

d0liver··on Show HN: StackOverflow Jobs inspired website to find jobs with visa sponsorship
Hey, this looks cool. Out of curiosity, how did you create your initial listing of jobs? Did you scrape job data from elsewhere, or maybe you looked at other listings and built yours up by hand?
d0liver··on Salesforce pulls back from LLMs, pivots Agentforce to deterministic automation
To save face and make it look like an iteration rather than a reversal.
d0liver··on The Year 2025: Positive Changes in Major Life Areas
Providing some sources would be good.
d0liver··on Is it a bubble?
TL;DR is "I don't know" with a dash of "Innovative tech usually creates bubbles and I think we can all agree that AI is a fucking revelation"
d0liver··on Optimize for momentum
While it can be nice to throw something out there and play with it, I think a lot of the anxiety that causes people to feel that they _need_ to do that comes from the idea that "thinking isn't working." As an alternative, try validating early stages of thought work as being "real work" that's usually far more valuable than what follows.

Whiteboarding or taking notes can be a good proxy for thought work in early stages. Iow, those are good ways to "get something imperfect out" early because they are at a high enough level that they don't kill much time. However, hacking code out before it's been thought through tends to be a massive time suck.

I definitely agree that there's a shitton of value in hitting things regularly though (usually daily).

d0liver··on Long-term use of melatonin to support sleep may have negative health effects
"People who are concerned enough about their insomnia to get a prescription from their doctor and take it regularly are more likely than other people to have heart problems and other health issues"

Good to know but maybe not particularly compelling?

d0liver··on The great decoupling of labor and capital
The profit increases are from price gouging and anticompetitive behaviors; these companies don't need to provide value to increase their profits anymore.
d0liver··on Charlie Kirk killed at event in Utah
Booooo, go home you're drunk.

"Republicans don't engage in discourse"

"Yeah, and yet y'all still won't listen to our propaganda because _you're_ entitled."

d0liver··on Typing Speed Is the Hidden Signal of a 10x Developer
I think it depends what your typing speed target is, probably. Even for someone who's got a lot of experience, I think it's easy to get bottlenecked on typing speed when it's not a specific focus. Speaking from personal experience, I've been programming for 20ish years and up until a couple months ago my typing speed was probably 90WPM. I recently started practicing intentionally and it's now up to an average of 125ish. If I were interviewing someone and their typing speed was like 60WPM as an experienced dev then that might be a little bit of a red flag. But with auto complete and whatnot, I think it's pretty easy to be at a solid 70 - 90 and still be a very solid dev, and what you get after that is mostly leaning on autocompletion less and being able to spit out some of those idioms a bit faster than you could copy/paste or fill out a snippet.

But possibly to your point, what I am is a passionate _thinker_. I'll take pretty much any opportunity to get away from the computer and do things in my head instead because I find that it's generally faster. If I were someone who liked to prototype "on paper" then I might've been a much faster typist long ago.

d0liver··on Overly Long Variable Name Could Have Been a Comment
Reading this, the principle of least astonishment immediately comes to mind. I think a lot of the time when a lengthy comment is needed, refactoring or external documentation (maybe with a link in the comments) is actually a better option. PR descriptions and comments have the upside of existing in a historical context; they don't rot because they simply don't exist outside of that context. But, of course, they can be a little bit harder to find.

I definitely do agree that this is often a good use case for a nice comment though, especially because those weird expressions are usually locally scoped so that you don't have to worry too much about comment rot. But yeah, using a proper variable name has that advantage when it isn't local -- changing it in one place will queue the type system to tell you to change it everywhere (and you can probably automate it if you want to).

I guess that I don't think comments, variable names, or PRs are particularly good at conveying broader context though (like what the use case is, historical considerations from bugs, legal requirements, etc.). I think you're kind of talking to a reader who already has the context, and if they don't then none of those things do a great job of clarifying. Kind of circling back, I really like to push more things to external documentation paired with nice conventions and patterns. A lot of the time those docs also have the benefit of being at a high enough level that they don't rot, too. If you know the pattern then you just read the code and it doesn't matter so much if the specifics changed.

d0liver··on Show HN: Saprius – Automatically turn messy emails into excel document
I don't think this product is for me, but I wanted to mention that the pricing feels wrong. You're pitching people dealing with large volumes of email, but then I'm paying $25/mo for 200 emails which isn't a lot. Also, how are the fields being extracted? Like, how reliable is it? Is it an AI backed thing or like looking for specific formats? And how do I hook it up to my email?
d0liver··on What Counts as Discovery? Rethinking AI's Place in Science
> Newton did not just describe motion—he invented the ideas of force and mass.

I think this is just what incremental progress looks like from the outside. It's a magic trick that happens when we don't see each step of the progression.

> The narrative around AI in science is shifting—from tool to theorist, from assistant to author.

I agree that AI is making people out of touch, and I think that's part of the market's goal. It's a lot easier to sell stuff to people if you can convince them it's magic.

I don't think that AI has fundamentally changed anything about the nature of discovery; we're just making reference materials fluid and generative -- it's an incremental step. So, I agree with you that the narrative is largely missing the pieces that make things "tricky". It feels sort of like people are rediscovering copy pasta and then being like, "Look how much work I did!"

d0liver··on Ask HN: How are you acquiring your first hundred users?
Also, I subscribed to your blog. Content looks interesting, but asking for a name during sign up is a little off-putting.
d0liver··on Ask HN: How are you acquiring your first hundred users?
How hard was it to get the partnership? Was that cold outreach, too?
d0liver··on The great displacement is already well underway
If you look at the increase in total market cap of tech businesses over the last thirty years, it makes a lot of sense that there just wouldn't have been nearly as many people starting their careers in tech thirty years ago as there are today. Also, people tend to go into management as they age because managers are generally better paid (for whatever reason). When people decide to not go into management they often stay on the projects that they helped to build, so you have whole teams of older engineers. I saw this when I worked at AT&T - almost everyone was older.
d0liver··on AI Coding assistants provide little value because a programmer's job is to think
> I had actually done this before a few years ago, so I knew exactly what I wanted

Why not just use the one you already wrote?

d0liver··on AI Coding assistants provide little value because a programmer's job is to think
More like, "We had a nice forklift, but the boss got rid of it replaced it with a pack of rabid sled dogs which work sometimes? And sometimes they can also sniff out expiration dates on the food (although the boxes were already labeled?). And, I'm pretty sure one of them, George, understands me when I talk to him because the other day I asked him if he wanted a hotdog and he barked (of course, I was holding a hotdog at the time). But, anyway, we're using the dogs, so they must work? And I used to have to drive the forklift, but the dogs just do stuff without me needing to drive that old forklift"
d0liver··on AI Coding assistants provide little value because a programmer's job is to think
> Observer bias is the tendency of observers to not see what is there, but instead to see what they expect or want to see.

Unfortunately, people enjoying a thing and thinking that it works well doesn't actually mean much on its own.

But, more than that I suspect that AI is making more people realize that they don't need to write everything themselves, but they never needed to to begin with, and they'd be better off to do the code reuse thing in a different way.

d0liver··on AI Coding assistants provide little value because a programmer's job is to think
I think "AI as a dumb agent for speeding up code editing" is kind of a different angle and not the one I wrote the article to address.

But, if it's editing that's taking most of your time, what part of your workflow are you spending the most time in? If you're typing at 60WPM for an hour then that's over 300 lines of code in an hour without any copy and paste which is pretty solid output if it's all correct.

d0liver··on AI Coding assistants provide little value because a programmer's job is to think
I need some information/advice -> I feed that into an imprecise aggregator/generator of some kind -> I apply my engineering judgement to evaluate the result and save time by reusing someone's existing work

This _is_ something that you can do with AI, but it's something that a search engine is better suited to because the search engine provides context that helps you do the evaluation, and it doesn't smash up results in weird and unpredictable ways.

Y'all think that AI is "thinking" because it's right sometimes, but it ain't thinking.

If I search for "refactor <something> to <something else>" and I get good results, that doesn't make the search engine capable of abstract thought.

← PreviousPage 2 of 4Next →