Category Archives: Data in Context

Open ended Experimentation in Node.js & Angular2

Too often 2 peoples look at the same data, image or video but never have the same opinion or judgment on it. A way to correct that and align the criteria of everybody at the same level is to have a golden sample with specific criteria of what the optimal answer would be and then train on it.

The Project:

This project was to build a training app for new personnel that get hire to let them align their criteria with our specification. It was also built as a white label so we can add as many images or criteria as needed. Allowing not all criteria to be display or filled depending on what is displayed. Some criteria can be black & white (buttons) and other are more opinion based (slider).

Technical Specs:


When someone start the training, it will select a picture from the Database at “random” according to an algorithm to avoid displaying the same picture many time. The user will fill some or all the criteria depending on the setup.



After adding all needed criteria, the user can add details as comment on the decision if needed. There is also external resources that can be added as link to help the user make the right decision. When all is complete the user must accept or reject the image quality in general.





Once the user click Accept/Reject, the system will validate and tell the user visually if he was right or not and give some example on what was wrong. Error is human so if the user want to contest the golden sample he can and add a description on why he think it should be accepted or rejected.

The list of criteria and structure (button or slider) can be easily be changed or added in the database as part of the setup of the system. New golden picture can be added via the UI if you have the manager permission or directly via the node API.


Many items are tracked like Success/Failure but also how many time the image was rejected and the user click accepted. What kind of criteria fail the most, what image was the most contested, what image fail the most, histogram of the number of minutes pass per image per user vs all others, number of image trained on per day/weeks/months.

trainapp_analytics Having complex analytics can help the user better understand his weakness and also help the manager understand what is the most difficult to understand for people in general.

Update on FieldDB

Its been 3 years since the FieldDB project was launched at CAML in Patzun, Guatemala. Since then the project has graduated into its own GitHub organization with 50+ collaborators and 50+ universities that we know about have been using it. In March we made sure that all the clients and libraries had Google Analytics integration to better understand how users were working with the apps.

This week Veronica has been learning Google Analytics to see how the app has grown. One of the questions Hisako had was  been where in the world are the users and how much time do users spend in the app on average.


Recognizing Speech on Android

Tonight Gina and Esma will be presenting their Kartuli Speech Recognition trainer at Android Montreal.
14-08-20 - 1
The talk will shows how to use speech recognition in your own Android apps. The talk will start with a demo of the Kartuli trainer app to set the context for the talk, and then dig into the code and Android concepts under the demo. The talk has something for both beginner and advanced Android devs, namely  two ways to do speech recognition: the easy way (using the built-in RecognizerIntent for the user’s language) and the hard way (building a recognizer which wraps existing open source libraries if the built-in RecognizerIntent can’t handle the user’s language). While Gina was in Batumi she and some friends built an app so that Kartuli users (code) (slides) (installer) could train their Androids to recognize SMS messages and web searches. Recognizing Kartuli is one of the cases where you can’t use the built-in recognizer.
  • How to use the default system recognizer’s results in your own Android projects,
  • How to use the NDK in your projects,
  • How to use PocketSphinx (a lightweight recognizer library written in C) on Android

Live broadcast on YouTube
Code is open sourced on GitHub

Week 6: How much of a Kartuli speaker’s virtual life is actually provided in their native language?

This week we documented our findings about what popular apps and operating systems are available in Kartuli, and to what extent. The result was pretty good, but we identified two ways we could help, by showing Kartuli speakers how they can contribute to Chrome and Android localization.

We found out that because of how Google localizes Android, contributing translations for minority languages is extremely time consuming for the Android team, which means they wont be able to accept our help, not for Kartuli, not for Migmaq.

On the other hand, Chromium translations are managed using Launchpad and it is entirely possible to help out. Esma began contributing reviews and novel translations, we are waiting news to find out if she was successful!

Week 5: Viewing the web through Kartuli Glasses

After meeting some local software developers we found that

  •  Many technical words are simply transliterations of English into Kartuli, and
  •  Many iPhone users don’t have a Georgian keyboard, as a consequence roughly 5% of comments on Facebook are in romanized Kartuli.
  • The most popular browser in Georgia (in Batumi, and the villages which are who we are able to ask) is actually Chrome!
  • Georgians go to school 100% in Kartuli, even during the USSR times. They have a very very high fluency in their native alphabet and reading in general.

This meant if we built a Chrome Extension which can transform all English letters into their Kartuli equivalent, then Georgians who aren’t entirely fluent with the English alphabet can read more content on the web. So far it seems to work great for Facebook, and for Google plus, but it can also be used on any web page!


iLanguageCloud on Google Play

This week Josh released iLanguage Cloud alpha on Google Play. iLanguageCloud is a fun Android application that allows users to generate word clouds using an Android share intent. Clouds can be exported as SVG for use in high-res graphics applications such as InkScape or as png for sharing with friends on Facebook, Google+, Twitter, Flickr or any other social applications a user choses.

Create, save, and share word clouds from text on any website or any another application, share your word cloud with friends and colleagues.

iLanguage Cloud is now available on Google Play
iLanguage Cloud is now available on Google Play

To vote for features, check out the GitHub milestones page.

iLanguage Cloud uses Jason Davies’ D3 word cloud layout engine, you can find his source code on his GitHub repository.

Computational Field Workshop @McGill

On May 27th the Mi’gmaq Partnership (Listuguj, McGill, iLanguage) will be hosting its first Computational Field Workshop at McGill. Lab members Hisako, Gina, Josh and Tobin along with Louisa and Carol presented some of their recent scripts and tools developed as part of the partnership.

The workshop will focus on computational tools for transcribing, storing and searching linguistic data. There is a special focus on fieldwork, but it should be of broader interest as well––no background required.

In addition to work by Montreal-based iLanguage Lab, a key partner in the Mi’gmaq Partnership, the workshop will feature a talk and workshop by keynote speaker Alexis Palmer.

More details can be found in the workshop program.

The workshop will be held at the Thompson House, McGill.
The workshop will be held at the Thompson House, McGill.