Skip to content

Linux für Kinder und Jugendliche

Für eine gemeinnützige Einrichtung, eine Wohngruppe für Kinder und Jugendliche, bereite ich momentan einen älteren Rechner wieder auf, indem ich ihm ein schönes, aktuelles Linux-Betriebssystem verpasse. Die Hardware ist noch in Ordnung, und fürs Erste genügt auch dieser eine Rechner. Ich muss mich also nicht um irgendwelche Server-Installationen kümmern, sondern nur dafür sorgen, dass die Kinder und Jugendlichen diesen Computer sinnvoll nutzen können.

Betriebssystem

Bei der OS-Auswahl habe ich mich jetzt für Edubuntu entschieden, wobei es z.B. mit Skolelinux auch Alternativen gibt. Bei letzterem liegt der Schwerpunkt aber noch deutlicher auf dem Einsatz als Unterrichtsplattform in Schulen, z.B. auch in Rheinland-Pfalz. Mit geht es aber eher um ein bedienbares, sicheres System, das übrigens ein nicht mehr verfügbares Windows-System ersetzen soll. Die Kids sind zwischen 10 und 17 Jahre alt und wissen bereits, wie man einen Browser bedient usw., bloß haben sie zurzeit einfach kein Gerät zur Verfügung. Es geht hier also nicht um Kleinkinder, sondern durchaus um Teenager und Jugendliche. Edubuntu bringt außerdem schon einige Lernprogramme, aber auch Spiele mit.

Edubuntu LogoNachdem die Installation so glatt wie erwartet verlaufen ist, muss natürlich noch etwas an den Stellschrauben gedreht werden. Als erstes habe ich einen neuen, gemeinsam Benutzer angelegt und dessen Rechte etwas eingeschränkt, so dass z.B. keine neue Software installiert werden kann. Denkbar wäre auch, für jeden einzelnen Benutzer einen eigenen Account anzulegen, aber das ist nicht gefordert und kann ja bei Bedarf noch nachgeholt werden. Wie man Edubuntu noch weiter für die junge Zielgruppe anpassen kann, beschreibt sehr schön dieser Artikel im Wiki von ubuntuusers.de. Die dort gesammelten Tipps sind meiner Meinung nach sinnvoll und ausgewogen.

Filtern und Sperren

Ich will gar keinen riesigen Aufwand betreiben, um Inhalte zu blocken oder Nutzungsverhalten zu protokollieren. Solche Maßnahmen (Internetsperren à la von der Leyen) sind wenig zielführend und von nur zweifelhaften Nutzen. Umgehen lassen sie sich sowieso, und Kompetenz im Umgang mit dem Internet ersetzen sie auch nicht.

Und doch: Mithilfe des Parental Control GUI (Projektname: webcontentcontrol) lassen sich zumindest die schlimmsten Seiten filtern, als Grundschutz sozusagen. Im Hintergrund werkeln dansguardian, firehol und tinyproxy und können über das GUI konfiguriert werden (sofern man keine Allergie gegen Config-Dateien hat). Die Ergebnisse überzeugen zumindest auf den ersten Klick. Bei zu vielen false positives kann man die Tools ja einfach wieder deaktivieren. Ein Tool wie timekpr kann zusätzlich ganz nützlich sein, um Nutzungszeiten einzuschränken.

Sinnvolle Angebote

Dem Browser habe ich ebenfalls etwas Aufmerksamkeit geschenkt. Firefox bekommt zunächst einmal ein paar Add-Ons (AdBlock+, Speed Dial), als Startseite fragFINN und zusätzlich noch ein paar sinnvolle Lesezeichen spendiert. Ich glaube, damit habe ich schon eine ganz solide Grundinstallation hinbekommen.

Natürlich gibt es noch weitergehende Überlegungen: Soll ich das Anwendungsmenü anpassen? Welche zusätzlichen Programme und Spiele kann ich installieren? Welche entfernen, weil sie z.B. noch nicht übersetzt sind? Gibt es weitere, sinnvolle Maßnahmen, die ich durchführen kann, die aber bisher noch nicht angesprochen wurden? Da baue ich jetzt voll und ganz auf meine Leser. Bitte schreibt eure Erfahrungen und Ratschläge in einen Kommentar unter diesen Artikel. Kennt ihr gute Links zum Thema? Dann ebenfalls her damit.

Mobile Fahrrad-Navigation mit der OSM Radkarte

Mein auf den Lenker montiertes Garmin etrex Vista HCx

Fahrradfahrer finden im Netz zahlreiche Angebote, die ihnen Karten auf Basis von Openstreetmaps anbieten. Die Open Cycle Map ist in ihrer Kartendarstellung ganz auf Radler zuschnitten. Sie zeigt Radwege farblich hervorgehoben an. Mountainbiker (und auch Wanderer) finden spezielle Angebote unter Openmtbmap.org. Die Aufzählung könnte noch lange fortgesetzt werden.

Wer mit dem Fahrrad unterwegs ist, möchte aber das nötige Kartenmaterial gern dabei haben, da bringen noch so gute Online-Angebote wenig. Mit Smartphones ist zwar auch einiges möglich, aber nicht überall ist die Netzabdeckung gleich gut. Besitzer von GPS-Geräten können sich Openstreetmaps-Karten mit wenig Aufwand auf ihr Geräte laden. Ich habe das gerade auf meinem Garmin etrex Vista HCx ausprobiert.

Die Installation ist einfach

Als Ausgangsmaterial dienten Kartendaten des Projekts OSM Radkarte, die schon im richtigen Format für das Garmin vorliegen. Die Datei gmapsupp.img ist etwa 680 MB groß und kann hier heruntergeladen werden. Die Datei habe ich auf meine Datenkarte ins Verzeichnis /garmin kopiert, damit mein Gerät sie dort finden und einlesen kann. Das hat einige Minuten gedauert.

Schließlich konnte ich das Garmin aber mithilfe meines neuen Fahrradhalter an meinen Lenker montieren. Mit dem Joystick wählte ich auf der Kartenansicht einen Punkt am anderen Ende der Stadt aus. Wie empfohlen aktivierte ich die Option "Mautstrecken vermeiden" (bewirkt das Umfahren von Autobahnen und Bundesstraßen ohne Radweg) und schaltete die Option "Kehrtwenden vermeiden" aus. Und fuhr los.

Im praktischen Einsatz

Sofort wurde die Route berechnet und lotste mich durch die Straßen der Mainzer Neustadt. Sollte ich abbiegen, wurde ich von einem kurzen Piepston darauf aufmerksam gemacht, und die Karte zoomte in eine Detailansicht mit Abbiegepfeil. Die berechnete Route verlief vollständig über Radwege und Nebenstraßen und war auch ziemlich optimal berechnet. Ein-, zweimal wäre ich gefühlsmäßig anders abgebogen, was aber am Ende aufs Gleich hinausgelaufen wäre. Ich musste also keine Umwege fahren, und als ich einmal mutwillig falsch abbog, wurde schnell eine neue Route berechnet.

Einziges Problem: Wir haben in Mainz mittlerweile sehr viele Einbahnstraßen, die von Fahrrädern in beide Richtungen befahren werden dürfen. Dies wurde in der Routenplanung nicht berücksichtigt. Es sieht aber so aus, dass diese Eigenschaften (cycleway:opposite) in den OSM-Daten gar nicht vorhanden sind (da muss ich wohl mal losziehen und mappen!). Das ist also offenbar kein Problem der Software. Ansonsten klappte das Routing perfekt, und ich werde es demnächst mal bei einer größeren "Überlandfahrt" ausprobieren.

Abschließender Hinweis

Wie oben angesprochen, gibt es noch andere Karten zum Download, z.B. die von Openmtbmap.org. Im Endeffekt dürften sich diese Karten in Ansicht und Verwendung sehr ähneln. Das Schöne an diesen offenen Projekten ist ja gerade, dass man die Wahl hat. Mir fehlen allerdings sowohl Zeit als auch Lust, alle diese Optionen auszuprobieren. Ich freue mich aber über Erfahrungsberichte mit anderen Maps!

Petition für Netzneutralität

Logo der Initiative Pro NetzneutralitätDie Petition der Initiative Pro Netzneutralität setzt für eine Gleichbehandlung aller Daten ein. Denn diese ist eine Grundvoraussetzung für freie Meinungsäußerung und den uneingeschränkten Zugang zu Informationen. In den USA haben sich jüngst Google und Verizon über das Thema unterhalten und damit für viel Unsicherheite gesorgt. Jetzt regt sich auch hierzulande Widerstand gegen die Pläne der Großkonzerne. Von den Initiatoren der Petition wird Netzneutralität wie folgt definiert:

Netzneutralität ist die Grundlage für ein Internet, wie wir es kennen. Wir sind gewohnt, dass Daten ohne Ansicht von Inhalt und Größe – abgesehen von technischen Restriktionen – diskriminierungsfrei transportiert werden. Netzneutralität besagt, dass alle Daten, seien es Emails, Websites oder Musikdateien, gleich zu behandeln sind. Dadurch wird kein Dienst bevorzugt oder benachteiligt. Netzneutralität ist die Voraussetzung für die Gleichberechtigung aller Datenpakete.

Hier kann man es Kristian Köhntopp und vielen anderen gleichtun und die Petition unterzeichnen.

API-Schlüssel in YQL Storage sicher speichern

YQL LogoVorhin habe ich etwas mit YQL herumgespielt und versuchsweise das API von last.fm angezapft. Der Aufruf der einzelnen Methoden setzt einen API-Schlüssel ("API Key") voraus, den man problemlos bei last.fm beantragen kann. Ich habe mich lange gefragt, wie ich diese Methoden mit reinem Javascript auf einer öffentlich zugänglichen Webseite aufrufen kann, ohne meinen API Key ebenfalls öffentlich zu machen. Denn beim Testen innerhalb der YQL Console ist er Teil des SELECT-Statements, auf meiner Seite darf er das nicht mehr sein. Im folgenden zeige ich, aufbauend auf einem Artikel von Nagesh Susarla, was zu tun ist, damit man den geheimen API-Schlüssel geheim halten und dennoch für seine YQL-Abfragen nutzen kann.

Damit kann ich beispielsweise meine wöchentlichen Top-Künstler von last.fm abrufen kann, reichen mir ein paar Zeilen Javascript-Code, einen eigenen Webserver benötige ich dafür gar nicht. Als Grundlage dient mir das offizielle YQL-Tutorial First YQL Application, das ihr euch vielleicht ansehen solltet, falls ihr noch nie mit YQL zu tun hattet. Die Daten, sprich meine Top-Künstler, beziehe ich aus der Community Table lastfm.user.getweeklyartistchart (dort auf Test klicken).

Um nun an meine Liste heranzukommen, schicke ich folgende Abfrage ab:

select '*' from lastfm.user.getweeklyartistchart where user = 'numblog' and api_key = 'API_KEY'

In der YQL Console ausführen (ihr benötigt einen gültigen API Key) - Hinweis: Die Hochkommata um das Sternchen bitte weglassen; die stehen da nur, weil sonst das Syntax-Highlighting kaputt geht.

Wollte ich diese Abfrage in meine Webseite einbinden, wäre der API Key für alle lesbar:

Ich will natürlich vermeiden, dass Dritte mit meinem API Key auf last.fm zugreifen. Hier kommt Yahoo! Sherpa ins Spiel, ein Key-Value-Store in der Cloud. Dieser kann ebenfalls via YQL angesprochen werden und bietet die üblichen Vorteile (und Nachteile) einer Cloud-Lösung. Zwei Open Data Tables werden angeboten, yql.storage und yql.storage.admin, wobei yql.storage.admin die Tabelle unserer Wahl ist, weil sie nur nach erfolgter OAuth-Anmeldung oder über die YQL Console befüllbar ist. Mehr Info dazu bietet die Dokumentation.

Aber gehen wir noch einmal einen Schritt zurück. Anstatt den API Key in der WHERE-Bedingung zu übergeben, könnten wir auch folgendermaßen vorgehen und die Variable schon vor unserer Abfrage setzen:

use 'http://www.datatables.org/lastfm/lastfm.user.getweeklyartistchart.xml' as lastfm.user.getweeklyartistchart;
set api_key='API_KEY' on lastfm.user.getweeklyartistchart;
select "*" from lastfm.user.getweeklyartistchart where user = 'numblog';

Wenn wir dies nun mit der Tabelle yql.storage.admin verbinden und in der YQL Console (in eingeloggtem Zustand, ihr benötigt also auch einen Yahoo!-Account) die Daten mit dem entsprechenden Statement in die Cloud schreiben:

insert into yql.storage.admin (value) values ("use 'http://www.datatables.org/lastfm/lastfm.user.getweeklyartistchart.xml' as lastfm.user.getweeklyartistchart;
set api_key='API_KEY' on lastfm.user.getweeklyartistchart;")

dann erhalten wir dem folgenden ähnliches XML zurück:

    
        store://I2KUjXfoobarAzIw0v3vfv
        store://p6QZPnGmgyoafoobarNimz
        store://jTfoobarMLleWbJoMY8phd
    

Dieses Ergebnis solltet ihr euch gleich mal in einen Editor kopieren, denn das benötigen wir gleich wieder zur Abfrage auf unserer Webseite. Kurz erklärt:

  • Der execute-Schlüssel kann nur zur Ausführung von Abfragen verwendet werden. Die hinterlegten Daten werden nicht ausgegeben.
  • Der select-Schlüssel sollte geheim bleiben, denn damit lassen sich die Einträge aus yql.storage auslesen.
  • Der update-Schlüssel erlaubt das Verändern dieser Einträge; somit sollte auch er geheim bleiben.
Mithilfe des execute-Schlüssels, den wir als Umgebungsvariable übergeben, lässt sich unsere Abfrage nun ohne Angabe des API Key ausführen:

Ihr könnt in der YQL Console auch gern die Sicherheit des execute-Schlüssels testen und werdet einen Permission-Error zurückbekommen:

select * from yql.storage where name='store://I2KUjXfoobarAzIw0v3vfv'

In der YQL Console ausführen.

Somit steht dem clientseitigen Anzapfen diverser APIs nichts mehr im Wege, auch wenn ein API Key verlangt wird. Momentan gibt es bereits weit über 800 Open Data Tables, über die Daten von den verschiedensten Diensten abgerufen werden. Viele davon sind frei zugänglich, andere benötigen einen API Key. Fragt ihr diese vom Server aus ab, stellt das kein Problem dar. Eine rein clientseitige Lösung im Browser hat aber auch ihren Charme. Es wird kein Server benötigt und daher auch nicht belastet, Yahoo! übernimmt im Hintergrund viel Arbeit (Caching, Fehlerbehandlung, ...) für euch, und möglicherweise ist alles viel schneller. Und jetzt auch sicher.

Hier die simple Ausgabeliste meines einfachen Beispiels:

<div id="yql_lastfm_results" style="margin-left:1em;"></div>
<script src="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20lastfm.user.getweeklyartistchart%20where%20user%20%3D%20'numblog'&format=json&diagnostics=true&env=store%3A%2F%2FI2KUjXc5O0hZAzIw0v3vfv&callback=top_stories"></script>