“Virtuelle” Gemeinschaften

Leben und Arbeiten
in einer Community

Über mich

Stefan Neufeind

Aus Neuss

Bachelor of Computer Engineering
(Hochschule Niederrhein)

Tätig für SpeedPartner GmbH
(Consulting, Entwicklung und Administration)

Agenda

Definition / Beispiele

Meinungen über Communities

Community-Projekte

Community-Tools

Einstieg in eine Community

Soziale Aspekte des Communitylebens

Community und Business

Definition

Englisch für “Gemeinschaft” oder “Gesellschaft”

Community (nach Wikipedia [en]):
[...] amalgamation of living things that share an environment
[.,.] sharing and interaction in any number of ways
[...] all individual subjects [...] have something in common

Definition

Online-Community (nach Wikipedia [de]):
[...] Gemeinschaft von Menschen, die sich via Internet begegnet und austauscht. Ermöglicht wird dies durch dafür eingerichtete Plattformen.
[...] definiert sich jedoch nicht über die Technologie, sondern durch den Inhalt, der sie zusammenführt.

Beispiele

“Berühmte” Beispiele (Computer-Umfeld):

User-Gruppen

Linux-Community

Entwickler-Communities (z.B. PHP, PEAR, ...)

weitere Beispiele (andere Themengebiete):

Forschungsgemeinschaften

OpenBC (Open Business-Community)

Party-Communities (z.B. Yooliety.de)

Meinungen über Communities

Contra:

Nur für “Geeks” / Insider

Nur ein Hobby

Chaotisch / unorganisiert / wenig hilfreich

Pro:

Ergiebiges, da gemeinsames Arbeiten

Unterstützung und Anerkennung

Spaß an der Gemeinschaft

Community-Projekte

PEAR
PHP Extension and Application Repository

DAS Repository für PHP

Sammlung von hochqualitativen PHP-Komponenten

483 Paketen (stark steigend) in 35 Kategorien

252 Paket-Betreuer, 870 Entwickler

100% Open Source (Lizenzen: PHP, Apache, BSD, LGPL)

Tools für Kommunikation und Zusammenarbeit

Community-Projekte

SourceForge.net

Plattform für Community-Projekte

119.246 Pakete, mehr als 1.000.000 Mitglieder

Präsentation von Projekten

Downloads von Applikationen / Source

Entwicklungswebsite und Hosting für Projekte

Tools für Kommunikation und Zusammenarbeit

PEAR

Besteht aus:

Website (Präsentation, Backend für Installer, ...)

Installer (Kommandozeile, Web, GUI)

Paketen

Dokumentation

Support

Qualitätssicherung (PEAR-QA)

PEAR

Keine Applikationen (fast keine :-) )
sondern Komponenten für einzelne Aufgaben

Datenbankabstraktion

Webservices

Internationalisierung

Netzwerk / Internet

Grafikerzeugung / -bearbeitung

Prüfroutinen (Emailadressen, IBAN, Kreditkarten, ...)

PEAR

Komponenten universell einsetzbar

Kooperation statt konkurrierende Pakete

„Sauberes“ Design

Klare Regeln zur Qualitätssicherung und Wartbarkeit

Verwendung in zahlreichen Applikationen

Business-ready

PEAR

Installation von Paketen
mit Überprüfung von Abhängigkeiten, Konflikten etc.:

Ermöglicht auch optionale Komponenten, Versionsabhängigkeiten, ...

# pear install Validate_Finance-alpha

Did not download dependencies: pear/Validate, use --alldeps or --onlyreqdeps to download automatically

pear/Validate_Finance requires package "pear/Validate" (version >= 0.5.0)

No valid packages found

install failed

PEAR

Installation von Paketen:

# pear install Validate-alpha

Did not download dependencies: pear/Date, use --alldeps or --onlyreqdeps to download automatically

pear/Validate can optionally use package "pear/Date"

downloading Validate-0.5.0.tgz ...

Starting to download Validate-0.5.0.tgz (9,862 bytes)

.....done: 9,862 bytes

install ok: channel://pear.php.net/Validate-0.5.0

# pear install Validate_Finance-alpha

downloading Validate_Finance-0.5.0.tgz ...

Starting to download Validate_Finance-0.5.0.tgz (5,608 bytes)

.....done: 5,608 bytes

install ok: channel://pear.php.net/Validate_Finance-0.5.0

PEAR

Unterstützung von Channels (seit PEAR 1.4.x):

Zusammenarbeit mit anderen Repositories,
welche Pakete im PEAR-Format anbieten (in Kürze):
Smarty, Horde, ...

# pear list-channels

Registered Channels:

====================

Channel Summary

pear.php.net PHP Extension and Application Repository

pecl.php.net PHP Extension Community Library

__uri Pseudo-channel for static packages

PEAR-Beispiel

Nutzung von PEAR-Paketen,
z.B. Grapherzeugung mit PEAR::Image_Graph:

require_once 'Image/Graph.php';

// create the graph

$Graph =& Image_Graph::factory('graph', array(400, 300));

// add a TrueType font

$Font =& $Graph->addNew('font', 'Verdana');

// set the font size to 11 pixels

$Font->setSize(8);

$Graph->setFont($Font);
[...]

PEAR-Beispiel

$Graph->add(

Image_Graph::vertical(

Image_Graph::factory('title',

array('Smoothed Area Chart Sample', 12)),

Image_Graph::vertical(

$Plotarea = Image_Graph::factory('plotarea'),

$Legend = Image_Graph::factory('legend'), 90),

5)

);

$Legend->setPlotarea($Plotarea);

// create the dataset

$Dataset =& Image_Graph::factory('random', array(10, 2, 15, true));

// create the 1st plot as smoothed area chart using the 1st dataset

$Plot =& $Plotarea->addNew('Image_Graph_Plot_Smoothed_Area', array(&$Dataset));

PEAR-Beispiel

// set a line color

$Plot->setLineColor('gray');

// set a standard fill style

$Plot->setFillColor('blue@0.2');

// output the Graph

$Graph->done();

?>

PEAR-Beispiel

PEAR-Website

[... Live-Demo ...]

Struktur des Repository (Pakete)

Release-Verwaltung

Mitgliederverwaltung (Paket-Betreuer, ...)

Bugtracker

PEAR Proposal-System („PEPr“)

CVS (cvs.php.net)

SourceForge-Website

[... Live-Demo ...]

Vertretene Projekte

Mitgliederverwaltung (Paket-Betreuer, ...)

Release-Verwaltung

Bugtracker

News

CVS

Spenden

Tools für Communities

Website / Präsentation

Darstellung von Projekten, Komponenten, Applikationen

Verwaltung von Downloads / Releases

Mitgliederverwaltung

Verwaltung von Betreuern, Helfern, ...

Dokumentation

Verwaltung von Dokumentationen

Automatische Generierung von Dokumentation (API-docs)

Bereitstellung von versch. Formen (Sprachen, Dateiformate)

Tools für Communities

Kommunikation

Mailinglisten / Foren

Chat (z.B. IRC)

Bugtracker

Abstimmungstools

Versionsverwaltung (z.B. „CVS“)

Gemeinsames Arbeiten am „gleichen“ Code

Verwaltung von Versionsständen / Änderungen

Einstieg in eine Community

Zweck und Struktur der Community verstehen

Aufgabengebiete / -verteilung verstehen

Eigene Stärken erkennen, z.B.

Support

Dokumentation

Marketing / Repräsentation

Testen, Ausarbeiten von Tests / Bugreports

Entwicklung

Einstieg in eine Community

Mit kleinen Aktivitäten beginnen!

Auf Mailinglisten / in Foren aktiv sein

Kleinere Aufgaben, z.B. Patches für Bugs ausarbeiten

Eigenständig Teilaufgaben übernehmen

Verantwortung übernehmen, Einsatz zeigen

Pakete / Module / Dokumente betreuen

Ansprechpartner für andere werden

Offen sein für andere Meinungen / Anregungen!

Soziale Aspekte des Communitylebens

Toleranz, offene Diskussion

Gemeinsames Arbeiten über Grenzen hinweg
(Länder, Techniken, Projektgruppen, ...)

Austausch mit anderen

Virtuell: Mailingliste, Foren, Chat, Email

Real: Community-Treffen, Benutzergruppen, Konferenzen

Soziale Netzwerke knüpfen

[... Beispiele ...]

Soziale Aspekte des Communitylebens

Soziale Aspekte des Communitylebens

Community und Business

Passen Community und Business zusammen?

Arbeit in Community-Projekte investieren?

Knowhow und Entwicklungsleistung „freigeben“?

Community-Erzeugnisse im Business-Alltag nutzbar?
(Support, Erweiterung / Anpassung, ...)

Community und Business

Community und Business passen zusammen!

Umdenken zur „klassischen“ Entwicklungsweise

Zusammenarbeit mit Community bedeutet:

Nutzung von verteiltem Knowhow

Gemeinsam bessere Ergebnisse

Wiederverwendbarkeit von Komponenten

Geben und Nehmen (unbedingt beides!)

Finanziell / personell an Community-Arbeit beteiligen

Community und Business

Am Beispiel SpeedPartner GmbH:

Vielfach Verwendung von freier, Community-basierter Software

Aktive Mitarbeit in Communities für
Problembehebung und Weiterentwicklung

Betreuung eigener Projekte / Komponenten

Integration von Community-Komponenten in
kundenspezifische Entwicklungen

Wissenstransfer

Nutzung von sozialen Netzwerken

Community und Business

Unternehmen arbeiten gut mit Communities zusammen, z.B.

Bei Linux: Redhat / Fedora, Novell / OpenSuSE, ...

Bei PHP: Zend, Mayflower bzw. ThinkPHP, ...

Bei Typo3: netfielders,mittwaldmedien, ...

Bei Multimedia: RealNetworks / Helix Community, ...

Support und individuelle Anpassungen verfügbar

Möglichkeit des direkten Sponsorings an
Community-Projekte / -Entwickler

Community und Business

Rechtliche Hintergründe beachten!

Lizenzen von Community-Projekten für
geplante Einsatzzwecke prüfen

Rechtliche Basis für Mitarbiet in Community beachten
Problem z.B.: angestellter Software-Entwickler engagiert
sich in Freizeit in einer Open-Source-Community

Links

PEAR:
http://pear.php.net/

SourceForge.net:
http://www.sourceforge.net/, http://www.sf.net/

Linux-Communities:
http://fedora.redhat.com/, http://www.opensuse.org/
... and many more ...

Beispiele / Screenshots für PEAR::Image_Graph:
http://pear.veggerby.dk/

Danke für Ihre Aufmerksamkeit!

Aktuelle Folien verfügbar unter:

http://talks.speedpartner.de/

Fragen?
neufeind (at) speedpartner.de

Leben und arbeiten in einer Community, Stefan Neufeind, SpeedPartner GmbH

Vortragsreihe 05/06, Hochschule Niederrhein, Krefeld, Germany

http://talks.speedpartner.de/

Stefan Neufeind

2005-04-26T01:21:33