MurphyA/hacker-news huggingface dataset:
by MrScruff | 2026-01-24 09:37:10+00:00
I used to worry about recall but eventually realised I made more and more interesting music when I treated my gear like a regular musical instrument and just recorded myself playing to audio. Perfect recall put me in a brain loop of endless tweaking that didn’t actually benefit the music at all, it would all just end up sounding overthought. Plus I had more fun doing it. This was a bit of a revelation for me. Obviously, whatever works for you works for you, but just a counterpoint.
by jackfranklyn | 2026-01-24 09:37:19+00:00
The data behind these comes from the Darwin feed (National Rail's real-time data) which is surprisingly good once you get past the initial authentication setup. Network Rail also publishes movement data via their OpenData platform if you want to go deeper - actual track circuits and signalling block occupancy.

What I find interesting is how these physical displays handle the inevitable "ghost trains" in the feed - cancelled services that still show as running, or trains that briefly appear in the wrong location. The software problem is messier than the hardware.
by svilen_dobrev | 2026-01-24 09:38:06+00:00
> because I didn't get my way

if you cannot come with compromise, and if it's only about some code/architecture/software, let it go (and fail or whatever), esp. if you have not invested man-years actually building it yet. If you go ahead and invest yourself, even if it works, it might still be shot down for political reasons - and you'll feel much worse. Event sourcing - and bitemporal stuff - is not a simple thing - and might be completely misunderstood. Correctness it brings does not pay checks - unless required at the root and/or accepted at whole-human-chain. Been there.

> I feel like taking up that offer..

if it's under different boss - yes. The grass might be greener there, try it out. Otherwise.. working against oneself's beliefs/ways is recipe for bad burnout. Been there too..
by consumer451 | 2026-01-24 09:38:34+00:00
The last I checked, it is exactly equivalent per token to direct OpenAI model inference.

The one thing I wish for is that Azure Opus 4.5 had json structured output. Last I checked that was in "beta" and only allowed via direct Anthropic API. However, after many thousands of Opus 4.5 Azure API calls with the correct system and user prompts, not even one API call has returned invalid json.

Still, would really appreciate an official strucrend output api, via Azure.
by aebtebeten | 2026-01-24 09:39:57+00:00
ok, so how representative are geohot and PH's son? I'm not seeing much of either over here, but maybe it's just a case of "try that in a small country?"

[1] let's not forget "Joe Cool"; but then again maybe he doesn't shun formal education: https://i.pinimg.com/170x/31/59/7d/31597dc97c7c3591ef9e2ac14...

TW Körner on formal education: https://www.dpmms.cam.ac.uk/~twk10/Naked.pdf#page=11

> ...since good students mainly educate themselves outside the lecture room, you need not worry that you will influence them too much. Eventually they will outgrow you. The clever ones will make this clear to you but the very clever ones will listen to you as respectfully as ever.
by jack_pp | 2026-01-24 09:40:39+00:00
Rabbi Haim once ascended to the firmaments to see the difference between the worlds. He first visited Gehenna (Hell).

He saw a vast hall with long tables covered in the most magnificent foods. But the people sitting there were skeletal and wailing in agony. As the Rabbi looked closer, he saw that every person had wooden slats splinted to their arms, stretching from their shoulders to their wrists. Their arms were perfectly straight and stiff; they could pick up a spoon, but they could not bend their elbows to bring the food to their own mouths. They sat in front of a feast, starving in bitterness.

The Rabbi then visited Gan Eden (Heaven). To his surprise, he saw the exact same hall, the same tables, and the same magnificent food. Even more shocking, the people there also had wooden slats splinted to their arms, keeping them from bending their elbows.
But here, the hall was filled with laughter and song. The people were well-fed and glowing. As the Rabbi watched, he saw a man fill his spoon and reach across the table, placing the food into the mouth of the man sitting opposite him. That man, in turn, filled his spoon and fed his friend.

The Rabbi returned to Hell and whispered to one of the starving men, "You do not have to starve! Reach across and feed your neighbor, and he will feed you."
The man in Hell looked at him with spite and replied, "What? You expect me to feed that fool across from me? I would rather starve than give him the pleasure of a full belly!"
by trhway | 2026-01-24 09:40:50+00:00
One of the points of space economy is that rocket needs to leave earth only once. After that the equipment would just be mining and sending stuff back using pretty unlimited solar and nuclear energy thus the amortized cost of the mined material would be going down to pretty much 0 which in the long run may work even for iron.

Nobody these days surprised that producing stuff in China and delivering it 10000km is cheaper than producing locally. The same thing will be with mining as the cost structure - absence of environmental, regulatory and political costs in particular and much cheaper energy (solar and nuclear) - is much better in the space than on earth. Also scale - you can easily find asteroids where you can have a mining operation 10x or even 100x the largest earth operation - and scale drives cost down. The earth based operations will just lose the competition.

>You could use the energy needed for a rocket start to melt and seperate it from allmost any rock here on earth way easier.

good luck getting permit :)
by arter45 | 2026-01-24 09:42:38+00:00
Yes of course, but from a test perspective, this kind of mistake, given their configuration snippet and how they wrote the RCA, it seems to suggest they were simply diff-ing the initial and desired configs as any VCS would do (or, more likely, a Juniper “show|compare” command).

This didn’t catch the fact that removing that line essentially removed all conditions, allowing received routes to be re-advertised by the Miami router.

Communities are useful in this case, but this kind of thing could have happened with any kind of configuration.

Example:

(Before)

set firewall family inet filter FILTER NAME term TERM1 from source-address 10.10.10.1

set firewall family inet filter FILTER NAME term TERM1 from destination-port ssh

set firewall family inet filter FILTER NAME term TERM1 then discard

What happens when you remove references to 10.10.10.1, maybe because that IP is not blacklisted anymore? You’re simply removing one condition, leaving all ssh traffic to be discarded. That’s essentially what happened with the BGP outage, only here you have no BGP communities to save you.

That’s why I re-read the RCA, because this kind of incident is way more general than BGP-specific misconfigurations.
by Der_Einzige | 2026-01-24 09:42:50+00:00
The fact that a similar bug was left in GTA5 ON PURPOSE FOR YEARS (making load times for multiplayer like 10x what they should be) to get more people to see their shitty ads for currency is why I am somewhat sympathetic to people who think that we are all overpaid and deserve a solar flair to force us to actually do something useful.
by Gibbon1 | 2026-01-24 09:44:20+00:00
I have some firmware that runs an event loop. There is no malloc anywhere. But I do have an area which gets reset event handler after each call. Useful for passing objects up the call stack.

One other thing I tend to do anything that needs to live longer than the current call stack gets copied into a queue of some sort. I feel it's kinda doing manually what rusts borrow checker tries to enforce.
by indubioprorubik | 2026-01-24 09:45:20+00:00
Eh, no, the debt is not a problem, as long as the world is willing to pay the tax for the police and ordering institutions. The ruling empire is a defacto service provider- and the world taking and hoarding the dollar is basically allowing for the printing of endless debt, as long as the empire does its job. If it ceases to perform its job, the tax paid by buying and keeping currency reserves becomes worthless - and the debt realizes.

Thus can be concluded, the moment a empire acts only in self interest, abandoning all its services to the global public, the debt it holds becomes real.
by polyglotfacto | 2026-01-24 09:46:15+00:00
I'm not sure about what you mean with your first sentence in terms of product.

But in general, my guess at an answer(supported by the results of the experiment discussed on this thread), is that:

- GenAi left unsupervised cannot write a browser/engine, or any other complex software. What you end-up with is just chaos.

- A group of humans using GenAi and supervising it's output could write such an engine(or any other complex software), and in theory be more productive than a group of humans not using GenAi: the humans could focus on the conceptual bottlenecks, and the Ai could bang-out the features that require only the translation of already established architectural patterns.

When I write conceptual bottlenecks I don't mean standing in front of a whiteboard full of diagrams. What I mean is any work the gives proper meaning and functionality to the code: it can be at the level of an individual function, or the project as a whole. It can also be outside of the code itself, such as when you describe the desired behavior of (some part of) a program in TLA+.

For an example, see: https://medium.com/@polyglot_factotum/on-writing-with-ai-87c...
by Y-bar | 2026-01-24 09:46:17+00:00
240 grams is twice as heavy as for example an average minidisc player (https://www.minidisc.wiki/equipment/sony/portable/mz-g750) which could often weigh less than 100g.

The very first cassette Walkman was about 40 grams light: https://www.soundandvision.com/content/flashback-1979-sony-s...

The Rio MP3 player was 109 grams: https://arstechnica.com/gadgets/2016/10/diamond-rio-pmp300-m...

The classic Creative Nomad weighs in at 45g including battery: https://www.crutchfield.com/S-HglCxgxN2we/p_053NX128/Creativ...
by tialaramex | 2026-01-24 09:47:26+00:00
Because it's a metro service (some peak periods have 36 tph throughput), in most cases the answer will be that you should leave when you want to travel and then a train turns up and you board the train, so you don't need this information. But, the services may be disrupted or unavailable and that might mean you make different choices e.g. Victoria's main line was shut due to a One Under when I was there at Xmas, so I took a bus to a station that wasn't shut and continued the rest of my journey.
by jackzhuo | 2026-01-24 09:47:35+00:00
That resonates a lot with my experience.

I’ve found that discovering keywords is rarely the beginning of understanding a need. Knowing where people with that need actually are — and how they talk about the problem — seems much more important.

Even if you do find a viable keyword, SEO alone usually isn’t enough. You still have to talk to users, watch how they use (or don’t use) the solution, and iterate based on real feedback. Keywords feel more like a downstream artifact once you’re already deep in the context.
by EliRivers | 2026-01-24 09:50:47+00:00
Don't use standard library containers because we have our own containers that date back to before the STL was even stable.

Flashback to last job. Wrote their own containers. Opaque.

You ask for an item from it, you get back a void pointer. It's a pointer to the item. You ask for the previous, or the next, and you give back that void pointer (because it then goes through the data to find that one again, to know from where you want the next or previous) and get a different void pointer. No random access. You had to start with the special function which would give you the first item and go from there.

They screwed up the end, or the beginning, depending on what you were doing, so you wouldn't get back a null pointer if there was no next or previous. You had to separately check for that.

It was called an iterator, but it wasn't an iterator; an iterator is something for iterating over containers, but it didn't have actual iterators either.

When I opened it up, inside there was an actual container. Templated, so you could choose the real inside container. The default was a QList (as in Qt 4.7.4). The million line codebase contained no other uses; it was always just the default. They took a QList, and wrapped it inside a machine that only dealt in void pointers and stripped away almost all functionality, safety and ability to use std::algorithm

I suspect but cannot prove that the person who did this was a heavy C programmer in the 1980s. I do not know but suspect that this person first encountered variable data type containers that did this sort of thing (a search for "generic linked list in C" gives some ideas, for example) and when they had to move on to C++, learned just enough C++ to recreate what they were used to. And then made it the fundamental container class in millions of lines of code.
by TeMPOraL | 2026-01-24 09:50:55+00:00
Similar analogy, yes.

FWIW, I prefer my "little people on a chip" because this is a deliberate riff on SoC, aka. System on a Chip, aka. an actual component you put when designing computer systems. The implication being, when you design information processing systems, the box with "LLM" on it should go where you'd consider putting a box with "Person" on it, not where you'd put "Database" or any other software/hardware box.
by jackzhuo | 2026-01-24 09:52:26+00:00
This describes my situation almost exactly, and it’s what triggered my reflection.

I built a “product” starting from keywords, but then realized I didn’t actually know where the users were, or how to talk to them. There was no obvious place for real feedback.

Starting from keywords let me ship something, but it also meant I was missing the professional context around the problem — the deeper understanding you only get by being inside the system where the frustration exists.

In hindsight, I think I optimized for building something, not for being close to the problem itself.
by lozf | 2026-01-24 09:54:11+00:00
> unusual maps https://raildar.co.uk/map/KGX

Nice one, OpenRailTimes[0] is a similar style, but split in to smaller local sections by rail company and area.

I also like SignalBox[1] maps for their more traditional geographic layout, and for "less map -- more data", with accurate times that trains pass through stations and junctions, then RealTimeTrains[2] is hard to beat.

- [0]: https://www.opentraintimes.com/maps

- [1]: https://www.map.signalbox.io/

- [2]: https://www.realtimetrains.co.uk/
by TeMPOraL | 2026-01-24 09:55:45+00:00
Or octocat arms in this context?

Still, I meant that in the other direction: not request, but a gift/favor. "Guess culture" would be going out of your way to make the gift valuable for the receiver - matching what they need, and not generating extra burden. "Ask culture" would be like doing whatever's easiest that matches the explicit requirements, and throwing it over the fence.
by arcade79 | 2026-01-24 09:57:46+00:00
While reading this kind of articles, I'm always surprised by how small the storage described is. Given that Microsoft released their paper on LRCs in 2012, Google patented a bunch in 2010, facebook talked about their stuff around the 2010-2014 era too. CEPH started getting good erasure codes around 2016-2020.

Has any of the big ones released articles on their storage systems in the last 5-10 years?
by jackzhuo | 2026-01-24 09:58:42+00:00
I think this works well if you’re already a practitioner in a domain and have repeated exposure to its problems.

For many indie developers, though, that assumption doesn’t always hold. We’re often not domain experts, and starting purely from personal pain can be misleading if the pain isn’t shared or frequent enough.

In my experience, the challenge isn’t “starting from yourself” vs “starting from keywords”, but figuring out how to get close enough to a real problem space to develop that kind of insight in the first place.
by jaynamburi | 2026-01-24 09:59:32+00:00
Docker started as a simple, opinionated UX around Linux containers and became a product company wrapping an ecosystem that moved on without it.

The original breakthrough wasn’t containers themselves (LXC already existed), but the combination of: a reproducible image format, layered filesystem semantics, a simple CLI, and a registry model that made distribution trivial. That unlocked a whole workflow shift.

What happened next is that Docker the company tried to own the platform, while the industry standardized around the parts that mattered. The runtime split into containerd/runc, orchestration moved to Kubernetes, image specs went to OCI, and “Docker” became more of a developer UX brand than a core infrastructure primitive.

Today Docker mostly means:

A local dev environment (Docker Desktop)

A build UX (Dockerfile, buildx)

A compatibility layer over containerd

A commercial product with licensing constraints

Meanwhile, production container infrastructure largely bypasses Docker entirely.

That’s not failure it’s a common arc. Docker succeeded so well that it got standardized out of the critical path. What remains is a polished on ramp for developers, not the foundation of the container ecosystem.

In other words: Docker won the mindshare, lost the control, and pivoted to selling convenience.
Ask HN: How do you AI code from your phone?
by splitbrain | 2026-01-24 09:59:37+00:00
I would like to find a good way to use coding agents like claude or codex to code from my (Android) phone. But I can't find any tools that work.

What I tried:

An ssh terminal app on my phone. This works, but a TUI interface is far from what I would call "comfortable" on a mobile phone.

Happy Coder (happy.engineering) promises to be the solution but I found it rarely works reliably, it can't deal with claude's new question format and (judging from issues and discussions) seems a bit abandoned.

Ideally I would want something selfhosted with a mobile optimized web interface that let's me start different coding sessions (bonus points if each session runs in its own docker container). Important would be that I am not just being dropped into a console but that the interface is actually optimized for phone use.

What are you using to control coding agents on the go? Did I miss an obvious choice?
by bsaul | 2026-01-24 10:00:18+00:00
Is there a rational explanation on why there seems to be a HN article answering the weirdest questions i had in my mind just a few days ago ?
Only yesterday i wondered how did CPU performed division. I didn't ask or type anything about it. It was just in my mind. And now this.

Are we part of a collective mind ? Do social networks algorithms shape society that deeply that we all end up having about the same random thoughts ?

This is really scary in a way.
by userbinator | 2026-01-24 10:01:24+00:00
Even simpler, you can do something like this to have length-delimited AND null-terminated strings (written from memory, no guarantees of correctness etc.):

char *lenstrdup(char *s) {
int n = strlen(s);
char *p = malloc(n + sizeof(int) + 1);
if(p) {
strcpy(p + sizeof(int), s);
*(int*)p = n;
p += sizeof(int);
}
return p;
}

void lenstrfree(char *s) {
free(s-sizeof(int));
}
by arter45 | 2026-01-24 10:01:43+00:00
This specific outage is the equivalent of this scenario:

You have an if/then statement with N conditions in AND. You remove one condition, leaving the rest of the statement unchanged. What happens?

The answer is that if you remove one condition, your input (in this case routes) is more likely to match N-1 conditions than N, so more input is going to be processed according to the “then” clause.

The impact of course depends on the fact that these were BGP routes, advertised to the Internet,… but the problem itself is generic.

What can you do?

1) check this kind of if/then statements with special care, in order to analyze under which condition the input is processed by the “then” clause. This is exactly one of their followups [1]

2) consider adding “global”, catch-all policies acting as an additional safety net (if applicable)

3) test your changes not just syntactically. Set up a test environment with multiple routers, apply the configuration and see what happens.

[1] Adding automatic routing policy evaluation into our CI/CD pipelines that looks specifically for empty or erroneous policy terms
by rstuart4133 | 2026-01-24 10:01:44+00:00
> What I said in GP is that you can't verify WHAT you voted for AFTER the fact

Agreed, you can't prove you voted in a particular way in any system that prevents vote buying. I'm struggling to see why that is relevant to this discussion.

What Prêt à Voter does is allow you to confirm that your vote was counted accurately. Its magic is it does that without revealing how you voted. You've now read the paper and you didn't contest that, so I'm guessing you concede it's true.

My point above was the two claims you made, ie scanning a QR code in an app would somehow lead to integrity loss, and/or privacy loss in Prêt à Voter system are wrong. You don't seem to be contesting that either, so I guess you now concede they are indeed wrong.

You made those incorrect claims after I pointed out your earlier claim that checking your vote in a Prêt à Voter system is so difficult no-one would do it was also wrong, as it boils down to scanning a QR Code with an app. I guess you had to concede that is indeed pretty easy, so you invented those incorrect "facts" to prove scanning a QR Code couldn't work for other reasons. But it does work.

It's not a good track record, is it? One invented fact after another, all in an effort to prove end-to-end verifiable voting is somehow worse or less secure than our current paper systems.

That's also wrong of course, but worse than that many of our current systems aren't the "secret ballots cast in a secure polling place" system you are assuming we use. They are postal, or electronic, or worse the combination of the two we call internet voting. These electronic systems are particularly susceptible to wholesale attacks, and in my view they need something like Prêt à Voter to have a hope of being as secure as the old paper systems.

I will concede one thing. Personally I doubt in an election everyone thought was well run that many people would bother checking their vote was counted correctly, but that's not because it's hard, it's for the same reason we don't recount every paper ballot if it isn't close - why bother? But if there was a whiff of fraud in the air, it seems likely a lot of people would do the check, particularly if the Prêt à Voter receipt was recorded on their phone when they voted. That way they would not even have to scan a QR Code. They just feed the receipt to the checking app when the election results are published.
by TeMPOraL | 2026-01-24 10:03:12+00:00
FWIW, even in physical medium, artists have huge competition with "factory art", i.e. a lot of low-paid laborers creating paintings and drawings for cheap. Quantity, not quality, is the name of the game here - and this is the art that adorns all the offices and hallways around the world.

It's basically like GenAI, but running on protein substrate instead of silicon one.

And even in the digital realm, artists already spent the last decade+ competing with equivalent "factory art", too. Advertising stands on art, and most of that isn't commissioned, it's rented or bought for cheap from stock art providers, and a lot of supply there comes from people and organizations who specialize in producing art for them. The OG slop art, before AI.

EDIT: there's some irony here, in that people like to talk about how GenAI might (or might already be) start putting artists out of work. But I haven't seen anyone mention that the AI has already put slop creators out of work.