The age of average — Alex Murrell

People just want to have the same stuff.

RemNote — Great Note-Taking App Nobody is Talking About

I have been using Evernote for quite some years now as my go-to application for notes, bookmarks, sketches, etc. Indeed, it is not a bad choice: clients for all platforms you can imagine, synchronization between devices, good enough editor with formatting, typical hierarchical notes organization into notebooks and sub-notebooks, tags, sharing options, etc. I even had a paid version in order to have synchronization on more than two devices. And still, I have never felt that I have been using all its potential.

Eventually, I realized that my notes were lying “dead“ there. Like a pile of useless crap. Basically, once something got into Evernote, I just forgot about it. And, probably, never open this note again, except for some edge cases. These notes were not helping me.

Pastel Interfaces

I prefer light color themes in application interfaces. Never understood this craze about dark interfaces. As I spend a lot of time in a code editor, I believe light colors are easier for my eyes. But, not the point.

Recently I noticed that in some applications – Firefox, IntelliJ IDEA, for example, – I switched to new color themes that looks similar to each other. Here is the Calm Pastel 4 theme for Firefox:

Calm Pastel 4
Calm Pastel 4

GPS Art

I bet everybody knows this feeling when you get an interesting idea in your head, and you think – that is it! I need to do it! You start to dig into, but the first Google request shows that somebody has already implemented it. Bummer. I had one of those ideas the other day.

Since around a year or a bit more, I am into running. For tracking my running time and routes I am using an application, of course. It is nice to look at some statistics. After one of the runs, I looked at the route, and it reminded me of some figure or a drawing. And then a thought came to me – what if we draw something on a map while running using a GPS tracker?! Just imagine: a whole community running and sharing their routes!

On Being a Backbone Software Developer

Pilots performing aerobatics maneuvers at air shows are exceptional professionals with incredible skills. I witnessed with my own eyes the Cobra maneuver at one of the performances in Moscow. It is indeed an incredible sight. Piloting at its best.

At the same time, a thought came to me: How often do pilots use these aerobatics maneuvers in real conditions? I doubt these skills are required during another planned flight. And my next thought was: Despite the skills, these pilots are not the backbone of a regular army. Regular pilots — work horses — serve as a basis for any unit. They do the job without frills. Perhaps, they are not that good at air shows, but it doesn’t make them less important.

Welcome to March 32nd

My wife and I both have watches with the date window - the one that shows the day of the month. At the end of March, nearly midnight, my watch’s date window switched to number “1”, which stands for April 1st. Though my wife’s watch started to show number “32” instead. I was curious why, and found out that it is because of so called outsize date mechanism.

The standard date mechanism is made of a single ring with numbers from 1 to 31 printed on it. The ring gradually rotates, and eventually switches to another number. My watch has this mechanism. The “problem” is that this way the window size, and thus the size of a number inside, is small, because the ring has to fit into the frame.

Covariance and Contravariance in Programming

Whenever I hear “covariant return type”, I have to pause and engage my System 2 thoroughly in order to understand what I have just heard. And even then, I cannot bet I will answer properly what it means. So this serves as a memo for me of the concept of variance in programming.

The notion of variance is related to the topic of subtyping in programming language theory. It deals with rules of what is allowed or not with regards to function arguments and return types.

Variance comes in four forms:

  • invariance
  • covariance
  • contravariance
  • bivariance (will skip that)

Books I Read in 2019

2019 is the first year I decided to track books I have read on Goodreads. Here is the list. Though, it might be not complete, because I got this idea only in December and struggled to recall all the books.

Quite clear that fiction prevails. Definitely will spend more time reading more useful books this year.

Java Geospatial In-memory Index

One of my recent tasks included searching for objects within some radius based on their geo coordinates. For various reasons — not relevant to this topic — I wanted to make this work completely in memory. That’s why solutions like MySQL Spatial Data Types, PostGIS or Elasticsearch Geo Queries were not considered. The project is in Java. I started to look for possible options, and, though, I found a few, they all lacked an easy to follow documentation (if at all) and examples.

So I decided to make a short description of some Java in-memory geospatial indices I’ve discovered during my research with code examples and benchmarks done with jmh.

Enabling Trace Logging for Elasticsearch REST Client with Logback

Recently I had some issues with Elasticsearch - all requests were failing with “bad request” error. In order to understand what was wrong with these requests, I, natually, decided to enable debug/trace logging of for ES REST Client, but couldn’t find out how. Partially, because the official documentation on this topic could have been more informative, to be honest. But mainly, because my project uses Logback and the REST Client package uses Apache Commons Logging.

This article is a short summary of how I’ve eventually managed to enable tracing with Logback. The patient under inspection is Elasticsearch 6.3 with its Java Low Level REST Client.