Archiv

Archiv für die Kategorie ‘Internet’

Calibre trotz PAC Proxy voll nutzen

19. Oktober 2012 Keine Kommentare

Heute kommt endlich mein Kindle, und in weiser Vorahnung habe ich rechtzeitig begonnen, mich schon mal ein wenig mit Calibre anzufreunden. Das Programm hat schon vor der Installation dadurch gepunktet, dass es als Portable Version verfügbar ist. Also gleich mal rauf damit auf die externe Festplatte.

Aber fast ebenso schnell stieß ich auch schon auf die ersten Hürden. Daheim läuft alles reibungslos, aber tagsüber kann ich wenn überhaupt nur über einen Proxy-Server auf das Internet zugreifen. Calibre kann zwar den Default-Proxy aus den IE-Einstellungen herauslesen, das funkioniert aber nur, wenn der Proxy dort als HTTP-Proxy fest eingetragen ist. In meinem Fall wird aber eine recht umfangreiche PAC-Datei zur Konfiguration eingelesen, und damit kommt Calibre nicht klar. Ergebnis: gar kein Inet-Zugriff mit dem Programm.

Zur Lösung: Zuerst öffnet man eine oder besser gleich 2 oder 3 beliebige Webseiten im Browser. Anschließend öffnet man die Kommandozeile (Start => Ausführen => cmd) und startet dort das Programm netstat. In den Ergebnissen sucht man nun nach einem großen, zusammenhängenden Block von TCP-Verbindungen, die alle an die gleiche Remoteadresse gestellt wurden und im Status wartend oder hergestellt stehen.

Nun öffnet man die Systemeigenschaften (Rechten Mausklick auf Arbeitsplatz und dann Eigenschaften oder Start => Einstellungen => Systemsteuerung => System), wechselt dort auf den Reiter Erweitert und wählt den Button Umgebungsvariablen.

Nun legt man eine neue Benutzervariable an. Als Name trägt man http_Proxy ein, und als Wert den zuvor mit netstat ermittelten Server mit vorangestelltem http://

Fertig. Startet man nun Calibre, hat man vollständigen Internetzugriff und kann alle Funktionen wie gewohnt nutzen. Und das beste an der ganzen Geschichte, man benötigt noch nicht einmal Admin-Rechte dafür, man kann diese Vorgehensweise also auf jedem Rechner selbst vornehmen.

Sollte der Zugriff irgendwann mal nicht mehr funktionieren, ist der Server evtl. aus der PAC-Datei geflogen und ein anderer aktiv. In dem Fall wieder mit netstat den neuen Proxy ermitteln und den Eintrag bei den Umgebungsvariablen anpassen.

Willkommen RCS-e aka Joyn, Tschüß Netzneutralität

13. Juni 2012 Keine Kommentare

Ein interessantes Schauspiel, welches sich einem gestern bot. Viele Berichte, unglückliche Verkettungen und ein leichter Imageschaden durch Fehlinformationen für die Telekom, so könnte man das Spektakel zusammen fassen. Denn wann immer über Festnetz- oder Mobilfunknetze, Zugangsanbieter oder ähnliches gesprochen wird, vergessen 90% der News-Seiten Besucher ohnehin, dass es noch andere Unternehmen auf dem Markt gibt. Wird der beliebte Sündenbock dann aber auch noch namentlich erwähnt, kommen Flamer wie Trolle voll auf ihre Kosten.

Aber der Reihe nach: im Februar hatte die Telekom in ihrem Blog einen neuen Mobilfunkdienst vorgestellt. RCS-e (Rich Communication Suite-enhanced) war der erste, griffige Name, den sich kein Konsument freiwillig gemerkt hätte. Daher wurde er kurz später in Joyn umgetauft.

Es handelt sich dabei aber keineswegs um eine Idee der Telekom, initiiert wurde die Entwicklung des Industriestandards von Nokia und wird seitdem von der GSMA weiterentwickelt. Eingeführt werden soll er im Laufe dieses Jahres von allen großen Anbietern Deutschlands.

Der Dienst stellt die nächste Evolutionsstufe der betagten Dienste SMS und MMS dar, und soll den Mobilfunkanbietern im Kampf gegen kostenlose Messenger wie WhatsApp und Skype helfen. Meiner Meinung nach erstmal ein sinnloses Unterfangen, denn die Messenger haben einen Vorsprung von mehreren Jahren und eine feste Nutzerbasis, die für gewöhnlich kaum bis gar nicht bereit ist, sich etwas neuem zuzuwenden. Hinzu kommt, dass die Netzbetreiber in der Vergangenheit nie kostenlose Dienste geboten haben, sondern immer Kosten in Form von Einzelabrechnung bis hin zu Flatrate aufkamen. Warum sollte das diesmal anders sein.

Tja, und so kam es dann gestern, dass teltarif.de über eine mögliche Preisgestaltung der Telekom für Joyn berichtete. Kosten soll der Dienst, Nachrichten sogar mehr als die bisherige SMS. Die Gemüter kochten hoch, viele Seiten (u.a. caschy) berichteten prompt darüber und entfachten dadurch hitzige Diskussionen. Die Telekom veröffentlichte kurz darauf eine Klarstellung im Blog, um die Situation etwas zu besänftigen, denn Kosten fallen nur in den Sprachtarifen an, nicht aber in den Tarifen mit Internet-Flatrate. Und darüber hinaus soll der Traffic, der durch Joyn verursacht wird, nicht mit dem normalen Kontingent verrechnet werden. Und das ist der erste echte Vorteil dieses Dienstes!

Allerdings bekam die ganze Nummer noch einen fahlen Beigeschmack, denn während dieses ganzen Tumults veröffentlichte heise.de einen Bericht über einen erneuten Vorstoß der Netzbetreiber zur Unterminierung der Nezneutralität. Mal wieder geht es darum, statt der Erschließung neuer Geschäftsfelder lieber die bereits erfolgreichen Firmen zur Kasse zu bitten: Youtube, Skype, etc… jeder der viel Bandbreite beansprucht, soll nach Vorstellung der Netzbetreiber auch Geld an sie zahlen. Das Ergebnis wäre fatal, denn kostenlose Dienste würden dadurch deutlich rarer werden.

Alternativ oder noch lieber ergänzend bringt man auch erneut die Priorisierung von Diensten ins Gespräch. VoIP und IPTV dürften schon heute in den Genuss solcher QOS Maßnahmen kommen, um die Qualität der Netzbetreiber-eigenen Dienste auch zu Stoßzeiten garantieren zu können. Aber es gebe doch noch so viel mehr Möglichkeiten, den Endkunden zur Kasse zu bitten. Alles was hohe Geschwindigkeiten oder möglichst geringe Verzögerungen voraussetzt, bietet sich dafür an. Streaming-Angebote wie Spotify oder auch Youtube wären davon ebenso betroffen wie nahezu alle Online-Spiele. Bei der Synchronisation mit Cloud-Diensten ist die Geschwindigkeit ja auch nicht ganz uninteressant, und so lassen sich noch viele weitere denkbare Möglichkeiten finden.

Aber ein Dienst wie Joyn könnte unter solchen Umständen natürlich richtig Punkten, denn selbst wenn eine Mobilfunkzelle komplett dicht und lahm ist, könnten seine Pakete nach wie vor schnell ans Ziel gelangen. Obwohl… bei Joyn wird garantiert ohnehin wie schon bei VoIP eine Ausnahme gemacht werden… einige Datenströme werden halt immer gleicher sein als andere, doch wo kein Kläger, da ist auch kein Richter.

Gleichzeitig könnte man übrigens konkurrierende Dienste mit einer besonder schlechten Priorisierung abstrafen, damit sich die Kunden genervt von diesem abwenden. Alles nur Spekulation mit einer kleinen Priese Science-Fiction, ich will den Netzbetreibern schließlich nichts unterstellen 😉

Mehr Sicherheit für WordPress

29. März 2012 Keine Kommentare

Nachdem ich mich in letzter Zeit ein wenig mit SEO beschäftigt habe, und die Seite dahingehend etwas optimiert habe, kam mir nun das Thema Sicherheit in den Sinn. Aber da dies mein erster Blog ist, kann ich diesbezüglich auf keinen allzu großen Wissenschatz zurückgreifen, sondern muss mich an den Hinweisen und Empfehlungen anderer orientieren. Als hilfreich habe ich dabei die foldenden Seiten empfunden:

Ich werde aber selbst auf die aus meiner Sicht wichtigsten Punkte nochmal genauer eingehen. Ich gehe dabei von einer vorhandenen Installation mit der Version 3.3.1 aus.

 
1. Admin-Account sinnvoll benennen

Der bei der Blog-Installation angelegte Admin-Account sollte nicht admin heißen! Ideal wäre ein Name, der nicht im direkten Zusammenhang mit der URL oder dem Thema des Seite steht. Der eigene Nickname sollte ebenfalls nicht genutzt werden. Hat man sich daran schon bei der Installation gehalten, kann man den folgenden Absatz überspringen, andernfalls weiterlesen.

Lege einen neuen Benutzer mit Admin-Rechten an, vergebe einen passenden Namen und nutze ein sicheres Passwort. Anschließend mit dem neuen Account einloggen und den alten Account löschen. Man wird gefragt, was mit den vorhandenen Inhalten des Benutzers passieren soll, hier wählt man die Übernahme auf den neuen Account.

Wähle im Profil auf jeden Fall aus, dass der angezeigte Name nicht der Benutzername ist.

Eine Sache fehlt aber noch: die ID des Accounts in der Datenbank hat nun noch immer die 1 oder, wenn es keine anderen Benutzer gibt, die 2. Das wissen auch potentielle Angreifer. Daher sollte man diese ID auf einen zufälligen Wert ändern. Dazu läd man sich entweder ein Plugin wie Search & Replace, öffnet phpMyAdmin oder greift sonst wie auf die Datenbank zu.

Es muss in 4 Tabellen je ein Wert geändert werden, und zwar in wp_users, wp_usermeta, wp_posts und wp_links. Im folgenden SQL-Statement nehme ich exemplarisch die ID 194, diese Zahl sollte aber jeder selbst festlegen. Die aktuelle ID muss selbstverständlich auch angepasst werden.

UPDATE wp_users    SET ID          = 194 WHERE ID          = 1;
UPDATE wp_usermeta SET user_id     = 194 WHERE user_id     = 1;
UPDATE wp_posts    SET post_author = 194 WHERE post_author = 1;
UPDATE wp_links    SET link_owner  = 194 WHERE link_owner  = 1;

 
2. Tabellen-Präfix != wp_

Was bei der Installation dem Benutzernamen das admin ist dem Tabellen-Präfix das wp_. Auch hier sollte man eine Änderung in Betracht ziehen. Je nachdem, wie viele Tabellen man noch in seiner Datenbank hat, kann es sinnvoll sein, das Präfix mit bestimmten Zeichen beginnen zu lassen, um die Position der WordPress-Tabellen bei der Sortierung zu beeinflussen.

In der Basisinstallation umfasst dies 11 Tabellen, die ich nachfolgend schon mal als fertiges SQL-Statement vorbereitet habe. Das Präfix wird für dieses Beispiel auf 19a7Z4_ gesetzt.

RENAME TABLE wp_commentmeta        TO 19a7Z4_commentmeta;
RENAME TABLE wp_comments           TO 19a7Z4_comments;
RENAME TABLE wp_links              TO 19a7Z4_links;
RENAME TABLE wp_options            TO 19a7Z4_options;
RENAME TABLE wp_postmeta           TO 19a7Z4_postmeta;
RENAME TABLE wp_posts              TO 19a7Z4_posts;
RENAME TABLE wp_terms              TO 19a7Z4_terms;
RENAME TABLE wp_term_relationships TO 19a7Z4_term_relationships;
RENAME TABLE wp_term_taxonomy      TO 19a7Z4_term_taxonomy;
RENAME TABLE wp_usermeta           TO 19a7Z4_usermeta;
RENAME TABLE wp_users              TO 19a7Z4_users;

Wenn man Plugins installiert hat, können es auch durchaus mehr Tabellen sein. Diese müssen dann ebenfalls umbenannt werden.

Damit allein ist es aber noch nicht getan, es sind noch weitere Schritte notwendig, damit WordPress weiterhin fehlerfrei seinen Dienst verrichtet. In der Tabelle 19a7Z4_options und evtl. auch in 19a7Z4_usermeta müssen noch Einträge abgeändert werden.

UPDATE 19a7Z4_options  SET option_name = REPLACE(option_name,'wp_','19a7Z4_');
UPDATE 19a7Z4_usermeta SET meta_key    = REPLACE(meta_key,   'wp_','19a7Z4_');

Zu guter letzt muss die Datei wp-config.php bearbeitet werden, damit WordPress das neue Tabellen-Präfix auch bekannt ist.

$table_prefix  = '19a7Z4_';

 
3. Verzeichnisschutz für wp-content und wp-includes

In diesen Verzeichnissen liegt nichts, worauf ein Besucher direkt zugreifen müsste, außer vielleicht den Uploads. Daher sollte man sie auch entsprechend absichern. In jedes Verzeichnis kommt eine .htaccess mit folgendem Inhalt:

Order Allow,Deny 
Deny from all 
<Files ~ ".(css|jpe?g|png|gif|js|svg)$"> 
  Allow from all 
</Files>

Grundsätzlich wird der Zugriff auf alle Dateien in diesen Verzeichnissen verboten, mit Ausnahme bestimmter Dateiendungen, die man individuell anpassen und ergänzen sollte.

 
4. Verzeichnisschutz für wp-admin oder nur wp-login.php ?

Diese Frage ist auf Playground sehr gut beantwortet und erläutert worden. In vielen Anleitungen wird dazu geraten, den kompletten Ordner wp-admin via .htaccess und .htpasswd zu schützen. Da WordPress aber auch außerhalb des Backends auf die Dateien in dem Verzeichnis zugreifen kann, wäre ein reibungsloser Betrieb für normale Besucher nicht gewährleistet. Daher wird nur die Datei wp-login.php zusätzlich geschützt.

# protect wp-login.php
<files wp-login.php>
  AuthType Basic
  AuthName "Admin-Bereich"
  AuthUserFile /absoluter-serverpfad/.htpasswd
  require valid-user
</files>

Ein doppelter Login also. Muss man aber nur machen, wenn man seinen für WordPress gewählten Benutzernamen und das Passwort für unzureichend hält… aber ob dann ein zusätzlicher Schutz mit ähnlich schwachen Daten die Situation großartig verbessert, darf angezweifelt werden.

Aus meiner Sicht nicht notwendig, für Sicherheitsfanatiker aber garantiert eine tolle Option 😉

 
5. Umgang mit fehlerhaften Login-Versuchen

Man kennt es von vielen Seiten, x-mal das Password falsch eingegeben, schon kann man sich erstmal Kaffee kochen gehen oder gleich den Support anrufen. WordPress bietet diesen Luxus von Haus aus nicht, aber er lässt sich leicht über Plugins nachrüsten. Limit Login Attempts oder Login LockDown sind zwei Vertreter dieser Plugin-Gattung, die Konfiguration sollte selbsterklärend sein.

 
6. Fehlerhinweise auf der Login-Seite ausblenden

Es ist immer wieder schön, wenn man die Zugangsdaten vergessen hat, und einem die Seite genau sagt, wo der Fehler liegt. So macht es auch WordPress und sagt einem genau, ob der Benutzername oder nur das Passwort falsch sind. Für einen selbst eine tolle Hilfe, aber leider auch für jeden anderen, der Zugang haben will.

Daher sollte man auch hier entweder mit Plugins wie WSD security arbeiten oder selbst die entsprechenden Änderungen im Quelltext vornehmen. Bei iNove zeigt das Plugin jedenfalls keine Wirkung, aber das kann durchaus am Theme liegen.

Man öffne also die Datei functions.php im iNove-Verzeichnis und kopiere folgende Zeile an den Anfang der Datei:

add_filter('login_errors',create_function('$a', "return null;"));

 
7. Versionsnummer nicht mehr ausgeben

WordPress gibt seine aktuelle Versionsnummer immer als meta-Tag aus. Eine wertvolle Information, weiß man so doch gleich, ob WordPress aktuell ist und welcher Exploit am ehesten Erfolg haben kann. Also weg mit der Information. Auch zu diesem Zweck gibt es wieder viele Plugins (erneut sei WSD security genannt) oder die Möglichkeit, händisch vorzugehen.

Man muss dafür im Theme-Verzeichnis entweder in der header.php oder der index.php die Zeile, in welcher der meta-Tag erzeugt wird, löschen.

<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

Da die Version aber auch im RSS-Feed angegeben wird, und einige Funktionen und Plugins diese Information auch benötigen, kann man die Versionsnummer leider nicht ganz löschen. Das Ausblenden via Plugin scheint daher am flexibelsten.

Zudem sollte man noch den Zugriff auf zwei Dateien unterbinden, in denen die Versionsnummer ebenfalls nachzulesen ist: liesmich.html und readme.html. Einige Seiten empfehlen deren Löschung, was man dann aber nach jedem Update wiederholen darf. Als eine langfristige Lösung scheint mir hier der Einsatz von .htaccess hilfreich zu sein.

# protect liesmich.html
<files liesmich.html>
  Order deny,allow
  deny from all
</files>

# protect readme.html
<files readme.html>
  Order deny,allow
  deny from all
</files>

 
Fazit

Mit ein paar relativ einfachen Aktionen kann man die Sicherheit von WordPress ein gutes Stück erhöhen, auch wenn es zugleich etwa schade ist, dass man als normaler Nutzer überhaupt an sowas denken muss, denn einige Dinge könnten bereits voreingestellt ausgeliefert werden.

Aber so hat man zumindest immer mal wieder etwas neues, um sich zu beschäftigen ^^

eMail Adresse vor Spam Crawlern schützen

13. März 2012 Keine Kommentare

In den letzten Jahren ist es äußerst kompliziert geworden, grade kleine private Webseiten richtig zu betreiben. Ein Impressum braucht zwar inzwischen jeder, aber die darin bereitzustellenden Informationen variieren je nach Art des angebotenen Inhaltes. Und zu allem Überfluss kann einem auch niemand mit Sicherheit sagen, ob die getroffenen Maßnahmen ausreichend sind oder nicht.

Ich bin zwar nicht sonderlich angetan davon, meine Adresse im Impressum der ganzen Welt mitzuteilen, aber sicher ist sicher, und außerdem sind diese Infos ja auch schon durch eine WHOIS Abfrage in Erfahrung zu bringen, von daher ist es eh egal.

Aber zumindest kann man dafür sorgen, dass man nicht auch noch in zahlreichen Spam-Verzeichnissen auftaucht, indem man die eMail-Adresse im Impressum maskiert.

 
HTML Sonderzeichen – ASCII Codes

Die einfachste Variante zur Verschleierung beliebiger Inhalte sind die HTML Sonderzeichen. Dadurch macht man es allerdings nur Menschen schwer, den eigentlichen Text zu lesen, für ein Programm macht es hingegen keinen Unterschied, ob Klartext oder Sonderzeichen verwendet werden.

mail@example.com
&#109;&#97;&#105;&#108;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;

 
JavaScript eMail Encrypter

Es gibt viele fertige Lösungen, die bekannteste nennt sich UnCryptMailto(). Dieser Funktion wird eine „verschlüsselte“ eMail Adresse übergeben, die dann einen gültigen mailto: Link daraus macht. Die Vorgehensweise ist dabei nicht sonderlich schwer, es wird einfach der ASCII-Code um ein Zeichen nach links oder rechts verschoben, fertig ist die verschlüsselte eMail.

Das ganze ist so simpel, dass davon ausgegangen werden darf, dass jeder moderne Webcrawler es ebenfalls beherrscht. Zumindest, solange man die Standardfunktion 1:1 aus dem Internet kopiert und nutzt.

Ein weiterer Nachteil besteht darin, dass die Mail-Adresse im Inhalt des a-Tags weiterhin lesbar ist. Die Hilfskrücke mail [at] example [dot] com sieht nicht nur häßlich aus, sie ist obendrein auch noch berechenbar und maschinenlesbar.

Wenn man sich die Funktion aber individuell anpasst, kann dies schon einen höheren Schutz gegen Crawler bieten. Man gebe der Funktion einen anderen Namen, benenne die Variablen um und nutze eine andere Verschiebung als ±1, schon hat man die 0815 Crawler abgehängt. Und statt mail [at] example [dot] com kann man ebensogut auch einfach „Schreib mir“ als Text nehmen.

Die ganze Lösung funktioniert allerdings nur, wenn JavaScript auch aktiviert ist. Ansonsten ist gar keine einache Kontaktaufnahme via Mail möglich, was im Impressum nicht zulässig sein könnte.

 
CSS

Einen weiteren Ansatz findet man im Internet unter dem Stichwort CSS. Man merkt, Not macht erfinderisch. Nur leider ziehen die Crawler auch immer nach. CSS bietet heutzutage wahrscheinlich auch schon keinen Schutz mehr, zumal es noch einige weitere Nachteile mit sich bringt. Ich liste es nur der Vollständigkeit halber mit auf.

Genauere Informationen zu den Möglichkeiten von CSS zum Schutz der eMail Adresse findet man beispielsweise auf www.ohne-css.gehts-gar.net.

 
Kombination aus JavaScript und CSS

Auf der Webseite http://1ngo.de habe ich schließlich eine interessante Kombination der bisher vorgestellten Techniken gefunden.

Standardmäßig verweist der Link auf ein Kontaktformular, und in seinem Text steht das Zeichen ∂ anstelle von @. Durch CSS wird das ∂ ausgeblendet und das @ eingefügt. Sollte ein Browser diese CSS-Funktion nicht beherrschen oder gar kein CSS ausführen können, so hat man immer noch eine gut lesbare eMail Adresse, die dann jedoch nicht 1:1 kopierbar wäre. Sobald CSS jedoch funktioniert, wird eine richtige eMail Adresse dargestellt, die auch kopiert werden kann.

Die JS-Funktion holt sich die Bestandteile der eMail Adresse aus dem Text und fügt sie zu einem gültigen mailto Link zusammen. Anschließend wird der vorgegebene Link zum Kontaktformular mit dem mailto Link überschrieben. Dadurch ist gewährleistet, dass auch bei deaktiviertem JavaScript noch ein nutzbarer Link vorhanden ist.

Für eine nochmals erhöhte Sicherheit empfehle ich nun noch eine Umbenennung der Funktionen und Variablen. Und wem das immer noch nicht genug ist, der kann jetzt noch die vorigen 3 Lösungsansätze mit diesem verbinden, Sonderzeichen in den Text streuen, mehr Ersätzungen durch CSS einbauen und die JavaScript „Verschlüsselung“ statt dem Auslesen der eMail Adresse aus dem Text verwenden.

Damit sollte man so ziemlich jedem Spambot einen Riegel vorgeschoben haben.

WordPress – Google Maps

2. März 2012 Keine Kommentare

Für den vergangenen Sommerurlaub hatte ich eine Datenbank erstellt, in der alle potentiellen Reiseziele eingetragen werden konnten. Das Ergebnis konnte man sich in Google Maps anzeigen lassen, mit einigen einfachen Filter-Funktionen und eigenen Icons für die verschiedenen Kategorien (Schwimmbad, Höhle, etc.).

Das war zum einen ganz interessant, da ich mich so mal mit der Google Maps JavaScript API beschäftigen konnte, zum anderen aber auch überaus hilfreich bei der Planung einer groben Route durch Süddeutschland, die sich quasi automatisch aus der Verteilung der POIs ergab.

Für die Einbindung im Blog gibt es nun verschiedene Möglichkeiten. Für welche man sich entscheidet, hängt von den Anforderungen ab, die man an die Karte stellt, sowie von den eigenen Programmierkenntnissen.

 
1. HTML-Code zum Einbetten in eine Webseite

Die wohl einfachste Lösung bietet Google selbst an. Man besucht einfach die Google Maps Webseite, gibt den Ort oder die Route ein, die man angezeigt haben möchte, und klickt dann neben dem Drucker-Symbol auf Link.

maps

Entweder kopiert man sich nun gleich den Code zum Einbetten, oder klickt auf den Link zum Anpassen, wo man noch die Kartengröße und, sofern man sich mit den Parametern auskennt, noch weitere Anpassungen vornehmen kann.

 
2. WordPress Plugins

Die zweite Möglichkeit, Karten schnell und unkompliziert einzubinden, stellen Plugins dar. Diese bieten unterschiedliche Funktionen, man muss also ein wenig schauen, welches der Plugins für einen in Frage kommt.

Für mich war wichtig, dass die Maps API v3 genutzt wird und man die Marker auch abseits vom vorgegebenen Straßennetz platzieren kann. Diese Anforderungen wurden von MapPress Easy Google Maps erfüllt. Außerdem ist es bei diesem Plugin möglich, mehr als einen Marker zu setzen, den Zoom-Level und die Kameraposition zu speichern sowie sich die Route von einem selbst definierbaren Startpunkt zu einem der Marker berechnen zu lassen. Allerdings kann das Plugin keine vorgegebenen Routen anzeigen.

 
3. Einbettung über benutzerdefinierte Felder ohne iframe

Ich habe bereits über die benutzerdefinierten Felder geschrieben und werde irgendwann mal testen, ob die Einbindung von Karten auch auf diesem Wege funktioniert.

Theoretisch benötigt man zusätzlich zu den Modifikationen zum Einfügen von eigenen Scripten auch noch eine Modifikation, um ein onload-Event im <body> platzieren zu können. Dadurch ergibt sich aber auch schon eine Einschränkung: Diese Variante kann nur auf Seiten genutzt werden, aber nicht in Artikeln…außer man schafft es, die Kartendarstellung in der Artikel-Übersicht zu unterbinden.

Außerdem wäre es wichtig, in den benutzerdefinierten Feldern ausführbaren PHP-Code einfügen zu können, da diese Variante ansonsten nicht sinnvoll genutzt werden könnte.

Server wieder erreichbar

2. März 2012 Keine Kommentare

Da hat man grad erst mit einem Blog angefangen, schon wird man im Schreibwahn abrupt ausgebremst. Als ich nach meinem Kurzurlaub am Dienstag wieder online war, musste ich feststellen, dass diese Seite nicht mehr erreichbar ist. Und obwohl ich bisher noch nicht allzu viel geschrieben habe, hatte ich dennoch etwas Sorge, dass die Inhalte futsch sein könnten. Schließlich weiß man nie, was man von einem Free-Hoster nun genau halten und erwarten soll, wenn es um Themen wie Datensicherheit und Datensicherung geht.

Keine Ahnung, ob das Problem schon vor Dienstag bestand, aber es dauerte immerhin bis zum heutigen Freitag (also mindestens 3 Tage), bis die Seite wieder erreichbar war. Laut Pytal waren die Server Opfer einer großen DDoS-Attacke, was man wohl so hinnehmen muss, auch wenn es schwer fällt zu glauben, dass jemand solchen Aufwand betreibt, nur damit ein paar private Webseiten nicht mehr erreichbar sind.

Egal, nun funktioniert ja alles wieder und ich habe eine wertvolle Lektion gelernt: Mach gefälligst Backups! Denn hätte ich ein Backup gehabt, würde die Seite jetzt nicht mehr bei Pytal laufen, sondern ich wäre spätestens Mittwoch zu einem anderen Anbieter umgezogen, vorzugsweise einem, wo man auch ohne großen Umstand die Mail-Funktion nutzen kann…

Von den ersten 10k fertiggestellter Raspberry Pi habe ich leider erwartungsgemäß keinen abbekommen, ansonsten wäre die Frage nach einem Hoster inzwischen hinfällig gewesen. Mal schauen, wie es Ende März läuft, da wird wahrscheinlich die nächste Ladung unters Volk gebracht.

WordPress – Individuelle <head> Ergänzungen

21. Februar 2012 Keine Kommentare

WordPress ist ein dynamisches System mit vielen Möglichkeiten, aber dennoch stößt man des öfteren an Grenzen, die ohne Eingriffe in den Quelltext nicht oder nur über Plugins zu überwinden sind.

Möchte man beispielsweise auf einer statischen Seite ein Script verwenden, das man aber ansonsten nirgendwo auf seiner Webseite benötigt, würde man dies normalerweise einfach in den Kopf der Seite schreiben. Da WordPress aber für alle erzeugten Seiten den selben Seitenkopf läd, würde eine Änderung an dessen Quelltest gleich die gesamte Webseite betreffen.

Die Entwickler haben dies aber glücklicherweise bereits bedacht. Beim Erstellen von Artikeln oder Seiten hat man unter dem Textfeld für den Inhalt die Möglichkeit, benutzerdefinierte Felder anzulegen. Sollte diese Möglichkeit nicht angezeigt werden, muss es erst unter Optionen einblenden aktiviert werden.

Nun denkt man sich einen Namen für das Feld aus und kopiert den Quelltext des Scripts in das Werte-Feld. Das öffnende und schließende Script-Tag dabei nicht vergessen!

Anschließend muss man die header.php des verwendeten Themes bearbeiten. Ich verwende iNove, daher liegt die Datei bei mir in folgendem Verzeichnis:

/wp-content/themes/inove/header.php

Hier muss eine neue Zeile eingefügt werden.

<!-- script START -->
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/base.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/menu.js"></script>
<?php echo get_post_meta($post->ID, "header_js", true); ?>
<!-- script END -->

header_js sollte gegen den selbst gewählten Feldnamen ausgetauscht werden.

Ab sofort kann für jede Seite und jeden Artikel, falls nötig, ein individuelles Script eingebunden werden. Natürlich lassen sich auch beliebige andere Informationen über die benutzerdefinierten Felder in die Seiten einbinden. Einfach Name vergeben und den Code an der entsprechenden Stelle einfügen.

Auf http://www.officetrend.de werden noch umfangreiche Möglichkeiten vorgestellt, dort mit dem Ziel selbst definierbarer Meta-Tags auf der Seite. Über den Beitrag bin ich auf das ganze überhaupt aufmerksam geworden.

Indie Game: Creeper World

13. Februar 2012 Keine Kommentare

Der Name ist bei mir schon lange Programm. Durch Zufall bin ich vor Jahren mal auf das Flash-Game Creeper World – Training Simulator aufmerksam geworden. Ein wie ich finde sehr unterhaltsames und fesselndes Gameplay, am ehesten zu beschreiben als eine Mischung aus Echtzeitrollenspiel und Tower Defence. Die Training Sim stellte wohl ursprünglich auch die Demo zum eigentlichen Spiel Creeper World dar welches als AIR Anwendung zwar auch auf Flash basiert, aber leider nicht im Browser gespielt werden kann.

Das schöne ist, dass einem so schnell nicht langweilig wird, da das Spiel Zugriff auf unzählige Karten, die von begeisterten Fans erstellt wurden, gewährt. Also das selbe Prinzip, das auch Little Big Planet zu einer solch großen beliebtheit hat werden lassen.

In den letzten Monaten ist die Liste an Titeln rund um Creeper World nochmals angewachsen. Der Entwickler hat noch 2 neue Flash-Games veröffentlicht: User Space und Evermore. Beide stützen sich auf die Costum Maps, bei User Space gibts eine Auswahl an beliebten Maps, Evermore liefert jeden Tag eine andere Map. Zwar letztlich auch nichts anderes als das, was das Hauptspiel auch bietet, aber jetzt auch ohne AIR nutzbar.

 
Creeper World 2: Redemption

Wer den ersten Teil durch hat und sich auf mehr freut, kann gleich mit Creeper World 2 fortfahren. Das Spielprinzip ist das gleiche, nur das Gameplay hat sich etwas geändert. Aber auch hier gibt es dank Unterstützung von Costum Maps fast unbegrenzten Langzeitspaß. Das Hauptspiel kommt wie schon der erste Teil als AIR-Anwendung auf die heimische Platte, ein kleines Flash-Game mit der selben Spielmechanik wurde in den letzten Wochen mit Academy gerade erst veröffentlicht.

Beide Spiele zusammen kann man für $14,95 (umgerechnet weniger als 12€) beim Entwickler erwerben. Wenn man bedenkt, wie lange einen die Spiele unterhalten können, und insbesondere aufgrund der Tatsache, dass es sich hierbei um einen kleinen Indie Entwickler handelt, ein durchaus fairer Preis, den ich sehr gerne investiert habe 🙂

 
Noch immer nicht genug?

Wer mit Creeper World fertig ist und noch immer Nachschub braucht, könnte noch einen Blick auf die folgenden beiden Flash-Games von CasualCollective werfen: The Space Game und dessen Fortsetzung Missions.

Viel Spaß beim Zocken ^^

Speed up my Firefox

10. Februar 2012 Keine Kommentare

Und wieder zeigt sich, wie leicht ich von einem Thema ins nächste rutsche. Wie gestern schon angekündigt wollte ich mich mit der Synchronisation von Addons befassen, aber meine sprunghafte Natur hat sich natürlich gleich von etwas neuem ablenken lassen.

In der Firma benutze ich wie die meisten den Firefox Portable, und das schon relativ lange. Als ich heute schauen wollte, wie groß die Addons denn so sind, um den benötigten Speicherplatz schon mal einschätzen zu können, viel mir fast alles aus dem Gesicht: großzügige 280 MB umfasste mein Profilverzeichnis, die reinen Addons beanspruchen davon aber nicht mal 20 MB für sich. Der Großteil entfällt auf die von Firefox und einigen Addons angelegten SQLite Datenbanken.

 
Die größten Speicherfresser

Spitzenreiter der Verschwendung war/ist das Addon Brief, welches scheinbar nie seine DB aufräumt, selbst wenn im GUI was anderes behauptet wird, und somit auf stolze 130 MB kam. Da geht zwar noch einiges mehr, aber dafür hab ich Brief wohl noch nicht lange genug installiert. Nett war auch das 60 MB große Backup-File, das Brief noch angelegt hatte.

Platz 2 geht an die Datei urlclassifier3.sqlite und gehört direkt zu Firefox. Diese empfand ich mit ~50 MB auch als etwas zu groß, insbesondere für eine Anwendung, die als Portable betittelt wird und somit wohl häufig auf USB-Sticks eingesetzt wird. Wenn immer so große Brocken beim Start oder bei Eingaben geladen und durchsucht werden müssen, ist es ja kein Wunder, dass der Fuchs etws langsam wirkt.

Auch die Datei places.sqlite kommt ohne Probleme schon auf gute 10 MB, selbst wenn darin nur die offenen Tabs und Lesezeichen gespeichert werden. Aktiviert man dann auch noch die Chronik, kommt man schnell auf 20-30 MB oder noch mehr.

Alles zusammen also schon eine nicht ganz unerhebliche Datenmenge, die bei jedem Start verarbeitet wird.

 
Erster Schritt, Aufräumen und somit Komprimieren der Datenbanken

Auf Caschys Blog gibt es einen guten Artikel, wie man diese Aufgabe bewältigen kann. Angesprochen werden verschiedene Möglichkeiten, die für mich interessanteste und auch flexibelste Lösung ist über die Kommandozeile.

Man benötigt unter Windows das Programm sqlite3.exe. Das Archiv enthält nur eine Datei, die man direkt in den Profilordner von Firefox (oder auch Thunderbird) entpackt. Mit diesem Programm ist es möglich, die überflüssigen Leerzeilen, die sich im Laufe der Zeit in Datenbanken ansammeln, zu entfernen, was zu enormen Platzeinsparungen führen kann.

Jetzt braucht es nur noch eine kleine Batch-Datei (ebenfalls im Profilordner), um den Vorgang zu starten. Der Name der Datei ist dabei egal, nur die Endung muss .bat lauten.

@echo off
echo.
echo VACUUM SQLite Files
echo ----------------------------------------
for %%i in (*.sqlite) do sqlite3.exe %%i "VACUUM" & echo VACUUM %%i
echo done

Wichtig: Firefox darf nicht geöffnet sein, wenn die Komprimierung ausgeführt wird!

Dieser Vorgang kann, je nach Größe der vorhandenen SQLite Dateien, mehrere Minuten dauern. Anschließend sollte sich aber schon ein Unterschied in der Ladegeschwindigkeit von Firefox bemerkbar machen.

 
Existenzberechtigung der Addons prüfen

Dass Addons den Startvorgang von Firefox verlangsamen, ist inzwischen allgemein bekannt. Einige machen sich kaum bemerkbar, andere Addons können mehrere Sekunden ausmachen.

Im Falle Brief muss man sich die Frage stellen, wie oft man die Funktionen des Addons nutzt. Hat man Lesezeichen? Archiviert man alles, um später nochmal drauf zugreifen zu können? Oder nutzt man es nur, um die neusten Infos auf Webseiten nicht zu verpassen?

Wenn man den letzten Punkt mit Ja beantworten kann, wäre das einfachste, vor der Komprimierung der Datenbanken die von Brief einfach zu löschen. Man spart Platz und Brief reagiert schneller. Den Befehl zum löschen kann man mit in der Batch-Datei unterbringen.

@echo off
del brief.sqlite
echo.
echo VACUUM SQLite Files
echo ----------------------------------------
for %%i in (*.sqlite) do sqlite3.exe %%i "VACUUM" & echo VACUUM %%i
echo done

Bei anderen Addons muss man schauen, ob man diese überhaupt dringend benötigt. Falls nein, Addon deaktivieren oder gleich ganz löschen. FoxyProxy ist so ein Kandidat, zumindest kommt es mir so vor, als wenn FF deutlich schneller ist, wenn man das Addon deaktiviert. Allerdings brauche ich es, daher werde ich mich damit wohl abfinden müssen ^^

 
urlclassifier3.sqlite

Eine grundsätzliche Frage muss hier erst beantwortet werden: wie wichtig ist mir „Sicherheit“?

Viele haben sie schon mal gesehen, die Warnung, dass eine Seite als unsicher oder attackierend eingestuft wurde. Google führt eine Datenbank, in der alle als bedenklich eingestuften Webseiten aufgelistet werden. In regelmäßigen Abständen erwischt dies auch bekannte Seiten, weil ein Teil ihres Quellcodes plötzlich durch die Heuristik-Prüfung fällt oder aber ein Werbeanbieter gehackt wurde und die Werbung so plötzlich echten Schadcode enthält. Das Problem ist dann nach meist wenigen Minuten behoben, der Eintrag bei Google aber nur sehr aufwendig zu entfernen.

Die Datei urlclassifier3.sqlite stellt ein lokales Abbild dieser Datenbank von Google dar. Zumindest in Auszügen. Jede eingegebene Adresse wird erst mit dieser Datenbank abgeglichen, bevor sie aufgerufen wird. Das wiederum kostet Zeit und lässt den Firefox langsamer werden.

Die Datei nur zu löschen, bringt nicht den gewünschten Erfolg. Man muss auch dafür sorgen, dass sie nicht gleich wieder neu von Google befüllt wird. Dazu geht man in die Einstellungen von Firefox:

Extras -> Einstellungen -> Sicherheit

und entfernt die Häckchen bei allen Punkten, die mit Webseiten blockieren, wenn… beginnen.

Nach dem nächsten Start von Firefox wird diese Datei zwar neu angelegt, aber sie wird nicht mehr größer und bei Seitenaufrufen auch nicht mehr durchsucht.

 
Fazit

Vorher fast 300 MB, jetzt nur noch knapp über 30 MB im Profilordner und ein Firefox, der sich spürbar schneller verhält 🙂

Firefox 11 synchronisiert Addons … teilweise

9. Februar 2012 Keine Kommentare

Der kommende Firefox 11 wird eine tolle Neuerung bringen, Sync wird künftig auch die Addons synchronisieren. Was sich im ersten Moment richtig gut anhört, verliert schnell an Bedeutung, wenn man weiter ins Detail geht und sich die Einschränkungen ansieht.

Firefox wird nämlich nur die Addons synchronisieren, die von addons.mozilla.org aus installiert worden sind. Erweiterungen, die aus anderen Quellen installiert wurden, werden nicht synchronisiert, selbst wenn sie im Bestand der Webseite enthalten sind.

Diese Entscheidung ist technisch durchaus nachvollziehbar, schließlich muss so nur die ID der Erweiterung synchronisiert werden, der Addon-Server weiß dann schon, was er zu laden hat. Selbst wenn sehr viele Addons installiert sind, liegt die Zusatzbelastung der Sync-Server so gerade mal bei wenigen kByte. Und für Personen, die eh nur von der offiziellen Seite installieren, ist das gar nicht mal so uninteressant.

Wenn man aber lieber von der Herstellerseite installiert, da dort logischerweise die neusten Versionen als erstes zu haben sind und man ggf. auch mal auf Beta-Versionen zugreifen kann, muss man sich um eine andere Lösung bemühen.

Dem bis hier aufmerksamen Leser mit etwas technischem Verständnis wird auch schon der zweite große Nachteil aufgefallen sein, den diese Vorgehensweise mit sich bringt:  die Einstellungen der Addons werden nicht synchronisiert! Denn das würde den Speicherplatzbedarf exorbitant in die Höhe treiben, was Mozilla natürlich nicht möchte. Also muss man nach wie vor in jeder neuen Firefox-Installation die immer gleichen Einstellungen in den Addons manuell vornehmen…

 
Alternative Ideen zu Sync

Sync an sich ist ja ne feine Sache, für die Lesezeichen und Einstellungen des Browser benutze ich es auch sehr gerne. Aber selbst dafür reicht es mir schon nicht, und deshalb muss zusätzlich noch Xmarks seinen Dienst verrichten.

Bei den Addons habe ich bisher vollständig auf eine Synchronisation verzichtet, mich aber doch schon das eine oder andere Mal darüber geärgert, wenn ich zum xten Mal eine Seite in NoScript freigeben musste oder ähnliches. Und somit kommt das Thema jetzt einmal unter die Lupe…Vorschläge und Ideen zur Umsetzung findet man im Netz zu hauf, aber welche taugen auch wirklich was.

Mehr dazu gibt es, sobald ich etwas Zeit zum experimentieren habe. Ich schmeiß aber schon mal ein paar Schlagwörter in den Raum: Dropbox, MozBackup und FEBE 😉