The difficulty in learning a new Programming Language

April 10 - 2022

Programming Languages come in all shapes and sizes. When attempting to learn a new Programming Language there are many hurdles one has to overcome, some easy and some very challenging.

Here I will explore what some of these hurdles are.

Use automated code formatting

April 19 - 2021

Tabs or spaces? Newlines before braces? End every line with a semicolon, even if unneeded? Code formatting is one of those topics where discussions are endless and consensus is pretty much impossible. Everybody prefers things a certain way and sometimes it can be tough to find a middle ground where everyone is happy.

In this post I will argue in favor of using tools to enforce code formatting in order to ensure it stays consistent.

Short Thoughts: The existential horror of Progress Bars

April 5 - 2021
Short Thoughts UI

Progress bars are UI elements that have been in use for decades. They are so commonplace that not only we don’t question them, but we also expect them to be there. However, are they actually any good? Do we need them?

Python Decorators

February 7 - 2021

Originally described in the “Design Patterns: Elements of Reusable Object-Oriented Software” book, decorators are a powerful design pattern that allows us to extend or augment an object’s functionality. In this post I will show with some practical examples how this can be achieved in Python via the @decorator syntax.

Short Thoughts: keep your tests simple

August 8 - 2018
Short Thoughts Engineering

Writing good tests, whether they are unit, acceptance, integration etc, is hard. Few tests will run quickly but probably won’t cover much of the code, however, having high coverage doesn’t mean your tests are good either. The way tests are written also depends on what the software and it’s structure is. Notwithstanding, there’s one aspect that I believe always helps, simplicity.

Short Thoughts: Microsoft’s GitHub acquisition

June 10 - 2018
Thoughts Open Source

It has recently been announced that Microsoft will be acquiring Github got USD 7.5b. The news was received by some with dismay as Microsoft has historically been seen as a threat to Open Source (Linux is a cancer, anyone?), while it was praised by others who consider Microsoft has changed. What will the future hold for Github and Open Source?

Python Classes, namedtuples and __slots__

April 29 - 2018

Data types are needed in pretty much every program that needs to store and manipulate data. These types usually have little to no behavior and simply exist to keep track of information in a structured and orderly way. Recently, PEP 557 (Data Classes) was accepted, however, it won’t appear until Python 3.7.

In this Blog Post we will explore what options currently exist in Python 2.7 and 3.6 and how they differ from each other.

Text editors: which is the best?

March 24 - 2018
Engineering Tools

Text editors are probably the most basic tool of every software developer, without them we would not be able to do our jobs. It makes sense then to try and find out what the best text editor is, doesn’t it? Is it Vim? Is it Emacs? Is it another? It’s important to first look at what we want in a text editor before we are able to answer this.

GDQ - Playing games for fun and charity

December 26 - 2017
Video Games

In a nutshell, speedrunning is trying to finish a game as fast as possible. There’s different set of rules for each game (called categories), but it always boils down to how fast a game can be finished.

Video games mean different things for different people. For some they are their day-to-day source of entertainment or it’s their competitive nature that speaks to them, while for others it may be childhood nostalgia. Whatever reason that may be, GDQ, the seven day speedrunning marathon raises incredible amounts of money for charity each year, and it only keeps on growing.

Code smell and a lesson learned

September 5 - 2017

In an ideal world there’s always time and resources available to refactor code and to make sure it is as clean as possible. Even though it is well known that refactoring code helps with maintainability and thus reduces development costs in the long run, for various reasons refactoring does not always happen, or at least not until things start to fall apart.

In this post I will tell a little horror story that happened to me recently and that could have been avoided if we had stopped to refactor the code we were working on…

Amet - Flattening a Python dictionary as environment variables

April 20 - 2017
Python Amet Open Source

I recently had to build an ETL job in Python that was initially going to be deployed on AWS. Little did I know that a last minute change from AWS to Heroku would cause me to change how the job’s configuration was going to be read significantly.

Cross compiling Go applications

April 8 - 2017
meta Go

I often write blog posts on different computers. Sometimes I write on my Macbook (which is where I run a local Hugo server to test things out), other times I SSH into my Raspberry Pi and write there until I am on my Macbook again. While writing my Why I learned Python blog post I asked some friends for feedback, however, I did not want to push an unfinished post to Github Pages, so I decided to serve my Hugo blog from my Raspberry Pi. I soon realized that I would have to install Hugo from source which could mean trouble…

Why I learned Python

April 7 - 2017

About eleven years ago, after finishing my first semester in University I decided to learn how to program in Python. In this post I will talk about why I found Python interesting at the time as well as how it felt to me as someone with little programming knowledge.

Creating this Blog with Hugo

March 12 - 2017
meta Hugo

It’s sometimes a bit funny how trends come and go in tech. For a long time dynamic websites were seen as the way to go, no matter for what kind of content. Lately a lot of people have gone back to basics and (thankfully) decided to build their sites as a collection of static pages.

When I started this blog I decided I did not want to go through the hassle of maintaining a complex site and decided to use Hugo, a static site generator. In this post I will talk about my experience building my blog using Hugo.

Android Handlers, Loopers, Message Queues and communication between Threads

March 4 - 2017
Android Java Open Source

In Android applications, as well as in applications with a GUI in general, doing work in the background is essential as we do not want the UI to be blocked by long running tasks that may cause it to appear to be frozen. The Android Framework provides a simple but interesting mechanism for communicating with background threads via the use of the Message and Handler classes. In this post I will attempt to explain not only how to use them, but also how they relate to the Looper and the MessageQueue classes.

A simple Material Design ripple effect for any iOS view

February 13 - 2017
iOS ObjC Open Source

Some time ago I had to create a background color transition animation for an iOS app I was working on. This animation was pretty similar to the ripple effect Material Design buttons have. I thought it would be a fun idea to go back and revise what I had done, change the animation so that it looks like the Material Design ripple effect and create a UIView category with it.

This blog post shows an implementation of this animation that can be applied to any UIView.

Hello World!

January 15 - 2017

Hello and welcome to my personal blog!

I’ve been meaning to have a place to write and express my thoughts for a while now, so I figured I might as well start my own blog. My intention is to update this as often as I can with posts about topics such as Software Engineering, Programming or other interests of mine like Video Games.