Miguel Palhas | @naps62

Software Developer | Elixir | Ruby | Rust | DevOps | Chess

A knowledge base with Vim, Fzf and Ripgrep

I've been trying to grow my own knowledge base for a long time now, by keeping track of multiple notes taken from books, quotes, and other sources of knowledge. Now, and after a few iterations, I'm moving that to a more Unix-oriented approach, which I'm p…

Continue Reading →

Focused Writing in Vim

I've been working on getting an improved focus environment to write blog posts in. There's a lot of "Focus mode" features out there in pretty much every editor. But in Vim, I wanted to piece together a few different things, and also make some ad…

Continue Reading →

Continuous Stuff with GitHub Actions

This post was originally posted on my company's blog. Feel free to check out the original Last year, I took on the task of improving the continuous process over at Utrust. We weren't really happy with the amount of work that went into our releases, and I …

Continue Reading →

Typespecs and Behaviours in Elixir

Note: This post was originally written on AppSignal's Elixir Alchemy Blog Today2, we will dive into Typespecs and Behaviours. These are two Elixir features that we are ecstatic (pun intended) about. They are great examples of built-in features in Elixir t…

Continue Reading →

Routing in Phoenix Umbrella Apps

Note: This post was originally written on AppSignal's Elixir Alchemy Blog Umbrella apps are an awesome way to structure Elixir projects. Behind the curtains, they are a very thin layer that just compiles everything to a single package. Instead of building…

Continue Reading →

Flags, Seeds and Idempotency: Database Tooling with Elixir

Note: This post was originally written on AppSignal's Elixir Alchemy Blog Today we stir into our cauldron of magic potions and idempotence, and brew some neat Elixir database tooling. We’ll do so by going through my experience of setting up my own. Coming…

Continue Reading →

Metaprogramming: From C Preprocessing to Elixir Macros

Note: This post was originally written on AppSignal's Elixir Alchemy Blog Developers have a love-hate relationship with metaprogramming. On the one hand, it’s a powerful tool to build reusable code. On the other hand, it can quickly become hard to underst…

Continue Reading →

Pouring Protocols in Elixir

Note: This post was originally written on AppSignal's Elixir Alchemy Blog Elixir has several mechanisms that allow us to write expressive and intuitive code. Pattern matching, for instance, is a powerful way of dealing with multiple scenarios without havi…

Continue Reading →

Understanding Elixir’s GenStages: Querying the Blockchain

Note: This post was originally written on AppSignal's Elixir Alchemy Blog In this post, we’ll dive into Elixir’s GenStage module. Along the way, we’ll explain backpressure and we’ll write a Genstage to query the blockchain. Let’s start by discussing how u…

Continue Reading →

Tutorial: Deploying Elixir applications with Docker and Digital Ocean

While Elixir is becoming a popular language for web development, there is at least one topic that I still find lacking: Deploys. There are already several options out there, but the community has not yet adopted a standard way to solve this problem, so do…

Continue Reading →

Super-powered Vim, part I: Projections

One of my main focus of the past few months has been my productivity with my text editor. This text editor happens to be Vim, but the concepts of this post are applicable to any code-editing tool. The main focus of this 3-part series is to minimise time s…

Continue Reading →

Super-powered Vim, part II: Snippets

This post is a follow-up to Super-powered Vim, part I: Projections. Keeping the same line of thought of the previous post, about taking the effort out of the boring tasks that come with writing code, let's now talk about a simple yet powerful concept: sni…

Continue Reading →

Super-powered Vim, part III: Skeletons

This post is the third of a three-part series. If you're interested, you can start by checking out part I and part II. Writing code is boring. In the previous parts I showed how we could speed things up a bit, by having some powerful shortcuts for file na…

Continue Reading →

Smarter heredoc syntax in vim

I have lately run into a problem with my editor of choice, vim (well, actually, it's neovim), and the syntax highlighting in Ruby files. Particularly, I ran into problems with the Heredoc syntax. What is heredoc? Long story short, it's a feature present i…

Continue Reading →

Perfecting a CSS 3D Animation

With recent advances in front end technologies, front end developers have been going crazy, pushing CSS to its limits and doing all sorts of beautiful animations. Seriously, there are some crazy things out there.

I recently did this 3D animated atom in which I had to employ a couple of weird techniques which I'll try to explain here.

Continue Reading →

Easily Merging Pull Requests

I try to automate all the annoying repetitive things I can. And not long ago, merging Pull Request was certainly on top of my list. Whether it is for my own personal projects or within Group Buddies, the process is mostly the same all the time: Update my…

Continue Reading →