Piefed contributor and part of the piefed.social admin team.

  • 17 Posts
  • 73 Comments
Joined 1 year ago
cake
Cake day: November 20th, 2024

help-circle



  • 100% agreed.

    I have contributed quite a bit to the PieFed codebase, but the ActivityPub parts of the code are the main area where I dare not wander unless absolutely needed. Trying to make sense of what AP json should look like for specific actions is basically impossible and each software tends to have slightly different dialects anyway because of the a la carte nature of the FEPs.

    To that end, I just saw that you (mbin) just published all of your AP json schema. It is so incredibly helpful to have complete schema in one place for each type of activity. So, thank you a lot! I am sure I will make use of it.



  • I can confirm that this is something @Skavau@piefed.social has brought up in the past on multiple occasions. It’s an issue that I am sympathetic to, but so far it hasn’t been a high priority for us to take the time to try to address. One of the biggest complaints we see people have about the threadiverse in general is that there isn’t enough content; that their feed gets stale too quickly. So, having more subscriptions hasn’t necessarily been seen as too much of a “problem” from my perspective.

    What I did work on was making it easier to unsubscribe from communities. If you filter the communities page to just communities you are subscribed to, it should be a simple matter of clicking the buttons to unsubscribe to undesired communities. It used to reload the page each time, which made that task immensely tedious.

    Frankly, now that Skavau has a third party backing up their position, they will be insufferable about it until we try to fix it 😜



  • More recent versions of piefed should have a much improved compact mode. I basically made the thumbnails for image posts render just like thumbnails for link posts when in compact mode. It was a pet peeve of mine too that compact mode said it was thumbnails, but it still put images on a whole separate line which made them much larger than other thumbnails.

    PBZ is on 1.3.0 now, so it should be available if you want to give it another go. Just make sure that your UI option is set to compact mode. This setting is per-device, so you might need to reset it for different browsers/phone/etc.





  • I run a personal lemmy instance and two personal piefed instances, so I was just doing some comparisons. My instances are mainly used for development and testing, so they are only subscribed to a handful of communities and just have one active user.

    You are correct that when it comes to performance, like snappiness and responsiveness, the database is probably going to be the bottleneck. Unless you are scaling up to a huge degree, I would be surprised to see meaningful differences in the number of requests that could be handled due to language differences between rust and python. Yes, python is an interpreted language, but most of the libraries you are using are basically calling other system libraries written in a language like C, and the program can execute way faster than your database I/O can give it data to process anyway.

    Here is my usage summary. The lemmy instance has been running for about 1.5 years while the piefed instance has been running for just shy of a year now. I have only included the memory usage and disk since I don’t think either is really CPU hungry or bound in my use case.

    Software Memory consumption Disk Usage
    Lemmy ~1.5 GB ~800 MB
    Piefed ~1 GB ~200 MB

  • I’ve never used the baremetal setup, so I can’t speak to that. However, I actually agree with your points on the docker deployment. It’s something I have spoken about to some length with people in our matrix channel as well. There are a couple things that I don’t love about the current docker setup process, but just don’t know docker or linux stuff well enough to fix:

    • Needing to set up external cronjobs like you mentioned
    • Needing to exec into the container for initial setup
    • Not having pre-built containers that we can put in a container registry to make things easier

    Docs are an always evolving thing and we have been fortunate enough to have some other admins go through the setup process and provide feedback, which has helped flesh the docs out some more. However, there is always more that can be done.


  • Lots of the Otome Villainess genre these days has some element of court drama. Stuff like broken engagements, high-stakes tea parties, and spilled drinks on ball gowns are part and parcel with the genre, though they also tend to inject quite a bit of humor. Each of them have their own spin on things though, whether that be a unique magic system or what have you. Some recent ones I enjoyed would be I’ll Become a Villainess Who Goes Down in History, Villainess Level 99 (more on the humorous side), Endo and Kobayashi Live!, and Why Raeliana Ended Up at the Duke’s Mansion (a bit more serious).

    You can check out the Royal Affairs tag on AniList to get a browseable list of royal-inclined anime, but it isn’t going to be limited to Western-inspired courts since shows like The Apothecary Diaries or My Happy Marriage would also be listed there despite being set in China and Japan respectively.

    A bit of a curveball is that a lot of the gundam or other space opera type series tend to have a large focus on political intrigue in addition to the battles. I remember that being a big theme when I watched Gundam Wing as well as Escaflowne and I have heard people say the same about Legend of the Galactic Heroes (but I haven’t seen that one).


  • This is probably true for anonymous (not logged in) users, but might not be if you are logged in. Things like user/community/instance blocks, votes, read/unread status, etc. need to be accounted for when generating the main feed for logged in users, and those are dynamic. It might be cached for some time, but the retention time would likely be short (a couple minutes maybe).

    I haven’t worked too much with the caching that piefed does, but I know it keeps some info in a redis cache to help speed things up (blocks, votes, etc.). That way getting all that info doesn’t need to be a new db query every time except maybe the first time. Some pages also make use of etags so that if the content is unchanged, the request doesn’t need to hit the db at all. I imagine lemmy has some mechanisms to do caching as well, but I am unfamiliar with the code at that level.


  • This is pretty much always going to be the case because the database query is much more complicated to filter by your subscriptions rather than the completely unfiltered views that are just sorted a certain way.

    I don’t have direct experience working in the lemmy codebase, but I do in piefed, and this is just an inherent limitation of how databases work. Basically, there is a big table in the db with all the posts that the instance knows about. As an example, let’s say that you want to look at your Subscribed feed and sort it by New. First, the database sorts all the posts by newest first (this step is very quick). Then it will filter out all the entries that are not in a community that you are subscribed to (this step is a lot slower). So, views where the database doesn’t need to do that filtering step are a lot faster than others. There are other things that slow down queries as well like blocks or keyword filters.

    Smarter admins than I can employ strategies to tune their database for better performance. I don’t have any knowledge in this area though, so others would be able to provide more insightful answers.


  • Matlab is great, but I’ve never seen it used outside of an academic setting. Mathworks offers relatively affordable licensing to academia in the hopes of training future graduates to advocate for its use in a professional setting. However, their corporate licensing is crazy expensive, so it’s usually worthwhile to just learn numpy/pandas or R instead.

    One toolbox that I think Matlab is really excellent in is image analysis. I used it a ton on microscope images during grad school, doing image registration, and nothing I’ve tried since has made it as easy.




  • Talk to your advisor.

    Over the seven years of my PhD (Physics), I was first or second author on less than 5 papers (3 iirc). However, I am really happy with the quality of those few papers, and so were the reviewers on my thesis and, ultimately, my employer after I defended. Unless you want to stay in academia and become a professor, the quantity is not that important.

    Have a frank conversation with your advisor. If you are out of ideas, I bet they aren’t. You are a student, not an independent researcher, so the expectation should not be that you are the sole driver behind the direction of your work. As a personal anecdote, I majorly changed the direction of my thesis after about three years in because the experiments were just really not working. It led to my degree taking longer, but I was seriously lost in the wilderness of discovery until I had a series of discussions with my advisor about where we could pivot the work that I had already done.