Over the course of 2020, we’ve seen increased censorship from every major digital content platform. It culminated with both Facebook and Twitter blocking a New York Post article, which alleged Joe Biden’s son was involved in illegal activity and corruption. Meanwhile, the New York Times published a scathing article on Donald Trump’s tax returns. None of the major networks restricted access to the tax story, even though it was likely those tax records were obtained illegally, and nothing in the returns was truly out of the ordinary.
People are calling for reform to Section 230 of the Communication Decency Act, the law that keeps Internet platforms from liabilities often reserved for publishers. However, I do not believe more legal restrictions will solve the issues surrounding tech and free speech. The only viable solution is better use of technology. The Internet was not founded by media giants. It was originally hundreds of thousands of small, independent websites and service providers. The solution to our current censorship woes, lies in the archives of Internet next to animated hamsters, under construction GIFs, and bright pink animated Geocities sites.
I recently built a file server. For the operating system, I decided to use Alpine Linux. As with most of my Linux systems, I wanted to utilize full disk encryption. The following guide is mostly based off the documentation on the Alpine Wiki, and goes through the installation of Alpine on a modern UEFI system, with LUKS full disk encryption.
I recently added some high speed storage to my Windows 10 machine, which I use for gaming and video editing. At first, I was going to replace the existing 500GB NVME drive with a 1TB drive, and use the old drive in my storage server. However, I accidentally ordered another 500GB drive. Instead of returning it, I decided to use an older drive that was left over from my laptop upgrade as the operating system disk in the storage server, and install the 500GB as a secondary drive in my Windows machine. What should have been a simple upgrade, led to a blue screen on boot. The message displayed was a SYSTEM THREAD EXCEPTION with the cause being iaStorAC.sys, part of the Intel Rapid Store drivers.
Back when I first started posting videos, I used Vimeo. Even though YouTube was the dominant video site, I wanted to support the underdog. I even bought a Vimeo Pro account. At the time, Vimeo had higher quality video than YouTube, but nowhere near the level of discoverability. Eventually I started posting on YouTube; both new content and some reposts of my older videos. It’s 2020 and YouTube, as well as the rest of big tech, is continuing to remove content they don’t agree with from their platforms. None of my videos have ever gotten a large number of views, and none are monetized, so I might as well copy them to a PeerTube instance I control. If you do run a YouTube channel with any type of significant viewership, I highly recommend backing up your videos, in the event you may need to self-host your content in the future.
A few years back, I did some work for a sensor network startup. Since then, I’ve always been on the lookout for new sensor hardware and tools. I just moved into a new apartment, and discovered the VegeHub when searching for soil moisture sensors to use on my flower boxes.
The VegeHub supports sending your data to a few online storage providers (a.k.a The Cloud), or to a custom web service. I considered adding support to BigSense, a sensor web service I wrote in Scala. Instead, I decided it would be a good time to experiment with a time series database. I wrote a small Python Flask application called SenseFlux to store VegeHub data in InfluxDB. In this post, I’ll show you how you can setup SenseFlux and InfluxDB using Docker, and graph sensor data using chronograf. Let’s get started.
Years ago, at a white elephant Christmas party, I ended up with leopard print keyboard stickers. I bought a new keyboard to get the most out of these stickers, and used it for months as the stickers began to wear off. However, the space bar broke in less than a year. I had gone through many keyboards over the years, and all of them had been disappointing with their disposable build quality and lack of longevity. I decided to try a Das Keyboard Ultimate. It was my first foray into the world of mechanical keyboards, and would lead to many years of trying different key switches and purchasing custom key caps. This post is a brief history of the various mechanical keyboards I’ve bought, sold and given away over the years.
I struggled with the design of the Johns Hopkins data visualizations for the recent pandemic. Under the surface, the visualization powered by an overpriced commercial software known as ArcGIS. I tried to work with the data myself and got some basic visualizations working. Along the way, I started to see some other great visualizations, and some that were terrible. The data is collected in time series by day, but it’s measured inconsistently depending on the reporting guidelines of each country or region. This gives the data some unusual aspects we’ve never really encountered before.
On April 16th, the deaths per day for the state of New York spiked to 4,591, where it was around 2,000 before and immediately after. New York retroactively adjusted several previous fatalities which were likely caused COVID-19. The reasoning for this change is based around average death rates for the year far exceeding what is typical, and a similar under-reporting may have taken place in Italy. The trouble with this spike in relation to the Johns Hopkins data is that it’s tacked onto the end of the time series instead of being applied to the dates when those deaths occurred.
In 2013, Google discontinued their Reader web application. It had become a dominant application for RSS feeds, in a time when many felt RSS was dying. After Google discontinued their terrible product, people seeking alternatives found other web applications and quickly discovered tools that weren’t pieces of garbage. Readers like Feedly, Newsblur, and others, would report bad feeds and errors. Google Reader would instead silently fail, often leading people to believe their favorite bloggers had simply stopped publishing. Today, few people use RSS Readers, relying instead on liking Facebook pages, subscribing to YouTube channels or following people on Twitter. However, all of these methods are totally inadequate in relaying all potential updates between content providers and their audience. The best way to keep track of the people and content you care about is to subscribe to their RSS feeds using a good reader app, many of which work both on the web and on mobile.
I have owned way too many cellphones. I’d like to break free of Android without switching to iOS, but one of the applications I’m required to have for work is Okta Verify. Moving from Okta Verify to an open source solution was easier than I expected, but the path to discovering how to do so was not a simple one. The following explains how to get the secret used for Okta’s multi-factor auth codes, and use it in open source alternatives to Okta Verify, as well as in Python scripts.