• 3 Posts
  • 612 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.


  • Alexey Pajitnov, who created the ubiquitous game in 1984, opens up about his failed projects and his desire to design another hit.

    He prefers conversations about his canceled and ignored games, the past designs that now make him cringe, and the reality that his life’s signature achievement probably came decades ago.

    The problem is that that guy created what is probably the biggest, most timeless simple video game in history. Your chances of repeating that are really low.

    It’s like you discover fire at 21. The chances of doing it again? Not high. You could maybe do other successful things, but it’d be nearly impossible to do something as big again.



  • 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.


  • When the market is flooded, any paid title has an incredibly difficult time standing out.

    If that’s true, that it’s simply an inability to find premium games, but demand exists, that seems like the kind of thing where you could address it via branding. That is, you make a “premium publisher” or studio or something that keeps pumping out premium titles and builds a reputation. I mean, there are lots of product categories where you have brands develop – it’s not like you normally have some competitive market with lots of entrants, prices get driven down, and then brands never emerge. And I can’t think of a reason for phone apps to be unique in that regard.

    I think that there’s more to it than that.

    My own guesses are:

    • I won’t buy any apps from Google, because I refuse to have a Google account on my phone, because I don’t want to be building a profile for Google. I use stuff from F-Droid. That’s not due to unwillingness to pay for games – I buy many games on other platforms – but simply due to concerns over data privacy. I don’t know how widespread of a position that is, and it’s probably not the dominant factor. But my guess is that if I do it, at least a few other people do, and that’s a pretty difficult barrier to overcome for a commercial game vendor.

    • Platform demographics. My impression is that it may be that people playing on a phone might have less disposable income than a typical console player (who bought a piece of hardware for the sole and explicit purpose of playing games) or a computer player (a “gaming rig” being seen as a higher-end option to some extent today). If you’re aiming at value consumers, you need to compete on price more strongly.

    • This is exacerbated by the fact that a mobile game is probably a partial subsititute good for a game on another platform.

      In microeconomics, substitute goods are two goods that can be used for the same purpose by consumers.[1] That is, a consumer perceives both goods as similar or comparable, so that having more of one good causes the consumer to desire less of the other good. Contrary to complementary goods and independent goods, substitute goods may replace each other in use due to changing economic conditions.[2] An example of substitute goods is Coca-Cola and Pepsi; the interchangeable aspect of these goods is due to the similarity of the purpose they serve, i.e. fulfilling customers’ desire for a soft drink. These types of substitutes can be referred to as close substitutes.[3]

      They aren’t perfect substitutes. Phones are very portable, and so you can’t lug a console or even a laptop with you the way you can a phone and just slip it out of your pocket while waiting in a line. But to some degree, I think for most people, you can choose to game on one or the other, if you’ve multiple of those platforms available.

      So, if you figure that in many cases, people who have the option to play a game on any of those platforms are going to choose a non-mobile platform if that’s accessible to them, the people who are playing a game on mobile might tend to be only the people who have a phone as the only available platform, and so it might just be that they’re willing to spend less money. Like, my understanding is that it’s pretty common to get kids smartphones these days…but to some degree, that “replaces” having a computer. So if you’ve got a bunch of kids in school using phones as their gaming platform, or maybe folks who don’t have a lot of cash floating around, they’re probably gonna have a more-limited budget to expend on games, be more price-sensitive.

      kagis

      https://www.pewresearch.org/internet/fact-sheet/mobile/

      Smartphone dependency over time

      Today, 15% of U.S. adults are “smartphone-only” internet users – meaning they own a smartphone, but do not have home broadband service.

      Reliance on smartphones for online access is especially common among Americans with lower household incomes and those with lower levels of formal education.

    • I think that for a majority of game genres, the hardware limitations of the smartphone are pretty substantial. It’s got a small screen. It’s got inputs that typically involve covering up part of the screen with fingers. The inputs aren’t terribly precise (yes, you can use a Bluetooth input device, but for many people, part of the point of a mobile platform is that you can have it everywhere, and lugging a game controller around is a lot more awkward). The hardware has to be pretty low power, so limited compute power. Especially for Android, the hardware differs a fair deal, so the developer can’t rely on certain hardware being there, as on consoles. Lot of GPU variation. Screen resolutions vary wildly, and games have to be able to adapt to that. It does have the ability to use gestures, and there are some games that can make use of GPS hardware and the like, but I think that taken as a whole, games tend to be a lot more disadvantaged by the cons than advantaged by the pros of mobile hardware.

    • Environment. While one can sit down on a couch in a living room and play a mobile game the way one might a console game, I think that many people playing mobile games have environmental constraints that a developer has to deal with. Yes, you can use a phone while waiting in line at the grocery store. But the flip side is that that game also has to be amenable to maybe just being played for a few minutes in a burst. You can’t expect the player to build up much mental context. They may-or-may-not be able to expect a player to be listening to sound. Playing Stellaris or something like that is not going to be very friendly to short bursts.

    • Battery power. Even if you can run a game on a phone, heavyweight games are going to drain battery at a pretty good clip. You can do that, but then the user’s either going to have to limit playtime or have a source of power.


  • 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.



  • despite editing the .sh file to point to the older tarballed Python version as advised on Github, it still tells me it uses the most up to date one that’s installed system wide and thus can’t install pytorch.

    Can you paste your commands and output?

    If you want, maybe on [email protected], since I think that people seeing how to get Automatic1111 set up might help others.

    I’ve set it up myself, and I don’t mind taking a stab at getting it working, especially if it might help get others over the hump to a local Automatic1111 installation.


  • venv nonsense

    I mean, the fact that it isn’t more end-user invisible to me is annoying, and I wish that it could also include a version of Python, but I think that venv is pretty reasonable. It handles non-systemwide library versioning in what I’d call a reasonably straightforward way. Once you know how to do it, works the same way for each Python program.

    Honestly, if there were just a frontend on venv that set up any missing environment and activated the venv, I’d be fine with it.

    And I don’t do much Python development, so this isn’t from a “Python awesome” standpoint.


  • Well, someone’s gotta pay for all the bandwidth somehow.

    considers

    Honestly, maybe that’d be a way for instances to provide some kind of “premium” service. Like, provide larger upload limits for people who donate. I assume that the instance admins don’t have any ideological objections to larger images, just don’t want to personally pay out-of-pocket for huge bandwidth and storage bills.

    goes looking

    I believe that this is the backend used by Lemmy, pict-rs:

    https://github.com/distruss/pictrs

    https://join-lemmy.org/docs/administration/from_scratch.html

    Lemmy supports image hosting using pict-rs. We need to install a couple of dependencies for this.

    It looks like it only has one global size setting, so probably can’t do that today.

    Could also host one’s images on an off-site image hosting thing, but then you don’t benefit from integration with the uploading UI. I guess another option would be for Lemmy to provide some sort of integration with an off-site image-hosting service, so that a user could optionally use all the Lemmy features seamlessly, but just have your client or browser make use of your off-site account.


  • Also, I tried to upload pictures but kept getting an error.

    If lemm.ee supports image uploads – which they don’t have to – they may have size restrictions; my understanding is that the size restriction can be customized on a per-instance basis.

    EDIT: They say in their sidebar:

    https://lemm.ee/

    • Image uploads are enabled 4 weeks after account creation
    • Image upload limit is 500kb per image

    Your account was created in 2023, so it’s not the 4 week limit, but you’re probably exceeding their (relatively low, as Lemmy instances go) image size limit.

    Be kind of interesting to expose that data and let lemmy.fediverse.observer display limits per-instance.

    EDIT2: I think that the largest image I’ve uploaded on lemmy.today is this high-resolution scan, which is 8 MB.