CSV in MySQL einlesen
Wenn man größere Datenmengen in MySQL einlesen möchte, bietet sich ein CSV Import an – dieser scheint performanter als ein normales SQL Dump zu sein.
Allerdings bietet diese Form des Imports auch einige Tücken – hier ein paar Tipps wie man es zum Laufen bekommt:
Generelle Import Syntax
[code lang=“sql“]
LOAD DATA INFILE „{DATEI_NAME}“ INTO TABLE {TABELLEN_NAME} FIELDS TERMINATED BY ‚,‘ OPTIONALLY ENCLOSED BY ‚“‚ LINES TERMINATED BY ‚\n‘ IGNORE 1 LINES;
[/code]
Dabei müssen {DATEI_NAME} und {TABELLEN_NAME} angepasst werden. Die übrigen Angaben sind weitesgehend optional, aber bei dem konkreten Fall eines CSV Imports notwendig. Die Angaben sind ja weitesgehend selbsterklärend. IGNORE 1 LINES wird verwendet, wenn die erste Zeile die Spaltennamen enthält. In manchen Fällen ist ein
[code lang=“sql“]
LINES TERMINATED BY ‚\r\n‘
[/code]
notwendig (je nach Formatierung des Import-Files).
NULL-Values
Wenn das Import-File NULL Werte ohne Anführungszeichen enthält, sollte man die Datei vorher mit vi für den Import optimieren, dazu folgenden Befehl verwenden:
[code lang=“shell“]
vi {DATEI_NAME}
:%s/;NULL/;“NULL“/g
[/code]
Dadurch werden alle NULL werte in „NULL“ umgewandelt – SQL Werte dies dann korrekt als NULL und nicht als String.
Basic Infos
Wer noch nicht mit der Unix SQL Shell vertraut ist – so funktioniert das ganze:
- Auf dem Server einloggen
- [code lang=“shell“]mysql -u {DB_USER} -p[/code]
- Passwort des Datenbank Users eingeben
- [code lang=“sql“]USE {DB_NAME}[/code]
- Import-Befehl eingeben (s.oben)
Smarty: Datumsauswahl und UTF8
Smarty bietet die praktische Funktion {html_select_date} (Doku) – mit den verfügbaren Parametern kann man das Ergebnis gut an die eigenen Bedürfnisse anpassen – zum Beispiel an das deutsche Datumsformat mit einem Datum, welches bis zu 5 Jahren in der Zukunft liegen darf – die drei generierten Variablen haben zudem das Prefix „ts_to_“:
[code lang=“html“]
{html_select_date end_year=date(„Y“)+5 prefix=’ts_to_‘ field_order=’DMY‘}
[/code]
Will man die Monatsnamen ebenfalls in deutsch angezeigt bekommen, sollte man in einer zentralen Konfigurationsdatei die Sprache definieren:
[code lang=“html“]
setlocale (LC_ALL, ‚de_DE@euro‘, ‚de_DE‘, ‚de‘, ‚ge‘);
[/code]
Hat man dann zu guter letzt noch Probleme mit der Codierung (z.B. UTF-8) – hilft die Verknüpfung von Funktionen – z.B.:
[code lang=“html“]
{html_select_date|utf8_encode end_year=date(„Y“)+5 prefix=’ts_to_‘ field_order=’DMY‘}
[/code]
Resultieren tut die Eingabe des Users in die Variablen ts_to_Day, ts_to_Month und ts_to_Year (variiert mit dem gewählten Prefix!). Die serverseitige Weitervergabe kann dann zum Beispiel via mktime erfolgen um einen Timestamp zu generieren:
[code lang=“php“]
$timestamp = mktime(0, 0, 0, $_REQUEST[„ts_to_Month“], $_REQUEST[„ts_to_Day“], $_REQUEST[„ts_to_Year“]);
[/code]
Bilder im WordPress RSS Feed
Wer sein RSS Feed um die Teasergrafik des jeweiligen Blog-Beitrags erweitern möchte, kann dies mit einer simplen Erweiterung hinbekommen. Dadurch wird zum Beispiel das automatische Veröffentlichen bei Facebook attraktiver, weil nicht nur spröder Text, sondern auch ein Thumbnail, gepostet wird.
Was Webmaster bei Google Instant Previews beachten sollten
Heute morgen gab es an dieser Stelle eine Vorstellung des neuen Google Features „Instant Previews„. Heute möchte ich nun auf die Konsequenzen dieses Features für Webmaster eingehen.
Snippets: Ja oder nein?!
Für Webseitenbetreiber ändert sich durch Google Instant Previews mehr als zuletzt bei Google Instant Search (Suchergebnisse werden direkt beim Tippen angezeigt). So kann der Webmaster entscheiden, ob er in seinem Google Screenshot sogenannte Snippets haben möchte oder nicht. Die Snippets sind orange umrandete Texteinschübe in den Screenshots, die hervorheben, wie die gesuchten Keywords auf der Seite vorkommen. Dies ermöglicht den Suchenden noch besser zu validieren, ob die Website die gewünschten Infos beinhaltet. Gleichzeitig sehen die Snippets aber nicht besonders schön aus und zerhacken den optischen Gesamteindruck der Websiten-Vorschau. Daher gibt Google den Webmastern die Wahl, ob sie Snippets für ihre Seite aktivieren oder deaktivieren möchten.
Blog Artikel automatisch bei Facebook veröffentlichen
Mit ein paar Handgriffen kann man mittels der Facebook Application RSS Graffiti vollautomatisch die eigenen Blog Artikel oder Flickr Fotos veröffentlichen. Dazu gibt man der App die nötigen Zugriffsrechte sowie eine RSS Url. Dazu kann man noch ein paar praktische Einstellungen machen (z.B. Pausen zwischen Veröffentlichungen).
Richtig gut kommt dieses System, wenn die RSS Einträge eine Grafik beinhalten, dann wird diese nämlich direkt im Facebook Stream angezeigt. Leider ist bei WordPress nicht vorgesehen, die Grafiken mit zu exportieren. Hostet man sein Blog selbst, lässt sich schnell beheben und zwar so:
Facebook Apps: Cloud-Hosting von Ruby Projekten
Ruby (on Rails) und die Skalierbarkeit ist ja ein Thema für sich – wenn dazu noch der Anspruch kommt eine coole Facebook App damit zu schreiben, ist die Gefahr groß, dass der eigene Server schnell an die eigenen Grenzen stößt. Daher vertrauen viele Entwickler auf das Cloud Hosting, wie zum Beispiel Amazons EC2, da dieses eine automatische Anpassung der Ressourcen an Traffic Peaks ermöglicht ohne die enormen Fixkosten eines selbstgehosteten Systems zu verursachen.
Teaser Grafiken bei WordPress 2.x
Seitdem Blog Artikel immer mehr in den sozialen Netzwerken und anderen Portalen verlinkt werden, haben sich zwei „neue“ META Angaben durchgesetzt. Da wäre zum einen der Tag und der Open Graph Image Vermerk. Mit diesen beiden Angaben kann der Webmaster bzw. Autor bestimmen, welches Bild angezeigt wird, wenn der Artikel bei einer Plattform gepostet wird (allen voran Facebook!).
Codetechnisch sind die beiden sehr simpel zu integrieren, einfach im HEAD Bereich folgendes einfügen:
[sourcecode language=“html“][/sourcecode]
[sourcecode language=“html“][/sourcecode]
Um diese Funktionalität seinem WordPress Blog beizubringen, gibt es zum Beispiel das „FetenWeb image_src Metatag“ Plugin. Dieses schaut, ob eine Teaser Grafik hinterlegt wurde (WP 3.0) bzw. nach der der ersten verwendeten Grafik innerhalb des Artikels und setzt dann für diese Grafik die entsprechenden Tags. Sollte ein Artikel weder eine Teaser Grafik noch ein Bild innerhalb des Artikels haben, wird ein Standardwert verwendet – wo sich zum Beispiel ein Screenshot der Website selbst anbietet.
Dieses ist kompatibel mit WordPress 3.0 oder höher. Mit einem kleinen Kniff bekommt man das aber auch in WP 2.x zum laufen – die Zeile 34 einfach mit folgendem Schnippsel ersetzen:
[sourcecode language=“php“]if (function_exists(„has_post_thumbnail“) && has_post_thumbnail($post->ID)) {[/sourcecode]
Wer dann noch den Open Graph Tag eingebauen möchte, kann das in Zeile 58 machen und zwar mit:
[sourcecode language=“php“]echo ‚‚;[/sourcecode]
Apache beschleunigen mit Google
Google hat heute ein sehr interessantes Projekt veröffentlicht: mod_pagespeed für den Webserver Apache. Mit diesem Plugin können Webmaster in Handumdrehen den Loadspeed ihrer Website verbessern – angeblich sogar halbieren. Auf der Demo-Website modpagespeed.com kann man sich anschauen, was das Plugin im Einzelnen bietet und auch die Resultate daraus testen. Hier die Übersicht:
Design with Intent
Dan Lockton, David Harrison und Neville A. Stanton haben ein sehr ansehnliches PDF Paper veröffentlicht, welches 101 kleine Designstudien vorstellt. Dabei geht es um verschiedene Design-Disziplinen und vor allem wie man erreichen kann, dass die Zielperson eine gewünschte Aktion ausführt bzw. unterlässt. Das führt von Kopfsteinpflaster als Seperator zwischen Fahrrad- und Fussgängerwegen (Fahrradfahrer merken physisch, dass Sie Ihren Weg verlassen) bis hin zu blauen Licht auf öffentlichen Toiletten (so, dass Junkies ihre Venen nicht sehen können und somit das Spritzen schwer fällt). Natürlich gibt es auch das ein oder andere Beispiel aus der Welt des Webdesigns.
Google ganz fair
Sucht man nach „Suchmaschine“ bei Google, zeigt sich der Marktführer selbst nur auf Platz 21 an. Liegt wohl am geringen Content und da scheinen auch nicht die Millionen Links zu helfen. Abacho.de ist auf Platz 1 und auf Platz 2 ist Suchmaschine.com (ROFL!). Meiner Meinung nach ist ja der der derzeitige Algorithmus für die Katz – zuviel Spam und zu hohe Scores für die Domain Names. Dadurch haben Brands (wie zB Google!) trotz ihrer Offline Bekanntheit teilweise Probleme gut zu ranken – allerdings scheint Google auch an dem Problem zu arbeiten, so berichtet seomoz vor ein paar Tagen von einem Brand Update. Naja nur mal so am Rande – wünsche nen schönen Tag :-).