I started touching on some imagined future steps, but this chunk is already a plenty big and ambitious thing. So, here’s an initial plan for how I want to attack taking first steps and bring myself into contact with the engineering reality (as opposed to the rosy broad picture). Hopefully at the end of this chunk of work, the vision will have adapted somewhat to the reality of what’s useful, what’s possible, what the community’s feedback is, what the issues and problems involved are, etc.
(And, obviously, I want to communicate with the Lemmy devs to make sure these ideas are in line with their vision. I’m laying this all out so extensively partly so that the community has a full explanation of what I’m proposing to do and why.)
So, first steps: I’m making a Lemmy instance that I can use for implementing this. I’m waiting for my hosting to go up so I can make it live, but once it’s up, I’ll start working on it + posting from the testbed about what’s going on. My initial coding task list is:
Set up the peer software with the content-addressable store
Start to have my instance do peer discovery, make the app that runs in people’s browsers from my instance become more AJAX-y and begin to request data from the peers instead of the instance.
Once that part’s working on my instance, I’d aim to be able to move pieces of the actual app onto the peers – construct the bootstrap code, continue the AJAX-ification of the code on my Lemmy instance, and have the bootstrapping app construct the end-user application directly from data from the peers.
Start to tackle the browser app making updates to the data store via requests to the peers, which will involve a lot of work and lot of sorting out replication issues, security and trust issues, and performance issues.
That’s already a fairly large amount to take on. I have further ideas about how the system could move forward from there, but even just that represents (1) an ambitious thing to tackle (2) significant proposed changes to the instance software (3) if it works, a fantasticallyuseful tool that instance operators could use to reduce their instance load if they want to. So, I’m limiting the plan to that much for now until I get some contact with the technical reality and with the community.
What You Can Do
So if you’ve read to the end, maybe you think this is a good idea. Want to help? This is a bunch of work already and I’d love it if people wanted to help get it done. Leave a comment, let me know what you think whether positive or negative, and if you want to help, 100% reach out and let’s get it done. I’m skilled with software engineering in general, but I’m actually not too familiar in particular with web backends and AJAX, so someone more skilled than I am could probably help this along in a huge way. Specific things that might be useful:
If you want to run a peer or instance and help test the system
If you can help with coding
If you have feedback on these ideas in general, either positive or else things I’ve overlooked or need to adjust
Hope to hear from you and thank you for reading my wall of text. Let me know what you think + cheers to you.
I got a spare raspberry pi set up as a server. I can use that to host stuff and am okay in programming (not rust though). Let me know if I can be of assistance in anyway. Be happy to help with this effort
Stardew Valley. I don’t find it relaxing at all but a chore and stressful due to the day/night cycle. I feel like Terraria is handling day/night much better.
If you’re on PC, there’s mods to help with the time (even stopping it altogether). I haven’t tried them out myself, but this mod would solve the time management issue: www.nexusmods.com/stardewvalley/mods/169
Before Netflix, there was Blockbuster.
Before YouTube, there was Metacafe and janky websites hosting Flash or Quicktime Player.
Before Spotify, there was PeopleSound and iTunes gift cards.
Before Discord, there was IRC and AOL Chatrooms.
Before Facebook, there was MySpace and Friendster.
Before iPhone, I had an LG Dare and Palm Pre. Good god!
Before Reddit, there was Digg, Slashdot and Fark.
Something better always comes along. Especially if that “better” is tied to a streamlined, easy to use, easy to learn UI.
Reddit would’ve never gotten as big as it did without third party support. Not just apps like Apollo, RIF and Narwhal - but tools like Imgur and RES.
Lemmy and “The Federation” (I’m not quite yet sold calling it the Fediverse…) has a lot of potential to be that “better than Reddit” online space. Nobody owns all of it, so there’s safeguards against the things that we’re blacked out.
And it’s partially why its a fixer-upper.
We, the community, are going to need to make Lemmy the space we want it to be. That means competition between instances and servers, that means user generated tools and content. I read the RIF developer is working on a Tildes app for iOS and Android. Mlem iOS app is in early Beta, but are working hard to have a stable release for 6/30. Jerboa’s out on Android already and folks seems to like it so far.
Give it time. We’re all new. And whether it’s here or somewhere else - we always land on our feet. Maybe the only thing we have in common with u/spez : there’s nowhere to fail but up.
My laptop is on Manjaro and has been running flawlessly for years …such a great experience with gnome 40+
My desktop is also on Manjaro, and things could not be more different. No Wayland, no animations in the gnome desktop, visual glitches since the last update …guess it doesn’t play well with Nvidia drivers. Anyone managing something decent with gnome+Nvidia?
I am typing this on my Pixel 7 (recommend me a Lemmy app please :D )
I had a 4a before this, I liked the finger print reader way better on the 4a but other than that my 7 is better, its the best and most expensive phone i’ve ever owned.
Before the 4a I had some random Honor and Huawei phones and I used to upgrade phones almost yearly which I felt was kinda depressing so I figured I should “invest” in a phone I could use for ~3 years.
The only Apple product i’ve had was some kind of iPod that I asked my uncle to copy cd’s onto, it was kinda cool i guess.
Tears of the Kingdom. I’m going to be here for awhile, but this game has made me want to play some other Switch games in my collection that I’ve been putting off, like Xenoblade Chronicles.
One question I still have is how quickly posts and comments propagate across the Fediverse. How can I be sure the comment I’m writing actually shows up across other instances, and how long after I write it does it take on average to show up other places?
For instance, when I look at the list of comments on this thread sorted by both Hot and New, directly on Lemmy.ml versus on my home instance of Lemmy.pt, I don’t see the same set of comments. Not all of the ones from Lemmy.ml appear to have made it over to my instance. Is there some sort of eventual consistency mechanism in the system?
A small cloud server + a domain name costs less than a Netflix subscription. The developers have taken care to package lemmy in ways that are relatively straight forward to deploy, so a dedicated person with a small amount of experience can have an instance up and running in an evening. As long as a few percentage of users are willing to pay a netflix subscription to keep a server running, the financial burden would be spread.
I think this underestimates how users will naturally gravitate towards more centralized instances, or they’ll give up because the bigger instances are closed. Someone’s gotta pay for it, and it’s going to cost more than a Netflix subscription. Servers aren’t cheap.
This also ignores that the system isn’t horizontally scalable at all, so scaling up gets even more expensive
I think this underestimates how users will naturally gravitate towards more centralized instances, or they’ll give up because the bigger instances are closed.
(This is purely my personal opinion, of course!) In the scenario in which a few large instances dominate, the idea of the fediverse failed. One may estimate the likelyhood of success or failure given how they expect humans to behave, but in the end experiment beats theory. I think that for the fediverse to work a significant cultural shift has to occur, but I don’t think that it is an impossible shift. I would like the fediverse to succeed, and so I choose to take part in the experiment.
This also ignores that the system isn’t horizontally scalable at all, so scaling up gets even more expensive
Yes, that might cause some serious issues. The project is still in an early-development phase, and I don’t understand the technical aspects well enough yet to be able to identify whether there is obviously a fundamentally invincible barrier when it comes to scalability. My optimistic hope is that the developers are able to optimize horizontal scalability fast enough to meet the demand for scale. If it turns out to be impossible to scale, then only rich enough parties would be able to have viable instances, and that could be a reason for failure.
This is what I think, but if anyone understands it differently please correct me.
Vertical scalability refers to scaling within a single instance. More users join and they post more content, increasing the amount of disk space needed to hold that memory, network bandwidth to handle many users downloading comments and images at once, and processing power.
Horizontal scaling refers to the lemmyverse growing because of the addition of new instances. The problem in this form of scaling is due to the resources that an instance has to use due to its interactions with other instances. So, you may create a small instance without a lot of users, but the instance might still need a lot of resources if it attempts to retrieve a lot of information (posts, comments, user information, etc) from the other larger instances. For example, at some point a community in lemmy.ml might be so popular that subscribing to that community from a small instance would be too much of a burden on the smaller instance because of the amount of memory required to save the constant stream of new posts. The horizontal scaling is a problem when the lemmyverse becomes so large that a machine with only a small amount of resources is no longer able to be part of the lemmyverse because its memory gets filled up in a few hours or days.
kbin.life
Top