cultural reviewer and dabbler in stylistic premonitions

  • 20 Posts
  • 101 Comments
Joined 5 years ago
cake
Cake day: January 17th, 2022

help-circle




  • But why rewrite programs that existed for decades and have proven their stability and safety? Rewriting them to Rust won’t make them safer, it will just introduce the kind of issues original versions have got fixed long ago.

    Of course rewriting them will introduce some new issues, but it will also eliminate classes of bugs from which there are definitely still a great many in old “stable” C code (bugs which are now being discovered and will presumably continue to be discovered at a much faster pace due to LLMs).

    The whole project is about abolishing GPL. And Rust is just an excuse.

    I don’t think it is just an excuse; I believe that improving security is also a goal… but removing GPL code is clearly also part of their motivation :(









  • Arthur Besse@lemmy.mltoScience Memes@mander.xyzWhales are Chinese
    link
    fedilink
    English
    arrow-up
    97
    ·
    edit-2
    3 months 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





  • Arthur Besse@lemmy.mlOPtoScience Memes@mander.xyzquick explanation
    link
    fedilink
    English
    arrow-up
    21
    ·
    edit-2
    3 months 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.