skysight-inc/HackerNews huggingface dataset:
> Doctors are a finite resource

Partly because other professions, like banking, attract greater remuneration. It's also why you'll notice that many new doctors (in the US) choose the ROAD, for many reasons[1], but this one stands out:

> The amounts of money that can be made in dermatology and plastic surgery are a temptation that many people cannot resist

If you want more doctors, and more doctors in things like primary care, then offer incentives. Money is a good one. You may also ask if plastic surgery is still an expense that only a wealthy elite can access, as it was in the past, or if it's become quite commonplace, and then, since it has, why. Could it be that the usual processes that other capitalist goods follow also work in healthcare?

The other side of that is training enough doctors. I think it would be a good question to ask why so few are trained, and I wouldn't be surprised if one of the reasons is that the guild itself, as all guilds do, limits the number of new entrants. That's speculation on my part.

> Obviously this is HN were people have money so they are upset if they are put on a waiting list.

I thought that everybody gets upset if they're put on a (long) waiting list so I'm not sure what need the ad hominem in your comment serves.

[1] https://medicine.yale.edu/news/yale-medicine-magazine/articl...
building with the new app router is still pretty challenging for me (esp getting it to work with other services like supabase auth)
First I'm hearing of gron, this is very cool. Great work!
I wrote a book, and remember reading the first review. It was a one-star rating complaining that the book had been published late. I was in hospital at the time recovering from a brain injury. My brother had helped get the book over the finish line with last-minute edits while I lay a few feet away in pain.

I don't really care for reviews. They reduce us to our produce. They ignore the very thing that materializes the creation: the human.

I take things to heart. It's not because I am "non-growth oriented" or over-sensitive. It's because I'm human.
We've trained on the training set, but our fit() implementation was, "accept the input, do nothing with it, and then return." When we then evaluate the model on the test set and training set, assuming there isn't a large covariant shift between the two or something, we'll get approximately equal values.

So it's a degenerate case, but not of the training set. (And presumably that's partly what they meant by "pedantic".)
RO systems waste something like three gallons for every usable gallon they produce.
I am shocked, I say again, shocked, that it is possible to cheat in casinos.
Specialized ASICs are not easy to come up with, what's more if it's in a tug of war you can expect those to suddenly become obsolete, rendering this approach too costly for a scrapper. Also you may have missed the part in the original link where they were using AWS to do the scrapping, so no ASICs there, and you pay by the minute, two things that would make PoW a valid countermeasure, no "free computation" in that setup.
> private equity actually solves that problem.

How does it solve that problem?
From the article -

> “More and more people have more and more money, and so they have more and more homes — which they often don’t live in,” says Pitkus. “We talk about how Tribeca has become the land of safety deposit boxes, full of fabulous, decorated apartments that no one lives in.”
Wouldn't some part of toothpaste end up ingested? With strong fluoride pastes (like those 5000 ppm specialized ones) could there also be a risk?
The point here is that with the Lua code the CPU is doing some extra work because mod is 0 based because of mathematics and Lua is 1 based by design.

However mod itself is doing extra work compared to incrementing a counter by one.

This is pseudocode because I don't use Lua much and I don't have the time to check the syntax now, but it should give the general idea

class CircBuf(size)
buf = new Array(size)
i = 1
add(value)
buf[i] = value
if i == size
i = 1
else
i = i + 1

The relative efficiency boils down to a comparison+increment vs mod on the particular CPU the code is running on. Mod should be a division, unless size is a power of two.
Looking cross-comment I think you're advocating for micro-payments or micro-proof-of-burn. This is better than having every user compute their own PoW as they'd purchase a small amount of cryptocurrency from an ASIC farm, which should be cheaper/faster/more efficient than using their local hardware. I mostly agree with the concept, but I don't think any such API exists yet with enough adoption to consider this a real option any time soon.

Right now, if I was to ask my users to do a proof of burn for $0.0001 of BTC most of them would just close my site as they don't have any BTC. The process of setting up an account on an exchange, waiting several hours/days for KYC checks to clear, adding a credit card, buying BTC, sending it to a browser extension, and then trying the signup again is a *significant* initial hurdle. If we were in a world where I could assume all my users already owned BTC, that's a different story, but we haven't seen adoption of cryptocurrency anywhere near that level. I don't expect PoW schemes to drive that adoption either, so this seems like a poor solution today.

Do you happen to know if a hCaptcha/mCaptcha-like micro-proof-of-burn tool exists already? I'd be happy to be proven wrong.

That brings us back to options that exist today, which includes every user computing their own PoW. Looking at mCaptcha some more, it uses a SHA256 derivative so it's compute-hard and vulnerable to GPUs/ASICs. The author mentions some of those concerns in an earlier thread [1]. I wonder if a different proof-of-work algorithm would be better, like a memory-hard PoW, proof-of-space, and/or proof-of-wait. I'm skeptical of those too, unfortunately.

[1] https://news.ycombinator.com/item?id=32341446
Curious, how do you decide between WordPress and Webflow?
This is really good. Thank you!

I've been studying how to create an asynchronous runtime that works across threads. My goal: neither CPU and IO bound work slow down event loops.

How do you write code that elegantly defines a state machine across threads/parallelism/async IO?
How do you efficiently define choreographies between microservices, threads, servers and flows?

I've only written two Rust programs but in Rust you presumably you can use Rayon (CPU scheduling) and Tokio (IO scheduling)

I wrote about using the LMAX Disruptor ringbuffer pattern between threads.

https://github.com/samsquire/ideas4#51-rewrite-synchronous-c...

I am designing a state machine formulation syntax that is thread safe and parallelises effectively. It looks like EBNF syntax or a bash pipeline. Parallel steps go in curly brackets. There is an implied interthread ringbuffer between pipes. It is inspired by prolog, whereby there can be multiple conditions or "facts" before a stateline "fires" and transitions. Transitions always go from left to right but within a stateline (what is between a pipe symbol) can fire in any order. A bit like a countdown latch.

states = state1 | {state1a state1b state1c} {state2a state2b state2c} | state3

You can can think of each fact as an "await" but all at the same time.

initial_state.await = { state1a.await state1b.await state1c.await }.await { state2a.await state2b.await state2c.await } | state3.await

In io_uring and LMAX Disruptor, you split all IO into two halves: submit and handle. Here is a liburing state machine that can send and receive in parallel.

accept | { submit_recv! | recv | submit_send } { submit_send! | send | submit_recv }

I want there to be ring buffers between groups of states. So we have full duplex sending and receiving.

Here is a state machine for async/await between threads:

next_free_thread = 2
task(A) thread(1) assignment(A, 1) = running_on(A, 1) |
paused(A, 1)

running_on(A, 1)
thread(1)
assignment(A, 1)
thread_free(next_free_thread) = fork(A, B)
| send_task_to_thread(B, next_free_thread)
| running_on(B, 2)
paused(B, 1)
running_on(A, 1)
| { yield(B, returnvalue) | paused(B, 2) }
{ await(A, B, returnvalue) | paused(A, 1) }
| send_returnvalue(B, A, returnvalue)
Have you tried an Archive.org torrent yet? It's backed by the servers, but has the advantages of selecting which parts of the archive you want and being verifiable and being able to have more bandwidth on popular archives. The Archive.org servers show up on the "HTTP sources" tab next to the "Peers" tab for me.
Why not add env("NO_COLOR") to it as an equivalent of FORCE_COLOR=0?
As a dev this is exactly what I would expect and want out of such service. The alternative is that I have all this crap on my machine.

Having it on a remote VM is so much better :

- my device isn't crippled

- a lot of potential security issues are now not my problem

- environment setup is dealt with by someone else

- I can code on a potato as long as it can render the screens I need

I can have what you're describing with a standard VM instance and SSH port open (or my home desktop and cloud flare tunnel)
It really is. Elementor has been the de-facto page builder for WordPress for quite some time now - and it is excellent. Gutenberg doesn't even allow you to specify a different style for mobile for a block.
The puzzle pixel aesthetic reminds me of eBoy FixPix.
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6923889/ - Developmental fluoride neurotoxicity: an updated review

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3956646/ - Water Fluoridation: A Critical Review of the Physiological Effects of Ingested Fluoride as a Public Health Intervention

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8930857/ - The use of hydroxyapatite toothpaste to prevent dental caries

> In vitro and in situ studies are demonstrating promising results of HAP toothpastes on the remineralization of enamel lesions and preventing/reducing demineralization. Specifically, research appears to demonstrate either its superiority or equivalency to fluoride toothpaste as anti-caries agents.

I'm not sure how conspiratorial I'm being, but for years I've felt that the fluoridation of water was more about the dilution of neurotoxic industrial waste product and not oral health.

Regardless of whether I'm on or off base in that regard, I see little reason to continue to use something that - at best - will only react with pre-existing enamel, when hydroxyapatite toothpastes can actually fix damage (albeit to a limited degree).
The problem with assuming race has something to do with it is, you don’t learn the author’s race as you read his blog and interact with him via git.

So you must assume either that the decision makers knew through other channels, or that without knowing, they’re out-crowding him via subconscious selectors.

If you think this is a race thing, you probably think everything is a race thing.
The appeal of absurdly long YouTube videos that play nothing on purpose
Use a larger interval?

As I said, you can define the improper uniform prior solution as the limit of a sequence of solutions corresponding to a sequence of increasingly wider intervals with endpoints that go to +/-infinity.

(And as I said, you can start with a suitably huge region. Say that you want to determine the position of something and use a uniform prior that extends to a distance of 10^27m - a perfectly bounded prior from a mathematical point of view that covers the whole observable universe. If you observe something outside it, it’s not with the prior that you have a problem.)
I usually make it a two step process:

host example.com

If this returns with an IP address, no need to talk to a registrar. Only if there is no IP address, I go with

whois example.com
It is because there in general needs to be pretty big structural changes in the programs to make use of it properly.
Seeding peers or machines are meant to mitigate this issue.
When was the last time you tried that? In the past month there have been a number of newspaper headlines about difficulties in accessing GP services.

Eg: https://inews.co.uk/news/health/gp-receptionists-care-naviga...
I think Gemini proponents who think Daniel is missing the point, or that he should not overthink this so much as it's just for fun, are the ones missing the point.

Daniel is not saying that is a wrong thing. He is saying that he has a PR to review and would need a clearer spec for this and gives his opinion on how it can be improved. His opinion is interesting because he is a long time spec user and writer.

One commenter says that it's like the coca cola boss criticizing a competitor, but curl implements a lot of protocols. He probably doesn't care.

It's for fun, granted, but if you want curl to implement your fun project, part of the fun becomes doing things properly. If you bothered writing a spec, it might as well be unambiguous, no? Not that I think the point of Gemini is to be fun, mind you. I think it's a strongly political movement advocating for minimalism. I do believe it's a worthy cause.

His point is also to criticize the technical choices but that's fair game too. Again, his opinions as someone who has a lot of experience in the field are interesting too. Should I implement such a protocol now, I would definitely get back to this article to make sure I'm paying attention to the right things and making the right tradeoffs for my use case.

I overall think the Gemini community should take Daniel's input as a good contribution to their ecosystem. He took time to sit down and consider Gemini seriously. Several times.

Now he finds gemtext pages ugly, it's his opinion expressed on his personal blog, it's not particularly interesting and this opinion is not particularly related to his expertise. It's also not worth discussing with logical arguments since it's taste. Now there's still a point that can be made from this: if many people find Gemini ugly, including someone used to deal with RFCs daily, that means it will stay small. And that it's in the end, not an adequate answer for widespread minimalism it could have been and which is a goal that seems worth pursuing.
There’s another interesting dimension to it especially in the context of getting feedback from people you regularly interact in life. Regardless of whether the particular feedback was helpful appreciating it as a gift encourages the person to give feedback in the future. This ensures that you continue to get feedback from the person in the future some of which may be very valuable.
> I've never seen any data published by the YouTube team that showed that downvotes were being "abused by troll hordes"

Same but maybe they consider the people who downvoted their recent editions of Youtube Rewind troll hordes
Ethereum was pretty successfully ASIC-resistant. Other PoW algorithms are GPU-resistant. Even so, I doubt most spammers are sophisticated enough to create ASICs just to make cheaper requests to this guy's service.
> This coin is not listed on Binance for trade and service.

An obscure coin my users cannot purchase through major exchanges is a really poor solution. Sorry, that makes no sense.
UK isn't much better. 10 years ago when my grandmother went into an, admittedly VERY nice, private home and the fees were £1000 a week.
Very interesting, I love these deep-dives into the beloved 8-bit machines of the (my) past.

Meta: I was going to say something fun/snarky about the humor in a retro-computing page using Python 2.x code, but the page is from (2019) which I guess could be noted in the title. Very cool, it's interesting how the disk format itself is defined by software, and of course how Commodore cheapened out by replacing the mechanism manufacturer's (Shugart) controller with a design of their own.

Must have been fun (?) to work at Shugart and have a customer replace your controller with their own solution, saving money, and also getting better capacity out of the drive. That sounds like something that would be kind of annoying to explain to other customers. :)
Yup. I used to use Clozure CL all the time, but since the code I write tends to involve lots of number crunching, SB-SIMD and Loopus are indispensible.

Even before SB-SIMD, SBCL has always seemed like the best Common Lisp implementation for any arithmetic. Or at least this seems to be case when you benchmark CCL against it :)
Hey, I wrote this! Thanks for all the additional warm feelings about Lua on its 30th birthday year.

I have a "second part" in the works on this about implementing something a little more advanced in Lua, and some more exploration of Lua's warts.
Markov’s variety of the constructive mathematics is just what Bishop did plus the assumption that Church-Markov-Turing thesis holds. One does not need to assume that to recover any result of classical mathematics applicable in the real world. Also all those weird results of Markov’s approach that apparently “contradict” the classical mathematics is a consequence of Church thesis. Without that one cannot prove them. So Bishop’s approach is always compatible with classical mathematics.

As for Hahn—Banach I can only site the book “Techniques of Constructive Analysis” by Douglas S. Bridges:

For example, our proof of the Hahn-Banach theorem (Theorem 5.3.3) is, as it stands, a valid algorithmic proof of the classical Hahn Banach theorem. Moreover and this is one advantage of a constructive proof in general our proof embodies an algorithm for the construction of the functional whose existence is stated in the theorem. This algorithm can be extracted from the proof, and, as an undeserved bonus, the proof itself demonstrates that the algorithm is correct or, in computer science parlance, "meets its specifications".
…

The Hahn-Banach theorem enables us to extend a normed linear functional, with an arbitrarily small increase in norm, from a subspace of a normed space to the entire space. This fundamental result has numerous applications throughout functional analysis.

In the constructive context we deal only with the extension of linear functionals on subspaces of a separable normed space. The standard classical proofs extending the theorem to nonseparable normed spaces depend on Zorn's lemma and are therefore nonconstructive.
…
The classical Hahn-Banach theorem says that we can extend a bounded linear functional v from Y to a functional u on the whole space X with exact preservation of norm. In general, as Exercise 5 shows, we cannot do this constructively. But, as we shall see, if we impose extra conditions on the norm of X, then we can make the extension norm-preserving.
The people that are best with equations and problem-solving were always the ones who did the electronics, whether hobbyist or professional. Computers, too but mainframes were too big to own your own and do whatever you wanted to with it. So no computer hobbyists until computers became personal, and not that many until affordable, then no surge until surplus was available.

Electronic hobbyists did not surge until surplus components became abundantly available after WWII themselves.

There's always only been so many of these enthusiasts.

Once Ataris and Commodores got popular mainly for gaming, I watched the promising young geeks and nerds who would have gravitated to natural science fields choose computers instead.

In the early '80's it was easy to forsee this eventuality so I doubled down on natural science myself.

Electronic hobbyists who build from components didn't dwindle to insignificance because Radio Shacks all over the US closed down, Radio Shack closed because there were not enough hobbyists coming along any more.
I don't think it's me who is twisting history here
You think it's satire that there are people that don't brush their teeth but do drink water?
Sort of important and stupid at the same time. If you invent yourself around licence issues then you invite disagreement to licence terms and respect for the authority inherent in a licence drives you to this place.

But as an edge user it feels pretty "mummy and daddy are fighting" Stupid.
Do you believe that removing child porn from google is censorship?

Now replace child porn with another things that’s illegal

Now suddenly it’s censorship?
China's solar revolution, Erdogan's political machine and Pentagon spending
Ask HN: Are you getting GPT-Fatigue?
Hello HN!

Lately I have been seeing so many GPT-related posts on all internet platforms that I am starting to feel "gpt-fatigue".

Most freelance job posts are from clients who want to gpt-this and gpt-that. My latest 2 consulting work has been about building products around generative AI and whenever I open Twitter, HN or Instagram Reels I keep seeing generative AI related content.

Am I the only one feeling this way?
How is that not proving their point?

Putting fluoride in water to topically apply it to teeth (and get a higher risk of brain damage and stomach cancer among other things due to completely unnecessary ingestion).

The study you linked is indeed like proving that drinking sunscreen is great at preventing lip cancer. Or better yet: maybe we can start putting sunscreen in drinking water to prevent lip cancer?
There’s a difference between being nice (“wow, how ace!”, when you hated it), being kind (“I think this would have worked better for me if…”), and being plain honest (“I hated it, what a crock…”)

Many people forget that the other side of a review is human. Social media, trip advisor, amazon, blogs, and reddit are all channels in which people feel free to be honest, but then are surprised to discover the human who you criticised is popping up and responding with hurt.

We all know being rude to a service worker to their face ks the sign of an absolute turd of a human being, but seem to think being “honest” in an indirect channel is just fine.

Being kind (empathetic, sympathetic, constructive), is less toxic for both parties, retains authenticity (more valuable than “honesty”), and is therefore socially more acceptable in a situation where you remember the criticism is going to be taken on by the other party.

It sounds like the person forgot - because it was Reddit - that human empathy towards a creator is a powerful thing, and that a lack of it is incredibly damaging, beyond what you would do if meeting the individual face to face. Being smart and “honest” (more often than not, actually just rude), are not the primary ways of keeping score when determining if somebody is being a good human.

Look up Jeff Bezos’ thoughts on being clever vs being kind: he’s not wrong. It’s easy to forget when you think the person you’re being clever about will never read your words, but that’s actually just really, really dumb.