Modern tech, retro tech, 80s/90s music & nostalgia. I live in northern England so most things I post about have a UK slant.

Elsewhere on Fedi:

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

help-circle

  • It’s a very flexible language so can find a niche almost anywhere. I know of fintech companies that use it extensively for their back end data processing systems, and I’ve seen some really interesting stuff done with Clojure and Apache Kafka. They’re a good fit for each other - Clojure, as a lisp, is optimised for processing infinite lists of things and Kafka topics can be easily conceptualised as an infinite stream of data.

    Also, when combined with Clojurescript, it provides a single language that can be used full-stack, so could drop in anywhere that you might otherwise use Node.

    But I think one of the best things about it is the way it forces you to re-evaluate your approach to development. It’s a completely functional language so you have to throw away any preconceptions about OO and finding new ways to resolve old problems is one of the things that should be a joy for most developers, even if it has no practical application.



  • Not really a viable solution for many scenarios though. What if your PDF has half a dozen pages, your answer becomes really tedious. And in a lot of cases a PDF with forms is expected to be sent back to the person or company that created it once the fields have been filled in. They’re not likely to want to receive a bunch of JPEG screenshots instead.




  • I’m still struggling to understand what advantage Docker brings to the set-up.

    Maybe the application doesn’t need to write anything to disk at all (which seems unlikely) but if so, then you’re not saving any disk-write cycles by using docker.

    Or maybe you want it only to write to filesystems mounted from longer-life storage e.g. magnetic disk and mark the SD card filesystems as --read-only. In which case you could mount those filesystems directly in the host OS (indeed you have to do this to make them visible to docker) and configure the app to use those directly, no need for docker.

    Docker has many great features, but at the end of the day it’s just software - it can’t magic away some of the foundational limitiations of system architecture.










  • I can’t help with Lemmy, but I’ve been running a single-user Mastodon instance for almost a year now.

    Like you, I found that the media very quickly used up much more disk space than I anticipated. There are a few things you can do.

    You can tune how long media is stored for: some of this is done in the admin interface, but really you need to set up cron jobs to regularly run various tootctl commands. This is the crontab I use:

    SHELL=/bin/bash
    PATH=/home/mastodon/.rbenv/shims:/home/mastodon/.rbenv/bin:/usr/local/bin:/usr/bin:/bin
    
    RAILS_ENV=production
    # Remove media attachments older than 8 days
    11  19  *   *   *     cd /home/mastodon/live && time bin/tootctl media remove --days 8
    # Remove link previews older than 28 days
    22  5   *   *   *     cd /home/mastodon/live && time bin/tootctl preview_cards remove --days 28
    # Remove files not linked to any post
     3  23  *   *   0     cd /home/mastodon/live && time bin/tootctl media remove-orphans
    # Prune remote accounts that never interacted with a local user
    44  1   *   *   *     cd /home/mastodon/live && time bin/tootctl accounts prune
    
    

    You can of course choose even stricter settings but I found that no matter what I did, given that I am following approx 1,000 other Fediverse accounts it still used up more disk space than I was comfortable with.

    So I offloaded most of the media storage onto an S3-compatible service. It’s breaking the self-hosting ethos somewhat, but with Backblaze B2 I can happily store and serve several hundred GB of media files for just a couple of dollars a month. To me, that was a no-brainer.