MurphyA/hacker-news huggingface dataset:
by toofy | 2025-11-02 12:29:39+00:00
i’m sorry, but when it comes to open source software if you want something on your timeline, you do it. the code is there. it’s _open_.

if “a duty” exists at all in this situation, it’s on the 4th wealthiest company in the world who is using that free software to serve its customers and raking in billions of dollars. (i want to be clear tho, that company does contribute a lot to the open source community. a whole lot. i’m just saying, if someone is hunting for a “duty” to fling around re: an open source project)

i was once naively saying some undeserved similar nonsense to a well known open source dev regarding some software package they were working on years ago, and he responded absolutely appropriately, [paraphrasing] “go ahead, you should absolutely do it, see if it’s better. none of us here are stopping you. we genuinely hope it is, truly. let us know. until then we’re working on other stuff.”

he was absolutely correct and i should have known better. not snotty at all, just, “you should totally do it!” that’s the appropriate answer every single time someone behaves as if your open source project owes them something. even more so when it’s the 4th richest company in the world.

so if you feel “a duty” exists somewhere to change something with ffmpeg, do it yourself. literally no one is stopping you. it’s _open source_.
by ndsipa_pomu | 2025-11-02 12:30:10+00:00
Initially I didn't understand how they were getting the log files into the image. I had no idea that people abuse "docker commit" - do they know nothing about containers? If you want persistent logs, then have a separate volume for them so they can't pollute any image (plus they are readable when the image restarts etc).

When I saw the HN title, I thought this was going to be something subtle like deleting package files (e.g. apt) in a separate layer, so you end up with a layer containing the files and then a subsequent layer that hides them.
by pizza234 | 2025-11-02 12:30:19+00:00
> Automatically translating C to unsafe Rust is pointless, the resultant code is harder to read and there's no improvement in understanding how to get the code maintainable and safe, that requires tons of manual work by someone with a deep understanding of the codebase.

I have experience on a (nontrivial) translation of a "very unsafe" C codebase to Rust, and it's not true that there is no value in this type of work.

The first step, automatic translation from C to Rust via tools, immediately revealed bugs in the original codebase. This step alone is worth spending some time on the operation.

Ports from C to Rust aren't a binary distribution of "all safe" or no port at all. Some projects, for example ClamAV, are adopting a mixed approach - (part/most of) new code in Rust, and some translation of existing functionalities to Rust.

In general, I think that automatic porting of C to Rust is, in real world, an academic exercise. This is because C codebases designed without safety in mind, simply need to be redesigned, so the domain in not really "how to port C to Rust" - it's "how to redesign and unsafe C codebase to a safe one" first of all. Additionally, I believe that in such cases, maintaining the implementation details is impossible - unsafety is a design, after all.

I personally advocate for very precisely scoped ports, where it can be beneficial (safety an stability); where that's not possible, I agree, better abandon early.
by thrance | 2025-11-02 12:30:19+00:00
It doesn't matter if you use channels or mutexes to communicate between tasks, you still need your function to be async to spawn it as a coroutine. Your only choice is between coroutines (async tasks spawned on an executor) or regular OS threads. Channels work with both, the rule of thumb is to use async when your workload is IO-bound, and threads when it is compute-bound. Then, it's up to you whether you communicate by sharing memory or share memory by communicating.
by guywhocodes | 2025-11-02 12:32:12+00:00
The TLDR: > We tackled critical container image bloat on our Sealos platform, fixing a severe disk space exhaustion issue by shrinking an 800GB, 272-layer image to just 2.05GB.

They say they made a 800GB container image, so your issue is about singular vs plural?

Regardless, I don't really get why anyone would self report like this. Is next article going to be about how they don't encrypt passwords and when they accidentally dropped prod DB they could restore account from logs because it had the passwords in clear text?
by le-mark | 2025-11-02 12:32:13+00:00
> I had originally configured the server phoenix with only 12GB swap. I then had to restart ./build_all_fast_glibc.sh a few times because the Fil-C compilation ran out of memory. Switching to 36GB swap made everything work with no restarts; monitoring showed that almost 19GB swap (plus 12GB RAM) was used at one point. A larger server, 128 cores with 512GB RAM, took 8 minutes for Fil-C plus 6 minutes for musl, with no restarts needed.

Yikes that’s a lot of memory! Filc is doing a lot of static analysis apparently.
by kcplate | 2025-11-02 12:33:09+00:00
That’s blaming the reaction instead of the cause. Exactly which sources could someone switch to for accurate information? All were bad. The political and health authorities were overcommitting the efficacy and results of the vaccine program in their communications. They were mandating a vaccine program (where they could) and pressuring for mandates (where they couldn’t mandate themselves) of a vaccine that was not doing what they said it would do. They also were actively attempting to censor information on media and social platforms including accurate information but contrary to their message. Of course the public would become skeptical and a backlash would come when the dust settled.

There is no heresy in looking back and evaluating how things were managed and hope that our authorities learn from their mistakes before God forbid any future health crisis comes our way. What we know from the last one is “Sit down, shut up, and take the medicine and don’t trust your lying eyes” doesn’t work and creates distrust. So let’s not do that again.
by m_fayer | 2025-11-02 12:33:25+00:00
Part of my self-administered IT education in my early 20s was to feed my film nerdery through exquisite data hoarding. Automation, NASs, media servers, all of it.

Curiously, I found that the better I got, the less movies I actually watched. It became more about collecting than engaging.

I think this is a corollary to your point: vastly increasing access and reducing our objects of desire to a standardized neatly storable form can easily divert us into hoarding behavior, to the detriment of actual engagement with what’s being hoarded.
by xorcist | 2025-11-02 12:34:26+00:00
A database is never hard to install, but it can be tricky to operate.

You have to at least have at least a slight idea about the specifics, from different types of vacuum to how it behaves in low memory conditions. The idea that docker has something to do this is a misdirection at best.

And if you think sqlite has many knobs and special modes, wait until you hear about Postgres.
by crazygringo | 2025-11-02 12:34:49+00:00
> hunting for and fixing obscure bugs is actually one of the most intellectually rewarding. I would miss that if it were to be taken over by a machine.

That's fascinating to me. It's the thing I literally hate the most.

When I'm writing new code, I feel like I'm delivering value. When I'm fixing bugs, I feel like it's a frustrating waste of time caused by badly written code in the first place, making it a necessary evil. (Even when I was the one who wrote the original code.)
by t43562 | 2025-11-02 12:35:09+00:00
It seems that there is a history of ways to build packages and the docs probably need to explain now versus then so that you can beware of what other people have written in the past. They also need to be comprehensive enough that you're not looking for other people's answers that may be out of date.

Back to my original point - I don't think Rust is going to fix this.
by anthk | 2025-11-02 12:35:30+00:00
Nice then. OTOH, CP/M 2.2 has been open sourced, but I think there are no libre assemblers for it.

Cross-assemblers, there's one: http://john.ccac.rwth-aachen.de:8000/as/ but it's tedious to build under OpenBSD.

As for software, the ZMachine and V3 games don't count as 'libre examples'.
by qiu3344 | 2025-11-02 12:35:38+00:00
The "spiral" type declaration syntax from C is hard to parse, both for humans and machines. That's probably why even C++ is moving away from it:

C modern C++ "int foo[5]" -> "array<int,5> foo"

It's easy to criticize simple examples like the one above, since the C++ (or Rust) version is longer than the C declaration, but consider something like this:

char *(*(**foo[][8])())[];

and the idiomatic Rust equivalent:

let foo: Vec<[Option<fn() -> Vec<String>>; 8]> = Vec::new();

The later can be parsed quite trivially by descending into the type declaration. It's also visible at a glimpse, that the top-level type is a Vec and you can also easily spot the lambda and it's signature.

Another ergonomic aspect of the Rust syntax is that you can easily copy the raw type, without the variable name:

Vec<[Option<fn() -> Vec<String>>; 8]>

While the standalone C type looks like this:

char *(*(**[][8])())[]

which is quite a mess to untangle ;)

Also, I think C# is generally closer to Rust than to C when it comes to the type syntax. A rough equivalent to the previous example would be:

var foo = new List<Func<List<string>>?[]>();

I can't deny that "?" is more ergonomic than Rust's "Option<T>", but C# has also a way less expressive type system than Rust or C++, so pick your poison.
by Esophagus4 | 2025-11-02 12:35:56+00:00
Most of the consulting positions I’m aware of also hire a far lower talent caliber than FAANG, so they need bodies, not top talent.

I have worked at a company who had a casual, experienced-based, conversational interview. The engineering there was atrocious, and I left as soon as I could.

If you can talk your way into a position, that says a lot about the level of talent there. Top talent wants to work at a place that has a transparent and merit based performance bar, and you can’t smooth-talk your way into a job.
by disgruntledphd2 | 2025-11-02 12:36:39+00:00
> One of the best ways to get ahead in finance is to get a regulation passed that's easy for you to comply with but hard for your competitors. That's what drives a lot of the laws.

This I totally agree with, however, the AML/KYC laws are not those kind of laws. They are super expensive for basically every financial institution, for dubious returns. And yet, governments love them. The US basically forced the Swiss to introduce these laws post GFC, which doesn't sound like it was driven by the Swiss financial institutions.

And literally the first paragaph of the Wikipedia article (https://en.wikipedia.org/wiki/Bank_Secrecy_Act) notes that loads of people sued when the act was introduced, suggesting that it wasn't driven by industry pressure.

Like, it's interesting that these laws are the template for all the ChatControl/break encryption type stuff. Governments already have all the financial information and they see no reason why they shouldn't have everything else.
by defrost | 2025-11-02 12:36:56+00:00
> Right, they probably already mitigated this bug in their own usage.

Indeed. A step so obvious it renders comments such as this:

It's enabled by default so all that's required to exploit it would be to construct a payload file and name it movie.mp4

moot.

> Which is exactly why reporting the bug is a FAVOR to ffmpeg.

Not sure you have to SHOUT the obvious.

> Would you rather they just quietly fix it on their own and not report it to the maintainers?

What do you suppose the answer to that question to be?
AI Slogan Generator for Teams and Brands – Free and Easy
by xiaosanpao | 2025-11-02 12:37:44+00:00
A free, no-signup AI slogan generator — my second AI coding project. When I’m at work and need a catchy slogan or a name for my team, I just let AI generate one for me. If you need it, feel free to give it a try! Any feedback is welcome — I’ll take it humbly.

Future updates will include the ability to generate posters and logos based on your brand and slogan, and these will come with bonus points.https://aislogangenerator.org/
by rhdunn | 2025-11-02 12:39:56+00:00
XSLT 2.0 is not a failed spec. From [1] RaptorXML (XSLT 3.0) and xjslt (XSLT 2.0) are listed as implementing that spec. MarkLogic also provides XSLT 2.0 support.

Saxon has a free HE version [2] that has the source code available and implements XSLT 2.0 REC, 3.0 REC, and 4.0 ED at the baseline conformance. The paid version implements optional features and vendor-specific extensions [3].

Even though Michael Kay is the editor of the spec, several others are involved in the standardization of XSLT, XPath, and XQuery, including members from BaseX and eXist-db which provide XQuery implementations. And as XPath is a subset of XSLT and XQuery there's a lot of overlap there, and features come from many people, not just Michael Kay.

[1] https://en.wikipedia.org/wiki/XSLT#Processor_implementations

[2] https://www.saxonica.com/download/java.xml

[3] https://www.saxonica.com/products/products.xml
by Esophagus4 | 2025-11-02 12:40:34+00:00
Absolutely.

The amount of times I’ve seen a “do you want to have a beer with them?” test in lieu of a simple programming exam is horrifying. (And it showed in the level of talent they hired.)

Fortunately, most of those have been left by the wayside, roadkill of history.

Because that is really the alternative if we don’t have rigorous, systematic technical interviews: cognitive bias and gut-feel decisions. Both of which are antithetical to high performing environments.
by II2II | 2025-11-02 12:41:06+00:00
In all probability, yes. I'm not sure how much easier it would be to develop though. Back then, most (if not all) of the operating system was developed in assembly language while there was far more to consider when it came down to performance and memory usage (which is often in conflict with each other). CP/M was also notorious for running on hardware that was incompatible with each other, relying upon the BIOS to smooth out those irregularities. While that may simplify the development in some respects, such as the hardware vendor developing hardware drivers, it complicates development in other respects, since CP/M development could not make assumptions about the underlying hardware.
by hollerith | 2025-11-02 12:41:52+00:00
>the US does what it can to keep itself richer than other countries all around the globe by immoral means.

I don't believe that.

Like most countries, the US has a community of professionals in government dedicated to the country's national security and this class of professionals has often done harm around the world by trying to increase the US's national security when it is already more secure than most countries are. For example, the US's overreaction to 9/11. For example, the US's overthrowing of Communist governments in the third world during the Cold War.
by robinzfc | 2025-11-02 12:43:07+00:00
> one scientist, Beatrice Villarroel

The example papers [1] [2] [3] [4] have 18 unique co-authors. Also, it's Beatriz.

> she makes analysis of several pairs of pictures

"We base our analysis on the catalog of 298,165 short-duration transients presented in Solano et al. (2022), detected in 200 red POSS-I plates with typical exposure times of 45–50 minutes." [1]

"Of the 2,718 days in this period, transients were observed on 310 days (11.4%)" [2]

"These searches significantly reduced the number of candidates (from 298 165 to 9 395)" [3]

> uniformly spread out across the whole plate

> thousands of uniformly spread out image defects

"we find a strong deficit of transient detections, at the 22 sigma statistical significance level, within the Earth’s umbral shadow" [1]

"we expect N = 1223 transients in shadow out of 106,339 total, corresponding to an expected fraction of fexp = 0.0115±0.00033. However, we observe only N = 349 transients in shadow" [1]

"Plate defects, by contrast, are expected to be randomly shaped and distributed" [1]

> in all pairs of plates the lights change one way only. On the first plate they are present and on the next plate 50 minutes later they disappear

"transients that appear only in one long exposure and are entirely absent shortly before and after" [1]

"In brief, transients were defined as distinct star-like point sources present in POSS-I E Red images that were absent both in images taken immediately prior to the POSS-I Red image and in all subsequent images." [2]

(*) POSS -- Palomar Observatory Sky Survey

[1] Aligned, multiple-transient events in the First Palomar Sky Survey, 2025, preprint

[2] Transients in the Palomar Observatory Sky Survey (POSS-I) may be associated with nuclear testing and reports of unidentified anomalous phenomena, Scientific Reports, 2025

[3] Discovering vanishing objects in POSS I red images using the Virtual Observatory, 2022, Monthly Notices of the Royal Astronomical Society, 515, 1380

[4] A glint in the eye: photographic plate archive searches for non-terrestrial artefacts, 2022, Acta Astronautica, 194, 106

Turns out looking for quotes directly contradicting debunker's statements is a great way to focus while reading a UAP-related scientific paper, thank you.
by Theaetetus | 2025-11-02 12:43:54+00:00
I basically agree with this. Extra objects do carry costs. That said, usually the extra objects are necessary to make your code conform to reality. N things with N names in N files definitely carries overhead, but if the alternative is N things with 1 name in 1 file, and programmers carrying the complexity in their heads (or the complexity being a bunch of spaghetti in the one file), I'll happily accept the N - N - N side of the tradeoff.
by SllX | 2025-11-02 12:43:56+00:00
It’s mean if the next CEO is fucking stupid and replaces everyone at the top with literal slugs, it could happen. Short of that, it’s a consistent $35B-40B segment of their operations that makes the iPhone, iPad and everything else they do possible.

I spoke above about Apple being the iPhone company, but that doesn’t make the Mac inessential. An iPad with Xcode would be great for the iPad, but it’s a far cry from any kind of justification for killing off an extremely successful and profitable product line. You could stick macOS on an iPad tomorrow and it wouldn’t be an adequate replacement for a MacBook Air, let alone a MacBook Pro or anything else in the lineup.

Also nobody is talking about UNIX workstations in 2025.
by wnscooke | 2025-11-02 12:44:15+00:00
After reading the article, I think more likely it is Matthew 24:14 which explains the desire to "hasten the coming of Christ’s return". The verses says, in the NIV, _14 And this gospel of the kingdom will be preached in the whole world as a testimony to all nations, and then the end will come._ I suppose he is equating "improve the quality of life of every human on the planet" with them hearing the Gospel.
by EvanAnderson | 2025-11-02 12:44:33+00:00
I was excited to see the features of the chip that most clock manufacturers left undocumented described. There were a few I wasn't aware of and I'm going to try them on a vintage clock. I remember doing the hour/minute while holding alarm to reset the alarm to 0:00. I found that when I was a kid and thought it was so cool to discover a feature.
by defrost | 2025-11-02 12:44:38+00:00
And yet the historic record shows numerous examples of the US overthrowing democratically elected parties to be replaced by thugs and patsies for the US.

* https://en.wikipedia.org/wiki/1953_Iranian_coup_d%27%C3%A9ta...

* https://en.wikipedia.org/wiki/1973_Chilean_coup_d%27%C3%A9ta...

etc.
by pizza234 | 2025-11-02 12:45:42+00:00
> You can very much translate C to Rust on a function-by-function basis, the only issue is at the boundary

Absolutely not. There are many restrictions of Rust that will prevent that. Lifetimes, global state come to mind first. Think about returning pointer to some owned by the caller - this can require massive cascading changes all over the codebase to be fixed.
by Esophagus4 | 2025-11-02 12:45:48+00:00
I agree with the article. Sadly, I have seen candidates cheating, and have hired those I suspected were cheating in hindsight.

It is a horrific drag on the team to have the wrong engineer in a seat.

If we can’t sus out who is cheating and who is legitimate, then the only answer is that we as a field have to move towards “hire fast, fire fast.”

Right now, we generally fire slow. But we can’t have the wrong engineer in a seat for six months while you go though a PIP and performance cycle waiting for a yearly layoff. Management and HR need to get comfortable with firing people in 3 weeks as opposed to 6 months. You need more frequent one-off decisions based on an individual’s contributions and potential.

If you can’t fix the interview process, you need more PIP culture.
by curt15 | 2025-11-02 12:45:52+00:00
>What if I need cron in my docker container? And ssh? And a text editor? And a monitoring agent? :P

How are you going to orchestrate all those daemons without systemd? :P

As you mentioned, a container running systemd and a suite of background services is the typical use case of LXD, not docker. But the difference seems to be cultural -- there's nothing preventing one from using systemd as the entry point of a docker container.
by Mond_ | 2025-11-02 12:46:21+00:00
This point has been litigated to death. Read this here: https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html

Almost everything that people think is ugly about Rust's syntax exists for very specific reasons. Most of the time, imo Rust made a good decision, and is just making something explicit.

Some things take time to get used to (e.g. if let), but for most people that's less an issue of syntax, and more an issue of not understanding a powerful feature (e.g. pattern matching deconstructions).
by kcplate | 2025-11-02 12:47:44+00:00
Describe “forcefully obsoletes”?

I ran a 2008 MBP until 2019. Then…gave it to my wife who used it until 2022. Finally retired it after the battery swelled. I suspect I could have replaced the battery and she could have got another couple of years out of it if I really needed.

Not once did that device ever feel obsolete.
by arthur2e5 | 2025-11-02 12:49:27+00:00
Fil-C works because you recompile the whole C userspace. Unsafe Rust doesn't do that... and for many practical purposes you probably want to touch the non-safe-version of the C userspace.

Still, it's all LLVM, so perhaps unsafe Rust for Fil-space can be a thing, a useful one for catching (what would be) UBs even [Fil-C defines everything, so no UBs, but I'm assuming you want to eventually run it outside of Fil-space].

Now I actually wonder if Fil-C has an escape hatch somewhere for syscalls that it does not understand etc. Well it doesn't do inline assembly, so I shouldn't expect much... I wonder how far one needs to extend the asm clobber syntax for it to remotely come close to working.
by bertman | 2025-11-02 12:49:41+00:00
>QuickVPN runs entirely in your browser

What does that even mean? This AI-coded extension uses a Cloudflare worker to generate API keys for the proxy service "webshare.io". It then uses the Chrome proxy API (https://developer.chrome.com/docs/extensions/reference/api/p...) to set up a Webshare proxy server.

>or log user data

Webshare.io log everything they can, as expected (https://www.webshare.io/privacy-policy)
by zozbot234 | 2025-11-02 12:50:35+00:00
These are restrictions of idiomatic Safe Rust. You can use either unsafe Rust or, in many cases, less idiomatic but still Safe Rust to sidestep them. (For instance, "aliasable mutable" but otherwise valid references which can often be expressed as &Cell<T>, etc.)

You might still need a "massive cascading change" later on to make the code properly idiomatic once you have Rust on both sides of the boundary, but that's just a one-time thing and quite manageable.