skysight-inc/HackerNews huggingface dataset:
Python is fast and it's a good choice as a career language for sure.

Now that the GIL will be removed and adding a JIT is an inevitable step as well, we're looking into replacing everything written in Java with Python in the perspective of the next 10-20 years, depending on how soon people retire in a specific geographic region around the world.

The generation of people who, between 1995-2010, rewrote everything from C++ and COBOL into Java is now in their late 40s and 50s, so it's safe to assume there will be plenty of work for Python people until the next generation begins to mature around 2035-2040.

Now, whether it makes sense today to rewrite in Python something like a proxy, which is not a very complex type of software in itself?

If, starting today, you'd like to build within a year a proxy for something like StackOverflow, it's better to leave it for lower-level languages, like Go and Rust. These are replacements for C and C++, rather than Java, so they would likely be a better choice.

That said, my real message is, don't stick to writing such simple software for too long anyway.

If it's for educational purposes, to learn how all the various protocols work, or how to design server-side software, or to learn how to build an online community, that's a different story.

But you have this high level language in Python that lets you easily accomplish things that the lower-level languages just aren't best suited for, so once you wrote your first proxy and it can handle a few hundred or thousand requests/s, pick a high-level goal and work towards that instead! :-)
This guy can summarize other Apple news sites and extract concise info.

Click on his other links at the bottom.

For Apple fanboys, perhaps no info... but a quick summary for those thinking about a Mac is welcome
At some point you'll have to use your knowledge for something, and only then you'll find out whether or not your knowledge is complete, i.e. whether or not you've actually learned the topic, or is there an entire aspect you haven't thought about before.

Of course this is all a simplification, if you learn protocol X and then someone comes up with protocol Y that just adds a few fields then it may be just enough to read about these new fields. I'm talking about larger stuff, like knowing quite a bit about radio communication protocols and encountering secure wireless ranging protocols. A whole other game.
Cop29 CEO filmed agreeing to facilitate fossil fuel deals at climate summit
Selective quoting is fun!

Here's my take: "Learning is not supposed to be fun."

"Not supposed to be fun" has a clear meaning. "It doesn't have to be actively not fun" doesn't have a meaning. No one ever says "actively not fun". It's a cop out to pretend like he's not presenting a false dichotomy, and I can see right through it.
Most languages handle this by having interfaces/traits/etc.

Zig doesn't have those, so you're forced to use these ad-hoc struct instances.
One could invent as many wrong mapping scenarios with enums too. The trap is not the boolean. The fact is that domain modeling is hard, and it becomes even harder if you want to avoid booleans.
Fast fashion clothing increasingly cannot be ironed. But also it’s increasingly hard to buy good quality clothes because of the influence of fast fashion. Even very expensive designers will have shit like unlined coats or thin sweaters. Part of this is that the supply chain for good quality clothing has been greatly reduced. Even if you wanted as a designer to acquire good quality fabric, you have to pay more for it than you used to.
Summary with My Comments Of – Ask HN Post Life-Changing Purchases Since 2020
It's not bad advice. But it is also not insightful and might be harmful. No one should be worried that they're having too much fun when they are learning.
And by examining the model, we discovered a flaw in our understanding, that doors can lock open, which is maybe undesired or dangerous. So this model was successful.
Indeed it does. It was a notoriously fickle design to get right and for a long time they outsourced some parts of it to a company. One of the few things they outsourced. I remember you could find a listing on the company website for this very specific valve, with wink wink references to SpaceX.

I think they managed to bring it all in-house now.
There are a few different ways of implementing interfaces, each with different tradeoffs, so it's not boilerplate :^)
I've got an old map of Massachusetts from 1799 which, while not fraudulent, is completely wrong in several places. For one, where my town is supposed to be, it names another town that is actually much closer to Boston (and is also duplicately labelled on the map in its correct spot). It isn't like my town didn't exist at that point. It incorporated 50 years before that, and already had a major road from Concord going through it.
I don’t really see how Lerc’s comment would benefit from the critique sandwich (more commonly called the “shit sandwich”, in my experience).

Lerc was providing thoughtful suggestions for features to add. That’s not a criticism of what’s already in the project.
What was the Soviet film about hero Komissar riding around on a motocycle on those bridges and fixing all kinds of problems?
Indeed. There are people who have a fair point that desktops for users (as opposed to servers) should have a focus on being responsive and useful. Like how writing on a piece of paper produces meaningful markings in real time, user interfaces should be able to perform tasks with analogous interactivity. See comments about BeOS elsewhere in this thread. I don't know about the extreme, but the overall sentiment is valuable and a far cry from the current state of the desktop experience.
Go Viral on X
Algebraic Data Types. /thread
> which is maybe undesired or dangerous

Or desired. Perhaps the user had the need to keep the door from shutting and didn't have a wedge at hand.
just learn about tension. that's all you need.
> I generally agree with you, if you want someone else to do the checkout for you because you don't like doing it.

Alternative take wrt. self-service checkouts: the store is making you do unpaid labor for it. And with how it's implemented in practice, it's not only offloading work of a specialist to you, it's also costing you time and frustration, since a cashier doing checkout 8h/day on a checkout desk optimized for throughput is doing a much faster job at it than you doing it ad-hoc, in constrained space, on a machine that throws an error if you look at it funny.

I'm very much for automating bullshit jobs away, but store checkout ain't it yet, and the results are universally worse.

More importantly, it's a common pattern that's been inflicted on people (and ourselves) by our industry particularly often: "automating away" specialist jobs with software. The workload doesn't actually go away - it gets redistributed to everyone. It only looks like a win, because specialist salaries are legible to the business, while generalized productivity loss isn't.

Think of it next time when a two day coding problem takes you a week, because you also need to attend several useless meetings, make some powerpoint slides, update your calendar, timesheet, and fill in expense reports from a business trip.
Sure!

A lot of students have feelings of self-doubt. They get easily frustrated, or bored, or impatient. They feel like they're not good enough, or that they will never get this. They get stuck in negative thought spirals like that. They don't dare asking questions because they've been taught that it's a sign of weakness. etc.

These feelings are often entirely disconnected from reality, even the best students have them.

Because of that, I think any piece of educational content needs to tackle the emotional side as well, maybe even primarily. So I do see the point of fun in learning, if it can help cross these emotional barriers.
Of course we find out we don't understand something via failure. But that's a different claim than needing to fail.
70 eur in Slovenia: https://www.zd-lj.si/zdlj/index.php?option=com_content&view=...
But if the model doesn't reflect reality, then reality breaks the software. That's how bugs happen.

Which means that the non buggy model that best reflect reality, and covers all possible scenarios that will happen in production is the two boolean one, not the enum.
Two points

It is strange that the "entry level" computer in 2024 competes and sometimes wins against the 2022 fully-decked out M2 and the original M1 Ultra.

The M3 Pro had a DECREASE in number of P-cores compared to the M2 Pro.

That was very strange and unexplainable.
I clicked through, wondered what this is, found the FAQ, which mentions an online shop but gives a URL as text instead of as a link, went to that URL and got a 404.

Thunderbird Mobile is good though. Have used it for a few days now, like it.
I agree with you, although I would put it differently.

Learning requires feedback, not necessarily failure. The issue with watching a video is not that you can’t fail, you can certainly fail to get the point made in a video, but as you can’t get any feedback it would be hard to figure out that you didn’t get it.

In my view the difference between watching a video, vs trying to implement an idea as code is the direct feedback you get. If you’re wrong or made a mistake, you’ll know and can adjust your mental model accordingly.

It’s also what I like about writing code, if a colleague and I disagree we can just design a test together and find out and learn together.
“I hated every minute of training, but I said, 'Don't quit. Suffer now and live the rest of your life as a champion'.”
― Muhammad Ali
That’s the case for algebraic data types in Go. Otherwise you need to remember the impossible states whenever you change the code. It’s worse if some more complex fields only make sense in a specific state. Enums can’t help there.

Languages in the ML family solved this decades ago. But in the last 30 years this didn’t go mainstream.
I agree with you, and the two posters who suggested "enums". This seesm to be confirmation that these terms are interchangeable, and refer to a choice type. Perhaps a distinction is that ADTs can hold optionally hold an inner value, like in rust. Fair enough?

And perhaps to the title: Misusing booleans is a trap.
I didn't see it referenced directly anywhere in this post. However, for those interested, automatic music transcription (i.e., audio->MIDI) is actually a decently sized subfield of deep learning and music information retrieval.

There have been several successful models for multi-track music transcription - see Google's MT3 project (https://research.google/pubs/mt3-multi-task-multitrack-music...). In the case of piano transcription, accuracy is nearly flawless at this point, even for very low-quality audio:

https://github.com/EleutherAI/aria-amt

Full disclaimer: I am the author of the above repo.
I guess my point is that for some (maybe most) people, doing the latter is just not an option without a lot of guidance and, possibly, introducing some lighthearted elements and fun as well.
Yes, and like the author discovered, domains change over time. Software on the other hand, tends to stick around.