Posts

How Not to Measure Elapsed Time

Jonatan Ivanov

The rabbit hole goes infinitely deep if you want to do latency measurements, benchmarking, and performance testing/tuning/analysis. They are very hard to do right and it is very easy to mess them up. In this post, I would like to show you a very common mistake (that is just 0.000001‰ of the tip of the iceberg) and an extremely simple solution to fix it.

Confusing Java Strings

I do not think it means what you think it means

Jonatan Ivanov

In this article, I would like to show you a couple of confusing things in connection with Java Strings and give you a few suggestions to avoid issues with them. I also prepared a GitHub repo for you where you can find some code that you can use to try the examples out on your own: github.com/jonatan-ivanov/java-strings-demo.

The Most Common Concurrency Issues and How to Fix Them: Part 3

Jonatan Ivanov

In the first part of the series, I showed you a simple class which has three concurrency issues. In the second one, I explained the first issue: Race Condition. In this post, I would like to explain the rest of them. By the end of the series, you will understand their basic mechanism, you will be able to identify them and I will give you a couple of advice on how to fix them.

I wrote a few tests to demonstrate two of the issues, the third one is tough, please let me know if you have any idea how can it be tested. I’m also interested if you have any ideas for improvements for the existing tests because…
…well, keep reading and you will see. :)

The Most Common Concurrency Issues and How to Fix Them: Part 2

Jonatan Ivanov

In the first part of the series, I showed you a simple class which has three concurrency issues. In this post, I would like to explain the first issue. By the end of the series, you will understand their basic mechanism, you will be able to identify them and I will give you a couple of advice on how to fix them.

The Most Common Concurrency Issues and How to Fix Them: Part 1

Jonatan Ivanov

The goal of this example-driven series of articles is explaining, demonstrating, and testing (the fun part) the two most frequent (in my opinion) concurrency mistakes in Java (plus an interesting third one), also giving you a few suggestions to fix them.

By the end of the series, you will understand their basic mechanism, you will be able to identify them and I will give you a couple of advice on how to fix them.

Terminal Fun: Basic Utils Part 3

Jonatan Ivanov

This is the third post of a series where I want to give some tips and tricks for the Terminal/CLI.
You might want to check out the first and the second posts. As previously, buckle-up, put your helmet on, grab a … frying pan and have fun.

Terminal Fun: Basic Utils Part 2

Jonatan Ivanov

This is the second post of a series where I want to give some tips and tricks for the Terminal/CLI.
In the first post, I showed a few very handy tools like bat, exa, multitail, diff-so-fancy, delta, prettyping and htop/gtop/vtop.
This post is going to be a little longer so buckle-up, put your helmet on, grab a … frying pan and have fun.

Terminal Fun: Basic Utils

Jonatan Ivanov

This is the first post of a series where I want to give tips and trick for the Terminal/CLI, have fun:

  • bat and cat
  • exa and ls
  • multitail and tail
  • diff-so-fancy, delta and git diff
  • prettyping and ping
  • htop/gtop/vtop and top