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.
The first week of June, I received an e-mail from one of my best friends in London. Her flatmate had committed suicide. Across the world, rates for attempted suicide are growing dangerously amid the continued lockdowns. Serious child abuse emergency room visits have risen by by over 35%, while surveillance into abuse incidents is hindered with many schools remaining closed. The civil unrest, riots and other secondary effects are from the response to the pandemic, but not the virus itself. So far, every indication shows the fatality rates for this virus are in decline. Yet despite what should be good news, leaders from around the world seem to be doubling down on the existing narrative of fear to justify continued behavior modifications, despite the growing secondary effects of the lockdowns.
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.
To those of you who want a civil war, I say to you: you have no idea what you’re asking for. The causalities of war are high. You do realize that being the most moral or righteous does not in any way guarantee victory? There is literally no justice in war, only souls convinced of their rigorousness with promise of nobility. It is vanity to see glory in war. It is hubris exemplified! No American is asking for the war you want. No minority gives a shit about your white guilt. No looter studies the theory of stealing for its socioeconomic ends. And who are you fighting? Despite the stagecraft of the divisiveness of our government, they are unified in holding the nation they control and have the backing of a military who would slaughter any opposition. The people in our nation with the majority of the firearms would not be fighting against them.
“War is hell,” is the understatement of the century. It is the disillusion of any hope. It is soldiers running over children in Iraq, because if they stopped, their vehicles would be overturned by improvised bombs. It is families devastated by the ideology of might. The spoils of war can be seen every day when you open your wallet, and find that it is filled with oil and blood.
Humanity may need to come to grips with the reality that our life expectancy may now be dramatically lower. Have we reduced our life expectancy by a few months, a few years, or a decade? Will it be worse that smoking? Better that heart disease? It may be too early to tell. What we have seen is large swaths of human beings acting unilaterally across an entire planet, in a way that is simply unprecedented. We wade waste deep in a world of data, tracking, and 24/7 hate that could be lifted directly from a George Orwell novel. Far into the future, we do not know how humanity will look back upon this era, but we do know that right now, this is not a time of honor.
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.
The majority of people who are infected with the virus SARS-CoV-2 do not develop severe cases of COVID-19. However, some people develop a cytokine storm, and their own immune system may start to work against them. The response of many world governments to COVID-19 has been to restrict travel, close non-essential businesses, restrict gatherings, close parks and inform their citizens to distance themselves from one another when possible. Leaders want to slow down the spread of the virus, in order to not overload hospital systems. Yet, these policies are also slowing this massive machine; this infrastructure that has evolved to support several billion human beings. Our society, though composed of people and not cells, also has an immune response. Our societal immune system can bring us together to survive the darkest of times against untenable odds, but it also has the power to overreact, give itself to mass hysteria, and ultimately rip our people apart in an attempt to save it.
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.