Entwickler-Magazin: Soziale Netzwerke 2.0

Am 08.12.2010 ist das neue Entwickler-Magazin erschienen. Ein Arbeitskollege und ich haben für diese Ausgabe einen Artikel geschrieben:
Soziale Netzwerke 2.0 – Social Media API
Der Artikel gibt eine Einführung von der Bedeutung von offenen Schnittstellen und wie Facebook und Twitter u.a. dadurch zu Marktführern geworden sind. Weiterhin wird der Begriff Social Media API erläutert und an einigen Einsatzszenarien demonstriert, was mit der Verknüpfung von Plattformen über die Schnittstellen möglich ist.
Im zweiten Teil wird OpenSocial vorgestellt und welche Ziele das Konsortium hinter dieser Entwicklung hat. Ein Beispiel zeigt einführend wie man plattformübergreifende Applikationen für Social Media Dienste entwickeln kann.

Der Artikel in dieser Ausgabe ist sozusagen eine Lightversion eines Artikels, welches wir für das Java Magazin geschrieben haben. Dieser wurde bereits in der Oktober Ausgabe veröffentlicht. Zusätzlich zu den oben beschriebenen Themen werden in der Java-Magazin-Version noch Einstiegsmöglichkeiten für Java Entwickler beschrieben und die Vielfalt an Frameworks und SDK’s, die für Java existieren, gezeigt.

Für mich persönlich war es die erste Veröffentlichung in einem Fachmagazin und besonders gefreut hat mich, dass die Redakteurin vom Java Magazin über diesen Blog auf mich aufmerksam geworden ist.

Java ist auch eine Insel

Java ist auch eine Insel” ist in der 9. Auflage erschienen. Der Galileo Verlag stellt das Buch kostenlos Online und zum Download zur Verfügung.
Das Buch kann als Standardwerk für die Java Programmierung angesehen werden. Es ermöglicht einen umfassenden Einstieg und dient mit der Volltextsuche als gutes Nachschlagewerk. Es werden die wichtigsten Standards besprochen, sowie Spezialthemen wie XML, JSP, JDBC oder Reflections.
Interessant für den Einsteiger sind die Übungen zum Buch. Aufgaben gibt es zu jedem Kapitel und die Lösungen werden gleich in Java-Code präsentiert.
Für Java Entwickler, die sich weiterbilden möchten, würde ich noch folgende Bücher aus dem openbook Programm empfehlen:
Objektorientierte Programmierung: Das Buch gibt einen Überblick über Konzepte der Objektorientierung, Entwurfsmuster und Architekturen (z.B. das MVC Prinzip)
Java 2: Designmuster und Zertifizierungswissen: Das Buch ist zwar schon etwas älter, die Konzepte von z.B. logischen Operatoren, UML Modellierung und Reflections sind aber immer noch aktuell.

Gründe für eine offene Schnittstelle

John Musser von ProgrammableWeb nennt fünf Gründe, warum sich der Einsatz von offenen Schnittstellen (”Open APIs”) für Unternehmen lohnt:

Geld verdienen
60% von neuen eBay Auktionen werden über die eBay API eingestellt. Das Unternehmen verdient bei jeder Transaktion darüber mit.

Geld sparen
Auf der anderen Seite können Unternehmen Geld sparen, wenn sie andere APIs nutzen. Die Amazon S3 API kann Firmen helfen, ihre Speicherkosten zu senken.

Markenaufbau
Google hat mit der eigenen Google Maps API ein Mashup entwickelt, nämlich Google Maps, welches nicht nur eine Bereicherung für das gesamt Web war, sondern auch eine unglaubliche Verbreitung des Googles Logos gebracht hat.

Der Weg in die Cloud
Salesforce bietet mit der Salesforce.com API eine komplette Entwicklungsumgebung für Cloud-Anwendungsentwicklung zur Verfügung. Für andere Unternehmen ist das ein günstiger und schneller Einstieg in die Cloud.

Plattformübergreifend
Hat man bereits ein gutes Produkt oder Service kann eine API den Weg für andere Plattformen öffnen. Mit der Bereitstellung einer API steht der Service von Netflix auf über 200 verschiedenen Geräten zur Verfügung.

Wer sich noch weiter in die Thematik Open API Ecosystem einlesen will, dem sei die Präsentation von John Musser empfohlen

Weitere Links gibt es in meiner Linksammlung Developer Seiten von API Anbietern

Fehler vermeiden

Mit dem Artikel Als Entwickler “Besser werden” habe ich drei Möglichkeiten genannt, wie man seine Fähigkeiten als Programmierer verbessern kann: Die Methoden waren Pair Programming, sich an Grundsätze des Clean Code Develoments halten oder die Sache pragmatisch ala Hunt anzugehen.

Eine andere Möglichkeit besteht darin, typische Fehler zu vermeiden. Ein Artikel im JAXcenter beschreibt “10 Fehler, die jedem Programmierer unterlaufen”. Einige Fehler sollten jedem klar sein, wie sprechende Variablennamen zu benutzen oder nicht tausende von Zeilen in eine Methode zu stopfen. Insgesamt wäre die Liste in sichtbarer Erreichbarkeit bei der Entwicklung gar nicht so deplatziert.
Der 10. Punkt nimmt dann meinen Vorschlag wieder auf: Weiterbildung ;-)

Als Entwickler “Besser-werden”

Gute Software erfühlt nicht nur die gewünschten Anforderungen und Funktionen. Wichtig ist auch die Qualität der Software, also auch die des Quelltexts.
Gute Software ist auch, wenn neue und unbekannte Anforderungen leicht implementiert werden können, wenn andere Entwickler den Code verstehen und erweitern können und man selbst noch nach Monaten versteht, was man da überhaupt entwickelt hat. Das alles fasst man unter dem Begriff Wartbarkeit zusammen.
Um sich als Entwickler persönlich weiter zu entwickeln bieten sich verschiedene Möglichkeiten an. Entwicklungsmodelle wie Scrum oder Extreme Programmierung nutzen das Konzept des Pair Programming. Zwei Entwickler setzen sich zusammen an einen PC und lösen ein Problem. Dabei tippt einer in die Tastatur und entwickelt, der andere denkt mit und versucht zu folgen. Vor allem wenn Junior und Senior Entwickler zusammen sitzen, kann der Junior doch einiges lernen.
Die Initiative Clean Code Developer versucht zu vermitteln, was professionelle Entwicklung ausmacht. Demnach sollte sich ein Entwickler mit seiner Arbeit und Werkzeugen bewusst auseinandersetzen und nicht einfach nur versuchen die Chefs oder Kunden zufrieden zu stellen. Unter dem Aspekt, dass „gute Softwareentwicklung“ nicht einfach zu definieren ist, beschreibt die Webseite einen gemeinsamen Nenner und versucht einen Qualitätsstandard zu definieren. Obwohl die Seite sich an .NET Entwickler richtet, kann man auch als Java Entwickler sich einiges von dem Wertesystem ansehen. Etwas nerdhaft finde ich die Idee, die „Grade“ eines Entwicklers mittels bunter Armbänder zu zeigen.
Ein weiteren Einstieg in zur persönlichen Weiterbildung erhält man in Andrew Hunt’s Buch Der Pragmatische Programmierer. Das Buch ist locker zu lesen und gibt eine Menge Ideen und Tipps mit, wie man mit einer pragmatischen Einstellung und der Lust am Weiterlernen bessere Software entwickelt kann.

Facebook Alternativen für Entwickler in Deutschland

Facebook ist Status Quo bei den sozialen Netzwerken, auch bei Entwicklern. Hier eine kleine Übersicht, welche Möglichkeiten die größeren deutschen Ableger bieten:
Nachdem man sich bei www.meinvz.net als Developer registriert hat (das wird noch per Hand freigeschaltet, kann also etwas Zeit in Anspruch nehmen) hat man Zugriff auf die Entwicklerseite. Im Developer-Wiki ist die Schnittstelle, die auf OpenSocial basiert, gut erläutert.

Daniel Grewing Xing hat schon seit längerem externe Anwendungen integriert. Man findet gut den DevBlog, da schreiben aber nur Entwickler von Xing, und das nicht mal sehr aktuell. Einen öffentlichen Zugang zur Schnittstelle sucht man vergeblich.

Auf Lokalisten.de werden Anwendungen mittels OpenSocial entwickelt. Die developer plattform ist komplett auf englisch, bietet aber über eine umfassende Dokumentation, Beispiele und einer Sandbox einen schnellen Einstieg in die Entwicklung.

Die Geschichte von Social Media

Auf Skloog wurde eine Grafik über die Geschichte von Social Media veröffentlicht. Ob man nun E-Mail oder den Chat über IRC als Social Media betrachten kann, darüber läßt sich streiten. Die Grafik selbst ist aber ganz interessant:

History of Social Media

Facebook Social Plugins

Der erste Einstieg in die Entwicklung von Facebook Anwendungen ist der Developer Bereich. Dort erhält man im Showcase einen Überblick wie große Webseiten Facebook einbinden und Plugins nutzen.
Für jede Kategorie (von News bis Sport) gibt Facebook Empfehlungen welche Widgets eingesetzt werden können.
Die “Empfohlene soziale Plug-ins” sind:

  • Activity Feed
    Der Feed zeigt die letzten Aktivitäten auf der eigenen Webseite
  • Comments
    Eine Textbox, in der Besucher Kommentare auf der Webseite hinterlassen können.
  • Facepile
    Das Plugin zeigt die Profilbilder der eingeloggten Besucher auf der Webseite
  • Like Button
    Klickt ein Besucher den “Gefällt mir” Button erscheint das in dessem News Feed auf Facebook mit einem Link zur Webseite.
  • Like Box
    Das Plugin zeigt in einem Überblick wie viele Leute die Webseite mögen, die letzten Posts und bietet einen “Like” Button.
  • Live Stream
    Facebook empfiehlt dieses Plugin für den Einsatz bei Live Events. Besucher können über das Plugin Kommentare und Statusupdates abgeben und die Aktivitäten anderer Besucher live mitverfolgen.
  • Login Button
    Analog zum Facepile Plugin zeigt dieses Plugin die letzten Logins auf der Webseite an.
  • Recommendations
    Das Plugin zeigt dem Besucher angepasste Empfehlungen. Ist er eingeloggt werden diese abhängig von den eigenen Kontakten erstellt. Alle anderen erhalten Empfehlungen abhängig von den Aktivitäten der Webseite auf Facebook.

Verwandte Beiträge
Facebook Freunde mit der facebook-java-api
Authentication mit Facebook Connect

Die wichtigsten Links im Überblick
Facebook Developer Seite: Die Einstiegsseite für Entwickler
Social Plugins von Facebook: Alle Plugins in der Übersicht
Facebooks Showcase: Beispiele für die Verwendung der Plugins

Google Wave wird “Wave in a box”

Anfang August berichtete Google davon, dass Google Wave eingestellt würde. Mittlerweile hat sich Google dazu entschlossen, Google Wave als Open Source Projekt zu veröffentlichen.
Das Projekt wird nicht die gleiche Funktionalität wie Google Wave haben, bietet aber mit dem Server und Client Entwicklern die Möglichkeit einen eigenen Wave-Server aufzusetzen.

Social Media Prisma

Das Social Media Prisma von ethority wurde aktualisiert und liegt in der zweiten Version vor. Wie auch mit der letzten Version liegen die Grafiken als Creative Commons (CC) vor und können in unterschiedlichen Formaten heruntergeladen werden.

Das Prisma gibt einen Überblick über die Social Media Landschaft in Deutschland.