Extension:PronunciationRecording/GSoC 2013/Project Updates
In the beginning of the month I was going through the documentation of Mediawiki codebase and the i18n framework. The beginning of the coding period was marked by installing the TimedMediaHandler locally and understanding its working. This was followed by a minor patch submission for "Including audio transcodes in TimedMediaHandler" :
and studying how to write a handler for the WAV file format. Understanding about ID3 tags, RIFF container, WAV file format took some time as it was something new for me. During the course of writing the WAV Handler, we found out that the existing ID3 files were outdated and so I submitted a patch for updating the existing ID3 files. Our plan was to only allow PCM WAV to be uploaded, so for that I wrote a verifyUpload() in the WAV Handler. Matthew's ingenious idea of using "wfDebugDieBacktrace" proved to be very helpful in testing the commit and finally it was merged. In the last week of June I started to work in the direction of "Implementing the Audio Recorder".
- In early June (during the Community Bonding Period), Rahul did a good job getting up to speed on MediaWiki and TimedMediaHandler, and continued planning for and designing the pronunciation recording flow. During the coding period, he successfully updated TimedMediaHandler to add WAV support. There were some additional changes required, including updating the ID3 files, and only allowing PCM. All of this was successfully completed by the end of June. I believe he gained a better understanding of MediaWiki extension development in the process. Superm401 - Talk 18:09, 1 July 2013 (UTC)
I wrote the basic and necessary files for an extension like the README, PronunciationRecording.php, PronunciationRecording.i18n.php, etc. By the end of the month I made a Special Page "Special:PronunciationRecording" which provides a basic toolbar that has 5 buttons "Record","Stop","Preview","Clear" and "Upload"(Not functional yet) https://gerrit.wikimedia.org/r/74413.
- Rahul has progressed towards setting up an extension with imported third-party libraries and a correct structure. There is an in-progress special page that will demonstrate recording and local playback, and later uploading. He is attempting to structure the code so it will be cleanly reusable when the recorder functionality is available on other pages (initially, dictionary content pages). Superm401 - Talk 02:58, 3 August 2013 (UTC)
August started with me finishing up the recording part in the Special Page "Special:PronunciationRecording". Then after that I had a discussion with my mentors regarding the next step and outcome was to proceed with the "Upload" Part. For the upload part we decided to depend on the extension "UploadWizard". Did a lot of work in cleaning up "UploadWizard" by breaking the module "ext.UploadWizard" into smaller parts, improving a little documentation.
List of patches for Upload Wizard:
Ran into a lot of complexities that were unexpected, so had to take some time to identify and understand the problems. The work in adding the Upload API can be tracked here :"https://gerrit.wikimedia.org/r/#/c/80128/"
Added the login support to my special page "https://gerrit.wikimedia.org/r/#/c/81503/"
In September( till 24th ) I worked on completing the "Uploading the pronunciation" to the local wiki first. After that was merged I worked on adding the License to the UI and also added a small interface which gathers information for the template in which Commons stores information. After that was merged the next task was to provide a link to File page of the recorded pronunciation, after the recording was uploaded successfully. Also during the course of september various minor changes in the UI after reviews from Matthew were done.
17th June - 23rd June(Week 1)
- Submitted a patch to "Include audio transcodes in TimedMediahandler". https://gerrit.wikimedia.org/r/#/c/69023/
- Updating User Page.
- Installing MediaWiki Vagrant.
- Frequent Screen Shares with Matthew Flaschen.
- Understanding ID3 tags, RIFF containers, WAV file format.
- Submitted a patch to update existing ID3 files. https://gerrit.wikimedia.org/r/#/c/69952/
- Started to work on the WAV Handler. https://gerrit.wikimedia.org/r/#/c/69401/ (Completed 60%)
- Learned to rebase and bit of git basics too.
24th June - 30th June(Week 2)
- Completed the work on WAV Handler. https://gerrit.wikimedia.org/r/#/c/69401/ and https://gerrit.wikimedia.org/r/#/c/71129/
- Attended the GSoC/OPW IRC AllHands on 26th June.
- Michael posted the request to enable WAV uploads on Wikimedia Commons Village Pump http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2013/07#Adding_.wav_support_to_Commons.
- Started to work on "Implementing the Audio Recorder".
1st July - 7th July(Week 3)
- Had our first team meeting with Quim Gil on 2nd July.
- With the help of Matthew and QChris we got a repository for our extension.
- Tested the code exhaustively so that it only allows PCM WAV to be uploaded.
- Got some positive feedback on the issue raised at the Commons Village Pump http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2013/07#Adding_.wav_support_to_Commons
8th July - 14th July(Week 4)
- Spent the week developing a POC( Proof of concept ).
- Learnt the jQuery way of selecting, hiding elements instead of the conventional method( Made life easy ).
- Learnt about Web Workers.
- Got a little stuck up on how to playback the recorded voice, but eventually got through it.
- Submitted the first few patchsets in https://gerrit.wikimedia.org/r/#/c/73017/ by the end of the week.
15th July - 21st July(Week 5)
- Got feedback from my mentors regarding my "Proof of Concept".
- Spent the week improving the "Proof of Concept" based on the feedback.
- Read the documentation on how to develop extensions.
- Started to shape my POC into an extension by adding the README and LICENSE file.
22nd July - 28th July(Week 6)
- Started developing a Special Page "Special:PronunciationRecording" which provides a basic toolbar that has 5 buttons "Record","Stop","Preview","Clear" and "Upload".
- Made files for the extension i.e PronunciationRecording.php, SpecialPronunciationRecording.php, PronunciationReccording.i18n.php.
- Made different modules and loaded them via the "Resource Loader".
- Submitted patches in gerrit. https://gerrit.wikimedia.org/r/74413