Wie Code-Notebooks Open-Source-Forschung ermöglichen

Bellingcat hat außerdem ein Repository mit Open-Source-Notizbüchern veröffentlicht, auf die Sie zugreifen können finden Sie hier auf unserem GitHub

Die Zahl der verfügbaren Open-Source-Tools wächst rasant, doch technische Zugangsbarrieren bedeuten, dass sie für viele Forscher weiterhin unzugänglich sind.

GitHub, eine Plattform, auf der Entwickler ihren Code teilen und diskutieren, beherbergt viele dieser Tools. Suche auf der Website nach Open-Source-Untersuchungstools kann für Uneingeweihte entmutigend wirken – es gibt mehr als sechstausend Ergebnisse. Darüber hinaus gibt es viele weitere der über 300 Millionen anderen Projekte der Plattform Social-Media-Scraper Zu KI-Modellehaben auch eine nützliche Anwendung in der Open-Source-Forschung.

Aber selbst viele erfahrene Forscher nutzen diese Tools nicht. Eine Umfrage von Bellingcat aus dem Jahr 2022 ergab, dass 45 Prozent der Forscher diese Tools nicht nutzen können und insgesamt 75 Prozent sie noch nie genutzt haben. Das Kernproblem ist die Zugänglichkeit: Bei den meisten Tools handelt es sich um Codeskripte und Befehlszeilenschnittstellen. Es muss keine Benutzeroberfläche installiert und keine Webseite aufgerufen werden. Während wir Forscher dazu ermutigen Lernen Sie die Befehlszeile Obwohl wir dies auch in unseren Workshops vermitteln möchten, erfordern einige Tools Setup-, Debugging- und Codierungskenntnisse, die den effektiven Einsatz dieser Tools einschränken.

Wenn Sie zu diesen 45 Prozent oder 75 Prozent gehören, gibt es eine Möglichkeit, diese Welt der Open-Source-Tools für Ihre eigene Forschung zu erschließen – Code-Notebooks! Diese sind weithin als Jupyter-Notebooks bekannt.

Notizbücher begann als wissenschaftliches Werkzeug, und sie werden immer noch hauptsächlich für Data Science- und KI-Projekte verwendet, ihre Anwendung kann jedoch viel umfassender sein. Einfach ausgedrückt handelt es sich dabei um Dateien im .ipynb-Format, in denen Sie Code speichern und testen können. Sie ermöglichen Ihnen die Ausführung von Python, einer Programmiersprache, die für ihre Einfachheit bekannt ist. Dies ist für unsere Zwecke wichtig, da es sich auch um die beliebteste Sprache für Open-Source-Recherchetools handelt.

Sie durchlaufen interaktive Codierungsumgebungen, die aus aufeinanderfolgenden Blöcken (oder Zellen) bestehen, wobei jede Zelle einen Code oder eine Dokumentation dazu enthält.

Der Zugriff auf ein Notebook erfolgt normalerweise über eine bestimmte Anwendung auf Ihrem Computer, in der Sie Code speichern und testen können. Unter der Haube verbindet sich das Notebook mit einem Computer oder Server, seiner Betriebsumgebung. Dies kann Ihr persönlicher Computer sein, wenn Sie ihn entsprechend einrichten. Aber es gibt eine viel einfachere Möglichkeit, sich mit Notebooks vertraut zu machen, und zwar über Online-Dienste, die diese Notebooks lesen, anzeigen und ausführen können. Einige davon verfügen über eine besser zugängliche Benutzeroberfläche und erfordern vor allem weniger Kenntnisse der Befehlszeile.

Das bekannteste davon ist Google Colab, ein Browser-Tool Dadurch werden Notebook-Dateien nicht anders angezeigt als in einem normalen Google Doc- oder Sheets-Dokument mit einer entsprechenden zugänglichen Benutzeroberfläche. Sie können in Ihrem Drive organisiert, mit anderen geteilt, von mehreren Personen bearbeitet und, was am wichtigsten ist, sicher wie in einer virtuellen Maschine ausgeführt werden.

Beispielsweise enthält die Zelle im Screenshot unten von Google Colab einen einfachen Python-Code. Durch Drücken der Play-Taste in der oberen linken Ecke wird der Code getestet. Unter der Zelle sehen Sie das Ergebnis des Codes, der auf einem Remote-Server ausgeführt wird, der vom von Ihnen verwendeten Notebook-Dienst gehostet wird.

Es gibt auch mehrere alternative Plattformen wie Kaggle oder Bindemittel. Wenn Sie sie verwenden, benötigen Sie zum Ausführen eines Notebooks lediglich die Notebook-Datei selbst (eine Datei mit der Endung .ipynb), während die laufende Umgebung auf einem Remote-Server gehostet wird.

Warum sind Notizbücher nützlich?

Notebooks können das Experimentieren mit Codierungstools, Skripten und Datenanalysen enorm vereinfachen. Sie bieten folgende Vorteile:

  • Barrierefreiheit — Sie müssen nicht wissen, wie man programmiert, um ein Notebook auszuführen, es ist ein einfaches Klicken, Beobachten und Scrollen. Sie benötigen lediglich einen Browser und eine Internetverbindung. Sie können sie sogar auf Ihren Mobilgeräten ausführen.
  • Sicherheit — Wenn Sie ein Notebook auf Google Colab ausführen, tun Sie dies in einer isolierten Umgebung. Selbst wenn Sie einen schädlichen Code herunterladen und ausführen, sind dessen Auswirkungen auf die Informationen beschränkt, die Sie auf dem Notebook haben, und nicht auf Ihrem lokalen Computer, ähnlich wie bei einer virtuellen Maschine.
  • Reproduzierbarkeit — Viele Tools werden auf einer begrenzten Anzahl von Betriebssystemen und Softwareversionen erstellt und getestet. Bei der Installation und Verwendung kommt es nicht selten zu systemspezifischen Fehlern, da diese nicht Teil der ursprünglichen Tests waren. Online-Notebook-Plattformen bieten Ihnen Standardumgebungen und stellen sicher, dass das, was „auf meinem Computer funktioniert“, auch auf Ihrem Computer funktioniert.
  • Lesbarkeit — Notizbücher sehen aus und fühlen sich an wie ein Textdokument. Gute Notizbücher fügen nicht nur „Code“-Zellen hinzu, sondern auch „Text“-Zellen mit umfangreichen Markdown-Erklärungen des Codes. Sie können selbstdokumentierend sein. Tatsächlich können Notebooks in das PDF-Format exportiert und als statisches Produkt geteilt werden, sodass Sie den Code bewerten können, ohne ihn ausführen zu müssen.
  • Anpassung — Mit minimalen Änderungen am Notebook können Sie dessen Funktionen speziell an Ihre Untersuchungen anpassen. Wenn Sie ein Notebook anweisen, ein Tool zum Herunterladen eines YouTube-Videos zu installieren, können Sie eine Codezelle hinzufügen, in der die Video-URL angegeben wird. Wenn Sie ein anderes Video herunterladen möchten, müssen Sie nur die URL in dieser Zelle ändern und auf „Ausführen“ klicken. Die meisten Tools und Methoden können durch einfache Eingabeänderungen repliziert werden, z. B. den Hashtag, nach dem Sie suchen, die Website, die Sie überprüfen, die Daten, auf die Sie die Ergebnisse beschränken möchten.

    6. Flexibilität — Obwohl Notebooks ursprünglich nur für die Ausführung von Code konzipiert sind, können die „Code“-Zellen tatsächlich zum Ausführen allgemeiner Befehlszeilenanweisungen verwendet werden. Dies bedeutet, dass ein Notebook zu einer virtuellen Maschine wird, mit der Sie ein Programm installieren, einen Ordner erstellen, Dateien herunterladen, einen Ordner komprimieren usw. können.

  • Interaktion mit Notebooks

    Du kannst Entdecken Sie unser Beispielnotizbuch auf Google Colab und führen Sie den Code nacheinander in seinen Zellen aus. Jede Zelle ist ein in sich geschlossener Block, der die laufende Umgebung anweist, eine Aktion auszuführen.

    Zellen können viele Male und in beliebiger Reihenfolge ausgeführt werden, idealerweise sollte ein Notebook jedoch konsistent sein.

    Was Sie mit Code in Zellen tun, hat einen kumulativen Effekt auf die virtuelle Umgebung, die ihn testet. Wenn Sie beispielsweise eine Zelle ausführen, die ein zum Herunterladen von YouTube-Videos erforderliches Tool installiert (z yt-dlp), kann die nächste Zelle ein Video herunterladen, aber nicht, wenn Sie die Installationszelle überspringen.

    Schematische Darstellung eines Notebooks mit zwei Codezellen. Wenn Sie Codezelle 2 vor Codezelle 1 ausführen, erhalten Sie eine Fehlermeldung, dass yt-dlp nicht installiert ist.

    Im oben verlinkten Beispiel-Notebook zeigen wir Ihnen, wie Sie ein einfaches Python-Programm ausführen und wie Sie Eingaben bereitstellen, damit das Notebook auf Ihre Bedürfnisse reagiert. Sie lernen den Unterschied zwischen Python und der Befehlszeile kennen und erfahren, wie Sie eine Datei auf Ihr Notebook und dann auf Ihr eigenes Gerät herunterladen.

    Open-Source-Forschungsnotizbücher

    In unserer GitHub-Repositoryfinden Sie eine aktualisierte Liste mit Notebooks, die Ihnen beim Ausführen von Bellingcat- und Community-Tools helfen. Ein Beispiel ist Bellingcat Telegram-Telefonnummern-Checkerein Befehlszeilentool zum Auffinden von Telegram-Konten anhand einer Telefonnummer.

    Obwohl sich dieses Tool relativ einfach auf Ihrem Computer installieren lässt, müssen Sie prüfen, ob es mit Ihrer Python-Version oder Ihrem Betriebssystem kompatibel ist.

    Noch einmal der Vorteil der Nutzung unseres Notebooks in Google Colab ist, dass Sie sich darüber keine Sorgen machen müssen, Sie benötigen lediglich gültige Telegram-API-Schlüssel, die Sie online erhalten können.

    Wir hoffen, dass dieses Repository um weitere Notebooks für nützliche Tools und Methoden erweitert wird, denen eine visuelle Benutzeroberfläche fehlt. Tatsächlich ermutigen wir Sie dazu Geben Sie uns eine Rückmeldung auf GitHub, wenn es ein beliebtes Tool gibt, das Sie gerne behandelt sehen möchten, und auch um Ihre eigenen Notebooks aufzulisten, damit andere in der Open-Source-Untersuchungs-Community davon profitieren können.

    Ähnlich wie die Open-Source-Tools selbst könnten Notebooks für viele Forscher neu sein. Sie bieten jedoch sofort einen so großen Komfort, dass es sich lohnt, sich mit deren Verwendung vertraut zu machen – die Tools, die Sie nutzen können, können Ihnen bei Ihrer nächsten Untersuchung den Weg ebnen.

    Bellingcat ist eine gemeinnützige Organisation und die Fähigkeit, unsere Arbeit auszuführen, hängt von der freundlichen Unterstützung einzelner Spender ab. Wenn Sie unsere Arbeit unterstützen möchten, können Sie dies hier tun. Sie können auch unseren Patreon-Kanal abonnieren Hier. Abonnieren Sie unsere Newsletter und folge uns auf Instagram HierX Hier und Mastodon Hier.



    bllc-allgemeines