• 2 Posts
  • 269 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle
  • I’m not sure if ActivityPub allows for an extension like that. And I mean if you open up a separate direct channel via TURN… It’ll be incompatible with something like Mastodon anyways, so I then don’t see a good reason for why to bother with the additional overhead of AP in the first place. I mean you could then just send the status updates in some efficient binary representation as data packets directly do the other players. So why use ActivityPub that needs to encode that in some JSON, send it to your home instance, which handles it, puts it in the outbox, sends HTTP POST requests to the inboxes of your teammates where it then needs to be retrieved by them… In my eyes it’s just a very complicated and inefficient way of transferring the data and I really don’t see any benefits at all.

    So instead of extending AP and wrapping the game state updates into AP messages, I’d just send them out directly and skip AP altogether. That probably reduces the program code needed to be written from like 20 pages to 2 and makes the data arrive nearly instantly.

    I suppose I could imagine ActivityPub being part of other things in a game, though. Just not the core mechanics… For example it could do the account system. Or achievements or some collectibles which can then be commented and liked by other players.



  • Agreed. I think most prominently competitive gaming; development where you need to assure it later on actually works as intended on the target platform; and business stuff where parties are obliged by contract to guarantee something works flawlessly and keeps running that way - are good examples.

    That laptop doesn’t look to me like it was intended to do any of that, so that’s maybe why I’m being a bit negative here. It’s cool and a nice idea, though…

    (And we already have ARM-based retro machines, FPGA clones if popular processors available. So there is no need for them to do the exact same thing.)


  • The M6117C also isn’t the original and not that old. Also the 8MB of RAM aren’t true to the original.

    I’m not sure. I occasionally use emulation. And I think it’s fine. Unless you’re a speed runner and need everything to be exact to the frame timing, you won’t notice. Certainly not for a desktop UI like the Win 3.11 on the photo. I guess it depends on the use-case.

    Something like a FPGA or an ESP32 can also be repaired, replaced, programmed and most of the things a CPU or different architecture can do. And if the emulation layer doesn’t have too many flaws, it’ll be pretty realistic. Not exactly the same thing, but I think it’ll do for practically any use-case. And it comes with other benefits.

    I think you’re allowed to do it just for the sake of it. But I often see people using an original SNES because “emulation is shit” and then they proceed to connect it to the TV set in their livingroom, which isn’t even close to the original experience because it adds lots of latency and doesn’t have interlacing and the colors are different than on a CRT, too. I think that’s just having strong opinions despite being uneducated. And I think I’m equally as well off with my Raspberry Pi and Emulationstation. (Which can also run DOS games.)

    In the end everyone is entitled to their opinion. But this also isn’t the original (You can get an old Laptop… I have one with an 486.) But this isn’t the original but a replica. And it’s debatable (in my opinion) whether it’s the CPU architecture that does the realism, or other factors. I think for realism, you’d need a black and white liquid crystal display, a NiMH battery that degrades fast if you don’t charge it right and half the amount of RAM at most. And maybe just a floppy drive. The CPU is something you wouldn’t notice with the current state of technology.



  • Seems the two German supermarket chains really like to have the same infrastructure everywhere. Everywhere I go the Aldis look exactly the same. They have slightly different products depending on the country. But the price tags, interior, … is basically the same. Okay and we don’t have “Flaschenpfand” everywhere… (deposit on the plastic bottles and the machines where you can return bottles.) I bet all of this makes it a lot easier for their techs and management. And it could also explain why they sometimes redo a store that still looks fine and fit it with the latest shenanigans.

    And as an aside: I’ve shopped in the first Aldi store ever. It’s not far from where I live.



  • Yeah, you’re not doing it right. On Github you have to click on “Insights”. And alike Lemmy which is split into two parts, llama.cpp also has a backend called ggml that does the (tensor) maths. Combined, the git stats are as following for the last four weeks:

    • Lemmy (+UI) 207 files changed, +7,841 additions and -6,472 deletions
    • llama.cpp (+ggml) 707 files changed, +157,754 additions and -95,611 deletions.

    So they definitely touch a lot more code regularly. Whichever PRs you clicked on, they added 50 times as much new lines of code in the same timeframe. And coding things like that is maths heavy and you also need to read the scientific papers and implement the maths. And they did quite some maths themselves and contributed their quanitzation techniques and benchmarked and studied them in addition to the coding. I’m really impressed by the guy. And he seems nice and attracted quite some contributors with his excellent and fast software. Reviews and comments their ideas and integrates them fast. And now it’s a flourishing project that leads in its field. And the project isn’t even that old…

    I get it. Software development isn’t that easy. Especially the ‘touching different parts of the code’ is something I don’t really like. I mean it is like it is. And having architectural patterns like this is fairly common (logic, database, UI) and you have like 2 models of the data, one for federation and then the internal representation. I’m not that familiar with the Rust frameworks and how cumbersome it is to deal with them. With the correct database abstraction toolkit and other frameworks it gets better and you can often tie the stuff together. Also helps with the bugs. If it’s really bad, maybe the architecture isn’t optimal. Or the chosen frameworks suck. Other than that it’s the job of a programmer to tie those aspects together, deal with the complexity and combine it into a working product.

    I’m not even sure if you can assure that Lemmy has no bugs… I mean unit tests, integration tests and reviews won’t cut it with distributed or federated software, right? I mean you’d need to roll out a small cloud of instances and do end to end tests, check if everything federates and if there are performance regressions… I’m not sure where Lemmy is regarding this. I occasionally observe when something big happens like federation breaking.

    Sure. And UI programming is also something that is not really fun to me. I’m also not sure why it hasn’t more contributors. Maybe the atmosphere isn’t that welcoming to new people. Or the userbase in total is just too small. I mean fediverse observer reports like 50k Lemmy users, and that’s not that much people if we’re talking about the subset of people who learned programming and have the spare time to contribute. Maybe it’s too interlinked with the rest of the code or not documented enough. I’d say it’s probably not that attractive to get involved because it’s mainly small bugfixes that can be implemented without also getting involved with the rest of the project. And apart from drive-by pull requests, people usually have some bigger vision when they join a project.






  • Since I’m dabbling in AI at the moment: What about llama.cpp? Dude handles like 50 pull requests a week, coordinates everything and codes himself. And it’s really complicated stuff and not the only project. And I mean there is lots of Linux software I use, (web-development) frameworks, smarthome stuff and electronics projects that I participate in and I’m always fascinated by their pace and how they manage to do that in addition to a day-job?! And they regularly push new features… I’ve had contact with some, filed bugreports and sometimes the next day they solved my issues and pushed a new version.

    With Lemmy, my UI bugreports from a year ago are still open and not fixed. And it feels like contributions and bugreports are more a burden to the devs here and not that welcome like I’m used to from other projects. And yeah, I’m glad the last release was a bit bigger. But I mean it took 5 months… And moderation tools are traditionally an issue here. I’m glad something gets implemented. But we’re still far from where we need to be. Same with the image handling and proxying.

    I’m not sure what to make of this. Sure, software development ain’t easy. But every new release I check the changelog and usually it’s just some minor bugfixes. And twice a year a bigger release like this month with new features, yet the last bigger user-facing feature I can remember was instance blocking in december. And this is more or less adding the ability to hide posts and change how voting is displayed, if you’re just a user.

    Edit: I appreciate the work, though. And I like the idea of the platform. It’s just that I’d like it to grow and flourish. But to me it seems we’re often taking baby steps. And in the meantime stuff breaks and admins complain they barely cope with everything with the tools they have.





  • Hmmh. Why ActivityPub? I mean I suppose it’s alright as a standard for some turn based or slow trading game. But it’s neither very efficient nor suited for realtime. And having long (and descriptive) JSON messages, queues, … is baked in per design.

    And it’s not even interesting to a Mastodon user if player x sold y latinum to player z. So for lots of game logic we don’t need messages in a common format that’s federated to Mastodon, Lemmy, Peertube etc.

    I think a nice and not too complicated coding challenge would be to design a world that spans multiple servers. Players could roam a world, go through some door or portal and the client seamlessly connects to the next server. So that part of the world (the other server instance) is behind that portal. That’d make sense from an in-game perspective and won’t be that hard to implement. Basically it’s just like any other game, just that the client auto-connects to servers with some internal logic and not just in the start menu. And ideally authentication would be federated. The new server could ask the player’s home instance to authenticate them on entering the new instance.




  • Hmm, if you have a home network anyways… Maybe you can run AdGuard/PiHole there. I’ve switched to blocky.

    I made it listen externally and just configure it in the network settings of my devices to override the automatic DNS server. That way I don’t need to install sth like AdAway on all of my laptops and phones, because I have one central instance.

    Is there anything else that blocks video ads? I’ve never found anything except for uBlock which actually works. And I’ve recently learned that you can enable developer mode in Firefox based browsers on Android and install all the Plugins they don’t like you to use on mobile. Like SponsorBlock etc.