MurphyA/hacker-news huggingface dataset:
by zbentley | 2025-08-05 10:57:36+00:00
I'm mostly just surprised that the doctor didn't lock the workstation when they left the room. Especially if it was a radiology workstation (rather than e.g. exam room EMR workstations); the sensitive data risk from leaving it unlocked is huge!

Like, I'm not saying that'd solve computer security or anything, someone could still break into a locked computer. But it would definitely raise the level of effort required to access medical data up from "has a flash drive and five minutes".

I'm sure doctors get the same lock-your-workstation trainings as the rest of us, and ignore them about as often. I wonder if smartcards would be appropriate here: since doctors are typically jumping between lots of "thin-client equivalent" computers around their practice all day, could we give them smartcards that need to be physically inserted in computers in order to log in? Pull the card, computer logs you out; don't forget your card in the exam room or you can't log into the next one.

Like, I'm sure they'd have tantrums (any kind of users would, at this transition), but putting that aside: this kind of system is technically cheap and has been well-supported for decades. Would the overhead of employing it at medical practices be preventative? Is it already employed at some practices? How does it work there?
by Mordisquitos | 2025-08-05 10:57:53+00:00
The firebombing of Tokyo[0] on 10 March 1945 is often considered even more destructive and lethal than either of the nuclear bombings of Hiroshima and Nagasaki, or at the very least in the same ballpark. However, popular discourse never treats it as a crime against humanity.

What is the qualitative difference between the killing 100,000 Japanese civilians in one morning using an atomic bomb and the killing 100,000 Japanese civilians in one night using explosive and incendiary devices?

[0] https://en.wikipedia.org/wiki/Bombing_of_Tokyo_(10_March_194...
by vouaobrasil | 2025-08-05 10:58:35+00:00
Your assumption is incorrect, because the article doesn't say "the goal is to bond people who overstay their visa frequently." (quoted from you). It says (quoted from article):

"to impose bonds on visitors from countries with high rates of visa overstays"

Quite different, as the latter means it applies to people who don't overstay their visas, but who have a great many fellow citizens who overstay their visas.
by Tohsig | 2025-08-05 10:59:39+00:00
I suspect it's too early to make predictions about which languages are going to become dominant moving forward, but in my experience robust type systems do seem to improve the accuracy of responses that I get from the various LLMs. I've been writing JS/TS for over a little over a decade now and am regularly impressed with what the best of the current crop of models can turn out. I'm not just seeing decent TS code but also decent explanations as to why the model went one direction vs. another. I'm sure that's at least partially thanks to the sheer quantity of JS/TS code that's out there.

I contrast that with the responses I get back from the LLMs for Elixir. I'm currently learning Elixir/Phoenix/Ash for a personal project. Absolutely loving that environment, but I'm seeing a much lower level of accuracy from the models. Basic questions about Elixir syntax and best practices are usually fine, but with anything more complex the responses are often more of a hinderance.

Phoenix, Ash, and Elixir itself are so well documented that the inaccurate LLM responses aren't slowing me down overall, but I'm very curious about whether the underlying issue has more to do with Elixir itself or just the amount of sample code that's in the wild.
by promiseofbeans | 2025-08-05 11:00:39+00:00
I disagree - JavaScript is the most used programming language in the world, and were I a betting man I'd happily wager client JS is still a much bigger share of that than server.

Yes, there have been a lot of advances in modern JS for things like atomics and other fun memory stuff, but that's just the natrual progression for a language as popular as JS. The 3 main JS engines are still developed primarily for web browsers, and web developers are the primary audience considered in ES language discussions (although I'll concede that in recent years server runtimes have been considered more and more)
by dash2 | 2025-08-05 11:00:56+00:00
One example is that elite families before the Chinese revolution became elite again after the Deng reforms, even though the revolution itself was so redistributive (and repressive) that they became poorer than average during the revolutionary period: https://www.nber.org/system/files/working_papers/w27053/revi...

Other reasons are the specific predictions that a genetic explanation makes (exactly 50% contribution from males and females) which Greg Clark argues are borne out by the data; and the persistence through very different social regimes over long historical periods.

I should say that not everyone agrees, and this is just scraping the surface of the debate.
by Synaesthesia | 2025-08-05 11:01:20+00:00
Targeting civilians is a war crime. No excuse for that.

Targeting civilians in places like Tokyo or Dresden didn't even help the war cause much. The Soviet Union defeated the Nazis without mass bombings of German cities.

Yes war is the supreme crime and what we should avoid in the first place. Still there are different ways you can conduct war.

A nuclear exchange would necessarily target civilians and be unlike anything before in history. It's a nightmare scenario that has to be opposed at all cost.
by kijin | 2025-08-05 11:01:23+00:00
The backslash is universally reserved as an escape character.

It was decided almost 20 years ago so I'm totally used to it and there's no point arguing about it anymore. But the decision to reuse the backslash as a namespace separator still causes inconvenience from time to time. For example, when you write PSR-4 configuration in composer.json, all the backslashes need to be doubled, including (and especially!) the trailing backslash.
by mrweasel | 2025-08-05 11:02:00+00:00
I have to admit I don't like customizing tools like tmux too much. Personally I prefer to just learn and live with the defaults. That mean losing out on some things, but I think it's a good trade off for having thing just work like you expect on random server you sign in to.

Especially something like keyboard shortcuts and leader keys doesn't make sense to change in my mind. It just confuses you when login in to a remote host.
by mort96 | 2025-08-05 11:02:07+00:00
I just searched for uBlock. Top result is an ad for another ad blocker. Second result is an ad blocker called "Ublock", with "Origin" in its tags; a clear scam whose purpose is to leech off the reputation of uBlock Origin and trick people.

Apple's App Store is chock full of scams like this. It's not just bad search, it's a failure to enforce any kind of anti scam policy (combined with seemingly intentionally terrible search).
by akagusu | 2025-08-05 11:02:15+00:00
> it feels like a weak excuse for "fuck the customer" as always.

Of course it is just an excuse to "fuck the customer" and grab the money, but it is not something you should question, because in our society you don't question how companies make money.

And it doesn't matter if you are the offended part, people will just protect the state of affairs,even at their own expense.

Just look how people always find a justification for this crap and look how you are being downvoted for pointing another one.
by Wilder7977 | 2025-08-05 11:03:03+00:00
You can repeat it, but we fundamentally disagree, it's not a matter of understanding.

Fundamentally it's not true that the moment I publish something on the internet, I lose control of who can consume my intellectual property. Licensing, for example, is a way we regulate the way that code or prose can be consumed even if public.

Also expressing my consent is not in any way a way to control others, is a way to control my ideas, my writing, my [whatever] and people are not automatically entitled to it because it's published on the internet.

So overall I understand your position, but I so much disagree with it.
by sumeetdas | 2025-08-05 11:03:21+00:00
The first typed programming language where I've seen pipe operator |> in action was in F#. You can write something like:

sum 1 2 |> multiply 3

and it works because |> pushes the output of the left expression as the last parameter into the right-hand function. multiply has to be defined as:

let multiply b c = b \* c

so that b becomes 3, and c receives the result of sum 1 2.

RHS can also be a lambda too:

sum 1 2 |> (fun x -> multiply 3 x)

|> is not a syntactic sugar but is actually defined in the standard library as:

let (|>) x f = f x

For function composition, F# provides >> (forward composition) and << (backward composition), defined respectively as:

let (>>) f g x = g (f x) let (<<) f g x = f (g x)

We can use them to build reusable composed functions:

let add1 x = x + 1 let multiply2 x = x \* 2 let composed = add1 >> multiply2

F# is a beautiful language. Sad that M$ stopped investing into this language long back and there's not much interest in (typed) functional programming languages in general.
by gwd | 2025-08-05 11:03:24+00:00
> That is an important insight. It is not so much which method gets you to learn more when used for a given amount of time. It is probably more about which method is fun to use, and engages you and thus actually gets used.

Yeah, you hear this a lot on Fitness YouTube -- the best workout is the one you actually do. With language, it's all about practice -- the best study method is the one you actually do.
by OtherShrezzing | 2025-08-05 11:04:01+00:00
>Is it really most disasters as in more than 50%?

This is an absolute minefield of statistics to get into. 90% of all disasters are influenceable by climate change (not an earthquake or volcanic eruption for example). Of that 90%, almost all are currently exacerbated - either in scope, size, or frequency- by climate change.

The IPCC releases a fairly accessible 20 page summary [0], including high-quality citations, and levels-of-confidence. That document gives a good overview of the scale of this problem. It's not reasonable to say that there are 100% more disasters now than there were before anthropogenic climate change. It is reasonable to say that >50% of natural disasters are noticeably exacerbated by anthropogenic climate change.

[0] https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6...
by delusional | 2025-08-05 11:04:26+00:00
> So they will rightfully advise business operations adapt to the ERP template, rather than the other way around. They know full well in advance you will end up not following that advice as the changes would be enormous and lost functionality as compared to the previous system

There's an additional catch to that old argument as well. If you actually do what they say, and stick to all the templates. Well guess what, they're all going to change with next update as well and now you need to change all your business processes at the same cadence as they happen to update their software. You still have to adapt to the changes of the system, it's just not the IT departments problem.
by xorcist | 2025-08-05 11:04:35+00:00
There's also the issue of having a dozen moving parts form the system, each developed for their own reasons. So you could find that upgrading one product changes something, say collation for utf-16, which might be entirely reasonable taken in isolation but that the rest of the system is unprepared for.

It is up to you to fend off dozens of small things. Over time that accumulates. It's like python programmers using two dozen pypi dependencies because they've heard nih is bad. Or think nodejs if that's your thing. What you do in practice is you freeze everything in place and then you postpone it all for an increasingly indefinite future. Organizations then periodically need to freeze work for weeks or even months at a time just to keep up with dependencies. This is clearly a lot of work.

Terraform, or even better Ansible, is a good choice to document make those changes over time in a standardized way. But it doesn't make the work go away. The work is there and still has to be done. Those tools also clearly suffers from the same many-moving-parts problem, as soon as you include external modules with their dependencies too, so you have take care not to magnify the problem by accident instead.

This is what system admins and integrators do all day. They will tell you in unison that the best integration is the one that doesn't exist.
Show HN: I built an app that turns any image into 5-step pencil drawing practice
by roughike | 2025-08-05 11:04:45+00:00
Hey all!

My girlfriend is really good at drawing and wants to become an illustrator for children's books, so she's practicing drawing various animals.

We were at a cafe and she got stuck staring at a blank page trying to draw a fox using a reference photo. So I generated some pencil sketches from the reference image with ChatGPT. Seeing the drawing broken down step by step made it easier to start for her.

The next day she asked me to generate sketches for 10 more photos, so I decided to polish my prompts and wrap the workflow in a self-service app for her.

The app allows you to upload any image and it generates 5 pencil sketches from the uploaded image, from basic shapes to a fully detailed pencil sketch.

https://restoftheowl.app
by flyinglizard | 2025-08-05 11:05:49+00:00
On that line, it's a good idea to optimize for the integral of business value delivered. It's better to deliver something partial and hack-y quickly so the business can start enjoying it rather than delivering all at once. Not to mention the invaluable interim feedback gathered from your users in the meantime.

Also, it's not enough to build something; you need to make sure people are using it, and using it right, or else you leave value on the table. Run trainings, monitor user engagement, talk to your users. Make sure what you built is used to its full potential and delivers the maximal impact.
by vessenes | 2025-08-05 11:08:02+00:00
This is super creative. For those who like to reduce their experiences of fun cool stuff, I’ll describe it: Implement a line drawing-on-2D algorithm that maintains geometry on a particular 2d view. Run each of your source images for a Gaussian splat through the line drawing tool. Use those 2d line images to make your splat.

Result: a 3d scene that can be posed and shows as a 2d line illustration.

I like a lot of things about this, but mostly I like the facility demonstrated here, and the experimentation. So many interesting things to do are in hobbyist reach right now, it’s kind of breathtaking.
by WASDAai | 2025-08-05 11:09:14+00:00
This paper dives into how humans and AI might split tasks in future workflows, modeling it as a repeating delegation process that settles into a stable setup where each job goes to whoever has the edge. Using math from lattice theory, it proves there’s always at least one such balanced point and spells out when it’s the only one, while a continuous version shows the steady-state automation level as x* = α / (α + β), with α as automation speed and β as the flow of new human-focused tasks, meaning full robot takeover is off the table if β stays positive. It tests this across three dynamic scenarios like discrete updates, evolutionary dynamics, and a beta-distributed task range, all landing on the same hybrid outcome, plus simulations from 2025 to 2045 forecast automation jumping from 10% to 65%, still leaving humans about a third of the work in a fresh role as workflow orchestrators. Wrapping up, it touches on boosts for skills, better benchmarks, and AI rules to push human-AI partnerships for max benefits.
by raphman | 2025-08-05 11:09:48+00:00
I have been teaching CS at German universities for close to two decades now.

> AFAIK this was because under the old system, there had been too many students registering for exams despite being woefully unprepared, and then predictably failing as a result.

True. That's the real Dunning-Kruger problem: incompetent people do not know how much help they need to get competent. It is our job to show them their weaknesses as early as possible so that they can effectively work on them.

(I believe that state-funded universities (as in Germany) have some obligation to not only educate the self-motivated top 1% but also offer a solid education even for less perfect students - at least if there is a societal need for their competences.)

Another, more important, reason is that written exams are not good tests of programming competence - especially as tasks and frameworks get more complex. We want to assign good grades to students who are competent at developing software in realistic settings, not in highly artificial exam settings.
by robviren | 2025-08-05 11:11:19+00:00
Python and Typescript/JavaScript I largely agree. Those languages frequently top the list of most used languages with probably the most code represented in the popular foundation models. Even though Python has shifted over time the sheer number of examples models have access to makes it more robust than most other languages.

I am less convinced Rust belongs in the list. Rust is far behind the number of examples the large models have access to, the syntax is fairly ham handed, and I don't feel the library story is as strong as with python (though probably on equal footing with JavaScript). My two cents on Rust and LLM compatibility.

If I had to add a third I would pick Go. Guaranteed backwards compatibility, robust and frequently used standard library, rigidly enforced format, and a wonderful type system. Though I actually don't know that for training purposes having perfectly formatted code is actually a good thing. Ironically a more pythonic coding where you can kind of do whatever stretches the models understanding better making it more robust, from what I understand.
by gampleman | 2025-08-05 11:12:22+00:00
> No replacer or space arguments: Providing a replacer function or a space/gap argument for pretty-printing are features handled exclusively by the general-purpose path. The fast path is designed for compact, non-transformed serialization.

Do we get this even if you call `JSON.stringify(data, null, 0)`? Or do the arguments literally have to be undefined?
by akdor1154 | 2025-08-05 11:12:48+00:00
> for some reason the expectation for LLMs is hands-off work

The expectation is the same as the expectation for self driving: users expect it to be fully hands off, even when they are explicitly told they need to keep their hands on the wheel.

This is because it's tricky, tedious, and unejoyable to thouroughly vet the actions of a machine in realtime.
by tristramb | 2025-08-05 11:12:48+00:00
I agree with you in that decisions like this are always the outcome of multiple forces pushing different ways. But I would lean more to thinking it would have been very difficult for Trueman to have not ordered the use of the bombs.

It would have been electoral suicide because of the extra US casualties.

It would probably have led to the partition of Japan as well as Korea, leading to problems for the US in the post-war world. Although the Iron Curtain didn't descend till a few years later, by 1945, the USSR was already being very possessive about countries in Eastern Europe. Trueman was more aware of the dangers posed by the USSR that Roosevelt had been.

Just because a country had been defeated, it doesn't mean the government will surrender. Nazi Germany was effectively defeated with Bagration and the breakout from Normandy in 1944 but their government fought on to the bitter end. (In a way, the V1 and V2 missile programs did benefit Germany because they drained off resources which would otherwise have prolonged the war and allowed the use of the atom bomb on Berlin.)

And rushing to finish a war to minimise the influence of one party on the peace negotiations did have a precedent. It was what the French and British did at the end of WW1 to prevent the US from dominating the peace process. (But that didn't turn out very well.)

I think things like this would have been in Trueman's mind when he made the descision.
by sgjohnson | 2025-08-05 11:13:32+00:00
bool IsPrivateIp(uint32_t x) {

return (x >> 24) == 10 /* 10.0.0.0/8 */ || (x & 0xfff00000) == 0xac100000 /* 172.16.0.0/12 */ || (x & 0xffff0000) == 0xc0a80000 /* 192.168.0.0/16 */;

}

the code doesn't consider 127.0.0.0/8 as "private". I'm curious about 10.0.0.0/8 though.*
by delusional | 2025-08-05 11:13:37+00:00
I've been thinking about something similar. I think there's a market for "local handmade software" in cases like that, where a software developer can come in and build a little system tailored to a specific problem they have.

My dad has been a solo fabricator for most of my life, and what has always struck me was the way people came to him with jobs. Sometimes they'd show up with drawings and detailed designs, but mostly they'd just ask him to come look at something (or bring a photo), and describe the problem. He doesn't know CAD, so the drawings he makes are mostly just on napkins. The customers quite literally didn't know what they were getting before they got it, but that is fine, because they don't know what they want either.

I wonder if there's an analogue to that for software. A freelance local software developer these small businesses could go to if they had a process problem they'd like to solve.
by XorNot | 2025-08-05 11:14:22+00:00
The Houthis somewhat inconveniencing global shipping in a protracted conflict defined by "our available missiles are too expensive to be using against the targets being sent against us" and the US defending Taiwan from a seaborne land invasion which would require the bulk transit of men, vehicles and supplies across a narrow body of water are in no way equivalent scenarios.

The Houthis aren't invading or occupying anything they didn't already own. No one is trying to take it from them. They are an insurance risk.

China trying to invade and occupy Taiwan is an existential threat for the people of Taiwan, and the volume and value of materials and men China would have to move across the Strait of Taiwan would vastly exceed the value of the missiles which would be targeted against them (and in fact would be targeted more aggressively since the US in part avoids expending missiles so as to retain reserves against more serious opponents - in a straight up fight with China though, you'd be much more liberal in your targeting priorities), which is what the US Navy is built to do. A platform being vulnerable to some new tactic does not make the platform useless, and if a minor upgrade would fix it then it just means you're in a transition point. If laser-equipped American destroyers with fleets of mixed capability interceptor UAVs in 2 years time are ensuring nothing touches a ship in the Red Sea, your theory would be in immense trouble - and that technology isn't theoretical, it's being deployed right now.

But perhaps if you really want to consider the problem, then just take a look at what China is building: missile destroyers, submarines, aircraft carriers and stealth fighters. If all these things are so worthless and could not fight and defeat China, then why is China spending so much money trying to exactly replicate those capabilities if the future is all drones all the time or whatever other internet sensation of the moment (i.e. a year back when "the end of the tank was nigh" according to the internet).
by rusk | 2025-08-05 11:15:11+00:00
I’d like to add a corollary to this

- Sometimes what’s best for the system isn’t what’s best for your job

Fail fast is a good ethic but all to often I’ve encountered applications that are only to happy to limp along for the sake of optics. If that’s the prevailing sentiment where you work I’d recommend against violating it off your own bat.