Gabriel's Blog

Hi, I'm Gabriel, a guy in Ecuador interested in computers and programming. Most of my projects are open source and you can check them out on GitHub. Occasionally, I write stuff here.

Implementing MVI in Android

April 30, 2019

Android development should be easy. Most apps that I’ve worked in aren’t that complex, they usually boil down to just displaying some data from a remote server and then letting the user post new data to that server. Nevertheless, their codebases often ended up being ugly and convoluted. After all these years I think I have finally figured out how to avoid common pitfalls.

Read more →

Building a Blog Part 5: Continuous integration with CircleCI

January 22, 2019

In part 5 of Building a Blog I will talk about how I automate deployments of new blog posts using CircleCI. Every time I push to the master branch of my GitHub repository, a web hook is triggered and CircleCI checks out the latest code, runs a few tests, and finally deploys it. This makes it really easy for me to add new posts. However, the process isn’t that simple under the hood, and I want to explain in this post how it works.

Read more →

Building a Blog Part 4: Using Nginx as a reverse proxy and static file server

December 22, 2018

In part 4 of Building a Blog I will talk about Nginx and how it is configured to serve static files efficiently and forward API requests to my Scotty server. The goal is to have Nginx as a secure and performant entry point to my site.

Read more →

Building a Blog Part 3: Creating a Like button widget with Mithril and webpack

September 25, 2018

In part 3 of Building a Blog I will talk about the implementation of the like button at the bottom of every post in this website. The goal is to have an interactive widget that lets users see the number of likes for the post they are currently reading and optionally increment it by one unit. It is written with Mithril, a modern JavaScript framework for fast Single Page Applications.

Read more →

Building a Blog Part 2: Creating an HTTP API with Scotty and Beam

September 12, 2018

In part 2 of Building a Blog I will talk about how the small HTTP API used by this blog was implemented. Once again, because I like Haskell, I’ll use the Scotty web framework to listen to HTTP requests and run SQLite queries with the Beam library.

Read more →

Building a Blog Part 1: Generating a static site with Hakyll

September 7, 2018

In part 1 of Building a Blog I will talk about how the static pages served in this blog are generated. Writing HTML for every posts is too low level and cumbersome. I don’t need to rewrite the structure of the page for every post. It’s better to write the content in a more high level language like markdown and convert it to HTML using a predefined template. Programs that are able to do this are usually called static site generators AKA just what I need.

Read more →

Is this finally working? Oh, hello world!

September 3, 2018

I’ve been wanting to have my own blog for a while now, and only recently I finally had the time to sit down and work on it. I think knowing how to write and communicate effectively is a very valuable skill, specially for somebody working in tech. I’m by no means a good writer, but here I am.

Read more →