Mein Seat

Mittwoch, 1. Juli 2009

Auktion bei ebay

Auktion bei ebay

Mit meinem geliebten rot-gelben Seat Ibiza habe ich letztes Jahr die Hauptuntersuchung bei TÜV in Mainz-Gonsenheim nicht bestanden. Ich habe den Eindruck, die sind etwas kleinlich, es wurde unter anderem bemängelt, dass man den Fahrersitz nicht umklappen, dass der Fensterheber nicht funktioniert und das Lenkrad etwas (1 bis 2 mm) Spiel hat. Die Reparaturen hätten mehr gekostet, als das Auto noch wert ist, deshalb habe ich es bei ebay für 330 Euro verkauft.

Für den mehr als 20fachen Betrag habe ich mir dann einen schwarzen Seat Leon zugelegt. Blöd nur, dass mir dieser Problemchen bereitet, kaum dass ich vom Hof des Händlers gefahren bin: Steinschlag in Scheibe, CD beim Radio funktioniert nicht, Anlasser funktioniert sporadisch nicht und der Keilriemen macht Schleifgeräusche… Ein paar Tage zuvor bei der Probefahrt war alles in Ordnung und der Gebrauchtwagencheck beim ATU in Heilbronn erbrachte auch keine Mängel.

Wieso bloß wollte der ATU in Mainz diese Teile komplett austauschen (minimum 150 Euro für Keilriemen und 250 Euro für Anlasser)? Das ausgezeichnete Autohaus Merkel hat es ohne Ersatzteile hinbekommen – gleich mal 400 Euro gespart. Bekommen die Mitarbeiter bei ATU eigentlich Provision, wenn sie naiven Autobesitzern das Geld aus der Tasche ziehen?

Thema: Ärgernisse, Privat | Keine Kommentare

Seiteninhalte vererben in TYPO3

Mittwoch, 1. Juli 2009

Oft macht es Sinn, auf verschiedenen Seiten die gleichen Inhalte anzubieten, z.B. Teaser oder Werbebanner im Randbereich einer mehrspaltigen Webseite. Dabei sollte man natürlich nicht auf jeder Seite die gleichen Inhalte einpflegen, sondern die Inhalte vererben: Wenn die Inhaltsspalte der aktuellen Seite keinen Inhalt hat, wird der Inhalt von den Eltern-Seiten genommen. Die Vererbung funktioniert rekursiv, d.h. wenn auch die übergeordnete Seite keinen Inhalt hat, wird bei deren Eltern-Seite nachgeschaut usw.

Je nachdem, ob man TemplaVoila einsetzt oder nicht, muss man unterschiedlich vorgehen:

TYPO3 mit TemplaVoila

Vererbung mit der Extension kb_tv_cont_slide

In der TemplaVoila Datenstruktur wird der vorhandene TypoScript Code mit diesem ersetzt:

10 = RECORDS
10.source.postUserFunc = tx_kbtvcontslide_pi1->main
10.source.postUserFunc.field = field_idOfTheField
10.source.postUserFunc.languageFallback = 0
10.tables = tt_content

field_idOfTheField ist ein Platzhalter und muss mit dem Namen der Inhaltsspalte ersetzt werden.

Vorteile der Extension gegenüber der Lösung mit TypoScript:

  • language fallback: Bevor auf die Inhalte der Eltern-Seite zurückgegriffen wird, wird geprüft, ob zu der angegebenen Sprache (im
    Beispiel 0, also die Default Sprache) Inhalte vorliegen.
  • Seitenelemente, für die die Verknüpfung entfernt wurden (d.h. sie wurden im Seiten-Modul “gelöscht”), werden nicht mehr angezeigt

Weitere Erweiterungen:

Die Erweiterung ad_tvcontentslide basiert auf kb_tv_cont_slide, vererbt aber nur Inhalte, bei denen eine Checkbox aktiviert ist. Diese Erweiterung macht Sinn, wenn man die Inhalte nur auf wenigen Seiten vererben möchte.

Die Erweiterung jb_stop_slide integriert in die Seiteneigenschaften eine Checkbox, die das Vererben der Inhalte über kb_tv_cont_slide stoppt.

Über TypoScript

Dieser TypoScript Code kommt in die TemplaVoila Datenstruktur:

10 = CONTENT
10 {
  table = tt_content
  slide = -1
  select {
    where = <strong>colPos=0</strong>
    andWhere = deleted=0
    andWhere = hidden=0
    orderBy = sorting
  }
  wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
}

Angepasst werden muss nur die colPos, hier kommt der Wert rein, der in Tag oldStyleColumnNumber steht.

ACHTUNG: Elemente, die gelöscht wurden (d.h. deren Verknüpfung wurde entfernt), werden trotzdem ausgegeben! Deshalb muss man immer die “nicht verwendeten Elemente” händisch löschen!

Die TypoScript Lösung habe ich hier gesehen.

TYPO3 ohne TemplaVoila

Hier kann man das sogenannte “Content Sliding” einsetzen. Dieses gibt es seit TYPO3 Version 4.

Mehr zum Content Slide im TYPO3-Wiki.

temp.myBorderCol < styles.content.getBorder
temp.myBorderCol.slide = -1

Mit dem “Content Sliding” ist es auch möglich, die Elemente von den Eltern-Seiten zu sammeln und alle auszugeben. D.h. je tiefer man navigiert, umso mehr Elemente werden angezeigt. Dies funktioniert mit “styles.content.getBorder.slide.collect”.

Thema: Snipplets, TYPO3, Web Entwicklung | Keine Kommentare

Texte aus TYPO3 Extensions

Montag, 20. April 2009

Wenn man auf seiner Webseite eine TYPO3 Extension einsetzt, ist man oft nicht immer einverstanden mit den Texten, Beschreibungen oder Übersetzungen. Diese kann man zwar einfach in der locallang-Datei der Extension (pi1/locallang.php oder pi1/locallang.xml) oder in den “Translation Handling” Dateien (Verzeichnis typo3conf/l10n/de/meineextension/pi1) abändern, falls die Texte nicht direkt im PHP Code stehen  (um diese Extensions sollte man aber generell einen weiten Bogen machen!).

Besser ist, wenn man diese Texte über TypoScript abändert, denn damit stellt man sicher, dass die Änderungen auch noch vorhanden sind, wenn man ein Update der Extension macht oder das Translation Handling ausführt. Hier die TypoScript Konfiguration am Beispiel der Extension “tt_news” und dem Text für Sprach-Key “more”:

plugin.tt_news._LOCAL_LANG.en.more = more
plugin.tt_news._LOCAL_LANG.de.more = mehr

Den entsprechenden Sprach-Schlüssel (hier “more”) findet man in den locallang-Dateien, die im vorliegenden Fall so aussieht:

[...]
<languageKey index="default" type="array">
	[...]
	<label index="more">[more]</label>
</languageKey>
<languageKey index="de" type="array">
	[...]
	<label index="more">[mehr]</label>
</languageKey>

Thema: TYPO3, Web Entwicklung | Keine Kommentare

Überschriften mit Umbruch in TYPO3

Montag, 20. April 2009

Manchmal erfordert das Screendesign, dass man Überschriften aus den Seitenelementen mehrzeilig darstellt.

Das geht ganz einfach – man muss diesen TypoScript-Code lediglich in das Setup-Feld (auf deutsch “Konfiguration”) eintragen:

// break row in headings (with two hashes as placeholder)
lib.stdheader.10 {
  1 {
    split {
      token = ##
      cObjNum =  1 |*| 1 |*| 2
      1 = TEXT
      1.current = 1
      1.wrap = |<br>
      2 = TEXT
      2.current = 1
      2.wrap =
    }
  }
  2.split < .1.split
  3.split < .1.split
  4.split < .1.split
  5.split < .1.split
}
// no break row in sitemaps
tt_content.menu.stdWrap.split < lib.stdheader.10.1.split
tt_content.menu.stdWrap.split.1.wrap >
tt_content.menu.stdWrap.split.1.noTrimWrap = || |

Nun kann man mit dem Platzhalter “##” einen Umbruch in Überschriften erzwingen.

Da von der split-Anweisung auch die Links bei Überschriften betroffen sind, sollte man als token keine Zeichen verwenden, die in einem Link verwendet werden könnten, also z.B. # (eine Raute) oder _ (Unterstrich): <a target=”_blank” href=”#top” …>

Problematisch wird es, wenn das Überschriften-Feld noch an anderen Stellen auf der Webseite verwendet wird, z.B. im Inhaltselement “Menü/Sitemap”: hier gibt es einen Menü-Typ, der neben dem Seitentiteln auch die Überschrift ausgibt. Die letzten drei Zeilen in dem obigen TypoScript-Code verhindert dies (Herzlichen Dank an Jan Bartels für diese Lösung). Auch bei diversen TYPO3-Erweiterungen, welche die Überschrift ausgeben und diese womöglich direkt aus der Datenbank auslesen, hat man dieses Problem. An diesen Stellen wird der Platzhalter angezeigt, wenn dieser nicht entfernt bzw. ersetzt wird.

Alternativ kann man das Überschriften-Feld auch als Textarea anlegen und die Umbrüche darin durch den HTML-Tag “<br>” ersetzen. Oder aber man trägt den HTML-Code direkt in das Überschriften-Feld ein, in diesem Fall muss man aber verhindern, dass dieser sichtbar ausgegeben wird:

lib.stdheader.10.setCurrent.htmlSpecialChars >

Thema: Snipplets, TYPO3, Web Entwicklung | Keine Kommentare

Kundenfang bei greatnet.de

Samstag, 31. Januar 2009

Vor ein paar Wochen habe ich eine Nachricht von meinem ISP alfahosting.de bekommen, dass Browserspiele laut der AGB auf normalen Hosting-Paketen nicht erlaubt sind und sie deshalb mein Browserspiel www.madtv-online.com gesperrt haben. In der AGB konnte ich lesen, dass “Spiele-Server” nicht erlaubt sind, nur wird dies eben so ausgelegt, dass Browserspiele auch in diese Kategorie fallen.

In der Annahme, das nächstbessere Hosting wäre ein VServer, habe ich mir den “VServer Entry” bei greatnet.de geholt. Das war leider ein Fehler, denn seitdem ist die Webseite öfters nicht erreichbar: die 128 MB RAM sind einfach viel zu wenig.

Außerdem war der VServer von Seiten greatnet miserabel konfiguriert: Der MySQL Prozeß hat allein 100 MB von den verfügbaren 128 MB Speicher zugestanden bekommen! Zur Verarbeitung der anderen Prozesse (z.B. apache, sendmail, …) waren kaum noch Ressourcen frei…

Aller Wahrscheinlichkeit nach hole ich mir nun einen VServer bei keyweb.de. Dort bekomme ich für das gleiche Geld 512 MB. Ich hoffe, keyweb hat keine anderen Tricks, mir das Geld aus der Tasche zu ziehen.

Thema: Ärgernisse, Privat, Server-Administration | Kommentare (2)

Tipps und Hinweise zum Versand von Newslettern

Samstag, 31. Januar 2009

Wichtig

  • Rechtliche Hinweise beachten
  • Testen mit verschiedenen Browsern und E-Mail-Programmen
  • E-Mail-Adressen der Empfänger vor dem Versenden auf ihre Gültigkeit überprüfen
  • Den Header der E-Mail anschauen: Ist dort alles korrekt? Absender, Betreff, Antwort an, Gesendet von, …
  • An die Absende-Adresse des Newsletters gehen nicht nur die Rückläufer, vereinzelt antworten die Empfänger auch auf einen Newsletter. Deshalb sollten dieses E-Mail-Konto auch beobachtet werden.
  • Rückläufer: Viele Newsletter kommen zurück (ca. 10%), das sollte bei der Auswahl der Absender-E-Mail-Adresse berücksichtigt werden. Damit der Posteingang nicht schnell überquillt, sollte man einen Filter einrichten, der E-Mails mit dem Betreff “Returned mail: see transcript for details”, “Warning: could not send message for past 4 hours”, “Mail delivery failed: returning message to sender”, “Undelivered Mail Returned to Sender” oder “Delivery Status Notification (Failure)” oder mit dem Absender “Mail Delivery Subsystem”, “Mail Delivery System” oder “MAILER-DAEMON” umleitet.

Achtung

  • Verwendet man besondere Inhalte wie Bilder, Flash oder JavaScript (oder selbst nur HTML) in E-Mail-Newslettern, sollte man beachten, dass viele Empfänger den Newsletter aus folgenden Gründen nicht lesen können bzw. gar nicht erhalten:
    • Antivirus-Software
    • Firewalls
    • SPAM-Filter
    • Sicherheitseinstellungen
    • Hersteller und Version des verwendeten Email-Programms
  • Liegen Teile des Newsletters im www (z.B. Bilder), so werden diese natürlich nicht angezeigt, wenn der Newsletter offline betrachtet wird. Der Newsletter sollte auch ohne diese externen Bestandteile noch lesbar sein!
  • Bilder ohne ALT-Attribut einbinden: Wenn das Bild nicht geladen wird (und Bilder werden in E-Mail-Clients oft standardmäßig nicht geladen) wird der eigentliche E-Mail-Text durch alt-Tags unleserlich.
  • Flash im Newsletter: besser nicht, von den E-Mail-Programmen kann nur MacMail Flash anzeigen. Quelle: www.campaignmonitor.com
  • JavaScript im Newsletter: auf keinen Fall. Die webbasierten E-Mail-Klients blockieren es, die anderen unterstützen es zumeist gar nicht.
  • HTML als Tabelle aufbauen! Vor allem Outlook (die neueren Versionen!) machen hier Probleme. Aber: Keine colspan und rowspan verwenden. Siehe auch Artikel bei campaignmonitor.com

Spam-Filter vermeiden

Damit Newsletter nicht als Spam deklariert werden, muss man ein paar Dinge beachten:

  • Bei HTML-Mailings den HTML- und Body-Tag nicht vergessen!
  • Die Absender-E-Mail-Adresse muss existieren
  • Header der E-Mail genau anschauen, z.B. wenn das Feld “Gesendet von” existiert, sollte dieses die Domain oder die Absender-E-Mail-Adresse enthalten.
  • Nicht innerhalb kurzer Zeit tausende Newsletter verschicken: Häufige Massenversender werden evtl. als Spammer deklariert -> mehrere Server verwenden. Deshalb vorab die IP-Adresse des Mailservers herausbekommen und in danach in der Blacklist nachschauen, ob er gelistet ist.
  • Der Mailserver muss einen gültigen “Reverse DNS”-Eintrag besitzen
  • Den User mit seinem Namen anreden
  • Aktuelles Datum im Text
  • Betreff und Newsletter-Text ohne Werbeworte wie z.B. Angebot, gratis, kostenlos
  • Hinweise auf besonders Spam-verdächtige Branchen und Produkte (Erotik, Pharmazeutik) oder reine Produktpräsentationen (insbesondere in Verbindung mit Preisangaben) vermeiden
  • Response Management: Links, die das User-Verhalten dokumentieren, können kritisch sein
  • E-Mail im MIME-Multipartformat verschicken, d.h. der Newsletter wird gleichzeitig im Nur-Text- als auch im HTML-Format verschickt
  • Möglichst wenig HTML und Grafiken, keine Formulare und JavaScript
  • Normaler Gebrauch von Großbuchstaben, Satzzeichen, Leerzeichen und Sonderzeichen, also z.B. keine Großschreibung über mehrere Wörter
  • Auch hier gilt: Testen mit den verschiedenen Anbietern (AOL, Gmail, web.de, Microsoft Outlook, Thunderbird, …)! Diese haben verschiedene Filterkriterien. Kommt ein Newsletter nicht an oder landet im Spam-Ordner, muss man die Gründe suchen.

Ein Tool, um einen Newsletter auf Spam zu bewerten, ist SpamAssasine. Auch das Spam Rating Tool von emarsys.com nutzt diesen: Man kann den Newsletter an deren E-Mail-Adresse schicken, der dann automatisch auf verdächtige Kriterien gecheckt wird. Nach kurzer Zeit bekommt man dann eine E-Mail mit dem Resultat zurück, der Spam-Score darin sollte 5 nicht übersteigen.

Gründe für Rückläufer

  • E-Mail-Postfach des Empfängers voll
  • E-Mail-Adresse / Domain existiert nicht mehr
  • Host der E-Mail-Adresse war ungültig, z.B. email@tonline.de anstatt email@t-online.de
  • Wenn das Zielsystem (z.B. Server von t-online) nach wiederholten Zustellungsversuch nicht reagiert, kommt E-Mail nach 72 Stunden zurück
  • E-Mail zu groß für Mailsystem
  • Abgebrochene Mail-Schleife: E-Mail wird zu oft weitergeleitet / in einer Schleife weitergeleitet
  • Firewall des Zielsystems blockt E-Mail ab / E-Mail wird als Spam deklariert
  • Evtl.: AOL lehnt alle Mails ab, deren Absender von einem Mailserver stammt, dessen IP Adresse nicht per Reverse-Lookup aufgelöst werden kann. D.h. alle Mailserver mit dynamischer IP bleiben aussen vor.

Thema: Marketing | Keine Kommentare

Browsergames Forum 2008 – Nachbericht

Freitag, 28. November 2008

Letztes Wochenende war in Frankfurt das BGF 2008. Die Location war echt klasse: mitten im Zentrum in dem “Japan Tower” – leider nicht in den oberen Stockwerken (ich hätte zu gerne die Aussicht genossen).

Der “Check-In” war etwas langwierig und sehr unorganisiert – die Teilnehmer standen in einer langen Schlange und warteten, bis drei Organisatoren ihren Namen auf mehreren (nicht nach Alphabet sortierten!) Listen gefunden haben und ihr Namensschildchen in einem unsortiertem (!) Haufen gefunden haben bzw. erst ausdrucken und zusammenstecken mußten. Hier hätte man im Vorfeld also schon einiges optimieren können. Deshalb hat sich der Konferenzbeginn um mehr als eine Stunde verzögert.

Das war aber auch das einzige, was es zu meckern gab: die Vorträge waren größtenteils interessant und informativ, die Messestände klein aber fein, die Teilnehmer teils skurill, das Buffet lecker :)

Hier ein paar Fakten, die ich für erwähnenswert erachte:

  • Die Entwicklung von Browserspielen verschlingt mittlerweile Budgets von 30 000 bis 1 Mio Euro
  • User Generated Content wird auch für Browserspiele immer wichtiger
  • Bigpoint verdient mit einem Browserspiel durchaus mehr als eine Million Euro pro Monat
  • In den nächsten Monaten kommt ein interessantes Browserspiel raus, das sich von dem einerlei abhebt. Es ist grafisch vergleichbar mit Tropico (läuft komplett in Flash) und man leitet ein Ferienparadies, in dem man mit anderen Spielern um zufriedene Urlauber kämpft
  • Die 20:80 Regel: 20% der User generieren 80% des Umsatzes mit einem Browserspiel

Ich habe auch einige Anregungen, Tipps und neue Ideen für mein Browserspiel Mad TV mitgenommen. Sehr interessant war hier vor allem der Vortrag “Selber Publishen” von Siegfried Müller (Travian Games).

A propos Chaos: Die Organisatoren haben es noch immer nicht geschafft, die Slides der Vorträge wie versprochen auf ihrer Webseite zu veröffentlichen. Schade.

Thema: Browserspiele, Privat | Keine Kommentare

Zeichenkodierung

Donnerstag, 20. November 2008

Jeder, der schon mal was fürs Internet entwickelt hat, kennt das Problem: Umlaute und Sonderzeichen werden oft nicht korrekt dargestellt.

Der Browser rendert die Seite mit ISO-8859-15, die Datenbank und Datenbank-Felder haben die Kollation “latin1_swedish_ci”, Texte sehen so aus: “natürlich”, “löschen”, …

Damit man diese Probleme nicht hat, vor allem nicht bei mehrsprachigen Seiten, sollte man die Entwicklungsumgebung so früh wie möglich auf UTF-8 umstellen.

Diese Seite soll einen Überblick geben, was man für eine stressfreie Entwicklung (mit PHP und MySQL) zu beachten hat:

1) Apache (oder PHP) auf UTF-8 setzen

htaccess

AddDefaultCharset utf-8

php

header('Content-type:text/html;charset=UTF-8');

2) HTML auf UTF-8 setzen

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

3) Datenbank-Tabellen als “utf8-general-ci” anlegen

4) Datenbank-Abfragen auf UTF-8 setzen

SET NAMES 'utf8';
SET SESSION character_set_server=utf8;

5) Datenbank-Kollationen vergleichen, ob diese sich nicht unterscheiden

SHOW VARIABLES LIKE '%collation%';

Guter (wenn auch etwas älterer) Artikel dazu: UTF-8 und die Entity
Noch ein Artikel: UTF-8 allgemein

Achtung: Wenn die Fehlermeldung “Cannot modify header information” ausgegeben wird, wird die Anweisung ignoriert und der Browser stellt auf Standard-Kodierung um.

Thema: Datenbanken, PHP, Web Entwicklung | Keine Kommentare

Browsergames Forum 2008

Donnerstag, 20. November 2008

Kommendes Wochenende findet das 4. Browsergames Forum (früher Browsergame Conference) in Frankfurt statt. Ich bin schon sehr gespannt auf die Location, auf die Vorträge und auf die Gleichgesinnten.

Mal schauen, wie sich die großen Firmen wie Bigpoint, web.de games und Microsoft präsentieren. Schade, dass 4Players und ProSieben oder interessante Spieleschmieden wie Piranha Bytes oder Sierra dieses Jahr nicht mehr vertreten sind.

Thema: Browserspiele, Privat | Keine Kommentare

Mein Blog

Mittwoch, 19. November 2008

Bloggen ist schon wieder fast out, trotzdem habe ich mich zu einem Blog durchgerungen.

Hauptsächlich, um mein unendliches Wissen im Bereich der Web-Entwicklung auf meine Leser “niederregnen” zu lassen und um über böse Unternehmen oder andere Dinge, die mir auf den S*** gehen, herzuziehen – nehmt euch in acht, Weltkonzerne, nervige Kollegen, Möchtegern-Internetprofessionals, Beamten, TÜV, windige Geschäftsleute, laute Nachbarn, …!

Das war jetzt selbstverliebt und ironisch bis sarkastisch, aber alle anderen Beiträge in diesem Blog werden sachlich und informativ, versprochen!

Thema: Privat | Keine Kommentare