MurphyA/hacker-news huggingface dataset:
by chipx86 | 2025-06-04 07:02:23+00:00
In the early drafts, we played with a number of approaches for the structure. Things like "commit-meta", etc. In the end, we broke it down into `#<section_level><section_type>`, just to simplify the parsing requirements. Every meta block is a meta block, and knowing what section level you're supposed to be in and comparing to what section level you get become a matter of "count the dots".

The header formats are meant to be very simple key/value pairs that are known by the parser, and not free-form bits of metadata. That's what the "meta" blocks are for. The parsing rules for the header are intentionally very simple.

JSON was chosen after a lot of discussion between us and outside parties and after experimentation with other grammars. The header for a meta block can specify a format used to serialize the data, in case down the road something supplants JSON in a meaningful way. We didn't want to box ourselves in, but we also don't want to just let any format sit in there (as that brings us back to the format compatibility headaches we face today).

For the other notes:

1. Compatibility is a key factor here, so we'd want to go with base-level JSON. I'd prefer being able to have trailing commas in lists, but not enough to make life hard for someone implementing this without access to a JSON5 parser.

2. If your goal is to simply feed to GNU patch (or similar), you can still split it. This extra data is in the Unified Diff "garbage" areas, so they'll be ignored anyway (so long as they don't conflict, and we take care to ensure that in our recommendations on encoding).

If your goal is to split into two DiffX files, it does become more complicated in that you'd need to re-add the leading headers.

That said, not all diff formats used in the wild can be split and still retain all metadata. Mercurial diffs, for example, have a header that must be present at the top to indicate parent commit information. You can remove that and still feed to GNU patch, but Mercurial (or tools supporting the format) will no longer have the information on the parent commit.

3. Revisions depend heavily on the SCM. Some SCMs use a commit identifier. Some use per-file identifiers. Some use a combination of the two. Some use those plus additional information that either gets injected into the diff or needs to be known out-of-bounds. There's a wide variety of requirements here across the SCM landscape.
by forrestthewoods | 2025-06-04 07:03:05+00:00
> Most people and tools work with Unified Diffs. They look like this:

No I don’t. That plus-minus single column view is complete and total trash. Always has been, always will be.

I’ve used Araxis Merge for almost 20 years. Beyond Compare 3 is also a good choice. Not once in my entire life career have I ever relied on a “unified diff” or a “patch” or any of that garbage.
by achenet | 2025-06-04 07:03:34+00:00
Location: Lyon, France

Remote: Yes. I prefer this way of working.

Willing to relocate: No.

Technologies: Go, Postgres and MySQL, Linux and FreeBSD system administration, Rust, various other things (see CV). I've dabbled a bit in Elixir as well, and would be very keen to try working with it professionally.

Résumé/CV: arielche.net/CV.pdf

Email: achenet@fastmail.com

I am currently working as a software engineer for a large web hosting company. I'd like to change roles to work somewhere I can learn more. I'd be very open to working in a smaller environment, with a team that values simplicity, effectiveness and collaboration. I work best remotely.

I am an excellent communicator, that is probably my greatest strength. I'm curious, I'm honest, and I'm kind. My favorite feedback from a manager that I've gotten is that I get along with everyone. I greatly appreciate logical rigor, and make a sincere effort to regularly examine my beliefs, in order to discard useless or false ones. I have a solid mathematical background - my undergrad and master's were both in mathematics, with a specialization in theoratical computer science and discrete math, and I regularly practice maths, often with friends, for the fun of it. I love software. If you want some examples of my latest work, I encourage you to go look at my codeberg account: codeberg.org/achenet

If you think you might enjoy working with me, I'd love to hear from you.
by jillesvangurp | 2025-06-04 07:03:47+00:00
People burning out and blaming the world around them is pretty common. Unfortunately, that's just not how it works. As the saying goes, the only constant in all your problems is you. The wisdom behind that is less about finger pointing and more about just figuring out that the way to address what makes you feel bad usually starts with changing or at least acknowledging yourself.

The tech industry is part of our bigger society, which for better or worse is actually not completely horrible compared to essentially all of recorded human history. By most objective standards, we're better off than ever. Most of us get to live long and not worry about starving to death, being eaten by predators, freezing to death, being killed by violence, etc. Actually we're pretty well off and reach average ages unthinkable only a few generations ago. It's been relatively peaceful in most of the world for a while despite some really ugly conflicts, the occasional genocidal maniacs, terrorists, and what not. But the bottom line is that there are many places that haven't been war zones for a relatively long time now that are prospering. Even places that we still think off as relatively poor (e.g. most of Africa).

Technology has contributed to a lot of this progress. It extends our lives, provides better quality of live, wealth, etc. And it enables people to help themselves.

It's easy to forget that most of that progress has happened in an extremely short time span. Alan Turing was only born (1912) a few years before my grand mother (1914). She passed away aged 94. That was this century. Alan Turing lived and died before most of what we currently regard as the tech sector even existed. He helped invent the modern computer but he died long before computers became widespread. Donald Knuth, one of the founders of what is modern computer science still lives and publishes books.

That's an insane amount of progress in just a couple of generations. We live in amazing times. Yes, it's not all good. But honestly if you only focus on the negatives, you are missing the point. It's mostly good despite the negatives.

I get that people burn out. Many middle aged people do. And honestly, I'm not immune to that either. But that too is something that we can deal with better these days. Thanks to a lot of progress in medical and psychological world. And thanks to technology, most of that knowledge is at your finger tips.
by nicholasbraker | 2025-06-04 07:04:17+00:00
But are they really a sensible alternative to AWS/azure when it comes to developer support etc.? Based on the offerings of European alternatives it seems that everything upto IAAS and limited PAAS offerings can be sourced European, but the real value-add is in development tooling, pipeline support etc. (e.g. AWS CDK) The lock-in on those tools are huge and Europe really need to step up to provide an alternative to that. Love to be proven wrong though.
by TeMPOraL | 2025-06-04 07:04:28+00:00
> Of course, we probably don't want the dystopic parts of society to get more reliable, but the fact is the tech would probably make them so.

I strongly agree, and thank you for spelling it out. It's a point often lost in discussions of both tech and economics, that we need some slack in the system. That's where happiness, love, friendship, compassion, charity, forgiveness, imagination, and all other things good, nice and human, live. Too much efficiency just grinds people to dust.

(That, and creates brittle systems that breaks the first moment reality asserts itself.)

> Apparently it's not uncommon that when a debt collector buys a spreadsheet of unpaid debt, they can't actually prove in court that the debtor actually owes them the debt. You'd think some form of cryptocurrency technology would improve this

At a glance, I think your idea would work. I'm just curious about corner cases alone, and how often they'd happen.

For example, in some cases, I imagine it would actually reveal there is no proof because the debt is bogus. My impression is, no one in the chain is really incentivized to verify whether the debt is legitimate. Creditors outsource that in bulk to collection agencies, agencies might find it easier to try and collect anyway than proactively validate every entry in the spreadsheet, and plenty of debtors will contest real debts anyway. For the first two, the name of the game is minimizing costs; not sure if adding crypto to the mix would help, or just make the process more complicated and expensive.

I also wonder what would happen if, for some reason, a smart contract/NFT was established around a bogus entry. How much harder would it be for the debtor to prove that they don't actually owe the money in question?
by quotemstr | 2025-06-04 07:06:21+00:00
> They don’t standardize encodings, revisions, metadata, or even how filenames or paths are represented!

Sure, but some unified diffs, e.g. the ones produced by git, are quite regular. It's also common practice to express diffs as RFC822 email messages (often because they come that way), with headers and descriptive text.

I can't see DiffX getting traction. It's too alien. Too divorced from present practice, no matter how theoretically robust. It's like XHTML2.

Solving the same problems, I'd just establish conventions for sticking the needed metadata in RFC822-style pseudo-headers above the diff. This approach would work with, not against, existing tooling.

Not everything needs to be JSON.
by serial_dev | 2025-06-04 07:06:50+00:00
The main barriers for me would be:

1. Why? Who would use that? What’s the problem with the other search engines? How will it be paid for?

2. Potential legal issues.

The technical barriers are at least challenging and interesting.

Providing a service with significant upfront investment needs with no product or service vision that I’ll likely to be sued for a couple of times a year, probably losing with who knows what kind of punishment… I’ll have to pass unfortunately.
by smackeyacky | 2025-06-04 07:06:56+00:00
I’m a big muscle car fan, drive a Chrysler 300c SRT8.

You simply can’t use the performance legally and it’s a lot slower than the Charger R/T.

The main reason the ICE V8 is preferred is nothing to do with the performance. It’s like a Harley Davidson. The fun is in the noise, the drama and the authenticity.

You can’t fake that big American V8 snarl.

Trying to fake it was never going to work.
by 1659447091 | 2025-06-04 07:07:22+00:00
It is illegal in Texas to capture, posses, display, or use images or video from drones taken of private property or people on private property without permission or other limited authorizations (active pursuit of a suspect, investigating crime scene, search warrant, some licensed real estate activity, etc)

I don't know what laws in other states/countries are, but I would guess many have something similar that would prevent that.
by gorgoiler | 2025-06-04 07:07:32+00:00
The word commiserate in this (otherwise useful!) article feels like a stone in my shoe. If anyone else feels the same thing try re-reading it as “grumbling with”. It’s less flowery, but a closer meaning than the kind of empathetic solace-in-hard-times associated with commiserate.

Another fun, orthogonal substitution: instead of reading this from the manager/report perspective, try teacher/pupil or parent/pre-teen.
by chipx86 | 2025-06-04 07:08:07+00:00
Created by the Git team for Git's purposes, rather than something documented or proposed for wider adoption.

Other SCMs can and do use a Git-style diff format, but as there's no defined grammar, there are sometimes important differences. For example, Mercurial's Git-style diffs represent the revisions in a different format than Git's does with different meanings, reuse Git "index" lines for binary files but include SHAs of the file contents instead of any sort of revision, and have a header block that should be stripped out before sending to a Git-style diff parser.
by nebula8804 | 2025-06-04 07:08:35+00:00
This is just a hypothesis but I think it was the Tesla stock price shooting to the moon during COVID and shareholders asking all the auto companies why they don't have an EV roadmap. That pressure caused the rushed designs that flopped(Bolt EUV, the later compliance cars, and first attempts like Mache) and then some companies (GM, Hyundai, maybe Toyota in 2026) got their act together and started releasing better platforms.

The problem is even though there are better options, prices are still too high and we are in a moment where people are cash poor. Therefore practical vehicles (Prius, Rav4 Hybrid) sell well while cars that might evoke excitement in good times but are poor investments (anything Stellantis makes) are just sitting on dealership lots.
by pram | 2025-06-04 07:08:54+00:00
It was unironically pretty convenient. You had to manually set up NAT in a VPC for a long time (until they made NAT gateways) and some other early quirks were a pain in the ass. EC2 "classic" still had security groups and it was pretty effortless otherwise for a small deployment since it's connected to the internet from the start.
by rahen | 2025-06-04 07:09:30+00:00
Interesting perspective. sysinst could certainly use better ergonomics, but I wonder whether he’s really approaching NetBSD like a typical user would - someone after a classic Unix experience on modern hardware.

With an old-school Unix mindset myself, I’ve always found the CLI installers of OpenBSD and Alpine Linux cleaner, more straightforward and in line with that philosophy. Honestly, I’d rather see sysinst replaced by something along those lines.
by avoivo | 2025-06-04 07:09:42+00:00
1 point by avoivo 27 days ago | prev | next | edit | delete [–]

Location: Europe

Remote: Yes, fully remote

Willing to relocate: No

Technologies: React.js, Node.js, GoLang, Angular, TypeScript, JavaScript, .NET Core, Docker, Kubernetes, AWS, Google Cloud, CI/CD, Microservices, REST APIs, SQL, NoSQL

Résumé/CV: https://docs.google.com/document/d/1A1o0qxxWeoMyjSEA-RcOt9F1...

Email: tvoivodas@gmail.com

LinkedIn: https://www.linkedin.com/in/athanasios-voivodas/

I am an accomplished Engineering Manager and Senior Software Developer with over 20 years of experience delivering innovative solutions for global tech companies. Based in Athens, Greece, I specialize in leading remote teams to build scalable applications using React.js, Node.js, C#, GoLang, Angular, TypeScript, Docker, Kubernetes, and cloud platforms (AWS, Google Cloud).
by b0a04gl | 2025-06-04 07:09:49+00:00
Man, I’ve been there. Tried throwing BERT at enzyme data once—looked fine in eval, totally flopped in the wild. Classic overfit-on-vibes scenario.

Honestly, for straight-up classification? I’d pick SVM or logistic any day. Transformers are cool, but unless your data’s super clean, they just hallucinate confidently. Like giving GPT a multiple-choice test on gibberish—it will pick something, and say it with its chest.

Lately, I just steal embeddings from big models and slap a dumb classifier on top. Works better, runs faster, less drama.

Appreciate this post. Needed that reality check before I fine-tune something stupid again.
by tgma | 2025-06-04 07:09:53+00:00
The point was GC cost in general, not which Java/JVM implementation you choose. Try comparing two Androids with the same chipset at 4GB vs 8GB RAM.

Anyhow, that was just an anecdotal unscientific experiment to give you some idea--obviously they are two different codebases. The literature is there to quantify the matter as I noted.
Show HN: Tiptap AI Agent – Add AI workflows to your text editor in minutes
by philipisik | 2025-06-04 07:10:05+00:00
We built the Tiptap AI Agent to make it easy to integrate AI into a rich text editor, without rebuilding your entire frontend.

If you’ve ever tried wiring up AI inside a document editor, you’ve probably dealt with:

- Extracting context from complex document structures - Handling prompt input + streamed output - Supporting undo/redo for AI changes - Designing UI for accepting/rejecting changes - Multiplayer session state and conflicts

It’s a lot of work, and almost none of it is model-specific.

This new Tiptap toolkit gives you a clean way to define AI Agents that can read and edit rich text based on user-defined tasks. You can trigger agents manually, automatically, or in response to structured input.

Works with OpenAI or your own backend + LLM stack. Built on top of the same multiplayer engine behind Tiptap’s collaboration features.

We also include an AI Changes extension so users can review and accept/reject generated edits, like a built-in code review for content.

There’s a live demo here: https://ai-agent.tiptap.dev/

Developer Docs: https://tiptap.dev/docs/content-ai/capabilities/agent/overvi...

Happy to answer questions or just hear what you’re building :-)
by internet_points | 2025-06-04 07:10:42+00:00
> Puerto Rico, where insect biomass dropped up to 60-fold since the 1970s. These declines are occurring in ecosystems that are otherwise protected from direct human influence.

These numbers are absolutely horrifying. And it's happening in "protected ecosystems", not just those places we've paved over or sprayed poison on.

And it's not just the insects; according to https://en.wikipedia.org/wiki/Holocene_extinction :

> Current extinction rates are estimated at 100 to 1,000 times higher than natural background extinction rates[13][14][15][16][17] and are accelerating.

while humans and their livestock account for 96% of global mammal biomass.
by avastel | 2025-06-04 07:11:01+00:00
Author here: There’ve been a lot of HN threads lately about scraping, especially in the context of AI, and with them, a fair amount of confusion about what actually works to stop bots on high-profile websites.

This post uses TikTok’s obfuscated JavaScript VM (recently discussed on HN) as a case study to walk through what modern bot defenses look like in practice. It’s not spyware, it’s an anti-bot measure designed to make life harder for HTTP clients and non-browser automation.

Key points:

- HTTP-based bots skip JS, so TikTok hides detection logic inside a JavaScript VM interpreter

- The VM computes signals like webdriver checks and canvas-based fingerprints

- Obfuscating this logic in a custom VM makes it significantly harder to reimplement outside the browser (and so to scale an attack)

The goal isn’t to stop all bots, it’s to push attackers into full browser environments, where detection is more feasible

The post covers why simple solutions like "just require JS" don’t hold up, and why defenders use techniques like VM-based obfuscation to increase attacker cost and reduce replayability.
by japanuspus | 2025-06-04 07:11:04+00:00
This is exactly it. Especially for the UK offshore projects where sites were auctioned off: All bidders knew that a competitive bid had to aim for an ROI only slightly above market rates, given that risk was very low. This means that 1 percent on production will easily turn into 10 or 20 percent on profit.

Source: worked on CAPEX and yield estimates for major player operating in this sector for a decade.
by quotemstr | 2025-06-04 07:12:03+00:00
What's wrong with JSON?

* JSON is just barely powerful enough to need a library to parse it, but not powerful enough to have comments or trailing commas, so editing is needlessly annoying.

* It's human-readable, but deciphering nested data structures is annoying, especially when things are formatted as long lines. If you have to pipe something to jq to be able to read it, it's broken as a text-based document format.

* JSON is needlessly strict. If I write {foo: 5}, my intent is crystal clear. I shouldn't have to write {"foo": 5}. Come on. Who's really helped by this kind of syntactic hairshirt?

* despite being a strict schoolmarm of text formats, JSON is still vague. Yes, it has numbers. How big can they be? Who knows?

I mean, JSON is fine-ish, I guess, as an interchange format, in which I'm looking at it only for the occasional debugging session. But as a format for documents meant to be read by humans? Ugh. Anything, anything at all but JSON.
by mistercheph | 2025-06-04 07:13:19+00:00
What about traditional auto manufacturers making claims about solid state battery technology they will achieve in the next decade that they haven't yet?

There are always unsolved engineering and scientific challenges that stand between today and future product, and nothing is guaranteed, but you have to sell investors on the future technology (see: frontier model makers pushing AGI/ASI hype)

Obviously there are differences between Toyota's SS battery claims and Theranos' claims, but it's not a black and white line, it's a spectrum.
by eqvinox | 2025-06-04 07:13:21+00:00
I think there's a confusion here between diffs and patches. I would call the thing you're describing a patch, not a diff, and then everything makes much more sense.

(This is not helped by the fact that diffs often come with a .patch file extension… or that the "patch" tool processes diffs…)

Or anyway the nomenclature really sucks in this field. I guess I have no clue whether I have a minority view here.
by HelloNurse | 2025-06-04 07:13:40+00:00
A staggering amount of unnecessary and counterproductive scope creep in just 4 items:

A single diff can’t represent a list of commits There’s no standard way to represent binary patches Diffs don’t know about text encodings (which is more of a problem than you might think) Diffs don’t have any standard format for arbitrary metadata, so everyone implements it their own way.

Of these, only a notation for binary patches would be a reasonable generalization of diff files. Everything else is the internal data structure or protocol of some specific revision control system, only exchanged between its clients and servers and backups.
by noodlesUK | 2025-06-04 07:13:59+00:00
Some of the other commenters here have reasonable mitigations. One word of advice - PayPal is ruthless about banning merchant accounts that it deems risky. You’d best sort this out quickly or have plans to be able to rapidly switch to another PSP. Even if your business doesn’t get banned, the multiparty vendors (or whatever the appropriate term is) might get hit.
by Kiyo-Lynn | 2025-06-04 07:14:37+00:00
I'm not an artist, and I don't know much about aesthetics. But I've always felt that the most meaningful kind of image is one that somehow captures what you were feeling inside at the time.

AI-generated art can be stunning, but the more I see, the more it feels a bit empty. It often looks great, but there's no emotion behind it.
by iancmceachern | 2025-06-04 07:14:42+00:00
Cadaver tissue is commonly "processed" and then used to make all kinds of medical devices. Bone and tendons are a common example for bone and joint reconstruction surgeries. I can't speak too much to Australia specifically, but because of laws like this in the US these supply chains are setup a specific wah. A good example is Allosource in Colorado. The donations are donations, in return the persons final expenses are taken care of. The company that does the processing and reselling is a non-profit. In this case no one person "sells" any part of their or other persons bodies, but the needed medical materials get to the OR.
by tomthe | 2025-06-04 07:14:48+00:00
I wonder if you could implement it with only static hosting?

We would need to split the index into a lot of smaller files that can be practically downloaded by browsers, maybe 20 MB each. The user types in a search query, the browser hashes the query and downloads the corresponding index file which contains only results for that hashed query. Then the browser sifts quickly through that file and gives you the result.

Hosting this would be cheap, but the main barriers remain..