Samstag, 2. Januar 2010

Babyschwimmen

Heute erweitere ich die Themen dieses Blogs um ein weiteres, das bei mir im Moment naheliegt: alles rund ums Kind (keine netten Geschichten, sondern Produkte und Dienstleistungen).

Ich fange mal mit dem

Babyschwimmen

an:

Der Kurs der Schwimmschule Roth fand im Hallenbad Nord in Tübingen statt.

Dort ist am Freitag zwar Warmbadetag, das Schwimmerbecken, in dem der Kurs abgehalten wurde, fühlte sich aber doch recht kühl an, vor allem die kleineren Kinder schlotterten nach ein paar Minuten und am Ende des Kurses war man froh, schnell mit dem Kind ins wirklich warme Kinderbecken zu können.

Unserem Nils (begonnen haben wir, als er 4 Monate alt war, die Sommerferien haben den Kurs dann unterbrochen, aufgehört haben wir mit 9 Monaten) hat das Schwimmen dennoch riesig Spaß gemacht.

Seine Eltern fanden es weniger witzig, der Stil des Schwimmlehrers wirkte auf mich persönlich eher militärisch (“Und jetzt in die Rückenlage! Und jetzt alle singen: ‘Es tanzt ein Bi-Ba-Butzelmann’! Und jetzt…”) und mäßig motiviert. Die Übungen wiederholten sich – klar, das muss ja bei Kleinkindern auch so sein, aber es sollte doch jedes Mal auch etwas neues dabei sein, und dem war nicht so.

So hat uns dann ein Kurs völlig gereicht, die gelernten Übungen kann man gut auch alleine mit seinem Kind und vor allem mit eigenem Tempo durchführen.

Falls wir noch einen Kurs machen, werden wir ein anderes Bad bevorzugen und einen Kurs beim Haus der Familie Reutlingen oder der VHS buchen…

Montag, 22. Dezember 2008

Dell Studio

Dell Studio 530

Bisher war ich mit meinem alten Dell Dimension mit P4 (2,6 GHz) recht zufrieden: zuverlässig, recht leise. Nachdem er nun etwas in die Jahre gekommen ist, es Probleme mit per USB angeschlossenen W-Lan-Sticks gab (unregelmäßige, aber häufige Verbindungsabbrüche), sollte ein neuer PC her, da ich mit Dell gute Erfahrungen gemacht habe und die Preise durchaus konkurrenzfähig waren (sogar inkl. Versand...), fiel meine Wahl auf den Dell Studio 530:
  • recht kompaktes, aber ansehnliches Gehäuse
  • Dual Core E8400
  • Ati HD 3400 (laut Dell-Telefonberater ohne DVI, in der Praxis mit DVI)
Richtig zufrieden mit dem Rechner bin ich jedoch nicht!

Probleme:
  • Der Rechner ist viel zu laut: Der Gehäuselüfter ist nicht vom Gehäuse entkoppelt und brummt etwas tiefer, der Prozessorkühler rauscht deutlich, auch die Grafikkarte hat einen kleinen Lüfter (bei diesem Chip eigentlich überflüssig!), der wird aber vom Rest übertönt, nur Festplattenzugriffe sind recht leise.
  • Der DVD-Brenner (HL-DT-ST GSA-H73N) ist ein Billigprodukt: er röhrt mächtig und überträgt seine deutlichen Schwingungen klappernd aufs Gehäuse; mit CD-RWs verschiedener Hersteller kann er nichts anfangen, die Leserate bricht auch bei gepressten CDs immer wieder hörbar und spürbar ein, häufig müssen DVDs mehrfach eingelegt werden, damit sie erkannt werden.
  • Das Auspacken des Rechners aus der Schutzfolie auf den Hochglanzflächen war eine Freude und dauerte ca. 15 Minuten (die Folie zerreißt auch bei vorsichtigem Vorgehen in viele kleine Einzelteile, die mit dem Fingernagel abgekratzt werden wollen. Man sollte die Seitenteile des Gehäuses vorher entfernen!) - aber das ist eine einmalige Sache, die keine bleibenden Schäden verursacht.
  • Der SD-Card-Leser ist schnarchelangsam.
  • Hinten nur 4 USB-Anschlüsse (vorne 2); wem reicht denn das, wenn für Tastatur und Maus schon mal 2 weggehen?
  • Die Standard-Dell-Tastatur ist zwar schick und flach, setzt aber den "Pos1 bis Bild"-Tastenblock hochkant statt quer und die Pfeiltasten leicht nach links - ein steter Quell der Freude beim blind tippen.
  • Die Gehäusefront ist schick, die Plastikabdeckung des DVD-Laufwerks und der Auswerfen-Knopf machen aber keinen übermäßig stabilen Eindruck. Bei geöffneter Schublade ist der Öffnen-Knopf komplett verdeckt, ein Schließen der Schublade ist mit dem Knopf also nicht möglich.
Lösungsansätze:
  • Der Gehäuselüfter (Durchmesser: 9 cm) lässt sich recht einfach und kostengünstig (12€) gegen ein leiseres Modell mit Entkopplernippeln austauschen.
  • Der Prozessorkühler lässt sich leider nicht austauschen, da er mit einer verklebten Verstrebung auf der Rückseite des Motherboards verschraubt ist, d.h. die üblichen Push-Pins der LGA 775-Kühler können nicht eingeschoben werden.
Fazit: Dieser Rechner wird meinen Wünschen nicht gerecht!

Mittwoch, 5. November 2008

hängengebliebenen Druckauftrag unter WinXP löschen

Problem:
Unter Windows XP bleiben ab und zu Druckaufträge hängen, die sich auch als Administrator und nach einem Neustart nicht löschen lassen (z.B. weil der Drucker nicht mehr erreichbar ist).

Lösung:
- Unter Start-->Ausführen die Dienste-Konsole "services.msc" aufrufen.
- Den Dienst "Druckerwarteschlange" heraussuchen, markieren und oben auf die "Stop"-Schaltfläche klicken; der Dienst wird angehalten.
- Im Windows-Explorer das Verzeichnis "C:\WINDOWS\system32\spool\PRINTERS" heraussuchen und alle darin enthaltenen Dateien löschen; damit sind alle Druckaufträge (auf allen installierten Druckern!) gelöscht.
- In der Dienste-Konsole jetzt den Dienst "Druckerwarteschlange" wieder starten, über die "Play"-Schaltfläche.

Montag, 3. November 2008

iTalc neu installieren

iTalc ist ein Freeware-Programm, mit dem sich ein Klassenraum voller Computer "überwachen" lässt, z.B. um am Bildschirm einem Schüler per "Fernwartung" Tipps zu geben, einen Schülerbildschirm auf den Beamer zu holen, alle Schülerbildschirme zu sperren oder auch alle Rechner mit einem Mausklick herunterzufahren.

Problem:
Eine Neuinstallation (neue Version oder Image von einem anderen Raum) führt häufig, wenn man die richtigen Schritte nicht beachtet, dazu, dass die alten Schlüssel verwendet werden und eine Verbindung zwischen Master und Clients nicht zustande kommt (Clients lehnen Verbindung mit einer Meldung in der Taskleiste ab).

Lösung:

Man muss sowohl den iTalc-Dienst ica aus den Windows-Diensten entfernen (nicht nur deaktivieren!) wie auch (anschließend) das iTalc-Verzeichnis mit den alten Schlüsseln löschen.

Vorgehen:
Besonders bequem und mausklicksparend ist folgendes Vorgehen:

- Batch-Datei "italcdeinst.bat" erstellen mit folgendem Inhalt (am besten auf einem Netzlaufwerk speichern, zusammen mit den Installationsdateien von iTalc):
c:\Programme\italc\ica -unregisterservice
rmdir C:\Programme\italc /s /q
Befehl 1 schmeißt ica aus der Liste der Windows-Dienste raus.
Befehl 2 löscht das Verzeichnis ...\italc mit allen Dateien und Unterverzeichnissen (/s) ohne Nachfrage (/q)


- Batch-Datei "italcdeinst.bat" auf dem Master-Rechner (z.B. der Lehrerrechner) ausführen

- iTalc auf dem Master-Rechner installieren, neue Schlüssel anlegen und dabei das Verzeichnis für den öffentlicher-Schlüssel-Export beachten!

- Batch-Datei "italcdeinst.bat" auf dem ersten Client-Rechner (=Schülerrechner) ausführen.

- Datei "setup.exe" auf dem ersten Client-Rechner ausführen, dabei vorher exportierten Schlüssel jetzt importieren und am Ende den Haken bei "Installationsvorgang speichern" setzen. Im iTalc-Installationsverzeichnis wird dann automatisch eine Datei "installsettings.xml" angelegt.

- Batch-Datei "italcinstall.bat" anlegen (im iTalc-Installationsverzeichnis auf dem Netzlaufwerk) mit folgendem Inhalt:
setup.exe installsettings.xml

Damit wird das iTalc-Setup automatisch mit den Einstellungen des letzten Client-Setups ausgeführt.


- Batch-Dateien "italcuninst.bat" und "italcinstall.bat" nun auf allen Clients ausführen - fertig!

Freitag, 4. Januar 2008

Arktur 4 und Corel PhotoPaint X3

Problem:

Ich hatte auf einem Serververzeichnis einige Fotos (Dateigröße zwischen 300Kb und 5MB) gespeichert und ließ meine 12 Schüler die Fotos auf dem Server öffnen und mit Corel PhotoPaint X3 bearbeiten (mit Kontrastregler spielen usw.). Die Schüler haben in diesem Verzeichnis nur Lese-Rechte.

Nach einiger Zeit musste ich feststellen, dass unser Arktur 4 RC5 komplett abgestürzt war - kein Lesen von irgendwelchen Netzlaufwerken mehr möglich, kein Putty, sogar der Bildschirm am Server selbst blieb schwarz, ein Strg-Alt-Entf am Server bewirkte nichts - nur ein Reset verhalf dem Server wieder zum Leben.

Das ganze passierte 2 Mal, beide Male während der Arbeit mitt Corel PhotoPaint auf einem Serververzeichnis. Seitdem ich anders vorgehe (s.u.), ist der Server kein einziges Mal mehr abgestürzt.

Workaround:
Ich lasse die Schüler den Ordner mit den Bildern jetzt immer zuerst auf den Desktop laden (kein Netzlaufwerk, sondern ja lokal auf dem Client bis zum Logout des Schülers "zwischengelagert") und erst dann das Foto in PhotoPaint öffnen - dann funktioniert alles ohne Probleme.
Die Schüler sollten nur am Ende der Stunde die Fotos wieder vom Desktop löschen, damit sie nicht bei jedem Login/Logout auf den/vom Client kopiert werden müssen.

Sonntag, 13. Mai 2007

Ubuntu mit SquidGuard als Proxy-Server

Vorgeschichte:

Da unsere Versuche mit einem zweiten Arktur-Schulserver als Proxy auf die Dauer nicht erfolgreich waren (Arktur besteht darauf, die Internetverbindung über eine zweite Netzwerkkarte herzustellen, und das hat offenbar unser gesamtes Netz nach einigen Tagen an den Rande eines Zusammenbruchs gebracht - warum ist mir nicht so ganz klar, aber nach Stilllegen des Arktur-Proxys und Einschalten eines Jana-Proxys unter WinXP lief alles wieder), musste eine andere Lösung her.

Aufgabe:
Mit Ubuntu haben wir bisher gute Erfahrungen gemacht, also warum nicht statt Arktur Ubuntu 6.06 LTS installieren, mit aptitude den SquidGuard nachinstallieren (Squid selbst kommt automatisch mit...) und mit diesem unsere Schüler vor Nazi-, Porno- oder sonstigen pädagogisch und auch sonst nicht wertvollen Seiten bewahren?

Vorgehen:
Ubuntu in der Server-Ausgabe (mit Long-Time-Support für Updates) ist schnell und auch für Linux-Laien schnell installiert, etwas mehr Mühe kostet es, mit vi die erweiterten Archive einzutragen, damit man dann - wiederum ganz einfach - mit aptitude den Midnight Commander und SquidGuard nachinstallieren kann. (ausführlichere Beschreibung dieser Schritte folgt später...)

Dann gilt es noch, eine gut gepflegte Blacklist zu laden, damit SquidGuard auch weiß, welche Seiten er sperren soll. (Beschreibung folgt)

Und nun das Interessanteste: Wie muss ich die squid.conf und die squidguard.conf anpassen, damit die Anfragen der Clients jetzt auch wirklich gefiltert werden.

squid.conf:
Hier ist nur wenig zu tun: man muss im Prinzip nur alle Anfragen an Squidguard weiterleiten.

squidguard.conf:
Im Prinzip ist hier auch nicht viel zu erledigen, man muss nur das Prinzip verstehen, was uns einiges an Zeit gekostet hat! Dabei ist es doch so einfach:

...to be continued

Montag, 7. Mai 2007

Netzwerk-route mit Ubuntu

(oder: was das ubuntuusers-Wiki verschweigt)

Problem:

Der Rechner soll in verschiedene Netze (z.B. unterschiedliche VLans nach dem Schema 192.168.0.0, 192.168.1.0, 192.168.2.0 usw.) Kontakt haben. in anderen Linux-Ditributionen ist dafür die Datei /etc/route.conf zuständig - die gibt es unter Ubuntu aber nicht! Wie geht es dann?

Betriebssystem:
Ubuntu-Server 6.06 LTS

Lösung:
Ubuntu speichert die grundlegenden Informationen zum Netzwerk in der Datei /etc/network/interfaces, deshalb gibt es auch keine route.conf mehr.
Diese Datei hat zu jeder im Rechner eingebauten Netzwerkkarte eine eigene "Abteilung". Hier fügt man nun einfach hinter den bestehenden Informationen als neue Zeile die benötigten routing-Informationen nach folgendem Muster hinzu:

route add 192.168.1.0 gw 192.168.0.254

Vorne steht das zweite Netz, dass der Rechner (eigene IP: 192.168.0.1) erreichen soll.
"gw" steht für die Adresse des Gateways (z.B. der Switch), sofern dieses benötigt wird.

Gibt es noch weitere Netze, die erreicht werden sollen, so fügt man einfach beliebig viele weitere Zeilen für jedes Netz hinzu.

Dienstag, 20. Februar 2007

Eigener Webserver mit moodle

Wie installiere ich einen eigenen Webserver und die Lernumgebung "moodle"?

Da die moodle-Seiten auf dem Landesbildungsserver Baden-Württemberg und dem Lehrerfortbildungsserver wenig komfortabel in der Benutzung sind und auch nicht alle Funktionen zur Verfügung stellen (veraltete moodle-Versionen), haben wir uns entschlossen, einen eigenen Server ins Internet zu stellen und einen eigenen moodle-Server darauf zu installieren.

Grundlage
Das Grundsystem für unseren Server stellte der Ubuntu-Server in der Version 6.06.1 (Long-Run-Support) dar. Das System ist kostenlos, der ebenfalls kostenlose Support mit Sicherheitsupdates usw. wird für 3 Jahre gewährleistet, die Installation ist easy:
  • CD einlegen und starten
  • LAMP-System installieren (LAMP = Linux, Apache, MySQL-Datenbank, PHP-Skripsprache), ein paar einfache Nachfragen beantworten
  • fertig
Der Nachteil: nach dem Neustart und dem Login steht einem lediglich ein Prompt zur Verfügung - für Linux-Anfänger doch eher ein Hindernis!

Erweiterung
Dieses Problem lässt sich einfach beheben: man installiert die grafische Umgebung (bei Ubuntu standardmäßig Gnome, auch wenn man KDE gewohnt ist, ist Gnome keine große Umstellung) nach:
  • sudo aptitude aufrufen (= die Paketverwaltung aptitude mit Administratorrechten starten)
  • das Paket "ubuntu-desktop" suchen (mit Strg-C kommt man an das Menü, der erste von der Suchfunktion gefundene Eintrag ist der falsche, die Suche kann man mit Strg-N fortsetzen) und auswählen ("g" drücken)
  • Nochmals mit "g" bestätigen und schon legt die Installation los - einige wenige Teile werden von der Server-CD geladenn, das meiste (einige 100 MB!) lädt sich aptitude aus dem Internet nach!
Fortan steht einem nach dem booten automatisch ein grafischer Login und Gnome zur Verfügung, jetzt kommen auch Linux-Anfänger mit dem System recht problemlos zu Rande und können z.B. weitere Benutzer am Server einrichten oder die automatiuschen Updates konfigurieren.

moodle installieren
Zunächst lädt man sich von moodle.org die aktuelle Version herunter. In der englischen ubuntu-Wiki wird der Installationsvorgang sehr schön und einfach beschrieben: es sind nur wenige Änderungen an Konfigurationsdateien und Rechten auf der Linux-Konsole vorzunehmen, das meiste läuft dann ganz einfach über den Browser ab - bei uns dauerte es knapp 15 Minuten, bis wir einen lauffähigen moodle-server hatten!

Probleme
  1. moodle mailt nicht!
Wenn man bei der ubuntu-Installation den Domain-Namen korrekt angegeben hat und keine Firewall o.ä. (bei Belwue muss man z.B. einen Belwue-eigenen Mailserver als SMTP-Ziel angeben) den Mailversand behindert, sollten die Grundlegenden Mails z.B. an den moodle-Admin oder die Bestätigungsmails für neu eingetragene moodle-Mitglieder direkt versendet werden.
Wenn allerdings in einem moodle-Kurs im Forum ein Eintrag verfasst wird, so wird dieser nicht wie versprochen an alle Mitglieder des Kurses verschickt!
Die Lösung findet sich im Admin-Menü unter dem unscheinbaren Punkt "Mitteilungen": Hier steht die Meldung "Das Cron-Script wurde in den letzten 24 Stunden nicht ausgeführt.", wobei die Worte "Cron-Script" ein Link sind, ein Klick hierauf startet das Script, es erscheinen Textmeldungen auf einer neuen Browser-Seite, jetzt werden alle auf Halde gesammelten Mails verschickt. Dieses Cron-Script will als Cron-Job unter Linux eingetragen sein, die moodle-Hilfefunktion gibt hierfür wieder genaue Anweisungen. Anschließend wird das Script automatisch alle 5 Minuten gestartet.

Weitere Punkte folgen später an dieser Stelle!

Samstag, 4. November 2006

Proxy-Einstellungen in Firefox schützen

Problem:
Beim IE ist mittels GPedit recht einfach die "Verbindungen"-Seite zu sperren, sodass die Schüler die Proxy-Einstellungen nicht verändern können.
Firefox hält sich allerdings nicht an die Einstellungen dieser Seite, sondern verwaltet den Proxy selber. Bis Version 1.5 im Karteireiter Allgemein unter Extras-Einstellungen, seit Version 2.0 im Karteireiter Erweitert-Netzwerk-Einstellungen.
Diese Seite lässt sich zwar global für alle User je Client vorgeben, allerdings können die User die Einstellungen verändern oder stilllegen. Wie lässt sich dies verhindern?

Lösung:
Mit den geeigneten Suchbegriffen lassen sich bereits Beschreibungen für die Problemlösung finden, ich stütze mich hier u.a. auf den Lösungsansatz von Mac-o-Net und Chris Ilias, baue aber unsere spezielle Fragestellung ein.

1. Schritt: Wir basteln uns eine Vorlage.
In einem Texteditor erstellen wir folgende Zeilen:
//
lockPref("network.proxy.backup.ftp","192.168.0.200");
lockPref("network.proxy.backup.ftp_port",8080);
lockPref("network.proxy.backup.gopher","192.168.0.200");
lockPref("network.proxy.backup.gopher_port", 8080);
lockPref("network.proxy.backup.socks","192.168.0.200");
lockPref("network.proxy.backup.socks_port", 8080);
lockPref("network.proxy.backup.ssl","192.168.0.200");
lockPref("network.proxy.backup.ssl_port", 8080);
lockPref("network.proxy.ftp","192.168.0.200");
lockPref("network.proxy.ftp_port", 8080);
lockPref("network.proxy.gopher","192.168.0.200");
lockPref("network.proxy.gopher_port", 8080);
lockPref("network.proxy.socks","192.168.0.200");
lockPref("network.proxy.socks_port", 8080);
lockPref("network.proxy.ssl","192.168.0.200");
lockPref("network.proxy.ssl_port", 8080);
lockPref("network.proxy.http","192.168.0.200");
lockPref("network.proxy.http_port", 8080);
lockPref("network.proxy.share_proxy_settings",true);
lockPref("network.proxy.type",1);
lockPref("browser.startup.homepage","http://arktur.schul-netz.de");
Erklärung:Der Proxy hat die IP 192.168.0.200 und den Port 8080 (wenn nicht, dann einfach abändern). Durch die Vorgabe "lockPref" wird Firefox angewiesen, die Einstellung zu sperren, im entsprechenden Menüfenster sind dann Änderungen des Users (auch mit Admin-Rechten!) nicht mehr möglich - das gleiche gilt übrigens auch für die entsprechenden Einträge in about:config!

Die Datei speichern wir unter "mozilla.txt".

2. Schritt: Wir wandeln die Vorlage um.
(Achtung: Original-Post gilt für alte Firefox-Versionen. Siehe Edit unten!)

Firefox akzeptiert Configurationsdateien nur kodiert (byte-shifting mit einem Versatz von 13), am bequemsten geht das mit dem Automatic Mozilla Configurator, Datei hochladen, umwandeln lassen und als mozilla.cfg abspeichern - und zwar im gleichen Verzeichnis wie die firefox.exe - also im Normalfall unter C:\Programme\Mozilla Firefox.

3. Schritt: Ergänzen der all.js.
(Achtung: Original-Post gilt für alte Firefox-Versionen. Siehe Edit unten!) 
Nun müssen wir Firefox mit der neuen Datei noch bekanntmachen. Wir öffnen in einem normalen Texteditor die Datei all.js aus dem Verzeichnis C:\Programme\Mozilla Firefox\greprefs. Ganz ans Ende der Datei hängen wir die Zeile:pref("general.config.filename","mozilla.cfg");
(bitte danach vorsichtshalber eine Leerzeile freilassen!)

Das war's auch schon! Beim nächsten Start von Firefox sind die Proxy-Einstellungen gesperrt. Und zwar bei allen Usern auf diesem Rechner.

Wenn man das auf mehreren Rechnern im Netzwerk erledigen muss, hilft eine kleine Batch-Datei auf einem Netzlaufwerk (hier als Laufwerk P: gemountet) mit folgendem Inhalt:

copy p:\mozilla.cfg "C:\Programme\Mozilla Firefox" /y
copy p:\all.js "
C:\Programme\Mozilla Firefox\greprefs" /y
pause


Erklärung:
Man beachte die Anführungszeichen! Der Pfad enthält ein Leerzeichen. Damit das Firefox als Teil des Pfades und nicht als fehlerhafte Optionsangabe des Befehls copy angesehen wird, bedarf es der Anführungszeichen!
Die Option /y verhindert eine Nachfrage beim Überschreiben bereits existierender Dateien.
Achtung! Die all.js unterscheidet sich zwischen Firefox 1.5 und 2.0! Man sollte sie also nicht miteinander vermischen!



Edit (04.01.2013):

Das oben Aufgeführte gilt in aktuellen Firefox-Versionen (derzeit: 17.0.1) so nicht mehr! Es geht jetzt einfacher: 
  • Schritt 1 bleibt wie oben beschrieben, allerdings wird die Datei nicht als mozilla.txt, sondern gleich als mozilla.cfg gespeichert, der Byteshift aus dem 2. Schritt ist jetzt überflüssig! Die Datei wird im Verzeichnis C:\Programme\Mozilla Firefox gespeichert.
  • Eine Anpassung der all.js ist nicht mehr notwendig (und auch nur noch schwer möglich, weil sie in der Datei omni.jar verpackt ist), stattdessen speichert man einfach eine Datei mit dem Namen local-settings.js und folgendem Inhalt:

    //
    pref("general.config.obscure_value", 0);
    pref("general.config.filename", "mozilla.cfg");

    in das Verzeichnis
    C:\Programme\Mozilla Firefox\defaults\pref\
  • Die batch-Datei lautet jetzt: 
copy p:\mozilla.cfg "C:\Programme\Mozilla Firefox" /y
copy p:\local-settings.js "
C:\Programme\Mozilla Firefox\defaults\pref" /y
pause

Montag, 1. Mai 2006

Wegbeschreibung mit Google-Maps auf der eigenen Homepage

Problem:

Auf der Homepage unseres Chores möchte ich gerne Hinweise in Kartenform geben, wie man mit dem Auto oder Öffis (=öffentliche Verkehrsmittel) zur Pauluskirche Stuttgart kommt.
Es gibt jede Menge Kartendienste im Internet - nur möchte ich eigentlich nicht von der Homepage eines Kirchenchores auf eine mit mehr oder weniger viel Werbung vollgestopfte Seite verweisen - ich möchte möglichst weitgehend den Inhalt der Seite kontrollieren können. Und das möglichst innerhalb des Kontextes meiner eigenen Seite, nicht unter einer fremden URL!

Lösung:

Ja, ich weiß: Google, die Krake. Überall mischt Google mit und sammelt fröhlich Daten. Andererseits gebe ich meine Daten ja nicht für irgendein Gewinnspiel heraus, bei dem ich tolle Klingeltöne gewinnen kann, sondern ich erhalte echten Mehrwert. Z.B. den Speicherplatz und die Verwaltungssoftware für dieses Blog.
Oder auch Straßenkarten, nach Wunsch verknüpft mit ansehnlichen Luftbildern. Und da wären wir beim springenden Punkt:

Google-Maps (http://maps.google.de/)

Google bietet für seinen Maps-Dienst eine API an, die man kostenlos in seine Homepage einbauen kann. Man muss sich dazu einmalig anmelden und erhält für seine Homepage (gebunden an eine URL) einen Code. Die Anmeldung setzt einen Google-Account voraus und erfolgt hier:
http://www.google.de/apis/maps/

Man erhält einen persönlichen Code, der nur in Verbindung mit der zuvor selbst angegebenen eigenen URL funktioniert (auch nicht mit Unterverzeichnissen dieser URL, also von Anfang an das richtige Unterverzeichnis - falls nötig - angeben!).

Einsatz:

Nun muss die Karte ja in eine Seite der eigenen Homepage eingebunden werden. Das funktioniert im Prinzip recht einfach, die offizielle Dokumentation gibt es hier:
http://www.google.de/apis/maps/documentation/

Für diejenigen, die mit Javascript nicht allzuviel anfangen können, aber schnell ein ansehnliches Ergebnis haben möchten, hier eine kleine Anleitung, das fertige Beispiel kann man unter dieser Adresse bewundern:
http://home.arcor.de/pauluschor/weg.html


Anleitung:


Wir basteln uns eine neue html-Datei oder überarbeiten eine bestehende, entweder in einem Editor mit Quelltextansicht oder einfach im normalen Editor im Windows-Zubehör.

Zunächst muss das Google-Script im html-head eingebettet werden, dort werden auch alle Einstellungen vorgenommen:

<html>
<head>

<title>Wegbeschreibung Pauluschor-Stuttgart</title>

<script src="http://maps.google.com/maps?file=IhrGoogleCode"
type="text/javascript"></script>
<script type="text/javascript">

//<![CDATA[

function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));


Bis hierher muss fast nichts geändert werden, nur der Titel und die Worte IhrGoogleCode, an deren Stelle, vor das schließende Anführungszeichen, kommt der Code, den man von Google erhalten hat.

map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());


Das sind die Kontrollfelder links oben. Mit ihrer Hilfe kann der Anwender die Zoomstufe und wählen und den Ausschnitt verschieben - wenn er dazu nicht einfach Drag&Drop verwenden will. Veränderungen bedarf es bei diesen Zeilen ebenfalls keiner. Man kann sie auch weglassen, dann kann der Anwender eben nicht die Zoomstufe verändern.

map.setCenter(new GLatLng(48.772624055119635,9.153199195861816), 16);

Jetzt wirds wichtig: Hier gibt man an, welcher Kartenausschnitt gezeigt werden soll, genauer: auf welche Geokoordinaten zentriert werden soll (die beiden langen Zahlen, Breite und Länge) und welche Zoomstufe gewählt werden soll (in diesem Fall 16 - ein ziemlich naher Zoom).
Und wie bekommt man die gewünschten Geokoordinaten heraus? Ganz einfach:
http://www.infosports.com/m/map.htm
Der Free Geocoder basiert ebenfalls auf Google-Maps, man zieht die Karte auf die richtige Position, zoomt ein wenig, klickt dann auf den Punkt, auf den später die eigene Karte zentriert werden soll, dort wird ein Marker angelegt, wenn man diesen jetzt anklickt, erscheint ein Fenster mit den Geokoordinaten, die man freundlicherweise einfach herauskopieren kann.
Aber Vorsicht: Der Geocoder gibt Länge, Breite aus, man muss für unsere Zwecke die beiden Zahlen also umdrehen (Breite, Länge)!

var icon = new GIcon();
icon.image = "symkirche.png";
icon.shadow = "schakirch.png";
icon.iconSize = new GSize(40, 59);
icon.shadowSize = new GSize(1, 1);
icon.iconAnchor = new GPoint(20, 30);
icon.infoWindowAnchor = new GPoint(40, 1);


Jetzt gehts schon etwas in die Tiefe: diese Zeilen werden nicht unbedingt benötigt, man kann sie problemlos weglassen!
Wir legen ein Icon an (die Pauluskirche Stuttgart, Dateiname symkirche.png), geben ihm einen Schatten (wollte ich nicht haben, ist in diesem Fall nur ein schwarzer Pixel, Dateiname schakirch.png), definieren die Größe der beiden Grafiken, geben an, an welcher Stelle des Icons sein Ankerpunkt sein soll, an dem es später auf der Karte "befestigt" wird (hier: genau in der Mitte) und an welchem Punkt des Icons das dazugehörige Info-Fenster angedockt sein soll (hier: oben rechts).

var Punkt0 = new GLatLng(48.772624055119635,9.153199195861816);
var Punkt1 = new GLatLng(48.77385436402763,9.155881404876709);
var Punkt2 = new GLatLng(48.769993638392656,9.15459394454956);
var Punkt3 = new GLatLng(48.77490080994553,9.150989055633545);


OK, jetzt definieren wir vier (Anzahl beliebig) verschiedene Punkte auf unserer Karte, der erste ist das Zentrum (die Pauluskirche), die anderen drei eine Bushaltestelle, die S-Bahn-Haltestelle und die Haltestelle der Stadtbahn.

var marker0 = new GMarker(Punkt0, icon);
var marker1 = new GMarker(Punkt1);
var marker2 = new GMarker(Punkt2);
var marker3 = new GMarker(Punkt3);


Aus den vier Punkten werden jetzt Marker (wie beim Geocoder, wenn man auf die Karte klickt), der erste Marker erhält nicht nur die Geokoordinaten des ersten Punktes, sondern auch noch unser Icon von oben - wenn keines definiert wurde, dann , icon einfach weglassen.

GEvent.addListener(marker0, "click", function() {
marker0.openInfoWindowHtml("<div>
<strong>Pauluskirche
</strong></div><div>Paulusstr. 1</div><div>
70197 Stuttgart</div>");

});
map.addOverlay(marker0);

marker0.openInfoWindowHtml("<div><strong>Pauluskirche
</strong></div>
<div>Paulusstr. 1</div><div>
70197 Stuttgart</div>");


Jetzt wird der erste Marker (marker0) tatsächlich auf die Karte gesetzt und ihm auch gleich ein Info-Fenster mitgegeben. Innerhalb der Anführungszeichen steht hier weiterer html-Code: alles, was zwischen <div>...</div> steht, bekommt eine eigene Zeile in diesem Info-Fenster, <strong>...</strong> bedeutet, dass der Text dazwischen fett und etwas größer (je nach Browser) dargestellt wird.
Die Zeile marker0.openInfoWindowHtml steht absichtlich zweimal da: Beim ersten Mal wird definiert, was erscheinen soll, wenn jemand den Marker anklickt. Beim zweiten Mal wird gesagt, dass beim ersten Laden der Seite dieses Info-Fenster bereits geöffnet sein soll. Es kann immer nur ein Info-Fenster zur gleichen Zeit offen sein!

GEvent.addListener(marker1, "click", function() {
marker1.openInfoWindowHtml("<div><b>Bushaltestelle Bismarckplatz</b></div>
<div>Linie 42</div>");
});
map.addOverlay(marker1);

GEvent.addListener(marker2, "click", function() {
marker2.openInfoWindowHtml("<div><b>S-Bahn-Haltestelle Schwabstraße
</b></div><div>Ausgang Seyfferstraße</div><div>alle Linien</div>");
});
map.addOverlay(marker2);

GEvent.addListener(marker3, "click", function() {
marker3.openInfoWindowHtml("<div><b>Stadtbahnhaltestelle
Arndt/Spittastraße</b></div><div>Linie 4</div><div>Linie 9</div>");
});
map.addOverlay(marker3);

}
}

//]]>

Jetzt folgen die restlichen 3 Marker (jeweils nur mit einem marker0.openInfoWindowHtml, schließlich sollen diese Info-Fenster noch geschlossen sein!), schließlich kommen die nötigen Klammern, die ganz oben geöffnet wurden, das Ende des Scriptes und das Ende des html-heads.

So, und jetzt muss das Script nur noch in der eigentlichen "Webseite" geöffnet werden, das geschieht im html-body:

<body onload="load()" onunload="GUnload()" bgcolor="#FFFF99">

<center>

<div>Wie kommt man zur Pauluskirche?</div>

<font face="arial, verdana" size="2">
<div id="map" style="width: 800px; height: 600px;"></div>
</font>

</center>
</body>


Was passiert hier: die beiden Tags onload und onunload stammen von Google, die müssen so da stehen. Dahinter (bgcolor) wird die Hintergrundfarbe der Seite angegeben.
Alles nun folgende wird bei mir zentriert (<center>). Das wirkt sich auch auf die Texte in den Info-Fenstern der Google-Karte aus!!!
Nun folgt die Überschrift meiner Seite (nicht zu verwechseln mit dem Titel!) in einem eigenen Absatz (<div>...</div>).
Dann definiere ich die Schriftart für die Info-Fenster, hier: Arial oder Verdana in der Browserschriftgröße 2.
Die nächste Zeile legt jetzt endlich die Karte an!!! Veränderungen kann man hier an der Größe des Kartenbereichs vornehmen, also an der Breite (width) und der Höhe (heigth), Angaben in Pixel. Ich habe hier Werte genommen, die auf den meisten Monitoren problemlos angezeigt werden müssten.
So, und das wars auch schon. Noch brav alle geöffneten Tags wieder schließen (bis </body>), und schon kann man seine neue Homepage speichern, hochladen und bewundern!