Canadian software engineer living in Europe.

  • 4 Posts
  • 266 Comments
Joined 3 years ago
cake
Cake day: June 7th, 2023

help-circle
  • I couldn’t abide such a wall of text, so I reformatted everything into a Markdown table:

    Name Description
    LocalSend Send files on a local network easily
    Obtainium Alternative to F-Droid, allows installation from more sources
    Aegis 2FA manager
    CoMaps OpenStreetMap client
    Tasks Astrid was a popular cross-platform productivity service that was acquired and discontinued in 2013. The source code from Astrid’s open source Android app serves as the basis of Tasks.
    ZipXtract A fully open-source Android application designed for comprehensive archive management. It allows you to effortlessly extract and create a wide variety of archive files directly on your device.
    disky Find your biggest diskspace thieves!
    WallFlow Plus (Alpha) A wallpaper app for Android with beautiful wallpapers from wallhaven.cc, Reddit. Designed with Material Design 3 and supports wide screen devices like tablets.
    Droid-ify Alternative to F-Droid, allows installation from more sources
    Aves Libre A gallery and metadata explorer app. It is built for Android, with Flutter.
    Phone It’s a phone dialer
    OpenTracks A sport tracking buddy that respects your privacy.
    Eden A free and opensource (FOSS) Switch 1 emulator, derived from Yuzu and Sudachi
    DAVx⁵ CalDAV/CardDAV synchronization for Android (and other features)
    Open Camera A feature rich camera application
    Obsidian Alternative store for Android. Not FOSS.
    kitshn An unofficial multiplatform client for the self-hosted Tandoor recipe management software
    Calculator It’s a calculator
    Jellyfin Official Android client for Jellyfin
    Nextcloud A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. This is the official Nextcloud Android app.
    WiFiAnalyzer Interrogate devices on your WiFi network
    Thunderbird A powerful, privacy-focused email app
    Breezy Weather A feature-rich free and open source Material 3 Expressive weather app
    addy.io Easily create and manage your addy.io aliases, recipients and more from your device
    mpv A video player for Android based on libmpv
    Paperize A dynamic wallpaper changer that keeps your device’s aesthetic fresh and exciting
    M3U A simple IPTV player for Android phones, tablets, and TV.
    FairScan An Android app to scan your documents
    Harmonic A Hacker News client
    SpamBlocker Blocks unwanted calls & SMS messages without replacing your default call/SMS app.
    Material Files An open source Material Design file manager, for Android 5.0+
    FUTO Keyboard A good modern keyboard that stays offline and doesn’t spy on you
    KeePassDX Lightweight password safe and manager
    Signal Privacy-friendly instant messaging software
    Bitwarden Official client for the Bitwarden password manager
    Audiobookshelf A self-hosted audiobook and podcast server
    KDE Connect Integrates your smartphone and computer
    GameNative Allows you to play games you own on Steam, Epic and GOG directly on Android devices, with cloud saves.
    MJ PDF A fast, minimalist, powerful and totally free PDF viewer
    Firefox Beta It’s Firefox
    Summit A mobile client for Lemmy
    Catima Card management app
    ArrMatey A modern, all-in-one mobile client for managing your *arr stack. Built using KMP with native Jetpack Compose UI for Android and SwiftUI for iOS.
    OpenKeychain Encrypt your Files and Communications. Compatible with the OpenPGP Standard.
    NotallyX Minimalistic note taking app
    WG Tunnel An alternative FOSS Android client for WireGuard and AmneziaWG
    Bluesky Alternative to X, developed by the same rich assholes who brought you Twitter (sorry, this is my bias coming through)
    Mental Math A simple and clean Android app for mental arithmetic training
    Fossify Calendar Your private & powerful schedule planner
    Moshidon A fast, highly customizable, up-to-date fork of megalodon adding important features such as a fully federated timeline, unlisted posting, drafts, scheduled posts, bookmarks, and alt text warnings.
    Memories Photo Management for Nextcloud
    AntennaPod Easy-to-use, flexible and open-source podcast manager and player
    Home Assistant This is the official Android app for Home Assistant, a powerful open-source home automation platform
    Off Grid The Swiss Army Knife of On-Device AI
    Tubular A fork of NewPipe that implements SponsorBlock and ReturnYouTubeDislike



  • My girlfriend’s dad had hundreds of movies on VHS, pirated from cassettes he’d rented in the past and copied at home by chaining two VCRs together over coaxial cable.

    Software was wild pre-internet. My buddy had Windows 95 on 42 3¼" floppies that we copied onto additional sets of 42 floppies that we kept in heavy boxes and then painstakingly installed onto computers belonging to friends and family around the neighbourhood.

    I also had a whole bunch of audio cassettes that contained music I dubbed from radio, other cassettes, and later CDs (burning your own was at first, impossible, and later, expensive).

    I’m 46.


  • I’ve used FluxCD in the past and have looked into ArgoCD, but honestly, I’ve not seen any big benefit from either to be honest. I use k8s both at home and at work, and in both cases, we do “imperative” deploys: you run helm install ... either directly or via the CI and stuff is deployed.

    So for example at my last job, our GitLab CI just had a section triggered exclusively for merges into master that ran helm install ... for all three environments. We had three values.yaml files, one for each environment, and when we wanted to deploy a new version, the process was:

    1. Create a tag for our release version (ie. 1.2.3) and push it to the repo. This would trigger a build and push the resulting image into the container registry.
    2. Push an update to the repo with the new tag set in the appropriate Helm values file. If we wanted to deploy 1.2.3 to development but not yet to staging or production, then the tag: value in each of the environment files would look like this:
    • k8s/chart/environments/development.yaml: tag: 1.2.3
    • k8s/chart/environments/staging.yaml: tag: 1.2.2
    • k8s/chart/environments/production.yaml: tag: 1.2.2

    Once that change is pushed, the CI will automatically apply it with helm install ... and make sure that all three environments are what they’re supposed to be.

    As for dependent services, that should all be in your Helm chart so they’re stood up and torn down together. The specific case you mention about “Service A” being dependent on “Service B” but stood up before “Service B” is ready is a classic problem, but easily solved:

    The dependent service (“A” in this case) should have an entrypoint that checks for everything else before starting. Here’s what I’m using right now in a project:

    #!/bin/sh
    
    while ! nc -z "${POSTGRES_HOST}" 5432; do
      echo "Waiting for postgres..."
      sleep 0.1
    done
    echo "PostgreSQL started"
    
    touch /tmp/ready
    
    exec "$@"
    

    I’ve even got some code that checks that all the Django migrations have run first for the same situation. The Kubernetes philosophy is that any container should be able to die at any time and be eventually be brought back up and that every container needs to be prepared for this. Typically this means that your containers should operate on the basis of “if I can’t work, die, and hope the problem is solved by the time Kubernetes redeploys me”.






  • Daniel Quinn@lemmy.catoSelfhosted@lemmy.worldKitchenOwl Gone?
    link
    fedilink
    English
    arrow-up
    39
    arrow-down
    3
    ·
    2 months ago

    A platform that’s down 10% of the time and that now has a reputation of locking people out of their accounts without reason for weeks at a time cannot, under any definition of the word, be considered “stable”.

    I just… don’t get it. This whole community, we’re supposed to be building stuff for ourselves and each other, and for some reason people keep going to bat for a company that demonstrably holds every one of us in contempt.

    Just… stop using their shitty tools already.








  • I know it’s supposed to be a joke how a nerd will spend six hours writing a script to automate a 30second task but… it’s not really funny.

    Working with less-experienced developers, I’m amazed at how slow everything is for them:  No keyboard shortcuts, no automated scripts, just slow, plodding mouse-driven tinkering.

    Automation, shortcuts, and scripting drive your ability to iterate and therefore learn.

    Train your fingers, and spend those hours automating repetitive stuff.  It’s worth it.