Archive for March 2010

PHP Unicode support - or the lack thereof

Mar 30, 2010

Well, I just had the pleasure to fix special character (umlaut) handling in a legacy PHP application. To put it short: It has been a while since I saw so many i18n issues as I figured out in PHP (version 5) during the last hour:

  • PHP strings are just plain byte arrays. Their content is non-portable as it is dependent on the current default encoding.

  • The same applies to the representation built by serialize. It contains a length-prefixed byte representation of the string without actually storing any encoding information.

  • Most PHP (string) functions have no clue about Unicode. For a detailed list including each function’s risk level, refer to: http://www.phpwact.org/php/i18n/utf-8

Note to self: Never ever use PHP for a new project.

Impedanzwandlung

Mar 30, 2010

Ein paar Gedanken, die mir gerade durch den Kopf gehen: Wie erklärt man erklärt man einem Blinden, wie es ist zu sehen? Einem Tauben, wie es ist zu hören? Einem abgestumpften Menschen, wie es ist zu fühlen?

Duplicity - Backup to the Cloud

Mar 7, 2010

Due to current events I started to think about options for a backup solution that would be able to cope with a complete disastrous loss of hardware. So, off-site storage was warranted.

What I came up with is a backup solution based on Duplicity and Amazon S3.

Storing personal data in the cloud may ring one or another alarm, but with Duplicity the data is safe from prying eyes as all backed up data is sent through GnuPG using public-key encryption before being transferred to Amazon’s data center. You should, however, make sure that one of the private keys used for encrypting the backup is locked away in a safe place, so you have it handy when it is time to perform a restore.

As far as storage costs are concerned, storing 50 GB of data in the AWS S3 cloud for a month costs around 6 EUR, which I personally consider quite competitive for redundant off-site data storage.

Naturally, one drawback remains: Bandwidth usage. It takes a while to load the first full backup into the cloud as the upstream of most DSL lines is rather limited. After that initial load has completed, however, Duplicity is capable of appending incremental backup sets to the existing backup data, so the incremental backups complete much faster.

P.S.: It may sound a little weird that I chose Amazon Web Services as a storage provider after my recent trouble with Amazon.de, but after some thorough market analysis AWS remained as the only feasible option.

Amazon.de - oder: Rewriting History

Mar 6, 2010

Dem ein oder anderen Leser meines Blogs dürfte die Leidensgeschichte (Teil 1, Teil 2, Teil 3) meines Motorola Milestones ein Begriff sein. Mit Einsendung des defekten Geräts hatte ich Amazon eine Frist zur Mängelbeseitigung im Rahmen der Gewährleistung von zwei Wochen gesetzt. Diese ist am vergangenen Montag verstrichen ohne dass mich das vorgeblich reparierte (dazu weiter unten mehr) Telefon erreicht hätte. Ich habe daraufhin meinen Rücktritt vom Vertrag erklärt.

Was nun folgt, schlägt dem Fass den Boden aus: Man beruft sich bei Amazon nun auf einen Passus auf deren Support-Seite, der eine Rücksendung an Packstationen ausschließt und den man mit an Sicherheit grenzender Wahrscheinlichkeit nach meiner ersten Beschwerde dort eingefügt hat. Bei w-support.com findet man nämlich dieselbe Checkliste noch ohne Packstation-Hinweis.

Meinen Rücktritt könne man daher leider nicht akzeptieren, die Zustellungsprobleme lägen nicht im Verantwortungsbereich von Amazon.

Inzwischen hat es das Milestone übrigens doch bis zu meiner Packstation geschafft. Leider wurde es offensichtlich nicht repariert (der Wackelkontakt am Kopfhöreranschluss ist noch immer vorhanden), sondern sogar während der vorgeblichen Reparatur beschädigt (der Slider wackelt und klappert nun bei jeder Bedienung des Touch-Screens).

Fortsetzung folgt…