Book review – Clean Architecture by Robert Martin

Clean Architecture is a third book in Robert C. Martin’s Clean Code collection, first two being Clean Code and Clean Coder. I really like the whole series. To me, Robert Martin writes simply, clearly, with enough examples and without unnecessary complicated details. His books can be read through, as well as used for reference, but I would say that his are the books that are better to be read cover to cover, sequentially, and not just being referenced as parts. Indeed, they not at all huge and are logically constructed in such a way as to provide a completed story. Continue reading

Posted in Learning, Programming, Uncategorized | Tagged , | Leave a comment

Local type inference in Java 10, or If it quacks like a duck

Quite recently, Oracle adopted a new strategy of releasing a new language version every six months. The strategy assumes that only every 3rd version will have long-term support, or LTS. Quick notes about it:

  • Current version that has LTS is Java 8;
  • Java 9 is only supposed to have support until March 2018, so it is already OVER;
  • Java 10 is supported through September 2018;
  • Next version to have LTS is supposed to be Java 11, which is supposed to be released in September 2018 and will be supported at least through to September 2023.

Continue reading

Posted in IntelliJ, java, Uncategorized | Tagged , | Leave a comment

Lombok, AutoValue and Immutables, or How to write less and better code returns

In the previous post about Lombok library, I have described a library that helps to deal with boilerplate code in Java (and yes I know that these problems are already solved in Kotlin, but this is real life and we can’t just all sit and rewrite every existing project once a newer or a simpler language appears). But as many things in life, project Lombok has its alternatives. Let’s give them a chance as well.

Code samples for this article can be found here and here.

Continue reading

Posted in java, Programming | Tagged , , , | Leave a comment

Wait a minute mister Postman, or Postman environments

Postman is a tool that facilitates web application testing by sending requests and allowing you to inspect responses and whatever comes with them (response codes, headers, cookies etc). Yes I know that really (like, really) cool devs use curl or better yet, httpie (which is really cool, seriously, try it). But sometimes you just want to have a nice UI which you can actually show to a QA or a product manager and don’t pretend that you are that egg-headed guy doing some dark magic that’s spitting text into your console in response to you spitting out the commands that make no sense. Or you are just tired of trying to remember those commands and parameters yourself (but of course, a real dev would never acknowledge that, right?…).

This is how the cool kids do it (matrix gif)

This is how the cool kids supposedly do it.

Continue reading

Posted in Productivity, Programming | Tagged , | Leave a comment

How to write less and better code, or Project Lombok

I have long intended to write about Project Lombok, so much so that I am probably doing it when every self-respecting Java developer has already heard about it. Nevertheless, it is worth mentioning, if only to remind myself that one should not hesitate to try performance-enhancing tools and see if they fit, and Lombok is certainly enhancing performance of a Java-coder by allowing to simultaneously write less code and add to its quality, which is no small matter.

What is it that Java opponents usually say about its weaknesses?

Java is too verbose.
(c) Every Java opponent

Unfortunately, there’s a lot of truth in this statement.  Continue reading

Posted in IntelliJ, java, Libraries, Programming, Uncategorized | Tagged , , | 2 Comments

Out of sight, out of mind, or How to be productive when working remotely

We live in a world where technology seemingly lessens the need for actual office space. In IT industry especially, there seems to be less and less sense to actually come to work. At some point, telecommuting was all the rage, to the extent that a lot of big software companies offered unlimited remote work possibilities as one of the main perks. A few years back though this trend shifted a little bit. First Yahoo shut down its remote work back in 2013-2014, then this year, IBM did. Amazon planned to hire a lot of remote workers in 2017, but with the catch of those position being rather low-paid.


Image taken from Pixabay –

Continue reading

Posted in Productivity, Remote work, Success, Uncategorized | Tagged , , | 1 Comment

Mindshift, or move your… mind

I have recently completed a course on Coursera called Mindshift, which continues the series or courses started by Learning how to learn. The course was really an eye-opener in some ways for me. Some takeaways I would hardly know about from anywhere else:

  • There’s a mode your brain functions in, called diffuse thinking. It allows the brain to absorb the knowledge you have and to build and establish the neuron chains (please don’t quote me!), to make connections to other data that you already have. That is why it is very useful to switch off, after you have been concentrating on some hard problem. While you are doing something else and let your mind wander, it can analyze the information in the background in diffuse, unfocused mode and you might later arrive to the solution easier, as if it happened on its own.
  • When you feel emotional, it helps to put labels on your feelings. It helps your brain to switch to the more rational areas of the brain and tone down your emotions.
  • The best way to learn is by practicing something. No amount of listening or reading will have the same effect.
  • When you have to deal with procrastinations, common ways are to increase pleasantness of the task, probability of reward, and get rid of distractions.
  • Some features that you think are your drawbacks can also help you in your learning, life and work. For example, if you are a slow learner, you might have more time and will to go into detail and you might be more flexible, more willing to go off of the well-trodden path.

There was a lot more to that course – I encourage you to and look into it. There was, however, two lectures that were most interesting to me, almost in the end of the course. In them, Professor Barbara Oakley talked about how the videos for the lectures are made and what makes a great MOOC video. These were unexpectedly enlightening. I understood a lot of things about the course videos that I haven’t consiously noticed – for example, how and why animations are used, as in, why the Professor suddenly moves across the screen (or even turns upside down) in an animation! I think a lot of course-makers might benefit from these tips. And indeed they work, because I have listened to a lot of different MOOCs and I can safely say that the Mindshift videos were the most engaging, the least prone to make your mind wander.

Professor McGonagall would not like to see you distracted. – Image from giphy


All in all, I would highly recommend the course. I might even return to it and listen to the material once more when I have the chance – after all, repetition is also one of the best things you can do to really absorb the material!

Posted in Learning, MOOC | Tagged | Leave a comment