Deep Shot is one of those ideas that makes today's technology work together. It's an app that lets you take a photo of your desktop and carry on working on your mobile phone but it's not quite as magical as it seems.
It is a really nice idea. There you are with something that you are working on open on your desktop machine and you have to be somewhere else. It would run on your phone but how to transfer the app and its state? Why not just take a photo using your mobile and watch as the application opens and lets you continue from where you left off?
It is a great idea and it has been implemented - sort of - as an application called "Deep Shot". It has been developed by a grad student Tsung-Hsiang Chang at MIT's Computer Science and Artificial Intelligence lab and a Google engineer Yang Li.
Currently it only works for things that you have open in your browser because the state information has to be captured as a URL.
“People are used to using heavy tools to transfer data or synchronize two devices,” Chang says. “You have to plug in a USB cable and maybe open iTunes and synchronize a bunch of data at the same time. But sometimes you just want to send a tiny bit of information, or a single piece of information.”
Of course you could use Bluetooth or WiFi and dump the heavy cable but the "take a snap" mode of transfer is so natural that it feels right - it's a sort of "gesture" that you would make to capture some data on your phone. In fact some users even take a photo of their desktop screen without the help of Deep Shot just to remember where they were! Using a monitor is a visual thing and what could be a more natural way to preserve it than taking a photo?
Google Goggles uses the same approach but to a wider range of input types. If you watch the video of Deep Shot in action it does seem almost magical and very appealing but..
the but is what the video doesn't make clear - you need to install some client software on every device that you are going to use Deep Shot to transfer applications between.
What happens is that when you take a photo the pattern recognition routines doesn't perform the magical task of working out which web page you are viewing just from the photo. All that is recognized is the application that is being photographed. Then the Deep Shot client installed on the client is instructed to get the URL from the window in the photo and transmit it to the mobile phone. The information is transmitted using an open source instant messaging protocol.
The software on the mobile phone then opens the URL and it looks as if magic has happened.
At the moment Deep Shot only works with a few applications with states that can be captured by their current URL but you can see that it can be extended by finding ways of capturing more complex state information. It also keeps a set of photos in a gallery which you can use to restart applications in the same state.
The final problem is knowing what to make of Deep Shot. Clearly if you have to install clients on all of the machines involved in the transfer you might as well create something that works more directly. For example why not just point, using touch or a mouse, at the application you want to transfer?
However the important aspect of the approach is that users seem to find taking a photo of the screen a natural way to approach the problem of information transfer - so much so that some do it without the help of Deep Shot!
If the camera is the tool of choice for transferring and capturing screens of data then Deep Shot might just be a really good idea.
As Chang was at Google when he worked on the application, it belongs to Google. So far there are no plans to make it publicly available.
A new course on TensorFlow starts this month and sets out to introduce you to the state-of-the-art approach to building artificial intelligence algorithms. However, as it is on Kadenze, you can e [ ... ]
The TIOBE index is strange and hasn't got any absolute meaning, but changes are always interesting because they generally mean that something is going on. This month we have to explain why assembly ha [ ... ]