Wednesday, December 6, 2017

We continue with our discussion of the personal coder. Let us now consider the first differentiation. If the assistant is mobile, then it is likely to be classified a robot. The movement of the device is mostly with respect to an object. When we introduce motors and an ability to govern them by way of co-ordinate space, we are working with robotics. The assistant targets only the owner. It does not have to move around to translate commands into tasks. This is why we separate robotics from the capabilities an assistant has.
Second, the assistant is not an appliance but a software over an appliance. When an appliance collects and sends data over the internet, it can be considered an internet-of-things. In the case of an assistant, the data pertaining to the owner is maintained by the assistant and actively indexed and worked with. Moreover, the assistant need not be globally unique or have its own ipv6 address to do its job. This is where we differentiate from the lower level sensors and devices that are otherwise also connected to the internet.
There are two different kinds of pressure exerted in this middle layer for a "personal assistant". The pressure from the layer of IoT devices is that they can proliferate to include dedicated assistant responsibilities and may no longer require the owner to talk to one assistant only. This avoids having to relay commands and reduces the assistant from a being a single point of failure. At the same time, it makes it natural for the owner to turn to the function specific device and command in just the same way as they would an assistant for working with her data locally. This is also more intuitive for the user to know that a device by its function. Moreover, elaborate setup of applications and devices to the assistant is now avoided. In other words, the personal assistant has to remain smarter and differentiate from the device specific functions that they can specialize in. One way to do this is to provide more intelligent services over a unification platform for seamless experience, relay and consistency. If the assistant could treat these devices as plugins, the ecosystem for the assistant can grow better.
Similar arguments come from the mobile robot inclusive top layer where the assistant does not enter. The robot may assume the responsibilities of the "personal assistant" given the hardware and support it gets. Since it is mobile it is the equivalent of butler services for the customer. However, the digital assistant can continue to grow its presence by being more affordable and comprehensive in its support for taking commands from a robot as well. These kinds of improvements are easy to imbibe in the personal assistant while enjoying the power of cloud computing available on a voice activated command.
Another area of improvement in building the jargon for the personal assistant is to create associations with proper or common names for devices that are not necessarily on the internet. For example, it should be easy for the assistant to pair with a headphone over Bluetooth network and allow the user to listen to music on his headphone. The personal assistant merely has to recognize that the word headphone refers to a specific device that it can scan the Bluetooth network for and connect. Most desktop computers already have a hardware profile and can scan for hardware changes. They are also automatically able to download the necessary drivers to let the device function properly. In a way the personal assistant can become a headless desktop so long as the essence of communication continues to remain voice based. There is also a demarcation of concerns between the portable laptop and the portable personal assistant. One is general purpose computing and the other is merely customer facing. In a way, the personal assistant would benefit immensely to communicate with a desktop for all computing tasks.
Sometimes it is harder to ask if the desktop based computing is going to be demarcated from the personal assistant? The personal assistant is not the same as the desktop computer because it derives its value from being closest to the owner. It can be considered a frontend while the desktop may act as the backend. This connection between the desktop and the personal assistant is not just an extension from desktop computing but a protocol that spans different hardware, platforms and computing.
In its virtual form, a personal assistant may also be given any avatar. If we were to visualize the assistant it could be a photo frame on the desk that can show different personas as suited to the end user. By making the speech recognition software as thin as possible on the front end and backing it up with heavy duty cloud services, we can make the assistant appear differently at a time or a place.
#codingexercise
We were discussing finding closest numbers between the elements of three sorted integer arrays. We don't have to sweep all three arrays if we need to determine the relative range of each array. We take the sentinel values of a given array and find its closest numbers in the other arrays. Then we compare the sentinels of the other arrays with the closest numbers found in that array. This gives us a comparison of how wide or narrow the other arrays are compared to one of them.It gives us an idea of the relative positioning of the arrays within each other whereas we could only tell their position on the number line with the sentinels. 

No comments:

Post a Comment