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.
Kategorie: Allgemein
Bezirksausschuss Laim: Website
Vor wenigen Tagen ging nach langer Vorbereitungszeit endlich die neue Website des Laimer Bezirksausschuss online:
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.
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:
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
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).
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.
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.
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.
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:
- „Ozamu Tezuka – der Gott des Manga“ von Dr. Freddy Litten
- „Manga als Medium – Geschichte und Nutzung im Japan des späten 20. und frühen 21. Jahrhunderts“ von Björn-Ole Kamm
- „Ukiyo-e: Japanische Farbholzschnitte und ihre Spuren in der europäischen Malerei“ von Dr. Choung-Hi Lee-Kuhn
- „Die Edo-Zeit als Wiege des japanischen Comic?“ von Prof. Dr. Stefan Köhn
- Filmvorführung von „Tatsumi“ (OmeU).
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
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.
Die ersten Rückmeldungen aus der Animexx-Community sind zumindest schon einmal sehr ermutigend. 🙂
OpenStreetMaps / Typo3
Ich hatte bei der Verwaltung der Seite unseres Ortsverbandes (Westend-Laim) das Problem, dass ich die Newsmeldungen (hauptsächlich Termin-Ankündigungen) mit interaktiven Karten versehen wollte, dabei aber zum einen lieber auf OpenStreetMaps denn auf GoogleMaps setzen will und es außerdem mit einer recht restriktiv eingestellten Typo3-Installation zu tun habe, auf die ich nur recht begrenze Zugriffsrechte habe.
Hauptproblem dabei war, dass die News-Erweiterung in den vorliegenden Einstellungen weder JavaScript noch IFrames zulässt, womit das ganze schon nur noch über eher hässliche Hacks möglich ist. Und genau eines solchen hab ich mich dabei auch bedient (und dabei natürlich Rücksprache mit Claude vom Stadtbüro gehalten):
http://gruenefeeds.hoessl.eu/osm-generator.html
Auf der Seite kann man sich einen Kartenausschnitt und eine Markierung auswählen und bekommt dazu einen Code angezeigt. Der Trick dabei ist, im News-Teil selbst nur einen HTML-Link anzuzeigen, der alle relevanten Daten beinhält und gleichzeitig als Fallback-Lösung dient.
Der zweite Teil des erzeugten Codes ist statisch und muss nur einmal als HTML-Seiteninhaltselement (bei dem dann auch JavaScript möglich ist) auf jedem Seitentyp eingebunden werden, bei dem eine Newsinhalt vorkommen kann. Dieser durchsucht die geladene Seite und wandelt alle Links nachträglich in eine eingebettete OpenStreetMap-Karte um.
Das Ergebnis sieht man z.B. auf dieser Seite.
Ich weiße vorsorglich darauf hin, dass bei der Übernahme des Codes die beiden JavaScript-Dateien jquery-x.x.x.js und OpenLayers-x.x.x.js schon aus Datenschutzgründen nicht von meinem privaten Server gruenefeeds.hoessl.eu geladen werden sollten.
Grüne RSS-Feeds aus München [Update 20.03.2011]
Ich bin ja ein recht großer Fan von RSS-Feeds. Sie bieten eine gute Möglichkeit, eine größere Zahl an Nachrichtenquellen im Auge zu behalten, ohne die jeweiligen Websites ständig besuchen zu müssen. Nutzen kann man sie mit einer Vielzahl an Programmen, von Thunderbird, Outlook & Co bis hin zu Web-Anwendungen wie Facebook, iGoogle (oder natürlich der Persönlichen Startseite bei Animexx).
Leider haben zwar einige Seiten einen News-Ticker, aber keinen zugehörigen RSS-Feed – erfahrungsgemäß meist deswegen, weil das angewendete Content Management System dies nicht anbietet oder nicht daraufhin konfiguriert ist. Da ich die Vorzüge trotzdem nicht missen möchte, hab ich mich mal eines programmiertechnischen Tricks bedient, um aus einigen der für mich relevanten Seiten trotzdem einen funktionierenden RSS-Feed zu erzeugen. Die folgenden Feeds sind zwar eigentlich für meinen eigenen Bedarf eingerichtet, aber vielleicht zieht ja noch jemand anderes einen Nutzen daraus:
- Kreisverband München:
http://gruenefeeds.hoessl.eu/rss/muenchen/(Hat inzwischen einen offiziellen RSS-Feed) - Ortsverband Westend/Laim: http://gruenefeeds.hoessl.eu/rss/muenchen_westendlaim/
- Ortsverband Pasing/Aubing: http://gruenefeeds.hoessl.eu/rss/pasing_aubing/
- Ortsverband Au-Haidhausen: http://gruenefeeds.hoessl.eu/rss/au_haidhausen/
- Ortsverband Hadern: http://gruenefeeds.hoessl.eu/rss/hadern/
- Ortsverband Giesing / Harlaching: http://gruenefeeds.hoessl.eu/rss/giesing_harlaching/
- Ortsverband Neuhausen / Nymphenburg: http://gruenefeeds.hoessl.eu/rss/neuhausen_nymphenburg/
- Ortsverband STOFF: http://gruenefeeds.hoessl.eu/rss/stoff/
- Grüne Fraktion im Bezirkstag Oberbayern: http://gruenefeeds.hoessl.eu/rss/oberbayern_fraktion/
- Grüne Stadtratsfraktion München (Pressemitteilungen):
http://gruenefeeds.hoessl.eu/rss/muenchen_fraktion/(Hat inzwischen einen offiziellen RSS-Feed, der auf meinem Skript basiert) - Grüne Stadtratsfraktion München (Anträge):
http://gruenefeeds.hoessl.eu/rss/muenchen_antraege/(Hat inzwischen einen offiziellen RSS-Feed, der auf meinem Skript basiert) - Anträge im Münchner Stadtrat (RIS): http://gruenefeeds.hoessl.eu/rss/stadtrat_antraege/
- CampusGrün Bayern: http://gruenefeeds.hoessl.eu/rss/campus_gruen_bayern/
- Hep Monatzeder: http://gruenefeeds.hoessl.eu/rss/hep_monatzeder/
- Jerzy Montag: http://gruenefeeds.hoessl.eu/rss/jerzy_montag/
- Gerald Häfner: http://gruenefeeds.hoessl.eu/rss/haefner/
Eine Kombination vieler relevanten Feeds gibt es unter http://gruenefeeds.hoessl.eu/rss/gruene_combined/
Zu diesem Blog
Meine Beweggründe, dieses Blog zu starten:
Ich hatte in den letzten Monaten häufiger gemerkt, dass ich eine Plattform brauche, um Artikel oder Kommentare zu veröffentlichen. Wenn ich etwas im Rahmen des Animexx mache, ist dafür natürlich das Aktiven-Weblog ideal.
Seit September ’09 bin ich nun in meiner Freizeit bei Bündnis 90 / Die Grünen aktiv, und nach einer etwas längeren „Schnupperphase“ zeichnet sich für mich langsam ab, dass ich hier einfach richtig bin und daher wohl auch längerfristig aktiv sein werde.
Ich habe mich daher dazu entschlossen, ein weiteres Weblog aufzusetzen. Ich hätte freilich auch das Animexx-Weblog-System dafür nutzen können – nach dem „eating your own dog food“-Prinzip wäre das auf der einen Seite auch konsequent gewesen. Auf der anderen Seite halte ich es für enorm wichtig, dass ich meine persönlichen politischen Einstellungen und Aktivitäten aus meinem Beruf bzw. meiner langjährigen Leidenschaft, dem Betreiben der Anime/Manga-Jugend-Plattform Animexx, heraushalte. (Anders herum habe ich freilich weniger Hemmungen: ich werde gerne jeden Grünen von den Vorzügen von Anime/Manga überzeugen 🙂 ). Aus diesem Grund gibt es von meiner Seite aus erst mal ein weiteres WordPress-Weblog.
Inhaltlich ist es immer etwas gefährlich, bei persönlichen Weblogs Vorhersagen zu machen, da es am Ende doch immer anders kommt als man denkt. Ich richte mich aber in erster Linie an Grüne aus dem Raum München, wobei man das mit dem „Raum München“ bei Bedarf auch gerne großzügig bis über Berlin hinaus auslegen darf.