Recherchieren, schreiben, redigieren. Das ist das Handwerkszeug von JournalistInnen. Doch wie lange noch? Gehört das Programmieren also auch bald zum Grundhandwerk? Berliner Gazette-Autor Julius Tröger probiert den Journalismus der Zukunft gerade selbst aus. Er ist derzeit bei einer renommierten New Yorker Non-Profit-Nachrichtenorganisation tätig und hat einen Programmier-Crashkurs zusammengestellt.
*
Online-Journalisten müssen nicht selbst programmieren können, denn das ist nichts, was man über Nacht lernen kann. Sie sollten aber schon wissen, welche Web-Techniken es gibt und wie man damit Geschichten finden oder darstellen kann – oder zumindest die richtigen Fragen an Web-Entwickler stellen können. Darüber hinaus ist es aber sicher hilfreich, selbst schnell einen Datensatz scrapen, eine API auslesen oder individuelle Audio- oder Videoplayer bauen zu können.
Die Grundlagen: HTML, CSS…
Ob Datenvisualisierung, Multimedia-Reportage oder webbasierte Smartphone-App: Grundsätzlich basiert alles auf den drei Techniken HTML, CSS und Javascript. Hypertext Markup Language (HTML) ist die Grundlage jeder Webseite. Man erstellt eine html-Datei, schreibt etwas, lädt die Datei per FTP (File Transfer Protocol) auf einen Webserver und kann sie fortan von jedem Browser aus aufrufen. HTML lässt sich in jedem Text-Editor schreiben, zum Beispiel Phase5 oder die kostenlose Variante Smultron .
In HTML stehen lediglich Inhalte mit ihrer entsprechenden Auszeichnung; Tags wie „<h1>“, „<p>“ oder „<div>“ geben an, dass eine Überschrift (Header), ein neuer Abschnitt (paragraph) oder ein neuer, eigenständiger Bereich (division) folgt. Das Layout wird mit so genannten Cascading Stylesheets (CSS) festgelegt; Inhalt und Layout sollten immer voneinander unabhängig erstellt werden. Für die Einrichtung und Verwaltung einer Webseite im Internet braucht man ein Content-Management-System (CMS); empfehlenswert (nicht nur) für Einsteiger sind Drupal, WordPress und Joomla.
…und Javascript
HTML-Seiten sind statisch. Um dynamische Webseiten zu erstellen, etwa wenn sich ein Inhalt bei Klick auf einen Button ändern soll, benötigt man eine Skriptsprache. Javascript ist so eine Sprache. Im Internet existieren unzählige Javascript-Bibliotheken, also bereits programmierte Funktionen, die im eigenen Code eingesetzt werden können.
Für einfache Anwendungen reicht Javascript völlig aus. Für aufwändigere Techniken wie Web Scraping, d.h. automatisierte Auslesung und Speicherung von Daten, muss man meist auf andere Skriptsprachen wie PHP oder Ruby zurückgreifen.
Wer ist JSON?
Weltweit öffnen Unternehmen und Verwaltungen ihre Datenbanken für die Öffentlichkeit. Die Daten werden in unterschiedlichen Formen zugänglich gemacht; im schlechtesten Fall in geschlossenen Formaten wie PDF. Geschlossene Dateien müssen mithilfe zusätzlicher Software wie Abby Finereader oder Documentcloud umgewandelt werden. Empfehlenswert ist hingegen eine Bereitstellung im Sinne von Open Data, d.h. in maschinenlesbarer Form z.B. als XML oder JSON, am besten direkt per Schnittstelle, einem API (Application Programming Interface).
Prinzipiell funktionieren Web-APIs so, dass durch die Eingabe einer URL ein entsprechendes Ergebnis geliefert wird. Die Eingabe der URL http://search.twitter.com/search.json?q=Stromausfall beispielsweise gibt sämtliche Tweets aus, die den Suchbegriff „Stromausfall“ enthalten. Die Ausgabe erfolgt in diesem (und in den meisten Fällen) als Zeichenkette im Format JSON , die anschließend im Programmcode auseinandergenommen werden muss.
Journalisten können diese Tweets automatisiert in eine Datenbank schreiben lassen, um sich eigene Recherchedatenbanken aufzubauen. Für Mashups lassen sich verschiedene APIs miteinander kombinieren. Wer APIs zu eigenen Projekten anbietet – etwa unter einer nichtkommerziellen Creative-Commons-Lizenz -, ermöglicht Nutzern, eigene Erkenntnisse aus den Datensätzen zu gewinnen.
Werden Daten nicht in einem der oben genannten Formate bereitgestellt, bleibt neben der manuellen Auswertung nur die Möglichkeit, die Informationen mit einem Parser auszulesen und – unter Beachtung der rechtlichen Hintergründe – weiterzuverarbeiten. Auch nicht indexierte Dateien, die etwa hinter dynamischen Formularen oder Anmeldeschranken versteckt sind, können automatisiert ausgelesen und gespeichert werden. Dieser Vorgang wird als Web Scraping bezeichnet. Für Journalisten ist das ein weiterer wichtiger Rechercheweg.
Grafiken Leben einhauchen: SVG und Canvas
Während interaktive Grafiken und Animationen im Web lange unter das Hoheitsgebiet von Adobe Flash fielen, können heute gleichwertige Multimedia-Applikationen mit freien Web-Technologien auf Basis von HTML5 umgesetzt werden. Gearbeitet wird hierbei hauptsächlich mit dem Grafikformat Scalable Vector Graphics (SVG) und dem HTML5-Canvas-Element.
Mit SVG lassen sich zweidimensionale Vektorgrafiken direkt im Browser darstellen. Es wird also keine Grafik-Datei eingebettet, sondern man schreibt SVG direkt in den Quellcode. Dieses Document-Object-Model (DOM) lässt sich per Javascript – beispielsweise mit Event Handler– dynamisieren. SVG-Dateien kann man dank kostenloser Tools wie Inkscape und SVG Edit selbst zeichnen und den Code in den Programmcode übertragen. Damit aus reinen Vektorgrafiken interaktive Grafiken entstehen können, gibt es Frameworks für Datenvisualisierung, zum Beispiel d3.js.
Das Canvas-Element in HTML5 erlaubt es, im Code zweidimensionale Bitmap-Grafiken zu erzeugen und diese pixelgenau zu manipulieren. Die Javascript-Bibliothek Processing.js erweitert das Canvas-Element um weitere Funktionen, wie die Möglichkeit, Formen und Animationen zu erstellen – und das ohne den Einsatz von Plugins wie Flash oder Java.
Popcorn, bitte!
Viele Nachrichtenseiten veröffentlichen nach wie vor multimediale Anwendungen mit Flash- oder Java-Plugins, obwohl beim Einsatz von HTML5 neben dem bereits beschriebenen <canvas>-Tag auch der <video>- und der <audio>-Tag enormes Potenzial birgt. HTML5-Befehle per Javascript können Medienelemente interaktiv steuern, egal, ob es um Informationen zu Ladezustand und Lautstärkeeinstellung oder um Verlinkungen und Interaktion mit anderen Medien geht: Die Javascript-Bibliothek Popcorn.js beispielsweise stellt Webinhalte (von einfachen Texten und Links hin zu Karten und Twitter-Feeds) zeitgesteuert in und um Audio- und Videoelemente dar. Es stehen zahlreiche vorgefertigte Plugins zur Verfügung, die untereinander kombinierbar sind. Es darf also experimentiert werden…
Anm.d.Red.: Wer mehr zu Julius Trögers Arbeit erfahren will, kann ihm auf Twitter folgen: @juliustroeger. Das Foto oben stammt von Roberto Artista und steht unter einer Creative Commons Lizenz. Eine ausführliche Version dieses Artikels inklusive weiterer Links findet sich hier.
was für ein service!
Als Journalist muss man nicht unbedingt programmieren können. Wie auch schon festgestellt, wir man um programmieren zu können, einen ziemlich hohen Zeitaufwand betreiben müssen. In Berufsbild des Journalisten ist das Programmieren nicht drin enthalten und wird es wohl auch nicht auf absehbare Zeit sein. Eine Portion Basiswissen über den Aufbau von semantischen Strukturen und deren Anwendungen gehört allerdings dazu. Vor allem dann, wenn der Journalist im Online-Bereich tätig ist. Aber ganz so kompliziert, wie es in dem Artikel dargestellt wurde, werden wohl die wenigsten aus der Branche arbeiten. Zum größten Teil sind die Webseitenstrukturen von den Programmierern so festgelegt, dass man mit ein paar Schritten einen fertigen Artikel abliefern kann. Selbst wer nebenbei noch eine eigene Webseite betreut, wird diese mit hoher Wahrscheinlichkeit in WordPress haben. Auch hier sind wenig Kenntnisse des Programmierens notwendig, um Artikel zu veröffentlichen. Vorausgesetzt man hat sich die Seite von einem Könner erstellen lassen.