[-] matcha_addict@lemy.lol 1 points 2 days ago* (last edited 2 days ago)

bringing up RSS feeds is actually very good, because although you can paginate or partition your feeds, I have never seen a feed that does that, even when they have decades of history. But if needed, partioning is an option so you don't have to pull all of its posts but only recent ones, or by date/time range.

I would also respectfully disagree that people don't subscribe to 100's of RSS feeds. I would bet most people who consistently use RSS feed readers will have more than 100 feeds, me included.

And last, even if you follow 10,000, yes it would require a lot more time than reading from a single database, but it is still on the order of double digit seconds at most. If you compare 10,000 static file fetches with 10,000 database writes across different instances, I think the static files would fare better. This isn't to mention that you are more likely to have to write more than read more (users with 100k followers are far more common than users with 100k subscriptions)

And just to emphasize, I do agree that double digit seconds would be quite long for a user's loading time, which is why I would expect to fetch regularly so the user logs onto a pre made news feed.

[-] matcha_addict@lemy.lol 1 points 2 days ago

Sure, but constantly having to do it is not really a bad thing, given it is automated and those reads are quite inexpensive compared to a database query. It's a lot easier to handle heavy loads when serving static files.

[-] matcha_addict@lemy.lol 1 points 2 days ago

Yes, precisely. The existing implementation in the Fediverse does the opposite: everyone you follow has to insert their posts into the feed of everyone that follows them, which has its own issues.

[-] matcha_addict@lemy.lol 3 points 2 days ago

Oh my bad, I can explain that.

Before I do, one benefit of this method is that your timeline is entirely up to your client. Your instance becomes primarily tasked with making your posts available, and clients have the freedom of implementing the reading and news feed / timeline formation.

Hence, there are a few ways to do this. The best one is probably a mix of those.

Naive approach: fetch posts and build news feed when user requests it

This is not a good approach, but I mention it first because it'll make explaining the next one easier.

  • User opens app or website, thereby requesting their timeline / news feed
  • server fetches list of user's subscriptions and followees
  • for each followee or subscription, server fetches their content via their static file wherever they are hosted
  • server performs whatever filtering and ordering of content they want
  • user sees the result

Cons: loading time for the user may be long, depending on how many subscriptions they have it could be several seconds. P90 may even be in double digits.

Better approach: pre-build user's timeline periodically.

Think like a periodic job (hourly, or every 10 min, etc) , which fetches posts in a similar manner as described above, but instead of doing it when user requests it, it is done in advance

Pros:

  • fast loading time compared to previous solution
  • when the job runs, if users on the same instance share a followee or subscription, we don't have to query it twice (This benefit already exists on current fediverse implementations) Cons: posts aren't real-time, delayed by the batch job frequency.

Best approach: hybrid

In this approach, we primarily do the second method, to achieve fast loading time. But to get more up-to-date content, we also simultaneously fetch the latest in the background, and interleave or add the latest posts as the user scrolls.

This way we get both fast initial load times and recent posts.

Surely there's other good approaches. As I said in the beginning, clients have the freedom to implement this however they like.

[-] matcha_addict@lemy.lol 1 points 2 days ago* (last edited 2 days ago)
  1. I write a post, and send a request to the server to publish it
  2. The server takes the post and preprends it to the file housing all my posts
  3. Now, when someone requests my posts, they will see my new one

If a CDN is involved, we would have to properly take care of the invalidations and what not. We would have to run a batch process to update the CDN files, so that we are not doing it too often, but doing it every minute or so is still plenty fast for social media use cases.

Have to emphasize that I am not expert, so I may be missing a big pitfall here.

10
submitted 2 days ago* (last edited 2 days ago) by matcha_addict@lemy.lol to c/fediverse@lemmy.ml

Current Fediverse Implementation

From my understanding, the prominent fediverse implementations implement fanout via writing to other instances.

In other words, if user A on instance A makes post A, instance A will write or sync post A in all instances that have followers for user A. So user B on instance B will read post A from instance B.

Why this is Done

From my understanding, to prevent a case where post A is viral and everyone wants to read it, and instance A's database gets overwhelmed with reads. It also serves to replicate content

My Question: Why not rely on static files instead of database reads / writes to propagate content?

Instead of the above, if someone follows user A, they can get user A's posts via a static file that contains all of User A's posts. Do the same for everyone you follow.

Reading this file will be a lot less resource intensive than a database read, and with a CDN would be even better.

Cons

  • posts are less "Real time". Why? Because when post A is made, the static file must be updated (though fediverse does this already), and user B or instance B must fetch it. User B / instance B do not have the post pushed to them, so the post arrives with a delay depending on how frequently they fetch. But frequent fetches are okay, and easier to handle heavy loads than database reads.
  • if using a CDN for the static files, there's another delay based on the TTL and invalidation. This should still be small, up to a couple minutes at most.

Pros

  • hosting a fediverse server is more accessible and cheaper, and it could scale better.
  • Federation woes of posts not federating to other instances can potentially be resolved, as the fanout architecture is less complex (no longer necessary to write to a dozens or hundreds of instances for a single post).
  • Clients can have greater freedom in implementing how they create news feeds. You don't have to rely on your instance to do it. Instances primarily make content available, and clients can handle creating news feeds, content sorting and filtering (optional), etc.

What are your thoughts on this?

29
submitted 3 weeks ago* (last edited 3 weeks ago) by matcha_addict@lemy.lol to c/fediverse@lemmy.world

The idea

I want to build an app, in which you can subscribe or follow profiles or feeds from multiple platforms, including various fediverse platforms (lemmy, Mastodon, Friendica, etc), blogs, and others (no idea what else yet).

App will have optional smart filtering and sorting, and optional algorithm based on your reading habits.

The north star goal is to make this app give the user the feel of being officially supported by the platforms it reads from. It should feel like a lemmy app if you see a lemmy post, feel like Mastodon if it's Mastodon, etc. This is obviously a monumental effort, so I will have to make concessions (hence north star).

Motivation

I see the recession of multi-source or Multi-Platform feed readers (RSS) as quite unfortunate to user choice and freedom.

I think this app, will promote a few ideals of mine:

  • being intentional about content we want on our feed
  • breaking boundary between different platforms (which is the spirit of ActivityPub)
  • promoting open platforms: encourage non-profitting creators to make their content accessible on these platforms, and readers to read from them.
  • consuming internet content without data mining, addictive scrolling, and having the choice to smart filter or sort your feed.

What are your thoughts? Do you agree that this is worthwhile?

Besides blog posts (RSS), lemmy, Mastodon, and other big fsdiverse platforms, what would you want to see on this app?

1

I found https://wanderer.to/ as an alternative to alltrails, but it seems not to address my main use case for alltrails: search around for potential hikes, look for reviews about them, photos, etc.

Is there anything like this? Anything close to it?

2

I found https://wanderer.to/ as an alternative to alltrails, but it seems not to address my main use case for alltrails: search around for potential hikes, look for reviews about them, photos, etc.

Is there anything like this? Anything close to it?

11

I have a nvidia GPU and wanted to use wayland / sway. I was able to get it working, but setting WLR_RENDERER=vulkan makes it stop working. Since sway does not officially support nvidia GPU usage, it seems I may be out of luck

I dont own many games, but I tried a few and they worked fine without issues. But I always heard that vulkan is the future of linux gaming.

Will I be missing out on a lot by not using vulkan renderer with wayland / sway? Do some games not work unless I use vulkan ?

17
submitted 5 months ago* (last edited 5 months ago) by matcha_addict@lemy.lol to c/linux@lemmy.ml

UPDATE: Resolved by deleting all files in /var and ~/.local that are related to bottles. It did not work until I deleted them from the repos directory too.

I tried to install bottles via flatpak, but I get the error:

Error: Error pulling from repo: While pulling app/com.usebottles.bottles/x86_64/stable from remote flathub: Opening content object fdb9f1f85b66889bd0dcced24c4fda571f2fcbddfe0af7176fa33a46953d2038: Opening content object fdb9f1f85b66889bd0dcced24c4fda571f2fcbddfe0af7176fa33a46953d2038: Couldn't find file object 'fdb9f1f85b66889bd0dcced24c4fda571f2fcbddfe0af7176fa33a46953d2038'
error: Failed to install com.usebottles.bottles: Error pulling from repo: While pulling app/com.usebottles.bottles/x86_64/stable from remote flathub: Opening content object fdb9f1f85b66889bd0dcced24c4fda571f2fcbddfe0af7176fa33a46953d2038: Opening content object fdb9f1f85b66889bd0dcced24c4fda571f2fcbddfe0af7176fa33a46953d2038: Couldn't find file object 'fdb9f1f85b66889bd0dcced24c4fda571f2fcbddfe0af7176fa33a46953d2038'

I have received such an error before, and usually running flatpak repair fixes it. But that is not working right now.

What else I tried?

flatpak uninstall --unused flatpak update flatpak update --appstream running all the commands as root

More about my system: I am using gentoo, but I did not think it would matter since the point of flatpak is this separation layer it has.

8

Hi all,

I downloaded overwatch 2 for the first time through steam (flatpak). When I click play, it looks like its doing something for maybe 5-10 seconds, but then nothing happens and the play button reappears. Seemingly the game does not run.

Some info about my setup:

  • bspwm, so no wayland

  • nvidia 3060 Ti GPU, tried both 535 drivers and 550.

  • kernel 6.1.121. Distro is gentoo but it should not matter

  • other games work. I tried Borderlands 2 as a recent example.

  • I ran steam through terminal to look out for errors, but nothing interesting pops up

  • nvidia drivers are installed through flatpak correctly

The questions: Can I get any more detailed logs ? any suggestions how to fix it ?

11

I want to create a WYSIWYG editor for markdown, and I want it to be keyboard-driven with vim editing philosophy.

I want the editor to have rich formatting, rather than the equally spaced cells of characters in the terminal. This would enable rows having different text sizes, usage of non-monospaced fonts, editing RTL languages such as arabic or hebrew, and bypass other terminal limitations.

Embedding neovim would be nice in theory, enabling all compatible vim features. But it seems to come with great difficulties, since I am forgoing the entire rendering philosophy that neovim depends on (equally spaced cells of the terminal).

SO I am thinking it would be better to emulate the vim features I want, starting with basic keybindings and motions, and go from there. But I am worried that I might end up regret this choice? It seems that embedding neovim is too monumental of a task for what I want to do. Am I mistaken?

7
submitted 7 months ago* (last edited 7 months ago) by matcha_addict@lemy.lol to c/fediverse@lemmy.world

I read in many places that this should be supported, but either I'm doing it wrong or it is not working.

I just signed up in my-place.social which seems to proclaim federation with over 1000 instances including Lemmy ones.

I put !fediverse in the search bar, but this community does not come up.

What am I doing wrong? Is there a friendica account I can tag to ask about this, or a group I can post in for support?

2

The use case I have in mind: say for example, I read a lot of articles about a certain topic, such as Linux or chemistry or whatever. I want to combine the articles I write into a singular feed, and for others to be able to follow it. Call it “Alex’s Linux Feed”.

Another use case: Suppose I follow a news source (like washington post), but maybe I dont like the formatting of their feed. Maybe it does not have the full article, or maybe it is not organized right (sports news is mixed with political news, and I want to separate them right). So I create my own feed where I organize those same posts better.

The reason this would be a platform because the user should not be burdened with hosting it (even if it is not difficult), and it should be searchable.

Is there any platform like this of user created RSS feeds?

29
submitted 7 months ago by matcha_addict@lemy.lol to c/fediverse@lemmy.ml

The use case I have in mind: say for example, I read a lot of articles about a certain topic, such as Linux or chemistry or whatever. I want to combine the articles I write into a singular feed, and for others to be able to follow it. Call it "Alex's Linux Feed".

Another use case: Suppose I follow a news source (like washington post), but maybe I dont like the formatting of their feed. Maybe it does not have the full article, or maybe it is not organized right (sports news is mixed with political news, and I want to separate them right). So I create my own feed where I organize those same posts better.

The reason this would be a platform because the user should not be burdened with hosting it (even if it is not difficult), and it should be searchable.

Is there any platform like this of user created RSS feeds?

39
submitted 7 months ago by matcha_addict@lemy.lol to c/linux@lemmy.ml

Hi all, I want to do some screen recording on my linux desktop. And like a normal-functioning member of society, I decided to do it the hardest way and learn ffmpeg CLI to do it. Why? well, something about using underlying tools and customizing their usage excites me.

I have already started doing this, and I am finding I have to do a lot of trial and error to get things right. Before I dive deeper, I want to ask: Am I limiting myself in doing this? Is there anything I could be missing out on taking this route, or something that ffmpeg could not do on its own that a dedicated solution can?

What will I use this for exactly? well, things like recording a video game as I play it (which I suppose will require hardware acceleration to be of viable quality), or recording a tutorial (requiring voice input from mic), things like that.

[-] matcha_addict@lemy.lol 69 points 10 months ago

That is part of why you're not a tech CEO. You're not supposed to have compassion! No investor would want that.

P.S. This is an attack on CEOs and investors, not on you :)

[-] matcha_addict@lemy.lol 49 points 1 year ago* (last edited 1 year ago)

Corbyn is yet another proof of the hopelessness of Western electoral politics. Just merely viewing Arabs as human gets you disqualified and destroys your political career, when he was a major reason for the party's success to begin with.

[-] matcha_addict@lemy.lol 46 points 1 year ago

Piracy is cool, but I prefer to use community-driven software rather than ones driven by corporate profits. I prefer a model where many can contribute to it, fork it, and for which making integrations is much easier thanks to its openness.

[-] matcha_addict@lemy.lol 50 points 1 year ago

If we keep going back, Israel has committed far too many hostilities that were never responded to. Hell, they bomb syria most weeks without any retaliation form Syria. They commit horrors against west bank citizens all the time.

[-] matcha_addict@lemy.lol 44 points 1 year ago

Emulator devs should rly do their best to be anonymous

[-] matcha_addict@lemy.lol 111 points 1 year ago* (last edited 1 year ago)

Using the word "genocide" bans you in r/politics now

r/washingtondc locked the post

[-] matcha_addict@lemy.lol 89 points 2 years ago* (last edited 2 years ago)

It's important to note that the real disparity may be even far worse.

OCHA-OPT (the committee gathering this data) is strict about verifying validity of Palestinian casualties, requiring two independent, verified and non-affiliated sources. Casualties in Israel, however, they trust the media at face value. They also exclude a lot of Palestinian casualties even when verified in certain situations. Example, and I quote them:

People who were killed or injured in conflict-related incidents that took place in Israel and did not involve residents of the oPt are also excluded.

oPt (occupied Palestinian territories) are the areas that Israel does not directly oversee. So most of Israel is not oPt by their criteria.

Israel is notorious for restricting journalists reporting on Israeli crimes, and has murdered journalists countless of times, like last year the Christian Palestinian Shireen Abu Akleh reporting on the forced expulsion of Palestinians from Sheikh Jarrah (so not even in a war zone area). This causes many casualties to go unverified and thus undocumented.

And Israel has been caught lying before about its own casualties, like the 40 beheaded babies.

Take that as you will.

view more: next ›

matcha_addict

joined 2 years ago