2017년 8월 16일 수요일

Identifying the cause of serious errors in App Inventor apps

MIT App Inventor and Youth Radio to launch the Youth News Network STEM desk

I’m exhilarated to announce that MIT App Inventor and Youth Radio (https://youthradio.org/)  are beginning a 3-year initiative to launch the STEM Desk for Youth News Network (YNN).  YNN will be a new nationwide model for STEM education based on youth-­driven, multimedia journalism and related app development with App Inventor.   This work is funded by the National Science Foundation’s Advanced Informal STEP Learning program.

Youth Radio trains young people in digital media and technology and launches them on career and education pathways.  Headquartered in Oakland, CA, it serves as National Public Radio’s Youth Desk and reports stories by and about young people across the U.S., bringing youth perspectives to issues of public concern.       

YNN aims to overturn conventional beliefs about teens and their phones­­: that these devices are sources of distraction, addiction, abuse, and other forms of trouble.
The centerpiece of YNN will be Youth Mobile Power, a series of stories about     young people using mobile technologies with creativity and purpose to empower themselves and their communities: activities such as tracking access to fresh water in poor communities, supporting effective autism treatment, and promoting safety on college campuses.  The stories will build on Youth Radio’s Peabody Award-­winning media production capabilities and MIT’s technology strengths to create powerful multimedia productions augmented by new mobile computing resources built on App Inventor.

The App Inventor team is tremendously excited by this opportunity to collaborate with Youth Radio.  We’ll be starting work on the project in September.  Watch for us over the next 3 years as we help support and promote the next generation of mobile STEM media innovators!


fusion table update

does anyone know whats wrong with my blocks

your blocks look fine
what do you get after sending the SELECT query to the table?
how does the fusiontable1.GotResult event look like?
do you get an error message? if yes, which error message?

I dont get a erorr the select works i get the rowids
but then the code breaks and de rowids arent send to the global rowid


I use 2 fusion tables insert and select works fine but the update doesnt work maybe the redlt isnt sending the rowid but i also tryed to set a rowid in de update block but that doesnt work


What have you done to debug it?

but then the code breaks and de rowids arent send to the global rowid
piece should be the text "rowid" and the text should be the result...

no that didnt work  also it doesnt update if i set a number in the amount text
and set a rowid in a textblock

i use do it to debug it i dont get errors it just wont work grrrr

see the documentation http://appinventor.mit.edu/explore/ai2/support/blocks/text.html#contains


Returns true if piece appears in text; otherwise, returns false.
i use do it to debug it i dont get errors it just wont work grrrr
it does not look like you know how to debug?
see tip 4 here
what is the result you get in the fusiontable1 got result event?

Error from companion. The variable $result
Is not bound in the current context
This is when i do ot

I dont get a responce back

Error from companion. The variable $result
Is not bound in the current context
Do it does not work for local variables
as already suggested, you might want to follow tip 4 and read also what Scott recommends how to debug local variables...
protip: use a label or assign the result to a global variable and display that...

Now when i put a number in the update it says affected row
But i dont get a result from the global rowid
Whats wrong i am getting frustrated please help mee

Don't make us guess.
You know what we need.

What do you need ? I have Autism so i dont understand the qeustion

It would really help if you provided a screenshot of your relevant blocks, so we can see what you are trying to do, and where the problem may be.

those are the blocks and the aia.file
going nuts with that


If you are asking for help, I recommend you to make it as easy for others to be able to help you ...
You probably will get more feedback then...

which means in your case post a screenshot of your relevant blocks...
and: you additionally might want to provide a description what exactly is happening, which result you get etc.
sorry, I will not take a look at all the blocks...

and to download the aia file, upload it to  App Inventor, open it, do some bug hunting for you, etc... this takes time, and most people will not do that...
Thank you.

See attached.

Your CONTAINS test is wrong.
swap the inputs.

You want to look for piece  in text, not the other way around.

You can see the tool tip for this block by hovering the cursor over it,
if you forget which way it goes.

You are overloading the Fusion Table controls by asking
them to do too many different jobs.
The event block that catches the result from the FT control
doesn't 'know' which query produced that result.

I recommend making separate FT controls in the Designer,
named after the Query they are used with,

This way you can have separate event blocks that
know what just happened, and how they should respond.

(I see no economy in overloading single controls using global variables
to "remember" the context.)

Also, you don't need those .ForgetLogin blocks.

Taifun said that i should swap those blocks

I can pay for your service if thats ok then u could do it for me how much thatt that costs?

Taifun said that i should swap those blocks
yes exactly, I suggested to swap the blocks and also ABG did
but unfortunately you did not follow that suggestion.. which means don't be surprised if it does not work...

Yes i did swap it when you told me too
But still i cant update so when i swapped it back
It still didnt work .
But what does it cost when you build the app for me
What does that cost ?

There is a For Hire section in this FAQ: For Hire (sites offering paid help (YMMV))

Sample project and doc showing multiple Fusion Table request management ...  Fusion Table Deletion

But what does it cost when you build the app for me
sorry, I'm currently not available
I will be in vacation for some weeks soon...

i got it working with help from you i can insert get select add and update now the next thing i wanna do is delete

great! congratulations!
to delete is simple, you do not need the rowid for that...
just send the delete statement to the table...


Can you use Image to generate speech?

I am trying to create an application for a class project.  I am trying to come up with an app that would allow children with speech problems to click on a picture to communicate.  My son had problems with speaking and before they attempted sign language, he would cry he would get so frustrated because he would ask for things and no one could understand him.  I would like to create an app with some basic symbols for "thirsty or drink", "hungry", I want what you are holding etc....

Is it possible fo do this?

The easiest would to use buttons with the desired image. Upon clicking a text is spoken. Here you can find a tutorial.

Hi Lynn,  this is a simple application about image to voice. 

There are quite a few apps on the market which do that, search forr AAC (Augmentative and Alternative Communication) apps.
See for example here: http://www.asha.org/public/speech/disorders/AAC/
I have spent a lot of time creating such an app. App Inventor is nice because there is good text-to-speach avaiable, also in Dutch, which is the language I needed it for.
I used a rather old visual language called Bliss and in modern times it has become less used, although there is still active development.
Look here for more information about Bliss: http://www.blissonline.se/
And here for more information about my Bliss app: http://www.squaringthecircles.com/ai2/
I can help you to use this app in your situation, or help you to make a similar app with more modern pictures.

As used in our school everyday to replicate picture exchange for children with autism and learning difficulties

The simple layout is :
When button1 clicked -> play sound 1
When button 2 clicked -> play sound 2
The buttons might also be below the pic.
You'll need the sound component and you need to upload the sound you want which might be your own voice.
Alternatively, you can use the text to speech component.
When button1 clicked -> speak text "hungry"


Improving text to speech output? Other tips and tricks?

I an app I am building I plan to use text to speech extensively to playback when a button (with an image on it) is clicked.
The app is for autistic children so it is quite important the speech engine kicks out a good facsimile of the word as we would speak it.

For the most part the speech engine does a good job, but for some words and proper nouns, output is a bit odd. i have been looking at ways to improve this output.

I use GBR english.

A few examples:

Text box has the name "Rosie" in it. The speech engine knocks this out in a rushed fashion. I found that if i added another r - "Rrosie", this improved things.

Text box has the phrase "Dogs at home" in it.  Again it is a bit rushed. By adding a . after Dogs, so "Dogs. at home" this accentuates Dogs, inserts a short pause then finishes. Much better.

Text box has the word "Vtron" in it. (Don't ask!). This comes out vTron very quickly as opposed to Veetron.  So I tried "Vee. tron" and this was better.

I have not been able to find any documentation on this area of text to speech, so wondered if any one had any further tips, on what options there are to modify things.

Also, can I change to a GBR english female voice ?

For a GBR english female voice the following might work:    https://play.google.com/store/apps/developer?id=CereProc+Text-to-Speech&hl=en 

Have you read this article?   It tells how to change pitch , volume etc  and how to change the voice http://www.greenbot.com/article/2105862/how-to-get-started-with-google-text-to-speech.html  

What you did about vTron and Veetron   is a real solution ... you would need to write code so that every time the word vTron is encountered, the engine says 'Veetron'     The Android texttospeech engine is not as flexible as Microsofts text to speech which allows you to have an alternative vocabulary and pronunciation guide.   Andorid's text to speech does not have this feature as far as I can tell.

AI2 can only control the following TTS properties:  http://ai2.appinventor.mit.edu/reference/components/media.html#TextToSpeech  

so you are going to have to be creative.

Thanks for the response. I had seen most of what you had posted in links, it is the output of the voice as it interprets the words I am most interested in, which doesn't seem to get covered. so it looks as if my hit and miss approach will have to be the way. Changing the pitch sounds weird, but slowing things down a bit does help. If and when I come up with anything else I'll post it back here.

As long as you do not have 'special' pronunciations for lots of words  the replace all text (your conversion text) nested (using several one after another) segment vTron replacement Vee Tron might be your only solution. If you had the luxury of using the Microsoft system, you would do essentially the same thing but in their dictionary. It is all a matter of teaching the system how to pronounce words that are not in the Google dictionary.

Good luck with your worthwhile project. Let us know if this works for you.

Fortunately it is quite easy for me. The kids will just be tapping a button with a picture on it and the text to speech will issue back the name of the item in the picture. The trick will be to get the word sounds like what it is if it is a funny one. So I don't have to do any special on the fly programming. They/We operate on a one word at a time, mostly without phrasing (too confusing!). Most of our kids do not speak, so this will be their voice. When it works for them it is very gratifying :)

Just run the app on my Nexus 7 tablet and I have a female voice on there :) whilst on my HTC M8 it is male. Go figure....ah just had a search through the settings and I can select a female voice :)  there is a high quality version available for a 273mb download, might try that out?

Good luck with the voice(s).

I worked with an electrical engineer doing something similar but also with SpeechRecognition using Windows.   We built hardware and the software to allow a paraplegic to control an electronic device.  It worked quite well 80 percent of the time, so the person was 'happy' with the result.

Since you are coding the words you can just code the sounds like version of the word.    I believe there is a Google site where you can test TTS... that might be easier than experimenting on a phone (to get the synthesizer to say the word correctly).     Yes, you will have to experiment.   This technology has come a long way since I was working heavily in Windows but it is FAR FROM perfect, so the developer has to intervene.

Good luck with your project and work with the youngsters.

I've found that simply spelling the words phonetically in global variables helps the 'sound' of a word immensely.  These variable are not seen, only heard - so you don't have to worry about misspelled words.  I put hyphens (-) between syllables to ensure proper pauses where needed in enunciation.  It works great!