skysight-inc/HackerNews huggingface dataset:
> It’s possible to do this correctly if you actually read the docs and understand what you’re doing, using tools like weak pointers, but when you have hundreds of developers, many of whom got their job either by transferring from an android team or by just memorizing pat answers to all the “Ninja” algorithms interview questions (practically all of which have leaked on Leetcode and various forums), you can be sure that enough of them will fail to do so to create major issues with OOMs.

This pretty much nails down what I imagine is the main difference between GC and ARC: with the former you sacrifice performance for ease of use, and with the latter you improve performance by placing some additional work on the programmers.
https://web.archive.org/web/20220730044931/https://cartoonre...
Heating (and AC) are not problems solved by pouring more energy in your home but with insulation.A passive house is a reality even for cold climate, and they don't need storage for cooling/heating. Then you are left with your appliance that have to run outside of production time, but this is rather small.
The article states the neutron star spins up as it accretes mass from its partner.. surprising as you'd expect something that gains mass to slow down.
Writing userscripts and CSS filters
becomes more tedious each few years,
especially mucking with dynamic DOM
and complex frameworks websites tend to
use now. WASM and obfuscated/minified javascript made "programmable web" impossible in practice.
a 1kw array is realistically going to provide 300-900watts. which in summer is going to get you about 6-9kwhr a day.

I have a 5.6kw array and a battery. It has provided 99.8% of our power since march. (only 60% of our power was from solar in january though.)

We've generated ~3 MwHr this year, with 1.5 net going to the grid.

We don't have a feed in tariff, so any power we generate and export is free to the supplier. This means that we put on the washing machine & dishwasher on during solar peak, so that we stop the power companies making as much money.

But. We have gas heating. even with external wall insulation we using about 500kwhr a month in febuary. (Im not sure that acutally all, as the smart meter has stopped reporting properly.)
> RC may turn reads into writes, but of course, GC ends up having to go through literally every piece of memory ever from bottom to top once in a while.

> RC limits itself to modifying only relevant objects, whereas GC reads all objects in a super cache-unfriendly way. Yes, an atomic read-modify-write is worse than a read, but it's not worse than a linked-list traversal of all of memory all the time.

This is patently untrue. Contemporary GCs have had card marking/scanning for 10+ years now.
That's rhenium, not molybdenum?
What an amazing ride. I fell off when it got bumpy talking about
generalising operators. I once read a chapter on "operator theory" [1]
in a bid to understand transforms like FFT in a fresh way, but alas I
don't have the skill to enjoy or use it well.

[1] https://en.wikipedia.org/wiki/Operator_theory
Quoting (abridged, of course) from The Subtle Art Of Not Giving A Fuck on this topic:

> There is a premise [...] that happiness is algorithmic, that it can be worked for and earned and achieved as if it were getting accepted to law school [...]. If I achieve X, then I can be happy.

> This premise though, is the problem. Happiness is not a solvable equation. Dissatisfaction and unease are inherent parts of human nature, and, as we'll see, necessary components to creating consistent happiness.

> We are wired to become dissatisfied with whatever we have and satisfied by only what we do not have. This constant dissatisfaction has kept our species fighting and striving, building and conquering. So no - our own pain and misery aren't a bug of human evolution, they're a feature.

> There's no such thing as a life without problems. Instead, hope for a life full of good problems.

And maybe the central tenet of the book:

> Happiness comes from solving problems. The keyword here is "solving". If you're avoiding your problems or feel like you don't have any problems, then you're going to make yourself miserable. If you feel like you have problems that you can't solve, you will likewise make yourself miserable.

> To be happy we need something to solve. Happiness is therefore a form of action; it's an activity, not something that is passively bestowed upon you. It doesn't magically appear when you finally make enough money to add on that extra room to the house. You don't find it waiting for you in a place, an idea, a job - or even a book, for that matter.

Much of the rest of the book goes into depth about choosing what problems you want to have - because you will have problems no matter what, but it's up to you what those are. Both on a factual level ("you won't get a great physique if 'wake up early to go to the gym' is a problem you don't want to have") and on a mindset level ("Dave Mustaine of Megadeth is unhappy about his success because earlier he was kicked out of Metallica, who are now more successful"). In other words, what to "give a fuck" about - and what not to give a fuck about.

Would recommend!
> I always find the position of telling people to never point out problems, only suggestions or solutions odd.

The article went lower than pointing out problems. It veered into toxicity, its claim to "irreverence" notwithstanding. From the first:

> Object-Oriented Programming: Luckily the industry doesn’t really use this term any more so we can ignore the changed meaning. The small club of people who still care can use it correctly, everybody else can carry on not using it. Just be aware when diving through the history books that it might mean “extreme late binding of all things” or it might mean “modules, but using the word class” depending on the age of the text.

The reference to the "small club of people who still care can use it correctly" is elitist, and he does not bother to define the term (other than in a meaningless call-out to his fellow club members). The casual readers who are not members of his self-described club are not left with helpful information to decide for themselves when and and what use of the term may or may not be wrong. It's just "If you know, then you know" phrasing.

The tone does not improve through the rest of the article. I'm not sure this fellow should be teaching beginners how to program.
And yet GC haters keep ignoring the hard data about languages like D, Oberon family, Modula-3,Nim, .NET, and plenty others where alongside the tracing GC, there are value types, stack, static global memory, manual memory allocation primitives and unsafe code blocks to perform as much C like coding as performance junkies might feel like doing.
This could be the excellent site for a re-education camp for the unvaccinated ;)
Microformats: Still Relevant?
I don't see how this could be truly secure if it's JS running on the client. There is nothing stopping a user from running a custom version of Chromium or otherwise that ignores CSPs... Maybe I'm not fully understanding what is being restricted here and where the code is being run.
SSNs used to follow a pattern[1] (up to 2011) so that's not too difficult

1. https://www.ssa.gov/employer/stateweb.htm
Chapter 5, https://gchandbook.org/
This exists also the other way round: For me JS removes some of the frustrations of TS (and Java, C#, etc.)
There are many incongruities in how we consider the Native American tribes beyond food. We treat them as monolithic, put upon people, wholly innocent, noble savages.

Then you have tribes like the Comanche, engaging in actions that might well make a chattel slaver blush.

It’s all sentiment, posturing, and signaling and little consideration for the realities of the bygone times.
It puts that "extra memory" inside the very objects it tracks with a... reference count.
Thorlabs now supports Python for motion control
Examples here:
https://github.com/Thorlabs/Motion_Control_Examples/tree/mai...
I have used both Obsidian and Logseq, and right now, I'm trying out Dendron and liking is so far, especially for my developer log (technical notes).

I like Obsidian for its community and plugins, Logseq for its ability to allow spontaneous brain dumping and dendron for its hierarchical notes and discoverability.
> to claiming it's even faster than hand optimized C++, which is quite honestly unbelievable - whatever the reference counting algorithm is doing can be emulated by the hand-optimised C++ code so that's just literally impossible.

There is nuance here. They claimed that their project is faster than a specific hand optimized project. Not faster than a theoretical peak performance c++ program.

I've run into similar situations where python reimplementation s are faster than java because python is easier to change and fixup algorithms. And %timeit in the ipython shell is way easier than the black magic involved in profiling and benchmarking java.

You also have people on rust subreddit or discourse asking for optimization help when their rust is not as fast as a Go example they wrote. Often you get buffered IO going and it's on par. But to melt faces like ripgrep and friends you often need to drop pretences and work on Vec<u8>s.
> One should often work to further the happiness of others because
this is often in many ways a pretty good proxy for what is to their
benefit

That's one of the best definitions of happiness I've heard. Nicely
put sir.
Overpass[0] is made for exactly these kinds of queries, I'd recommend playing with it.

[0] https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_AP...
Wonder how feasible it would be to have non-battery energy storage technology in people's homes?

eg huge flywheel or some such, maybe in a newly dug basement ;)
Yet, we are all fine running Debian, or Arch, or Alpine, or Gentoo. All community efforts.
Haskell specifically is a poor choice of language here, because it creates cycles like the pest. (This is because it uses lazy evaluation, and programming patterns (design patterns?) using lazy evaluation tend to use cyclical references. Strict FP languages might support your point better, but then Ocaml again doesn't work because it mutates like the pest.)

Furthermore it also allocates like the pest: busy Haskell programs regularly allocate on the order of 1GB/sec. However, this works out fine because the majority of those allocations are short-lived, hence become dead quickly, hence a GC that is designed to only touch live data (like Haskell's GC!) will handle that well.
If the energy is clean, what difference does it make how much we use? Should a break through happen in fusion tonight, and clean limitless green energy became available cheaply, would you still argue we should use less?

The fact remains that what people say they care about, and what they are prepared to sacrifice for, are two totally separate things. What you are suggesting is essentially an enforced recession ( drop in consumption and quality of life).

Politicians are never rewarded for having a recession on their watch. It's just never going to fly. It's as realistic as we can end war if everyone would just be nicer to one another.
"A drone would take 10-20 minutes to cover such a distance"

The strategy would be swarms of drones, who hibernate somewhere in enemy territory and gets activated once needed.

Also, you can have different propulsions, so in the end, basically have smart amunition/rockets.

But like I said, so far the artillery is not going away anytime soon.
But what if my application is say, a diagramming GUI where the user can create many nested items. When they delete a million items by removing a top level item, how are you going to avoid a pause if using single threaded synchronous RC? Per object determinism doesn't mean systemic determinism on a dynamic graph.
> probably very context-dependent and an in-joke for Germans/German
speakers)

I may have heard... it was specifically a barb aimed at John Stuart
Mill.
Been working in fintech (HFT) for well over a decade. Never seen profit and loss abbreviated to P&L. It was always PnL
Surprising case of photoshopping explained at the very end. Smithsonian Magazine has the same photo but without the man in it! I can't tell which is the original but one of them is fake!

No man: https://www.smithsonianmag.com/sponsored/brief-history-solar...

Man: https://babel.hathitrust.org/cgi/pt?id=mdp.39015051407073&vi...
The goal is to prevent any way for attackers to inject code.

Bookmarklets and user scripts are collateral damage.
That feels like a really useful strategy. Thanks for describing it so well.

My inner critic tends to get pretty brutal often.
We'll always have TempleOS ! /ducks (RIP)
Try it on a Tailwind & React based site. Lucky for a site like that it used NextJS so it has a lot of JSON state dumped in plaintext.
Similar to office - Computers were invented, no paper needed. Then printers come along and we are using more paper in office than ever.
https://github.com/ixy-languages/ixy-languages

The real reason why a tracing GC was a failure in Objective-C was due to the interoperability with the underlying C semantics, where anything goes.

The implementation was never stable enough beyond toy examples.

Naturally automating the Cocoa release/retain calls made more sense, given the constraints.

In typical Apple fashion they pivoted into it, gave the algorithm a fancy name, and then in a you're holding it wrong style message, sold their plan B as the best way in the world to manage memory.

When Swift came around, having the need to easily interop with the Objective-C ecosystem naturally meant to keep the same approach, otherwise they would need the same machinery that .NET uses (RCW/CCW) to interop with COM AddRef/Release.

What Apple has is excellent marketing.
Jevons paradox has nothing to do with what the article is about.

It only says that technological efficiency improvements in the production of something creates additional demand for it, leading to an overall increase in usage of the thing.

Nothing was made more efficient. He is not using energy from coal or other fossil fuels, so his usage displaces that usage.
Thanks for the nice words!
The credits and whatever feel like just-another-way to give money to people “lucky” enough to buy a house that they own-something that looks less feasible by the month for the majority, even making plenty, as rates and prices go up. And rent? Well, there’s a meme for that.

I can’t install PV panels even if I want to, but I certainly would not be doing it or even trying for a rental owned by an investment firm who would use it as an excuse to raise rates due to the improvements.
Dear startups: I hate subscription services (2021)
It's a "feature" on the language, like others said below.

The codebase I work with has had many pathological crashes due to this behavior.

So basically in C# when you use += to subscribe to events, in a big system where lifetimes of objects are independent of each other, you're back to a C/C++ mindset where you should check you have a -= call for the subscribed object when the subscribing object is about to run out of scope. Else you get random crashes, when you get events delivered to an object that should have been dead.

This is one of the reasons I don't like "event" and += in C#. It's a leaky abstraction, like you said.

There's WeakEventManager [0] but that's available only in "classic" dotnet framework (and in "new" dotnet but only if you're targeting Windows) since it lives in the WPF namespace. It can be used outside of it, but you still take a dependency on System.Windows.

There are some other bespoke solutions too.

There's an open issue on the dotnet repo to add a weak event manager to the standard libs [1]. It's very well worth reading through it, it also has links to the other bespoke solutions available.

[0] https://docs.microsoft.com/en-us/dotnet/api/system.windows.w...

[1] https://github.com/dotnet/runtime/issues/18645
Scribophile: The writing group and online writing workshop for serious writers
Wars are prosecuted now by Chinese and other countries savings because the dollar is the reserve currency. What happens when the dollar reserve currency is under threat? Do they issue war bonds or cut back on wars and the 800 military bases?
I've started to notice that this is what you always post about Russia/Ukraine, but never with any links to evidence.
> Some people self-host music. I'm trying to self-host my own Internet.

Me too . Haven't got far. Yet
I mean, you aren't wrong. But part of the point is that you should be accepting of feeling uncomfortable.

That is, the contradictions are part of the point. Logic on few variables fails to capture life.
You don’t have to agree on any one degree. You can set up a giant matrix with lengths on one axis, and the sortedness on the other.

Each cell can have a color indicating if TimSort beats, say, some other hybrid of MergeSort; green shades suggest TimSort is winning, red shades suggest the contender is winning.

For each cell, do multiple runs with those sortedness/length parameters and pick the average.
I know my friends and family very well, so… yes? Certainly well enough to know that they do not subscribe to the extreme fringe idea that we need to solve elite crime before we can prosecute shoplifters.

By the way, the branch of my family that would count as poor are uniformly much more conservative than I am.

This type of article may help you understand:

https://amp.theguardian.com/society/2012/jun/05/why-working-...
Neutron stars vary in size, the comparison to a city is to give the rough order of magnitude, not the specific size.

The rough order of magnitude in this case is “big, but not incomprehensible so” unlike most objects in cosmology which are incomprehensibly massive.
Time to tout my own horn. I made a project comparing different types of garbage collectors (I still prefer the original terminology; both ref-counting and tracing garbage collection collects garbage, so they are both garbage collectors) a few years ago: https://github.com/bjourne/c-examples

Run ./waf configure build && ./build/tests/collectors/collectors and it will spit out benchmark results. On my machine (Phenom II X6 1090), they are as follows:

Copying Collector 8.9
Reference Counting Collector 21.9
Cycle-collecting Reference Counting Collector 28.7
Mark & Sweep Collector 10.1
Mark & Sweep (separate mark bits) Collector 9.6
Optimized Copying Collector 9.0

I.e for total runtime it is not even close; tracing gc smokes ref-counting out of the water. Other metrics such as number of pauses and maximum pause times may still tip the balance in favor of ref-counting, but those are much harder to measure. Though note the abysmal runtime of the cycle-collecting ref-counter. It suggests that cycle collection could introduce the exact same pause times ref-counting was supposed to eliminate. This is because in practice cycles are very difficult to track and collect efficiently.

In any case, it clearly is about trade-offs; claiming tracing gc always beats ref-counting gc or vice versa is naive.
Nice! I wish there was one for Android too…
Yeah, GP has no idea what they are talking about. They replied something similar on another thread without ever providing evidence for their claims. They even claimed their RC implementation in Haskell is faster than hand-crafted C++.

Gave me a chuckle.
G1 can do 10 second pauses. I observed them many, many times. It tries not to, but there are no guarantees.
Android Mobile Attack Surface
I mean... people program large developments in Rust with pretty minimal use of Arc. It's clearly possible to structure many programs this way (though they do not necessarily look like programs in other languages). It's important not to make extreme and definitive statements about what's realistic that are contradicted by a bunch of existing programs... in any case this has little bearing on the reference counting vs tracing GC performance thing. It also might be instructive to look at how Rust frameworks deal with your UI example: mostly, by keeping a vector of UI widgets and reusing the allocation over and over. Therefore, you shouldn't see a significant pause there (you could probably argue the pause comes when resizing the vector technically, but it is generally efficient enough that you're not going to notice it unless the vector is very very large).
Because logical relations are not only binary. If you have a logical formula f(x,y,z) (which applies to triplets of people, or machines or a network, or natural numbers or whatever) - then the combinatorial object corresponding to this relation is a hypergraph with (directed) 3-node edges.
> For me, part of the process of dealing with anxiety (amongst others, like mindfulness and self-kindness) is learning how to achieve my ambitions by making realistic goals, and learning how to feel pleasure in "small", consistent achievements (the depressed brain is excellent at making every achievement seem worthless). Feeling pleasure in these small achievements is important in order to fuel the necessary consistency of said achievements.

I try to stick to this strategy. Often times though, like when I watch an interview of a young(ish) founder of a company or read about a Fields medal winner on Quanta magazine, a cycle of self-pity mixed with self-hate and a strong feeling of worthlessness begins. I begin to day-dream of life trajectories when I wasn't drowned in trauma and was actually able to achieve my potential.

Then it becomes harder to get back to focusing on my smaller objectives as they start to feel mundane. I realize on an intellectual level that these smaller objectives are what will help me in the long run but on an emotional level I feel worthless and leading an inconsequential life.

However, I do thank you for writing up your experience. I feel it will help me re-enforce my strategy and not get caught up in the webs of emotional abuse my inner critic.
It spins up because that mass carries angular momentum.
The way I've seen at least some standards structured, you could take a FIPS entropy source and XOR it with a non-FIPS entropy source and from a security perspective (disregarding consideration of complexity introducing bugs or side channel attack considerations) you'd be no worse off than using one entropy source on its own, but would potentially gain the benefit of not having to trust a single standard/implementation. Linux and BSD kernels already use this approach with CPU-supplied entropy sources which the kernels do not just inherently trust (there is no way to verify the implementation).

For encryption, you could have a FIPS-compatible TLS connection over a non-FIPS Wireguard tunnel and again be no worse off (excluding performance etc reasons), whilst gaining the benefit of not having to trust one implementation exclusively.

Are there any standards that you are aware of that would prohibit mixing FIPS and non-FIPS entropy and encryption techniques as described above?
You’ve missed the point. Energy use by itself does not lead to global warming.

Energy sourced by burning fossil fuels does.

Deprecating harmful sources of energy is what we care about, not total consumption.

There is no compelling argument against increasing energy consumption if it’s from clean sources.
Support for Trump, even from the people who did support him, was objectively shocking. He insulted prisoners of war during his campaign which was a bridge that I don’t think any Republican or Democratic candidate thought could be crossed. From his wacky personality to his unconventional basket of positions to his boorish behavior I don’t think it’s contemptuous to state that this is all extremely unusual and shocking.
Cooperative multitasking is incredible for server side applications.
> but I think it’s all too easy to use a philosophical observation
that a concept isn't "a thing" when what you mean is probably it's
an abstraction for lots of things with disparate factors and
implications

Absolutely. And it's a bit of an empty neologism. What I'm getting at
is those things we think we've a solid definition of, but are slippery
and gets away. The "thing" is the misguided idea that there's a common
'object' there.