Externe Werkzeuge, auf die wir uns stützen

So sehr es uns auch Freude bereitet, die Software zu entwickeln, welche hinter den Kulissen des prometheus-Bildarchivs arbeitet, so gibt es durchaus Grenzen für das, was wir in der Lage sind, alleine zu leisten.

Entwicklungsplattformen

  • Github – ein webbasierter Hosting-Dienst für Software-Entwicklungsprojekte. Er verwendet namensgebenderweise das Versionsverwaltungssystem Git.

Programmiersprachen

  • Ruby – eine höhere Programmiersprache, die Mitte der neunziger Jahre von dem Japaner Yukihiro “Matz” Matsumoto entworfen wurde. Ruby ist interpretiert und objektorientiert, unterstützt aber mehrere weitere Programmierparadigmen (unter anderem prozedurale und funktionale Programmierung sowie Nebenläufigkeit), bietet dynamische Typisierung, Reflexion und automatische Speicherbereinigung.

Entwicklungswerkzeuge

  • Git – eine freie Software zur verteilten Versionsverwaltung von Dateien, die ursprünglich für die Quellcode-Verwaltung des Linux-Kernels entwickelt wurde.
  • Subversion – eine freie Software zur Versionsverwaltung von Dateien und Verzeichnissen. Entwickler verwenden Subversion für den Zugriff auf aktuelle und vergangene Versionen von Dateien, sei es Quellcode, Internetseiten oder Dokumentation.
  • Redmine – ein webbasiertes Projektmanagement-Tool. Es kann für Benutzer- und Projektverwaltung, Diskussionsforen, Wikis, zur Ticketverwaltung oder Dokumentenablage genutzt werden. Weltweit wird Redmine bei mehreren großen Projekten verwendet, unter anderem bei dem Issue-Tracking-System der Programmiersprache Ruby oder dem Entwicklerportal von TYPO3.

Bibliotheken

  • ImageMagick – eine Open-Source Sammlung von Programmen zur Anzeige, Konvertierung und Anpassung von Rasterbildern. ImageMagick ist in der Lage, mehr als 100 Dateiformate zu lesen und zu schreiben.
  • LibXML Ruby – Ruby Sprachanbindung für GNOME’s Libxml2 XML Toolkit.
  • Lingo – ein frei verfügbares System zur linguistisch und statistisch basierten automatischen Indexierung des Deutschen und Englischen. Lingo arbeitet mit einem Wörterbuchmodell, das eine Grundformidentifizierung bzw. -reduktion mit einem Grundformenwörterbuch und einer zugehörigen einfachen Suffixliste realisiert. Lingo verfügt zusätzlich über eine algorithmische Kompositumzerlegung, eine algorithmische und lexikalische Mehrworterkennung sowie eine allgemeine lexikalische Relationierung.

Systemverwaltung

  • Capistrano – ein Open-Source Werkzeug zum Ausführen von Skripten auf mehreren Servern; das Haupteinsatzgebiet ist das Aufsetzen von Internet-Anwendungen. Capistrano erlaubt es das Aufspielen von neuen Versionen einer Internet-Anwendung auf mehreren Servern zu automatisieren, inklusive der Handhabung damit zusammenhängender Aufgaben wie der Anpassung von Datenbanken.
  • Icinga – ein Open-Source Werkzeug zur Überwachung von Netzwerken und Netzwerkresourcen, welches den Benutzer über Fehler und Wiederherstellungsversuche informiert, sowie Daten zum Laufzeitverhalten bereitstellt. Aufgrund seiner Skalierbarkeit und Flexibilität ist Icinga in der Lage auch komplexe und über viele Orte verteilte Anwendungen zu überwachen.

Web Applications

  • Apache – ein Open-Source-HTTP-Server für moderne Betriebssysteme, inklusive UNIX und Windows NT. Ziel des Projektes ist die Entwicklung eines sicheren, effizienten und erweiterbaren Servers zur Bereitstellung von HTTP-Diensten in Übereinstimmung mit aktuellen HTTP-Standards.
  • Ruby on Rails – ein in der Programmiersprache Ruby geschriebenes und quelloffenes Web Application Framework. Rail ist ein “full-stack framework”, was bedeutet dass es den Entwickler in die Lage versetzt, Informationen über den Webserver zu erhalten, Datenbankabfragen durchzuführen und neue Inhalte unter Zuhilfenahme von Vorlagen darzustellen.
  • Mongrel – ein Open-Source-HTTP-Server (bzw. eine Bibliothek), typischerweise verwendet um in Ruby geschriebene Web Applications auszuführen und gleichzeitig eine Standard-HTTP-Schnittstelle zu präsentieren. Dieser Ansatz ermöglicht die Hintereinanderschaltung von Servern, z.B. das Voranstellen eines Web Proxy, eines Load Balancer, oder gar einer Kombination von beiden.
  • PmWiki – ein Wiki-basiertes System zur gemeinschaftlichen Erstellung und Verwaltung von Websites.