Saturday, September 30, 2017

Alexa in the hotel room

Last year, I wrote about how Alexa should make in-roads into the Enterprise territory rather than stay in the consumer space.  It looks like this is already happening, now that Alexa is becoming mature.


I travel on work and end up spending a lot of time in hotels in various parts of the world.  Recently, I was at the Copenhagen Marriott and that got me thinking about how VUI (Voice User Interface), and specifically, Alexa, could have made my life a little better and easier.  I started thinking about use cases where Alexa and Echo can be deployed in the hospitality industry.  Today, everything is done by human agents and it is not always efficient or pleasant.

Imagine the following scenarios and see how seamless they can be, with Alexa.

1. Calling front desk:
Me: Alexa (or whatever the wake word is), call front desk
Alexa: Calling front desk
Front Desk: Hello, Mr. Shashidhar, how can I help you today?

The reason this is a simple but powerful use case is because of the fact that I can be anywhere in the room while I talk to Alexa.  I wanted to talk to the front desk as well as pack my bags at the same time.  The speaker phone is not very effective in far field communication, which necessitated me to be near the phone during the call.  Alexa would have made this a hands free communication, and I could have continued to pack while talking to the front desk.  A minute saved in the hotel is an additional minute enjoyed at the airport lounge!

2. Summoning your car from the valet:
Me: Alexa, get my car from the valet
Alexa: Getting car from valet.  Do you have a ticket number?
Me: 5842
Alexa: Ticket 5842.  When do you want the car?
Me: Now
Alexa: Summoning car from valet.  Your car should be at the front of the hotel in 5-10 mins
Me: Thanks
Alexa: Is there anything else I can do for you?
Me: Nope

There were instances when I had to call the valet and had to hold for them to answer my call.  Instead, the system can log my call and provide the ticker number to the valet staff on their system. 

3. Ordering room service:
Me: Alexa
Alexa: Good evening, Mr. Shashidhar.  How can I help you?
Me: Please order one margarita pizza from the room service menu
Alexa: Margarita pizza ordered from room service.  Is there anything else you would like to order?
Me: A glass of orange juice
Alexa: A margarita pizza and a glass of orange juice.  Anything else?
Me: That's it
Alexa: When would you want this delivered?
Me: As soon as possible
Alexa: <thinking for a moment> Your order has been placed.  It will be delivered in 40 mins
Alexa: Is there anything else?
Me: That's it for now

Room service orders anyways end up as a ticket in the kitchen.  Why not remove the layers between the guest and the kitchen?  This system would seamlessly take the order and print a ticket in the kitchen.  The system can determine the wait time based on the current open orders as well as the estimated prep time.

4. Ordering extra amenities:
Me: Alexa, could I get two additional bath towels?
Alexa: Two extra bath towels ordered.  Is there anything else, Mr. Shashidhar?
Me: Ah, I forgot toothpaste.  Could you please get me a toothpaste as well?
Alexa: Two extra towels and toothpaste.  They should be delivered in a few minutes
Alexa: Anything else, Mr. Shashidhar?
Me: Nothing for now
Alexa: Have a good day

Alarms, local weather, room controls, etc. are straightforward use cases.

What these use cases need is a echo device in every room with a unique address.  The devices would talk to a central server and the server is integrated to the existing enterprise hospitality systems (room service, valet, phone system, etc.).  These are hotel specific and not generic as the context for most of the use cases is just the hotel.

With the advances in robotics, the use case of delivering extra amenities could be completely autonomous.  The intent is transferred to the server which orders a robot to fetch the goods and deliver it to the room.  As seen in Eatsa, the San Francisco robotic restaurant, a time will come when robots will make food and deliver it to your room as well.  Since the hotel is a known and controlled environment, it becomes easy to deploy these technologies.  Hospitality industry can be the incubator of all this technology and then it can enter the rest of the world.

What this would do is eliminate the need for human intervention in a lot of the cases.  Initially, when automated phone systems came around for customer service, we cringed.  But, nowadays they have become more efficient and in some cases, better than their human counterparts.  The same way, automation and VUI will make a difference and as it matures, the transactions become seamless and more pleasurable.  We don't have to worry about human emotions and the mood of the person on the other end of the line.

Currently some of the hotel chains are trying to integrate Alexa for in-room controls like lighting and climate control.  But, the bigger ROI is in the other areas where hotels can cut expenses.  In-room automation is cool and sexy, but the big bang for the buck is automating the back office services that are currently manned by humans.
Image courtesy: Amazon.com

Saturday, August 19, 2017

Simple Design Innovations

Shopping cart is one design that has not evolved since its introduction in 1937.  The major development came in 1946 with the nesting carts.  After that, the only advances have been in minor tweaks like steerable rear wheels, adjustable height/volume, etc.

Of late, with the advent of digital technology, the cart is getting a fresh look.  IDEO is a design firm that looked at reinventing the shopping cart and came up with this design:


Several other companies are incorporating a digital display into the shopping cart to enhance the user experience.  Some of these displays show the store planogram whereas some display coupons or both.


These are slow evolutions of the shopping cart and taking it over the digital hump.  For all we know, the innovations will halt abruptly because online shopping and home deliveries are taking over all over the world.

Here is a minor design change I noticed.  I was at a shopping mall in Copenhagen recently and saw that it had sloped flat escalators taking visitors from the underground parking garages into the mall upstairs.  They were pretty steep.  I noticed several shoppers taking their shopping cart (the usual big ones) filled with goods down the escalator.  The carts were standing on the inclined escalator without slipping.  My first thought was that there must be a brake that the user applies to hold it in place.  Then, it would be a bad and dangerous design: what if the user forgot to apply the brakes?  what is the brakes failed?  What if the user accidentally released the brakes?  All of this would lead to serious repercussions.  Imagine a fully loaded shopping cart racing towards you on an inclined escalator.  You wouldn't be a happy customer.


Upon closer scrutiny, I noticed the clever design that held the carts in place and stopped them from rolling.  The design of the shopping cart used the escalator design to its advantage.  It was a very simple design change to the wheels that accomplished the task automatically and without failure.



Below is a drawing depicting the wheel design.  Instead of a flat wheel, these wheels had a straight groove tread.  Beside the wheels were pads that were affixed to the shopping cart frame.  Whenever the cart was rolled on a flat floor, the wheels would be in contact of the floor and hence they would roll.  But, whenever the cart was rolled onto an elevator, the wheel treads would fall into the elevator grooves and the pads would grab hold of the 'floor' (elevator floor) thereby arresting the cart since the pads were flat and non-rotating.  Clever way to solve the problem.


The beauty of the design was the simplicity.  This design requires no moving parts and it is fail safe and idiot proof..  Based on the design, irrespective of how you place the cart on the escalator, at least three of the wheels would lock.  Note that the carts were wide enough that you could not turn them sideways on the narrow escalators.

Reminds me that great designs are always simple designs.  

Monday, June 19, 2017

The driverless World is here (almost)!

I recently visited a city with completely autonomous vehicles and no drivers at all and it was a delight to see the way the automobiles (including trains and planes) moved about without an adverse incident.  All vehicles moved around within the limits of the law and were aware of each other (as long as they were in close proximity).  It was a wonderful sight to behold.  Vehicles of all sizes varying from a small car all the way to a 18-wheeler moved around the city and in between cities, with ease.  Trains were, of course, on a schedule and followed it like clockwork as they moved in and out of stations.  The airport was the icing on the cake.  All the vehicles, including planes and ground support vehicles, were autonomous and they all went about their job effortlessly.

Now, you are wondering where this futuristic city is.

It is the Miniature Wunderland in Hamburg, Germany.  Everything I explained was in place but what was missing was the variability and chaos caused by humans.  This was an autonomous world with no people.  Hence the clockwork precision in its operation.  The only humans in sight were the spectators visiting the Wunderland.


I do think there is a lesson to learn here.  One of the biggest challenges facing the technologists is to blend self-driving vehicles with human drivers.  This interaction is complex and can lead to confusion and unnecessary traffic congestion.  As long as we have everything automated, there is a high probability that things will work well.  The key information that is needed is about the surroundings (static as well as dynamic) and the road rules that govern the vehicles.  The roads can be made smarter so they can transmit information about their conditions to a central location and it could be made available to anyone interested.  The vehicles could also be made smarter and they can identify, collect and transmit information to a central location for consumption.  We are partly there already with roads transmitting traffic as well as condition information and vehicles transmitting their location information to start with.

The autonomous technology has matured and costs have come down drastically,  Even with a completely autonomous world there will still be challenges to overcome.  From hacking of the system/vehicles, economic impact, regulatory hurdles and liability are a few issues that need to be still sorted out.  The good news is that a lot of heavy weight companies are after these issues and we are sure to see them resolved in the very near future.

Anyone interested in model vehicles would love this museum.  It uses state-of-art technology in each of its displays.  It even simulates 24 hours of the day every 15 minutes.

For the road vehicles, they use the Faller Car System and have customized it to their needs.  They have created their own custom software to operate the airport.  For light control, they developed their own system called MiWuLight.

They have even partnered with Google to create street views of the Wunderland.  Check it out on Google Maps here.

Wednesday, January 11, 2017

Design Inconsistency

Consistency makes life easy.  Consistency makes sense.  Consistency in design reduces learning curve and eliminates confusion.  We subconsciously expect consistency and harmony around us.

Consistency has always been important in design of everyday things.  It is especially important when it comes to human machine interfaces.  Consistency makes everything seem normal and we feel at ease as we can operate in auto-pilot.  Imagine if the location of the accelerator and brake pedals were switched based on the brand of the car.  Every time you rent a car, you need to retrain your brain to this new interface.  This inconsistency is not only frustrating but can also be dangerous.  I remember a friend getting into a serious accident while riding another friend's bike in which the brake and gear levers were reversed (non-standard).  It was part of the design of the bike but in critical situations, the brain goes into auto mode and just does what it has always been doing.  He ended up frantically pressing the gear lever instead of hitting the brakes.

Another example is the riser of a staircase.  The designer can pick any height for the riser, BUT, it has to be consistent across the whole staircase.  Once a user starts climbing the stairs, the human mind programs itself to the height of the riser and we go into autopilot.  The user no longer has to look at the steps in order to continue.  The moment a riser is different (either shorter or higher), the user is guaranteed to trip.  Inconsistency is dangerous here.

We take notice when things are inconsistent.  Because inconsistency confuses us and throws us off.  It also frustrates us.  Here is an example I noticed recently at a Sheraton hotel in Vancouver.



During all my travel, I have always noticed that the elevator design is very consistent (but for some special cases like this) so as to provide the user with a familiar feel.  The 'door close' button is always on the right hand side and the 'door open' button is on the left hand side (Whether the door close button is a placebo button or if it actually works is a topic for another blog.  Let's stick to the design topic for now).  Once you hit the floor button, you subconsciously reach for the button on the right side to close the door.  I did exactly that and the door kept reopening.  I was distracted by my phone and did not notice why this was happening until, out of frustration, I 'looked' at the button to discover that it was reversed and I was hitting the 'door open' button.  Duh.

This case was not a 'designed inconsistency'.  It was an 'inconsistent inconsistency' because the other three elevators were all consistent and standard.

Inconsistency can be refreshing in some cases and can be an advantage.  An example is a web site (or a mobile app) design that is not consistent and does not follow the norms of design will always stand apart and draw the user's attention.  And, user attention is what everyone is craving for.  Again, the inconsistency should be subtle and not all over the place.  If it is extensive, it tends to drive the user away.

It is OK to be inconsistent when you want to draw attention, when you want to surprise (pleasantly) the user or when it is dictated by the design.  Designers have to make a conscious choice when to apply inconsistency to their design and what it would mean.  A thorough analysis should be undertaken before introducing inconsistency.  

Sunday, December 18, 2016

Here come the drones!

Amazon Prime Air announced this week that they successfully delivered a package to a customer in the UK.


This is exciting news for the package delivery industry.  Drones have already made a mark in other industries like agriculture, construction, oil and gas.  They are very efficient in inspecting power lines or oil and gas lines and even oil tanks.  Those are niche usecases where a drone is perfectly suited. Delivery of goods is one area where lots of companies are trying to make headway.  Drones have been used to deliver medicine, blood, etc.  Healthcare can benefit from drones immensely when it comes to delivering care packages to remote areas.

Possibilities are endless with drones due to their VTOL (Vertical Take Off and Landing) capability as well as stability.  Equipped with a HD camera and a GPS, drones are basically robots on a mission.

Some think that drones are going to replace UPS/Fedex, but that is not going to happen.  Drone delivery is one of the delivery channels for a specific niche. It will never become mainstream and replace USPS or UPS or Fedex, due to its limitations.  Payload is one of the key limitations followed closely by range.

Payload is a limitation that will continue to keep drones to their niche.  But, range limitation can be overcome by several means.

Due to the limited range, drones can only deliver within a small radius from the distribution center (DC).  One way to solve this is by having a mobile DC that moves the products close to the delivery site and uses drones to dispatch the goods.  Imagine a small truck driving into a neighborhood, parking itself and dispatching as many as a dozen drones to deliver a dozen packages in one shot.  The drones will fly line of sight, thus reducing the distance to the target and the time for delivery.  Once the delivery is complete, the drones return back to the truck (mobile DC) and get recharged while the truck moves to another location.  The traveling salesman problem is simplified by a hub and spoke design for the last mile (the truck still needs to solve the TSP).  The hub being the mobile DC and drones making up the spokes.  Large number of deliveries (albeit, small) can quickly be achieved this way.

The next stage of this mobile DC would be larger drones replacing the trucks.  Imagine a large drone (mother ship) carrying the goods as well as smaller drones flying into a neighborhood and landing atop a 'perch'.  The perch could be a flat rooftop or a light pole.  People could rent their rooftops as perches for these mother ships.  The mother ship drone would land and dispatch individual smaller drones to the end point delivery.  Once the deliveries are complete, the drones will return back to the mother ship for recharging and their next assignment.

The beauty of this model is that the mother ships can recharge while waiting for the smaller drones to complete their delivery.  Imagine a rooftop drone perch with a power outlet.  If the perch is on a light pole, a power outlet can be created atop the pole.  This extends the range of the mother ship as well as the drones on board.  The only reason for the mother ship to return to a DC is to gather the next shipment of goods.  Remember, this DC that the mother ship returns to, could be a mobile DC itself!

The research that companies like Amazon are doing in the area of drone delivery can benefit other areas like healthcare, agriculture, power, oil & gas as well.  

Saturday, December 17, 2016

Programming Projects for Beginners - Bubble Sort

This exercise will introduce you to sorting and specifically Bubble Sort.  There are several methods for sorting and bubble sort is one of them.

Note: If you stumbled upon this post and are wondering what this is about, start here.

Bubble Sort makes multiple passes through the list, while comparing adjacent elements.  It compares adjacent elements and swaps them if they are out of order.

Here is how it works:
Input list = [23, 4, 55, 12, 76, 3,41]
First pass:
[4,23,55,12,76,3,41] - Swap
[4,23,55,12,76,3,41] - No swap
[4,23,12,55,76,3,41] - Swap
[4,23,12,55,76,3,41] - No swap
[4,23,12,55,3,76,41] - Swap
[4,23,12,55,3,41,76] - Swap
Note that at the end of the first pass, the largest number is in its final place.  It has 'bubbled' up to its final location.

For the second pass, we can ignore the last element and sort the rest.  At the end of the second pass, the penultimate item will be in its final position.  This way, we keep shrinking the list until there is nothing else to sort.

Here is the usecase:
- Program displays a list of randomly ordered integers
- Program sorts the list using bubble sort
- Program displays the sorted list

Programming constructs used:
- Comparison
- Looping
- Conditional statements

Here is what the output would look like:

Note that I am printing the list at the end of each pass, but you don't need to do that.

You will also note that the sorting algorithm continues with the passes even though there is nothing to sort after the 6th pass.  This is because the algorithm is blindly running through the list once for every item in the list.

Bonus:
Improve the algorithm in such a way that it stops soon after the list is completely sorted.  The output should look like this:


Happy coding!

Programming Projects for Beginners - Hangman

This is the classic hangman game where the user guesses the chosen word in a given number of tries.

Note: If you stumbled upon this post and are wondering what this is about, start here.

Here is the usecase:
- Program asks user to guess a letter that makes up the chosen word
- User enters a letter
- Program checks if that letter is part of the word
- If the letter is not part of the word, the program starts drawing the hangman
- If the letter is part of the word, the program displays that part of the word and asks for the next letter
- If user keeps making guessing incorrect letters, the program continues to draw the hangman
- After several bad guesses, once the hangman drawing is complete, the user loses
- If the user guesses the word, the user wins

Programming constructs used:
- User input
- Comparison
- Looping
- Conditional statements
- Error handling
- Exception handling

Here is what a sample output would look like:

Another sample execution:

Hint:
For the hangman, create a list of the ASCII pictures with increasing degree of completion, and display them accordingly.

Bonus:
Read the list of words from a local file on disk.
Account for words with repeated letters.
Account for user typing an already found letter.

Happy coding!