skysight-inc/HackerNews huggingface dataset:
The affluent nations are beginning to depopulate. It's the developing nations that are seeing population explosions.

The problem going forward is not primarily populations in affluent nations, it's the rapid population expansion in developing nations. The US for example is something like #135 in population growth as a percentage and its domestic population is between stagnant and contracting already.

The next two billion people added to the present 7.9b tally is not coming from affluent nations. And those two billion people will be ravenous consumers. Those billions of added consumers in developing nations will want those trees cut down and they care a lot less about it than the rich world does.

And then there's China. They're already the world's biggest consumer, and are very rapidly expanding their consumption. Given what we know about their economy, it's likely their consumption is even higher than we already believe it to be. 20-30 years from now their consumption - as with their emissions output already - will drastically tower over for example what the US or affluent Europe are guilty of by comparison. What's the plan for dealing with that? Well, there is no plan, nobody is going to do anything about it, nobody can do anything about it, nobody will dare to speak in China's direction out of dread - exactly as with their catastrophic emissions problem.

There's no saving the forests in nations like Congo, that's the truth. Unless one plans to immediately put a total halt to all population expansion in developing nations (the only nations seeing significant population expansion). Otherwise the future outcome is very obvious: those billions of added people will all become intense consumers and their demand will place enormous pressure on ecosystems in places like Congo.
We lost Daren Pearcy earlier this week - creator of the awesome RZX archive and, sadly defunct Specchums, and now Bernie Drummond.

Very sad. Head Over Heels was an amazing concept and game.
`"CREATE TABLE IF NOT EXISTS %v ( id text PRIMARY KEY, data json NOT NULL)"`

Correct me if I'm wrong, as I havent used Postgres in a few years, but doesn't the `json` column in Postgres just store the data as text?

Last I knew, jsonb was much more efficient/performant for queries and storage, while having a very robust api for querying specific properties.

Curious what the reasoning was for using json rather than jsonb.
Python Is Deprecating Distutils.cfg
My understanding of the problem is that Pyenv attempts to detect the contents of "/bin" relative to the top level of every Python installation that it manages.

It does this so that it can set up its shim to handle any executable that gets installed in any Pyenv-managed environment.

This is how Pyenv creates the "foobar is not available in your current environment, but is available in x.y.z" message. It's also a much more reliable solution than trying to explicitly whitelist every possible script that might get installed.

The problem is that this was only designed to work for Python executables and scripts installed by Pip. Conda environments can contain a lot more than that; it's not hard to end up with an entire C compiler toolchain in there (possibly even both GCC and LLVM) or even Coreutils.

If Pyenv detects `bin/gcc` in a Conda env, it will set up a system-wide shim for GCC, which no longer passes the `gcc` command along to the OS, but intercepts it, only to inform you that no such command exists in the current env!

So it's not that Pyenv hoses Conda envs. It's that Pyenv can hose PATH if you have it manage a Conda installation, and if that Conda installation ends up with non-Python stuff in `/bin`.

Obviously I don't know what exactly was broken when you tried to set up that application. But this particular adverse interaction bit me at work a few years ago, and ever since then I have insisted that Pyenv should never manage a Conda installation.

I think that's a reasonable policy anyway, in light of the facts that:

1) Conda isn't really a "Python distribution" anymore.

2) The Pyenv installer just runs the opaque Conda installer script and there's basically no way to control the version that gets installed.

3) They are different tools that serve different purposes and it doesn't make sense to have one manage the other anyway.

4) You probably shouldn't use the Python that's installed in the base Conda environment anyway. You need that to run Conda itself, and you want to keep the list of requirements small to make sure that updates can progress cleanly. It's basically the same as any Linux package manager like APT. Except of course, those tools don't generally support "environments" other than chroot.
Yang Rubin, “A New Life for an Old Country”
> Retailers want to get packages to doors in the least amount of time, which means jockeying for storage in expensive and crowded urban and suburban areas.

No mention of closure of urban urban malls and how they getting converted into warehouses, wonder why.
Gradle is capable of very powerful things so on larger projects there is generally a project specific Gradle dialect in play and I can understand why this frustrates newcomers but it's an important capability for large projects and monorepos.

I would say most small projects (especially OSS) tend to stick to a simple subset of Gradle even if it's multiproject build etc.

The amount of churn in the JS build tool space easily outstrips any one time learning you need to do to surpass the Gradle knowledge cliff where all this complex stuff just makes sense.
Best Practical Tips to Improve Your Restaurant Operations
PostgreSQL and MySQL can handle a few TB just fine. It is when you reach over 10TB that you need something else.
And the absolute best part of that clip, on a rewatch, is seeing all three of them trying not to corpse.
And people will still be shipping code faster and more efficiently than they would do in Perl.

I feel that quite a bit of software written these days is designed to have a short shelf life. I wonder how many of the "Show HN" posts will work, or even be useful, in five years? How much will be maintainable?

I've been thinking a lot about Matthew Crawford's writings on mechanical things[0] and how they might apply to my own craft as a software developer. The work, as described generally on HN, is still all about moving fast and breaking things. It doesn't matter if the Python code I crank out today works in five years (or is maintainable in five years) -- I just need to get my product to market. Some of us work in other domains where sustainability and repair-ability are important: if my software is going to be in the field, in users' hands, for ten years, I need to consider how reasonable it might be fix bugs. If I have to fight just to get the software to run, I've already lost that battle. In these cases, the dependability of something like Perl is really great. The complaint against Python here isn't about the language itself (I think many people would agree it is quite nice to use), but rather the larger ecosystem, which makes it very hard to maintain software over the long haul.

[0] See Shop Class as Soulcraft, The World Beyond Your Head, and Why We Drive.
There was a discussion a couple of years ago on this article with 500+ comments, for those interested: https://news.ycombinator.com/item?id=22022466
Good to start with the right habits. People will put this on the internet, the author did for example.
Is it not Slashdot you're asking for? It has always felt to me to be dominated by sysadmins.
I always liked the concept of an SOP and to be honest. The structured reporting system that's used on the military should be more widely used. People rely way too much on improvising when communicating, specially in high stress environments
i have heard good things, i'll try it before reaching for win11 :)
This seems close to illustrating a thought I've been toying with turning into a blog post but need some more examples of before I do:

"Abstract over data, not behaviour"

This seems to fall into the trap of abstracting over behaviour.

The best other example I've thought of for this is the 'generic repository pattern' common in C# and I'd guess Java. Just because CRUD on types is all similar behaviour you can't really build a generic/abstracted way of doing it, because at some point you need different behaviour in some update/insert depending on how the domain concept should act and then you're in a world of pain with a crappy abstraction.

One's code actually 'doing something' isn't a sign of unclean code, it's why one writes it. Stop trying to build abstractions that simplify the doing of what your code does.
I can trade stacks of USD without any KYC.
I don't disagree, but in my opinion, this problem should be solved on protocol/standard level not by third-party developer like myself
super capacitors make more sense for the braking and acceleration. They aren't dense enough to really make any appreciable difference in charge time. They can be, however, dense enough to smooth out the power demands so you aren't trying to pull or push in too much power into the main battery during regular driving.
Works fine in the UK, where all banks have to support open standards and you can use a third party app too analyse your transactions.

https://www.moneydashboard.com/ is the one I use, but there are others.
How will another centralized git host solve for US DMCA protection?
I presume this is partly because Tory supporters are more likely to watch the news on the television, listen to the radio or read dead tree newspapers so they kind of have to pander to them.

For similar reasons, most political comedians seem to be left-leaning.
I know, it's just so wrong. But this is the world- as is.

Just be glad, they haven't yet patented or copyrighted a tree, graph or a linked list yet.

Wrote a tree traversal program to solve some problem in your program? Sorry that connects to some problem they own, so now your solution belongs to them.
What a fantastic post! I rarely do frontend web development. Perhaps only once every year or two. I don't follow frontend development much, and every single time I need to write some javascript the preferred tech stack of the day is completely different. There are so many tools, so many different ways of doing things. It's completely overwhelming.

So I end up doing the same thing the author was doing: just use <script> tags. If I need a library I try to download a minified version of it and put it in a script tag. This is usually good enough for me as I typically use JS for very small things. “pretend it’s 2005”. It works and if something breaks I know how to solve it.

For the kind of JS projects that I work on, learning the tooling can easily take 3X the time I need to write the project itself. I know that there are several meta-tools that will automatically configure all other tools for you, but I really dislike them. They usually end up downloading half of the entire internet, and when you move an inch from their preferred defaults everything becomes a nightmare.

Esbuild seems like the perfect tool for people like me. It's simple, fast and it allows me to import things in JS! I'm definitely going to look at it next time I'm writing some frontend code.
The UK is four countries sellotaped together (hence the 'U' bit). Maybe more, depending on how you feel about Cornwall. This has often caused trouble, and two of them may plausibly leave in the next decade or so.
So people carried as many filled in forms as there were reasons on the form?
> It took centuries for calculus to become as easy as it is today.

it's easy to use, but it's (IMO) even harder to understand correctly than before. I'm referring to a mathematical-level understanding; i.e. you could re-invent it because of how well you undesrtand all of it.
Using ES mudules everywhere seems to be picking up steam recently. It is annoying jumping between frontend files and backend files in the same project using different module systems.

I think in about 6 months not touching common js modules from front-to-back for a whole project will be viable without major quirks.
instead of snarky-ness, in-group signaling

Hugely matter of perspective.
> people who don't look or think like them

Thats unfair the Scottish aren't that ugly.
Not even an FFL (which is only needed for pretty crazy guns)- he's not allowed to own any guns at all anymore
In a ranking of 11 high income country healthcare systems, Canada ranked 10th. They were only above the US, and I completely agree our system is fundamentally flawed as well.

Source: https://www.commonwealthfund.org/publications/fund-reports/2...
Show HN: Export Time Series Data from Google Ads
Please stop downvoting the above comment. Sure, it is wrong thinking imho, but it is a doubt that a lot of people have, and it needs to be seen and addressed.

If we just downvote questions like this into oblivion, it kills the discussion and people continue on with their misconceptions, which never get addressed.
On a desktop, sure. Now that more and more laptops are starting to have soldered-down storage, this argument falls apart.
Uncle Bob fooled many developers to join his sect. I am much happier since I've discovered that there's not only "one true path" and OOP, SOLID and Clean Code are not the means to everything in software.
Probably because to use the term "corruption" in the media/press is quite a direct accusation and potentially will be challenged as libel (rightly or wrongly).

"Sleaze" is less tangible and probably harder to challenge, but carries similar weight. I think sleaze also covers non-corruption activities too - general face-saving in light of embarrassing-but-legal things like quirky sexual activities, substance misuse (where legal), questionable (not not "bad") moral decisions, questionable (but not illegal) business decisions etc etc
An easy first step would be to simply ask each person if they are content, feel like they are sinking, have any general grievances (or ideas/perspectives) they'd like to share, etc.
The only paradigm millennials understand NFTs in is DRM
> GH should really be considered a potential single point of failure now.

now…
London as a city became the first true surveillance city with the mass adoption of cameras everywhere after the IRA bombings. Digital surveillance of the citizenry reached its peak in the early 2010s under Obama (illegally) as exposed by Edward Snowden.

Singapore seems to be a follower. To paraphrase Gibson the surveillance state has arrived, it’s just not evenly distributed.
This suggests a related question: What if Hacker News had its own "subreddits" dedicated to specific topics?

I've wondered if there'd be enough of a user base to have a few smaller subsets of the larger universe of submitted links. (It could be as simple as allowing links to be tagged -- maybe with sysadmin/programming/engineering "flair", to use Reddit's terminology -- and then having a way to re-focus the front page on just that subset of tagged links.)
I think thats the point the article is an oversimplification to the point of absurdity
Tesla batteries weigh over 1000 lbs. They're about a third of the total weight of the car, and they are embedded throughout the chassis.

What if we just swapped a part of it? The 85 kWh battery pack of the Model S, which weighs 1,200 lb, gets you about 400 miles. If you decided to make a part of it swappable, what size would be appropriate, and where would it fit? If we assumed there were a 50 pound battery you could just pop in and out (that would be pretty difficult to handle, but let's assume), that would only get you another 16 miles. Good for an emergency, yes, but not a replacement for a charging station, and that's a pretty big architectural shift, and requires battery stations everywhere, all for just another 16 miles.
There are some differences indeed:

- python is more active than most alternatives, you have new packages created every day.

- python is massively used outside of the web, unlike JS, ruby or PHP, that are 99% web. You get Python in SIG softwares, data analytics, automation, pen testing, sysadmin, biology, etc. It's a huge graph.

- python is used by the distro themselves to code features of the OS. E.G: you remove Python, there is no yum.

- python has a rich compiled extensions ecosystem, produced from c, c++, fortran, and assembly. It's very complicated to ship them.

- it's much more common to have several Python installed than for other dynamic languages. So isolation matters even more.

So the difference is the sheer size of the problem.
Twitter has been disrespecting and mocking developers for too long. I will never develop for Twitter again
"No killer use case"

No, it's that the killer use case doesn't generate revenue for banks. Efficient transfer of money reduces a bunch of revenue streams (wire transfers, overdraft, late fees, check cashing...) without creating a new one. Banks would save costs, but it hurts their bottom line more.

We are unlikely to implement anything that helps poor people and reduces revenue for megacorps.
I am fairly good at avoiding cargo culting and only using things I understand. I am uncomfortable developing any other way.

With JS build tools, I eventually gave up and accepted being uncomfortable.

(And to be clear, we're talking "levels of abstraction" here. Or interface/implementation. I don't need/want to understand the implementation of the tools/libraries I use. I need/want to understand how they work at the "interface" level, the mental model for what they offer and how to make them do what I want, and what choices are available on what axes. I normally achieve this. With webpacker, I give up and just copy and paste magic phrases).
Plenty of federal and quasi-federal countries have tensions between their constituent states, and separatist movements. The UK isn't a proper federal system, of course, but much the same principle applies.
There is a fairly tasteless joke whose punch line is something like "We've determined what sort of woman you are, now we're haggling over the price" that seems relevant here.
Ask HN: Did you know Uber drivers assault passengers and clear the ride history?
This happened to me and I've been unable to get attention frim Uber on this matter. When a driver accepts the ride but if they cancel before they start the ride, it disappears from the passengers history. This leave a massive exploit potential that I was a victim of.

Car arrived, I got in with my things. Driver locked the doors and started threatening me and demanding cash because Uber doesn't pay enough. He refused to carry on with the ride and became hostile so I unlocked the car and got away as quickly as I could. In my haste I left some valuable items behind because I just needed to get away. The driver sped off. This is what I noticed that my Uber was now saying it was trying to find another ride because the driver canceled.

This is a massive exploit of drivers can use to assault passengers. I have been attempting to contact Uber through there safety phone line through Twitter through any means I can and I cannot seem to get this communicated to Uber. They repeatedly asked me the same questions what's the plate number of the car in the name of the driver and I have to repeatedly explain it does not show up in the ride history because of this exploit.

They tell me to contact the police of which I asked them please look up the canceled ride history of a very specific day and time window and give me the plate number because the police need that to pursue this. They totally refuse to acknowledge anything.

Anyone who rides with Uber is potentially vulnerable to this scam. There is no way to contact Uber, there is no way to get through to them and indicate which ride it was because it will not show up in history, and they utterly refuse to help in any way.

Any future rides I get with Uber I will screenshot every driver that it connects me with. This kind of uber scam needs to be alerted to the public to the Uber safety officers who've been ignoring me to the executives at Uber. To really anyone at Uber who would be willing to contact me and speak with me about this so I can get the information to report this to the police. At this point I'll be trying to contact the state's attorney general's the news media outlets literally anyone who can listen. It's quite likely that Uber's assault reporting rate is artificially low because they literally ignore this stuff because you cannot report it in their app.

Of course the Uber defenders flag away. I hope you never get assaulted and stolen from with literally no recourse.
"Firstly, I didn’t talk to the person who wrote it. I rewrote the code and checked it in without their input. Even if it was an improvement (which I don’t believe anymore), this is a terrible way to go about it."

While undeniably true, this feels completely orthogonal to the question of clean code. You could ruffle someone's feathers in the exact same way by taking code into the opposite direction.

"Goodbye, Clean Code [...] Don’t be a clean code zealot"

I agree with choosing pragmatism over purism. But the clickbaity title exercises a pattern I've seen hundreds of times, to which I have frankly become a bit allergic over the years: "X considered harmful! ...I mean, if you're overdoing X". Not being a healthy food zealot doesn't equal "goodbye, healthy food".
The power is in the edit and view being the same view.

It's also wonderfully minimal, much faster loading, and follows basic markdown as opposed to forcing you to use BBCode or Jira specific syntax.

Previously wiki like Confluence software used to force you to go to 'edit' mode to switch between the two. This also fails when multiple people are editing the same document.

You can have a phone call with someone, and see each others cursors, edit simultaneously in real time. You say this fell down, but in Confluence this would be impossible.

It's also super easy to share pages with external vendors using the GUID based URL. They can even comment inline if they register.
I've seen a few HN clones in the past posted on here, but they've never gained any traction and became defunct about a year later. What does OP mean by 'HN For'? I mean if we're talking topics, it's trivial to use the search box at the bottom to search for your topic of interest. One overlooked place for taxonomy'd topics is Pinboard: https://pinboard.in/t:sysadmin (You need an account to view the tags, but a Pinboard account is relatively cheap to obtain).

I don't work as a sysadmin, but I run a popular phpBB forum out of my own pocket (and donations), and I don't think it really fits the moniker of 'sysadmin', but I operate and maintain 2 servers (one for the live site, and a backup VPS incase the live site goes down). I regularly use the command line and have to tinker with a lot of settings to keep the board running smoothly (banning users, bots, bad faith actors etc).

My handle here on HN is not to be taken seriously. I made it for fun :)
Using Propensity Score Matching to Uncover Shopify Capital’s Effect on Growth
You may be surprised outside of the HN crowd how many people use that crappy app store.
If i understand correctly, this is the kind of problem Flatpak and Snap can solve. As a developer, relying on a distro's provided packages just seems too cumbersome - there are 10s of distros all with different versions of your dependency and different packaging systems. I guess the only way to distribute a Python application today that works across distro would be to basically build a single application that works simultaneously on many different python versions, not to mention the shared C libraries and other system software used by important Python packages. What do you do if you use psycopg2 X that needs libpq-dev version between 1 and 2 but the distro bundles in an incompatible version of libpq-dev Y? You have to now support 2 versions of libpq-dev across the project, and all dependents of libpq-dev such as psycopg2?

The shared dependency model is just too complex to work with, and we have enough disk space that its not really necessary anymore. Sandboxes seem like the way to go.