Reports of progress made for the GSoC project T129611 during the Community Bonding phase.
Meetings
(Minutes and Agenda are mentioned in the task related to the Meeting)
- Sun 1 May 2016 - 13:00 UTC : T133763, E172
- Sa 7 May 2016 - 12:30 UTC: T134121, E173
- Fri 13 May 2016 - 12:30 UTC: T134656, google calendar (E178)
- Fri 20 May 2016 - 11:30 UTC: T135230, google calendar
Communication Plan:
- Complete weekly progress reports on https://phabricator.wikimedia.org/T133762 before the weekly meeting.
- Bi Weekly skype meetings on Saturday 12:30 UTC
- Weekly IRC meetings on #gsoc-catimages every Saturday 12:30 UTC
- For urgent issues if no mentor is on IRC, use Emails
- For slow communication (with history incase user is not online) use Conpherence
- Meeting requests will have: (i) A task for the agenda and Minutes, (ii) A Calendar event on phabricator, and (iii) A google calendar request.
Work done
I've been working on a few aspects during the community Bonding period, they are:
- Getting to know commons - I've contributed a bit on commons, and got nearly a thousand edits on my account in the past month.
- Getting to know pywikibot - I've been involved in the testing part in pywikibot (Pywikibot-tests) a bit and also some solved a few bugs here and there. The most significant contribution of mine is helping out to moving pywikibot's travis test from nose to pytest.
- Getting to know the dependencies of catimages - I've already contributed to yaafe by getting them python3 support. I've made a few issues to suggest other changes to make the testing or installing easier too. Some worked out, others didn't.
- Understanding catimages - I've gone through the source code a bit, and understood a large portion of it. This will be really useful when I need to consult something during the coding period.
Lessons learnt
I've learnt a lot about how wikis function, while contributing in commons. I made some mistakes like requesting deletions of wrong things (by mistake) and so on and the admins have appropriately cleaned up my mess :D. Other than that, I had a lot of fun with the testing infrastructure at pywikibot and learnt how pytest works, I found this to be one of the most interesting tasks in the community bonding time. I also learnt a little about ctypes and cython (which I had no idea about earlier) while contributing to Yaafe. While doing the tasks in catimages, I realized how little privacy most camera owners have because of the magical exifdata that stores all sorts of information!
I've had a great time learning and working with the communities involved.
Midterm review: Minimum viable product
- Detect faces, eyes, ears, etc using haarcascades - Categories involved: Unidentified people, Faces, Human ears, Human eyes, Human torso
- Categorize based on metadata (libmagic, exif, etc.):
- File formats - JPG, GIF, PNG, DjVu, BMP, PDF, Videos, Ogg sound, MIDI, FLAC, Ogv video, Animated GIF, Animated PNG, Animated SVG
- "Created with" categories - OpenOffice, Inkscape, GNU Octave, Matlab, ImageMagick, Adobe Photoshop, Picasa, GIMP, R, Geogebra, Chemtool
- Barcode and QR Code detection
- Graphics detection (identifying whether an image can be put in Category:Graphics) - the first step for Lien Drawing detection
Community Bonding (April 22 - May 22)
- Request a task to create project : T133761 ( Pywikibot-catfiles )
- Create Community bonding evaluation subtask: T133692
- Created Weekly Reports Subtask and Community report task
- Created github repo for file-metadata - http://github.com/AbdealiJK/file-metadata
- Have set up CI for the github repo
- Made dev pypi package for the github repo https://pypi.python.org/pypi/file-metadata
- I have read through Life_of_a_successful_project completely.
- Created a ToolsLab account
- Get involved in commons community:
- Create User page in commons User:AbdealiJK and meta.wikimedia User:AbdealiJK
- Got some (500+) edits on commons Special:Contributions/AbdealiJK (Reached 1000+)
- Sent email to commons, pywikibot, wikimedia lists - https://lists.wikimedia.org/pipermail/pywikibot/2016-May/009452.html
- Get involved in pywikibot community:
- Went through and gave input on bug reports related to isort, testing, htm_comparator, ToolsLab, weblinkchecker, and many more which can be seen in my profile Phab: AbdealiJK. and also filed bugs based on my experience, like -random, toolslab speed, proofreadpage test issue, etc.
- [TODO] Make bot to verify wikimedia logos T134644
- Get involved with the communities of 3rd party dependencies of catimages
- Hunt why music21's travis fails - The master builds successfully, only dev branches fail, which is fine
- Hunt why bob's travis fails - Created idiap/bob#221, it is a non deterministic issue with travis and their deps. Not a code problem and pretty tough to solve myself.
- Check if python 3.3 is supported on cyvlfeat and add to their travis if it is - Created menpo/cyvlfeat/12, cyvlfeat does support 3.3 but their CI utils doesn't.
- Add python3 support to yaafe and it's travis - Created Yaafe/Yaafe/21
- Add 3.3 support for matlplotlib's travis - This was removed because matplotlib decided to drop support for py3.3 and py2.6 in 254e16925, no plans to add it back
- Understand catimages better
- Create list of things done by catimages - https://etherpad.wikimedia.org/p/Zl7V7KuK7J
- Get the catimages script working, atleastsome branches like JPEG, PNG, etc.
- Identify binary files, python packages and other dependencies of catimages. Also, identify whether they have a CI system and make pull requests for Travis if they do not have it. List is here
- Compare ImageAnnotator gadget and rillke's JS template FileContentsByBot page
- Decide on complete project plan with mentors (Decided in meeting 3)
- Create Subtasks for the Project based on above project plan (made in the file-metadata github repo)
- Published report (doing this every 2-3 days)