CloudFormation Wishlist

This post originally started as a post about Terraform, but I decided to break that out into a separate post. It turned out that I had a wishlist for improvements I’d like to see in CloudFormation. I’ve been using CloudFormation for years and have been pushing teams I work with to do the same - with mixed results. Problems with CloudFormation Writing Templates CloudFormation templates are tedious to write. CloudFormation consists of JSON or YAML files that define “stacks”....

August 18, 2022 · Mike Staszel

Cross-Posting to Medium

I love seeing when something I wrote helps someone. Someone sent me an email years ago thanking me for writing about some obscure bug or problem I solved and blogged about, and I remember it to this day! Medium is a popular blogging platform that a lot of software engineers use, and I’ve started cross-posting there. Why Cross-Post? A picture is worth a thousand words: That’s right - 60 people found my post and found it to be useful and clapped!...

August 13, 2022 · Mike Staszel

Resetting the Blog

I’m giving myself a new personal challenge - to write at least one blog post per week, for the rest of 2022. These posts might be poor quality, but they’ll be better than not posting at all. The motivation behind the challenge is to write more. I don’t have any topics or posts ready to go or pre-written. I’ll have to think of something. I’m not sure if this posts counts as one of the first weekly posts....

August 7, 2022 · Mike Staszel

M1 Mac + Logitech Mouse + Logi Options

M1 Mac + Logitech Mouse + Logi Options This will be a quick post because I’m sure Logitech will fix this eventually (or maybe I’m the only person with this problem). I have a Logitech M705 mouse I use extensively with my M1 Mac Mini. I configured one of the side buttons to launch Mission Control (to see all my windows instantly) — but this seems to crash some bit of Logitech code every once in a while (maybe once an hour this stops working for 1 minute, then starts working again)....

April 20, 2021 · Mike Staszel

Semver vs. Calver and Why I Use Both

I began properly versioning the software I write recently. I’m working on a Python package that I hope others will use. My goal is to iterate and release new features and fixes over time, but I need a way to signal to the world that a new version is available. Why You Should Version Your Code It’s a best practice. It makes you think about supporting users of your code....

April 3, 2021 · Mike Staszel

Install TA-Lib Without Homebrew

The only package I ever install using Homebrew is TA-Lib. Everything else I need is already available. TA-Lib isn’t updated often and it’s easy to install by compiling from source. How-To This guide will work on macOS 11.1 (Big Sur). It works perfectly on an M1 (or Intel) Mac. First, download TA-Lib from SourceForge. Then run: tar xf ta-lib-0.4.0-src.tar.gz cd ta-lib ./configure --prefix=/usr/local make sudo make install That’s all it takes....

January 3, 2021 · Mike Staszel

S3A on Spark

Quick post mostly for my own reference since I always need to re-learn how to do this. This used to be more difficult in older versions of Spark, but when using Spark 2.4 or later, all you have to do is: wget https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk/1.7.4/aws-java-sdk-1.7.4.jar -P $SPARK_HOME/jars/ wget https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/2.7.3/hadoop-aws-2.7.3.jar -P $SPARK_HOME/jars/ That’s all there is to it. The s3a:// prefix should work now for reading and writing data using Spark.

November 29, 2020 · Mike Staszel

Chipee - CHIP-8 Emulator in C

I finished a thing in my free time! Chipee! Goals I’ve always wanted to write an emulator and this is the first time I actually got around to finishing one! My goals were to learn about how to write an emulator and to re-learn C. It’s been years since I wrote any halfway decent C. I’ve also never done anything using SDL, sound, or even a window with graphics. Why CHIP-8?...

January 1, 2020 · Mike Staszel

AWS CloudFormation

If you’re doing any production-level work in AWS, you should be using AWS CloudFormation. It’s really easy to get started. Let’s walk through the basics. Why use CloudFormation? Here’s a common scenario: creating an EC2 instance and assigning an Elastic IP address. Let’s say it’s for a web server. Great! That’s easy. Just spin up an EC2 instance. Choose the correct image, size, security groups, VPC, subnet, keypair, and so on....

March 28, 2019 · Mike Staszel

Easily Finding Your AWS S3 Canonical ID

Another quick post — found this in the AWS Console UI. If you ever need to share your AWS Canonical ID with someone, e.g. to share S3 buckets. You can find your AWS Canonical ID by using various APIs — but I was also able to find it using the AWS Console UI. By opening up the S3 console and selecting a bucket you own, you can view the Canonical ID by viewing the Access Control List in the Permissions tab....

February 28, 2019 · Mike Staszel