Featured post

Build Alexa-enabled Apps

This is reference of my collection from different sources.

Image From Wikipedia

Skill to learn – 

Custom Slot Types
Writing Alexa Skills with Node.js
Integrating Testing an Alexa Skill
Alexa Cards Interaction: displaying data on cards
Voice User Interface Design
Speech Synthesis Markup Language
Internet of Things Interaction
Account Linking
Skill Submission
Providing Updates
No preference

API to use for testing or for real  –  http://services.faa.gov/docs/services/

Useful links –

Developers Resources For ASK & AVS Developers

Training / Tutorials

Amazon Echo Dev Portal

Amazon Alexa Dev Portal

Amazon Web Services Events & Webinars Portal – subscribe via RSS to be notified of new events in your area(s) of interest

Udemy – Introduction to Voice Design with Amazon’s Alexa

Big Nerd Ranch – Alexa Skills Kit – course(s) not yet released, but you can sign up to be notified when available on the linked page

w3schools JSON Tutorial

Anythings Alexa Skills Kit Tutorial

ToBuildSomething’s Amazon Alexa Skills Kit SDK: The Ultimate Guide

Ruuvu: Building An Alexa Skill For IMDB Ratings With Alexa-app


ASK / Alexa Dev Communities

Amazon Developer Forum – Alexa Skills Kit

Amazon Developer Forum – Alexa Voice Service

Stack Overflow – Latest Alexa Skills Kit Questions

Stack Overflow – Latest Alexa Skills Questions

Stack Overflow: Latest Alexa Voice Service Questions

Seattle Area Meetup for Alexa Devs

NYC Area Meetup for Alexa Devs

Los Angeles Area Meetup for Alexa Devs

Boston Area Meetup for Alexa Devs

Columbus Area Meetup for Alexa Devs


Sample Code / Developer Toolkits

Matt Kruse’s Alexa App Node Module

Nicholas Clawson’s Alexa-bility Skills Framework For Node:
Interactive Demo

Amazon’s Github Repository for Alexa Skills Kit Dev in Java

Amazon’s Github Repository for Alexa Skills Kit Dev in Javascript

Anjishnu’s Github Repository: Python ASK Developer Toolkit

Rocktavious’s Github Repository: Django ASK Developer Toolkit

stefann42’s Github Repository: .NET ASK Developer Toolkit

develpr’s Github Repository: Laravel & Lumen Classes to Make ASK Development Easier



Amazon’s Alexa Device Source Code Repository

MSDN Speech Synthesis Markup Language (SSML) Reference Library

JSON.org JSON Reference Library

Nodejs.org Node Reference Library

ASK Developer Wiki on Reddit

My own developer guide to Using Session Attributes in Javascript – free pdf, can be printed or downloaded

How To Check Amazon Server Status, Streaming Service Status

Amazon Alexa/Echo Team Twitter Account

Amazon Alexa Tech Business Developer Marion Desmazieres Twitter Account


Synchronous and Asynchronous

JavaScript itself is synchronous and single-threaded language. but you can write code in such a manner that function execution take a long time and can be interleaved with other operations.

First, let us use a analogy to understand Synchronous and Asynchronous.

Synchronous – You are in a Bus stop. When bus arrived, people will enter in a bus one by one. You cannot get into the bus until everybody in front of you gets in. and the same concept applies to the people standing behind you. This is Synchronous.

Executing something synchronously means, you wait for the task to finish before moving on to another task. Or we can say, two synchronous threads must be aware of one another, and one must execute in some way that is dependent on the other.

Asynchronous – Take household chores as an example. You put clothes to get washed and dry in a washer and dryer. Then you bake pizza in a oven. Meanwhile you are cutting veggies for salad. In this situation, couple of tasks are getting done at the same time. When the task is done. It will simply report back. This is asynchronous.

Executing something asynchronously means, you can move on to another task without waiting for the first task to get finished. The result of each task will be handled once the result is available. Or in other words, Asynchronous means two threads are totally independent, run parallely and neither one comes in each other way at the time of execution.

Try this code

Output will be :-

The output will be First Task, Second Task, Third Task. As javascript execute one function at a time and will wait for the function to be done before moving to the “Second Task”

Now try this code. I am using setTimeOut method here. The function will be processed in the background, while your program is doing other things.

Output will be :-

The setTimeout() method calls a function or evaluates an expression after a specified number of milliseconds. The setTimeout() method is asynchronous as it breaks the synchronous flow. This trick is used to execute the code after stacked events and fix timing-related problems.

AJAX (Asynchronous JavaScript and XML) requests are by default asynchronous, The XMLHttpRequest object is used to exchange data with a server behind the scenes. When the browser makes server requests. The response could take a little time. So you set up a function that will wait for the response to be sent back by the server, and react to it once the response is available. This whole process does not comes in the way of other functions.


Understanding Javascript Closure

Closure is a nested function that has access to the variables in the outer (enclosing) function’s scope chain. It has access to variables in three scopes:

  • Variable in its own scope.
  • Variables in the enclosing (outer) function’s scope.
  • Global variables.

Best part of closure is that the nested (inner) function can access the variables from the outer scope even after the outer function has returned.


Understanding delete operator in Javascript

Delete operator is used to delete the property of an object. It completely remove the property and keep the rest of the object intact.

  • The delete operator will not delete ordinary variables.
  • It cannot delete properties of the global object, which were declared with the var keyword.
  • However, it will delete “global variables,” which were not declared with var keyword. since they are actually properties of the global object ( window in the browser).
  • The delete operator doesn’t delete prototype property.

For examples:

The result would be undefined. In the above code, we have an object named as “person” which has the property “rank”, and as it is a self-invoking function, we will delete the “rank” property from object “person”. When we console.log the reference of the property the result will be undefined.

Let us go through some examples where delete operator doesn’t work:

The result would be 5. Delete operators don’t affect local variables. Here, “number” is not an object but a local variable. The delete operator will not delete ordinary variables.

The result would be 5. Delete operators don’t affect global variables declared with var keyword. Here, “number” is not an object but a global variable of type number.

The result would be “number is not defined”. Here, the global variable “number” is not defined with var keyword. hence, the delete operator will delete “number” since they are actually properties of the global object (window in the browser).

The result would be “Jane”. Delete operator will not affect prototype property. Here, “name” is a prototype property of team2.


How Alexa’s intents, utterances and slots works together ?

To create a Alexa skill, you will first define the intents. For each intent you will add utterances and slots. Utterances are phrases that invoke the intent. Slots are input data required to fulfill the intent. Lastly, you will provide the business logic necessary to execute the action.

Q. What is an Intent?

To build an Amazon skill you will identify a set of goals or ‘intents’ you want your skill to achieve.
A skill can have multiple intents. For example, a ‘BookTickets’ bot can have intents to make reservations, cancel reservations and review

Q. What is an utterance?

An ‘utterance’ is the spoken or typed phrase to invoke an intent. For example, to invoke intent to make reservations you would define an utterance such as “Can I make a reservation?”

Q. What are slots?

To fulfill an intent, the Amazon skill needs information from the user. This information is captured in ‘slots’. For example, you would define show name and time as slots for intent to make reservations.


Chat Bot comparison luis.ai vs api.ai vs wit.ai.

Amazon Lex is a service for building conversational interfaces into any application using voice and text. Lex provides the advanced deep learning functionalities of automatic speech recognition (ASR) for converting speech to text, and natural language understanding (NLU) to recognize the intent of the text, to enable you to build applications with highly engaging user experiences and lifelike conversational interactions. With Amazon Lex, the same deep learning technologies that power Amazon Alexa are now available to any developer, enabling you to quickly and easily build sophisticated, natural language, conversational bots (“chatbots”).



Cesium – How to show pyramid with polygon base in CZML ?


Cesium – How to show multiple polylines using czml ?

By : https://github.com/AnalyticalGraphicsInc/cesium/issues/3598


Cesium – How to make an InfoBox pop up on demand ?

It’s a bit of a hack, but you can make the info popup display whatever you like by creating a fake entity and setting it as the viewer’s selected entity. For example:


Cesium – How to Improve InfoBox ?

In order to run a script in the infobox, you have to enable scrips to run in the iframe. This is disabled by default for security reasons, in case you don’t know the source of the data populating the infobox.
You can enable scrips with this code:

Also, to get the current value of an entity property, you can use .getValue(viewer.clock.currentTime);


Cesium – How to make an InfoBox pop up on demand ?