Ich möchte Stadtpolitik in Aachen für alle verständlich machen.
Mein aktuellstes Projekt aachen-transparent.de ermöglicht es, die öffentlichen Informationen aus dem städtischen Ratsinformationssystem modern und benutzerfreundlich aufzubereiten.
Dazu habe ich das bereits existieren Open-Source Projekt Meine-Stadt-Transparent erweitert und für die Bedürfnisse in Aachen angepasst.
Screenshot von aachen-transparent.de.
Aachen Transparent ist ein Projekt, dass ich ehrenamtlich im Rahmen des Open Data Labs Aachen ins Leben gerufen habe.
Es versucht einige der Unzulänglichkeiten des Ratsinformationssystems der Stadt Aachen zu umgehen.
Dazu nutzt es dessen öffentliche OParl Schnittstelle um die dort hinterlegten Informationen über eine moderne Oberfläche zugänglich zu machen.
GoSƐ is a modern and scalable file-uploader focusing on scalability and simplicity.
It is a little hobby project I’ve been working on over the last weekends.
The only requirement for GoSƐ is a S3 storage backend which allows to it to scale horizontally without the need for additional databases or caches.
Uploaded files a divided into equally sized chunks which are hashed with a MD5 digest in the browser for upload.
This allows GoSƐ to skip chunks which already exist.
Seamless resumption of interrupted uploads and storage savings are the consequence.
And either way both upload and downloads are always directed directly at the S3 server so GoSƐ only sees a few small HTTP requests instead of the bulk of the data.
Behind the scenes, GoSƐ uses many of the more advanced S3 features like Multi-part Uploads and Pre-signed Requests to make this happen.
Users have a few options to select between multiple pre-configured S3 buckets or enable browser & mail notifications about completed uploads.
A customizable retention / expiration time for each upload is also selectable by the user and implemented by S3 life-cycle policies.
Optionally, users can also opt-in to use an external service to shorten the URL of the uploaded file.
Currently a single concurrent upload of a single file is supported.
Users can observe the progress via a table of details statistics, a progress-bar and a chart showing the current transfer speed.
GoSƐ aims at keeping its deployment simple and by bundling both front- & backend components in a single binary or Docker image.
GoSƐ has been tested with AWS S3, Ceph’s RadosGW and Minio.
Pre-built binaries and Docker images of GoSƐ are available for all major operating systems and architectures at the release page: /stv0g/gose (Releases) .
GoSƐ is open-source software licensed under the Apache 2.0 license.
I consider the current state of GoSƐ to be production ready.
Its basic functionality is complete.
However, there are still some ideas which I would like to work on in the future:
Campus Office ist unser Studienplaner an der RWTH.
Über ihn stellen wir uns unseren Stundenplan zusammen und melden uns zu Prüfungen an.
Campus Office besitzt auch einen einfachen Kalender, der alle Termine des aktuellen Semesters individuell für jeden Studenten zusammenfasst.
Glücklicherweise kann dieser Kalender auch im iCalendar-Format exportiert werden.
Leider ist jedoch keine automatische Synchronisation mit Google, Outlook & co möglich, da sich jeder Student zuvor mit seinen Daten angemeldet haben muss.
Um dieses Problem zu umgehen habe ich ein kleines Skript geschrieben, welches als Proxy fungiert und diese Anmeldung übernimmt.
Folgende URL kann beispielsweise im Google-Kalender abonniert werden:
So habe ich nun alle meine Uni-Vorlesungen, Übungen und Klausuren in meinem Android-Smartphone ohne mich jemals wieder um die Synchronisierung kümmern zu müssen.
Ich sitze im Zug nach Hause.
Gerade komme ich von der letzten Vorlesung des zweiten Semesters: Informatik.
Eigentlich bin ich auf dem Weg in die Semester-”Ferien”, ständen da nicht für den nächsten Monat noch 4 Klausuren in meinem Kalender 😉.
Informatik, Grundlagen des Digitalrechners.
Klingt eigentlich recht trocken.
Trotzdem ist es klar mein Favorit unter den Fächern dieses Semesters.
Als Ergänzung zur Vorlesung richtete unser Professor einen kleinen Wettbewerb aus.
Mein Beitrag zum Students Englightment Award ist ein Compiler Frontend für den GNU Compiler der Atmel AVRs.
Teil der Vorlesung war die Einführung des Mikrocontrollers ATMega8 von Atmel und dessen Programmierung mit Assembler.
Dabei lernten wir zuerst die Schaltungstechnischen Grundlagen und die Minimierung von Schaltnetzen.
Anschließend sind wir auf den Aufbau der Zentralen Recheneinheit eingegangen (Steuerwerk, ALU).
transcode kompiliert & assembliert ANSI C und Assembler in Maschinencode und umgekehrt.
Dabei wird mit Hilfe von Debugging Informationen ein Bezug zwischen Zeilen im C-Code und den Mnemonics hergestellt.
Durch Auswählen von Zeilen werden Bezüge direkt durch Hervorhebungen dargestellt.
Für die Darstellung des Maschinencodes lässt sich zwischen binär, dezimal & hexadezimaler Form wählen.
volkszaehler.org ist ein freier Smart Meter (hier: intelligenter Stromzähler) im Selbstbau.
Die anfallenden Stromprofile bleiben dabei unter der Kontrolle des Nutzers.
Seit dem 1. Januar 2010 müssen Stromversorger ihren Kunden für Neubauten so genannte “intelligente Stromzähler” (Smart Meter) anbieten.
Der Kunde soll dadurch seinen Stromverbrauch analysieren und optimieren können.
Die dabei anfallenden Daten (“Stromverbrauchsprofil”) erlauben einen sehr detaillierten Einblick in den Tagesablauf des Nutzers (wann steht er auf? wann geht er in’s Bett? wann kocht er? wie oft verwendet er seine Spülmaschine? verändert sich sein Verhalten? …).
Darum sollten die Daten ausschließlich für den Nutzer selbst zur Verfügung stehen - und das geht nur, wenn man sich den Smart Meter selbst baut.
Mit einem Materialeinsatz von etwa 100 €, etwas Geschick und Zeit lässt sich das mit Hilfe eines Standard-µC-Moduls aufbauen.
Auf der SIGINT 2010 konnte ich mir den Vortrag von Justin Otherguy über das noch recht junge Projekt anhören und fand anschließen die Gelegenheit mit ihm über das Projekt zu sprechen.
Schnell war für mich klar, dass ich hier helfen möchte.
Bisher gibt es nur einen funktionsfähigen Prototypen.
In den letzten Wochen habe ich mit ein paar weiteren Entwicklern begonnen den Code des Prototypen neu aufzubauen.
Die Architektur von volkszaehler.org ist dreigeteilt:
Die Controller und Sensor Ebene erfasst mithilfe eines Mikrocontrollers die Daten leitet sie an den Backendserver weiter.
Der Backendserver besteht aus einem PHP-Skript und einer Datenbank. Hier werden die Daten weiter verarbeitet und ausgewertet. Er kommuniziert ausschließlich über eine standardisierte JSON API.
Das Frontend stellt die Daten für den Benutzer übersichtlich dar und ist für die Ausgabe der Analysen verantwortlich.
Systemübersicht volkszaehler.org.
Diese Darstellung verrät uns auch, dass nur der Stromverbrauch erfasst werden kann.
Geplant sind sämtliche Messgrößen (Temperatur, Luftdruck, Luftfeuchtigkeit, Strahlung, Niederschlag, …).
Bisher gibt es noch keine stabile, lauffähige Version des Quellcodes.
Im Wiki, der Mailing-Liste und im GitHub Repository (/volkszaehler/volkszaehler.org ) findet ihr weitere Informationen zu meinem neuen Projekt.
Wir freuen uns über jede Unterstützung 😊.
Besonders Entwickler mit PHP und Javascript Kenntnissen wären hilfreich 😉.
Heute freue ich mich euch einen weiteren Auftrag präsentieren zu dürfen, mit der ich mein etwas knappes FÖJ Taschengeld aufbessern konnte 😋
Basierend auf der Website rueckgrat-beweisen.de, die ich für meinen ehemaligen Sportlehrer entworfen habe, ist nun eine weitere Website zum Thema Gesundheitsmanagement in Schulen entstanden.
Screenshot von gesundheitsmanagement-schule.de.
Das Design der Page wurde aufgrund einiger Fotos weitestgehend von mir selbstständig entworfen und umgesetzt.
Funktionell wurde die Seite recht einfach gehalten.
Es gibt die üblichen Funktionen zum Bearbeiten des Inhalts und ein Kontakt/Mail Formular.
Hierbei habe ich mich hauptsächlich auf den Quelltext von rueckgrat-beweisen.de gestützt und diesen weiterentwickelt.
Wie immer ist die Seite 100% selbst entwickelt und 100% W3C XHTML und CSS konform.
Zusätzlich zum Design und der Programmierung der Website habe ich auch die komplette Verwaltung des Web Spaces inklusive Domainumzug übernommen.
In diesem Blog Beitrag möchte ich euch eine weitere von mir erstellte Website und abgeschlossenen Auftrag vorstellen.
Diesmal ist es eine bewusst einfach gehaltene Seite für eine Rückenschule aus Darmstadt.
Den Auftrag habe ich von meinem ehemaligen Sport Lehrer aus dem Justus-Liebig-Gymnasium erhalten.
Die Website ist bis auf das Logo komplett von mir entwickelt und entworfen worden.
Natürlich wie gewohnt ohne Coldfusion oder andere ähnliche WYSIWYG Editoren.
27515 Höhenmeter, 64 Liftfahrten, 162 km Abfahrten und 81 Km im Lift habe ich die vergangene Woche beim sonnigem Wetter im Großarl Tal auf Skiern zurückgelegt.
Als Betreuer begleitete ich zusammen mit zwei anderen Schülern die achten Klassen der Justus-Liebig Schule.
Vor fünf Jahren war ich damals selber in der achten Klasse in Großarl.
Seitdem hat sich viel verändert.
Glücklicherweise meist zum Positiven.
Zehn Tage waren wir im Jugendgästehaus Schornhof untergebracht.
Neben dem Skifahren konnten wir die Zeit gut nutzen um uns auf unser Abitur vorzubereiten.
Aber nun zu dem eigentlichen Inhalt dieses Beitrags: skiline.cc ist ein Dienst der die Skipassdaten aus fast 75 Skigebieten sammelt und grafisch aufbereitet.
Jeder Skipass besitzt eine eindeutige ID, mit der man sich auf der Website von skiline.cc anmelden kann.
Jede Liftfahrt wird am Drehkreuz registriert und gespeichert.
Durch die Kombination von Zeit, Ort und Skipass ID kann skiline.cc dann Höhenprofile und Skirouten der einzelner Skifahrer berechnen.
Fast schon mit einem Verkehrsleitsystem vergleichbar können die Betreiber so die Auslastung ihrer Skigebiete beobachten und entsprechend reagieren.
Präsentiert werden die Daten durch einfache Bilddateien.
Jeder Skitag wird mit einem Zeit/Höhen Diagram dargestellt.
Detailiertere Auswertungen (Ø Geschwindigkeiten, Tagesübergreifende Statistiken) sind leider nicht möglich.
Obwohl jedes Skigebiet in einer Karte verzeichnet ist, kann man sich leider nicht seine Skiroute in einer Karte anzeigen lassen 🙁.
Eine Integration von Projekten wie OpenPisteMap/OpenStreetMap wäre hier noch wünschenswert.
Leider wurde auf die Sicherheit weniger Wert gelegt.
Jeder der die ID eines Skipasses kennt, kann sich so im Internet dessen Tagesablauf anschauen.
Dies lässt sich auch nicht ohne weiteres verhindern.
Die Statistiken sind noch nicht einmal mit einem Passwort geschützt.
Eine Top 100 Liste der Skifahrer mit den meisten Höhenmetern rundet das Angebot ab.
Dieser Service ist ein Paradebeispiel für neue innovative Web 2.0 Dienste mit noch Potential in der Auswertung.
Schön das er (noch) kostenlos ist.
Skiline.cc Grafik. Leider habe ich nach unserem Servercrash meine original Bilder verloren. Hier ein kleiner Ersatz.
Mein nun 30. Artikel ist das Resultat einer Idee aus meinem Spanien-Urlaub.
Es handelt sich um einen etwas anderen Login Prompt, der bei weitem nicht die nötige Sicherheit für kritische Anwendungen bietet, dafür aber von jedem “Insider” ohne vorherige Absprache zu lösen sein sollte.
Eigentlich ohne jeden Verwendungszweck hab ich einfach mal los entwickelt.
Rein rechnerisch müsste es 2^9 = 512 verschiedene Kombinationen geben.
Nehmt euch mal ne halbe Stunde Zeit und probiert alle Kombinationen aus .
Viel Spaß beim drauf los Probieren.
Ich will euch mal keine weiteren Hinweise geben.
Keine Angst! Es gibt einfachere Methoden.
Jeder, der es schafft, hat die Kombination auch schon einmal gesehen.
Für meine morgige Informatik-Klausur habe ich mich mal wieder an C++ gewagt um einen Algorithmus zu implementieren.
Die Hauptthemen der Klausur werden das n-Dame Problem und das Josephus Problem sein.
JS, PHP & CSS Frontend.
Für das n-Damen-Problem habe ich eine iterative Backtracking-Implementation in C++ geschrieben.
Zudem ist es auch mein erstes funktionsfähiges und komplexeres C++ Programm 😉.
Um euch meine Ergebnisse zeigen zu können, habe ich mich bei der PHP, JS & CSS Version meines Freundes Micha bedient und sie leicht angepasst.
Das PHP-Script ruft über den Backtick-Operator das C++ Programm auf und stellt es anschließen mit JS und CSS dar.
Um den Server zu schonen habe ich die maximale Feldgröße auf 13 beschränkt.
Das sind zu mindestens schon mal fünf Damen mehr als bei der PHP-Version.
Ohne die Beschränkung sind auch Problemgrößen bis 16 in einem angemessenen Zeitrahmen zu bewältigen.
An den Weltrekord (25 Damen) komme ich jedoch noch nicht 😉.
InteractivePHP ist ein kleines Experiment mit PHP, GD & Javascript.
Dabei habe ich versucht mit PHP & GD animierte Bilder zu erstellen.
Das Generieren von animierten GIFs mit GD ist kompliziert und langsam.
Das Generieren eines einzelnen Frames ist dagegen denkbar einfach.
InteractivePHP besteht aus zwei Komponenten:
Dem Bild, das mit PHP & GD immer dynamisch generiert wird. Per GET wird dem Bild-Script die aktuelle Position der Animation mitgeteilt.
Der Oberfläche, die mit HTML und Javascript das animierte Bild anzeigt und mit einem Timer das Bild alle par Millisekunden neu lädt.
In der Oberfläche habe ich einige Slider implementiert.
Mit diesen kann man den Text drehen und verschieben.
Unter www.lio-underground.de.vu ist seit einigen Monaten die erste offizielle Website der LIO Schülervertretung online.
Die zuerst statische HTML Seite wurde durch Micha und mich durch ein dynamisches Content Management System mit Forum ersetzt.
Die neue Website basiert auf Clansphere.
Micha hat mit seinen Kenntnissen als Hauptentwickler von Clansphere das System an die Bedürfnisse der SV angepasst.
Auf der neuen Seite soll über neue Projekte der SV informiert werden.
Mit dem Forum soll das Diskutieren über die aktuelle Schulthemen ermöglicht werden.
Vielleicht bildet sich ja auch mal eine kleine Schul Community.
Für die Zukunft haben wir uns das Integrieren des Vertretungsplan in die Seite vorgenommen.
Leider müssen dafür noch einige Hindernisse überwunden werden.
Seit ein paar Wochen ist die neue Website der Handball Abteilung des TuS Griesheims online.
Nach etwa einem halben Jahr Entwicklungszeit habe ich das Grundgerüst der Seite komplett neu implementiert.
Das Content Management System (CMS) der Vorgänger Seite stellte sich als zu komplex dar uns sollte durch ein einfaches und intuitives System ersetzt werden.
Die Website stellt grundlegende Informationen über die Abteilung und die Mannschaften sowie liefert aktuelle Ergebnisse und Berichte.
Mein Ziel war es ein selbstständiges System zu entwickeln, welches den Admin entlastet.
So werden zum Beispiel zu Saisonende alle Berichte der vergangenen Saison archiviert.
Eine interessante Funktion ist auch die Synchronisierung der Spielpläne und Ergebnisse externen Datenquellen.
Oder auch z.b. die Foto Gallerie, welche die Bilder automatisch in verschiedenen Größen generiert.
Besucher der Seite können bestimmte Beiträge kommentieren oder sich im Gästebuch verewigen.