SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Entwicklung in Open-Source-
Projekten am Beispiel MediaWiki


      12.12.2008 von Johan Uhle




12.12.2008 | MediaWiki | Johan Uhle
Entwicklung in Open-Source-
Projekten am Beispiel MediaWiki
Geschichte und Relevanz
Organisation
Technischer Überblick
Codestruktur
Mein Patch
Skalierung und Caching

12.12.2008 | MediaWiki | Johan Uhle
MediaWiki
3




         12.12.2008 | MediaWiki | Johan Uhle
Geschichte
4


     ■ Für die Wikipedia entwickelt
     ■ Einsatz in Wikipedia seit Januar 2002
     ■ „Richtiger“ Release 1.1. Dezember 2003
     ■ Neuster Release: 1.13.2            2.Oktober.2008


     ■ Im Sinne der Wikipedia offen und zur Mitarbeit einladend
     ■ Lizensierung: GNU GPL 2




           12.12.2008 | MediaWiki | Johan Uhle
Relevanz
5
     ■ Alle Wikimedia-Projekte benutzen es:
         □ Wikipedia
         □ Wikibooks
         □ Wiktionary
         □ Wikinews




    ■ zusätzlich noch interner Einsatz in Unternehmen
    ■ populärste Software für Wiki-Einsatz



           12.12.2008 | MediaWiki | Johan Uhle
Organisation 1/3
6


     ■ www.mediawiki.org
     ■ Drei Bereiche:
        □ Endbenutzer / Systemadministrator / Entwickler


     ■ Entwicklertools:
        □ Bugzilla
        □ Subversion (Webansicht mit ViewVC)
        □ Doxygen
        □ Mailinglist Wikitech-l + lokale Gruppen




           12.12.2008 | MediaWiki | Johan Uhle
Organisation 2/3
7


     ■ IRC Channel #mediawiki auf irc.freenode.de >150 Teilnehmer
     ■ Bot, der neue SVN-Commits und Aktionen in Bugzilla werden im
       Channel ausgegeben
     ■ 174 SVN-Commiter (gezählt!)




           12.12.2008 | MediaWiki | Johan Uhle
Organisation 2/3
8


     ■ IRC Channel #mediawiki auf irc.freenode.de >150 Teilnehmern
     ■ Bot, der neue SVN-Commits und Aktionen in Bugzilla werden im
       Channel ausgegeben
     ■ 174 SVN-Commiter (gezählt!)


     ■ Auf Wikimediaprojekten läuft eine der letzten SVN-Versionen


     ■ Konstanter Code-Review der neusten Commits durch
       Communitymitglieder




           12.12.2008 | MediaWiki | Johan Uhle
Organisation 3/3
9


     ■ Lee Daniel Crocker / Erste Versionen auf Basis von „UseMod Wiki“
     ■ Brion Vibber / CTO of the Wikimedia Foundation
     ■ Tim Starling „I'm employed by the Wikimedia Foundation as a
       developer and system administrator. I became a Wikipedia editor
       on October 11, 2002, and began volunteer development work
       about a year later“
     ■ Aaron Schulz „I do work in both adding functionality to core
       components as well as writing badly needed major extensions. I'll
       sometimes do cleanup/documentation if I am bored ;).“




           12.12.2008 | MediaWiki | Johan Uhle
Technischer Überblick 1/2
10


      ■ Technische Vorraussetzungen
         □ Webserver Apache oder IIS
         □ PHP4 < 1.6 => PHP5
         □ MySQL 4.0 oder PostgreSQL 8.1
      ■ Wichtigste Funktionen:
         □ Es ist ein Wiki
         □ Mediendateien (Bilder, Tondateien)
         □ Internationalisierung / Lokalisierung
         □ Skalierung




            12.12.2008 | MediaWiki | Johan Uhle
Technischer Überblick 2/2
11




           12.12.2008 | MediaWiki | Johan Uhle
Code 1/3
12




          12.12.2008 | MediaWiki | Johan Uhle
Code 2/3
13




          12.12.2008 | MediaWiki | Johan Uhle
Code 3/3
14
      ■ Objektorientiert Programmiert
      ■ Dateistruktur:
         □ /include              PHP-Bibliotheken
         □ /language             Sprachen
         □ /maintenance Administrationsaufgaben sowie SQL-Dateien
           für das Datenbanklayout
         □ /skins                Oberflächen
         □ /t und /tests         Tests für die meisten Funktionialitäten




            12.12.2008 | MediaWiki | Johan Uhle
Mein Patch 1/4
15


     ■ 5491 Colour-coding of items in page histories (165xx ist neu)
     ■ History eines Artikels. Jede Revision hat eigene Zeile.
     ■ Verbesserung: Je nach Status des User, der die Revision getätigt
       hat, wird die Hintergrundfarbe geändert.




             12.12.2008 | MediaWiki | Johan Uhle
Mein Patch 2/4
16




          12.12.2008 | MediaWiki | Johan Uhle
Mein Patch 3/4
17




          12.12.2008 | MediaWiki | Johan Uhle
Mein Patch 4/4
18




          12.12.2008 | MediaWiki | Johan Uhle
Skalierung 1/4
19

      ■ Skalierung sehr wichtig




            12.12.2008 | MediaWiki | Johan Uhle
Skalierung 2/4
20

     ■ Load Balancing vor Squid
     ■ Squid bedient 75 % des WP-Traffics (vor Allem Anfragen ohne
       eingeloggte User)
     ■ MediaWiki enthält NotifyFunktionen, um bei Änderungen dem Squid-
       Server Bescheid zu geben.


     ■ Source: /include/Article.php
     ■ doPurge() 1045
     ■ onArticleEdit() 3137




             12.12.2008 | MediaWiki | Johan Uhle
Skalierung 3/4
21

     ■ Load Balancing vor Apache
     ■ PHP Bytecode Caching mit vielen Frameworks. Empfohlen APC
     ■ Caching auf Apache
          ■ Local Message Cache
          ■ Memcache
          ■ Datenbankanfrage


     ■ Source: /incude/MessageCache.php
     ■ Line: 228




             12.12.2008 | MediaWiki | Johan Uhle
Skalierung 4/4
22

      ■ Local Message Cache sind statische HTML-Seiten, die an IP-User
        gegeben werden


      ■ Memcache läuft auf jedem ApacheServer
      ■ Speichert Datenbankdaten lokal im Speicher. Löscht Daten nach
        Least Recent Used




            12.12.2008 | MediaWiki | Johan Uhle
Quellen:
23

      ■ MediaWiki SVN 440xx
      ■ http://www.mediawiki.org
      ■ http://meta.wikimedia.org
      ■ http://en.wikipedia.org/wiki/MediaWiki_release_history
      ■ http://lists.wikimedia.org/pipermail/wikitech-l/
      ■ https://bugzilla.wikimedia.org
      ■ https://www.ohloh.net/p/mediawiki


      ■ #mediawiki auf irc.freenode.de



                                                           Stand: 10.12.08

             12.12.2008 | MediaWiki | Johan Uhle
Ende
24

      ■ Geschichte und Relevanz
        Organisation
        Technischer Überblick
        Codestruktur
        Mein Patch
        Skalierung und Caching


      ■ Fragen?




            12.12.2008 | MediaWiki | Johan Uhle
Empfehlungen
25

     ■ How to ask questions the smart way
     ■ http://www.catb.org/~esr/faqs/smart-questions.html


     ■ How to report bugs effectively
     ■ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html




             12.12.2008 | MediaWiki | Johan Uhle

Weitere ähnliche Inhalte

Andere mochten auch

Y2015 kundenorientierung am_telefon_südtirol_d
Y2015 kundenorientierung am_telefon_südtirol_dY2015 kundenorientierung am_telefon_südtirol_d
Y2015 kundenorientierung am_telefon_südtirol_dRené F. Lisi
 
Was Ist Mission Control?
Was Ist Mission Control?Was Ist Mission Control?
Was Ist Mission Control?Eb Schmidt
 
Social Commerce - Empfehlungsmarketing in Webshops mit Praxisbeispielen
Social Commerce - Empfehlungsmarketing in Webshops mit PraxisbeispielenSocial Commerce - Empfehlungsmarketing in Webshops mit Praxisbeispielen
Social Commerce - Empfehlungsmarketing in Webshops mit Praxisbeispielensynaigy
 
Technologien für die Berufsbildung / Technologies for vocational education an...
Technologien für die Berufsbildung / Technologies for vocational education an...Technologien für die Berufsbildung / Technologies for vocational education an...
Technologien für die Berufsbildung / Technologies for vocational education an...Beat A. Schwendimann, Ph.D.
 

Andere mochten auch (20)

Y2015 kundenorientierung am_telefon_südtirol_d
Y2015 kundenorientierung am_telefon_südtirol_dY2015 kundenorientierung am_telefon_südtirol_d
Y2015 kundenorientierung am_telefon_südtirol_d
 
Los Azcarraga de Tigres a Gata
Los Azcarraga de Tigres a GataLos Azcarraga de Tigres a Gata
Los Azcarraga de Tigres a Gata
 
El dia internacional del hombre
El dia internacional del hombreEl dia internacional del hombre
El dia internacional del hombre
 
Was Ist Mission Control?
Was Ist Mission Control?Was Ist Mission Control?
Was Ist Mission Control?
 
Test de Conocimientos y Cultura
Test de Conocimientos y Cultura Test de Conocimientos y Cultura
Test de Conocimientos y Cultura
 
El Tiempo Nos Enseña
El Tiempo Nos EnseñaEl Tiempo Nos Enseña
El Tiempo Nos Enseña
 
ESTOS SON LOS SINTOMAS DE UN HOMBRE QUE TE QUIERE
ESTOS SON LOS SINTOMAS DE UN HOMBRE QUE TE QUIEREESTOS SON LOS SINTOMAS DE UN HOMBRE QUE TE QUIERE
ESTOS SON LOS SINTOMAS DE UN HOMBRE QUE TE QUIERE
 
La Edad y la memoria chiste
La Edad y la memoria chisteLa Edad y la memoria chiste
La Edad y la memoria chiste
 
Social Commerce - Empfehlungsmarketing in Webshops mit Praxisbeispielen
Social Commerce - Empfehlungsmarketing in Webshops mit PraxisbeispielenSocial Commerce - Empfehlungsmarketing in Webshops mit Praxisbeispielen
Social Commerce - Empfehlungsmarketing in Webshops mit Praxisbeispielen
 
Gracias
GraciasGracias
Gracias
 
Clase de Ciencias
Clase de CienciasClase de Ciencias
Clase de Ciencias
 
Hecho en mexico
Hecho en mexicoHecho en mexico
Hecho en mexico
 
Technologien für die Berufsbildung / Technologies for vocational education an...
Technologien für die Berufsbildung / Technologies for vocational education an...Technologien für die Berufsbildung / Technologies for vocational education an...
Technologien für die Berufsbildung / Technologies for vocational education an...
 
Bellisimo
BellisimoBellisimo
Bellisimo
 
Mujeres ABNEGADAS ???
Mujeres ABNEGADAS ???Mujeres ABNEGADAS ???
Mujeres ABNEGADAS ???
 
Calendário 2012
Calendário 2012Calendário 2012
Calendário 2012
 
Quien Es El Jefe
Quien Es El JefeQuien Es El Jefe
Quien Es El Jefe
 
Julian Beever Dibujos En La Acera
Julian Beever Dibujos En La AceraJulian Beever Dibujos En La Acera
Julian Beever Dibujos En La Acera
 
AISHWARYA RAI Hindu Actriz modelo India
AISHWARYA RAI Hindu Actriz modelo IndiaAISHWARYA RAI Hindu Actriz modelo India
AISHWARYA RAI Hindu Actriz modelo India
 
Apoyo a Empresas Mexicanas
Apoyo a Empresas MexicanasApoyo a Empresas Mexicanas
Apoyo a Empresas Mexicanas
 

Ähnlich wie Entwicklung in Open Source Projekten - MediaWiki

digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM.org
 
Drupal 7 - Media Modul (Version 2.x-dev)
Drupal 7 - Media Modul (Version 2.x-dev)Drupal 7 - Media Modul (Version 2.x-dev)
Drupal 7 - Media Modul (Version 2.x-dev)Steffen Rühlmann
 
OSDC 2010 | What's new in Apache 2.4? by Rainer Jung
OSDC 2010 | What's new in Apache 2.4? by Rainer JungOSDC 2010 | What's new in Apache 2.4? by Rainer Jung
OSDC 2010 | What's new in Apache 2.4? by Rainer JungNETWAYS
 
eCollaboration-Projektmanagement-Tools
eCollaboration-Projektmanagement-ToolseCollaboration-Projektmanagement-Tools
eCollaboration-Projektmanagement-Toolsdp123123
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsChristoph Adler
 
Automatisierte Linux installation 0603_version2012_inoxt_rz
Automatisierte Linux installation 0603_version2012_inoxt_rzAutomatisierte Linux installation 0603_version2012_inoxt_rz
Automatisierte Linux installation 0603_version2012_inoxt_rzinoX-tech GmbH
 
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenSpeedPartner GmbH
 
Wordpress vs. Textpattern
Wordpress vs. TextpatternWordpress vs. Textpattern
Wordpress vs. Textpatternguestcb8462
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondUlrich Krause
 
Semantic MediaWiki im Projektmanagement
Semantic MediaWiki im Projektmanagement Semantic MediaWiki im Projektmanagement
Semantic MediaWiki im Projektmanagement Bernhard Krabina
 
Web 3.0
Web 3.0Web 3.0
Web 3.0livpre
 
Web 2.0 Usability: Chancen fuer Lernen und Lehren?
Web 2.0 Usability: Chancen fuer Lernen und Lehren?Web 2.0 Usability: Chancen fuer Lernen und Lehren?
Web 2.0 Usability: Chancen fuer Lernen und Lehren?Martin Ebner
 
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)NETWAYS
 
Tools zur Diagnose von Weblogic Performanceengpässen und Fehlerzuständen
Tools zur Diagnose von Weblogic Performanceengpässen und FehlerzuständenTools zur Diagnose von Weblogic Performanceengpässen und Fehlerzuständen
Tools zur Diagnose von Weblogic Performanceengpässen und FehlerzuständenOPITZ CONSULTING Deutschland
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?KurtStockinger
 
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)NETWAYS
 

Ähnlich wie Entwicklung in Open Source Projekten - MediaWiki (20)

digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
 
Drupal 7 - Media Modul (Version 2.x-dev)
Drupal 7 - Media Modul (Version 2.x-dev)Drupal 7 - Media Modul (Version 2.x-dev)
Drupal 7 - Media Modul (Version 2.x-dev)
 
OSDC 2010 | What's new in Apache 2.4? by Rainer Jung
OSDC 2010 | What's new in Apache 2.4? by Rainer JungOSDC 2010 | What's new in Apache 2.4? by Rainer Jung
OSDC 2010 | What's new in Apache 2.4? by Rainer Jung
 
eCollaboration-Projektmanagement-Tools
eCollaboration-Projektmanagement-ToolseCollaboration-Projektmanagement-Tools
eCollaboration-Projektmanagement-Tools
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
 
Automatisierte Linux installation 0603_version2012_inoxt_rz
Automatisierte Linux installation 0603_version2012_inoxt_rzAutomatisierte Linux installation 0603_version2012_inoxt_rz
Automatisierte Linux installation 0603_version2012_inoxt_rz
 
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
 
Wordpress vs. Textpattern
Wordpress vs. TextpatternWordpress vs. Textpattern
Wordpress vs. Textpattern
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
 
Linuxtag holgerkoch openqrm_2013
Linuxtag holgerkoch openqrm_2013Linuxtag holgerkoch openqrm_2013
Linuxtag holgerkoch openqrm_2013
 
Semantic MediaWiki im Projektmanagement
Semantic MediaWiki im Projektmanagement Semantic MediaWiki im Projektmanagement
Semantic MediaWiki im Projektmanagement
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
Web 2.0 Usability: Chancen fuer Lernen und Lehren?
Web 2.0 Usability: Chancen fuer Lernen und Lehren?Web 2.0 Usability: Chancen fuer Lernen und Lehren?
Web 2.0 Usability: Chancen fuer Lernen und Lehren?
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
 
Tools zur Diagnose von Weblogic Performanceengpässen und Fehlerzuständen
Tools zur Diagnose von Weblogic Performanceengpässen und FehlerzuständenTools zur Diagnose von Weblogic Performanceengpässen und Fehlerzuständen
Tools zur Diagnose von Weblogic Performanceengpässen und Fehlerzuständen
 
Blogdienst der FAU
Blogdienst der FAUBlogdienst der FAU
Blogdienst der FAU
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
 
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
 

Mehr von Johan

Mapbox at Product Crunch Berlin 2018
Mapbox at Product Crunch Berlin 2018Mapbox at Product Crunch Berlin 2018
Mapbox at Product Crunch Berlin 2018Johan
 
In-Car Navigation with OSRM - Wherecamp Berlin 2016
In-Car Navigation with OSRM - Wherecamp Berlin 2016In-Car Navigation with OSRM - Wherecamp Berlin 2016
In-Car Navigation with OSRM - Wherecamp Berlin 2016Johan
 
State of OSRM - SOTM 2016
State of OSRM - SOTM 2016State of OSRM - SOTM 2016
State of OSRM - SOTM 2016Johan
 
Open Source Routing Machine - FOSS4G 2016 Bonn
Open Source Routing Machine - FOSS4G 2016 BonnOpen Source Routing Machine - FOSS4G 2016 Bonn
Open Source Routing Machine - FOSS4G 2016 BonnJohan
 
How Mapbox Scales over 9 AWS Regions
How Mapbox Scales over 9 AWS RegionsHow Mapbox Scales over 9 AWS Regions
How Mapbox Scales over 9 AWS RegionsJohan
 
The Directions Pipeline at Mapbox - AWS Meetup Berlin June 2015
The Directions Pipeline at Mapbox - AWS Meetup Berlin June 2015The Directions Pipeline at Mapbox - AWS Meetup Berlin June 2015
The Directions Pipeline at Mapbox - AWS Meetup Berlin June 2015Johan
 
Mapbox.com: Serving maps from 8 regions
Mapbox.com: Serving maps from 8 regionsMapbox.com: Serving maps from 8 regions
Mapbox.com: Serving maps from 8 regionsJohan
 
Tracks In A Box FAIL @ MHD Stockholm 2013
Tracks In A Box FAIL @ MHD Stockholm 2013Tracks In A Box FAIL @ MHD Stockholm 2013
Tracks In A Box FAIL @ MHD Stockholm 2013Johan
 
Music Hack Day Reykajvík talk at You Are In Control 2012
Music Hack Day Reykajvík talk at You Are In Control 2012Music Hack Day Reykajvík talk at You Are In Control 2012
Music Hack Day Reykajvík talk at You Are In Control 2012Johan
 
Nerdnite
NerdniteNerdnite
NerdniteJohan
 
HPI hack'n'Tell Hackdays
HPI hack'n'Tell HackdaysHPI hack'n'Tell Hackdays
HPI hack'n'Tell HackdaysJohan
 
Future Music Camp 2012 Talk
Future Music Camp 2012 TalkFuture Music Camp 2012 Talk
Future Music Camp 2012 TalkJohan
 
DJ Masterclass
DJ MasterclassDJ Masterclass
DJ MasterclassJohan
 
Barcamp London 7 Tracksonamap Google App Engine
Barcamp London 7 Tracksonamap Google App EngineBarcamp London 7 Tracksonamap Google App Engine
Barcamp London 7 Tracksonamap Google App EngineJohan
 

Mehr von Johan (14)

Mapbox at Product Crunch Berlin 2018
Mapbox at Product Crunch Berlin 2018Mapbox at Product Crunch Berlin 2018
Mapbox at Product Crunch Berlin 2018
 
In-Car Navigation with OSRM - Wherecamp Berlin 2016
In-Car Navigation with OSRM - Wherecamp Berlin 2016In-Car Navigation with OSRM - Wherecamp Berlin 2016
In-Car Navigation with OSRM - Wherecamp Berlin 2016
 
State of OSRM - SOTM 2016
State of OSRM - SOTM 2016State of OSRM - SOTM 2016
State of OSRM - SOTM 2016
 
Open Source Routing Machine - FOSS4G 2016 Bonn
Open Source Routing Machine - FOSS4G 2016 BonnOpen Source Routing Machine - FOSS4G 2016 Bonn
Open Source Routing Machine - FOSS4G 2016 Bonn
 
How Mapbox Scales over 9 AWS Regions
How Mapbox Scales over 9 AWS RegionsHow Mapbox Scales over 9 AWS Regions
How Mapbox Scales over 9 AWS Regions
 
The Directions Pipeline at Mapbox - AWS Meetup Berlin June 2015
The Directions Pipeline at Mapbox - AWS Meetup Berlin June 2015The Directions Pipeline at Mapbox - AWS Meetup Berlin June 2015
The Directions Pipeline at Mapbox - AWS Meetup Berlin June 2015
 
Mapbox.com: Serving maps from 8 regions
Mapbox.com: Serving maps from 8 regionsMapbox.com: Serving maps from 8 regions
Mapbox.com: Serving maps from 8 regions
 
Tracks In A Box FAIL @ MHD Stockholm 2013
Tracks In A Box FAIL @ MHD Stockholm 2013Tracks In A Box FAIL @ MHD Stockholm 2013
Tracks In A Box FAIL @ MHD Stockholm 2013
 
Music Hack Day Reykajvík talk at You Are In Control 2012
Music Hack Day Reykajvík talk at You Are In Control 2012Music Hack Day Reykajvík talk at You Are In Control 2012
Music Hack Day Reykajvík talk at You Are In Control 2012
 
Nerdnite
NerdniteNerdnite
Nerdnite
 
HPI hack'n'Tell Hackdays
HPI hack'n'Tell HackdaysHPI hack'n'Tell Hackdays
HPI hack'n'Tell Hackdays
 
Future Music Camp 2012 Talk
Future Music Camp 2012 TalkFuture Music Camp 2012 Talk
Future Music Camp 2012 Talk
 
DJ Masterclass
DJ MasterclassDJ Masterclass
DJ Masterclass
 
Barcamp London 7 Tracksonamap Google App Engine
Barcamp London 7 Tracksonamap Google App EngineBarcamp London 7 Tracksonamap Google App Engine
Barcamp London 7 Tracksonamap Google App Engine
 

Entwicklung in Open Source Projekten - MediaWiki

  • 1. Entwicklung in Open-Source- Projekten am Beispiel MediaWiki 12.12.2008 von Johan Uhle 12.12.2008 | MediaWiki | Johan Uhle
  • 2. Entwicklung in Open-Source- Projekten am Beispiel MediaWiki Geschichte und Relevanz Organisation Technischer Überblick Codestruktur Mein Patch Skalierung und Caching 12.12.2008 | MediaWiki | Johan Uhle
  • 3. MediaWiki 3 12.12.2008 | MediaWiki | Johan Uhle
  • 4. Geschichte 4 ■ Für die Wikipedia entwickelt ■ Einsatz in Wikipedia seit Januar 2002 ■ „Richtiger“ Release 1.1. Dezember 2003 ■ Neuster Release: 1.13.2 2.Oktober.2008 ■ Im Sinne der Wikipedia offen und zur Mitarbeit einladend ■ Lizensierung: GNU GPL 2 12.12.2008 | MediaWiki | Johan Uhle
  • 5. Relevanz 5 ■ Alle Wikimedia-Projekte benutzen es: □ Wikipedia □ Wikibooks □ Wiktionary □ Wikinews ■ zusätzlich noch interner Einsatz in Unternehmen ■ populärste Software für Wiki-Einsatz 12.12.2008 | MediaWiki | Johan Uhle
  • 6. Organisation 1/3 6 ■ www.mediawiki.org ■ Drei Bereiche: □ Endbenutzer / Systemadministrator / Entwickler ■ Entwicklertools: □ Bugzilla □ Subversion (Webansicht mit ViewVC) □ Doxygen □ Mailinglist Wikitech-l + lokale Gruppen 12.12.2008 | MediaWiki | Johan Uhle
  • 7. Organisation 2/3 7 ■ IRC Channel #mediawiki auf irc.freenode.de >150 Teilnehmer ■ Bot, der neue SVN-Commits und Aktionen in Bugzilla werden im Channel ausgegeben ■ 174 SVN-Commiter (gezählt!) 12.12.2008 | MediaWiki | Johan Uhle
  • 8. Organisation 2/3 8 ■ IRC Channel #mediawiki auf irc.freenode.de >150 Teilnehmern ■ Bot, der neue SVN-Commits und Aktionen in Bugzilla werden im Channel ausgegeben ■ 174 SVN-Commiter (gezählt!) ■ Auf Wikimediaprojekten läuft eine der letzten SVN-Versionen ■ Konstanter Code-Review der neusten Commits durch Communitymitglieder 12.12.2008 | MediaWiki | Johan Uhle
  • 9. Organisation 3/3 9 ■ Lee Daniel Crocker / Erste Versionen auf Basis von „UseMod Wiki“ ■ Brion Vibber / CTO of the Wikimedia Foundation ■ Tim Starling „I'm employed by the Wikimedia Foundation as a developer and system administrator. I became a Wikipedia editor on October 11, 2002, and began volunteer development work about a year later“ ■ Aaron Schulz „I do work in both adding functionality to core components as well as writing badly needed major extensions. I'll sometimes do cleanup/documentation if I am bored ;).“ 12.12.2008 | MediaWiki | Johan Uhle
  • 10. Technischer Überblick 1/2 10 ■ Technische Vorraussetzungen □ Webserver Apache oder IIS □ PHP4 < 1.6 => PHP5 □ MySQL 4.0 oder PostgreSQL 8.1 ■ Wichtigste Funktionen: □ Es ist ein Wiki □ Mediendateien (Bilder, Tondateien) □ Internationalisierung / Lokalisierung □ Skalierung 12.12.2008 | MediaWiki | Johan Uhle
  • 11. Technischer Überblick 2/2 11 12.12.2008 | MediaWiki | Johan Uhle
  • 12. Code 1/3 12 12.12.2008 | MediaWiki | Johan Uhle
  • 13. Code 2/3 13 12.12.2008 | MediaWiki | Johan Uhle
  • 14. Code 3/3 14 ■ Objektorientiert Programmiert ■ Dateistruktur: □ /include PHP-Bibliotheken □ /language Sprachen □ /maintenance Administrationsaufgaben sowie SQL-Dateien für das Datenbanklayout □ /skins Oberflächen □ /t und /tests Tests für die meisten Funktionialitäten 12.12.2008 | MediaWiki | Johan Uhle
  • 15. Mein Patch 1/4 15 ■ 5491 Colour-coding of items in page histories (165xx ist neu) ■ History eines Artikels. Jede Revision hat eigene Zeile. ■ Verbesserung: Je nach Status des User, der die Revision getätigt hat, wird die Hintergrundfarbe geändert. 12.12.2008 | MediaWiki | Johan Uhle
  • 16. Mein Patch 2/4 16 12.12.2008 | MediaWiki | Johan Uhle
  • 17. Mein Patch 3/4 17 12.12.2008 | MediaWiki | Johan Uhle
  • 18. Mein Patch 4/4 18 12.12.2008 | MediaWiki | Johan Uhle
  • 19. Skalierung 1/4 19 ■ Skalierung sehr wichtig 12.12.2008 | MediaWiki | Johan Uhle
  • 20. Skalierung 2/4 20 ■ Load Balancing vor Squid ■ Squid bedient 75 % des WP-Traffics (vor Allem Anfragen ohne eingeloggte User) ■ MediaWiki enthält NotifyFunktionen, um bei Änderungen dem Squid- Server Bescheid zu geben. ■ Source: /include/Article.php ■ doPurge() 1045 ■ onArticleEdit() 3137 12.12.2008 | MediaWiki | Johan Uhle
  • 21. Skalierung 3/4 21 ■ Load Balancing vor Apache ■ PHP Bytecode Caching mit vielen Frameworks. Empfohlen APC ■ Caching auf Apache ■ Local Message Cache ■ Memcache ■ Datenbankanfrage ■ Source: /incude/MessageCache.php ■ Line: 228 12.12.2008 | MediaWiki | Johan Uhle
  • 22. Skalierung 4/4 22 ■ Local Message Cache sind statische HTML-Seiten, die an IP-User gegeben werden ■ Memcache läuft auf jedem ApacheServer ■ Speichert Datenbankdaten lokal im Speicher. Löscht Daten nach Least Recent Used 12.12.2008 | MediaWiki | Johan Uhle
  • 23. Quellen: 23 ■ MediaWiki SVN 440xx ■ http://www.mediawiki.org ■ http://meta.wikimedia.org ■ http://en.wikipedia.org/wiki/MediaWiki_release_history ■ http://lists.wikimedia.org/pipermail/wikitech-l/ ■ https://bugzilla.wikimedia.org ■ https://www.ohloh.net/p/mediawiki ■ #mediawiki auf irc.freenode.de Stand: 10.12.08 12.12.2008 | MediaWiki | Johan Uhle
  • 24. Ende 24 ■ Geschichte und Relevanz Organisation Technischer Überblick Codestruktur Mein Patch Skalierung und Caching ■ Fragen? 12.12.2008 | MediaWiki | Johan Uhle
  • 25. Empfehlungen 25 ■ How to ask questions the smart way ■ http://www.catb.org/~esr/faqs/smart-questions.html ■ How to report bugs effectively ■ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html 12.12.2008 | MediaWiki | Johan Uhle