Freitag, 18. Mai 2018

Centralised Logging with EFK and hot/warm in Kubernetes

Everybody is talking about centralised logging these days, and most seem to agree that EFK (Elasticsearch, Fluentd, Kibana) is a good combination for accomplishing this. The Kubernetes repo on github contains something to start and play with, but it is far from production-ready:
  1. The Kibana version used there is rather old
  2. Elasticsearch is not production-ready (single node instance, no decoupling of resource-hungry indexing and long-term, read-only storage)
While (1) can be overcome rather easily, (2) poses a bit more of a challenge - how can we create a production-ready Elasticsearch service using Kubernetes? The Elasticsearch folks propose the so-called "hot/warm" architecture for addressing this:
  • "hot" nodes running on fast and expensive hardware (fast CPUs, lots of memory, SSDs) do all the indexing of anything coming in. 
  • All data older than a configurable period of time is moved to so-called "warm" nodes running on potentially slower and less expensive hardware with large disks (usually HDDs). No indexing takes place here, data is kept read-only for queries only.
To my knowledge there is no ready-to-run "hot/warm" Elasticsearch setup for Kubernetes. Hence I had to roll my own. 

A good starting point for this was the more or less ready-to-run setup of Elasticsearch and Kibana by Paulo Pires (without Fluentd, but with a nice-to-have recent version of Kibana). 

Here's what I did to turn this into a centralised logging setup with Fluentd, a "hot/warm" Elasticsearch cluster and a recent version of Kibana.

1. Fluentd setup from the EFK setup "to start and play with" above.

This is straightforward.

2. Elasticsearch and Kibana from the Paulo Pires' repository.

Both namespaces and service names need to fit, otherwise Fluentd will not be able to talk to Elasticsearch. Since I want centralised logging I stick to what I found in the Fluentd setup (namespace kube-system and the term "logging" in the service names). Hence I need to adapt service names and namespaces, so that it works with the Fluentd setup.

I use the yamls from the stateful subdirectory for the Elasticsearch data nodes and set up persistent volumes as needed.

This gave me an up-to-date version of Kibana plus a client/master/data node setup for Elasticsearch - quite good for a start.

3. Tests of this setup, make necessary adaptions until it works.

Let's be realistic, this always takes a while. To keep things simple, I got everything running without "hot/warm" changes before proceeding.

4. ES setup for the "hot/warm" architecture

From the single Elasticsearch data node StatefulSet in the stateful directory, I use a template for creating two separate StatefulSet in the end: one for hot, one for warm

I found that the Elasticsearch image use by Paulo did not support passing of command line args to the elasticsearch command, so I had to extend it and create a PR. The result is, i.e. the minimum version 6.2.3 with which my setup works. Subsequent versions will contain the necessary change, too. 

In a nutshell, this is what I had to change for my StatefulSet template:
  1. Templatize the name:
      name: elasticsearch-logging-data-@ES_NODE_TYPE@
  2. Change the version of the Elasticsearch image to 6.2.3:
          - name: elasticsearch-logging-data
  3. Add the following environment variable to the list of environment variables (ES_EXTRA_ARGS adds command line arguments):
            - name: ES_EXTRA_ARGS
              value: -Enode.attr.box_type=@ES_NODE_TYPE@
  4. Set up node labels for "hot" and "warm", and assign the ES data nodes to the respective node types:
            node/role: elasticsearch-@ES_NODE_TYPE@
  5. Make sure that there is never more than one data pod running on a single host:
              - weight: 100
                    - key: role
                      operator: In
                      - data
  6. You will most likely want to assign different CPU and memory resources to your hot and warm nodes respectively:
                cpu: @ES_CPU_LIMIT@
                memory: @ES_MEM_LIMIT@
                cpu: @ES_CPU_REQUEST@
                memory: @ES_MEM_REQUEST@

It goes without saying that expressions like @...@ are placeholders that need to be expanded and that @ES_NODE_TYPE@ will stand for either "hot" or "warm". In the end, a simple call to sed can be used to generate the two StatefulSet yamls.

5. Configure Fluentd to deliver data to "hot" ES nodes only

This can be accomplished by setting up a so-called "template file" for the Elasticsearch plugin in the Fluentd configuration. For this, the Fluentd configmap yaml file needs to be extended. First, I add the template code (indentation is important, because we're in yaml):

  logstash.json: |-
      "index_patterns": "logstash-*",
         "number_of_shards": 3,
         "number_of_replicas": 2,
         "index.routing.allocation.require.box_type": "hot"

In order to "activate" this, the following two lines are added to the "@id elasticsearch" block above:

      template_name logstash
      template_file /etc/fluent/config.d/logstash.json

Now every log line produced by Fluentd goes to the "hot" ES nodes only.

6. Set up curator job for moving old data to "warm" nodes

I use my own yaml for the CronJob and extend the curator configuration I found in Paulo Pires' repository. Like above, namespaces and service names need to be adapted.

The CronJob:

apiVersion: batch/v1beta1
kind: CronJob
  name: curator
  namespace: kube-system
    app: curator
  schedule: "0 1 * * *"
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 3
  concurrencyPolicy: Forbid
  startingDeadlineSeconds: 120
          - image: bobrik/curator:5.4.0
            name: curator
            args: ["--config", "/etc/config/config.yml", "/etc/config/action_file.yml"]
            - name: config
              mountPath: /etc/config
          - name: config
              name: curator-config
          restartPolicy: OnFailure

In the ConfigMap for curator I replaced the contents of action_file.yaml with what I found in this Graylog blog post:

  action_file.yml: |-
    # Remember, leave a key empty if there is no value.  None will be a string,
    # not a Python "NoneType"
    # Also remember that all examples have 'disable_action' set to True.  If you
    # want to use this action as a template, be sure to set this to False after
    # copying it.
        action: allocation
        description: "Apply shard allocation filtering rules to the specified indices"
          key: box_type
          value: warm
          allocation_type: require
          wait_for_completion: true
          continue_if_exception: false
          disable_action: false
        - filtertype: pattern
          kind: prefix
          value: logstash-
        - filtertype: age
          source: name
          direction: older
          timestring: '%Y.%m.%d'
          unit: days
          unit_count: 3
        action: forcemerge
        description: "Perform a forceMerge on selected indices to 'max_num_segments' per shard"
          max_num_segments: 1
          timeout_override: 21600 
          continue_if_exception: false
          disable_action: false
        - filtertype: pattern
          kind: prefix
          value: logstash-
        - filtertype: age
          source: name
          direction: older
          timestring: '%Y.%m.%d'
          unit: days
          unit_count: 3

Now old data is moved from the hot to the warm nodes automatically after 3 days.

7. Finetuning #1: docker logrotate

Since I am running on bare metal using docker underneath, I need to make sure that the log files in /var/lib/docker/containers/* don't grow indefinitely. The docker daemon can take care of this just fine when you add the following lines to its command line arguments, e.g. by setting the OPTIONS variable in /etc/sysconfig/docker (or wherever else the configuration resides on all the different distros):

OPTIONS="--log-driver json-file --log-opt max-size=100m [...]

8. Finetuning #2: get detection of stack traces to run

The docker logging driver does not know Java (or whatever language) statcktraces. Hence they are split into different lines which is not nice for analysis (e.g. in Kibana) later. 

Fluentd is configured to use the detect_exceptions plugin that is supposed to join stacktrace lines and add "\n" as needed in the JSON entries sent to Elasticsearch in the end. However that plugin currently does not work with what the docker JSON log driver produces, because the latter escapes tabulators as "\u0009" which is not handled by the plugin. I filed an issue on that in which I proposed a change of the regular expression for detecting stack traces.

Because that issue has not been fixed so far, I derived my own Fluentd image from the above one in which I copy over my patched version of exception_detector.rb. Here's what I changed in the plugin (I'm dealing with Java stacktraces only, hence this is not a generic solution, and that's why I did not make this a PR to fix that issue):

--- a/lib/fluent/plugin/exception_detector.rb
+++ b/lib/fluent/plugin/exception_detector.rb
@@ -53,9 +53,9 @@ module Fluent
            /(?:Exception|Error|Throwable|V8 errors stack trace)[:\r\n]/,
-      rule(:java, /^[\t ]+(?:eval )?at /, :java),
-      rule(:java, /^[\t ]*(?:Caused by|Suppressed):/, :java),
-      rule(:java, /^[\t ]*... \d+\ more/, :java)
+      rule(:java, /^(\\u0009|[\t ])+(?:eval )?at /, :java),
+      rule(:java, /^(\\u0009|[\t ])*(?:Caused by|Suppressed):/, :java),
+      rule(:java, /^(\\u0009|[\t ])*... \d+\ more/, :java)

Closing remarks

I hope this posts helps others in setting up their own centralised EFK logging environment in Kubernetes. I understand that people might be interested to look into the the full set of yamls I am using. Unfortunately they contain a lot of stuff that is rather specific for my environment and which I am not allowed to share. Looking back on that work I may say that doing all this on my own was a good invenstment of time making what I learned far more sustainable for me :)

Dienstag, 26. September 2017

JMeter-CSV, logische Transaktionen aus mehreren Requests, die Shell und ich.

( grep -v '^timeStamp' results.csv | awk --field-separator=';' '{ print $6";"$1";"$2";"$3 }' \
| sort | while read a; do OP=`echo "$a" | cut -d ';' -f 4`; TS=`echo "$a" | cut -d ';' -f 2`; \
TM=`echo "$a" | cut -d ';' -f 3`; if [ "$OP" = getConfiguration ]; then echo '`'; echo -n \
"$TS \`expr $TM"; else echo -n " + $TM"; fi; done | grep -v '^`' | tr -d '\n' ; echo '`' ) | \
while read b; do eval "echo $b"; done | sort >transaction-timings.dat

Versuch, das lesbar zu machen...
( grep -v '^timeStamp' results.csv \
    | awk --field-separator=';' '{ print $6";"$1";"$2";"$3 }' \
    | sort \
    | while read a; do \
        OP=`echo "$a" | cut -d ';' -f 4`; \
        TS=`echo "$a" | cut -d ';' -f 2`; \
        TM=`echo "$a" | cut -d ';' -f 3`; \
        if [ "$OP" = getConfiguration ]; then \
            echo '`'; \
            echo -n "$TS \`expr $TM"; \
        else \
            echo -n " + $TM"; \
        fi; \
    done \
        | grep -v '^`' \
        | tr -d '\n'; \
        echo '`' ) \
        | while read b; do \
            eval "echo $b"; \
          done \
              | sort >transaction-timings.dat

Freitag, 3. März 2017

Shell-Funktion des Tages: gitp

Musste gerade sein:
gitp() {
        test -n "$1" || { git; return 1; }
        git p$ARG1 "$@"

Freitag, 17. Februar 2017

Noch etwas Nostalgisches: Intel 5100 "shiloh" WLAN-Karte mit OS/2

Für meine OS/2-Installation hatte ich seinerzeit ein Thinkpad t500 auf ebay erstanden. Die Installation war grundsätzlich problemlos, allerdings gelang es mir zunächst nicht, das gute Stück an den WLAN zu bekommen, weil es keinen "stabilen" Treiber für die verbaute Intel 5100 "shiloh" gibt.
Nachdem ich einen Artikel des Blonde Guy gefunden hatte, der beschrieb, wie man genau dieses Modell doch zum Laufen bringt, also machte ich mich noch einmal an die Arbeit.

Am Ende hat es - zumindest einigermaßen -  funktioniert. Wirklich stabil ist es leider nicht, hin und wieder ist mir das System mit einem TRAP C um die Ohren geflogen. Dank JFS ist das zum Glück heute kein großes Drama mehr (allerdings sollte man nicht die Gefahr einer durch beim Absturz offene INI-Dateien unterschätzen, die einem die WPS komplett unbrauchbar machen kann [1]). Das habe ich nun gemacht:

Die Treiber, die später verwendet werden, sind GenMAC und GenMU. Um sicher zu gehen, habe ich die erst einmal komplett deinstalliert und auch alle Netzwerkkarten außer der Kabel-Verbindung aus der Konfiguration gelösch. Außerdem - wie im o.g. Artikel vorgeschlagen - wird das XWLAN-Applet entfernt.

Dann habe ich das Basispaket für GenMAC heruntergeladen und installiert:

Danach folgt die Installation von GenMU, wobei ich nur für "meine" Karte den Treiber installiert habe:

Außerdem habe ich dhclient per yum installiert und nach dem Reboot im BIOS kontrolliert, dass unter Power der Batteriebetrieb auf Maximum Performance gestellt und Intel SpeedStep aktiviert ist.

Nach Abschalten und wieder Einschalten des Rechners (notwendig!) habe ich dann das XWLAN-Applet neu installiert, indem ich aus dem Installationsverzeichnis instwgt aufgerufen habe. Ich verwende die neueste XWLAN-Version. Nach der Installation habe ich eCenter neu gestartet und das Widget hinzugefügt. Dabei ist wichtig, dass die WLAN-Karte im XWLAN-Applet beim Systemstart immer deaktiviert ist, das stelle ich an dieser Stelle schon einmal ein.
Jetzt muss die Karte in der MPTS-Konfiguration eingetragen werden:

Der Laptop hat zwei Netzadapter, einen mit Kabel und einen ohne. Nachdem ich beiden das TCP/IP-Protokoll hinzugefügt habe, setze ich die Nummer auf "0" für die Kabelverbindung und "1" für die drahtlose, so dass immer zunächst versucht wird, über Kabel eine Verbindung herzustellen.

 Standardmäßig ist die Kabelverbindung auf DHCP vorkonfiguriert. Das führt dazu, dass, wenn beim Booten keine Netzwerkverbindung existiert, der Startvorgang lange blockiert ist, weil er versucht, über DHCP eine Verbindung herzustellen.

Weil ich meine Kabelverbindung immer im selben Netz zu hause verwende, habe ich die nun im TCP/IP-Applet auf "manuell" umgestellt und Adresse, Gateway und DNS-Server fest eingetragen:

Sollte ich mal von woanders eine Draht-Verbindung brauchen, kann ich die notwendigen Einstellungen auch immer noch von der Kommandozeile ohne Neustart vornehmen, die Kommandos sind ganz ähnlich wie unter Unix. 

Nach einem weiteren Neustart kann ich nun meine WLAN-Karte in Betrieb nehmen. Ich stelle dabei zunächst die wpa_supplicant-Konsole auf "sichtbar", so dass ich sehen kann, was passiert. Nachdem ich ein gültiges Profil angelegt habe, (WPA funktioniert bei mir, WPA2 nicht), aktiviere ich nun die Karte im Applet. Wenn es funktioniert hat, höre ich ein "Piep", und ein Dialog öffnet sich, und fragt mich, ob ich die primäre Netzverbindung (die kabelgebundene) deaktivieren möchte, um die drahtlose zu aktivieren. Wenn das passiert, hat es funktioniert, ich klicke auf "Ja" und bin fertig.

Wenn nun auf der Konsole der Versuch, die Verbindung aufzunehmen, in eine Schleife läuft, weiß ich, dass es nicht funktioniert und schalte die Karte über das Applet wieder ab. Das wiederhole ich 2..3 Mal, falls es nicht vorher schon funktioniert hat.

Wenn es dann immer noch nicht funktioniert hat, deaktiviere ich im Applet und schalte danach mit dem Schiebeschalter die WLAN-Karte physikalisch ab. Nach ein paar Sekunden schalte ich sie per Schiebeschalter wieder ein, warte wieder ein paar Sekunden und aktiviere sie wieder übers Applet. Das habe ich bei mir bisher nie mehr als zweimal wiederholen müssen, bis es am Ende geklappt hat.

Einmal ist mir direkt beim Herstellen der Netzwerkverbindung das System mit TRAP C um die Ohren geflogen, einmal im laufenden Betrieb danach. Ob das Ganze am Ende stabil genug ist, wird sich über die Zeit herausstellen.

[1] Erste Hilfe beim Komplettverlust der WPS besteht im Erzeugen einer neuen. Aus dem "Technical Document # - 3071019" von IBM zu diesem Thema, Abschnitt "Method 1--Rebuilding the Desktop":

4. Change to the OS/2 directory; then type the following commands, pressing Enter after each:

5. Type the following and press Enter after each to delete the hidden file, WP?ROOT.?SF:
  ATTRIB -h -s -r \WP?ROOT.?SF

Freitag, 27. Januar 2017

Früher war alles besser: Common Desktop Environment auf Linux

Rechter Monitor mit Panel und einer GTK2-App
Unter Linux bevorzuge ich Leichtes. Umgebungen wie Gnome oder KDE sind mir zu schwergewichtig und auch aus verschiedenen Gründen nicht wirklich sympathisch - die eine zu wenig auf meine Bedürfnisse anpassbar, die andere riecht zu sehr nach Redmond. Folglich bin ich seit vielen Jahren vorwiegend mit WindowMaker unterwegs (das dort verlinkte Theme "NeXT-Retro" ist übrigens immer noch in Benutzung), und in der letzten Zeit habe ich wieder verstärkt Gefallen an Enlightenment gefunden. Beide sind leicht, schnell und vollkommen konfigurierbar.

Eine dritte Option ist in der letzten Zeit aber auch noch dazu gekommen, quasi die Mutter aller Gnome und KDEs: Common Desktop Environment, kurz CDE, dessen Code vor einigen Jahren Open Source wurde und nun hinreichend alltagstauglich unter Linux ist. So kann man den zarten Retro-Charme der 90er Jahre genießen und sich sozusagen auf Augenhöhe mit Windows-Benutzern wähnen :)

Freilich ist für diesen Spaß etwas Handarbeit notwendig. Hier ist, was ich gemacht habe, um mein hier gezeigtes Setup hinzubekommen. Fangen wir an mit Build und Installation:

Rechter Monitor mit ein paar CDE-Apps
  1.  Der CDE-Quellcode muss selber übersetzt werden. Den kann man von der Projektseite bei Sourceforge herunterladen. Bei mir war das Release 2.2.4.
  1. Vor dem Übersetzen empfehle ich allen, die mehr als einen Bildschirm benutzen, noch einen Xinerama-Patch des Fenstermanagers dtwm einzuspielen, damit Fensterpositionierung und Maximieren von Fenstern normal funktioniert. 
  2. Danach funktioniert die Build-Anweisung auf Sourceforge ganz prima. Wer wie ich auf Redhat und 64bit unterwegs ist, sollte zusätzlich noch diesen Wiki-Artikel lesen. 
  3. Bei mir wurden die manpages nicht mit installiert. Das habe ich dann per Hand gemacht: cd cde-<VERSION>/doc/C/; sudo cp -r man/* /usr/dt/man/
  4. Ein bekanntes Problem des Common Desktop Environment auf Linux ist, dass sie manchmal aufgrund von Problemen mit dem rpcbind-Service nicht startet. Bei mir (ein RHEL7-Derivat) hilft es, einmal nach Start des Rechners als root den Dienst per Hand neu zu starten: systemctl restart rpcbind.service - warum das nötig ist, und warum gerade das hilft, ist mir schleierhaft, aber ohne geht es nicht. 

Linker Monitor mit Systray und einer GTK3-App
Das hier sind nun meine Einstellungen und Anpassungen:
  1. Um GTK- und QT-Anwendungen das richtige Aussehen zu geben, benutze ich das GTK3-Theme Solaris Colours, allerdings in einer von mir leicht modifizierten Form, um mit meinem CDE-Farbschema besser zu harmonieren.
  2. Für den System Tray oben links benutze ich stalonetray, und zum Umschalten der Tastaturbelegng xxkb.
  3. Zum Starten der Umgebung benutze ich den gdm und habe dafür eine Datei cde.desktop erzeugt, die in /usr/share/xsessions liegt.
  4. Die verweist wiederum auf ein Startskript, das in /usr/local/bin liegt. 
  5. Den System Tray und xxkb starte ich über ein Skript $HOME/bin/, das ich über $HOME/.dt/sessions/sessionetc aufrufe. Es ist etwas hakelig, dafür zu sorgen, dass das oben links in der richtigen Anordnung erscheinen zu lassen, daher enthält das Skript ein paar Kniffe. 
  6. In der Konfiguration des Fenstermanagers, .dt/dtwmrc, kann man einiges an Tastaturabkürzungen einstellen, wovon ich ausgiebig Gebrauch gemacht habe. Interessanterweise muss man, um das Fenstermenü (Alt-Space) zu konfigurieren, eine entsprechende X-Ressource in $HOME/.Xdefaults setzen, das ist schon etwas merkwürdig, funktioniert aber. 
  7. Ich wollte auf Ctrl-Esc eine Art Fensterliste haben. Mit Bordmitteln ging das nicht, ich habe aber ein nettes Programm gefunden, das ich auf diese Kombination gelegt habe: find_window.
  8. Die Icons, die man im Panel sieht, sind letztlich CDE-"Apps", die man sich im CDE-Appmanager zusammenbasteln muss. Blöderweise braucht man Icons im .bm Format in verschiedenen Größen. Ich habe dazu ein paar wenige Sachen im Netz gefunden und den Rest selber gebastelt.
  9. Die ganzen oben genannten Konfigurationsdateien für xxkb, dtwm, die Icons sowie die Desktop-Datei und Hilfsskripte gibt es hier in einem tar-Archiv zum Herunterladen.
  10. Der Rest ist die übliche Spielerei mit den mitgelieferten Tools. Ärgerlich ist, dass man Änderungen am Farbschema erst nach Logout und wieder Login zu sehen bekommt. Zum Glück geht das auf moderner Hardware ziemlich schnell.
Fazit: CDE hat etwas. Ich mag dieses etwas altmodische Design. Da ich ohnehin meist auf der Kommandozeile oder mit Tastatur-Abkürzungen untewegs bin, funktioniert das auch leidlich gut. Es gibt einiges, was man nicht einstellen kann, z.B. Verschieben von Fenstern auf andere Desktops per Tastaturabkürzung, horizontal und vertikal maximieren etc., und der Fenster-Fokus beim Wechseln zwischen den Desktops ist eher so naja, aber dafür hat man so ziemlich alles von Stirnrunzeln bis Bewunderung bei den Kollegen sicher, die einem über die Schulter schauen :)

Sonntag, 10. April 2016

Und abermals und erneut: DHL lässt uns zum Postamt rennen

Wieder einmal mussten wir einen Beschwerdebrief an DHL schreiben. Vielleicht wird uns eine arme Sau anrufen und sich entschuldigen, ändern wird aber so ein bemitleidenswerter Callcenter-Mitarbeiter nichts an dem, was die dort offenbar nicht in den Griff kriegen.

Dieses Mal ging es um Handzettel für unsere Veranstaltung nächste Woche. Die Vorlagen wurden nicht rechtzeitig fertig, und die Druckerei (empfehlenswert: WirMachenDruck) nannte uns einen Termin, der noch rechtzeitig war, aber eben auch nur knapp.

Ich war diese Woche auf Geschäftsreise, also ging die Sendung an N., die ohnehin auf der Türklingel vor mir genannt ist :)

Als ich gestern wieder hier war, war die Ware immer noch nicht eingetroffen. Wir bekamen dann mit der Post die Karte, aus der hervor ging, dass der Bote drei Tage vorher um die Mittagszeit einen Zustellversuch gemacht haben soll. Wie der ausgesehen hat, kann ich mir schwer vorstellen, da aufgrund der Wichtigkeit der Sendung N. den ganzen Tag zu hause wartete, dass der Bote klingelte. Aber er klingelte nicht.

Wir habe zwei Dinge getan: Die Druckerei wurde von uns informiert, dass es erneut Probleme mit DHL gab und dass wir in Zukunft auf keinen Fall wieder Ware durch DHL geliefert bekommen wollen. DHL hat nun - auch wenn ich mir wenig Illusionen dazu mache, welche Wirkung so ein Schreiben hat, einen weiteren Beschwerdebrief erhalten:
Mein Paket wurde nicht ins Haus zugestellt, obwohl ich zu dem auf der Benachrichtigungskarte genannten Zeitpunkt (wie auch überhaupt den ganzen Tag über) zu hause war, um auf diese für uns wichtige Sendung zu warten. Stattdessen hatte ich 3 (!) Tage später die Benachrichtigungskarte im Briefkasten und musste die Sendung von der Postfiliale abholen.

Dies ist nicht das erste Mal. Mein Mann und ich haben uns schon mehrere Male hierüber beschwert. Es hat sich nicht gebessert, wie man nun wieder einmal sieht.

Wir empfinden dieses Verhalten als eine Unverschämtheit und vollkommen unakzeptabel. Wir bezahlen für den Transport der Ware ins Haus, nicht ins Postamt (welches weit entfernt ist). Wenn Sie diese Dienstleistung, die wir in Anspruch nehmen, nicht leisten können, dann sind Sie im falschen Geschäft.

Sie haben ein Qualitätsproblem. Tun Sie etwas dagegen. Die Anzahl der Beschwerden über die Praxis, Ware einfach nicht abzuliefern und stattdessen zum Postamt zurückzunehmen, steigt, man kann das im Netz überall finden.

Auch die großen Versender erhalten diese Art von Rückmeldung. Es ist nur eine Frage der Zeit, dass sie sich einen anderen Paketdienst suchen.

Ich finde überhaupt keine Worte dafür, wie sauer ich bin. Durch diesen Quatsch haben wir Handzettel für eine Veranstaltung, die nächste Woche stattfindet, 3 (!!!) Tage zu spät erhalten. Ihre Schlampigkeit ist eine Zumutung.
Harren wir der Dinge. Leider arbeiten einige große Versender, wie z.B. Amazon (noch!) exklusiv mit DHL. Ich werde in Zukunft diversifizieren und nach Versendern suchen, die eine Sendung über einen anderen Paketdienst anbieten. 

Dienstag, 24. November 2015

My best shell script bug so far :)

Consider this Bourne shell script code:
if "$NEW_STATE" = "false"; then
    echo "Current failed."
What's wrong with it?

I had this in a script and spent quite some time figuring out what was wrong as it kept writing "Current failed." though indeed nothing had failed. Having stared on it for several minutes, that piece of code seemed perfectly fine.

Again after some time and several trace and debug statements later I knew that the "$NEW_STATE" variable's value was indeed "true". So what was wrong?

Well, I had meant to write this:
if [ "$NEW_STATE" = "false" ]; then
    echo "Current failed."
The shell does not evaluate expressions itself. It just calls commands, such like "test" (for which "[" is simply a copy, symlink or alias), but also "grep", "ls", "cp", whatever  you like. "true" is whatever returns 0.

Having forgotten the "[" I produced code that ran perfectly well - while just doing the opposite of what I had intended. Why did I not even get a syntax error, as the shell itself cannot handle string comparison itself?

The answer is simple: both "true" and "false" are commands themselves. Both take no arguments but don't complain either if any are given - arguments are just being ignored. My "$NEW_STATE" variable had a value of "true" because everything was fine. So my broken comparison expanded to this here:
if "true" = "false"; then
    echo "Current failed."
The shell happily executes "true" which yields 0 (which is true for the shell) and does not bother to look at its arguments "= "false"". Good fun.

Mittwoch, 19. August 2015

DHL strikes again...

Wenn man denkt, es geht kaum noch schlimmer, wird man dann oft doch eines Besseren belehrt. Aus "Postamt" wurde "Empfänger unbekannt". Nachdem ich heute Morgen mit dem Versender telefoniert habe und der mir versicherte, die Adresse auf den Paket sei identisch mit der in der Auftragsbestätigung (und die ist korrekt), ging ein weiteres Schreiben an DHL heraus. Es spricht für sich:
Es ist erneut eine Sendung an mich nicht abgeliefert worden. Dieses Mal ist sie sogar an den Versender zurückgesandt worden. Meine Anschrift ist auf der Auftragsbestätigung korrekt, außerdem hat die Firma uns in der Vergangenheit schon einmal erfolgreich ein Paket zugesandt.

Ich war schon vorher äußerst unzufrieden, da wiederholt DHL-Boten, obwohl die ganze Zeit über jemand zu hause war, nicht klingelten und Sendungen in der Postfiliale zum Abholen ablieferten, was ich absolut unakzeptabel finde.

Nun bin ich stinksauer. Ich brauche die o.g. Sendung dringend bis zum Wochenende. Ich habe Ende vorletzter Woche bestellt, um ganz sicher zu gehen, dass ich sie rechtzeitig erhalte.

Ganz besonders, weil es nicht das erste Mal ist, dass Probleme bei der Zustellung auftreten und ich mich bereits mehr als deutlich beschwert habe, bin ich absolut erschüttert, dass es nicht nur wieder passiert, sondern auch mit viel gravierenderen Auswirkungen.

Sie werden für eine Dienstleistung bezahlt, also sorgen Sie dafür, dass die Leistung erbracht wird. Sie haben ein erhebliches Qualitätsproblem. Andere Anbieter, die ehemals einen schlechteren Ruf hatten, haben ihre Hausaufgaben gemacht, z.B. habe ich derartige Probleme wie mit Ihnen mit Hermes nie gehabt.

Ich kann zum aktuellen Zeitpunkt nur allen meinem Bekannten davon abraten, DHL zu verwenden, und ich werde in Zukunft darauf achten, dass, wenn ich online bestelle o.ä., ein anderer Versanddienstleister als DHL eingesetzt wird.

Wie schon letztes Mal geschrieben: Lieber zahle ich für den Versand ein wenig mehr, kann mich dann aber darauf verlassen, dass ich eine Sendung schnell und auch wirklich ins Haus erhalte, als am Ende meine Zeit zu verlieren, um Sendungen hinterher zu laufen bzw. zu telefonieren.

Bringen Sie Ihr Qualitätsproblem in Ordnung. DHL hat sich in den letzten Jahren einen zweifelhaften Ruf "erarbeitet", man braucht nur einmal google bemühen und findet oben gelistet reichlich Treffer, die genau die Probleme beschreiben, um die es hier geht. Peinlich ist dann, wenn, obwohl das bekannt ist, sich genau diese Dinge dann wieder bewahrheiten.

So sieht es aus. DHL ist bei mir nun wieder auf der schwarzen Liste - nicht grundsätzlich, aber so lange, bis sie mich überzeugt haben, dass sie ihr Qualitätsproblem gelöst haben. 

Ich frage mich dennoch, wie es dazu kommen kann. Bezahlen die ihre Boten so schlecht, dass es denen egal ist, oder setzen sie sie unter einen solchen Zeitdruck, dass sie nicht einmal auf unübersichtlichen (und das ist die elektronische Klingeltafel an unserer Haustür) Klingeltafeln ruhig die Namen abklappern, bis sie den jeweiligen Empfänger gefunden haben?

Wenn das bei einem Boten passiert, dann liegt es vermutlich am Boten. Wenn es beim selben Dienstleister immer wieder vorkommt, dann scheint mir das Problem woanders zu liegen.

Sei's drum. Wenn es hierzu neues gibt, werde ich das hier veröffentlichen.

Dienstag, 23. Dezember 2014

OS/2 lebt, aber es riecht manchmal schon nicht mehr so richtig gut

Alle Jahre wieder, in der Vorweihnachtszeit, wird mein OS/2-Laptop herausgeholt und uralte Software gepflegt. Leider gibt es auch ein Jahr nach der letzten Runde immer noch keinen funktionierenden Treiber für meinen Intel 5100 AGN (Shiloh) WLAN-Chip, aber es liegt ja auch schon seit einem Jahr ein LAN-Kabel bereit.

Nachdem in den letzten Monaten einiges an Patches in mein Elvis-Repository auf github eingeflossen ist und der letzte von Steve Kirkendall eingestellte Code-Stand almost-2.2_1.tar.gz dadurch einiges an Reife gewonnen hat, gibt es nun also - tada! - einen neuen Elvis-Release für OS/2:
Jedes Jahr ist wieder spannend, was denn nun dieses Mal nicht funktioniert. Ich hatte in der Zwischenzeit eine neuere gcc-Version (die von Innotek) installiert. Leider funktioniert der elvis-Build nur mit einem echten emx-Build-System, das will erst einmal herausgefunden sein. Der ipfc von IBM knallt beim Übersetzen der aus dem HTML generierten Dokumentation, zum Glück gibt es den wipfc von Watcom-C.

Elvis mit X11-Oberfläche unter OS/2

Es ist leider nicht mehr zu übersehen, dass OS/2 langsam verhungert. Eine lobenswerte Initiative ist Arca Noae, aber ich bin doch skeptisch, ob sie das, was sie aktuell versprechen, wirklich werden halten können. Firefox-Builds für OS/2 gibt es nur noch von dritten, nachdem im Februar dieses Jahres der OS/2-Code aufgrund des Mangels an Pflege aus den offiziellen Repos geworfen wurde. Aktuell gibt es eine stabile Version 10.0.7 und eine Beta 24.8.1 von bitwise, erschienen im September dieses Jahres, die leider nicht alltagstauglich ist.

Aber ich mag ja die klassischen Desktops, und so erfreue ich mich für ein paar Tage an meinem OS/2 und schwelge in Erinnerungen, bevor mich nächstes Jahr wieder die (nicht wirklich so) graue Realität des Broterwerbs einholt :)

Antwort von DHL

Nun gab es endlich eine Antwort von DHL - eine freundliche Email, in der  die Mitarbeiterin ihr Bedauern über die Unannehmlicheiten und die verspätete Antwort zum Ausdruck bringt. Die Verantwortlichen des Zustellbereiches (offenbar des meinen) seien unter einer ganannten Vorgangsnummer informiert worden, um sicherzustellen, dass bei mir künftig wieder korrekt zugestellt werde. Leider wurde nicht darauf eingegangen, dass ich längst nicht der einzige bin, der von dieser Art Probleme bereichtet hat, aber das wäre vermutlich auch zu viel erwartet gewesen.

Nun ist es an der Zeit, sie an ihren Taten zu messen, man wird sehen :)

Montag, 22. Dezember 2014

Ein Relikt aus alter Zeit...

Urlaub. Zeit, alte Schätze auszugraben und sich an ihnen zu erfreuen. 

Das ist mein altes Standard-Brett, die Basis eine Aria Pro Strat mit durchgehendem Hals, Baujahr irgendwann frühe 80er, von mir in einem Anfall von Übermut irgendwann Mitte der 80er umgebaut: Form umgefräst (mir gefielen damals diese deutschen Bassgitarren), statt Lack Öl und Wachs Marke Rockinger, Steg Single Coil durch aktiven Humbucker von Magnetics ersetzt, Pickup-Umschalter und Ausgangsbuchse verlegt, statt Plastik Kupfer-Beschläge. Das Ding tut's immer noch, 1a-Seitenlage, nur kann ich hier leider nicht mehr so einen Lärm machen, meinen Fender-Röhrenamp hatte ich vor 12 Jahren in Geldnot verkaufen müssen. 

Jaja, die guten alten Zeiten...

Samstag, 6. Dezember 2014

DHL, das zweite Kapitel

Ich hatte mir den Vorgang, von dem ich in HL - der Tag, an dem ich deutlich werden musste berichtete, auf Termin gelegt, da ich die Befürchtung hatte, dass DHL sich zu dem Thema nicht mit mir in Kontakt setzen würde. Die Befürchtung war leider berechtigt. Also verwendete ich heute die Feedback-Funktion auf deren Homepage und schrieb das folgende:
Guten Morgen, 
 vor zwei Wochen sollte mir die o.g. Sendung zugestellt werden.
Leider war es - wie leider nicht zum ersten Mal - der Fall, dass, obwohl meine Frau den ganzen Tag über zu hause war, nicht bei uns geklingelt wurde, sondern wir stattdessn eine Benachrichtigungskarte im Briefkasten vorfanden. Auf ihr stand, dass ein Paket für "Frau ..." beim Postamt abzuholen sei.  
Wir waren schon reichlich ärgerlich, dass offenbar kein Versuch unternommen worden war, die Sendung abzugeben, insbesondere, da sich das Postamt für uns nicht gerade um die Ecke befindet. Meine Frau machte sich auf den Weg und kam mit leeren Händen zurück, da sich herausgestellt hatte, dass der Bote sich offenbar vertan hatte und das Paket nicht für meine Frau, sondern für mich war. Also musste ich mich auch noch einmal auf den Weg machen, um es dann endlich abzuholen. 
Für mich ist dieser Vorgang aus mehreren Gründen Anlass, mich bei Ihnen zu melden.
  1. Die Dienstleistung, für die ich bezahle, wenn ich mir Waren bestelle und nach hause liefern lasse, ist, dass ich die Ware schnell und frei Haus geliefert bekomme. Ich arbeite die ganze Woche über und habe Arbeitszeiten, die üblicherweise eine Obermenge der Öffnungszeiten des Postamts darstellen. Wenn also ein Paket nicht ins Haus geliefert werden kann (bei mir selber oder bei den Nachbarn), bedeutet das zweierlei: Ich bekomme die Ware u.U. erheblich später, da ich frühestens am Samstag dazu komme, sie vom Postamt abzuholen, außerdem muss ich mir einen Teil meines Samstags, an dem ich vielleicht doch ganz andere Dinge vorhabe, als 20 Minuten zum Postamt zu gehen, dort in der Schlange zu stehen und dann 20 Minuten zurückzugehen, "stehlen" lassen. Wenn der Bote meine Türklingel nicht findet (das ist leider bei dem Haus, in dem ich wohne, nicht so einfach), oder wenn er einfach in Eile ist, bedeutet das Schreiben eines Kärtchens für ihn 5 Minuten, die mir über eine Stunde meines Samstags nehmen. Ich finde das total unakzeptabel. Ich habe eine Dienstleistung bezahlt und bekomme sie auf eine Weise, durch die sie für mich nicht nur wertlos wird, sondern auch noch meine Zeit kostet. Wenn ich die Zeit, die ich durch derartige Dinge verliere, nach meinem Stundensatz abrechne, den ich bei meiner Arbeit meinen Kunden berechne, dann sind wir schnell bei Größenordnungen im dreistelligen Bereich. Ich bin bereit, für diese Dienstleistung auch einen höheren Preis zu bezahlen, aber ich bestehe darauf, dass sie so ausgeführt wird, dass ich die Ware schnell und ins Haus bekomme. Alles andere kann nur eine Konsequenz bedeuten: Finger weg von DHL (und jedem anderen Paketdienst, der sich ähnlich verhält).
  2. Dass dem Boten nun auch noch ein Missgeschick mit dem Namen passiert ist, wäre unter normalen Umständen entschuldbar (denn so etwas kann jedem mal passieren), nur haben wir dadurch nicht nur eine, sondern sogar zwei Stunden unserer Freizeit verloren. Das macht die Sache noch erheblich ärgerlicher. 
  3. Das Problem, dass offenbar mitunter nicht ernsthaft versucht wird, ein Paket zuzustellen, habe ich in der Vergangenheit mehrfach gehabt, und ich bin offenbar nicht der einzige. Wenn man nur einmal google bemüht, findet man auf Anhieb eine größere Anzahl Menschen, die genau das gleiche über DHL berichten. Meine persönlcihe Theorie dazu ist, dass die Zusteller anderer Paketdienste, die nicht die Ausweichmöglichkeit eines Postamtes haben, offenbar unter mehr Druck stehen, die Pakete wirklich loszuwerden. Wie auch immer es sei, es spricht vieles dafür, dass Sie hier ein Qualitätsproblem haben. 
  4. Ich habe vor zwei Wochen, als das passierte, bei Ihnen im Kundenservice angerufen und geschildert, was passiert ist. Ich habe dabei sehr deutlich gemacht, dass ich von Ihnen eine Reaktion erwarte, weil ich wirklich ärgerlich war (und immer noch bin). Ich habe auch gesagt, dass ich mir den Vorgang für zwei Wochen auf Termin lege und ihn keineswegs vergessen werde. Ich habe nach zwei Wochen von Ihnen keine Reaktion erhalten. Ich empfinde das angesichts der von mir geschilderten Umstände als respektlos und unprofessionell. 
Als Fazit kann ich nur sagen, dass ich zunehmend enttäuscht und ärgerlich bin. Bei manchen Online-Angeboten habe ich ja durchaus die Wahl, welchen Paketdienst ich für die Lieferung bevorzuge. Ich habe begonnen, sehr darauf zu achten, welche sich wirklich bemühen, mir die Ware wirklich zuzustellen. Online-Angebote, wo der Lieferservice fest gesetzt DHL ist, werde ich vorerst meiden.  
Ich erwarte immer noch eine Reaktion von Ihnen. 
Mal sehen, ob sie sich nun melden werde. Ich lege das Thema wieder für 2 Wochen auf Termin, dann gibt es ein Einschreiben :)

Ich halte Euch auf dem Laufenden!

Samstag, 22. November 2014

DHL - der Tag, an dem ich deutlich werden musste

Wir alle kennen das - wir haben etwas bestellt beim Online-Händler unseres Vertrauens, und er versendet die Waren über den Paketdienst seines Vertrauens. Worauf basiert dieses Vertrauen? Nun, vermutlich wird auch der Preis dabei eine Rolle spielen, aber wollen wir lieber nicht in Spekulationen abgleiten! Fakt ist, dass der zum Post-Konzern gehörende Paket-Dienst DHL offenbar das Vertrauen vieler Händler besitzt.

Auf der Empfängerseite dürften die Präferenzen mittlerweile leicht anders liegen. Dem Endkunden ist es üblicherweise ja herzlich egal, durch wen er sein Paket bekommt - wichtig ist nur, dass er es bekommt und zwar nach hause. Dafür zahlt er ja auch die Versandkosten, die ihm der Händler in Rechnung stellt.

Was ist nun, wenn der Paketdienst klingelt, aber der Empfänger nicht zu hause ist? In einer Stadtwohnung wie der, wo ich selber wohne, leben ja noch Nachbarn, und auch wenn es manchmal etwas nervt, nimmt man doch letztlich doch gern die Pakete für andere an, weil jene eben auch das selbe für einen tun. So erspart man sich unnötige Verzögerungen und Rennerei.

Dieses "Verfahren" funktioniert leidlich gut - die Boten von UPS oder Hermes (um dem Ehre zukommen zu lassen, wem auch Ehre gebührt) tun nach meiner Erfahrung ihr Bestes, die Pakete wirklich an den Mann und die Frau zu bringen. Leider habe ich mit DHL eher schlechte Erfahrungen gemacht, und eine google-Suche nach "dhl ärger" fördert gleich zuoberst mein Problem an den Tag: man ist den ganzen Tag zuhause, niemand klingelt, am nächsten Morgen findet man ein Kärtchen im Briefkasten, das einem sagt, dass man sich auf den Weg zur Post machen muss, um sein Paket abzuholen.

Das ist in vielerlei Beziehung ärgerlich. Man erhält seine Sendung, auf die man möglicherweise dringend wartet, einen Tag später (denn am selben Tag ist das Paket bei der Post noch nicht abholbereit). Man muss sich auf den Weg zu Post machen, die u.U. nicht gerade um die Ecke liegt (bei mir: 25 Minuten Fußweg). Die Öffnungszeiten der Post sind für viele von uns derart, dass man eigentlich nur am Samstag dort hin gehen kann, d.h., man erhält die Sendung u.U. noch später und verliert einen Teil seines Samstags, den man vielleicht ganz anders hätte verbringen wollen.

Meine Theorie ist die folgende: da für die Boten von Hermes und co. kein Postamt existiert, wo sie den Kram ggf. einfach abladen können, haben sie einen höheren "Schmerzdruck", die Pakete auch wirklich loszuwerden. Möglicherweise ist es für die DHL-Mitarbeiter mitunter ein Weg des geringeren Widerstandes, sich nicht unnötig lange mit dem Suchen von Namen in unübersichtlichen Klingelknopf-Listen o.ä. zu beschäftigen, und so spart man dann 5 Minuten sicher auch nicht gerade großzügig bezahlter Arbeitszeit. Nur: im Gegenzug verliert jemand anders - wie z.B. ich - 45 Minuten seiner wertvollen Freizeit!

Vorgestern kam es dann bei uns zu einem unrühmlichen Höhepunkt. Wir fanden wieder einmal so ein Kärtchen von DHL vor. Auf dem Kärtchen stand, das Paket sei für "Frau <Nachname>". Entsprechend machte sich meine Frau - einen Tag später natürlich - brav auf den Weg, sie hatte ohnehin in der Gegend zu tun. Im Postamt erfuhr sie nun, dass das Paket gar nicht für sie, sondern für mich sei, da hatte der Bote "Frau" und "Herr" verwechselt! Da sie natürlich keine Vollmacht von mir dabei hatte (wozu auch, das Paket war ja offenbar für sie!), erhielt sie das Paket nicht und wurde mit leeren Händen nach hause geschickt. Also durfte nun ich mich heute auch noch einmal auf den selben Weg machen, mich dort in die Schlange stellen und das gute Stück nun in Empfang nehmen.

Zu hause griff ich nun zum Telefonhörer und rief den Kundendienst von DHL an. Dort wurde es deutlich: die von mir bezahlte Dienstleistung ist nicht, ein Paket zum Postamt, sondern direkt hier ins Haus zu liefern. Dass der Bote nicht klingelt und lieber ein Kärtchen hinterlässt, ist mir bisher eigentlich nur mit DHL vorgekommen und das schon mehrere Male. Wenn so achtlos mit meiner Zeit umgegangen wird, kann ich nur bei jedem Onlinekauf und eben auch hier öffentlich sagen: ich akzeptiere jeden Paketdienst außer DHL - zumindest bis zu dem Zeitpunkt, wo sie dieses offensichtliche Qualitätsproblem adressiert und gelöst haben. Falls ein besserer Service zu den aktuellen Preisen nicht geleistet werden kann, bin ich ggf. bereit, einen leicht höheren Preis zu akzeptieren, aber was ich auf keinen Fall länger akzeptiere, sind Gänge zum Postamt am Samstag. Ich will die Ware hier ins Haus geliefert haben, seht zu, dass Ihr das %&$§ hinbekommt!

Nun warte ich auf die Reaktion von DHL. Ich habe mir die Sache auf Termin gelegt. Wenn ich nicht innerhalb von 14 Tagen von denen höre, geht die nächste Beschwerde schriftlich als Einschreiben heraus. Ich werde darüber berichten.

Donnerstag, 20. November 2014

Behoben in 34.0b10: Privatsphären Bug in Firefox auf OSX Yosemite

Der von mir hingewiesene Bug, der bei Benutzung von Firefox auf OSX 10.10 ("yosemite") zu einer Logdatei von Maus- und Tastatur-Eingaben in /tmp führt, ist, wie die Firefox-Entwickler sagen, ein Bug in MacOS, für den aber jetzt ein Workaround entwickelt wurde.

Es wird empfohlen, auf die aktuelle Betaversion (Stand heute Morgen: 34.0b10) zu wechseln, um auch die Sicherheits-Bugfixes der letzten Iterationen zur Verfügung zu haben. Download hier: (für Deutsch: "german" in das Suchfeld eingeben und "search" klicken).

Sonntag, 16. November 2014

Privatsphären Bug in Firefox auf OSX Yosemite

Firefox-Versionen ab Version 32.0 erzeugen auf MacOS 10.10 ("yosemite") eine Datei /tmp/CGLog_Firefox_<pid>, die ein Protokoll von Maus- und Tastatur-Ereignissen enthält. Es handelt sich dabei um einen mittlerweile bestätigten Bug. Es gibt dazu auch eine Diskussion im Firefox-Supportforum, zu der ich einige Kommentare beigetragen habe.

Diese Datei richtet keinen Schaden an, solange sie nicht in die falschen Hände gerät. Problematisch wird es, wenn - z.B. durch Schadsoftware - Unbefugte Zugriff auf das lokale Dateisystem erhalten, da man aus den protokollierten Daten u.U. sensible Information extrahieren kann.

Nach aktuellem Stand ist der Bug bestätigt, aber noch nicht behoben. Ich bin daher auf Version 31.0 ESR herunter gegangen und werde diese ältere Version benutzen, bis der Bug in einer zukünftigen Produktivversion behoben ist. Ich empfehle anderen, das selbe zu tun.

Ergänzung: Der Diskussion im Bugzilla zufolge handelt es sich nicht um einen Bug in Firefox, sondern in OSX 10.10, für den man aber bereits an einem Workaround arbeitet.

Samstag, 15. November 2014

Ein Jahr mit dem Telephon des Feindes - Bestandsaufnahme

Bild: Wikipedia
Letztes Jahr im September hatte ich mir ein neues Mobiltelefon der Marke Blackberry zugelegt. Das war etwas, was ich nur ein Jahr vorher quasi für alle Zeiten kategorisch ausgeschlossen hätte. Meine initialen Eindrücke hatte ich in einem früheren Blogpost dokumentiert: Blackberry ist (beinahe) für Nerds! Wie ist es mir nun gegangen - ein Jahr mit einem (wieder einmal) Nischenprodukt?

Die Antwort fällt erstaunlich eindeutig aus! Alle Punkte, die ich initial positiv bewertet hatte, haben sich quasi bestätigt:

  • Das von WebOS inspirierte, sehr auf Wischgesten aufbauende Bedienkonzept hat sich in der Praxis mehr als bewährt. Das einzige, was ich wirklich von meinem Pre3 vermisse, ist das Beenden von Anwendung durch nach oben heraus wischen, aber das ist eher zu vernachlässigen :)
  • Die Tastatur ist großartig! Die Spracherkennung funktioniert hervorragend, dieses Ding ist eine echte Schreib-Maschine! Da ich mein Telephon primär zum telephonieren und für Kommunikation über soziale Medien verwende, ist die Tastatur quasi der kritische Bestandteil so eines Geräts. 
  • Der Browser ist so ziemlich das beste, was ich auf Mobiltelefonen bisher gesehen habe. Seine große Stärke ist es, Desktop-Webseiten auf eine Art darzustellen, dass man sie auch auf dem kleinen Bildschirm gut lesen kann.
  • Das BBOS-10 Betriebssystem ist gut durchdacht. Der Hub ist als Kommunikationszentrale längst nicht mehr wegzudenken, die Abkürzungen zu den Einstellungen, die man oft braucht (z.B. Flugzeugmodus, Einstellung des Benachrichtigungsprofils) sind leicht zu erreichen. Man kann dieses Gerät mit einer Hand und nur manchmal Hingucken (ich verrate nicht, wo man so etwas tut!) problemlos bedienen. Auch das ist für mich ein Muss, denn ich will keinen kleinen Laptop, sondern einen einfach und unkompliziert zu bedienenden Gebrauchsgegenstand in meiner Hosentasche!
  • Der Empfang ist selbst in schwachen Netzen (ich bin Kunde eines Providers mit eher schwacher Netzabdeckung) erheblich besser als mit anderen Geräten, die ich gehabt habe. 
  • Die Hardware macht Spaß. Das Telephon ist schnell, und die Batterie hält mindestens zwei Tage bei normaler Benutzung.
Wo Licht ist, ist auch Schatten - folgendes stört:
  • Die Batterie ist nicht fest verbaut und (man kann also auch Ersatzbatterien mitnehmen, was ja an sich gut ist, aber:) sitzt recht lose im Gehäuse. Wenn man das Gerät aus geringer Höhe fallen lässt, führt das zu einen Neustart des Geräts, was aufgrund der großzügigen Musikbibliothek durch Einlesen und Indizieren eine ganze Weile dauert.
  • Die Systemsoftware "Blackberry Link" für Windows und Mac ist ein schlechter Witz. Ständig bricht die Übertragung beim Synchronisieren über USB ab. Nachdem mich das Ding viele Stunden und Nerven gekostet habe, synchronisiere ich mittlerweile per Hand über die "Gerät als USB-Stick" Funktion.
  • Es gibt immer noch keine Latein-nach-Kyrillisch-Transliterationseingabe, das heißt, ich kann mit Bordmitteln nur nach Umschalten auf Russisch und dann mit Auswendigwissen der russischen Belegung schreiben - aber leider ist Russisch nicht Ukrainisch! Diese Funktion gibt es auf dem alten BBOS und wird von ihren Nutzern sehr geschätzt - es ist eigentlich ein Witz, dass sie im neuen Betriebssystem selbst für Version 10.3 noch nicht umgesetzt ist!
  • Die Auswahl an Apps ist überschaubar, und die Qualität der Apps selber oft auch. Ein schlimmes Beispiel ist die Kicker-App, die in einem Farbschema daher kommt, dass die Schrift auf meinem Telefon unlesbar ist. Wie so etwas auch nur irgendeine Qualitätskontrolle überstanden hat, ist mir schleierhaft. 
  • Manche Apps beeinträchtigen das System. Ich hatte einige Zeit lang einen Zustand, in dem meine an sich gute Batterie immer nach knapp einen Tag leer war, weil Hintergrundprozesse das System permanent beschäftigten. Mein Verdacht fällt hier auf die Skype-App, die ich seither nicht mehr benutze. Ich konnte den Zustand damals nur durch Zurücksetzen auf Fabrikeinstellungen und manuelles neu-Einrichten von Konfiguration, Daten und Apps beheben.
In meinem Bericht vor einem Jahr hatte ich moniert, dass einige für mich wesentliche Apps fehlten. Auch habe ich in der Zwischenzeit Apps kennengelernt, die mir lieb und teuer geworden sind. Hier ist ein kurzer Überblick dazu:
  • Android-Apps lassen sich mit Hilfe der Chrome-Erweiterung BB10 Playbook App-Manager leicht installieren. Das war am Anfang etwas nervig einzurichten, läuft seither aber tadellos, und ich habe bisher noch keine Android-App nicht auf Anhieb zum Laufen gebracht (nun gut, mein Nutzungsverhalten entspricht vielleicht nicht ganz dem Durchschnitt).
  • Unverzichtbar war und ist für mich Tapatalk. Was soll ich sagen: die App läuft und läuft und läuft :)
  • Anstatt Instapaper, das mein Gerät leider nicht direkt unterstützt verwende ich den Play ePub Reader, mit dem ich Bücher lesen und nebenher auch gleich auf meine Instapaper-Bibliothek zugreifen kann. Eine kleine und lohnende Investition, und der Support ist erstklassig.
  • Für das Fehlen einer direkten Unterstützung von Texteingabe in ukrainisch habe ich mir eine weitere App gekauft: KeyboMagic, ein kleines Fenster, in dem ich in der Sprache meiner Wahl den Text eingeben kann, dann auf "Kopieren" drücken und einfügen, wo ich will. Besser wäre natürlich direkte Unterstützung im Betriebssystem, aber dieses kleine Helferlein tut seinen Job außerordentlich gut.
  • Was wäre ein Nerd ohne eine (Unix-) Shell? Nun, hier haben wir zwar QNX, aber über kleine Unterschiede wollen wir mal hinweg sehen. Eine Shell gibt es (inklusive ssh und Freunde) durch BG SSH-SCP-SFTP free, was will man mehr!
  • Ich hatte im Vorweg viel Kritik an der Map-Applikation von Blackberry gehört. Ja, sie mag beim Durchstöbern von Karten nicht ganz so leistungsfähig wie die von google sein, aber ich habe eigentlich keinen Grund zur Kritik. Vor allem aber muss ich sagen, dass ich mit der integrierte Navi-Anwendung sehr zufrieden bin. Ich habe mir mittlerweile eine Halterung für die Windschutzscheibe gekauft und und benutze das Telefon nun regelmäßig als Navi. Es arbeitet präzis, die (britisch-englische) Ansagen sind gut verständlich und angenehm zu hören, und die Bildschirmanzeige auf dem kleinen Bildschirm und aus Entfernung immer noch hervorragend zu erkennen. Daumen hoch!
Auch hier soll nun ein Fazit nicht fehlen. Ich weiß nicht, ob Blackberry wirklich für Nerds ist. Ich weiß ja nicht mal, ob ich selber einer bin! Aber nachdem ich einige Zeit lang selber mit App-Entwicklung für andere Plattformen beschäftigt war und somit auch einiges an Erfahrung mit den üblichen Verdächtigen habe sammeln können, kann ich sagen, dass dies seit meinem ersten iPhone 3 das erste Gerät ist, dem ich das Attribut "praxistauglich" und "simpel genug für eine faule Sau wie mich" verleihen kann, das - obwohl simpel - leistungsfähig ist und für meine individuelle Art der täglichen Benutzung alles bietet, was ich als notwendig empfinde. Wenn die Firma, die bisher die Telephone für den Feind baute, dem aktuellen Kurs treu bleibt und weiter so großartige Schreib-Maschinen produziert, dann spricht vieles dafür, dass meinem Q10 irgendwann ein neueres Gerät aus dem selben Hause nachfolgen wird.

Mittwoch, 15. Oktober 2014

CMA Arat, Autokauf auf nett

Dieses Jahr war es soweit, dass mein betagter Fiat Stilo mich verlassen sollte. Etwas aus dem Hause VW hatte ich als Nachfolger auserkoren, das gute Stück musste nur noch gefunden werden. Nach etwas Sucherei hatte ich ein interessantes Angebot hier in Hamburg gefunden, ein eher kleiner Händler - CMA - Car Management Arat. Die hatten auf ihrer Seite bei eine Kopie eines Artikels in der Auto-BILD "Der ehrliche Arat", den ich mit etwas Mühe entziffern konnte. Das fand ich alles irgendwie sympathisch und machte mich auf den Weg, und wir kamen letztlich ins Geschäft - sehr sympathische Leute, guter Service, Preis war auch OK. Nein, ich bekomme kein Geld für Werbung, aber wenn ich mit etwas zufrieden bin, kann ich das ja auch gern mal erwähnen :)

Mittwoch, 18. September 2013

Spot the SPAM

Click to enlarge 

Ein Blick auf die SPAM-Inbox meines Yahoo-Postfachs.

Hmm, die oberste Mail kann ich irgendwie nicht anklicken... [Daumennagel, draufklicken zum Vergrößern]

Blackberry ist (beinahe) für Nerds!

Wer erinnert sich nicht an jene Zeiten: Mittagspause mit Kollegen im Restaurant um die Ecke, am Nebentisch setzt sich eine Gruppe Nicht-Ingenieure, die Sorte, die man nicht mag, weil sie besser gekleidet und bezahlt sind als man selbst. Kaum dass sie sich gesetzt haben, folgt der unvermeidliche Griff in die Sakko-Tasche, und schon schmücken den Tisch neben Tellern, Messern, Gabeln und Servietten diese etwas breit geratenen Mobiltelefone mit den vielen Tasten. Eines war allen klar: Es gibt nichts uncooleres als Blackberrys! Was also hat mich bewogen, einen kühnen Selbstversuch mit eben jenem Kultgegenstand des Feindes zu machen - und auch noch Gefallen daran zu finden?

Bild: Kärlis Dambräns,
Creative Commons BY 2.0
Die Zeiten haben sich geändert. Push-Email ist nicht mehr länger ein Privileg weniger Hersteller, kryptographische Sicherheit bei der Email-Übertragung (offenbar) nicht mehr ein Muss, und Firmen-IT-Abteilungen beginnen, sich dem Zeitgeist zu beugen und ihre leitenden Angestellten mit marktüblichen Smartphones auszustatten. Ergo trägt Manager, der etwas auf sich hält, heutzutage meist ein Telefon mit Apfel auf der Rückseite. Vorbei sind die Zeiten des Quasi-Monopols für die Telefon-Schmiede aus Kanada, und spät begann man einzusehen, dass die Produkte aus eigenem Haus längst nicht mehr smart genug waren, um Gelfrisurenträger-Herzen höher schlagen zu lassen. 

Es sieht nicht wirklich gut aus für den Hersteller der möglicherweise besten Schreibmaschinen-Telefone der Welt. Spät, vielleicht zu spät begann man, ein neues Betriebssystem (Blackberry 10 OS) zu entwickeln und eine neue Generation von Telefonen damit ausszustatten. Das Z10 ist ein typisches Smartphone, ohne Tastatur und mit großem Bildschirm. Später kam das Q10 hinzu, das in der Tradition klassischer Blackberry-Telefone mit einer QUERTY-Tastatur ausgestattet ist. Das neue Betriebssystem ist stark inspiriert von WebOS, mit dem zunächst Palm, dann, nach der Übernahme, HP trotz guter Kritiken und einer eingeschworenen Fan-Gemeinde darin gescheitert war, noch in den Smartphone-Markt als dritte Macht neben iOS und Android einzudringen. Vieles spricht dafür, dass dies alles zu spät kam. Stand heute steht das Unternehmen zum Verkauf, und die neuen Geräte verkaufen sich offenbar nicht in den erhofften Stückzahlen. Kein Wunder, dass ein Blackberry-Telefon nun für jemanden wie mich plötzlich zu einer ernsthafte Option wird!

Mein Selbstversuch mit begann mit dem Abgrasen des Amazon Marketplace sowie eBay, um nicht den vollen Preis für ein Neugerät zahlen zu müssen. Ich entschied mich für ein Q10, weil ich als alter Fan des Palm Pre gern wieder ein Gerät mit echter Tastatur haben wollte und auch, weil es über gewisse innere Werte verfügte, die mir wichtig erschienen (sehr ausdauernde Batterie, sehr guter Empfang). Anfang letzter Woche hielt ich das gute Stück nun in den Händen - etwas breiter als handelsübliche Smartphones, aber gut in der Hand liegend, sehr schöne Tastatur, weich, aber mit klarem Druckpunkt, sehr guter Bildschirm. Aber heutzutage kauft man ja nicht nur Hardware - auch bei Telefonen hängt mindestens genau so viel von der Software ab. Wie ist nun meine Erfahrung nach etwas mehr als einer Woche Selbstversuch?

Das Telefon fühlt sich schnell an - viel schneller als je ein WebOS, nicht langsamer als die aktuellen Oberklassen-Modelle der Konkurrenz. Der Empfang ist tatsächlich hervorragend, und die Batterie hält deutlich länger, als ich das bisher bei anderen Smartphones erlebt habe.

An die Software habe ich mich sehr schnell gewöhnt. Die Gesten unterscheiden sich von WebOS, aber letztlich ist die Philosophie eine sehr ähnliche und gefällt mir viel besser als die Icon-Sucherei und Knopfdrückerei bei Android. Die Kommunikations-Schaltzentrale - der Blackberry Hub ist von überall mit einer einfachen Geste zu erreichen und enthält nicht nur Emails, sondern auch Benachrichtigungen aus sozialen Netzen (z.B. Facebook), instant messaging (Google Talk) etc. - das ist sehr bequem und durchdacht. Apps startet man über Icons, durch die seitenweise geblättert werden kann, so wie das bei Smartphones üblich ist, allerdings habe ich es als Besitzer eines Telefons mit Hardware-Tastatur noch etwas leichter: ich tippe einfach los, und das Telefon startet automatisch eine Suche nach Apps und Dokumenten - sehr praktisch. Die Auswahl an Apps ist - wie nicht anders zu erwarten war - überschaubar. Immerhin hat der Hersteller selber Hand angelegt und "das Wichtigste" selber beigelegt - ein (ausgezeichneter) Browser, Facebook und Twitter sind dabei, eine Karten-Applikation und diverser Kleinkram, für den ich mich nicht weiter interessiert.

Ich bin kein Fan von "Apperitis", für mich ist wichtig, ganz bestimmte Apps zu haben, die ich dann intensiv nutze. Das trifft sich gut, denn - wie nicht anders zu erwarten war - das Angebot an Apps für diese Plattform ist im Vergleich zu iOS und Android ziemlich überschaubar. Neben den oben genannten Apps aus dem Standard-Lieferumfang sind für mich noch Dinge wie Instapaper, Lesesoftware für Ebooks und ein Tapatalk-Client unverzichtbar. Hier habe ich leider (bisher) nur eine Teilabdeckung meines "Grundbedarfs" erreichen können: es gibt eine sehr schöne Ebook-App PlayEpub für unter einem Euro, die für nicht-DRM-geschützte EPUBs sehr gut funktioniert und darüberhinaus sogar Instapaper kann. Das lässt mich einerseits verschmerzen, dass es keine "echte" Instapaper-App für Blackberry 10 OS gibt, andererseits funktioniert die Instapaper-Anbindung in PlayEpub derzeit nicht - aufgrund von Störungen oder möglicherweise auch Protokolländerungen von Seiten Instapapers, wie der freundliche Entwickler des Programms mir mitteilte, der mir aber auch versprach, sich um die Sache zu kümmern. Eine Kindle-App gibt es für Blackberry 10 OS - nur nicht für mich! Offenbar ist die App nicht für den deutschen Markt freigegeben. So richtig durchschaut das derzeit keiner, ich warte noch.

Am schwersten allerdings wiegt für mich das Fehlen einer Tapatalk-App. Als Foren-Junkie ist für mich der Zugriff auf Foren über eine brauchbare Mobil-App ein absolutes Muss. Auf WebOS gibt es Forums, das aber einige unangenehme Einschränkungen mitbringt und leider schon länger nicht mehr weiterentwickelt wurde - dies war auch einer der Gründe, dass mein Pre3 jetzt in der Schublade liegt. Vor dem Kauf meines Q10 tätigte ich eine schnelle Internet-Suche, ob es denn Tapatalk dafür gäbe. Tatsächlich wurde ich fündig - und bestellte. Nun musste ich leider feststellen, dass Tapatalk die App vor einigen Wochen vom Markt genommen hatte, nach eigenen Aussagen, weil es Anforderungen von der Android Runtime in der Blackberry App World gebe, die sie so aktuell nicht erfüllen könnten (es handelt sich um eine Android-Portierung), man arbeite daran, habe aber aktuell nicht genug Ressourcen. Das ist mehr als ärgerlich, vor allem für Nutzer, die die App zuvor gekauft hatten und sie nun - z.B. nach Systemupdates oder Neuaufsetzen eines Gerätes - nicht mehr herunterladen können. Hier heißt es immer noch "warten".

Ich muss häfig SMS und Emails in verschiedenen Sprachen schreiben - deutsch, englisch und ukrainisch. Ein Telefon mit Hardware-Tastatur steht da vor besonderen Herausforderungen, gerade wenn eine andere Schrift (kyrillisch) betroffen ist. Mein Telefon ist ein Import aus dem Vereinigten Königreich, es hat also keine mit Umlauten beschrifteten Tasten. Das stört in der Praxis überhaupt nicht, weil das Telefon die meisten Wörter beim Tippen erkennt und entsprechende Ersetzungen anbietet. In der Praxis funktioniert das erstaunlich gut. Ungelöst ist hingegen das Verfassen ukrainischer Nachrichten; zum Einen wird die Sprache überhaupt nicht unterstützt (es gibt Russisch, aber diesen Dialekt beherrsche ich nicht aktiv), zum Anderen fehlt selbst für Russisch eine Möglichkeit zur Transliterations-Eingabe. Besitzer alter Blackberry-Modelle (uncool!) haben mir berichtet, dass so etwas früher immer unterstützt wurde, und in Foren kann man lesen, dass es wohl in der aktuellen Betriebssystemsversion noch nicht fertig sei. Auch hier ist offenbar Warten angesagt. Ich hoffe doch, dass, wenn es dann kommt, auch die ukrainische Sprache unterstützt wird!

Nun wird es Zeit für ein Fazit. Nach einer Woche Selbstversuch freue ich mich über Hardware, die mir sehr gut gefällt, ein sehr attraktives Betriebssystem, das intuitiv und elegant daher kommt und nicht zuletzt das gewisse Etwas und den Hauch der Individualität - Blackberry ist cool (habe ich je etwas anderes behauptet?).

Leider ist das nicht alles. Ich weiß, was ich von meinem Telefon erwarte, und mein Q10 liefert einen Teil davon mit Bravour, aber ein anderer Teil fehlt, und das tut weh. Die Situation kann sich diesbezüglich durchaus in näherer Zukunft zum Guten wenden: wenn Instapaper wieder in PlayEpub funktioniert, wenn Tapatalk endlich die Ressourcen gefunden hat, seine Android-portierte App für Blackberry 10 OS fertigzustellen und wenn Blackberry selber die oben genannten Lücken in der Texteingabe stopft. Dass dies geschehen wird, ist freilich nicht garantiert, und natürlich sind meine Anforderungen ziemlich individuell - andere Zeitgenossen dürften hier ganz andere haben.

Aktuell bin ich begeistert von dem Gerät und (noch) voller Hoffnung, dass meine persönliche Liste der Anforderungen bald ganz erfüllt sein wird. Ich wünsche dem Unternehmen, dass es diese schwierige Zeit übersteht und der Plattform die Pflege zukommen lassen kann, die es benötigt, um sich den Platz am Markt zu sichern, den sie verdient.