Mastodon

Lessons Learned and News in December 2022

This is what I learned in December 2022:

I learned a lot about Germany’s and Europe’s energy production, using the Electricity Maps. This awesome website and app displays the origin of countries’ energy production so that you can learn about how many CO2-heavy plants are used. I was also quite happy to understand that Germany is actually not as bad in terms of green energy as I thought. There’s still a lot to do, though!

Electricity Maps

Using the awesome Docker images provided by the Linux-Server project, I added the MySQL Workbench in the Docker Compose file of one of my major projects. With that, the team can build and run the entire stack of the application with just one “docker compose up”, including the Workbench for debugging the database. This is only for local development, though, and will not be used in production. Thanks a ton for your awesome work, Linux-Server!

version: '3.9'

services:
  db:
    image: mysql:5.7
    command: --max_allowed_packet=256M
    ports:
      - '3306:3306'
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_ROOT_PASSWORD: password
      MYSQL_USER: steven
      MYSQL_PASSWORD: stevens_password
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      timeout: 20s
      retries: 10
  backend:
    image: stevens-backend-service
    build:
      dockerfile: stevens.backend.Dockerfile
    environment:
      SPRING_PROFILES_ACTIVE: docker
    ports:
      - "8080:8080"
    depends_on:
      db:
        condition: service_healthy
  frontend:
    image: stevens-frontend
    build:
      context: .
      dockerfile: stevens.frontend.Dockerfile
    ports:
      - "80:80"
  mysql-workbench:
    image: lscr.io/linuxserver/mysql-workbench:latest
    container_name: mysql-workbench
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    volumes:
      - /path/to/config:/config
    ports:
      - 3000:3000
    cap_add:
      - IPC_LOCK
    restart: unless-stopped

Optimizing the Java backend of one of my major projects, I unified the usage of the NotNull- and Column(nullable = false) annotations. There is actually a quite interesting difference between them, as you can read here.

Books I read:

Using the O’Reilly learning platform, I listened to the audio books The Software Architect Elevator: Transforming Enterprises with Technology and Business Architecture and The Art of Leadership: Small Things, Done Well. Both books hold interesting thoughts, however, they barely apply to German development enterprises and to my working environment in particular. I don’t need to fight rigid corporate structures or find ways to cleverly engineer meetings with my bosses. Also, many tips in the books are for managers and not engineers. Because I don’t want to switch into the management line, these are not that interesting for me.

Also using O’Reilly, I listened to “Advice for Working Dads”. The main take-away for me is that I’m living in a country that really appreciates working dads back granting for example paid parental leave and also that I’m working at a company where caring for your offspring is not seen as a weakness or career downer. Most of the tips in the book were obvious and already implemented for me.

This is what I’m working on right now / planning to do in the near future / other stuff:

As planned, I bought a licence for Obsidian. Because I’m also using the application for projects, I purchased a commercial licence for $50 a year. Obsidian is my go-to solution for nearly everything related to knowledge management, including note-taking in meetings, writing the first draft of this article, or as an inbox. I even moved my whole calendar into the daily notes of Obsidian. The desktop app also supports the most important shortcuts so that I can create, move, access and edit notes easily and fast. I think I’m going to prepare an article about the tool and how I use it.

Speaking of nice tools to have as a developer: I presented my new talk “Using ZSA Moonlander as a Developer - An Introduction to Mechanical Keyboards” at HackTalk. You can download the (German) slides here. My Moonlander is by far the best input system to a computer I know. It allows me to write fast and ergonomically and supports efficiency with being totally scriptable, meaning you can add shortcuts and macros as you like. Speaking about this amazing tool was a lot of fun and the next talks about the topics are already planned.

The HackTalk got a major overhaul which I’m going to write about in a separate article. In the last Lessons Learned article, I wrote about using Mastodon. After replacing my private Twitter account with Mastodon (@stevenschwenke@digitalcourage.social), I also created an account for the HackTalk event series, @hacktalk@digitalcourage.social.

(Photo: adrian825, http://www.istockphoto.com/photo/monthly-management-reports-36658768)