Kategorien
Fotos

Sommerabend am Meer

Beim letzten Sommerabend am Meer habe ich versucht, ein paar Fotos im Dunkeln zu machen. Hat ganz gut geklappt, aber so richtig zufrieden bin ich noch nicht.
Hier sind auf jeden Fall die Ergebnisse:

Cuxhaven
Sommerabend am Meer
Sommerabend am Meer
Sommerabend am Meer
Sommerabend am Meer
Sommerabend am Meer
Sommerabend am Meer

Kategorien
Allgemein

Fight, flight, make friends

In Folge 35 von Kevin Roses Podcast hat der Gast Chris Voss eine
Beschreibung der drei verschiedenen Archetypen von Menschen gegeben:
Fight, flight, make friends. Ich find mich da ganz gut in der Beschreibung von flight wieder.

We each got a default type, it’s fight, flight, make friends. […] the “make friends type” they’re relationship-born, that’s the only thing they care. the fight guy he just wants to give a good accounting of himself, he wants to make sure you know where he’s coming from. I’m a natural born fight guy, I’m direct and honest, because I want you to know where I’m coming from. the flight guy is a highly analytical dude, this is a dude who sees conflict as an utter waste of time. as default they seem distant, they seem aloof. they don’t see themself as distant and aloof and cold as they’re often read as being, but they’re data-driven and because that they play everything close to the verse and of course if you misread them they’re so analytical, they don’t care because they think […] you misread them.

Hier ist, was Google Translate daraus macht:

Wir haben jeweils einen Standardtyp: Kampf, Flucht, Freunde finden. […] die “Freundschaften schließen”, die aus einer Beziehung hervorgehen, das ist das Einzige, was sie interessiert. der kämpfer will sich nur gut ausweisen, er will sichergehen, dass du weißt, wo er herkommt. Ich bin ein gebürtiger Kämpfer, ich bin direkt und ehrlich, weil ich möchte, dass du weißt, wo ich herkomme. Der Flieger ist ein sehr analytischer Typ, ein Typ, der Konflikte als reine Zeitverschwendung ansieht. standardmäßig scheinen sie distanziert, sie scheinen distanziert. sie sehen sich nicht so distanziert und distanziert und kalt, wie sie oft gelesen werden, aber sie sind datengetrieben und weil sie alles nahe am Vers spielen und natürlich, wenn man sie falsch liest, sind sie so analytisch , es interessiert sie nicht, weil sie denken, […] dass Sie sie falsch verstanden haben.

Die Folge geht um Verhandlungstaktiken, woran ich eher nicht interessiert bin. Aber da die Podcasts von Kevin Rose meistens interessant sind, habe ich die Folge angehört. Die ganze Folge wird es auf der Seite von Kevin Rose geben.

Kategorien
Allgemein

Thoughts on git commits

Over the last few days I read articles about git commits and commit messages here, here and here. I don’t know if the article are new or years old, but I started to reflect on my usage of git and how I create my commit messages.

First of all, there are two differences I make: personal repositories that only I work on and that I won’t share with anyone else (although they might be public on github) and professional repositories that I share with others or where I work together with a team. They have different rules in my head, and so my commit messages look a lot different. On the other hand, handling of branches is not different at all. So, let’s go over how I use branches first.

I have one rule: Use a branch for everything.

First exception to that is fixing a typo, if it’s changing just on letter.
Everything else goes into a branch first. This is useful if I decide to commit a bunch of nonsense and drop all those commits again after recognizing that I totally lost track of the goal I set out to achieve or if I want to rewrite history to please my esthetical brain. I also tend to rewrite commit messages a lot after reading them in my git log. Usually my workflow goes like this:

  • Starting working on a bugfix or feature, create a branch.
  • The initial commit has a message that follows the pattern described here.
  • Commit a bunch of stuff, sometimes WIP commits which are not a fully functional thing on their own, but just a savepoint.
  • Interactive rebase when I’m done to re-order, squash or split commits. Goal is to bring the number of commits down as much as I can without sacrificing understandability. This might end up as one big commit, but for reviews I like to keep things a bit more separated – makes it easy to follow my thoughts. I can always squash everything into a single large commit before merging.
  • Push to remote.
  • Get a review (automated for boring stuff, from a real person for the interesting things).
  • Maybe rebase on branch master to avoid garbled history on the main branch.
  • Merge with --ff-only to make sure the history is clean.

I like the branch model described in the post “A successful git branching model, but I can also work with just a master branch – as long as I can have my own feature branches on remote while working, to have the CI do all the automated checks and run my tests.

Now, let’s talk about commit messages. First my rules for professional repositories which I share and work with other people. Most important rule: The first line is a short summary of what the commit does. And I’m not talking about “Fix stuff” and the like. I also like to include a reference to the issue tracker on the first line, at the start of the message. If you generate your changelogs from git history, this will make it a lot better.

The rest of the message is a description of WHY the commit does what it does and details about the most important parts of the change. This should read like the summary at the start/end of a non-fiction book with the big picture overview. The message should also answer these questions (see this post):

  • Why is it necessary?
  • How does it address the issue?
  • What effects does the patch have?

This way your tools display nice to read, descriptive one-liners and you can read the summary chapters if you want to or if you’re looking for a specific commit.

For personal, non-shared repositories I’m less strict. If you look into the git log for this blog, for example, there is a lot of “new post” and
fix link to heroku” going on. Because it’s also not sourcecode, I don’t really care that much. Nothing breaks if I fix image URLs, no money is lost by a business and there simply isn’t much that I need to write down for myself for reference later on if I add an image to a post. ‍♂️ Most of the changes in this commits are perfectly described by a short one-liner message that says “new post”, for example when I add this article to my blog.

Ok, before I start rambling now about messy git histories on the main branch and how people don’t follow simple naming patterns on branches or how nobody seems to know how to squash commits, I’ll just stop here. There are some good articles linked, you should read them and try to write a better commit message for your next commit.

Kategorien
Gaming

Endlich Raids in Destiny 2

Vor ein paar Wochen bin ich in Destiny 2 in einen neuen Clan gewechselt, da in meinem alten kaum noch jemand online war. Ich habe lange Zeit ganz ohne Clan gespielt, da ich auch mit Random Groups ganz gut laufe.

Allerdings hat das letzte Update einen neuen Anreiz gegeben: Plötzlich braucht man sog. Calus Token, um seinen Rang bei einer Fraktion zu steigern. Und die bekommt man nur im Leviathan Raid. Und obwohl es schon länger die sog. Guided Games gibt, in denen man als Einzelspieler bei erfahrenen Leuten mitlaufen kann, braucht man eigentlich einen Clan mit guten Mitspielern, da Raids viel Kommunikation und Zusammenarbeit erfordern.

Ich habe also in meinem neuen Plan bisher 2x in einer Raid Gruppe mitgespielt. Vorher gucke ich mir natürlich Videos des Raid an, aber zwischendurch brauche ich doch hin- und wieder eine kleine Erklärung bzw verstehe während des ersten Versuchs einer Boss-Phase erst genau, was ich machen muss, welche Calls kommen, welche Gegner wann erledigt oder welche Items wohin getragen werden müssen. Ausserdem fehlen mir noch einige exotische Items, die für Raids nützlich sind, um das ganze zu beschleunigen.

Zeitaufwändig sind die Raids auch mit einer erfahrenen Gruppe. Manche Bossphasen klappen nicht beim ersten Versuch, man muss viel hin und her laufen – so geht die Zeit schnell rum und man spielt mehrere Stunden. Ob ich den Zeitaufwand wirklich öfter auf mich nehme, muss ich mir noch überlegen.

Hier noch ein paar Bilder aus dem Raid Der letzte Wunsch:

Kategorien
Gaming

Erste Spiele auf der Oculus Rift S

Am Wochenende habe ich die ersten Stunden mit meiner neuen Oculus Rift S gespielt. Die Vorbestellung hat tatsächlich geklappt und das Headset war pünktlich zum Start da. Anschliessen, einrichten, Tutorial absolvieren war sehr einfach und die ersten Blicke in die virtuelle Realität waren schon beeindruckend.

Das Tutorial macht einen guten Job, die virtuelle Realität schrittweise aufzubauen. Erst sieht man nur Gitternetzmodelle, aber schon dabei hab ich sofort den Effekt der Größe und der echten 3D-Landschaft verstanden. Anschliessend kommen realistische Texturen dazu, die den Effekt noch verstärken. Die Controller funktionieren super, man kann intuitiv die Hände an die richtige Stelle bewegen. Zugreifen und Werfen funktioniert natürlich nicht 100%ig wie im echten Leben, aber das Tracking funktioniert gut genug, dass man sich schnell daran gewöhnt.

Ich habe dann noch Geld für Spiele ausgegeben, ein gut bewertetes Beispiel aus jedem Genre bzw. jeder Spielart: ein Shooter, ein RPG, ein Jump’n’run und ein Casual. Die einzelnen Titel sind

Ausserdem waren folgende Titel kostenlos dabei:

Virtuelle Realität ist auf jeden Fall schon deutlich näher gerückt. Es gibt aber noch ein paar Punkte, die für eine vollständige Immersion aus meiner Sicht notwendig sind:

  • kein Screen Door Effekt
  • Handschuhe oder Tracking der Finger statt Controller
  • richtiges Laufen statt Teleportationsbewegungen über die Controller
  • keine Kabel, aber trotzdem maximale Grafikleistung

Trotzdem habe ich den Einstieg für mich, glaub ich, gut gewählt. Die Technik ist einfach einzurichten, erfordert keinen Umbau in den Räumlichkeiten und ist leistungsfähig genug für gute Spiele (wie Moss oder The Mage’s Tale). Der nächste wirklich interessante Fortschritt kommt, wenn es ein kabelloses Standalone-Gerät mit der Grafikleistung der aktuellen Generation gibt. Dann würde ich eventuell auch über ein Upgrade nachdenken.

Kategorien
Gaming

Ein guter Tag in Destiny 2

Gestern hatte ich einen weiteren guten Tag in Destiny 2 – ein Spiel, dass ich quasi seit Tag 1 spiele. Daran ist bemerkenswert, dass ich eigentlich gar nicht so gern Shooter spiele und erst recht kein PvP.

Als erstes habe ich mal ein paar gute Runden in Gambit gespielt, ein
Spielmodus der einen Mix aus PvE und PvP darstellt und sehr, sehr aufregend sein kann. Man ist ständig unterwegs und sammelt Punkte, aber das andere Spiel kann diese Punkte wieder wegnehmen oder einen Eindringlich schicken, der die Spieler ausschalten und deren Punkte vernichten soll.

In dieser Season habe ich anscheinend so viel Gambit gespielt, dass ich den maximalen Rang erreicht habe. Das ist eigentlich nicht wichtig, aber das Spiel hat natürlich auch wieder sog. Triumphe (sprich: Achievements), die man für bestimmte Dinge erreicht. Hat keinen Einfluss auf das Spielgeschehen, aber irgendwann will man vielleicht alle Erfolge abhaken. Und gestern habe ich das mit einem dieser Erfolge gemacht, als ich meinen maximalen Rang zurückgesetzt habe:

Kategorien
Software

Abgelaufene Zertifikate in Firefox für Android

Update 2 Das Update auf Firefox 66.0.4 behebt die Situation und die Studies können wieder deaktiviert werden.

Update Mozilla hat ein Update zu der Situation in ihrem Blog gepostet. Der offiziell vorgeschlagene Fix für das abgelaufene Zertifikat für Desktop-Firefox ist jetzt dasAktivieren von Firefox Studies. Am einfachsten geht das über die Eingabe von about:studies in der Adresszeile und von dort kann man dann zu den Einstellungen wechseln, um die Studies überhaupt einzuschalten.

Mozilla ist ein Schnitzer unterlaufen: Zertifikate für die Signierung von AddOns sind abgelaufen und auf meinem Android-Smartphone waren heute morgen alle AddOns deaktiviert. Ohne Ublock Origin und uMatrix gehe ich aber nicht mehr ins Netz, deshalb habe ich temporär die folgende Einstellung vorgenommen:

  • about:config in die Adresszeile eingeben
  • nach xpinstall.signatures.required suchen
  • Wert auf false setzen

Damit wird die Prüfung der Signatur komplett deaktiviert! Das ganze muss natürlich wieder rückgängig gemacht werden, wenn Mozilla das abgelaufene Zertifikat bei sich ersetzt.

Kategorien
Gaming

Vorbestellt: Oculus Rift S

Seit einigen Tagen ist das neue Oculus Rift S vorbestellbar. Und diesmal habe ich zugeschlagen. ‍♂️

Ich habe die Entwicklung von Virtual Reality in den letzten Jahren verfolgt, aber ich wollte diesmal nicht sofort einsteigen, da die letzten Versuche – sagen wir mal, eher schlecht liefen. Aber das Rift S stellt jetzt ein Upgrade dar, das mich doch überzeugt hat. Hauptsächlich wegen des neuen internen Trackings, d.h. es sind keine zusätzlichen Geräte notwendig, um die Bewegungen zu verfolgen – alles ist im Headset verbaut. Ausserdem benötigt das Headset weniger Kabel zum PC und der Kopfgurt wurde verbesser und soll deutlich bequemer sitzen. Die Kabelführung ist wohl immer noch ein Problem, aber das muss man eh selbst ausprobieren und evtl mit einer zusätzlichen Kabelhalterung und -führung korrigieren.

Wer es ganz ohne Kabel will, der kann auch zum Oculus Quest greifen – das Gerät kommt ganz ohne Computer und Kabel aus. Allerdings will ich die volle Grafikleistung meines Rechners und keinen Chipsatz, der auch in meinem Mobiltelefon verbaut ist… Wenn schon, denn schon.

Ein paar Spiele habe ich auch schon auf der Wunschliste:

Ich bin sicher, es werden noch einige dazu kommen. Die letzten drei Spiele sind auch noch gar nicht verfügbar und kommen erst im Lauf des Jahres raus. Leider gibt es sehr viele Shooter im Oculus Shop, aber naja. Ich denke mal, mit dem Oculus Quest werden auch ein paar Mainstream-Spiele ihren Weg auf die Headsets finden.

Ausserdem hat auch No Mans Sky eine volle VR Unterstützung angekündigt. Das werd ich dann natürlich auch gleich ausprobieren.

Kategorien
Software

Switching from ZNC to TheLounge

I’m still using IRC (yes, I’m the one) and previously I installed Hexchat on all my machines and ZNC on my server to connect to my favorite networks and channels. But it’s not always possible to install an application nor run the portable app from my USB stick. I didn’t want to use a hosted service like irccloud neither, so I set out to find an alternative.

Luckily a user on mastodon called muesli pointed me to the project thelounge, which aims to provide an self-hostable application similar to irccloud.

Here’s a simple docker-compose.yml to start the application up:

version: '3' services:
   thelounge:
     image: thelounge/thelounge:latest
     ports:
       - "9000:9000"
     restart: always
     volumes:
       - thelounge:/var/opt/thelounge
 # bind lounge config from a volume, not from the host file system
   volumes:
     thelounge:

Personally I don’t use the exposed port, because I run everything behind a reverse proxy on my installation, but if you run this locally, you can now access thelounge at http://localhost:9000.

If you want to modify the configuration, you have to do so inside the volume thelounge. I’m running temporary containers to edit them:

docker run --rm -it -v YOURPREFIX_thelounge:/data -w /data alpine vi /data/config.js

Replace YOURPREFIX which whatever your local directory name is. If you are not sure, you can list all docker volumes and search for the right one:

docker volume ls | grep thelounge
Kategorien
Software

Neuer Texteditor: Sublime Text

Ich bin ja öfter mal auf der Suche nach einem neuen Texteditor, mit dem ich die täglichen Aufgaben erledigen kann, die nicht unbedingt den Start von meinem IntelliJ Ultimate erfordern. Die letzten Monate war das oft Visual Studio Code, das sich seit dem holprigen Start in einen guten Allround-Editor verwandelt hat. Aber wirklich zufrieden war ich damit nicht und deshalb hab ich mich nach einer Alternative umgesehen.

Gelandet bin ich bei Sublime Text, ein nicht-freier, kostenpflichtiger
Editor – und nach einigen Wochen habe ich mich auch dazu entschlossen, eine Lizenz zu kaufen. Mit 80US$ nicht ganz billig, aber ich stehe seit längerem auf dem Standpunkt, dass man für gute Software auch bezahlen – oder im Fall von Open Source Software, seine eigenen Zeit für z.B. Pull Requests investieren kann.

Hier noch eine Liste von Packages, die ich verwende:

Am wichtigsten ist sicher Package Control, mit dem kann man die Pakete suchen und mit einem Tastendruck auch gleich installieren kann. Integration von git muss natürlich auch sein und GitGutter ermöglicht über die linke Seitenleiste des Editors (auf der ich auch immer die Zeilennummer eingeblendet habe) einen schnellen Blick auf die letzten Änderungen. Filter Lines ist wahrscheinlich ein Spezialfall, aber ich habe öfter die Notwendigkeit aus einer großen Datei bestimmte Zeilen rauszusuchen. Das Handling von sehr großen Dateien (größer 100000 Zeilen) ist in den meisten Editoren eher unhandlich, deshalb filtere ich mir die gesuchten Zeilen einfach mit dem Package in ein neues Editorfenster und mache von dort weiter.

Die SideBarEnhancements erweitern die Ordner-Ansicht um ein paar nützliche Aufgaben, wie Reveal in Sidebar um eine geöffnete Datei zu finden oder einfache Dateioperationen wie Löschen, Umbenennen usw. In die gleiche Richtung geht A File Icon, das die Sidebar einfach um ein paar schöne (und vor allem schnell zu erkennende) Dateisymbole erweitert. Was ähnliches bietet Terminal, um schnell per Command Palette ein Terminalfenster im Projektverzeichnis zu öffnen.

Das ganze habe ich auf einem USB Stick installiert, damit ich meine Konfiguration mitnehmen kann. Ich werde das ganze aber jetzt auf meinen Rechnern installieren, damit ich von einer SSD laufe.