• 0 Posts
  • 163 Comments
Joined 1 year ago
cake
Cake day: June 20th, 2023

help-circle



  • I wouldn’t bother with the Fiverr thing but interesting personal projects and FOSS contributions are both good. Sizeable FOSS projects mean you’re working with other people which brings both benefits and challenges, and more closely resembles the “job” world. You could also look for actual paying work (not gig work like Fiverr, that is crap) if you have the time for it (summer job might be possible). Look at the monthly “Who is hiring” thread (first weekday of each month) on news.ycombinator.com, look on craigslist, etc.

    Getting involved in FOSS is pretty simple. Find a project with a list of open tasks or an issue tracker, find something that interests you, say you are interested in working on that task, and start contributing patches. Usually if the project is not a high-visibility one with a lot of contributors already, it will welcome any help it can get. Lots of such projects have Freenode IRC channels where you can chat with the other devs in real time. I’m less comfortable with the ones that use Discord, but that’s just me.



  • When a user uploads an image or video on Mastodon instance 1, and a user of Mastodon instance 2 is following them, that image or video is copied over to Mastodon instance 2 - because that’s where that user resides.

    The same thing happens with text posts, right? I don’t see an exponential expansion, just linear in the number of nodes. It sounds like the decentralized way to do things. Hmm. Anyway, thanks for the explanation. It saves some storage but doesn’t save bandwidth, it sounds like. Rather, the bandwidth requirement gets concentrated at the shared server.


  • CDN’s are quite expensive compared to budget VPS and e.g. Hetzner storage cloud. Their basic purpose is to give quick delivery to regions far from the server, not really to save cost. I don’t know the story with lemmynsfw. It’s basically an onlyfans marketing platform right? Maybe they have some donation scheme in place behind the scenes. Anyway free porn hosting isn’t so much an issue per se (imgur, tumblr, etc are also that,) but for those who don’t want to host porn, it likely creates nonstop workload to clean it up.

    Also, besides porn, it’s sad that this beautiful fediverse that might have become an alternative place for actual humans to interact, turns into another marketing space for corporate media. I’d like to put up a text only server. I don’t know if that’s really doable with current fediverse types. But why try to recreate reddit and imgur and maybe youtube? Those all already exist.




  • This is clever and worth reading, and I didn’t know about some of the 3.12 changes. Overall though I think the author has some pain in store. Using functions like map in Python result in Python iterators which are mutable objects (they consume and throw away an element of the sequence on each iteration) and this often causes hassles unless you convert them to lists (which burns memory and maybe does unnecessary computation). Also, Python’s type checking stuff (at least Mypy) are mostly a bug catching feature. They aren’t like a real type system though: mistyped programs can still get through, and properly typed ones can get flagged. It’s better than nothing and I use it, but it’s nowhere near e.g. Haskell.







  • There’s two things going on in the exercise: 1) some introductory Rust programming; 2) some introductory math and crypto.

    Maybe it’s just me but I think it’s better to separate the two. If you’re going to do a prime number generation exercise, it will be easier in (e.g.) Python since the bignum arithmetic is built in, you don’t have all the memory management headache, etc. If you’re going to do a Rust exercise, imho it is better to focus on Rust stuff.


  • This is a pretty lame article. The idea is just use a bignum library, or a language with native bignums. While a few optimizations help, basically just generate random 1024 bit random numbers until you something that passes a pseudoprime test, and call it a day. The rest of the article converts the above into a beginning Rust exercise but I think it’s preferable to not mix up the two.

    From the prime number theorem, around 1/700th of numbers at that size are prime. By filtering out numbers with small divisors you may end up doing 100 or so pseudoprime tests, let’s say Fermat tests (3**n mod n == 3). A reasonable library on today’s machines can do one of those tests in around 1ms, so you are good.

    RSA is deprecated in favor of elliptic curve cryptography these days anyway.