Willkommen

Ich bin ein italienischstämmiger Softwareentwickler im Bereich DevOps und Plattform Engineering mit langjähriger IT-Erfahrung und einer Leidenschaft, Probleme zu lösen und zu automatisieren.

Blog

4 Juni 2019

Porrada Geek! #42

42. Die Antwort auf das Leben, das Universum und dem ganzen Rest. Für mich Geek ist diese Zahl ja etwas besonders und dem entsprechend war da Training auch etwas besonders.

Dank der Verletzung vom letzten Montag, konnte ich letzten Mittwoch nicht am Training teilnehmen. Und wie ich schon geschrieben habe, wurde an dem Tag der Escape aus der Triangle gelehrt. Ich hatte mich schon abgefunden, dass verpasst zu haben. Nun ja, die Triangle war mir irgendwie wichtiger. Und was passiert? Ich bekomme doch die Antwort auf meine Frage. Gestern haben wir auch einen Escape gezeigt bekommen. Vielleicht der Gleiche und es war eine Wiederholung oder ein Anderer, wer weiß? Wie dem auch sei. Ich habe jetzt doch die Bewaffnung und die Entwaffnung kennengelernt. =)

Zusätzlich habe ich auch wieder mit einem höheren Grad trainieren dürfen. Und er war auch sehr geduldig mit mir.

Sparring lief auch gut und beim Aufwärmen habe ich ein paar neue Übungen für meine Morgenroutine bekommen. Jetzt sollte ich diese nur wieder regelmäßiger durchführen.

Das war ein sehr guter 42. Brazilian Jiu-Jitsu Tag.

OSS!

31 Mai 2019

Jedi Tricks – Notepad++ – Jede zweite Zeile löschen

Sicherlich ist euch noch der Trick mit dem Finden und Markieren von bestimmten Zeilen bekannt. Diesen kann man jedoch nicht anwenden, wenn man kein Zeichenmuster in den betroffenen Zeilen finden kann. In meinem Fall war es eine Datei mit Usern und deren Klarnamen. Das hat sich immer abgewechselt. Also in der ersten Zeile der Username und in der zweiten Zeile der Klarname. Dann kam der nächste Eintrag. Daraus hat sich ein Zeilenmuster ergeben. Ich habe in diesem Fall nur den Usernamen und damit nur jede “ungerade” Zeile gebraucht.

Doch wie entfernt man jede zweite Zeile? Das geht nur mit RegEx und einer kleinen Abwandlung der Pre- und Suffix Vorgehensweise.

Wir gehen in die Ersetzen Funktion (STRG+h) und aktivieren die " Regulären Ausdrücke". Wichtig ist auch, dass man die Option " Am Ende von vorne beginnen" deaktiviert. Dann würde das Ersetzen mit jedem Durchlauf die Datei leeren.

Wie ihr schon im Screenshot sehen könnt, suche ich nach " .+\R(.+)" und ersetze es durch " $1". Doch was bedeutete das?

  • " .+" sucht ein beliebiges Zeichen " ." in beliebiger Anzahl " +"
  • " \R" sucht einen Zeilenumbruch jeglicher Art. Es gibt ja " \n" (neue Zeile) und " \r" (Return) und das auch in Kombination " \n\r". Je nach Kodierung der Datei. Dies alles wird mit " \R" berücksichtigt

Damit hätten wir die erste komplette Zeile “markiert”. Jetzt folgt die Zweite.

  • " .+" um die komplette nächste Zeile zu markieren, denn davor war ja der Zeilenumbruch
  • " ()" dieser Teil ist in Klammern, damit er in die temporäre erste Variable geschrieben wird.

Und genau damit wird dann das alles ersetzt. D.h. nur die zweite Zeile bleibt übrig. Ihr habt es natürlich schon erfasst. Ich wollte den Usernamen, d.h. nur die erste Zeile behalten. Somit ist der richtige Suchausdruck " (.+\R).+\R". Diesmal müssen beide Zeilenumbrüche mit aufgenommen werden, damit beide durch eines ersetzt wird.

Und zu guter Letzt. Wie ihr euch denken könnt, könnte man damit auch beide Zeilen untereinander vertauschen. Man klammert beide Ausrücke und hat damit zwei Variablen die man im “Ersetzen” Feld in umgekehrter Reihenfolge ausgibt.

Und das kann man für eine beliebige Anzahl an Zeilen weiterführen.

Das war’s. Wenn ihr noch Fragen habt, einfach ein Kommentar hinterlassen oder per Twitter.

Möge die Macht mit euch sein.

[ via]

28 Mai 2019

Porrada Geek! #41

Escapes aus der Triangle war das Thema. Und wie sagte unser Trainer. Ich muss euch erst bewaffnen, damit ihr dann auch das Entwaffnen lernen könnt. Denn warum solltet ihr euch aus einem Triangle befreien sollen, wenn es gar keinen Triangle gibt? Und so lernte ich die ersten Bewegungen kennen, die man oft in der UFC und bei Bellator hört. Ich dachte auch, dass es viel einfacher ist, den Gegner in einen Triangle als in eine Armbar zu bekommen. Es stellte sich heraus, dass das nicht der Fall ist, zumindest für mich ist der Triangle genauso komplex. Jedoch hatte ich einen guten Blue Belt als Partner und habe ein paar Tipps abgestaubt. Im Sparring ist das natürlich wieder eine ganz andere Hausnummer. Viel denken ist da nicht. Und ich bin auch nicht immer in der richtigen Postion. Zusätzlich hat mir dann der Blue Belt gezeigt, dass eine Armbar auch nicht viel schwerer durchzuführen ist. Also an mir gleich zwei oder drei Mal. Doch etwas kann ich immer besser umsetzen. Ich werde ruhiger. Der Bersekermodus verschwindet langsam. Es geht also voran. Unglücklicherweise bin ich jedoch in einen Smash geraten und mein Nacken wurde überdehnt. Ich habe gestern sofort Schmerzsalbe drauf gepackt, jedoch fühlte es sich heute Morgen nicht viel besser an. Mal sehen, ob ich am Mittwoch ins Training gehen kann.

23 Mai 2019

Porrada Geek! #40

Verteidigung der Armbar aus der Closed Guard. Weiter ging es mit dem Thema. Diesmal mit weiteren Details und No Gos. Was mir zu schaffen gemacht hat, sind manchmal die kleinen Details. Ich war der Meinung zweimal dieselbe Bewegung gemacht zu haben und trotzdem funktioniert es einmal und das andere Mal nicht. “Du hast die Hand nicht sauber auf dem Bizeps gehabt”, ist dann die Antwort. Da steckt wohl die “Kunst” drin aus dem Wort “Kampfkunst” drin.

Das Sparring war genauso herausfordernd. Und obwohl ich mich manchmal wacker geschlagen habe, bei der darauffolgenden Runde lag ich wieder auf dem Gesicht, weil ich die Postura nicht sauber hatte. Und ein Thema hat mich besonders aufgeregt. Ich war mal wieder im Fight mit meinem Lieblingsgegner und habe es geschafft in die Side Control mit Cross Face zu kommen. Und dann war ich da und wusste nicht weiter. Blackout. Und es ist ja nicht so, dass wir das nicht hier und hier erst neulich durchgemacht haben. Zum aus der Haut fahren. Am Ende habe ich nochmal nachgefragt und ein Buddy, mit dem ich höchstens zweimal trainiert habe, war so nett und hat mich an alles erinnert und wieder gezeigt.

OSS!

21 Mai 2019

Porrada Geek! #39

Neue Woche, neues Kapitel. Diesmal geht es zurück zu den Basics. Oder wie man so schön sagt Fundamentals. Das Wort Postura habe ich in meiner kurzen BJJ Laufbahn öfter gehört. Meistens vom Trainer während des Sparrings. Und mit der Zeit macht man sich einen Reim, was das Wort bedeuten könnte, jetzt wurde es uns erklärt. Und wie es im BJJ so ist, natürlich zuerst nur die Grundpfeiler. Ich war auch sehr überrascht, wie effektiv das sein kann, wenn man sich daran hält. Die ganze Stunde drehte sich nur um die Abwehr der Armbar in der Closed Guard. Man macht es dem Gegner richtig schwer nur durch die richtige Haltung und damit das Gewicht an der richtigen Stelle. Im Sparring klappte es auch gut, natürlich in der Abwehr. Beim Angriff, meinen Versuchen den Gegner in die Armbar zu bekommen, ging es dagegen um so schwerer. Aber es hat diesmal richtig Spaß gemacht. Und deswegen bin ich auch ausgepowert. Normalerweise merke ich am Morgen nach dem Training nicht so viel, außer heute.

Oss!

14 Mai 2019

Porrada Geek! #38

Ich habe ja schon geschrieben, dass das Erlernen von Jiu-Jitsu, wie das Erlernen einer neuen Sprache ist. Damit waren die Bewegungsabläufe gemeint, jedoch geht es auch um die Benennungen. Von Americana und Kimura zu Magic Grip und Paper Cutter. Hier ist der Kopf nicht nur gefordert die Bewegungen zu erlernen. Das Schöne dabei ist, dass die Begriffe auch manchmal die “Funktion” beschreiben. Der Magic Grip ist ein Griff an den Gi des Gegners, das um dessen Handgelenk gelegt wird. Dadurch ist er wie durch Magie gefesselt. Und der Paper Cutter ist wie die Bewegung an diesen Papierschneidegeräten, nur dass man den Kragen des Gegners festhält und den Arm auf dessen Hals hat. Das ist dann eher ein Throat Cutter. Diese neuen Bewegungen haben wir an die Bewegungen von letztem Mal angehängt.

Zum Aufwärmen haben wir diesmal ein Bewegungsablauf aus der Selbstverteidigung gemacht. Unter einem Haken ducken und an den Gegner rangehen. Die Hüfte umschließen und den Gegner zu Boden bringen. Der Ablauf hat mir ganz gut gefallen. Und durch das ständige Runter und wieder hoch bin ich auch gut warm geworden. Und eine kurze Einweisung, wie ich einen Haken schlagen sollte, habe ich auch bekommen.

9 Mai 2019

Porrada Geek! #37

Die Mittwoch-Trainingstage fallen mir immer etwas schwerer. Die Ruhepause zum Montag ist kurz und meine alten Knochen wollen sich noch nicht auf das geforderte Fitnesslevel einstellen. Ich muss jedoch auch zugeben, dass ich meine Morgenroutine seit der “harten” Phase meines Schnupfens sträflich vernachlässigt habe. Das kann so nicht weitergehen.

Weiter ging es mit den Armbars oder besser gesagt Submissions aus der Side Control heraus. Diesmal kam der Americana Griff dran. Der hat mir sehr gut gefallen. Meine Trainingspartnerin war nicht so lang wie ich und deswegen hatte ich Schwierigkeiten meine langen Armen um Ihr kürzeren zu positionieren. Aber es klappte ganz gut.

Das Problem mit dem “nicht verwendeten Gewicht”, das ich im letzten Post erwähnt habe, war immer in meinem Hinterkopf. Und ich denke, beim Sparring habe ich auch gut darauf geachtet. Wobei mir fatale Fehler unterlaufen sind. Ich wurde sogar einfach über den Kopf geworfen. Wenn man schon sein Gewicht einsetzt, dann sollte man das auch auf dem Gegner machen und nicht in einer Position die Vorteilhaft für den Gegner ist.

7 Mai 2019

Porrada Geek! #36

Mein Trainer ist zurück und es geht im gewohnten Gang weiter. Für das Training unserer Blaugurte möchte ich mich jedoch bedanken, das war sehr gut. Solltet Ihr Interesse an BJJ haben und es gibt keinen Schwarzgurt in Eurer Nähe, dann nicht verzweifeln. Wenn der Trainer motiviert ist, dann ist die Gürtelfarbe egal. Wie ich schon geschrieben habe ist Brazilian Jiu-Jitsu wie eine neue Sprache zum Lernen. Am Anfang kann Dir jeder helfen, der die andere Sprache spricht. Man braucht die Basis, die Nuancen kommen später.

Das neue Thema schließt nahtlos an. Es geht mit der Side Control weiter, jedoch diesmal Konzentration auf den oberen Part und was dieser manchen kann. Wir haben die Armbar am Near Arm und am Far Arm geübt. Und das auch im Positionssparring vertieft. Ein Punkt hat sich durch mein ganzes Training gezogen. Ich bin immer noch sehr zurückhaltend was mein Gewicht betrifft. Unterbewusst halte ich mein Gewicht weg vom Gegner, in dem ich mich zum Beispiel auf meinen Knien aufstütze oder es auf das Bein verlagere, das nicht auf dessen Körper ist. Dadurch ist er immer beweglicher oder kann mich aus der Balance bringen. Und ich höre manchmal einfach zu früh auf. Da habe ich echt noch space for improvement.

30 Apr. 2019

Porrada Geek! #35

Wie schon beim letzten Mal geschrieben, haben wir das Kapitel Escapes aus der Side Control heute zu Ende gebracht. Nur war die Wiederholung nicht so, wie ich es mir vorgestellt habe. Wir sind alle 6 Escapes im Schnelldurchlauf durchgegangen, zu schnell für mich. Und danach haben wir 6 Stationen erstellt und haben an jeder Station 3 Minuten unten und 3 Minuten oben mit wechselnden Partnern geübt. Also eigentlich habe ich Alle genügend ausgeführt. Jedoch weiß ich nicht, ob ich die wiedergeben kann. Zu viel Input bei den Escapes die ich nicht im “normalen” Training mitbekommen habe. Mein Notizbuch wird mit hoffentlich helfen alles zusammenzubekommen.

Meine Kondition ist immer noch meine Schwachstelle. Ich sollte unbedingt etwas dagegen machen. Ich fühle mich älter, als ich bin nach dem Aufwärmen.

25 Apr. 2019

Porrada Geek! #34

Nach zwei Wochen bin ich endlich wieder in Training gegangen. Die Erkältung, dich ich seit gefühlt Weihnachten mit mir herumschleppe, ist ausgebrochen. Einen Tag war ich komplett außer Gefecht gesetzt und den Rest bin ich mit dumpfem Kopf und Triefnase durch die Gegend gelaufen. Und trotzdem habe ich es noch nicht komplett überstanden. Das habe ich wieder beim Aufwärmen und später beim Sparring gemerkt. Bin auf dem Muskelkater morgen gespannt. Über die Osterferien, die gerade sind, ist mein Trainer in Brasilien. Deswegen wurde das Training von einem unserer Blue Belts übernommen mit dem kompletten Curriculum Escape aus der Sidecontrol. Das habe ich jetzt leider verpasst. Zum Glück hat er gestern 3 der 7 Bewegungen im Drill durchführen lassen, damit konnte ich diese üben. Dafür habe ich mir auch gleich einen anderen Blue Belt geschnappt, um so die verlorenen Informationen besser zu bekommen. Und am Montag will er uns die Letzte und einen Schnelldurchlauf durch alle 7 geben. Dann bin ich doch nicht so ganz im Tal der Unwissenden.

9 Apr. 2019

Porrada Geek! #33

Heute haben wir das Thema Escape aus der Side Guard abgeschlossen. Da unser Trainer über Ostern für zwei Wochen nach Brasilien geht, rundete er es mit zwei Sahnehäubchen ab. Die Calf Slicer und die Banana Split Submission. Beide haben den gleichen Anfang wie alle unsere Übungen in diesem Themenblock. Knee Shield, einducken in die Half Guard, mit dem Kopf Auftauchen um in die Turtle Position zu landen. Ich hoffe doch, das ist die Turtle Position und nicht etwas anderes.

Beide Submissions greifen die Füße an, um diese in einen Lock zu bekommen. Der Calf Slicer den rechten Fuß des Gegners. Am Ende hält man den Fuß fest und gleichzeitig drückt man in mit dem noch vorhandenen Hook und der Kraft des Rückens und der Hüfte weg. Das verursacht einen massiven Druck auf das Schienbein und das Knie des Gegners. Beim Banana Split greift man den linken Fuß des Gegners. Nach einer Rolle auf den eigenen Rücken hält man den rechten Fuß noch mit dem Hook. Vom linken Fuß greift man jetzt den Oberschenkel des Gegners. Dieser liegt jetzt mit weit auseinandergezogenen Schenkeln über einem und wird so in den Spagat gezwungen.  Deswegen Banana Split und das ist schmerzhaft.

Beim Positionssparring habe ich dann wieder fleißig versucht das gelernte umzusetzen. Das stellt sich jedoch immer komplizierter heraus. Schon alleine die explosive Brücke durchzuführen, um sich Platz zu verschaffen, den Gegner gesichert im Knee Shield zu halten oder auch nur in der dominanten Full Guard weiterzumachen und einen Vorteil zu bekommen. Ich habe da immer noch ein dickes Fragezeichen im Gesicht.

Zusätzlich bin ich immer im Berserker-Modus und powere mich komplett aus. Nach 2-3 Runden (2 Minuten oben, 2 Minuten unten) bin ich dermaßen kaputt, dass ich nur noch liegen bleiben will. There is space vor improvement.

4 Apr. 2019

Porrada Geek! #32

Neues Kapitel. Escape aus der Side Control. Doch davor gab es den Drill der “Drillinge” vom letzten Mal. Und wieder konnte ich erleben, dass Übung den Meister macht. Die Abläufe liefen besser ab, wenn auch immer noch sehr langsam und holprig.

Der neue Escape war vom Bewegungsablauf nicht allzu kompliziert. Der Gegner ist auf einem und hat den Cross Face. Man blockiert mit der einen Hand die Schulter. Mit der Anderen dreht man seinen Kopf in die Gegenrichtung. Dann dreht man die eigene Hüfte leicht nach Außen, um den Escape vorzubereiten. In einer Bewegung geht man in die Brücke, schiebt den Kopf des Gegners auf die Seite der blockierten Schulter um sich Platz zu schaffen mit einem kurzen Hip Escape das Knie an die Hüfte und damit zwischen sich und dem Gegner zu bekommen. Danach streckt man den Rücken, um aus der Klammerung des Gegners zu kommen und hebt das Knie hoch zum Knie Shield an seine Schulter. Damit wäre man wieder in der Eingangsposition zu den Drillingen.

Ich habe nur einen Kommentar im Augenblick dazu. Meine Beine sind zu lang für meine unbewegliche Hüfte. Dieser Escape ist mal wieder eine Herausforderung für mich. Das habe ich auch schon beim Aufwärmen gemerkt. Wir haben natürlich zur Vorbereitung der Übung entsprechende Aufwärmungsübungen gemacht. Ich habe mich schon lang nicht mehr so unbeweglich gefühlt. Diese werden an jetzt Bestandteil meiner Morgenroutine werden.

2 Apr. 2019

Porrada Geek! #31

Heute haben wir das Thema Half Guard zu Ende gebracht. Aus der Closed Guard mit dem Knee Shield ran an den Gegner in die Half Guard. Und von dort aus in drei Varianten weiter.Einmal über den Dogfight den Gegner auf dem Rücken bringen. Das waren die Übungen aus meiner Fehlwoche. Dank einer Schnelleinweisung mir jetzt nicht mehr unbekannt, jedoch in der Umsetzung hapert es. Der zweite Weg ist, wenn der Gegner den Kopf umfasst. Dann bringt man sein Gewicht auf seine Hände und rollt unter seinem Schwerpunkt über den eigenen Rücken in die Side Mount. Ja es für mich auch so komplex wie es sich gerade für euch anhört. Der dritte Weg war das Thema von letztem Mittwoch. Mit dem Kopf auftauchen und den Gegner auf dem Bauch bringen, um in die Rear Mount zu kommen. Auch wenn es diesmal ein wenig besser klappte, ich habe mit meinen langen Beinen noch echte Probleme nicht an den Gis und Gürteln meiner Gegner hängenzubleiben.

Das Sparring schlaucht mich immer noch. Ich zwinge mich zwar keine Runde auszusetzen, jedoch nach zwei Runden bin ich kaum noch zu gebrauchen. Dann baue ich auch mental ab. Meine dritte Runde habe ich mit einem der Neuen gemacht. Ich könnte jetzt nicht von mir behaupten, dass ich ihn überlegen war. Für mich ist das ein Zeichen, dass ich immer noch zu analytisch die Sache angehe.  Nun ja, dafür bin ich ja im Training.

28 März 2019

Porrada Geek! #30

Ich habe mich zu einer Zwangspause entschlossen. Die Erkältung, die ich herumschleppe, wollte ich auskurieren. Wie es aussieht, ist das immer noch nicht der Fall. Wieder war ich im Training komplett kaputt auch total durchgeschwitzt. Ich muss wohl mit härteren Bandagen kämpfen dagegen ankämpfen.
Ansonsten war das Training gut. Am Montag wurde mit einem neuen Kapitel begonnen. Aus der Closed Guard in die Side Mount. Der Bewegungsablauf war echt wieder eine Herausforderung, ich konnte mich jedoch gut schlagen. Mein Trainingspartner hatte auch Lob für mich. Dies hat mich aufgebaut nach 1 1/2 Wochen Pause.
Am Ende wurde das Positionssparring neu aufgestellt. Es waren 4 “Stationen” und der Rest hat in einer Reihe gewartet. Wenn eine Paarung eine Endposition erreicht hat, wechselte der aus der Reihe durch. Nach einer bestimmten Zeit wechselte derjenige in der Station durch. Die Wartezeit in der Schlange, die mich am Anfang ein wenig gestört hat, wurde gegen Ende mein bester Freund.
Apropos Warteschlange. Ich war überrascht, wie viele wir jetzt im Kurs sind. Ein paar neue Gesichter und irgendwie waren auch alle da. Das waren echt ne Menge Leute.

Meinen kaputten ersten Gi habe ich auch in der Zwischenzeit zurückgeschickt. Ich bin, was das betrifft, eigentlich ein sehr sentimentaler Mensch. Aber ich habe mich überwunden. Einem alten Hund kann man doch Tricks beibringen. Der Support von BJJFightgear.com war auf jeden Fall sehr hilfreich und zuvorkommend. Und ein besseres Modell plus ein neuer Gürtel sind dank Rabatt ohne Aufpreis schon auf dem Weg zu mir.
Letzten Mittwoch hätte ich übrigens sowohl das 30. Training wie auch, fast auf den Tag, ein halbes Jahr BJJ gehabt. Aber ich will ja nicht sentimental sein. =)

13 März 2019

Porrada Geek! #29

Heute ging es weiter mit der Wettkampfanalyse. Der Schwerpunkt diesmal war eine weitere Option in der Closed Guard, sollte der angedachte Choke nicht funktionieren. Angedacht war, dass man den Schwung des Gegners ausnutzt, um ihn umzuwerfen und dann in der Mount zu landen. Eine Bewegung die, natürlich, Kraft in der Hüfte benötigt. Ganz mein Ding, nach dem Training am Montag. Mein Trainingspartner war auch meine Gewichtsklasse und Größe und schon hatte ich Probleme ihn umzuwerfen. Ich habe noch soooo viel zu lernen.

Als Nächstes wieder eine Armbar. Juji Gatame, wenn ich mich noch recht erinnere. Das ist eine Bewegung, die mir sehr liegt, auch wenn ich heute nicht so lange dazugekommen bin sie zu üben.

Die letzte Übung war das Behalten der Kontrolle, wenn der Gegner aus der Closed Guard ausgebrochen ist und versucht mit Griffen an die Hose in die Side Control zu gelangen. Dies hat meiner Hose den letzten Rest gegeben. Jetzt ist eine Neue fällig.

Das Sparring war heute wieder sehr anstrengend und ich habe wieder viele Blessuren mitgenommen. Auch durch das ständige Greifen kann ich kaum noch meine Finger bewegen. Ich erwarte den Tag so sehnsüchtig, an dem ich nach dem Training angestrengt aber nicht kaputt bin.

12 März 2019

Porrada Geek! #28

Am Wochenende war mein Team auf der Submissão 2019. Sie haben sich wacker geschlagen, jedoch nur einem Sieg errungen (interessantes Wort, eigentlich sollte ich erjiujitsut schreiben). Deswegen stand das Training unter dem Motto Fehlerkorrektur.

Angefangen haben wir mit der Armbar. Diese hatte ich ja schon im Trainingsplan, sie zu wiederholen war sehr gut. Ich habe sie zwar grob verstanden, aber beim Sparring konnte ich sie nicht abrufen.

Danach gab es die Wiederholung der “Forcing the guard”. Auch hier konnte ich ein paar mehr Details abgreifen. Wobei ich immer noch feststellen muss, dass meine Kondition und meinen Gelenkigkeit der Hüfte sehr zu wünschen übrig lassen.

Das Sparring hat mich wieder komplett fertig gemacht, aber ich habe diesmal alle drei Runden mitgemacht, auch wenn ich die Pausen in die Länge gezogen habe. Und hey! Mir ist diesmal sogar eine Armbar gelungen. Und das bei meinem Trainingskollegen, dem ich in etwa auf meiner Stufe sehe.

6 März 2019

Porrada Geek! #27

Weiter ging es mit den Chokes. Diesmal war es der Baseball Choke mit dem eigenen Gi. Ich finde es immer wieder faszinieren, wie man den Stoff des Gegners oder auch den eigenen benutzt, um damit die Überhand zu gewinnen. Auf der anderen Seite frage ich mich dann auch immer, warum man auf dieser Tradition beharrt. Schließlich haben die Gracies ja auch mit den Traditionen des Jiu Jitsu gebrochen, um daraus das effektivere Brazilian Jiu Jitsu zu entwickeln.

Ich muss da an die ersten UFC Veranstaltungen denken, bei denen Royce Gracie in kompletter Gi Montur angetreten ist und trotz diesem “Nachteil” alle weggefegt hat. Auch fällt mir das Video von Chewjitsu ein, bei dem er spaßeshalber zeigt, dass das Gi tragen und damit kämpfen doch nicht so ganz unrealistisch ist.

Insgesamt geht es mir immer noch nicht viel besser. Ich bin sehr schnell aus der Puste und mir ist sehr heiß während des Trainings. Ich denke, dass ich eine Erkältung in mir habe, die noch nicht ausgebrochen ist oder es ist immer noch die von Anfang des Jahres, die ich nicht auskuriert habe.

5 März 2019

Porrada Geek! #26

“In die Guard ziehen”. Wieder so ein Spruch der mich daran erinnert, dass BJJ lernen wie eine fremde Sprache lernen ist. Es bedeutet genau das, was es sagt. Aus dem Stand den Gegner auf den Boden und meine Closed Guard ziehen. Interessant war, wie ich sofort wieder an die De la Riva gedacht habe. Sollten das die ersten Anzeichen sein, das ich Verbindungen erkenne?

Auch hat mich eine kurze Session mit dem Kollegen vom letzten Mal, etwas Neues in meiner Postura zu erkennen.

Thema der Trainings waren heute 4 Chokes aus der Closed Guard heraus. Helio-Choke, Cross-Choke, den umgekehrten Helio Choke, wenn man die erste Hand nicht sauber platziert hat (so nenne ich ihn, da mit der Name gerade nicht mehr einfällt), und einen bei man den Arm Richtung Becken drückt damit den Gegner mit seiner eigenen Schulter choked.

20 Feb. 2019

Todo.txt - Die einfache ToDo Liste

Ich bin immer auf der Suche nach eine Möglichkeit meine Aufgaben zu notieren, damit ich auch nichts vergesse. Und so habe ich über die Jahre schon viele ToDo Programme durchprobiert. Nicht viele haben mich langfristig an der Stange gehalten.

Im Büro verwende ich Outlook. Als zentrale Stelle für Kalender und Emails ist es auch der richtige Ort für meine Aufgaben. Und die Kopplung zu OneNote ist mehr als gut. Zusätzlich habe ich noch ein paar Helferlein, die meine Arbeitsweise noch mehr unterstützen.

Jedoch steht mir diese Umgebung privat nicht zur Verfügung. Ich habe etwas gesucht, dass einfach und über alle meine Systeme hin benutzbar ist. Und dabei bin ich auf eine simple Textdatei gestoßen.

ToDo.txt ist nicht nur der Name der Textdatei, nein es ist ein ganzes System ausgedacht von Gina Trapani. Sie hat diverse Namenskonventionen festgelegt, um in einer simplen Textdatei Aufgaben zu sortieren und bearbeiten. Alles nachzulesen auf dieser Seite.

So sieht eine Zeile und damit eine Aufgabe im Maximum aus.

Das erste Zeichen “x” ist die Checkbox, ob eine Aufgabe erledigt ist oder nicht. Gefolgt von der Priorität in runden Klammern. Danach Data für den Abschluss und Erstellung. Gefolgt vom eigentlichen Aufgabentext und den Merker für Projekte “+” und Kontext “@”. Zum Schluss die Deadline.

Wie man sieht, beinhaltet die Zeile alle Informationen die notwendig sind. Und mit einem ordentlichen Texteditor wie unser beliebtes Notepad++ kann man ohne Probleme z.B. alle Zeilen die als Projekt “+Wohnung” haben sofort finden. So habe ich eine Zeitlang alle meine Aufgaben verwaltet. Einen kleinen Teaser habe ich ja in meinem “Jedi Tricks – Windows - Tastatur Shortcuts” Beitrag erwähnt.

Und damit sind wir bei dem riesen Vorteil dieser Methode. Die Textdatei kann mit Allem bearbeitet werden und ist damit super flexibel. Und das eröffnet auch gleich alle Tore, um allerlei kompatible Programme zu erstellen. Sehr viele findet man auf der Homepage https://todotxt.org/

Nachdem ich vom Notepad++ als ToDo.txt Editor weggegangen bin, habe ich das kleine portable Tool todotxt.net verwendet. Eine simple GUI mit vielen Keyboard Shortcuts. Genau was ich liebe.

Trotzdem habe ich immer sehr neidisch auf Gina geschaut. Denn das eigentliche Tool, das Sie geschrieben hat, ist ein Kommandozeilen Tool (cli - command line interpreter). Wunderschön und simpel, aber nur für Mac oder Linux. Für Windows / DOS gibt es leider nichts.

Also gab es nur eine Möglichkeit. " Massimo setzt dich hin und programmiere es selbst!"

Und so ist es entstanden. Ich habe mir ein rudimentäres Grundgerüst geklont und die letzten Tage immer mehr Features ran gebaut. Jetzt habe ich ein kleines feines Python Programm, dass meine ToDo.txt nach den Regeln bearbeitet. Es ist noch nicht ganz fertig und ich werde noch mehr Funktionen einbauen, die den Tastaturkürzeln von todotxt.net entsprechen.

Ich nehme gerne Wünsche und Anregungen entgegen. Downloaden und Kommentieren könnt Ihr es auf der dazugehörigen Github Seite.

3 Feb. 2019

Don't tap the white tile - AutoHotkey Bot

Ich sehe gerade, dass ich hier noch nie etwas über Phrase Express und AutoHotkey geschrieben habe. Das Eine vorher, das Andere jetzt, sind eigentlich mein Rückgrat in meiner täglichen Arbeit. Das muss ich unbedingt als Jedi-Tricks verbloggen.

Doch kommen wir zur Überschrift.

Ich bin vor Kurzem auf dieses Video von CodeBullet ( Channel) gestoßen. In diesem erstellt er ein Python Bot für das Spiel “Don’t tap the white tile” oder “Piano Tiles” auf sehr unterhaltsame Weise. Ich kann euch eh den ganzen Kanal nur empfehlen.

Das hat mich auch inspiriert. Ich habe schon vor Monaten mal versucht mit Python Forza Horizon 2 auf der XBox zu steuern. Das klappte jedoch nicht so gut, da das Koppeln des PCs mit der XBox mehr schlecht als recht war. Also am besten ein Spielt auf dem PC steuern. Da ich aber kein Abklatsch machen wollte, habe ich mir vorgenommen, dies mit AutoHotkey zu realisieren.

Ich habe das Spiel online auf dieser Seite gefunden. Der Bot und die Zeiten und Koordinaten sind auf diese Version eingestellt. Das muss natürlich von Umgebung zu Umgebung angepasst werden.

Das Skript startet mit den üblichen Umgebungseinstellungen für AutoHotkey.

#SingleInstance, force
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

Der nächste Block ist die Umgebung für den Bot. Mit persistent wird der Bot am Laufen gehalten. Deswegen wird er auch sofort pausiert.

Dann folgt der Settimer Befehl mit dem ich die Unterroutine spalte1 jede 10 Milisekunden (laut AutoHotkey Dokumentation nur annähernd) aufrufe. Zu den Unterroutinen komme ich gleich.

Und ganz wichtig bei Skripten, die Eingaben und die Maus steuern immer! eine Möglichkeit einbauen um das Skript zu pausieren oder gar abzuschalten. Ich habe F1 als Pause/Play Taste und ESC als Abbruch des Skriptes. Im Video von CodeBullet kann man schön sehen, was passieren kann, wenn man das vergisst.

#persistent
pause
Settimer, spalte1, 10

F1::pause
esc::exitapp

Jetzt kommen die Subroutinen für jede Spalte des Pianos. Diese gibt es natürlich vier mal mit verschiedenen Koordinaten.
Nach der Sprungmarke spalte1 wird der Befehl PixelSearch verwendet. Mit diesem kann man einen Bereich definieren, in dem nach einer Farbe gesucht wird. In unserem Fall 0x111111 für Schwarz. Diese Suchen wir in einem Rechteck mit den Koordinaten links oben 590,630 und rechts unten 620,660. Dieses befindet sich in der zweiten Reihe von unten und umfasst etwa immer das mittlere Drittel einer Tile wie im Screenshot zu sehen ist.

Wenn in dem genannten Bereich die Farbe nicht vorkommt, dann gibt PixelSearch einen Fehler aus den ich mit ErrorLevel abfangen. D.h. wenn ein Fehler ausgegeben wird, dann ist das Suchfeld nicht Schwarz, also Sprung zur nächsten Spalte. Ansonsten fahre ich mit der Maus an die vorgegeben Koordinaten und klicke. Die Koordinaten sind immer in der Mitte der Tile und am untersten Ende.

spalte1:
    PixelSearch, , , 590, 620, 630, 660, 0x111111, 0, Fast
    if ErrorLevel
        goto spalte2
    else
        MouseClick, left, 600, 710
        ;Send a
    return

Diese Routine wiederholt sich jetzt viel mal für jede Spalte. Nur bei Spalte 4 ist anstelle des goto auch ein return, da keine weitere Spalte folgt.

Die Suchkoordinaten, wie auch mit dem Klick Position, habe ich durch sehr langes ausprobieren eingestellt. Das sind die Stellen, an denen man schrauben muss, um den Highscore nach oben zu kitzeln.

Wie Ihr auch sehen könnt, habe ich Send a auskommentiert. Ich dachte, zuerst kann ich einfach nur die Taste klicken lassen. An Anfang ist jedoch das Spiel so langsam, dass der Bot ein schwarzes Feld doppelt erkennt und deswegen doppelt drückt. Die Maus zu positionieren und dann zu klicken hilft den Bot zu bremsen. Das ist jedoch, im späteren Verlauf, der Grund warum der Bot zu langsam ist. Hier habe ich schon eine Idee mit einem Zähler oder Timer, der ab einem bestimmten Zeitpunkt von Maus auf Tastatur umspringt und somit schneller wird.

Mit dieser Methode jedoch erreiche ich immer Highscores über 400 Punkte. Mein bisheriger Rekord ist bei 509.

Den Rekord vom Python Skript vom CodeBullet werde ich jedoch nicht so schnell erreichen, da AutoHotkey insgesamt etwas langsamer bei der Bilderkennung ist. Auch schwankt die Performance des Skriptes immens. Aber ich bleibe dran und melde mich, wenn ich einen Schritt weitergekommen bin.

Warum ich weiter mache? Weil ich auf dieses Video gestoßen bin. Das ist scheinbar auch ein AutoHotkey Bot, der sage und schreibe 9 Stunden gelaufen ist und 176.573 Tiles geklickt hat. Also muss es eine bessere Lösung geben.

Falls ich Euch inspiriert habe oder Ihr sogar Lösungsvorschläge für mich habt, dann könnt Ihr mich gerne über Twitter oder per Mail kontaktieren.

Zum Schluß der Code. Einfach als *.ahk Datei abspeichern, per AutoHotkey ausführen und das Spiel auf der Webseite öffnen.

#SingleInstance, force
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
CoordMode, Pixel , Client
timevar := 10

#persistent
 pause
;  timevar -= 0.23
 Settimer, spalte1, %timevar%

F1::pause
esc::exitapp

 spalte1:
 PixelSearch, , , 590, 620, 630, 660, 0x111111, 0, Fast
 if ErrorLevel
 goto spalte2
 else
 MouseClick, left, 600, 710
;  Send a
 return

 spalte2:
 PixelSearch, , , 690, 620, 730, 660, 0x111111, 0, Fast
 if ErrorLevel
 goto spalte3
 else
 MouseClick, left, 700, 710
;  Send s
 return

 spalte3:
 PixelSearch, , , 790, 620, 830, 660, 0x111111, 0, Fast
 if ErrorLevel
 goto spalte4
 else
 MouseClick, left, 800, 710
;  Send d
 return

 spalte4:
 PixelSearch, , , 890, 620, 930, 660, 0x111111, 0, Fast
 if ErrorLevel
 return
 else
 MouseClick, left, 900, 710
;  Send f
 return