Interests: programming, video games, anime, music composition

I used to be on kbin as e0qdk@kbin.social before it broke down.

  • 0 Posts
  • 46 Comments
Joined 2 years ago
cake
Cake day: November 27th, 2023

help-circle

  • There’s something else going on there besides base64 encoding of the URL – possibly they have some binary tracking data or other crap that only makes sense to the creator of the link.

    It’s not hard to write a small Python script that gets what you want out of a URL like that though. Here’s one that works with your sample link:

    #!/usr/bin/env python3
    
    import base64
    import binascii
    import itertools
    import string
    import sys
    
    input_url = sys.argv[1]
    parts = input_url.split("/")
      
    for chunk in itertools.accumulate(reversed(parts), lambda b,a: "/".join([a,b])):
      try:
        text = base64.b64decode(chunk).decode("ascii", errors="ignore")
        clean = "".join(itertools.takewhile(lambda x: x in string.printable, text))
        print(clean)
      except binascii.Error:
        continue
    

    Save that to a file like decode.py and then you can you run it on the command line like python3 ./decode.py 'YOUR-LINK-HERE'

    e.g.

    $ python3 ./decode.py 'https://link.sfchronicle.com/external/41488169.38548/aHR0cHM6Ly93d3cuaG90ZG9nYmlsbHMuY29tL2hhbWJ1cmdlci1tb2xkcy9idXJnZXItZG9nLW1vbGQ_c2lkPTY4MTNkMTljYzM0ZWJjZTE4NDA1ZGVjYSZzcz1QJnN0X3JpZD1udWxsJnV0bV9zb3VyY2U9bmV3c2xldHRlciZ1dG1fbWVkaXVtPWVtYWlsJnV0bV90ZXJtPWJyaWVmaW5nJnV0bV9jYW1wYWlnbj1zZmNfYml0ZWN1cmlvdXM/6813d19cc34ebce18405decaB7ef84e41'
    https://www.hotdogbills.com/hamburger-molds/burger-dog-mold
    

    This script works by spitting the URL at ‘/’ characters and then recombining the parts (right-to-left) and checking if that chunk of text can be base64 decoded successfully. If it does, it then takes any printable ASCII characters at the start of the string and outputs it (to clean up the garbage characters at the end). If there’s more than one possible valid interpretation as base64 it will print them all as it finds them.



  • Nginx is running in Docker

    Are you launching the container with the correct ports exposed? You generally cannot make connections into a container from the outside unless you explicitly tell Docker that you want it to allow that to happen… i.e. assuming you want a simple one-to-one mapping for HTTP and HTTPS standard ports are you passing something like -p 80:80 -p 443:443 to docker run on the command line, adding the appropriate ports in your compose file, or doing something similar with another tool for bringing the container up?






    • 128GB unified RAM
    • 16 cores / 32 threads
    • small form factor (4.5L)
    • similar/lower power consumption than my current daily driver despite much more powerful hardware (a lot of my parts are 10 or more years old…)
    • officially supports Linux
    • <$2K USD (not counting NVME and peripherals)

    That combo was interesting enough to me to order one to mess around with. I could build a more powerful (but probably more energy hungry…) computer in a traditional desktop form factor. I don’t think I could build a better SFF computer myself though, and I’m really curious to see just how far I can push the integrated GPU in this thing…










  • I’ve been trying to figure out a related sort of video streaming setup for work (without Owncast, but with a similar sort of 24/7 goal plus other considerations) and have been looking into using ffmpeg’s capabilities to output either HLS or DASH segments + manifests. (FFMPEG can do both but I don’t know which would be better for my needs yet.) The sources I’m working with are RTSP/RTP instead of RTMP and I only need streaming to browser clients currently – although it working with VLC naturally by pointing it to the manifest is nice.

    HLS and DASH work by having videos split into small chunks that can be downloaded over HTTP, so just replacing the manifest allows for continuous streaming (the client pulls it repeatedly) without the server needing to maintain a continuous connection to the client.(Fan out to CDNs works naturally since the video chunks are just files that can be served by any web server.)

    It should be possible to do some creative things by either creating / modifying the manifests myself with scripting or by piping chunks into another instance of ffmpeg from a script. (I’ve done something similar using -f image2pipe in the past, but that was for cases where I need to do things like create a video from an image gallery dynamically.) That’s as far as I’ve gotten with it myself though.

    I don’t know what the right answer is either, but I’m also interested in finding out and hopeful you get additional responses.


  • I’m not sure how to do what you want with customizing Mint directly, but a possibly simpler alternative solution is to just send two clearly distinguishable USB drives (e.g. label them “1” and “2” with a label maker or get two drives with very different colors) and tell him to install (unmodified) Mint from the first and then have him run a program you provide on the second after that’s done to make the other changes.