# Saturday, May 03, 2008

Flashmob versus Shutdown Day

Wie man sieht, habe ich es nicht geschafft, der Shutdown Day-Bewegung zu folgen. Für mich war dieser bereits gestern. Heute gab es jedoch ein Ereignis, von dem berichtet werden muss:
In Siegen gab es einen Flashmob!
Laut der SchülerCC-Gruppe, die wohl die Hauptorganisation der Aktion durchführte, war dies der zweite Flashmob in Siegen. Ich war mit der Kamera vor Ort, konnte jedoch keine brauchbaren Ergebnisse erzielen.

Was ist ein Flashmob?
Laut Wikipedia ist ein Flashmob ein Blitzauflauf. Per Internet wird ein Treffpunkt organisiert, an dem sich dann scheinbar aus dem Nichts ein immenser Auflauf bildet. Der gesamte Mob führt dabei die gleiche Handlung aus. Nach der Aktion löst sich der Mob ebenso schnell in alle Richtungen auf, wie er sich gebildet hat.

Was in Siegen passierte?
Gegen 14:45 Uhr füllt sich langsam, aber sicher, das Erdgeschoss der dort ansässigen Einkaufsmeile. Die Sicherheitskräfte waren augenscheinlich eingeweiht, da teilweise Rolltreppen von anderen Stockwerken ins Erdgeschoss abgestellt wurden.  Gegen 14:55 Uhr war allerdings fast kein Durchkommen mehr. Von Passanten wurden wir gefragt, was denn hier los sei, worauf ein Bekannter sagte, es werde eine Autogrammstunde mit einem noch nicht bekannten DSDS-Teilnehmer geben. Gegen 15:00 Uhr konnte ich den angekündigten Pfiff vernehmen, worauf sich im vorderen Teil der Einkaufspassage alle auf den Boden legten. In dem Bereich, in dem ich mehr oder weniger eingeklemmt war, wurde der Pfiff gnadenlos ignoriert. Dadurch breitete sich das Ganze mehr als Laola durch die Passage, was jedoch den kollektiven Eindruck extrem störte. Nach noch nicht einmal einer Minute standen jedoch schon wieder alle, von den angekündigten zwei Minuten war also nur noch die Hälfte übrig geblieben. Somit war es für mich extrem schwer, aus der dunklen Ecke, in der ich eingezwängt war, in die helleren Bereiche vorzudringen. Als ich dort war, war das Spektakel bereits vorbei und es waren keine guten Bilder in der Kiste. Leider.

Persönliche Eindrücke
  1. Gut, dass es eine Bewegung gibt, die absolut unpolitisch die verschiedensten Jugendgruppen anspricht.
  2. Gut, dass die Jugendlichen mit solchen Aktionen feststellen können, dass sie es locker schaffen, den normalen Verkehr in einer Einkaufspassage komplett zum erliegen zu bringen.
  3. Gut, dass es sehr viele Teilnehmer waren.

  4. Schlecht, dass fast mehr Schaulustige als Teilnehmer anwesend waren.Schlecht, dass sich eine solche Menge (ich schätze ca. 300 Teilnehmer) nur auf zwei Haufen ballt. In vielen kleinen Gruppen auf allen drei Stockwerken wäre die Aktion viel imposanter gewesen.
  5. Schlecht, dass eine von zwei Gruppen den Einsatz total verpennt.
  6. Schlecht, dass es nur einen Organisator gab, der es nicht geschafft hat, die Gruppen zu verteilen, wobei er vorher bei beiden Gruppen mit Leuten gesprochen hat. Dort hätte es mehrere geben müssen, die sich auf die Aktion vorbereitet haben müssten.
  7. Schlecht, dass es nicht sehr spontan aussah. Wenn man wusste, was passiert, konnte man bereits ab 14:35 Uhr die ersten Anzeichen erkennen.
Fazit
Bleibt zu hoffen, dass solche Aktionen in Zukunft wiederholt werden (natürlich nicht die selben) und dass sich die Organisatoren etwas mehr zutrauen. Lieber 50 Leute auf drei Stockwerken verteilen, als 300 auf einem Haufen. Und mir persönlich wäre es sehr lieb, wenn man die angekündigten Zeiten erstens einhalten und zweitens verlängern könnte. Denn nichts beschreibt einen Flashmob besser als Bilder. Bei solch kurzen Aktionen ist es jedoch extrem schwierig, vernünftige Resultate zu erzielen.

Saturday, May 03, 2008 4:21:35 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [8] | Trackback
# Saturday, April 26, 2008

Shutdown Day 2008



Durch Damir Tomicic darauf aufmerksam geworden; und nun bin ich auch dabei.

Saturday, April 26, 2008 12:35:59 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Sunday, April 20, 2008

Häuser wie Software

Und wieder hat der Code-Inside Blog einen sehr interessanten, diesmal weniger lustigen, weil leider wahren Artikel in seinem Blog veröffentlich. Allerdings hätte ich Mark durch Euro ersetzt; Was aber zeigt, dass das Problem bereits sehr lange bekannt und doch immer noch nicht gelöst wurde.

Sunday, April 20, 2008 12:37:51 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Friday, April 18, 2008

Excel: Zellen verbinden per Shortcut

Ich musste gerade einige Zellen in Excel verbinden. Da mir das ewige Markieren - Rechtsklick - Zellen Formatieren - Zellen verbinden zu langsam war, habe ich nach einem Shortcut für diese Aktion gesucht. Leider bringt Excel so etwas nicht mit. Aber mit einem kleinen Macro kann man die Funktionalität nachrüsten:

Diese Makro wechselt nach der Zuweisung einer Tastenkombination den Status von mehreren Zellen von Nicht verbunden zu Verbunden und wieder zurück.
Sub Makro2()
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = Not .MergeCells
    End With
End Sub

Friday, April 18, 2008 9:56:58 AM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Thursday, April 17, 2008

Bürospielchen - Lange nicht mehr so gelacht

Komme gerade nach einem echt langen Tag nach Hause. Muss auch fast schon wieder zum nächsten Termin, aber will mal schnell schauen, was mein privater Posteingang noch Ansprechendes zu bieten hat. Da dort leider nichts Ansprechendes zu finden ist, stöber' ich noch schnell durch meine RSS-Feeds und finde dabei einen Blogpost von Robert Mühsig. Da ein bisschen Spaß im Büro nie schaden kann, fange ich an zu lesen. Aber vor allem zu lachen. Mit Tränen dabei. Ach, lange nicht mehr etwas so lustiges gelesen. Ich denke, ich werde morgen mal mit Punkt 1.5 beginnen :)

Thursday, April 17, 2008 9:04:56 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [2] | Trackback
# Wednesday, April 16, 2008

Renaming of several Microsoft embedded products

From a post ont the Windows Embedded blog - Microsoft announced some name changes for their embedded products:
  • Windows Embedded CE is now known under Windows Embedded Compact
  • Windows XP Embedded is now known under Windows Embedded Standard
  • Operating systems wich embedded licences are now known under Windows Embedded Enterprise
  • Point of Service applikations and platforms are now known under Windows Embedded POSReady

Wednesday, April 16, 2008 8:44:17 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback

iX: Muschel verpackt

In der iX 5/2008 schreibt Dr. Holger Schwichtenberg:
Muschel verpackt

Die wegen ihrer Leistungsfähigkeit viel gepriesene PowerShell bietet bisher nur eine unkomfortable Benutzeroberfläche. Microsoft hat es bisher nicht geschafft, der Shell ein angemessenes GUI zu verpassen. Diese Lücke schließt nun das Third-Party-Tool PowerShellPlus.
Ich weiß ja nicht so genau, was Herr Dr. Schwichtenberg unter einer Shell versteht, aber für mich ist eine Shell eher Kommandozeileninterpreter als GUI. Ich denke, damit stehe ich nicht allein. Zugegeben; Ich habe den Artikel noch nicht gelesen und manchmal denke auch ich, dass es ein GUI hier und da etwas einfacher macht. Aber Shell bleibt Shell. Sonst könnte man es ja direkt MMC nennen. Außerdem ist die PowerShell als Ersatz für den Kommandozeileinterpreter cmd.exe gedacht, wenn man der Wikipedia glauben darf.

Wednesday, April 16, 2008 7:27:55 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Sunday, April 13, 2008

Mit Powershell das EventLog eines Remoterechners überwachen

Mein Blog wird auf einem Windows 2003 Server gehostet. Da ich gerne wissen möchte, was dort so alles passiert, habe ich mir ein kleines Powershell-Script geschrieben, welches mir einmal pro Tag die Eventlog-Einträge des letzten Tages per E-Mail zusendet:

$sys = Get-Eventlog -list | Foreach-Object -process{Get-Eventlog $_.Log} | ?{$_.TimeGenerated -gt [DateTime]::Now.AddDays(-1)} |  ConvertTo-Html
$msg = New-Object Net.Mail.MailMessage("from@my.mail", "to@my.mail", "Daily Eventlog summary", $sys)
$msg.IsBodyHTML = $true
$smtp = New-Object NetMail.SmtpClient("mailserver.my.mail")
$smtp.Send($msg)

Was macht das Script genau?


Zuerst wird per
Get-Eventlog -list
eine Liste der auf dem System vorhandenen Eventlogs erstellt. Das Ergebnis wird an das Foreach-Object-Cmdlet gepipt, welches für jedes Element der Liste die Einträge abfragt:
Foreach-Object -process{Get-Eventlog $_.Log}
Die daraus resultierende Liste von Einträgen wird dann gefilter. Es sollen nur die Einträge weiterverarbeitet werden, die innerhalb des letzten Tages erstellt wurden:
?{$_.TimeGenerated -gt [DateTime]::Now.AddDays(-1)}
Diese Zeile kann auch als
Where-Object {$_.TimeGenerated -gt [DateTime]::Now.AddDays(-1)}
geschrieben werden, aber ? ist einfach etwas schneller.
Die gefilterten Einträge werden dann als HTML
ConvertTo-HTML
in der Variablen $sys gespeichert.
Im nächsten Schritt wird ein System.Net.Mail.MailMessage-Objekt erstellt, welches die HTML-Liste $sys der Eventlog-Einträge als Nachrichtentext übergeben bekommt.
$msg = New-Object Net.Mail.MailMessage("from@my.mail", "to@my.mail", "Daily Eventlog summary", $sys)
Die MailMessage-Instanz ist nötig, da wir eine HTML-Mail versenden wollen.
$msg.IsBodyHTML = $true
Möchten wir PlanText versenden, können wir den Nachrichtentext auch der $smtp.Send()-Methode übergeben.
Um die Mail per smtp.Send versenden zu können, muss erst der SmtpClient instanziiert werden. Im Konstruktor bekommt er den Mailserver übergeben, über der die Nachricht gesendet werden soll.
$smtp = New-Object NetMail.SmtpClient("mailserver.my.mail")
$smtp.Send($msg)


Im nächsten Schritt werde ich daraus ein kleines, konfigurierbares C#-Programm erstellen, das zum Beispiel verschiedene Ereignisquellen ausfiltern kann.

Sunday, April 13, 2008 12:44:37 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Wednesday, April 09, 2008

Duff's Device

Da ich momentan eher mit C beschäftige, dort allerdings noch ein paar Fragen offen waren, hatte ich heute ein Code Review mit einem "alten Hasen". Dabei gab es eine Menge zu lernen. Als ich später mit meinem PM (der auch aus der C/C++-Welt stammt) das Review besprach, zeigt er mir einen netten kleinen Codeschnippsel: Duff's Device. Ich lasse das hier einmal ohne Erklärung stehen.
n = (anzahl + 3) / 4;
 
switch(anzahl % 4) {
    case 0:        do { ziel[stelle] = quelle[stelle]; stelle++;
    case 3:             ziel[stelle] = quelle[stelle]; stelle++;
    case 2:             ziel[stelle] = quelle[stelle]; stelle++;
    case 1:             ziel[stelle] = quelle[stelle]; stelle++;
                   } while(--n > 0);
}
Für meine C#-Augen war das ja gar nichts. Fallthrough im Switch-Statement. Brrr. Wenn das der Compiler sehen würde ;) Aber C ist eben etwas ganz anderes.

Wednesday, April 09, 2008 9:29:20 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Tuesday, April 08, 2008

String.Format mit geschweifter Klammer

Mit Hilfe der String.Format-Methode können ja bekanntlich formatierte Einsetzungen in einen String vorgenommen werden. Im Ursprungsstring werden dazu Platzhalter in der Form {0}, {1}, etc eingefügt. Sind allerdings im Formatstring, als dem String, in den die neuen Teile eingesetzt werden, geschweifte Klammern enthalten, werden diese als Formatierungszeichen betrachtet. Aufgefallen ist mir dies bei der Formatierung der Zeichenkette:
#ifndef _BLABLUB_H_
#define _BLABLUB_H_

#  ifdef __cplusplus
  extern "C" {
#  endif /* __cplusplus */
BLABLUB sollte dabei durch den entsprechenden Namen der Headerdatei ersetzt werden. Allerdings hagelte es mit folgendem FormatString bei jedem Versuch, die formatierte Ausgabe zu erzeugen, eine FormatException.
public static string HeaderExklusionStart = "#ifndef {0}"
    + Environment.NewLine
    + "#define {0}"
    + Environment.NewLine
    + Environment.NewLine
    + "#  ifdef __cplusplus"
    + Environment.NewLine
    + "  extern \"C\" {"
    + Environment.NewLine 
    + "#  endif /* __cplusplus */";
Um den Fehler zu beheben, müssen einfach geschweifte Klammern, die ausgegeben werden sollen und somit nicht als Formatierungsanweisungen zu interpretieren sind, doppelt eingefügt werden:
+ "  extern \"C\" {{"

Auf den Fehler hingewiesen hat mich der Artikel Kombinierte Formatierung im MSDN. Prädikat: Wertvoll.
Tuesday, April 08, 2008 12:14:50 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback