1st SMW webinar for developers

This page describes the content of the first SMW webinar for amateur developers.

Problem
In short:

Nobody understand how SMW works and how to improve it. The documentation of the code is not sufficient for a new developer to quickly start participating in writing SMW code.

In details:

SMW is now being developed by 3-4 people: There are many other developers in SMW community that could have joined to the development process, but now the effort required to figure out what's happening inside SMW is too big. The previous experience have shown that good developer documentation can increase the number of participants. For instance we have a short tutorial on writing result formats and many new result formats have been developed.
 * Jeroen De Dauw
 * Markus Krötzsch
 * MWJames
 * Nischay Nahata

Goals of the webinar

 * Eliminate the barriers that hinder new developers from participation.
 * Create the documentation for the programmers but waste minimum of core developers' time.

Planned results
The tangible results of the webinar will be the following:
 * Video recording of the webinar
 * Architecture guide improved by webinar participants
 * Some howtos on how to solve real problems in SMW:

The architecture

 * How SMW is organized inside? What parts of Architecture guide are outdated and don't reflect the current state of the code?
 * What's happening when I add the property to my page?
 * What's happening when I query something?

Applied topics

 * In which ways can SMW be extended? What abstract classes, hooks and interfaces do we have?
 * How to do the following things:
 * How to add new reasoning capability? For example support the inverse properties?
 * How to extend the query language?
 * How to add new types of properties and extend the old ones?
 * How to search the bottlenecks in the performance?
 * How to read SMW data from PHP code?
 * How to write SMW data from PHP code?

Prerequisites and preparation for the learners
Before going to webinar you'd better be prepared! Read the following docs: The webinar is a practical event. We will look at the code and maybe will write some code, so:
 * Tag extensions and other pages on how to develop MediaWiki extensions
 * Architecture guide
 * Writing result printers and try to implement one simple result format
 * Programmer's guide to SMW
 * Constructing queries in PHP (something maybe outdated)
 * Ask API - HTTP API of SMW
 * Install the 1.20 version of MediaWiki and the master version of Semantic MediaWiki (from git) on your local machine
 * Install the IDE for PHP programming. PhpStorm is recommended, Eclipse is also possible. Investigate ActiveState Komodo too.
 * Open the SMW code in your IDE
 * Try to configure the debugging in your IDE

Participants
Teachers: Learners: Add yourself here
 * Jeroen De Dauw
 * Yury Katkov
 * Dan Bolser
 * Alexey Klimovich
 * Abhinav Koppula
 * Alexander Matjushkin
 * Stephan Gambke
 * Markus Glaser
 * Robert Vogel
 * Jamie Thingelstad
 * Yaron Koren
 * Joel Natividad
 * James Montalvo
 * Wolfgang Fahl