Inline images and audio as question text

Hi Yaw and everyone,

Are there instructions or help somewhere on how to use this functionality?

Thanks!
Emily

··· On Fri, Jun 11, 2010 at 4:01 AM, Yaw Anokwa wrote:

wow. thanks for this thorough update!

thanks to top notch work from our friends at dimagi, we now support
inline images and sounds as question text. you can leverage that
functionality to build script support into your forms -- the catch is
you can only put one image/sound per question text. that code is
currently in trunk and we are preparing an official release that will
include this functionality.

keep us posted of your work,

yaw

On Wed, Jun 9, 2010 at 00:25, Emily Kumpel emily.kumpel@gmail.com wrote:

Hi Implementers,

Here's an updated on what we've figured out from support of complex
scripts
for ODK in case it's useful to others with the same problem.

We looked into supporting Kannada and other Indic languages
(Hindi/Devanagari script, other Dravidian languages) in ODK, but since
Android does not yet support script-based languages besides Chinese and
Japanese, it seems adding existing Unicode to the Android font to will
work
but that it will not render correctly for these complex scripts (see
http://forum.xda-developers.com/archive/index.php/t-666973.html for
instructions and example - it ends up being close and readable but not
accurate; it ends up appearing in the script with essentially a lot of
spelling mistakes).

However, after talking with partners where we work in urban northern
Karnataka, where Kannada is the main language, we discovered that
transliteration of Kannada into the English alphabet will be fine for our
survey team. Many in urban India - especially of the age our survey team
will likely be - are very used to transliteration for text messages,
facebook, emails, etc. and considering many of our surveyors may be able
to
speak Hindi but not be able to read the script, it is actually more
useful
to have the transliteration instead of the script. Therefore, we've
decided
to go with ODK for our survey with transliterated languages, but we will
still look for someone who can add the functionality of complex scripts
in
Android such that we may be able to add it in the future. This likely
will
not work for everyone using complex scripts, but for our needs (and, I
imagine, many cities in India), transliteration is widely accepted and
understood. We will have to deal with how to appropriately transliterate
Kannada during our survey translation process and also deal extensively
in
training with the meanings of the questions - I'll send updates to the
list
with tips on this as we go through it.

One option would be, if we absolutely needed the script for some reason,
to
have a photo show up (of the script) in place of text. Is it possible to
do
this with ODK?

In case it's useful to others, we did consider several other data
collection
systems that did support Kannada and complex scripts:

  • Windows Mobile supports most complex scripts, as far as I know
    (definitely
    all Indic languages), so most survey systems based on Windows Mobile will
    work with this. We only found paid services and tried out
    surveysystem.com
    on an HP iPaq, which showed Kannada correctly. You can also type using
    Kannada keyboards.
  • iPhone OS does a pretty good job rendering Indic languages. Hindi
    appears
    perfectly, Kannada is pretty good except for but a few mistakes with
    rendering. So we tried Hindi and Kannada in several paid survey systems
    using the iPhone OS it they showed up fine; but most of these survey
    systems
    were out of our price range and didn't support some of the features we
    wanted.
  • We looked briefly into JavaRosa using Nokias. This would have worked
    as
    many Nokias does a great job of displaying - and allowing you to type in

Indic languages. It seemed many Nokia models (especially the simple
candy-bar ones) support it but to get the font on there you need to go to
a
Nokia customer care center and have it added or to purchase the phone in
India in the state whose language you want.

Emily

On 5/28/2010 5:59 AM, Yaw Anokwa wrote:

emily,
there are a bunch of those kind of hackers at
http://www.xda-developers.com.
you might want to see if you can convince 'em. or if you know any
googlers,
script support sounds like a nice 20% project.
finally, if you do find a mobile data collection system that supports
complex scripts, could you let the community know? i think that'd be
useful
information for other implementers...

On Wed, May 26, 2010 at 11:55, Emily Kumpel emily.kumpel@gmail.com wrote:

I'll keep searching to see if anyone's working on it. Unfortunately,
being able to use Kannada is a dealbreaker for us in terms of using ODK.

Do you have suggestions on where I might make this suggestion to someone
who'd be interested in working on this? especially with Kannada being
the

language of Bangalore, I'm sure there's hackers out there with the
skills

and desire...

On 5/26/2010 11:24 AM, Yaw Anokwa wrote:

you can try, but i don't think it will be as simple as adding a
fallback font. kannada
is pretty complex so you'd also have to change the rendering on
android so it stacks the scripts properly. see
http://code.google.com/p/android/issues/detail?id=5925#c15 for a good
description of what has to be done.

http://tom.to/blog/archives/76
http://understandinglimited.com/2009/03/07/android-complex-script
http://nokorsoft.com/2010/03/07/khmer-unicode-and-android-os are also
good resources.

i'll ping the android team but i'm assuming they have higher
priorities. this is the kind of thing that a group of hackers who need
this support could patch into the open source android project...

On Wed, May 26, 2010 at 10:55, Carl Hartungcarlhartung@gmail.com wrote:

On my Nexus One both fonts come across as empty boxes. I'll look into
what
it takes to install fonts on Android.
Using Gmail in Chrome on my Mac the Kannada is also boxes, but the
Hindi

is
script.
-Carl

On Wed, May 26, 2010 at 9:40 AM, Emily Kumpelemily.kumpel@gmail.com wrote:

Thanks!!
I've just typed in Kannada (first line) and Hindi (second) from
gmail's
font selector into this email - could you see if Android can display
the
font? If not, can it be installed separately
(http://www.wazu.jp/gallery/Fonts_Kannada.html)
Kannada: ಕನ್ನಡ ನಾನು ಹೆಸರು ಅನ್ದ್ರೊಇದ್
Hindi: हिंदी मेरा नाम अन्द्रोइड है

On Wed, May 26, 2010 at 8:58 AM, Yaw Anokwayanokwa@gmail.com wrote:
good set of questions, emily.

language support.

there are three levels of language support -- in the android
operating

system itself, in the odk collect application, and in the form you
are

using.
for android, you only have the popular languages available --
chinese,

dutch, english, french, japanese, etc (see
http://developer.android.com/sdk/android-2.2.html#locs for the full
list). pretty hard to add to that list and this is what controls the
language of the phone itself with no applications.
for odk collect, we currently have english, swahili, french, spanish,
and chinese translations. if you want to translate into more
languages, it's very easy to add more and this is what controls what
the buttons and dialog messages in odk collect say.
for the form, you can support any language that can be encoded as
unicode. you can translate individual questions or the entire form.
you toggle languages at any point in the survey. see
http://www.youtube.com/watch?v=lo8LaFFSkV8 (at 1:34). there is a
catch

in that android has to have the font to display the script. i'm
pretty

sure you should be fine, but if you have some sample text, i can try
it out for you.

timeline

neil and sam can speak on this a bit more, but with the community's
help and an understanding of xml, it shouldn't take you more than a
few hours to get a grasp of how to work with odk -- particularly the
format of the forms and workflow. if you have a more complex form
with

logic, then it depends on how clever you are :). folks who have been
exposed to programming tend to grasp these things (loops, variable
assignment, etc.) much faster than civilians. we have sample forms at
http://code.google.com/p/opendatakit/source/browse?repo=forms.

privacy

you can have two forms per household. form 1 would have the gps
coordinates, photo and the household key, form 2 would have the
household key and the other data. results from both forms would have
to be stored on the sdcard of the phone, but in separate plaintext
files. once you send the files to the server or local machine, you
can

delete them off the phone. there are countless ways to you can make
this process more secure (separate servers per form, encryption of
the

sd card, etc) -- just depends what you consider secure and are
willing

to build...

qa/qc

you can add time stamps at any point of the survey. you can even put
hidden location coordinates on each question if you so choose. neil
and sam can talk about quality control, but a lot of this is in how
you design the survey. limiting free text and using the logic to
check

for ranges, etc.

hope that helps. keep the questions coming!
On Tue, May 25, 2010 at 15:13, Emily Kumpelemily.kumpel@gmail.com wrote:

Hi ODK implementers,
I am from a team of a graduate students who are planning a large
survey
(over 10,000 surveys in the course of a year) in southern India.
We're

still
deciding whether to use ODK and I have a few questions that
hopefully

those
with experience implementing this can help us out with.

  • Language support. We'll have the survey prepared in 4 languages
    (Kannada
    mainly, but also Hindi, Urdu, and English). I'm assuming
    script-based

fonts, including Kannada (since it's supported by google) should be
easy.
Has anyone had experience using script-based languages on ODK, and
also
with switching through multiple languages when going from survey
household
to survey household? Is this easy to do or were there any
challenges

with
it?

  • Timeline. We're 3 PhD students on a very limited budget who are
    pretty
    solid at overall surveying process (piloting, training, etc), but
    only

one
of has some programming experience (with all 3 willing to learn).
How

long,
realistically, would it take us to do just the ODK part of the
survey

setup
(assuming our survey itself is finished/piloted/field issues worked
out/etc), including learning the systems, learning XForms/JavaRosa,
learning
how to making changes, inputting our survey, etc?

  • Privacy. How can we use ODKCollect in a manner that ensures
    privacy

of
the data? In a paper-based system we'd be using a numeric key to
identify
households and not have any identifying information attached to the
data
itself, and the surveys would be kept in a locked cabine, etc..
What

would
be the equivalent procedure for using ODK collect? Also, we'd like
to

be
able to mark houses with GPS information and photos for easy
recognition
since we'll have a survey team re-visiting the same households;
however,
to
protect privacy of households we'll need to keep GPS coordinates
separate
from the data itself (ie marked by a key kept securely elsewhere).
Has
anyone had experience with this and recommendations for ensuring
security of
the data?

  • QA/QC. Is there the ability to time how long it takes for an
    enumerator
    to get through certain questions or parts of the survey as a means
    of

quality control on the data collection/entry process? Or what other
methods
have implementers used to ensure quality of data collection?
Thanks!
Emily

Hi Emily,

This feature is only available in the current trunk of the code, and hasn't
been officially released. We are in the process of ironing out the final
bugs for an official release, which should come out soon. If you install
from trunk you can test it, though.

There's an example form you can use as reference at:
http://code.google.com/p/opendatakit/source/browse/mediaform.xhtml?repo=forms
to add the media, you need to create a directory on your sdcard, per form:
/sdcard/odk/forms/[formname]-media/

in the case of the mediaform.xhtml example it would be:
/sdcard/odk/forms/mediaform-media/

So the way everything would look on your sd card would be:
/sdcard/odk/forms/mediaform.xhtml
/sdcard/odk/forms/mediaform-media/a.gif
/sdcard/odk/forms/mediaform-media/a.wav
/sdcard/odk/forms/mediaform-media/b.giv
/sdcard/odk/forms/mediaform-media/b.wav
/sdcard/odk/forms/mediaform-media/test.gif
/sdcard/odk/forms/mediaform-media/test.wav

There's also a slight bug currently such that images/audio will only work
with the first form you load. That bug is known and will be fixed before
release.

The directory structure is also subject to change, but we'll post official
documentation as part of the release.

If you try it and have any comments, let us know!
Thanks,
-Carl

··· On Mon, Jul 19, 2010 at 4:07 PM, Emily Kumpel wrote:

Hi Yaw and everyone,

Are there instructions or help somewhere on how to use this functionality?

Thanks!
Emily

On Fri, Jun 11, 2010 at 4:01 AM, Yaw Anokwa yanokwa@gmail.com wrote:

wow. thanks for this thorough update!

thanks to top notch work from our friends at dimagi, we now support
inline images and sounds as question text. you can leverage that
functionality to build script support into your forms -- the catch is
you can only put one image/sound per question text. that code is
currently in trunk and we are preparing an official release that will
include this functionality.

keep us posted of your work,

yaw

On Wed, Jun 9, 2010 at 00:25, Emily Kumpel emily.kumpel@gmail.com wrote:

Hi Implementers,

Here's an updated on what we've figured out from support of complex
scripts
for ODK in case it's useful to others with the same problem.

We looked into supporting Kannada and other Indic languages
(Hindi/Devanagari script, other Dravidian languages) in ODK, but since
Android does not yet support script-based languages besides Chinese and
Japanese, it seems adding existing Unicode to the Android font to will
work
but that it will not render correctly for these complex scripts (see
http://forum.xda-developers.com/archive/index.php/t-666973.html for
instructions and example - it ends up being close and readable but not
accurate; it ends up appearing in the script with essentially a lot of
spelling mistakes).

However, after talking with partners where we work in urban northern
Karnataka, where Kannada is the main language, we discovered that
transliteration of Kannada into the English alphabet will be fine for
our
survey team. Many in urban India - especially of the age our survey
team
will likely be - are very used to transliteration for text messages,
facebook, emails, etc. and considering many of our surveyors may be able
to
speak Hindi but not be able to read the script, it is actually more
useful
to have the transliteration instead of the script. Therefore, we've
decided
to go with ODK for our survey with transliterated languages, but we will
still look for someone who can add the functionality of complex scripts
in
Android such that we may be able to add it in the future. This likely
will
not work for everyone using complex scripts, but for our needs (and, I
imagine, many cities in India), transliteration is widely accepted and
understood. We will have to deal with how to appropriately
transliterate
Kannada during our survey translation process and also deal extensively
in
training with the meanings of the questions - I'll send updates to the
list
with tips on this as we go through it.

One option would be, if we absolutely needed the script for some reason,
to
have a photo show up (of the script) in place of text. Is it possible
to do
this with ODK?

In case it's useful to others, we did consider several other data
collection
systems that did support Kannada and complex scripts:

  • Windows Mobile supports most complex scripts, as far as I know
    (definitely
    all Indic languages), so most survey systems based on Windows Mobile
    will
    work with this. We only found paid services and tried out
    surveysystem.com
    on an HP iPaq, which showed Kannada correctly. You can also type using
    Kannada keyboards.
  • iPhone OS does a pretty good job rendering Indic languages. Hindi
    appears
    perfectly, Kannada is pretty good except for but a few mistakes with
    rendering. So we tried Hindi and Kannada in several paid survey systems
    using the iPhone OS it they showed up fine; but most of these survey
    systems
    were out of our price range and didn't support some of the features we
    wanted.
  • We looked briefly into JavaRosa using Nokias. This would have worked
    as
    many Nokias does a great job of displaying - and allowing you to type in

Indic languages. It seemed many Nokia models (especially the simple
candy-bar ones) support it but to get the font on there you need to go
to a
Nokia customer care center and have it added or to purchase the phone in
India in the state whose language you want.

Emily

On 5/28/2010 5:59 AM, Yaw Anokwa wrote:

emily,
there are a bunch of those kind of hackers at
http://www.xda-developers.com.
you might want to see if you can convince 'em. or if you know any
googlers,
script support sounds like a nice 20% project.
finally, if you do find a mobile data collection system that supports
complex scripts, could you let the community know? i think that'd be
useful
information for other implementers...

On Wed, May 26, 2010 at 11:55, Emily Kumpel emily.kumpel@gmail.com wrote:

I'll keep searching to see if anyone's working on it. Unfortunately,
being able to use Kannada is a dealbreaker for us in terms of using
ODK.

Do you have suggestions on where I might make this suggestion to
someone

who'd be interested in working on this? especially with Kannada being
the

language of Bangalore, I'm sure there's hackers out there with the
skills

and desire...

On 5/26/2010 11:24 AM, Yaw Anokwa wrote:

you can try, but i don't think it will be as simple as adding a
fallback font. kannada
is pretty complex so you'd also have to change the rendering on
android so it stacks the scripts properly. see
http://code.google.com/p/android/issues/detail?id=5925#c15 for a good
description of what has to be done.

http://tom.to/blog/archives/76
http://understandinglimited.com/2009/03/07/android-complex-script
http://nokorsoft.com/2010/03/07/khmer-unicode-and-android-os are also
good resources.

i'll ping the android team but i'm assuming they have higher
priorities. this is the kind of thing that a group of hackers who need
this support could patch into the open source android project...

On Wed, May 26, 2010 at 10:55, Carl Hartungcarlhartung@gmail.com wrote:

On my Nexus One both fonts come across as empty boxes. I'll look
into

what
it takes to install fonts on Android.
Using Gmail in Chrome on my Mac the Kannada is also boxes, but the
Hindi

is
script.
-Carl

On Wed, May 26, 2010 at 9:40 AM, Emily Kumpel<emily.kumpel@gmail.com wrote:

Thanks!!
I've just typed in Kannada (first line) and Hindi (second) from
gmail's
font selector into this email - could you see if Android can display
the
font? If not, can it be installed separately
(http://www.wazu.jp/gallery/Fonts_Kannada.html)
Kannada: ಕನ್ನಡ ನಾನು ಹೆಸರು ಅನ್ದ್ರೊಇದ್
Hindi: हिंदी मेरा नाम अन्द्रोइड है

On Wed, May 26, 2010 at 8:58 AM, Yaw Anokwayanokwa@gmail.com wrote:
good set of questions, emily.

language support.

there are three levels of language support -- in the android
operating

system itself, in the odk collect application, and in the form you
are

using.
for android, you only have the popular languages available --
chinese,

dutch, english, french, japanese, etc (see
http://developer.android.com/sdk/android-2.2.html#locs for the full
list). pretty hard to add to that list and this is what controls the
language of the phone itself with no applications.
for odk collect, we currently have english, swahili, french,
spanish,

and chinese translations. if you want to translate into more
languages, it's very easy to add more and this is what controls what
the buttons and dialog messages in odk collect say.
for the form, you can support any language that can be encoded as
unicode. you can translate individual questions or the entire form.
you toggle languages at any point in the survey. see
http://www.youtube.com/watch?v=lo8LaFFSkV8 (at 1:34). there is a
catch

in that android has to have the font to display the script. i'm
pretty

sure you should be fine, but if you have some sample text, i can try
it out for you.

timeline

neil and sam can speak on this a bit more, but with the community's
help and an understanding of xml, it shouldn't take you more than a
few hours to get a grasp of how to work with odk -- particularly the
format of the forms and workflow. if you have a more complex form
with

logic, then it depends on how clever you are :). folks who have been
exposed to programming tend to grasp these things (loops, variable
assignment, etc.) much faster than civilians. we have sample forms
at

http://code.google.com/p/opendatakit/source/browse?repo=forms.

privacy

you can have two forms per household. form 1 would have the gps
coordinates, photo and the household key, form 2 would have the
household key and the other data. results from both forms would have
to be stored on the sdcard of the phone, but in separate plaintext
files. once you send the files to the server or local machine, you
can

delete them off the phone. there are countless ways to you can make
this process more secure (separate servers per form, encryption of
the

sd card, etc) -- just depends what you consider secure and are
willing

to build...

qa/qc

you can add time stamps at any point of the survey. you can even put
hidden location coordinates on each question if you so choose. neil
and sam can talk about quality control, but a lot of this is in how
you design the survey. limiting free text and using the logic to
check

for ranges, etc.

hope that helps. keep the questions coming!
On Tue, May 25, 2010 at 15:13, Emily Kumpelemily.kumpel@gmail.com wrote:

Hi ODK implementers,
I am from a team of a graduate students who are planning a large
survey
(over 10,000 surveys in the course of a year) in southern India.
We're

still
deciding whether to use ODK and I have a few questions that
hopefully

those
with experience implementing this can help us out with.

  • Language support. We'll have the survey prepared in 4 languages
    (Kannada
    mainly, but also Hindi, Urdu, and English). I'm assuming
    script-based

fonts, including Kannada (since it's supported by google) should be
easy.
Has anyone had experience using script-based languages on ODK, and
also
with switching through multiple languages when going from survey
household
to survey household? Is this easy to do or were there any
challenges

with
it?

  • Timeline. We're 3 PhD students on a very limited budget who are
    pretty
    solid at overall surveying process (piloting, training, etc), but
    only

one
of has some programming experience (with all 3 willing to learn).
How

long,
realistically, would it take us to do just the ODK part of the
survey

setup
(assuming our survey itself is finished/piloted/field issues worked
out/etc), including learning the systems, learning XForms/JavaRosa,
learning
how to making changes, inputting our survey, etc?

  • Privacy. How can we use ODKCollect in a manner that ensures
    privacy

of
the data? In a paper-based system we'd be using a numeric key to
identify
households and not have any identifying information attached to the
data
itself, and the surveys would be kept in a locked cabine, etc..
What

would
be the equivalent procedure for using ODK collect? Also, we'd like
to

be
able to mark houses with GPS information and photos for easy
recognition
since we'll have a survey team re-visiting the same households;
however,
to
protect privacy of households we'll need to keep GPS coordinates
separate
from the data itself (ie marked by a key kept securely elsewhere).
Has
anyone had experience with this and recommendations for ensuring
security of
the data?

  • QA/QC. Is there the ability to time how long it takes for an
    enumerator
    to get through certain questions or parts of the survey as a means
    of

quality control on the data collection/entry process? Or what
other

methods
have implementers used to ensure quality of data collection?
Thanks!
Emily