HackerTrans
TopNewTrendsCommentsPastAskShowJobs

colatkinson

no profile record

comments

colatkinson
·قبل سنتين·discuss
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.
colatkinson
·قبل سنتين·discuss
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%...
colatkinson
·قبل سنتين·discuss
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.
colatkinson
·قبل سنتين·discuss
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...
colatkinson
·قبل سنتين·discuss
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!
colatkinson
·قبل سنتين·discuss
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).
colatkinson
·قبل 3 سنوات·discuss
For anyone else who immediately thought, "I've gotta try that!" and hit compilation errors: there appears to be a more maintained fork at [0].

And if you're on a 64-bit system, you'll want to make sure it finds the 32-bit libc and libm binaries (see [1]). On Arch, the following worked for me:

    ./build/movcc -L/usr/lib32 test.c
[0]: https://github.com/xoreaxeaxeax/movfuscator

[1]: https://github.com/xoreaxeaxeax/movfuscator/issues/39
colatkinson
·قبل 3 سنوات·discuss
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.
colatkinson
·قبل 3 سنوات·discuss
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.
colatkinson
·قبل 3 سنوات·discuss
Mastodon link for those so inclined: https://ioc.exchange/@matthew_d_green/111091979256440306
colatkinson
·قبل 3 سنوات·discuss
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...
colatkinson
·قبل 3 سنوات·discuss
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.
colatkinson
·قبل 7 سنوات·discuss
This looks incredible. Gives me vibes of old school Runescape, mixed with Minecraft. Plus the performance as you've detailed it sounds like quite a feat! Also very cool to see a project that supports old hardware--I remember being a kid with hand-me-down computers struggling to play even some Flash games.

Gonna give this a play tonight. Rock on, dude!