MurphyA/hacker-news huggingface dataset:
by rtpg | 2025-04-10 23:08:46+00:00
There are many long-term users of Python who participate in PEP discussion who argue for beginners[0], often because they professionally are teaching Python.

There are also loads of people basically defaulting to "no" on new features, because they understand that there is a cost of supporting things. I will often disagree about the evaluation of that cost, but it's hard to say there is no cost.

Nobody wants a system that is unusable, slow, hard to implement for, or hard to understand. People sometimes just have different weights on each of these properties. And some people are in a very awkward position of overestimating costs due to overestimating implementation effort. So you end up in discussions like "this is hard to understand!" "No it isn't!"

Hard to move beyond, but the existence of these kinds of conversations serve, in a way, as proof that people aren't jumping on every new feature. Python is still a language that is conservative in what it adds.

This should actually inspire more confidence in people that features added to Python are _useful_, because there are many people who are defaulting to not adding new features. Recent additions to Python speeding up is more an indicator of the process improving and identifying the good stuff rather than a lowering of the bar.

[0]: I often think that these discussions often get fairly intense. Understandability is definitely a core Python value, but I Think sometimes discussions confuse "understandability" with "amount of things in the system". You don't have to fully understand pervasive hashing to understand Python's pervasive value equality semantics! A complex system is needed to support a simple one!
by adeon | 2025-04-10 23:09:27+00:00
So not only do you write a full book, but you keep the content online, up to date by making sure readers are informed of new developments that might make advice irrelevant? And you are able on the spot to say "one of three mistakes that are not relevant anymore"? You impress me, random book-writing Internet person.

You give me a feeling you really care about the craft and just making a good useful resource, which what I respect. I looked around the site and bookmarked it as a technical writing example I might go to read around now and then.

I sometimes teach coding or general computing things (but hands-on, less about writing) and I've come to appreciate that sometimes it is extraordinarily difficult to educate on or communicate complicated ideas.

Quoting you: To give you a sense of what I mean by improving the book “over and over“, keep in mind that between feedback from my DE, external reviewers, and others, there are parts of the book that I rewrote more than ten times.

I also do rewriting especially with content I intend to be a resource or education piece. Obsessively rewrite. Make it shorter. Clearer. Oops that reads like crap let's start over. IMO having an urge to do this and address all feedback or your own itches means you care about your work. Just have to remind myself that that perfect is the enemy of good enough (or something like that I forgot if the expression went exactly like that).
by bigstrat2003 | 2025-04-10 23:10:05+00:00
Like I said: I recognize there are legitimate uses. But unfortunately, they are majorly outnumbered by people doing things like overwriting my history so that when I hit "back", it stays on the site instead of going back to my search engine. I would love to live in the world where malicious dark patterns didn't exist, and we could have nice things. But we don't, and so I would rather not have the functionality at all.
by tehjoker | 2025-04-10 23:10:49+00:00
I think this is kind of misunderstanding scifi a bit. You're right it was designed to be entertaining, but the kernel of it is that they take some existing trend and extrapolate it into the future. Do that enough times, and some of the stories will start to be meaningful looking backwards and the people who made those predictions still deserve credit even if they weren't entirely useful in the forward direction.
by davepeck | 2025-04-10 23:11:35+00:00
My hope is to write some new documentation as 3.14 nears release that explains the (growing) constellation of string formatting mechanisms in Python and describes when they might each be useful. They overlap to some degree, but each has a unique twist that makes them useful in different situations. PEP 292 is going nowhere and is used, for instance, in really powerful libraries like `flufl.i18n`
by npteljes | 2025-04-10 23:11:41+00:00
The derivative I also like, and don't see it here is the markov chain garfield - from back when markov chains were the bee's knees in text generation. The generator is fed by existing garfield comic text, and the generated text is superimposed to a template of existing comics. It might take a few refreshes, but I always manage to amuse myself with the absurdity that it spits out.

https://joshmillard.com/garkov/
by freehorse | 2025-04-10 23:12:20+00:00
In the blogosphere (at least the part I was in) most used to have comments turned on, and at very least pingbacks were definitely common practice . There used to be communities around blogs with similar theme/views and usually blogs had a sidebar with links to other blogs, linking to the newest articles there. People used to write and refer to what others wrote. I assume there must have been also isolated blogs, as there are practically isolated people in social media, but there were definitely also very vibrant communities.
by skeledrew | 2025-04-10 23:12:42+00:00
And if it's being used, and isn't considered problematic, then it should remain. I've found use for all the current ones: (1) for text that naturally has curlies, (2) for templating (3) for immediate interpolation, and improved at-site readability

I see (4) being about the flexibility of (2) and readability of (3). Maybe it'll eventually grow to dominate one or both, but it's also fine if it doesn't. I don't see (1) going away at all since the curly collision still exists in (4).
by muli_d | 2025-04-10 23:13:45+00:00
1. The website looks sleek and has good design.

2. I wish I could get a little bit more of a sneak peek / preview before needing to create an account.

3. Unrelated to the core business of your website, there's a small "bug" in the light/dark theme switch -- the first mouse click doesn't do anything (at least when "system" = "dark"). This is happening because when you launch the site for the first time and the localStorage is "clean", the "theme" value is "system". But clicking the toggle changes the value to "dark", which keeps the current theme as it is.
by OJFord | 2025-04-10 23:14:17+00:00
Postmen already have them if you've paid for postage online and requested collection.

Post boxes in the UK are not like US mailboxes, these are communal and for outgoing mail only. Postmen (typically, exception per first paragraph) only being your incoming mail, and it goes in a letterbox in or near your door, almost always depositing the mail inside your house; there's no way for them to reach outgoing mail you've left there.
by QuercusMax | 2025-04-10 23:14:21+00:00
The linter is a big deal, actually. I've worked with Python off and on during the past few decades; I just recently moved onto a project that uses Python with a bunch of linters and autoformatters enabled. I was used to writing my strings ('foo %s % bar), and the precommit linter told me to write f'foo %{bar}'. Easy enough!
by williamdclt | 2025-04-10 23:14:35+00:00
> ensure user input is properly escaped when inserting into sql

I used to wish for that and got it in JS with template strings and libs around it. For what it’s worth (you got a whole PEP done, you have more credibility than I do) I ended up changing my mind, I think it’s a mistake.

It’s _nice_ from a syntax perspective. But it obscures the reality of sql query/parameter segregation, it builds an abstraction on top of sql that’s leaky and doesn’t even look like an abstraction.

And more importantly, it looks _way too close_ to the wrong thing. If the difference between the safe way to do sql and the unsafe way is one character and a non-trivial understanding of string formatting in python… bad things will happen. In a one-person project it’s manageable, in a bigger one where people have different experiences and seniority it will go wrong.

It’s certainly cute. I don’t thing it’s a good thing for sql queries.
by overu589 | 2025-04-10 23:14:42+00:00
The universe is fundamentally made of potential, not information.

Information is the removal of uncertainty. If it does not remove uncertainty, it is not information. Information is state resolve, constructive and destructive interference collapse into state (information, contextually) in the “moment of now” (whichever moment evaluated.)

You have an interesting and worthwhile curiosity towards communication and compression, however I will say “everything is about” is nothing of the sort.

Everything is potential distributing over the infinite surface area of negative potential (/ information). We call this “entropy.”

Everything is “about” conservation and capacity (because we intend to burn it) of potential. Whatever potential is necessary at that moment.

So everything is about burning what potential we have wisely, and compression is one way of framing that requirement.

We are naturally lazy and ambivalent and will take up as much time and bandwidth as is pleasurable.
by skrrtww | 2025-04-10 23:16:00+00:00
Pretty cool!

I have heard stories of people in 2025 creating a fat macOS binary containing arm64, x86_64, x86, and ppc slices.

I hope that we can get virtualization of x86_64 macOS on arm64 hosts. It would be really cool to be able to do such a thing solely on a modern machine!
by nine_k | 2025-04-10 23:16:20+00:00
Well, yes, the difference between a "process" and a "thread" under Linux is that after a fork() the new "process" has COW data pages, while a new "thread" just gets access to the same data pages. Otherwise they are basically the same thing. No wonder that a Chromium process spawned from a thread lists that thread as a parent process, and gets reaped when the thread exits, whether it's the main thread, or some other thread.

And no, listing the main thread automatically as the parent won't be significantly more logical. The main thread can detach spawned threads and then exit via thread_exit() (not regular exit()), and then the spawned threads will continue to run. So the Linux kernel does the most straightforward thing. The same PDEATHSIG approach would likely work if the spawning thread then reparented the Chromium child process to to the main thread.
by grayfaced | 2025-04-10 23:17:01+00:00
You've completely missed the point. Crouching tiger/Hero are not modern chinese culture. I haven't even seen the shows I mentioned, but I also know if I mention New York overseas, that is what people think of it. They are known around the world. It's not about quality, it's not about blockbusters, it's about the raw influence of "what is New York". Are you suggesting that overseas, the lesson we should take on Chinese culture from Chinese media is that China is infested by demons, has no electricity and is a feudal system??
by amrangaye | 2025-04-10 23:17:59+00:00
I think he missed one of the use cases for advertising: providing “free” services to people in the “third world”. I come from west Africa, majority of people can’t afford to pay for Facebook, YouTube, whatsapp etc even though these are their main means of communications. Even if they could afford it (“just a few cents is nothing” to us on here - to these people that’s how much they make in a day), they don’t use traditional banking services and certainly not access to credit and debit cards to make payments. I hate ads too, for all the reasons mentioned in the article. But I don’t see a feasible way to make these services available for the 1 billion plus people I’m describing. Open to ideas.
by triceratops | 2025-04-10 23:19:04+00:00
> Asimov was a fantasy writer

Asimov was mostly not a fantasy writer. He was a science writer and professor of biochemistry. He published over 500 books. I didn't feel like counting but half or more of them are about science. Maybe 20% are science fiction and fantasy.

https://en.wikipedia.org/wiki/Isaac_Asimov_bibliography_(cat...
by rtpg | 2025-04-10 23:19:40+00:00
printf-style formatting ("foo %s" % "bar") feels the most ready to be retired (except insofar as it probably never will, because it's a nice shortcut).

The other ones at least are based on the same format string syntax.

"foo {}".format("bar") would be an obvious "just use f-string" case, except when the formatting happens far off. But in that case you could "just" use t-strings? Except in cases where you're (for example) reading a format string from a file. Remember, t- and f- strings are syntactic elements, so dynamism prevents usage of it!

So you have the following use cases:

- printf-style formatting: some C-style string formatting is needed

- .format: You can't use an f- string because of non-locality in data to format, and you can't use a t- string due to dynamism in

- f-string: you have the template and the data in the same spot lexicographically, and you just want string concatenation (very common!)

- t-string: you have the template and the data in the same spot lexicogrpahically, but want to use special logic to actually build up your resulting value (which might not even be a string!)

The last two additions being syntax makes it hard to use them to cover all use cases of the first two.

But in a specific use case? It's very likely that there is an exact best answer amongst these 4.
by tharkun__ | 2025-04-10 23:19:59+00:00
The profession of "lamp lighter" definitely has been destroyed though. The person that can raise a burning stick to a kerosene lamp has to have a different skill set than the person fixing lamps in public spaces. I'm assuming you don't mean "screwing in a light bulb" type work, which would be close enough in skill requirements, that the person whose profession was destroyed could reasonably do the new profession without a lot of learning being required.

In the same vein, you doing OCR and now doing other work is not a profession change. You're still a computer scientist doing computer engineering work just on a different problem set.

Lamp lighter to cheese tapper is a profession change. A lamp lighter with bad hearing or attention to detail is not a problem per se. Tapping cheese to see if its ripe (and all the other skills that come with cheese making) will potentially be different enough.

Now the problem comes in, when lamp lighter is supposed to start doing OCR engineering work. Unless the lamp lighter was horribly over qualified, most lamp lighters will not be able to do OCR engineering or any computer scientist style engineering work at all.

Professions do get destroyed all the time. Hopefully while a new profession is born that has similar enough skill level requirements as the previous ones, just in different form. Like a lamp lighter might do well in an Amazon warehouse but not as an AWS software engineer.
by billiam | 2025-04-10 23:20:18+00:00
The demographic time bomb that is the Russian population (human capital, to use an inhuman term) has been recognized since the late 80s. I am surprised how much that productivity along with health has plunged in the last decade. It is not as some suggested a lagging indicator of the aftermath of the Soviet empire but the continuing collapse of the Russian empire, of which the Soviet Union was just a phase. Despite the best intentions of would be autocrats in the West to pump it up, Russia is transitioning from a pretend developed nation to a much smaller developing country on a large land mass.
by clueless | 2025-04-10 23:20:46+00:00
right? not great examples. Here are the kind of prompt examples I would have used instead:

- explain this symbol to me

- what TV show am I watching

- how much is the house I'm looking at worth (bring in geo-location)

- How often should I be watering this plant

- how many calories are in this meal

- what type of car is this

- whats the exact name/type of this screw part

- what are the exact dimensions of this door frame

- what kind of style of art is this

- how often should I be taking this medication

- how many copies has this book sold

- which part of the world is this pic from
by fliellerjulian | 2025-04-10 23:20:47+00:00
totally agree on the last part

What’s wrong with LinkedIn (in our view): - It’s become more like Facebook than a professional network: lots of noise, humblebrags, and algorithm-chasing. - Everyone looks the same on paper — resumes blur together, and it’s hard to stand out. - You're incentivized to perform rather than be real — especially if you're early in your career or outside of the “right” networks.

How we're different: - No feed. No likes. No fake engagement. - You show who you are with video, audio, and proof of work — like a mini personal pitch. - Profiles are curated and designed to be browsed, not scrolled endlessly.

Re: network effects — We’re starting small and high-signal: curated profiles + inbound interest from early recruiters. Our goal isn’t to replace LinkedIn’s entire graph, it’s to become the place you go when you want to stand out and be discovered for real.
by ben0x539 | 2025-04-10 23:21:37+00:00
> I'm honestly befuddled why anyone would downvote this.

I think there's two parts to this. First, there's a bit of a history of people making disingenious jabs at Rust for not having an "ISO C++" style spec. Typically people would try to suggest that Rust can't be ready for production or shouldn't receive support in other ecosystems without being certified by some manner of international committee. Second, Rust by now has an extensive tradition of people discussing memory safety invariants, what soundness means, formal models of what is a valid memory access, desirable optimizations, etc, etc, so your question what undefined behavior means could be taken to be, like, polemically reductive or dismissive.

In context I don't think it's what you're doing, but I would also not be surprised if a lot of people reading Rust-related HN discussions are just super tired of anything that even slightly looks like an effort to re-litigate undefined behavior from first principles, because it tends to derail more specific discussions.
by maxbond | 2025-04-10 23:22:44+00:00
Use what's working for you but one of the strengths of parser combinators is managing abstraction so that you can reason locally rather than having to manage things "ten layers deep." That's more of a problem in imperative approaches where you are manually managing a complex state machine, and can indeed have very deep `if` hierarchies.

Parser combinator are good at letting you express the grammar as a relationship among functions so that the compiler handles the nitty-gritty and error prone bits. (Regexes also abstract away these details, of course.)
by jstanley | 2025-04-10 23:22:57+00:00
> there's an argument that our eyes are very coarse sensors. Instead they do basic analysis from which the brain can infer the real world around us with other data from other organs

I don't buy it. I think our eyes are approximately as fine as we perceive them to be.

When you look through a pair of binoculars at a boat and some trees on the other side of a lake, the only organ that's getting a magnified view is the eyes, so any information you derive comes from the eyes and your imagination, it can't have been secretly inferred from other senses.
by Analemma_ | 2025-04-10 23:23:42+00:00
> His decision making process always prioritizes supporting Free Software over proprietary efforts, pragmatism be damned.

No, this is giving him too much credit. His stance on gcc wasn't just purity over pragmatism, it was antithetical to Free Software. The entire point of Free Software is to let users modify the software to make it more useful to them, there is no point to Free Software if that freedom doesn't exist - I might as well use proprietary software then, it makes no difference.

Stallman fought tooth and nail to make gcc harder for the end user to modify, he directly opposed letting users make their tools better for them. He claims it was for the greater good, but in practice he was undermining the whole reason for free software to exit. And for what? It was all for nothing anyway, proprietary software hasn't relied on the compiler as the lynchpin of its strategy for decades.
by dfabulich | 2025-04-10 23:24:02+00:00
StumbleVideo was exactly like TikTok, including focusing on mobile. The only material difference is that StumbleVideo's videos were landscape instead of portrait, and they had a "Stumble" button instead of swiping.

(Maybe it's the swiping gesture? Maybe the gesture is more comfortable in portrait?? But it's hard to see why that would make or break a video app like this…)
by pansa2 | 2025-04-10 23:24:50+00:00
IMO comprehensions like `[x**2 for x in range(4)]` would be better written as `[for x in range(4): x**2]`.

That would make the mapping between a comprehension and the equivalent loop much clearer, especially once you use nested loops and/or conditionals.

For example, to flatten a list of lists `l = [[1, 2], [3], [4, 5, 6]]`:

[item for sublist in l for item in sublist]

vs

[for sublist in l: for item in sublist: item]
by mtlynch | 2025-04-10 23:25:16+00:00
>I tried to explain how review workflows work in a PR-based setup, and gave concrete suggestions for how we could improve the process. But they didn’t want to try it. That might sound like a small thing, but at that stage, all I wanted was a smooth and efficient collaboration process. The easier it was for me to track changes, the better.

I'm surprised the copy editor was more comfortable using git than using a web-based review tool to leave comments, especially given that she was reviewing a Go book and didn't seem to know what Go was.

How does that even happen? It seems bizarre that Manning had this copy editor at all.

I recently had a negative experience with Manning. I sent them an email saying that I'm in the process of writing a book, and I'm self-publishing it, but I was curious about the possibility of applying to Manning for a second edition. I asked whether they accept second editions after a self-published first edition and what document formats they accept.

I got back a form letter telling me that they'd rejected my proposal. When I followed up and said I didn't send a proposal but was asking preliminary questions, they told me that they understood I hadn't sent a proposal, but they were going off of the table of contents on my book's website. I guess they decided to pre-emptively reject me?

They also only said Google Docs as a document format, but based on this blog post, clearly they accept AsciiDoc.
by autoexec | 2025-04-10 23:25:20+00:00
There are so many ways to fingerprint a browser and new ones are introduced and discovered all the time. The best protection against fingerprinting isn't to try to be the same as everyone else and pray that you've somehow accounted for every possibility, but to always present as a different browser. It can only take changing a single data point to look like a new browser/device, although you still have other things like your IP address which can associate fingerprints with each other. A VPN can give you a new IP every day, or every few hours which can help.
by dingaling | 2025-04-10 23:27:01+00:00
> Presumably scattered radar receivers can detect faint reflections using similar correlation.

Yes, multistatic radars are already in service. An advance on the concept is that the active transmitter can be placed outside anticipated weapons range and those within range are merely passive receivers.

There have been proposals to build such systems that use 'oblivious' transmitter sources such as commercial radio broadcasts.