I’ve really wondered what my own concrete contribution to the technological landscape could be. I’m certainly limited in time and resources, but there is much that needs to be done. I hoped to come up with a project I could reasonably accomplish on my own, that would make a meaningful impact. I believe I have found that project. One of the languages I spent time learning the basics of was Rust. I followed the development when it was still in alpha and learned the syntax back then. It has taken a long time for me to find the a library for building user-interfaces that is approachable enough for me to understand.
I don’t really want to ’let go’ of static sites because I think the benefits are too large to give up, at least as a single person. I love using static site generators. Being able to reuse code in an intelligent way is a huge win over doing all the css/html/js by hand. While it’s nice to be faster than a dynamically generated site, there are times where more data is needed. There are downsides too, such as not having dynamic server-side features. This generally means no comments, or visitor interaction of any kind.
If you’re reading this, you probably do, but someone you send this to might not. There are many compelling reasons to use RSS which is a permission-less open protocol for sharing multimedia. RSS is a phenomenally powerful extension of the basic web that can enable a much more democratized and honest media landscape. Adoption been on an incredible upswing since more people have decided to run their own independent web sites. The indieweb is a treasure-trove of people taking the time to save the web by contributing to it.
I intended to do a more ambitious overhaul of my site, but I decided against it when I realized I could accomplish what I wanted much simpler. Instead of using a flexbox layout like before, I learned that I could use a CSS grid layout.
CSS grids have some interesting properties, the most useful one is that you can rearrange parts of the site in to specific locations. This is useful for making this site play nicely with mobile/portrait layouts.
Webtorrent has been around for a while, and torrents have been around since 2001. Webtorrent is a big part of the reason why I found PeerTube so exciting. Outside of streaming PeerTube videos, and downloading a linux install ISO, the technology itself seems to be under-utilized. Many fediverse fans want to see webtorrents used to distribute all media, which would significantly help smaller servers, but that would require building in suport to each server.
This lead me to a simple question:
I had no idea that hugo shortcodes could call partials. I’m going to try to integrate this more into my themes. Partials can call each other too, which is very handy. Meaning that you can reuse these modular components even more. This is important to me because I want my themes to be usable by someone without any knowledge of hugo internals. There are a lot of great hugo themes out there, but I’ve noticed many of them make heavy use of the data folder and custom parameters. I think this gets in the way of wider adoption because ideally, most things would be configurable from the .md files or the site’s config file.
Adding remote video support to the Grayjay peertube Plugin
Nov 02 2023
Correction I originally wrote that Grayjay was FOSS, this isn’t true. Grayjay is simply source-available, even if the plugins actually are licensed under the GPL.
Grayjay appears to be intended to be a one-stop-shop for all of one’s digital consumption needs. It has support for YouTube, Rumble, Odysee, and others, but what got my attention was the PeerTube support.
I still don’t quite understand how plugins work under the hood. It seems that they inherit functionality from classes that provide standard interfaces for the client to use. Essentially the goal seems to be that every platform can be abstracted in the form of a plugin.
Switching from Synapse to Dendrite was always inevitable. I had dragged my feet on it largely due to an if it ain’t broke, don’t fix it mentality. The challenge was that eventually it did break. Somewhere between Synapse 1.8 and 1.9 I was unable to update without getting DB errors. I had tried a query based off someone having similar issues, but when the issue reappeared, it was for a different relation in the synapse db. This was when I decided to throw the towel and start fresh. Up until this time, my matrix instance has really only been for me and immediate family, and this was bound to happen because at the time of writing, you can’t migrate to dendrite and keep your messages.
I’ve harmonized the shortcodes for my valor and freedom themes.
This meant that I’d prefer to have them both reference the same ones and keep in sync with each other.
I found out that I could use submodules to modularize the projects. Now instead of trying to manage the hugo shortcodes in both locations I have a single shortcodes repository that both (and upcoming) themes will reference.
I was wrong! if you migrate your videos with rclone you can seamlessly update the video location on PeerTube by changing the base_url parameter in your production.yaml file.
streaming_playlists:
bucket_name: 'streaming-playlists'# Allows setting all buckets to the same value but with a different prefixprefix: '' # Example: 'streaming-playlists:'# Base url for object URL generation, scheme and host will be replaced by this URL# Useful when you want to use a CDN/external proxybase_url: '' # Example: 'https://mirror.example.com'# CHANGE THIS# Same settings but for webtorrent videosvideos:
bucket_name: 'videos'prefix: ''base_url: ''#and this too!
Object storage Troubles
I’ve spent some time experimenting with S3 / Object Storage for public content.
I’ve found it useful for things like fediverse attachments & PeerTube videos.
Ensure you’ve got PeerTube setup.
From your peertube directory (or docker volume) you’ll want to update your config/local-production.json / config/localproduction.yaml file.
NOTE:At the time of writing, Updating your server configuration from themanagementconsole will ERASE your settings.
This means you’ll want to make sure to back up your settings so you can copy over your changes when needed.
I wrote in a previous post that I’ve been using SSH tunnels to self-host services, but serve from a VPS. This was primarily motivated by the fact that a residential IP may inadvertently give out your exact location to others. Another advantage, is that your files and keys are still kept on your local machine instead of in the cloud. For services that require heavy use of files that aren’t private, I’d recommend using an S3 bucket if possible.
I’ve already maintained a presence on the Tor network for a couple of months now. Sadly I noticed that my relative links on this blog were broken! Essentially gabe.rocks worked great, but any relative link would take you back to gabe.rocks and redirect back to Tor (probably not a best practice). I’ve finally fixed this. sorry!
Coming across this blog post by moneromaxi showed me that it shouldn’t be that much extra work to get on I2P.
I’ve moved many of my self-hosted services away from the pi-server to a proper deskstop. The primary motivation was to get more CPU for PeerTube hosted at peertube.libresolutions.network
The programmer can now access the machine behind the firewall by connecting to a different machine on the internet at a specific port that forwards ssh to the machine behind the firewall. This command has to be run from the internal network, or in this case the machine we want to grant access to from the outside.
Most browsers support some kind of custom home page that’s easily accessible at the press of a button, even on mobile. I love bookmarks, they’re a vital part of how I browse the web on firefox. Sadly, I find I don’t have quite the same functionality on brave mobile for Android. The good news is that a simple static page hosted anywhere is enough to provide a fantastic interface for sticking to relevant sites. Giving me the opportunity to keep sources I like readily accessible.
I built these shortcodes with multiple media embeds in mind. I make use of event.target to select the correct elements.
SVG Icons
I use inline svg icons so that they can use the theme colors automatically.
I wish the element allowed you to dynamically load the .svg file instead of having to use inline ones to support css. As far as I can tell the tag doesn’t support that use
I don’t trust microSD cards. They’re tiny, and so very flimsy.
It’s hard to believe you can throw 1TB of data on these tiny things now.
I craved the certainty of an old reliable sata ssd with a usb-type c enclosure.
The pi-server serving you this site no longer uses a microsd card at all!
The raspberry Pi imager makes it very easy to change your Pi’s boot order.
Simply select usb boot, and flash it to a small microsd card.
Humanity has lost cyberspace to corporations, corruption, and algorithmic control. It is of utmost importance that we increase people’s general technological understanding. We can all build a human-centric cyberspace instead of one used to dominate and control us.
We are living in interesting times. These days a vast array of tools are aimed at harvesting as much data as possible to build powerful centralized control systems. These systems are then leveraged against people in all kinds of insidious ways. This is not merely self-interested profit-seeking; it has a purpose and that purpose is to wage war on humanity. The Tools of the Technocracy series was intended to demonstrate the vast array of tools being weaponized against the people.