Gabe Rocks!

🖥️ Tech

🤔 Rambling

🐷 Health

Trying out iced

A new learning side-project in Rust

Aug 31 2024

A new side project

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.

Static+, can it work?

Musing out loud

Jun 28 2024

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.

We Don't Love RSS Enough

Probably.

Apr 30 2024

We Don’t Love RSS Enough

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.

HTML Redirects & CSS grids.

Cool tricks for static sites.

Apr 16 2024

CSS Grids

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.

What's up with webtorrent?

Feb 27 2024

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:

Big-brained hugo time

Nov 25 2023

Big-Brained hugo time

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.

Fixing the PeerTube plugin on Grayjay

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.

Some updates

Thoughts, Tips, and recent misadventures

Sep 14 2023

Some updates

Matrix migration

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.

Git submodules are cool!

modular repositories

Jun 14 2023

Git submodules are cool!

Modular repositories

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.

Object storage

Difficulties in changing providers

May 10 2023

Fixed! (Update)

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.

For misskey I’ve opened an issue for it

  streaming_playlists:
    bucket_name: 'streaming-playlists'

    # Allows setting all buckets to the same value but with a different prefix
    prefix: '' # 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 proxy
    base_url: '' # Example: 'https://mirror.example.com' # CHANGE THIS

  # Same settings but for webtorrent videos
  videos:
    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.

Some updates

PeerTube tweaks and Kuma

Mar 30 2023

Couple of updates

Contents

  1. PeerTube S3 Uploads
  2. Kuma

Troubleshooting PeerTube S3 uploads

In the interest of being cost-efficient I’ve setup my PeerTube to use object storage to store and serve the videos.

Steps

  1. Configure PeerTube
  2. Upload videos
  3. Configure CORS

1. Configure PeerTube

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 the management console 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.

Self-hosting with SSH tunnels

Optimizing your resources

Mar 21 2023

Self-hosting with SSH tunnels

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.

Now available on Tor & I2P

Gabe.Rocks is now on TWO darknets

Mar 17 2023

Expanding into I2P

Onion: 3ah6l32ons2mzb65rchl3uz7nrgkecfof4eey7dwmamt5fcvok4h2yad.onion

I2P: gabe.i2p

Is one darknet really enough?

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.

Pi-Server no more

Mar 07 2023

Goodbye Pi-Server, it was a good run.

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

I’ve also setup Forgejo at code.gabe.rocks.

Thanks to a helpful tip from RetroEdgeTech:

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.

Personal Homepages are really cool

Improve your skills and focus

Jan 20 2023

Personal Homepages are really cool

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.

Theme updates

Updating my hugo themes

Nov 21 2022

New Audio & Video shortcodes

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

Follow me on Misskey!

I've now setup my own single-user instance

Nov 02 2022

I’ve setup my own Misskey instance with their super useful docker guide.

Follow me at: @gabriel@mk.gabe.rocks

So far I’m really loving the UI and features. Misskey seems like a really cool place to kick it.

Also if you’re reading this, you may want to consider adding my button to your website!

pi-server upgrade

Booting a pi from an SSD

Oct 07 2022

No longer using the pi-server

Upgrading my pi-server’s boot drive

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.

Hugo Themes

Steal my look!

Sep 17 2022

My hugo themes are open source:

  • Valor
    • You can see a preview with extra tips here
  • Freedom
    • You can see a preview with extra tips here

Hoping to make more themes, these are just the starting concept.

Now available on Tor

Gabe.Rocks is now available on the dark web

Sep 11 2022

Something I found helpful:
How to have your site automatically redirect Tor users to your onion address.

Onion Address

Stable diffusion: first look

Looks kinda neat!

Sep 04 2022

Stable diffusion is an AI tool for generating images from text prompts or other images.

How to get started:

I found this video helpful the basic process is:

  1. Install pytorch (docker images are available)
  2. Download the pre-trained model
  3. Run the scripts

Playing around

Why not start with some Transformers eh?

I was a bit shocked how quick it was to genereate these and how decent they look. I really like the one on the left.

Running Pi Arch Linux

Aug 17 2022

No longer using the pi-server

This site was served to you by a Raspberry Pi 4 Model B running Arch Linux

Reclaiming Territory in Cyberspace

Leave big tech behind forever. Reclaim your power to reshape cyberspace. Learn technological literacy without compromise.

Jun 16 2022

Reclaiming Territory in Cyberspace

PDF now available

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.

Contents:

  1. Hardware Basics
  2. Operating Systems
  3. World Wide Web
  4. Communications
  5. Self-hosting
  6. Censorship Avoidance
  7. Your Website

Hardware Basics

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.

Prev B @ Next