Skip to content
View JohannesNaegele's full-sized avatar

Block or report JohannesNaegele

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JohannesNaegele/README.md

A guide through my projects and GitHub repositorys

This page will hopefully be translated to English someday.

Hier möchte ich eine kleine (sehr unvollständige) Übersicht zu allem Möglichen, das ich so mache, erstellen. Mittlerweile verliere ich nämlich langsam selbst manchmal den Überblick über alle GitHub-repositorys, sodass das langsam mal an der Zeit ist. Außerdem möchte ich auch gerne Links und Projekte weitergeben, die ich für cool und/oder hilfreich befinde.

Falls jemand etwas interessant findet oder mehr Informationen haben möchte, macht gerne ein Issue auf oder schreibt eine Mail.

Lehre

Programmierkurs Julia (FSS 2023, 2024)

Über die Jahre habe ich einige Kurse zu R, Julia und Datenanalyse gehalten. Das deutschsprachige Material zum Julia-Einführungskurs findet sich hier.

Stochastik I (HWS 2021)

Immerhin hab ich hier wenn schon nicht mega viel inhaltlich, dann doch wenigstens gestalterisch einiges beigesteuert (Videoschnitt, Grafiken, etc.). Die Vorlesung ist cool; jedem der Interesse an einer sauberen maßtheoretischen Einführung in die Stochastik hat, kann ich sie nur empfehlen. Interne Links zum Legacy-Skript-Repo und zum YouTube-Animationen-Repo.

YouTube-Playlist und Website

Abschluss- und sonstige Uniarbeiten

Bachelorarbeit

Hier ging es darum, die Berechnung genetischer Verwandtschaftsmatrixen mittels GPUs zu beschleunigen. Insbesondere ging es um 1-Bit-Matrixmultiplikation ab der Turing-Generation in Verbindung mit Cutlass. Der Code findet sich hier. Demnächst wird dazu ein verbesserter (nicht-naiver) Tiling-Algorithmus implementiert.

Masterarbeit

Hier wird es wahrscheinlich um Econophysics gehen, insbesondere wealth-tails.

Seminar Adaptives MCMC

Ganz nette Slides.

Seminar Transformer

Ebenfalls nette Slides, aber ohne Erklärung nicht wirklich hilfreich. Deshalb intern.

Seminar zu Energienetzen

Tatsächlich kam hierbei wenig Gehaltvolles bei rum (und ich habe immer noch nicht verstanden, wie genau powerflow equations funktionieren). Allerdings habe ich mittlerweile eine ganz gute Ahnung, wie Energienetzmodelle mit PyPSA und Datenbanksystem umgesetzt werden; außerdem bin ich der Überzeugung, dass eine Integration von Wetter- und Energienetzmodellen in Konjunkturmodelle gewinnbringend wäre (work in progress).

Klimavorlesung

Hier ein paar nette Grafiken zu einer Klimamodellierungsvorlesung, die aber zum Teil etwas Kontext benötigen.

Programmierung

Stock-flow consistent models (Replikation und Paketentwicklung in Julia)

Ein sträflich vernachlässigtes Projekt ist die Implementierung einer Julia-Bibliothek für SFC models. Die Idee war: Julia ist grundsätzlich schneller als R (was für viele, aber längst nicht alle Anwendungen egal ist). Außerdem sind Autodiff-Fähigkeiten und die dazugehörige Paketlandschaft relevant. Das ist alles relevant für Parameterkalibrierung, Modelinitialisierung und stochastische Modifikationen (Adjoint Methods, auch etwa bayesianische Kalibrierung). Ich bin mir aber noch nicht ganz im Klaren darüber, ob die Paket-API und -Syntax aktuell gut ist. Das ist btw auch interessant, weil sich natürlich die Dynare-Julia-Implementierungen mit ähnlichen Fragen befassen müssen.

Ich bin mittlerweil ziemlich desillusioniert was die Sinnhaftigkeit dieses Modellierungsansatzes angeht. Dazu ein andermal mehr. TLDR: Aus verschiedenen Gründen hätte ich gerne mehr Stochastik drin, es ist aber methodologisch unklar wie man diese wählt oder kalibriert und daher eigentlich immer ziemlich arbiträt. Das Fass zum Überlaufen gebracht hat damals mein Replikationsprojekt eines österreichischen Modells, das auf den ersten Blick gut aussah – die österreichischen Daten wurde nett approximiert und prognostiziert. Nur leider stellte sich bei der unmittelbaren Übertragung auf deutsche Daten raus, dass für fast alle naheliegenden Parameterkalibrierungen das Modell einfach unmittelbar crasht (Fixpunkt mit Nonsens-BIP etc.).

Aktueller Code hier und alter Code.

IfTraits.jl (2023)

Dieses Julia-Paket implementiert eine bestimmte Syntax für das Design Pattern Traits in Julia. Ich bin mir nicht sicher, ob man das in dieser Art überhaupt will und ob diese Umsetzung nicht sowieso ein Problem löst, dass es gar nicht gibt. Naja. Jedenfalls funktioniert's und war auch eine nette Übung, um mal den ganzen Workflow Richtung Julia-registry zu lernen.

Multi-Armed Bandits in Julia (FSS 2023)

Während einer Einführungsveranstaltung zu Reinforcement Learning habe ich (mal wieder) viel zu viel Zeit in irrelevante Programmieraufgaben gesteckt. Zum einen wollte ich besser verstehen, wie man sinnvoll eine große Bibliothek dieser Art aufsetzt. Es ist halt schon ziemlich interessant, dass die diversen Pakete in Python oder Julia zum Teil sehr unterschiedliche Ansätze verfolgen, um Interfaces zu implementieren. In anderen Worten: Es ist nicht trivial, die MDP-Mathe in Code zu gießen. Beispielsweise: Unterscheidung zwischen Environment und Testbed, Multi-Agent-Spiele (braucht es einen Observer zwischen Env und Agent?)

Zum anderen bin ich dann relativ lange an der effizienten Implementierung von Multi-Armed Bandits hängengeblieben. Auch in diesem vermeintlich rudimänteren Setting stößt man nämlich leicht an rechnerische Grenzen (etwa für eine Anzahl an Runden mit 1 Million). Dieser Code ist zum Teil echt nett und könnte in ein sinnvolles Paket gegossen werden; allerdings muss ich dafür nochmal ordentlich Zeit ins Refactoring stecken (auch weil gewisse SIMD-Pakete möglicherweise Kompatibilitätsprobleme haben) und mir über die Integration in die Julia-Paketlandschaft Gedanken machen.

CameraMagic (2019)

Dies war ein völlig überambitioniertes, aber wie ich finde trotzdem interessantes, Projekt (ich sag nur: Seilzuggeber!). Erklärung kommt noch; Buzzwords sind computer vision und homography estimation.

Neuronale Netzwerke (2018)

Ich hatte mal eine Phase, in der ich in allen möglichen Programmiersprachen (u. a. Julia) einfache deep neural networks implementiert habe. Einfach deswegen, weil ein Klassenkamerad sich aus irgendeinem Grund mega in NNs reingenerdet hatte (was ich cool fand) und ich programmieren lernen wollte. Ich werde die files irgendwann mal rauskramen, vielleicht findet die ja jemand nützlich...

VWL-Projekte

Helmedag und Arbeitszeitverkürzung (2017)

Ein Projekt aus Schulzeiten, hier die ausführliche Erklärung.

E-Mails und social media

Am Ende meiner Schullaufbahn habe ich irgendwann angefangen, regelmäßig Professoren anzuschreiben (oder zu -twittern), deren Papiere ich interessant fand. Ein paar interessante Auszüge daraus werde ich hier vielleicht mal hochladen.

Schefold und die Kapitalkontroverse

Replikationsprojekt von Han/Schefold 2006 sowie Zambelli 2018 basierend auf meinem Paket Sraffa.jl.

Eventuell folgt ein Monsterprojekt, nämlich eine Videoreihe mit manim zur Kapitaltheorie. Wird aber gigantisch viel Zeit beanspruchen.

Econ speed programming, GPU, Particle Filter

Ich bin nach wie vor großer Fan der Arbeiten von Fernandez-Villaverde et al. und hatte da ein paar Spielereien (zum Bespiele diese PR). Das meiste davon wird aber niemandem nützen und sollte komplett neu aufgerollt werden (insbesondere SMC-Filter). Das hier war damals ein cooles, instruktives Repo.

Hellwig (Landargument und Dezentraler Tausch)

Ich habe mich teils rudimentär und teils tief mit einigen Resultaten von und mit Martin Hellwig beschäftigt. Zu ersterem gehört beispielsweise die große (und vorrangig deutsche) Weizsäcker-Homburg-Diskussion um die Relevanz der Landwerte für dynamische Ineffizienz. Hier eine nette Einführung von Gerald Braunberger (recht unterhaltsam ist sowieso, wie Homburg dort und an anderen Stellen zerlegt wird). Zu letzterem gehört das Modell aus Hellwig 1976, das sich mit Dezentralen Geldmärkten auseinandersetzt (Privates Repo, bei Interesse gerne melden!). Obzwar ich da einige Ideen habe, bin ich bei dem ungelösten Problem (Existenzsatz) auch nicht weiter gekommen.

Mean-field games (Replikation: Tankov)

To be explained; here the code.

Data science

Degustation

Seit einiger Zeit sammle ich ausgiebig Daten zu (Specialty) Coffee Brews. Ob man daraus was lernen kann, wird sich noch rausstellen :D

LaTeX und Publishing

Garamond-Math (2024)

Ich bin ein großer Fan der Schriftart Garamond. Wie sich rausstellt, gibt es dafür keine bzw. nur ziemlich primitive Mathe-Fonts. Deshalb habe ich mich mal daran gesetzt, an einer bestehenden Font weiter zu schrauben. Das ist aber alles noch nicht produktionsreif und wird noch einige Stunden brauchen. Manches ist schon recht hübsch, anderes ist noch ziemlicher Pfusch (vor allem die Glyphen für small size).

Beamer templates (2020)

Hier ein eher mäßig guter Versuch.

Oder confidential.

Interaktive Dokumente (2020)

Ausführliche Erklärung hier.

Intern hier und hier.

Videos & Grafiken

  • manim
  • TikZ

Sonstiger Quatsch

Meine Twitter-Lesezeichen mit Kurzbeschreibung. Hier ein (mittlerweile veraltetes) Musik-Ranking.

Pinned Loading

  1. Programmierkurs-Julia Programmierkurs-Julia Public

    Jupyter Notebook 8 3

  2. miraculix-BA miraculix-BA Public archive

    Code for my Bachelor Thesis

    C++

  3. IfTraits.jl IfTraits.jl Public

    Use traits in if/else style.

    Julia 7

  4. MaKli.jl MaKli.jl Public

    Julia

  5. Consistent.jl Consistent.jl Public

    Stock-flow consistent models in Julia.

    Julia 1

  6. Sraffa.jl Sraffa.jl Public

    Julia