Recent Posts

Fábio Miranda's Avatar'

Developing a WebApp using NextJS 13 & Material UI

This tutorial shows how to set up a project and build a home page skeleton using NextJS 13 and MUI components. Next.js enables the creation of full-stack Web applications by extending the latest React features. Some of the features explored in this article are: Route Groups to organize public and protected routes; Server-side rendering and Client-side hydration; Layout composition; and organiz...

This tutorial shows how to set up a project and build a home page skeleton using NextJS 13 and MUI components. Next.js enables the creation of full-stack Web applications by extending the latest React features. Some of the features explored in this article are: Route Groups to organize public an...

Fábio Miranda's Avatar'

Docker and Redis - a curious beginner's walkthrough

The main goal of this tutorial is to guide a newcomer to quickly set up a Redis Docker container and then get familiar with the basic Redis operations with scalar values and Hashes, building enough knowledge to build a simple object database. 1. Docker setup 1.1. Create a Dockerfile with the following content: FROM redis 1.2. Build the image % docker build -t redis-demo . Hint: You can us...

The main goal of this tutorial is to guide a newcomer to quickly set up a Redis Docker container and then get familiar with the basic Redis operations with scalar values and Hashes, building enough knowledge to build a simple object database. 1. Docker setup 1.1. Create a Dockerfile with the fo...

Fábio Miranda's Avatar'

Go Flags

Learning a new programming language is always exciting! Go is elegant and easy to learn. I simply executed the install staps and dove in the Hello World and the Modules Tutorial mentioned at the bottom of the page. The Go By Example is also being a rich resource. My initial interest in Go was motivated by finding a good WebSocket programming API and I learned the standard lib is powerful and e...

Learning a new programming language is always exciting! Go is elegant and easy to learn. I simply executed the install staps and dove in the Hello World and the Modules Tutorial mentioned at the bottom of the page. The Go By Example is also being a rich resource. My initial interest in Go was mo...

Fábio Miranda's Avatar'

Love, docker-compose!

The Part 2 of this series ended with two docker commands that start an app and a database container. Long and verbose, they aren’t practical to use regularly during the work. Worse: more commands are needed to be able to run database migrations, install new gem/yarn dependencies, debug code, and so on. After moving the complexity from the command line to the docker-compose.yml configuration fil...

The Part 2 of this series ended with two docker commands that start an app and a database container. Long and verbose, they aren’t practical to use regularly during the work. Worse: more commands are needed to be able to run database migrations, install new gem/yarn dependencies, debug code, and ...

Fábio Miranda's Avatar'

Rails-on-Docker

In Part 1 of this series of articles, I explained my basic setup to install Ruby on Rails and my preferred tools, and shared the source code on this repository. A collaborator who pulls the source code will have to set up a Ruby environment (possibly using Rbenv, RVM, among other alternatives) and start some services (Postgres, Sass compilation, Redis, etc). What if I could automate this initi...

In Part 1 of this series of articles, I explained my basic setup to install Ruby on Rails and my preferred tools, and shared the source code on this repository. A collaborator who pulls the source code will have to set up a Ruby environment (possibly using Rbenv, RVM, among other alternatives) an...