Startseite

Herz­lich Will­kommen

auf philippkeck.de

English version

Über mich

Ich heiße Philipp Keck. Ich bin 29 Jahre alt, wohne in Zürich und arbeite als Software Engineer bei .
Seit ich zwölf Jahre alt bin, interessiere ich mich für Software und wie man sie programmiert. Neben meinem Softwaretechnik-Studium an der Universität Stuttgart habe ich als Werkstudent bei der sowie als Praktikant bei Google in München gearbeitet und war Mitglied im .
Außerdem interessiere ich mich für Fotografie und spiele Piano und Keyboard.

Kenntnisse

    • C++
    • Python
    • Java
    • JEE
    • Android
    • TensorFlow
    • JavaFX
    • JSF
    • C# + .NET
    • Rust
    • R
    • JS
    • React
    • Redux
    • HTML
    • CSS
    • jQuery
    • PHP
    • MySQL
    • Photoshop
    • Illustrator
    • Inkscape

Projekte

X10Receiver.NET v2

Geschichte

Angefangen hat alles mit einem Medion®-Computer, meinem ersten eigenen Computer, bei dem diese Fernbedienung mitgeliefert war. Das einzige Programm, das mit dieser Fernbedienung gesteuert werden konnte, war das PowerCinema 2.0 und ich war unter keinen Umständen bereit, ein Vollbildprogramm zum Musikhören zu nutzen, nur damit meine Fernbedienung funktioniert.
Deshalb lernte ich so viel Visual Basic 6, wie nötig war, um meine Fernbedienung mit Winamp benutzen zu können. Aus diesem Projekt wurde dann die erste Version von X10Receiver. Da die Plugins alle fest einprogrammiert waren (also keine echten Plugins waren), entschloss ich mich, auf Basis von VB.NET das Programm mit einem echten Plugin-System komplett neu zu schreiben - und das Ergebnis war X10Receiver.NET. Zugunsten der Effizienz und Benutzerfreundlichkeit trennte ich in einem dritten Schritt die signalverarbeitende Hintergrundschicht von der Benutzeroberfläche, die dadurch wesentlich komplexer ausfallen konnte. Meines Wissens als einzige Software bietet der in C# geschriebene X10Receiver.NET v2 heute einen Einrichtungsassistenten, der so stark vereinfacht ist, dass es im Normalfall genügt, ihn einfach mit "Weiter" durchzuklicken und bietet trotzdem die Möglichkeit, über Definitionen komplexe eigene Funktionen zu implementieren, was keine Programmierkenntnisse erfordert.

Status

Bereits seit mehreren Jahren sind alle gewünschten Features der Software implementiert und funktionieren stabil. Eine weitere Neuauflage (v3) ist nicht in Planung, es werden nur noch Bugfixes und auf Wunsch neue Plugins/Features einprogrammiert. Auf Basis der User-Rückmeldungen wird die Benutzerfreundlichkeit des Programms kontinuierlich verbessert. Eine Android-App kann als Alternative zur physikalischen Fernbedienung und für interaktivere Funktionen verwendet werden.

Manni

Manni (gesprochen wie engl. money) ist eine Webanwendung und Android-App zur Verwaltung der privaten Finanzen. Grundlage ist die halbautomatische Verfolgung von Kontobewegungen, Kontoständen und die Erfassung von Einnahmen und Ausgaben.

Erfassung

Kontobewegungen können von allen deutschen Banken, die HBCI unterstützen, sowie von diversen weiteren (z.B. N26) automatisch abgeholt werden. Der Nutzer kategorisiert die Einnahmen/Ausgaben für spätere Suchen und statistische Auswertungen. Regelmäßige Zahlungen (z.B. Gehaltseingang, Wohnungsmiete oder Lebensmitteleinkäufe) können mit Hilfe von Regeln automatisch erfasst werden. Zahlungen mit Bargeld müssen manuell eingegeben werden, was mit benutzerdefinierten Kürzeln schnell erledigt ist: Beispielsweise könnte "8e t" eine Ausgabe über 8 Euro für "Transport" erfassen.

Splitwise-Integration

Auf Splitwise können gemeinsame Ausgaben mit Mitbewohnern, der Familie und Freunden geteilt werden. Manni kann erfasste Zahlungen an Splitwise senden und dort in einem angegebenen Verhältnis teilen, auch vollautomatisch mit Hilfe von Regeln. Außerdem werden Ausgaben, die andere Splitwise-Nutzer bezahlt haben, automatisch in Manni als anteilige Ausgaben erfasst und fließen in die persönlichen Statistiken ein. Offene Schulden können in andere Währungen konvertiert und in andere Splitwise-Gruppen verschoben werden, um sie ohne unnötige Überweisungen auszugleichen.

Portfolio-Balancierung

Investments in Aktien und Indexfonds können in Anlageklassen eingeteilt werden, und für jede Anlageklasse kann ein Prozentsatz des Vermögens als Ziel angegeben werden. Außerdem wird mit Hilfe der "100 minus Alter"-Regel das Gesamtvermögen zwischen den sicheren und den riskanteren Anlageklassen verteilt. Basierend auf diesen Verteilungsregeln, den aktuellen Kontoständen und tagesaktuellen Aktienkursen berechnet der Algorithmus, in welchen Anlageklassen mehr/weniger Geld investiert werden muss, um die gewünschte Verteilung zu erreichen.

Auswertungen

Diverse Diagramme informieren beispielsweise über die Verteilung von Einnahmen und Ausgaben nach Kategorien, über historische Kontostände, Porfolio-Entwicklung, oder die monatliche Sparrate. Außerdem ermöglicht es eine globale Suchfunktion, vergangene Zahlungen schnell wiederzufinden.

SchulScheduler

Die Erstellung von Stundenplänen verschlingt an vielen Schulen jedes Jahr aufs Neue viel Zeit. Mitunter sind die zuständigen Lehrer wochenlang damit beschäftigt, einen Stundenplan auf die Beine zu stellen. Bestehende Softwarelösungen rechnen relativ lange (über Nacht) an einem guten Stundenplan oder liefern unvollständige Ergebnisse, sodass von Hand nachgebessert werden muss.
Mittels Reduktion auf lineare Programmierung wurde an der Uni Stuttgart bereits im Rahmen einer Diplomarbeit ein mathematischer Ansatz für dieses Problem ausgearbeitet. Während eines einjährigen Studienprojektes hat mein Team darauf aufbauend die Anwendung SchulScheduler erstellt, die mit einer modernen und leicht bedienbaren Oberfläche aufwartet und Rechenzeiten von unter einer Stunde erreicht.

Zu den wichtigsten Features gehören:

  • Datenübernahme aus dem Vorjahr (Stundensystem, Fächer, Lehrer, Klassen, Profile)
  • Schnelle Lehrerzuweisung per Drag-Drop
  • Komplexere Unterrichtskonstellationen über Kopplungen
  • Weitere Stundenplanoptimierungen wie Hohlstunden-Minimierung, Nicht-Verfügbarkeiten, etc.
  • Moderne und intuitive Oberfläche
  • Schnelle Berechnung auf einem dedizierten Server
  • Anonymisierung und Verschlüsselung der Daten
  • Einfache Bearbeitung des Ergebnisses per Drag-Drop mit sofortiger Validierung

Eine fertige Version für Schulen gibt es derzeit noch nicht, aber Sie können gerne eine Vorab-Version herunterladen.

Tools

In diesem Abschnitt möchte ich ein paar der kleinen Progrämmchen vorstellen, die ich geschrieben habe, um mir selbst den Alltag zu erleichtern. Manche Tools sind (noch) nicht veröffentlicht, ich würde mich aber freuen, wenn Sie mir Ihr Interesse daran mitteilen. Wenn eine entsprechende Anzahl an Interessenten vorhanden ist, werde ich das Tool stabiler programmieren und dann veröffentlichen. Die bereits verfügbaren Tools sind selbstverständlich kostenlos (wobei eine Spende natürlich willkommen ist) und kommen ohne Installation aus.


WakeFolder

Mit Windows-Freigaben kann man auf Ordner zugreifen, die auf anderen Computern gespeichert sind - allerdings nur, wenn der Ziel-Computer auch läuft. Auf diese Art kann ich z.B. Fernsehsendungen ansehen, die von einem anderen Computer im Haus aufgenommen wurden. WakeFolder hilft dabei, den Computer wenn nötig per Wake-On-LAN aufzuwecken. Für eine genauere Anleitung sehen Sie sich bitte den Screenshot an.


BilderSortierer

Nach jedem Urlaub wartet dank der neuen Digitalkameras eine überwältigende Flut an Fotos darauf, sortiert zu werden. Um das Sortieren zu vereinfachen, habe ich dieses Tool entwickelt, bei dem der User selbst einstellen kann, mit welchen Tasten er welche Aktionen veranlassen will. So kann man beispielsweise, während man die Bilder eines Ordners im Vollbildmodus durchblättert, ganz schlechte Bilder direkt löschen, die besten in einen Unterordner kopieren und Bilder, die lediglich Grundlage für ein Panoramafoto waren, in einen weiteren Unterordner verschieben.
Bei der Entwicklung wurde besonders viel Wert auf die Geschwindigkeit des Programms gelegt: Die Bilder werden vorab in einen Cache geladen und können deshalb ohne Zeitverzögerung durchgeblättert werden - auch über LAN. Das Programm ist frei konfigurierbar (siehe Screenshot) und außerdem nicht-destruktiv (Bilder werden nie gelöscht, sondern höchstens in den Papierkorb verschoben). In Verbindung mit dem X10Receiver.NET lässt es sich auch bequem vom Sofa per Fernbedienung steuern.


MapDroyd/NavDroyd Pin Editor

Die beiden Android-Apps MapDroyd und NavDroyd erlauben es, Orte als Pins abzuspeichern. Da das auf dem Smartphone aber sehr umständlich ist, habe ich ein Tool geschrieben, das es erlaubt, Pins per Drag-Drop direkt aus .kml-Dateien (von GoogleEarth) in die MapDroyd- bzw. NavDroyd-Datenbank zu importieren, während das Handy im SD-Karten-Modus angeschlossen ist.
Features: Drag-Drop, Ordner/Kategorien erstellen, Umsortieren, Beschriftung und Kommentar bearbeiten

Warnhinweis: Das Programm verarbeitet nur die Koordinaten, den Titel und die Beschreibung der Pins. Alle weiteren Informationen gehen verloren. Legen Sie deshalb vor dem Testen Sicherheitskopien der jeweiligen Dateien an!


Klingeling (Essensruf-App)

Alle bestehenden Lösungen, um eine ganze Familie zum Essen zu rufen, haben ihre Nachteile: Beim lautstarken Rufen durch's Haus wird man oft nicht gehört oder versteht die Antwort nicht, Anrufen ist bei mehr als zwei Personen aufwändig, WhatsApp wird oft ignoriert, und so weiter. Da mittlerweile fast jeder ein Smartphone besitzt, bietet es sich an, diese zum Rufen zu verwenden. Das bringt weitere Vorteile mit sich: Es werden nur die Personen gerufen, deren Smartphone im selben WLAN angemeldet ist und die Gerufenen können einfach per Klick antworten.
Die App "Klingeling" enthält keinen Schnick-Schnack und funktioniert ohne Cloud einfach nur im lokalen Netzwerk. Beim Öffnen werden alle Android-Smartphones benachrichtigt, die die App ebenfalls installiert haben und im selben Netzwerk eingebucht sind. Als Antwortmöglichkeiten gibt es "OK", "Gleich" und "Nein" - die Antworten werden dem Rufenden übersichtlich in einer Liste angezeigt.


LogikBerechner

Ein Tool, das durch Ausprobieren die Lösung von (mehreren) logischen Aussagen bzw. von Klauselmengen errechnet, die aus atomaren Formeln A-Z aufgebaut sind. Auf syntaktischer Ebene werden AND, OR, XOR, NAND, Negation, Äquivalenz, Implikation, Erfüllbarkeit, Konstanten (0 und 1) sowie beliebige Verschachtelungen durch Klammern unterstützt. Mehrere Bedingungen bzw. Klauseln können zeilenweise eingegeben werden. Außerdem können Teilformeln Variablen zugewiesen werden, um Tipparbeit zu sparen. Abgesehen vom Ermitteln der Lösung(en) kann auch eine .csv-Datei (z.B. für Excel©) exportiert werden, die eine Wertetabelle aller Teilformeln für alle möglichen Belegungen enthält.
Der Source Code ist öffentlich und darf beliebig weiterverwendet werden.


Fotografie


Kontakt

Philipp Keck
Bertastrasse 91
CH-8003 Zürich

+41 (0)77 9649607
philipp@philippkeck.de

E-Mail an Philipp Keck




Credits

Nutzungsbedingungen

Mit der Verwendung dieser Website erklären Sie sich mit diesen Nutzungsbedingungen (nachfolgend "Bedingungen") einverstanden. Sollten Sie diese Bedingungen nicht akzeptieren, ist Ihnen sowohl die Nutzung der angebotenen Downloads/Programme als auch die Nutzung dieser Website (nachfolgend "Angebote") untersagt.

Haftungsausschluss

Weder Philipp Keck (nachfolgend "ich") noch sonstige Dritte, die auf dieser Website oder in meiner Software erwähnt werden, übernehmen Haftung für mögliche Schäden, die sich aus der Nutzung (insbesondere der unsachgemäßen Nutzung) meiner Angebote, den darin enthaltenen Informationen oder aus der Nutzung damit verknüpfter Websites oder Services ergeben. Falls diese Nutzung dazu führt, dass Sie Ihre Geräte oder Ihre Daten warten, reparieren, austauschen oder auf andere Weise korrigieren müssen, übernehme ich keinerlei Kosten dafür.

Markenrecht

Ich weise darauf hin, dass die auf dieser Website genannten und gezeigten Logos, Bezeichnungen, Warenzeichen und Markennamen Eigentum der entsprechenden Firmen und/oder Personen sind und dem Markenrecht unterliegen.

Datenschutz

Ich, der Betreiber dieser Internetseite (Philipp Keck), nehme den Schutz Ihrer persönlichen Daten sehr ernst und halte mich strikt an die Regeln der Datenschutzgesetze. Personenbezogene Daten werden auf dieser Webseite nur im technisch notwendigen Umfang oder zur Verbesserung des Angebots, dann aber anonym, erhoben. In keinem Fall werden die erhobenen Daten verkauft oder aus anderen Gründen an Dritte weitergegeben.
Sie haben jederzeit das Recht auf Auskunft über die bezüglich Ihrer Person gespeicherten Daten, deren Herkunft und Empfänger sowie den Zweck der Speicherung. Bitte nutzen Sie dazu das Kontaktformular.