The reasons of why you shouldn’t buy a MacBook Pro are well known.
They are overpriced, with RAM and SSD soldered to the motherboard and thus irreplaceable. The keyboards were a meme on their own for quite some time.
Nevertheless, it’s been more than 3 years since I’ve bought my MacBook Pro, and I’m still happy with it.
So why a Linux user has bought an overpriced and overhyped laptop from Apple?
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.
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?
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.
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.
For a very long time, I’ve been using just
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.
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.
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 ?