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…

Ruby on Rails naming collisions

Feb 27, 2010

Well, this post merely serves as a note to myself:

Do not create an instance variable named @template in an ActionController or bad things will happen, such as this not very self-explanatory error:

NoMethodError (undefined method `view_paths' for #<EmailTemplate:0x7f751953fad0>): /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' /var/lib/gems/1.8/gems/ruby-debug-ide-0.4.5/lib/ruby-debug.rb:101:in `debug_load' /var/lib/gems/1.8/gems/ruby-debug-ide-0.4.5/lib/ruby-debug.rb:101:in `debug_program' /var/lib/gems/1.8/gems/ruby-debug-ide-0.4.5/bin/rdebug-ide:82 /var/lib/gems/1.8/bin/rdebug-ide:19:in `load' /var/lib/gems/1.8/bin/rdebug-ide:19 -e:2:in `load' -e:2

Schweizer Prepaid-SIM mit Datentarif

Feb 27, 2010

Nachdem ich aktuell ja gerade für sechs Monate die westliche der beiden Alpenrepubliken unsicher mache und selbst ein wenig gebraucht habe, einen Mobilfunk-Prepaid-Tarif ausfindig zu machen, zu dem man ein bezahlbares Datenpaket dazubuchen kann, möchte ich hier das Ergebnis meiner Recherchen dokumentieren:

Und zwar bietet Sunrise zum Prepaid-Tarif Sunrise go dayflat/classic ein Datenpaket über 250 MB für 7,50 CHF im Monat an. Das sollte für durchschnittliche Nutzung mit dem Smartphone mehr als ausreichen.

Zum Vergleich: Bei Swisscom kostet diese Datenmenge im Monat bis zu 150 CHF (1 CHF / MB mit Deckelung bei 5 MB am Tag).

Über die Nebenwirkungen starrer Prozesse

Feb 27, 2010

Prozessstandardisierung ist in aller Munde. Es gibt Unternehmen, die verdienen eine Stange Geld damit, Software zu verkaufen, deren einziger Daseinszweck es ist, Geschäftsprozesse zu standardisieren und zu optimieren. Und dann gibt es natürlich noch eine Menge anderer Unternehmen, die den Anwendern dieser Software dann erklären, wie sie diese denn nun tatsächlich zu ihrem Vorteil nutzen.

Aber was ist eigentlich “Prozessstandardisierung”?

Prozesse definieren Abläufe, klären Zuständigkeiten, so dass für vergleichbare Vorgänge nicht immer wieder das Rad neu erfunden werden muss. In gewissem Umfang ist das sicher hilfreich und ab einer gewissen Unternehmensgröße auch nötig. Aber leider verleiten, nein, erziehen diese Prozesse gar dazu, die grauen Zellen im Idle-Betrieb laufen zu lassen. Dann ist aus einem nützlichen Prozess ein starrer Prozess geworden, der jegliche Flexibilität im Keim erstickt, so dass es dann zum Problem wird, ein Paket mit einem nicht dem Prozess entsprechenden Paketdienstleister zu verschicken oder Open-Source-Software zur Produktivitätssteigerung einzusetzen (ein erlesener Teil meiner Leserschaft mag diese letzte Anspielung verstehen). Spätestens dann ist ein Prozess dysfunktional geworden und erfüllt seinen Zweck nicht mehr.

Die Lösung? Weniger Prozesse, mehr Eigenverantwortung. Menschen sind doch keine dressierten Affen (mein Dank für diesen Ausdruck geht an Wir sind Helden - ich hätte es nicht besser auf den Punkt bringen können), sondern eigenständig denkfähige (aber leider nicht immer denkende) Geschöpfe.

Amazon-Reparaturabwicklung - Ein Drama in drei Teilen

Feb 27, 2010

Ein kurzes Update zum Amazon-/Motorola-Milestone-Desaster:

Nach meinem Blog-Posting von gestern und einer E-Mail an Amazon kontaktierte mich eine Amazon-Mitarbeiterin: Leider könne man an der aktuellen Situation nichts ändern. Sie bat aber um Verständnis, avisierte eine Gutschrift über 10 EUR und teilte mir mit, “den Sachverhalt und [die] Blog-Einträge an die entsprechende Abteilung als Feedback weitergeleitet [zu haben], damit überprüft werden kann, in wie weit der Prozess in einem solchen Fall verbessert werden kann/muss.”

Im Status-Tracking von w-support.com war inzwischen ein neuer Versandvorgang dokumentiert worden, auch ein Link zur Sendungsverfolgung war aktiv, den ich nach Eingabe der Empfänger-PLZ hoffnungsvoll anklickte.

Doch die Vorfreude war schnell verflogen, denn bereits als sich die Website der Sendungsverfolgung öffnete stellte sich postwendend (pun intended) die Ernüchterung ein: Es öffnete sich nicht etwa die DHL-Sendungsverfolgung, sondern die Sendungsverfolgung von GLS, einem weiteren Logistikdienstleister, der - wie einem bereits der gesunde Menschenverstand verrät - keine Packstationen der Konkurrenz anfährt. w-support.com hatte also trotz meines ausdrücklichen Hinweises auf die Zustellung des Pakets an eine Packstation via DHL einfach mal einen anderen Anbieter ausgewählt.

Und so tritt mein Telefon nun wieder eine Reise quer durch Deutschland an - ohne Aussicht, sein Ziel zu erreichen.

Ich werde weiter berichten, denn dass eine Trilogie nicht zwingend nach drei Teilen zu Ende sein muss, wissen wir ja spätestens seit Star Wars.

Update: Was bisher geschah: Teil 1, Teil 2

Der Tragödie zweiter Teil - oder: Einmal mit Profis arbeiten

Feb 25, 2010

Dass mein Motorola Milestone sich momentan zwecks Wiederherstellung der strukturellen Integrität (vulgo: Reparatur) auf Reisen befindet, dürfte dem aufmerksamen Leser meines Blogs nicht entgangen sein. Wie weit es dabei allerdings tatsächlich herumkommen würde, hätte ich mir nie träumen lassen.

"Dieser Zug hat momentan eine Verspätung von drei Minuten...

Feb 22, 2010

…Grund: Verspätete Ankunft des Zuges aus Deutschland.”

So tönt es kurz nach Abfahrt meines ICE aus Basel SBB Richtung Zürich HB aus dem Lautsprecher. Offenbar schien man großen Wert darauf zu legen, dass die Verspätung, die im Zuständigkeitsbereich der Deutschen Bahn AG eher “Gangungenauigkeit der Borduhr” laufen würde, nicht im Verschulden der SBB liegt. ;-) Dabei hatte der Zug Basel SBB mit knapp +10 erreicht, und in Süddeutschland dadurch auch schon den einen oder anderen Anschluss verpasst. Alleine durch optimierte Abfertigung hatte man diese in Basel SBB knapp unter die deutsche Wahrnehmungsschwelle reduzieren können. In Folge kam der Zug auch eher zu früh als zu spät in Zürich HB an. So macht Bahnfahren Spaß.

Und die Moral von der Geschicht: Züge in der Schweiz sind per Definition unpünktlich nicht. ;-)

Das funktioniert doch alles nur zufällig...

Feb 16, 2010

…ist einer der Gedanken, die einem bei einem Blick hinter die Kulissen so mancher Software in den Sinn kommen, wenn verschiedene Komponenten scheinbar mit heißer Nadel miteinander verbunden wurden und sich Bugs gegenseitig ausnivellieren.

Während diese Feststellung bei den meisten Softwarepaketen eher zu einer Fluchtreaktion des Betrachters führt, ist es umso erstaunlicher, dass es klugen Köpfen gelungen ist, das leichtfüßige Nebeneinander verschiedener Komponenten ohne strenge Bindung zum Paradigma zu erheben und darauf eine agile Softwareentwicklungsplattform aufzubauen. Das war die Geburtsstunde von Ruby on Rails.

Hiermit ist es möglich, umfangreiche Applikationen ohne das sonst häufig übliche Abhängigkeitswirrwarr zwischen den verschiedenen Komponenten zu bauen, das die Wartung ebendieser Applikationen sonst häufig zur Geduldsprobe werden lässt. Vielmehr verbinden sich Komponenten über Konventionen - ohne dass in den meisten Fällen eine direkte Abhängigkeit definiert werden muss.

Das ist dann in etwa so, als würde man einen Sack voller Lego-Steine ausschütten und wie durch Magie entsteht daraus ohne weiteres Zutun der Todesstern. ;-)

Mir gefällt’s jedenfalls…