Inbox Zero with Gmail

Too many times I’ve heard someone saying “Don’t send me any emails, I won’t read them anyway, my mailbox is a mess”.

That’s just sad. But it doesn’t have to be like this.

Right now, in my Gmail mailbox, there are zero messages. It’s empty. It’s not an anomaly, it’s usually like that because of a technique called Inbox Zero.

My journey through JVM languages

Java is not just a language. The real reason why it’s still so popular today is the mature and performant platform. And because the programs are compiled to the bytecode, the language’s deficiencies could be made up for by … creating other JVM languages.

To be honest, throughout my career, I’ve used more Groovy, Scala, or Kotlin than pure Java itself!

So how do those languages look like and how do they compare with each other?

Sorting by enum values in MongoDB (and Java Driver)

You could think that sorting by an enum value is a routine operation in MongoDB, but if we are interested in some custom order, suddenly it’s not so trivial anymore. In SQL databases, the information about how enum values compare to each other is stored in the schema. Since there are no schemas in MongoDB, we have to find other solutions.

What have I learned from speaking at 4Developers 2020 conference?

At this year’s edition of the 4Developers conference I gave a talk titled “Productivity for Ordinary Developers”. It wasn’t the first time I was speaking at an event, however, it was rich in new experiences for me anyway. Here are some insights I hope you’ll find interesting.

Why should you use Ruby for your next command-line tool?

One day, I needed to write a command-line tool. It was more complicated than copying a couple of shell commands to a file with .sh extension, but at the same time it was too simple to make a full Java or Scala application out of it.

Even though I work mostly with Scala and Typescript, I’ve chosen to do it in Ruby because it’s good for that very purpose – to quickly get your stuff done.

Here is why:

Obvious and not-so-obvious Bash/Zsh terminal shortcuts

For a very long time, I’ve been using just tab, ctrl-C, ctrl-D and ctrl-R shortcuts. However, there are more useful gems out there. In this post, I’m going to show you Bash/Zsh terminal shortcuts that I find useful.

Yet another try to explain RxJS operators – switchMap, mergeMap, concatMap and exhaustMap

I don’t know if it’s just me, but when I started to learn Angular and RxJS, it was hard for me to figure out which operator to use to do a certain thing. The switchMap, mergeMap, exhaustMap and concatMap all seem to be similar and the documentation uses very generic examples – transforming ‘1’ into ‘1A’ and it’s hard to translate it to the real-life use cases.

This is my try to explain those 4 operators, which seem to do the same action, but they have some differences and they should be used in different contexts.

The day that technology disappeared

The first thing I usually do at the airport is to turn off the offline mode on my Android smartphone and connect to the airport’s Wi-Fi. This time, however, something wasn’t right.

Things I have learned about frame security while making a custom Hacker News client

Due to security reasons, we can restrict how our page is rendered in frames. It’s worth knowing how this mechanism works not only to defend our users from threats, but also not to be surprised when we want to create something … unusual.

Why it is sometimes hard to connect to the public Wi-Fi network and what can we do about it?

Sometimes you connect to the Wi-Fi, but no website wants to load. You try to enter different website addresses, but all you get in the result is a blank page. It seems like it’s stuck in some void … and then for some website it miraculously did work and you were redirected to a page with some terms to accept, one click and the Internet is ours.

But why … ? What just happened ?