Hello there!

I’m also @savvywolf@furry.engineer , and I have a website at https://www.savagewolf.org .

He/They

  • 1 Post
  • 21 Comments
Joined 1 year ago
cake
Cake day: June 27th, 2023

help-circle


  • The way Nix works is that the entire system is defined by a single configuration file. The entire system (minus dynamic stuff like databases) is defined in terms of that config file.

    For example, one of my websites is defined in a config file like this:

    let
      # Domain info
      savvywolf_scot = "savvywolf.scot";
    
      # Static Websites
      staticsites.card = fetchGit {
        url = "somegiturl";
        rev = "somegithash";
      };
    in rec {
      services.nginx.enable = true;
      services.nginx.recommendedProxySettings = true;
      services.nginx.virtualHosts."${savvywolf_scot}" = {
        addSSL = true;
        enableACME = true;
        root = "${staticsites.card}";
      };
    }
    

    I can trigger a rebuild, and then I have an nginx service running and service a static website.

    In addition, each package is also isolated in such a way that it keeps its dependencies separate from other packages (if needed). So containers aren’t really needed.


  • Firstly, I don’t think Docker is intended to be used as a security layer. I could be wrong, but I think it’s relatively easy to escape the sandbox. Although that might be different nowadays.

    Anyway, I recently switched from Debian to NixOS for my server and it’s so much nicer. Being able to use a single language for configuring everything all in one place is so nice. If I want to try something new, I can just throw maybe 30 lines in a config and it’s there. If I don’t like it, then I can remove that config and it’s gone. Most services you’d want to run on a server are available in the package manager, and many have rather sensible defaults.

    The only headache for me was the lack of documentation (especially with flakes). There’s also a learning curve with the Nix language itself.







  • So first of all, I had to upgrade something from Python 2.something to 3.something. I forget the specifics of what went wrong, but modern versions of pip just do not handle Python2 gracefully, at least when working with virtual environments. I tried to freeze to get a list of current dependencies, but pip freeze in a virtualenv just ended up writing out the system’s packages, not those in the virtual environment. I get it, Python2 isn’t officially supported any more, but at the same time, why is a language version not supported? Why is it not handled gracefully? This doesn’t happen in other programming languages.

    Anyway, as for bumping up through Python 3 versions. I used a framework to do most of the heavy lifting in my project, but I think Python 3.8 or 3.9 introduced some syntax changes which made it not compatible any more. Changing how string literals are handled, and adding/removing arguments to functions. So I had to bump to a new version of the framework. Of course, because this was a webdev project, updating the framework also meant changing my project itself because of the “move quickly and break things” mindset that they have. So yeah, bumping up through versions of my framework until I got to one which was officially supported with the current python version.

    I also used a python program to automatically run some scripts on boot. Turns out a while ago they decided that they wanted to redesign how they did everything, so you have to know to use the 1.x branch (which is still being updated) rather than the 2.x branch.

    It honestly feels like everyone has a mindset that anything you write in Python and Node will be perpetually updated, and that long term maintenance isn’t a thing that happens. That you should always be using the latest version of anything.

    And yes, I know I could probably work around all of this using Anaconda or docker or some other rube goldberg machine of programs. But I can’t be bothered dealing with that nonsense. I just want to keep something I wrote many years ago running.

    If I start a new webdev project, I’m just going to use some Rust framework for the backend, and plain JS for the frontend.


  • I know it’s clickbait and all, but I can’t really let their comments about “decay” go without saying anything.

    I spent a weekend updating a Python project after updating the OS. Fuck Python’s release methodology.

    Yeah, Rust has a lot of releases, but they’re all backwards compatible. I’m pretty sure a modern Rust compiler can compile any historic Rust program. Meanwhile every “minor” Python release has backwards incompatible changes and there’s no guarantee of backwards compatibility at all. And that’s without even bringing up the big major bump from 2 to 3 which… Was not handled well.

    Honestly, if there’s any language that people should be angry at for “decaying”, it should be Python. Hell, even C and C++ have got this right.


  • Thanks for listening to my feedback; I know I can be a bit forceful and dismissive at times.

    If you are going to go through with this, please get permission from the subreddits you are trying to bridge beforehand. If some drama breaks out (which it will, because people online love drama), you’d rather them be on your side than against you. If someone takes issue with anything, then that’s something the subreddit mods can deal with, not you. They can also manage announcements of what is happening, and give you an air of legitimacy.

    I do not want to ask permission from Reddit to do this.

    You need Reddit’s permission. They have complete control over their platform and have the final say on what people do on it. They can ban anyone at any time for any reason. If you try to do something without their permission, they’ll just start banning your bots and send you takedown requests. I know it sucks, but they hold all the power here, and have made it clear that they want to stomp out competition.


  • So, I’ve posted a negative comment below. But since I’ve slept on this and thought about it a bit more, I am starting to think something like this could work… But with some caveats.

    The idea is to create a fediverse “client” of sorts that mirrors content to and from Reddit. A “bridge” like in Matrix, I guess.

    Some challenges and prerequisites:

    • On the Reddit end, this needs to be in an automod autopost and/or pinned post, saying there’s an experimental bot crossposting to Lemmy (And you need to convince the mods on the subreddit end to allow you to do this).
    • It should be a separate community. The rust community here is growing organically with a distinct culture, and it’d be a shame to destroy all that culture with a firehose of comment. The Lemmy community could also have unique content, and some users could also just prefer a small, cosy community.
    • That separate community should have an obvious name so that people don’t confuse it with the real Lemmy community (instance names don’t count). Maybe like bridge_r_rust.
    • You need to convince Reddit itself to let you do this. I don’t know how you’d do that.
    • I don’t think it’s a good idea to pm responses; just have the bot respond to messages directly on Reddit. It gives more visibility anyway. Making it public removes a lot of my concerns with harassing people.
    • Honestly, I feel giving people the ability to convert these bot accounts to real accounts feels like scope creep, and brings up a lot of technical challenges. Maybe just leave that be for now.
    • I think you’d need to speak to the people that run the big instances to see if you can avoid getting defederated. Perhaps the bridge community could be hidden by default in the all feed.
    • There needs to be a way to get people off the bridged community and into the “real” Lemmy community… It’d be a shame to do all this work and just end up with an alternate front-end for Reddit that ends up killing Lemmy.

    I think bridged communities could actually work if you can solve the challenges above and provide a way for people to get from them to Lemmy itself.



  • I broadly agree with you, and think that big tech companies are a problem and the fediverse is how social media should be run. However, it’s not me or anyone here you want to convince.

    Most people just don’t feel this strongly about megacorps owning social media. I’ve been thinking about this a lot, and I think the thing holding back Mastodon and Lemmy isn’t the instance selection or lack of marketing or whatever. It’s the fact that people don’t agree with the values, philosophies and ideology of the project. Maybe that’s through lack of knowledge, maybe that’s through conscious choice, but the fediverse requires a level of “buy in” to the project’s ideology, at least at this point.

    If you send unsolicited DMs to people, I expect you’ll get one of three responses:

    • Indifference: “Oh, another spam email. I don’t really care”.
    • Interest: “Oh, there’s that Lemmy thing I’ve seen mentioned. I should look at it”.
    • Anger: “Really? They took my post and reposted it there? I didn’t agree to that, Lemmy is a terrible platform!”

    I expect that an “anger” response will probably be more likely than any other response, which will harm adoption. I agree with the sentiment about “getting people off Reddit”, but this feels like it’s pushing too hard and Redditors might not be as receptive.

    I guess it’s like going to people on the street and saying that they should stop eating a certain type of food. You just make your group look very pushy and presumptuous, even if you have very good reasons.

    IMO, work should be focused on spreading awareness in a non-assertive way about why moving from Reddit to Lemmy is the “correct” choice. Or, we can work on making Lemmy an attractive place (by fixing bugs and papercuts) so that people naturally head here the next time Reddit does an oopsie.

    Although, that’s all moot with the main practical problem to this approach: How are you going to convince Reddit to actually let you implement this system?

    I’m not sure the issue with “instance politics” will be solved by having dedicated identity servers; you’re just moving the problem of moderation from one person (running the instance) to another (running the identity servers).

    Takahe doesn’t really solve this problem (unless I understand what they are doing - their features page is really unclear). You can have multiple identities per user, but that doesn’t protect the user account itself from the reputation of the instance owner.


  • I’m against this for a number of reasons. To the point that honestly I think you should have a think about if this is something you want to actually persue.

    Firstly, we are not Reddit, we are Lemmy. We don’t really need to just mindlessly copy content over just for the sake of content. If this community were just a mirror of Reddit, then what’s the point of being on Lemmy anyways?

    Lemmy and Reddit are link aggregators anyway. If there’s something that’s good enough to crosspost, then someone who browses both can just manually copy it over. There’s not really much OC on Reddit, especially for something like a programming language.

    And if someone really wants to look at Reddit posts, they’d follow the lemmit mirror. Or just use Reddit.

    Anyway, that out of the way, I really don’t think you should be trying to force/convince people to join Lemmy. Especially using automated tools.

    Your roadmap shows a bot that would pm Reddit users any responses to posts from other platforms. I know if I got a message like that, then I’d just mark it as spam. It reads like a scam and would not make me want to join the platform.

    I actually have a random bot email me saying I have unread messages on a git repo that was cloned by a random Chinese site. I mark it as spam and ignore it.

    Anyway, let’s imagine people take you up on the offer and convert their accounts, will they have access to the whole fediverse? The big instance ( lemmy.world ) iirc blocks lemmit, and I can imagine would block your instance as well. Defederation is a pain point for people wanting to join the fediverse, and this will exacerbate things.

    But let’s assume you get all that sorted, and you manage to recruit, let’s say a few tens of thousands of people. Have you a plan on how you are going to approach moderation and instance politics? Not saying you haven’t, but something to consider if you’ve not.

    Anyway, that’s my thoughts. Sorry if I’m a bit negative. I think the way for Lemmy to grow is organically by providing a good value alternative to Reddit. Not by laser focusing on getting as much people and content as possible.


  • Okay, maybe “undiscoverable” is kind of the wrong word. I’m thinking about users who don’t really understand how lemmy work and don’t know that these tools are available.

    During the initial “gold rush”, I noticed a lot of duplicate communities being created on lemmy.world that already existed elsewhere (e.g. !opossums@lemmy.world for !possums@possumpat.io ). These communities I guess just didn’t appear during a search on lemmy.world (since it didn’t know about it).

    Honestly, it felt like if you made a community anywhere other than lemmy.world, a lemmy.world version would appear and outcompete it unless you linked it elsewhere or it had a dedicated instance.

    Not saying that anyone did anything wrong, it’s just people being unfamiliar with the platform.


  • Just pointing out that the pawb.social people are/were also planning on forking Lemmy for similar reasons: https://pawb.social/post/147036 . Not entirely sure how much work has gone into it, but might be worth syncing up with them. Although I’m not sure if it’s the “right” thing to do to fork just for ideological reasons, especially since the main lemmy.ml instance seems to be fairly neutral.

    I’ve been thinking about how a single “community” could exist across multiple instances, especially given that the landscape right now is that communities are basically:

    • Undiscoverable.
    • Hosted on lemmy.world, which is a problem in case something happens to it.
    • Hosted on lemmy.ml, which is a problem given that the community can be a bit trigger happy with defederation.

    Communities following others seems an elegant solution, honestly. Although, I would say that moderators should be able to remove posts of communities they follow, just in case.

    However, something stuck out to me when reading the design discussion:

    Users who post to a community that follows other communities are offered the choice of whether to post directly to the community they’re following, or to one of the communities that are followed by that community. They need not post multiple times, because posting to a more ‘upstream’ community would cause it to be seen by users of that community as well.

    Why not? The lemmy web client at least does a good job at de-duplicating crossposts, and the client used for posting could give you a bullet list of communities you want to send it to. Imagine instances a, b and c where a defederates c, but a also has the largest community for bespoke hatwear or whatever. If you (who is on none of those instances) send your post to just a (because it’s the largest), then your content will be unavailable to c. But if you post to both a and c, you reach both communities.

    Another thing that confused me while trying to wrap my head around things is this diagram, which I don’t think covers a common case:

    Image

    If a user on b makes a post 1 to the community on c… What happens?

    Option 1:

    • funny@c boosts post 1 as message 2.
    • funny@b is sent 2 and boosts post 1 as message 3.
    • user2@a can see 1 through message 3 because it is posted on b, which they federate with.

    Option 2:

    • funny@c boosts post 1 as message 2.
    • funny@b is sent 2 and boosts post 2 as message 3.
    • user2@a cannot see 2 through message 3 because 2 is on c which they do not federate with.