Hugo Martins

I like to build and break things. Currently, Site Reliability Engineer at Talkdesk, formerly Claranet. These days I write Python and Go, while looking for ways to optimize and automate infrastructure.

I try to use this page for sharing whatever I am interested in or learning. Here you can also know more about me, what projects I am working on or have a look at my past research.

You can get future updates via RSS.

Latest Essays

An Ode to Maintainers

This week I read an incredible article about maintainers.This article is mostly focused towards infrastructure maintenance. It completely adapts itself to the current reality of software development. The reality is that maintenance is not as shiny as innovation. But maintainers are, mostly, what keeps society, and code, working. If it weren’t for the software maintainers most of our software would already be broken, by now. This excerpt, from the article, beautifully, explains what I feel about this:

Bash and Floating-Point Arithmetic

This week I was working on HackerRank’s Arithmetic Operations. Turns out, to my surprise, that Bash does not support floating point operations. I had no idea. Off I went, in my searching. I searched through a lot of StackOverflow answers. The best one I found is this one - a summary of possible solutions. This answer is objective and straight to the point, offering enlightenment into a lot of possible solutions to go around this problem.

Automatic Deploys with Hugo, TravisCI & Github Pages

tl;dr I automated the deployment of this website with Travis CI, Github, Hugo and Github Pages. The website gets build from each push to master and, if the build is successful, deployed to Github Pages for website hosting. Introduction A few months ago I wrote an article describing how interesting it can be to automate the deploy workflows - Automate Simple Deploy Workflows - Cool!. The easeness of deploying automatically was appealing but it still required some manual work.

On Elevating Shell Scripts

Automatically obtaining superuser permissions always seemed like black magic. I have a vague idea of how it works and I am very aware of their potential interesting uses. I have always seen those magic installers doing their black magic behind a (not so) beautiful GUI and wondered “how the hell can they install things in places my user can’t seem to reach?”. Turns out that’s not that difficult and it can be achieved with relative transparency.

Managing Atom's Installed Packages with Ruby

I use the Atom editor a lot. In fact, be in Windows or Linux, it’s my standard text editor. I love it’s flexibility and the fact that it’s completely hackable. I can do whatever I want with it. It supports a whole range of programming languages. It has great support from community. With that being said, managing a Windows configuration and a Linux configuration, in separate devices, can be very confusing.

Time & Choice

Time is a valid asset. It’s the most valuable asset we have in our lives. It doesn’t scale. It’s impossible to scale time. We - as programmers, developers and tinkerers - have a multitude of interests that aren’t always compatible. This means reading and learning things at speeds that are not always advisable. This is way time seems to always slip away. If more time is available to us, we’ll spend it until the last second.

Trying to Understand Computation & Complexity

The theory of computation is a subject that has, since an early moment, caught my interest. I had a course during my Bachelor’s study called “Computational Theory” and I liked it a lot. I always liked to understand, with detail, how things work. How better to understand computers than to understand the roots behind how they work? In that interest, and since I never actually got around to doing so, I’m reading Introduction to the Theory of Computation by Michael Sipser.

Automate Simple Deploy Workflows - Cool!

I recently changed my blog from Jekyll to Hugo because it’s fast, has custom support theme, shares my name and I never got along with Jekyll, honestly. With changing my configuration I had to make some changes to the workflow I used with my blog and writing. With that in mind I created a new repository - website - which holds the actual source code that Hugo takes to build the website.

Generalism vs Speciality

Note: This is mostly a brain dump with no coherence whatsoever. For most of my life I’ve been a generalist. I’ve been a jack of all trades. I know enough about a lot of different subjects that can help me fix things but I don’t have deep, or even below, the surface knowledge on most things. There are some consequences to this: Impostor syndrome. It happens a lot to me.

November 2016 - Digest

This month I have decided to take a step back and understand what I have been doing. I might be doing this from now on or simply this month but I hope I carry this one. This is, I supposed, a really simple way of keeping myself in check and analysing what I have been doing constantly as well as keeping a record of things. This past month was an interesting month from the point of view of starting things but I haven’t been able to complete some of them.

View All 36 Essays