• 0 Posts
  • 131 Comments
Joined 9 months ago
cake
Cake day: October 4th, 2023

help-circle
  • looks

    https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest

    Well, it can’t take a stream as input, so it’s not that an output can’t be provided because the input might not be fully known.

    And it seems kind of odd if the aim is parallel execution.

    pokes around a bit more

    I don’t really code in Javascript much, but as I very vaguely recall, at least in browsers, Javascript doesn’t normally have the ability to do concurrent execution…there’s some sort of mechanism that isolates code running in parallel, Web Workers, as I recall.

    One of the things that Mozilla’s docs on Promise mentions is this:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

    The Promise class offers four static methods to facilitate async task concurrency

    Note that JavaScript is single-threaded by nature, so at a given instant, only one task will be executing, although control can shift between different promises, making execution of the promises appear concurrent. Parallel execution in JavaScript can only be achieved through worker threads.

    So, one thing that you normally have to do in APIs that have cooperative multithreading going on is, if you want the system to stay responsive, is to make sure that if you’re gonna yield to other threads if you’re gonna be doing some work for an extended period of time. Like, say you’ve got something going on that’s CPU-bound and something that’s network-bound…you don’t want to have one blocking on the other. You want to slice up the tasks and switch back and forth between them to keep the network connection saturated.

    I am thinking that it’s possible that the goal here is to do that. Like, you might want to be generating a hash of a big block of data, say a couple gigs. Maybe it takes Javascript a while to do that. So you generate a Promise for that computation, along for the other things you need to do, and then wait for any of them to complete.

    If you don’t have anything else going on in your particular codebase, then you can just immediately block until the Promise is fulfilled.

    That being said, that’s just my kneejerk reaction based on about a two-minute skim and some familiarity with past systems that have worked in kinda similar ways.


  • Each node sends its information, like its name, public keys, etc via IPv6 link local multicast packets. I’ll call these packets advertisements. I choose IPv6 link local because no manual IP address configuration is required. The kernel automatically assigns IPv6 link local addresses for each network interface.

    When another node (B) receives the multicast packets, it knows that it can receive packets from the former node (A), but what about the other way round? For that, node B then establishes a TCP connection to node A. If node B can connect to node A, we can conclude that a bidirectional communication is possible between node A and node B.

    Let’s say that you have 3 nodes, A, B, and C.

    What happens if Node C sends Node A an advertisement for Node B’s name with Node C’s public key?

    When A tries to talk to to B’s name, it connects to C using C’s key. C connects to B using B’s public key, proxying the connection, and performing a man in the middle attack.









  • The first shaver I got was an electric, rotary one. Was okay, pulled a bit.

    Later in life, I swtched to electric ones with a foil. Better about pulling, more-durable. I believe those are older. No idea why they moved away from those to rotaries.

    Later in life, I switched to those cartridge razors, decided I preferred those. Smoother shave. No idea why they moved away from those.

    Later in life, I just switched to a standard safety razor, uses standard old double-sided safety razor blades. No reason to pay for the cartridges, pulls less, seems that the blades last longer.

    Every time I’ve moved to an older system, I’ve been happier with it than with the later system.

    I don’t plan to ever move to a straight razor, but I gotta say that it’s one of the very few areas that I feel like newer has pretty consistently been worse. I kind of wish that I’d just started out with a double-sided safety razor from the get-go.

    EDIT: I will add that I don’t really care that much about blades or specific razor or soap or aftershave. I’ve tried a number, been happy with everything I’ve used. However, I was not happy with a plastic-bristle shaving brush I got – the soap just slides off it easily, makes a mess. A boar brush I got doesn’t do that. Might be that they’ve figured out how to make plastic-bristle shaving brushes with a more-textured bristle surface or something, but I’d default to getting one made out of some type of actual hair.


  • You can always just not use them but I’ve found the buttons on top incredibly useful as an undo/redo pair and makes working in anything so much nicer.

    The “two extra” buttons seem to have been mostly used for “forward/back”.

    I use a tiling window manager in Linux these days, so I don’t drag windows, but back when I was using a non-tiling window manager last, I set up one mouse button to be “drag window” in my window manager, so that one could just grab a window anywhere rather than on the title bar to move it. That was definitely convenient, and I’d bet that there’s a way to accomplish that in other windowing environments as well.


  • Even if they were able to last that long, I wouldn’t recommend that someone try to buy it – or any other PC component – for life. Technology advances.

    In 1984, if you had a Mac, your mouse probably interfaced via the Mac’s dedicated mouse port. That became obsolete a couple models down the line, replaced by Apple Desktop Bus.

    If you had a DOS PC, you probably had a (checks) RS-232 port. That was replaced by the PS/2 port.

    Then both got replaced by USB.

    Now, USB-A plugs are on the way out, being replaced by USB-C.

    I know that at least ADB was not – as USB is – designed to be electrically safe to unplug and plug in while the computer was active. I wouldn’t be surprised if the same were true of other ports as well.

    A Mac mouse would have one button, a PC mouse probably two. There would be no scroll wheel. Mice have since acquired a scroll wheel, and that scroll wheel has become clickable (and sometimes tiltable). My current mouse has five buttons, includes a forward and back button; that’s not universal but also isn’t uncommon today.

    They used a mechanical ball and electro-optical encoders. These could gum up with hand oil and dead skin and such and would need to be cleaned. Now most mice use a CCD to detect motion, and the current ones are a lot better then the early ones, which would occasionally “twitch” around a bit.

    I don’t know the polling rate back then, but until relatively recently, mice weren’t polled at rates capable of keeping up with many current monitors (which have gotten into 144 Hz and higher – I have a 165 Hz display, and there are 240 Hz monitors out). Both would have had a considerably lower polling rate than the thousand-plus Hz that current mice can typically report their position.

    Resolution is also much higher.

    And some people – I’m not in this camp myself – really want wireless mice. That wasn’t available until recently, and only really standardized in the form of Bluetooth pretty recently.

    Point is, even if one could get mouse switches that would last a lifetime, one probably doesn’t want to do so. The technology isn’t mature enough for things to be holding in place, for a mouse made even relatively-recently to be technically comparable to current mice.





  • I mean, I’d like games to be available, but I don’t see archive.org’s legal basis for providing it. I mean, the stuff is copyrighted. Lack of commercial availability doesn’t change that.

    Yeah, some abandonware sites might try to just fly under the radar, and some rightsholders might just not care, might not be much value there. But once you’re in a situation where a publisher is fighting a legal battle with you, you’re clearly not trying that route.

    You can argue that copyright law should be revised. Maybe copyright on video games should be shorter or something. Maybe there should be some provision that if a product isn’t offered for sale for longer than a certain period of time, copyright goes away. But I don’t think that this is the route to get that done.


  • we know about the singapore VPN because they connected to IRC on libera chat with it.

    Hmm.

    I don’t know if the VPN provider is willing to provide any information, but I wonder if it’s possible to pierce the veil of VPN in at least approximate terms?

    If you have a tcpdump of packets coming out of a VPN – probably not something that anyone has from the Jia Tan group – you have timings on packets.

    The most immediate thing you can do there – with a nod to Cliff Stoll’s own estimate to locate the other end of a connection – is put at least an upper bound and likely a rough distance that the packets are traveling, by looking at the minimum latency.

    But…I bet that you can do more. If you’re logging congestion on major Internet arteries, I’d imagine that it shouldn’t take too many instances of latency spikes before you have a signature giving the very rough location of someone.

    Some other people pointed out that if they used a browser, it may have exposed some information that might have been logged, like encodings.