MurphyA/hacker-news huggingface dataset:
by maccard | 2025-05-13 19:08:12+00:00
The problem is that “allowed to be expected to crash” is one interpretation. Another is “0 initialized” (which debug runtimes sometimes use), another is “whatever was on the stack last time” and another is “we can reorder program and eliminate what you think is logical code”.

int main() { int val; if (val == 3) { cout << “here” << end; } return 0; }

A perfectly legal interpretation of this program is to remove the call to cout, as is just printing “here” on every run.

> So literally the variable does not have a value at all, as that part of address space is not mapped to physical memory.

There are vanishingly few platforms where the stack you have in a C program maps to physical memory (even if you consider pages from the OS)
by brundolf | 2025-05-13 19:08:20+00:00
Exactly. People on HN get angry and confused about low software quality, compute wastefulness, etc, but what's happening is not a moral crisis: the market has simply chosen the trade-off it wants, and industry has adapted to it

If you want to be rewarded for working on quality, you have to find a niche where quality has high economic value. If you want to put effort into quality regardless, that's a very noble thing and many of us take pleasure in doing so, but we shouldn't act surprised when we aren't economically rewarded for it
by variadix | 2025-05-13 19:09:15+00:00
This is certainly an interesting argument for making certain behavior (in this case, uninitialized access) the default and UB. There’s a similar argument for making signed overflow UB instead of defined to wrap, even if you’re only targeting two’s-complement machines, that is: leaving the behavior undefined enables analyzers to detect the behavior and making it the default can make otherwise silent errors detectable across all programs. I think I’ve come around to wanting these to be undefined and the default, it’s unintuitive but defined wrapping or zero initialized may be undesirable behaviors anyway.
by kstrauser | 2025-05-13 19:09:15+00:00
Embedded is a lot different, to be sure. I'm surprised there's room for tmux on something that tiny.

But on desktop systems, on my Mac, Zellij takes 28MB of disk and 40MB of RAM. That's 1/37,000th of my available disk and 1/1,600th of my RAM. I'm all for optimized, tiny apps, but those are below my attention threshold.
by Bender | 2025-05-13 19:09:19+00:00
One could choose to not do business with anyone that does not accept cash. Less convenient but not the end of the world. There are also services that will accept cash and then go pick up merchandise. It's most commonly used for getting large appliances when one does not have a trailer but it can be used for just about anything.

I went with the middle ground. Cash for anything I do not want tracked and debt card for Team Bezos and horse feed so it appears I do not try to be private. Same for my computers. Locked down Linux for daily driver and a Windows mini-pc to stream Netflix with Microsoft Edge so that I maintain some tracked activity. Should cash go away then I go New Order Amish.
by comrade1234 | 2025-05-13 19:10:02+00:00
UBS Switzerland has a decent system. When I first opened the account 15 years ago we had a number pad of codes on paper we entered as the authentication. Then later we got a credit card sized electronic device where we enter a passcode and it gives us a one-time code to enter to login. And now we have an Access app - we go to the website, enter our contract number, point our phone at a QR code on the webpage and authenticate on the app, and the desktop browser logs us in. The access app also is used for logging in with the mobile banking app. It never relied on sms.

Super simple but probably costs some money to develop.
by vel0city | 2025-05-13 19:10:07+00:00
It doesn't even know if the devices are still attached (as it potentially hasn't tried interfacing them for hours) but should instantly be able to allow input to control them and fully understand their current status. Right. Makes sense.

And if you don't remember the volume slider taking several seconds to render on XP you must be much wealthier than me or have some extremely rose colored glasses. I play around with old hardware all the time and get frustrated with the unresponsiveness of old equipment with period accurate software, and had a lot of decent hardware (to me at least) in the 90s and 00s. I've definitely experienced lots of times of the start menu painting one entry after the other at launch, taking a second to roll out, seeking on disk for that third level menu in 98, etc.

Rose colored glasses, the lot of you. Go use an old 386 for a month. Tell me how much more productive you are after.
by vasusen | 2025-05-13 19:10:08+00:00
I was at Coursera for years and pitched this exact thing multiple times internally! So excited to finally see it being built. Congratulations on the launch!

This concept is really cool and solves big challenges around content creation. Obviously, it adds new challenges around pedagogy, licensing, and ads. The last part is a big no no for blue chip edtech platforms.
by vmg12 | 2025-05-13 19:11:53+00:00
Also, sometimes just unwrap it. There is some software where it's perfectly fine to panic. If there is no sane default value and there is nothing you can do to recover from the error, just unwrap.

Also, sometimes you just write software where you know the invariant is enforced so a type is never None, you can unwrap there too.

I find it interesting how a lot of people find Rust annoying because idiomatic Rust is a very strict language. You still get a ton of the benefits of Rust when writing non-idiomatic Rust. Just use the Rc<RefCell<>> and Arc<Mutex> and feel free to unwrap everything, nobody will punish you.
by TacticalCoder | 2025-05-13 19:12:43+00:00
It's not just authentication that they get wrong. On several websites (non banks) I can get my entire history, all my logins, all my transactions, since I created my accounts: all the way back to, say, 2013... No problem.

But banking websites only allow to go a few years back. But now with the KYC/AML madness where every real-estate agent, notary, etc. is forced to snitch for the intrusive government, they ask for "proofs of the source of funds" for things that can go back many, many, many years.

"I sold an appartment I bought in 2013"

"Source of funds you used to buy the apartment in 2013 please"

And you're sorry out of luck with traditional banks.

My banks then typically charge 25 EUR per month, per account, to get past history. So say you have 3 accounts, that's 900 EUR per year for your history.

And to add insult to injury, it's all dog slow of course.

Back in the days it wasn't like that: it didn't feel like the Gestapo was watching your every move and asking honest citizens proofs of everything. So I didn't know that for my private account I had to carefully save every single wire transfer for it may be needed 15 years in the future.

Just screw that entire system. Fuck it.

P.S: my mom still have one banking website where geniuses decided that a PIN had to be entered by using the mouse to click on digits that are randomly placed on the screen. Major french bank. In 2025.
by lillecarl | 2025-05-13 19:13:27+00:00
This is the only natural path if mobile chips are going to keep getting faster, everyone with a flagship phone is "wasting" so much good compute resources that never gets utilized.

I wonder if we'll see USB-C docks for phones with fans blowing at the device for improved thermals.

If they nail the Linux container UX as well as ChromeOS it would motivate me to buy a top-tier device rather than my sluggish Fairphone 4, right now I don't see the usecase other than good camera.

Imagine thst a large userbase could just skip the laptop and desktop in favor of a USB-C dock and a decent display :)
by beezlebroxxxxxx | 2025-05-13 19:13:35+00:00
The majority of work behavior and relationship advice can be summarized down to 3 points.

1. Be nice.

2. Don't be an asshole.

3. Don't be a push-over. (Arguably the hardest as many people read that as "be an asshole". It is not.)

The same applies in remote environments.
by Zambyte | 2025-05-13 19:14:00+00:00
I used it fairly regularly with a device called NexDock, which is essentially just a laptop shell that acts as a screen, a keyboard, a track pad, and a battery for a USB-C connected device. I mostly used it for web browsing, chatting, and Termux (usually SSHing into another system, but not always).

Since I got my hands on a Daylight Computer, I have basically been doing the same thing but with a tablet Android environment instead of DeX. It's been nice, but I would love a nicer window manager when I have a keyboard and mouse connected.
by aspenmayer | 2025-05-13 19:14:24+00:00
Most cheap laptops these days ship with only one stick of RAM, and thus are only operating in single-channel mode. By adding another memory module, you can operate in dual-channel mode which can increase performance a lot. You can see the difference in performance by running a full memory test in single-channel mode vs multi-channel mode with a program like memtest86 or memtest86+ or others.
by monkeyelite | 2025-05-13 19:14:35+00:00
> The bounds only need to be checked once for a for loop, not on each iteration.

This is a theoretical argument. It depends on the compiler being able to see that’s what you’re doing and prove that there is no other mutation.

> abominations of C and C++

Sounds like you don’t understand the design choices that made this languages successful.
by kerkeslager | 2025-05-13 19:14:37+00:00
> Budgets might be cut directly, so can not feed some percent, budgets might be cut indirectly (less tax revenue).

Stop talking as if there's no human actor involved in this. If budgets are cut (less tax revenue) it's because the same people who oppose feeding kids oppose taxing rich people. This is just people saying, "We can't feed kids, because we might decide to not tax rich people instead." I'm not confused about this possibility or missing this possibility: I'm saying "don't be an asshole, collect enough taxes to feed the kids".

> Giving out free food might make people feel entitled and less likely to learn to be self sufficient.

Stop talking about "people" as if you've forgotten these are children. Kids should feel entitled to eat, because children are entitled to receive food. Obviously we should be preparing them to learn to feed themselves as adults--nobody is confused about that--but it's going to be a whole lot harder for a child to learn if they're unsure about their next meal. And again, it's the same people who oppose school lunches who oppose education programs.

Giving a child a fish and teaching the child to fish are not mutually exclusive. And US conservatives oppose both.

> Back to budgets, it might remove money from other school needs. I guess the thinking would be, schools should teach, food is not their responsibility. If it comes their responsibility then they'll do less teaching which is back to not helping make their students able to ultimately fend for themselves but instead makes them dependent.

Again, stop pretending there's no actors doing this. It's conservatives who are creating these artificially constrained budgets. It's conservatives who are not allocating enough money to both feed and educate children.

I'm simply not interested in any argument which involves pretending there isn't enough money to feed children. There is enough money, you simply don't think feeding children is important enough to collect taxes to do it.

I'm simply not interested in arguments about who should be feeding children. I want the federal government to fund schools to feed children because that's the only viable path to all the children in my country being fed on the table at the moment. You haven't presented any alternatives that work, and you won't, because you are more interested in avoiding taxes than you are in feeding children.
by microtonal | 2025-05-13 19:15:36+00:00
I have been an iPhone user since 2009, but take 'Android-excursions' every few years. I am currently using a Pixel 9 and I can't see why it would be worse than an iPhone. Functionality-wise they are pretty much on-par. Sure, there are some differences, Pixels have much better AI functionality, iPhones better Mac integration. But I don't see a clear advantage of either, except that Android hardware is much more affordable (you can pick up a still pretty-ok Pixel 8a new for 379 Euro here currently) and Android has more customizability (but good out-of-the-box defaults).

And you have the bonus that with a Pixel you can remove big tech from the equation when needed with GrapheneOS.

That said, I would only recommend people to buy Pixel or Samsung A5x or up. They are the only Android phones that have reliable monthly updates [1], plus they are the only two brands that are not vague about having a truly separated secure enclave (Titan M2/Knox Vault respectively). Other vendors don't really talk about it and probably only use ARM TrustZone.

[1] Pixel is the only phone that gets them really on time, but with Samsung it's normally within a month on A5x and the flagships.
by nogridbag | 2025-05-13 19:16:46+00:00
Yeah that first example is rather poor. And it uses the word boilerpate to seemingly refer to the stuff unrelated to the async code (class declaration, exception handling, main method).

I don't use Java async much, but I guess if you have a utility method named "setTimeout" than the example can simply be:

public CompletableFuture<String> fetchData() { return setTimeout(() -> "Data Fetched", 10000); } public void loadData() { fetchData().thenAccept(System.out::println); }

Which is simpler or equivalent to the JS example.
by toast0 | 2025-05-13 19:17:27+00:00
Mnesia worked well enough for us at WhatsApp while I was there; although we didn't use it to store messages; long term message storage is on the end points (generally sqlite), messages in transit (offline) were stored in a file per user with the import/export written in C IIRC. We did add redundant in memory storage of messages in transit; but I don't remember the storage there; may have just been ets.

We mostly used mnesia as a replicated key-value store, but we got a lot of value from having the data and the business logic colocated. Other nodes would send logical operations to processes on the mnesia node and those processes could run each operation one at a time on the data. Any concurrent logical requests for a given piece of data were implicitly serialized by the process mailbox. But almost all of our data was easy to shard, no high volume operations needed to address multiple tables.

We heard a lot of things about mnesia scalability limits that just didn't match up with our experience; so I don't know what other people were doing, but you can get a glimpse of what we were doing in the Rick Reed talks at Erlang Factory. We certainly had some scalability challenges, but many (most?) are discussed in those talks; and my general recollection is that most of them were more like we were the only people running mnesia with tables of enormous size, so we had to make things work; but that's kind of how OTP is. The trickiest one to find, IMHO, was that IIRC mnesia_frag and ets (and our request sharding) all use(d?) the same hashing function, so adding more fragments would make distribution of keys per ets slot worse, ets wanted power of two slots, and would split based on average keys per slot, but we would have lots of keys on some slots and no keys on most slots. Changing the hash seed for ets was a 2 line code change that drastically improved performance on all of our sharded mnesia systems.

Another fun one is that if you use mnesia to store data for long periods, you have to be very careful with the binaries you store; it's easy to end up with refc binaries that have extra space for append operations; storing them in mnesia means that append space is allocated but unusable; you might also store a sub binary that's a small part of a refc binary, the underlying binary can't be disposed of until the sub binary is. For both of those cases, cleaning the binaries before storing them with binary:copy/1 can really reduce your memory use. There's probably some cases where you do want to store a sub binary though?

Mnesia doesn't (or didn't) include a good way to handle when two mnesia nodes sharing a schema disconnect and reconnect. We mostly solved that by ensuring our network was stable enough that that rarely happened. If your network is not stable, you will have a bad time with distributed Erlang in general, and Mnesia in specific.

If I were building Twitch but smaller, and on the BEAM, I would absolutely put account databases in Mnesia; but messages and media would probably live as files. I wouldn't tend to put those into a SQL database on a server either though.
by Aurornis | 2025-05-13 19:17:33+00:00
I can never tell if all of these comments are exaggerations to make a point, or if some people really have computers so slow that everything takes 20 seconds to launch (like the other comment claims).

I'm sure some of these people are using 10 year old corporate laptops with heavy corporate anti-virus scanning, leading to slow startup times. However, I think a lot of people are just exaggerating. If it's not instantly open, it's too long for them.

I, too, can get programs like Slack and Visual Studio Code to launch in a couple seconds at most, in contrast to all of these comments claiming 20 second launch times. I also don't quit these programs, so the only time I see that load time is after an update or reboot. Even if every program did take 20 seconds to launch and I rebooted my computer once a week, the net time lost would be measured in a couple of minutes.
by hnlmorg | 2025-05-13 19:18:00+00:00
> Where Zellij takes a turn in to a different direction, however, is that the workspaces you can configure with it can do all sorts of interesting things.

That’s been a pretty standard feature of tmux since forever.

In fact the reason I first discovered tmux was because some Irssi (terminal IRC client) plugins used tmux to create additional panes for Irssi.

tmux is one of those tools that does a lot more than most people realise but the learning curve is steep and features aren’t easy to discover.

Zellij looks interesting but these days I mostly use tmux as a control plane rather than a terminal UI. So the enhancements of Zellij are wasted on me.
by voidspark | 2025-05-13 19:18:35+00:00
> slightly beefed up (say, dual or quad CPU) typical early ‘90s gear.

Early 90's Intel was the 486 33 Mhz. It barely had enough performance to run the TCP/IP stack at a few hundred KB/sec, using all of the CPU just for that task. I think you forgot how slow it was. Pentium II is where it starts to get reasonably modern in the late 90's. Pentium Pro (1995) was their first with multiprocessor support. It was moving so fast back then that early/mid/late 90's was like comparing decades apart at todays pace of improvement.
by darepublic | 2025-05-13 19:18:53+00:00
> Yes – Chromium now ships a tiny on‑device sentence‑embedding model, but it’s strictly an internal feature.

What it’s for “History Embeddings.” Since ~M‑128 the browser can turn every page‑visit title/snippet and your search queries into dense vectors so it can do semantic history search and surface “answer” chips. The whole thing is gated behind two experiments:

^ response from chatgpt
by xp84 | 2025-05-13 19:19:34+00:00
Best thing that ever happened in this bleak security world is Google Authenticator. I haven’t used that app itself in years, preferring others, but the existence of it and it being non-proprietary, has done a lot to bring over the moderately-security-competent companies to thinking “hey, I guess we should support this.” Obviously that group excludes every American bank, every power utility, etc. They all want to email or text me a freaking code at each login for some reason.
Show HN: Put macros.menu/ in front of any restaurant menu URL
by Sawpaw19 | 2025-05-13 19:19:50+00:00
I’ve been tracking my macros every day since January 1st. Weighing and measuring at home is a breeze but eating out is a total pain. I built this tool for myself but a lot of likeminded people have loved it. Please note macros are estimated by gen AI. Image menus not supported yet.
by jmalicki | 2025-05-13 19:19:55+00:00
"Bell Laboratories has been the recipient of 11 Nobel Prizes in Physics, with notable laureates including John Bardeen, William Shockley, Walter Brattain, and Arthur Ashkin. Other notable achievements include the invention of the transistor, the discovery of the cosmic microwave background, and the development of optical tweezers."

Microsoft Research has a ton of people working on theoretical CS.

Biology - there is a ton of research in agriculture too - e.g. Monsanto and GMO seeds.
Show HN: Visualize your work cycles to see where your time goes
by alexandroo | 2025-05-13 19:19:59+00:00
See how visualizing your time spent working can eliminate procrastination, reveal work patterns, and create accountability while helping you find balance between intentional work and guilt-free enjoyment.

Either work or enjoy the day. If a timer isn't started, then enjoy life instead of worrying about what I should be doing. If I start the timer, I work on the task to finish it as fast as possible, no phone, no interruptions. But if the timer isn't started, then I have no guilt that I have to do something. That guilt creates pressure and more procrastination. Either spend time working or enjoying life, no time spent being guilty.
by pnw | 2025-05-13 19:20:11+00:00
OP's problem sounds like failure to plan. If you are going to suspend your cell plan, you should probably check your authenticator works or have a backup option before you travel to another country.

I don't know what the viable alternative is. Passkeys have just as many issues when phones are stolen, lost or broken. You cannot expect consumers to store recovery codes. I do agree support of TOTP authenticators would help savvy consumers, but probably still too complicated for seniors etc. Watching my elderly relatives with poor vision enter a TOTP code was quite instructive. The UI of Google Authenticator made no sense to them and they didn't understand why it kept changing and getting rejected. They were barely able to enter six numbers in a 30 second window.
by dzdt | 2025-05-13 19:20:50+00:00
The future of personal computing is being dictated by the economics of it, which are that the optimal route to extract value from consumers is to have walled-garden software systems gated by per-month subscription access and/or massive forced advertising. This leads to everything being in the cloud and only fairly thin clients running on user hardware. That gives the most control to the system owners and the least control to the user.

Given that all the compute and all the data is on the cloud, there is little point in making ways for users to do clever interconnect things with their local devices.
by Aurornis | 2025-05-13 19:21:02+00:00
> Slack, teams, vs code, miro, excel, rider/intellij, outlook, photoshop/affinity are all applications I use every day that take 20+ seconds to launch.

> On the website front - Facebook, twitter, Airbnb, Reddit, most news sites, all take 10+ seconds to load or be functional

I just launched IntelliJ (first time since reboot). Took maybe 2 seconds to the projects screen. I clicked a random project and was editing it 2 seconds after that.

I tried Twitter, Reddit, AirBnB, and tried to count the loading time. Twitter was the slowest at about 3 seconds.

I have a 4 year old laptop. If you're seeing 10 second load times for every website and 20 second launch times for every app, you have something else going on. You mentioned corporate VPN, so I suspect you might have some heavy anti-virus or corporate security scanning that's slowing your computer down more than you expect.