I share things that I have learned, things I've found interesting, as well as how-to's & tutorials.
I hope that you find something useful here!
When you click a link to return to a page, or use your browsers back button to return to a page Turbo will render a cached preview of the page. It will then fetch an updated version of the page.
If you ask a group of people "what is DevOps?" you are likely going to get a variety of different answers. Some think it's just the automation of a pipeline. Some people may say it's just developers doing operations work. I subscribe to the idea that DevOps is a mental model for how to think about creating software. So with that, let's take a look at the core principles behind DevOps.
Let's use Docker to help us build software! If you are new to the world of containers then I hope you will find this tutorial insightful. We will explore setting up a new project and creating a docker-compose.yml file, then will add services like PostgreSQL and Redis, and finally run and develop our new application in docker.
I have been developing Ruby on Rails apps in Docker for several years now. I couldn't imagine not using Docker for serving my projects at this point! See how I build docker images meant to be run in production for my Ruby on Rails projects.
I spent some time over the weekend getting familiar with RSpec. Gonna brain dump (with just a little bit of structure) the process and what I did and learned. To start I set up in a new rails project and kinda tweaked it into a place where I can be productive.
Path filtering in CircleCI to reduce build times, overall cost, and to better support monorepo strategies.
I was asked recently if I could explain the difference between length, size, and count for ActiveRecord models in Ruby on Rails. Unfortunately I had no answer. But I wanted to really understand so I dug into the API docs.
A flexible terraform module for creating an AWS ACM with a variable number of additional SANs. GitHub Repo
Here is a directory structure that I am using for Terraform that I think works pretty well. The quick and dirty of it is to think of your configurations in terms of a organizational and systems hierarchy, and to design your plans to support that hierarchy. Each tier depends on and builds upon the previous tier.
Ruby doesn't have the concept of an interface. Unlike say, PHP. In PHP you can specify that a class has to act like or implement specific methods. If your class fails to honor the contract of that interface and does not implement the methods of the interface, you get an error during runtime. Ruby does not have this. But we can ensure our code honors the contract of an interface by writing unit tests for our classes.
Maintain a single .gitconfig between different operating systems by using proxy scripts for git diff and git merge tools.
I monorepo'd (can we verb that?) my personal projects. Here is how I did it, and why, and how you could approach doing the same thing.
Ruby on Rails is quickly becoming my framework of choice for my personal websites and projects. It's a pleasure to work with and has been easy to learn. But no framework is without its challenges. One of those challenges is of course deploying the app to a server. There are a lot of options for hosting and deploying a Rails app. But, I like to run my own servers which means I have to also take care of deploying to those servers. I'd prefer to be deploying images to AWS ECS but I don't need that kind of infrastructure for my personal website. It's just a blog it can suffer seconds of downtime when I deploy updates. So my approach these days is to use Ansible to handle the deploy steps.
Create a systemd service to run your rails app server.
Terraform is an awesome tool. To make it more awesome though we have wrapped it with some custom Ruby ERB templating to generate our terraform configurations from Yaml configurations.
Hello and thank you for checking out my not-a-blog blog. I mostly share tips and how-to's about web development, Sysadmin/DevOps, and other technical/development things
My first year at Blackbird has been good. My main goal in my first year was to migrate the monolithic system and infrastructure into something more scalable and reliable. Well this week was the week and we did it. We moved the last of the services over without any issue. I am grateful that I had the support I did and the team I did. I have learned an incredible amount from them. And ultimately, we killed it!
I had set out about 2 years ago to get some certifications for my own personal and professional growth, but life and things and other things got in the way (work? Factorio? excuses?) and I just never finished them.
I have started using an IDE again (PHPStorm) so that I could debug some applications and do some basic app profiling. I want to use Xdebug to profile my PHP apps. I am using Docker Compose on Windows 10. I have made this very complicated for myself but here we go.