Friday, July 4, 2014

View Photos on Big (TV) Screen with Friends & Family using Chromecast

Photos, we all love taking and sharing them with friends, family, colleagues and others. Every one is equipped with a smartphone, that has a better camera - which is capable to taking great point & shoot, selfie pictures. The amount of pictures we take and share is growing rapidly. Below is sample of some images I had taken during my recent trip. 




During social events, I have seen many of my friends & relatives, spending time in organizing their photo albums, copying to a specific folder (in a USB drive) & then trying to run as a slide show on their digital album. This got me thinking, there should be a better way of doing this...

Last month, I was catching up with few friends after a long time. We were walking over our found memories and browsing fun moments (through the pictures we took).

I soon realized, there should be an easy way to take your phone, select images available on your phone and play it in my home TV. I don't want to create an album, share it with them & worry about right set of sharing rights, privacy & so forth.

Exploring the technology available, I soon build a prototype to see - how it works. Here it is - A mobile app that enables me to select pictures from my phone (Camera folder, What's App, Downloaded, Meme, or any folder) and see it on a bigger screen.

I have developed this android application leveraging - Google Cast SDK, that works with Chrome cast connected to my TV. Images are streamed directly from my phone to the TV (through cast). Hooray - I don't have to worry about uploading pictures to the cloud or usb thumb drive & then play from it.

Simple steps. Choose folder of image source, select images and then cast them one by one to your TV. 




To validate my hypothesis - here is my basic version of application on Android play store. Based on response I get; I shall develop further. Feedback always welcomed here.





Monday, May 20, 2013

Google IO 2013 - My learnings

Google, hold its 6th annual developer conference called I/O here in San Francisco, California, USA. It was my privilege to be at the conference & experience on what & how is Google working on redefining our life! 

During this IO, Google talked about its each core product line & show-cased how they are deeply integrated with its other services for smarter & enriched user-experience. Let's walk through major updates in each area in a bit. 

Key Note: 

Being Indian, I feel proud to see 3 Indians on stage heading key portfolio at Google & talking about them - +Vic Gundotra for Social (Google+), +Sundar Pichai (Android, Chrome, Google Apps) and +Amit Singhal for Search. This keynote was being watched by 6,000 people present in the hall along with ~1Mn people watching it live through io-extended / youtube live setup. +Larry Page coming to the stage at the end was a surprise, and equally exciting to hear where he wants to take Google with more moonshots

It emphasized growing importance of (a) Multiple smart displays like Mobile, Tablet, Computer, Watch, Glass, Car console, etc. (b) Smart sensors (c) Computing device (d) Personalized suggestions /intelligence on before what search request will be.


Android
+Sundar Pichai talking about Android activation's (900 Million), +Hugo Barra talked about download & installs (48 bn) and presented Google's Play Service, Gaming service, & more - details below. 

Play Services
Play services are enriched with new features focusing on Google Maps API, Location API, GCM with upstream messaging & persistent connections; Synchronize notifications and Google+ SignIn for applications running on multiple platforms. 

Game Service
Announced new Gaming service for its Android, iOS & web platform along with multi-player support. 
Cloud Save, Achievements & leader boards, multi-players support are extensions of Cloud end-points; enabling its game developers build cross platform games and push them to users quickly. It also Integrates smoothly with Google+ circles for inviting friends to game and find new multi-players. 

Development environment
Android Studio - Visual development IDE (along with Intelli-J) is in preview edition (v0.1) for developers. Its visual interface helps developers in looking at localized strings right from editor, UI display across multiple device form factors (phones of different sizes, tablets & more) & more. 

Developer console now has an interface to test out Alpha, beta version of applications with your Google+ circles. Comments of this versions are private & not visible to everyone. It's big step in trying out your application with trusted circles before launching globally. Developer can also hire a language translator right from developer console for broader reach of its app. 

Music
+Chris Yerga announced US only, subscription based streaming service. It gets on head to head with Pandora & Spotify. 

Hardware / New version
New version of android & hardware was expected, like done in past IO. But this year, it was all about APIs. Samsung Galaxy S4 will soon get Google powered Nexus Experience directly from play store later in June this year. This indicates Google is working hard to ensure people get latest android upgrades & nexus experience on the android phone. There was enough emphasis on enhancements being made for more battery life & better performance. 

Sundar, head for Android & Chrome, emphasized of two large growing & scalable, both continues to be important platforms for Google. It's all about building strong user experience on top of this platforms. There are countries where there is less than 10% of adoption of this platform(s). That's big opportunity. 

Chrome & Apps
Sundar touched on growing segment of Google Apps in enterprise and talked about how Malaysia government is adopting Google Apps & chrome books for leading transformational change in education. He also talked out growing need for Apps in education. There was a booth at IO focused on Apps for education. Google continues to focus on speed, simplicity, and security through Chrome. Hence, Sundar is giving every IO attendees Chromebook pixel (Google thinks it as an ideal device - for which developers should build apps for).

There was a strong message on Mobile Web - Sundar said "With over 750 million active users on Chrome, we're now focused on bringing the Mobile the speed, simplicity and security improvements that we've seen on the desktop". It will be interesting to see how the boss of Android & Chrome going to get marriage of two powerful eco-system (Chrome & Android); though they continue to be distinct. 

Social (Google+)
Vic, talked about social media being flat with streams and unveiled revised Google+ layout of streams with depth, auto-hash-tagging, great improvement in pictures enhancement (important, clear pictures pops up keeping blurred, faded pictures aside). Animation of pictures (3-4 quick snapshot of motion) is indeed awesome!

It was evident from all sessions, how Google+ is an integral social platform with other services & not as a stand alone feature. Long awaited, upgrade of Google talk is here - New hangout app (available through Gmail, G+, Android, iOS) is here. It is combination of Text, Chat & Call. Competition to What'sApp? Initial usage of this app, leaves good impression (at least to me & my friends around). The best part is synchronization of notification through all end-points. 

Search
+Amit Singhal, gave a brief history of search to set context of what next consumers expect from search. It's clear Google Now, demonstrated last year is going to be main stream front end of search for Google. "OK Google" is a command to Google through Glass / Android / Chrome browser to ask for information & get audio translation, conversation, direction or similar information back from Google. Pretty impressive. Knowledge graph will be available in more languages, statistics search along with Knowledge graph will be part of main search. All this shall be available soon, but initially through Chrome browser.  

Maps
Refined vector maps, with 3-D, indoor maps, personalized maps is the future. Search, reviews, ratings are better integrated within maps. Red bubbles are re-designed for better display of point-of-interest. Google earth is now part of this map & all available through web. No more downloads !!! This limited preview will be gradually rolled out to more & more users. Talks like tracking ships with maps & cloud was interesting.   

Glass
Couple of sessions on Understanding Glass, building apps, hacking device has been useful to understand the dynamics of wearable computing. We all acknowledge the fact of being in early days of wearable computing (through glass or smart watches, health gadgets). A lot needs to be done (privacy, user-experience, time-critical information), etc needs to be well looked through before they become easy accessible to common man. A both on Glass with developers from 'X' team around was great to interact with & learn more. But till then it continues to be a geeky gadget everyone wants to have. 


Cloud
+Urs Hölzle announced Google Compute Engine (GCE) is out from Limited Beta to Beta service with sub hour billing, shared core instance, advanced routing, large persistent disk (up to 10TB) Multiple pricing models, including minimum 10 minute usage with 1 minute incremental. 
Google App Engine adds support for PHP language. Good to see +Amit Singh & his team present during this session. 

Surprisingly last year, GCE was announced as a part of keynote & saw great interest. This year, cloud updates happened in one of the session rooms & not on the key note stage. Developers learned about it, as day progressed. 

Google analytics premium data through Google's Big query is coming soon.

Unified storage: Google Apps customers, will now have 30GB of unified storage to use between Drive, Gmail, Google+ photos. 

Other
Gmail: Quick Action buttons,  schema integration for quick actions are new features within Inbox; money send through Google wallet from your gmail.

Sensors: Google used sensors customized using Arduino to capture various statistics (temperature, noise volume, people moving around, etc) right at the IO. They used Google's cloud platform to capture all this information, big query for pulling out data & graphical layout for representation. Refer to this talk for more details.  

Developer Lounge: Google's developer relations team and advocates were having continous talks over new releases through Google Developers Live channel. Google Developers lounge was a central between product boths & sand boxes. 

Fun@IO: Google+ air baloons where roaming over the IO hall. Robots, Google maps car, etc where in the lounge area. IO official party was geeky with robots around, Ingress gaming & more.


In a nutshell, users are moving to a multiple screen world and expect personalized service. Updates on Google Glass, Next service from Google 'X' would have been more exciting! May be next year. Overall, a great conference to be; hear in from Googlers, partners through their sandbox, developer advocates & more. I'll surely look forward to attend next year. 


PS: In this blog, I'm covering major news / updates announced. YouTube video with talk on each topic can be found through GoogleDevelopers channel

Friday, September 21, 2012

Promising Big Query platform

Big Data, is growing buzzword that many companies are leveraging to define various business strategies. My interpretation in simple language is - How to manage (Store, access control, read, analyse) massive Information or data generated in order of tera, peta, exa or zeta bytes.

Google, a major technology company, has been dealing with this size of data like other major companies like EMC, IBM, Microsoft and Yahoo. Google recently developed an internal engine called Dremel, a scalable, interactive ad-hoc query system for analysis of read-only nested data set. This engine makes large data sets look very small (by providing meaningful data set faster to application). Big Query is a wrapped up with APIs for developers to use this engine. A good article on this by Wired.com

My team gets excited on any new offerings from Google especially for its enterprise customers. Hence we got our hands dirty to learn what it is all about. Here are our learnings. Reading through Developers site and watching note from I/O event, got us started, followed by a small POC done by me & the team. Here is our understanding & learning.

Architecture
Existing Models
Relational Database works amazing when we have query executed based on primary & foreign keys. This is because this database(s) are internally stored as B-Tree. eg:
Customer Ids. They form basis for profile information, transactional data and similar.

Challenge
A query that seeks information based on non primary or foreign key, entire table has to be scanned for retrieving result set. eg: Identify list of users from a particular geography. Here data-set is indexed on customer-id & not geography and hence entire table has to be scanned for validating geography. If we talk about Big Data (at least TB records), it gets expensive and time-consuming.

Alternatives
  • Avoid Table Scan
  • Fasten up the table scan (Dremel leverages this concept)
Dremel leverages following:
Instead of deriving record oriented storage, it follows column oriented storage. i.e. store each column in separate file. Their are two advantages of column oriented storage.
  1. Read only the columns, based on the information requested. 
  2. Leverage compression algorithm to compress the content. Column property suggest similar nature of data, hence compression works to a great extend. 





In above figure, each level Mixer and Shard are compute machines with computational power, disk and RAM. As soon as a query is requested, parallel requested are fired to next level cores (children) to read data, process and aggregate data. Result is passed on to the parent, where it is reduced as relevant. Above computes talk to each other through RPC over high bandwidth.

Execution
Managing data
Data has to be uploaded in a non-normalized pattern. A CSV table can be uploaded via Big Query tool or through Google's cloud storage (GCS).


Data Schematics
While importing data, data-schema has to be explicitly defined. Hence a text file with field name and schema definitions comes handy. (Schema is pretty simple FieldName:DataType, FieldName2:DataType). Data type are integer, float and string. 

Update: When I started playing with the tool. Not many 3rd party ETLs were available. But now I do see bunch of ETLs available. 

Query
Big query follows SQL dialect with basic set of SQL. As it is developed for analytics purpose, it does not support update or delete requests for data records.

Browser based Big Query tool is very handy to get hands dirty and try running few queries to see how it behaves, and try ad-hoc queries. 

Integration
There are 2 set of Integration points to make a full fledge system. (1) Pull in data from existing data ware house (2) Visually represent the business intelligence derived by running big query on huge data set. 

The great element of Integration story is availability of Big Query through REST Interface with rich set of integration libraries (Java, JavaScript, Python, PHP, .Net, AppScript).

Data Connectors
I do see ways to connect data sets to the big query platform, but have not explored in detail. 

Visualization & business Intelligence
Based on the library used to interact with Big Query, the JSON response set notation varies. Use sample application libraries to get started and learn more using browser debugger. As the data set received is in JSON, it can be plugged into any 3rd party tool for visualization and business representation. For my playground, I used Google Charting APIs to draw charts along with JavaScript library. 

Security
Big query follows standard project hosting on Google projects, which has standard security measures. 

Business Applicability
As claimed, this platform seems to be worth experimented with the given Google's credentials of scalability and speed power of execution. We could set it up and get it running very quickly. With low investment and empowering the cloud platform, we could see results instantaneously. 

For a business entity, insights on business data is vital for its growth. Analytics can be quickly derived using Big Query platform, as they don't need to invest heavily into infrastructure and setup cost. The most important is mining information from large data-set, with incremental knowledge is pretty instantaneous (over waiting to configure the system, pull out data, define model & so on..)

Applicability: This platform is applicable to any vertical industry - say Telco to Retail to online eCommerce platform to an automobile company. 

It's worth exploring benefits of this promising platform. 

Learnings & Challenges
  • After adding OAuth2 client ids, for all new users (through their GMail Ids) that were trying to access the web application (triggering big query request) received error of not accepting Big Query TOS (Not sure why end users have to accept it?) . Yet I've to find a way to smoothly fix the behavior. 
  • From the data set used for POC, TimeStamp data type element is missing and needs to parsed and formatted for better representation. 
  • Documentation for different libraries for Big query and their JSON response notation is not detailed. 
  • For experimental purpose, do refer to the quota policy for your needs
  • Big Query tool restricts uploading of files with larger size. Use GCS for managing larger chunks of data.

Wednesday, August 1, 2012

Raksha bandhan - Indian festival over hangout?

Raksha bandhan, an Indian festival citing bond of protection between brother and sister; where sister ties rakhi (a sacred thread) on brothers wrist praying for his well-being and long life and brother vows to take care of her.


 


Growing urbanization, where families have moved to new cities do miss their family back home especially during festivals. Technology has been bridging gaps and bringing them closer. It's easy to reach them over a phone call and hear their voice. Have a video chat to see them in action.


For such distant families, to celebrate the kind of festival in a special way, we thought of building a Rakhi celebration application using Google+ Hangout platform. This application helps in performing Tilak, sharing Rakhi, sharing sweet and gifts. This application is in alpha stage (Feedback's welcomed) to learn how technology can bring fun and liveness within our daily life.


Try it here.
Start a Hangout

Steps to use the app

  • Start Hangout and Invite your family members to join
  • Install Rakhi celebration app, and you shall see it running on left side of the Hang out page. 
  • From the rakhi app, select your family member name before performing rakhi ceremony like selecting tilak / sharing rakhi / sweet / gift. 
We will be happy to hear more about the experience of the app, platform, and the fun you had with this app. 

Friday, April 6, 2012

Chrome OS

Google's Chrome project aka Chromium runs for their Chrome Browser and Chrome OS. Loving its browser, I thought of checking out the OS. 


chromium-os




Downloading image
Google Chrome OS, is available only via their partnered OEM's hardware. Hence to try out, how it looks and what's the experience, I started googling around. Chromium OS & Google Chrome OS, share same code base with an exception of later having additional packages to ensure better experience on its partnered OEMs hardware. Chromium OS can be downloaded, compiled & executed. Avoiding all that tricky steps, I looked for readily available image. 


Though not much of information available, but whatever available; all pointed towards hexxeh. They seem to be checking out latest version of Chrome OS available on public domain, build it & release a installable image for end consumers. 


Installation

  • I started with its Vanila variant. 
  • Downloaded & copied image to the USB drive through image writer. 
  • Plugged USB in to my old HP Laptop (running with 512 MB RAM, Intel Pentium Dual Core processor). 
  • Booted computer from USB. Saw Google Chrome's logo with text 'Chromium'. Got excited !!!
    NOTE: 
    Google Chrome OS has green/yellow/red logo, while chromium OS has blue/bluer/bluest logo. 
  • After few minutes, saw initial screen asking for KeyBoard Language, Network connectivity.
    NOTE: Unless, I connected ethernet cable, I could not proceed. For some reason WiFi option was not available. 
  • Next step to configure Google Account. I gave my existing Google account credentials and it started syncing contents.
    NOTE: For security reasons, secondary encryption password is prompted before sync can be performed (which can be found in google account dashboard).
  • Upon syncing & configuring, I was asked to select my logic profile picture (It also pulled up my Google+ profile image). 

Experience

Applications installed on Chrome Browser (via Chrome browser App Store) popped up as my applications on the machine. All most all this applications works in browser & hence they worked here equally well. I do not have that many applications installed to have detail analysis on the same. 

File Manager: File manager is part of the browser, where all files are visible. UX looks very similar to Google docs listing all files in a collection. 

Printer: Printer on cloud. I haven't tried it, so can't comment. 

Settings: Could see Ethernet, WiFi, Keyboard, trackpad settings. Again not as a separate application, but all under Chrome Browser page. 

Other Info: I could see my computers battery status in bottom right corner. Could not see other hardware or similar details. 

Summary
Honestly, as this was not an official Google Chrome's OS image; but a similar variant - It gave me a basic feel of what the OS is all about. An operating system, with a home page and all applications hosted (or embedded) in a browser. Data pulled from my cloud services and processed locally (where-ever applicable). Certain services have support for offline data availability to ensure work continuity especially when no or limited internet connectivity. 

Google's official Chrome OS, has pre-bundled extended package like Adobe Flash, Adobe PDF, Google Talk client, 3G Cellular support, etc; which makes the entire OS better. 

For users, who can get their all major work done on a browser (Mail, Doc processing, Financial, Image & Video Processing), it seems to be a good option. But hold on - Do one really needs to buy a new hardware for this? May not be... We all use browser in our regular laptop / tablets. Then why a new hardware? May be a trimmed version of hardware like a tablet or ultra books seems to be a good fit.  

I'll definitely look forward to use ChromeBook soon. 

Friday, December 30, 2011

Google Currents

Google launched currents, for US region only. Thank you to google search, it helped me to find an off-line installable copy of currents to download & install it outside US. On downloading, the 1st time setup has been quiet smooth to get few default Libraries & trends. This helped me in understanding the potentials of this application.

Library: The moment I added my Google Reader feeds into library, it was a Bonanza. Now, I read all my feeds from currents [Bye bye google reader]. Offline sync of the contents with configuration of accessing only over WiFi / 3G is beauty. It saves me on my 2G data-plan bill. What i miss is some indication of new un-read notifications within the Library. Even it misses showing visual distinguish between read & un-read articles.

Trends: I can add categories of trends I'm interested. It ranges from news to science, technology to sports. Once selected, I get good feed of what's trending now. On each topic selection, I'm happy to read the story headline from major vendors. It's impressive to see 3 sections of each story - Stories, User Generated & About; giving 360 degree perspective on the information.

  1. Stories are more of content publication agencies, 
  2. User generated content is scrawled mostly on videos generated by users, and 
  3. About links more to generic information sites like Wikipedia & similar. 


Trends mark read articles with grey titles vs black bold titles for un-read. One minor usability bug is when a detail news is read & returned back to trend page, it scrolls back to the top [instead of where I browsed into].

Today, I thought of exploring how to create a publication & created my edition. Following through the template flow of linking an RSS / embedding a google doc, I could create my first edition within few minutes. I could also test it live on my android device by loading content from Google servers within minutes. This has been really impressive. I'm loving it.

In summary, though there are few bugs & improvements required - I'm hooked onto this client. I'll look forward for this client to be available outside US.