MurphyA/hacker-news huggingface dataset:
by maerF0x0 | 2026-01-08 16:41:33+00:00
The good are things we've known for a while. Most of them result in unintended decrease in calories consumed and resulting weight/fat loss.

- More protein (than the prior RDA of 0.39g/lb) can lead to inadvertent caloric restriction and weight loss, and obesity is driving a large number of negative health outcomes. Also improves lean mass (muscle) retention during weight loss.

- Processed foods have lower satiety per calorie, and hence can

- Most people can benefit from eating more fruit and veggies. (Lots of people who change to vegetarian inadvertently eat significantly fewer calories because the food is not calorie dense)

The one glaring part I have a hard time reconciling is:

- This new Real Food guide seems like it's going to increase people's saturated fat intake, which is not good. DASH/Mediterranean diet seems to be a better model than both the prior and new pyramids.
Show HN: Ad-free listening for all your podcasts. Join now to get free access
by nkabbani10 | 2026-01-08 16:41:48+00:00
Alora Podcasts lets you listen ad-free to all your podcasts, including host-read ads. Here’s why we created it.

There was a time when listening to podcasts felt personal. No annoying breaks and no shouting “we’ll be right back.” Somewhere along the way, your experience was compromised. Stories get chopped up by ads and moments of flow get replaced by friction. But it wasn't always like this. The medium lost respect for your time and attention.

We created this to make listening feel personal again. To do that, we developed a system that detects and cuts ads out of the audio before you ever hit play. Repetitive sponsor reads, irrelevant products, and time-consuming promos. All gone.

It took 18 months of trial and error, dead ends, and a lot of frustration. We rebuilt our audio infrastructure over and over again, reworked transcript systems that weren’t accurate enough, and fixed tiny transitions that lasted less than a blink but still ruined the moment. We spent many nights replaying the same two seconds of audio on loop, chasing a cut you’d never notice but that we couldn’t ignore.

And then came the time an episode finally played straight through with no interruptions. In that moment, it felt like we’d restored something sacred the medium had forgotten. It felt amazing. The best technology doesn’t add more. It takes away what doesn’t belong.

But this isn’t just for listeners, it’s for podcast creators too. Our mission is not to take from podcasts, it is to grow them. We are just as excited, if not more, to help podcast creators earn more money, reach new people, and feel closer to their audiences.

We started Alora Podcasts with a simple philosophy: the listener’s experience should be sacred, but not at the expense of the creators who make podcasts what they are. Our success depends on creators thriving.

— Naz & Konrad
by ktg0215 | 2026-01-08 16:42:09+00:00
This is excellent investigative journalism. The detail about the Iberia flight declaring a fuel emergency to cross a debris zone is particularly alarming.

The core tension here is real: we want rapid space innovation, but "rockets are hard" isn't an acceptable answer when debris is falling near commercial aircraft. The FAA's dual mandate to promote AND regulate commercial space seems increasingly untenable.
by Workaccount2 | 2026-01-08 16:42:16+00:00
The impossibly large cost is the difference between hardware and software returns.

Hardware by nature forces redesigns whereas software it's always possible to just keep building on top of old bad designs, and so much cheaper and faster to do so. That's why hardware is 10,000x faster than 30 years ago, and even simple word processors are debatabely faster than 30 years ago. Maybe even slower.
by shuntress | 2026-01-08 16:42:17+00:00
You are preposterously out-of-touch with reality here. "Filling up on salads" is healthy but it is FAR from the most "bang for your buck". And are seriously trying to say that beans aren't a good source of fiber and vitamins?

Sure you shouldn't eat hot dogs and baked beans three meals a day every day but you are absolutely out of your mind if you think cheap sausage and canned beans are bad to have in the house when you are struggling.
by Snuggly73 | 2026-01-08 16:42:25+00:00
Well, for some reason it doesnt let me respond to the child comments :(

The problem (which should be obvious) is that with a/b real you cant construct an exhaustive input/output set. The test case can just prove the presence of a bug, but not its absence.

Another category of problems that you cant just test and have to prove is concurrency problems.

And so forth and so on.
by amluto | 2026-01-08 16:42:32+00:00
Is it?

This week I asked GPT-5.2 to debug an assertion failure in some code that worked on one compiler but failed on a different compiler. I went through several rounds of GPT-5.2 suggesting almost-plausible explanations, and then it modified the assertion and gave a very confident-sounding explanation of why it was reasonable to do so, but the new assertion didn’t actually check what the old assertion checked. It also spent an impressive of time arguing, entirely incorrectly and based in flawed reasoning that I don’t really think it found in its training set, as to why it wasn’t wrong.

I finally got it to answer correctly by instructing it that it was required to identify the exact code generation difference that caused the failure.

I haven’t used coding models all that much, but I don’t think the older ones would have tried so hard to cheat.

This is also consistent with reports of multiple different vendors’ agents figuring out how to appear to diagnose bugs by looking up the actual committed fix in the repository.
by Mumps | 2026-01-08 16:43:15+00:00
You are correct. This is pronoun ambiguity. I also immediately noticed it and was displeased to see it as the opener of the article. As in, I no longer expected correctness of anything else the author would write (I wouldn't normally be so harsh, but this is about text processing. Being correct about simple linguistic cases is critical)

For anyone interested, the textbook example would be:

> "The trophy would not fit in the suitcase because it was too big."

"it" may refer to either the suitcase or the trophy. It is reasonable here to assume "it" refers to the trophy being too large, as that makes the sentence logically valid. But change the sentence to

> "The trophy would not fit in the suitcase because it was too small."
by graemep | 2026-01-08 16:43:43+00:00
The guidelines say:

"Off-Topic: Most stories about politics, or crime, or sports, or celebrities, unless they're evidence of some interesting new phenomenon. Videos of pratfalls or disasters, or cute animal pictures. If they'd cover it on TV news, it's probably off-topic. "

No mention of religion there, and it says "most politics" not all politics.

"Anything that good hackers would find interesting" and it seems reasonable for that to include philosophy, religion etc. and definitely an interesting web app is of interest.
by logicprog | 2026-01-08 16:44:13+00:00
Yeah, I'm brand new to learning Go, but that was the first thing I thought when I got to his section on errors. You're supposed to return a generalized error and then use errors.is or errors.as to figure out what specific type of error it is so that you can access the specific data on it. And the reason you do it that way instead of just returning a concrete error type is because one function might want to return different error types depending on what specific thing happened. Just like you can throw different exception types in other languages. And obviously if that's happening, the reason you can't just directly access stuff without doing errors.is or as is because you don't know which it is until you do that.

I think it's a shame that Go doesn't have sum types, exhaustiveness checking, and pattern matching, because it would make its error model more enforceable and concise (see Gleam!) but given that it doesn't for whatever reason, I think the solution it's gone with is genuinely the best possible second option that gives you 90% of the benefits of result and option (out of band errors, structured error data, errors as values so you can directly and in line decide what to do with them without special control flow, no invisible or non-local control flow, it's immediately obvious when anything can return an error, etc).

And I say this as someone who started out hating go.
by lynx97 | 2026-01-08 16:44:19+00:00
Thanks for raising this. It feels like evangelists paint a picture of Rust basically being magic which squashes all bugs. My personal experience is rather different. When I gave Rust a whirl a few years ago, I happened to play with mio for some reason I can't remember yet. Had some basic PoC code which didn't work as expected. So while not being a Rust expert, I am still too much fan of the scratch your own itch philosophy, so I started to read the mio source code. And after 5 minutes, I found the logic bug. Submitted a PR and moved on. But what stayed with me was this insight that if someone like me can casually find and fix a Rust library bug, propaganda is probably doing more work then expected. The Rust craze feels a bit like Java. Just because a language baby-sits the developer doesn't automatically mean better quality. At the end of the day, the dev needs to juggle the development process. Sure, tools are useful, but overstating safety is likely a route better avoided.
Nanojava and Nanodotnet
by ziyaadsaqlain | 2026-01-08 16:44:41+00:00
hello everyone i want to introduce you to my nanojava and nanodotnet.
i have successfully extracted whole .net 10 rc 5 jit runtime with csharp and vb compiler in just 106 MB.

And whole java graalvm 25 jit runtime with full standard library + java compiler in just 220 MB

And if you take both the latest compiler and jit runtime of two big langs and frameworks in just 326 MB.
Show HN: Protocol for Verified Ephemeral Broadcasting
by skylessdev | 2026-01-08 16:45:44+00:00
Value and credibility have become inseparable online. To be heard, you need followers; to get followers, you need consistent signaling. This makes exploration impossible and surfaces popularity over insight.

Skyless decouples verified presence from persistent identity. Broadcasts are cryptographically authenticated but identity is ephemeral (keys can be single-use, rotated, or discarded). This enables coordination where contribution matters more than reputation.

For more, see the protocol spec (github.com/skylessdev/skyless) and theoretical context linking this to fractal coordination systems (https://maggieon.medium.com/from-fragmented-to-fractal-fc173...).

The architecture demonstrates that verification can scale without identity accumulating — filling a gap most recursive proof systems ignore.
by dkarl | 2026-01-08 16:45:48+00:00
> I don't like the term "enums" because of the overloading between simple integers that indicate something (the older, more traditional meaning)

I disagree with this. I'm old as hell, and I learned programming in a context where enums were always ints, but I remember being introduced to int enums as "we're going to use ints to represent the values of our enum," not "enums are when you use ints to represent a set of values." From the very beginning of my acquaintance with enums, long before I encountered a language that offered any other implementation of them, it was clear that enums were a concept independent of ints, and ints just happened to be an efficient way of representing them.
by OrsonSmelles | 2026-01-08 16:46:00+00:00
That would be Skippy's List[0], which as far as I know is the seminal work in the genre (at least on the internet). I originally learned about it through a (rather less compact) version about someone's D&D crimes[1], which was closer to my cultural wheelhouse, but the original holds up even if you have to google some phrases.

[0] https://skippyslist.com/list/

[1] https://theglen.livejournal.com/16735.html
by ktg0215 | 2026-01-08 16:46:23+00:00
The timing (Saturday, no announcement) feels calculated to minimize attention. And the framing as "supply and demand" gives them cover for future increases.

The real concern isn't this specific 15% - it's the precedent. Once you've broken the "prices only go down" expectation, every future increase becomes easier. Enterprise customers with EDP agreements are discovering their "locked in" discounts are calculated against prices AWS can change at will.

For smaller teams, this is another argument for considering alternatives like Lambda Labs or CoreWeave for GPU workloads.
by CGMthrowaway | 2026-01-08 16:46:39+00:00
The early Levi’s Stadium turf was notoriously uneven and slippery, causing slips and tears in its first few years, but that was fixed with hybrid grass by 2017. Teams like the Jets and Giants on notoriously bad turf don’t see the same tendon-rupture epidemics. No other franchise, even those running identical schemes on the same hybrid turf, comes anywhere close.
by cogman10 | 2026-01-08 16:46:46+00:00
It also very prominently shows red meat, which is the worst you can do.

fish > poultry > red meat. (Fish and poultry can be swapped, mercury is a real problem).

But really if you are looking for the healthiest proteins then you really can't do much better than nuts and beans.

Red meat beyond having a lot of links to heart disease is also linked to cancer. It should be seen as a treat, not the main thing you should be consuming.
by packetlost | 2026-01-08 16:46:59+00:00
Yeah, the lack of sum types of any kind in Go is the only thing that I really miss when coming back from Rust. It's, I think, a big part of the reason that Gleam has seen a lot of growth. It has many of the syntactic benefits of Go with the compiler guarantees of Rust (though it's weird in some other ways, like dramatically favoring continuation-passing-style in programmer facing syntax).
by esseph | 2026-01-08 16:47:19+00:00
1. There was a cyber attack on the Venezuelan power grid. This disrupted comms coming into the attack and made it much harder to coordinate a response.

2. It was not in any way related to this BGP, of which, as someone in networking, looks like a simple and fairly common mistake. It wouldn't really buy them anything anyway, the breach happened 6+ months before.
by renegade-otter | 2026-01-08 16:47:36+00:00
AWS in general is a good example. It used to be much more affordable and better than boutique hosting. Now AWS costs can easily spiral out of control. Somehow I can run a site for $20 on Digital Ocean, but with AWS it always ends up $120.

RDS is a particular racket that will cost you hundreds of dollars for a rock bottom tier. Again, Digital Ocean is below $20 per month that will serve many a small business. And yet, AWS is the default goto at this point because the lockin is real.
by weitendorf | 2026-01-08 16:47:54+00:00
The lack of good enum support across both protobuf and Golang really bothers me. Having previously done a bunch of digging into proto internals I think I probably know why Go ended up without good enum support.

(Disclaimer, formerly worked at Google and used proto/grpc/go there and now in my own startup, but not privy to the complete origin story: just reasoning)

Proto is designed so that messages can be deserialized into older/previous proto definitions by clients even if the server is responding with messages of a more recent version. Field numbers enable you to start serializing new fields (add a new field with an unused/the next number) or safely stop setting fields in proto responses (reserve a field) without risking older clients misinterpreting the data as belonging to some existing field they know about. To do this you have to encode the field numbers alongside the field data in the proto wire format.

This leads to two major problems: nothing in proto itself enforces that field numbers are assigned sequentially, because there is no single source of truth for the proto schema (in the protocol/system itself, you can still have one but it’s not a “thing” in proto). Also, the whole point of field numbers is that they can be selectively missing/reserved/ignored and allow you to deserialize messages without special handling for version changes in your code at runtime.

So, field numbers aren’t a dense, easily enumerable range of numbers, they’re basically tags that can be any number between 1 and 536,870,911 except for the reserved 19,000-19,999. This smells like serious tech debt/ a design flaw that completely closes the door for even fixing this at Google or anywhere else, because it’s arbitrarily in the middle of the range of field numbers and a leaked implementation detail from the internals. You couldn’t build your own dense field number management/sequential enforcement system on top of proto without ripping that part out, but your existing proto usage relies on that part and changing it would break existing clients because you’re removing field numbers, which is the whole fucking point of proto, and makes it difficult to roll out even if you did fix it yourself.

So, representing union/enumerable types in proto is impossible. For proto enums to have forward compatibility, they have to handle adding new enum values over time, or need to remove and reserve old ones. So, proto enums end up being basically just field numbers. That’s exactly what you see in Golang enums and I don’t think it’s a coincidence: Google doesn’t have a good way to serialize/deserialize/operate on enumerable enums or union types anywhere they use proto/grpc, which is almost everywhere, so it hasn’t been prioritized in Golang. And also, Golang inherits its “enums” implementation from protobuf because it’s the context in which it was created.
by ncruces | 2026-01-08 16:48:00+00:00
Not really.

For the question “is the data in the checksum database immutable” you can trust people like the parent, who double checks what Google is doing.

For the question “is it the same data that can be downloaded directly from the repos” you can skip the proxy to download dependencies, then do it again with the proxy, and compare.

So I'd say you don't need to trust Google at all in this case.
by 1970-01-01 | 2026-01-08 16:48:27+00:00
In context with the requirement of

"A flying car can be purchased by any US resident if they have enough money."

and the prediction level being

"There is a real possibility that this will not happen at all by 2050."

This production fulfills his requirements of the prediction becoming true much sooner than expected. He could go get one today with unlimited money.
by benoau | 2026-01-08 16:48:29+00:00
Second this, I enjoy using it coming from a Flash then HaXe background. It's very robust and mature and great with Electron and Capacitor packaging it up for various platforms. I really like being able to stick with the "web stack" after decades of learning all kinds of stuff that is absolutely pointless to know today! I also like being able to reuse tools like Playwright, Jest and Vite.

You can already use TypeScript with Phaser and they extract all the jsdoc notation to TS bindings so in terms of making a game there wouldn't be much to gain from the framework itself transitioning, but it it would be nice to see them do that + start reinforcing it all with tests.

https://raw.githubusercontent.com/phaserjs/phaser/refs/heads...

https://www.xjavascript.com/blog/phaser-typescript-tutorial/
by 9rx | 2026-01-08 16:48:43+00:00
> If you want sum types, a better approach is to combine the sort of code [...]

I'm currently of the opinion that where you truly need this type of thing, write tests that use the ast package to validate that your expectations hold. That way you don't need to do anything strange with the code, and logic failure will show up alongside all of your other logic failures.

While it does venture into implementation details that shouldn't be tested, Go offers a discriminator between your actual tests and throwaway tests (i.e. `package foo_test` v.s. `package foo`), so as long as you've clearly mark the intent I find this to be an acceptable tradeoff. As implementation changes, and you no longer need that validation, others will know that your throwaway tests are intended as such.
by sderle | 2026-01-08 16:48:49+00:00
In 2026, there's still a need for a modern, lightweight Markdown editor for macOS with live preview capabilities. MacDown 3000 aims to fill that need.

MacDown 3000 is essentially MacDown Continued. The focus is stability, bug fixes, and support for more modern varieties of Markdown. It supports macOS 11.0 (Big Sur) and later, on both Intel and Apple Silicon.

This project seeks to honor the intentions and efforts of both Mou and MacDown, while ensuring that this valuable tool remains available and actively maintained for today's Mac users. Many thanks to Tzu-ping Chung, the author of the original MacDown, for creating this fantastic tool.

MacDown 3000 is and will always be Free Software. You can get it from https://macdown.app/, from GitHub, or from Homebrew:

brew install --cask macdown-3000

Please try it and let us know what you think!!
by agwa | 2026-01-08 16:48:50+00:00
The checksums are published in a transparency log, which uses a Merkle Tree[1] to make the attack you describe detectable. If Google were to present you with a different view of the Merkle Tree with different checksums in it, they'd have to forever show you, and only you, that view. If they accidentally show someone else that view, or show you the real view, the go command would detect it. This will eventually be strengthened further with witnessing[2], which will ensure that everyone's view of the log is the same. In the meantime, you / your coworker can upload your view of the log (in $GOPATH/pkg/sumdb/sum.golang.org/latest) to Source Spotter and it will tell you if it's consistent with its view:

$ curl --data-binary "@$(go env GOPATH)/pkg/sumdb/sum.golang.org/latest" https://gossip.api.sourcespotter.com/sum.golang.org
consistent: this STH is consistent with other STHs that we've seen from sum.golang.org

[1] https://research.swtch.com/tlog

[2] https://github.com/C2SP/C2SP/blob/main/tlog-witness.md
by observationist | 2026-01-08 16:48:52+00:00
Given the same fundamentals, such as transformer architecture networks, then multiple models given data about the same world are going to converge on representation as a matter of course. They're going to diverge if the underlying manner in which data gets memorized and encoded, such as with RNNs, like RWKV.

The interesting bits should be the convergence of representation between human brains and transformer models, or brains and RWKV, because the data humans collect is implicitly framed by human cognitive systems and sensors.

The words and qualia and principles we use in thinking about things and communicating and recording data are going to anchor all data in a fundamental ontological way that is inescapable, and therefore it's going to constrain the manner in which higher order extrapolations and derivations can be structured, and those structures are going to overlap with human constructs.
by blks | 2026-01-08 16:49:17+00:00
Yeah, I actually learned how to make it myself, although it requires access to kefir/piimä, or making it yourself first. Once you have it, it’s very easy to make it, although often unnecessary when local eastern shops have it quite cheap.

Not sure about availability in the US, in EU cottage cheese often is sold as much more creamy spread, like Philadelphia cheese.
by vunderba | 2026-01-08 16:49:21+00:00
This is great, but boy I'm glad I took the time to actually read the article.

I assumed it was about someone who took a huge number of standard rectangular LEGO bricks with the 6/8 raised studs, then laboriously shaved them off to create all the necessary braille patterns, and used them on large LEGO boards to quickly assemble messages/notifications for blind readers.

Reality - it's about using lego to help "visualize" architecture.

EDIT: Apparently this already exists!

https://www.lego.com/en-us/product/play-with-braille-english...