Finally got some time to write a post after long time. Lately life was not that eventful  anyway. Today I got a chance to participate in Google Dev fest here in Hyderabad at HICC. So i thought of documenting the notes I had taken during the sessions for future reference.

It started with the keynote by Rajdeep Dua about the Android 3.x Platform Overview and  Boris Smus about new features of HTML5. Rajdeep introduced fragments in Android platform which are used as independent component under the Activity and created/destroyed at the runtime. Also introduced about the compatibility library for Android 2.x so that we don't have to maintain two code line separate for tablet and the phone. For layout rendering in phone and tablet its a good idea to specify screen size in the manifest file. Boris introduced the following new features in HTML5

  • Pausing video automatically when user switches the tab so that it does not keep playing in the background.

  • Pre-render the Hyperlinks where there are high chances that user going to click it.

  • Support for detecting if the browser is online or offline.

  • Graphics in CSS3 using webGL

  • Native client programming in browser using C/C++ , stable chrome version 14

  • Audio API and Visualization

  • Full screen API

  • Web RTC

And he ended with a "that was a lot" slide with a resting dog's picture :) loved the humor. CFor more HTML5 check out

Tony Chan started with Android: Fragments and ADK Overview. Main highlight was Android market. There were lots of improvement. There is still no review process but Android team is trying their best to keep the apps harmless. Better error reporting , statistics and localized listing were incorporated. He also warned to double think before making an app free because it can never be made paid after that. He also illustrated fragment back stack (stack of UI component sequence which keeps popping when back button is pressed).  Transaction defines the rollback sequence of the UI screen. He also demonstrated code snippet to show how fragment component can talk to each other and pass "intent" via activity for better decoupling of fragments. He discussed about Open accessories  API and Android Development Kit (ADK) the hardware unit. Finally he concluded with jaw dropping demos of servo motor robot being controlled by Android phone's touch and orientation. But the best part of the day came when he put the phone on the top plate of Gyroscopic robot and tried to tilt the robot so that phone fall off , but it did not !  The phone sensed the tilt and sent signal to the robot's top plate to tilt in the other direction so that it remains horizontal with respect to ground and keep the system balanced . It  was simple a control system with feedback.

Now it was time for Building Integrated Applications on Google's Cloud Technologies( by Alfred Fuller). He talked about the following

  1. Google storage
    (S3 compatible , RESTFul APIs GET, POST, PUT , DELETE  methods )

  2. Prediction API
    (Can upload training data, both text and number in CSV  format ) to learn and make the model, and later model could be used to predict new set of unlabeled data. I personally chatted with Alfred during lunch time and got to know that best machine learing Algorithm for training is automatically chosen by looking at the data. It can also show multiple results with probability and if user chooses the correct label , it can be feedback to the system again to learn more , so that model gets smarter. One data record  can also be marked as multiple label during training. Training data also can be added on the fly at any point of time. Now question is can google come up with unsupervised prediction e.g clustering into unknown labels.

  3. BigQuery
    SQL like query language and highly scalable with  SSL access feature. REST APIs , JSON RPC are the major features in this. One can upload raw data and import to BigTable and then run queries. He demonstrated the performance of BigQuery with the wikimedia revision example with results. It turned out that George Bush's entry was revised most number of times. It could be integrated to Google docs using AppsScripts.

  4. App Identity API
    Public/Private encryption of data.

After the delicious lunch it was one of the most interesting sessions by Chris Broadfoot who talked about  "Displaying Large Geographic Datasets using  Google Fusion Tables". Fusion tables looks like spreadsheets but have some more interesting features like merging records and Geo-Coding. Data could also be superimposed on Google Map and the result plot could be embeded as iframes. He also talked about fusion table SQL and styling the map. Data could could be populated into fusion tables using HTTP post requests. Plotting points in Fusion table is highly scalable unlike Map marker because it does not leave the rendering job to browser, it renders using the Google's high end clusters of servers and only send the tile images to the browser.  During  Q/A I confirmed that mouse co-ordinates also tracked for interactivity in the tile images using extra scripts.

After that Boris performed some demonstration on chrome dev tools which is a in-built HTML/javaScript/CSS IDE in Google Chrome like FireBug extension in Firefox . Inline editing could be performed. He also showed how to use console.log(which, can, take, any, number, and, type, of, parameters) for logging. Revision history of all the changes was available.  Auto-completion of CSS atrribute names was one of the coolest features of dev tools.  He used CSS3 pattern galary to fetch some code for  nice background patterns  to change his slide's background using the browser dev tool itself. various format of  colour picker  including RGB and HSL was very handy to change colors of the web pages without having to refer to a HTML color chart. Disabling cache and logging XMLHttpRequest were two more useful features of dev tools settings . In addition to that Chrome dev tools can be used as a full fledged debugger with the breakpoint feature. He also DeOfusicated some clumsy javaScript code using the pretty print feature. Remote debugging of webpages could be possible using weinre and starting the target chrome browser with special flag (which runs a http server at a the specified port ). Performance of code is possible to measure using profiler feature. Boris was kind enough to tweet his slides immediately after that session which can be found here.

Post tea break Alfred Fuller was back with his session "Building Robust, Redundant, Reliable Web Applications on High Replication Datastore" where he talked about dynamically scaling app engine datastore which is based on BigTable. He explained about Strong and eventual consistency with the examples of cash and cheque money respectably. He also discussed entity groups and its trade off in size and showed example of ancestor queries which leads to strong consistency.

The last session was by Google's one of the Android advocate Anirudh Dewani and Tony Chan who helped with the demos. This session was dedicated to the designers who plays major role in the usability and look and feel of the Android apps both for tablet and phones. He hinted about using renderscript for high quality graphics which brings a lot of user attention. They discussed and showed Action bar feature in Honeycomb (Android 3.x) which has three key sections namely Icon at the extremely left , menus in the middle which tells the current navigation location in the app and action buttons which enables tasks which could be done in the current screen. One major difference between phone UI and Tablet UI is that there is more real estate (screen space ) in case of the later , so two panes can be displayed simultaneously. It is advisable to have a single APK for both devices but different layouts. He showed various never ending list layout and informed about carousel and viewpager libraries for 3D and 2D.  According to him , orientation change should not reduce the functionality of a screen in these devices. The best practice is to use the OS's visual style and theme married with branding of the app and keep it consistent with all the screens. Developers have to keep in mind is that tablets are not just large phones as they are designed to serve different purpose.

Overall, it was very good event with lots of information and inspiration to get started with latest in web technology. Let me know if there is any information in the post can be corrected. I missed some other exciting session simultaneously going on in the other hall. It will be great of sombody can post those details here in the comments.