Most developers have specialisations -- some of us hate UI design and love
DB performance optimisation, others don't know any PHP but can speak
HTML/CSS like a second language. This is a problem for writing features for
an open source web app -- the nature of the work is cross-disciplinary, but
the culture encourages individual effort. The result of this is that
developers are placed under pressure to learn a huge skill set, and that can
be a disincentive to participation.
I have an idea for a feature, and I was wondering if anyone might want to
collaborate on it. The idea is to display, in a box in the edit window,
information about who else has the same edit window open. For example, it
could display each username, along with the amount of time they have been
idle and the edit summary they have typed if any. The box will periodically
refresh itself, say once every 10 seconds. At the same time as fetching
updated data, the client sends back information about how long the user has
been idle and so on.
An optional subfeature would be allow the user to remove themselves from the
box voluntarily, e.g. to signal that they have no interest in actually
saving the article and that they are just looking at the source.
There are three different skill sets which are required to make this feature:
Person 1: User interface design
Person 2: Client-side programming
Person 3: Server-side programming
The tasks can be roughly divided as follows:
Person 1: Make a mockup of the user interface by taking the HTML of an edit
page from MediaWiki and adding a box with the required information. Edit the
HTML and the CSS. PHP or JavaScript knowledge is not required, although some
JS knowledge may be desirable to allow them to demonstrate any necessary
show/hide buttons and popups.
Person 2: Write the JavaScript. Monitor the edit window and send the
information I have described to the server. To update the info box, write a
model server response with a text editor, save it as a static file. Have the
JS load the model response and update the box in response. Deliver a
request/response format specification.
Person 3: Write the PHP. Implement the AJAX handler using the specification
from Person 2. Implement an internationalised user interface based on the
mockup delivered by Person 1.
I can probably be Person 3, but I don't think I can handle the other two
tasks as well. Any volunteers? Anyone know anyone who might be interested?
-- Tim Starling