MurphyA/hacker-news huggingface dataset:
by zahlman | 2026-01-05 01:07:49+00:00
> I have no idea why people want to "save time" to write short comments and short variable names

Really long variable names put extra space between the operators and calls, which makes it harder to grok the logical structure of the expression. When I write `a + b` in code, it's in that order because the language demands it, and I use languages with that syntax for reasons of familiarity; but really, the `+` is the most important thing there, so it shouldn't be buried way off to the right.

I don't like for variable names to mark type. `weight_radius_price` is fine (and usually much better than `wrp`, and definitely much better than `tuple` or `t`) but a) we know it's a 3-tuple because we can see the right-hand-side of the equals sign; b) the structure of the name already conventionally tells us to expect more or less that (although maybe a class or structure abstraction is missing?); c) the choice of a tuple is probably not really relevant in context as compared to other ways of sticking three atomic values together.
by al_borland | 2026-01-05 01:09:29+00:00
I’ve specified many of these things and still had it fall on its face. And at some point, I’m providing so much detail that I may as well do it myself, which is ultimately what ends up happening.

Also, it seems assuming the latest version would make much more sense than assuming a random version from 10 years ago. If I was handing work off to another person, I would expect to only need to specify the version if it was down level, or when using the latest stable release.
by mberning | 2026-01-05 01:09:52+00:00
> There were a few moments I put my hand into my pocket to take out my phone to look up something I was curious about. My phone wasn’t there.

My dad smoked for decades and when he tried to quit his hand would instinctively go to his pocket dozens of times a day.

That is the level that smartphone addiction is on. Literally ruining peoples lives.
by locknitpicker | 2026-01-05 01:09:55+00:00
> The problem with automatically applying whatever crap that is stored in git, means that you cannot reverse anything without a long heavyweight process, clone code, make a branch, create a pr, approve a pr, merge to master/main.

Nonsense. Your process is only as complex as you want it to be. Virtually all git providers allow you to revert commits from their GUI, and you can configure pipelines to allow specific operations to not require PRs.

As a reference, in push-based GitOps it's pretty mundane to configure your pipelines to automatically commit to other git repos without requiring PRs. This is the most basic aspect of this whole approach. I mean, think about it: if your goal is to automate a process then why would you go through great lengths to prevent yourself from automating it?
by mingus88 | 2026-01-05 01:10:02+00:00
We don’t pay for everything in the real world.

Music is the first thing that comes to mind. Nobody pays for music anymore. They maybe subscribe to a streaming service but most people expect to consume as much of the actual music basically for free.

Boxed software back in the day was something people would pay for, but like music it’s become an intangible commodity that people don’t feel they should pay for.

It’s a service economy now.
by lowbloodsugar | 2026-01-05 01:10:06+00:00
I’m better at it in the spaces where I deliver value. For me that’s the backend, and I’m building complex backends with simple frontends. Sounds like your expertise is the front end, so you’re gonna be doing stuff that’s beyond me, and beyond what the AI was trained on. I found ways to make the AI solve backend pain points (documentation, tests, boiler plate like integrations). There’s probably spaces where the AI can make your work more productive, or, like my move into the front end, do work that you didn’t do before.
by nostrademons | 2026-01-05 01:10:30+00:00
I think the big lesson of the Millennium Challenge is that a smart, motivated adversary will always go for the weak link in your victory conditions. And that is usually your blind spots, by definition. They won't attack you where you've prepared; they'll look for the areas where you are not expecting vulnerability and attack there.

All stuff Sun Tzu wrote 2500 years ago, but very hard for a bureaucracy to internalize, because by definition bureaucracies are formed to solve known problems and are blind to their blind spots.
by zahlman | 2026-01-05 01:10:55+00:00
The point is to not care about the type. If you see `weight, radius, price = ...`, then it generally isn't going to matter whether `...` is a tuple or a list (or more exotic possibilities). What matters is that you can iterate over it, and iterating over it gives exactly three results, and the first result represents a weight, etc.

If your weights need to be, say, a floating-point number of kilograms, then you establish that convention, and only mark intentional deviations from the convention (e.g. because you're doing an explicit conversion to format output). (Or you use a library like Pint to give more formality to it.)
by wafflesfreak | 2026-01-05 01:11:20+00:00
So glad to hear that! Regarding the datasheet limit: the current Pro plan caps projects at 40 datasheets, but this is not a hard technical limit. For enterprise customers, we can raise this cap. The primary constraint is inference cost — once you go beyond ~40 datasheets, meaningful cross-checking can consume Pro-plan usage very quickly. For teams that are less cost-sensitive, a higher-tier plan with increased limits is feasible.

On EDA tool support, we can work with any tool that exports a netlist. If you can export to .EDIF, it should work out of the box, as this is the format we accept for Altium designs. The schematic visualizer currently supports KiCad only, but we are exploring how to parse full project files from other tools to provide the same visualization and extract additional metadata.

If your team has a formal procurement process, feel free to reach out via the contact email on our site.
by huevosabio | 2026-01-05 01:11:38+00:00
I used to do this every now and then. I would leave my phone at home and take a book and a notebook to a coffee shop and sit and sip. I would read if I felt like it, or write, or just plain stare. I also chose cafes that were a hit of a walk away.

It was absolutely glorious. I got to think my own thoughts, get bored, get into conversations with random people.

I should do it more often.
by razeh | 2026-01-05 01:12:08+00:00
I’m in River Forest and the deer are a pain to deal with. They eat your plants, they’re not afraid of people (because they get hand feed) and they get hit by cars.

They’re lacking their natural predators — and the logical solution of introducing them is ruled out because the local forest preserves aren’t large enough to support wolf packs.

Maybe the coyotes will figure out how to take them down.
by dcw303 | 2026-01-05 01:12:35+00:00
I am a new initiate into the world of 3d printing for minis. I decided a resin printer does not suit my small apartment lifestyle, and got an Elegoo Centauri Carbon FDM printer. It's pretty plug-and-play, there was very little setup required.

www.reddit.com/r/FDMminiatures/ will give you an idea of the level of quality you can reach. With the smallest 0.2mm nozzle, will it reach resin levels? Close but not really. Is it good enough for me to screw around with, improve my painting skills, and play casual games? Certainly.

Also I subbed to the OnePageRules patreon, they offer alternative minis and rulebooks that are very similar to GW, with an alternate for fantasy and 40K, as well as fleet battles and other stuff.
by deepspace | 2026-01-05 01:13:05+00:00
Not a dumb question at all. I grew up using actual green screen terminals, and the advent of high-resolution colour monitors and applications with dark text on a white background felt like a blessing. I truly do not understand the regression to dark mode. It's eyestrain hell for me.

Unfortunately, I was unable to test in my light-background terminal, since the application crashes on startup.
by Rapzid | 2026-01-05 01:13:06+00:00
The Ruby ecosystem was particularly bad about "DRY"(vs WET) and indirection back in the day.

Things were pretty dire until Sandi Metz introduced Ruby developers to the rest of the programming world with "Practical Object-Oriented Design". I think that helped start a movement away from "clever", "artisanal", and "elegant" and towards more practicality that favors the future programmer.

Does anyone remember debugging Ruby code where lines in stack traces don't exist because the code was dynamically generated at run time to reduce boilerplate? Pepperidge Farm remembers.
by gerdesj | 2026-01-05 01:13:51+00:00
I have noticed that the young 'uns are quietly rebelling against the way things are. This is another example.

OP is considering going off social grid as they understand it ... OK, dumping doom-scrolling and sitting in a cafe alone and being obviously alone and then looking around and noticing things.

That sort of "interaction" used to be normal. Having a billion people within ear shot was not normal until about 15 years ago.
by acedTrex | 2026-01-05 01:14:19+00:00
> a) that doesn't intrinsically mean it's slop

If it can quickly and easily identified as LLM code then yes, it is intrinsically slop and of no value. The person who submitted it did not even value it enough to look at/clean it up. Why would anyone else care to look at it.

If it is LLM generated but then HAS BEEN cleaned up then you cant immediately see the LLM and it passes the check anyways.
by ungreased0675 | 2026-01-05 01:14:40+00:00
You’re describing a hypothetical future, and I’m telling you that all that bad stuff has already been done to the Venezuelan people by the Chavistas. About 90% of the population lives in poverty and 50% in extreme poverty. Maduro’s government shot about two dozen people who had the nerve to protest the last election. Violence against women and children doesn’t get much worse.

What incredible privilege you have to be worried about future labor exploitation at yet-to-be-built resort casinos.
by wyager | 2026-01-05 01:14:51+00:00
> Like mandatory seat belts, some people argue that there would be no need for CHERI if everyone "just used type-safe languages"[...] I'm not having any of it.

It wish the author would have offered a more detailed refutation than "I'm not having it". I'm pretty sure the claim is right! I'm fairly convinced that we'd be a lot better off moving to ring0-only linear-memory architectures and rely on abstraction-theoretic security ("langsec") rather than fattening up the hardware with random whack-a-mole mitigations. We're gradually moving in that direction anyway without much of a concerted effort.
by MattGaiser | 2026-01-05 01:15:10+00:00
I built an AI PM app for a buddy to help him leverage AI for his particular PM framework as fast as his developers do. He loves it and I haven't read a line of code beyond keeping track of what things are named for better prompting. I have numerous little apps for every little thing. Every whim is trivial to turn into a scraper. Every tiny side hustle I have has an AI workflow.

I made a video game to wish a friend happy birthday. I made a couple websites for job applications. I can make a landing page for an idea for a friend and the longest part is buying the domain name. I had a convo with a friend about finding more ideas to work on as I have abundant spare time due to LLMs and there are LLMs sourcing stuff to help execute on that.

Every time a friend has a "it would be cool" idea, I can trivially throw something together to do it.

Really my biggest optimization has been giving the AI as many tools as possible to do the testing part itself, as testing the work is the real bottleneck. Dockerize everything, so all the error logs are in one place and it can reset at will. Have it set up fixtures, so that if it deletes the database (has happened), it can just re-create it.
by zarzavat | 2026-01-05 01:15:18+00:00
> It should load quicker compared to traditional React apps where the browser loads the HTML, then loads the JS bundle, and only then renders a loading skeleton while likely triggering more requests for data.

Then your JS bundle is broken.

Promises exist. Modules exist. HTTP/2+ exists. You can load data while you are loading a small amount of JS required to render that data while you are loading other parts of your JS.

If everything is sequential: load giant JS bundle -> fetch -> render, that's because someone architected it like that. Browsers give you all the tools you need to load in parallel, if you don't use them then it's not the browser's fault.

You do not need SSR or rehydration. That's just Vercel propaganda. They saw that people are doing a stupid thing and decided to push a complex solution to it. Why? It makes them money.
by spion | 2026-01-05 01:15:50+00:00
Great article. Really advances the thinking on error handling. Rust already has a head start compared to most other languages with Result, expect and anyhow (well, color_eyre and tracing), but there was indeed a missing piece tying together error handling "actionability" with "better than stack trace" context for the programmer.

With regards to context for the programmer, I still think ultimately tracing and color_eyre (see https://docs.rs/color-eyre/latest/color_eyre/) form a good-enough pair for service style applications, with tracing providing the missing additional context. But its nice to see a simpler approach to actionability.
by zahlman | 2026-01-05 01:17:11+00:00
I am only responding to many people trying to explain why I should care about the thing I don't care about. The defense is useful because a) it being "dead" by these metrics is unimportant; b) people are blaming a community for mistreating them, when they came in without any intent of understanding or adapting to that community; c) other sites in this mold exist, and are trying to establish themselves.
by LarsKrimi | 2026-01-05 01:17:23+00:00
You think that he's afraid of going to prison only? Oh noo, house arrest in Mar-A-Lago for x amount of years due to "bad health".

I think the man is severely and uncurably addicted. Got his ultimate high and will do anything and throw anyone or anything under the bus to maintain that.

Why should he leave? Who would make him leave?
by locknitpicker | 2026-01-05 01:17:44+00:00
> I often hear folks use terminology like “push GitOps”. But as far as I understand things, it’s only GitOps if you’re following the four principles described in TFA.

Not quite. You hear gatekeeping from some ill-advised people who either are deeply invested in pushing specific tools or a type of approach, or fool themselves into believing they know the one true way.

Meanwhile, people who do push-based GitOps just get stuff done by configuring the pipelines to do very simple and straigh-forward stuff: package and deliver deployment units, update references to which deployment units must be deployed, and actually deploy them.

The ugly truth is that push-based GitOps is terribly simple to pull off, and doesn't require any fancy tools or software or kubernetes operators. Configuration drift and automatic reconciliation, supposedly the biggest selling point of pull-based gitops, is a non-issue because deployment pipelines are idempotent. You can even run them as cron jobs, if you'd like to. But maintaining trivial, single-stage pipelines does not make a impressive CV.

> Otherwise it’s just sparkling pipelines.

Yeah, simple systems. God forbid something is reliable, easy to maintain, robust, and straight-forward. We need full blown kubernetes operators running on timers instead, isn't it? Like digging moats around their job stability. It's madness.
by 0_____0 | 2026-01-05 01:17:59+00:00
Doing something where you get to say "bugger everything" and just do what you're doing for a while is amazing. It's one of the things I actually like about the (otherwise not very relaxing) ultra-distance racing.

2-6 days of just riding your bike, eating, sleeping outside. Yeah it can be hard but nothing makes the MS Teams chime in the woods.
by grayhatter | 2026-01-05 01:18:12+00:00
> have develop a bad habit of giving software away for free.

Thankfully, it's still early in the year, so this doesn't mean much yet but at least I can say it with complete certainty; so congratulations, you have said the dumbest thing I've heard all year!

> Does anyone get that feeling?

No, I don't feel bad about giving gifts. I don't feel bad about trying hard to make the world I'm forced to exist within a bit better even if that "better" is inconsequential. No I don't feel bad about not making the effort I'm able to produce, predicated on some sort of compensation. Neither compassion, nor the desire to try to help others is a bad thing! Why would I want to demand payment from people who I want to help?

I don't regret playing a positive sum game.

Especially when everyone around me is determined to play negative sum games, or force others into the same. Or in case of this question; have been gaslit so traumatically, that they feel they are wrong for trying to help other people without demanding compensation.

You're allowed to do nice things for others, without expecting anything from them in return.

Don't confuse gifts, with the effort required to exist in a "user hostile" universe. You might need to trade effort for compensation to 'survive'. But that doesn't devalue the positive improvement you're capable of, regardless of that reality. And it doesn't make it wrong to do so.
by seltzered_ | 2026-01-05 01:18:22+00:00
There are some ways to FDM 3D-print transparent plastic, see https://www.printables.com/model/15310-how-to-print-glass as one example.

Another example is this one where the 3D print was done as a continuous printing (i.e. no slicer, or sorta like a vase mode print) to make the clear show a bit better: https://m.youtube.com/watch?v=2Sy50BrlDMo
by dijit | 2026-01-05 01:18:35+00:00
Right, so Zuul is properly interesting if you're dealing with multi-repo setups and want to test changes across them before they merge; that's the key bit that something like GitLab CI doesn't really do.

The main thing with Zuul is speculative execution. Say you've got a queue of patches waiting to merge across different repos. Zuul will optimistically test each patch as if all the patches ahead of it in the queue have already merged.

So if you've got patches A, B, and C queued up, Zuul tests:

* A on its own

* B with A already applied

* C with both A and B applied

If something fails, Zuul rewinds and retests without the failing patch. This means you're not waiting for A to fully merge before you can even start testing B - massive time saver when you've got lots of changes flowing through.
With GitLab CI, you're basically testing each MR in isolation against the current state of the target branch. If you've got interdependent changes across repos, you end up with this annoying pattern:

* Merge change in repo A

* Wait for it to land

* Now test change in repo B that depends on it

* Merge that

* Now test change in repo C...

It's serial and slow, and you find out about problems late. If change C reveals an issue with change A, you've already merged A ages ago.

Zuul also has this concept of cross-repo dependencies built in. You can explicitly say "this patch in repo A depends on that patch in repo B" and Zuul will test them together. GitLab CI can sort of hack this together with trigger pipelines and artifacts, but it's not the same thing... you're still not getting that speculative testing across the dependency tree.

The trade-off is that Zuul is significantly more complex to set up and run. It's designed for the OpenStack-style workflow where you've got dozens of repos and hundreds of patches in flight. For a single repo or even a handful of loosely-coupled repos, GitLab CI (and it's ilk) is probably fine and much simpler. But once you hit that multi-repo, high-velocity scenario, Zuul starts to make proper sense. Yet nobodies using it except hardcore foundational infrastructure providers.
by doug_durham | 2026-01-05 01:19:01+00:00
I think the problem with articles like this is the insensitivity to others. The phrase "A porcelain cup makes ..." is a declaration for all of humanity. The reality is "A porcelain cup, for me, makes ...". Qualifying the experience as possibly someone only experienced by the teller makes the story more relatable, as opposed to a value judgment.
by jefftk | 2026-01-05 01:19:47+00:00
> Port allocation is hash-based—deterministic from branch name, no conflicts:

> hash_val = sum(ord(c) for c in branch_name)

> django_port = 8001 + (hash_val % 99)

> Six agents, six features, one phone.

What do you mean, no conflicts? The probability of a collision with six branches and 99 ports slots is ~14% assuming optimal hashing (which this decidedly isn't).
by moregrist | 2026-01-05 01:19:49+00:00
Most of the time, if you have a sensor that you sample at, say 1 KHz and you’re using a reliable MCU and clock, the noise terms in the sensor will vastly dominate the jitter of sampling.

So for a lot of sensor data, the error in the Y coordinate is orders of magnitude higher than the error in the X coordinate and you can essentially neglect X errors.
by tonymet | 2026-01-05 01:21:07+00:00
Open source, when talking about linux and related apps has mostly been a force for good. Improving competition, innovation, extending support for products, helping train & inspire young developers in the trade. Gates claimed it would destroy the software industry, and years later the industry grew much faster off open source than it would have otherwise, and made Microsoft more competitive than they would have otherwise.

That being said, there are negative aspects. Open source advocates can be a bit sanctimonious in the other direction. For example, complaints (not from the devs themselves) about corporations making loads off ffmpeg, or openssl, without adequately compensating them. Even though companies are employing the licensed apps as intended. Another issue is how entitled open source consumers can be: demanding free access to apps, or judging seemingly trivial apps for charging a fee.

Selling even a trivial business is hard work, and 90% of the time there's much more nuance to a business than meets the eye.

If someone chooses to donate their time for free, and it's not done out of spite to undermine a competitor, it's probably a good thing. But we could all use a bit more humility and introspection.
by koakuma-chan | 2026-01-05 01:22:16+00:00
A full stack framework like Next.js is, at the end of the day, still a server running on Node.js, so there is nothing that prevents you from doing anything that you could be doing with a regular express.js server. Is there anything that prevents you from implementing content management, auditing stuff, or database stuff in your Next.js project? Nothing comes to my mind.
by hhhhhggg | 2026-01-05 01:22:32+00:00
"i cannot accept this apology unless.."

you got a written apology already, what else do you want?

a post of this in all of his socmed accounts? him telling this story to his kids at dinner table and bedtime stories? at his eulogy, obituary, and his grave?

what's your life mission now, to post this little drama of yours on each and every content he puts out?

was that code your best achievement to date? did it stole millions from you and ruined your life?

grow the fuck up dude