HN user

colatkinson

362 karma

https://colatkinson.site

I lurk 99% of the time

Posts2
Comments93
View on HN

Your version of glibc is too old. Mint 19 is based off Ubuntu 18.04, which ships glibc 2.27, whereas this binary seems to require symbol versions first shipped in glibc 2.34.

You'll have to compile from source, or update your distro to a maintained version. Ubuntu 22.04 ships glibc 2.35, and so Mint 21 should work.

Mostly commenting because while this isn't really a tech support channel, being able to identify glibc version mismatch errors comes up extremely often, even in this day and age.

The old Tappan Zee was basically a perfect encapsulation of "dumb midcentury infrastructure decisions."

1. Built to last only 50 years to save on materials (as the other commenter noted).

2. Built over literally the widest possible part of the Hudson because the governor got in a pissing contest with the Port Authority and wanted all the tolls to go to the state, which wouldn't have been the case had it been built like 2 miles south where the river is narrower.

3. Designed with zero redundancy, such that a "critical fracture could make the bridge fail completely because its supports couldn’t transfer the structure’s load to other supports." [0]

So yeah if we're being real, 50 years was quite optimistic.

The new Tappan Zee is apparently supposed to last 100 years, though given the incidents with substandard materials being used, as well as ever-increasing traffic, who knows.

That said, driving over a bridge 10 years past its planned EOL and being able to look down directly to the water through gaps in the concrete was always a nice feature though -- who needs coffee when you've got that to get your heart rate up!

[0] https://en.wikipedia.org/wiki/Tappan_Zee_Bridge_(1955%E2%80%...

God yeah it's like a hypothetical version of the AirTrain that isn't a huge pain. Last time I flew out of JFK from Manhattan IIRC the easiest way was to do the E or LIRR from Penn to the AirTrain anyway, so might as well streamline the whole shebang.

Adding on to the other comment, multiprocessing is also kinda broken on Linux/Mac.

1. Because global objects are refcounted, CoW effectively isn't a thing on Linux. They did add a way to avoid this [0], but you have to manually call it once your main imports are done.

2. On Mac, turns out a lot of the system libs aren't actually fork-safe [1]. Since these get imported inadvertently all the time, Python on Mac actually uses `spawn` [2] -- so it's roughly as slow as on Windows.

I haven't worked in Python in a couple years, but handling concurrency while supporting the major OSes was a goddamn mess and a half.

[0] https://docs.python.org/3.12/library/gc.html#gc.freeze

[1] https://bugs.python.org/issue33725

[2] https://docs.python.org/3.12/library/multiprocessing.html#co...

If you don't mind I'm super curious as to what approach you ended up taking. Did you use rules_foreign_cc to build the ninja files they generate? Or generating BUILD files directly? Or something completely different? Sounds like a really cool project!

This is a super common setup in my part of NYC (minus the elevator). It seems to work fairly well, especially since it makes it viable to have lots of buildings in a row with minimal wasted space between them.

It's definitely not the densest design possible, but it certainly seemed to let them fit a lot of fairly spacious 1-2 BRs in not a lot of space back in the early 20th c., and the height can scale up pretty well (though the elevator probably becomes at least a soft requirement above 4-5 floors).

Not sure if you're aware, but ransomware insurance is already a significant industry, and the contracts usually stipulate that the client company undergoes some type of regular auditing.

From what I've heard, insurance companies are actually kinda souring on the business because it's incredibly bad from an actuarial perspective: many of those targeted are SMBs (i.e. they're not paying the kind of premiums that would make it worthwhile), but even for large corps as time passes the odds of a ransom event approach 1. I mean, can anyone think of a large non-tech enterprise that doesn't have that doesn't have that one load-bearing Windows Server 2008 machine in a closet?

So to an extent, this seemingly represents the industry collectively declaring that even massive monthly insurance premiums are insufficient for companies to get their security posture together, and so they're trying to cut it off at the source by making ransomware as an endeavor unprofitable.

Yeah to be honest I think approvingly quoting the author of "The Fascist Manifesto" probably well exceeds the cutoff for "dogwhistle." At this point the only thing left is for a16z to start a youth brigade and invade Ethiopia.

Reference counting is a type of GC [0]. Just not a very good one in many cases.

I think it's a fair assumption to say that the author is aware of what Arcs are and how they work. I believe their point is more so that because of how async works in Rust, users have to reach for Arc over normal RAII far more often than in sync code. So at a certain point, if you have a program where 90% of objects are refcounted, you might as well use a tracing GC and not have the overhead of many small heap allocations/frees plus atomic ops.

Perhaps there are in fact ways around Arc-ing things for the author's use cases. But in my (limited) experience with Rust async I've definitely run into things like this, and plenty of example code out there seems to do the same thing [1].

For what it's worth, I've definitely wondered whether a real tracing GC (e.g. [2]) could meaningfully speed up many common async applications like HTTP servers. I'd assume that other async use cases like embedded state machines would likely have pretty different performance characteristics, though.

[0] https://en.wikipedia.org/wiki/Garbage_collection_(computer_s...

[1] https://tokio.rs/tokio/tutorial/shared-state

[2] https://manishearth.github.io/blog/2015/09/01/designing-a-gc...

Mastodon for sure supports fetching individual posts over ActivityPub. For example:

    curl -L -H 'accept: application/activity+json' 'https://mastodon.social/users/Gargron/statuses/18614983'
It does have a bunch of stuff that isn't federated though, such as Like counts/collections. And of course it only implements the server-to-server (S2S) part of AP, not the client-to-server (C2S) part.

Ehh Indian Point (the NY plant) wasn't really a concern with regards to natural disasters. We get some occasional (very minor) earthquakes and a hurricane once in a decade or so, but I doubt the latter would do much vs many tons of reinforced concrete.

The plant definitely had issues -- some due to age (construction started in 1956!), some due to mismanagement, and some due to dumb regulations [0]. My chem class went there on a field trip in high school, and the guy giving the tour definitely gave off "engineer who has been overruled by management in very dumb ways" vibes while explaining that their waste silos were almost full because they weren't allowed to transport the spent rods across state lines so that they could be recycled back into fissile materials.

As an aside, the control rooms had a real "retro-futurism" look. Lots of manual dials and brightly-colored plastics [1]. Gene Roddenberry eat your heart out, etc.

[0] https://en.wikipedia.org/wiki/Indian_Point_Energy_Center#Saf...

[1] https://www.lohud.com/story/opinion/2016/02/12/indian-point-...

The issue isn't the states though, it's the fact that it's still scheduled (and thus completely illegal) at the federal level. So those states that have legalized it are in a bit of a gray area: the past few presidents have basically said they won't enforce anything, but that's not exactly the most stable legal foundation on which to build. Especially if you're, say, a multi-billion dollar payment processor.

If the popular consensus is that this is something that should be left up to the states, then federal legislation to that effect should be passed. The status quo is clearly farcical.

That said, my state has technically issued licenses for exactly two (2) dispensaries, and yet there's one on every corner. All of which accept card. So I have my doubts as to whether this is anything other than CYA by Mastercard.

std::expected and a monadic interface for std::optional are very welcome changes. I've ended up with funky utility types to accomplish much the same thing in a couple projects, so an official interface is definitely nifty.

I remember reading that clang was finally shipping std as a module, albeit experimentally. So this ought to be an interesting couple of years for C++ -- though I suppose it remains to be seen to what degree the ecosystem will keep up with all these changes vs using headers/exceptions/the traditional ways of doing things.

That case appears to be specific to Gemini Earn, a "staking" product where users would loan Gemini money and in exchange would get returns on that money through Gemini/Genesis's investment of those funds.

Under the Howey test (a security is "a contract, transaction or scheme whereby a person invests his money in a common enterprise and is led to expect profits solely from the efforts of the promoter or a third party") this is pretty clearly an unregistered security IMO. Whereas e.g. using Gemini solely to exchange N USD for M BTC with the customer retaining ownership the whole time is probably not. So had the Winklevi stuck to being a traditional exchange, they could have avoided this specific issue.

Of course, the SEC seems to believe that many shitcoins are also securities ("Buy this token for a % share in our company! Totally not equity!" is... not a convincing argument). But that's not what the complaint you linked is actually about.

Ehh it's getting into pedantic territory as to what counts as directed vs undirected, but people figured out pretty quick that if you have an animal with a desirable trait you can breed it with others to maybe get offspring that also have that trait.

As an illustrative example, consider the fancy pigeon (see [0] for some pics). One of Darwin's original areas of study was to prove that these birds, many of which have cool-looking but incredibly maladaptive traits, were actually the same species as the pigeons you'd see on a London street. Prior to that, the scientific consensus was that these were fully distinct species -- i.e. the artificial selection happened so long ago that it was lost to time. Given some breeds have trouble even eating (e.g. look at the beak on this guy [1]), I think it's a pretty safe assumption that this breeding did not happen without careful human intervention.

That's not to say that the kind/degree of artificial selection we see in industrial agriculture isn't worlds away from older forms. Once you've got the basics of evolution and the scale of capitalist production, you're starting down the road to the current world of 100 pound antibiotic-riddled chickens in rows of 10000 cages. But humans have been selectively breeding animals for food, utility, or just because we kinda felt like it since time immemorial.

[0] https://en.wikipedia.org/wiki/Fancy_pigeon

[1] https://en.wikipedia.org/wiki/Oriental_Frill

I can't speak to the other cities you listed, but living in New York I think the media narrative around Eric Adams's mayoral victory is... a bit overblown.

It's true that he won 67% of the vote in the actual election [0]. But this was effectively a foregone conclusion -- his Republican opponent, Curtis Sliwa, was a man best known for owning 15 cats [1] and faking his own kidnapping [2].

The "real" election was the primary -- notably the first ever election in the city to make use of ranked-choice voting. Wiley and Garcia, the runners-up in the first round, effectively split the "progressive" vote 50/50. Morales was a significant progressive up until a few weeks before the election, at which time her campaign staff walked out citing poor working conditions, effectively ending her campaign.

Looking at the final-round vote tally [3], it was 404,513 for Adams and 397,316 for Garcia -- a difference of just 7,197. He won, but just by the skin of his teeth. The population of NYC in 2021 was 8,468,000, with 4,992,792 registered to vote [4]. That doesn't exactly paint the picture of a resounding victory and a mandate to crack down on ne'er-do-wells that the Post would have you believe. It starts to look a bit more like a perceived centrist barely squeaking through by merit of being the best-known/least-objectionable candidate.

This of course speaks to OP's point: do the public really crave a paternalistic figure who will come and "crack down on crime" (i.e. sign off on more... questionable overtime pay for the NYPD) or is there, for some reason, undue weight given to the narrative that just by happenstance sounds identical to SBA/PBA talking points?

[0] https://www.cnn.com/election/2021/results/new-york-city/mayo...

[1] https://nypost.com/2021/06/23/an-inside-look-into-curtis-sli...

[2] https://www.latimes.com/archives/la-xpm-1992-11-25-mn-1060-s...

[3] https://www.nytimes.com/interactive/2021/06/22/us/elections/...

[4] https://vote.nyc/sites/default/files/pdf/vote/2021/county_fe...

In this case, it seems that GitHub was asked about it. From the thread linked in the article:

After a fruitful exchange with GitHub support staff, I was able to confirm the following (quoting with their permission):

> I checked with our team and they confirmed that we can expect the checksums for repository release archives, found at /archive/refs/tags/$tag, to be stable going forward. That cannot be said, however, for repository code download archives found at archive/v6.0.4.

> It's totally understandable that users have come to expect a stable and consistent checksum value for these archives, which would be the case most of the time. However, it is not meant to be reliable or a way to distribute software releases and nothing in the software stack is made to try to produce consistent archives. This is no different from creating a tarball locally and trying verify it with the hash of the tarball someone created on their own machine.

> If you had only a tag with no associated release, you should still expect to have a consistent checksum for the archives at /archive/refs/tags/$tag.

In summary: It is safe to reference archives of any kind via the /refs/tags endpoint, everything else enjoys no guarantees.

(posted 4 Feb 2022)

https://github.com/bazel-contrib/SIG-rules-authors/issues/11...

There's even a million linked PRs and issues where people went around and specifically updated their code to point to the URLs that were, nominally, stable.

I suspect that the GH employee who made these comments just misunderstood how these archives were being generated, or the behavior was depending on some internal implementation detail that got wiped away at some point. But if an employee at a big-ass company publicly says "yeah that's supported" to employees at another big-ass company, people are gonna take it as somewhat official.

Heat pumps can have back up electric heating elements to provide the heating in the extremes. You get a more resilient system than gas.

Sorry if I'm misunderstanding, but wouldn't the backup electric heating elements require, well, electricity to function?

I'm no fan of gas, but the idea of losing heating, phone service (the old copper wire systems could function even in a blackout), the ability to cook (since gas stoves are being phased out), and the ability to travel (EVs and some trains) because a transformer exploded is kinda scary. Like, we're putting all our faith in a system that is routinely knocked out by errant tree branches.

Maybe we could do buried lines, but given infra costs in the US that sounds... expensive. Someone in another thread mentioned heat reservoirs of some kind, but I have no idea how realistic that is. Even if it buys a few extra hours, that'd improve things dramatically.

From the sound of it, you're far more familiar with specific legislation than I, so maybe I'm totally off and all this has been taken into account. But having experienced an extended blackout and my family realizing we couldn't even boil water, I'm apprehensive to say the least. IMO it'd be nice to move away from fossil fuels without betting lives on ConEd doing repairs in a timely fashion.

NOT a colony.... we're a territory

How did the US acquire said territory? And after they acquired it, what did they do to those who did not want their nation to be a "territory?" For those unaware, I'll give you a hint: it did not involve a hearty Socratic discussion followed by a game of badminton [0].

If you think puerto rico becoming it's own country and missing out on the aid, support and ease of travel provided by the federal government you are either malevolent or naive.

This worked out rather well for the Hawaiians, who are currently having their groundwater poisoned by the US military [1], and their ancestral land acquired by mainlanders while they are made homeless [2].

In the recent non-binding referenda, and the bill to have a binding referendum which recently died in committee, there has been an option for "independence with free association" -- that is, an independent nation-state but with strong free trade and free travel agreements baked in [2]. Statehood is that, plus being subject to the whims of voters in Wisconsin, Idaho, et al. as to whether Puerto Ricans should be allowed funding for things. Keep in mind that there is no way out of this setup short of insurrection.

Given Puerto Rico has a distinct language, culture, etc. from the US, I can only assume we're deciding that the Westphalian model of the nation-state is not a consideration. Given this, I would also like to propose the following for statehood:

1. Korea

2. Vietnam

3. Iraq

4. Iran

5. Afghanistan

6. Somalia

7. Syria

8. Mexico

9. Haiti

10. Dominican Republic

These countries would surely flourish with the support and aid provided by the US federal government. And they were already, at one point or another, occupied by the US. So I can think of no reason not to annex them, short of naïveté or malevolence.

[0] https://en.wikipedia.org/wiki/Utuado_uprising

[1] https://www.theguardian.com/commentisfree/2022/jan/04/the-us...

[2] https://thehomemoreproject.org/blog/the-hawaiian-homelessnes...

Yeah, this is how it works. I don't know the technical details/internal terminology, but I've definitely had a few accounts I follow switch servers for various reasons. It was basically just "oh hey so-and-so's handle changed" from my perspective, which is kinda neat.

I don't think the follower count being that high is a hard requirement. The sentence in full:

Follower or Mention Count: If your account is detected to be in the top .05% follower or mention count for your geographic location, it may count towards notability evidence for certain categories.

Emphasis mine.

The other listed sources of "notability" are things like news coverage, IMDB references, and Google Trends. So for example, an elderly state senator who "never quite figured out the socials" would not have millions of followers, but would be eligible for verification because they are notable for other reasons.

The follower count thing seems more like a bolster for influencers and such. They won't have industry references, given that they aren't really in an industry per se, and they won't probably won't end up on the front page of the NYT just for having lots of followers. But nonetheless, it's in the best interest of both the influencer and Twitter to avoid having phonies of the influencer promoting scams.

Way back when EVs/hybrids were first hitting the market, I remember some chatter about basically adding an external speaker to play fake engine noises. Not perfect, but it might help a bit.

I've personally encountered a decent number of Tesla/e-bike drivers who have... nonstandard views on what a stop sign means, and the fact that the vehicles are silent is always a bit disconcerting.

With regards to chroot, I stand corrected. I knew it was a tree of symlinks, but I thought it was also more than that because symlinks alone don't seem like a sandbox. Honestly, Cosmopolitan's system appears to be more of a sandbox than that.

To be totally clear: the tree of symlinks thing is a fallback, used only when lacking platform support or when sandboxing is explicitly turned off [0]. On Linux, the normal sandboxing strategy is to use namespaces, like most container runtimes. On Mac it apparently uses sandbox-exec (some opaque Apple tool), as was mentioned above. Chroot, being both non-POSIX, requiring root access on many systems, and not providing the necessary facilities is not really a great fit -- which I assume is why it's not used.

There was experimental Windows sandbox support at one point [1] based on how MS does it for BuildXL (their own build tool for giant monorepos) [2]. Unfortunately it doesn't seem to be maintained, and under the hood it's kinda ugly -- it actively rewrites code in-memory to intercept calls to the Win32 APIs [3], which was apparently the cleanest/best way MS could come up with. However, from Bazel's POV it works in a roughly similar way -- you spawn subprocesses under a supervisor, which is in charge of spinning up whatever the target process is with restrictions on time/memory usage/file access.

On the "sandbox in the interpreter" thing: what kind of checks are you envisioning? It seems like putting checks at that level would end up leaving a lot out -- the goal of any build system is to eventually spawn an arbitrary process (Python, gcc, javac, some shell script, etc.) and so even with extensive checks in starlark you'd end up with accidental sandbox breaks all over the place. For pure starlark rules you could e.g. check that there are no inputs from /usr, but even then if gcc does it implicitly, you're SOL. Or am I thinking of the wrong kind of checks?

EDIT: somehow missed your sibling comment. Nix is definitely cool, and is pretty similar to how Bazel does things with regards to explicit build graphs. The check for "well-known commands" would also be cool IMO. That said, Nix also has a chroot-y sandbox-y thing it uses to spawn processes -- so they're not all that different [4].

[0] https://bazel.build/docs/sandboxing#sandboxing-strategies

[1] https://github.com/bazelbuild/bazel/issues/5136#issuecomment...

[2] https://github.com/microsoft/BuildXL/blob/master/Documentati...

[3] https://github.com/microsoft/Detours/wiki

[4] https://nixos.wiki/wiki/Nix_package_manager#Sandboxing

I think it's ultimately because the "dumb blonde heiress" thing has made her oodles and oodles of money. She's far from a "started from nothing story," given her family. But that said, she's incredibly successful beyond that, at least in part because of her ability to generate free publicity at will.

Her perfume line brings in $2.5 billion in revenue. Her retail businesses bring in $4 billion in sales. That's on top of her music career, and being paid six figure sums just to show up at parties.

If she'd been sensible, I'm sure she could've gone off to Harvard or Wharton, taken over the family empire, and be sitting next to her vaguely-abusive father in a board meeting right now. But being a coked-out ditz is apparently very, very profitable, and has given her decades of staying power in the public consciousness.

That said, I do think it's harder to say if it was a conscious strategy (i.e. a publicity team sitting around saying, "Ok Paris, tonight you're going to throw a drink at Bill from TMZ, we've already set it up") vs the fact that one can be both a complete mess in some aspects of your life and well put-together in others. If the checks keep rolling in, and you're still having fun with it, I'm sure that "all publicity is good publicity" becomes a pretty reassuring mantra over time. Our obsession with Spectacle does the rest.

To draw a parallel: look at Elon Musk. He's built a personal brand around posting cringy memes on Twitter. Is he a moron? Possibly, in at least some senses. Has his public persona made him buckets of money and contributed to Tesla having a PE ratio that confuses the hell out of analysts? Undoubtedly. One's just targeted at twenty-something women who watch too much reality TV, and the other at twenty-something men who read too much Reddit.

I have a bit of experience programming for a highly-parallel supercomputer, specifically in my case an IBM BlueGene/Q. In that case, the answer is a lot of message passing (we used Open MPI [0]). Since the nodes are discrete and don't have any shared memory, you end up with something kinda reminiscent of the actor model as popularized by Erlang and co -- but in C for number-crunching performance.

That said, each of the nodes is itself composed of multiple cores with shared memory. So in cases where you really want to grind out performance, you actually end up using message passing to divvy up chunks of work, and then use classic pthreads to parallelize things further, with lower latency.

I forget the exact terminology used, but the parent is right that the interconnect is the "killer feature." To make that message passing fast, there's a lot of crazy topography to keep the number of hops down. The Q had nodes connected in a "torus" configuration to that end [1].

Debugging is a bit of a nightmare, though, since some bugs inevitably only come up once you have a large number of nodes running the algorithm in parallel. But you'll probably be in a mainframe-style time-sharing setup, so you may have to wait hours or more to rerun things.

This applies less to some of the newer supercomputers, which are more or less clusters of GPUs instead of clusters of CPUs. I imagine there's some commonality, but I haven't worked with any of them so I can't really say.

[0] https://www.open-mpi.org/

[1] https://www.scorec.rpi.edu/~shephard/FEP19/notes-2019/Introd...