Archive for April, 2008

Das neue “Gesetz zur Verbesserung der Durchsetzung von Rechten des geistigen Eigentums” und einige merkwürdige Kommentare dazu

Sunday, April 20th, 2008

Hallo,

die Süddeutsche Zeitung berichtete am 11.4.2008 über das neue “Gesetz zur Verbesserung der Durchsetzung von Rechten des geistigen Eigentums”. Die etwas umfangreichere print-Ausgabe des Artikels enthielt einige statements die ich gerne kommentieren möchte.

Der rechtspolitischer Sprecher der Grünen Jerzy Montag “beklagte sich” (Formulierung laut SZ):

…[Das deutsche Gesetze geht] weit über die europäischen Vorgaben hinaus…

und die verbraucherpolitische Sprechering der Grünen Nicole Maisch meinte:

…Wer beim privaten Herunterladen eines songs kosten sparen wolle, sei vom Gesetzt bereits erfasst…Es handele sich um einen Kotau vor der Musikindustrie…

Ich würde mir wünschen, dass unsere Politiker ein wenige mehr nachdenken, bevor sie ihre einstudierten statements von sich geben, die stets immer nur die eigene Position untermauern. Tatsächlich stellt das neue Gesetze nämlich eine Verbesserung für die Bürger und sogar für Raubkopierer dar:

  • Vor Einführung des neuen Gesetzes wurden die Staatsanwaltschaften mit Auskunftsbegehren der Musikindustrie überschwemmt (kostenpflichtiger Download von heise.de). Manche Staatsanwälte haben bis zu 50% ihrer Zeit für die Bearbeitung der Anfragen von Vertretern der Musikindustrie aufgewandt. Hinzu kam, dass die Staatsanwaltschaften angewiesen waren, solche Verfahren vorrangig zu bearbeiten (weile viele Provider Ihre Verbindungsdaten bereits nach kurzer Zeit löschen). Dieser Aufwand für die Staatsanwaltschaften fällt nun weg!
  • Die Kosten für die Anfragen (je nach Provider zwischen 20 und 40 EUR) musste bisher die Staatsanwaltschaft – d.h. letzten Endes die Steuerzahler – tragen. Hierfür muss nun die Musikindustrie selbst aufkommen.
  • Die Kosten für die Abmahnungen wurden auf maximal 100 EUR in “unerheblichen und nicht gewerblichen” Fällen gedeckelt. Die Entscheidung wann ein illegaler download bzw. upload unerheblich und nicht gewerblich ist werden wohl zunächst einige Gerichte treffen. Ich würde jedoch davon ausgehen, dass die meisten bisherigen “Opfer” der Medienindustrie darunter fallen. Jerzy Montag ist der Meinung, dass bereits die durch den download gesparten Kosten als gewerbliche Nutzung interpretiert werden können. Bei einer solchen Interpretation könnte man sich die Einschränkung auf “gewerbliche Nutzung” natürlich gleich sparen. Das Gesetz sieht vor dass bei einer Anfrage im Telekommunikationsbereich eine gerichtliche Prüfung entscheidet, ob der Anfrage statt zugeben ist.

In der Konsequenz bedeutet das, dass sich die massenhafte Verfolgung von illegalen downloads für die Musikindustrie nicht mehr lohnen wird und dass wohl versucht wird nur noch die “dicken Fische” zu finden. Ebenso sinkt das Risiko für nicht gewerbliche Raubkopierer, da maximal 100 EUR an Abmahngebühren zu bezahlen sind.

Die Formulierung “Wer beim privaten Herunterladen eines songs kosten sparen wolle, sei vom Gesetzt bereits erfasst”
von Nicole Maisch finde ich im Übrigen ziemlich befremdlich. Letztendlich drückt sie aus, dass der illegale Download von urheberrechtlich geschützten digitalen Medien (der im übrigen schon vor Einführung des neuen Gesetzes verboten war) moralisch legitim ist, wenn das Motiv das “Sparen von Kosten” ist. Eine solche Äußerung sollte sich ein Sprecher einer politischen Partei in der Öffentlichkeit verkneifen.

Wie so oft wird sich erst in den nächsten Jahren zeigen, wie das neue Gesetze gelebt wird und welche Konsequenzen es tatsächlich haben wird. Im übrigen bitte ich aus diesem posting kein parteipolitisches statement herauszulesen.

Was denken Sie zu diesem Thema? Über Kommentare würde ich mich freuen.

Viele Grüsse,
Andreas

Technorati Tags: ,

Erstellung eines AddIns für Word 2007 – Teil 3 (Erstellung des AddIns)

Wednesday, April 16th, 2008

Hallo,

dieses posting ist der dritte Artikel in einer Serie von Artikeln die die Erstellung eines AddIns für Microsoft Word 2007 mit C# beschreiben.

In diesem posting werde ich die eigentliche Erstellung des AddIns als Projekt in Visual Studio 2008 beschreiben.

Als Vorbereitung habe ich den Artikel Setting Up Development Environments for the 2007 Microsoft Office System auf der MSDN website gelesen. Diese Dokument bezieht sich in weiten Teilen auf die Installation der Entwicklungsumgebung, was bei Verwendung von Visual Studio 2008 nicht relevant ist. Visual Studio 2008 bringt alle erforderlichen Komponenten mit.

Interessant waren die Hinweise zur Erweiterung des Ribbons und auf das Konzept “document level AddIn” und “application level AddIn“. Ein “application level AddIn” ist ein AddIn welches bereits beim Laden der Anwendung – ohne dass ein Dokument geladen wurde – aktiv ist. Der in dem screen shot weiter unten gewählte Projekttyp erstellt ein application lavel AddIn (erst möglich mit VSTO 3.0, enthalten in Visual Studio 2008).

Beim Anlegen des Projektes muss der passende Typ ausgewählt werden:

Projekt erstellen, breakpoints in ThisAddIn_Startup() und ThisAddIn_Shutdown() gesetzt und F5 (Debuggen) gedrückt. Wie erwartet startet Word und nach dem Start wird der breakpoint in der ThisAddIn_Startup() Methode getroffen. Nach beenden von Word wird der breakpoint in ThisAddIn_Shutdown() getroffen. Damit ist Teilaufgabe 1 – Erstellung des AddIns – erledigt.

Da wir mit jedem Word-Dokument ein eigenes XMI-file assoziieren wollen, ist es nötig das Öffnen, schließen und Neuanlegen eines Dokumentes zu überwachen. Diese event handler werden wir später hinzufügen.

Im nächsten Teil wird es spannender, dort wollen wir das Ribbon erweitern um in unserem AddIn spezifische Funktionalität aufzurufen.

Viele Grüße,
Andreas

Erstellung eines AddIns für Word 2007 – Teil 2 (zu lösende Probleme)

Saturday, April 12th, 2008

Hallo,

dieses posting ist das zweite in einer Serie von postings über die Erstellung eines AddIns für Microsoft Word 2007. In Teil 1 habe ich die Hintergründe und Anforderungen an das AddIn beschrieben.

In diesem posting möchte ich nun eine genauere Vorstellung gewinnen, welche Probleme gelöst werden müssen.

Erstellung des AddIns

Dazu zählt das Erstellen des Projektes in Visual Studio 2008 (also mit VSTO 3.0), das starten von Word und das Abfangen zentraler Ereignisse. Damit wäre der Rahmen für die Programmierung und das Debuggen des AddIns geschaffen.

Erweiterung des Word Ribbons

Zweiter Schritt wäre die Erweiterung des Word-Ribbons. Es soll ein neues RibbonTab mit zwei buttons hinzugefügt werden. Die buttons haben die Funktionalitäten “Load XMI-file” und “Check OCL fragments”. Breakpoints in den Ereignishandlern dieser buttons verifizieren den korrekten Anschluss an das GUI. Auf diesen Punkt bin ich besonders neugierig, verspricht Visual Studio 2008 doch einen visuellen Designer zur Erweiterung des Ribbons.

Finden der OCL-Fragmente

Hierzu muss auf das Word-Objektmodell zugegriffen werden. Ich gehe davon aus, dass es eine relativ einfache Aufgabe ist, alle Fragmente eines Dokumentes zu finden, die eine bestimmte Formatvorlage haben. Diese Funktionalität ist ja bereits in der normalen, interaktiven Suche enthalten.

Aktivierung von log4net

Die verwendeten Komponenten benutzen log4net und es wäre sinnvoll, wenn das AddIn das Schreiben der logs unterstützen würde.

Implementierung der Prüfung der OCL-Ausdrücke

Diese Aufgabe ist unabhängig von Word 2007 zu lösen. Eine derartige Funktionalität wurde bereits mehrfach implementiert und ist mehr oder weniger trivial in dem AddIn einzubinden (unter Verwendung der bestehenden Komponenten, versteht sich).

Präsentation der Ergebnisse

In einer ersten Version werden die Ergebnisse lediglich in einem separaten Dialogfenster, welches das AddIn bereitstellt, angezeigt. Ergonomischer – aber auch aufwendiger – wäre die Darstellung in einer Word Task Pane.

Persistenz des Namens des XMI-files

Hierzu müsste das AddIn dem Dokument eigene Daten hinzufügen. Ich gehe davon aus, dass eine solche Funktionalität existiert und dass sie relativ einfach zu nutzen ist.

Deployment

Hierzu zählt das Erstellen einer einfachen Dokumentation und eines Setup-Programms.

Im nächsten posting werden ich die Erstellung des AddIns beschreiben.

Viele Grüße,
Andreas

Technorati Tags: , ,

Erstellung eines AddIns für Word 2007 – Teil 1 (Anforderungen)

Saturday, April 5th, 2008

Hallo,

die Entwicklung von sog. “Office Based Applications” – d.h. Lösungen für Geschäftsprobleme die durch Erweiterung der Microsoft Office Programme erstellt werden – scheint derzeit groß in Mode zu sein. Die “Visual Studio Tools for Office” (VSTO) versprechen, die Erstellung von AddIns für Microsofts Office Anwendungen einfacher zu machen und dabei die gesamte Bandbreite .NET basierter Frameworks zu Verfügung zu stellen. Diese neuen technischen Möglichkeiten möchte ich gerne näher erkunden und werde dazu eine kleine, aber praxisnahe Anwendung als AddIn für Word 2007 erstellen. Dieses Projekt wird das Thema meiner nächsten blog-postings sein.

Thema

Da der Aufwand sicher nicht ganz gering sein wird, wäre es schön wenn das Ergebnis auch einen praktischen Nutzen hätte. Andererseits möchte ich mich im Rahmen dieser Blog-Postings nicht mit der Lösung eines Geschäftsproblems beschäftigen sondern mit den Möglichkeiten der Erweiterung und Integration von bzw. mit Microsoft Word.

Deshalb wird die angestrebte Lösung eine Prüfung von OCL-Fragmenten auf syntaktische Korrektheit und Typkonformität implementieren. Falls ein solches AddIn eine gewisse Reife erreichen würde, könnte ich es als kostenlosen download auf meiner Firmenwebsite anbieten und damit neue Besucher gewinnen und evtl. Feedback und Diskussionspartner finden. Die komplexe Funktionalität ist für andere Entwicklungsprojekte bereits implementiert und kann ohne großen Aufwand wiederverwendet werden.

Die Verwendung von OCL erlaubt es, Geschäftsregeln formal zu definieren, bevorzugt im Kontext eines UML-modells.

Anforderungsdefinition

Die genauen Anforderungen definieren wir folgendermaßen:

  • Zu einem Word-Dokument kann ein UML-modell als XMI-Datei geladen werden. Mit jedem geladenen Dokument wird eine eigene XMI-Datei assoziiert.
  • In dem Word-Dokument können OCL-Fragmente definiert werden. Diese werden mit einer speziellen Formatvorlage formatiert. Diese Formatvorlage dient sowohl zur visuellen Gestaltung des OCL codes als auch zur Erkennung des codes durch das AddIn.
  • Dem Word-Ribbon wird ein neues RibbonTab hinzugefügt, das die Funktionalität des AddIns bereitstellt.
  • Diese besteht aus zwei buttons, einem zum laden des assoziierten XMI-files, einen zum Auslösen des checks aller OCL-Fragmente im gesamten Dokument. Nach einem click auf diesen button wird das gesamte Dokument nach OCL-Fragmenten durchsucht und diese im Kontext des durch das XMI-file definierten Modells geprüft.
  • Die Ergebnisse werden in einem separaten Dialogfenster angezeigt.

Die oben genannten Anforderungen sind die Minimalanforderungen, die in jedem Fall implementiert sein müssen, damit das AddIn einen gewissen praktischen Nutzen hat.

Folgende weitere Anforderungen wären sinnvoll, sind aber eventuell zu aufwendig (”nice to have”):

  • Beim Klick mit der rechten Maustaste in ein als OCL-Fragement formatierten Text erscheint ein Kontextmenü, mit dem eine Prüfung nur für dieses Fragment angestoßen werden kann. Alternativ kann auch im Ribbon ein button “Check current fragment” zur Verfügung gestellt werden.
  • Die Ergebnisse der Prüfung sollten als eigenes Fenster in der Word-Anwendung (”Task pane”) erscheinen. Damit können die Fehler bearbeitet werden und die Prüfungsergebnisse bleiben weiterhin verfügbar. Weiterhin wäre es sinnvoll, wenn man direkt von einer Fehlermeldung an die fehlerhafte Stelle im Dokument navigieren könnte.
  • Das gewählte XMI-file wird dauerhaft mit dem Dokument assoziiert, d.h. beim nächsten Laden des Dokumentes lädt das AddIn automatisch die XMI-Datei. Hierzu müsste dem Dokument eine “user defined property” mit dem entsprechenden Dateinamen/Pfad hinzugefügt werden.

Ressourcen:

Visual Studio Tools for Office Developer Portal (Microsoft)

Microsoft VSTO Forum

Im nächsten posting werde ich die konkreten zu lösenden Problem definieren.

Viele Grüße,
Andreas

Technorati Tags: , ,

OMG Certified UML Professional (OCUP) fundamental bestanden

Wednesday, April 2nd, 2008

Hallo,

am 01.04. (kein Scherz!) habe ich meine Zertifizierung als OMG Certified UML Professional (OCUP) fundamental bestanden. Diese Zertifizierung war im Vergleich zu den Microsoft-Zertifizierungen die ich früher bereits gemacht habe deutlich schwieriger:

  • Die Prüfungsinhalte sind im wesentlichen die UML-Spezifikation selbst, d.h. insbesondere nicht wie man UML-Modelle als solche erstellt (Analyse-Techniken, Modellierungs-Guidelines etc.). D.h. selbst wer viel mit UML gearbeitet hat, wird den Stoff kaum kennen. Bei den gängigen Java- oder Microsoft-Zertifizierungen kann man davon ausgehen, dass man als “Praktiker” bereits ein solides Fundament hat
  • Der Stoff ist sehr abstrakt und enthält viele Details. Die UML-Spezifikation umfasst ca. 1000 Seiten und das fundamental exam deckt etwas ein Drittel davon ab.
  • Es gibt keine umfangreichen Sammlungen an Übungsfragen wie für die verbreiteteren Examen, etwa von Transcender oder MeasureUp. Egal wie man zu diesen Diensten steht (Thema “Braindump“), diese Übungsexamen sind eine große Hilfe bei der Vorbereitung. MeasureUp wird übrigens offiziell von Microsoft empfohlen, hier kann mal also von einem seriösen Vorgehen ausgehen.

Zur Vorbereitung:

Im wesentlichen habe ich das Buch “UML 2.0 Zertifizierung. Fundamental, Intermediate und Advanced” mehrfach durchgearbeitet. Das war ziemlich mühsam, da das Buch wirklich nur eine Aufzählung der Themen darstellt.

Partiell habe ich mir generierte Klassendiagramme aus dem offiziellen UML Metamodel angeschaut. Hierzu habe ich ein selbstgeschriebenes Tool erzeugt, das automatisch Diagramme für ein Element des UML Metamodells erzeugt:

Screenshot of EmPowerTec UML Metamodel viewer

Danach habe ich alle Übungsfragen, die ich auftreiben konnte durchgearbeitet, d.h. versucht zu beantworten und dort wo ich falsch lag das Thema noch besser zu verstehen:

  • UML-Quiz auf jeckle.de (einige, wenige Fragen sind veraltet)
  • Übungsaufgaben zum Buch UML2 glasklar
  • Und die Übungsfragen in dem oben erwähnten Buch

Warum habe ich die Zertifizierung angestrebt?

Mein aktueller Auftrag läuft Ende Juni aus und ich fände einen Folgeauftrag mit einem signifikanten Anteil an Analyse/Design-Arbeit durchaus interessant.

Neben meiner Tätigkeit als Berater bin ich auch für ein Software-Unternehmen tätig, das UML-tools entwickelt. Für die Tätigkeit dort ist ein detailiertes Wissen über das UML Metamodel überaus hilfreich.

Und last but not least, wie es Tim Weilkiens so schön formuliert hat:

“Eine völlig andere Motivation zur Zertifizierung ist nicht das Zertifikat selbst, sondern der Weg dorthin. Beispielsweise ist das für die UML-Zertifizierung erforderliche Wissen für den Modellierer wertvoll. Das Erlernen der Materie ist aber ein beschwerlicher Weg. Das Zertifikat ist ein Ziel am Horizont, das zum Lernen motiviert und hilft, das Thema gradlinig zu durchstreifen.”

Viele Grüsse,
Andreas

Technorati Tags: , , ,