Communication Patterns

This post is about communication patterns in software projects. For your organisation and its teams to be truly agile and effective you should build a communication system. Goals Keeping people focused, aligned and effective Sharing information in the right places Optimising incident response times Operational safety Your organisation is spending vast resources to optimise various parts of the technical infrastructure to help your developers work better. We all spend a fair amount of time communicating and the quality of the deliverable result of our work is largely affected by the accuracy and completeness of such communication. »

ElixirConf.EU 2018

I attended ElixirConf.EU 2018, it took place in Warsaw this time. The food was fantastic, the weather was very favourable and the presentations a blast. The Food Announcement: This blog is from now on about food ..Not. That zapiecek place was sooo good though. We ate there almost twice a day. They had those ravioli-like pasta called pierogi, absolutely mouth-watering. I might visit Poland again just for the food! »

Effective Meetings

This is a recollection of thoughts on meetings and notes from one of my favourite books, high output management. Meetings have a bad name and people tend to nag about them. It doesn’t have to be like that. Most of us have been in a situation where we wish we could think of a good excuse to escape from a never-ending meeting. Meeting Types People’s time is highly valuable, so all meetings should be purposeful and well executed according to type. »

Phoenix WebSockets Under a Microscope 🔬

This is a code-reading and exploration post about the WebSockets side of Phoenix. It builds upon some of the tracing techniques showcased in the previous post, to observe some of the internals of Phoenix. It also features some tricks I commonly employ to debug WebSocket related issues. The title and nature of this post are inspired by the marvellous book Ruby Under a Microscope written by Pat Shaughenessy. WebSockets The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code »

Debugging & Tracing Elixir Applications

This post describes a few useful techniques to debug running Erlang / Elixir applications. It is meant to be a cheatsheet of things you can do to inspect and alter the state of an application without requiring the installation of packages. For any of the code snippets below, autoverse refers to my local hostname, which itself refers to one of my favourite science fiction novels, “Permutation City” by Greg Egan. »

Elixir.LDN 2017

I returned from vacations in beautiful Greece (Amorgos island 🏝), to attend Elixir.LDN-2017 in London. General Feeling The venue was at a very convenient location and was well suited for the conference. I could see many familiar faces and felt like a supercharged edition of the London Elixir meetup. If you’re interested in attending the Elixir London meetups you probably want to join #london of the elixir-lang slack (get an invite) and the meetup. »

Distillery releases with Docker multi-stage builds

This post describes the procedure to create lightweight Docker images, using multi-stage builds, to deploy Elixir applications packaged using Distillery. It is assumed that you’re familiar with Docker and Elixir. Multi-stage builds Since Docker version 17.05 you can have multi-stage builds. With such builds you can have a single Dockerfile contain multiple FROM instructions, separating multiple stages of a build, where artifacts from one stage can be used in the next and all resulting in a single image. »

ElixirConf.EU 2017

I was in beautiful Barcelona for ElixirConf.EU 2017. In this post I’m sharing some of my notes and impressions about it. Team Quiqup [Zorbas, Hawkins, Rabe] Tutorials I attended the tutorial “Microservices under the Umbrella” by Makis Otman & Georgina McFadyen, both working for 8th Light. We hacked on code from the following repositories: https://github.com/Maikon/elixir_setup https://github.com/Maikon/pharos The was goal to create an umbrella application, going through the pros and cons of such an architecture. »

Deploying Kitto with resin.io

This is a guide to deploy a Kitto dashboard application on a Raspberry Pi using resin.io. After you follow the steps below, you are expected to have a dashboard running on a raspberry connected to a TV which displays the dashboard full-screen using firefox. Expected end result Kitto is an open-source framework for dashboards, written in Elixir. It is focused on requiring minimal maintenance and system resources. »