skysight-inc/HackerNews huggingface dataset:
This is the key.

Using std::shared_ptr in a performance-sensitive context (e.g. after startup completes) is code smell.

Using pointers as important elements of a data structure, such that cycles are possible at all, is itself code smell. A general graph is usually better kept as elements in a vector, deque, or even hash table, compactly, with indices instead of pointers, and favoring keeping elements used near one another in the same cache line. Overuse of pointers to organize data tends to pointer-chasing, among the slowest of operations on modern systems.

Typical GC passes consist of little else but pointer chasing.

But the original article is completely, laughably wrong about one thing: an atomic increment or decrement is a remarkably slow operation on modern hardware, second only to pointer chasing.

Systems are made fast by avoiding expensive operations not dictated by the actual problem. Reference counting, or any other sort of GC, counts as overhead: wasting time on secondary activity in preference to making forward progress on the actual reason for the computation.

Almost invariably neglected or concealed in promotion of non-RC GC schemes is overhead imposed by touching large parts of otherwise idle data, cycling it all through CPU caches. This overhead is hard to see in profiles, because it is imposed incrementally throughout the runtime, showing up as 200-cycle pauses waiting on memory bus transactions that could have been satisfied from cache if caches had not been trashed.

If a core is devoted to GC, then sweeps would seem to cycle everything through just that core's cache, avoiding trashing other cores' caches. But the L3 cache used by that core is typically shared with 3 or 7 other cores', so it is hard to isolate that activity to one core without wastefully idling those others. Furthermore, that memory bus activity competes with algorithmic use of the bus, slowing those operations.

Another way GC-dependence slows programs is by making it harder, or even impossible, to localize cost to specific operations, so that reasoning about perforce becomes arbitrarily hard. You lose the ability to count and thus minimize expensive operations, because the cost is dispersed throughout everything else.
Act as a keyboard ("rubber ducky"), retrieve pictures if allowed, exploit some zero day, ...
It's optimized for that, so just let it do its job.

https://devblogs.microsoft.com/oldnewthing/20120105-00/?p=86...
Having an effect on the future is not a simple thing.

With experience you get some idea about what it takes, how much time, how many ppl will be required, what personality types etc to push groups in different directions. But if you haven't built up that experience then chances are high, you will fail to influence outcomes no matter what you do. So the question becomes - how do you build up that experience?

If I respect/trust the leaders I usually tell them I disagree but will do things their way. Its then their call whether they want me on the team or not. If I don't trust the leaders, but think the group has good people I can learn a lot from, I put off bringing anything up for some fixed time (3 months/6 month etc). If things have gotten worse by then I am ready to bring it up/take what I have learnt and check out if it comes to it.
Is there any way we can make Remote Attestation providers liable for any losses incurred while using their services? Can we make it so that banks, record companies, and individuals can sue Microsoft or Google if their system doesn't deliver on the promise? If we still see cheating in on-line gaming even though all machines are attested, can we we get our money back?

I feel like part of the problem is that Remote Attestation providers get to have their cake and eat it too: they make a theme park, set up boundaries, and charge admission under the premise that it's safer to play in their walled garden than in a public park.

But if a bad actor slips through their gate and picks a few pockets or kidnaps a couple children, the operators get to say "not our problem, our services have no warranty -- read the EULA".

I feel like in the real world, if a park operator explicitly bills itself as "a safe place to play" it's their problem if someone goes on a crime spree on their property -- there is some duty to deliver on the advertised safety promise.

But somehow, in the software world people can control admission, control what you do and somehow have no liability if things still go off the rails. It's just a sucker's game.

Of course, I'd rather not see remote attestation happen, but maybe part of the reason it keeps creeping back is exactly because there is zero legal downside to making security promises that can't be kept, but incredible market advantages if they can sucker enough people to believe in the scheme.
For Notion, a downturn is time to play offense
> At some point you need to assert some tough love and force them to do things they don't want to do. Like work. Or not drink/do drugs.

Your thinking is essentially the tough on crime mentality: Blindly lock people up until they behave the way you want them to. That's how the US ended up with the largest per capita prison population in this solar system and absolutely fucking nothing to show for it.

Tough on crime has failed. Spectacularly so. I wonder for how many more decades one can keep running in the wrong directions with fingers in their ears, telling themselves that approach will start working any day now.

Worse, your proposed punishment may actually constitute an improvement in living condition to the people you're trying to punish ("Off to free meals and a warm bed I go!"). Are you really willing to spend lots of money imprisoning people to give them what you could have given them for way cheaper, just so you can tell yourself you're "punishing" them? At that point one might as well stop pretending one has anyone's best interests in mind and admit to pettiness.
MS Access and its wizards make it easy to automate a database. Visual Basic 6.0 also had wizards. It was as easy as painting the forms to be used.
This week in KDE: Lots of work on Discover
I'm sorry, you're just being way too specific. Can you please be any more vague about what you disagree with? Thanks.
DIDs recently became a web2 standard [1] that's also embraced in web3 e.g. by Cardano / Atala Prism [2].

[1] https://www.w3.org/TR/did-core/

[2] https://atalaprism.io/
“Go to work or go to jail” is antithetical in a country that emphasizes freedom.

They probably don’t want to work cuz working low wage jobs is a shit experience and are one bad day from losing their job and becoming houseless again.
Imhotep was shown as born in Congo 2 hours ago, now it does not appear, I guess they are still trying to figure out
You honestly believe crime, poverty and disease will disappear due to this? Lol.

I pre-emptively welcome you to a new era of cybercrime and social engineering like never before. Likewise, until people stop living on top of each other in cities, sharing mass public transport, disease is going nowhere.

As for poverty, well, digital money means that John Doe in the gutter likely isn't going to be getting any donations from kind strangers in the form of cash anymore, and likely isn't going to be able to spend anything without a device, or a fixed address. Prepare to see a surge of crime in that case.

"Oh but we'll give people UBI". You really think so? The cost of living crisis in the UK says otherwise.
GPT-3 distinguishing nonsense questions from sensical ones
Most GC implementations that I can think of know which bits in memory are pointers and which aren't, and only scan the pointers.
> While Cloudflare is a big player, pretty much every service today has some form of third party MITM machine - things like Fastly, Akamai, Google Cloud Load Balancer and CloudFront all provide reverse proxy capabilities on the same level as Cloudflare.

the normal way to do this is to run your static content through CDN's and allow your dynamic content to hit origin.

you're not saved from DDoS of course, but you'd be surprised at how much cookies for static content can cost you in CDN costs; usually people use a separate domain.
Looks nice, thank you !

Tree-based history is smart, so smart that I don’t understand why no « mainstream » browser implemented it yet.
I've played around with Meshroom and both my phone camera and a 4/3, but never managed to get an acceptable 3D model.

I suppose it was because I did not have a studio, i.e. a monocolor diffuse background.

Meshroom always identified most of the points in the background and left only a few points for the object itself. I soon gave up.
That can be a nuisance if you don't have a roaming subscription on your mobile I agree and you do need a smartphone. But you only need to find somewhere where there is wifi to do the download and then register a credit or debit card with the app.

Most stations, buses, and trains have wifi.
>> "The Python case is more inarguable. If GC is so good, why wouldn't Python just garbage collect everything,... ? It is because RC outperforms garbage collecting in all these standard cases"

Pretty weird argument for one of the slowest languages out there ...
It is going to be what you are used to. The more popular the language or technology the more help and docs and courses will be available.

You have to decide your preference on things like type system (runtime or compile time checking?).

Also what are you developing? Web CRUD will be less frustrating in Ruby than C++ for example.

I will bashfully admit I sort of prefer Typescript/Node to C# and Java. It think because JS/TS is a simpler language (Go might be a similar experience).

I have tried Haskell etc. and while fun to do the hard stuff there, I enjoy producing more than understanding complex type systems (libraries mean you can’t avoid the hard part). So I prefer imperative languages with functional features where needed.

All that said, pick one of Python, JS, Ruby, Go, C#, Java for high level stuff anyway and it is much of a muchness they each have their own bugbears and you wont know until uiu get deep into them which ones you will hate the most.

If I had to give a general answer … maybe Java as that gets you on JVM and then you can choose a different language and reuse the Java library skills there. Plus lots of jobs!

If you want to avoid frustrating problems entirely don’t be a programmer. Maybe do programming language research? Or something very low level embedded where you are writing the machine code so there isn’t heaps of cruft between you and what is going on. Real world commercial programming is 90% solving problems that 1000000 other people have solved slight variations on, swearing at the compiler and so on… it is in it’s nature ridiculous! (Like any other job …).
> "Punish a criminal? How unacceptable. Who are you to say what is right and wrong?" It seems we'd rather society fray apart into nothing than re-establish any kind of order

We live in a society where the rich and elites - the ones running our governments and corporations, are all greedily exploiting and cheating the entire populace. They’re all getting away with it too, with ever increasing wealth gaps and wages that don’t match inflation.

So, when people display such ire for low level petty theft by people with nothing in their lives, and claim they’re the ones “fraying apart society” - I find it hard to take seriously.
> and with batteries you end up fully self sufficient when the grid goes down.

My understanding is that the majority of installs are not capable (allowed?) to run when the grid is down. I do know that at the very least you'd need a transfer switch to ensure you're not backfeeding the grid when it's not expecting it, like with a generator.

Now that I think about it, I wonder if a generator could provide the reference signal for the inverters to synchronize against. You'd still be burning fuel at whatever the generator's idle consumption is, but that'll be less than actually using it for power.
I miss: bookmarklets and user scripts

I use bookmarklets all the time. I can't imagine living without them. For example, this is how I read HN:

https://twitter.com/marekgibney/status/1551483561621979136

The bookmarklet takes me to the latest HN post I have not seen. When I click it again, it takes me to the next I have not seen. As soon as I see a post I have seen before, I know I am up to date.

I can't imagine reading HN any other way. Because otherwise, I would have to skim the whole front page to see what's new.

It also works on threads. So, when I post something on HN and want to see the latest replies, the same bookmarklet does this for me.

I have bookmarklets for every site I use frequently.
Everything can vanish at any time. Even "internal" sources are not forever nor are they independent of external factors.
https://archive.ph/2uu1a
It was 2005.

But even then, arrays of value types were available since C# 1.0 (2001).
Any decent phone these days could easily last 3 days if left idling.
New hardware offers faster computation for AI, with much less energy
This article is not that good. I prefer the wiki pages about it (https://en.wikipedia.org/wiki/Tetration) or for a more general approach the best is wiki about hyperoperation (https://en.wikipedia.org/wiki/Hyperoperation). As for notation the square bracket notation is the simplest.

Story time: A while ago some other parent, trying to be smartass, asked the kids in one of those outside school activity (this was before COVID) "what is the highest number they can write using only 3 digits". Of course the kids, who barely understood multiplication and just learned in math the power of (a^b) operation, said "999". He said is "9^9^9 and started to explain to them how large that number is. After he was done, I said "you know, they are right, the highest number using only 3 digits is 999, but you used special notation. Now, if the rules say that we are allowed to use special notation then 9^9^9 is not the highest number, but 9[9]9 is. And then I had to explain to him what is that for the next 30 minutes. I lost him somewhere around pentation because he insisted how big that number is and I started to calculate it using previous base (power of -> tetration -> pentation -> etc). In the end I had to tell him, that using bracket notation his number is just 9[3]3, which is lower than 9[9]9.
Meteor showers will light up the night sky this week
The outputs of Photogrammetry are still more useable today for 3D work like importing the scenes into Unity and editing. NeRF's are great and getting better every week but the output is mostly a video camera fly through of the model scene. NeRFs will really start to shine once they have common rendering and useability in game engine pipelines etc.
I don't know how this could work now with credit cards. What do you do, cancel everyone's cards?
In most cases, yes, you should be able tell when deallocations are going to happen once you know the inputs.
Oh those were the days. Yahoo pipes and all of the various mashups. Then the walls started closing in :(
I'm as liberal as the next person when it comes to our handling of the downtrodden, but this is nonsense.

The victims of shoplifting are other poor people. After all, stores will gladly leave an area and leave other poor people with nowhere to get their goods.
Elite corruption seems like an entirely separate problem to street crime. I don't see why we wouldn't want to solve both, nor why there should be any "you first" here.
Towards extracting the brain subnetworks essential for consciousness
It seems like these “main computer” solutions always depend on ssh-ing into some other machine with a proper command line and disk access. It seems like that defeats the point though, because the advantage of a tablet is mobility, but that also brings along less reliable network connectivity to those remote servers. Really wish we could just install macOS…
Decentralized IPFS networks forming the 'hotbed of phishing'
I never watch anything like that and wasn't aware they even existed. Wtf?
Sorry, it was late and I was tired. Also my tone wasn't so constructive and I'd rephrase my original comment if I were to write it now. By "comparison", I meant grouping SV and London together. They're worlds apart in my experience. The UK is much closer to Europe (particularly in VC culture) than the USA, to my mind.
It should be noted that the Python language spec explicitly says that refcounting, and the resulting deterministic cleanup, is an implementation detail of CPython, and not part of the Python language proper. Precisely so that other implementations like Jython or IronPython could just use GC without refcounting.

https://docs.python.org/3/reference/datamodel.html#objects-v...

So, idiomatic Python does not rely on this, and uses with-statements for deterministic cleanup.

But, of course, as with any language, there's plenty of non-idiomatic Python out in the wild.
If the recession in the US turns into a depression will the Mexicans build a wall then?
And just imagine, what kind of shift in your sense of abundance if you knew food grew in food forests planted in your backyard?
So you want to reform democracy using technology
Well, if you’re allowed to use extra symbols like ^[], then the answer can be 999!!!!…!!!!. With as many factorials as you like.
> Here one user represents 2+ events, both of which should fail. This wasn’t part of my original explanation but yielding does give you the opportunity to fail both simultaneously. Albeit in this case it’s just concurrency broadly. Why is that against your instincts, if you know that one request’s failure implies the other will also fail? Why should that user wait in line to get the same error after another cycle of the same trial?

I really have no idea what you're saying here, so let me put it this way. I would code this hypothetical blog page access situation this way in PHP: Get user data from database. Do access checks on user data. See user does not have permissions to view blog article. Show 403 page.

Assuming I'm understanding what you're saying about async database requests, this is apparently "correct" in Node: Request user data and blog post data from database. If the blog post data comes first, wait. When the user data comes, do access check and show 403 page. If the blog post data hasn't come yet… it just gets ignored or something, I guess. Otherwise the data just gets thrown out…?

What's against my instinct is to make the request for the blog article data unless and until it is known that it will be needed.
That's a pretty far departure from the original "multiplication is just repeated addition". Regardless, I don't think any student would find it helpful to hear "Multiplying two real numbers is simply taking the limit of a sequence of multiplications between rational numbers that converge to the two real ones". In my country irrational numbers are introduced two or three years before limits so you couldn't teach it in schools effectively either.
> all memory could be handed off to a separate dedicated thread that actually calls free()

That only works when you have infinite memory (or infinite CPU resources).

> It's very easy to make a reference counting scheme not stop the world. It's a bit more difficult to make a GC implementation so.

Only if by "not stopping the world" you mean your previous suggestion (leaking unbounded amount of memory to free() everything at some later point). When your memory is bounded, you will eventually have to stop/crash once you have run out of it.

AFAIK, the best modern state of art garbage collectors have stop-the-world pauses, proportional to size of root set and/or thread count. I'd love to see an RC implementation, that does not have stop-the-world pauses at all, but that sounds as audacious as claims of perpetual motion machine.
AC is easy, because it is needed when there is a lot of sun. The challenge is heating. Feeding to the grid during summer and buying back during winter does not solve any problem.

For non-heating use day/night cycles can be solved by batteries. For non-heating use over-provisioning to catch ambient light could even make it work during winter, no grid needed.

But for heating, over-provisioning to run a heat-pump on ambient light does not seem viable. Year-cycle storage is complex (e.g., hydrogen, maybe high-temperature to store heat, ...).

A solution can be collectors to create electricity which is then stored by a second system. An alternative might be collectors that don't produce electricity but something that can be stored directly.

Difficult choice to go all-in on PV for planned use of 25 years today when there might be a more storage-friendly solution available in 10 years.
Could you have a parallel system that the house power switches to? Or even separate outlets to plug appliances into
I have used it and the service found several sites with my information. They automatically submitted data removal request and confirmed the removal as well.

I think they automatically run the tool every quarter and there will be new locations with my data. So, it's a continuous process.
Lambdas can still be written using GCC extensions.
https://github.com/FrozenVoid/C-headers/blob/main/lambda.h
Have been a lurker for years and am delighted to see a new release.
It's a cautionary tale, not something to be emulated.
Abolish the Federal Reserve? – Austrian vs. Keynesian Economics
The FOSS clones people use are stuck in a past before big boys UNIXes took over.

https://www.ibm.com/docs/en/aix/7.1?topic=subsystem-device-c...

https://docstore.mik.ua/manuals/hp-ux/en/5992-4616/ch01s01.h...
> My understanding is that the majority of installs are not capable (allowed?) to run when the grid is down.

Capable, IIRC. I seem to remember that you need to have a type of inverter that is quite a bit more expensive (several kilodollars) if you want to be able to run disconnected from the grid.

Most people opt for the cheaper inverter as there's not a lot of difference if you don't also have a battery storage system.
There is no "non-Safari" browser on iOS. It's all a skin over WebKit.
We may have found the GPT-3