Evaluating and Improving MediaWiki web API client libraries/Progress Reports

Progress reports for Evaluating and Improving MediaWiki web API client libraries = Week 7/June 30-July 4 =

= Week 6/June 23-27 =

= Week 5/June 16-20 =

= Week 4/June 9-13 =

= Week 3/June 2-6 =
 * Lots of reading on software development, programming psychology, API usability, engineering community norms
 * API:Client code/Gold standard is out of draft; minor changes may be made as needed, but the bulk of it is in final form
 * Started API:Client code/Evaluations as a draft; began evaluating simplemediawiki and wikitools

= Week 2/May 26-30 =
 * Revised API talk:Client code and solicited feedback; incorporated feedback into second (final?) draft.
 * Traveled to NYC to present at WikiConference USA 2014: http://franceshocutt.wordpress.com/2014/06/02/wikiconference-usa-2014-rundown
 * Shared slides on Commons
 * Met other developers

= Week 1/May 19-23 =
 * Select the best library/libraries in Python, Perl, JavaScript, Ruby, and Java. (required)
 * Done: API talk:Client code
 * Research and decide on criteria to evaluate these libraries in more depth.
 * Done: API talk:Client code
 * Also went through API:Client code and separated all libraries that have not been maintained in the last year

= Community bonding report =

Minimum viable product and goals

 * Search for the existing API client libraries, add these to API:Client code.
 * Select the best library/libraries in Python, Perl, JavaScript, Ruby, and Java using preliminary criteria.
 * Research, select, and write up criteria to evaluate these libraries in more depth. Write a library "gold standard."
 * Post "gold standard" and useful resources found while writing it to Data & Developer Hub.
 * Evaluate the best libraries in three languages. To the library maintainers submit documentation of tests and results, praise for where they get things right, and bug reports for areas that can use improvement.

Communication plan

 * Check in daily with Sumana over IRC and/or vidchat
 * Communicate with other mentors over IRC and email with questions, to look over code, etc.

Lessons learned since 21 April

 * Wireless drivers on Linux are a challenge, even for ThinkPads!
 * How to replace (if not how to compile) a kernel in Ubuntu
 * How to set up a virtual environment in Python and install packages to it
 * How various MediaWiki IRC channels are used
 * How to write a twitter-bot, the structure of Wikidata, the Wikidata API, a lot about writing Python programs:
 * https://twitter.com/AutoWikiFacts
 * source at https://github.com/fhocutt/obscure-enwiki-fact
 * How git and github work, including add/commit/rebase
 * submitted patches for Dreamwidth and had them merged: https://github.com/dreamwidth/dw-free/pulls/fhocutt?direction=desc&page=1&sort=created&state=closed