MurphyA/hacker-news huggingface dataset:
by ramses0 | 2025-12-04 15:39:43+00:00
Lilypond isn't well-known enough!

https://en.wikipedia.org/wiki/LilyPond#Integration_into_Medi...

https://www.mutopiaproject.org

https://lilypond.org/text-input.html

\relative c' { \key d \major fis4 fis g a a g fis e d d e fis fis4. e8 e2 }

...but why is it so complicated? A novice interpretation of "music" is "a bunch of notes!" ... my amateur interpretation of "music" is "layers of notes".

You can either spam 100 notes in a row, or you effectively end up with:

melody = [ a, b, [c+d], e, ... ] bassline = [ b, _, b, _, ... ] music = melody + bassline score = [ "a bunch of helper text", + melody, + bassline, + page_size, etc... ]

...so Lilypond basically made "Tex4Music", and the format serves a few dual purposes:

Engraving! Basically "typesetting" the music for human eyeballs (ie: `*.ly` => `*.pdf`).

Rendering! Basically "playing" the music for human ears (ie: `*.ly` => `*.mid`)

Librarification! Basically, if your music format has "variables" and "for-loops", you can end up with an end score that's something like: `song = [ intro + chorus + bridge + chorus + outro ]`, and then not have to chase down and modify all the places you use `chorus` when you modify it. (See this answer for more precision: https://music.stackexchange.com/a/130894 )

...now imagine doing all of the above for multiple instruments and parceling out `guitar.pdf`, `bass.pdf`, `drums.pdf` and `whole-song.pdf`

TL;DR: Music is haaard, and a lot closer to programming than you think!
by hackthemack | 2025-12-04 15:40:06+00:00
I wish people were not so inclined to reply with "Ad Hominem Ridicule" one liners. I like a good joke, but such replies lack a certain level of content that addresses the point and feel "low effort".

I do agree that comparing the past with the present if fraught with complicated nuances, and people do tend to see the past with rose tinted glasses. But, I read Talwar's blog post more as a personal reflection on their experiences they are facing and not some kind of scientific treatise on what went wrong.
by jacquesm | 2025-12-04 15:40:18+00:00
I've driven a lot of weird and interesting cars but none quite that scary. It felt borderline out of control all the time and I was happy to return it to the owner with all the parts still attached.

The 'worst' mini I owned was a souped up Innocenti bored out to the max, it was still fairly safe to drive but I would not let non experienced mini drivers others drive it, too many surprise factors. We drove that thing through Scotland (my eldest and me) and it was a trip to remember.

Another interesting one - that I didn't drive but the son of the owner did - was a TR with a massive Ford special products V8 shoehorned into it. If you live in eastern Canada and you're overtaken by something small and wicked fast with 'BAD TR' as the license plate, that was it. Getting in the passenger seat of that thing was an interesting experience, the engine took up half the footwell, and the clutch had so little throw that you couldn't really tell when it was depressed and when it wasn't. It certainly moved though.
by bell-cot | 2025-12-04 15:40:21+00:00
Well, yes - the US certainly could.

Having a strong-enough military establishment to defend your chair at the top table, when critical decisions are being made, is expensive and difficult. The US decided to do that after WWII. And again after the fall of the Berlin Wall. So it enjoys the occasional benefits.

Especially after the Berlin Wall fell, European countries decided on a different optimization - a far cheaper and easier one, which is overall better 99% of the time.

To be charitable - one could interpret all the European leaders' fussing over Ukraine as reminders to their citizens of the trade-offs they decided on. With maybe an occasional trial balloon for seriously revisiting those decisions.
by gregoriol | 2025-12-04 15:40:22+00:00
So what? The Rolls-Royce & Bentley L-series engine was made from 1959 to 2020, 60 years, (https://en.wikipedia.org/wiki/Rolls-Royce–Bentley_L-series_V...), and was only replaced because of mergers and change in ownership, not because of its capacities. It of course evolved quite some during that production span.
by potato3732842 | 2025-12-04 15:40:48+00:00
25yr is "meeting expectations" for any mass market[1] engine designed after about the mid 1970s or so.

A design that is both not fundamentally flawed in some way and cutting edge enough for its time to not quickly rendered obsolete the steady increase in expectations should go far longer. A design that is "ok" and cutting edge will probably go 20-30yr. A design that is behind the times, and very good (easier to not make wrong design decisions when you're not on the cutting edge) will probably do 20-30yr as well.

[1] i.e. not some specialty truck or sports car thing that could become not worth making due to a shift in market conditions for the few segments where it's applicable.
Show HN: Production-ready fullstack monorepo template (Svelte 5 and FastAPI)
by nokodo | 2025-12-04 15:41:02+00:00
I built a fullstack monorepo template for my own projects and figured I'd share it, as it might be useful to someone - plus I think it's really nice :)

stack:

backend: fastapi + sqlalchemy + postgres + alembic

frontend: svelte 5 + tailwind 4

type safety: openapi-typescript (backend schema auto-generates frontend types)

deploy: docker (multi-stage builds with nginx) + github actions

also has VSCode tasks/debugger configs and a full CI/CD setup with dev/stable promotion workflow. and premade AI instructions.

it's production-ready but minimal - no business logic, just the infrastructure setup I got tired of rebuilding every time.

github: nokodo-labs/monorepo-template

open to suggestions if anyone sees something that could be better!
by adventured | 2025-12-04 15:41:07+00:00
You could still easily build a $800-$900 system that would dramatically jump forward from that machine.

$700 in 2014 is now $971 inflation adjusted (BLS calculator).

RTX 3060 12gb $180 (eBay). Sub $200 CPU (~5-7 times faster than yours). 16gb DDR4 $100-$120. $90 PSU. $100 motherboard. WD Black 1tb SSD $120. Roughly $800 (which inflation adjusted beats your $700).

Right now is a rather amazing time for CPUs, even though RAM prices have gone crazy.

Assume you find some deals somewhere in there, you could do slightly better with either pricing or components.
by MayeulC | 2025-12-04 15:41:25+00:00
The PCI bus has nothing to do with the instruction set. Usually it is just a block a designer can add to a chip, and connect to an internal bus like AXI, give or take a few other adjustments on the chip. You can have PCIe buses without proper CPUs, even: it's quite common to find them paired with FPGAs.

For instance, Rasberry Pis have had a PCI bus for a few generations now, at first used for USB3. The Pi 5 breaks it out on a dedicated connector, making it easy to plug external devices: https://raspberrytips.com/pcie-raspberry-pi5/ (random link).

Of course, discrete GPUs are less ideal from a power efficiency perspective (duplicated memory controller, buses, and power circuits), so they wouldn't fit the Steam Deck. But write a big enough check, and I'm sure that AMD or Intel would be willing to share their iGPU designs. NVidia also makes Tegras.
Show HN: Xkcd #2347 lived in my head, so I built the dependency tower for real
by matzehuels | 2025-12-04 15:41:49+00:00
I finally got tired of XKCD #2347 living rent-free in my head, so I built Stacktower: a tool that takes any real package’s dependency graph and turns it into an actual tower of bricks. Along the way I had to wrestle some surprisingly spicy problems.

Full blog post here: https://stacktower.io

The result is half visualization tool, half love letter to the chaos of modern dependency trees. Open-source, works with PyPI, Cargo, npm, and more.

Code: https://github.com/matzehuels/stacktower
by mghackerlady | 2025-12-04 15:42:33+00:00
I might also be biased. My dad was a "high-functioning alcoholic" who primarily drank beer. I also suppose that my definition of high-functioning might be a bit different as I think it's just as dangerous as non-functional alcoholism because it's easy to hide. My dad hid his problem well, it was only when he almost killed himself by driving off a cliff into a lake while he was shitfaced drunk that he decided to sober up. If he wasn't as good as hiding it he might've been pressured into stopping before he did as much damage to himself and those around him
by andyjohnson0 | 2025-12-04 15:44:02+00:00
> I started my first real, full-time job in 2010. We wrote Java...

I started my first real, full-time job in 1992. Back here we write C, or maybe C++ if we're feeling cutting-edge. The Sparc 10 can get a bit slow when we're all on it, but I have a shelf full of O'Reilly X Windows books to look through if I can't figure something out. My mate in London sent me a QIC tape with something called "gcc" on it: sounds exciting, but before I can install it I have to find a spare day to update SunOS first.

This 2010 programming setup seems pretty amazing tbh... can't wait to get me some of that. Nice languages and tooling, no more having to edit makefiles by hand in emacs or laboriously debug in gdb. Bet they don't even use sourcesafe anymore.

I reckon by 2025 they'll have god-like stuff: fast, reliable hardware with more memory and storage than you can eat; powerful development and collaboration tools; lots of ways to find answers without having to ask that guy over in the other building. And a lot of it will be basically free! I wonder how they'll feel about all that awesome dev power, and whether they'll still use X terminals.
by zackmorris | 2025-12-04 15:44:40+00:00
Ya I used Rails on an aging project for about 6 months and there was so much magic behavior that we couldn't effectively trace through the code, so debugging even the simplest issue took days. Also the happy path mostly ran fine, but we couldn't answer even the simplest questions about the code or make estimations when something went wrong, because we couldn't isolate the source of truth in its convention-dominated codebase.

I come from a C++ background and mostly use PHP/Laravel today, and even though it does things less "efficiently" than the syntactic sugar in Ruby or low-level optimizations in .NET, I find that its lack of magic makes for much higher productivity in the long run. IMHO it feels like Ruby solves the easiest problems with sugar and then glosses over the hardest problems like they don't exist. So I just can't tell what problems it actually solves.

Generally, I think that cleverness was popular in the 2010s but has fallen out of fashion. A better pattern IMHO works more like Cordova or scripting in video games, where native plugins or a high-performance engine written in a language like Swift or Rust is driven by a scripting language like Javascript or Lua. Or better yet, driven declaratively by HTML or no-code media files that encode complex behavior like animations.

Of course all of this is going away with AI, and I anticipate atrociously poorly-written codebases that can't be managed by humans anymore. Like we might need pair programming just to take a crack at fixing something if the AI can't. I'm always wrong about this stuff though, so hopefully I'm wrong about this.
by adventured | 2025-12-04 15:45:32+00:00
Except nobody earns the minimum wage today, it's less than 1/2 of 1% of US labor.

The median full-time wage is now $62,000. You can start at $13 at almost any national retailer, and $15 or above at CVS / Walgreens / Costco. The cashier positions require zero work background, zero skill, zero education. You can make $11-$13 at what are considered bad jobs, like flipping pizzas at Little Caesars.
by photochemsyn | 2025-12-04 15:46:39+00:00
Required reading on Palantir and its cousins, Dataminr etc. : "IBM and the Holocaust, The Strategic Alliance Between Nazi Germany and America's Most Powerful Corporation."

The book is good because of the extensive historical documentation of IBM practices, Nazi procurement orders, and the eagerness that IBM leaders displayed in fulfilling those orders, even though they knew the purpose:

> "The racial portion of the census was designed to pinpoint ancestral Jews as defined by the Nuremberg Laws, ensuring no escape from the Reich's anti-Semitic campaign. In addition to the usual census questions, a special card asked whether any of the individuals grandparents was Jewish."

In a not-so-unique historical inversion, the Israeli government is now using American tech firms like Palantir to assist in their ongoing ethnic cleansing and genocide programs in the West Bank and Gaza, which have certainly not ended, ceasefire or no, as any reading of the statements of Israeli government officials, bloggers, online commentators etc. demonstrates (even though Twitter no longer provides translations of Hebrew to English, it's not hard to decipher the intent).

As far as Palantir and Dataminr's agenda? Same as IBM's - delivering value to their shareholders.
by bastawhiz | 2025-12-04 15:46:44+00:00
I'm not sure I'd describe the one you linked as "perfectly similar". At least to me, there's a couple obvious problems:

- Folding the corners of a rectangle an infinite number of times doesn't make it a circle, it just means it has an infinite number of corners.

- The folded corners always make right triangles, no matter how small they are. If you put the the non-hypotenuse legs of a right triangle against a circle, no matter how infinitely small the legs are, the corner of the legs will never touch the edge of the circle: an infinitely small triangle can't have all three points be the same point (or it's not a triangle). Which means the area of the folded rectangle will always exceed the area of the circle it's mimicking, even with infinite folds.

- As the folds become smaller and smaller, the arc of the circle (relative to the size of the triangles against it) becomes straighter and straighter. Which means each successive fold scrunches up more perimeter while becoming less and less circle-like.
by ryandrake | 2025-12-04 15:47:03+00:00
OK, so map it out. How do we go from "Palantir has some data" to "I'm a slave of the state?" Could someone draw the lines? I'm not a fan of this administration either, but come on--let's not lower ourselves to their reliance on shadowy conspiracy theories and mustache-twirling villains to explain the world.
by sota_pop | 2025-12-04 15:47:14+00:00
I’m no expert in Rust, but have done a couple of very minimal weekend projects. In the time I’ve read up on Rust, I’ve always looked at the borrow mechanism like an extreme/overactive implementation of RAII from C++, that is triggered with every context change.

Would be interested to hear where this analogy breaks down from someone more experienced than me.
by saghm | 2025-12-04 15:47:16+00:00
Based on the link someone put in a different comment about them suing Deno, at least in Oracle's case the answer is presumably "being able to sue people and get money from them".

Even if that weren't the case though, I think part of the problem is that even if the trademarks literally never brings any value, it also potentially costs them nothing to retain them (unless someone tries to get it invalidated, at which point there's some cost to trying to defend it). Arguably the cost to establish in the trademark in the first place is also low enough that companies at that scale don't have much incentive notto establish them in the first piece; they already have lawyers and trademarking things isn't really out of the ordinary for them, so the marginal cost of having them file one more isn't very high.

It's worth considering whether the point you make about there not being much of a realistic concern around someone else attempting to copy the name is something that would be obvious to non-developers. Sometimes what might be obvious to a developer might not be obvious to a lawyer, and at the end of the day, the legal team is probably in charge of deciding things like this at these companies, so in the absence of pressure from someone who understands this point enough influence to make it happen (like maybe a C-level exec), it might not matter that the concern is realistic if it's theoretically plausible.
by jacquesm | 2025-12-04 15:48:04+00:00
Classic Mini that meet with an bad end really do look like that, it is unfortunately very descriptive. Issigonis created an icon, and John Cooper improved substantially on it. Incidentally, one of Cooper's creations, the 'Twini' nearly killed him:

https://www.classicandsportscar.com/news/csc-features/mini-t...
by RiverCrochet | 2025-12-04 15:48:11+00:00
IF you accept CA certificate X as trusted, then you are assuming anything signed by X is who it says it is. HTTPS server certificates are signed by CAs.

The actual communication is secured by a public/private keypair which is separate from the CA certificate.

Browsers have a set of certificates "pre-accepted", these are the default root certificates. There have been issues with some of them over time (e.g. DigiNotar) and they hav changed over time. If you hear of someone speaking about the "CA cartel" this is what they mean.

So a compromised CA can make you think you are talking to someone, like your bank, when you are not. But it doesn't enable snooping on traffic on the wire.

A CA can protect from this compromise by keeping the root private key entirely offline and signing a couple intermediate CA certificates. Then, if one of those intermediate CAs gets compromised, it can be revoked and a new intermediate CA created. You as a user of the CA can't do much though-either you choose to trust it (or delegate that trust) or don't.

You can create your own self-signed root CA certificates and client/server certificates signed by that CA fairly easily. But you then have to add the root CA as a trusted certificate into every device you want to use it, including those of your friends, employees, etc. This isn't quite as bad as it sounds, the last time I checked even phones would install a new root CA certificate if you opened a .crt file, and deploying CA certificates via Microsoft Group Policy is a thing.
by jack_tripper | 2025-12-04 15:48:13+00:00
The Terry Davis tinfoil-hat version of me has a theory that this wider industry trend of pushing away consumers from general purpose home computers towards only using remote datacenters from locked down mobile/thin edge devices, is supported by both industries and governments because:

Number one, you become a recurring subscription instead of a one and done deal, making it incredibly profitable for industry

And number two, the government can more easily snoop on your data when it's all in the cloud versus a HDD box in your closet.

Granted, I think we're far away from that future, but I do feel that's the future the powers that be desire and they can use various mechanism to force that behavior, like convenience, and pricing, like for example making PC parts too expensive for consumers and subsidizing cloud and mobile devices to accelerate the move, and once enough consumers only know how to use Apple or Google devices they'll be less inclined to spend more money to build a PC and learn what a Linux is.
by jermaustin1 | 2025-12-04 15:48:18+00:00
It is crazy for anyone making any amount. A $15k desktop is overkill for anything but the most demanding ML or 3D work loads, and the majority of the cost will be in GPUs or dedicated specialty hardware and software.

A developer using even the clunkiest IDE (Visual Studio - I'm still a fan and daily user, it's just the "least efficient") can get away without a dedicated graphics card, and only 32GB of ram.
by pmontra | 2025-12-04 15:48:57+00:00
That's a series of engines, not a single model. The FIAT FIRE [1] series has been in production for 36 years from 1985 to 2021 and, maybe you wouldn't expect it from FIAT, those engines were reliable.

[1] https://en.wikipedia.org/wiki/Fully_Integrated_Robotised_Eng...
by thewebguyd | 2025-12-04 15:49:07+00:00
> Do we want to accept that as a potential consequence, or have someone else choose for us what consequences we are allowed to accept?

Unfortunately, I think the old guard here is dying out and the majority want someone else choosing for them, which is why all the age verification & chat control-like bills have broad bipartisan support.

I'm in the "with freedom comes responsibility" camp. Obviously we should build secure systems, but our devices shouldn't be impenetrable by their own user. The "security" we are getting now is just security against the user having the freedom to do as they wish with their devices and software.

The cultural zeitgeist surrounding internet and computing freedom has changed to be in favor of more control and censorship. Not sure how we can stop it.
by jqpabc123 | 2025-12-04 15:50:09+00:00
AI agent technology likely isn’t ready for the kind of high-stakes autonomous business work Microsoft is promising.

It's unbelievable to me that tech leaders lack the insight to recognize this.

So how to explain the current AI mania being widely promoted?

I think the best fit explanation is simple con artistry. They know the product is fundamentally flawed and won't perform as being promised. But the money to be made selling the fantasy is simply too good to ignore.

In other words --- pure greed. Over the longer term, this is a weakness, not a strength.
Show HN: Envelop – A P2P protocol stack treats messages as paper in envelope
by DarkMagician34 | 2025-12-04 15:50:53+00:00
Hi HN,

In my spare time I built a small experimental P2P protocol stack in Go called Envelop.

Instead of thinking in terms of “connections” and “streams”, it treats every message as:

a piece of paper (the real payload),

that always travels inside one or more envelopes.

On the outside of an envelope you have DestPeerID, ReturnPeerID, TTL, Flags. Inside you have either:

the next Envelope (for onion-style nesting), or

the final paper (application payload).

So you can literally do “envelope in envelope in envelope”:

C gets the innermost envelope and sees the paper.

B only sees “an envelope to C”.

A only sees “an envelope to B”.

If inner layers are encrypted, A and B never see the paper; they just see:

“this layer is for me”

“next recipient is X”

“these are my flags/TTL”.

The stack looks like:

QUIC → Frame v2 → Envelope v2 → Router → Strategy → Socket → Host

Each QUIC stream carries one Frame; each Frame carries one Envelope.

Strategy: where the fun is

All “how to deliver” behavior lives behind a Strategy interface.

The built-in SimpleStrategy is just a single-layer demo. You can plug in your own strategy to turn Envelop into:

an I2P-style onion/garlic router (multi-layer envelopes, per-hop keys),

a private invite-only mesh with custom trust/delivery rules,

or any weird store-and-forward / delay / mixing scheme you want to experiment with.

The core stack doesn’t change – it still just sees envelopes and peer IDs.

Code (AGPLv3, Go) is here:

https://github.com/DarkMagier/envelop

There is both an English and a Chinese README. The code is heavily commented and meant more as an experimental protocol skeleton / learning resource than a production library.