Welcome to my homepage. I became blind at birth from retinopathy of prematurity. I developed an early interest in computers and radio. I use Linux, MacOS, and iOS. I have an extra class amateur radio license. I practice Qigong daily. I consider myself a Taoist. I don't drink alcohol, eat meat, or gluten. It makes me feel optimal, and helps with migraines, which I also have to deal with. For the rest, you'll have to read my articles.

Interview on Blind Level Tech

November 20, 2025

I recently appeared on the Blind Level Tech podcast from Aftersight. I hadn’t done an interview in a few years, so appreciated the chance. Evan and I talked for a half an hour before we even began. I knew we would have a good time.

It turns out we almost met a number of years ago. In high school he wrote a letter to Comcast complimenting them for their accessible set top box. They liked the letter so much that they invited him for a visit. He went on one of our tours, but I must have had something else that day, probably something tech related. We enjoyed the chance to finally meet.

The interview covers my early introduction to technology, my work consulting and doing Philly Touch Tours, and what I have planned for the future. You can find it on their podcast page, or download it directly.

I want to correct something. I said that Philly Touch Tours stopped because of the pandemic. Actually, they have continued offering training and consulting services. I didn’t know because I moved out of the city and lost touch with them. I wish them success.

Explaining Frequency and Wavelength to a Braille Reader

September 27, 2025

Recently, I had to explain frequency and wavelength to a group of blind hams. I remembered something from my childhood which I thought might help, and wanted to write it down. This will only make sense to braille readers.

“Braille is beautiful.” as we like to say, and I would suggest that every blind person learn it if possible. I did this using a piece of braille paper and a good old Perkins brailler. You can adapt it for a braille display.

In radio, we often talk about frequency and wavelength. Consider a stringed instrument, such as a piano, violin, or guitar. Lower notes have longer strings, and higher notes have shorter strings. This happens because of the wavelength. Lower frequencies have a longer wavelength, and higher frequencies have a shorter wavelength.

The same principle holds true for radio. However, instead of vibrating a string to produce audio waves, we send electromagnetic waves through an antenna. Lower frequencies require longer antennas, and higher frequencies require shorter antennas. This explains why you can get on VHF and UHF (2 meters and 70 centimeters) with a short rubber duck, but HF uses much longer antennas. My off center fed dipole has a length of 122 ft, and goes down to 80 meters. 3.5 MHz.

The names of the bands we use come from the wavelengths. For example, if we say that we will go on 40 meters, that means that the radio wave has a length of around 40 meters, or around 7 MHz. If we say that we will go on a repeater on 2 meters, that means that the radio wave has a length of 2 meters, or around 150 MHz. We will get into the formula to compute this further down.

For all of this to make sense, it helps to know what a radio wave looks like. Make a line of braille with “ieieieieieieieieieie” alternating across the whole line. This makes what we call a saw tooth wave, because it has a jagged up and down pattern. It has peaks and valleys. For a pure sine wave, like what you might hear when listening to CW (Morse Code), imagine the peak as the top half of a circle, and the valley as the bottom half of a circle. The wavelength refers to the distance between two of the peaks. On 40 meters, around 7 MHz, the wave has peaks 40 meters apart. Higher up, on 2 meters, around 150 MHz, the peaks have a distance of 2 meters.

Keep in mind that the wave moves through space. Imagine yourself standing at a point, watching the wave go past. A longer wavelength means that fewer peaks will go by in a second. A shorter wavelength means that more peaks Will go by in a second.

Actually, the frequency refers to the number of cycles per second the wave makes. It starts at the baseline, goes up, comes down, dips below the baseline, then returns to it. This completes one cycle. Old ham radio books don’t talk about Hz (Hertz), they talk about cycles per second. You may even hear old timers referring to a net on 80 meters as 3.5 megacycles. This means that the wave goes up and down 3.5 million times per second.

This also explains why we talk about using upper sideband (USB) or lower sideband (LSB). It refers to which half of the wave we use. Upper sideband uses the part of the wave above the baseline, and lower sideband uses the part below the baseline. If you tune into the wrong sideband it sounds garbled.

When we say a radio wave, we really mean an electromagnetic wave. You could think of light waves as like radio waves at a much higher frequency. Electromagnetic waves travel at the speed of light, around 300,000,000 meters per second, or 300 megameters. That explains why if you divide 300 by the frequency in megahertz you get the wavelength in meters, and if you divide 300 by the wavelength in meters you get the frequency in megahertz. This works approximately. The 2 meter band, which before I described as around 150 MHz, really goes from 144-148 MHz, but that comes down to rules we invented.

I hope this helps some blind hams. 73, and keep hamming!

A Tribute to Stuart Olson

September 22, 2025

My Taoism teacher Stuart Olson recently passed away. The Sanctuary of Tao wrote a tribute to him. I wanted to write one as well.

I first encountered Stuart during the 2019 Qigong Global Summit, an online event which no longer exists. Stuart gave a talk about Taoism. In it, he described it as an inherently antisocial philosophy. I perked up and thought:

“What? An inherently antisocial philosophy? I have to sign up to this guy’s newsletter!”

I did during the break. When I moved into the city, I thought that I would really do it! I would try to make myself get out and socialize. I even referred to it as social yoga. Even though I had some valuable encounters and good times, ultimately it burned me out. This led me to acupuncture, which led me to Qigong, which led me to the Qigong Global Summit where I heard this talk. I knew that Taoism served as the base for Qigong, and now I understood it as the opposite of the thing I tried which failed. I knew I had found my path and my teacher.

A few weeks later, the Sanctuary of Tao offered a course in a seated form of Qigong called the Eight Seated Brocades. Many have heard of the Eight Standing Brocades, but the seated form doesn’t get as much attention. It actually came first, from around 2000 years ago, and has more to do with cultivating what we call the three Treasures.

The body has three types of energy: Jing (the fluids of the body, like water), Qi (the life force of the body accessed with the breath, like fire). Combining water and fire results in Shen (the spirit or consciousness). The Seated Brocades especially cultivate the Jing and Qi, which will naturally generate Shen. Just as Taoism serves as the foundation for Qigong, the Seated Brocades serve as the foundation for doing further internal work.

I loved the course. Stuart and his assistant Patrick did a great job teaching the course, and answered all my questions. Shortly after the course ended, the Sanctuary of Tao sent out another email. They offered the opportunity to become what they traditionally call a Closed Door Student. This means a teacher and student having a one-on-one relationship for intense spiritual work. In modern times this meant regular group lectures, and meetings every two weeks on Zoom. I took it!

We began, and I learned so much. Eventually we each had to select a text which we would go over in detail during our private classes. I chose the Secret of the Golden Flower. This book talks about cultivating in the third eye, and I felt drawn to it immediately.

Taoists remind me a lot of Unix users. They write obfuscated manuals for other initiates with a lot of assumed knowledge. The Secret of the Golden Flower definitely has this quality. I would never have understood it without Stuart’s guidance and commentary. Even then I considered it a privilege. We would say that this happened because of our past actions, or karma.

Meanwhile, I realized that I had to move out of the city. I found a perfect house and they accepted my offer. Three days before settlement I had my regular meeting with Stuart. I came with a lot of random questions, and moving on my mind. He said, “I will answer your random questions, but next time I really want to get into the Secret of the Golden Flower.” I said, “That sounds good! Golden Flower! Next time.” Next time never came.

I packed with a lot of help from my family and friends. Right before I shut down my computer I checked email for the last time for real. I got a message from the Sanctuary of Tao that Stuart had cancer, and had to stop teaching. That did it for the city!

I made the move, then finally had time to contemplate the message. Previously, they announced that Stuart had an infected kidney and had to take a break from teaching. Now the diagnosis shifted to cancer. I felt shocked and sad. I had a lot going on after the move, and just kept practicing. I held the vision of him recovering and of us talking again.

Sadly that did not happen. In early August, they sent out an email announcing that Stuart had entered hospice care. He passed away on the fourteenth. We had a memorial for him on the thirty-first. The Sanctuary of Tao wrote an article exploring why someone who practices longevity would die at age 75. Chapter 33 of the Dao De Jing says:

“Those who die without losing their power have longevity.”

Stuart did that. Now we have to continue. He wanted his students to understand things well enough to become teachers. I will let you know when I start offering classes. Even though we can’t have our regular chats on Zoom, I know that he still exists, and can still answer my endless questions.

As an addendum, I published this article on September 22. I later learned that I published it on Stuart’s birthday without knowing. That gave me the chills in a pleasant way. It shows we still have a connection.

How to Copy Files to a Broken Linux Server

July 21, 2024

I recently began upgrading a Slackware Linux VPS using Linode. I thought I would upgrade OpenSSL to prevent GPG from crashing later. Bad move. It broke everything! Suddenly I had a broken server. I could not use SSHFS to copy a file, and didn’t have an FTP server running. I needed to get the proper packages onto the server, but how?

I came up with a clever solution. Download the packages locally. Encode the package file to base64 to turn it into text. Copy it to the clipboard. Finally, paste it into a text file on the server, decode it, and install the package.

First, you need to download the appropriate packages. I use Slackware, so went to packages.slackware.com. Go to the web site for your distribution. Find the package version closest to the version on your system. It needs to find all its required libraries. Download the file and encode it into base64. For example, to encode the file openssl-solibs-1.1.1za-x86_64-1.tgz, run a command such as:

base64 openssl-solibs-1.1.1za-x86_64-1.tgz > openssl-solibs-1.1.1za-x86_64-1.b64

This saves it to a file named openssl-solibs-1.1.1za-x86_64-1.b64. Copy it to your clipboard with:

xclip -selection clipboard openssl-solibs-1.1.1za-x86_64-1.b64

You can combine these two commands if you wish:

base64 openssl-solibs-1.1.1za-x86_64-1.tgz | xclip -selection clipboard

If for some reason you cannot encode the file locally, you may use www.base64encode.org.

Now you have a text encoded version copied to your clipboard. Go to your broken system and paste the contents into a file.

cat > openssl-solibs-1.1.1za-x86_64-1.b64

Paste with ctrl-shift-V or by selecting Edit | Paste in your terminal. Hit ctrl-d to end the file. Now decode it:

base64 -d openssl-solibs-1.1.1za-x86_64-1.b64 > openssl-solibs-1.1.1za-x86_64-1.tgz

And you will have the package, which you can install. In Slackware you would run:

installpkg openssl-solibs-1.1.1za-x86_64.tgz

For Debian and Ubuntu systems, run:

apt install openssl-solibs-1.1.1za.x86_64-1.deb

Redhat would use:

rpm -i openssl-solibs-1.1.1za.x86_64-1.rpm

Arch Linux would use:

pacman -U openssl-solibs-1.1.1za.x86_64-1.zst

and OpenSUSE would use:

zyp install openssl-solibs-1.1.1za.x86_64-1.rpm

And that should do it. Repeat the procedure for the other broken packages.

I hope this saves some poor sysadmin in a panic.

Turn the Page

Search my Weird Life