Lessons Learned in November 2018

This is what I learned in November 2018:

  1. A coworker showed me GIT Graph JS, .a library with which you can create beautiful graphical representations of Git graphs.
  2. I wrote a book review for “Java by Comparison”. By writing this review, I was forced to re-think about the contents of the book and give structure to my thoughts. I think I will write more book reviews. :)
  3. From a coworker, I learned how to add attributes to data transfer objects in IntelliJ IDEA even faster. In the past, I first added the new attribute at the top of the class. Then, I navigated to where I want to add the corresponding getter and setter and pressed Alt + Insert to open the Generate menu. With three arrow-down’s, I chose Getter and Setter and pressed Enter. That makes six keystrokes plus navigation. It’s important to mention that IDEA generates those methods at the position the cursor is. So if you want your getters and setters neatly under your attributes, you have to keep an eye on where your cursor is. My new approach, thanks to my colleague, is much simpler: After adding the attribute, it becomes grey after a second because it’s not used anywhere. With Alt + Enter, only one arrow-down and another Enter, I can use the quickfix menu to achieve the same effect with only four keystrokes - and without the navigation! The quickfix always inserts getters and setters where they belong. That’s much faster than my approach.
  4. From another coworker, I learned the “not not operator” ( !! ) in JavaScript which always creates a boolean expression instead of undefined.
  5. A while ago, I found, a website provided by Tim Bourguignon. You may know Tim as the host of the great podcast “Developer’s Journey”, in which he also interviewed me. is basically a database for call-for-papers for IT-conferences and can be used by speakers to never miss a deadline for a cfp ever again. Thanks for this great site, Tim!
  6. In researching what I heard in a talk given by a colleague, I found this great article about GitOps. Basically, GitOps is a state of mind of a software engineering team that configures every stage completely via Git in a declarative manner, for example with Kubernetes. Although Git as the “only source of truth” describes what should be deployed, it’s not impossible to deploy something else. For these cases, tools like Chef, Puppet and Ansible are used to notify developers via diff alerts. Alternatively, immutable containers can be deployed. Tools like these and others has helped the team to recover from a complete system wipeout in 2016 in just 45 minutes.

(Photo: adrian825,