Skip to content

Instantly share code, notes, and snippets.

Avatar

Jacob Zelek s0lesurviv0r

View GitHub Profile
@s0lesurviv0r
s0lesurviv0r / amateur-radio-linux-machine-provisioning.md
Last active December 27, 2022 20:21
Amateur Radio Linux Machine Provisioning
View amateur-radio-linux-machine-provisioning.md

Amateur Radio Linux Machine Provisioning

IN PROGRESS - Still working out a few bugs and filling in a few details

These are some notes I use for configuring my amateur radio Linux machines. The base operating system is Ubuntu 22.04 LTS. This is not a comprehensive guide, just a quick reference for myself and others to install commonly used amateur radio applications on a Linux machine. Please don't blindly copy and paste these into your terminal without understanding what they do. I will include links in the reference section for more detailed newbie instructions.

Overview

The system that these instructions intends to build is a Linux system using the Ubuntu distribution. The goal is to use as much open source software as possible. I think currently all the amateur radio software used in this guide is open source. Additionally, the software chosen provides a good cross-section of capabilities needed for emcomm, as well as for more recreational activities. Here's a list of software and the capabilit

@s0lesurviv0r
s0lesurviv0r / ubuntu-22-04-on-a-surface-laptop-4.md
Created November 13, 2022 06:34
Ubuntu 22.04 on a Surface Laptop 4
View ubuntu-22-04-on-a-surface-laptop-4.md

Ubuntu 22.04 on a Surface Laptop 4

There's a few gotchas I've discovered trying to get Ubuntu running on the Microsoft Surface Laptop 4. These steps assume an external keyboard was connected to the device and Ubuntu was installed already. These steps will install all drivers needed so the Surface Laptop 4 can operate with it's built-in keyboard. This isn't intended to be a complete guide, just a cheat-sheet for me or anyone else.

Disable iommu

sudo nano /etc/default/grub to edit the grub configuration

Add the following under the other GRUB_CMDLINE_LINUX lines:

GRUB_CMDLINE_LINUX="amd_iommu=off iommu=off"
@s0lesurviv0r
s0lesurviv0r / decentralization-for-diasters.md
Created November 9, 2022 08:53
Decentralization for Disasters
View decentralization-for-diasters.md

Decentralization for Disasters

Introduction

I was fortunate enough to grow up without a dependence on the internet and cell phones. We still used paper maps, driving directions printed from Yahoo, memorized phone numbers, had physical books, and had local meet up spots. I have nothing against the shift to digitizing these functions but I feel the current approach is very risky.

Nearly all the aforementioned functions have been turned into apps. Contact books to Facebook (yes many people don't even have their friends phone numbers), maps and driving directions to Google and Apple maps, and books/knowledge to a variety of apps/websites and Wikipedia. Again, the apps are not necessarily the problem. Quite the contrary considering I carry a laptop and cell phone. I should actually have a level of redundancy I didn't enjoy before digitization. However, the key problem in today's digital ecosystem is that "apps" are engineered with the assumption that devices are "always connected". This isn't really a noti

@s0lesurviv0r
s0lesurviv0r / qrp-hiking-load-out-2022.md
Created November 9, 2022 08:52
QRP and Hiking Loadout in 2022
View qrp-hiking-load-out-2022.md

QRP and Hiking Loadout in 2022

Introduction

This is a follow-up to my original QRP Hiking and Go Bag post. The guiding principles remain the same but some specifics have changed. This post details those changes. Though I continue to use this pack for Summits On The Air and as a general go bag, I may swap certain components in and out depending on the operating conditions.

Changes

  • Switched to a real backpacking pack. These work better at distributing the weight across my body. I found my other pack put too much strain on my shoulders
  • Switched to using OSMAnd+ for offline maps on my phone. I did this because the application was open source
  • I ditched the external battery, opting for all devices using their own batteries. This was already a theme regardless of my choice. The Garmin InReach, phone, flashlight, etc already use their own batteries. This pack is designed for 24 hours so internal batteries will suffice. In an emergency I will always grab my battery box and solar panel
  • Everything ex
@s0lesurviv0r
s0lesurviv0r / my-mobile-dipole.md
Created November 9, 2022 08:35
My Mobile/Portable Multiband Dipole
View my-mobile-dipole.md

My Mobile/Portable Multiband Dipole

Overview

I've recently received a lot of question regarding my portable self supporting dipole after having a photo of my station appear in the June 2021 edition of QST magazine. I submitted the photo in addition to my logs for the 2020 ARRL Sweepstakes Phone contest.

Here is the original I submitted. I was operating at Santa Teresa County Park in San Jose, CA.

original

Here's the dipole at the same park on a different day. I made RTTY contacts with stations in Finland and the Philippines.

@s0lesurviv0r
s0lesurviv0r / my-endfed-half-wave.md
Created November 9, 2022 08:28
My End Fed Half Wave Antenna (EFHW) for QRP/Backpack
View my-endfed-half-wave.md

My End Fed Half Wave Antenna (EFHW) for QRP/Backpack

Overview

After trying a variety of backpack-able antennas over the last year, I've settled on two types. The first of which is the off-center fed dipole (OCF). I used one for winter field day and operated several bands without a tuner. Since I had the extra time, and I was going to be in my operating location for the entire weekend, I placed the OCF between two trees. It's a great antenna but there's another I prefer over all others for backpack-able and portable ops. This antenna is the end-fed half wave (EFHW). The primary reason I pick this antenna is the ease of deployment. All I have to do is get the paracord over a tree and pull up one side to make it slope down diagonally.

The EFHW can operate on multiple bands without a tuner. I have several EFHW, one of which is a commercially built one from HyEndFed which supports 40m/20m/15m/10m with 100 watts, again, all without a tuner. Weight is the most crucial when I'm operating just out of my backpa

@s0lesurviv0r
s0lesurviv0r / publishing-hugo-site-to-ipfs.md
Created November 9, 2022 08:24
Publishing a Hugo sire to IPFS
View publishing-hugo-site-to-ipfs.md

Publishing a Hugo sire to IPFS

Introduction

If you're not familiar with the Interplanetary File System (IPFS) I highly encourage you to look at their site. IPFS aims to be the distributed peer-to-peer web. Files and web pages can be shared on multiple machines, starting with the one you share the content with. Additionally, user's can "pin" files and web pages on their local IPFS nodes to then further share them with others. This is as opposed to a centralized web where a webpage is served from a central source.

Having the ability to share my content (this Hugo site) with others in a distributed fashion, where others can even cache offline versions of this content, was the main motivator to put my site onto IPFS. There are many more interesting and ground breaking features of IPFS but this article only showcases the basic case of putting a statically generated Hugo site onto IPFS.

Terminology

To stay consistent, I'll document the terms I'll use and what they mean.

@s0lesurviv0r
s0lesurviv0r / ham-radio-software-thoughts.md
Created November 9, 2022 08:19
Thoughts on Ham Radio Software
View ham-radio-software-thoughts.md

Thoughts on Ham Radio Software

Introduction

I wanted to take some time to discuss my thoughts on amateur radio software. I've noticed a few troubling patterns that I worry may hinder development and adoption of particular applications and protocols. Particularly, I wanted to share my philosophy of adopting open source ham radio applications at all costs, ensuring the tools I train on, and recommend, can live on.

Software

I've spend a majority of my life writing code. Whether it was growing up, in college, or as a professional. I've written software across domains and industries, including some ad-hoc toolsfor amateur radio in my spare time.

I've come to understand that software is rarely static, it's living andbreathing. A great application will see itself live past the system it was intended to run on. New operating systems, and versions of operating systems, dependent libraries, etc, will change over the course of an application's life. For a enterprise application, developers update their appl

@s0lesurviv0r
s0lesurviv0r / my-ham-radio-experience-so-far.md
Created November 8, 2022 11:01
My Ham Radio Experience So Far
View my-ham-radio-experience-so-far.md

My Ham Radio Experience So Far

I was always interested in computers and, as a consequence, electronics. Therefore it's no surprise that radios caught my attention at a young age. I've been a licensed ameteur radio operator for around 18 years but I haven't been consistent and I know I'm not alone. I've had many breaks from ham radio due to other priorities and I've lacked growth in many areas of ham radio I should be much stronger in for the amount of years I've been licensed. As I've gotten older, more patient, acquired a little more disposable income, and am either at home or in the hills due to the COVID-19 pandemic, I've gain a renewed interest in the hobby. For myself, and others, I want to share the journey thus far.

Childhood

There were two people I met when I was in middle school. One was in my classes and the other I knew from the community. They were both my age and both had HT (handheld) radios and their Technician class licenses. Upon hearing them talk about ham radio I immedietly grew int

@s0lesurviv0r
s0lesurviv0r / why-i-chose-golang.md
Created November 8, 2022 10:52
Why I Chose Golang
View why-i-chose-golang.md

Why I Chose Golang

I've went through numerous programming languages personally and professionaly. In the last year I've picked up Go as my primary backend and REST API development language. In this post I document the reasons. Please note that these reasons are coming from my perspective of primarily developing in Python for the last 3 years. The following are somewhat ordered by importance.

Simple language specification

The Go language specification is one of the shortest I can remember (https://golang.org/ref/spec). As an experienced developer it took no more than a few hours to fly over the basics. The main benefits include faster onboarding of new developers and improved readibility. At work, I wrote a new microservice of moderate complexity and witnessed my colleagues grasp the core logic with ease. I believe that having a limit on the amount of language features will also reduce the headache of understanding code I write when I look back at it months and years down the road. Finally, the enfor