MurphyA/hacker-news huggingface dataset:
by masklinn | 2025-06-13 05:14:49+00:00
> jemalloc was probably booted from Rust binaries sooner than the natural course of development might have otherwise dictated.

FWIW while it was a factor it was just one of a number: https://github.com/rust-lang/rust/issues/36963#issuecomment-...

And jemalloc was only removed two years after that issue was opened: https://github.com/rust-lang/rust/pull/55238
by hodgesrm | 2025-06-13 05:16:30+00:00
> At this rate, we'll soon see YC startups raising money to maintain roads.

That model has existed for hundreds of years. It's called a turnpike. There were hundreds of them in the US and UK. [0] Many still exist today.

[0] https://eh.net/encyclopedia/turnpikes-and-toll-roads-in-nine...
by littlestymaar | 2025-06-13 05:16:42+00:00
Had you read the linked blog post, you'd have seen that here this isn't so much an issue with LLVM having too much work, but rustc being currently unable to split the work into parallelizable chunks before sending it to LLVM, and as such it takes a very long time not because LLVM has too much things to do, but because it does it in a single-threaded fashion, leaving tons of performance on the table.

> Rust is heavily designed around "zero-cost abstraction", ie. generate tons of IR and let the backend sort it out.

Those two aren't equivalent: Rust is indeed designed around zero-cost abstraction, and it currently generates tons of IR for the backend to optimize, but it doesn't have to, it could run some optimizations in the front-end so it generates less IR. In fact there has been ongoing work to do exactly this to improve compiler performance. But this required rearchitecturing the compiler in depth (IIRC Rust's MIR has been introduced for that very reason).
by UmGuys | 2025-06-13 05:16:49+00:00
I don't understand the contention as I don't participate in the disinformation. ICE kidnaps people without showing documentation on who they are or why they're being kidnapped. They quickly move the people they capture to another facility in the US hundreds of miles away. Then, they send them to El Salvador, a hostile place, or a country they've never been to. This process occurs without seeing a judge to even double check the abducted person is who ICE claims they are. Let alone any actual due process. What's the contention?

Also, despite the insane cruelty that seems to be the process, both Obama and Biden deported more people than Trump.
by edanm | 2025-06-13 05:18:46+00:00
So there is literally nothing you can credit Israel for? It hasn't even achieved peace in your eyes - despite signing at-the-time historic peace agreements that ended decades-long wars with its neighbors - because that's just with "the government" and not with the people. As if this is a standard applied to any other situation anywhere else in the world.

If Israel ever signs a peace deal with Palestinians, but the Palestinian populace still hates Israel, that would also not count as peace? What would count as peace besides Israel not existing?
by crazygringo | 2025-06-13 05:19:15+00:00
Only on standard resolution displays. And it's not even "critical" then, it's just a nice-to-have.

But the world has increasingly moved to Retina-type displays, and there's very little reason for subpixel rendering there.

Plus it just has so many headaches, like screenshots get tied to one subpixel layout, you can't scale bitmaps, etc.

It was a temporary innovation for the LCD era between CRT and Retina, but at this point it's backwards-looking. There's a good reason Apple removed it from macOS years ago.
by TheAmazingRace | 2025-06-13 05:19:47+00:00
Honestly, I’m amazed it took Commodore so long to properly support high density floppies. I’m pretty sure they stuck to the double density 880K GCR format right up to the 4000 series Amiga. Meanwhile, Atari was supporting high density media in some capacity as early as 1990 in their higher end systems.
by barbarr | 2025-06-13 05:20:52+00:00
That puzzle has two solutions no?

1 1 1 1 1 1 2 1 2 x x . . . 2 . . x x . 11 x . . x . 11 . x . . x 1 . . x . .

and

1 1 1 1 1 1 2 1 2 x x . . . 2 . . x x . 11 . x . x . 11 x . . . x 1 . . x . .

(found these with an SMT solver :D)
by throwaway894345 | 2025-06-13 05:20:59+00:00
This is cool! I’ve been thinking about something like this as well. How hard was it, and do you have a sense for how “complete” it is? Does it handle DHT and Magnet and all the crazy NAT traversal stuff?

I’m guessing the main obstacle for me has always been that I’m not sure what the complete list of features is to have a client that will just work for the majority of torrents in the wild. It seems like there are dozens of protocols associated with torrenting and I don’t even know what the full list is much less what each does.
by vFunct | 2025-06-13 05:21:15+00:00
And you can confirm they don't privately support Israel either through social media.

There's a lot of hopium among Zionists that they have widespread support, but really, they're as hated worldwide as the Nazis were. Japan in particular dropped from massively pro-Israel to massively anti-Israel. And this was from a poll last year. It's only gone more anti-israel since then.

I would implore you to understand how social media influences people.
by intended | 2025-06-13 05:22:38+00:00
I think too many people call this intelligence, and it results in intuitions that are useless and waste time, pushing the day we understand this moment further into the future.

The best I’ve got is theres 2 frames of assessment people are using:

1) Output frame of reference: The output of an LLM is the same as what a human could make.

2) Process frame of reference: The process at play is not the same as human thinking

These 2 conversation streams end up with contradictions when they engage with each other. Yes, the tools are impressive. The tools aren’t thinking. etc.

A useful analogy is rote learning - many people have passed exams by memorizing textbooks. The output is indistinguishable from someone who manipulates a learned model of the subject to understand the question and provide the answer.
by tomhow | 2025-06-13 05:26:21+00:00
> Please don’t act as if you don’t know that you are peddling nonsense.

You can't comment like this on Hacker News, no matter what you're replying to.

https://news.ycombinator.com/newsguidelines.html

Edit: In case people don't understand why this is the kind of comment we'd call out: I've said a few times in different ways that Hacker News should be a place where we can discuss difficult topics. There are few more difficult topics than armed conflict between nations. It's pointless to have a discussion that mostly consists of people with entrenched oppsing views hurling insults at each other. If somebody is wrong, refute them with opposing evidence. Otherwise the only thing we'll achieve is to drive away anyone who is interested in actually learning anything new about the topic, in which case we're much better off not having the discussion at all.
by Twirrim | 2025-06-13 05:26:36+00:00
While I certainly wish that more software would reach a "done" stage, I don't think jemalloc is necessarily there yet. Unfortunately I'm aware of there being bugs in the current version of jemalloc, when run in certain environment configurations, including memory leaks. I know the folks that found it were looking to report it, but I guess that won't happen now.

Even from a quick look at the open issues, I can see https://github.com/jemalloc/jemalloc/issues/2838, and https://github.com/jemalloc/jemalloc/issues/2815 as two examples, but there's a fair number of issues still open against the repository.

So that'll leave projects like redis & valkey with some decisions to make.

1) Keep jemalloc and accept things like memory leak bugs

2) Fork and maintain their own version of jemalloc.

3) Spend time replacing it entirely.

4) Hope someone else picks it up?
by philwelch | 2025-06-13 05:26:47+00:00
Starlink isn’t the impressive part. The impressive part is that by solving reusability, SpaceX instantly outscaled the existing launch market and was forced to find ways to generate their own demand in order to maintain growth. Which goes to show that LEO is nowhere close to a mature market; in mature markets, companies don’t have to resort to these elaborate forms of vertical integration the way they do when they invent something that fundamentally changes the market faster than anyone else can adapt.

By way of analogy, radio is a mature market. Maybe a little more than mature, to be honest, it’s well past its prime. In the early days of radios, you know who ran the radio stations? The companies that made radios! Because who’s going to buy a radio without a radio station to listen to? It took years for people to figure out the radio advertising business model but RCA wasn’t willing to wait that long so they just operated a bunch of radio stations as a cost center to encourage people to buy more radios. But then the market matured and the roles of “broadcasting” and “manufacturing home radios” diverged into different companies.
by latchkey | 2025-06-13 05:27:05+00:00
Google Workspace defaults to making you sign in every 2 weeks unless you have a certain upper tier of paid account with them.

Even worse is that if you try to search for the feature and click on it, it presents a page that unhelpfully returns 404.

It's annoying AF.

"By default, the web session length for Google services is 14 days." https://support.google.com/a/answer/7576830?hl=en
by hiAndrewQuinn | 2025-06-13 05:27:44+00:00
Ha, I had the same thought a while back along a slightly different vector (legal-adjacent technical writing). I ended up writing a blog post of my wishlist of features Word has that static site generators like Hugo don't appear to, yet. [1]

I think there's a lot of money to be made in this arena, especially given that LLMs are much easier to integrate with plain text files than with Word documents.

[1]: https://hiandrewquinn.github.io/til-site/posts/things-word-h...
by prmoustache | 2025-06-13 05:28:02+00:00
There is a moment where people might be so engaged it might not be profitable anymore though.

Brands pay for ads because it generate sales. If people become vegetables that doomscroll all day, barely pausing to eat and have a dump, they will also stop purchasing stuff.

Or maybe people will be so addicted that social medias as a drug becomes a commercial product in its own riggt and tiktok can paywall it.
by MindSpunk | 2025-06-13 05:28:41+00:00
The triangle density of even a basic font is crazy high at typical display sizes. All modern GPU architectures are very bad at handling high density geometry. It's very inefficient to just blast triangles at the GPU for these cases compared to using an atlas or some other scheme.

Most GPUs dispatch pixel shaders in groups of 4. If all your triangles are only 1 pixel big then you end up with 3 of those shader threads not contributing to the output visually. It's called 'quad overdraw'. You also spend a lot of time processing vertices for no real reason too.
by intended | 2025-06-13 05:29:04+00:00
No, I disagree, and for everyone who bemoans capitalism or the power of money, its important to understand the foundational arguments from which economics is born.

Wants are infinite, and resources limited. Economics is the objective methods to order a system to achieve subjective ends.

For better or worse, money is a medium of exchange and signal of what people are willing to allocate for their needs. Unless you create economic markets, information markets, and political systems that are built to handle the forces being harnessed by society, you have failure states.

In other words, taxes need to bleed of wealth, to ensure that it cannot create advantage in other fields (media, politics), breaking the even playing field in those other economies.
by teo_zero | 2025-06-13 05:31:29+00:00
In POSIX world you aren't encouraged to use a specific command for each goal you might have. Instead you get a set of basic tools and combine them to achieve the desired result. Without system() you wouldn't have pipes, and you would need one command for every task you might want to run.

Point in case I encountered this week: I was editing a list and wanted to remove duplicates without changing the order of the lines. There's no ready-made program to do that, but this sequence of piped command served the purpose:

cat -n | sort -uk 2 | sort | cut -f 2-

Fortunately my text editor supports system().
by masklinn | 2025-06-13 05:31:30+00:00
glibc will return memory to the OS just fine, the problem is that its arena design is extremely prone to fragmentation, so you end up with a bunch of arenas which are almost but not quite empty and can't be released, but can’t really be used either.

In fact, Jason himself (the author of jemalloc and TFA) posted an article on glibc malloc fragmentation 15 years ago: https://web.archive.org/web/20160417080412/http://www.canonw...

And it's an issue to this day: https://blog.arkey.fr/drafts/2021/01/22/native-memory-fragme...
Show HN: View KTX (Khronos Texture) Files in Browser
by nmfisher | 2025-06-13 05:33:37+00:00
After repeated attempts to find an easy/quick way to view KTX files across different platforms, I gave up and built my own. Currently only KTX1 supported for 2D textures and cubemaps. I'll probably add support for KTX2 and mipmaps soon. Everything is done locally so no data leaves your browser.
by canucker2016 | 2025-06-13 05:33:58+00:00
My neurons are firing on "MSPAGER" in recognition, but romeo and juliet draw blanks - which is a good thing. Because if you know the infrastructure, but you weren't involved in the implementation, then there's typically a bad reason why you know how the sausage is getting made. :)

Also, I survived Bedlam DL3 (but I didn't get the t-shirt).

see https://techcommunity.microsoft.com/blog/exchange/me-too/610... for the explanation for the Bedlam reference.
by infl8ed | 2025-06-13 05:35:00+00:00
Actually, and quite interestingly, it looks like their second edit (to separate the tracks) failed: https://musicbrainz.org/edit/122458694 Status: Failed dependency This edit failed either because an entity it was modifying no longer exists, or the entity can not be modified in this manner anymore.

Clicking through to the CD release we can see that it indeed still has those two tracks combined https://musicbrainz.org/release/af4dc096-65d2-4cc5-9e0c-176d...
by Crespyl | 2025-06-13 05:36:34+00:00
Can you elaborate on this? I don't know much about allocators.

How would the allocator know that some block is unused, short of `free` being called? Does glibc not return all memory after a `free`? Do other allocators do something clever to automatically release things? Is there just a lot of bookkeeping overhead that some allocators are better at handling?
by NitpickLawyer | 2025-06-13 05:38:03+00:00
> LLMs are trained on poor code quality and as a result, output poor code quality.

This is an already outdated take. Modern LLMs use synthetic data, and coding specifically uses generate -> verify loops. Recent stuff like context7 also help guide the LLMs towards using modern libs, even if they are outside the training cut-off.

> In fact, the "S" in LLM stands for security, which LLMs always consider when generating code.

This is reminiscent of "AI will never do x, because it doesn't do x now" of the gpt-3.5 era. Oh, look, it's so cute that it can output something that looks like python, but it will never get programming. And yet here we are.

There's nothing special about security. everything that works for coding / devops / agentic loops will work for security as well. If anything, the absolute bottom line will rise with LLM-assisted stacks. We'll get "smarter" wapitis / metasploits, and agentic autonomous scanners, and verifiers. Instead of siems missing 80% of attacks [0] while also inundating monitoring consoles with unwanted alerts, you'll get verified reports where a codex/claude/jules will actually test and provide PoC for each report they make.

I think we've seen this "oh, but it can't do this so it's useless" plenty of times in the past 2 years. And each and every time we got newer, better versions. Security is nothing special.

[0] - https://www.darkreading.com/cybersecurity-operations/siems-m...
by jraph | 2025-06-13 05:38:05+00:00
I don't think the question would make much sense. Why did Apple do X and not Y (unrelated to X) is not an interesting question. It would seem close to whataboutism. They were willing to spend money on X. They are not willing to spend money on Y. Or, they didn't think about doing Y. Or, they needed X. They haven't needed Y. Apple want fast VMs and also they haven't needed Btrfs. What insight can you get? There's no relation between the two. You'd get the same insight by asking "Why didn't Apple implement Btrfs?", but by linking the two in the same question, you are kinda implying there's a link.

But the question would have been highly relevant had Apple developed a new FS, and disk images and FS do seem related at first. I didn't want to assume whataboutism, so I figured OP was possibly confused because this is likely, and I wanted to give them a hint without bluntly asking whether they confused things. I could have, really there's no harm in being confused, nor in asking whether someone was confused.
by moron4hire | 2025-06-13 05:41:53+00:00
SDF is not a panacea.

SDF works by encoding a localized _D_istance from a given pixel to the edge of character as a _F_ield, i.e. a 2d array of data, using a _S_ign bit to indicate whether that distance is inside or outside of the character. Each character has its own little map of data that gets packed together into an image file of some GPU-friendly type (generically called a "map" when it does not represent an image meant for human consumption), along with a descriptor file of where to find the sub-image of each character in that image, to work with the SDF rendering shader.

This definition of a character turns out to be very robust against linear interpolation between field values, enabling near-perfect zoom capability for relatively low resolution maps. And GPUs are pretty good at interpolating pixel values in a map.

But most significantly, those maps have to be pre-processed during development from existing font systems for every character you care to render. Every. Character. Your. Font. Supports. It's significantly less data than rendering every character at high resolution to a bitmap font. But, it's also significantly more data than the font contour definition itself.

Anything that wants to support all the potential text of the world--like an OS or a browser--cannot use SDF as the text rendering system because it would require the SDF maps for the entire Unicode character set. That would be far too large for consumption. It really only works for games because games can (generally) get away with not being localized very well, not displaying completely arbitrary text, etc.

The original SDF also cannot support Emoji, because it only encodes distance to the edges of a glyph and not anything about color inside the glyph. Though there are enhancements to the algorithm to support multiple colors (Multichannel SDF), the total number of colors is limited.

Indeed, if you look closely at games that A) utilize SDF for in-game text and B) have chat systems in which global communities interact, you'll very likely see differences in the text rendering for the in-game text and the chat system.
by taeric | 2025-06-13 05:44:30+00:00
My main lack of trust for this is the over leaning on "incompetence" as the explanation. I'm fully ok with the idea that they made mistakes and were not ready for the vastly different climate. I'm even comfortable with the idea that they may have thought to get more in trade than they were able to get.

That said, I think this vastly overstates how much people got their food from trade. Spices and some goods were, of course, big in trade. Mainline food? Not so much. Most people were not able to stockpile large quantities of food. Some cities maybe could. But it would have been grains/seeds or actual live stock. Not meats or anything that needed refrigeration. For... well, obvious reasons. Even cured meats typically have a very short timeline. So, fishing and hunting and basic gardening would have remained something that people had to do. Pretty much everywhere.

And indeed, this is inline with your edited in article. What were they trying to trade for? Corn. Why did they need to get it by trade, because their crop was bad. Why was the trade not working well? Because nobody had excess corn to trade. Long term stockpiles just couldn't exist to the scale that we think of today. And a lack of rain meant everyone was having a bad crop.

Finally, I want to be clear that I'm perfectly comfortable with the idea that I'm just flat out wrong here. I've just grown super doubtful of a lot of the "these morons were able to sail across the atlantic, but were too stupid to do anything that would have resembled living off the land." Despite most living at the time looking like what we would call that.
by chrismorgan | 2025-06-13 05:46:25+00:00
Coarse parsing is really good for the basics in almost all programming languages. But it’s not good at semantic detail, even though editors like Vim try to put some in there. One of the most notable ones is splitting Identifier up by adding Function. These have routinely then been misused and inconsistently applied, with the result that historically a language like JavaScript would look completely different from C; I think there was some tidying up of things a few years ago, but can’t remember—I wrote a deliberately simple colorscheme that discards most of those differences anyway. Sometimes you’ll find Function being used for a function’s name at definition time; sometimes at call time too/instead; sometimes a `function` keyword instead.

In many languages, it’s simply not possible to match function names in definitions or calls using coarse parsing. C is definitely such a language. A large part of the problem is when you don’t have explicit delimiting syntax. That’s what you need. Oils, by contrast, looks to say `proc demo { … }`, so you can look for the `proc` keyword.

Vim’s syntax highlighting is unfortunately rather limited, and if you try to stretch what it’s capable of, it can get arbitrarily slow. It’s my own fault, but the Rust syntax files try to be too clever, and on certain patterns of curly braces after a few hundred lines, any editing can have multiple seconds of lag. I wish there were better tools for identifying what’s making it slow. I tried to figure it out once, but gave up.

I’ve declared coarse parsing rerally good for the basics in almost all programming languages, and that explicit delimiting syntax is necessary. This leads to probably my least favourite limitation in Vim syntax highlighting: you can’t model indent-based mode switching. In Markdown, for example (keep the leading two spaces, they’re fine):

Text Code 1. Text Vim says code, actually text Code

reStructuredText highlighting suffers greatly too, though it honestly can’t be highlighted correctly without a full parser (the appropriate mode inside the indented block can’t be known statically).

This is a real problem for my own lightweight markup language too, which uses meaningful indentation.
by hedora | 2025-06-13 05:47:39+00:00
Studies have shown artificial (and non-nutritional organic) sweeteners are much worse than sugar for decades.

For instance, they disrupt your metabolism, so equivalently sweet amounts of sweeteners cause more weight gain than sugar. (Due to increased hunger vs. eating nothing, decreased metabolism and decreased calorie burn.)

The study in the article isn’t surprising at all. Links between nutrisweet and migraine headaches have been well understood for a long time. It’s not surprising other similar chemicals have similar negative side effects.

There’s no valid reason to use artificial sweeteners (other than diabetes, but even then, gaining weight from the sweeteners is a problem if the diabetes is weight related.)