Erst Sauerland, dann Wulff

Es ist noch nicht so lange her, da verweigerte der Bundespräsident Christian Wulff dem Duisburger Oberbürgermeister Adolf Sauerland anläßlich einer Konzertveranstaltung im Duisburger Landschaftspark das gemeinsame Gruppenfoto und ließ den OB sprichwörtlich im Regen stehen. Mehr noch, Wulff forderte Sauerland zwar indirekt aber öffentlich zum Rücktritt auf indem er von der Verpflichtung zur Übernahme der politischen Verantwortung sprach. Dies alles geschah vor dem Hintergrund der schrecklichen Ereignisse der Love Parade Katastrophe im Juli 2010. Sauerland ließ sich davon scheinbar nicht wirklich beeindrucken. Er klebte an seinem Sessel, wie Wulff etwas später auch.

In Duisburg ist seitdem nicht nichts passiert. Im Gegenteil, die Bevölkerung Duisburgs war sogar sehr aktiv. Sie nutzte sehr intelligent und mit unglaublicher Beharrlichkeit alle demokratischen Mittel aus, die schließlich zur Abwahl ihres OBs Sauerland führten. Der Stachel, den die Duisburger offensichtlich verspürt haben, muß sehr tief gesessen und geschmerzt haben. Sonst wäre die Freisetzung demokratischer Energie in dieser Form wohl nicht zu erklären. Sie haben damit Großes erreicht und es muß eine unermeßliche Genugtuung sein sowohl für die Duisburger aber vor allem auch für die überlebenden Opfer und die Angehörigen aller Verstorbenen. Sollte es eine Auszeichnung für vorbildliches Demokratieverhalten geben, so wäre die Duisburger Bevölkerung der erste Kandidat hierfür.

Bei dem Bundespräsidenten Wulff waren es die Medien, die ihn fast zeitgleich zum Duisburger OB zu Fall brachten. Medien, die ihre Rolle in einer funktionierenden Demokratie ebenfalls vorbildlich wahrgenommen haben. Einige sprechen von einer Medienhetze. Tatsächlich haben sie nur die Vorlagen genutzt, die ihnen geliefert wurden. Und der Bundespräsident Wulff hat fast ausschließlich nur Steilvorlagen geliefert. Ihnen, den Medien, gebührt also neben den Duisburgern ebenso eine Auszeichnung für vorbildliche und erfolgreiche Demokratiearbeit.

Menschen wie Sauerland und Wulff, die wichtige Ämter bekleiden, aber dann sowohl sachlich als auch persönlich so versagen, bis sie nur noch Abscheu auslösen, wird es immer geben. Eine funktionierende Demokratie kann solche Funktionsträger jedoch erfolgreich in ihre Schranken verweisen. Zwei eindrucksvolle Beweise konnten binnen Wochenfrist hierfür geliefert werden. Ob die handelnden Politiker auf allen Ebenen daraus lernen werden? Wahrscheinlich nicht, denn Geschichte wiederholt sich. Der Duisburger OB soll für seine Stadt jedenfalls einige wirtschaftlich erfolgreiche Projekte angestoßen haben. Aber was hinterläßt der nun zurückgetretene Bundespräsident außer der Karikatur eines raffgierigen Vorteilnehmers? Den Satz, der Islam gehöre zu Deutschland, hat er nie mit Inhalt füllen können und so landet er wie so vieles auf dem großen Haufen leerer Worthülsen.
rh2012-02-001

Powersellers Dream

Auf dem Grundstück des Autohauses einer asiatischen Importmarke entsteht gerade ein großer und gläserner Verkaufsraum. Die gröbsten Arbeiten scheinen abgeschlossen zu sein, denn die Pflasterer sorgen bereits dafür, daß Kunden und Interessenten demnächst ihre Fahrzeuge direkt vor dem neuen Ausstellungskomplex parken können. Das ganze strahlt Prosperität und Zuversicht aus. Die Volumenmodelle des Importeurs stehen, wahlweise in Silber oder Schwarz, wenige in Weiß, auf dem gesamten Areal verteilt. Obwohl die beiden Verkäufer ihren Geschäften vorübergehend in Bürocontainern nachgehen müssen, schmälert dies nicht das Gefühl des Vertrauens, das unseren Interessenten, nennen wir ihn Jürgen, überkommt. Von einem der beiden Verkäufer wird Jürgen vor den Containern entdeckt und mit der freien Hand gestikulierend, derweil die andere gerade telefoniert, aufgefordert sein Büro über die etwas versteckte seitliche Eingangstür zu betreten. Wie sich herausstellt ist er der Verkaufsleiter von beiden und soll im folgenden Marc genannt werden.

Marc trägt ein Crew-Blouson der Automarke und ist damit als Member des Autohauses sofort erkennbar. Während sich Jürgen und Marc noch ungefähr drei Schritte entfernt gegenüberstehen, versucht Marc das Ende des Kundengesprächs mit übertriebenen, flehenden Blicken zur Decke des Bürocontainers und ventilierenden Bewegungen der linken Hand zu beschleunigen. Der Kunde am anderen Ende der Leitung ist Marc offensichtlich lästig und bei Jürgen kommen erste Zweifel auf. Vielleicht ist er doch im Pausenraum der Mechaniker gelandet. Nachdem Marc das Gespräch beendet hat und beide an Marcs Schreibtisch Platz genommen haben, beugt sich Marc vor und fragt nach Jürgens Interesse. An dieser Stelle macht Jürgen einen entscheidenden Fehler, den er noch genau acht Tage lang bereuen wird. Er interessiere sich für einen Van, also einen Familienbus aus dem Premiumsegment der Angebotspalette ließ er Marc wissen.

Wie von einem Reflex gesteuert schlägt Marc mit der flachen Hand auf den Monitor vor sich. »So ein Ding«, teilt er seinem verdutztem Gegenüber mit und meint damit offensichtlich einen Computer oder Laptop, »hat heute doch jeder zu Hause stehen«. Durch den Stoß hat Marc den Monitor in heftige Schwingungen versetzt. Er läßt sich in seinen Bürostuhl zurückfallen und nimmt dabei für einen kleinen Moment völlig synchron die Nickbewegungen des Bildschirms auf, einer eigenwilligen Choreographie folgend. Nachdem Marc in seinem Stuhl ausgependelt und sich wieder ein kleines Stück nach vorne gebeugt hat, folgt sein unaufhaltsamer Vortrag. Seine vollständige Gleichung lautet: Monitor ist gleich Computer ist gleich Internet ist gleich schlechte Preise.

Powerseller
Powerseller
Der Vortrag besteht aus zwei Teilen. Teil 1 beschäftigt sich mit den Besonderheiten des Marktes im Automobilhandel. Da geht es um Automodelle, die für den deutschen Markt bestimmt sind und sogenannte EU-Fahrzeuge aus dem Internet. Letztere seien preislich zwar deutlich attraktiver, seien aber über den normalen Markenhandel nicht beziehbar. Außerdem verursachen diese Fahrzeuge immer wieder Probleme bei der Garantieabwicklung. Selbstverständlich könne auch er solche EU-Fahrzeuge besorgen, würde dies aber nur sehr ungern tun. Die Beschaffung des von Jürgen gewünschten deutschen Modells sei überaus schwierig, aber er würde schon von irgendwoher ein passendes Fahrzeug für ihn organisieren können. So, als suche er nach einer seltenen Schraube in seiner Werkzeugkiste. Im zweiten Teil seines Vortrags spielt Marc sich selbst. Er sorge dafür, daß sich der Fahrzeugbestand auf dem Hof möglichst schnell drehe. Selbst wenn der deutsche Importeur ihm wöchentlich acht Fahrzeuge auf das Grundstück kippte, würde das für ihn kein echtes Problem darstellen. Sogar Verkäuferkollegen anderer Autohäuser kämen zu ihm um sich bei ihm Rat zu holen. Genau wie er wollen auch sie erfolgreich Autos verkaufen. Marc wähnt sich als echter Powerseller und lehnt sich, mit sich und der Welt zufrieden, erneut in seinen Bürostuhl zurück.

Während Marc sich für den Macher hält ist Jürgen von sich selbst eher enttäuscht. Es wäre ihm nicht in den Sinn gekommen einen fremden Menschen, noch zudem auf fremdem Terrain, in seinem Redefluß zu unterbrechen. Dennoch blieb genug Zeit um seine drei oder vier Sachfragen abklären zu können. Dann fuhr er, ohne Prospekte oder eine erste Preisansage und mit dem Gefühl nicht systemkompatibel zu sein, wieder nach Hause. In den nächsten Tagen informierte sich Jürgen im Internet weiter über sein Wunschfahrzeug und stellte im Gegenzug sein eigenes Fahrzeug zum Verkauf dort ein. Er studierte dort die Preise und fand einen Verkaufspreis von 32 Talern im ersten Schritt als angemessen und durchaus wettbewerbsfähig.

Marc, der Powerseller, hatte auch Gelegenheit gehabt sich von dem hochwertigen Zustand des Autos zu überzeugen und versprach, sich ebenfalls nach Käufern umzusehen. Bereits nach zwei Tagen erhielt Jürgen aufgrund seines Inserats im Internet ein schriftliches Angebot über 28 Taler und nochmals zwei Tage später wurde das Fahrzeug zu einem Preis von 29 Talern und fünf Groschen verkauft. Marc hatte ebenfalls einen Käufer gefunden, der das Auto für 22 Taler kaufen wollte. Er war sehr stolz auf sich.

Marc ist der traurige Held dieser Geschichte. Verschiedene Eigenschaften und Qualifikationen fehlen ihm. Er verfügt über keinerlei Menschenkenntnis und es fehlt ihm das Handwerkszeug eines guten Verkäufers. Zudem schätzt er den Fahrzeugmarkt außerhalb seines Bürocontainers völlig falsch ein und geht dadurch mit dem Vermögen seiner Kunden sorglos um. In diesem Fall hätte er das Auto seines Kunden ca. 30 Prozent unter dem Marktwert vermittelt. Marc ist kein Verkäufer, er ist ein Verteiler. Marc verteilt die Volumenmodelle seines deutschen Importeurs an seine Systemkunden. Systemkunden wiederum sind die, die in sein Geschäft kommen, auf ein Fahrzeug zeigen und »den da« sagen. Der Systemkunde wird dann zur Kasse gebeten und Marc fährt schon mal den Wagen vor. Diesen Ablauf beherrscht Marc sehr souverain.

Natürlich hat Jürgen sein Wunschfahrzeug bei einem anderen Händler der Marke bestellt. Die Abwicklung lief halb im Internet halb per Telefon. Er hätte ungefähr 2 Taler und 5 Groschen mit einem EU-Neufahrzeug sparen können, aber er akzeptiert, daß die Autohändler eine kostenintensive Vertriebsstruktur unterhalten und leistungsfähige Berater und Verkäufer bezahlen müssen. Gute und motivierte Service- und Verkaufskräfte machen dem Kunden auch mehr Spaß. Marc tut das nicht.
rh2012-01-001

WordPress: Kommentare öffnen

Über den Beitrag WordPress Kommentare sperren wurde dargestellt, wie mittels eines einfachen Windows-Skripts die Kommentarfunktion veröffentlichter Posts deaktiviert werden kann. Die bei diesem Vorgang erzeugte Protokolldatei soll nun dazu dienen diesen Vorgang wieder rückgängig zu machen:

  1. Die Batchdatei benötigt zunächst zwingend den Namen der Protokolldatei. Er wird dem Batchaufruf als Parameter beigefügt. Zusätzlich folgt noch eine Prüfung, ob diese Datei im Verzeichnis tatsächlich existiert.
  2. Anschließend wird das passende SQL-Statement für ein Update der MySQL-Tabelle wp_posts erzeugt.
  3. In einer Schleife (for) wird die Protokolldatei ab der zweiten Zeile (die erste Zeile enthält die Spaltenüberschriften) eingelesen, die ID dem SQL-Statement hinzugefügt und per plink an den Server gesendet.

Dieser Ablauf scheint relativ aufwendig zu sein, da für jeden Protokolleintrag eine Verbindung zum Server hergestellt werden muß. Da das Datenvolumen selbst aber sehr begrenzt ist, läuft die Übertragung im Sekundentakt ab. Die Batch-Datei könnte dabei folgende Struktur haben:

@echo off
::
set Nachricht=Update der Post-Kommentarfunktionen erfolgt
::
if [%1] equ [] (
  set Nachricht=die Protokolldatei muß angegeben werden ^
  & goto batchend)
::
if not exist %1 (
  set Nachricht=die Protokolldatei wurde nicht gefunden ^
  & goto batchend)
::
set sql=
set sql=%sql% update wp_posts
set sql=%sql% set comment_status = 'open'
set sql=%sql% where ID = %%r and
set sql=%sql% post_type = 'post' and
set sql=%sql% post_status = 'publish' and
set sql=%sql% comment_status = 'closed';
::
:: Protokolldatei ab zweiter Zeile einlesen und Tabelle updaten
::
for /F "skip=1" %%r in (%1) do (
  c:\"program files (x86)"\putty\plink -ssh -P 22 ^
    -l ssh-user -pw ssh-password ^
    hostname_oder_ip ^
    /usr/bin/mysql -u mysql-user -pmysql-password wordpress-database ^
    --execute=\"%sql%\"
    if %ERRORLEVEL% gtr 0 (
      set Nachricht=Fehler beim Update der Post-Kommentarfunktionen ^
      & goto batchend)
    echo.update ID %%r
)
:batchend
echo.%Nachricht%

Der Hinweis darf erlaubt sein, daß man derartige Manipulationen nur dann vornehmen sollte, wenn man die Folgen selbst richtig einschätzen kann.
rh2011-12-003

WordPress: Kommentare sperren

Wenn man genau weiß, was man tut und keine Plug-Ins einsetzen möchte, von denen man nicht immer genau weiß, was sie tun, kann man verschiedene Aufgaben in WordPress von jedem Terminal aus steuern oder anstoßen. In dem Beitrag PuTTY wurde bereits auf den Bereich der Datensicherung eingegangen. Nachfolgend geht es darum die Kommentarfunktion aller aktuell veröffentlichten Posts mit einem Befehl zu deaktivieren bzw. zu schließen; als Notschalter sozusagen. Das Skript in der Windows-Batchdatei, das in dieser Version nur auf das Wesentliche reduziert ist, läuft in drei Schritten ab:

  1. Es wird eine Protokolldatei erstellt, die den Index und den Namen des Posts aufnimmt, dessen Kommentarfunktion gesperrt werden soll, bzw. gesperrt worden ist. Dies dient dazu den gesamten Vorgang reversibel zu machen. Zudem ist Teil des Dateinamens ein Zeitstempel in der Form JJJJMMTT_HHMMSS. Die Protokolldatei könnte also den Namen closedcomments_20111223_145738.data tragen. Damit wird bei jedem Aufruf des Skripts jeweils eine neue Protokolldatei mit neuem Zeitstempel erstellt. Dies erhöht die Nachvollziehbarkeit. Auf das Thema der fehlenden Null bei Uhrzeiten vor 10 Uhr wird hier nicht eingegangen.
  2. Im zweiten Schritt wird ein SQL-Query formuliert in dem ID und Post-Name der Posts abgefragt werden, die vom Typ Post sind, den Status Public tragen und deren Kommentarfunktion als Open gekennzeichnet sind. Diese Abfrage wird dann per plink an den Server geschickt. Das Ergebnis der Abfrage wird dann in die Protokolldatei geschrieben.
  3. Abschließend wird ein SQL-Statement für ein Update der MySQL-Tabelle wp_posts erzeugt und ebenfalls per plink an den Server gesendet.

Die Batch-Datei könnte dabei folgende Struktur haben:

@echo off
::
set Nachricht=alle Post-Kommentarfunktionen geschlossen
::
:: 1. Sicherungsdatei (closedcomments_jjjjmmtt_hhmmss.data) anlegen
::
echo.Sicherungsdatei anlegen ...
::
for /f "tokens=1-3 delims=/.- " %%A in ('date /T') do (
  set TT=%%A& set MM=%%B& set JJJJ=%%C
)
set Datum=%JJJJ%%MM%%TT%
for /f "tokens=1-3 delims=:, " %%A in ('echo %time%') do (
  set hh=%%A& set mm=%%B& set ss=%%C
)
set Uhrzeit=%hh%%mm%%ss%
set CC-PROT=closedcomments_%Datum%_%Uhrzeit%.data
type NUL > %CC-PROT%
if %ERRORLEVEL% gtr 0 (
  set Nachricht=Fehler beim Erstellen der Sicherungsdatei ^
  & goto batchend)
::
:: 2. Servereinwahl
:: a. suche offene Post-Kommentarfunktionen
::
echo.offene Post-Kommentarfunktionen suchen ...
::
set sql=
set sql=%sql% select ID, post_name as Name
set sql=%sql% from wp_posts
set sql=%sql% where post_type = 'post' and
set sql=%sql% post_status = 'publish' and
set sql=%sql% comment_status = 'open';
c:\"program files (x86)"\putty\plink -ssh -P 22 ^
  -l ssh-user -pw ssh-password ^
  hostname_oder_ip ^
  /usr/bin/mysql -u mysql-user -pmysql-password wordpress-database ^
  --execute=\"%sql%\" >> c:\users\user-name\%CC-PROT%
if %ERRORLEVEL% gtr 0 (
  set Nachricht=Fehler beim Suchen offener Post-Kommentarfunktionen ^
  & goto batchend)
::
:: b. schließe offene Post-Kommentarfunktionen
::
echo.offene Post-Kommentarfunktionen schließen ...
::
set sql=
set sql=%sql% update wp_posts set comment_status = 'closed'
set sql=%sql% where post_type = 'post' and
set sql=%sql% post_status = 'publish' and
set sql=%sql% comment_status = 'open';
c:\"program files (x86)"\putty\plink -ssh -P 22 ^
  -l ssh-user -pw ssh-password ^
  hostname_oder_ip ^
  /usr/bin/mysql -u mysql-user -pmysql-password wordpress-database ^
  --execute=\"%sql%\"
if %ERRORLEVEL% gtr 0 (
  set Nachricht=Fehler beim Schließen offener Post-Kommentarfunktionen ^
  & goto batchend)
:batchend
echo.%Nachricht%

Das Blockieren der Kommentarfunktion ließe sich auch noch auf bestimmte Autoren oder Kategorien beschränken. Sofern die Protokolldatei verfügbar bleibt, kann der gesamte Vorgang jederzeit wieder rückgängig gemacht werden.
rh2011-12-002