• 4 Posts
  • 672 Comments
Joined 1 year ago
cake
Cake day: October 4th, 2023

help-circle

  • investigates

    Hmm. Apparently, yeah, some Tesla vehicles do and some do not.

    reads further

    It sounds like autos in general are shifting away from tempered glass side windows to laminated glass, so those window breakers may not be effective on a number of newer cars. Hmm. Well, that’s interesting.

    https://info.glass.com/laminated-vs-tempered-car-side-windows/

    You may have seen it in the news recently—instances of someone getting stuck in their vehicle after an accident because the car was equipped with laminated side windows. Laminated windows are nearly impossible to break with traditional glass-break tools. These small devices are carried in many driver’s gloveboxes because they easily break car windows so that occupants can escape in emergency situations. Unfortunately, these traditional glass-break tools don’t work with laminated side windows. Even first responder professionals have difficulty breaking through laminated glass windows with specialized tools. It can take minutes to saw through and remove laminated glass. In comparison, tempered glass breaks away in mere seconds.



  • If that email is actually from Logitech, it probably has some way to unsubscribe. Might have added you for some nonsense reason like a warranty registration, but I’ve never hit problems with a reputable company not providing a way to unsubscribe.

    The random scam stuff…yeah, probably can’t do much about that.

    One possibility I’ve wondered about is whether, someday, email shifts to a whitelist-based system. I mean, historically we’ve always let people be contacted as long as they know someone’s physical address or phone number or email address, and so databases of those have value – they become keys to reach people. But we could simply have some sort of easy way to authorize people and block everyone else. In a highly-connected world, that might be a more reasonable way to do things.


  • Looks fine to me.

    Little side question: Will the Wi-Fi and Bluetooth on the motherboard work in Arch? From what I could gather, the drivers for it should be in the latest kernel, but I’m not 100% sure.

    If they don’t for some reason and you can’t get it working or need some sort of driver fix, can always worst case fall back to a USB dongle or similar until they do. Obviously, preferable not to do that, but shouldn’t wind up stuck without them no matter what.



  • Plus, even if you manage to never, ever have a drive fail, accidentally delete something that you wanted to keep, inadvertently screw up a filesystem, crash into a corruption bug, have malware destroy stuff, make an error in writing it a script causing it to wipe data, just realize that an old version of something you overwrote was still something you wanted, or run into any of the other ways in which you could lose data…

    You gain the peace of mind of knowing that your data isn’t a single point of failure away from being gone. I remember some pucker-inducing moments before I ran backups. Even aside from not losing data on a number of occasions, I could sleep a lot more comfortably on the times that weren’t those occasions.


  • That’s not a completely reliable fix, a third party library could still call setenv and trigger crashes, there’s still a risk of data races, but we’ve observed a significant reduction in SIGABRT volumes.

    Hmm. If they want a dirty hack, I expect they could do a library interposer that overrides setenv(3) and getenv(3) symbols with versions that grab a global “environment variable” lock before calling the actual function.

    They say that they’re having problems with third party libraries that use environment variables. If they’re using third-party libraries statically-linked against libc, I suppose that won’t work, but as long as they’re dynamically-linked, should be okay.

    EDIT: Though you’ve still got an atomic update problem with the returned buffer, doing things the way they are, if you don’t want to leak memory. Like, one thread might have half-updated the value of the buffer when another is reading the buffer after returning from the interposer’s version of the function. That shouldn’t directly crash, but you can get a mangled environment variable value. And there’s not going to be guarantees on synchronization on access to the buffer, unlike the getenv() call itself.

    thinks

    This is more of a mind-game solution, but…

    Well, you can’t track lifetime of pointers to a buffer. So there’s no true fix that doesn’t leak memory. Because the only absolute fix is to return a new buffer from getenv() for each unique setenv(), because POSIX provides no lifetime bounds.

    But if you assume that anything midway through a buffer read is probably going to do so pretty soon, which is probably true…

    You can maybe play tricks with mmap() and mremap(), if you’re willing to blow a page per environment variable that you want to update and a page of virtual address space per update, and some temporary memory. The buffer you return from the interposer’s getenv() is an mmap()ed range. In the interposer’s setenv(), if the value is modified, you mremap() with MREMAP_DONTUNMAP. Future calls to getenv() return the new address. That gives you a userspace page fault handler to the old range, which I suppose – haven’t written userspace page fault handlers myself – can probably block the memory read until the new value is visible and synchronize on visibility of changes across threads.

    If you assume that any read of the buffer is sequential and moving forward, then if a page fault triggers on an attempted access at the address at the start of the page, then you can return the latest value of the value.

    If you get a fault via an address into the middle of the buffer, and you still have a copy of the old value, then you’ve smacked into code in the middle of reading the buffer. Return the old value.

    A given amount of time after an update, you’re free to purge old values from setenv(). Can do so out of the interposer’s functions.

    You can never eliminate that chance that a thread has read the first N bytes of an environment variable buffer, then gone to sleep for ten minutes, then suddenly wants the remainder. In that case, you have to permit for the possibility that the thread sees part of the old environment variable value and part of the new. But you can expend temporary memory to remember old values longer to make that ever-more unlikely.


  • I know that modern dryers often use a humidity sensor, and I can imagine that it’s maybe hard to project that.

    But I don’t know what sort of sensors or dynamic wash time a washer would use. I thought that they were just timer-based.

    kagis

    Oh. Sounds like they use water level sensors and time to drain is a factor, so if the draining is really slow, that it’ll do that.

    https://old.reddit.com/r/mildlyinfuriating/comments/1dd4k6g/my_clothes_washer_has_had_one_minute_left_for_the/

    My clothes washer has had one minute left for the past 7 minutes. (i.redd.it)

    Funny… Someone else had a similar issue a few days ago. This was my reply to them:

    This sounds like a drainage issue. Not uncommon. I first learned of this on my previous washer several years ago.

    The machine took a lot longer to drain than it should have, so what should’ve taken a minute or two, took 15.

    A potential cause is that your drainage filter is clogged. Most people don’t even know they have one, much less how to clean it.

    In MOST modern washers, it’s behind a small hatch on the front of the machine. (It may be located elsewhere, depending on your model.). Open the hatch, pull out a short hose, unplug the stopper on the hose to drain any excess water (into a small container of some sort). Then remove the filter…

    The filter itself is typically a cylindrical piece that resides next to the hose. The filter may need to be unlocked somehow to remove it, but either way, once you slide it out you can clear it off of any buildup of hair, lint, and other gunk that’s collected on it.

    Check your user manual (or Google) for your specific model.

    If they have a display capable of it, might be a good idea for washers to suggest to the user that it’s draining slowly and that checking the filter might be in order.



  • Assuming that this is the episode and the Factorio dev post that references, I think that that’s a different issue. That dev also was using Sway under Wayland, but was talking about how Factorio apparently doesn’t immediately update the drawable area on window size change – it takes three frames, and Sway was making this very visible.

    I use the Sway window manager, and a particularity of this window manager is that it will automatically resize floating windows to the size of their last submitted frame. This has unveiled an issue with our graphics stack: it takes the game three frames to properly respond to a window resize. The result is a rapid tug-of-war, with Sway sending a ton of resize events and Factorio responding with outdated framebuffer sizes, causing the chaos captured above.

    I spent two full days staring at our graphics code but could not come up with an explanation as to why this is happening, so this work is still ongoing. Since this issue only happens when running the game on Wayland under Sway, it’s not a large priority, but it was too entertaining not to share.

    I’d guess that he’s maybe using double- or triple-buffering at the SDL level or something like that.











  • I’m also interested to know whether you think Paradox should make another Sims-style life sim, after nuking Life By You

    I’d personally like a “The Sims”-like game.

    But while I like the sandbox aspect of that series, I was never that into the actual gameplay.

    Being able to make your own structures and interact with them is neat. I like games like that a lot. Dwarf Fortress. Rimworld. Cataclysm: Dark Days Ahead.

    But the actual gameplay in The Sims in that sandbox world doesn’t really excite me all that much. There’s not a lot of strategy or planning or mechanics to explore the interactions of. Watching your Sims do their thing is neat, and I’d enjoy having that go on while I play a game.

    I can imagine a world where I have a lot of control over structures, with NPCs that are sophisticated to an unprecedented degree.

    But I don’t have specific ideas as to how to gamify it well. I just know that The Sims hasn’t gotten there.

    If what one wants is Sim Dollhouse, I guess it’s okay. I know one woman who really liked one entry in the series, bought a computer just to play it. I guess it’s a neat tool for letting people sorta role-play a life. There may be a solid market for that. But for myself, I’d like to have more mechanics to analyze and play around with. Think Kerbal Space Program or something.

    I did like Sim City a fair bit.