News for hackers. Stuff that matters.

hughdbrown

Re:LLM Voice on Friday October 30, 2026 @02:18AM (#50300427)
Sentence paragraphs are the biggest clue for me. I hate them. They eviscerate any structure or connection that might flow through the text. No ideas are related any longer. They just splat down on the page like a new isolated collection of words that the reader must struggle to join into a fully formed thought. It's too much; I give up when I see those posts.
I had a driver in a Ford F-150 do this in front of me last week as he pulled away from a light. The smoke totally blacked out the windshield for 5 seconds while I was in motion. I was totally blinded by this.

I had no idea this was a thing, much less that it was something people did on purpose.

Re:Ghostty is leaving GitHub on Wednesday April 29, 2026 @01:13AM (#47944408)
I used this entire HN discussion as the input to a design/task SKILL.md. I asked Claude to prepare the design document and a task list. When it was done, I asked it to implement the task list.

I got this: https://github.com/hughdbrown/visualize-grid-layouts.git

You can follow how this all happened by looking in `docs/design/`.

The SKILL.md had this description:

``` Collaboratively designs a new software feature with the developer. Explores the existing codebase to ground all technical decisions in the project's actual architecture, conventions, and dependencies. Produces two deliverables:

1. *Product Requirements Document (PRD)* — what the feature does, technical decisions, how it operates, and ordered implementation stages.

2. *Detailed Task List* — within each stage, test-first scoped steps covering tests to write, code to implement, config changes, environment variables, dependencies, and documentation.

Both deliverables are written to files in the project for reference during implementation. ```

You can get Claude to produce the skill for you, too.

Re:Repair a ship’s hull still in the river in -50˚C (2022) on Wednesday January 07, 2026 @12:48AM (#46523047)
I am not understanding this.

Propane does not freeze anywhere near -60C. Wikipedia [1] says it freezes (liquid to solid) below -187C and boils (liquid to gas) above -42C.

Propane is probably unusable as a fuel below -42C because there is no vapor leaving the tank [not within my experience]. That is different from the propane being a solid.

[1] https://en.wikipedia.org/wiki/Propane Melting point −187.7 °C Boiling point −42.25 to −42.04 °C

Re:Ask HN: Is AWS Down Again? on Monday October 27, 2025 @02:17PM (#45724456)
Re:Scripts I wrote that I use all the time on Thursday October 23, 2025 @11:02AM (#45682656)
This is really interesting, but I need the highlights reel. So I need a script to summarize Hacker News pages and/or arbitrary web pages. Maybe that's what I want for getting the juice out of Medium articles.
Your knowledge of the author of Pingoo makes you more likely to believe that he may have erred? This explanation gains strength for you given your knowledge of his character and personality and professional practices?
I was about to call fake on this -- Americans from south Jersey are largely unfamiliar with the present perfect and would not say "[I] have never heard of" but "[I] never heard of" instead.

But it turns out this grammatical cue is an effective way to discover that the comment is not about an American south Jersey but a British one.

'Racoon', variant of 'raccoon'.

Of course, I prefer the double-c variant because of the orthographic anomaly of the person who tends to the raccoons' area at the zoo, the raccoon-nook-keeper.

Re:Root for Your Friends on Saturday May 24, 2025 @12:06AM (#44078678)
I thought it was a peevish Kiwi joke about how people of other nations do not use words as they do.
Re:Directory of MCP Servers on Saturday May 17, 2025 @06:20PM (#44017459)
Yeah, but there is a distinct advantage to using a standard.

Suppose you want your agent to use postgres or git or even file modification. You write your code to use MCP and your backend is already available. It's code you don't have to write.

Came here to understand exactly this point. It made no sense to me that a document created in 1215 would have a copy made in 1300 that was referred to as an original.
Because those packages are cheating us.
Re:Electron Band Structure in Germanium, My Ass on Saturday April 05, 2025 @04:07PM (#43596426)
Odd. When I look at it, the first item is my own suggestion for debugging:

> In my experience, the most pernicious temptation is to take the buggy, non-working code you have now and to try to modify it with "fixes" until the code works. In my experience, you often cannot get broken code to become working code because there are too many possible changes to make. In my view, it is much easier to break working code than it is to fix broken code.

Re:Electron Band Structure in Germanium, My Ass on Tuesday April 01, 2025 @11:30PM (#43553390)
Sort of like the first debugging tip here:

https://news.ycombinator.com/item?id=42682602

I am not sure I believe the numbers shown here. More jobs offered in Rust than C++? I would not think so.

I think that many of the hits on 'rust' in the job postings are actually 'trust': ```

>>> import requests

>>> page_id = 42919502 # Feb 2025

>>> url = f"https://hn.algolia.com/api/v1/items/{page_id}"

>>> resp = requests.get(url, headers={'Accept': 'application/json'})

>>> data = resp.json()

>>> sum('rust' in child['text'].lower() for child in data['children'])

42

>>> sum('trust' in child['text'].lower() for child in data['children'])

13

```

Check out the gist here: https://gist.github.com/hughdbrown/f41f5f3c072067c2351460d8d...

It shows that 30-40% of 'rust' is really 'trust': ```

-------------------- 2025-02-01: rust = 42 trust = 13

-------------------- 2025-01-01: rust = 28 trust = 10

-------------------- 2024-12-01: rust = 32 trust = 14

-------------------- 2024-11-01: rust = 28 trust = 8

-------------------- 2024-10-01: rust = 36 trust = 12

-------------------- 2024-09-01: rust = 32 trust = 9

-------------------- 2024-08-01: rust = 36 trust = 10

-------------------- 2024-07-01: rust = 33 trust = 11

-------------------- 2024-06-01: rust = 36 trust = 15

-------------------- 2024-05-01: rust = 42 trust = 14

-------------------- 2024-04-01: rust = 30 trust = 12

-------------------- 2024-03-01: rust = 32 trust = 12

-------------------- 2024-02-01: rust = 25 trust = 10

-------------------- 2024-01-01: rust = 22 trust = 8

```

I have a python repo specifically for finding Rust action in Who Is Hiring: https://github.com/hughdbrown/who-is-hiring

Re:What Happened to the N in Restaurateur? on Monday February 24, 2025 @03:14PM (#43164406)
> This puzzler, like many other difficult-to-spell food terms (such as hors d’oeuvre), also has its derivation in the French language.

That's the whole story: people who don't know French (or any foreign language, likely) cannot spell a French word.

Re:When Your Last Name Is Null, Nothing Works on Thursday February 20, 2025 @06:31PM (#43121928)
And owns the eatery, Restaurants Near Me.
Re:Why I'd never apply for a job online again on Saturday February 15, 2025 @08:14PM (#43064329)
> When 99.9% of posted jobs are fake (including in HN's Who's Hiring)

Okay there a lot of fake jobs, maybe not as high as 99.9%, though.

But what's the basis for saying that "Who's Hiring?" is fake? Why would a business seek out a relatively lower traffic job venue, field the traffic of submissions, and then ghost everyone who applies (or whatever is done by 99.9% fake jobs)? Why wouldn't employers just save themselves the effort and do nothing?

Re:Canada Tech Companies Map on Wednesday February 12, 2025 @08:11AM (#43025043)
Your JSON schema says this: ``` "location": "City, State", ... "workField": "Industry Field" ```

But: `location` can be an array: ``` "name": "Shopify", "location": ["Ottawa, ON", "Toronto, ON", "Montreal, QC", "Waterloo, ON"], ```

and `workField` is an array: ``` "workField": ["Banking", "Financial Services"] ```

And if it is for Canada, why identify locations as `"location": "City, State"`?

Re:A new supergiant Bathynomus species discovered in Vietnam on Sunday February 02, 2025 @03:46PM (#42911643)
This scientific-academic synopsis gives me only the faintest idea of what kind of animal this might be:

> A new supergiant species of Bathynomus A. Milne-Edwards, 1879 from Vietnam is described. Bathynomus vaderi sp. nov. is characterised by its wide, rectangular clypeal region with parallel lateral margins, concave distal margin, and narrowly acute apex; the distally narrowing and posteriorly curved coxa of pereopod 7; and the presence of 11 upwardly curved pleotelson spines.

"Curved coxa of pereopod?" "Curved pleotelson spines?" "Wide, rectangular clypeal region"?

He is currently a naturalized American citizen. For him to lose that status, he would have to be stripped of it by a legal process, commonly called denaturalization. [0] It is not enough for people to accuse you of having committed fraud in naturalization.

> There’s no valid path to naturalization

I think it is correct to say that your naturalized status can be unwound if a prosecution against you is successful, but until that happens, you are considered an American citizen. Presumption of innocence and all that American stuff.

[0] https://en.wikipedia.org/wiki/Denaturalization

He's an American because he got naturalized citizenship. According to the State Department and the Supreme Court, at a minimum, he qualifies as an American.
Re:Automating Git Bisect with Ephemeral Environments on Thursday January 30, 2025 @01:24PM (#42880570)
This is exactly what I do: I put my test file outside the git repo's tree. This does not introduce any complications to testing and is minimally annoying.
Re:The Timeless 9 Golden Rules of Debugging on Wednesday January 15, 2025 @11:28AM (#42713019)
Let me reformulate then.

Take the wikipedia article on debugging[1]. The first sentence identifies what debugging is: "In engineering, debugging is the process of finding the root cause, workarounds and possible fixes for bugs." I'd say this is implicitly about taking broken code and finding the error in it.

The second paragraph is clearer on this point:

> For software, debugging tactics can involve interactive debugging, control flow analysis, log file analysis, monitoring at the application or system level, memory dumps, and profiling. Many programming languages and software development tools also offer programs to aid in debugging, known as debuggers.

All of the debugging tactics listed are about working with an existing broken piece of code.

Further sections on debugging tools, debugging process ("debugging process normally begins with identifying the steps to reproduce the problem"), and techniques are also about working with broken code.

Completely rewriting the code is certainly a way to resume progress on a software project, but as the practice of debugging is imagined, rewriting is not debugging.

[1] https://en.wikipedia.org/wiki/Debugging

Re:The Timeless 9 Golden Rules of Debugging on Monday January 13, 2025 @10:18PM (#42693132)
> The quickest solution, assuming learning from the problem isn't the priority, might be to replace the entire chain of lights without testing any of them.

So as a metaphor for software debugging, this is "throw away the code, buy a working solution from somewhere else." It may be a way to run a business, but it does not explain how to debug software.

Re:The Timeless 9 Golden Rules of Debugging on Monday January 13, 2025 @01:45PM (#42686987)
In my experience, the most pernicious temptation is to take the buggy, non-working code you have now and to try to modify it with "fixes" until the code works. In my experience, you often cannot get broken code to become working code because there are too many possible changes to make. In my view, it is much easier to break working code than it is to fix broken code.

Suppose you have a complete chain of N Christmas lights and they do not work when turned on. The temptation is to go through all the lights and to substitute in a single working light until you identify the non-working light.

But suppose there are multiple non-working lights? You'll never find the error with this approach. Instead, you need to start with the minimal working approach -- possibly just a single light (if your Christmas lights work that way), adding more lights until you hit an error. In fact, the best case is if you have a broken string of lights and a similar but working string of lights! Then you can easily swap a test bulb out of the broken string and into the working chain until you find all the bad bulbs in the broken string.

Starting with a minimal working example is the best way to fix a bug I have found. And you will find you resist this because you believe that you are close and it is too time-consuming to start from scratch. In practice, it tends to be a real time-saver, not the opposite.

Re:AI Guesses Your Accent on Thursday December 12, 2024 @10:49AM (#42400146)
Canadian-born, 26 years in US:

- 65% English, 10% Dutch, 9% Russian

- 90% English, 3% Spanish, 2% German

- 89% English, 5% Spanish, 3% Russian

Older »