pflege.de

Seit Ende Oktober bin ich nun selbstständig, und nach zwei Weiterentwicklungs-Sprints für Antragsgrün im Auftrag vom Grünen-Bundesverband einerseits und dem Deutschen Bundesjugendring andererseits bin ich nun im ersten größeren Projekt: bei der Seite pflege.de, die im hübschen Hamburg sitzt.

Moment, Hamburg?

Ja, die Situation ist tatsächlich: ich wohne weiterhin in München, arbeite unter der Woche aber in Hamburg. Mein erster Gedanke bei der Idee war, einmal die Woche mit dem Zug zwischen München und Hamburg pendeln geht gar nicht. Andererseits: vor wenigen Monaten bin ich erst über 15.000km mit dem Zug von München nach Saigon gefahren und habe das als erholsamen Urlaub empfunden, da können mich ein paar Stunden im ICE nun auch nicht mehr schocken.

Nach einer anfänglichen Überraschung – als PHP-/JavaScript-/HTML-Entwickler angeheuert, durfte ich stattdessen erst mal hauptsächlich auf Ruby on Rails, CoffeeScript und HAML programmieren – hab ich mich inzwischen recht gut eingelebt. Und das das eigentliche Projekt, für das ich ins Boot geholt wurde, hat nun auch den ersten großen Meilenstein erreicht: den Relaunch des Content-Management-Systems. Zum Glück auf PHP-Basis. 🙂

Screenshot von pflege.de (nach dem Relaunch)

Converting HTML to OpenDocument Text and Spreadsheet

I moved one of the components of Antragsgrün into a separate library, as it might be useful for other projects: HTML2OpenDocument converts formatted HTML content to OpenDocument Text- and Spreadsheet-Files (ODT / ODS). It can handle basic formattings like bold, italic, underlined, strike-through, inserted and deleted text. Lists are supported in Text-Files. The library is licenced under the MIT licence and is available on GitHub and on Packagist / Composer.

Radtour bei Yangshuo

Endlich hab ich es geschafft: eine Radtour. Im Umland von Yangshou, das ich mit dem Bus erreichte, war das zum Glück auch sehr leicht zu organisieren: Fahrradverleiher gibt es jede Menge und man kommt trotz der vielen Berge entlang dem Fluss sehr leicht ebenerdig voran. Bei der Rückfahrt hab ich mich dann doch völlig verfahren, was dazu geführt hat, dass ich das Fahrrad ein, zwei Kilometer durch Reisfelder schleppen durfte und etwa ein Dutzend Mal bei Einheimischen nach dem Weg fragen musste. Kurz: ein großes Spaß und unbedingt empfehlenswert. (Das Dorf Yanghou selbst ist sehr auf Tourismus ausgelegt, aber sobald man von den Hauptschlagadern weg ist, ist es eine himmlische Idylle.)

Guilin

Guilin wirkt als „Stadt zwischen den Bergen“ fast schon surreal. Die Stadt selbst ist völlig flach, nur immer wieder völlig abrupt hineingeklotzte Berge (Karstberge). Ideal für spontane Kurz-Bergwanderungen.

Bezirksausschuss Laim: Website

Vor wenigen Tagen ging nach langer Vorbereitungszeit endlich die neue Website des Laimer Bezirksausschuss online:

Screenshot der Website des Bezirksausschuss Laim (Internale)

Die lange Vorbereitungszeit lag dabei nicht an der eigentlichen Gestaltung – technisch ist die Seite eher trivial, wie man denke ich recht schnell sieht. Ungewohnt war für mich nur, einmal komplett ohne serverseitigen Skriptsprachen zu arbeiten und stattdessen nur auf statische HTML-Seiten zu setzen – aber dank Jekyll & co ist das ja inzwischen auch kein Problem mehr. Die rechtliche Klärung dauerte dafür aus nicht ganz nachvollziehbaren Gründen locker fünfmal so lang wie die eigentliche Programmierung. Na ja, Ende gut, alles gut – jetzt ist sie endlich da und alle sind glücklich. 🙂

Choosing Android’s System Sounds for Cordova Push Notifications, using Native Configuration Screens

One of the features most wished for in one of my Cordova-based android apps was to let the users choose another sound for push notifications, or to disable sound altogether (without having to mute the whole smart phone and still keeping vibration). The Push Plugin supports custom sounds, however all sound resources have to be embedded in the app. In my case, I wanted to let the users choose among the system sounds provided by Android itself, which apparently isn’t possible without some major changes to the plugin.

Here, I’m going to outline the changes necessary to integrate Android’s native RingtonePreference dialog into a Cordova-based app to let the users choose another notification sound. I’ve published the modified plugin that should work on android projects on Github.

Screenshot_2015-04-29-18-13-18Screenshot_2015-04-29-18-13-23

Configuration Dialog

Choosing the preferences for push notifications is done in a native android PreferenceScreen that is opened from within the app using a new javascript-method on the pushNotification-Object. The configuration screen is defined by a xml file stored at platforms/android/res/xml/pushsettings.xml:



    

        

        

        

        

    

The referenced strings are stored in platforms/android/res/values/strings-gcm.xml:



    Notifications
    Light
    Light is switched on
    Light is switched off
    Vibration
    Vibration is switched on
    Vibration is switched off
    Sound
    Sound is switched on
    Sound is switched off
    Ring tone
    Choose a ring tone

Translated versions can be stored in files like platforms/android/res/values-de/strings-gcm.xml

Opening the dialog
First of all, a new activity has to be defined in the platforms/android/AndroidManifest.xml:


The Activity itself is pretty simple, just remember to replace the „CORDOVA_PACKAGE_ID“ by the id of your app (necessary to access the R.xml.pushsettings-resource):

package com.plugin.gcm;

import CORDOVA_PACKAGE_ID.R;
import android.os.Bundle;
import android.preference.PreferenceActivity;

public class PushSettingsActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.pushsettings);
    }
}

This activity is called from PushPlugin.java’s execute-method, something like:

if ('showPushSettings'.equals(action)) {
    Intent i = new Intent(this.cordova.getActivity(), PushSettingsActivity.class);
    this.cordova.getActivity().startActivityForResult(i, RESULT_PUSH_SETTINGS);
    callbackContext.success();
}

The JavaScript-method to call this in PushNotification.js is:

PushNotification.prototype.showPushSettings = function (successCallback, errorCallback) {
    if (errorCallback == null) {
        errorCallback = function () {}
    }
    if (successCallback == null) {
        successCallback = function () {}
    }

    if (typeof errorCallback != "function") {
        console.log("PushNotification.showPushSettings failure: failure parameter not a function");
        return;
    }

    if (typeof successCallback != "function") {
        console.log("PushNotification.showPushSettings failure: success callback parameter must be a function");
        return;
    }

    cordova.exec(successCallback, errorCallback, "PushPlugin", "showPushSettings", []);
};

With all these changes applied, a call to plugins.pushNotification.showPushSettings() should open the configuration dialog and let the user apply her desired notification sound. The settings are stored automatically in android’s SharedPreferences. In the source code of the plugin, I also added a getPushSettings()-method that returns the settings into JavaScript, if you ever need to query these settings.

Using the settings for the notification
The actual notification sound is triggered in GCMIntentService.java’s onMessage-method. The new code reads the settings from the SharedPreferences and acts accordingly:

SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean vibration = app_preferences.getBoolean("com.plugin.gcm.vibration", true);
boolean sound = app_preferences.getBoolean("com.plugin.gcm.sound", true);
boolean light = app_preferences.getBoolean("com.plugin.gcm.light", true);
String ringtonePath = app_preferences.getString("com.plugin.gcm.ringtone", "defValue");
int defaults = 0;
if (vibration) defaults = defaults | Notification.DEFAULT_VIBRATE;
if (light) defaults = defaults | Notification.DEFAULT_LIGHTS;
		
NotificationCompat.Builder mBuilder =
    new NotificationCompat.Builder(context)
        .setDefaults(defaults)
        .setSmallIcon(context.getApplicationInfo().icon)
        .setWhen(System.currentTimeMillis())
        .setContentTitle(extras.getString("title"))
        .setTicker(extras.getString("title"))
        .setContentIntent(contentIntent)
        .setAutoCancel(true);

if (!ringtonePath.equals("") && sound) {
    Uri uri = Uri.parse(ringtonePath);
    Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), uri);
    r.play();

    mBuilder.setSound(null);
}

I’m using the Ringtone.play() instead of the setSound()-method of NotificationCompat.Builder, as the latter one somehow didn’t actually change the sound, even with the URL of the sound provided. I haven’t yet figured out why, but there probably is a solution that’s more elegant than the one showed above.
That’s it. Have fun! 🙂

OpenRIS – Konzept und aktueller Stand

Vor gut zwei Jahren hatte ich schon einmal etwas zu meinem „Pet Project“ rund ums Münchner Ratsinformationssystem geschrieben. Leider lag das das Projekt danach für eine ganze Weile brach, insbesondere da die Klärung der rechtlichen Aspekte im Getriebe wechselnder Zuständigkeiten in der Münchner Verwaltung im Sande verlaufen ist. In den letzten Monaten habe ich aus zwei Gründen wieder mehr Elan gefunden, um das Projekt voranzutreiben: zum einen habe ich, seit ich in den Laimer Bezirksausschuss gewählt wurde, seit Mai fast täglich das „Vergnügen“, mit dem Münchner Ratsinformationssystem in Berührung zu kommen, Aggro-„Das geht doch besser!“-Reflexe inklusive. Zum anderen habe ich, ebenfalls seit Mai, über die „OK Labs“ der Open Knowledge Foundation ein gutes organisatorisches Umfeld gefunden, in dem man das Projekt aufhängen kann, um es zu mehr als nur meinem Privat-Projekt zu machen.

Der Name „OpenRIS“ ist ein reiner Arbeitstitel, ich werde den Namen dementsprechend austauschen, sobald es einen endgültigen Titel gibt.

Welche Probleme soll das Projekt lösen?

Das Ratsinformationssystem (RIS) bietet eine unglaubliche Zahl an Dokumenten rund um den Münchner Stadtrat und die Bezirksausschüsse (BAs), von Sitzungsvorlagen, Tagesordnungen und Niederschriften hin zu Stadtratsanträgen und – noch wichtiger, da meist noch informativer – den Stellungnahmen der Referate dazu. Geschätzt knapp 140.000 Dokumente. Nur: es ist furchtbar unübersichtlich und unpraktisch. Zur Einführung als neu gewählte Bezirksausschussmitglieder bekamen wir eine zehnseitige bebilderte Anleitung, wie man darin Beschlüsse finden kann – was für die Hilfsbereitschaft der Stadtverwaltung spricht, aber nicht gerade für die Usability des RIS, das ja eigentlich die Politik den BürgerInnen gegenüber transparent machen soll. Wichtige Funktionen fehlen, und eine nur schlecht funktionierende Volltextsuche rundet die Sache ab.

Kernfunktionen

OpenRIS soll einerseits die gezielte Volltextsuche nach Themen durch einen zentralen Suchindex erleichtern, der sich unabhängig vom Dokumenttyp mit der von Suchmaschinen her bekannten Syntax durchsuchen lässt – auch bei Dokumenten, die nur in gescannter Form vorliegen (OCR).

Vor allem aber soll es OpenRIS interessierten BürgerInnen leichter machen, auf dem Laufenden zu bleiben – zu konkreten Sachthemen sowie zu allen Angelegenheiten, die sich um ihr Wohngebiet (z.B. ihren Stadtteil) drehen. Dafür gibt eine Timeline-Ansicht aller Dokumente, die sich entweder auf die Stadt allgemein oder auf einen konkreten Stadtteil beziehen. Gefundene Dokumente werden anhand enthaltener räumlicher Bezugspunkte auf einer Karte eingezeichnet. Zentral ist dabei eine Benachrichtigungsfunktion: es ist möglich, zu einer Suche (sowohl im Volltext als auch zu Metadaten wie Stadtteilbezug) eine Benachrichtigung per E-Mail einzurichten, sodass man informiert wird, sobald es neue Dokumente gibt, die diesen Kriterien entsprechen.

OpenRIS wird aber nicht (wie z.B. Offenes-koeln.de) die Dokumente selbst anbieten – sondern stattdessen schlicht auf die Dokumente im Original-RIS verlinken.

Welche Probleme kann das Projekt nicht lösen?

OpenRIS kann keine Dokumente auffindbar machen, die nicht ohnehin schon im (öffentlichen) Ratsinformationssystem zu finden sind. Es kann also nichts daran ändern, wenn Dokumente gar nicht oder nur mit größerer Verzögerung online gestellt werden. Letzteres scheint leider gerade im Umfeld von Bezirksausschüssen sehr häufig vorzukommen.

Komponenten

OpenRIS besteht aus mehreren Teilen, die konzeptionell voneinander unabhängig sind und teils auch nicht alle zu Beginn eingebaut sein werden.

Scraping

Da das offizielle Ratsinformationssystem keine API anbietet, über welche die Metadaten abrufbar sind, ist der erste Schritt ein Scraping-Mechanismus, der die öffentlich zugänglichen HTML-Seiten des Ratsinformationssystems in eine normalisierte SQL-Datenbank umwandelt. Jede Menge Regular Expressions kommen hier zum Einsatz, die in folgendes Datenmodell bespielen:

schema

Beim aktuellen Entwicklungsstand werden die Metadaten der Stadtratsanträge, Stadtratsvorlagen, Stadtrats(ausschuss)sitzungen, BA-Anträge, BA-Initiativen, BA-Sitzungen, Bürgerversammlungsempfehlungen, und die Liste der Stadtrats- und BA-Mitglieder erfasst, sowie die Beziehungen untereinander. Bei den Versammlungen werden insbesondere auch die Tagesordnungspunkte strukturiert erfasst und die gefassten Beschlüsse indiziert. Ich versuche dabei auch, einige der technischen Probleme des offiziellen RIS zu umschiffen – beispielsweise die Encoding-Probleme (langgezogene Bindestriche sowie deutsche Anführungszeichen im Titel werden grundsätzlich als Fragezeichen dargestellt; mein Nachname entwickelt eine ganz eigene Ästhetik).

Noch nicht erfasst werden u.a. Mitgliedschaften von Personen in einzelnen Gremien, die Metadaten zu den einzelnen ReferentInnen, und vereinzeln Angaben wie beispielsweise Positionen / Funktionen von Stadtratsmitgliedern.

Das Scraping bezieht sich dabei nur auf die Metadaten, also beispielsweise, wer wann einen Antrag gestellt hat sowie den Titel des Antrags – nicht aber den tatsächlichen Text des Antrags. Während die Metadaten am Ende auch über OpenRIS abrufbar sein sollen (z.B. auch über eine API), wird das bei den vollen Texten der Anträge und Vorlagen nicht der Fall sein, da das im Gegensatz zu den Metadaten möglicherweise Urheberrechte berühren könnte.

Volltextindex & Suche

Ähnlich wie bei gängigen Web-Suchmachinen wird ein Volltextindex aller gefundener Dokumente aufgebaut, in dem nach Schlüsselwörtern und Metadaten gesucht werden kann. Als Software kommt hier Apache Solr zum Einsatz. Wird ein Dokument über die Volltextsuche gefunden, wird ein Snippet angezeigt, nicht aber der gesamte Text des Dokuments – statt dessen wird einfach die Originaldatei verlinkt, was im Münchner RIS (anders als z.B. beim Kölner) ohne Probleme möglich ist.

Der Text wird auf zwei Wegen aus den Dokumenten ausgelesen: bei regulären PDF-Dateien, in denen der Text auch als solcher gespeichert wird, wird der Text mittels Apache PDFBox extrahiert (was bei meinen Tests zuverlässiger funktionierte als das verbreitetere pdf2text). Da sich unter den Dokumenten aber auch viele TIFF-Dateien und PDFs mit nur gescannten Bildern befinden, wird grundsätzlich jedes Dokument zusätzlich noch durch zwei OCR-Programme verarbeitet: zunächst das freie Tesseract, das passable Ergebnisse liefert und sich als Kommandozeilentool leicht automatisch einbinden lässt. In einem zweiten Schritt dann noch durch das kostenpflichtige OmniPage Ultimate, das in meinen Tests sehr viel bessere Ergebnisse lieferte als Tesseract, sich als reines Windows-Programm aber nur sehr eingeschränkt automatisieren lässt (zumindest in der noch bezahlbaren Version).

Aus dem Volltext der Dokumente wird dann noch versucht, Ortsbezüge herzustellen, indem im Text nach bekannten Straßennamen gesucht wird, ggf. mit den folgenden Hausnummern, und diese Angaben dann durch eine der vielen gängigen Geocoding-Webservices in Geodaten umgewandelt werden. Das funktioniert zurzeit nur so semi-toll; zwar gut genug, dass es einen wirklichen Mehrwert bietet – aber leider noch mit vielen fehlerhaften Treffern. Sei es weil eine Straße in einer anderen Stadt mit dem selben Namen wie eine Münchner Straße erwähnt wird, sei es, dass die „str.“-Abkürzung nicht immer für „Straße“ steht, sondern gerne auch mal für „Stadtrat“ und dadurch Missverständnisse entstehen. Das Problem haben auch vergleichbare Projekte anderer Städte wie beispielsweise „Offenes Köln“, sodass die Optimierung dieses Algorithmus ein lohnenswertes, für sich alleine stehendes Projekt sein könnte.

Diese Komponente ist inzwischen funktional weit gehend benutzbar (um das Wort „fertig“ vermeiden, das bei Web-Projekten bekanntermaßen nie zutrifft).

Web-Interface

Ein Großteil der Arbeit fließt momentan in das Web-Interface, über das neue Dokumente angezeigt und auf einer interaktiven Karte verzeichnet werden, Informationen zur Zusammensetzung des Stadtrats und der Bezirksausschüsse, eine Volltextsuche, usw. Technisch ist daran wenig Spannendes.

Ich erwähne dabei nur mal, dass ich vom einbettbaren Kartenmaterial von Skobbler sehr angetan bin, insbesondere da es auf den Daten von Openstreetmap basiert, die meinem Empfinden nach sehr viel detaillierter als Google Maps & co sind, in der fertig gerenderten Fassung aber meist große „ästhetische Defizite“ aufweist. Von der Kombination Leaflet.js + Skobbler bin ich sehr angetan, insbesondere seit letzteres auch Retina-kompatible Grafiken ausliefert.

Die spannendste Funktion des Web-Interface wird sicher die Möglichkeit sein, sich E-Mail-Benachrichtigungen einrichten zu können. Das funktioniert so, dass jede Suchanfrage (z.B. eine Kombination aus Stadtteilbezug und einem Suchbegriff, oder dem initiierenden Stadtratsmitglied) gespeichert und einer E-Mail-Adresse zugeordnet werden kann. Immer wenn ab dann dem Volltextindex neue Dokumente hinzugefügt werden, wird überprüft, ob es gespeicherte Suchanfragen gibt, die auf das neue Dokument zutreffen – und der Inhaber wird benachrichtigt. Darüber hinaus soll es auch möglich sein, einzelne Anträge zu abonnieren, um dann entweder über neue Dokumente zu diesem Antrag benachrichtigt zu werden (z.B. wenn ein Referat eine Anfrage beantwortet), oder über Statusänderungen (z.B. wenn der Antrag einer konkreten Sitzung zugeordnet wird).

E-Mail ist dabei die naheliegendste Benachrichtigungsform – andere Formen wie beispielsweise GCM oder APS für Android/iOS-Apps wären aber für die Zukunft auch denkbar.

Alternativ zu den Benachrichtigungen soll es die Suchergebnisse zu bestimmten Suchanfragen auch in Form von RSS-Feeds geben.

Das Web-Interface ist zurzeit aber noch sehr Alpha, und da sich hier einerseits noch Leute vom „OK Lab“ einbringen wollen, und ich das andererseits auch mindestens noch einer Person, die von Design mehr versteht als ich vorlegen will, dürfte da noch sehr viel passieren.

OParl-API

Seit einigen Monaten gibt es die OParl-Initiative, die einen offenen Standard zum Abruf von Daten aus parlamentarischen Informationssystemen erstellt – der erste Entwurf, wurde im Mai 2014 veröffentlicht. Über OParl wäre es beispielsweise möglich, mobile Apps zu entwickeln, welche auf die Daten verschiedener Ratsinformationssysteme zugreifen kann. Der Standard beschränkt sich momentan recht stark auf die Modellierung des Datenmodells und bietet einige wenige Anfragetypen an.

Meiner ersten Einschätzung nach ist das OParl flexibel genug, um die Datenstruktur des Münchner RIS abzubilden (insb. auch die recht spezielle Konstellation mit Stadtrat und Bezirksausschüssen). Daher bietet es sich an, diese API auch in OpenRIS zu implementieren. Diese API würde ausschließlich auf die Metadaten aufsetzen, die durch das Scraping gewonnen werden, da eine Volltextsuche derzeit vom OParl-Standard noch nicht vorgesehen zu sein scheint, und der Volltextabruf über OpenRIS aus den oben genannten Gründen voraussichtlich nicht möglich sein wird.

Für viele praktische Anwendungsfälle, wie die genannte Volltextsuche, eine Suche nach Ortsbezug, oder eine Benachrichtigungsfunktionalität, wird es aber „proprietäre“ Erweiterungen der API benötigen, bis sich diese vielleicht in einer zukünftigen Version von OParl wiederfinden.

BürgerInnenbeteiligung

Bei den OK Labs (und auch den inoffiziellen Vorgängern, den MOGDy-Treffen) kamen eine ganze Reihe an Ideen, die Plattform um interaktive, bis hin zu partizipativen Komponenten zu ergänzen. Ein Vorbild dafür ist „Frankfurt Gestalten“, über das BürgerInnen eigene Initiativen online stellen können. Ein Knackpunkt für solche Plattformen ist aber die Rückkopplung in die Stadtverwaltung bzw. -politik hinein: in einem Blog-Posting vom Mai ’14 beklagen die Betreiber von Frankfurt Gestalten auch genau diesen fehlenden Rückkanal als großen Nachteil ihrer Plattform. Wenn OpenRIS um eine solche Komponente ergänzt werden soll, wird daher sehr viel Arbeit in die Ausarbeitung eines Konzepts fließen müssen, damit am Ende keine Plattform entsteht, die BürgerInnenbeteiligung nur vorgaukelt – und sich auch von den bestehenden Angeboten (wie beispielsweise das bis vor kurzem laufende „Direkt zu Ude“, oder den Gefahrenatlas der Süddeutschen) abzuheben.

Vergleichsweise einfach wären dagegen Ideen, wie sie Georg Kronawitter in einem Stadtratsantrag vor einigen Jahren schon formulierte.

Statistische Daten

Eine weitere Möglichkeit, OpenRIS weiter auszubauen, wäre, statistische Daten mit zu integrieren, um eine gemeinsame Plattform zu haben, um solche Stadtbezogene Informationen anzubieten. Relevant dürften dabei insbesondere die Zahlen des Statistischen Amts München sein.

Entwicklung

Angaben dazu, wann das Projekt live geht, mache ich besser nicht mehr – mit „kommt jetzt wirklich bald“ habe ich mich schon vor zwei Jahren in die Nesseln gesetzt.
Den Quelltext des aktuellen Entwicklungsstands gibt es aber schon auf Github, und das Projekt wird natürlich auch unter eine OpenSource-Lizenz gestellt.

Animexx Event-App

Animexx Event-App

GooglePlay_130x45
AppStore_135x40

Die Event-App, die ich für den Animexx geschrieben habe, ist nun sowohl im Apple AppStore als auch auf Google Play verfügbar. Sie deckt einen Großteil der Funktionalität des Animexx-Eventkalenders ab, unter anderem:

  • Den Eventkalender nach Ort, Name und Gebiet durchsuchen und auf aufgerufene Events dann auch offline wieder zugreifen.
  • Man kann öffentlich bekannt geben, dass man zu einem Event geht.
  • Der Programmplan des Events ist über die App zugänglich, man kann sich auch für einzelne Programmpunkte eintragen.
  • Wenn es etwas Neues gibt, wird man aktiv über Push-Nachrichten darüber benachrichtigt – beispielsweise wenn ein Event, für das man sich eingetragen hat, auf Animexx eine neue News veröffentlicht, wenn sich ein Programmpunkt, für den man sich eingetragen hat, verschiebt, oder wenn es ein Neues Event einer abonnierten Eventreihe gibt.
  • Man kann Fotos zu einem Event anschauen, kommentieren, sich auf Fotos eintragen, auf denen man zu sehen ist und Bekannte auf Fotos „petzen“.
  • Eventkommentare schreiben und Eventberichte anderer Nutzer lesen und kommentieren.
  • Die wichtigsten Informationen der Steckbriefe der eigenen Bekannten einsehen, sowie Gästebucheinträge verfassen.
  • Event-bezogene Microblog-Nachrichten schreiben, mit Foto-Anhang.
  • Den Treffpunkt des Events kann man sich auf einer Karte anzeigen lassen, auf Wunsch auch in der Standard-Kartenanwendung (Google bzw. Apple Maps).
  • Conhopperorden am Animexx-Stand abholen (über einen QR-Code).

screenshot1screenshot2screenshot3

Die App ist hauptsächlich in HTML5 / JS / SASS geschrieben und per Cordova ins iOS/Android-App-Format gebracht.

manga-dō – der Weg des manga vom japanischen Holzschnitt zu Manga und Anime

Seit heute läuft in Münchner Kulturzentrum Gasteig die zweiwöchige Ausstellung „manga-dō – der Weg des manga vom japanischen Holzschnitt zu Manga und Anime“. Da ich als Vertreter des Animexx e.V. bei den Vorbereitungen der Ausstellung und des Begleitprogramms beteiligt war, will ich hier dazu auch ein paar Worte verlieren.

Gleich vorweg: den mit weitem Abstand größten Teil der Organisation und inhaltlichen Vorbereitung übernahm Günter Beck, Fotograf und Sammler japanischer Bildkultur, der einen Großteil der Ausstellungsstücke aus seiner privaten Sammlung zur Verfügung stellte und wie nebenbei noch Flyer und Plakate gestaltete sowie das Begleitheft zur Ausstellung in Eigenregie produzierte.

Das ganze Projekt wurde schon seit der zweiten Hälfte 2012 geplant, auch getrieben durch die Initiative von Dr. Freddy Litten (mit dem ich letztes Jahr auch schon einen Podcast zur Geschichte des Anime aufgenommen hatte). Sofort mit im Boot waren die Münchner Volkshochschule, die Münchner Stadtbibliothek und der Gasteig, die vor über zehn Jahren schon einmal eine Manga-Ausstellung ausgerichtet hatten und dabei wohl gute Erfahrung gemacht hatten.

11930059
11930069

Den Mittelpunkt der ganzen Aktion ist die Ausstellung, vor allem die vielen Historischen Exponate von Günter Beck. Hier werden in Vitrinen und Bildergalerien verschiedenste Zeichnungen und Gegenstände gezeigt, von Holzschnitten und historische Schriftrollen über „Japan Punch“-Ausgaben hin zu (inzwischen auch schon fast historischen) Anime-Cels und natürlich modernen Manga-Tankōbon. Nicht ausgespart werden dabei die „Shunga“ („Frühlingsbilder“), erotische Bilder, die in einem räumlich leicht abgetrennten Bereich präsentiert werden.

11930065
11930055

Vom Animexx kommen die Vitrinen zur „Cross-Medialität“ des Manga, in denen exemplarisch die Vernetzung des modernen Manga mit anderen Medien-Gattungen dargestellt werden soll. Da Anime und Dōjinshi schon an anderer Stelle behandelt werden, geht es hier um Manga-Realverfilmungen, Musicals, Cosplay, Light Novels, Visual Novels, Figuren und Model-Kits und J-Pop/-Rock. Das Prinzip ist dabei, dass jeweils zu einer konkreten Serie der Manga sowie das jeweils andere Medium präsentiert wird, damit dadurch die Umsetzung des Stoffes sichtbar wird. Aufgelockert wird das ganze noch durch diverses Merchandise.

An dieser Stelle auch ein Dankeschön an sakura_b, die für die Ausstellung ihr Jeanne-Kostüm, und  lore,  Kathal und  Ani, die ihre Figuren zur Verfügung gestellt haben.

1193008111930077

Es gibt aber nicht „nur“ die Ausstellung, sondern auch ein Rahmenprogramm, das über die zwei Wochen verteilt im Gasteig stattfindet. Besonders erwähnenswert ist dabei die Eröffnungsveranstaltung, die kommenden Samstag, den 25. Januar ab 18:00 Uhr stattfindet und darauf angelegt ist, ein Hauch von Con-Feeling zu vermitteln: neben einem kurzen Vortrag vom Comic-Journalisten Harald Havas (der eher aus der „klassischen“ Comic-Szene kommt, dessen unterhaltsame Vorträge im Rahmen des Comic-Salons Erlangen wir zu schätzen gelernt haben) wird es eine Show-Einlage der Tsuki no Senshi geben, sowie anschließend eine thematisch passendes Videoprogramm: wir zeigen die ersten vier Folgen von „Bakuman“, das durch die Thematisierung des Entstehungsprozesses moderner Manga gut zur Ausstellung passt (die Lizenzierung der Episoden war dank der Unterstützung von Anime on Demand dann auch gar nicht so umständlich, wie man es Lizenzverhandlungen ansonsten üblicherweise nachsagt).

Daneben gibt es noch eine Reihe an Vorträgen im Rahmen des Münchner Volkshochschule, die insbesondere auch für „fortgeschrittene Fans“ interessant sein dürften:

Bei „Tatsumi“ handelt es sich um einen Animationsfilm aus Singapur, der auf dem autobiografischen Manga „A Drifting Life (劇画漂流 Gekiga Hyōryū)“ von Yoshihiro Tatsumi basiert, einem der wichtigsten Vertreter des Gekiga-Mangas.

Ein Grund, eine der Veranstaltungen zu besuchen, ist übrigens, dass es hier auch die kostenlosen 42seitigen Begleithefte zur Ausstellung gibt, die noch eine Menge an zusätzlichen Informationen und Abbildungen beinhalten.

Noch ein paar mehr Fotos insb. vom Aufbau gibt es in meiner Fotogalerie.

Manga-Datenbank-App

Animexx Manga-Datenbank
GooglePlay_130x45
AppStore_135x40

Seit kurzem ist nun meine erste Android- und iOS-App erhältlich: die Manga-Datenbank. Sie bringt das Verzeichnis aller in Deutschland erschienenen Mangas, das auf der Animexx-Seite seit dem Jahr 2000 kontinuierlich gepflegt wird, aufs Smartphone. Man kann die Mangas nach Herkunftsland, Genre und Titel durchsuchen, eintragen, welche Mangas man selbst schon hat, und sich per Push-Notifications über Neuerscheinungen abonnierter Manga-Serien benachrichtigen lassen. Die Basisdaten der Bände (Titel, ISBN-Nummer, und ob man den jeweiligen Band schon besitzt oder nicht) sind dabei auch offline abrufbar.

Die Manga-Datenbank ist mein erster Gehversuch im Bereich von HTML5-basierten Apps. Die größte Herausforderung war dabei die Datenmenge – die Datenbank umfasst knapp 10.000 Einzelbände aus knapp 2.000 Serien. Auf moderneren Smartphones ist das kein Thema – für ältere Android 2.3-Geräte mit vergleichsweise wenig Speicherplatz waren hingegen einige Kompromisse nötig, um die offline vorgehaltene Datenmenge auf wenige Megabyte begrenzt zu halten und das Rendering langer Listen nicht allzu ruckelig werden zu lassen.

screenshot1screenshot2screenshot3

Die ersten Rückmeldungen aus der Animexx-Community sind zumindest schon einmal sehr ermutigend. 🙂