Some background #
I created my original profile page using the Jekyll static site generator with the Minimal Mistakes theme. The idea for this site was to showcase my professional background in a more personalized way compared to LinkedIn. Something that pops in Google search and that people can take a look at it. It served its purpose, but I realized that I needed something more modern.
Looking for alternatives #
The inspiration to transform my personal website came to me when I stumbled upon Lei Mao’s website. What brought me to his website is this excellent post about camera intrinsics and extrinsics. It’s essential to understand these concept when working with computer vision, something that I did at e.solutions GmbH. Anyway, back to the website itself… It’s generated using Hexo with the Icarus theme and I wanted to use the same approach to transform my website. However, I found that the documentation was lacking and some parameters didn’t work as expected. For example, I was trying to keep the left sidebar from moving with the rest of the page, but setting this option to “false” didn’t do anything. Trying to fiddle with it more and still not being able to achieve what I needed forced me to look for another alternative.
Hugo and Blowfish #
Hugo is a generator developed in Go; it has a lot of themes, but one that caught my eye in particular is Blowfish. I liked how clean and polished it looked. It also comes with some pretty neat animated SVG backgrounds. The documentation provides clear explanations on how to get started, the various parameters you can adjsut for the posts page, for individual posts, and so on.
Blowfish also points to a number of sample pages you can get inspiration from and it definitely helps with the learning curve. I also like that the creator of the theme, Nuno Coração, who has done an awesome job, made his website using Hugo and Blowfish.
Nitty gritty details #
Transforming this website was also an opportunity for me to experiment with devcontainers. An excellent tutorial made by a former colleague of mine, Michael Breitung, was a great starting point.
But why devcontainers? You could argue I could have just installed Hugo on my system and call it a day. But since I was working in Windows, my dev environment was WSL and that complicates things. You see, the developers of Hugo recommend to install it with Homebrew. That works flawlessly on Mac and pretty straightforward on Linux (yes, Homebrew works on Linux, it’s called Linuxbrew), but very cumbersome in WSL, or just was so for me. Enter devcontainers… I created a Docker image based on Ubuntu that first installs Linuxbrew and then installs Hugo. From within this container everything worked like a charm. Besides the container to running Hugo from, I also used a minimal container that ran the Apache web server and served the page that Hugo built. Although Hugo has a built-in server, using an external web server is better for testing and better workflow for web development in general.
The final step was uploading the built website into the Github repo.