MSI Logs komfortabel auswerten/analysieren

Als Software-Entwickler muss man sich neben der Entwicklung neuer Software manchmal auch um die Verteilung beispielsweise über Windows Installer Technologien befassen. Schlägt eine Installation fehl, kommt man meist nicht darum, sich die Details anzuschauen. Dazu muss ein Logfile zum Installer erstellt werden, indem dem Windows Installer ein Parameter mitgegeben wird:

msiexec /i [PfadZumMsiPaket] /l*v [PfadZumLogFile]

Beispiel: msiexec /i MeinSetupProjekt2015.msi /l*v MeinInstallerLog.txt

Schaut man das erste Mal in so ein Logfile, so sieht es nicht besonders hilfreich aus:

Analysiert man solche Logfiles öfter, findet man sich irgendwann doch noch schnell darin zurecht.

Vor kurzem bin ich über ein nützliches Werkzeug zum Analysieren vom Windows Installer Logfiles gestoßen: Microsoft Installer Verbose Log Analyzer (WiLogUtl.exe), das Bestandteil des Windows Installer SDKs ist.

Zu finden ist das Programm dann auch der Festplatte unter %ProgramFiles%\Windows Kits\8.1\bin\x86:

Nach dem Laden des Logfiles kann man dieses dann analysieren lassen:

In meinem Fall habe ich die Ausführung mit erhöhten Rechten abgelehnt. Klickt man dann auf „Analyze“, so wird folgender Dialog geöffnet:

Der erste Fehler wird direkt in der oberen Liste angezeigt. Über die Buttons „Next“ und „Previous“ kann dann zwischen den Fehlern im Logfile navigiert werden.

Es lassen sich auch die Properties und deren Werte in einer Übersicht anzeigen:

Dabei können die Properties sowohl auf Client-Seite (z.B. während der Erfassung von Installationspfad, Auswertung von Launch-Conditions, …) angezeigt werden als auch bei der Ausführung, wenn das Installationspaket vom Windows Installer Service ausgeführt wird. Sehr praktisch!

 

Über den Button „Policies“ in der Analyse kann man sich die Berechtigungen anzeigen lassen, die beispielsweise per Gruppenrichtlinie an den Rechner verteilt wurden:

Auch sehr praktisch ist das Erzeugen eines HTML-Reports aus dem Logfile:

Die einzelnen Kategorien des Logfiles sind dann farbig hinterlegt, was das Lesen der Logdatei deutlich angenehmer macht.

Dieses HTML-Logfile kann auch automatisch über einen Kommandozeilen-Parameter erzeugt werden:

wilogutl /q /l c:\mymsilog.log /o c\outputdir\

(siehe https://msdn.microsoft.com/en-us/library/aa372811(v=vs.85).aspx )

 

Weitere nützliche Links zum Analysieren von Windows Installer Logfiles:

Alternative: der (auch für kommerzielle Zwecke kostenlose) Logit Log Viewer, der auch MSI Logs anzeigen kann

Quelle: http://www.legitlog.com/Products/LegitLogViewer

Wichtiger Hinweis: „=== Verbose logging started“ (erste Zeile) muss aus dem Logfile entfernt werden, da sonst der Logfile Viewer dieses Format nicht verarbeiten kann.

Buch-Review: „Der Fisch stinkt vom Kopf“

Dieses Buch ist eine kurzweilige Unterhaltung wie man sich selbst und andere motiviert.

Den Einstieg macht eine Anekdote zum Hamburger Fischmarkt und zum „Aale Dieter“ – wie man mit „derbem“ Humor und Sprüchen die Leute doch dazu bekommt, seine Waren (zu eigentlich überhöhten Preisen) zu kaufen. Auch die Geschichte vom Pike Place Fish Market in Seattle (USA) und warum die Arbeit dort so viel Spaß macht. Wegen des frühen Aufstehens? Weil man den ganzen Tag nach Fisch stinkt? Weil die Bezahlung so „gut“ ist? Wirklich witzig und einleuchtend erklärt.

Immer wieder wird die „Gallup-Engagement-Studie“ mit Statistiken herangezogen, wie viele unmotivierte Mitarbeiter im Unternehmen arbeiten, woran man sie erkennt und in welche Gruppen (z.B. „Mercedes-Typ“, „Golf-Typ“ etc.) sich diese unterteilen lassen. Natürlich alles gewürzt mit der richtigen Brise Humor J

Das Buch hat neben dem großen Unterhaltungswert auch viel Wissenswertes. Wie man beispielsweise seine Kunden spielerisch an sich bindet. Beispiel: Ein Hotel stellt unter dem Bett ein Schild auf „Sauberkeit ist uns wichtig und auch hier wird bei uns geputzt. Gegen Vorlage dieses Schildes erhalten Sie an der Bar einen Drink gratis“. Super Idee! Es gibt so viele inspirierende Ideen, wie man spielerisch Kunden gewinnen und halten kann, die ich hier nicht alle schon vorgreifen möchte.

Die 270 Seiten habe ich innerhalb kürzester Zeit durchgelesen und wirklich Spaß dabei gehabt. So macht Wissen tanken Spaß! J

Mehr Informationen zum Buch gibt es auch unter http://motivationsvortrag.de/

Tolles Buch, gern mehr davon!

Google Chrome: Keine Internet-Verbindung? Dino Jump & Run

Ich weiß nicht, wie lange es dieses „hidden“ Feature schon gibt oder ob es mir bisher nur noch nie aufgefallen ist, aber wenn bei Google Chrome die Internet Verbindung abgebrochen ist, kann man die Zeit mit einem kleinen Jump&Run überbrücken:

Starten kann man das Spiel, indem man einfach die „Leertaste“ drückt.

Die Leertaste wird dann auch zum Springen verwendet (alternativ kann man auch „Cursor up“ verwenden J

Software-Update für Kobold VR100

Vor einem halben Jahr haben wir uns eine kleine Haushaltshilfe zugelegt: einen Staubsauger-Roboter der Marke Vorwerk. Da das Nachfolgemodell bereits in den Startlöchern stand, haben wir ihn vergünstigt gekauft. Er leistet wirklich gute Dienste (man kann unterschiedliche Startzeiten zu verschiedenen Wochentagen definieren) und wir sind sehr zufrieden damit. Einziges Manko: Es staubt sehr, wen man den Filter leert.

Auf der Vorwerk-Webseite habe ich gesehen, dass ein Software-Update zur Verfügung steht:

Auf der Webseite (http://kobold.vorwerk.de/de/service/software-updates/saugroboter/vr100/) gibt es zum Download die Kobold VR-Updater Software als auch die neue Firmware.

Die Anleitung als PDF-Datei (http://kobold.vorwerk.de/fileadmin/data/de/pdf/Roboter_Anleitung_Software/Anleitung_Saugroboter_SoftwareUpdate.pdf) ist wirklich gut und bebildert beschrieben.

Ich habe also die Software heruntergeladen und installiert:

Nach dem Starten präsentiert sich die Software wiefolgt:

Und man wird Schritt-für-Schritt durch das Update geführt.

Ich wollte mal einen Blick in die Release Notes der Firmware werfen, doch die ZIP-Datei ist verschlüsselt(?):

Ich bin gespannt, ob und wie gut der Kobold VR100 nach dem Software-Update saugt.

Continuous Lifecycle 2013 – Rückblick

Die Continuous Lifecycle 2013 ist zu Ende gegangen: zwei Tage vollgepackt mit interessanten Vorträgen vorwiegend zum Thema Continuous Delivery / Continuous Deployment.

Der erste Konferenztag: 11.11.2013

Die Keynote hielt Mirko Novakovic, seines Zeichens Entwickler und Vorstand der codecentric AG, zum Thema „Lean Startups Eat the World“. Er zeigte eindrucksvoll, wo die Reise (vor allem für das Web-Business) hingehen kann und dass man keine andere Wahl hat, als schnell reagieren zu müssen. Er hat dabei einige gute Buchempfehlungen gegeben: „The Lean Startup“ (http://theleanstartup.com/) von Eric Ries. Auch hier ging es um das Umsetzen einer Idee, Entwicklung, schnelles Feedback und „Go Live“, um schnell aus der Idee Kapital schlagen zu können. Ein guter Vortrag, um auf das Thema einzustimmen.

Für mich ging es dann weiter mit dem Thema „Puppen und Marionetten in der Deploy Pipeline“ von Thomas Gelf. Dabei wurde ein Tool namens „Puppet“ (http://puppetlabs.com/) vorgestellt, das helfen soll, für Test- und Produktivsysteme Software einzuspielen und diese aufzusetzen. Dabei geht es vor allem um das Management dieser Software und wie diese Daten mithilfe einer Domain Specific Language synchronisiert. Sehr beeindruckend, doch leider alles sehr Linux-lastig, was mich in meinem Daily-Business nicht so wirklich unterstützt. Einen Blick über den Tellerrand wert war es allemal.

Im Anschluss habe ich „Continuous Delivery – für jeden geeignet“ gehört. Herrmann Lacheiner hat die (qualitativen) Voraussetzungen für Continuous Delivery bedeutet und klargestellt: ohne bestimmte Prozess-Reife inkl. Requirements-Engineering, Tests usw. sollte man kein Continuous Delivery machen. Erst wenn die Grundlagen sauber sind, sollte man sich an dieses Thema wagen.

Der Vortrag „DevOps – Kultur- oder Technikfrage“ von Mathias Münch zeigte das Zusammenleben und die Zusammenarbeit von Development und Operations auf. Im Nachhinein hätte ich mir lieber „Git, Mercurial und Bazaar im Vergleich“ angehört, nachdem ich in der Pause viele hab von dem Vortrag schwärmen gehört.

Eindrucksvoll war der Vortrag von André von Deetzen und Oliver Wehrens (Principal Developers) bei der ePost zum Thema „Von einem Release alle sechs Monate zu täglichen kleinen Rollouts – ein Erfahrungsbericht“. In diesem Vortrag wurde erzählt, wie es die ePost geschafft hat, von relativen langen Release-Zyklen zu Continuous Delivery geschafft hat – ein wahrer Kraftakt. Für mich ist es immer noch fast ein Wunder, wie man sowas innerhalb so kurzer Zeit (2 Jahre) schaffen konnte, die Entwicklung u.a. auf Scrum und TDD zu trimmen, um dann Continuous Delivery umsetzen zu können. Hut ab!

Matthias Kainer hat in einer Präsentation „Getting your features out – verschiedene Ansätze, neue Features iterativ zu releasen“ u.a. das Feature Toggle Pattern und Feature Branches näher beleuchtet. Dabei hat er ein paar Anekdoten aus seinem Entwickler-Leben bei Autoscout24 / Werkstattportal erzählt.

Den Abschluss der Vortragsreihe machte Thorsten Maier mit seinem Vortrag zu „Schneller, Billiger, Besser – effektiver Einsatz von Code-Reviews“. Neben den manuellen Offline-Reviews (bevorzugte Variante) hat er noch kurz den Technologie-Stack von Atlassian (Stash und Crucible) vorgestellt. Mir persönlich sind die Tools lieber, da ich offline jederzeit Code-Reviews machen kann. Aber geht vor allem um das Zwischenmenschliche bei Code-Reviews und den Lernfaktor. Fehler zu finden ist auch wichtig, aber man sollte vor allem mit einem guten Gefühl aus einem Code-Review Meeting herausgehen.

Die Panel-Diskussion am Abend des ersten Konferenztages war recht polarisierend: auf der einen Seite das Thema „Web“ und „Continuous Deployment“ und auf der anderen Seite der Handwerker, der seinen IT-Service von einem Fachmann machen lassen muss. Letztlich konnte diese Frage nicht endgültig geklärt werden, da die Zeit leider schon vorbei war. Im Anschluss daran gab es noch ein „Get Together“ mit allen Teilnehmern bei einem gemütlichen Glas Bier.

 

Der zweite Konferenztag: 12.11.2013

Der zweite Konferenz-Tag begann mit einem sehr unterhaltsamen Vortrag von Simon Wiest, seines Zeichens aktiver Comitter beim Jenkins Projekt und Prof. für Informatik an der HdM in Stuttgart. Jenskins ist ein Continuous Integration System (aka Build Server), der in Java geschrieben ist. Die Oberfläche gefällt mir und der Funktionsumfang ist durch die Plugins mehr als ausreichend.
Anschließend ging es im Vortrag „Continuous Deployment so einfach wie möglich“ von Dr. Malte Clasen um einen Erfahrungsbericht, der zeigte wie er in seiner Firma Continuous Deployment anhand einer ASP.NET basierten Webseite umgesetzt hat. In der .NET Umgebung habe ich mich gleich heimisch gefühlt, aber viel Neues war für mich jetzt nicht dabei.

Die zweite Keynote war von Alexander Grosse (Soundcloud) zum Thema „DevOps, Continuous Delivery, Agile ALM – Hype over Substance?“. Wow! Was für ein Vortrag! Kritisch wurden aktuelle Trends beäugt und die Arbeit bei Soundcloud vorgestellt. Nach dem Jenkins-Vortrag hat mir dieser Vortrag als zweitbestes gefallen. Erzählungen aus dem „Nähkästchen“ bei Soundcloud waren sehr inspirierend.

Nach dem Mittagessen war ich an der Reihe mit meinem Vortrag zum Thema „Build Patterns – Patterns und Best Practices für den Build Prozess„. Der Raum war ganz gut gefüllt und die zahlreichen Fragen sehr interessant. Hat mir Spaß gemacht 🙂

Das Thema „Build und Projektautomatisierung mit Gradle“ von Joachim Baumann und René Gröschke hat einen guten Überblick in den Stand der Dinge bei Gradle gebracht. Gradle ist eine DSL für Buildprojekte und ist eine Alternative zu Systemen wie Ant, NAnt und Maven, die eher XML-basiert sind. Interessant war, dass jetzt vor allem C++-Projekte nativ unterstützt werden sollen. Sobald .NET-Projekte nativ unterstützt werden, schaue ich mir die Sache nochmals an.

Oliver Stamm hat sehr eindrucksvoll in seinem Vortrag „Wie Behaviour Driven Development den Weg zu Continuous Delivery freimacht“ gezeigt, wie Otto seinen Katalog selbst neu entwickelt hat, und dabei auf BDD gesetzt hat. Interessant war vor allem die Vorgehensweise und das selbst geschriebene BDD-Framework. Da werde ich einiges für mein Produkt mitnehmen können.

Den Abschluss der Konferenz machte für mich „Juristische Herausforderungen über den Lebenszyklus von Software“ von Tobias Haar. Die Gesetze lt. BGB unterscheiden in 4 verschiedene Vertragsformen (Dienstvertrag, Kaufvertrag, Werkvertrag und Mietvertrag), in die die Software-Entwicklung auch eingegliedert wird. Sehr viele kleine und große Stolperfallen, Vor- und Nachteile der jeweiligen Vertragsart wurden vorgestellt. Am besten, man nimmt sich für solche Vertragsfragen wirklich einen Anwalt. Trotzdem war es echt gut, sich die Sachen mal anzuhören.

Hier noch ein paar Bilder und Impressionen von der Konferenz:

Der zweite Konferenztag

Die Location: Die IHK in Karlsruhe

Meine Eintrittskarte als Referenz 🙂

PowerPoint 2013: Referenten-Ansicht auch ohne zweiten Monitor

Was ist die Referentenansicht?

 

Die Referenten-Ansicht in PowerPoint erlaubt es, Folien und Vortragsnotizen auf einem Computer anzuzeigen, währenddessen die Präsentation auf einem zweiten Monitor (respektive einem Beamer) läuft.

Hier ist ein entsprechendes Schaubild:

(Quelle: http://office.microsoft.com/de-de/powerpoint-help/was-ist-die-referentenansicht-HA010360578.aspx)

Die Referentenansicht stellt auf der einen Seite die aktuelle Folie und auf der anderen Seite die Vorschau der nächsten Animation oder Folie sowie die Notizen dar. Hier ein Beispiel der Referentenansicht meiner Präsentation zur Continuous Lifecycle 2013 in PowerPoint 2013:

Im Ribbon „Bildschirmpräsentation“ kann die Referenten-Ansicht aktiviert werden:

In den Voraussetzungen für die Referentenansicht steht, dass man zwei Monitore benötigt, um die Referentenansicht nutzen zu können:

(Quelle: http://office.microsoft.com/de-de/powerpoint-help/was-ist-die-referentenansicht-HA010360578.aspx)

Referentenansicht ohne zweiten Monitor

Ich übe gern meine Präsentation mehrmals, bevor ich sie vor Publikum aufführe. Die Referentenansicht habe ich lieb gewonnen, doch leider habe ich nicht immer einen zweiten Monitor zur Hand.

Durch Zufall habe ich nun herausgefunden, dass sich die Referentenansicht über das Kontextmenü während der Präsentation komfortabel aktivieren lässt:

Anschließend startet PowerPoint 2013 automatisch den Referentenmodus für die gewünschte Folie:

Viel Spaß damit!