June 9th, 2025
fanf: (Default)
posted by [personal profile] fanf at 10:00pm on 09/06/2025

After I found some issues with my benchmark which invalidated my previous results, I have substantially revised my previous blog entry. There are two main differences:

  • A proper baseline revealed that my amd64 numbers were nonsense because I wasn’t fencing enough, and after tearing my hair out and eventually fixing that I found that the bithack conversion is one or two cycles faster.

  • A newer compiler can radically improve the multiply conversion on arm64 so it’s the same speed as the bithack conversion; I've added some source and assembly snippets to the blog post to highlight how nice arm64 is compared to amd64 for this task.

rmc28: (reading)

Books on pre-order:

  1. Queen Demon (Rising World 2) by Martha Wells (7 Oct 2025)

Books acquired in May:

  • and read:
    1. Copper Script by KJ Charles
    2. Red Boar's Baby by Lauren Esker
  • and unread:
    1. The Wrath & The Dawn by Renée Ahdieh [3]
    2. The Unexpected Inheritance of Inspector Chopra by Vaseem Khan [3]
    3. Kidnap on the California Comet by M.G. Leonard & Sam Sedgman [3]
    4. Betrayal (Trinity 1) by Fiona McIntosh [3]

Borrowed books read in May:

  1. The Good Thieves by Katherine Rundell
  2. One Christmas Wish by Katherine Rundell
  3. You Have a Match by Emma Lord [2][6]

I continue to not read much (by my standards). I did not manage to read any of the physical books I had out of the library until they needed to be returned, and I've got several half-finished books in progress. (Oh, and in writing this I've realised I already have the Renée Ahdieh book in ebook, and haven't read it there either!)

[1] Pre-order
[2] Audiobook
[3] Physical book
[4] Crowdfunding
[5] Goodbye read
[6] Cambridgeshire Reads/Listens
[7] FaRoFeb / FaRoCation / Bookmas / HRBC
[8] Prime Reading / Kindle Unlimited

andrewducker: (Default)
lnr: Halloween 2023 (Default)
posted by [personal profile] lnr at 11:14am on 09/06/2025 under , ,

We still haven't met with Senior Management: it's now due tomorrow, in person. I'm gently trying not to panic.

There's still been no message of support to all members of staff and students from the University, and nothing at all from the department. Though I understand they're still in discussions in the background. This is frustrating.

The subject was raised at a recent All Staff meeting (in which people submit questions as text, and senior management attempt to answer them). We were given broad assurances that the university values and supports trans people, but nothing actually useful or genuinely supportive was said.

In the meantime a new EHRC chair is due to be appointed, and they're considering a person with a known anti-trans background. There's an Open Letter available to sign in protest, written by a very good friend and colleague: https://docs.google.com/forms/d/e/1FAIpQLSe_Y77t7CQqKjdGifNa0lE3HKjDAb1UoJdjuLAbInhIQsRMhw/viewform

I've also seen a good template if you want to write directly: https://docs.google.com/document/d/1865KMfu24JgmwnWmYXaVc3jlzj5uQFEq69hXMxKP6BU/edit?tab=t.0

And I wrote my own version:

9th June 2025
Dear Women’s and Equalities Select Committee and Joint Committee on Human Rights,
Cc: Pippa Heylings, as my MP

I am writing to express my grave concern about the proposed appointment of Dr Mary-Ann Stephenson as the Chair of the Equality and Human Rights Commission.

I won't include a string of references here, because I think you will have seen them all already, but I think it is imperative that the next person appointed as Head of the EHRC should not be seen to have a strong anti-trans background. Trans people are currently scared. Scared for their jobs, if they cannot access their workplace in safety and dignity. Scared of being assaulted if they go to the "wrong" toilet. Scared of being outed as trans in public if they try to follow the new guidelines.

And I am scared as a cis woman, a woman who is not trans, at what is happening in our country, and what this means for my friends and colleagues and for trans people in general. For intersex people, non-binary people, and any woman who might be mistaken for being trans. Other women need to feel safe too, but excluding trans people is not the way to do this.

The EHRC needs to stand up for the rights of everyone, and to be seen to do so. I sincerely hope you will take this into account.

Kind Regards,

Eleanor Blair
Great Shelford, Cambridge, CB22

I'm not even going to attempt to get into the member of the EHRC who was quoted as effectively saying that trans people have been misled about their rights under the Equality Act for the last 15 years, and there will now be a period of adjustment, but they should just get used to having fewer rights than they thought they did. The Guardian changed their headline and reporting three times as a result of her protesting about being misquoted, but that seems to have been the gist of it. Not mentioning that the "misleading" guidance came from the EHRC themselves, and was based on the previous understanding of the Equalities Act and entirely consistent with it. FFS

mtbc: maze N (blue-white)
posted by [personal profile] mtbc at 09:27am on 09/06/2025 under , , ,
I have probably mentioned my disappointment in various British things. We can't manage anything from easily accessed healthcare to reliable rubbish collection. Hearing even the Labour government talk about reducing carer visas, not taking trans rights seriously, etc. really doesn't augur well.

Of course, we nearly ended up living in the US instead, which is even more of a dumpster fire given the lasting damage from the current administration. Both countries' officials seem unwilling to take on the task of responsible governance, instead we see performative policy that harms people without making any real sense.

I got to wondering: after the kids are grown and educated, perhaps we could go somewhere else? I took a look online on where people say is welcoming to immigrants and, ha ha, dismissed any list that includes the UK or the US.

The Scottish summer is currently cool and rainy. R. would be glad not to return to the hot humidity of the tropics. I like to think that we can find some middle ground.

In looking into what the options might be, I discovered that Spain's digital nomad visa could easily allow me and R. to live there someday. Then, we may be on an accelerated path because of the (colonial guilt) agreement that allows R. to qualify for Spanish citizenship more quickly. We would remain within easy reach of our children if they remain in Britain.

I have never been to Spain and know little about it. The language would certainly challenge me: it would be a considerable success if I could come to speak intelligibly, even with a dreadful accent. Nevertheless, as idle fantasies go, it is an interesting one to consider so perhaps I should try to reduce my ignorance in coming years. At a glance, reading about the current protests in Madrid seems an exciting start.
June 8th, 2025
kaberett: Trans symbol with Swiss Army knife tools at other positions around the central circle. (Default)

Reading. FINISHED:

  • Furiously Happy, Jenny Lawson. I can see why people like her! I have also remembered why I wound up unsubscribing from her blog. Very interesting proof of concept in re audiobooks, though.
  • Prophet, Helen MacDonald and Sin Blaché. Very enjoyable reread in which many things landed differently, in service of...
  • a word you've never understood, [personal profile] rydra_wong. EXACTLY the post-canon follow-up I wanted but would have absolutely failed to articulate. Have already tried to lure one more person into reading the book so I can then make them go read the fic. Now I just selfishly want Even More Of It.
  • Pain is really strange, Steve Haines. Reread for the purpose of making notes, this time. Sparked at least one useful thought. Following up references is a work in progress.
  • How to cook... Desserts, Leiths Cookery School. Read all the way through for the purposes of EYB indexing first pass! Go me.

STARTED:

  • Adventures in Stationery, James Ward. Borrowed from library on a whim for low-brain non-fiction.

Writing. First pass through indexing a cookbook on EYB!

Some Actual Notes re pain for The Book, including (and I am very proud of myself for this) actually writing down my questions alongside the bare "here's what it contained".

Watching. Murderbot S01E01. I am dubious but expecting to keep watching. If you encourage me I might say more when it is not past curfew.

Cooking. ... apparently I have not managed Much Of Note this week.

Eating. POTATOES at the ALLOTMENT courtesy of ALLOTMENT FRIENDS. Also finished my choi sum and had my first AMAZING broad beans and nibbled kohlrabi speculatively, all on Tuesday.

Today I have nibbled: a cherry; the first few redcurrants; a pod's worth of Kelvedon Wonder peas; half a tiny tomato.

Making & mending. Made some progress on A's left glove. Realised, belatedly, that I'd done the same thing with picking up stitches unevenly along the two sides of the palm. Ripped back most of the way to where I started from and Sulked. BUT HEY I've remembered the pattern and where I'd stowed all the bits for it!

Growing. See Eating for my biggest excitements. Sugar Magnolia (purple sugar-snap pea) now setting pods; my main intention with it this year (given that I planted a whole packet of seeds and have wound up with ...fewer plants than that) is just to get myself sorted with a significantly larger number of seeds for next year, but hey, maybe they'll all be super productive and I'll actually get to eat some too.

Stockings now at the plot to go onto the cherry tomorrow, hopefully.

Tomatoes planted out when tiny not doing so great (i.e. have mostly disappeared). Tomatoes planted out when larger Actually Flowering. Desperately need to stake the lot of them.

Tiny single solitary surviving oca has started to Go.

V grumpy about how poorly the squash I got started A While Ago have coped with getting put outside given that they are in biodegradable fibre pots so I'm not even disturbing their roots. Getting the rest of them in the ground AND THEN SOWING MORE very much also high on tomorrow's priority list. (And the beans, augh.)

Observing. Met a neighbour!

mtbc: maze M (white-blue)
posted by [personal profile] mtbc at 02:46pm on 08/06/2025 under
In walking our dog L. we occasionally meet other friendly dogs. It has been interesting for me to observe that many dogs appear to know the rules of a game. Each round has them bring their faces near to each other and pause (tail probably wagging) then they both dart apart and run around or chase a bit before starting the next round. It appears to be very good fun.
andrewducker: (Default)
mtbc: photograph of me (Default)
posted by [personal profile] mtbc at 10:59am on 08/06/2025 under , ,
Having been made redundant from my fully remote job, I am starting a new job that has me on-site in Edinburgh twice per week. In looking into how to make this a cost-effective habit, first I thought of railcards but there don't seem to be any that apply. Fortunately, there are flexi ticket bundles that are useful for people taking a few trips within a longer period, which seem to be the best option.

Among the flexible tickets, the two obvious kinds appear to be from ScotRail which would cost me around £22 per day and allow me to travel on all the relevant trains, and from CrossCountry which for around £15 per day allow me to travel on only their trains which are the minority, only a couple of plausible ones each day either way. We need to save money where we can but the latter option has me arriving back into Glasgow at 21.22 at the earliest.

I didn't discover the cheaper option until after I had bought the other, at least for the initial period. After I learn more about the peak-time trains and the culture in the office, I can look into limiting which trains I may take. Perhaps a couple of longer workdays each week will make sense.

Having transcribed the timetable into LibreOffice Calc and tried some sorts, it seems to me that Central Station has those couple of useful CrossCountry trains which take at least an hour, plus some ScotRail services that take rather longer still. Queen Street station is further from me on foot, easy by subway though, and offers only ScotRail services that run frequently and take less than an hour but are anecdotally rather busy.
fanf: (Default)
posted by [personal profile] fanf at 03:15am on 08/06/2025

https://dotat.at/@/2025-06-08-floats.html

A couple of years ago I wrote about random floating point numbers. In that article I was mainly concerned about how neat the code is, and I didn't pay attention to its performance.

Recently, a comment from Oliver Hunt and a blog post from Alisa Sireneva prompted me to wonder if I made an unwarranted assumption. So I wrote a little benchmark, which you can find in pcg-dxsm.git.

(Note 2025-06-09: I've edited this post substantially after discovering some problems with the results.)

recap

Briefly, there are two basic ways to convert a random integer to a floating point number between 0.0 and 1.0:

  • Use bit fiddling to construct an integer whose format matches a float between 1.0 and 2.0; this is the same span as the result but with a simpler exponent. Bitcast the integer to a float and subtract 1.0 to get the result.

  • Shift the integer down to the same range as the mantissa, convert to float, then multiply by a scaling factor that reduces it to the desired range. This produces one more bit of randomness than the bithacking conversion.

(There are other less basic ways.)

code

The double precision code for the two kinds of conversion is below. (Single precision is very similar so I'll leave it out.)

It's mostly as I expect, but there are a couple of ARM instructions that surprised me.

bithack

The bithack function looks like:

double bithack52(uint64_t u) {
    u = ((uint64_t)(1023) << 52) | (u >> 12);
    return(bitcast(double, u) - 1.0);
}

It translates fairly directly to amd64 like this:

bithack52:
    shr     rdi, 12
    movabs  rax, 0x3ff0000000000000
    or      rax, rdi
    movq    xmm0, rax
    addsd   xmm0, qword ptr [rip + .number]
    ret
.number:
    .quad   0xbff0000000000000

On arm64 the shift-and-or becomes one bfxil instruction (which is a kind of bitfield move), and the constant -1.0 is encoded more briefly. Very neat!

bithack52:
    mov     x8, #0x3ff0000000000000
    fmov    d0, #-1.00000000
    bfxil   x8, x0, #12, #52
    fmov    d1, x8
    fadd    d0, d1, d0
    ret

multiply

The shift-convert-multiply function looks like this:

double multiply53(uint64_t u) {
    return ((double)(u >> 11) * 0x1.0p-53);
}

It translates directly to amd64 like this:

multiply53:
    shr       rdi, 11
    cvtsi2sd  xmm0, rdi
    mulsd     xmm0, qword ptr [rip + .number]
    ret
.number:
    .quad     0x3ca0000000000000

GCC and earlier versions of Clang produce the following arm64 code, which is similar though it requires more faff to get the constant into the right register.

multiply53:
    lsr     x8, x0, #11
    mov     x9, #0x3ca0000000000000
    ucvtf   d0, x8
    fmov    d1, x9
    fmul    d0, d0, d1
    ret

Recent versions of Clang produce this astonishingly brief two instruction translation: apparently you can convert fixed-point to floating point in one instruction, which gives us the power of two scale factor for free!

multiply53:
    lsr     x8, x0, #11
    ucvtf   d0, x8, #53
    ret

benchmark

My benchmark has 2 x 2 x 2 tests:

  • bithacking vs multiplying

  • 32 bit vs 64 bit

  • sequential integers vs random integers

I ran the benchmark on my Apple M1 Pro and my AMD Ryzen 7950X.

These functions are very small and work entirely in registers so it has been tricky to measure them properly.

To prevent the compiler from inlining and optimizing the benchmark loop to nothing, the functions are compiled in a separate translation unit from the test harness. This is not enough to get plausible measurements because the CPU overlaps successive iterations of the loop, so we also use fence instructions.

On arm64, a single ISB (instruction stream barrier) in the loop is enough to get reasonable measurements.

I have not found an equivalent of ISB on amd64, so I'm using MFENCE. It isn't effective unless I pass the argument and return values via pointers (because it's a memory fence) and place MFENCE instructions just before reading the argument and just after writing the result.

results

In the table below, the leftmost column is the number of random bits; "old" is arm64 with older clang, "arm" is newer clang, "amd" is gcc.

The first line is a baseline do-nothing function, showing the overheads of the benchmark loop, function call, load argument, store return, and fences.

The upper half measures sequential numbers, the bottom half is random numbers. The times are nanoseconds per operation.

         old    arm    amd

    00  21.44  21.41  21.42

    23  24.28  24.31  22.19
    24  25.24  24.31  22.94
    52  24.31  24.28  21.98
    53  25.32  24.35  22.25

    23  25.59  25.56  22.86
    24  26.55  25.55  23.03
    52  27.83  27.81  23.93
    53  28.57  27.84  25.01

The times vary a little from run to run but the difference in speed of the various loops is reasonably consistent.

The numbers on arm64 are reasonably plausible. The most notable thing is that the "old" multiply conversion is about 3 or 4 clock cycles slower, but with a newer compiler that can eliminate the multiply, it's the same speed as the bithacking conversion.

On amd64 the multiply conversion is about 1 or 2 clock cycles slower than the bithacking conversion.

conclusion

The folklore says that bithacking floats is faster than normal integer to float conversion, and my results generally agree with that, apart from on arm64 with a good compiler. It would be interesting to compare other CPUs to get a better idea of when the folklore is right or wrong -- or if any CPUs perform the other way round!

June 7th, 2025
kaberett: Trans symbol with Swiss Army knife tools at other positions around the central circle. (Default)
posted by [personal profile] kaberett at 11:57pm on 07/06/2025
  1. goslings! (Canadian; one still very yellow and fluffy, several more rather larger.)
  2. SNAILS. so many excellent snails. we went out on a couple of stupid little walks and saw MANY snails.
  3. ate the last of my birthday cake, with discounted raspberries courtesy of one of said stupid little walks. <3
  4. the post brought Several more books for me (two pain-related, ...some cookery) and I am very pleased with them. particularly looking forward to warm bread and honey cake, though given that I've still not actually read Salt Fat Acid Heat I don't rate my chances of getting to it any time soon...
  5. current borrowed-on-a-whim-from-the-library book: Adventures in Stationery, James Ward. First chapter was paperclips; current chapter is a whistlestop tour of The History Of The Pen, including a much more loving biography of the BIC Cristal than I am normally exposed to via fountain pen fandom!
andrewducker: (Default)
posted by [personal profile] andrewducker at 12:29pm on 07/06/2025 under ,


My brother Mike got me this for my birthday, and it just takes a weight off my mind being able to say "bring the steam temperature up to 95 degrees and hold it there"

(Control over oil temperature when frying eggs is also awesome.)
Original is here on Pixelfed.scot.

andrewducker: (Default)
rmc28: Rachel post-game, slumped sideways in a chair eyes closed (tired)
posted by [personal profile] rmc28 at 10:31am on 07/06/2025 under , , , , , , ,

I'm playing an ice hockey game tonight in Cambridge, a charity fundraiser between Warbirds and Tri-Base Lightning. But until then I have a strangely unscheduled day. I might sleep or read or something.

I could post about what I've been up to lately!

Work:

  • spoke on a panel about effective 1:1s, it seemed to go well
  • played my usual Senior Tech Woman role for a colleague's recruitment panel, and am happy that our preferred candidate has apparently just accepted. (a frustrating number of timewasting applicants more or less obviously using LLMs to write their applications and generate their free-text statements on suitability for the role; I really resent having to wade through paragraphs of verbose buzzword bilge to ... fail to find any evidence they actually know how to do the job)

Hockey:

  • KODIAKS WON PLAYOFFS on the bank holiday weekend oh yes they did. So proud of the players, and definitely earned my share of reflected glory managing the team this season and running around half the weekend. League winners, Cup winners, Playoff winners, promotion to Division 1 next season, utter delight.
  • Very much an Insufficient Sleep weekend, we topped off the playoff win with a night out in Sheffield, I got back to my hotel as the sky was getting light, good times.
  • Kodiaks awards evening last night: lots of celebration of the hard work and lovely camaraderie of this group of players, A and B teams both. I got to announce and hand out the B team awards, and I received a really nice pair of gifts for me as manager: a canvas print of a post-final winners photo, and a personalised insulated travel mug (club logo and MANAGER on it). I love this team.
  • I'm still enjoying also playing with Warbirds, and have now been to a few summer Friday scrimmages run by Tri-Base. I went to a couple of Friday scrims at the end of last summer and felt everyone was very kind but I was pretty outclassed. I'm pleased to feel like I'm keeping up a bit better now after training a lot harder this last season.
  • I trained three days in a row this week (Warbirds Monday, Haringey Greyhounds tryouts in Alexandra Palace on Tuesday, Kodiaks Wednesday) and that was Too Much and I was pretty sore Wednesday evening and Thursday. Rest days are important even if I am much improved in fitness compared to this time last year.

Other:

  • I did a formal hall at my old College! Using my alumna rights and having a nice evening hanging out with old friends (who were the ones to suggest the plan). Good times, will do again but probably not this term.
  • I had an excessive number of books out from Suffolk libraries that needed returning, so I did a flying visit to Newmarket by bus last Saturday, this turned out to be the cheapest/quickest way across the county border. I managed to stick to my resolution not to borrow any more physical books but slipped and fell on the "withdrawn books for sale" stand. Managed to only come home with four.
  • I did a little indoor cricket the Friday before playoffs (it's now finished due to exam period), and some nets practice last Sunday, but I keep being too busy to actually play any of my team's games. I'd like to do more nets practice though, that was intense but also felt like I was beginning to improve.
  • I did a little table tennis with Active Staff but that's also now suspended for exams. I'm considering getting a cheap set of bats and balls for me and the family to go use at the local rec ground, or in the free indoor tables at the Grafton Centre.

Coming up: my summer is full of ice hockey camps and tournaments (Prague, Hull, Sheffield, Biarritz) and my old club Streatham have just announced all their summer training sessions will be "Summer Skills Camps" open to all interested WNIHL players, so I'm looking at going to London regularly again in July and August.

June 6th, 2025
kaberett: Trans symbol with Swiss Army knife tools at other positions around the central circle. (Default)
posted by [personal profile] kaberett at 11:53pm on 06/06/2025 under

A significant part of the problem is that we only start saying "all pain is in the brain" (or "the tissue isn't the issue" or whatever) to people with complex or chronic pain.

And there's a good reason for that! It's the same reason that I need to have a much more detailed idea of the fine detail of what an atom is and how it behaves than the vast majority of the population, for whom the Bohr model is perfectly adequate!

... and we need to explain that, we need to explain why we don't tell people with simple acute pain that All Pain Is In The Brain -- it's not because it's any less true for them, it's just that for most people most of the time they don't need to worry about that level of detail. But if you don't explain that, it sure do sound a lot like "your pain isn't real (unlike those people over there)".

Lies-to-children. That. That thing. That's a thing I need to explain.

andrewducker: (xkcd boomdeyada)
posted by [personal profile] andrewducker at 08:20pm on 06/06/2025 under
I spent the day feeling bad for lacking focus, and wondering why I couldn't get anything done.
And then I slept for an hour on no notice.
And now I'm very wobbly and all of my muscles gently ache.
So I think I'm going to chalk it up as "The Plague" and hope I feel better tomorrow.
andrewducker: (Default)
I see we're back at the "Labour attempt to introduce a mandatory ID card" stage of history*.

My feeling last time, was that the main problem that they always have is that they *start* with the cards being mandatory.

If you start with "Here is a thing that makes your life much easier, that you can carry about if you like." then that will get you 85% of the way there. And then, once you have a voluntary ID card that's not causing any problems for anyone, and that 85% of the population is using to make their life easier, *then* you move in and say "The only people who don't carry an ID card are weirdos and troublemakers, and they're causing friction in the system, we could make it all run more smoothly if only they *had* to carry one."

But no, they always try to go instantly from "Nobody has an ID card." to "Everyone must carry one at all times." - which forms a coalition of all sorts of people from across the political spectrum, and ends up being far more politically costly to them than if they'd just boiled their frog slowly.

(None of which should be taken as me taking a position on ID cards. I'm just constantly bemused by their inability to get things done by trying to rush them through in the most authoritarian manner possible.)

*Younger readers may not remember the fuss in 2006 (repealed in 2011)
andrewducker: (Default)
June 5th, 2025
kaberett: Trans symbol with Swiss Army knife tools at other positions around the central circle. (Default)
posted by [personal profile] kaberett at 11:11pm on 05/06/2025
  1. On Tuesday, I picked a kohlrabi. The stem itself got eaten at the plot; the leaves I brought home to cook and eat subsequently rather than compost them. I stuck them in a glass of water to keep them going while I work out what exactly it is I want to do, and -- they are stunning. I am enjoying them so much every time I go past them: dark blue-tinged green leaves, pink-purple stems and veins (the cultivar is Azur; I do not currently have photos but will attempt to get my act together tomorrow.)
  2. I have four spikes of ginger, one thoroughly unfurled into leaves, and at least one more thinking hard about it. I do not expect to wind up self-sufficient in ginger but I am very much enjoying the experiment.
  3. a word you've never understood (Prophet, 9k words). I did not read it all in one gulp -- I paused to take notes -- and I'm now on my second read through, which could in theory be more of a gulp but mysteriously I seem to be taking more notes and also remembering that I wanted to shake the internet for more information about the experience termed "aftersensations", for Book Purposes. (Also I think I've lured another person into at least starting the book...)
  4. Asparagus for lunch! Still in season; still delicious.
  5. My house once again contains Large Quantities of hazelnuts and pecans. I Monch.
As I wrote in my last post, Twitter's new encrypted DM infrastructure is pretty awful. But the amount of work required to make it somewhat better isn't large.

When Juicebox is used with HSMs, it supports encrypting the communication between the client and the backend. This is handled by generating a unique keypair for each HSM. The public key is provided to the client, while the private key remains within the HSM. Even if you can see the traffic sent to the HSM, it's encrypted using the Noise protocol and so the user's encrypted secret data can't be retrieved.

But this is only useful if you know that the public key corresponds to a private key in the HSM! Right now there's no way to know this, but there's worse - the client doesn't have the public key built into it, it's supplied as a response to an API request made to Twitter's servers. Even if the current keys are associated with the HSMs, Twitter could swap them out with ones that aren't, terminate the encrypted connection at their endpoint, and then fake your query to the HSM and get the encrypted data that way. Worse, this could be done for specific targeted users, without any indication to the user that this has happened, making it almost impossible to detect in general.

This is at least partially fixable. Twitter could prove to a third party that their Juicebox keys were generated in an HSM, and the key material could be moved into clients. This makes attacking individual users more difficult (the backdoor code would need to be shipped in the public client), but can't easily help with the website version[1] even if a framework exists to analyse the clients and verify that the correct public keys are in use.

It's still worse than Signal. Use Signal.

[1] Since they could still just serve backdoored Javascript to specific users. This is, unfortunately, kind of an inherent problem when it comes to web-based clients - we don't have good frameworks to detect whether the site itself is malicious.

May

SunMonTueWedThuFriSat
        1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25 26
 
27
 
28
 
29
 
30
 
31
 
OSZAR »