yet another useless homepage

We don't cut. We expand.

Oct 18, 12:47 PM
von Stephan
1 Kommentar

Wie die Telekom mit dem Premierenticket ihre Kunden zum Narren hält

Nach langer Zeit ohne Mobiltelefon habe ich mir bei der Telekom das Premierenticket gesichert, als noch nicht klar war, ob es ein iPhone 5 oder nur ein 4s geben wird. Angeblich sollte man sich ganz entspannt zurücklehnen können und alles würde gut.

Ab dem 7. Oktober konnte man dann die Vorbestellungen für ein iPhone 4s aufgeben – ich habe dies dann zwei Tage später, am 9. Oktober gemacht. Dummerweise musste man zur Nutzung des Premierentickets in den T-Punkt. Dort erhält man jedoch keine 10% Rabatt auf die Grundgebühr eines Vertrags im ersten Jahr. In meinem Falle sind dies etwa 70 Euro, die es mir wert waren, mich gemütlich zurücklehnen zu können. (Interessant ist, dass es allem Anschein nach auch möglich war, über das Internet und telefonisch mit einem Premierenticket zu bestellen.)

Leider kam alles anders als entspannt.

Da ich als Neukunde nach Erhalt des iPhones sowieso im T-Punkt vorstellig werden müsste, um die Micro-SIM abzuholen, ließ ich das Gerät an den T-Punkt schicken.

Am 14. Oktober, dem offiziellen Starttermin des iPhone 4s, war ich dann im T-Punkt. Während andere Kunden ihr Endgerät abholen konnten, war meins leider nicht zu sehen. Auch am nächsten Tag, einem Samstag, wurde ich schulterzuckend wieder weggeschickt.

Ein Kollege von mir, der jedoch ohne Premierenticket sein iPhone via Internet bei der Telekom bestellt hatte, veröffentliche seit Freitag Abend bereits fleissig Screenshots von seinem neuen Siri.

Am Dienstag, dem 18. Oktober, wollte die Hotline mir nicht helfen, einen etwaigen Status des iPhones herauszufinden. Angeblich könne dies nur der Shop (der telefonisch nicht erreichbar ist und sich in einer anderen Stadt befindet als meine Arbeitsstätte, weshalb ich dort auch nicht in der Mittagspause kurz vorbeischauen könnte). Besagter Shop hat meine Telefonnummer und hat sich bislang nicht gemeldet.

Wer also gedacht hat, die Telekom hätte aus dem Debakel mit dem iPhone 4 und langen Wartezeiten gelernt, der hat nicht ganz unrecht. Mit dem Premierenticket haben sie gelernt, nur scheint es nicht darum zu gehen, Wartezeiten zu verringern, sondern Online-Rabatte nicht gewähren zu müssen.

Vermutlich hätte ich es besser wissen müssen. Bleibt nur zu hoffen, dass es sich wirklich um Einzelfälle handelt, doch allem Anschein nach bin ich mit meinen Problemen nicht allein. Wenn die Telekom bei allen geprellten Premierenticket-Kunden 70 Euro gespart hat, dann kann das bei nur einem Prozent nicht berücksichtigter Kunden schon knapp 30000 Euro wert sein (nicht gerechnet eventuell bereits laufende Verträge, die jedoch keinen Traffic in Ermangelung eines Endgeräts produzieren können).

Besonders ärgerlich, wenn 40000 Premierenticketinhaber bei 150000 verkauften Geräten am Premierenwochenende nicht bedient werden können.

Jun 24, 12:28 AM
von Stephan
Keine Kommentare

Sendmail und Google Apps unter CentOS 5

Meine E-Mails werden von Google (Apps, nicht das normale Mail) versendet und empfangen, da möchte ich auch meinen neuen vServer so einrichten, dass er E-Mails mit dem SMTP-Server von Google versenden kann.

Nach ein paar Anfangsschwierigkeiten und vielen verschiedenen Anleitungen hat dieser französischer Eintrag letztlich geholfen, sendmail korrekt einzurichten.

Ein minimales CentOS 5.5 mit korrekt gesetzten Hostname (FQDN mit einer per DNS auflösbaren Domain) war die Voraussetzung für die folgenden Schritte:

Zunächst müssen mittels yum ein paar Pakete installiert werden (nicht alle sind für die Einrichtung des Relay notwendig, aber da es sich bei meinem Server um ein Minimalsystem handelt, benötige ich sie sowieso für alle möglichen Gelegenheiten):

-bash-3.2# yum -y install vim-enhanced wget mlocate sudo sendmail sendmail-cf man telnet cyrus-sasl-plain passwd mlocate sudo openssh openssl make gcc cyrus-sasl cyrus-sasl-plain

Der nächste Schritt ist, die notwendigen Zertifikate nach /usr/share/ssl/certs zu kopieren bzw. dort zu erstellen. Die Zertifikate sind zehn Jahre lang gültig, bei Bedarf kann man natürlich auch kleinere Werte als 3650 Tage wählen.

-bash-3.2# mkdir -p /usr/share/ssl/certs
-bash-3.2# cd /usr/share/ssl/certs
-bash-3.2# cp /etc/pki/tls/certs/ca-bundle.crt /usr/share/ssl/certs/
-bash-3.2# openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 3650
-bash-3.2# openssl req -nodes -new -x509 -keyout sendmail.pem -out sendmail.pem -days 3650

Anschließend werden die Zugangsdaten in der Datei /etc/mail/authinfo angelegt:

-bash-3.2# vi /etc/mail/authinfo

Der Inhalt der Datei sieht dann in etwa so aus (die Platzhalter in müssen durch die tatsächliche E-Mail-Adresse bzw. das Klartext-Passwort ausgetauscht werden:

AuthInfo:smtp.gmail.com "U:root" "I:<appsexample.com>” “P:“ “M:PLAIN”@
AuthInfo:smtp.gmail.com:587 "U:root" "I:<appsexample.com>” “P:“ “M:PLAIN”@

Die Authinfo-Datei wird nunmehr gehasht und die Dateiberechtigung angepasst:

-bash-3.2# makemap hash /etc/mail/authinfo < /etc/mail/authinfo
-bash-3.2# chmod 600 /etc/mail/authinfo

Die Datei /etc/mail/sendmail.mc muss ebenfalls noch angepasst werden. Vor der ersten Zeile, die mit MAILER beginnt, müssen diese Zeilen eingefügt werden:

FEATURE(`authinfo',`hash /etc/mail/authinfo.db')
define(`SMART_HOST',`smtp.gmail.com')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')
define(`ESMTP_MAILER_ARGS', `TCP $h 587')
define(`confCACERT_PATH',`/usr/share/ssl/certs')
define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
define(`confAUTH_OPTIONS', `A')dnl

Nun noch die Änderungen wirksam werden lassen und sendmail neu starten (bzw. bei jedem Neustart automatisch starten lassen):

-bash-3.2# cd /etc/mail
-bash-3.2# m4 sendmail.mc > sendmail.cf
-bash-3.2# /sbin/service sendmail restart
-bash-3.2# /sbin/chkconfig sendmail on

Das Verschicken einer Testmail dürfte nun funktionieren (als Beispiel wird der Inhalt der Datei /etc/hostname per E-Mail an eine funktionierende Adresse versendet):

-bash-3.2# sendmail -v mailexample.com < /etc/hostname@

May 30, 10:59 PM
von Stephan
2 Kommentare

Zwei Geschichten von Amazon

Ich habe einen BluRay-Player bei Amazon gekauft, der in dem Moment im Preis reduziert wurde, als ich meine Versandbestätigung bekam.
Ein interessanter Einblick in die Arbeitsweise des “kundenfreundlichsten Unternehmens der Welt”.

Erster Versuch – Email

Meine Anfrage


Ihr Name:Stephan Hochhaus
Bestellnummer: 303-xxxx
Other info:Preisdifferenz
Bemerkungen:Sehr geehrte Damen und Herren,

heute mittag erreichte mich die Versandbestätigung für den BDP8000 zum Preis von 212,99 Euro. Jetzt sehe ich den Preis als 206,99 Euro ausgezeichnet (unter dieser URL: http://www.amazon.de/Philips-BDP8000-Player-Upscaler-Ultra-zertifiziert/dp/B003YXY9M0/ref=sr_1_1?ie=UTF8&qid=1306770398&sr=8-1).

Können Sie mir die Differenz zum niedrigeren Preis erstatten, ohne dass ich den Player zurücksenden und erneut bestellen muss?

Vielen Dank!

Die Antwort


Guten Tag,

vielen Dank für Ihr Schreiben an Amazon.de.

Wir sind an einer für Sie attraktiven Preispolitik interessiert, und versuchen stets die Artikel in unseren Shops zu besonders günstigen Konditionen anzubieten.

Jedoch gilt generell der bei Aufgabe der Bestellung auf unserer Website angezeigte Preis.
Bitte haben Sie Verständnis, dass wir Preise im Nachhinein nicht reduzieren.

Es tut mir Leid: unsere Vorbesteller-Preisgarantie berücksichtigt nur Preisreduktionen bis einschließlich des Erscheinungsdatums. Nachträgliche Preisreduktionen können wir leider im Rahmen der Vorbesteller-Preisgarantie nicht gewähren. Mehr Informationen zu unserer Vorbesteller-Preisgarantie finden Sie hier:

http://www.amazon.de/gp/help/customer/display.html?nodeId=504940#Vorbesteller-Preisgarantie

Wir bitten um Ihr Verständnis und danken für Ihren Besuch.

Freundliche Grüße

Mohit Kumar
Unser Ziel: das kundenfreundlichste Unternehmen der Welt zu sein. Ihr Feedback hilft uns dabei.
http://www.amazon.de
==========================

Zweiter Versuch – Chat

Sie sind nun verbunden mit Christian Hensel von Amazon.de.
Ich: Preisänderung bei Versand
Hallo Herr Hensel
Christian Hensel: Guten Tag, mein Name ist Christian Hensel.
Wie kann ich Ihnen helfen?
Ich: Ich habe einen BluRay Player bestellt, dessen Preis sich quasi zeitgleich mit der Versandbestätigung geändert hat
Jetzt würde ich gerne wissen, ob ich die Preisdifferenz gutgeschrieben bekommen kann
Christian Hensel: Gerne schaue ich mir Ihre Bestellung einmal an. Einen kleinen Augenblick bitte.
Ich: Danke
Christian Hensel: In diesem Fall komme ich Ihnen gerne entgegen und erstatte Ihnen die jetzt entstande Preisdifferenz, so das der Betrag auf Ihre hinterlegte Zahlungsart zurückgebucht wird.
Ich: Herzlichen Dank und einen schönen Abend noch!
Christian Hensel: Gerne und Ihnen natürlich auch noch einen angenehmen Abend.

Nov 21, 04:14 PM
von Stephan
Keine Kommentare

Schneller, Apache, schneller!

Es gibt zahlreiche Tips, wie man die eigene Webseite beschleunigen kann. Spätestens seit bekannt ist, dass der eigene Page-Rank (die Bewertung einer Seite durch Google) unter anderem an der Ladegeschwindigkeit einer Site gemessen wird, interessieren sich nicht nur technikverliebte Geeks für das Thema.

Meine Webseite habe ich in den letzten Tagen ebenfalls eingehend mit YSlow und Firebug unter die Lupe genommen. Einige der Tips zur Verbesserung der Ladegeschwindigkeit lassen sich mit ein paar recht einfachen Einstellungen in der httpd.conf (der Konfigurationsdatei des Webservers Apache) umsetzen.

Für wiederkehrende Besucher ist es zumeist sinnvoll, bei häufig besuchten Seiten bereits abgerufene Resourcen im Zwischenspeicher aufzubewahren. Apache ist in der Lage, sogenannte ETags zu generieren, die einem Browser mitteilen, ob eine Datei sich verändert hat. Generell gibt es aber auch eine Performance-freundlichere Lösung hierzu: Cache-Control.

In der httpd.conf empfiehlt es sich entsprechend, die ETags auszuschalten und statt dessen pro Dateityp unterschiedliche Cache-Lebensdauern zu definieren:

Header unset Etag
FileETag none
# 480 Wochen
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=290304000, public"
</FilesMatch>
# 2 Tage
<FilesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</FilesMatch>
# 2 Stunden
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>

Eine weitere Möglichkeit, die Auslieferung von Webseiten zu beschleunigen, liegt darin, Inhalte auf dem Server mittels gzip zu komprimieren und im Browser wieder zu dekomprimieren. Da in der Regel nicht die CPU-Leistung, sondern die Geschwindigkeit der Netzwerkleitung den Flaschenhals bildet, können häufig alle Arten von Inhalten durch die Nutzung von mod_deflate zur Beschleunigung der Seite konfiguriert werden.

SetInputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/rtf
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom+xml
AddOutputFilterByType DEFLATE application/rdf+xml
AddOutputFilterByType DEFLATE application/postscript
AddOutputFilterByType DEFLATE application/msword
AddOutputFilterByType DEFLATE application/vnd.ms-excel
AddOutputFilterByType DEFLATE application/vnd.ms-powerpoint
AddOutputFilterByType DEFLATE image/svg+xml
AddType image/svg+xml .svg

Nov 19, 11:43 AM
von Stephan
1 Kommentar

Sicher gut beschützt - oder?

Deutschland hat seine eigene Terrorwarnung und in der Tat habe ich ein wenig Angst. Vermutlich liegt dies an meiner sehr blühenden Fantasie und meiner Neigung, mir “Was-wäre-wenn-Szenarien” auszudenken.

Heute morgen habe ich zwei der Bundespolizisten mit ihren Maschinenpistolen am Hauptbahnhof Dortmund gesehen. Beide hatten ein solches Monstrum in den Händen, den Lauf auf den Boden gerichtet. Nun habe ich mir die Frage gestellt, was von den Beamten im Ernstfalle eigentlich erwartet wird.

Das Szenario ist wie folgt: Ein großer deutscher Bahnhof in der Rush-Hour. Irgendwo im Getümmel taucht ein Verdächtiger auf. Was sollen unsere Polizisten zur Gefahrenabwehr tun? Ein Blick auf das Photo zeigt, so eine Maschinenpistole ist recht groß und benötigt zwei Hände.

Variante 1: Verdächtigen festnehmen.

Wenn beide Polizisten ein solches Monstrum in den Händen halten, muss einer von beiden eine Alternative für die Waffe finden, will er den vermeintlichen Terroristen festnehmen. Dazu kann er

  • seine Waffe mit Hilfe des Gurtes auf den Rücken drehen,
  • seine Waffe seinem Kollegen geben, der dann weder seine eigene Waffe nutzen kann, noch helfend eingreifen könnte, da er alle Hände voll zu tun hat,
  • seine Waffe auf den Boden legen. Eine ganz dumme Idee, wenn es einen zweiten Verdächtigen gibt, der sie sich schnappt.

Das Festnehmen scheint mir nicht erwünscht, wenn alle Polizisten Maschinenpistolen haben.

Variante 2: Verdächtigen “ausschalten”.

Mit “Ausschalten” vermute ich gezielte Schüsse. Obwohl ich ja keine Ahnung von der Materie habe, wage ich mal ein paar Überlegungen. Kann man mit einer Maschinenpistole gezielt jemanden in einer Menschenmenge erschießen? Ich dachte der Zusatz “Maschine” ziele darauf ab, dass viele Schüsse in kurzer Zeit abgegeben werden können. In einer Menschenmenge, wo ich den Verdächtigen nicht sofort treffe, kann ich also beliebig viele weitere Schüsse abgeben. Die Wahrscheinlichkeit, dass Umstehende getroffen werden, sehe ich als relativ hoch an.

Was ist gewollt?

Ich frage mich, was durch Polizisten mit Maschinenpistolen bezweckt werden soll, vor allem im Kontext großer Menschenmengen. Besser beschützt fühle ich mich sicher nicht, eher wie ein billigend in Kauf genommener, möglicher Kollateralschaden.

Update

Die Wikipedia macht mir noch mehr Sorgen und bestätigt eher meine laienhaften Befürchtungen als dass sie mich berichtigt:

Der Einsatz dieser Waffen erlangt seine Bedeutung vor allem gegen Gruppenziele auf kurze Distanz, da eine hohe Feuerdichte erreicht wird.

und

Durch den Vorlauf des Verschlusses vor dem Zünden der Patrone wird mehr Masse bewegt, deshalb gerade im Einzelfeuer unpräzise.

Sep 15, 11:29 PM
von Stephan
Keine Kommentare

Bitte recht freundlich

Veränderungen in der familiären Aufstellung haben dazu geführt, dass ich jetzt eine sogenannte DSLR besitze. In dem Zusammenhang schien es mir eine gute Idee, mich bei flickr anzumelden, um mal alle alten und die neuen Bilder extern speichern zu können, sozusagen als Backup meines lokalen Backups – sollte die Bude hier mal abbrennen.

Wer möchte, darf mich gerne als Kontakt hinzufügen, oder sich die derzeit noch überaus bescheiden anmutenden Gehversuche eines ehemaligen Point-and-Shoot-Junkies mit den komplexen Einstellungsmöglichkeiten einer digitalen Spiegelreflexkameras ansehen. Bitte hier entlang.

Aug 5, 12:35 PM
von Stephan
Keine Kommentare

Quickly change bash environment variables using files

Nachdem ich jetzt tagelang versucht habe mich zu erinnern, wie der nette Oracle-Consultant das Wunder bewerkstelligt hat, unzählige Umgebungsvariablen mit einem simplen Befehl zu setzen, bin ich endlich fündig geworden.

Um Oracle-Systeme zu warten, ist es bisweilen notwendig, zum Beispiel die Umgebungsvariable $ORACLE_SID anzupassen. Oder den Pfad. Oder das Prompt (damit man weiß, welche SID man gerade bearbeitet).
Der findige Oracle-Consultant hat mir dazu ein paar Dateien in der Art env.SID hinterlassen. Deren Inhalt ist im wesentlichen unspektakulär:

env.infra (Es handelt sich um Node 2 eines RAC)

PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin
   export PATH
ORACLE_HOME=/opt/oracle/gridinfra
   export ORACLE_HOME
ORACLE_SID=+ASM2
   export ORACLE_SID
PATH=${ORACLE_HOME}/bin:$PATH
   export PATH
PS1="$LOGNAME@`uname -n| cut -f1 -d.`[INFRA]> "
   export PS1

env.MYSID2

PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin
   export PATH
ORACLE_HOME=/ora/product/rdbms11.2
   export ORACLE_HOME
ORACLE_SID=MYSID2
   export ORACLE_SID
PATH=${ORACLE_HOME}/bin:$PATH
   export PATH
PS1="$LOGNAME@`uname -n| cut -f1 -d.`[$ORACLE_SID]> "
   export PS1

Der Trick besteht nun darin, diese Dateien zu sourcen:

$ . env.infra

Dank dieses Blogeintrags werde ich das hoffentlich nie mehr vergessen. Übrigens ist der Titel in englischer Sprache, da ich in Google keine relevanten Treffer finden konnte, weder in deutsch noch in englisch.