"Buy Me A Coffee"

  • 0 Posts
  • 17 Comments
Joined 3 years ago
cake
Cake day: June 13th, 2023

help-circle

  • How many corporate man hours are wasted re-inventing the wheel a bajillion times? Wouldn’t

    Honestly, very little. Unless you’re in a “not designed here” environment. There’s a lot of open source applications/libraries out there that can be added to your project to get what you need.

    But I do agree, vibe coding can be great as long as it’s just for one off small projects. Need to do a quick computation or a quick POC and don’t want to spend the time setting everything up? Great!

    But if you want to build an application that’s used by 1000 or even millions and receives regular updates? Please follow best practices / design patterns, etc… otherwise you’ll be rewiring the entire codebase every time you want to add a new feature.


  • Are you able to query to see what IP address that domain returns? Does it return the 192.168.x address that you set?

    Edit: But the idea is to first see where the connection is failing… first see what error your browser is returning? 5xx? 4xx? This can be an indication as to where the error is happening. But high-level check DNS first, see if nslookup or dig return the IP address that you set. (Remember changes to DNS entries can take time to propagate). Assuming all of that is correct, then check to see what nginx is showing in its logs. Do you see it logging anything every time you try and access it via the domain name? Next up is checking the logs from plex itself, does it show any logs coming though? etc… But the idea is to find where the connection is breaking down.



  • More technically there’s two ways to move data between two separate services. You can either pull or push the data.

    Assume for both scenarios that the client is your phone and the server is some machine in the cloud.

    With pulls the client calls an API and the server returns a response. Generally the www works this way. You ask a server for a wab page and you effectively pull the source down to your browser.

    Pushes work the opposite, in that a server has data for the client and needs to push or otherwise give it to you. Pulls are relatively strait forward because every server has a well known name (the domain name and url). But your phone’s IP address changes constantly. So how does a server know how to contact your device? There’s generally two ways:

    1. Your device can poll (make repeated pulls to a server checking for new data)
    2. Or you can register some identifier and your IP address with some central server every time it changes. And then the server can essentially call a URL on your device directly. This is essentially what Google and Apple are doing as it doesn’t waste CPU resources and your battery.

    You could in theory implement either of these yourself but because of the way the OSes work on both Android and iOS there’s no guarantee that you can keep a process running in the background forever. As the OS can kill your process if the OS needs more free ram, etc … The built in notification APIs are exempt from this because they are part of the OS.


  • If you’re worried about your IoT devices on your LAN the problem isn’t necessarily that they can access WAN but rather that there’s a security vulnerability and that they can be accessed by the WAN. Once a device is compromised and attacker can then use it as a “beachhead” to access other devices on your network.

    So for example, with my setup every IoT device is on a separate VLAN (the guest network acts similarly) which can’t get access to WAN, can’t be accessed from the WAN and can’t initiate any network calls to any other VLAN. Now my primary VLAN can talk to my IoT VLAN, and IoT can talk back, it just can’t start the communication.

    This does pose a problem for TVs though that need to talk to Jellyfin as hinted at in the original post. So what you could do is create a specific firewall rule that allows the TVs to at least initiate communication to Jellyfin but not any other device on your primary VLAN. This will probably require a more sophisticated router though than most of the consumer ones out there. Just be mindful that if n IoT device is compromised they can then try to attack the jellyfin server to jump to your other VLAN and then the rest of your network.


  • To also add to the other comments: because the government doesn’t want or even need to have a balanced “checkbook”.

    Assume for example you want to buy something from me. But you only have “don bucks”. So you buy a widget from me and I charge you 10 “don bucks”.

    Problem though, through taxes you’ve only got 5 bucks left. So you just create 5 bucks and add it to your pile. (Deficit spending) Now if you don’t balance that with a loan, your “don bucks” are now worth less because why would I want one of your “don bucks” when tomorrow you could just create a million of them for no reason. (Hyperinflation) So you instead borrow 5 bucks from a friend of yours with a promise to give him back 6 tomorrow. (Bonds)

    I still sell you my widget for 10 “don bucks” but now what can I spend my newly acquired “don bucks” on? Well, since everyone has their own currency I ultimately have to spend it on you. This means I end up giving you those 10 bucks back in hopes that you’ll either give me more in return (another loan/bond) or give me back my own currency from money I’ve traded to you.

    So in the end spending more than you make (at the nation state level) can be a net boon on the economy as you effectively create a vendor lock in, similar to how companies push their gift cards, etc … because that money is only good in one place. You just have to make sure not to spend too much beyond your means because every dollar you create this way adds to inflation a little bit. So if you create too much then inflation gets out of hand and you end up with hyperinflation and now every one of your citizens wants to get rid of your money because they’ll lose too much before they can give it back.








  • I’m not an expert, but I thought the issue was generally that big instances like lemmy.world were getting overloaded on the server side, not that they were enforcing a manufactured rate limit on individual IPs.

    From what I can see it’s both. lemmy.world and others are getting overloaded, but there is an inherit built-in rate-limit in the code itself. You can see what those limits are via the api/v3/site. Now in theory if you’re actually getting rate-limited you should be seeing HTTP 429 responses from the server. If the server is just overloaded, you’ll get a 5xx response, the request will just timeout or at best you’ll still get a response but after a significant delay (what most people are seeing).

    Also, someone else mentioned that on the fediverse even simple things like an upvote are slower and require more work here than in centralized platforms because they must be sent to all the instances that are indexing that user/community. As I understand, that’s inherent to the fediverse, a bug not a feature, designed for redundancy and resilience.

    I don’t want to comment on this too much as I’m not an expert here, but here’s how federation / ActivityPub works from what I understand looking at the code:

    Whenever you take any action (or activity) your browser will first send that message to your instance. If your instance then owns the community that message is then propagated out to EVERY linked instance listed here: /instances / api/v3/federated_instances. If your instance doesn’t own the community, that message is forwarded off to the instance that does and they sent it out to EVERYONE on their federated instances list. As you can see this creates A LOT of network traffic.

    This posing an interesting problem… the number of ActivityPub messages goes up as the number of instances increase. But at the same time as more and more users join a single instance that require that that instance send more and more traffic to individual user’s browsers as they view and respond to posts. So the problem here is trying to find a good balance. And to top it off, the default behavior of most users is going to be to join the largest instances, making that instance incur more and more traffic to view content.

    Again uniformed, but Lemmy seems like it should scale fine. Bigger instances will monetize, driving prospective users to smaller instances, and then rate limiting and server lag won’t be so bad anymore.

    Will it though? How would an individual instance monetize? They would have to use donations. If an instance tries to add Ads, users will leave to an instance that doesn’t, making it so that they don’t get any income. They could charge a subscription fee, but again users would just leave and the admins get nothing.

    The ideal configuration of the fediverse as I see it, is if we had two types of servers 1) content servers that only hosted communities but didn’t have any real number of users, and 2) user servers that have no communities but most of the users. This way the number of API requests between instances is rather limited. When you end up with a server that has both most of the content and the userbase, the workload of that server appears to grow exponentially instead of linearly as the number of new instances rises.


  • Lemmy is entirely open source, so you can see what their architecture looks like, etc… here: https://github.com/LemmyNet/lemmy.

    Rate limits, as I understand them from the code, should only apply on a per-IP basis. So you should only be seeing rate limit errors if:

    • your behind a CGNAT and multiple people who use your ISP are using Lemmy
    • you’re sending A LOT of requests to your instance yourself
    • the admin of your instance has significantly lowered the rate limits (viewable here: /api/v3/site)

  • Yep and I’m one of them. Go look me up on Reddit and I think I have maybe 20 posts over the 14+ years I was on the site. …joined Lemmy and immediately got frustrated that I couldn’t find anything. So I figured I take a crack at it. Especially since I couldn’t see how Google would ever be able to link me to my instance. Let alone make it easy to search the entire fediverse without having to write out every possible site, with new ones popping up every day.



  • So I’ve been working on a solution for this.

    As I see it Google and others are going to have a hard if not impossible time to incorporate the fediverse, and the fact that the same content can exist on multiple servers.

    So I’m working on a search engine specifically build, for Lemmy at least. Where it’ll take you to whatever your preferred instance is when tapping on a search result.

    I hope to have a MVP up and running in a few more days.