I got curious about working in terminal text editors. I knew how to work with emacs and Vim, but both were just simple text editors I used to edit something on the remote server.

So, I asked myself how to configure Vim to work as an IDE in the terminal, not the text editor I used before. It must have autocomplete, syntax highlighting, error reporting, etc… And I found out how to do that.

Read Full Article

Recently, I’ve faced a problem with slow logs collection and their delivery to our logs aggregator — Graylog. So, I looked into fluentd documentation and digging up its sources to understand, how fluentd collects logs and how it delivers them.

It’s not an article in a regular sense; it’s more of a small tip…

Read Full Article

Turns out that Node.js cannot receive signals and handle them appropriately (if it runs as PID 1). By signals, I mean kernel signals like SIGTERM, SIGINT, etc.

The following code wouldn’t work at all if you run Node.js as PID 1:

process.on('SIGTERM', function onSigterm() {
  // do the cleaning job, but it wouldn't

As a result, you will get a zombie process that will be terminated forcefully via SIGKILL signal, meaning that your “clean up” code will not be called at all.

So what, you might say. I’ll describe a real case.

Read Full Article

How often do you face the issue with configuring your development environment? How often do you configure your terminal? Did you install Command Line Tools? What about Homebrew, don’t you forget to install it? Maybe you forgot about some cool plugin for your shell and can’t find it?

This is the problem I am usually faced with clean MacOS install, so maybe you too.

Some error in the terminal, oh, I forgot to install X…
How did that work before? Oh, I had plugin Y, but I don’t remember its name…
Who enjoys remembering all the fishy commands? I don’t…
Burn out my own eyes with a default theme and colors? No, thanks…
Navigating through a plugin repository of your shell to find out all plugins you had
again? Haha, nope…

In case you just want to check the script, here is the link –

Further content is the history, my motives, while creating the script.

Read Full Article