Der 2. Platz der Code Competition Markdown Parser
… geht an Maurice – Herzlichen GlĂŒckwunsch!
Maurice hat mit seiner Lösung ĂŒberzeugt und den zweiten Platz bei der Code Competition “Markdown Parser” erreicht. Herzlichen GlĂŒckwunsch!
Im Interview stellt er sich und seine Lösung vor.
IT-Talents: Hallo Maurice, herzlichen GluÌckwunsch zu Deinem zweiten Platz bei der Code Competition âMarkdown Parserâ! ErzĂ€hl den anderen IT-Talenten doch kurz etwas uÌber Dich.
Maurice: Einfach direkt? Gut. Ich nenne mich selbst immer angehender Schauspieler und Software Entwickler. Aber letzteres ist hier wohl mehr von Bedeutung. Im Grunde bin ich einfach jemand, der kreativ sein will und sich ein klein wenig in Node.js und JavaScript verliebt hat. Und daneben noch alles andere liebt, was modular ist und Projekte auf die Beine bringt. Ansonsten? Ich liebe es, am Ende des Tages auf mein Projekt zu schauen und zu sagen: âWow, das ist sauber” oder âWow, dein Algorithmus funktioniert ja tatsĂ€chlichâ.
IT-Talents: Was hat Dich motiviert, an der Competition teilzunehmen und wie bist Du auf den Wettbewerb aufmerksam geworden?
Maurice: Ich habe die kleinen Werbebanner bei Facebook mitbekommen und mich dafuÌr interessiert. Ich entwickle schon sehr lange, und dachte mir: So etwas wie eine Code-Competition kann ja nicht schaden. Es war tatsĂ€chlich meine erste ĂŒberhaupt. Bis dato waren meine Projekte immer beruflich oder privat. Und auĂerdem hatte ich unheimliche Lust, mal einen Markdown Parser zu entwickeln. Ich arbeite im Sinne von NPM und GitHub ja tĂ€glich mit MD und die Herausforderung gefiel mir. Ich bin grundsĂ€tzlich ein Entwickler der es liebt, alles selbst zu machen. Ich sehe es als wichtig an, dass jeder auch Vanilla JavaScript beherrscht besonders bei einer Sprache wie JavaScript die mit NPM die wohl aktivste Community der Welt hat. Ja es gibt fuÌr alles ein Framework, aber man sammelt viel Erfahrung wenn man alles auch mal selbst gemacht hat. AuĂerdem brauchte ich fuÌr meine private Website (https://maurice-conrad.eu) noch einen Markdown Parser weil erstens jedes des einzelne Modul, jede einzelne Zeile HTML, CSS und Javascript dort mein vollkommen eigenes Handwerk ist lediglich der Markdown Parser nicht. AuĂerdem war der nicht sonderlich gut sondern sehr verbuggt.
IT-Talents: Spannende Geschichte! Wie bist Du an die Lösung der Aufgabenstellung herangegangen? Hattest Du schon Erfahrung mit der Arbeit mit Parsern und deren Funktionsweise?
Maurice: Ich habe natuÌrlich vorher noch keinen Md-Parser entwickelt, sonst wĂ€re das, denke ich, langweilig geworden. Allerdings hatte ich zuvor schon mal einfach aus Prinzip einen XML Parser fuÌr Node.js entwickelt. Nicht weil es keine gĂ€be, sondern weil ich es einfach mal machen wollte Ich habe es einfach partout nicht eingesehen, warum ich keinen Xml Parser schreiben könnte. Und ansonsten hat man natuÌrlich immer wieder mit String-Manipulationen zu tun, ein bisschen parsed man ja öfter mal hier und da.
IT-Talents: Du hast Dich fuÌr eine Lösung der Aufgabenstellung in JavaScript entschieden, wieso?
Maurice: Weil ich mich in der Umgebung von Javascript am wohlsten fuÌhle. Ich mag die ModularitĂ€t von Node.js und die ECMA Script 2016 bietet einfach groĂartige Möglichkeiten. Ich komme am besten mit Javascript klar, AuĂerdem ist die Sprache, insbesondere Node.js stetig am wachsen.
IT-Talents: Welche Probleme sind bei der Entwicklung der Software aufgekommen? Wie lange hat die Entwicklung gedauert?
Maurice: Die Entwicklung hat im Grunde ca. 4-5 Nachmittage und NĂ€chte gedauert. So genau weiĂ ich das nicht mehr, daher ist meine SchĂ€tzung sehr grob. Ca. 8 – 12 reine Arbeitsstunden. Probleme gab es am Anfang damit, dass ich vorher keine regulĂ€ren AusdruÌcke im groĂen Stil verwendet hatte. der Xml Parser zum Beispiel basiert fast ausschlieĂlich auf reinen String-Operationen ohne regulĂ€re AusdruÌcke. Und manchmal war es schwierig mir klar zu machen, was ich jetzt genau eigentlich will. Z.B. dass ich mich nicht entscheiden konnte, ob gewisse modulare Ideen sinnvoll sind oder nicht. Wenn man sich das Projekt ansieht, stellt man sich fest dass die Möglichkeit zum âexcludingâ von Features, die Tatsache dass ich eigene Markdown Spezifikationen dazu erfunden habe und ganz offen in der Dokumentation von âcustom rulesâ spreche, dass mir ModularitĂ€t sehr wichtig ist. NatuÌrlich ist meine persönliche Umsetzung des abbr-Tags in Markdown keine weltbewegende Sache, es ging mir mehr ums Prinzip. Und auch meine Umsetzung von summary oder iframe ist eher eine prinzipielle Idee als eine Revolution des Markdown per se. Ich wollte damit und eben auch mit der Erweiterung bestehender Elemente wie den Alphabetic und Roman Liste Items oder der Erweiterung des img-Tag mit {WIDTHxHEIGHT} zeigen, das man kreativ sein kann und ModularitĂ€t sich bezahlt. Meinen Parser kann man sowohl online unter https://dev.mauriceconrad. eu/markdown kann man den Parser live ausprobieren. Ansonsten befindet er sich noch bei GitHub und NPM (Und kann daher auch als CLI genutzt werden).
IT-Talents: Und was hast Du durch die Entwicklung gelernt?
Maurice: Dass regulĂ€re AusdruÌcke gar nicht so böse sind, sie aber gleichzeitig aber auch nicht allmĂ€chtig sind, wie manche Menschen glauben, also niemals einen echten eignen Algorithmus ersetzten. Und dass man sogar Code kommentieren kann, wenn man will. Ich habe Kommentare fruÌher nie konsequent gemacht, wurde immer schnell zu faul dafuÌr. Aber diesmal habe ich mich wirklich am Riemen gerissen und versucht alles zu kommentieren đ
IT-Talents: Zu guter Letzt: Was wuÌrdest Du Dir thematisch gerne einmal als Code Competition wuÌnschen?
Maurice: Ich persönlich bin ein groĂer Fan von OpenData und APIâs. Es ist schon vorgekommen, dass mir meine lokale Verkehrsgesellschaft keine API fuÌr ihren Routenplaner oder die Echtzeitdaten der Busse und Bahnen gegeben hat und ich mich dann einfach selbst daran gemacht habe, ihren Planer zu crawlen und biete seit dem Tag eine API auf meinem Server an. Das gleiche gilt fuÌr die Echtzeitdaten. Ebenso befindet sich auf meinem GitHub und NPM Account ein Modul, welches die API des ZDF Players anzapft und dadurch einen Downloader anbietet. NatuÌrlich ist Crawling von fremden Diensten keine Aufgabe fuÌr eine offizielle Code Competition aber wie wĂ€re es, wenn es mal darum ginge eine eigene API zu implementieren? Die Daten könnten ja aus einfachen dafuÌr bestimmten DatensĂ€tzen kommen. Ich glaube, das wuÌrde viele junge âIT-Talentenâ gefallen.
IT-Talents: Vielen Dank fuÌr Deine Teilnahme, das Interview und viel SpaĂ mit Deinem Gewinn đ
RĂŒckmeldungen