Tarin Gamberini

A software engineer and a passionate java programmer

Functional Programming in Java book review

Last January I was selected from Manning as one of the technical reviewers of the book “Functional Programming in Java” by Pierre-Yves Saumont. In these days the book has been released to the public therefore I can publish this post without violating the reviewer agreement.

The book teaches functional concepts by lots of examples and exercises which develop in the reader both a knowledge background and a natural instinct to functional programming paradigm.

Code Templates For Logging

When I want to log a message, a variable, or an exception I would like to write it quickly. Therefore I’ve created some templates which generate logging instruction based on slf4j.

Netbeans IDE

I have created the following code template:

1
private static final ${LOGGER_TYPE type="org.slf4j.Logger" default="Logger" editable=false} LOGGER = ${LOGGER_FACTORY type="org.slf4j.LoggerFactory" default="LoggerFactory" editable=false}.getLogger(${CLASS editable="false" currClassName}.class);

and I have associated it to the abbreviation log. Than at the cursor:

1
2
3
public class MyClass {
    |
    ...

I type log + TAB and NetBeans expands the text:

1
2
3
4
5
6
7
8
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

...

public class MyClass {
    private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
    ...

I have also defined the shortcuts:

  • logd + TAB
  • logw + TAB
  • logi + TAB
  • loge + TAB

defined as:

  • ${LOGGER_CONST default="LOGGER" editable=false}.debug("${logMessage}");
  • ${LOGGER_CONST default="LOGGER" editable=false}.warn("${logMessage}");
  • ${LOGGER_CONST default="LOGGER" editable=false}.info("${logMessage}");
  • ${LOGGER_CONST default="LOGGER" editable=false}.error("${logMessage}", ex);

which generate:

1
2
3
4
LOGGER.debug("logMessage");
LOGGER.warn("logMessage");
LOGGER.info("logMessage");
LOGGER.error("logMessage", ex);

The first time I have used Vim at work

Some time has passed since I started learning Vim. I didn’t wanted to use it at work because I don’t think I’m as productive as I’m with the editor I usually use… till this morning.