Archive for März, 2010

SimpleHTTPServer, bring mein Verzeichnis online!

Heute schreibe ich hier einen sehr nützlichen Shell-Einzeiler mit Python auf:

$ python -m SimpleHTTPServer

Dieser Befehl startet einen Webserver, der das aktuelle Verzeichnis ins Netz bringt. Standardmäßig ist der Server auf Port 8000 erreichbar (einen alternativen Port gibt man einfach hinten dran: python -m SimpleHTTPServer 8888). Hat man den obigen Befehl gestartet (die Shell gibt nun das Zugriffsprotokoll aus), so kann man im Browser mit Aufruf von

http://localhost:8000  (bzw. http://rechnername:8000)

das Ergebnis betrachten. Sollte das Verzeichnis eine index.html bzw. index.htm enthalten, so wird diese als Webseite angezeigt, sonst werden die Ordner und Dateien des Verzeichnisses aufgelistet. In die Ordner kann man reinwechseln, oberste Ebene bleibt aber das Verzeichnis aus dem gestartet wurde.

Die möglichen Anwendungsfälle, die sich einem da im Alltag auftun sind unaufzählbar und es bleibt dem Leser überlassen, seine kreativen Einsatzzwecke zu entdecken und gerne in den Kommentaren kund zu tun.

Share

UMLGraph in Javadoc mit Maven

Mit UMLGraph steht ein wunderbares, einfaches Tool zur Verfügung, um UML Klassendiagramme in die Javadoc Dokumentation einzufügen. Diese sind klickbar, d.h. man kann durch die Diagramme navigieren. Wer seine Projekte mit Maven erzeugt, integriert gerne auch die Javadoc-Erstellung in den Maven-Build. Und UMLGraph lässt sich da gleich ganz einfach mitnehmen.

Hier ein Beispiel, wie eine entsprechende Reporting-Sektion im pom.xml aussehen könnte:

<reporting>
  <outputDirectory>/ein/sinnvoller/pfad</outputDirectory>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <configuration>
        <doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet>
        <docletArtifact>
          <groupId>gr.spinellis</groupId>
          <artifactId>UmlGraph</artifactId>
          <version>4.6</version>
        </docletArtifact>
        <additionalparam>
           -inferrel -inferdep -quiet -hide java.* -collpackages java.util.* -qualify
           -postfixpackage -nodefontsize 9
           -nodefontpackagesize 7
        </additionalparam>
      </configuration>
    </plugin>
  </plugins>
</reporting>

Und das Ergebnis kann sich sehen lassen:

Wer tiefer in die Materie, Parameter und Möglichkeiten von UMLGraph einsteigen möchte findet in der Onlinedokumentation ausführliche Hilfestellung.

Share

Theory of Constraints

Das JUG ErN Meeting am letzten Donnerstag war etwas anders als die üblichen „Wir setzen uns mal rein und hören, was der da vorne sagt“-JUG-Treffen. Diesmal mussten die Teilnehmer mitspielen! Pierluigi Pugliese und Martin Heider erklärten anhand eines Spiels die „Theory of Constraints“.

Diese Theorie besagt, dass es in jedem System genau einen Flaschenhals (Constraint) gibt und gibt 5 Schritte vor, wie man den Engpass möglichst weit aufmacht, sprich entschärft.

Hier die begleitenden Folien, in denen auch das Spiel erläutert wird:

Und so wurden fleißig Boote und Hüte gefaltet und von Runde zu Runde war tatsächlich ein Fortschritt zu sehen.
Fazit: Ein lustiger Abend mit einem sehr einprägsamen Beispiel – so macht Lernen Spaß.

Share