Google Stadia: Update

Update 2024-06-16: Google Stadia sunset after only a couple years of operation. The unfortunate part is that there were legitimately some great “first-party” games that had launched on it and I really did enjoy being able to just carry my Stadia controller to any TV or computer in the house that had a Chromecast or Chrome browser and just start playing. It was actually a wonderful experience 99% of the time, but ultimately the lack of ownership, high prices, and lack of consistency from ISPs killed it. ...

January 9, 2020

GitLab Managed App: Cert Manager

For anyone using GitLab’s Managed Apps, specifically the cert-manager, be advised that you need to re-install (uninstall/install) the app if you first installed it prior to September 22, 2019. Most people that need to have probably already done so, but my cert was active until right around Christmas, so by the time I realized my cert hadn’t renewed it was the holiday season. And, to my added frustration, the re-installation process was not smooth. ...

December 31, 2019

Google Stadia Review

I had a $150 credit on my Google Store account after my purchase of a Pixel 3 XL and there is nothing on the Google Store, beside the Pixel phones, that is really worth spending any money on. Except maybe a Chromecast. But then Google Stadia came out for pre-order, it was around $150, so I said “why not?” And I bought it. I received my order on November 21, 2019, and so far I’ve only played Destiny 2 on it, but I feel it makes for a great test game since it’s an online multiplayer game that deals in fast-paced first-person shooting. Although I don’t typically post reviews for things, I felt like posting this one because I was originally a huge proponent for OnLive, which I consider to be the spiritual precursor to Stadia. ...

November 23, 2019

Elixir + GitLab AutoDevOps

For those unaware of GitLab’s AutoDevOps feature, I would recommend checking out the official documentation. TL;DR GitLab is trying to make a CI/CD pipeline that’s as simple as deploying applications is with Heroku. Essentially, you “flip a switch” and any git push you do to the repo runs the pipeline (assuming the branch/tag meets certain prerequisites). It’s actually a very wonderful feature… in theory. But the devil, as they say, is in the details. ...

October 9, 2019

Experience vs Expertise

There are jokes aplenty about how jobs want you to have 10 years of experience (or some other absurd number) by the time you’ve graduated college, generally implying that you need to have started on your career even prior to high school in order to have enough experience to get an entry-level position. The sad part is that these jokes are born from a kernel of truth. And I understand the cognitive dissonance here: college degrees are mostly meaningless in determining whether you can do a particular job. They are primarily a tool for filtering out potential candidates so there are fewer applications to manually process. ...

May 7, 2019

A Discordant Journey: Elixir + Discord

A few months ago I decided to embark on some personal programming using Elixir. I loved Erlang when I first played around with it many years ago and have enjoyed Elixir since the initial release (long before it hit 1.0). Around this same time I was setting up to host a Dungeons and Dragons campaign for my friends and wanted some way to record our sessions for personal enjoyment and reminiscing. We chose Discord for our voice chat service and Roll20 for our map viewer, dice roller, etc. I was having an awful time trying to get my computer set up to record both my incoming audio from Discord and my outgoing audio from the microphone, and so I looked to see if Discord had any voice recording bots, and they did. I had stumbled upon Craig. ...

January 30, 2019

Composing Victory with docker-compose

This article assumes you have at least basic knowledge of Docker and docker-compose. Docker good, docker-compose better For small projects where you don’t need a collection of services that speak to each other, Docker is great. It’s all you really need to get a reliable app environment up and running and deployed. But most projects, especially those for for businesses, are not isolated applications that don’t communicate with others. At some point you will almost definitely need to have at least one service that needs to communicate with another service. Most commonly that would be an application interacting with a database. So at a minimum you now have two containers to run: your main application and your database. You could use docker build and docker run to launch both containers, but then you would need to perform a little extra effort to ensure both containers can speak to each other, especially since the IP address and exposed ports can change depending on your configurations. Thankfully you can bypass the manual effort with docker-compose! ...

September 20, 2018

Kubernetes and Containerization

This is designed to be a multi-part article. This first post, the introduction, talks about what the plan was and how it came to be along with some of the concerns and questions we had prior to starting implementation. The following parts discuss the exact details behind each of the particular goals we were trying to achieve. Update: While there are multiple parts to this “series”, I didn’t end up writing all of the individual pieces I had intended to originally. So instead, this article is really more of just a general overview of the planning and the design of a new system I was building at Loot Crate during this time (2016/2017). It focused on containerization, Kubernetes, and an event-driven architecture. ...

December 21, 2017