Meedeo

Meedeo ist mein neues Open-Source-Projekt. Es ermöglicht das Abspielen von vertonten Bilderbüchern. 

Vertonte Bilderbücher?

Man nehme ein Bilderbuch und scanne es zum Beispiel ein. Dann liest man es in ein Mikrofon und nimmt dies am Pc auf. Dann legt man jeweils das Bild und die Tondatei mit dem gleichen Namen in einen Ordner. Fertig ist ein vertontes Bilderbuch, welches jetzt über einen Mausklick durchgeblättert werden kann.

Die Idee basiert auf dem Fotokuckiphon und ist für Rett-Kinder entwickelt worden. Mein Programm ist ein Klon auf der Adobe Air Technologie und steht unter der Apache Open Source Lizenz.

Es ist die erste Version, hat aber noch starkes Ausbaupotential. Das Programm wird ein Weihnachtsgeschenk für meine Schwester. Aber psssst, nicht verraten.

Thomas D rockt die Live Music Hall

Welch würdiger Abschluss des Wochenendes. Heute ging es zum Thomas D Konzert im nahe gelegenen Ehrenfeld. Mit der immer wieder gleichen Erkenntnis, dass es sich immer lohnt solche Konzerte mitzunehmen.

Ausverkauft – natürlich. Gute Stimmung – natürlich. Kölner Hymnen – diesmal nicht. Ich hatte die Fornika-Tour der Fantastischen Vier mitgenommen und da war Smudo für diese zuständig. Thomas D hat dafür seine Musik zu sehr genossen und eine gute Stimmung in die Halle gezaubert.

Die Location war auch super. Man ist wesentlich näher am Geschehen, als ich jemals in der Köln-Arena (ähm Lanxes-Arena) war. Von mir aus mit ich mit dem ÖPNV und kleinem Fußweg in 15min da, ist also wirklich praktisch.

Jetzt aber ab in die Heia, die neue Woche hat schon begonnen.

Konzerte

Am Sonntag geht es zu Thomas D., aber in nächster Zeit stehen wieder einige weitere Top-Acts in Köln auf der Bühe:

  • NERD (am Montag)
  • Cradle of Filth (da hätte ich wohl nichts passendes zum Anziehen)
  • Deichkind im Januar
  • Kaiser Chiefs
  • Soulfly
  • Staind im Februar (mit Papa Roach)
  • Kastelruther Spatzen (kleiner Scherz, aber typisch Bonn. Ich weiß schon, warum ich in Köln geblieben bin)
  • Raemonn
  • MIA
  • Maria Mena im März
  • Franz Ferdinand
  • Peter Fox
  • Mando Diao im April

Wer hat Lust auf NERD (falls es noch Karten gibt), Kaiser Chiefs, Franz Ferdinand (auf jeden Fall), Peter Fox oder auch andere genannte? Keine Lust alleine hinzugehen, aber da sollte doch die Finger bei euch nicht ruhig bleiben.

Amazon-Shoppen und Gutes tun

Wie ich gerade gelesen habe, nimmt der Rett-Verein am Partnerprogramm von Amazon teil. Das bedeutet, dass eine so genannte Provision ausgezahlt wird. Da ich sehr zufriedener Amazon-Shopper bin, möchte ich dies mal an andere weitern geben.
Kostet nichts, man sollte nur vor dem Shopping über folgenden Link gehen: www.rett.de und dort dann über den Amazon-Banner auf die Amazon Seite gehen.

Also vor dem nächsten Kauf dran denken und somit eine gute Tat vollbringen.

Hier noch mehr Informationen im Rett-Forum: Link zum Forum

Google Sites als Webseite

Vor längerer Zeit habe ich von Google Sites gelesen, was eine Art Wiki ist. Für das Gymnasium Alsdorf habe ich das vorgeschlagen und freigeschaltet. Nachdem ich Monate nichts davon gehört hatte, stieß ich irgendwann auf ein vollständiges Wiki, welches ein Lehrer aufgebaut hatte. Ich war beeindruckt und als Freund der Google Apps for your Domain wollte ich es auch einmal nutzen. Mein altes Dokuwiki habe ich gegen mein privates Wiki getauscht, um wichtige Links zu sammeln und einfach editieren zu können.

Schon vor zwei Monaten bekam ich dann die Anfrage für den Dalton-Verein des Gymnasiums eine neue Plattform einzurichten. Diese sollte einerseits aus der E-Mail-Komponente bestehen und andererseits ein Wiki bieten. Hat man die Domains unter seiner Kontrolle (CNAME-Records), so kann man sehr nette Sachen mit Google Apps for your Domain und Google Sites einrichten. Denn man kann z.B. auf den www-CNAME einen bestimmten Wiki-Teil setzen. Gibt man diesen frei, hat man ein nettes Wiki online, welches eine gute Account-Verwaltung bietet.

Insgesamt bin ich mit dem Wiki zufrieden. Es hat zwar keine Wiki-Syntax, sondern nur WYSIWYG. Das macht das Editieren etwas langsamer, aber ist bei dem Textumfang akzeptabel. Freigeben kann man leider nur komplette Sites. Das ist etwas Schade, aber wenn ich an andere Systeme denke, normal. Export und Import gibt es auch keinen. Das habe ich schmerzlich gemerkt, als ich dann doch mal eine Site zu einer anderen Domain umziehen wollte.

Aber eigentlich will ich mit dem Artikel etwas besonderes bekannt geben: Meine Schwester hat jetzt eine Webseite unter www.ann-jasmin.de. Sie ist zwar schwer behindert und wird diese nicht selber editieren, aber trotzdem kann eine Webseite sehr hilfreich sein.
In die Betreuung meiner Schwester sind sehr viele Personen eingebunden. Meine Eltern, die Werkstatt, das Heim und ich. Es gibt sehr viel abzustimmen und im Februar steht für sie ein Wechsel des Heimes an. Ärzte, Medikamente, Betreuung, Kontaktdaten der Institutionen, … was bietet sich da besser an, als ein Wiki. Bei agimatec hat es sich bestens bewährt. Keine komplexen Anwendung zur Urlaubsverwaltung, keine Applikation zur Verwaltung von Kontakten – just Wiki.
Ich bin sehr gespannt, ob die Personen und meine Eltern damit klarkommen, aber es eröffnet viele Möglichkeiten.

Ideen und Vorschläge zu www.ann-jasmin.de gerne in die Kommentare.

Latex

Wegen einer Anfrage habe ich meine Diplomarbeit hervorgekramt. Beziehungsweise diese in einem alten Subversion-Repository gefunden, denn die Sourcen hatten die Neuinstallationen irgendwie nicht überlebt. Froh die Sourcen zu haben, wollte ich auf dem Mac mal schnell das PDF sehen. Achso, war gar nicht als PDF eingecheckt. Das ist ja ok, weil man seine Binaries nicht unbedingt ablegt (diese können ja wieder generiert werden).
Ein Word-Dokument hätte ich jetzt einfach in Open Office geöffnet. Aber Latex ruft den guten Bastlergeist an. Erst mal etwas Latex-artiges herunterladen und installieren. Ok, gesagt getan, aber so einfach ist das dann nun auch mal wieder nicht. Das Dokument ist in verschiedene Unterordner aufgeteilt, die ich mit den Makros des neuen Editors erst einmal nicht zum Laufen bekomme.
Wie schön wäre jetzt ein eingechecktes Buildskript. Aber ich habe mich damals noch auf die Magie des Latex-Plugins von Eclipse verlassen. Keine gute Idee, um mal schnell eine Version der Diplomarbeit zu generieren. Nach 1,8GB Installationsdateien, sollte ich jetzt aber mal endlich ein PDF im Vorschau-Programm zu sehen bekommen.

Remember the tab

Gerade kam ich wieder in den Genuß eines tollen Firefox-Features, was nicht kompatibel zu Kontaktformularen ist.
Zurück zum Anfang der Geschichte. Bei einem wichtigen Anliegen, gab es mal wieder keine andere Möglichkeit als ein Kontaktformular. Also brav mein Anliegen formuliert und abgesendet. Die Bestätigungsseite kam und zum Weitersurfen habe ich natürlich weitere Tabs im Firefox verwendet. Eine Minute später kam auch die Bestätigung per E-Mail, dass das Kontaktformular erfolgreich abgesendet wurde und demnächst bearbeitet wird.
Firefox beendet und beim erneuten Start gemerkt, dass alle 10 Tabs wiederhergestellt wurden. Gut, habe ich so eingestellt, weil beide Varianten nerven. Entweder alle Tabs weg oder alle 10 Tabs wiederhergestellt. Vielleicht wäre ein Flag praktisch, dass man den wichtigen Tabs mit auf den Weg gibt. Nachdem ich mich durch die ersten Tabs mit CMD+W gekämpft habe, stelle ich fest, dass mir die frohe Botschaft: Ihre Nachricht wurde versendet entgegenlächelt. Eine Minute später ist auch die E-Mail im Posteingang.
Unschön, vorallem hoffe ich, dass die Bearbeitung nicht im Round-Robin-Verfahren erledigt wird und ich auch zwei Antworten erhalte.
Wer hat Schuld? Im Zweifel der Anwender, ist aber zu einfach. Firefox, naja, warum muss der auch die POST-Parameter abspeichern. Reicht es nicht, GET-Anfragen erneut zu senden? Nach der Spezfikation verändern POST-Parameter den Status auf dem Server. Von daher ist das unglaublich ungeschickt. Man stelle sich eine Anwendung vor, die Items nicht per Id, sondern per Index löscht. Dreimal im Firefox wiederhergestellt, dreimal das erste Item gelöscht. Aua – verdammt unschön.
Und was macht die Web-Anwendung? Sie hätte ein Token mitgeben können. Somit wäre zumindest das mehrfache Versenden unterbunden. Ist im Zusammenhang mit POST immer eine gute Idee. Gerade bei Abwehr von Cross Site Request Forgery (CSRF) sollte man sich richtiges Token-Handling mal ansehen.
Also haben wir nicht einen Übeltäter, sondern gleich drei:

  • Der Benutzer, der seine Tabs nicht ordnungsgemäß schließt
  • Firefox, der POST-Parameter erneut sendet
  • Die Web-Anwendung, die nicht genügend Überprüfungen hat

Wie behebt man das Problem am besten?
In dem man Kontaktadressen anstatt Formularen anbietet. Bitte liebe Webseiten-Auftraggeber: kein Kontaktformular, die sind die Pest schlecht hin. Neben meinem Problem sind das herrliche Einfallstore für Spam aller Art. Gibt man eine E-Mail-Adresse an, gibt es genügend fähige Filter, um Spam recht zuverlässig auszusortieren. Wie wertet man aber das Kontaktformular aus? Ein schönes Skript kann ein paar Tausend Einträge hinterlassen. Wie Filtern? Wie Gutes vom Schlechten trennen? Ah, wir sind bei Captchas. Toll, sehr benutzerfreundlich. Achso, kaum lesbar, na dann runter mit dem Störungen. Oh, jetzt gibt es doch wieder Spam-Attacken, weil es sich um eine wichtige Webseite handelt oder die verwendete Library schon gut genug von Spammern und deren OCR trainiert wurde. Es ist die Pest. Warum sollte man sich diese an den Hals holen, wenn man für die Bereiche E-Mail-Adressen hinterlegen kann. 99% der User kommen damit super klar (herrlich pauschalisiert). Man hat diese in seiner Mail-History und eine abgelaufene Session innerhalb eines Login-Bereiches führt nicht dazu, dass eine lange Kontaktabfrage einfach mal so verloren geht.
Ja, es gibt Bereiche wo es notwendig ist. Wo es aber nicht sein muss, gebt dem Nutzer zumindest die Wahl.
Amen.

Backup

Vor kurzem hatte ich von den tollen Möglichkeiten von wget berichtet. Mittlerweile läuft mein Backup und für alle interessierten will ich noch meine Lösung in den Blog stellen.
Wer Wunder oder fantastische Shell-Skripting-Lösungen erwartet ist sicherlich falsch, aber es geht ja auch nur um Backups.
Ziel war das Backup von Webspace, bei dem nur FTP zur Verfügung steht. Zusätzlich habe ich mir noch lokal MySQL installiert und kann nun auch die Datenbanken entfernt sichern. Einfacher als lokale Perl oder sonstige Skripte (meiner Meinung nach).

Erst einmal das Skript:

#!/bin/bash
cat sites.lst | while read line; do 
        if [ '#' != `echo $line | cut -c 1,1` ]; then
                echo $line
                wget -mirror -X=log,logs,usage,cgi-bin ftp://"$line" -P page 
        fi
done

cat db.lst | while read line; do
        if [ '#' != `echo $line | cut -c 1,1` ]; then
                hostname=`echo $line | cut -d: -f1`
                user=`echo $line | cut -d: -f2`
                password=`echo $line | cut -d: -f3`
                db=`echo $line | cut -d: -f4`
                filename=`echo $line | cut -d: -f5`
                mysqldump -h $hostname -u$user -p$password $db > 
                    database/$hostname-$filename.sql
        fi
done

Als Input dienen zwei Dateien (sites.lst und db.lst), die folgendes Format haben.

sites.lst

USERNAME:PASSWORD@HOSTNAME

db.lst

HOSTNAME:USERNAME:PASSWORD:DATABASE:FILE_DESCRIPTION

Wer es hilfreich findet, kann gerne einen Kommentar hinterlassen. Würde mich freuen zu hören, ob noch jemand diese Art der Lösung mag.

909

Nachdem ich mir nun zum zweiten Mal einen Beat mit dem JS-909(Javascript) zusammengeklickt habe, wollte ich euch daran teilhaben lassen (leider sind keine permanent Links für Beats möglich).

Woher kommt das 909? Vom Roland Tr-909