Gaia/Team/Taipei: Difference between revisions

(update)
Line 480: Line 480:


==== > Last Sum-up  ====
==== > Last Sum-up  ====
* Discuss with :naveen and :gargsms for their potential GSoC work. Turned out that Mozilla wasn't accept in GSoC this year.


===== Input Management & Keyboard =====
===== Input Management & Keyboard =====
* {{bug|1133452}} - [Gaia-ui-test][Keyboard] not working in Nexus-5 | landed
* {{bug|1124150}} - Remove dead code & data structure from xml2dict.py, Write documentation regarding dictionary blob and predictions | landed
** Python UI test for keyboard is broken when software home button is present. Target "y" position calculation is incorrect thus it thinks that keyboard is not ready.
* {{bug|1138343}} - [UserDictionary] Instantiate and store an ArrayBuffer instead of a TypedArray during dictionary binary blob generation in KeyboardSettingsApp | landed
** Wrote a patch, passes Gip on Gaia-Try and verified by Walter and r+ by :davehunt.
** Landed on master, but Walter needs it on 2.2 too. However Walter is still facing test failures with this patch cherry-picked to 2.2; he and Alison are still checking if they need my help for this patch on 2.2.
* {{bug|1102835}} - [UserDictionary] Let Keyboard App use User-Dictionary | WIP, First iteration
** I decided to forgo any kind of optimization (caching, async handling) in the first iteration and come up with a usable result first, and then to improve on that result.
** As of Feb. 17, most preliminary wiring is done for first iteration, except that I need to merge predictions, which I need to think what to do to reduce code mess.
** As of Feb. 26, most secondary wiring is done for first iteration, (predictions are merged, code mess is under control), and needs real-machine testing.
 


===== Review/Feedback/Assistance =====
===== Review/Feedback/Assistance =====


==== > Current Progress ====
==== > Current Progress ====
* Discuss with :naveen for his GSoC work regarding user dictionary.


===== Input Management & Keyboard =====
===== Input Management & Keyboard =====
* {{bug|1102835}} - [UserDictionary] Let Keyboard App use User-Dictionary | WIP, First iteration
* {{bug|1102835}} - [UserDictionary] Let Keyboard App use User-Dictionary | f? and ui-r?, First iteration
** I decided to forgo any kind of optimization (caching, async handling) in the first iteration and come up with a usable result first, and then to improve on that result.
** I decided to forgo any kind of optimization (caching, async handling) in the first iteration and come up with a usable result first, and then to improve on that result.
** As of Mar. 3, real-machine testing is undergoing. I need some tweaking on parameters and suggestion merging, and need to tackle {{bug|1138343}} and {{bug|1138782}} before flagging for UX feedback.
** Patch is ready for UX review and initial code feedback.
* {{bug|1124150}} - Remove dead code & data structure from xml2dict.py, Write documentation regarding dictionary blob and predictions | r? & finalizing
** Will continue on writing unit tests while waiting for feedback.
** Patch is ready for review (or rubber-stamp I'd say), mostly commentary changes. Documentation is ready too.
* {{bug|1138782}} - validChars() in predictions.js should consider different casing | r?
** Documentation: [[Gaia/System/Keyboard/IME/Latin/Prediction_%26_Auto_Correction]] and [[Gaia/System/Keyboard/IME/Latin/Dictionary_Blob]] are finished.
* {{bug|1138343}} - [UserDictionary] Instantiate and store an ArrayBuffer instead of a TypedArray during dictionary binary blob generation in KeyboardSettingsApp | r+
** Small patch, waiting for Gaia-Try
* {{bug|1138782}} - validChars() in predictions.js should consider different casing | WIP
** Need to rethink validChars() to reject less chars because user dictionary's character table has less chars defined in dictionary, but we can't reject those non-UD chars if they can be corrected to UD words.
** Need to rethink validChars() to reject less chars because user dictionary's character table has less chars defined in dictionary, but we can't reject those non-UD chars if they can be corrected to UD words.
** Will request Jan's input.
** Drafted a patch and waiting for Jan's feedback on this.


===== Review/Feedback/Assistance =====
===== Review/Feedback/Assistance =====
Line 516: Line 505:
===== Keyboard User Dictionary =====
===== Keyboard User Dictionary =====
* We're one big step left: let the actual prediction engine use the second dictionary, and this is my main focus right now. Major todo on that {{bug|1102835}}:
* We're one big step left: let the actual prediction engine use the second dictionary, and this is my main focus right now. Major todo on that {{bug|1102835}}:
** I decided to forgo any kind of optimization (caching, async handling) in the first iteration and come up with a usable result first, and then to improve on that result.
** ui-r?omega and f?timdream
** <del>Test if existing functionality doesn't break if we bypass UserDict code</del></del>
** Adjust prediction merging (from built-in dictionary and user dictionary) mechanism according to omega's feedback
** <del>How to bypass UserDict code if user dictionary has no words (possibly using Strategy pattern)</del>
** Writing unit tests
** <del>How to represent null user dictionary</del>
* I still need to consult UX feedback on how we handle non-latin characters in the word list.
** Testing of merging results from two dictionaries</del>
** <del>Test if suggestions don't change w.r.t situation where no suggestions from user dictionary is made</del>
** Parameter tuning
** Code mess cleanup/minor refactoring as needed
** ui-r? and f?


* I still need to consult UX feedback on how we handle non-latin characters in the word list.
====== Bugs overview ======
====== Bugs overview ======
* Meta/UserStory: {{bug|879145}} - [Keyboard][User Story] User dictionary in word-suggestion
* Meta/UserStory: {{bug|879145}} - [Keyboard][User Story] User dictionary in word-suggestion
Line 537: Line 520:
* Follow-ups:
* Follow-ups:
** Bugs (just "bugs")
** Bugs (just "bugs")
*** {{bug|1138343}} - [UserDictionary] Instantiate and store an ArrayBuffer instead of a TypedArray during dictionary binary blob generation in KeyboardSettingsApp
*** <del>{{bug|1138343}} - [UserDictionary] Instantiate and store an ArrayBuffer instead of a TypedArray during dictionary binary blob generation in KeyboardSettingsApp</del>
** Performance improvements
** Performance improvements
*** <del>{{bug|1130317}} - [UserDictionary] Pre-determine dict blob total byte length before building the blob</del>
*** <del>{{bug|1130317}} - [UserDictionary] Pre-determine dict blob total byte length before building the blob</del>
Line 545: Line 528:
** Architecture improvements/refactoring/code tidy-up
** Architecture improvements/refactoring/code tidy-up
*** <del>{{bug|1115644}} - Implement RootPanel and standardize panel interface for KeyboardSettingsApp</del>
*** <del>{{bug|1115644}} - Implement RootPanel and standardize panel interface for KeyboardSettingsApp</del>
*** <del>{{Bug|1115649}} - Differentiate concept of Panel and Dialog in Keyboard Settings</del>
*** <del>{{bug|1115649}} - Differentiate concept of Panel and Dialog in Keyboard Settings</del>
*** {{bug|1115666}} - Clean up KeyboardSettingsApp stylesheet
*** {{bug|1115666}} - Clean up KeyboardSettingsApp stylesheet
** (Integration) Tests
*** {{bug|1139766}} - [keyboard][integration] Add integration tests for user dictionary and prediction


===== General Keyboard Dictionary =====
===== General Keyboard Dictionary =====
Line 554: Line 539:
===== GSoC 2015 =====
===== GSoC 2015 =====
* Jan's referred :gargsms and :naveen to me. The former wants to do user dictionary and the latter a context-aware new auto-correction engine.
* Jan's referred :gargsms and :naveen to me. The former wants to do user dictionary and the latter a context-aware new auto-correction engine.
* And Mozilla wasn't accepted to GSoC this year, so I guess this is a done business.
* References
* References
** https://wiki.mozilla.org/SummerOfCode#2015
** https://wiki.mozilla.org/SummerOfCode#2015
Confirmed users
346

edits