skysight-inc/HackerNews huggingface dataset:
I think the USSR was a colonialist empire in the post Napolean Republican sense.

The ideals of the exceptional Republic make it the perfect overseer of the implementation of its system upon inferior nations that lack the vision or commitment to find and implement the perfect ideals. My impression from how it is coverred in the US is that the UK's early colonialism was simple feudal empire (the Queen is pleased with your venture) and late colonialism was of the Republican empire sort (they need our assigned administration to at least become a poor model of us).
It’s strange that some code in the style guide is still 2-space intended, though. For example, all the code from 3.19.3 until the end of the document.
If you are terrible at writing docs, then that’s your fault, not the style guide’s for enforcing documentation. Some fields might be self-explanatory and the docs for them might be pointless, but it’s better to be overzealous here rather than allow people to skip documenting stuff, because then nothing will be documented.

Also, the requirement to have documentation comments is just one rule out of hundreds, so why focus on that one?
We have a place where anyone can put a ticket for the product manager to consider. He moves the more important ones into the backlog (with some... coaching from me). The backlog has things in it that wouldn't fit in this sprint but are probably going in the next couple of sprints.
Kwargs is a feature I miss now I work in a typescript/nodejs code base.

Sure you can objects bits it not the same.
2.14 True/False Evaluations
Use the “implicit” false if at all possible.

This one is my personal bug-bear. I find this:

if not users:
...

significantly worse than:

if users == []:
...

The second is totally explicit, reminds the reader that users is (expected to be) a list and makes it totally clear that we can only enter the conditional block if users is an empty list.

The first option:

a) obfuscates the type of users on first reading

b) evaluates to True if users is None (or LOADS of other things?!) which can lead to hard-to-find bugs.

Granted, type-checking can help here but purely from a readability perspective the second option seems way more friendly and for almost no downside. The same holds true for all of the "False-y" objects:

if users == {}:
if users == 0:
if users is None:
if users == ():
if users is False:

Why is the implicit:

if not users:

an improvement in any of these cases?

If you need to distinguish False from None then chain the expressions, such as if not x and x is not None:.

!!!

Why not just:

if x is False:

?
Nord Stream 2 was operational. It was also targeted but one of the pipes was hit twice, leaving the other intact.

Up to that point, the Russians clearly communicated to Germany that the flow of gas could be resumed either by dropping the sanctions to "repair" Nord Stream 1 or by opening Nord Stream 2.

The reason given by the Russians as to why Nord Stream 1 wasn't running at capacity was technical problems. First it was a turbine which eventually was replaced by Germany. Next it was allegedly damage to a control unit. The Russians claimed the repairs were impossible because of the sanctions.

So up until the bombing, Nord Stream 2 was always there as a possible fallback. Had Germany run into difficulties procuring gas from other sources up until winter, there was this dangling bait in reach of the German government. A freezing population would have been very unkind to a government that refused to open the second pipeline just for political stance.

Since the bombing it has become clear that operating any pipeline through the Baltic might only last for a short time.
Apparently one can't quip without a point being missed entirely.
BTW Podman has been ported to FreeBSD and works with jails. Although I have never tried it.
Smallest compared to any of current capable compile-to-wasm langs. How dare you bring up React, when it's already lose to Solid which is apple-to-apple (js). React is freakin bloat. Numbers of functionality is the problems produced by itself and then solve its own problems.

If you ask me to compare to React for todo app, wasm with gc + interfacing with DOM, is going to blow React out of water in both size and performance (logic wise). DOM-wise, thing like "signal" already won anyway.

I honestly don't understand why you bring up React.
This is cool but my biggest issue with python is how difficult it is to just use without blowing up my workstation.

Honestly even with a version manager it can become a nightmare and it’s the primary reason I’ve stayed away from it. Also because I’m really a mathematician or something who needs to use any of the extensive python libraries to do some cool AI stuff.

Here’s to hoping I never have to deal with actually maintaining or working on a python codebase. Cheers!
SDK update for Raspberry Pi Pico W unlocks Bluetooth support
So it goes from killing you if you're in the same room in seconds to merely bioaccumulating and poisoning the top levels of the food chain for thousands of square km in a few centuries.

Very nice good faith representation.
You could also port that code from nVidia CUDA somewhere else. If you wanna run on servers, Vulkan Compute will probably do the trick. I have ported ML inference to Windows desktops with DirectCompute https://github.com/Const-me/Whisper

These NVIDIA A40 GPUs mentioned on the page you’ve linked cost $4000 (Amazon) to $10000 (Dell), deliver similar performance to Intel A770 which cost $350. That’s 1 order of magnitude difference in cost efficiency.
For reference, this has always been the recommended style in PEP 8 (initially published in 2001). https://peps.python.org/pep-0008/#indentation
In theory there's no difference between theory and practice, but in practice there is.

With a stable operator it's theoretically similar, but it is not the same, by any stretch, if only because I guarantee your incident rate will be higher when performing changes to the database, all other factors being similar. You now are also exposed to a bunch of other changes, the shenanigans of k8s networking, a missing daemonset, someone was tweaking istio that messed everything...

The argument of "don't run it on k8s" isn't because you can't run it physically. It's because all those other things are going to increase your failure rate, and those failures will be way more complex to solve and so your time to recovery will also go up.

You'll have to deal with this complexity already for the things that Kubernetes is going to give you actual benefits on, doing databases should be at the bottom of that list. Use your complexity budget wisely. If you're already at the bottom of the list, you look at your team and you go "we have extra capacity and are very confortable with the complexity of our current incidents", go ahead, likely it is the right time for you if you like adventure.
It wasn't colonialist, in that the USSR did not expand into overseas areas of nonwhite people, because by that time there weren't any left uncolonized, but it had all the other attributes of a Russian empire over the satellite republics. The liberatory aspects of it collapsed very early on in infighting. Then there's https://en.wikipedia.org/wiki/Antisemitism_in_the_Soviet_Uni...
Jesus christus
We tightly strapped an infant to a traditional plastic “circumstraint” using Velcro restraints. We also completely immobilized the infant’s head using standard surgical tape. The entire apparatus was then introduced into the MRI chamber. Since no metal objects could be used because of the high magnetic fields, the doctor who performed the surgery used a plastic bell with a sterilized obsidian bade to cut the foreskin. No anesthetic was used.

what is this ? I can't parse. Is it an april fool or something ?
These rockets have to be tested regularly, and this is a great opportunity.
On mobile I use i.reddit.com which is the mobile web equivalent to old.reddit.com
In other words, US is about to lose its hegemony and it's doing whatever it can to maintain. But doing this will not only hurt Chinese companies as US counterparties also lose a revenue source and in turn reducing their capacities in researching which are essential to keep their cutting edge. Such move for sure can slow down China for a while, at the same time also helped China to learn that there is always something it should not only buy from other countries in a hard way. But once China overcomes from that, what else can US do?
Thanks, I'll need to update the link on wikipedia later, it was correct last week.

I have set up a co-op. It's going quite well.
Most of these are issues with running rootless not necessarily with running podman. Podman in rootful mode does not have most of these issues.
An Instant Camera Using E-Paper as Film
You probably want to revisit your understanding because what you said doesn't make much sense. Allocating variables on stack and passing them over to other functions is perfectly fine. If you want them to live on a heap that's perfectly fine too.
Shapefiles are no more proper than KML, I'd even say KML is a better format, since it's a single file and doesn't have the archaic name limitations of SHP.
@staticmethod is kinda pointless in two ways. One, it has the same effect as @classmethod, except the first argument, so you can always just use @classmethod. Two, you could argue that static methods don’t make much sense in a language which has top-level functions (unlike Java). If something is part of the class but does not make use of the class state and should be usable from outside of the class, then it should be a plain function, not a @staticmethod. (Overzealous linters that suggest @staticmethod when the method could be a function, or when the method is part of some public interface and does not necessarily have to be static in other implementations, are dumb.)
For me moving to Chrome was a simple case of, wow, it's fast and when it dies a single tab dies not the whole browser. I lingered a bit in Firefox professionally because of FireBug but once Chrome Dev Tools got decent I switched completely.

Now Chrome stopped showing me more than n tabs when I open too many and doesn't show UI to scroll invisible ones into view. This happens on my every windows machine. Chrome feels janky nowadays for me. So I'm trying to get back to Firefox but it's a bit hard. Recently I couldn't even get Bitwarden to work in Firefox on Windows. Fortunately I managed to switch to DucDuckGo browser on Android.
We run our databases (ScyllaDB, Elasticsearch) on our workload orchestrator (Nomad), just like any other job. The only difference is that the servers running the database workloads are not available for scheduling any other jobs, that way the database will be the only thing running on them. I can't overstate how much easier this has made database operations for us. We get to keep all of our config in our Nomad repo, use the same mechanism for secrets management, service discovery, the fleet-wide logging and auditing sidecars, etc. Plus Nomad allows rolling updates with automatic revert which makes upgrading 10+ nodes of Elasticsearch one-by-one with healthchecks a total breeze. Since we've had this setup we are able to trigger database release updates with a one-line change and a single command.
> How many people don't get a second chance?

The vast majority of people attempting to get published during the "Golden Age of Science Fiction" for starters.

Even reading the autobiographical writings of those that became big names you'll find a seemingly endless runway of rejection before liftoff, cancelled acceptances, demands for rewrites, multiple publisher approaches, etc.

One publisher getting cold feet isn't the end of the world, ask any writer that's made it.
Struggling to understand why I am so attracted to this idea. But I am!
On mobile, not so much…
You are 100% right. Truthiness leads to bugs. I would have thought that was well known by now.
A good answer is because you don't necessarily know if the thing you're getting is a list, a tuple, or a RepeatedCompositeFieldContainer (a protobuf list), or some other type that meets the Sequence/MutableSequence abstract base class contract. `if not foo` will check that they're all empty, while `if foo == []` will have unexpected behavior if foo starts returning a set tomorrow.

The generalization of this is to code against as generic an api as possible, you wouldn't do `list.__eq___(x, y)` in your code, but you're suggesting almost exactly that.

(granted you can still run into this kind of issue if foo is a generator, but that's a less common way to explode).

The style guide does tell you to use explicit `x is None`, instead of implicit bool when checking noneness, specifically to disambiguate between binary and ternary values, but usually that's not what you want.
Good. Go deserves this.

Before gofmt, programmers were allowed to have accents. Teams were allowed to decide their preferred style.

Since gofmt, we "avoid bikeshedding" by disallowing the developer from adding any value via formatting.

Dozens of languages that are far more sophisticated than Go have adopted this boneheaded approach (typical Go philosophy) in the years since gofmt appeared.

It'll be a while before I retire, but when the time comes, I am preparing for this to be the hill I die on.
Ask HN: A note taking system recommendation request
I believe that I have a weird note taking system requirement, so I am putting the request out here to get recommendations.

How I want to take notes
A plain text file where I can keep putting items like my thoughts, ideas, ToDos (with deadline, schedule date, due date) all of these items can be tagged with $person, +project-name, #field=value kind of tagging system

How I want to see notes
The application/cli tool should have a capability to answer queries as follows

Show notes for particular project
Answer

Pending tasks
Completed tasks
Deadline tasks
Recurring tasks
Notes/ideas belonging to the project

Similarly if I query for
Show notes for a person
Answer should contain same line items as mentioned above

Requirements: plain text, cli, maybe markdown

Let me know if there is any such tool in existence. Thanks.
Running containers without a daemon in rootful and rootless mode is better and more secure in many ways.

If you want to understand all of the security features of Podman take a look at chapters 10 and 11 of my book `Podman in Action`.

In the book I also have a nice comparison of features in Podman over Docker.

Podman 4.4 was just released with a new feature called quadlet, which makes running podman containers under systemd really easy. You should see blogs on this very soon.
From my experience I mostly agree: Our backlog is too long to be usefeful. It contains small bugs that can be fixed in half a day and big features we will never implement with the current size of the team and everything in between. What we work on comes much more from current customer projects and maybe from the CTOs guidance.

However, claiming that bugs would be a feature after 3 months and can be closed is not my experience at all. We do fix bugs that are much older. They have been annoying for a longer time, but eventually we are happy to get them fixed.

Now one could say our problem is that we are not agile enough. Well, I have seen many processes in more than 20 years of software development. They all had one thing in common: In one way or another it was a mess. Sometimes people are working more or less productively despite the mess. And sometimes they don't. It depends on having the right people and the right spirit. The process won't save you, but a stupid process will spoil all spirit and good people will leave.
It used to be the Department of War, but Defense sounds nicer. Lots of countries did the shift in name.

Reminds me of George Carlin's joke: shellshock becomes battle fatigue becomes PTSD. Don't make it better, change the name!
Can’t you use clustering techniques?
I have been using Go for almost a decade now, and this is the second time they crossed a line I think they shouldn't have.

The first time was when they introduced the GOPROXY and such. Now `go build` suddenly connects to internet by default, sending package names to Google, unless I explicitly opt-out.

As convenient as it seems to be, I would expect a compiler to not even require network connectivity, and fail loudly if something is missing. It should tell me to download the missing packages myself ("run `go get`" or something), not try to automatically fetch them for me. That's not a compiler's job.

I like Go-the-language, and I'm willing to overlook some inconveniences because I accept the trade-offs, but with this I'll try hard to stop using Go at all unless an alternative working compiler (not gccgo) appears.
> A few errors show quickly there is no such concept being weilded

I would have given similar examples to show that ChatGPT makes the same kinds of mistakes that humans do. The first one is good, because ChatGPT can solve it easily when you present it as a riddle rather than being a genuine question. Humans use context and framing in the same way; I'm sure you've heard of the Wason selection task:
https://en.wikipedia.org/wiki/Wason_selection_task

When posed as a logic problem, few people can solve it. But when framed in social terms, it becomes apparently simple. This shows how humans aren't using fundamental abstract concepts here, but rather heuristics and contextual information.

The second example you give is even better. It's designed to trick the reader into thinking of the number 30 by putting the phrase "half my age" before the number 60. It's using context as obfuscation. In this case, showing ChatGPT an analogous problem with different wording lets it see how to solve the first problem. You might even say it's able to notice the fundamental abstract concepts that both problems share.

The third problem is also a good example, but for the wrong reason: I can't solve it either. If you had spoken it to me slowly five times in a row, I doubt I could have given the right answer. If you gave me a pencil and paper, I could work through the steps one by one in a mechanical way... but solving it mentally? Impossible for me.

> It is run through a grammatical filter/generator at the end so it's usually grammatical, but no sort of truth filter (or ethical filter for that matter either).

I kind of thought it did get censored by a sort of "ethical filter" (very poorly, obviously), and also I wasn't aware of it needing grammatical assistance. Do you remember where you heard this?

Here's my chat with it, if you're interested: https://pastebin.com/raw/hQQ8bpsB

But comparing 1 human to 1 GPT is mistaken to begin with. It's like comparing 1 human with 1 Wernicke's area or 1 angular gyrus. If you had 100 different ChatGPTs, each optimized for a different task and able to communicate with each other, then you'd have something more similar to the human brain.
>Also it’s just “Ukraine”, not “the Ukraine”. //

In en-gb "the Ukraine" is the established form; without "the" it sounds strange. There's no academy that dictates acceptable form for English language. Do you think it's unclear? Is there a good reason to be a language fascist on this point?
Science and engineering all use metric in the US

Machinists still do a lot of work in inches.
So the Raptor is all about shooting down balloons?
> If you go against the zeitgeist, you better be ready to weather the storm that'll bring upon you.

Sure, Leopold Kronecker shat on Cantor from a great height .. welcome to the entire history of acedemia.

In this case things came good a lot faster than they did for Cantor.

Happily, I was able to repair it.

Four fresh historians—including one dissenter from the Centre for Global History—stepped up, three of them, as it happens, wearing slightly darker-than-pink skins.

And since 2019, the three annual conferences have attracted more than 40 historians from Oxbridge and elsewhere in Britain, and from California to the Netherlands.

“Ethics and Empire” will complete its work in the summer of 2023.

So, that story has a happy ending: The attempted cancellation failed, albeit not for want of concerted trying.

( oh, and the "cancelled" book was published on the second attempt with another publisher )
>type-checking can help

If we use Python as a strongly typed language, it makes no difference which one you use.

If we don't (i.e. use Python as it is: a dynamically-typed language), then this is just a preference.

Using (or exploiting, depends on how you think) Truthiness this way is actually an intentional choice in lots of case, especially if you have "else" condition.

Think it this way: you're going to split the conditions into two: `users` is non-empty, which is the "good" condition; and `users` is empty, which is the "bad" condition.

Then you have unexpected condition that "users" is something that shouldn't be, most commonly being None. In most of cases, this is a "bad" condition. So it makes sense it's grouped together with `users == []`.

If `users` is "True" or "False" as you said (which you should ensure to not happen in other ways anyway), then indeed it will not be captured by `users == []`, but it would still be broken/unmanaged in "else" side.
Poor execution and the lack of a moat have caused medium to get pushed in a mode where the measures they put in place to generate revenue ended up throwing away the baby with the bath water in terms of alienating both writers and readers from their platform. Which is of course disastrous for any content platform.

Better execution might have prevented some of that but not all of it because without revenue, it was not a sustainable company. So, they had to do something given the level of investment and the mediocre revenue. Better execution would have not done anything to prevent competitors from stepping up. That was always going to happen.

But fundamentally, they are just a blogging platform. There are many blogging platforms out there and it's not rocket science to create some more. Blogging platforms are a commodity. It doesn't matter that much if theirs is nice to use, beautifully designed and comes with a great UX. And I would actually dispute it is that good to begin with. Either way, it's still a commodity. Easy to imitate, clone, copy, whatever. The value of that was always relatively low. And I don't think medium ever had a good plan for addressing that.
If not equipped with anything cheap ones cost less then 100$
Who were the colonisers?
Dynamic languages works since they are very polymorphic across types. Your function is more general if it doesn't have to know if you pass a list or a tuple or a dict, the implicit false will work on all of those. Making strict type checks quickly makes dynamic typing impossible to work with, and then you start to require strict typing everywhere, and at that point I'd not work with python but in some other language.

This goes for if you make a library as well, your library will be easier to use if you are less strict about the inputs you take, since that allows your user to work in a more naturally dynamic way. I love static types, but I have worked on making python libraries and there accepting a wide range of inputs is an important part of usability.
Read the article and read the comments section.

For HN the current debate (28 comments) really reflects how charged this topic is.

Cancellation of ideas is a topic worth discussing. If we can't discuss it here, a much more rational place than other venues, where can this be meaningfully discussed?
I think the argument is that static methods are just functions, they are not strongly tied to a class or it's objects, so then let's not have two kinds of entities (normal functions and static methods) that do the same thing.

Class methods are a weird thing that can be used to affect all objects of a class, so are kinda global in a sense, which is why they should be avoided.