[-] souperk@reddthat.com 17 points 1 week ago

But can it run Doom?

[-] souperk@reddthat.com 20 points 3 months ago

I have setup a rustdesk server with docker, it was surprisingly easy to get started. It was for a friend who is managing the IT services of a small factory, the completely switched from TeamViewer and they are satisfied. More importantly their users, who are worse than your average windows user, found the transition relatively painless.

[-] souperk@reddthat.com 15 points 4 months ago* (last edited 4 months ago)

That's compatible with information theory. You have a piece of information, the moment you encode it (turn your idea into words) that piece of information is transposed to a little different piece of information, then the channel of transportation adds a bit of noise (depends on the environment, most often literal background noise), and then the receiver decodes the to a different piece of information (turn your words into an idea of their own).

Understanding this concept is an important communication skill. Information theory gives a bunch of tools to minimize the difference between the idea in your head and the perception of the idea by your peer.

  • You can add redundancy, aka say the same thing twice in a slightly different way.
  • Use questions to validate your understanding.
  • Have your peer use their own words.
  • Use a different encoding, aka draw a picture, a diagram, or use gestures instead of using language to communicate
[-] souperk@reddthat.com 15 points 6 months ago* (last edited 6 months ago)

Grew up in a home without an internet connection. A friend helped me crack our neighbour's WiFi password, at the time it was surprisingly easy if you had a copy of Kali Linux.

Edit: This post got me wondering how I could open up a free WiFi network without being liable for any potential illegal activity someone may do? I got a fairly good access point and the bandwidth to spare, but I am afraid to share it in case the police comes knocking on my door...

[-] souperk@reddthat.com 15 points 6 months ago* (last edited 6 months ago)

While I agree with most of what you say, I have a personal anecdote that highlights the importance of performance as a feature.

I have a friend that studies economics and uses python for his day to day. Since computer science is not his domain, he finds it difficult to optimize his code, and learning a new language (C in this case) is not really an option.

Some of his experiments take days to run, and this is becoming a major bottleneck in his workflow. Being able to write faster code without relying on C is going to have a significant impact on his research.

Of course, there are other ways to achieve similar results, for example another friend is working on DIAS a framework that optimizes pandas in the runtime. But, the point still stands, there are a tonne of researchers relying on python to get quick and dirty results, and performance plays a significant in that when the load of data is huge.

[-] souperk@reddthat.com 18 points 7 months ago

Has anyone gone through the documents? Any interesting findings? Is it time to create a website?

[-] souperk@reddthat.com 15 points 7 months ago

So that's the legal equivalent of the guy committing 10k changes the day before leaving the company...

[-] souperk@reddthat.com 17 points 10 months ago

No, they are using an ORM.

[-] souperk@reddthat.com 17 points 11 months ago

For anyone interested, Wikipedia provides some arguments against meritocracy.

https://en.wikipedia.org/wiki/Myth_of_meritocracy

Meritocracy is argued to be a myth because, despite being promoted as an open and accessible method of achieving upward class mobility under neoliberal or free market capitalism, wealth disparity and limited class mobility remain widespread, regardless of individual work ethic.

[-] souperk@reddthat.com 17 points 1 year ago

I kinda agree but you still need money to live and if I was able to work on open source projects while sustaining myself I would choose it anytime.

[-] souperk@reddthat.com 18 points 1 year ago

Most people get over it during uni when everyone is arguing over "X vs Y" language or "vim vs productivity". At some point you realize how pointless these debates are and continue with your life.

For anyone wanting to publish their code, remember it's probably better than most OSS code. If you don't believe that go read a python or js library:

  1. python's celery for example has hard coded timeouts on every control operation
  2. react mui has so overcomplicated types that they break webstorm inspections
  3. I once found a typing hack on an python library where they reversed a string in order to conditionally import types only when mypy was running in order to avoid cyclic imports.

I still love those libraries, use them at my work and will recommend them to anyone with similar needs as I.

Last but not least, if you aren't using git something is wrong with you 🤣.

[-] souperk@reddthat.com 17 points 1 year ago* (last edited 1 year ago)

I admire your enthusiasm, so I would like to chime in with my 2 cents. I see a solution to an undefined problem, thus we cannot evaluate if said problem is solved by the solution.

Were I to redesign Lemmy, I would start by defining the requirements of that software. Things to consider here would be:

  1. What would be the total number of users?
  2. What would be the total number of communities?
  3. What would be the total number of instances?
  4. What would be the spread of users across instances? Are there categories we can define? (For example, a large instance may have millions of users, but a small instance may have 1-1000)
  5. The same about communities.
  6. What would be the number of posts, comments, and upvotes/downvotes for each instance or community category?
  7. What's the average size of a post or comment?
  8. Probably countless more, but you got to restrict yourself to the ones with the most impact.

Then, I would define operations like:

  1. Creating a post, a comment, or upvoting/downvoting
  2. Retrieving posts (ordered) for a community.
  3. Retrieving comments (ordered) for a post.
  4. Retrieving posts (ordered) for a specific feed (subscribed, local, all).
  5. Reporting a user.
  6. Banning a user.

Then, I would look deep into Lemmy's architecture in order to understand the complexity of these operations (time, memory, and developer effort). My understanding is that Lemmy is using a database to store all data you subscribe to, including posts, comments, upvotes/downvotes and stats across time. With all the data in a database, most read operations become a SQL query. On the other hand, write operations are relayed using the ActivityPub protocol.

Here I would stop for a bit, and see how I can help Lemmy right now. What's the most value I can offer with as little effort as possible, i.e. the lowest hanging fruit. For the time being, I believe that would be moderation, basic features are missing, and there are many moderation issues someone could help with ideation, testing or implementation. However, a deep dive in moderation domain logic may not be for everyone, nor does it have to be. There are plenty of performance issues to contribute to.

This experience would give you the context needed to design a better architecture for Lemmy.

Last but not least, I suggest starting small. Distributed systems are complex, even seasoned veterans have difficulty getting their heads around it. For example, counting becomes a problem with large enough data.

view more: ‹ prev next ›

souperk

joined 1 year ago