sebastiandaschner news


tuesday, july 02, 2019

Welcome back to my newsletter — after a longer break! The last weeks were pretty packed again with conferences and meetups, it’s that time of the year. I was able to visit Mexico, CERN, Russia, Japan, Barcelona, Bulgaria, Latvia, Rome, and the Dominican Republic. Although we usually travel quite a bit, these last weeks were particularly full :-) I’m very grateful that I have the change to see so many interesting people and interesting places all around the world. Shout-out to all conference organizers, colleagues, and Java community friends!

One thing that is always appealing to me, regardless where I travel to, is language — not the programming ones, this time :-) It’s amazing to see how much speaking a foreign language enables you to connect to people; English mostly, of course, but also others. I delivered two presentations in Spanish in Mexico — really enjoyed that, btw — and it’s also a very nice personal challenge and huge opportunity to learn. I’m also not a native English speaker, what you can hear if you watch my videos :-) however, it is pretty incredible how much of an enabler it is to speak English.

In that regard, I was especially happy to see a huge improvement over the last four years that Steve Chin and myself started the Java Community outreach tours in Japan. We could visit quite some Java User Groups again and held another issue of the JOnsen unconference. However, especially this year, there was so much more international engagement from all Japanese community members, especially when it comes to speaking in English. I loved to see that happening, knowing how much of both a barrier and an enabler language can be. One of the original motivations from Steve and myself was to bring the amazingly active Japanese Java community to a wider audience. Here’s to all my friends from Japan! :-)

Right now, I’m in the city of Bogotá, Colombia, preparing for JConf Colombia. Looking forward to this conference and also Ecuador and Peru afterwards.

 

What’s new

 

Video course on effective keyboard usage

When I watch developers in projects, I usually see a lot of room for improvement in their keyboard usage. Most developers would agree that you’re more productive for the majority of development tasks, when you’re typing instead of using a mouse or touch screen.

I’ve created a free video course on the topic of how to use the keyboard more effectively as a software developer. In this new video course, I’ll show some further tips and tricks and aim to give some inspiration about what you can do as a developer to be more productive using your keyboard. Some of the tools and technology I’m using is surely opinionated, however, this course aims to demonstrate the concepts and ideas rather than just single, fixed implementations.

You’re a developer, so use your keyboard!

 

Slack keyboard shortcuts

If you want or have to use Slack as part of daily communication I encourage you to have a look at the available keyboard shortcuts. In general, if you had a look at my material on developer productivity, you noticed that I encourage extensive keyboard usage, however, I myself waited for too long before I had a proper look at these shortcuts.

I think the most helpful ones to remember are the following:

  • Ctrl + K: Switch to messages, files & channels

  • Ctrl + Shift + K: Switch to direct messages

  • Alt + ↑ / ↓ (Up / Down): Go to previous / next channel or message

  • Alt + Shift + ↑ / ↓ (Up / Down): Go to previous / next unread channel or message

  • ↑ (Up) while in empty message text field: Edit your last message

  • Ctrl + /: Open the keyboard shortcut help

  • :: Start typing emojis

Tip: If you’re using some keyboard-capturing browser plugin you might need to exclude the slack.com domain.

 

Escape JSON property names in jq

I use the command line a lot and jq is a helpful tool for dealing with JSON data. You can access JSON object properties and array elements by concatenating the property names with dots and square brackets.

Just because I was searching for that myself multiple times in the past, here’s how to access and escape “non-trivial” field names in different ways:

$> cat ~/.docker/config.json

{
	"auths": {
		"https://index.docker.io/v1/": {
			"auth": "<base64-encoded>"
		},
    [...]
	}
}

You can access the encoded Docker auth authentication as follows, by using square brackets and quotes:

$> cat .docker/config.json | jq .
# colored, formatted output
{
	"auths": {
		"https://index.docker.io/v1/": {
			"auth": "<base64-encoded>"
		},
    [...]
	}
}

$> cat .docker/config.json | jq '.auths["https://index.docker.io/v1/"].auth'
"<base64-encoded>"

$> cat .docker/config.json | jq -r '.auths["https://index.docker.io/v1/"].auth'
<base64-encoded>

 

Thanks a lot for reading and see you next time!

 

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