MurphyA/hacker-news huggingface dataset:
by johnnyanmac | 2025-09-23 00:35:10+00:00
They aren't major players, but there are still plenty of apps that are more "app with options to save to cloud" than "thin client with maybe some caching options". A quick skim on my phone shows it mostly pertains to apps that connect to other hardware (my router/modem and smart bulb, for instance), utility apps (file exploreres, calculators, and task lists), and local media apps.

But one enables continual revenues streams and the other succumbed to extremely rampant piracy in the app space. As such, even many games on mobile are service games rather than a local single player game.
by billforsternz | 2025-09-23 00:36:42+00:00
I quite like a terse but consistent conventions myself. I remember finally being able to quiet the tedious part of my brain that couldn't get past the NS conundrum when I finally came up with the NextStep thing as a reasonable theory.

In other words, my only complaint is that this Apple convention is not more easily discoverable. Or perhaps that the expert author of the book I was reading (this was back in the day) didn't feel the need to share it with his readers.
by TonyPeakman | 2025-09-23 00:36:45+00:00
Thank you — that really means a lot to me. One of the best parts of sharing dagger.js has been hearing from people like you who’ve been down the same path and thought about building the same set of features. It makes me feel like the project is on the right track.

What you described with vanilla JS plus a few helpers is exactly how dagger.js started — I just wanted to save myself (and hopefully others) from having to reinvent the same binding and routing layer every time.

If you ever try it out on your side project, I’d be truly grateful to hear how it feels. Feedback from thoughtful developers like you is what helps me make it better.
by grumio | 2025-09-23 00:36:50+00:00
I'm glad you came around to understanding what it is.

I'm not behaving like a kid, I just prefer if people don't whitewash what fascism means, like you did in your previous comment (but not in this one). Muddying the term only helps fascists, whether on purpose or inadvertently.

> If you going to punch people on the street don't complain when you and your friends are under a boot.

Please don't make such assumptions about me, and please don't wish me under a boot. That's rude.

Have a good day.
by alberth | 2025-09-23 00:37:31+00:00
> N2 is shaping up to be TSMC's most important node since N7

Is it?

N2, from an energy & perf improvement seems on par with any generation node update.

N2:N3 N3:N5 N5:N7 Power ~30% ~30% ~30% Perf ~15% ~15% ~15%

https://www.tomshardware.com/news/tsmc-reveals-2nm-fabricati...
by the_af | 2025-09-23 00:37:39+00:00
Penn and Teller: Fool Us is amazing. I went on a binge a year or so ago, watching everything there was to watch on YouTube (which is a lot).

I love how genuinely enthusiastic and encouraging of lesser known magicians they are. Always willing to celebrate their strengths instead of mocking them for their failures.

And they are excellent magicians, too.

My respect for Penn also went up after he realized his hardcore libertarian position was untenable. It was nice seeing him grow out of it.
by Aurornis | 2025-09-23 00:38:10+00:00
Almost every time I see CRDTs mentioned it’s used as a magic device that makes conflicts disappear. The details, of course, are not mentioned.

Technically an algorithm that lets the last writer win is a CRDT because there is no conflict.

Making a true system that automatically merges data while respecting user intent and expectations can be an extremely hard problem for anything complex like text.

Another problem is that in some situations using a CRDT to make the conflict disappear isn’t even the right approach. If two users schedule a meeting for the same open meeting room, you can’t avoid issues with an algorithm. You need to let them know about the conflict so they can resolve the issue.
by Ralfp | 2025-09-23 00:39:04+00:00
We are on schedule. People seem to need to get a reminder every few generations why authoritarians are terrible at running the country. Sometimes the process is peaceful. Sometimes it isn’t.

But the blame is not 100% on the authoritarians. The „we’ll refuse to do anything about your living conditions so you’ll radicalise and vote in somebody radical” is part of the cycle too.
by wahnfrieden | 2025-09-23 00:39:08+00:00
Would you characterize the items they hand to the court as similarly extreme and unprecedented in both ways? If one side is providing milder work, then I would expect higher agreeability. Otherwise there is something fishy with both sidesing it.

Obviously it is impossible to answer this without projecting some bias. But I don't think that makes it unanswerable.
by lumost | 2025-09-23 00:39:19+00:00
That, and all languages more or less converged to the same functionality with different syntax/naming conventions. They also all offer similar toolchains with similar frameworks for nearly all problems. The remaining places where one language dominates often has it doing so due to extreme network effects and extreme toolchain investments.

The main problem I hear in deep systems work is that it’s harder to find qualified and interested candidates to work on older components. Recoding these in rust is a reasonable way to overcome this issue and build up junior staff. Many large systems shops are also of the opinion that fixing C/CPP to do what they want going forward is impossible, and are simply tired of keeping *hundreds* of engineers on staff to fix sig11 crashes and other C/CPP specific issues.

If the number one problem for your business is dealing with c/cpp specific crashes, or you desperately need threading/async - then perhaps rust is right for you? Maybe ai will enable this conversion.

while CPP offers exceptions/threads/coroutines, the interaction of these features can lead to undefined behavior. Requiring that the entire code base follows your convention. Older code bases often use older patterns like forking, global variables, making modern patterns incompatible. See the callouts on object destructors for try/catch as an example https://en.cppreference.com/w/cpp/utility/program/longjmp
by kentonv | 2025-09-23 00:39:31+00:00
1. Think of it like updating a JavaScript API without breaking existing callers. The rules are essentially the over RPC as they would be for local calls. So, you can add new methods and new optional arguments, etc.

2. After losing the connection, you'll have to reconnect and reconstruct the objects from scratch. The way I've structured this in an actual React app is, I pass the main RPC stub as an argument to the top-level component. It calls methods to get sub-objects and passes them down to various child components. When the connection is lost, I recreate it, and then pass the new stub into the top-level component, causing it to "rerender" just like any other state change. All the children will fetch the sub-objects they need again.

If you have an object that represents some sort of subscription with a callback, you'll need to design the API so that when initiating the subscription, the caller can specify the last message they saw on the subscription, so that it can pick up where they left off without missing anything.

Hmm, I suppose we'll need to do a blog post of design patterns at some point...
by reactordev | 2025-09-23 00:39:47+00:00
Not relicensing at all, just simply adhering to a spec, as the GNU tools do. Can we get down from the soap box now on rewrites? People are free to reimplement anything if there’s a spec and no law against it. Derivative works only works when there is no public record of a specification prior to an IP introducing it. A copyright. IANAL but I’m pretty sure that’s how that works.

If you can prove they copied code, sure, it’s derivative. If you can prove they started from a fork, maybe you have a case. Starting from scratch is about as this is new as it gets.
by eadmund | 2025-09-23 00:40:20+00:00
That looks so terrible, but they could have been so easily transformed into an S-expression language similar to Lisp:

(if (equals foo "bar") (then (echo "The value of property foo is 'bar'")) (elseif (equals foo "foo") (then (echo "The value of property foo is 'bar'"))) (else (echo "The value of property foo is not 'foo' or 'bar'")))

That’s not a Lisp-like language I particularly like, but it’s not flat-out insane like Ant appears to be.

Advocates for the inappropriate use of XML (basically, anywhere it was used as anything other than a markup language) have lot to answer for.
by gkoberger | 2025-09-23 00:42:21+00:00
Even if you never want to practice magic, I highly recommend buying a few Dani DaOrtiz lectures. The way his mind works is phenomenal, and the things he talks about (psychology, how people think, crafting experiences) are applicable across the board.

(I rarely perform his tricks... they're brilliant, but they're so perfectly suited for his style that I can't even come close to pulling them off without seeming like a confused idiot. But I love watching him explain what goes into each trick. This specific trick is available on Vanishing.)
by lebuffon | 2025-09-23 00:42:34+00:00
The hard part I think is grokking the fact that the FORTH can compile and interpret inside the same definition. Also one must understand the operation of the Forth primitives HERE and comma (,)

I will take a run at explaining IF ENDIF (endif is the Fig Forth term, used here to avoid confusion)

?BRANCH is an instruction in the virtual machine. It jumps if top of stack=0 . The offset (or address)that it jumps to is the memory word right after the ?BRANCH token. Like this: <?BRANCH><number>

Forth definition of IF

: IF COMPILE ?BRANCH HERE 0 , ; IMMEDIATE

At compile time IF "compiles" the token for ?BRANCH but then interprets "HERE 0 ,"

(IF is an IMMEDIATE word that executes even if the compiler is turned on)

HERE is like $ in Assembler, ie: the address where code is being laid down. It is simply left on the data stack. HERE is the address where the <number> will be stored... later.

0 is a zero, that is pushed onto the data stack.

"Comma" (,) pops the zero and puts it in memory address HERE but! it advances the system memory pointer 1 integer width.

The zero is now a place holder in memory to be filled in by ENDIF.

: ENDIF( addr -- ) HERE OVER - SWAP ! ; IMMEDIATE

ENDIF needs that address left behind by IF shown in comment as addr.

ENDIF gets the new value of HERE which of course is different because we will have compiled some code after the IF keyword.

All we need to do is do NEWHERE-OLDHERE to get the offset for ?BRANCH.

That is covered by the forth code ( oldhere-on-stack) HERE OVER -

This will make the data stack be: ( OLDHERE offset )

If we do a SWAP we just need the store operator '!' to put the offset into memory.

For the morbidly curious here is the definition of ELSE. :-)

: ELSE COMPILE BRANCH HERE 0 , SWAP [COMPILE] ENDIF ; IMMEDIATE

So loops are just more of the same... (all loops jump back to BEGIN. BRANCH is an unconditional jump instruction)

: BEGIN HERE ; IMMEDIATE

: AGAIN COMPILE BRANCH HERE - , ; IMMEDIATE

: UNTIL COMPILE ?BRANCH HERE - , ; IMMEDIATE

: WHILE [COMPILE] IF SWAP ; IMMEDIATE

: REPEAT [COMPILE] AGAIN [COMPILE] ENDIF ; IMMEDIATE
by corytheboyd | 2025-09-23 00:42:52+00:00
Honestly I don’t know how to feel about it anymore, but I found the rhetoric way too explosive at the time, when nothing was really known. Now that some time has passed, and more has been said… yeah I get your point too.

Ruby has been a HUGE part of building my career, I don’t want to see it slide away one questionable move at a time into full corporate control. It’s not TOO hard to see how this whole thing could just be step one of that :/
by Aurornis | 2025-09-23 00:42:53+00:00
> But since the entire world economy has turned to purely optimizing for control and profit, there's just no good reason to not screw people over as much and as often as possible, what'll they do ?

I worked on a somewhat well-known (at the time) product that used on-site hosting.

One of our biggest customer complaints was that we didn’t have a cloud hosted option. Many companies didn’t want to self-host. They’d happily pay a premium to not have to host it.

I think HN underestimates the demand for cloud hosted solutions. Companies don’t want to deal with self-hosted if they can pay someone else a monthly fee to do it.
by Onavo | 2025-09-23 00:43:55+00:00
I am not sure why they even bother...they are at the top of their fields and they are household names in America that are synonymous with magic. Not since Houdini has there been such famous magicians in show biz. The professional organizations should be naming prizes after them instead of them begging to be part of the in-group. You don't see Bill Gates, Jobs, or Torvalds begging to join the IEEE.
by mattrobenolt | 2025-09-23 00:44:12+00:00
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-inst...

Not all AWS instance types support NVMe drives. It's not the same as normal attached storage.

I'm not really sure your arguments are in good faith here tho.

This is just not a configuration you can trivially do while maintaining durability and HA.

There's a lot of hype going the exact opposite direction and more separation of storage and compute. This is our counter to that. We think even EBS is bad.

This isn't a setup that is naturally just going to beat a "real server" that also has local NVMes or whatever you'd do yourself. This is just not what things like RDS or Aurora do, etc. Most things rely on EBS which is significantly worse than local storages. We aren't really claiming we've invented something new here. It's just unique in the managed database space.
by AnimalMuppet | 2025-09-23 00:45:01+00:00
Dude. Not everybody who flags political posts on HN is a fascist. Some are just really tired of the amount of political posts here.

A lot of people don't have any problem saying that this is wrong. They just don't want the discussion to be here. They aren't fascists, or working on behalf of fascists. They just want HN to not be the all-politics-all-the-time channel that it seems to threaten to become.
by nomel | 2025-09-23 00:45:46+00:00
“Discernible effect” doesn’t really refute their point, it affirms it. Some aren’t responsive to any of that.

I think it’s logical that you’re both right, with the disagreement being in the ratio. If you honestly think all humans are born equal, I suggest visiting a mental ward, or more relevant here, watching some interviews/analysis of mass murderers. There’s a well accepted, by the medical field, by objective metrics, spectrum of self control, awareness, autonomy, and intelligence, expressed in humans. We’re not all the same. You typing here suggests you’re on the relatively extreme end of the “genetic luck” spectrum.
by godelski | 2025-09-23 00:45:48+00:00
This is why I rage against the crowd that promotes "self documenting code". There's no such thing, even if you should strive to make your code as readable as possible. But if there's a way to misinterpret it then you can bet many people will.

The biggest problem is that this ends up creating so much extra work. An extra 2 seconds from the dev could save hundreds or even thousands of people hours of work. I can't tell you how many hours I've spent chasing stupid shit like your example. I don't know a single programmer who hasn't.

I just don't understand why everyone's frustration with documentation (or lack of) doesn't make obvious the importance of good documentation. Every single one of us has experienced the wasted time and effort that results from the lack of documentation or from low quality docs. Every single one of us has also reaped the benefits of good documentation and seen how much faster it makes us. How does anyone end up convincing themselves that documentation is a waste of time? It feels insane
by JumpCrisscross | 2025-09-23 00:47:46+00:00
> Would you characterize the items they hand to the court as similarly extreme in both ways?

It's really difficult to answer this separate from one's biases.

I'd also note that Trump, then Biden, then Trump again escalated the use of the shadow docket way beyond historical norms [1]. This was a deliberate choice by both Presidents.

> there is something fishy with both sidesing it

Didn't mean to both sides this, at least not at the level of the Court. The Court has had a conservative majority for a decade; one could argue Jackson and Sotomayor are balancing the court by leaning against its centre of pressure. But it's not unexpected for the Court to be a bit more deferential towards a Republican President. We haven't been appointing and confirming neutral arbiters for a while.

[1] https://en.wikipedia.org/wiki/Shadow_docket#Since_2017
by pstuart | 2025-09-23 00:47:51+00:00
The fact that anything that isn't fawning over the man is considered hate is what's scary. His assassination was instantly weaponized to foment even more hate against the Left.

There was leftist terrorism in the 70's (e.g., The Weather Underground), but nothing I'm aware of since.

They define Antifa as a terrorist group but it's just a collection of young men who want to get into brawls with extremists on the other side -- like some sort of Fight Club.

The President has declared his desire for his political opponents to be jailed -- and he's surrounded by enablers who are more than willing to do that. Worse yet, a significant chunk of the population is totally okay with that.
by addaon | 2025-09-23 00:47:59+00:00
> how does a Forth interpreter work in a Harvard architecture microprocessor

You compile to "direct threaded code" in data memory; direct threaded code represents a sequence of calls as a sequence of addresses to call. So while "normal" threaded code (what Wikipedia calls "subroutine threading") would just have

call word_a call word_b call word_c

And then executing that means jumping to the first instruction, direct threaded code would have

&word_a &word_b &word_c

And then there's a suuuuper tiny runtime (like four of five instructions, literally) that has a "runtime instruction pointer" or whatever you want to call it, and just increments that and does an indirect call through to the next word whenever it's returned to.
by rafterydj | 2025-09-23 00:49:00+00:00
I agree the market is niche atm, but I can't help but disagree with your outlook long term. Self hosted models don't have the problems ChatGPT subscribers are facing with models seemingly performing worse over time, they don't need to worry about usage quotas, they don't need to worry about getting locked out of their services, etc.

All of these things have a dark side, though; but it's likely unnecessary for me to elaborate on that.
by nradov | 2025-09-23 00:49:35+00:00
Right, I get that dealing with family law issues can be extremely difficult — especially when irrational or abusive people are involved. But at some point custodial parents need to step up and do what's necessary to collect the money owed to their children even though it's a painful process. It sucks and it's unfair but usually better than letting the children become homeless.

The subject of the story might have her reasons (the father could be dead for all we know) and I wouldn't presume to criticize her based on such a limited set of facts. My criticism of the journalists is that they just leave that part out. It's sloppy writing and leaves the reader wondering what else they missed? Like they can ask for the intimate details of the family's financial history and living situation but they can't ask about child support? It makes no sense.
by B-Con | 2025-09-23 00:49:44+00:00
Airplane mode + 10k battery lasts ~6-12 days, depending on the person and the phone.

There are roughly 1 or 2 thousand attempted "thru" hikes per year, who hike from southern to northern border of the USA over the course of 3-5 months. Far more "section" hikers, who will do a 1-4 week segment of a larger trail.

Such folks often resupply food and recharge their battery banks every few days.

To be fair, we'd generally call it backpacking rather than hiking. But the premise of the article was backpackers, so I didn't bother distinguishing.
by birdalbrocum | 2025-09-23 00:49:59+00:00
This is all about destroying free software and allowing "open source" to take over, nothing with memory safety whatsoever. This can sound conspiracy but the main idea is to push permissive licenses, so companies can exploit your work without even mentioning your name. I believe the goal of Canonical and similar companies is to create a fully alternative Linux+GNU environment without GPL/AGPL, push it with embrace, extend, extinguish tactics and eventually create a developer culture that contributing to permissive license parallel project is a better alternative than original copyleft one.
by crote | 2025-09-23 00:50:03+00:00
The problem is that coreutils isn't done. It is still getting new features - it even had a release today [0]! And if new features are being added, then we're getting new bugs as well. Using Rust eliminates an entire class of rather serious bugs, so in a greenfield environment it would almost certainly be a better choice for a critical project like coreutils.

In practice it's of course more complicated. Any rewrite will also introduce a lot of bugs, so short-term the rewrite will probably have a negative result. I think it's a weird decision for Ubuntu to switch to uutils when it is still incomplete and probably buggier than the GNU version, but perhaps in the long run (5+ / 10+ years?) it might turn out to be the better option.

It's also important to keep the wider ecosystem in mind. Even if C and Rust were functionally identical, a rewrite could still make sense. Imagine if coreutils was written in a language like COBOL: the language choice would severely restrict the number of potential contributors. Who's going to learn it solely for the thankless job of maintaining boring tooling like coreutils? With the current generation of OSS maintainers slowly dying off, you need to recruit new (younger) developers to take over. If all the kids love Rust and hate C, then perhaps a switch to Rust might be a necessary evil to ensure we'll have well-maintained coreutils for another generation. You still need to be careful to avoid the fad of the day, but I think it's pretty clear by now that Rust is here to stay.

As an aside, as [1] shows, the "it'll at best be equal" argument is factually incorrect. There is no good reason to believe that GNU coreutils could not possibly be improved upon.

[0]: https://www.phoronix.com/news/GNU-Coreutils-9.8

[1]: https://www.phoronix.com/news/Rust-Coreutils-0.2.2
by jsheard | 2025-09-23 00:50:14+00:00
> This assumes that the C code is already fully optimal, but it very obviously is not.

Yeah, there's a lot of crusty old C code out there which has fallen way behind in performance, but everyone still uses because it's proven to be robust by C standards and changing it would be tempting fate. There's a tension between performance and security which doesn't exist to nearly the same degree in Rust, which is why you get instances like this where zero-unsafe Rust can run circles around the canonical C library.

https://old.reddit.com/r/rust/comments/1ha7uyi/memorysafe_pn...
by dibrale | 2025-09-23 00:50:37+00:00
I prize local execution for confidentiality and trust reasons, but this mindset seems to put me in a distinct minority. I've just accepted that I will end up having to build my own solutions from time to time.

That said, 'local' can mean a number of different things. On-device local, LAN local, intranet local... You get the idea. I chose to go with an approach of: 'assume resources are constrained and build for that'.

The result was a local-first agentic system (https://github.com/dibrale/Regions) that uses explicit resource sharing and execution patterns to make use of arbitrarily distributed compute. That way, local can be whatever I want it to be, so long as there's an endpoint.