sebastiandaschner news


friday, march 02, 2018

Hello from cold (as in -10°C) Munich.

The last days where full of traveling for me and exciting Java content for all of us.

Last week, I presented at the Index and DevNexus conferences. The Index conference, held in San Francisco, was the first edition ever, with a focus on modern software development in general, not just Java.

DevNexus is a huge developer conference held in Atlanta, GA. I planned for a couple of times to attend it and now it finally happened. It was great to see all the enthusiasm for the Java platform, of both the speakers and attendees. The only issue with the sessions was that because of so many famous conference speakers being there, it was really hard to choose which session to attend — way too many collisions ;-)

I just returned to Munich from California and now off to the airport once again into another part of the world, to Novosibirsk, Russia. I’ll speak on the JBreak conference on March 4th. Not quite the same weather as in California right now, rather cold -20°C …​ ;-)

The topic I spoke about at Index and DevNexus was “containerized, cloud native Java EE”: showing whether and how it’s possible to develop modern Java EE application that run in modern cloud native environments. I used Docker, Kubernetes, and Istio to deploy and orchestrate Java EE microservices. The topic for JBreak will be how to create effective end-to-end software tests with manageable effort.

 

What’s new

 

Jakarta EE

The result of the voting for the new name for “Java EE.next” has been announced: Jakarta EE. I’m very happy for this outcome. I think the name fits well for a couple of reasons: It can be abbreviated to “JEE”, Jakarta has a long history in the Java platform, the name is not involved in any trademark issues nor does it have any “negative associations” :-) and finally Jakarta is the capital of Java, Indonesia, a beautiful island to visit, just saying.

The result also matches the impression I got from talking to many people; most of whom I talked with favored the name Jakarta EE. So, let’s make this happen and shape the future of Enterprise Java!

Everyone is invited to join the efforts in the Eclipse foundation. As a start, you can follow the mailing lists, or have a look at the discussion on the GitHub projects. Feedback of any kind is valuable and very welcome and I encourage any Enterprise developer to participate.

 

Continuous Delivery self-study course

I’m very happy about the positive launch of my video course on how to do the transition to Continuous Delivery, in the first weeks. The lucky winners of the signed copies of my book will be announced very soon :-)

You’re more than welcome to check out the course, and provide any feedback, no matter if you have enrolled it already or not.

 

Custom Git subcommands

Heavy users of Git often find themselves writing their own Git shortcuts or scripts which combine multiple Git commands for frequently used features. The possibilities to shortcut your way around Git include Git aliases, shell aliases, or custom scripts that reside in your $PATH.

For the latter, there is an interesting feature in the Git command line that I just recently discovered: Git automatically resolved subcommands from executables in the PATH that follow the naming convention git-<subcmd>. These subcommands can be executed with git <subcmd>.

For my own projects, I wrote a script git-update which does a commit on all files with default or custom message, rebase-pull, and push:

#!/bin/zsh
set -eu

message=${1:-updated}
branch=$(git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||')

pushd $(git rev-parse --show-toplevel || echo ".")
    git add --all .
    git commit -m "${message}" || true
    git pull --rebase origin ${branch} || true
    git push origin ${branch}
popd

The executable file git-update resides in my $PATH and can be called with $> git update [commit-message]. No other configuration was required.

 

Thanks a lot for reading and see you next time!

 

Did you like the content? You can subscribe to the newsletter for free:

All opinions are my own and do not reflect those of my employer or colleagues.