How to use environment variables in a Kubernetes manifest

If you’re a Docker/Compose user new to Kubernetes, you might have noticed that you can’t use environment variables in your manifest files. This might not be a huge deal to most, especially since there are other (better) ways of managing environment variables in Kubernetes, but to someone getting started it can be a pain.
Continue reading “How to use environment variables in a Kubernetes manifest”

Please, Use a Password Manager!

“Locked Padlock”by Twjst is licensed under CC BY-NC-ND 2.0

Troy Hunt posted an article on poor password protection practices (try saying that fives times fast), resulting from an analysis of a major corporate data breach. Some of the highlights were:

  • 93% of passwords are only 6 to 10 characters long
  • Two-thirds of passwords are reused across different services
  • Over a third of passwords can be found in a common dictionary

This is bad news for two reasons:

  1. Lots of passwords are easy to guess
  2. If an attacker guesses a password, chances are they can use the same password to access other services

The key is to use passwords that are long, complex, and difficult to guess. The challenge, of course, is that the harder a password is to guess, the harder it is for us to remember.

Continue reading “Please, Use a Password Manager!”

Easy Adware and Malware Blocking on Android

Letter box in brick wall.

Digital ads are a disaster. While ads themselves are a legitimate and often necessary source of income for service providers, the way they’re delivered to users can be downright malicious. On mobile devices, ads have been shown to drain battery life and surreptitiously deliver malware, without the content providers even being aware of it. Until content providers can get their act together, it’s up to users to protect themselves.

In this post, I’ll present a convenient, root-free way of blocking ads on Android devices using free and open source tools.

tl;dr: download Steven Black’s hosts file and the Vpn Hosts app from xfalcon.

Continue reading “Easy Adware and Malware Blocking on Android”

Digital Wellbeing: How Google Wants to Get You Off of Your Phone

Google’s Digital Wellbeing app found its way onto my phone yesterday, and it’s an interesting new app. Unlike most apps, which fight to hold your attention as long as they can, Wellbeing is all about getting you off of your phone. For a company that amassed its fortune on clicks and views, this seems counter-intuitive. What exactly does Wellbeing offer, and can it actually help you spend less time on your phone?

Continue reading “Digital Wellbeing: How Google Wants to Get You Off of Your Phone”

Saving LED Configurations to Arduino Using EEPROM

While working on the next release of PixelMaestro, I came across a problem of storing long-term data on an Arduino. I have a system in place where configuration changes are sent to an Arduino over USB as byte arrays, and as the Arduino reads the array it applies the changes. The problem is those changes disappear as soon as you restart the device. How, then, does one store persistent data without having to add an SD card or extra memory? Enter EEPROM.

Continue reading “Saving LED Configurations to Arduino Using EEPROM”

Gamifying Your Life Part 2: How I Use LifeRPG

In an earlier post, I explored the idea of productivity gamification and how it can help increase your motivation. I’ve been testing this over the past few weeks by using an Android app called LifeRPG to track my habits, tasks, and important milestones I wanted to reach. In this post, I’ll go into detail about my LifeRPG setup and how it’s helped me stay focused in my everyday life.

Continue reading “Gamifying Your Life Part 2: How I Use LifeRPG”

Building a Lightweight, Arduino-friendly Communication Protocol

Trying stuff until it works

On today’s episode of “Adventures in C++”: sending commands between two Arduinos running the same software. Not just data, but also instructions on how to process and execute that data. Even more, these commands have to be small enough for each Arduino to package, send, receive, unpack, and execute in less than 1/10th of a second.

Continue reading “Building a Lightweight, Arduino-friendly Communication Protocol”

A Functional Alternative to std::function

UPDATE: Shortly after posting this, I switched to a different method using a custom data serialization protocol, which you can learn more about here.

One of the coolest things about C++ is how flexible the language is. If you’re faced with a problem that has no apparent solution, chances are you’re just not approaching it from the right angle.

Continue reading “A Functional Alternative to std::function”

Adventures in Desktop Application Development

When I first started this blog, I was just dipping my toes back into the world of C++. Before that, my experience with it was mostly academic, and after struggling through a course with a particularly poor professor I swore off it in favor of VB.NET. No, I never did forgive myself for that decision, but it ultimately helped me learn to appreciate the importance and relevance of C++. And after tinkering with systems that use C++ exclusively, I’ve come to appreciate it even more.

Continue reading “Adventures in Desktop Application Development”