cultural reviewer and dabbler in stylistic premonitions

  • 460 Posts
  • 927 Comments
Joined 4 years ago
cake
Cake day: January 17th, 2022

help-circle

  • Arthur Besse@lemmy.mltoPrivacy@lemmy.ml"Trusted" eMail Providers?
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    5 days ago

    Mailbox.org lets you keep your own private key.

    Every email provider lets you keep your own private key if you do encryption using the interoperable OpenPGP standard using software running on your own computer. Many email providers will recommend that you do exactly that, and will helpfully instruct you about how to do so (eg, the more reputable options in this thread such as migadu.com, mailbox.org, posteo.de, and even fastmail.com all have instructions for how to use some implementation of pgp to encrypt your email).

    Meanwhile any company selling non-standard “email encryption” (eg, proton and tuta) which is not compatible with pgp (or, in the corporate world, s/mime, which is also a standard…) is firmly in the snake oil business and should be distrusted and boycotted regardless of which shitty youtubers they’re sponsoring this week.




  • Companies now block older browser versions

    Now? This has been happening since the dawn of the web. At least the screenshot you pasted represents all of the big three rendering engines - it used to be common to see “Internet Explorer version XYZ required”, sometimes with javascript to prevent you from using the site with any other browser (even if in some cases it would actually work fine if you simply spoofed your user agent string).

    I have used kinda retro devices to surf the web at times

    Most websites became HTTPS-only sometime after the snowden disclosures in 2013.

    Over time old versions of TLS have been deprecated and eventually support for them is dropped from browsers and web servers alike. So, a browser from even 15 years ago literally cannot connect to most webservers today.

    Planned obsolescence is terrible but it’s a minor factor here: it’s actually dangerous to use even (especially?) a slightly-out-of-date web browser because every new release fixes vulnerabilities which can be exploited to run malicious code on your computer. The planned obsolescence which prevents people from being able to have an up-to-date browser comes mostly from proprietary operating system vendors; to have up-to-date software while continuing to use somewhat older computers you need to use free/libre software.





  • As others have said it is a huge amount of work to maintain a fork of such a complicated piece of software.

    Especially around security: web browsers constantly process potentially-malicious data, which gives them a large attack surface. Every browser regularly has new vulnerabilities discovered which must be fixed. Hard forking a browser means that, even ignoring any bugs in the new code the fork has added, every time a bug is discovered and fixed in the code they forked from someone needs to analyze the upstream’s fix and port it to the fork. The more they diverge, the more work this is. Failing to do this work lets any malicious website exploit the bugs and install malware on users’ computers.





  • Arthur Besse@lemmy.mltoScience Memes@mander.xyzWhales are Chinese
    link
    fedilink
    English
    arrow-up
    97
    ·
    edit-2
    13 days ago

    another screenshot of a tweet, no link, no alt text, smh my head.

    imo science memes should link the science!

    Here is the paper from April which this tweet is actually referring to: https://royalsocietypublishing.org/rspb/article/293/2069/20252994/481340/The-phonology-of-sperm-whale-coda-vowels

    Unsurprisingly the tweet’s characterization of the research as finding whale language “structurally comparable to Chinese” is an exaggeration; they are actually saying it is similar to tonal languages and then using Mandarin as one example of a tonal language.

    here are the two paragraphs which actually mention Chinese

    Human vowels consist of a sequence of glottal pulses produced by vocal folds. Whale codas consist of a sequence of clicks produced by vibrating phonic lips, which play a role similar to the human vocal folds [15]. In human languages, the frequency of glottal pulses corresponds to pitch—closely spaced glottal pulses give rise to a higher pitch, while more widely spaced pulses give rise to a lower pitch. In linguistics, tone refers to pitch as recruited to express linguistic meaning. Many languages use tone to distinguish between different words. For example, in Mandarin Chinese, the following four words differ only in their tonal contour, while having the same consonants and vowels [21]: high and level tone ma ‘mother’, rising tone ‘hemp’, falling-rising tone ma ‘horse’ and falling tone ‘scold’. The coda types can therefore be compared to human tone: ‘regular’ coda types can be compared to level tones, codas with ‘increasing’ ICIs to falling tones and codas with ‘decreasing’ ICIs to rising tones. (However, our analogy has a limit: while in human languages, different tones can be associated with different meanings, the meanings conveyed by sperm whale codas have not been established.) In figure 1, the ‘F0’ (fundamental frequency) of each coda is represented with a blue line.

    Beguš et al. [15] show that different coda vowel qualities can be instantiated on the same coda types and propose that coda type and coda quality are orthogonal [15]. This points to another parallelism between the sperm whale communication system and human language, as tone and vowel quality are often similarly orthogonal. For example, in Mandarin Chinese, the falling–rising tone may appear on any vowel, e.g. ma ‘horse’, ma ‘rice’ and ma ‘smear’. Orthogonality, in this case, is used to describe the independent mechanisms of production between the traditional timing or source features and the vocalic or filter features. In other words, the rate of vocal fold or phonic lip vibration can be independent of the shape of the resonant body (the vocal tract or the distal air sac), and both vowel types surface on several traditional coda types. However, while the production can be independent, there can still exist distributional patterns, where a vowel quality is more frequent on certain tones or some coda vowels are more common on certain traditional coda types. Our paper builds on Beguš et al.’s [15] findings and reveals further complexities within the system of sperm whale vocalizations.

    Here is an article about it: https://www.theguardian.com/environment/2026/apr/15/sperm-whales-alphabet-vocalizations-similar-humans …which also links this other fascinating news from the same lab from back in March https://www.theguardian.com/environment/2026/mar/27/scientists-film-whale-giving-birth-other-whales-help-her (“This is the first evidence of birth assistance in non-primates”)

    finally here https://xcancel.com/kuso_otoko/status/2062224294835540161 is the tweet this post is a screenshot of, where you can find people in the replies already making the predictable “met them at a very Chinese time in their life”, “that’s why japan hates them”, etc jokes.

    note

    i’m definitely not working in China’s Cetacean Ops and trying to prevent the western world from finding out that whale speak is just super slowed down Mandarin, i swear


  • One shot rewriting the whole test suite

    tridge’s blog post makes it clear that this was not “one-shotted” at all.

    You should read the whole thread

    I regret reading it; I’ll assume in good faith that it wasn’t LLM generated but it is ironically as confidently wrong as if it were.

    It almost (and should have) lost me when it started by quote-agreeing with someone else saying “rsync was basically done until the maintainer discovered vibecoding” - no, pay attention, it was not “basically done”, there were/are a mountain of CVEs!

    But then this got my interest:

    This does not “translate tests into pytest” or a unit testing framework, it writes its own testing framework where tests are whole python scripts that redefine basic test functions in every script. Surely there would be a single way to “run rsync and get the results” - nope, well, there is, but then every test file will randomly redefine its own _run_and_capture function.

    tridge says he has used pytest on other projects and had good reasons not to use it here; I’m inclined to believe him.

    But the notion of every test defining its own way to invoke rsync sounded like a valid criticism, and an easy one to verify, so I checked: It turns out that there is in fact a common run_rsync function which is used by the majority of the tests. One test defines its own _run_and_capture function (which differs in that it writes the output to a file, for reasons I didn’t investigate), and it looks like a few others invoke rsync other ways, but the majority of them use the common function.

    So, that rambling thread’s sole concrete criticism of rsync’s new python tests turns out to be false.





  • The 2021 paper OSRM-CCTV: Open-source CCTV-aware routing and navigation system for privacy, anonymity and safety says they published source code at https://github.com/Fuziih but I don’t see it there now (though there is a related project called cctv-exposure).

    The final published version of the paper seems to be paywalled; it’s probably on scihub but there is also a preprint of it here on arxiv.

    https://github.com/FNBIP/ghost-route (just 3 commits, from February this year) says it is inspired by the paper and “extended to a production-grade multi-mode threat routing system”. It’s a node app you run locally (there doesn’t appear to be a public instance currently) which would be nice if it could work offline but unfortunately “Offline mode with pre-downloaded OSM tiles” is still on the roadmap and it currently lists “A Mapbox GL JS token (free tier works)” as a requirement (which is probably why there isn’t a public instance - someone would need to pay mapbox if they wanted to run it for other people).

    I have not tried it; if anyone reading this has or does please post here about how it works!












  • A Rocket To Nowhere is an entertaining blog post which covers the design compromises you’re talking about:

    spoiler

    [735 of the 4.1k words of the above-linked blog post]

    By the time Shuttle development began, it was clear that the original vision of a Shuttle as part of a larger space transportation system was far too costly and ambitious to receive Congressional support. So NASA concentrated on building only the first component of its vision, a reusable manned spacecraft that could reach low earth orbit. Since NASA assumed it would be able to fly Shuttle missions with a turnaround time as low as two weeks, this left the vexing question of what to do with all that spare launch capacity. The tiny commercial launch market was in no shape to supply such a wealth of satellites, so NASA turned to the one agency that had an abundance of things requiring shooting into space - the Air Force - and asked it to abandon its unmanned rocket programs, instead committing all future satellite launches to the Shuttle.

    The Air Force was only too happy to agree, but at a crippling price. What the Air Force wanted to launch was spy satellites - lots of them, bulky telescopes with heavy mirrors, the bigger the better - and it wanted to launch them in an orbit over the Earth’s poles, so they could snoop over the maximum amount of Red territory. This meant NASA had to go back to the drawing board, since polar orbits would require a heavier orbiter than the Shuttle design had anticipated, which in turn meant using a bigger rocket at launch, and dissipating more heat during re-entry.

    Moreover, there was no way to launch a polar mission safely from Kennedy Space Center — it would mean overflying either heavily populated areas in the Carolinas or risking capture of a fuel tank by the wily Cubans. So the Air Force also demanded, and got, billions in funding to build a new Shuttle launch facility at Vandenberg Air Force base in California. And because some of the Air Force’s military missions involved capturing a Soviet satellite on the sly and landing after one orbit, the Air Force demanded that the Shuttle be capable of gliding over a thousand miles cross-range during re-entry, so that it could catch up with the rapidly eastbound Air Force base underneath it. This meant bigger wings, which in turn meant more weight, an even more powerful rocket, and again a more complicated heat shield.

    Most of the really wrong design decisions in the Shuttle system — the side-mounted orbiter, solid rocket boosters, lack of air-breathing engines, no escape system, fragile heat protection — were the direct fallout of this design phase, when tight budgets and onerous Air Force requirements forced engineers to improvise solutions to problems that had as much to do to do with the mechanics of Congressional funding as the mechanics of flight. In a pattern that would recur repeatedly in the years to come, NASA managers decided that they were better off making spending cuts on initial design even if they resulted in much higher operating costs over the lifetime of the program.

    To further cut costs, and keep the weight from growing prohibitive, the Shuttle became the first manned spacecraft to fly without any kind of crew escape system, relying on certain components (solid rockets, wing tiles, landing gear) to function with complete reliability. NASA also decided not to make the Shuttle capable of unmanned flight, so that the first test flight of the vehicle would have astronauts on board. This was a major departure for the traditionally conservative agency, which had relied on redundant systems wherever possible, and always tested unmanned prototypes of any new rocket. It showed how confident NASA had grown in its ability to correctly predict, simulate, and design for high reliability.

    The final Shuttle design, incorporating all of the budgetary and Air Force design constraints, was impressive but not particularly useful. Very soon after the start of the program, it became clear that Shuttle launches would not be routine events, that it would cost a great deal of money to repair each orbiter after its trip to space, and that estimates of launch cost and frequency had been wildly optimistic. At the same time, the Air Force proved unable to get the Vandenberg base ready for use, negating much of the reason for the extensive Shuttle redesign. After the Challenger explosion, the Vandenberg base was quietly mothballed. Not once did the Shuttle fly a mission to polar orbit.


  • Arthur Besse@lemmy.mlOPtoScience Memes@mander.xyzquick explanation
    link
    fedilink
    English
    arrow-up
    21
    ·
    edit-2
    18 days ago

    python -c 'import time as t; a="o"; all( (print(a), a:=a.replace(*["o","O","8","oo"][i%3:i%3+2]), t.sleep(max(.3,1-i/50))) for i in range(60))'

    edited to make it stop after 1MB; notes here:

    someone asked in a reply:

    Does that loop infinitely

    The first version I posted would loop infinitely… if you have infinite RAM, that is 🫠 (the length of the string will reach 1KB after 30 iterations, and 1MB after 60, 2MB after 63, and so on). Also, to keep the loop in a single line I had foolishly used a list comprehension which meant each previous iteration was also being retained.

    Fortunately the rate of memory consumption is not too fast because python string replacement is very slow, but, thanks to your question making me think about it, to avoid eventually crashing someone’s computer if they don’t know to hit ctrl-c to kill it, i’ve now edited it so that it will stop after 60 iterations. I also made it use all() to consume a generator comprehension instead of a list comprehension, to avoid retaining the state of previous iterations.

    here is my very inefficient list-comprehension-using original version which will run until it runs out of memory:

    python -c 'import itertools as I,time as t;a="o";[(print(a),a:=a.replace(*["o","O","8","oo"][i%3:i%3+2]),t.sleep(max(.3,1-(i/50))))for i in I.count()]'

    if you leave this version running long enough, you will be at the mercy of your operating system’s out-of-memory-killer: if it decides to kill other things before it kills this python process you might have a bad time.

    here is another version which will actually loop infinitely without consuming more RAM:

    python -c 'import itertools as I,time as T; all((any(print(["o","O","8"][i%3],end="")for _ in range(2**(i//3))),print(),T.sleep(max(.3,1-i/50)))for i in I.count())'

    this is technically not completely constant-space because i and 2**(i//3) are still growing… but it will run for a very very very long time before it needs to allocate a small amount more.

    I’m leaving the space-inefficient now-not-infinite one at the top of this comment because using replace() is easier to read than this nested loop version.







  • Is this something that websites opt into and add to their own site?

    Yes.

    reCAPTCHA is google’s “anti-abuse” service which many websites use to prevent slightly increase the cost of operating automated crawlers (which somewhat ironically google operates one of the largest of itself, for their search engine).

    Before neural networks could solve CAPTCHAs reliably, spammers were solving them with human labor; solving services like anti-captcha.com (intentionally not a clickable link…) today use a mixture of automated and human solvers.

    In the future google is apparently building, solving services will need farms of able-to-run-a-recent-android-release mobile devices with some kind of trusted computing hardware, each one of which they’ll have to use sparingly enough to keep usage of its unique ID under some plausibly-human threshold.

    And even if you do have a phone and are willing to identify yourself with it, if it is too old to run a recent enough Android you also will sometimes be denied services for being unable to pass a robots’ “human” test.

    🤮