summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormh <mh@scrit.ch>2010-09-22 00:44:23 +0200
committermh <mh@scrit.ch>2010-09-22 00:44:23 +0200
commit9c5013e7eb539ad0529210e6ae57951cd0122602 (patch)
treeb86a76338e2dbc41fe5c27fc6cb2169078755732
parentd6adfe06b7a4a9e3e38a27f8fc0151058a6c92ae (diff)
add old missing content
-rw-r--r--_posts/2008-10-27-jpaam---pluggable-authentication-and-authorization-framework.markdown13
-rw-r--r--_posts/2009-01-21-managing-large-scale-envionments-with-opensource-tools.markdown14
-rw-r--r--_posts/2009-05-01-101-puppet-module.markdown36
-rw-r--r--_posts/2009-09-16-configuration-management-leicht-gemacht.markdown53
-rw-r--r--_posts/2009-09-23-getting-started.markdown2
-rw-r--r--_posts/2009-10-22-hinter-den-kulissen-von-github.markdown38
-rw-r--r--_posts/2009-10-29-augmenting-static-source-views-in-ides-with-dynamic-information.markdown34
-rw-r--r--_posts/2009-11-04-lasst-die-puppen-tanzen-effiziente-verwaltung-von-konfigurationen-und-systemen-mittels-puppet.markdown10
-rw-r--r--_posts/2010-04-08-effizientes-linux-systems-management.markdown12
-rw-r--r--_posts/2010-04-20-lass-die-puppen-tanzen.markdown23
-rw-r--r--_posts/2010-06-03-ein-erfahrungsbericht-vom-puppetcamp-2010.markdown85
-rw-r--r--_posts/2010-06-08-augmenting-eclipse-with-dynamic-information.markdown14
-rw-r--r--_posts/2010-09-02-exploiting-dynamic-information-in-ides-improves-speed-and-correctness-of-software-maintenance-tasks.markdown16
-rw-r--r--assets/090114_large_scale_environments.pdfbin0 -> 2070524 bytes
-rw-r--r--assets/Haer06a.pdfbin0 -> 259590 bytes
-rw-r--r--assets/Haer10a.pdfbin0 -> 2626188 bytes
-rw-r--r--assets/Puppet_TechTalk09.pdfbin0 -> 4320225 bytes
-rw-r--r--assets/Roet09W-Senseo-Experiment.pdfbin0 -> 1183121 bytes
-rw-r--r--assets/Roet09bDynamicInfoEclipse.pdfbin0 -> 552672 bytes
-rw-r--r--assets/Roet09cSenseo.pdfbin0 -> 239185 bytes
-rw-r--r--assets/linux_systems_management.pdfbin0 -> 4271808 bytes
-rw-r--r--images/leffe.jpgbin0 -> 27454 bytes
-rw-r--r--images/openspaces.jpgbin0 -> 31724 bytes
-rw-r--r--images/pcamppresentation.jpgbin0 -> 11838 bytes
-rw-r--r--images/puppet_modules_tag_cloud.pngbin0 -> 70523 bytes
25 files changed, 349 insertions, 1 deletions
diff --git a/_posts/2008-10-27-jpaam---pluggable-authentication-and-authorization-framework.markdown b/_posts/2008-10-27-jpaam---pluggable-authentication-and-authorization-framework.markdown
new file mode 100644
index 0000000..be0e9a5
--- /dev/null
+++ b/_posts/2008-10-27-jpaam---pluggable-authentication-and-authorization-framework.markdown
@@ -0,0 +1,13 @@
+---
+layout: post
+title: JPAAM - Pluggable Authentication and Authorization Framework
+---
+Recently, I delivered my bachelor thesis at the University of Bern in Computer Science. I propose a pluggable authentication and authorization framework in Java and implemented a reference implementation in Java-based CMS called Mir.
+
+Publication in the [scg](http://scg.unibe.ch)-Bibliography: [Link](http://scg.unibe.ch/scgbib?query=Haer06a&display=abstract)
+
+[PDF](/assets/Haer06a.pdf)
+
+*Abstract:*
+
+> Many (web) applications share content between several users and different views. To manage this content often a CMS (Content Management System) is used with different levels of access and offer possibilities to edit and change the content. Only a few systems have a security system, which can adapt to changing requirements with another type of security model. Therefore the way access is permitted or denied is fixed in the architecture and the evolution progress of the application. In detail this means that the part of authorization and authentication is often hard-wired into the application and bigger changes to the structure in the application are required to implement for example another policy. Typically the actual implementation of the security system fits the current wishes of the users or developers and is a fixed part of the application and therefore not very easy to exchange nor to adapt a new policy. The proposed pluggable authentication and authorization framework (called JPAAM) offers a solution to this problem and allows users to select their security model for their needs and gives developers the possibility to develop an application aside the aspect of authorization and authentication. JPAAM provides highly configurable interfaces with which a clear separation of the security system from the application is possible.
diff --git a/_posts/2009-01-21-managing-large-scale-envionments-with-opensource-tools.markdown b/_posts/2009-01-21-managing-large-scale-envionments-with-opensource-tools.markdown
new file mode 100644
index 0000000..29dd2e9
--- /dev/null
+++ b/_posts/2009-01-21-managing-large-scale-envionments-with-opensource-tools.markdown
@@ -0,0 +1,14 @@
+---
+layout: post
+title: Managing large scale envionments with opensource tools
+---
+
+Recently I gave a talk in german at the [Open Bussiness Lunch in Bern](http://www.ch-open.ch/events/lunchbe.html) about the automation tools we are currently deploying at [Puzzle ITC](http://www.puzzle.ch)
+
+[Slides](/assets/090114_large_scale_environments.pdf)
+
+*Abstract:*
+
+> System provisioning and configuration management is still a huge and complicated task, especially if we talk about large scale environments. Various tools can support you and your team to address these tasks in an easy way. They can help you to work with the same principles, as we known from software engineering (like DRY). They can further help you to document your environment, in the same step as you are configuring it. And the tools will even keep your systems exactly in the state, you defined them to be.
+>
+> We show you the tools, which will keep your sysadmin life easier and let you go to the pub at 4 o'clock.
diff --git a/_posts/2009-05-01-101-puppet-module.markdown b/_posts/2009-05-01-101-puppet-module.markdown
new file mode 100644
index 0000000..e18213a
--- /dev/null
+++ b/_posts/2009-05-01-101-puppet-module.markdown
@@ -0,0 +1,36 @@
+---
+layout: post
+title: 101 Puppet Module
+---
+
+101 puppet modules @ [Puzzle ITC](http://puzzle.ch)! Worth mentioning that in a blogpost in the tech archive:
+
+[Original Link](http://www.puzzle.ch/blog/articles/2009/05/01/101-puppet-module/)
+
+> Die Integration der Systemumgebung(en) in Puppet wächst bei Puzzle von Tag zu Tag, mittlerweile sind wir bei über 100 Puppet Modulen angelangt.
+
+Vor kurzem schrieben wir eine kleine [Einführung](http://www.puzzle.ch/blog/tech/2009/03/16/configuration-management-leicht-gemacht/) in Puppet sowie die Grundüberlegungen, eine Umgebung voll automatisch zu verwalten. Eines der zentralen Elemente für die Organisierung von Recipes, den Konfigurationsbeschrieben, sind Module. Module bündeln dabei die verschiedenen Elemente einer Puppet-Konfiguration in einer logischen Einheit. Neben Recipes, bietet [Puppet](http://reductivelabs.com/products/puppet/) weiter eigene [Resource-Types](http://reductivelabs.com/trac/puppet/wiki/LanguageTutorial#resources), [Facts](http://reductivelabs.com/products/factera)/ (Informationen über das Hostsystem) oder [Funktionen](http://reductivelabs.com/trac/puppet/wiki/FunctionReference) (Erweiterungen der Sprache) an, welche logisch in den [Modulen](http://reductivelabs.com/trac/puppet/wiki/ModuleOrganisation) organisiert werden. Sie bilden somit eines der zentralen Elemente einer Umgebung, die mit Hilfe von Puppet verwaltet wird.
+
+Flexibilität
+------------
+
+Die verschiedenen Features der Puppet-eigenen externen DSL ([Domain Specific Language](http://de.wikipedia.org/wiki/Dom%C3%A4nenspezifische_Sprache)) ermöglichen der System IngenieurIn, die Module in sich selbst nochmals sehr modular aufzubauen. Einerseits können so die kleinen (oder grösseren) Unterschiede von Betriebssystemen adressiert werden. Auf der anderen Seite ermöglicht dies, Module für viele verschiedene Anwendungszwecke zu schreiben, ohne Konfigurationsbeschriebe wiederholen zu müssen.
+
+Module gliedern sich somit meistens nach dem Service, welchen sie beschreiben und konfigurieren oder fassen wiederum verschiedene Module zu einem Meta-Modul zusammen, um ein Zusammenspiel von verschiedenen Modulen resp. Services zu beschreiben.
+
+Module der Puppet Community
+---------------------------
+
+In der wachsenden Puppet Community finden sich verschiedene Quellen, unter welchen Module gefunden werden können. Dies kann einerseits zur Inspiration nützlich sein, anderseits kann unter Umständen das Modul selber gleich verwendet werden. Dank dem modernen Versionskontrollsystem *[git](http://www.git-scm.com/)* ist das sogenannte forken (das Führen eines eigenen Entwicklungstrees eines Projektes) sehr einfach möglich. Damit kann ein Entwickler auf die Entwicklungsgeschichte zurückgreifen und einfach eigene Änderungen einpflegen. Diese können wiederum von der ursprünglichen EntwicklerIn übernommen werden. (Falls sie das Thema *git* neugierig gemacht hat, so schauen sie bald wieder vorbei! In Kürze werden wir eine Einführung zu *git* präsentieren).
+
+Die gemeinsame Durchführung von verschiedenen Projekten mit ein und demselben Modul führt zu immer ausgereifteren und umfangreicheren Modulen, welche komplexe Konfigurationen ermöglichen.
+
+Module von Puzzle ITC
+---------------------
+
+Das Operations-Team von Puzzle benützt verschiedene bereits bestehende Module, hat viele davon erweitert und auch sehr viele Module neu geschrieben. Mittlerweile sind wir bei über 100 Modulen angelangt und es werden täglich mehr. Alle Module sind unter einer freien Lizenz veröffentlicht und wir versuchen unsere Änderungen möglichst in die ursprünglichen Module zurück zugeben. Eine kleine Auswahl von Modulen finden sie unter unserem [GitHub Account](http://www.github.com/puzzle). Weitere Module folgen in Kürze. Zudem arbeiten wir an der Vereinfachung des Veröffentlichungsprozesses von Modulen. Bleiben Sie also gespannt!
+
+Für die Visualisierung unseres Modul-Repositories haben wir mit [Wordle](http://www.wordle.net/) die untenstehende Tag Cloud erstellt, welche der [Creative Commons Attribution United States Lizenz](http://creativecommons.org/licenses/by/3.0/us/) untersteht. Die Gewichtung der verschiedenen Modulnamen entspricht dem Codeumfang der Module.
+
+![Puppet Modules Tag Cloud](/images/puppet_modules_tag_cloud.png "Puppet Modules Tag Cloud")
+
diff --git a/_posts/2009-09-16-configuration-management-leicht-gemacht.markdown b/_posts/2009-09-16-configuration-management-leicht-gemacht.markdown
new file mode 100644
index 0000000..e8ab0c7
--- /dev/null
+++ b/_posts/2009-09-16-configuration-management-leicht-gemacht.markdown
@@ -0,0 +1,53 @@
+---
+layout: post
+title: Configuration Management leicht gemacht
+---
+
+Blogpost in german in Puzzle ITC's techblog about puppet. I repost the article here to archive my publications
+
+[Original Link](http://www.puzzle.ch/blog/articles/2009/03/16/configuration-management-leicht-gemacht/)
+
+> Wachsende IT-Umgebungen stellen System Engineers immer aufs Neue vor gleiche oder zumindest ähnliche Probleme. Mit der Zeit erarbeiten sich Administratoren Best Practises, wie sie Services aufbauen, betreiben und managen. Diese Best Practises können mit dem Begriff *[code style](http://de.wikipedia.org/wiki/Programmierstil)* aus der Softwareentwicklung verglichen werden. Dies führt einerseits zu sehr vielen repetitiven Tätigkeiten und andererseits zu viel Abstraktion, damit Konfigurationen und Abläufe möglichst wiederverwendet werden können.
+
+Puppet
+------
+
+Seit ein paar Jahren entwickelt die Firma [reductive labs](http://www.reductivelabs.com) ein quelloffenes Konfigurationsmanagement-Werkzeug mit dem Namen [Puppet](http://reductivelabs.com/trac/puppet), welches genau diese Bedürfnisse adressiert. Puppet erlaubt es, die Systemumgebungen in einer deklarativen Sprache, in sogenannten Manifests, abstrakt zu beschreiben. Puppet sorgt dann dafür, dass sich die einmal aufgesetzten Systeme jederzeit in diesem definierten Status befinden. Dabei spielt es keine Rolle, ob jemand eine homogene Umgebung von Systemen einer einzigen Linux Distribution betreiben will oder ob er es mit einer heterogenen Umgebung zu tun hat, die aus verschiedenen unixoiden Systemen besteht. Puppet weiss, auf welchem System es ein bestimmtes Paket auf welche Art installieren muss und prüft hinterher, ob dieses auch installiert und richtig konfiguriert wurde. Falls ein Paket fehlt, nicht oder falsch konfiguriert wurde, dann korrigiert Puppet den Zustand.
+
+Die Eigenschaften der Puppet-eigenen [DSL](http://de.wikipedia.org/wiki/Dom%C3%A4nenspezifische_Sprache) ermöglichen es, allgemeine Definitionen mit kleinem Aufwand deklarativ an spezielle Bedürfnisse anzupassen, zusammengehörendes zu gruppieren oder Abhängigkeiten zu modellieren. Diese Eigenschaften adressieren dabei verschiedene (Teil-)Bereiche eines modernen Managements von Systemumgebungen:
+
+Don't repeat yourself
+---------------------
+
+Mit Puppet kann die Konfiguration verschiedener unixoiden Systeme über Vererbung spezialisiert werden. Eine Änderung wird nur an einer Stelle durchgeführt. Dadurch müssen keine Konfiguration mehr durch Copy & Paste dupliziert und angepasst werden. Dies führt zu einer einheitlichen Konfigurationsstruktur und minimiert die üblichen Fehler in Copy & Paste Umgebungen.
+
+Flächendeckende Verteilung
+--------------------------
+
+Anpassungen werden automatisch auf *alle* relevanten Systeme verteilt. Es gehen dabei keine Systeme vergessen weil diese (noch) nicht in der entsprechenden Dokumentation aufgeführt waren oder gerade nicht erreichbar waren.
+
+h2. Verhindern von Änderungen
+
+Puppet sorgt dafür, dass das System in einem definierten Zustand bleibt und manuelle Änderungen an verwalteten Konfigurationsdateien rückgängig gemacht werden.
+
+Durch den Einsatz von Puppet bleiben komplexe Umgebungen übersichtlich und der Systemadministrator erspart sich repetitive Tätigkeiten. So schreibt er die Konfiguration eines Webservers zum Beispiel genau einmal.
+
+h2. Master your puppets
+
+Die zentrale Instanz einer durch Puppet gemanagten Umgebung ist der Puppetmaster. Er zieht die nötigen Informationen für eine Clientkonfiguration zusammen, generiert diese und lässt anschliessend die Puppen spielen, welcher die Konfiguration auf den ausgewählten Systemen anwenden. Dabei werden Abhängigkeiten eingehalten, bei Konfigurationsänderungen Dienste neu gestartet, Überwachung für installierte Dienste auf dem Überwachungsserver eingetragen und so weiter. Der Systemadministrator ist in der Modellierung seiner Umgebung völlig frei.
+
+Community
+---------
+
+Rund um Puppet hat sich eine schnell wachsende Community entwickelt. So gibt es zahlreiche Personen, die [Module von Diensten bereitstellen](http://reductivelabs.com/trac/puppet/wiki/PuppetRecipes). Da [reductive labs](http://www.reductivelabs.com/) einen offenen Entwicklungsprozess verfolgt, beteiligen sich immer mehr Fachleute und implementieren neue Funktionen direkt in Puppet. Ein erst kürzlich eingeführtes Feature generiert zum Beispiel eine [HTML-Dokumentation](http://reductivelabs.com/trac/puppet/wiki/PuppetManifestDocumentation) aus den Puppet Manifests. Damit kann der Systemadministrator mit Hilfe von Puppet und RDoc automatisiert eine Dokumentation erstellen, welche dem aktuellen Stand seiner Systeme entspricht.
+
+Puzzle masters (your?) puppets
+------------------------------
+
+Puzzle setzt seit ca. einem Jahr Puppet für das Management der internen Serverinfrastruktur ein und wendet es zunehmend auch erfolgreich bei Kunden an. Dank Puppet hat sich die Administration von Systemen bedeutend vereinfacht und gleichzeitig wurde die Umgebung einheitlicher gestaltet. Viele Fehler, die sich durch repetitive Tätigkeiten eingeschlichen haben, wurden minimiert, wenn nicht gar ganz vermieden. Es besteht nicht mehr die Möglichkeit, dass Systeme vergessen gehen oder sich die Konfigurationen von einzelnen Systemen zunehmend von unserer Best Practise entfernen. Neue Systeme werden mit Hilfe von Puppet automatisch in unser Backupsystem aufgenommen und installierte Services in unser Monitoring System eingetragen und so weiter. Der Aufwand für die Installation eines neuen Systems in Zusammenarbeit mit [Cobbler](https://fedorahosted.org/cobbler/wiki/) beschränkt sich noch auf die Erfassung von Hostname und IP-Adresse.
+
+Mit Hilfe des Versionskontrollsystems [Git](http://git-scm.com/), mit welchem wir unsere Manifests verwalten, erreichen wir dabei nicht nur ein Worklog, welcher die Verfolgung von Änderungen ermöglicht, sondern auch ein einfaches Rollback System, so dass wir sehr einfach auf einen früheren Konfigurationsstand springen können. In Zusammenarbeit mit weiteren Features von Puppet können wir dabei neu entwickelte oder geänderte Konfigurationen vorerst auch nur in einer Testumgebung auf Herz und Nieren prüfen. Die automatische Generierung einer browsebaren Dokumentation ist zudem eine automatische Dokumentation unserer Systeme und deren Konfiguration.
+
+Neben Code Contribution bei Puppet stellt Puzzle auch einige der (weiter-)entwickelten Module der interessierten Öffentlichkeit zur Verfügung. Eine Auswahl an Modulen finden Sie dabei in unseren [GitHub Repository](http://www.github.com/puzzle).
+
+Es gibt noch viele weitere Aspekte von Puppet vorzustellen: Seien sie also gespannt auf weitere Beiträge zu diesem Thema. Am besten abonnieren sie gleich den RSS Feed zu [System Engineering](http://puzzle.ch/blog/rss/tag-suche?tag=System%20Engineering).
diff --git a/_posts/2009-09-23-getting-started.markdown b/_posts/2009-09-23-getting-started.markdown
index df8c48d..3b51bff 100644
--- a/_posts/2009-09-23-getting-started.markdown
+++ b/_posts/2009-09-23-getting-started.markdown
@@ -2,4 +2,4 @@
layout: post
title: Getting started
---
-So I finally started this website. It's compiled by <a href="http://github.com/mojombo/jekyll/">Jekyll</a> and its code lives <a href="http://git.scrit.ch/?p=scrit.ch.git">here</a>.
+Finally I collected all my spread articles and information and started this website. It's compiled by <a href="http://github.com/mojombo/jekyll/">Jekyll</a> and its code lives <a href="http://git.scrit.ch/?p=scrit.ch.git">here</a>.
diff --git a/_posts/2009-10-22-hinter-den-kulissen-von-github.markdown b/_posts/2009-10-22-hinter-den-kulissen-von-github.markdown
new file mode 100644
index 0000000..f974771
--- /dev/null
+++ b/_posts/2009-10-22-hinter-den-kulissen-von-github.markdown
@@ -0,0 +1,38 @@
+---
+layout: post
+title: Hinter den Kulissen von GitHub
+---
+
+After reading a very interesting article about the new infrastructure of [Github](http://github.com) I summarized these things for the interested german reader on Puzzle's techblog:
+
+[Original Link](http://www.puzzle.ch/blog/articles/2009/10/22/hinter-den-kulissen-von-github/)
+
+> Die Leute rund um GitHub veröffentlichten eine Reihe von Artikeln, welche die Details ihrer neuen Umgebung erläutern. Mehrheitlich verwenden sie Ruby im bewährten Unix-Stil (für jeden Job das passende kleine Tool).
+
+Auf Schnelligkeit getrimmt
+--------------------------
+
+Eine Anfrage an [GitHub](http://github.com/) (ob nun via HTTP, SSH oder GIT) wird durch diverse Proxy-Systeme und Ruby-Skripte gerouted um schlussendlich am richtigen Ort zu landen. GitHub-Benutzer haben dabei sicher bemerkt, dass dies seit dem Umzug innert kürzester Zeit geschieht.
+
+[Hauptartikel im GitHub Blog: How We Made GitHub Fast](http://github.com/blog/530-how-we-made-github-fast)
+
+Unicorn
+-------
+
+Ein interessantes Detail ist die Verwendung von [Unicorn](http://unicorn.bogomips.org/) als Webapplicationsserver für das Web-Fronted, für welches Ruby on Rails verwendet wird. Ein Nebenartikel erläutert die Funktionsweise und den Vorteil von Unicorn, geht aber auch darauf ein, wieso Unicorn unter Umständen nicht für andere Andwendungsfälle geeignet ist, beziehungsweise wieso [Passenger](http://www.modrails.com/) die bessere Wahl sein könnte.
+
+[Artikel: Unicorn](http://github.com/blog/517-unicorn)
+
+BERT
+----
+
+Weiter ist auch die Verwendung eines neuen, eigenen RPC-Mechanismus ([BERT](http://bert-rpc.org/) - Binary ERlang Term) interessant. Dieser wird verwendet um die Git-Repositories als Webservice verfügbar zu machen und bringt ein eigenes Serialisierungsformat mit sich. Der Artikel erläutert dabei auch, wieso sich die Leute rund um GitHub dazu entschieden haben eine eigene Schnittstelle zu entwicklen und wieso XML-RPC und SOAP für sie keine Lösung darstellten.
+
+[Artikel: Introducing BERT and BERT-RPC](http://github.com/blog/531-introducing-bert-and-bert-rpc)
+
+Fazit
+-----
+
+GitHub hat mittlerweile hohen Ansprüchen an Bandbreite zu genügen und eine stattliche Anzahl an Site-Hits zu bewältigen. Dank einem ausgeklügelten Zusammenspiel von bewährten Konzepten, neuen Technologien und nicht zuletzt mit Ruby, Rails sowie einem bisschen Erlang kann die neue Infrastruktur diesen Anforderungen vollumfänglich gerecht werden.
+
+Bei Puzzle verwenden wir Git übrigens schon seit einiger Zeit und halten uns auf GitHub unter [http://github.com/puzzle/](http://github.com/puzzle/) eine steigende Anzahl an öffentlichen Repositories.
diff --git a/_posts/2009-10-29-augmenting-static-source-views-in-ides-with-dynamic-information.markdown b/_posts/2009-10-29-augmenting-static-source-views-in-ides-with-dynamic-information.markdown
new file mode 100644
index 0000000..43d8bb5
--- /dev/null
+++ b/_posts/2009-10-29-augmenting-static-source-views-in-ides-with-dynamic-information.markdown
@@ -0,0 +1,34 @@
+---
+layout: post
+title: Augmenting Static Source Views in IDEs with Dynamic Information
+---
+
+The current status of my master thesis is reflected in the following paper:
+
+> David Röthlisberger, Marcel Härry, Alex Villazón, Danilo Ansaloni, Walter Binder, Oscar Nierstrasz, and Philippe Moret. Augmenting Static Source Views in IDEs with Dynamic Metrics. In Proceedings of the 25th International Conference on Software Maintenance (ICSM 2009), p. 253—262, IEEE Computer Society, Los Alamitos, CA, USA, 2009.
+
+We published also a *tool demo* in which we show the current status of *Senseo*, the tool I'm working on for my master thesis.
+
+> David Röthlisberger, Marcel Härry, Alex Villazón, Danilo Ansaloni, Walter Binder, Oscar Nierstrasz, and Philippe Moret. Senseo: Enriching Eclipse's Static Source Views with Dynamic Metrics. In Proceedings of the 25th International Conference on Software Maintenance (ICSM 2009), p. 383—384, IEEE Computer Society, Los Alamitos, CA, USA, 2009. Tool demo.
+
+Paper: Augmenting Static Source Views in IDEs with Dynamic Information
+----------------------------------------------------------------------
+
+Publication in the [scg](http://scg.unibe.ch)-Bibliography: [Link](http://scg.unibe.ch/scgbib?query=Roet09b&display=abstract)
+
+[PDF](/assets/Roet09bDynamicInfoEclipse.pdf)
+
+*Abstract:*
+
+> Mainstream IDEs such as Eclipse support developers in managing software projects mainly by offering static views of the source code. Such a static perspective neglects any information about runtime behavior. However, object-oriented programs heavily rely on polymorphism and late-binding, which makes them difficult to understand just based on their static structure. Developers thus resort to debuggers or profilers to study the system's dynamics. However, the information provided by these tools is volatile and hence cannot be exploited to ease the navigation of the source space. In this paper we present an approach to augment the static source perspective with dynamic metrics such as precise runtime type information, or memory and object allocation statistics. Dynamic metrics can leverage the understanding for the behavior and structure of a system. We rely on dynamic data gathering based on aspects to analyze running Java systems. By solving concrete use cases we illustrate how dynamic metrics directly available in the IDE are useful. We also comprehensively report on the efficiency of our approach to gather dynamic metrics.
+
+Tool demo: Senseo: Enriching Eclipse's Static Source Views with Dynamic Metrics
+-------------------------------------------------------------------------------
+
+Publication in the [scg](http://scg.unibe.ch)-Bibliography: [Link](http://scg.unibe.ch/scgbib?query=Roet09c&display=abstract)
+
+[PDF](/assets/Roet09cSenseo.pdf)
+
+*Abstract:*
+
+> Maintaining object-oriented systems that use inheritance and polymorphism is difficult, since runtime information, such as which methods are actually invoked at a call site, is not visible in the static source code. We have implemented Senseo, an Eclipse plugin enhancing Eclipse's static source views with various dynamic metrics, such as runtime types, the number of objects created, or the amount of memory allocated in particular methods.
diff --git a/_posts/2009-11-04-lasst-die-puppen-tanzen-effiziente-verwaltung-von-konfigurationen-und-systemen-mittels-puppet.markdown b/_posts/2009-11-04-lasst-die-puppen-tanzen-effiziente-verwaltung-von-konfigurationen-und-systemen-mittels-puppet.markdown
new file mode 100644
index 0000000..42bc550
--- /dev/null
+++ b/_posts/2009-11-04-lasst-die-puppen-tanzen-effiziente-verwaltung-von-konfigurationen-und-systemen-mittels-puppet.markdown
@@ -0,0 +1,10 @@
+---
+layout: post
+title: Lasst die Puppen tanzen Effiziente Verwaltung von Konfigurationen und Systemen mittels Puppet
+---
+
+[Puzzle ITC](http://puzzle.ch) has an annual Tech Talk Event, where I presented this year how me manage systems with puppet.
+
+Impressions from the event can be found on the [Puzzle Website](http://www.puzzle.ch/blog/articles/2009/11/04/impressionen-vom-puzzle-tech-talk-2009/)
+
+[Slides](/assets/Puppet_TechTalk09.pdf)
diff --git a/_posts/2010-04-08-effizientes-linux-systems-management.markdown b/_posts/2010-04-08-effizientes-linux-systems-management.markdown
new file mode 100644
index 0000000..f927488
--- /dev/null
+++ b/_posts/2010-04-08-effizientes-linux-systems-management.markdown
@@ -0,0 +1,12 @@
+---
+layout: post
+title: Effizientes Linux Systems Management
+---
+
+At the semi-annual [OpenExpo](http://www.open-expo.ch) I gave a talk about efficient management of Linux systems:
+
+[Slides](/assets/linux_systems_management.pdf)
+
+There is also a [youtube-Video](http://www.youtube.com/watch?v=zYWMxf-a5Kw) from my presentation.
+
+[Blogpost on Puzzle's website](http://www.puzzle.ch/blog/articles/2010/04/08/effizientes-linux-systems-management/)
diff --git a/_posts/2010-04-20-lass-die-puppen-tanzen.markdown b/_posts/2010-04-20-lass-die-puppen-tanzen.markdown
new file mode 100644
index 0000000..467dfc3
--- /dev/null
+++ b/_posts/2010-04-20-lass-die-puppen-tanzen.markdown
@@ -0,0 +1,23 @@
+---
+layout: post
+title: Lass die Puppen tanzen!
+---
+
+Recently I wrote an article in the OSS column of the [ICT Kommunikation](http://www.ictk.ch) magazin:
+
+[Original Link](http://www.ictk.ch/?id=59&print=1&type=98&tx_ttnews[tt_news]=58&no_cache=1)
+
+> Mit «Puppet» automatisiert der Linux/Unix- Systemadministrator Konfiguration und Betrieb beliebig grosser Server-Umgebungen.
+
+Viele IT-Abteilungen verwalten ihre Server so, wie die Automobilindustrie Anfang des letzten Jahrhunderts Fahrzeuge herstellte: Eine einzelne Person baute ein Auto zusammen und kümmert sich anschliessend auch um dessen Service. Da dieses Vorgehen teuer ist, führten fast alle Autohersteller die Fliessbandarbeit ein. So können sie heute mit standardisierten Werkzeugen Massanfertigung in grossen Stückzahlen und damit individuelle Fahrzeuge zu tiefen Kosten anbieten. Die gleichen Möglichkeiten bieten sich bei der Handhabung von IT-Umgebungen, in denen Fachleute zahlreiche Server konfigurieren und betreiben müssen. Trotz der Unterschiede finden sich immer wieder automatisierbare Gemeinsamkeiten.
+
+Seit einigen Jahren entwickelt die Firma [Reductivelabs](http://www.reductivelabs.com/) ein quelloffenes Konfigurationsmanagement- Werkzeug namens Puppet, welches genau diese Bedürfnisse adressiert. Es beschreibt die Systemumgebungen in einer deklarativen Sprache, in sogenannten Manifests. Und Puppet sorgt auch dafür, dass sich die einmal aufgesetzten Systeme jederzeit in diesem definierten Status befinden. Dabei spielt es keine Rolle, ob es sich um eine homogene Umgebung auf der Basis einer einzigen Linux-Distribution handelt oder um ein heterogenes Umfeld mit verschiedenen Unix-artigen Systemen. Puppet weiss, wie es auf dem jeweiligen System ein bestimmtes Paket installieren muss, und prüft hinterher, ob dieses auch korrekt installiert und konfiguriert wurde. Wenn nicht, korrigiert Puppet den fehlerhaften Zustand.
+
+Die Eigenschaften der Puppet-eigenen Sprache ermöglichen es, allgemeine Definitionen mit geringem Aufwand an spezielle Bedürfnisse anzupassen, Zusammengehörendes zu gruppieren oder Abhängigkeiten zu modellieren. So bleiben komplexe Umgebungen übersichtlich, und der Systemadministrator erspart sich repetitive Tätigkeiten. Er schreibt die Konfiguration beispielsweise eines Webservers genau ein Mal. Die zentrale Instanz, der Puppetmaster, wird dann die Puppen spielen lassen und die Konfiguration auf den ausgewählten Systemen anwenden. Dabei werden Abhängigkeiten eingehalten, betroffene Dienste neu gestartet, die Überwachung für installierte Dienste auf dem zuständigen Server eingetragen und so weiter. Der Systemadministrator ist in der Modellierung seiner Umgebung völlig frei. Weitere Funktionen von Puppet erlauben es ihm, eine neue Konfiguration zuerst in der Testumgebung zu erhärten und anschliessend auf die Produktivsysteme anzuwenden.
+
+Rund um Puppet hat sich eine schnell wachsende Community entwickelt. Zahlreiche Personen stellen Module für verschiedene Server-Dienste bereit. Da Reductivelabs einen offenen Entwicklungsprozess verfolgt, beteiligen sich immer mehr Fachleute daran und implementieren neue Funktionen direkt in Puppet. Ein erst kürzlich eingeführtes Feature generiert direkt aus den Puppet Manifests eine HTML-Dokumentation. Damit kann der Systemadministrator eine Dokumentation erstellen, welche dem aktuellen Stand seiner Systeme entspricht.
+
+Mit der Virtualisierung und der damit verbundenen Zunahme von zu administrierenden und zu integrierenden Systemen werden Werkzeuge wie Puppet für die tägliche Arbeit unverzichtbar. Cloud Computing wird solchen Tools nochmals Schub verleihen. Dann müssen Systemadministratoren ihre Serverumgebung noch flexibler verwalten, weil die Anzahl wie auch die Vielfalt der Systeme rasant ansteigt.
+
+
+Der Autor ist Linux- System-Ingenieur beim Open- Source-Dienstleister [Puzzle ITC](http://www.puzzle.ch).
diff --git a/_posts/2010-06-03-ein-erfahrungsbericht-vom-puppetcamp-2010.markdown b/_posts/2010-06-03-ein-erfahrungsbericht-vom-puppetcamp-2010.markdown
new file mode 100644
index 0000000..b3fbb90
--- /dev/null
+++ b/_posts/2010-06-03-ein-erfahrungsbericht-vom-puppetcamp-2010.markdown
@@ -0,0 +1,85 @@
+---
+layout: post
+title: Ein Erfahrungsbericht vom Puppetcamp 2010
+---
+
+Read from my journey to the European Puppetcamp 2010 on [Puzzle ITC's](http://puzzle.ch) techblog:
+
+[Original Link](http://www.puzzle.ch/blog/articles/2010/06/03/ein-erfahrungsbericht-vom-puppetcamp-2010/)
+
+> Am Puppetcamp tauschen sich EntwicklerInnen von Puppet und die Community untereinander aus. Mit dabei waren dieses Jahr im belgischen Ghent auch zwei Devops von Puzzle.
+
+Puzzler am Puppetcamp
+---------------------
+
+Letztes Jahr fand in San Francisco zum ersten Mail ein [Puppetcamp](http://puppetcamp.org/) auf Initative von [Puppet Labs](http://puppetlabs.com/) statt. In diesem Jahr organisierte der langjährige Puppeteer und Devops-Evangelist [Patrick Debois](http://www.jedi.be/) ein Puppetcamp in Ghent (Belgien). Simon Josi und ich haben uns das mal angesehen.
+
+Keynote
+-------
+
+[Luke Kanies](http://twitter.com/puppetmasterd) - Projektgründer von Puppet und CEO von Puppet Labs - gab in der Keynote einen Überblick über den aktuellen Stand von Puppet sowie einen Ausblick auf die nächsten Eckpunkte in der Entwicklung von Puppet und dessen Ökosystem. Wichtige Ankündigungen waren:
+
+* Das nächste Release von Puppet wird als Version 2.6 erscheinen. Der Sprung von 0.25 auf 2.6 unterstreicht die Stabilität sowie die Etablierung und Verbreitung von Puppet.
+* Das neue Release wird den Umstieg auf eine REST-basierte API vollenden und weitere Verbesserungen in Performance und Ressourcenverbrauch bringen. Viele dieser Änderungen sind dank Feedback und Testing der Community entstanden.
+* Das neue Release wird eine interne, Ruby-basierte DSL enthalten, welche es erlaubt, Manifests auch direkt in Ruby zu schreiben. Die externe DSL wird jedoch weiterhin bestehen und die Hauptumgebung für die meisten Puppeteers bleiben.
+* Ein weiteres Highlight war die Ankündigung der [Puppet Forge](http://forge.puppetlabs.com/), einem zentralen Verzeichnis für Puppet Module aus der Community. Puppet Forge ermöglicht das einfache publizieren, sharen und finden von Puppet-Modulen. So fördert Puppet Labs den Austausch innerhalb der äusserst aktiven Puppet Community und bietet einen Dreh- und Angelpunkt für die Entwicklung von Modulen. Die aktuelle Version der Plattform ist ein erster Wurf und weitere Ideen werden im Bugtracker gerne aufgenommen.
+* Puppet-Dashboard wird in naher Zukunft mit weiteren Neuerungen aufwarten und noch mehr Möglichkeiten für die Auswertung wie auch für die Konfigurationen der Puppet-Umgebung bieten.
+* Eine besser Integration von Puppet mit weiteren Werkzeugen wie zum Besipiel MCollective soll die Orchestrierung einer automatisierten Infrastuktur besser unterstützen.
+* David Schmitt von dasz.at arbeitet im Auftrag von Puppet Labs aktiv an der Windows-Unterstützung von Puppet.
+
+Weiter sprach Luke Kanies über die Entwicklung von Puppet Labs als Firma hinter dem Projekt Puppet und hob die verschiedenen Einsatzgebiete von Puppet hervor. So zum Beispiel die Integration von Puppet in die [Ubuntu Cloud](http://www.puppetlabs.com/blog/puppet-in-the-ubuntu-cloud/) und deren Auslieferung auf Dell-Servern.
+
+Embedded Puppet
+---------------
+
+![Puppetcamp Presentation](/images/pcamppresentation.jpg "Puppetcamp Presentation")
+
+
+Der nächste Vortrag ("Slides":http://projects.tryphon.eu/blog/2010/05/28/puppetcamp-embedded-systems/) widmete sich einem speziellen Einsatzgebiet von Puppet: Die Firma "Tryphon":http://www.tryphon.eu nutzt Puppet einerseits als Buildtool um ihre embedded Multimedia-Devices zu bootstrappen, andererseits um lokale Useränderungen zu propagieren. Interessant dabei ist der Einsatz von Puppet auf embedded Geräten mit wenig Arbeitsspeicher und schwacher CPU und einem Read-Only Filesystem, sowie die Kombination eines Webinterfaces und Puppet um Änderungen z.B. an der IP-Adresse des Gerätes zu propagieren. "Alle Tools von Tryphon":http://projects.tryphon.eu/ sind unter der GPL veröffentlicht.
+
+Puppet @ New York Stock Exchange
+--------------------------------
+
+[Rafael Brito](http://twitter.com/Rafaelbrito) vom New York Stock Exchange zeigte uns, wie das Operation und System Engineering Team des NYSE Puppet einsetzt. ([Vortraginfos](http://puppetcamp.org/europe-2010-ghent/schedule-and-speakers/#speaker3)). NYSE verwaltet mit Puppet Datacenter rund um die Welt und setzt Änderungen an tausenden von Red-Hat Systemen um. Spannend ist hier, wie das Team Puppet für die komplette Entwicklung aller Systemänderungen benutzt, diese jedoch nur sehr konservativ (4mal im Jahr) anwendet. Rafael unterstreicht, wie ihnen Puppet eine enorme Nachvollziehbarkeit von Änderungen sowie deren Dokumentation ermöglicht. Der Vortrag zeigt, dass sich Puppet auch in anspruchsvollen Umgebungen mit konservativem Change-Management integrieren lässt und zum Management von geschäftskritischen Enterprise-Umgebungen beiträgt.
+
+Rafael Brito wird diesen Vortrag auch am [Red Hat Summit in Boston](http://www.redhat.com/promo/summit/2010/) halten.
+
+Open Spaces Day 1
+-----------------
+
+![Openspaces](/images/openspaces.jpg "Openspaces")
+
+Nach einer kurzen Mittagspause startete das Nachmittagsprogramm, welches dem Konzept von [OpenSpaces](http://www.openspaceworld.org/cgi/wiki.cgi) folgte. Alle Teilnehmenden schlagen Themen vor, die dann auf verschiedene Blöcke aufgeteilt werden. Wichtig ist, das alle selber bestimmen, was wie diskutiert, betrachtet oder vorgestellt wird. Dies führt zu einer breiten Palette an interessanten Themen und einem regen Austausch in der Community. So diskutierten wir unter anderem den Stand der Windows-Unterstützung oder Techniken für das Testen von Manifest-Änderungen.
+
+Module Standards
+----------------
+
+[Alessandro Franceschi](http://twitter.com/alvagante) von [Lab 42](http://lab42.it) startete den zweiten und leider schon letzten Tag. Er sprach über Standards von [Puppet Modulen](http://www.puzzle.ch/blog/tech/2009/05/01/101-puppet-module/) und der Entwicklung eines Grundsets von offiziell unterstützten Modulen. Alessandro erklärte verschiedene Best Practices der Modul-Entwicklung sowie Features von Puppet, welche die Entwicklung von Modulen unterstützen. Er schloss mit dem Vorschlag zur Entwicklung einiger Standard-Module und lud zur weiteren Diskussion am Nachmittag ein
+
+Compliance Management mit Puppet und Splunk
+-------------------------------------------
+
+[Jeff McCune](http://twitter.com/0xEFF) von Puppet Labs präsentierte die Kombination von Puppet und [Splunk](http://www.splunk.com/), einem Analyse-Tool für Log-Meldungen. Damit lassen sich Änderungen innerhalb der Infrastruktur nachvollziehen, was das Compliance Management vereinfacht. Jeff integriert die Reports von Puppet (Logmeldungen der Änderungen die Puppet an einem System durchführte) mit der Versionsverwaltung (z.B. [git](http://git-scm.com)) und dem Change-Management (z.B. einem Ticketsystem) innerhalb von Splunk, welches die Infrastruktur-Logs zentral auswertet. Änderungen auf Systemen lassen sich so ganz einfach den entsprechenden Puppet-Code Zeilen zuweisen.
+
+Puppet @ Optiver
+----------------
+
+Die Systemingenieure von [Optiver](http://www.optiver.com/) erzählten von Puppets Einsatz in einer äusserst zeit- und ressourcenkritischen Trading-Umgebung. Viele Leute haben dort Root-Zugriff auf die Systeme und nehmen den ganzen Tag hindurch Änderungen vor. Puppet bringt die Tradingsysteme auf den nächsten Tag hin wieder in den definierten Zustand. Sie zeigten weiter, wie sie Puppetänderungen über ein auf Django basierendes Webinterface umsetzen. Dieses gibt laufend Auskunft über den Zustand der Systeme und ermöglicht so einen schnellen Zugriff auf die verschiedenen Aspekte der automatisierten Umgebung.
+
+Open Spaces Day 2
+-----------------
+
+![Leffe](/images/leffe.jpg "Leffe")
+
+Open Spaces blieb auch am zweiten Nachmittag spannend. Wir haben Themen aus den Vorträgen besprochen, die Architektur von Puppet angeschaut und sind in den Code eingetaucht. Interessant war die Vorstellung von [MCollective](http://code.google.com/p/mcollective/) und die Integration von Puppet. Eine derart zentrale Steuerung einer grossen Anzahl von Hosts bietet verschiedene Möglichkeiten: Zum Beispiel das Steuern von Puppet-Durchgängen oder das gleichzeitige Versetzen verschiedener Hosts in einen Wartungsmodus.
+
+In der "Ask-Luke" Session stellte sich Luke Kanies den Fragen, Kommentaren und Anmerkungen der Puppet Community, erläuterte einzelne Konzepte und erklärte wie sich Puppet künftig neben den anderen Tools positionieren wird.
+
+Zum Abschluss besuchten wir mit anderen Puppeteers die [lokale Fedora 13 Release Party](http://fedoraproject.org/wiki/Release_Party_F13_Ghent) sowie verschiedene Bars in Ghents Innenstadt.
+
+Unser Fazit
+-----------
+
+Das [Puppetcamp 2010](http://www.puppetcamp.org) war ein spannender Event, welcher uns neben dem technischen Austausch auch die Möglichkeit bot, E-Mail Adressen und Nicknames mit Gesichtern zu verknüpfen. Für eine vitale Community ist das sehr wertvoll. Die Vorträge haben gezeigt, dass Puppet als wichtiges Werkzeug in der Systemautomatisierung schon sehr weit verbreitet ist. Das Thema bleibt definitiv spannend und es kommen einige Neuerungen auf uns zu.
+
+Bei Puzzle ITC beteiligen wir uns weiterhin an der Entwicklung von Puppet. Wir publizieren selber entwickelte Module und halten die Ohren im Bereich der Systemautomation für Sie offen. Haben wir Sie neugierig gemacht oder haben Sie schon länger Fragen zum Thema? Zögern sie nicht, uns zu [kontaktieren](http://puzzle.ch/kontakt/). Wir beraten sie gerne, zeigen Möglichkeiten auf und unterstützen sie auf dem Weg zur (voll-)automatisierten Systemumgebung.
diff --git a/_posts/2010-06-08-augmenting-eclipse-with-dynamic-information.markdown b/_posts/2010-06-08-augmenting-eclipse-with-dynamic-information.markdown
new file mode 100644
index 0000000..5461d2d
--- /dev/null
+++ b/_posts/2010-06-08-augmenting-eclipse-with-dynamic-information.markdown
@@ -0,0 +1,14 @@
+---
+layout: post
+title: Augmenting Eclipse with Dynamic Information
+---
+
+Finally, I delivered my master thesis: Augmenting Eclipse with Dynamic Information.
+
+Publication in the [scg](http://scg.unibe.ch)-Bibliography: [Link](http://scg.unibe.ch/scgbib?query=Haer10a&display=abstract)
+
+[PDF](/assets/Haer10a.pdf)
+
+*Abstract:*
+
+> Traditional IDEs such as Eclipse provide a broad range of supportive tools and views to manage and maintain software projects. However, they provide developers mainly with static views on the source code neglecting any information about runtime behavior. As object-oriented programs heavily rely on polymorphism and late-binding, it is difficult to understand such programs only based on their static structure. Developers therefore tend to gather runtime information with debuggers or profilers to reason about dynamic information. Information gathered using such procedures is volatile and cannot be exploited to support developers navigating the source space to analyze and comprehend the software system or to accomplish other typical software maintenance tasks. In this thesis we present an approach to augment static source perspectives of Eclipse with dynamic information such as precise runtime type information or memory and object allocation statistics. Dynamic information can leverage the understanding for the behavior and structure of a system. We rely on dynamic data gathering based on aspects to analyze running Java systems. To integrate dynamic information into Eclipse we implemented a plugin extending the Eclipse Java Development Toolkit (JDT) called Senseo. This plugin augments existing IDE tools of Eclipse and several standard views of JDT such as the Package Explorer with dynamic information. Besides these enrichments, Senseo provides several visualizations such as an overview of the collaboration within the software system. We comprehensively report on the efficiency of our approach to gather dynamic information. To evaluate our approach we conducted a controlled experiment with 30 professional developers. The results show that the availability of dynamic information in the Eclipse IDE yields for typical software maintenance tasks a significant 17.5% decrease of time spent while significantly increasing the correctness of the solutions by 33.5%.
diff --git a/_posts/2010-09-02-exploiting-dynamic-information-in-ides-improves-speed-and-correctness-of-software-maintenance-tasks.markdown b/_posts/2010-09-02-exploiting-dynamic-information-in-ides-improves-speed-and-correctness-of-software-maintenance-tasks.markdown
new file mode 100644
index 0000000..2830869
--- /dev/null
+++ b/_posts/2010-09-02-exploiting-dynamic-information-in-ides-improves-speed-and-correctness-of-software-maintenance-tasks.markdown
@@ -0,0 +1,16 @@
+---
+layout: post
+title: Exploiting Dynamic Information in IDEs Improves Speed and Correctness of Software Maintenance Tasks
+---
+
+Based on my [master thesis](/2010/06/08/augmenting-eclipse-with-dynamic-information.html) an article for the IEEE Transactions on Software Engineering got accepted and will be published soon.
+
+> David Röthlisberger, Marcel Härry, Alex Villazón, Danilo Ansaloni, Walter Binder, Oscar Nierstrasz, and Philippe Moret. Exploiting Dynamic Information in IDEs Improves Speed and Correctness of Software Maintenance Tasks. In Transactions on Software Engineering, 2010. To appear.
+
+Publication in the [scg](http://scg.unibe.ch)-Bibliography: [Link](http://scg.unibe.ch/scgbib?query=Roet10X&display=abstract)
+
+[PDF](/assets/Roet09W-Senseo-Experiment.pdf)
+
+*Abstract:*
+
+> Modern IDEs such as Eclipse offer static views of the source code, but such views ignore information about the runtime behavior of software systems. Since typical object-oriented systems make heavy use of polymorphism and dynamic binding, static views will miss key information about the runtime architecture. In this article we present an approach to gather and integrate dynamic information in the Eclipse IDE with the goal of better supporting typical software maintenance activities. By means of a controlled experiment with 30 professional developers we show that for typical software maintenance tasks integrating dynamic information into the Eclipse IDE yields a significant 17.5\% decrease of time spent while significantly increasing the correctness of the solutions by 33.5\%. We also provide a comprehensive performance evaluation of our approach.
diff --git a/assets/090114_large_scale_environments.pdf b/assets/090114_large_scale_environments.pdf
new file mode 100644
index 0000000..e940f01
--- /dev/null
+++ b/assets/090114_large_scale_environments.pdf
Binary files differ
diff --git a/assets/Haer06a.pdf b/assets/Haer06a.pdf
new file mode 100644
index 0000000..504c785
--- /dev/null
+++ b/assets/Haer06a.pdf
Binary files differ
diff --git a/assets/Haer10a.pdf b/assets/Haer10a.pdf
new file mode 100644
index 0000000..5007457
--- /dev/null
+++ b/assets/Haer10a.pdf
Binary files differ
diff --git a/assets/Puppet_TechTalk09.pdf b/assets/Puppet_TechTalk09.pdf
new file mode 100644
index 0000000..4ff16b1
--- /dev/null
+++ b/assets/Puppet_TechTalk09.pdf
Binary files differ
diff --git a/assets/Roet09W-Senseo-Experiment.pdf b/assets/Roet09W-Senseo-Experiment.pdf
new file mode 100644
index 0000000..0c5dcaa
--- /dev/null
+++ b/assets/Roet09W-Senseo-Experiment.pdf
Binary files differ
diff --git a/assets/Roet09bDynamicInfoEclipse.pdf b/assets/Roet09bDynamicInfoEclipse.pdf
new file mode 100644
index 0000000..1d587fb
--- /dev/null
+++ b/assets/Roet09bDynamicInfoEclipse.pdf
Binary files differ
diff --git a/assets/Roet09cSenseo.pdf b/assets/Roet09cSenseo.pdf
new file mode 100644
index 0000000..8d6ba1b
--- /dev/null
+++ b/assets/Roet09cSenseo.pdf
Binary files differ
diff --git a/assets/linux_systems_management.pdf b/assets/linux_systems_management.pdf
new file mode 100644
index 0000000..3f4714b
--- /dev/null
+++ b/assets/linux_systems_management.pdf
Binary files differ
diff --git a/images/leffe.jpg b/images/leffe.jpg
new file mode 100644
index 0000000..a666ef2
--- /dev/null
+++ b/images/leffe.jpg
Binary files differ
diff --git a/images/openspaces.jpg b/images/openspaces.jpg
new file mode 100644
index 0000000..bb60be1
--- /dev/null
+++ b/images/openspaces.jpg
Binary files differ
diff --git a/images/pcamppresentation.jpg b/images/pcamppresentation.jpg
new file mode 100644
index 0000000..6b6abd5
--- /dev/null
+++ b/images/pcamppresentation.jpg
Binary files differ
diff --git a/images/puppet_modules_tag_cloud.png b/images/puppet_modules_tag_cloud.png
new file mode 100644
index 0000000..6e5cfb0
--- /dev/null
+++ b/images/puppet_modules_tag_cloud.png
Binary files differ