Logbuch KW01 2024

Euch wünsche ich ein gesundes und erfolgreiches neues Jahr. Mein 2023 war nicht besonders schlecht, trotzdem wäre es gut, wenn 2024 besser werden würde.

Persönlich
Die letzen Wochen um Geschäft waren echt anstengend und stressig. Deswegen war es auch ruhig hier. Und zwischen den Jahren war dann die Luft raus und ich habe meine Batterien aufgeladen. Es kann also nur bergauf gehen.

Geek
Natürlich habe ich im Dezember beim Advent of Code mitgemacht. Die Zeit habe ich mir trotz Stress nicht nehmen lassen. Aber weit bin ich nicht gekommen. Es waren doch echt knackige Rätsel für mich dabei. Aktuell habe ich 14 Sterne, das heißt 7 komplett gelöste Rätsel. Das habe ich ja auch verblogged.
Nach Weihnachten habe ich dann auch den 37C3 verfolgt, wenn nicht irgend ein Termin dazwischen gekommen ist. Dann habe ich den Talk aber nachgeholt. Waren ein paar gute dabei.
Und die letzen Tage habe ich damit verbracht meinen Root Server umzuziehen. Da ich diesen nicht strapaziere, habe ich die Leistung nicht gebraucht. Ich bin jetzt auf so ein 1 EUR/Monat VPS umgezogen. Und irgendwie kommt der mir sogar schneller vor. Ich sollte mal über meine kleinen Helfer schreiben, die da so darauf laufen.

Geglotzt
Geschaut habe ich sehr viel. Deswegen nur kurz eine Auflistung.

  • The Crown Staffel 6: Ein guter Abschluss.
  • The Suspect Staffel 1: Recht nett.
  • Die goldene Stunde Staffel 1: Eine gute niederländische Serie bei der wir manchmal mit offenen Mund dasaßen.
  • Doctor Who Specials 1-4: Dazu muss ich mehr schreiben. Sie waren in Ordnung.
  • Leave the World behind: Oh ha, da fehlt nicht mehr viel bis das wahr werden könnte.
  • Mystic River: Warum habe ich diesen Film nicht schon gesehen? Ein kleines Juwel.
  • Und morgen seid ihr Tot: Auch hier waren wir geschockt wie bei Die goldene Stunde
  • Die Schneegeselschaft: Auch hier muss ich mehr schreiben. Sehr sehenswert.
  • Ein Schwarzwaldkrimi Staffel 3: Teil 1 lief im TV und Teil 2 haben wir gleich im Anschluss in der Mediathek angeschaut. Spannend.
  • What if...? Staffel 2: Recht nett.
  • Scott Pilgrim Takes off: Noch mitten drin.
  • Berlin Staffel 1: Haben wir gestern erst angefangen und sind fast durch.

Advent of Code 2023 – Tag 8

Tag 8? Jetzt ist Massimo komplett durcheinander. Nicht direkt. Ich war am Wochenende komplett nicht zu gebrauchen und habe es kränkelnd im Bett verbracht. An Freitag habe ich es jedoch nicht geschafft den Tag abzuschließen. Heute habe ich dafür Tag 8 beendet und Tag 9 auch. Aber dazu morgen mehr.

Tag 8 hat mir sehr viel beigebracht. Ich habe mich in den letzten Beiträgen ja immer wieder wegen der umständlichen Stringverarbeitung beschwert. Auf der Suche nach einer besseren Lösung bin ich auf diesen Medium Artikel gestoßen. Und ich frage mich, warum ich nicht schon früher danach gesucht habe. Das ist der ganze Zauber.

line := strings.FieldsFunc(x, func(r rune) bool {
  if r == '=' || r == '(' || r == ')' || r == ',' || r == ' ' {
    return true
  }
  return false
})

Und während Teil 1 wieder durch eine einfache Iteration zu lösen war, so scheiterte diese Lösung bei Teil 2. Trotz dass das Programm 10 Millionen Iterationen in 3 Sekunden duchfürht reicht es nicht aus Da hilft also nur Mathematik. Und so musste ich mein Wissen über den kleinsten gemeinsame Multiplikator und größten gemeinsamen Teiler wieder auffrischen.
Tag 8 war knackig hat aber echt Spaß gemacht.

Und falls ihr euch anschließen wollt. Hier der Einladungscode zu meinem Leaderboard: 1204843-3e53d471

Advent of Code 2023 – Tag 4

OK. Jetzt wird es wild. Eigentlich sollte ich heute über Tag 7 schreiben und doch steht in der Überschrift Tag 4. Das liegt daran, dass ich noch keine Lösung für Tag 7 im Köcher habe, ehrlich gesagt nicht mal einen Ansatz. Also deswegen Tag 4.

Stringverarbeitung. Mal wieder. Und dann nicht nur einzelne Zahlen sondern auch ganze Arrays von Zahlen als String die aber Integer sein sollten.
Aber ich lerne dazu und das ist ja der Sinn der Sache. Ich mag Go. Es ist simple und man muss auch simple denken. Arrays von einander subtrahieren? Nix da. For Schleife um das Eine, mit dem Anderen verwurschteln und Zack hat man das Ergebnis. Auch die vorhin erwähnte Konvertierung. Von wegen List Comprehension und Lambda Funktionen. For Schleife, einzeln konvertieren und Append.

Leider musste ich etwas improvisieren. Um das Ergebnisarray zu initialisieren musste ich einen Wert hart festlegen. Ja, ich hätte die Datei komplett einlesen können und hätte dann auch die erforderliche Länge, das war mir aber um kurz vor 23 Uhr dann doch zuviel zum umbauen. Ach und das "du hat mehr Gewinnkarten die du während der Laufzeit bekommst und auch verwursten musst" in Teil 2, war auch fies.
Und so wandert der nächste goldene Stern auf mein Konto.

Und falls ihr euch anschließen wollt. Hier der Einladungscode zu meinem Leaderboard: 1204843-3e53d471

Advent of Code 2023 – Tag 6

Mein letzer Eintrag war für Tag 2. Das lag daran, dass ich mir immer noch an Tag 3 die Zähne ausbeiße. Ich komme da einfach nicht voran. Tag 4 und 5 habe ich nicht gemacht, da ich Gestern und Vorgestern privat unterwegs war.

Dafür habe ich mir dann das heutige Rätsel angeschaut. Und was soll ich sagen, Teil 1 ist recht logisch. Eine Zahlenreihe die man mit einer geschachtelten For-Schleife abarbeitet und so das Ergenis brute forced. Und so war mir klar, dass Teil 2 dem Schema folgt, die Zahlen werden so groß, dass ein Brute Force nicht mehr machbar ist. Das ist ein gängiges Problem beim Advent of Code.

Trotzdem habe ich den "unwirtschaftlichen" Code ausgeführt weil ich es einfach nicht lassen kann. Und was passiert? Es dauert genauso (oder ungefähr) lange wie Teil 1 und ich bekomme ein Ergebnis. Und es ist sogar das Korrekte. Entweder ist das ein Fehler beim Rätsel oder es ist wirklich so einfach.

Ich bin froh über den goldenen Stern und werde mich wieder Tag 3 widmen. Mein Code wie iummer auf GitHub

Und falls ihr euch anschließen wollt. Hier der Einladungscode zu meinem Leaderboard: 1204843-3e53d471

Advent of Code 2023 – Tag 2

Tag 2 war heute genau das Gegenteil von gestern. Während ich mir an Teil 1 die Zähne ausgebissen habe, war der goldene Stern nur noch ein kurzes Umstellen des Code.

Ich habe mich so oft verrannt, dass ich echt irgendwann alles gelöscht und nochmal Schritt für Schritt von Vorne begonnen. Besonders bei den AoC Rätseln macht mir die statische Typisierung zu schaffen. Da ist Python schon ein no brainer. Aber hey, wir lieben doch Herausforderungen. Pille Palle kann jeder.

Liste mit unterschiedlichen Trenner. Tuple mit zuerst Kenner dann Wert und dann umgekehrt. Alles was das Herz begehrt um durcheinander zu kommen.

Trotzdem gelöst und wie immer meine Lösung auf Github.

Und falls ihr euch anschließen wollt. Hier der Einladungscode zu meinem Leaderboard: 1204843-3e53d471

Advent of Code 2023 – Tag 1

Endlich. Der Dezember ist da und damit auch die Advent of Code. Meine liebste Herausforderung. Ich werde dieses Jahr wohl nicht so aktiv teilnehmen können, denn geschäftlich geht es gerade heißt her.
Aber nicht gleich den Teufel an die Wand malen und sehen wie weit ich dieses Jahr komme. Und wieder versuche ich es mit Golang.

Tag 1 hatte es aber in sich. Der Silberstern war easy, jedoch der Goldene. Wie übersetzt man Zahlenwörter in echte Zahlen und dass auch noch wenn man den String rückwärts bearbeiten muss. Die größte Herausforderung war jedoch wenn zwei Zahlenworte sich Buchstaben teilen. Man ersetzt das Eine und damit wird das andere Wort unbrauchbar. Damit ist die Ersetzungsreihenfolge relevant.

Meine Lösung hier auf Github

Und falls ihr euch anschließen wollt. Hier der Einladungscode zu meinem Leaderboard: 1204843-3e53d471