RPG Development Log #1
I’ve been working on a game off and on for the last couple of months, and I figured I might as well start writing about my efforts in order to keep a history of how it progresses! The Concept One of the games that always stood out to me when I was younger was Final Fantasy Crystal Chronicles: My Life as a King. The core game loop involved not adventuring yourself, but rather creating a town that would be optimized for the npc adventurer’s that lived there. It was a city building game but on a much smaller scale than something like SimCity or Cities: Skylines.
Indy Cloud Conf 2019
I gave two talks at this year’s Indy Cloud Conf. It was the first time that I have ever spoken professionally in front of a crowd. I had a lot of nerves leading up to the event, but I feel like I put my best foot out there. It was a fulfilling experience, one that I’ll certainly be looking to do again. When to rm -rf Kubernetes Kubernetes is quickly becoming the de-facto choice for container orchestration. In the mad dash to stay relevant, it is constantly being recommended as a cure-all for every DevOps problem. There are an abundant number of articles and blog posts on why you should being using Kubernetes for managing your deployments. It doesn’t seem too often the question is asked, when should you not use Kubernetes?
30 Days with Subsonic
So it’s been a little over a month since I [ditched Plex]({{ site.baseurl }}{% link _posts/2019/01/2019-01-12-before-and-after-plex.md %}) in favor of Subsonic, and I’ve started to get the hang of things. I was initially a little skeptical if I would like the service enough to fork out for the premium version or not. With a 30 day free trial I didn’t have much to lose however. There wasn’t an official docker image, unlike Plex, so I went with the one provided by mbirth which works well enough. As an aside, Kubernetes and Docker made trying this out super simple. I left around my old Plex configs for a couple of days until I was satisfied that Subsonic would work. I was able to modify my volume mounts without having to move any of my actual media and Subsonic picked up on it right away.
How hard could it be to make a multi host Postgres proxy?
Imagine a scenario where you want to route postgres connections through a single proxy to multiple databases. db1.com ---> Proxy ---> Database 1 db2.com ---> | ---> Database 2 How would the proxy work? We’d want to leave the actual database connection secured so the data itself would be encrypted. That prevents us from proxying based off some data in the query itself. That leaves us with a couple of options
Before and After Plex
Services like Spotify, or Pandora are great for access to a wide variety of music. Over the years, I’ve built up a decent collection of music (At last count 256 different albums), and I tend ti like listening to my own music when given the chance. The convenience of streaming is hard to beat however, so I tried a couple different services that would allow me to stream my own music. The most obvious choice was Google Play Music, which allows users to upload 50,000 songs to their servers for no cost. I used this for a while but eventually wanted to rely on Google’s services less. This led me to evaluate tools like Emby and Plex. I liked Emby’s more open source model, but whenever I tried to use the mobile app I experienced pretty unusable lag. So that left me with Plex.
Home Assistant, and Kubernetes, and Z-Wave, Oh My!
Home Assistant + Z-Wave For the last 3 years or so, I’ve been running Home Assistant for my home automation needs. I’ve gone through a couple iterations with it being hosted on bare metal on a raspberry pi, in a python virtual environment, and within a docker container. I started off mainly with just smart lights so wi-fi bulbs worked pretty well. After time, concerns with security and general scale led me to start using Z-Wave and Zigbee devices. These required physical hardware to hook up to the raspberry pi (After switching around a bit I currently use the Nortek HUSBZB-1).
When Errors are Promises
Under what circumstances will the following code end up logging the rejected promise message to the console? foo() .catch((err) => { console.log(`Promise Rejected. reason = '${err}'`); }); When foo returns a rejected promise like so const foo = () => { return Promise.reject('Rejected Promise'); }; The console will look like Promise Rejected. reason = 'Rejected Promise' Now the naming of catch makes it seem like it should also handle errors. If foo looks like
About
I'm Paul Steele, a software engineer based out of the Indianapolis area. I'm currently interested in automation of all kinds, whether that be continuous integration pipelines, or home automation. At the moment that involves interacting a lot with Kubernetes, and cloud automation. Here I'll post the various thoughts that come to me from time to time, some related to technology and some just about life in general.