Preferences

wzdd
Joined 2,404 karma
Nicholas, a systems programmer in Sydney, Australia.

wzdd.hn@lardcave.net http://code.lardcave.net


  1. Currently all the comments are either talking about whether DisplayLink's emails were helpful or nit-picking the aesthetics of the site, so just to get technical...

    While adding pause / resume functionality certainly solves the problem, it does seem like not the best possible solution. Firstly, it's a rather far-reaching change. Prior to this work TTY updates always succeeded, but now the kernel has to be aware that they can fail just in case userspace is talking to a DisplayLink (which the article acknowledges are increasingly rare)? We have a new type of wait queue (or wait type) for "waiting on TTY operation"?

    Secondly, the parallel with serial (heh) links isn't great because with a serial link you have no idea what the other side is doing with the data, so you can't make any assumptions. But for a TTY you know its dimensions and furthermore you're the one doing the terminal emulation, so a) there's a bound (and quite a small one) on the amount of data you need to buffer and b) you know exactly how the data is going to be presented because you're the one doing the presentation. So there is an opportunity here to be more efficient than just forcing userspace to halt. A good analogy would be an X terminal emulator which faithfully draws every line of text, even if it's scrolling past hundreds of times faster than a human could read, versus one which updates its buffer as fast as possible, even if it's only redrawing at the display refresh rate -- the latter performs much better because it only shows the data that ultimately matters!

    In particular, non-DisplayLink TTY drivers behave more like that performant X terminal emulator, because they're writing directly to graphics memory. Treating DisplayLink like a serial terminal makes it slower than it should be in the event of a lot of data being written; it is doing all its updates, even if they are immediately overwritten.

    A more performant approach would be to store two text buffers, one for the current state (ie what DisplayLink is dipslaying) and another for the desired state. Diff the two to determine what to update when the DisplayLink is ready again.

    It seems like this is basically what happens in graphics mode anyway, with dirty rects (which would just become larger dirty rects basically until the DL is ready for more commands) -- i.e. you have to buffer anyway for efficient blit / readback etc.

    If diffing textmode feels too much like policy, make a user-space component. Or do what graphics mode does and use just one buffer with a bounded set of dirty rects.

    In other words, it seems like a solution which came from "we are deep in the bowels of the device driver, what is simplest possible thing we can do?" and there's nothing wrong with that, but it does end up moving complexity elsewhere somewhat.

  2. > In fact, I think the first photo used outpainting

    And it looks bad. The streetlamps on the right are way too close together and the building on the left looks like a prison or something out of Dickens.

  3. Python got this right. Zero-based indexing combined with half-open slice notation means as a practical matter you don't see too many -1s in the code. Certainly far fewer than when I wrote a game in Löve for a gamejam, where screen co-ordinates are naturally zero-indexed, which has implications for everything onscreen (tile indices, sprites, ...)
  4. https://issuetracker.google.com/issues/371713238#comment829 seems fine and only has the potential to break other Apple BT hardware, which is relatively easy to test.

    Nobody actually productively commenting in the thread thinks it's a conspiracy theory and everyone acknowledges that the Apple hardware is off-spec. It would be nice to see Android add this workaround.

  5. The article states that Google has done the same for this extension as part of providing its "Featured" badge.
  6. Last Chance to See has a fun bit about listening for dolphins in the Yangtze by taking a regular microphone and putting a condom over it. Always wondered how they sealed the end.
  7. The wolf wasn't trying to be vegetarian, he was trying to not have the forest creatures run away from him. He achieved his goal by not eating them.
  8. If you're 12 years old and it's the family computer (which I suspect was a not-insignificant part of the target market), you've also got to negotiate opening it up and sticking in a circuit board, adding drivers (and thus becoming prime suspect in every subsequent Windows crash), and finding some way of actually vibrating the air, which at the very least involves buying desk speakers and negotiating space on a desk which might not be your own.

    Also you don't have $100.

  9. Entertaining that the article about copyright-infringing similarity of AI-generated summaries is illustrated with a picture of an animated skeleton labelled "White Walker", which is neither what White Walkers are nor what they look like.
  10. Looking forward to seeing the same generation of biohackers who previously CRISPRed their lactose intolerance to now CRISPR their hippocampi!
  11. This explains a lot for me. On the server side, all my for-pay stuff is deployed using Docker. We have a single Python environment and complete control over it. We do multistage for compilation.

    Client side, we don't get the privilege of deploying code: we need to build installers, which means again we have complete control over the environment because we package Python and all associated dependencies.

    I'm sure there are marginal benefits to uv even with the above scenarios (better dependency management for example), but it seems that there's a middle ground here which I have largely avoided which is where uv really shines.

  12. GP's point is that buring something down is by definition something that requires a specific physical process. It's not obvious that thinking is the same. So when someone says something like "just as a simulation of fire isn't the same as an actual fire (in a very important way!), a simulation of thinking isn't the same as actual thinking" they're arguing circularly, having already accepted their conclusion that both acts necessarily require a specific physical process. Daniel Dennett called this sort of argument an "intuition pump", which relies on a misleading but intuitive analogy to get you to accept an otherwise-difficult-to-prove conclusion.

    To be fair to Searle, I don't think he advanced this as an agument, but more of an illustration of his belief that thinking was indeed a physical process specific to brains.

  13. "When this feature is disabled, facial recognition will be disabled immediately and existing recognition data will be purged within 60 days". Then you don't need a creepy message. Okay, so that's 6 times a year, but whatever.
  14. GGP didn’t say “Antichrist” wasn’t in the bible. They said that antichrist “as a figure” wasn’t in the bible. Even the Wikipedia article on Antichrist will give you a rich overview of this discussion and general scholarly agreement that that word as used in the bible does not reference a specific figure.

    There is quite a lot of nuance here. You can’t just keyword search.

  15. Exactly. I do quite a bit of dev on larger SBCs and it's much easier and more reliable to plug in a small HDMI monitor (powered through the USB) than it is to faff around with HDMI capture dongles, let alone networked KVM. The one I bought (on eBay, nothing special) has a wrap-around vinyl case which works rather like an iPad case in that it can function as a stand or as a screen cover, so you can just chuck it in a bag. Admittedly, it cost more than a capture card (I think it was around $70 USD in eBay), but that's still sufficiently cheap that if it and when it breaks I will not be devastated.

    USB capture devices introduce latency, get surprisingly hot, can have frame rate issues, and streaming video from them seems much more CPU-intensive than, for example, playing an equivalent-sized h.264 video (I don't know why but presume it's because they encode using something basic like MJPEG). A portable display has none of these problems.

  16. In their field?
  17. Quite an astonishing amount of quotes -- I counted Heidegger, Nietzsche, Murdoch, the Bible, and Plato as key players -- to contribute very little of substance. It feels like the same kind of hand-wringing that you might have read about the invention of the typewriter, the telegraph, or recorded music. Humans are complex creatures! We can be "in the process of becoming" about a great many things along a great many axes. Using ChatGPT to draft a letter of complaint to your local government isn't going to change that.
  18. Youtube has already accounted for this by using a separate endpoint to count watch stats. See the recent articles about view counts being down attributed to people using adblockers.

    Even if they hadn't done that, you can craft millions of bot-sponsored views using a legitimate browser and some automation and the current update doesn't change that.

    So I'd say Occam's razor applies and Youtube simply wants to be in control of how people view their videos so they can serve ads, show additional content nearby to keep them on the platform longer, track what parts of the video are most watched, and so on.

  19. Just incidental (KDE is indeed great), but in case anyone is wondering, you can see similar wifi information on macOS by holding option while clicking the icon in the menu bar.
  20. Not anti-vax by any means, but it's not too conclusive to use past mutation rate here because the presence of a vaccine targeting successful strains introduces a strong evolutionary pressure for the more rapid emergence of novel strains in the future.

This user hasn’t submitted anything.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal