sebastiandaschner news

friday, march 16, 2018

Welcome to the 23rd issue of my newsletter.

Last week I traveled to Novosibirsk, Russia to speak at the JBreak conference about the topic of effective enterprise testing — how it’s possible to create end-to-end tests with manageable effort. The conference and the whole location was very interesting and I’m glad that I made this trip. Novosibirsk is a extremely remote place in Siberia, quite cold with -20°C but at the same time the dry air and the sun made the weather surprisingly enjoyable. We went on a very cool speaker trip that included driving snowmobile through the Siberian landscape, Russian sauna and ice baths ;-)

After Novosibirsk, I went all the way back to New York for Oracle Code; at least I tried to. Due to a snowstorm building up there were a lot of flight cancellations last week — mine was canceled as well. After a travel odyssey via Lisbon, another flight cancellation and further delays I finally made it to New York — but sadly just too late for the conference. That was the first conference presentation I’ve ever missed; however, at least I was able to see New York again for a few hours.

This week, the famous JavaLand in the Phantasialand theme park in Germany took place again. This time it started with an unconference day, where many of the speakers and JUG leaders could discuss important topics on the future of Java, such as Jakarta EE, JavaFX, or the new JDK release model. It was exciting to see the enthusiasm for the Java platform! On the conference, I gave a presentation on 12-factor, cloud native Java EE. And I was very happy that we could do a raffle and give away 3 signed copies of my book ‘Architecting Modern Java EE Applications’.

Now, this weekend will be more relaxed again, after 7 flights in 2 weeks. Next week I’m happy to hold client workshops about cloud native technology. And I’ll speak on Voxxed Days Bucharest, about the important topic (I think) of developer productivity.


What’s new


Jakarta EE Logo Submission

The Eclipse Foundation is currently looking for a new logo for Jakarta EE, the successor of Java EE. Proposals can be submitted and viewed in the Eclipse Wiki. It was announced on the mailing list that the winning logo will still receive a small improvement round to ease out the typography and alike :-)


Git commit fixup and autosquash

Git commit fixup is a helpful commit feature that I just recently learned about.

If you discover that you want to change a single commit in your Git history, you would need to manually commit based on the commit you’re about to change and perform a git rebase. Fixup commits produce commits that fix a specific commit in history by appending a commit with message fixup!. An interactive rebase with --autosquash option will then merge the original commit and the fixup into a new commit and rebase the subsequent commits.

See the following history as an example:

3320dec (HEAD) commit 4
03c9685 commit 3
041c401 commit 2
981fffd commit 1
22f759b (tag: base) initial commit

We can modify changes introduced in 981fffd commit 1 and add them as a fixup commit via git commit -a --fixup 981fffd:

c24491b (HEAD) fixup! commit 1
3320dec commit 4
03c9685 commit 3
041c401 commit 2
981fffd commit 1
22f759b (tag: base) initial commit

In order to clean-up the history we interactively rebase our changes with git rebase --autosquash --interactive base. This will produce a clean history again:

caeb1d8 (HEAD) commit 4
2f6d4da commit 3
8207cf2 commit 2
551ef47 commit 1
22f759b (tag: base) initial commit

The commit hashes after 22f759b now have been changed — they’re based on different commits.

To avoid breaking the history of colleagues you should only change the branch’s history, e.g. via rebase, if the commits haven’t been pushed yet, or if you’re working on a dedicated remote branch.


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.