5 Artikel zum Thema »Webentwicklung«

Apple’s quarterly results visualized

Shortly after Apple reported its record first quarter 2012 results I was searching the web for an interactive chart where I could, well, interact with Apple’s financial data in an easy-to-use way. I found … only one. On asymco’s website there’s a handy Apple Product Data sheet and also a way to visualize the data. But there are a few things I didn’t like about the chart:

  • it’s powered by Flash,
  • it’s pretty slow when you try to interact with it (see list item #1),
  • it only dates back to the year 2006 and
  • it could be easier to use and more intuitive.

That’s why I made one myself.

The chart is powered by the amazing Highcharts JS. If you’re a web developer searching for a dynamic charting tool, this is the one to go. Unfortunately it has some minor bugs regarding specific chart types. I’m sure they will be fixed some time soon (Highcharts has a pretty big community and hardworking developers behind it), but that’s why I can’t use such useful chart types like stacked areas or areas showing the percent of a total yet.

A project in progress

The chart must be seen as a project in progress. I’ll update the site on a monthly basis. This includes adding more data and providing more functions to create a “web application” kind of feeling (e.g. switching chart types or changing time view from quarters to years). I’d really appreciate any feedback regarding the site, so be sure to tweet or mail me if you’ve got something so say or you want something to be improved.

One more thing …

Until now I compiled data from 41 quarters – that’s over a decade – and much of that data isn’t included in the chart yet (see above-mentioned bugs). To not let you wait until I finally can include all data I turned on Numbers and made a few charts. You may find similarities between the charts you’re about to enjoy and the gazillion charts created by asymco. I guess the reason for this is because they also use Numbers for their charts. :-)

I encourage you to use the charts any way you want, just be sure to mention me (all images are licensed under the CC BY 3.0 license). I also made Flickr and Google+ albums.

Apple’s quarterly revenues by product

Apple’s quarterly revenues by product (stacked area)
Apple’s quarterly revenues by product from Q102 to Q112 in a stacked area chart.
Apple’s quarterly revenues by product (percent of total)
Apple’s quarterly revenues by product from Q102 to Q112 in a percent of total chart.

Apple’s quarterly product unit sales

Apple’s quarterly product unit sales (line chart)
Apple’s quarterly product unit sales from Q102 to Q112 in a line chart.
Apple’s quarterly product unit sales (stacked column chart)
Apple’s quarterly product unit sales from Q102 to Q112 in a stacked column chart.
Apple’s quarterly product unit sales (percent of total)
Apple’s quarterly product unit sales from Q102 to Q112 in a percent of total chart.

Apple’s quarterly Mac unit sales

Apple’s quarterly Mac unit sales (line chart)
Apple’s quarterly Mac unit sales from Q102 to Q112 in a line chart.
Apple’s quarterly Mac unit sales (percent of total)
Apple’s quarterly Mac unit sales from Q102 to Q112 in a percent of total chart.

Apple product ASP

Apple product ASP (line chart)
Apple product ASP from Q102 to Q112 in a line chart.

iPod year-on-year change

iPod year-on-year change of revenues and unit sales (column chart)
iPod year-on-year change of revenues and unit sales from Q103 to Q112 in a column chart.

Apple’s cash and marketable securities

Apple’s cash and marketable securities (stacked column chart)
Apple’s cash and marketable securities from Q102 to Q112 in a stacked column chart.
Apple’s cash and marketable securities (stacked area chart)
Apple’s cash and marketable securities from Q102 to Q112 in a stacked area chart.
Apple’s cash and marketable securities (percent of total chart)
Apple’s cash and marketable securities from Q102 to Q112 in a percent of total chart.

Wochenlinks: Ein Plus für Google, Kölsch, WordPress-Performance und Video-Manipulation mit Canvas

Netzfundstücke vom 27.06. bis 03.07.2011:

Wochenlinks: Webstandards-Praktiken, iCloud und Cyberwars

Netzfundstücke vom 13.06. bis 19.06.2011:

Buchrezension: HTML5. Webseiten innovativ und zukunftssicher von Peter Kröner

Durch einen lebendigen, an britischen Humor erinnernden Schreibstil und eine sehr strukturierte und kompetente Auseinandersetzung mit der doch recht komplexen Thematik hat mich Peter Kröner mit HTML5. Webseiten innovativ und zukunftssicher wirklich beeindruckt.

Anfang und Schluss

Anfang und Schluss sind dem Autor sehr gut gelungen: Das 1. Kapitel (»HTML5 – Wer, wann und warum?«) gibt einen umfassenden Überblick über die geschichtlichen Zusammenhänge, die zum heutigen (und etwas wirren) status quo der Spezifikation geführt haben. Das 10. und letzte Kapitel (»Kommentare, Ausblick und HTML6«), gibt, wie der Name schon erahnen lässt, u. a. einen Ausblick auf zukünftige Entwicklungen von HTML. Besonders geglückt ist Punkt 10.2 (»Kritik an HTML5«): Peter Kröner geht hier detailliert und mit der nötigen Distanz auf viele kritikwürdige Punkte der Spezifikation an sich, aber auch des Entstehungsprozesses (Stichwort Ian Hicksen), ein. Die reflektiert und neutral wirkenden Kritikpunkte des 10. Kapitels unterstreichen insgesamt die Glaubwürdigkeit und Kompetenz des Autors.

Einstieg, Semantik und Formulare

Die Kapitel 2 bis 4 bieten einen guten Einstieg in den Themenkomplex. Im 2. Kapitel (»HTML5-Einstieg für Fortgeschrittene«) wird zunächst auf den generellen Aufbau eines HTML5-Dokuments eingegangen. Hier hilft Kröner bei der richtigen Syntax-Wahl (HTML oder XHTML), beschreibt inhaltliche Neuerungen und kleine, aber interessante (und einsetzbare) Neuheiten. Insgesamt erfrischend kurzweilig und Lust auf mehr machend.

Kapitel 3 (»Semantisches HTML«) geht im Detail auf die neuen Möglichkeiten ein, HTML5-Dokumente zu strukturieren und mit Semantik zu versehen. Ein kurzer Einblick in eingebaute Zugänglichkeitsmechanismen (WAI-ARIA), Microdatas und Ruby-Annotationen runden dieses Kapitel ab. Das 4. Kapitel (»HTML5-Formulare«) hat mir besonders gefallen, zeigt es doch, dass sich HTML5-Features schon heute sinnvoll und gewinnbringend in jede Website integrieren lassen. Der Autor skizziert hier alle neuen Formularelemente und -attribute und behandelt die spannende Formularvalidierung.

APIs, APIs und noch mehr APIs

In den Kapiteln 5 bis 9 geht es, wie es der Autor am Ende des 4. Kapitels treffend formuliert, um APIs, APIs und noch mehr APIs. Kapitel 5 (»Die Geolocation-API«) ist mit sechs Seiten nicht gerade umfangreich, deckt jedoch alle nötigen Punkte ab und wird durch ein Beispiel im Anhang ergänzt. Im 6. Kapitel (»Offline-Webanwendungen«) führt Kröner anhand eines Beispiels Schritt für Schritt durch eine praxisnahe Fragestellung: Wie lassen sich Websites oder -anwendungen realisieren, die selbst bei einer gekappten Internetverbindung (z. B. aufgrund eines Funklochs im Zug) weiterhin funktionieren sollen?

Kapitel 7 (»Multimedia-Elemente und eingebettete Inhalte«) beschreibt die Funktionsweisen des Video- und Audio-Elements und am Ende ist man sogar in der Lage, einen eigenen Videoplayer samt Steuerungsbuttons zu programmieren. Leider wird der berechtigte Enthusiasmus durch die verstrickte Codec-Problematik, bei der es u. a. um Lizenzprobleme und die Sturheit der Browserhersteller geht, gehörig getrübt.

Im 8. Kapitel (»Die Drag&Drop-API«) geht es wirklich ans Eingemachte. Am Ende ist man in der Lage, Elemente einer Website mit der Maus zu verschieben und sogar in Fenster anderer Browser abzulegen. Doch der Weg dahin ist steinig und hart: Unzählige browserspezifische Kniffe sind für die Realisierung notwendig, auf die der Autor umfassend eingeht. Kapitel 9 (»Das Canvas-Element«) behandelt das 2- und 3-dimensionale Zeichnen von Bildern, Flächen und Grafiken. Hier ist auch mal von direkten Manipulationen der Transformationsmatrizen die Rede – ein gewisses mathematisches Grundwissen oder wahlweise viel guter Willen sollte vorhanden sein. Generell sind Kröners Ausführungen allerdings sehr verständlich gehalten, wodurch selbst komplizierte Beispiele nachvollziehbar und umsetzbar bleiben.

Kleinigkeiten und Auffälligkeiten

  • Das Buch hätte einen besseren Titel verdient.
  • Die ca. 15 Rechtschreibfehler, die mir begegnet sind, werden im Zuge einer 2. Auflage sicherlich korrigiert, sollten jedoch nicht unerwähnt bleiben.
  • Das oben beschriebene Beispiel zur Geolocation-API wäre direkt im Kapitel deutlich besser aufgehoben.
  • Inhaltlich ging mir Punkt 9.3 (»Canvas 3D«) – speziell Unterpunkt 9.3.2 (»Hardwarebeschleunigtes Canvas-3D mit WebGL«) – viel zu sehr in die Tiefe. Für Freaks, die sich in ihrer Freizeit mit WebGL-Programmierung beschäftigen, mag dieser Abschnitt einer Offenbarung gleichen – ich konnte der Thematik nicht viel abgewinnen und habe die davon betroffenen 15 Seiten eher überflogen.

Für wen das Buch (nicht) gedacht ist

Das Buch ist sicherlich nicht für Menschen gedacht, die noch nie etwas von JavaScript-APIs gehört haben, denn um die geht es hauptsächlich. Webentwickler, die mehr über die Möglichkeiten erfahren möchten, wie man HTML-Dokumente noch semantischer machen kann, die wissen möchten, wie man HTML5 heute schon sinnvoll einsetzen kann und die bereits ein wenig (oder umfassend) mit JavaScript-APIs zu tun hatten, entsprechen schon eher der angepeilten Zielgruppe.

Fazit

Alles in allem kann ich eine klare Kaufempfehlung aussprechen. Die 34,90 Euro, die das Buch bei Amazon kostet, sind gut investiert. Ich würde sogar soweit gehen, HTML5. Webseiten innovativ und zukunftssicher von Peter Kröner als zukünftige Standardlektüre zu bezeichnen. Jeder Webdesigner und -entwickler, der nachhaltige, zukunftsorientierte und innovative Webseiten und -applikationen erstellen möchte, sollte es gelesen haben.

Es gibt übrigens zahlreiche andere Rezensionen, Meinungen und Hinweise zu Kröners Erstlingswerk, z. B. von Michael Jendryschik, Gerald Brozek, Mathias Schäfer und Gerrit van Aaken. Leseproben, Informationen über den Autor, HTML5-Demos, Fragen (und Antworten) zum Buch und vieles mehr gibt es auf der offiziellen HTML5-Buch-Seite.

Validität ist Nebensache

Hach, wie schön. Das Gütesiegel für die eigene Website ist nur einen Klick entfernt. Mit dem HTML-Validator vom W3C kriegt man ganz offiziell mitgeteilt, alles richtig gemacht zu haben. Dass dieses »Zertifikat« jedoch nichts über die wirkliche Qualität einer Website verrät, ist bei vielen noch nicht angekommen.

Ich weiß, ich weiß. Es ist wirklich verlockend. Nach bestandenem HTML-Validator-Test wird man überschüttet mit Lob. Ein herrliches Grün strahlt einem entgegen. Fast kann man sich daran bräunen. Überall Häkchen, die sagen: »Gut gemacht!«. Als Belohnung erhält man sogar kleine bunte Buttons, die sich wunderbar auf der eigenen Website platzieren lassen. Sich daraufhin zurückzulehnen und mit gutem Gewissen das kreierte Werk der Öffentlichkeit zu präsentieren, scheint angemessen zu sein.

Unglücklicherweise sagt eine valide Website lediglich aus, dass sie keine syntaktischen und grammatikalischen Fehler aufweist – mehr nicht. Bitte versteht mich nicht falsch, eine Website sollte validieren. Das ist wichtig und richtig. Für viele ist Validität allerdings der alleinige und alles entscheidende Qualitätsfaktor.

Code-Beispiele

Einige simple Code-Beispiele reichen aus, um sich der untergeordneten Rolle, die Validität bei der Qualitätsbeurteilung einer Website spielt, bewusst zu werden:

<div id="h1">
	Das ist die wichtigste Überschrift
</div>
<br>
<br>
Das ist ein Absatz in einem ganz normalen Text.
Leider ist dieser Text nicht als Absatz ausgezeichnet,
das macht es für Menschen mit Screenreadern schwierig,
diesen Text als Absatz zu erkennen.
<br>
<br>
<div>
	<a href="/startseite/">Startseite</a>
	<a href="/blog/">Blog</a>
	<a href="/archiv/">Archiv</a>
	<a href="/kontakt/">Kontakt</a>
</div>

Diese Code-Beispiele validieren. Sie sind jedoch aus semantischer Sicht eine Katastrophe. Überschriften sind keine Überschriften, Absätze sind keine Absätze, Listen sind keine Listen, … Wen es hier besonders hart trifft sind Menschen, die auf Screenreader oder andere Hilfstechnologien angewiesen sind. Sie tun sich bei der Erfassung solcher inhaltsloser Code-Ungetüme verständlicherweise extrem schwer. Wie soll man auch eine Überschrift als solche erkennen, wenn sie nicht als Überschrift ausgezeichnet ist? Eben. Es geht nicht.

Eine (oder die einzige?) gute Vorgehensweise um eine qualitativ hochwertige Website zu realisieren:

  1. Semantisches HTML produzieren, d. h. sich über jeden einzelnen Inhaltsbaustein Gedanken machen, was er letztendlich ist oder ausdrücken soll. Zeitaufwändig? Ja. Übungssache? Ja. Nutzen für den Besucher? Immens.
  2. Das HTML schön machen und schminken – und zwar nur mit CSS.
  3. Die Website validieren, also syntaktische und grammatikalische Fehler bereinigen.

Schlussgedanken

Mir ist bewusst, dass es nicht nur schwarz und weiß gibt. Es gibt Websites mit semantischem HTML, die validieren, und welche, die es nicht tun. Es gibt inhaltslose HTML-Dokumente mit Tabellen-Layout, die validieren, und welche, die es nicht tun. Wichtig ist sich klar darüber zu werden, was Validität bedeutet, und sie mit einer gesunden und realistischen Gewichtung in den eigenen Kontext bei der Entwicklung einer Website einzuordnen.

Lesenswerte Artikel zu diesem Thema

Alle Artikel im Überblick