Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Anwendung von Wikis zur Unterstützung kooperati...

Anwendung von Wikis zur Unterstützung kooperativer Forschungsarbeiten

Dieser Vortrag behandelt einige praktische Elemente zur Unterstützung kollaborativer Python Umgebungen und konzentriert sich hauptsächlich auf die Wiki Software MoinMoin und deren Verwendung im wissenschaftlichem Umfeld.

Es werden Methoden gezeigt ein Wiki für eine große Anzahl verschiedener Messgeräte und Benutzer zu initialisieren. Und wie sich damit dann die wissenschaftliche Arbeit gestalten läßt. Dies kann von einer leicht zugänglichen Plattform mit Rechte und Benutzerverwaltung zum Datenaustausch bis hin zu einer Plattform reichen mit der Proposals für Projektanträge geschrieben werden.

An Beispielen wird aufgezeigt, wie das Zusammenspiel verschiedener Python Komponenten die tägliche Arbeit für alle Nutzer des Wikis vereinfachen kann.

Reimar Bauer

October 10, 2011
Tweet

More Decks by Reimar Bauer

Other Decks in Programming

Transcript

  1. Überblick Was ist ein Wiki? Anwendungsbeispiele Wie installiert man die

    Software MoinMoin? October 7, 2011 Reimar Bauer 3 21
  2. Was ist ein Wiki? Eine Software für das Wissensmanagement; Teilnehmer

    können bestehende Inhalte bearbeiten (ergänzen, ändern, löschen); Beiträge können direkt auf der jeweiligen Seite diskutiert werden; Inhalte sind in Echtzeit sichtbar; Wikis findet man im Intranet und Internet; Bekannte Wikis (Software): Wikipedia (MediaWiki), wiki.ubuntu.com (MoinMoin) October 7, 2011 Reimar Bauer 4 21
  3. Wozu verwenden wir ein Wiki? Schreiben von Tutorials, Berichten, Veröffentlichungen,

    Büchern ....; Darstellen von aktuellen Messergebnissen; Führen eines Laborbuchs; Austausch von Messdaten; Organisation von Tagungen, Vortragsprogrammen; als einfaches CMS; October 7, 2011 Reimar Bauer 5 21
  4. Warum MoinMoin und nicht MediaWiki? MoinMoin-Wiki Software ist in Python

    geschrieben. Extrem gut kommentierter Quellcode Entwickler sind per IRC, mailing liste und MoinMoin Wiki gut zu erreichen Viele Beispiele python wird in der Wissenschaft für Datenanalyse, -Bearbeitung, -Darstellung eingesetzt October 7, 2011 Reimar Bauer 6 21
  5. Anwendungsbeispiele Editieren mit dem Lieblingseditor Interaktion mit Sphinx Dateien-Uploaden Dateien-Downloaden

    Eine Seite automatisch neu laden Viele Benutzer anlegen Wiki Seiten vorgeben und mit Zugriffsrechten versehen Listen von Seiten eines Wikis Fork bzw. Kopie eines Wikis   Zur Anwendung kommen die pypi Packages wiki2sphinx, wiki-xmlrpc-extensions, editmoin October 7, 2011 Reimar Bauer 7 21
  6. Wiki Konfiguration Anpassungen in der wikiconfig.py # a ct i

    v at e xmlrpc actions_excluded = m u l t i c o n f i g . DefaultConfig . actions_excluded [ : ] actions_excluded . remove ( ’ xmlrpc ’ ) # set some access rules acl_rights_before = u" ReimarBauer : read , write , delete , revert , admin " a c l _ r i g h t s _ d e f a u l t = u" UserGroup : read , write , delete , revert A l l : read , write " # against spam textchas_disabled_group = u" UserGroup " textchas = { " de " : { "Wo f i n d e t die pyCon DE s t a t t ?" : ur " Leipzig " } , " en " : { "Where i s the Barcamp in Leipzig ?" : ur "Kubus" } } configsnippet.py siehe auch HelpOnConfiguration October 7, 2011 Reimar Bauer 8 21
  7. Editieren mit dem Lieblingseditor editmoin kann man mit jedem Wiki

    verwenden. Es benötigt kein XMLRPC. Für vim gibt’s die Syntax-Highlighting von (siehe http://moinmo.in/VimHighlighting). editmoin editmoin http://localhost:8080/WikiSandBox October 7, 2011 Reimar Bauer 9 21
  8. Interaktion mit Sphinx Sphinx ist ein Werkzeug, das es vereinfacht,

    intelligente und schöne Dokumentationen zu erstellen. Mit Sphinx wird die offizielle CPython-Dokumentation in reST geschrieben. Im Wiki mit dem Markup reST schreiben. Den Seitenbaum mit einem kleinem Tool herunterladen Mit Sphinx nach Latex übersetzen. Wiki2Sphinx Wiki2Sphinx -w http://localhost:8080/ -u ReimarBauer -p ReimarBauer/PyConDELeipzig cd sphinx # vim source/conf.py make html make latexpdf October 7, 2011 Reimar Bauer 10 21
  9. Anhänge einer Seite im Wiki Für den Datenaustausch Dateien aus

    einem Verzeichnis auf einer Seite speichern: SendFiles SendFiles -w http://localhost:8080/ -u UserName –path /tmp/Leipzig/20111004 –pagename Leipzig/20111004 –filter=.JPG Herunterladen von Dateianhängen einer Seite: ReceiveFiles ReceiveFiles -w http://localhost:8080/ -u UserName –path ./ –pagename Leipzig/20111004 –filter=.* October 7, 2011 Reimar Bauer 11 21
  10. Refresh einer Wikiseite In der Wiki Software konfigurieren, dass eine

    Seite automatisch nach einem Zeitintervall wieder geladen wird. wikiconfig.py refresh = (60,’internal’) Auf Seiten, die in einem Intervall zu aktualisieren sind, die Instruction #REFRESH 60 setzen. Alle 60 Sekunden wird die Seite neu geladen. Die darzustellende Information von einem Benutzer oder einem Programm auf der Seite ändern. October 7, 2011 Reimar Bauer 12 21
  11. Benutzer anlegen Um einen Benutzer anzulegen brauchen Sie den Benutzernamen

    und die zugehörige E-Mail-Adresse Auf der Konsole: moin ... account create ... (für einen Benutzer) moin ... account create_many (aus dem Extensions Repository). Als Eingabe verwendet dieses Programm eine Datei mit einer Liste von Benutzernamen und deren E-Mail-Adresse: Beispiel einer Input Datei HansMustermann, [email protected] MarliesMusterfrau, [email protected] October 7, 2011 Reimar Bauer 13 21
  12. Wiki-Seiten vorgeben und mit ACLs versehen ähnlicher Aufbau von Seiten

    Benutzerrechte zur Dateiablage und Verarbeitung Viele Seiten Das ExampleWiki Script ist eine Vorlage. Passen Sie es Ihren Bedürfnissen an und erzeugen Sie Wiki-Seiten mit einem Befehl. ExampleWiki ./ExampleWiki.py -w http://localhost:8080/ -u UserName October 7, 2011 Reimar Bauer 14 21
  13. Wiki Seiten auflisten In einem Wiki mit vielen Seiten und

    verschiedenen ACL Regeln, stellt sich hin und wieder die Frage was ein Anonymer Benutzer oder man selbst eigentlich alles sieht. Mit ListPages kann dies überprüft werden. ListPages ListPages -w http://localhost:8080/ ListPages für Ihren Benutzer Namen ListPages -w http://localhost:8080/ -u UserName October 7, 2011 Reimar Bauer 15 21
  14. Forken oder Syncen eines Wikis MoinMoin unterstützt builtin ein wikisync

    für Seiten. Wenn auch Attachments in ein anderes Wiki übertragen werden sollen, bietet es sich an ForkWikiContent zu verwenden. ForkWikiContent ForkWikiContent -w http://localhost:8080/ -f http://localhost:8081/ -u UserName -p Instruments/ -a October 7, 2011 Reimar Bauer 16 21
  15. Komplexe Ausgaben Hier bieten sich mehrere Verfahren an. 1 z.B.

    einen Parser schreiben, der den Inhalt einer Seite darstellt. 2 Die Verwendung eines Macros, das Seiten in Form von Dictionaries verarbeit. Z.B. in Python eine Ausgabe als SVG im Wiki und PDF zum Ausdrucken. Oder eine große Tabelle einfach mit DictColumns darstellen (eine Tabellen-Zeile pro Seite). Pro Zeile werden auch unterschiedliche Lese-Rechte berücksichtigt. DictColumns «DictColumns(pagename="Experiments", template_page=ExperimentsTemplate, names="Type,PI,Partner,Weight,Summary",sort=Weight,reverse=Weight)» https://www.cirrus-rs.de/WhiteBook#Instrumentation October 7, 2011 Reimar Bauer 17 21
  16. Schnelle Installation (Python Builtin Server) Python Builtin Server 1 Entpacken

    Sie die MoinMoin Release-Archiv (http://moinmo.in/MoinMoinDownload). 2 Starten Sie wikiserver.py aus dem Verzeichnis der obersten Ebene. 3 Lesen und Befolgen Sie die Anleitung auf dieser Seite in Ihrem Wiki: http://localhost:8080/LanguageSetup Für eine echte Webserverinstallation ist es mit mod_wsgi beinahe eben so einfach, siehe hierzu die mitgelieferten docs. October 7, 2011 Reimar Bauer 19 21
  17. Zusammenfassung Mit den gezeigten Werkzeugen ist ein Einstieg in die

    Datenverarbeitung mit Hilfe eines Wiki aufgezeigt worden: Verwendung finden nachfolgende Hilfsmittel: MoinMoin http://moinmo.in editmoin http://pypi.python.org/pypi/editmoin SendFiles, ReceiveFiles, ExampleWiki, ForkWikiContent, ListPages http://pypi.python.org/pypi/wiki-xmlrpc-extensions Wiki2Sphinx http://pypi.python.org/pypi/wiki2sphinx create_many http://hg.moinmo.in/moin/extensions DictColumns http://moinmo.in/MacroMarket/DictColumns MoinAPI/Beispiele http://moinmo.in/MoinAPI/Beispiele October 7, 2011 Reimar Bauer 20 21