06 January, 2014

Google Glass Hackathon

This has been a great weekend for Ahmedabad with a variety of activities going on, including echai-app event, makers fest, Sabarmati Marathon, Gujarati Literature Festival, and Quora Meetup( which is postponed to next weekend). With the limitation of physically being present at only one place, being a Glass-fan and tech-savvy girl I decided to go for Google Glass Hackathon, at Makers Fest, NID, Paldi to get my hands onto Glass App Development.

 It was a two day event, 4th and 5th January 2014, wherein we worked in a team of three. I had setup the environment previous night, so that we can dive directly into development without wasting time on those things during hackathon. It installed well and then installing the sample project Compass for glass for testing gave 17 errors, all with "R can't be resolved as a variable." The same thing happened with my partner, Harsh Kothari. This error is a very infamous among android developers where the R.java file is not generated. There are solutions posted to several resources. And every programmer, on encountering an error, what he/she does is  just "googling out" the errors. So we thought at that moment, " Why not make an app that does copying pasting to Google and finding possible solutions right in front of his eyes just by speaking "Damn it" and make developer's job easier ?"






So , the conventional way on an encounter with an error follows 6 basic steps :
1. Programmer gets an error
2. Copy error
3. Opens browers.
4. Paste it in new tab
5. Go through search results
6. Tries to find relevant content.

And this is our damn.it way :
1. programmer gets an error.
2. Shouts "damn it" (which is mostly a regular reaction to error :P)
3. Gets relevant solution on glass
4. Implements solution.

How cool , isn't it ? The moment you encounter any error, you have got a possible solution for it, with no constraint on IDE or where you saw the error or which technology or which programming language. It has no bounds for it.

Usually, on one hand, you are really frustrated on seeing the error and then doing manual, hand-driven and tedious set of actions every time makes programmer /developer even more frustrated. A programmer can really feel the joy if he can get rid of those actions. So, we basically focused on implementing this idea during the two day hackathon. We worked upon the workflow as next step for an hour or so, which had undergone many changes and finally turned out to be -

1. User says some predefined text, say "Damn it".
2. It triggers the glass to take screenshot of the page of error.
3. Then we extract the text from image (using Tesseract library (ocr))
4. Parse the text and look for errors.
5. Make a Google search. This can be further be more specific by making it a stack-overflow search or google group search or take him to a forum or discussion, as per user's instruction or depending upon the error.
6. Finally,display results on glass.

During the two days, we had been successful to use GDK of Glass. What we achieved is user speaks 'Show error', then a screenshot has been taken which would be saved on taping. Using tesseract library, it compiled successfully but had a runtime error which was debugged using logs, the point to error. That was the time, we thought, 'damn it , I wished I had this app' :P :P Then from the recognized_text variable it makes a google search with that as a query. Looking the browser open in glass for the first time was like real pleasure. Obviously, in two day you can't build app with perfection with high accuracy and whole start to end, but the basic prototype was ready on how it could be implemented.

A promise from Maker goes "a damn error gets resolved with damn.it on Glass quicker! That’s what we promise, damn.it! "

Major Challenges we faced:

1. We had just one glass to share between a group of 5 teams and limited time which made us wait for minutes until our turn comes to use the glass. If there had been one more glass, than that would have been more productive.

2. I had no prior experience developing apps for google. Yes, you heard it correctly. If asked for a github link to previously developed android apps, I had none. I was just a rookie with helloworld and a small app of input of two numbers and showing the addition as result on button-click. I knew how packages are managed and what is the sequence and flow for the android application but apps, no I didn't really create earlier something I could be proud of.

So, my point is the difficulty level is not so high and complex for making glass apps. The use of GDK is pretty simple and straight forward with few lines of code, which I liked about it. I think integration and creating links between different sections of code and passing appropriate variables, debugging the needs of code, logging to find errors etc are things I can hack, which made it not so difficult. I really loved and enjoyed hacking on the glass. I am really glad that this hackathon was organized and I had the opportunity to play around with it. It was an experience, that will stay in my memory forever. Thank you, organizers ! :)



And coming to the part, which is the first question I encounter from people is "How is Glass, Google Glass ?". I pretty awesome. Really looking at its future, it will be made a break-through technology. Glassware is not like reached upto its peak now, its still in a developing phase. So, right now you can't expect to utilize it the way you want, but soon its app-store would be overflowing, I am pretty sure !

Lets look at it in hardware perspective. I am really amazed by the concept of prisms used to make it, which was developed in 15th century ! Rightly said, you don't necessarily need to create new concepts to be a maker, there are enough around us, we just need to peep into it. :)

Looking at its speech recognization, its very powerful and accurate. It has really great tolerance to surrounding noise. What I felt should be improved is two things, one, its get hot very quickly and secondly, if the battery drains out slowly and user can have glass for longer time on, he would have better experience. One more feature which I would like to see is, if it can distinguish between the commands from different users. I am wondering if multiple users can operate on the same glass with the glass smartly recognizing it is command from which user.Mostly it doesn't. I am not sure about it, though but will post in comments soon when I am sure about it. The glass is still in beta and can undergo major changes before the actual product is launched in the market. I really hope that two features are made better and the app-store overflowing when it launches.

And yes, forgot to mention about meeting Sam Pitroda and Pranav Mistry. It was wonderful meeting them live ! :)

No comments:

Post a Comment