• 2 Posts
  • 512 Comments
Joined 2 years ago
cake
Cake day: October 4th, 2023

help-circle

  • Half Life

    I don’t think that Half Life was all that influential. It was a successful game, had a story at a time when FPSes tended to barely bother. But I think that it was less that it was very innovative and more that it competently executed on mechanics and technology that already existed.

    Minecraft

    I don’t know if I can agree. Yes, it was successful and a sandbox game, but (a) Terraria, for example, came out earlier, and I don’t feel like it was that transformative. It certainly inspired some sandbox games, but I don’t think that this was really an incredibly broad shift.

    The Sims

    This one brought a lot of new mechanics, but I don’t know about influential. There wasn’t really a large Sims-like genre that it inspired.

    Baldur’s Gate 3

    It a 2023 release. How can it be influential? Hasn’t even been time for a generation of games influenced by it to come out.



  • A point made by HP’s SVP and Division President of Gaming Solutions Josephine Tan when talking to XDA Developers, Tan mentioned “If you look at Windows, I struggle with the experience myself. If I don’t like it, I don’t know how to do a product for it.”. Tan continued “If I’m buying a handheld, I want a very simple setup. The minute I turn on my handheld, it will remember the last game I played. In the Windows environment, it doesn’t”.

    Okay, I’m not saying that HP shouldn’t do a SteamOS handheld, but…this seems like such a bad rationale. Surely, surely it is possible to write a relatively-trivial piece of software for Windows that simply remembers the last game played? Especially if we’re just talking stuff running out of Steam?




  • I agree that it’s less-critical than it was at one point. Any modern filesystem, including ext4 and btrfs, isn’t at risk of filesystem-level corruption, and a DBMS like PostgreSQL or MySQL should handle it at an application level. That being said, there is still other software out there that may take issue with being interrupted. Doing an apt upgrade is not guaranteed to handle power loss cleanly, for example. And I’m not too sanguine about hardware not being bricked if I lose power during an fwupd updating the firmware on attached hardware. Maybe a given piece of hardware has a safe, atomic upgrade procedure…and maybe it doesn’t.

    That does also mean, if there’s no power backup at all, that one won’t have the system available for the duration of the outage. That may be no big deal, or might be a real pain.


  • Yeah, I listed it as one possibility, maybe the best I can think of, but also why I’ve got some issues with that route, why it wouldn’t be my preferred route. Maybe it is the best generally available right now.

    The “just use a UPS plus a second system” route makes a lot of sense with diesel generator systems, because there the hardware physically cannot come up to speed in time. A generator cannot start in 10ms, so you need a flywheel or battery or some other kind of energy-storage system in place to bridge the gap…but that shouldn’t be a fundamental constraint on those home large-battery backup systems. They don’t have to be equipped with an inverter able to come online in 10ms…but they could. In the generator scenario, it’s simply not an option.

    I’d like to, if possible, have the computer have a “unified” view of all of the backing storage systems. In the generator case, the “time remaining” is a function of the fuel in the tank, and I’m pretty sure that it’s not uncommon for someone to be able to have some kind of secondary storage that couldn’t be measured; I remember reading about a New Orleans employee in Hurricane Katrina that stayed behind to keep the datacenter functioning mostly hauling drums of diesel up the stairs to the generator. But that’s not really a fundamental issue with those battery backup systems, not unless someone is planning on hauling more batteries in.

    If one gets a UPS and then backs it with a battery backup system, then there are two sets of batteries — one often lead-acid, with a shorter lifespan — and multiple inverters and battery charge controllers in multiple layers in the system. That’s not the end of the world, a “throw some extra money at it” issue, but one is having to get redundant hardware.


  • I’ll add one other point that might affect people running low-power servers, which I believe some people here are running for low-compute-load stuff like home automation: my past experience is that low-end, low power computers often have (inexpensive) power supplies that are especially intolerant of wall power issues. I have had multiple consumer broadband routers and switches that have gotten into a wonky, manual-reboot-requiring state after brownouts or power loss, even when other computers in the house continued to function without issue. I’d guess that those might be particularly-sensitive to a longer delay in changing over to a backup power source. I would guess that Raspberry Pi-class machines might have power supplies vulnerable to this. I suppose that for devices with standard barrel connectors and voltage levels, one could probably find a more-expensive power supply that can handle dirtier power.

    If you run some form of backup power system that powers them, have you had issues with Raspberry Pis or consumer internet routers after power outages?



  • Like, the Powerwall things? Yeah, sure, they’re in the same sort of class. I think — not gonna go looking through all of 'em — that the things I linked to above all are intended to have someone plug devices directly into them, and the Powerwalls get wired into the electrical panel, but same basic idea. They aren’t really devices where energy density matters all that much, because once you put the battery somewhere, it probably isn’t going to move much after that.


  • If people want to get one for the hell of it, I’m not going to stand in their way, but I really don’t think that this product plays well to the strength of sodium-ion batteries.

    My understanding is that sodium-ion batteries are not as energy-dense, but are expected to be cheaper per-kilowatt-hour than lithium-based batteries.

    But this is a small, very-expensive-relative-to-storage-capacity, portable battery.

    I’d think that sodium-ion batteries would be more interesting for things like an alternative to this sort of thing — large-capacity, mostly-non-moved-around batteries used for home backup during power outages, stuff like that. Maybe grid buffering.


  • Facts are not copyrightable, just their presentation. So I don’t think that it’s possible to say that it’s impossible to summarize material. A court is going to say that some form of summary is legal.

    On the other hand, simply taking material and passing it through an AI and producing the same material as the source — which would be an extreme case — is definitely copyright infringement. So there’s no way that a court is going to just say that any output from an AI is legal.

    We already have criteria for what’s infringing, whether a work is “derivative” or not.

    My bet is that a court is going to tell Brave “no”, and that it’s up to Brave to make sure that any given work it produces isn’t derivative, using existing case law. Like, that’s a pain for AI summary generators, but it kind of comes with the field.

    Maybe it’s possible to ask a court for clearer and harder criteria for what makes a work derivative or not, if we expect to be bumping up against the line, but my guess is that summary generators aren’t very impacted by this compared to most AI and non-AI uses. If the criteria get shifted to be a little bit more permissive (“you can have six consecutive words identical to the source material”, say) or less permissive (“you can have three consecutive words identical to the source material”), my guess is that it’s relatively easy for summary generators to update and change their behavior, since I doubt that people are keeping these summaries around.


  • I use gdb myself.

    I don’t know exactly what you’re after. From the above, I see:

    “easy to use”

    " the mouse is faster, not slower"

    You don’t specify a language, so I’m assuming you’re looking for something low-level.

    You don’t specify an editor, so I’m assuming that you want something stand-alone, not integrated with an editor.

    There are a number of packages that use gdb internally, but put some kind of visualization on it. I’ve used emacs’s before, though I’m not particularly married to it — mainly found it interesting as a way to rapidly move up and down frames in a stack — but I’m assuming that if you want something quick to learn, you’re not looking for emacs either.

    Maybe seer? That’d be a stand-alone frontend on gdb with a GUI. Haven’t used it myself.

    EDIT: WRT gdb, the major alternative that I can think of to gdb is dbx, and that’s also a CLI tool and looks dead these days. gdb is pretty dominant, so if you want something mouse-oriented, you’re probably going to have some form of frontend on gdb.

    There are other important debugging tools out there, stuff like valgrind, but in terms of a tool to halt and step through a program, view variables, etc, you’re most-likely looking at gdb, one way or another, unless you’re working in some sort of high-level language that has its own debugger. If you want a GUI interface, it’s probably going to be some sort of frontend to gdb.

    EDIT2: Huh. Apparently llvm has its own debugger, lldb. Haven’t used it, and it’s probably not what you want anyway, since it’s also a CLI-based debugger. I am also sure that it has far fewer users than gdb. But just for completeness…guess you already looked at that, mentioned it in your comment.


  • “Where to find the time of day changes depending on what [driving] mode you’re in,” he said. “The buttons that go through your six favorite channels don’t work if it’s satellite radio channels. It takes so many tries to hit one button in your jiggly car, and it just doesn’t work.”

    Well, Woz. You’re famous for doing a universal control panel for another prominent piece of consumer electronics and figuring out how to interface it to lots of different brands.

    https://en.wikipedia.org/wiki/Universal_remote

    In 1987, the first programmable universal remote control was released. It was called the “CORE” and was created by CL 9, a startup founded by Steve Wozniak, the inventor of the Apple I and Apple II computers.[2]

    All you had to do then was to reverse-engineer the infrared protocols used to communicate with the televisions.

    I bet that it’s probably possible to figure out a way to have a third-party control panel interface with various auto UIs. Like, build a universal interface, and then just design mounting hardware on a per-car basis? Use Android Auto or CarPlay, OBD-II, and such?

    Can Android Auto do climate control?

    kagis

    Sounds like it doesn’t, but may start being able to do so:

    https://www.androidauthority.com/android-auto-climate-controls-3533161/

    Android Auto could be about to turn up the heat (and AC) on car comfort

    Climate control may finally be coming to Google’s in-car interface.

    Android phones don’t have physical buttons for car features. But…that’s not a physical limitation. Just is a result of reusing a phone as a car panel.

    So instead of having third-party car computers being the province of a few hobbyist hardware hackers, there’s an out-of-box solution for everyone? Make the “Wozpanel” or whatever that I just mount in my car? Stick physical buttons on it? Maybe have a case and faceplate that wraps it to match interiors?






  • tal@lemmy.todaytoProgramming@programming.dev*Permanently Deleted*
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    1 month ago

    BitTorrent and Hyphanet have mechanisms that do this.

    Magnet URIs are a standard way of encoding this.

    EDIT: You typically want a slightly-more-elaborate approach than just handing the network a hash and then getting a file.

    You typically want to be able to “chunk” a large file, so that you can pull it from multiple sources. The problem is that you can only validate that information is correct once you have the whole file. So, say you “chunk” the file, get part of it from one source and part from another. A malicious source could feed you incorrect data. You can validate that the end file does not hash to the right value, but then you have no idea what part of the file that some source fed you is invalid, so you don’t know who to re-fetch data from.

    What’s more-common is a system where you have the hash of a hash tree of a file. That way, you can take the hash, request the hash tree from the network, validate that the hash tree hashes to the hash, and then start requesting chunks of the file, where a leaf node in the hash tree is the hash of a chunk. That way, you can validate data at a chunk level, and know that a chunk is invalid after requesting no more than one chunk from a given source.

    See Merkle tree, which also mentions Tiger Tree Hash; TTH is typically used as a key in magnet URIs.

    EDIT2:

    Can’t think of a way to do it with a DHT

    All of the DHTs that I can think of exist to implement this sort of thing.

    EDIT3: Oh, skimmed over your concern, didn’t notice that you took issue with using a hash tree. I think that one normally does want a hash tree, that it’s a mistake to use a straight hash. I mean, you can generate the hash of a hash tree as easily as the hash of a file, if you have that file, which it sounds like you do. On Linux, rhash(1) can generate hashes of hash trees. So if you already have the file, that’s probably what you want.

    Hypothetically, I guess you could go build some kind of index mapping hashes to hashes of hash trees. Don’t know whether you can pull the hash off BitTorrent or something, but I wouldn’t be surprised if it is. But…you’re probably better off with hash trees, unless you can’t see the file and already are committed to a straight hash of the file.

    EDIT4:

    I mean:

    $ rhash --sha1 --hex pkgs 
    7d3a772009aacfe465cb44be414aaa6604ca1ef0  pkgs
    $ rhash -T --hex pkgs 
    18cab20ffdc55614ed45c5620d85b0230951432cdae2303a  pkgs
    $
    

    Either way, straight hash or hash of a hash tree, you’re getting a hex string that identifies your file uniquely. Just that in the hash tree case, you solve some significant problems related to the other thing that you want to do, fetch your file. Might be more compute-intensive to generate a hash of a hash tree, but unless you’re really compute-constrained…shrugs