Mozilla Iodide als BI-Tool

Interaktive Datendiagramme erstellen mit Mozilla Iodide

| Autor / Redakteur: Michael Matzer / Nico Litzel

Mozilla Iodide hat stets zwei Ansichten in der Benutzeroberfläche, nämlich den Programmcode im Explorer und das Ergebnis im „Report“. Darunter liegt die Konsole für Fehlermeldungen.
Mozilla Iodide hat stets zwei Ansichten in der Benutzeroberfläche, nämlich den Programmcode im Explorer und das Ergebnis im „Report“. Darunter liegt die Konsole für Fehlermeldungen. (Bild: Mozilla Foundation)

Mit dem Projekt „Iodide“ will es die Mozilla Foundation Data Scientists ermöglichen, Daten sowohl zu visualisieren als auch mit diesen „Notebooks“ zu interagieren, sie also wie Dokumente zu behandeln. Damit das alles im Firefox-Browser ausgeführt werden kann, mussten einige Voraussetzungen geschaffen werden.

Der Grundgedanke hinter Mozilla Iodide als künftigem BI-Werkzeug ist durchaus einleuchtend. Wann immer ein Data Scientist einen Report beispielsweise in R Studio fertiggestellt hat, schickt er diesen an sein Team oder eventuelle Auftraggeber. Das PDF-Format eignet sich jedoch nur sehr bedingt dafür, den Inhalt des Reports zu kommentieren, geschweige denn, Änderungen darin vorzunehmen, als wäre er ein Textdokument. Dafür würden der Absender und alle Empfänger eine Adobe-Acrobat-Lizenz oder ein entsprechendes kostenpflichtiges Online-Abo benötigen.

Diesen Zwang soll Iodide beenden, indem es Datenreports wie HTML- und CSS-Dokumente behandelt, die jeder Browser versteht. Wer schon einmal Jupyter-Notebooks verwendet hat, findet sich gleich zurecht. Iodide verwaltet die Dokumente und statistischen Grafiken in einem Iodide-Notebook (s .u.). Links sind simple HTTP-Requests. Externe Tools sind unnötig – das ist ja der Sinn der Sache.

Das schnelle Arbeiten in dieser Schnittstelle wird über nur einen Mausklick durch das Hin- und Herschalten zwischen der Explorer-Ansicht und der Report-Ansicht ermöglicht: Der Explorer zeigt den Code, der „Report“ das visuelle Ergebnis. Das Neue: Dieser „Report“ ist interaktiv, indem er den Analyse-Code beinhaltet – und dieser lässt sich im Team kollaborativ editieren, ohne die IT fragen oder die Cloud anzapfen zu müssen.

Woraus dieser Code besteht, ist naheliegenderweise entscheidend für das Ergebnis der Analyse. Er kann aus verschiedenen Programmiersprachen und Bibliotheken stammen. R, Python und andere Tools liefern Bibliotheken und Skripte, aber der Programmcode, der im Browser – vorzugsweise Firefox – in dessen JS Engine ausgeführt und berechnet wird, besteht vor allem in JavaScript. Das ist der Haken: JavaScript wird von Entwicklern nicht gerade als die optimale und performanteste Programmiersprache gesehen, von gewissen Sicherheitsaspekten mal ganz abgesehen. Offenbar gibt es nur wenige wissenschaftliche Bibliotheken, die mit JavaScript zusammenarbeiten.

JavaScript austricksen

Um die Präsentationsgeschwindigkeit für Code zu erhöhen, der nicht in JavaScript geschrieben ist, liebäugelt die Mozilla Foundation mit dem Tool WebAssembly, das für Ausführung von 3D-Games in einem Browser geeignet ist – und dies auch demonstrieren kann. Wenn also schneller Code in C oder C++ vorliegt, dann könnte man diesen in WebAssembly-Code kompilieren, mit einer JavaScript-API versehen und im Browser ausführen, quasi als Trojanisches Pferd. Als Vorbild dient das SciPy-Projekt in der Python-Gemeinde.

3D-Visualisierung eines MRI-Scans eines menschlichen Gehirns mithilfe von Mozilla Iodide
3D-Visualisierung eines MRI-Scans eines menschlichen Gehirns mithilfe von Mozilla Iodide (Bild: Mozilla Foundation)

Die Arbeitsbereiche in Iodide heißen, analog zu Jupyter, „Iodide Notebooks“. Im Fenster der Anwendung ist zunächst im Explorer der Code und im „Report“ das Ergebnis als Vorschau zu sehen, während sich darunter eine Konsole befindet. Sie zeigt Erfolgs- respektive Fehlermeldungen an. Updates im Code zeigen sich in Echtzeit im „Report“-Fenster, was u. a. für 3D-Visualisierungen faszinierende Resultate zeigt.

Seine Notebooks kann der Nutzer auf dem öffentlichen Mozilla-Server Iodide.io speichern. Dafür muss er sich mit seinem Account, den er bei GitHub besitzt, einloggen. Um mit seinem Team zusammenzuarbeiten, leitet er – analog zu Dropbox oder Google Drive – einen HTTP-Link mit der Freigabe weiter. Links können entweder die Report- oder die Explorer-Ansicht öffnen.

In der Report-Darstellung erblickt das Teampersonal sofort das Ergebnis, etwa eine bewegte Grafik. Mehrere Beispiele sind in dem oben genannten Blogbeitrag zu finden. Wer nicht den Mozilla-Server in Anspruch nehmen will, sondern auf Sicherheit achten muss, kann einen Server hinter seiner Firewall einrichten.

Mozilla liebt Python

Visualisierung mit Matplotlib in Mozilla Iodide
Visualisierung mit Matplotlib in Mozilla Iodide (Bild: Mozilla Foundation)

So mancher Data Scientist zieht es vor, seine edlen Programme nicht in drögen JavaScript-Code umwandeln zu müssen (siehe oben). Um ihm zu helfen, bietet Mozilla mit „Pyodide“ einen Python-Science-Stapel an, in dem die Python-Bibliotheken Matplotlib, die Analyse-Library Pandas und NumPy enthalten sind. Der Stack gewährt auch Zugriff auf das erwähnte SciPy-Tool und auf das recht verbreitete Tool scikit-learn, das Machine Learning in Python ermöglicht. Weitere Bibliotheken sollen folgen.

Hinsichtlich der zu erwartenden Performance macht Mozilla ebenfalls Angaben. „Führt man den Python-Interpreter innerhalb einer VM von JavaScript aus, ergibt sich zwar eine Leistungseinbuße, aber nur eine kleine. In unseren Benchmark-Tests lag die Einbuße bei Faktor 1 bis 12 unter dem Firefox-Durchschnitt und bei 1 bis 16 unter dem Leistungsdurchschnitt von Chrome.“ Mozilla hält diese Einbußen dennoch für „sehr brauchbar im Hinblick auf interaktive Erkundung“ (des Code bzw. der Daten).

Pyodide erlaube dennoch innovative Workflows. Man könne beispielsweise in Python Daten importieren und bereinigen, anschließend auf die resultierenden Python-Objekte mit JavaScript zugreifen, so dass man sie mit JS-Bibliotheken wie d3 anzeigen könne. Ein weiteres Beispiel: Man könne nun mit Python-Code auf die APIs des Firefox-Browsers zugreifen und so etwa die API des Document Object Model (DOM) manipulieren, ohne JavaScript zuhilfe nehmen zu müssen.

Durch die Nutzung von JSMD (JavaScript MarkDown) könnten User in einem Notebook Code-Stücke und Text ebenso mischen wie es in R Markdown und MATLABs Zellenmodus möglich sei. Unterstützt würden derzeit Code-Stücke in JavaScript, CSS, Markdown, HTML und Python.

Ausblick

Wohlgemerkt, das Projekt befindet sich noch in der Alpha-Phase, ist also nicht einmal bei Kunden in der Beta- oder Testphase. Aber es gibt eine umfangreiche Liste für die Weiterentwicklung.

Die kollaborativen Funktionen sollen massiv ausgebaut werden, was Iodide stark von den bekannten Self-Service-BI- und Cloud-BI-Tools unterscheidet. Das einfache Backend ermöglicht die Notebook-Speicherung, gewährt Einblick auf die Arbeit von Teammitgliedern, lässt die Erstellung von Varianten („forks“) und die Erweiterung von Notebooks anderer Mitglieder zu – das ist schon viel, aber offenbar erst der Anfang.

Es sollen Kommentar-Threads wie in Google Docs realisierbar sein. Die Fähigkeit, Änderungen an den Notebooks eines Teamkollegen mithilfe eines Forks oder einer Fusion von Workflows vorschlagen zu können, erinnert an Pull Requests in GitHub. Das höchste der Gefühle dürfte mit dem gleichzeitigen gemeinsamen Editieren eines Notebooks, wie in Google Docs, erreicht sein. Das erfordert eine genaue Verwaltung von Rollen und Rechten, ähnlich wie in Dropbox Paper.

Mehr Sprachen

Auch die Programmiersprachen R und Julia sollen neben Python unterstützt werden. Man könnte diesen Code in WebAssembly kompilieren und mit einer JavaScript-API versehen, sodass der Code im Browser ausführbar ist. Mögliche Workflows: Statistische Modelle in R anpassen oder Differentialgleichungen in Julia lösen, anschließend die Ergebnisse mithilfe der Browser-APIs darstellen.

Um die Notebooks zu archivieren, bietet sich eher der Online-Server Iodide.io an als das lokale Filesystem, einfach aufgrund des Dateiumfangs. Damit auch Entwickler, die ausschließlich ihren Lieblings-Texteditor benutzen, adressiert werden wollen, arbeitet Mozilla an einer Browser-Erweiterung und ein paar „einfachen“ APIs, damit Iodide auch mit diesen Client-seitigen Textverarbeitungen kommunizieren kann. Man sieht also: Den Mozilla-Leuten ist es wirklich ernst mit ihrem neuen Browser-Tool. Es ist vorstellbar, dass sich die globale Data-Scientist-Gemeinde über dieses voraussichtlich kostenlose, weil quelloffene Analyse-, Visualisierungs- und Kollaborationswerkzeug freut.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46138479 / Analytics)