NEWS
ioBroker Advent of Code
-
Was mich total motiviert 'dabeizubleiben'
- man lernt wahnsinnig viel, auch wenn man steckenbleibt (zur Not 24h warten, und dann von den Diskussionen oder anderen Lösungen lernen)
- dadurch dass es so viele Lösungen gibt, kann man gut reflektieren, wo man selber steht. Geht der Code kürzer, geht er lesbarer, wie würde es in anderen Sprachen aussehen - gibt es da Konstrukte, die es in der eigenen Sprache nicht gibt
- wer ChatGPT(Pro) oder GitHub Copilot noch nie ausprobiert hat: dieser Monat lohnt sich extrem, mal 30€ auszugeben und auf Herz und Nieren zu testen. ChatGPT, wenn man komplett ahnungslos ist und Tipps braucht, CoPilot nimmt einem viel Arbeit beim späteren Schreiben ab.
- die Community auf Reddit ist der Hammer, jeden Tag entstehen Visualisierungen, Tutorials, Games zur aktuellen Aufgabe. z.B. hier: der heutige Tag als Interaktives Mini-Game, wo du die Rubbellose mit der Maus freirubbeln kannst ) (https://www.reddit.com/r/adventofcode/comments/18afumn/2023_day_4_part_1python_terminal_visualization/). Ja - wie geil ist das denn (wenn andere zu viel Zeit haben :D)
-
Einer der Top-'Spieler' recorded auch jeden Tag:
Wie man Tag 4 (Part 1 + Part 2) in 4 Minuten löst (inkl. einmal Fehler noch machen), sieht man hier: https://www.youtube.com/watch?v=tXnPMSSQgCU
Der wirkt noch nichtmal gestresst, tippt einfach drauflos ... macht das aber auch seit mehreren Jahren und noch viele andere Wettbewerbe.
-
@stefan-hansel sagte in ioBroker Advent of Code:
kann man gut reflektieren, wo man selber steht
Aktuelles Fazit: Ich kann gar nix (im Vergleich zu anderen)... In Python bin ich z.B. auch nicht so super fit. Da fällt es mir schon schwer die Lösungen der anderen überhaupt zu lesen. Aber ja: Man lernt super viel - das stimmt.
Bleibe erstmal dran, bis es einfach zu viel Zeit in Anspruch nimmt. Macht ja schon Spaß die Rätsel zu lösen, aber in der Zeit könnte ich auch ein paar Issues fixen (und da haben ja alle was von)
-
@jey-cee said in ioBroker Advent of Code:
Hier mal ein Thema in dem alle mitschreiben können zum Event.
aber diese werte haben auch zahlen in text die mitzählen
Ich sag mal so das ist noch Kindergarten. Da kommen noch 2 Hürden, die erste ist nicht ganz Offensichtlich, kann man aber erkennen wenn man mal kurz Umgekehrt liest. Bei der 2ten hab ich keine Ahnung wie man da drauf kommen soll.
Jeden falls konnte ich die Aufgabe nicht mal mit den Fertigen Lösungen anderer abschließen. Das ist schon Frustrierend.
Solche Thread-Eröffnungen mag ich...
Über etwas reden, und keine Informationen beibringen. Ein kleiner Link ist doch wohl nicht zu viel verlangt ...
-
@martinp sagte in ioBroker Advent of Code:
Solche Thread-Eröffnungen mag ich...
Das Thema wurde glaube ich von dem Announcement-Thread getrennt, daher die "komische Eröffnung".
-
@bluegaspode sagte in ioBroker Advent of Code:
@Negalein : die 'Ausrede', dass es ohne Windows Tools nicht zu lösen ist zählt nicht. Es gibt Kandidaten, welche (meist bis zur Hälfte) alles mit Excel lösen. Als Challenge sind hierbei nur Formeln erlaubt, kein VBA
Naja, Formel hin oder her. Ist aber schon etwas sehr viel mehr spezifischer als "normale Formeln"!
Da passt dann der Satz
schreckt aber bitte nicht zurück denn jeder (und damit meine ich wirklich jeder!!!) kann mitmachen.
nicht mehr ganz.
Mitmachen, ok. Aber nur eine winzige Chance haben, No No No.
Ist dann doch eher was für Scriptjunkies!Aber was solls, ist nur ein Spiel. Und ich bin nicht alleine mit 0 Punkten.
-
@haus-automatisierung Ich bin mit diesen "schlanken" User-Interfaces wohl etwas überfordert - Wenn man das Iobroker-Logo oben links im Forum anklickt, kommt man auf die Forums-Startseite - und dort gibt es wiederum ganz oben links einen Link auf das Event ...
-
Habt ihr irgendeinen "Code Of Conduct" fürs Leaderboard (im Sinne von 'selber lösen' vs. 'fertige Lösung einfach ausführen')
Die Top10 des weltweiten Leaderboards haben für die Lösung von Part II heute alle mehr als 4min gebraucht. Jemand im IOBroker Leaderboard hat es in 2:35 geschafft.
Die gleiche Person hat Part II an Tag 2 in 11sek geschafft, während die Top10 des globalen Leaderboard als Minimum 30sek benötig haben.
Da ich selbst auf anderen Leaderboards unterwegs bin, stört es mich selber hier nicht.
Wollte aber der Transparenz halber drauf hinweisen.Nachvollziehbar ist das über Plugins wie dieses hier, welches die verfügbaren Statistiken direkt im Leaderboard einblenden: https://chromewebstore.google.com/detail/advent-of-code-charts/ipbomkmbokofodhhjpipflmdplipblbe?pli=1
-
mehr als 2:35 hat bei mir alleine die Brechung von Part 2 benötigt.
Mich würde ja mal interessieren in welcher Sprache ihr die Aufgaben so machen.
Ich Benutze Python und wenn ich die Aussage von @haus-automatisierung richtig interpretieren er auch. -
Ich glaube da muss man in mehreren Skills sehr gut sein um da irgendwo mitzumischen. Die Leute entwickeln wahrscheinlich bereits seit mehreren Jahren, das Gehirn ist schon so auf Logik und Algorithmen konditioniert, das das denen so einfach fällt. Bei Tag4 Teil 1 und 2 musste ich allein schon 10 Minuten den Text mehrfach lesen und die Aufgabe richtig zu verstehen.
Glaubt mir, ich kenne im geschäftlichen Umfeld solche Leute, die haben meistens dann aber auch andere Defizite, meist im Sozialverhalten. Ob das erstrebenswert ist, darf jeder selbst entscheiden.Bei Tag4 Teil 1 habe ich festgestellt, das allein die Formulierung einen auf die falsche Fährte führen kann. Zuerst habe ich die Matrix anhand der Zahlen analysiert um im 2.Schritt dann die Symbole auszuwerten und den Wert zu berechnen.
Im 2. Anlauf habe ich dann nur die Symbole analysiert und dann auf die Zahlen zurück geschlossen. Der Code war viel kürzer und effizienter.
Aber da benötigt man schon einige Zeit dafür und muss Spaß am tüfteln haben.Ich verwende Javascript. Python kann ich wegen den Einrückungen nicht leiden
Die anderen Sprachen sind bei mir schon etwas länger her, als das ich da was effizientes herausbekomme -
@oliverio sagte in ioBroker Advent of Code:
ich kenne im geschäftlichen Umfeld solche Leute, die haben meistens dann aber auch andere Defizite, meist im Sozialverhalten. Ob das erstrebenswert ist, darf jeder selbst entscheiden.
Ja, solche Leute kenn ich auch. Defizite haben einige (nicht alle, aber doch sehr viele) definitiv.
Aber was solls. Ich hatte viel mit ihnen zu tun und lernte sehr schnell, sie zu ignorieren und in ihrer Welt leben zu lassen.
Aber gibt es überall, nicht nur IT.Für mich ist es nichts, trotz eigentlich guter IT-Kenntnisse. Habe mich deshalb auch schon wieder von AoC abgemeldet.
-
@oliverio die Zeiten des globalen Leaderboard zweifle ich gar nicht, das sind die besten der besten (spezialisiert auf genau solche Rätsel) und einige von denen streamen ja auch.
Ich habe mich nur gefragt, ob es realistisch ist, dass es im ioBroker Leaderboard eine Person gibt, die schon an 2 Tagen mit der Lösung des 2ten Teil die komplette Top 10 des weltweiten Leaderboard zeitlich schlagen konnte
Ich selbst nutze Java zur Lösung, reviewe parallel regelmäßig die Python Lösungen, weil mich die Eleganz der Sprache immer wieder fasziniert.
@ignis-draco said in ioBroker Advent of Code:
mehr als 2:35 hat bei mir alleine die Brechung von Part 2 benötigt
Bei mir waren es 13min. Ein klares Zeichen, dass man nicht den besten Weg gefunden hat, um das Rätsel zu lösen, aber ich habs rechnen lassen, solange ich am umschreiben war ... und dann war die Rechnung schneller fertig als eine komplett neue Lösung.
Mit dem richtigen Algorithmus sind immer <1s (egal welche Programmiersprache) möglich.
Bei Tag 5 Teil 2 auch, man muss sich dann was besseres einfallen lassen, als jede Zahl einzeln durchzurechnen, sondern clevere Weg finden, wie man ganze Gruppen von Zahlen am Stück 'behandeln' kann, ohne dass dann das Ergebnis deswegen falsch wird.
Da wirds dann tüftelig, wenn der Code am Ende auch noch verständlich bleiben soll. -
Ich hatte zu dem Zeitpunkt schon gedacht das ich eine gute Lösung hätte.
Besonders interessant finde ich die Lösungen von anderen anzuschauen, denn dabei entdeckt man immer etwas was
man noch nicht kannte.z.b.
-
im itertools das permutations das einem alle Permuationen einer Liste erstellt.
-
@dataclass das einem die 0815
__init__
sachen abnimmt. -
list(zip(LISTE[::2], LISTE[1::2])) das immer das erste und das zweite Element trennt
Ohne die Aufgaben hätte ich das nie entdeckt weil man so etwas ja auch "einfach" per Hand machen kann und dann halt nicht schaut ob es was fertiges gibt.
-
-
@bluegaspode sagte in ioBroker Advent of Code:
Ich habe mich nur gefragt, ob es realistisch ist, dass es im ioBroker Leaderboard eine Person gibt, die schon an 2 Tagen mit der Lösung des 2ten Teil die komplette Top 10 des weltweiten Leaderboard zeitlich schlagen konnte
Suggestivfrage
@ignis-draco sagte in ioBroker Advent of Code:
Ich Benutze Python und wenn ich die Aussage von @haus-automatisierung richtig interpretieren er auch.
Nein, ich probiere mich mit NodeJS. An Teil 2 heute saß ich zu lange (und musste zwischendurch weg). Keine Ahnung wie man es schafft, das in so kurzer Zeit zu lösen. Höchsten Respekt dafür Teile meine Ergebnisse ja auch hier: https://github.com/klein0r/advent-of-code-2023/
@oliverio sagte in ioBroker Advent of Code:
Die Leute entwickeln wahrscheinlich bereits seit mehreren Jahren
Naja - das mache ich auch (20+ Jahre). Und komme trotzdem nicht auf das Level. Ist aber auch etwas ganz anderes, ob man möglichst schnelle Algorithmen entwickeln muss, oder eben Datenbankanbindungen / APIs / Backends usw. Solche Aufgaben wie hier gehören für mich jedenfalls nicht zum Alltag.
-
@haus-automatisierung sagte in ioBroker Advent of Code:
Naja - das mache ich auch (20+ Jahre). Und komme trotzdem nicht auf das Level. Ist aber auch etwas ganz anderes, ob man möglichst schnelle Algorithmen entwickeln muss, oder eben Datenbankanbindungen / APIs / Backends usw. Solche Aufgaben wie hier gehören für mich jedenfalls nicht zum Alltag
wir dürfen nicht vergessen, das es auch Leute mit entsprechendem höheren Intelligenzlevel gibt als Durchschnitt oder mit Inselbegabung.
Betriebliche Entwicklung ist immer besser einfacher, als komplex/hoch optimiert da das erstere ist einfacher zum warten ist.
Allerdings gibt es sicherlich Bereiche, die auf solche hochoptimierte Algorithmen angewiesen sind (Graphik, KI, Wissenschaftliche Berechnungen). Da kann die Wahl des falschen Algorithmus dann schon Welten an Performance bedeuten bzw. komplett neue Algorithmen ausarbeiten. Es gibt schließlich noch ein paar mathematische Probleme, die bisher noch nicht gelöst worden sind, bzw. deren Beweis in erträglicher Zeit noch nicht erbracht worden ist. -
@oliverio sagte in ioBroker Advent of Code:
Allerdings gibt es sicherlich Bereiche, die auf solche hochoptimierte Algorithmen angewiesen sind (Graphik, KI, Wissenschaftliche Berechnungen).
Genau, aber die nötigen Denkweisen bekommt man eben nicht, nur weil man lange Entwickler ist. Genauso kennt man ja nicht alle Applikationen und Frameworks, nur weil man solche Algorithmen schnell entwickeln kann. Ist halt ein ganz anderer Bereich.
Deswegen war z.B. Tag 5 Teil 2 schon eine ordentliche Herausforderung für mich.
-
@haus-automatisierung sagte in ioBroker Advent of Code:
Deswegen war z.B. Tag 5 Teil 2 schon eine ordentliche Herausforderung für mich.
Was ich jetzt schon hasse ist wenn ich feststelle das ich falsch an Teil 1 heran gegangen bin wenn ich Teil 2 mache ...
Ich war schon stolz das ich es heute das erste mal im Teil 1 dynamisch hinbekommen hatte, die Anzahl Samen und der Karten also quasi egal waren.Und kam Teil 2 ... war nicht nur eine ordentliche Herausforderung. Mit Algorithmen habe ich sonst nicht viel am Hut, eher mit Logik. Wobei das natürlich zusammengehört. Ich hoffe morgen wieder auf etwas leichteres ..
-
@bananajoe said in ioBroker Advent of Code:
Was ich jetzt schon hasse ist wenn ich feststelle das ich falsch an Teil 1 heran gegangen bin wenn ich Teil 2 mache ...
In diversen Tipps & Tricks zum AoC findest du Sätze wie: "The second puzzle is always a twist on the first, and it’s meant to simulate the real-world experience of changing requirements."
Es gibt also kein "falsch an den ersten Teil rangegangen". Der 2te Teil ist in der Regel bewusst so konstruiert, dass du vom ersten Teil nicht ableiten kannst, was beim 2ten passiert, du deinen Code also auch nicht darauf vorbereiten kannst.
Stattdessen ist 'Keep It simple stupid' durchaus angebracht. Und sich dann agil immer auf den Twist einlassen, der im 2ten Teil passiert, also wenn der Kunde / die Elfen endlich mit den wahren Requirements rausrücken, die sie dir nie am Anfang sagen.
-
Oh man Tag 6. Wie blöd kann ich nur sein
Das einzige Problem ist das lesen bei mir gewesen. Oder haben sie eine Fehler in der Aufgabe ? -
@ignis-draco sagte in ioBroker Advent of Code:
Das einzige Problem ist das lesen bei mir gewesen.
Das kenn ich, wobei es heute ja ganz gut ging Fehler konnte ich nicht finden - fand das heute recht ausführlich erklärt.