/images/yoo_jae_suk.png

Playing with Kafka

During the COVID-19 shutdown, one way to “pass time” is to learn and play with new things.

I made a small project, heart-rate-calculator, whose goal is to take a file containing heartbeat information in input, compute and write the heart rates in another file.

That was quite a nice project, but I was wondering if I want to go further, what the project would look like? Let’s say, I want to have a whole SAAS solution, production-ready, to read a stream of data from smart-watches that measure heartbeats, then compute their heart rates and display a graph to the user. Of course, if that’s just that, it will be too simple, so what about having the challenge of dealing with massive amount of data. Mmh, a bit more tricky.

This is a good opportunity to play with Kafka and Kafka Streams! In this blog post, I will show how to build a resilient system to compute and generate heart rates from heartbeat data.

If you are in hurry, you can check the source code here: https://github.com/l-lin/poc-kafka

Sed

SED is a powerful stream editor for filtering and transforming text. You can perform impressive and efficient operations with such tool.

In this post, we will discover the wonders of SED.

Debugging With Vim Go

Although learning VIM can be quite painful, I learned it and now I love it so much I can’t write or code without it. Unfortunately, VIM is not super intuitive and is not as user friendly as modern IDEs. Some functionalities are not easy to use and / or easy to find. For example, debugging programs using VIM is not as trivial as clicking on a button like most IDEs.

In this post, I will show some basic commands to use to debug a Go program with vim-go.

Change in bulk using sed

sed is a powerful terminal tool to perform basic text transformations on an input stream (file or input from a pipeline).

You run the command in “dry-run” to preview the changes the command will perform. But it’s quite difficult to follow the changes if you are running the command recursively in a folder.

In this post, we will what we can use to run sed without worrying and with the ability to rollback in case something went wrong.

Nginx fallback

When developing multiple services that depends on other service, it’s comfortable to have a dev environment. I usually have a docker-compose file that mount a local environment. However, I do not want to mount the whole ecosystem locally, just the services I’m currently developing.

By using Nginx, it’s possible to configure a fallback in case the local service is not up.

Ubuntu custom desktop shortcuts

With Ubuntu, you can create your own desktop shortcuts that will be accessible directly from the launcher.

You can do it by using a GUI, or you can do it using directly a terminal, which is the what we will be covering here.