Developer Blog

Java and underscores in host names

Some time ago I came across a very strange issue – tests that worked at one host started failing an another host with NullPointerException. Hosts were very identical, and after debugging it appeared that Java handles hosts with non-standard characters in host names in a special way. Wikipedia article https://en.wikipedia.org/wiki/Hostname says that underscore is not […]

Read more
More on time and time-zones

In the previous blog entry ‘Time-out-of-joint’ I wrote about various problems that can happen when nuances in time handling are not considered. Somebody may think: “Well, this all happens so rarely – millennium, leap seconds. Software I develop doesn’t move anywhere – it sits in a data centre I even don’t know where, let dev-ops […]

Read more
“Time out of joint”

Timing issues are not studied in universities. While you study computer science, you somehow think about time in terms of comparing execution time of different algorithms, but time itself doesn’t bother you too much. These problems strike you unexpectedly when you move from development of small quick programs to long running processes. If you write […]

Read more
Automating Improvements to Continuous Integration

Building on the humongous effort so far to improve our development pipeline, as described by Gordon in one of the previous posts, we’ve just been introducing some more tweaks to further improve our Continuous Integration. Because our jobs evolved beyond what a single pipeline or matrix could handle, one of the changes introduced earlier was […]

Read more
Deadlocks are fun

Deadlocks happen when two or more threads are blocked forever because each has acquired a resource and waits for another resource which is already taken by another thread. They are usually nasty and unpredictable, but it’s possible to make them fun. Try to create a guaranteed deadlock using only standard Java libraries (Maven/Gradle import of […]

Read more
A sorting algorithm you may never have heard of

Most sorting algorithms, or at least their names, are widely known – quicksort, mergesort, etc. Some companies even like to discuss their nuances at their job interviews. However, there’s a sorting algorithm that most developers haven’t heard of, meet sleepsort. Unlike many other sorting algorithms it’s very straightforward: given a list of numbers, it waits […]

Read more