MurphyA/hacker-news huggingface dataset:
by dahart | 2025-05-17 15:52:00+00:00
Is it only 500 or 10, and nothing in between? You could have argued against 500 with the GP comment instead of countering with something that’s demonstrably untrue. I handed you the study you asked for.

Movies’ 24Hz is too slow, just watch a horizontal pan. 24Hz is good enough for slow things, but it was chosen that low for cost reasons, not because it’s the limit of perception. US TV’s 60hz interlace isn’t the limit either, which is also shown with horizontal pans. 60hz progressive looks different than 30hz, just watch YouTube or turn on frame interpolation on a modern TV.

The limit of meaningful motion tracking perception might be in the 100-200Hz range. The reason 500Hz is meaningful to gamers is, I think, because of latency rather than frequency. Video systems often have multiple frames of latency, so there actually is a perceptible difference to them between 60Hz and 500Hz.
by lerp-io | 2025-05-17 15:52:41+00:00
Aren't programmers supposed to build digital products for end users and this just makes it faster? more like POV from a person who got hired...EOD you need to think what you are doing for the bigger world and what the world can do for you because that is what your end user - your boss - is thinking. people just like to swim in their lane in their own little B2B world (i do X = i get Y) without ever stopping to think about anything except what is in front of them
by Fire-Dragon-DoL | 2025-05-17 15:53:56+00:00
The 3 biggest companies in the world are all 3 software companies. I guess you could consider Apple a hardware company, that leaves us with 2, but the appstore is an enormous source of revenue for Apple, so there is that.

I guess "selling software" in my mind doesn't necessarily means a traditional transaction, so that's probably the source of disagreement.

Yes, to me selling software is very much broken for the consumer. The fact that selling software for indie devs is hard doesn't justify that, selling to end users is hard in many businesses. In businesses, software is everywhere though
by navaed01 | 2025-05-17 15:54:03+00:00
“Metrics: We combine user metrics and offline eval metrics, and employ both human and automated evaluation, particularly using LLM-as-a-judge techniques”.

I’m curious to know what people are doing to measure whether the customer got what they were looking for. Thumbs up/down seems insufficient to me.

The ability of the LLM to perform purely depends on having good knowledge of what is going to get asked and how, which is more complex than it sounds

What techniques are people having success with?
by GuB-42 | 2025-05-17 15:54:33+00:00
The banking system in Japan is homogeneously terrible ;)

One reason for the success of IC cards as electronic wallets is because what banks offer is so inconvenient.

But really, what works in Japan is cash. You are the odd one for paying electronically.

It is slowly changing though. You can almost go cashless now. 10 years ago, cards were mostly just for withdrawals. 20 years ago, good luck finding an ATM that accepts your card. Personal experience, in 2005, we spent half a day finding one, in Tokyo.

As for being "high trust", it is certainly not as a foreigner, trying to do business in Japan. The "high trust" part is more about petty crime being really low, so you can leave your bag unattended in a café and it will still be there when you get back, in fact, it is a common way of "reserving" a table.
by eduction | 2025-05-17 15:54:34+00:00
? Babashka is just Clojure, language wise. It lacks the ability to import arbitrary Java libs due to Graal, similarly no runtime type creation (deftype), and does not support the core async library’s go macro (maps it to thread).

I have not heard it called a dialect though. It’s not 100% vanilla jvm clojure but the omitted capabilities are just precisely those things you’d expect from using Graal. https://github.com/babashka/babashka?tab=readme-ov-file#diff...
by neRok | 2025-05-17 15:56:01+00:00
[Going to give myself a self-reply here, but what-ev's. This is how I talk to chat-gpt, FYI]... So I happened to be shopping for a cheap used car recently, and we have these ~15 year old Ford SUV's in Aus that are comfortable, but heavy and thirsty. Also, they come in AWD and RWD versions. So I had a thought bubble about using an AWD "gearbox" in a RWD vehicle whilst connecting an electric motor to the AWD front "output", so that it could work as an assist. Here was my first question to chat-gpt about it;

> I'm wondering if it would be beneficial to add an electric-assist motor to an existing petrol vehicle. There are some 2010 era SUV's that have relatively uneconomical petrol engines, which may be good candidates. That is because some of them are RWD, whilst some are AWD. The AWD gearbox and transfer case could be fitted to the RWD, leaving the transfers front "output" unconnected. Could an electric motor then be connected to this shaft, hence making it an input?

It gave a decent answer, but it was focused on the "front diff" and "front driveshaft" and stuff like that. It hadn't quite grasped what I was implying, although it knew what it was talking about! It brought up various things that I knew were relevant (the "domain knowledge" aspect), so I brought some of those things in my reply (like about the viscous coupling and torque split);

> I mentioned the AWD gearbox+transfer into a RWD-only vehicle, thus keeping it RWD only. Thus both petrol+electric would be "driving" at the same time, but I imagine the electric would reduce the effort required from the petrol. The transfer case is a simple "differential" type, without any control or viscous couplings or anything - just simple gear ratio differences that normally torque-split 35% to the front and 65% to the rear. So I imagine the open-differential would handle the 2 different input speeds could "combine" to 1 output?

That was enough to "fix" its answer (see below). And IMO, it was a good answer!

I'm posting this because I read a thread on here yesterday/2-days-ago about people stuggling with their AI's context/conversation getting "poisoned" (their word). So whilst I don't use AI that much, I also haven't had issue with it, and maybe that's because of that way I converse with it?

---------

"Edit": Well, the conversation was too long for HN, so I put it here - https://gist.github.com/neRok00/53e97988e1a3e41f3a688a75fe3b...
by mnahkies | 2025-05-17 15:56:13+00:00
The worst / most amusing example of this I've seen in the wild was a third party line of business application that was sequentially triaging "pending tasks" to assign priority/to workers.

Our cloud provider had an aircon/overheating incident in the region we were using, and after it was resolved network latency between the database and application increased by a few milliseconds. Turns out if you multiply that by a few million/fast arrival rate you get a significant amount of time, and the pending tasks queue backs up causing the high priority tasks to be delayed.

Based on the traces we had it looked like a classic case of "ORM made it easy to do it this way, and it works fine until it doesn't" but was unfortunately out of our control being a third party product.

If they'd fetched/processed batches of tasks from the database instead I'm confident it wouldn't have been an issue.
by drob518 | 2025-05-17 15:57:56+00:00
Hmmm. Seems like he’s optimizing clarity of thought, first. The performance gain just comes along for the ride. If I were to summarize the article, I’d say that it’s advocating a pattern where you write code where higher layers decide what needs to be done and then lower layers do it, using a combination of straight line code and simple loops, with little to no further conditionality. Obviously, that represents an ideal.
by Waterluvian | 2025-05-17 15:58:18+00:00
My weird mental model: You have a tree of possible states/program flow. Conditions prune the tree. Prune the tree as early as possible so that you have to do work on fewer branches.

Don’t meticulously evaluate and potentially prune every single branch, only to find you have to prune the whole limb anyways.

Or even weirder: conditionals are about figuring out what work doesn’t need to be done. Loops are the “work.”

Ultimately I want my functions to be about one thing: walking the program tree or doing work.
by gnramires | 2025-05-17 15:58:55+00:00
I think we shouldn't[1] be making Operating Systems, per se, but something like Operating Environments.

An Operating Environment (OE) would be a new interface, maybe shell and APIs to access file systems, devices, libraries and such -- possibly one that can be just launched as an application in your host OS. That way you can reuse all facilities provided by the host OS and present them in new, maybe more convenient ways. I guess Emacs is a sort of Operating Environment, as browsers as well. 'Fantasy computers' are also Operating Environments, like pico-8, mini micro[2], uxn, etc..

Of course, if you really have great a low-level reason to reinvent the way things are done (maybe to improve security, efficiency, DX, or all of that), then go ahead :)

The main reasons is the difficulty in developing robust low-level systems like file systems, the large number of processors you may want to support, and also creating or porting a huge number of device drivers. At this point Linux for example supports a huge number of devices (of course you could use some sort of compatibility layer). Also, developing a new UX is very different from developing a new low-level architecture (and you can just plug the UX into existing OSes).

In most cases an OS shell (and an OE), from the user point of view, is "just" a good way of finding and launching applications. Maybe a way of finding and managing files if you count the file manager in. It shouldn't get too much in the way and be the center of attention, I guess. (This contrasts with its low level design, which has a large number functions, APIs, etc.). But also it should probably be (in different contexts) cozy, comfortable, beautiful, etc. (because why not?). A nice advanced feature is the ability to automate things and run commands programmatically, which command shells tend to have by default but are more lacking in graphical shells. And I'm sure there is still a lot to explore in OS UX...

[1] I mean, unless you really have a reason with all caveats in mind of course.

[2] https://miniscript.org/MiniMicro/index.html#about
by nfw2 | 2025-05-17 15:59:02+00:00
The performance gap of running a for loop inside or outside a function call is negligible in most real usage.

The premise that you can define best patterns like this, removed from context with toy words like frobnicate, is flawed. You should abstract your code in such a way that the operations contained are clearly intuited by the names and parameters of the abstraction boundaries. Managing cognitive load >>> nickle and dime-ing performance in most cases.
by kirici | 2025-05-17 15:59:42+00:00
I've recently returned from a trip across the country and liked everything about my (physical) ICOCA card, except that the machines used to charge it, at least the ones I've found, only accepted cash.

After charging it once with a decent balance though, I got away (almost) entirely without cash using it in combination with a virtual credit card via NFC, save for street food carts and Gachapon machines.
by rgblambda | 2025-05-17 16:00:34+00:00
I've noticed this a lot with anti-BBC folks. They have some ideological issue with it but that isn't a popular position so they go for more niche arguments like "The entire historical catalogue isn't fully available to watch on demand" or "They axed BBC <insert number> from broadcast". Arguments they don't actually care about. It's just a way to snipe at the BBC.

As you've pointed out, if someone loves being able to watch BBC Four on broadcast TV, they're not going to be complaining about it's non existent axing.
by mdaniel | 2025-05-17 16:01:23+00:00
> but it's a lot easier for me to hack on Rust projects

That static typing is nice, I wonder if it's going to catch on one day.

The amount of energy spent trying to bend dynamically types languages into being real ones is just comical. Even the standard library is barely typed, so they give no fucks https://github.com/python/cpython/blob/v3.13.3/Lib/re/__init...

What does it accept? Who knows. What does it return? Don't worry about it
by snowwrestler | 2025-05-17 16:01:38+00:00
In a modern company, every department is a cost center and only the CFO reports profit. This structure is part of Apple’s success, for example.

The idea of “cost center” vs “profit center” is an outdated holdover from a Jack-Welch-style conglomerate approach to management where departments are pitted against each other. As the other commenter implies, it’s a great way to starve R&D. It’s also a great way to create silo’d, fractured operations.

In contrast, a unified approach to managing the business encourages collaboration and complementary decision making. It also reduces the opportunity for internal politics to distort decisions. Specifically it takes sales out of the driver’s seat, a place they previously accidentally found themselves by virtue of being “the profit center.”

I agree that every employee should be able to articulate how their work creates value. But that’s not the same thing as getting out of a “cost center.”
by liugongqx | 2025-05-17 16:02:16+00:00
I am obseesed comparing different routes from GPS for EACH trip. Long or short. Bragging to my wife how much time I saved.

She doesn't use GPS. Guess what, she alwayes beats me.

My Guess: 1. Algorithem does not favor me 2. Monitor GPS adds unsensible distraction and pressure which reduces action smoothness compare to brain driven actions.
by avianlyric | 2025-05-17 16:02:41+00:00
You’ve kind of answered your own question here.

> If you push that conditional out to the caller, now every caller of your function has to individually make sure they call it in the right way to get a guarantee of idempotency

In this situation your function is no longer idempotent, so you obviously can’t provide the guarantee. But quite frankly, if you’re having to resort to making individual functions implement state management to provide idempotency, then I suspect you’re doing something very odd, and have way too much logic happening inside a single function.

Idempotent code tends to fall into two distinct camps:

1. Code that’s inherently idempotent because the data model and operations being performed are inherently idempotent. I.e. your either performing stateless operations, or you’re performing “PUT” style operations where in the input data contains all the state the needs to be written.

2. Code that’s performing more complex business operations where you’re creating an idempotent abstraction by either performing rollbacks, or providing some kind of atomic apply abstraction that ensures partial failures don’t result in corrupted state.

For point 1, you shouldn’t be checking for order of operations, because it doesn’t matter. Everything is inherently idempotent, just perform the operations again.

For point 2, there is no simple abstraction you can apply. You need to have something record the desired operation, then ensure it either completes or fails. And once that happens, ensures that completion or failure is persistent permanently. But that kind of logic is not the kind of thing you put into a function and compose with other operations.
by lylejantzi3rd | 2025-05-17 16:03:21+00:00
You can mitigate some of that with web workers, but it's a shame that multiple websites can't share a python runtime the same way they can on a shared linux box. You have to download a separate one for every website that uses it. But, if you follow that train of thought to the end, you wind up with the browser itself bundling those runtimes, just like it did with Flash back in the day.

I'm not sure any of this would be an improvement over what we have now.
by notahacker | 2025-05-17 16:03:22+00:00
The licence was introduced when television sets were an exotic luxury so adding it to the tax rises used to pay for the NHS wasn't the obvious move for a Labour government. Radio licenses existed before the NHS or most other benefits were a thing.

As for why it hasn't been abolished like the radio licence... well any government that does that loses the ability to indirectly threaten it when they don't like the tone of the nation's most watched news channel by muttering darkly about how it's iniquitous funding model needs abolishing, and gets blamed for the changes people don't like.
by whatifitoldyou | 2025-05-17 16:04:44+00:00
Problem is syncthing already lost that access. https://forum.syncthing.net/t/discontinuing-syncthing-androi... I was browsing this thread to try to find a workaround. There seems to be a fork that you either have to install through fdroid or as an apk. https://github.com/Catfriend1/syncthing-android/issues/1149#...
by jll29 | 2025-05-17 16:05:49+00:00
Oberon-2 -> C compiler ====================== (release 0.17.2) 220 LEX source files (scanner for lexical analysis) src/*.l 4,192 YACC source files (parser for syntactic and semantic analysis and part of code generation) src/*.y 809 C header files (misc. definitions and interfaces) src/*.h 9,197 C implementation code files (main driver, command line handling, symbol table, other auxiliary data types and runtime system/library implementation) src/*.c 707 build, install, and test scripts (sh) ------ 15,125 < 16K LOC ====== (+6,299 lines of Oberon-2 test code)

Such a very compact code base! Oberon-2 may never have reached the distribution that Pascal had (which was an issue of timing as well due to influential distributions like P-System Pascal and Borland Turbo-Pascal/Delphi), but it's a great exercise in minimalism.
by thinkxl | 2025-05-17 16:05:54+00:00
I think using Aider[1] with Google's models is the closest.

It's my daily driver so far. I switch between the Claude and Gemini models depending on the type of work I'm doing. When I know exactly what I want, I use Claude. When I'm experimenting and discovering, I use Gemini.

[1]: https://aider.chat/docs/llms/gemini.html
by Aurornis | 2025-05-17 16:06:11+00:00
> hackable, local connection devices (cloud optional) with published APIs and sell them at a higher price

This business model doesn’t work.

Many have had this idea. They all run into the same problem: The target audience for hackable home automation devices doesn’t like paying a premium for anything they think they could DIY.

If you have a $70 nicely designed, documented IoT sensor but the DIY home automation people think they can put ESPHome on a $10 Amazon device and accomplish nearly the same thing, which one do are they going to buy?

If you go through the forums you can already find some semi-premium devices that are a little better constructed and might have better feature sets. They’re always followed by comments from people recommending a cheaper option.
by lynndotpy | 2025-05-17 16:07:41+00:00
Static typing is a big one, but I've been so steeped in Python that I don't appreciate it as much as maybe I should.

The big thing for me is that most Rust projects are statically(ish) compiled (like go) and only need a `cargo build`. No venvs or pip commands or node/npm/nvm or make, etc.
by RHSeeger | 2025-05-17 16:10:04+00:00
> if women are being disproportionally affected, then clearly either there's some kind of bias in the process, which should simply be fixed instead of disbanding the whole process, or women are simply less skilled at dealing with situations like this and need more help

Or they're more comfortable breaking that particular law (under the same conditions). I'm not saying that _is_ the case, but it is one of the possibilities.
by lotsofpulp | 2025-05-17 16:10:32+00:00
Obtaining information from potentially interactive websites is better in every way than via TV. It’s obsolete technology.

Therefore, the BBC needs to transition to a website that happens to send signals out via TV for legacy users, but primarily, it’s competing with TikTok/Youtube/Khan Academy/Instagram/Whatsapp/Reddit/Disney/Comcast/Netflix/Sony/WarnerBros Discovery/etc. They all compete with each other, globally.

BBC sells minutes of entertainment/education/etc, and there are a fixed number of minutes in a day.
by setr | 2025-05-17 16:10:35+00:00
If you’ve massaged and normalized the data at entry, then the assumptions at core logic should be well defined — it’s whatever the rules of the normalized output are.

You don’t need to know all of the call chains because you’ve established a “narrow waist” where ideally all things have been made clear, and errors have been handled or scoped. So you only need to know the call chain from entry point to narrow waist, and separately narrow waist till end.
by vdupras | 2025-05-17 16:12:08+00:00
Not to brag -- hum, ok, YES, to brag --, but Dusk's Oberon compiler[1][2] is less than 1500 lines of Forth code and it compiles directly to native code (no transpiling to C). Yes, Oberon is simple.

[1]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/co...

[2]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/comp/o...
by mathek | 2025-05-17 16:13:01+00:00
Tasks seem not to work indeed, but spawning processes works. Try

Enum.map(1..10, fn _i -> spawn(fn -> IO.puts("new process") end) end)

Also, there are two scenarios: compiling code in the browser and running it, and running precompiled code in the browser. In the latter case more things work, for example the 'game of life' example uses GenServers, Supervisors and Registry:

https://popcorn.swmansion.com/game_of_life/

https://github.com/software-mansion/popcorn/tree/main/exampl...

But yes, it's still unstable. Improving the stability is our main focus right now.
by giancarlostoro | 2025-05-17 16:13:34+00:00
Google worried it cant control how [insert name of any foreign country] could use their cloud infrastructure.

I mean I understand the concerns but they are the same of us giving any other country cloud infrastructure tooling, which doesn't just magically happen to just any country to be fair.

If its not Google then it will be any defense contractors and cloud provider that just wants to print dollar bills.
by alephnerd | 2025-05-17 16:13:38+00:00
> it’s a great way to starve R&D

R&D can show proof of direct customer value, or a path to generating customer value.

Managing compute infra for a pharma company or an accounting department calculating deferred revenue for a tech company does not, hence why software spend is low in pharma companies and accounting related roles tend to be contracted out in tech companies.

> The idea of “cost center” vs “profit center” is an outdated holdover from a Jack-Welch-style conglomerate approach to management where departments are pitted against each other

Every company has a finite amount of budget, and every function is arguably as important as the other. You need to prioritize.

Every dollar spent by a pharma company on compute is arguably a dollar that could be directly attached to IP generation. Similarly, every dollar spent on an accounting team in a tech company is a dollar lost thet could be attached to software R&D.

> a unified approach to managing the business encourages collaboration and complementary decision making

I absolutely agree, but people on HN need to realize that depending on the industry, software is lower on the hierarchy of needs. And this is why it's best as a SWE to target tech-first companies or move geos to work in a tech cluster.
by fmbb | 2025-05-17 16:13:40+00:00
The ”core logic” of a program is what output it yields for a given input.

If you find a bug, you find it because you discover that a given input does not lead to the expected output.

You have to find all those ifs in your code because one of them is wrong (probably in combination with a couple of others).

If you push all your conditionals up as close to the input as possible, your hunt will be shorter, and fixing will be easier.