Gut gemacht 1&1

Aus aktuellen Anlass: Ihr bei 1&1 seid solche Pfeifen!

Problem:
In der Mailqueue auf meinem Server stauten sich unzustellbare E-Mails meiner Kunden.
Folgende Meldung wird als Grund genannt: 421 invalid sender domain, possibly misconfigured
Auffällig: Es handelt sich nur um Server von 1&1, mx*.schlund.de oder mx*.kundenserver.de.

Grund:
Die haben doch tatsächlich einfach so ohne jegliche Vorwarnung ihre kompletten Mailserver umkonfiguriert. Und zwar akzeptieren die 1&1 SMTP-Server von einer auf die andere Sekunden einfach keine MX-Einträge der Sender-Domains mehr, wenn diese auf einen Host zeigen, der selbst ein CNAME Eintrag ist.

Im Hilfecenter steht davon aber nichts!

Ok, ganz unschuldig bin ich nicht. Denn laut Standard ist das nicht erlaubt, auch wenn es technisch möglich ist.
Aber wie wäre es denn mit einer öffentlichen Bekanntmachung gewesen? Schließlich laufen hunderttausende Domains über 1&1. Aber nein…alles ganz still und leise.

Lösung:
Den MX Eintrag der Sender Domains auf nen Host legen, der direkt via A Eintrag auf ne IP zeigt.
Danach gings bei mir sofort wieder.

Danke an dentaku für die Lösung!

Trotzdem…ich finds echt scheiße von 1&1, dass die sowas nicht ankündigen.

gzip komprimierte Javascript- und CSS-Dateien

Hi,

im letzten Post habe ich über eine komprimierte Variante der neuesten Prototype-Version geschrieben. Wie versprochen werde ich in diesem Post erklären, wie man so eine mit gzip-komprimierte Datei möglichst elegant und flexibel in seine Seite einbindet.

Dazu legt man einfach eine .htaccess-Datei mit folgendem Inhalt an:

RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteCond %{REQUEST_FILENAME} ^.+\.(js|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.+) $1.gz [QSA,L]
RemoveType .gz
AddEncoding x-gzip .gz

Wichtig: der Apache muss mod_rewrite aktiviert haben!

Jetzt muss man nur noch für alle Dateien, die man komprimiert ausliefern will eine entsprechende Variante mit dem Suffix .gz im gleichen Verzeichnis in dem das Original liegt anlegen.

Ist eine solche gzip Datei vorhanden wird diese anstatt der unkomprimierten Variante übertragen, ansonsten ändert sich nichts.

Hinweis: folgende Zeile war bei mir zwingend nötig um die globale Einstellung vom Apache zu überschreiben. Keine der Lösungen, die im Netz gefunden habe, weist darauf hin!

RemoveType .gz

Unterstützt ein Browser keine Komprimierung (sowas gibts hoffentlich nicht mehr, selbst der IE4 kann das) werden die Regeln einfach ignoriert.

Das wars auch schon. Mit dieser kleinen, aber feinen Lösung verkürzt man die Ladezeit seiner Seite erheblich.

Prototype 1.6.1 RC3 compressed/packed

Tach,

endlich mal wieder ein neuer Eintrag hier :)

Ich benutze für meine Projekte ja immer prototype und die aktuelle stabile Version (1.6.0.3) ist leider nicht kompatibel zum IE8. Da der aktuelle Release Candidate sehr stabil aussieht und bei meinen Tests alles funktioniert hat, wollte ich die neue Version auch produktiv einsetzen.

Ich habe bisher immer eine komprimierte Version (protopacked) von prototype benutzt, das mit shrinkVars und co auf unter 50kb komprimiert wurde.

Leider steht diese minimierte Version nicht für den aktuellen RC zur Verfügung, es gibt lediglich protoaculous, was eine Kombination aus Prototype und script.aculo.us ist. Da ich zweiteres aber so gut wie nie brauche, sind mir die zusätzlichen Bytes zu viel.

Ich habe daher meine eigene Variante erzeugt. Dazu habe ich mehrere JavaScript Komprimier-Tools probiert und nur zwei davon funktionierten mit der neuen Prototype Version.

YUI Compressor
http://developer.yahoo.com/yui/compressor/

java -jar yuicompressor-2.4.2.jar -o yui.js prototype.js

yui.js (80kb)
yui.js.gz (24kb)

ShrinkSafe
http://dojotoolkit.org/docs/shrinksafe

java -jar shrinksafe.jar prototype.js > shrink.js

shrink.js (96kb)
shrink.js.gz (27kb)

Original Prototype
http://www.prototypejs.org

prototype.js (137kb)
prototype.js.gz (31kb)

Man sieht, dass man durch gzip Komprimierung jede Menge rausholen kann.
Die Optimierung des JS-Codes kann man sich auch sparen, aber ein paar KB sind doch rauszuholen.

Wie man gzip-komprimierte JS-Dateien nun in eine Seite einbindet, erklär ich im nächsten Post.