MurphyA/hacker-news huggingface dataset:
by gingerBill | 2025-05-10 08:23:53+00:00
There is compile time type introspection in Odin, it's just not that easy to use on purpose. But why do you not want RTTI? One of the reasons I wanted it over CTTI is because it's a fixed cost rather than an exponential cost—at both compile-time and run-time.

People who want CTTI is because they think it will produce better code because it is specialized for that type, and that is partially true, but also it will produce a hell of a lot more code. The canonical example of what I mean is the difference between doing something like `core:fmt` in Odin, which is a fixed cost at both compile-time and run-time, and then doing something closer to `std::format` in C++ (or other similar things in other languages) which will do a specialized procedure for each set of argument types. The former might be a huge initial cost if you only have a single type you want to print, but that cost is always the same regardless of many more types you add, it's also easier to debug. The latter is a small initial cost per type, and when the types get more and more complex, you also produce more and more code, which in turn increases the compiling time and binary/executable size.

As for the conditional imports, we did use to allow them but we found that what people were doing with them was kind of missing the point of the platform-specific features of the `package` system, and their code was always better if it actually utilized the package system correctly. There were some other quirks with the conditional imports which did confuse people because they didn't realize how things had to be executed (to allow for out-of-order type checking) and just disallowing it in the first place just solves that too (as a consequence, not as a goal).
by 0xDEAFBEAD | 2025-05-10 08:23:56+00:00
What are the sociological factors that separate old school from new school?

To me, I'd summarize the situation something like: The modern internet is one of continuous popularity contests, engagement farming, and status wars. The old internet was one of authentic sharing, rambling, and candid conversations.

But what are the causes driving those effects?

I suspect one key dividing line is the importance of feedback metrics. Likes, upvotes, downvotes, shares, whatever.

Imagine going to a party where whenever you said something, everyone briefly did a thumbs-up or thumbs-down motion to indicate how much they liked it before the conversation continued. Obviously, that's a bastardized way to party. But it's our whole world online. We compete for popularity, and we copy popular behaviors, in search of an attention-farming fixed point.

I also think the size of the community matters a lot. I remember in the earliest days of reddit, noticing the same usernames over and over made it feel like more of a community.

Modern "social media" is not really "social"; it should really be called "DIY broadcast media" in my view. A key clue here is despite our brave "social" world, the concept of an "online friend" is considerably diminished relative to what it once was. You tend to be either smothered with attention, or totally ignored. I prefer chilling out over fighting to get a scrap of interaction.

BTW here's a fun old-school guide to internet culture: https://www.flamewarriorsguide.com/ (I don't think it describes the modern internet very well)
by hinkley | 2025-05-10 08:24:01+00:00
> I am proposing writing clever code as a means of practice. Being at work is a job with coworkers who will not appreciate if your code is too clever.

We are what we pretend to be, so we must be careful about what we pretend to be.

Clever is, however, about all that a CS degree prepares you for. So you're going to be leaning on it for as long as it takes you to find someplace else to stand. Just don't take too long to get out of it.
by ossobuco | 2025-05-10 08:24:17+00:00
I've been using Odin for the last ~6 months, wrote a 15k loc project and it's been an absolute pleasure. This is my first low level language after 10 years of web dev, and it feels much higher level than it is, while giving you the control and performance of a language like C.

I like pretty much every choice that has been taken when designing the language, except maybe the lack of namespaces, which can be solved anyway with prefixes.

The lack of OOP features is the best part for me, it's rewiring my brain in a good way and I can now also reason much better about RDBMS schemas. Data oriented design is the most helpful approach I've stumbled upon in my career.
by einpoklum | 2025-05-10 08:25:03+00:00
Let us stop using GMail:

* Google collects vast amounts of personal data, specifically through receiving all of your email and analyizing it.

* It builds elaborate user profiles and uses them to target you with ads designed to better influence you.

* Its hold on information (from different sources) has made it excessively powerful economically, and thus also politically.

* Google/Alphabet has long started to affect legislation, including through direct registered lobbying: ~15 Million USD in 2024 (opensecrets.org).

* It has been known to pass, and likely still passes, the information it collects - including copies of your email correspondence - on to the US government (Edward Snowden leaks).

and finally:

* There are multiple email providers, many of them quite good - both for pay and gratis. Naturally most of the gratis ones have their own interests, but nothing like Google.
by hunglee2 | 2025-05-10 08:26:09+00:00
Google is a US tech company and is not under the jurisdiction of any other government other than the US. We can disagree with the Trump's ridiculous postering but it is beyond the pale for Mexico to bring lawfare to US companies. If the Mexican's don't like it, they can not use Google, use other alternatives or build their own search engine / mapping solution.
by koliber | 2025-05-10 08:26:22+00:00
I believe that almost every single thing you read has some worthwhile knowledge or wisdom, as well as a slew of material that is wrong or irrelevant or based on values that I don't carry. This includes books, blog posts, and sometimes even short form social media posts.

The key is to read with an open mind BUT don't blindly take everything as gospel. Ask yourself "is this surprising?", or "is this new?" and filter it through the "does this apply to me now?" or "is the person who is saying this worth listening to?".

Throwing out any entire book is shortsighted. Even "bad" books have nuggets of wisdom or new ideas or concepts. Not everything applies to your situation. Some things might apply now. Some things might apply at some point in the future, and having read the book you have an arsenal ready to be deployed when the time comes. Some things will never apply.

If I read a book and have one new original perspective or "aha" moment, it's a net positive.
by Oaklight | 2025-05-10 08:26:27+00:00
Author here!

I’ve been working on ToolRegistry, a Python library for registering, managing, and invoking tools—from local functions to MCP/OpenAPI endpoints—in a structured, composable way.

With ToolRegistry, you can:

* Register Python functions, classes, or external tools. * Auto-generate JSON Schemas for parameters. * Run tools synchronously or asynchronously in parallel. * Integrate tools over STDIO, HTTP, WebSocket, or SSE via Model Context Protocol (MCP). * Experimental support for OpenAPI services * Compose tools dynamically and reconstruct tool output messages.

The goal is to make it easier to build apps, agents, or systems that coordinate multiple tools flexibly—without getting bogged down in glue code.

GitHub: [https://github.com/Oaklight/ToolRegistry](https://github.com/Oaklight/ToolRegistry) PyPI: [https://pypi.org/project/toolregistry/](https://pypi.org/project/toolregistry/) Docs: [https://toolregistry.lab.oaklight.cn](https://toolregistry.lab.oaklight.cn)

Would love feedback—ideas, issues, or use cases welcome!

Thanks for checking it out.
by tomhow | 2025-05-10 08:27:07+00:00
When we leave them "untouched" they disappear rapidly due to community flags and automatic flamewar penalties. The only way for us to give them exposure is "touch" them – to override the flags and flamewar penalties (i.e., push the threads back up onto the front page), then spend hours poring through the comments to try to minimise the effects of the most inflammatory ones. Still, we do it often, but only when the story has "significant new information" which is always the test of whether a story belongs on HN.

As a comment: you keep coming at us with these accusations but don't seem to ever mention a specific news story that you think should have had a prominent discussion here but didn't.
by koliber | 2025-05-10 08:29:37+00:00
Would you believe me and would you immediately start following the advice if I told you that the key to a healthy life is "Surround yourself with meaningful relationships, sleep well, eat well, exercise, don't drink alcohol, and don't smoke"?

I don't know you but there's a good chance that you're not doing all of those things. There's also a good chance that you will agree with the above advice. There's a small chance that simply hearing those condensed words will change your behavior.

To change how we think and act we need good stories. This is what books are, including these business books. Good stories that take a simple idea and wrap it in anecdotes, justification, shock value, and entertainment so that they stick in your head and perhaps convince you to act in a certain way, at least sometimes.
by snickerer | 2025-05-10 08:30:44+00:00
I did not understand what this is about from the article. It is social and wants to empower people, but how?

From reading the 'about' page I understood that this is a new social media platform in the Fediverse.

Now there is obviously one question: why should I participate in this and not in the existing projects like Mastodon? Why did you split up?

I suggest the Bonfire people should put the answer to that question on the top of the 'about' page.
by giorgosts | 2025-05-10 08:30:58+00:00
Why would the filmmakers make the re-enactment though? For social media? For clicks over the interwebs?

For context, by the late '20 programs were running for the elimination of Gypsies and disabled children inside concentration camps. Pieces of burned clothing were found on rooftops. Even Britain had a eugenics program against inferior races.

Not likely therefore made to cause outrage over children's rights, rather to depict established practices.
by gabriel666smith | 2025-05-10 08:31:03+00:00
Off topic, somewhat: Bukowski’s work - especially the late work - will always be bound, for me, to a boy I knew when I was 16/17 who I’ll call Martin.

Martin was very thin, short, with an already-receding hairline, flaking skin, and tiny, black, always-shifting eyes.

Martin was also very mean: a defense against the bullying I’m certain he endured most of his life. My best friend and I tried to hang out with him. We were weird kids too, and liked strange people, but Martin would never be pleasant or sincere with us. Sometimes he wouldn’t even tolerate our company.

I remember he loved horseracing, and gambling on it (underage).

One day, at a teenage house party - some parents out of town - Martin got far too drunk. He was lying on his side, vomiting onto a friend’s parents’ upholstery, sobbing. He was sobbing because he had been in love for years with a family friend - a pretty girl who was in one of my classes - but who would never, ever love him back, because he was so hideous, and because his personality, or the surface of it, was so abhorrent. That probably he should just kill himself, he thought, etc etc.

I’d just read a late Bukowski poetry collection and loved it the way you love Bukowski when you’re 16/17. I remember it was ‘The Last Night of the Earth’, so it would have contained the poems the article talks about Bukowski typing into his new computer.

I’d read that collection, and the yearning - from a place of perceived ugliness - and the beauty in that - I guess moved me, and made me think of Martin.

So I bought Martin a copy (it was expensive - £18, I think, which was a lot more back then, especially if you’re 17) and quietly gave it to him. I wanted him to see what I saw: that there was a nobility and dignity and a romance in his adoration of this girl, and in his ugliness.

Martin took the book, confused at the gift (kind of a gay thing to do), and then I didn’t see him for weeks. As if he was avoiding me.

When I finally did see Martin, he was so angry. So angry that it surprised me. He was a mean guy but I’d never seen him quite so angry.

He was angry that I’d seen him in the poems. He was angry at the poems themselves. He said he’d never been more insulted in his life.

I stopped trying to hang out with Martin so much after that. I felt bad that I’d hurt his feelings so much.

I check in every year or so using social media. Not to talk, just to look. The girl Martin was in love with is married now. Martin himself has grown into his age: he looked middle-aged then and it suits him better now that he’s approaching it. I think he does something in insurance.

I’ve always wondered: how many of the poems did Martin read? Was he so hurt because of Bukowski’s ugly author photo, and the content of the first few? And whether he read them or not, did he ever return to them, and find them beautiful? Or did Martin just throw the book away?

I hope he didn’t. Or, if he did, I hope he found another way than books of poetry to see himself better, now, compared to how he saw himself then.
by bambax | 2025-05-10 08:31:04+00:00
> Fleurs du mal / Flowers of Evil

> Les Fleurs du mal appeared on the bookshelves of Paris in June 1857...

Side note: it's not "Fleurs du Mal" but "Les Fleurs du Mal"; it's ok that the domain is shorter and doesn't include the article, but while the text appears to correctly include the article, the titles of each section or edition should too.
by flysand7 | 2025-05-10 08:32:43+00:00
"go flavour" refers to the similarity in the design philosophy, and some of the features. That said, it's still not Go.

For example, "errors as values" is a point that Odin makes, but it does make it in a slightly different light from Go. Whereas Go has an `error` type that encompasses all errors, Odin does not. Instead, it treats some types (booleans, enums, unions) as "special", in that they support things like `or_return`, which are typically your error propagation statements. Oh yeah, `or_return` is another big point, it does simplify a lot of `if err != nil { return err }` type of code.

And another big similarity to Go is the declaration syntax. It was inspired by one of Rob Pike's (iirc) comments on twitter about how they should have used a different syntax for Go instead.

From personal experience though, there are some things in Odin that I wish Go had. Its features play along together so nice, and it's so satisfying having three different language features come together in a nice logically-coherent simple way. That said, I don't think Odin is capable of replacing Go. Things like server-side logic and lightweight threads are probably where Go still excels at and beats Odin.

For systems-level programming I'd pick Odin though.
by gingerBill | 2025-05-10 08:34:28+00:00
Thank you for the kind words regarding Odin! So Odin is in the family of Pascal _but_ I've tried my best to design it in such a way that it does "fix" most of the problems of C (since I am/was a C programmer), and make it _feel_ good to a C programmer when programming in the language.

My view is that the core of Pascal was actually the correct place to start rather than the core of C. C won out of Pascal purely because the original Pascal didn't fix its problems quick enough, and all of the successors also tried to focus on other fancier things like OOP or GC or whatever. C still remained "basic" and its preprocessor allowed for enough extensions for lacking language features, whilst not adding any of those fancier things.

For Odin, I tried to take the lessons of what I and others were emulating in C and just make them core constructs. Odin initially didn't have many of the constructs it has now such as parametric polymorphism or explicit procedure overloading, but all of them came about as a result of solving the problems people used the preprocessor for or other new features. For example, the explicit procedure overloading came about seeing how people use the (relatively new) C11 `_Generic` feature, and realizing that they were trying to emulate this aspect pretty much.

Odin also took a lot of the GNU C extensions and incorporated them directly (some of which are not in the latest version of C): `0b` literals, nested procedures (but not scope capturing), `type_of`, `case` ranges (`..<` and `..=` in Odin to be more explicit about the range bounds), array initializes with ranges, unnamed structs/unions, empty structs, and so much more.

Odin isn't a C++ alternative by any stretch, but I have seen a lot of C++ programmers really like it because it feels like it has just enough to make them feel at home whilst still have the control and more explicitness that C offers.
by lenkite | 2025-05-10 08:34:40+00:00
I also don't understand the CMake hate. Modern CMake (3.14+) is just around 10 lines to build basic sources/libraries/executables. And you can either use CMake FetchContent or use CPM https://github.com/cpm-cmake/CPM.cmake to fetch dependencies. No third-party tool like vcpkg or conan is needed.
by ogurechny | 2025-05-10 08:34:53+00:00
There seems to be a misunderstanding. Yggdrasil is not a single network, it's a tool to make such networks. So if you have some computers with some ability to connect them, you can set them to peer in Yggdrasil, and instantly get an auto-configured irtual IPv6 network. (You can even slap some IPv4-to-IPv6 NAT over it, but we shouldn't mention crimes against humanity.)

It seems to me that the main goal of the project is automatic routing that promises that in any peer graph any peer can reach any other at least somehow, which is fine for many use cases. Only in case of moving big data or very different cost of links you might want to check the node hierarchy and set manual peering from X to Y and Y to Z to make traffic flow the way you want.

Public network is a volunteer-run test ground for real life usage, and a way to connect systems that can't connect directly because of NAT. Internal speed test that is 8 hops away on the other side of the world gives me 30 Mbps, closer one, in 5 hops, reaches 90 Mbps (and the local interface is 100 Mbps), so it has some throughput for casual users.

As far as I can understand, current latency-based routing selection is just the most simple way chosen to optimise the network across the whole world, and prevent random 200 ms hops back and forth to intermediate nodes. If traffic from nodes in one half of the tree not having direct connections to the other half goes through the central nodes, it seems that at the moment it's enough for owners of central nodes to peer with each other, and have enough bandwidth. In the future they might need to take the proportions of available channels into account.
by bjackman | 2025-05-10 08:35:55+00:00
Also shout out to cargo-vet.

It lets you track what packages you "trust". Then you can choose to transitively trust the packages trusted by entities you trust.

This lets you have a policy like "importing a new 3rd party package requires a signoff from our dependency tzar. But, packages that Google claim to have carefully reviewed are fine".

You can also export varying definitions of "trust". E.g. Google exports statements like:

- "this package has unsafe code, one of our unsafe experts audited it and thinks it looks OK"

- "this package doesn't do any crypto"

- "this is a crypto library, one of our crypto experts audited it and thinks it looks ok"

https://github.com/google/rust-crate-audits/blob/main/auditi...

Basically it's a slightly more formal and detailed version of blessed.rs where you can easily identify all the "it's not stdlib, but, it's kinda stdlib" stuff and make it easily available to your team without going full YOLO mode.

It can also give you a "semi-YOLO" approach, it supports rationales like "this package is owned by a tokio maintainer, those folks know what they're doing, it's probably fine". I think this is a nice balance for personal projects.
by perihelions | 2025-05-10 08:36:17+00:00
You people are too good at critical thinking to read "an investment of 500 million euros between 2025 and 2027" and not instantly write this off as empty grandstanding.

How much does—or did, recently—the United States federal government invest in scientists in the USA? Is it ~$70 billion a year? [0]

Europe can achieve America's (past) results when Europe starts talking with money. Science migration has historically gone in one direction across the Atlantic, and it is 100% about who pays better. The EU isn't remotely close to funding its own scientists properly—let alone attract new ones from abroad!

If European science benefits from the ongoing government implosion in the USA, that'd be entirely due to the US' unforced error. EU's politicians deserve no credit.

[0] https://en.wikipedia.org/wiki/Science_policy_of_the_United_S... ("Science policy of the United States")
by pjmlp | 2025-05-10 08:36:44+00:00
Yet it works, thanks to additional metadata, either in dynamic compiler which effectly does it in memory, throwing away execution paths with traps to redo when required, and with PGO like metadata for AOT compilation.

And since we are always wrong unless proven otherwise,

https://www.graalvm.org/jdk21/reference-manual/native-image/...

https://www.graalvm.org/latest/reference-manual/native-image...
by tester756 | 2025-05-10 08:38:53+00:00
>At each level a caller might need 5% of the functionality of any given dependency. The deeper the dependency tree gets the more waste piles on. Eventually you end up in a world where your simple binary is 500 MiB of code you never actually call, but all you did was take that one dependency to format a number.

So, what's is the compiler doing that he doesnt remove unused code?
by sethammons | 2025-05-10 08:39:37+00:00
I am not remotely aware of this case. How does those words, or any words, on a gun case/cover relate to mental health issues? This isn't a manifesto; it is more like "guard dog? Beware of owner!" decal, or a Calvin pissing on a coexist sticker. Or truck nuts. These might be distasteful to some but is unrelated to mental health. I'd be more worried about my former neighbor who had an unhealthy love of maglite flashlights and owned like 50 of 'em. _That_ was strange.
by kurgandev | 2025-05-10 08:39:42+00:00
Need a quick live quiz generator for you dinner party or just to share some fun with friends or family who are remote? Quiz Machine to the rescue. It uses OpenAI API to quickly generate questions on topic provided. You can play one of 8 demo quizzes to get the taste of it.

Wish you a good fun with Quiz Machine! Btw if you like it you can support it by Buy me a Coffee link :)