Skip to main content

Posts

2019

Docker Compose Explained

Tonight I gave a talk at Toronto Perl Mongers discussing docker-compose. This month’s topic started as a discussion at the end of my presentation last month, as I was using containers to demonstrate OpenAPI interaction. There was a lot of attendee involvement in the during the presentation. Plenty of questions and discussions. The use of docker containers for MetaCPAN dominated the conversation and examples, as I had the ability to show how they worked and work with the containers running on my system.

Git Workflows

·1 min
Recently at work there’s been a number of discussions involving implementing git and what workflow to use, and how they work. GitFlow I’ve always defined the workflow we tend to follow as GitFlow-esque. Somewhat like GitFlow in philosophy but not following as strictly. One of the opponents of adopting GitFlow cited the following post GitFlow considered harmful which describes where GitFlow can go wrong, or be overly complex. Interestingly those are the bits that we don’t adopt which makes up the “esque”. Before now though I hadn’t read of a proper description of the workflow we usually follow, luckily an update made in 2017 describes OneFlow workflow.

Moving to Hugo

·1 min
I felt like a website change was in order. I wasn’t completely happy with the previous layout and scheme. Maybe it’s just Spring Cleaning on the mind. As such I’m moving from Jekyll to Hugo. The idea is to have GitLab CI/CD automatically build the site when a new article is pushed to it. I have the plans as to how this will all work, but need to get to the implementation.

MetaCPAN Mojolicious and OpenAPI

Tonight I gave a talk at Toronto Perl Mongers discussing MetaCPAN, Mojolicious, and OpenAPI this is a result of the work that was done at meta::hack 3 this past November. The idea of the talk is to take the work that was done and provide examples and greater detail as to how to implement a project using OpenAPI and Mojolicious. The talk was very well received, and as I was running MetaCPAN in a number of docker containers for demonstration purposes and interesting conversation on containers started.

2018

Metacpan, Mojolicious, and OpenAPI Advent

Building off the work that done at this years meta::hack, I participated in Mojolicious Advent Calendar with an article on MetaCPAN, Mojolicious, and OpenAPI. This article documents the steps that were taken to document and implement the MetaCPAN’s Search API using OpenAPI. There was a lot more involved in the process and a number of endpoints were documented, however that would have made the article super huge.

meta::hack3 Followup

·1 min
Olaf has created a really great summary of the work that was done during meta::hack this year. It was a lot of fun, and a lot of interesting work was done. Including some proverbial “Friday night at 5pm deployments” (actual time was Sunday immediately before boarding a plane). meta::hack 3 Wrap Report

meta::hack 3

·1 min
I’ve been invited to attend meta::hack 3! I’m very excited for this oppurtinity to give back to the community, work on a site that I use so much every day, and work with some really great people. Some background on the event and who is going is provider here by Olaf meta::hack is back!. I’d like to say thank you to the 2018 sponsors of the event Booking.com and ServerCentral

Ansible, Docker, and Ubuntu

By default Ubuntu/Debian docker images do not include python as part of the distribution. Before running Ansible tasks against containers, including fact gathering, python must be installed. The value of ansible_os_family can not be used because it’s not available until after facts have been gathered. - hosts: docker-containers gather_facts: False pre_tasks: - name: Check for apt (Debian family) raw: "test -e /usr/bin/apt" register: apt_installed ignore_errors: true - name: Install python for Ansible raw: "[ -e /usr/bin/python ] || (apt -y update && apt install -y python-minimal)" register: output when: apt_installed and apt_installed.rc == 0 changed_when: output.stdout != "" Answering a couple questions that the above might cause: