Giver of skulls

Verified icon

  • 0 Posts
  • 875 Comments
Joined 101 years ago
cake
Cake day: June 6th, 1923

help-circle
  • It can work for other use cases Lemmy is proof of that. However, it’s not the main objective to be a federated Reddit.

    Lemmy, Mastodon, Pixelfed, WordPress, Friendica, and Mobilzon all have different design considerations that are all equally valid. Some of the edge cases necessary to make Lemmy work well are unnecessary or even unwelcome for other designs (see: following Lemmy communities turning your timeline into an endless stream of boosted replies).

    ActivityPub isn’t magic. It’s very deliberate in its push-based one-on-one entity relations (for performance reasons mostly). For social media, that works fine. The problem comes in when you get massive communities all posting in single threads, or people with thousands of followers that don’t know about each other rather than a friend group interacting with each other. Mastodon absolutely sucks for people with a large following; this isn’t something that’s unfixable, but fixes do need work and deliberation to work well.

    I’d say ActivityPub works great for most social media. The biggest exception may be chat (DMs are footguns that work almost accidentally) and ranked-score forums like Reddit, which require a lot more post-processing than other social media protocols.

    It should also be said that both Lemmy and Mastodon use the ActivityPub spec mostly correctly (neither is fully spec compliant as far as I know), despite using different mechanisms to achieve the same goal that aren’t always compatible. We can barely get chat apps to interoperate, it’s impressive how well ActivityPub has proven to be.

    I don’t think the situation would be very different had Lemmy been based on ATProto or Nostr. Reddit is a bit of an odd duck in the social media landscape, and very few other websites share its core patterns and algorithms.




  • Standard SMS/MMS are the de facto standard in the US, outside of iMessage. Hundreds of millions of people use it. It’s not “never really used anywhere”.

    And you’re right, people have moved on from caveman technology; the youth is switching to iOS and iMessage en masse. That’s why people need to deal with shit like this, iOS users don’t know that the only reason they can text like normal people is because of Apple’s weird version of WhatsApp.

    If iMessage hadn’t been sneaked into the iOS texting app, Americans may have moved over to something better as well, but they didn’t. They never felt the pressure to switch to texting apps because their carriers charged differently/less for texts than the ones in other countries.

    And it did go somewhere. RCS is SMS/MMS for data networks. Carriers didn’t run RCS servers and phones didn’t come with RCS clients so it went nowhere. Until Google started hosting Jibe and including it in the messages client, that is.

    Even RCS took some massaging by Google to make it actually usable as a texting standard, with Google making use of the freeform HTTP nature of the protocol to add some proprietary standards to make it actually usable. The first released versions of RCS were kind of terrible, basically MMS but over IP rather than weird telecom protocols.

    I pity the fool trying to use RCS without Jibe. Luckily, carriers are shutting down their bespoke RCS servers and renting RCS services from Google instead. Unfortunately, that makes RCS a standard practically governed by Google, carriers from whatever countries Google isn’t permitted to operate in, and spying agencies.


  • SOAP requires reading a manual before you get started, but so do the frameworks that try to replace it. APIs are APIs, you rarely need to manually access any of the endpoints unless the backend doesn’t stick to the rules (and what good do any alternatives provide if that happens?) or your language of choice somehow still lacks code generators for WSDL files.

    OpenAPI/Swagger is just SOAP reincarnate. The code generators seem to be a bit more modern, but that’s about it really.


  • Of course you can use XML that way, but it is unnecessarily verbose and complex because you have to make decisions, like, whether to store things as attributes or as nested elements.

    That’s a rather annoying shortcoming of XML, I agree. Then again, the choice is pretty inconsequential and the XSD for your data exchange format will lift any ambiguity anyway.

    The choice between XML and JSON are a matter of preference, nothing more. XML is much more powerful than JSON and it’s usually a better choice in my opinion, but if you’re writing your applications well, you may as well be sending your data as pixels in a PNG because your serialiser/deserialiser should be dealing with the file format anyway.


  • The way you describe this, it sounds like it would need to work on trust a lot more than it already does. What if there’s a malicious instance actively circumventing bans, ignoring any pulbished banlist?

    They already exist with the current Lemmy model, unfortunately. Bypassing ban lists isn’t exactly difficult unless the server you’re following does whitelisted federation.

    I was talking about the scenario where you are instance A and you don’t know the followers of a user of instance B. That is not easy to keep track of, since you obviously don’t get any of the follow requests for a user on another instance.

    If you don’t know who’s following who, ActivityPub still has inboxes and other collections that can contain existing posts for new servers. Server A can add their likes to the appropriate collection and any new servers can fetch that collection at the first follow of that account.






  • Most web frameworks contain code to exchange JSON over XMLHttpRequest for a reason. XML is and always has been a data transfer format as well as a file format. JSON is, too. The amount of config.jsons I’ve had to mess with…

    but using XML to communicate between your app’s frontend and backend wouldn’t be either

    I don’t see why not? The entrypoint of web frontends is sent as HTML already. I guess that’s based on SGML, XML’s weird and broken cousin. Outputting XML is just a matter of configuring whatever model serialiser from JSON to XML.

    There are a few good arguments against XML, but those also work against JSON.


  • ActivityPub has been designed as a push-only protocol as push/pull would involve too many web requests. It was designed for designs like Facebook and Twitter. This flexibility made Lemmy possible.

    As for sending the post, it’s not that hard to keep track of all servers that follow a group or person or hashtag. Following people is not passive, you send a follow request which usually gets approved automatically.

    Bans are already questionable. Servers choose not to forward every message (personal, group, public) to every account. There is no “themselves” in a shared server. Either the entire server gets banned, or the server is trusted to enforce bans. Lemmy federates those bans (though Lemmy and Kbin don’t always communicate right).

    What if the community defederates an instance but my instance doesn’t defederate that one - will my instance send the post to the instance that is defederated by the community?

    I would say “the server publishes a banlist containing *@bad-server.tld”. The defederation list on Lemmy is public anyway, but you could also argue for making such behaviour a setting, and there are probably other/better alternatives.





  • Linux has support for updating various Lenovo models through a piece of software called fwupdmgr. If your laptop is support, it should show up automatically in Gnome Software or similar package managers.

    For your laptop, Lenovo has a “Bootable CD” download option for non-Windows users. It’s intended to be written to a CD (but a flash drive will probably also work), for example by using one of those USB DVD drives.

    If you don’t have a flash drive for some reason (and I doubt you’ll have a DVD drive in that case), you can try to make the Ubuntu bootloader boot the ISO, though that’s not something for beginners. Here are the official instructions in case you still want to try, but I don’t think I’d bother.

    The easiest method may be to contact Lenovo and ask them how to do it. I think they’ll refer you to the bootable ISO. If they don’t make their updates available for anything but Linux, you’re going to have an annoying time.

    Spending the five dollars on a flash drive to write the bootable CD to would be worth it in my opinion.

    To answer your question: if the software manager doesn’t offer you the firmware update already, the easiest (not necessarily easy) way would be manually adding a bootloader entry to your Grub configuration to boot the update ISO you can download from Lenovos’s website.

    The second easiest way would probably be to extract the firmware updater from either the Windows download or the ISO file, extracting the .efi files and the .rom files, placing them on your EFI partition, and using the boot menu to manually boot the firmware updater.

    Or, to answer more succinctly: if you don’t get those updates already, there’s no easy way without a bootable medium. Sorry. Tell Lenovo to publish the firmware updates through the standard Linux channels like they do for other laptops.