Welcome to my website. Find articles, presentations, tutorials, experiments on various technologies. Drop me a line in case you want me to cover something specific.
The 12th edition of the Android Developer Worskhop went off successfully in Mumbai. The batch was a mix of interesting folks: iOS, PHP and Java programmers. It is encouraging to see that interest in Android as a platform is significant enough.
Both the days went off well with our topics ranging from setting up the Dev environment, Android Activities, Built In Intents and User Interface taking up the first day. The 2nd day kicked off with List Activities, Menu, Persistence Options, Networking and GPS/Maps. We rounded off the session with introduction to the Play Marketplace, building a APK and uploading the application into the Play Marketplace.
Here are some pictures from the workshop:
The feedback was great and my interaction with a completely unique batch this time has given me more insights on things that I can further tweak in the course.
It is satisfying to note that we have completed our 12th edition of the Workshop now. We plan to conduct another one in June. If you are interested, sign up for the mailing list to get notified when the dates are announced.
A small but significant milestone for Mind Storm Software Pvt. Ltd. Our 2-Day Android Developer Workshop, which teaches the basics of Android programming is going to hold its 12th edition tomorrow. When I started this workshop in September of 2011, I did not know how the reaction to the course would be? I have not done much marketing for it except for a website page, word of mouth, colleagues and friends, who have played a role in publicizing it, etc.
We thank them all and for everyone who has attended the workshop, we cannot thank you enough.
Here is a look at some statistics:
125+ people have attended the 2-Day Workshop
If I count the workshop happening over this weekend, we have held 12 workshops in total
2 of them were for corporate clients
2 of them were overseas, in Dubai and Abu Dhabi. All the rest were held in Mumbai
Now for some fun facts:
There have been no dropouts i.e. people who registered and then did not turn up for the workshop
At least 15-20% of the participants were not familiar with Java, but that was not a stumbling block
A majority of our workshops have been held at the Residency Hotel in Mumbai and we have got the opportunity to use all their meeting rooms
1 Batch had an average age of 20
We hope to continue the momentum in this year along with new courses. Yes – there has been a clear demand for different topics and rest assured that June will see the new courses debut.
Some people have asked me what keeps me going doing the same course over and over again? The reason is very simple: The biggest joy for me is to see the sheer delight in the participant eye’s when they run the mobile application on the device. That is the only fuel I need.
I went to recharge my mobile phone yesterday evening. To do that, I went to a small electronic shop that also sells mobile phones, repairs mobile phones and does mobile recharge for prepaid customers like me. While the person helping me out was punching the mobile recharge amount on the phone, one fellow came in a hurry and simply said (I will use Hindi here):
Man : Tablet hain kya? (English : Do you have a Tablet?)
Man at Shop Counter : Kya ? (English: What ? )
Man : Karbon Tablet hain kya? (English : Do you have the Karbon Tablet?)
Man at Shop Counter: Sorry. Baajoo ke Medical shop mein tablet milenga. (English : Sorry, you will get that in the medical shop next door)
I kept quiet about it but was amused for sure. The future is going to be very interesting…
I am pleased to be featured at the Cloud Foundry blog, where I have discussed how Cloud Foundry is my preferred choice of PaaS today and the announcement of Mumbai Data Sets that re powered by Cloud Foundry.
The Mumbai Data Sets currently available are:
Blood Banks in Mumbai
Help line numbers
Taxi/Auto Fare
The site is available at http://mumbaidata.cloudfoundry.com and every data set is available as a REST API. Here are the REST End points:
The application is a Node.js application and I loved the way Node made it possible for me to expose the API in rapid time. Cloud Foundry being a polyglot platform allowed me to deploy the Node.js application. It also powers some of my other Java based applications.
If you have not given Cloud Foundry a try, I definitely recommend it.
Google App Engine has announced version 1.6.5 of its App Engine SDK. I was pleasantly surprised to find an excellent feature that was hidden away in the Release Notes. Here is the nugget:
All user requests have X-AppEngine-Region, X-AppEngine-City, and X-AppEngine-CityLatLong headers which contain location information based on the IP address of the client request. For a full description of these headers, see:
I had covered earlier on X-AppEngine-country and the fact that it worked quite well. And I had suggested just offhand that Google should probably take this one still further and provide other fine grained information too like city. It looks like they have gone further than that and include region, city and latitude / longitude.
In addition to the X-AppEngine-Country in the request header, it has now introduced the following additional location based headers with each request:
X-AppEngine-Region
X-AppEngine-City
X-AppEngine-CityLatLong
The availability of this information is surely going to be useful to a lot of applications that earlier had to resort to additional network calls to get this information from the IP Address.
To test out, I wrote a simple Google App Engine Java project which has a single page (index.jsp) that simply sniffs the value of these header and prints it out and shows a map of where you are visiting from.
Here is the snippet of code that prints out the different header values based where you are accessing the page:
<h2>Hello My Friend. Your co-ordinates are: </h2>
<h3> Country : <%=request.getHeader("X-AppEngine-Country") %></h3>
<h3> Region : <%=request.getHeader("X-AppEngine-Region") %></h3>
<h3> City : <%=request.getHeader("X-AppEngine-City") %></h3>
<h3> Latitude,Longitude : <%=request.getHeader("X-AppEngine-CityLatLong") %></h3>
Since I live in India, it does a good job and prints out the following (as shown in the screenshot below):
It has been a terrific experience to write for one of my favorite sites : ProgrammableWeb.
Of course I started following ProgrammableWeb much before I started writing for them and it has played a major role in starting the API revolution, that has changed forever the way we talk to applications. Its API directory is the largest and the only one of its kind and the daily stories keep throwing up some little gem or the other.
I hope that my stories have been informative over the years and with my 200th story now published “Will BYOD usher in APIzation of Enterprises“, I shall start once again towards the next set of stories.
Thank you John and Adam for this wonderful opportunity. Adam — you are the best Editor that I have worked with.
Last weekend, I went to Abu Dhabi to speak at the Motorola Channel Power Event. My talks focused on the HTML5 Application Development Framework from Motorola called RhoElements. RhoElements is an HTML5 based framework for developing Enterprise Grade Mobile applications. Its killer feature as far as I am concerned is its integration with device capabilities that are crucial to Enterprise mobile applications.
Let me elaborate a bit. Consumer apps are not equal to Enterprise mobile apps. Enterprise mobile apps are a completely different breed of applications and have key characteristics that differentiate them from Consumer Apps. UI ‘Sexiness’ is not the norm typically and the focus is on key features like:
Security
Enterprise Integration
Usability : Less keystrokes, Contextual Information
Device Capabilities Integration : Support for barcode scanning, signature capture and much more.
Motorola RhoElements has signficantly added its extension to HTML via Javascript libraries that integrate with the device drivers at a low level, thus giving rise to extremely powerful Enterprise mobile applications that do all sorts of things like barcode scanning and are still written in pure HTML, Javascript and CSS.
The next version of RhoElements which consist of RhoMobile Suite is likely to push the envelope much further. Generation of Mobile Applications for target mobile OS like iOS, Android, BB and Windows Phone along with the RhoSync Cloud product to sync up your local transactions is going to be interesting.
During the event, I spoke for about 15 minutes on Day 1, where I shared my experience of RhoElements in brief and then on Day 2, I conducted a 2-hour workshop on ET1 (The Enterprise Grade Android Tablet from Motorola) where I demonstrated various development options like Native Android apps and HTML5 based apps. I covered some HTML5 concepts and then we did a deep dive into developing a HTML5 RhoElements application (with barcode scanning capability).
Take a look at the 2 presentations below:
The Future of Enterprise Mobile Development
Workshop on Application Development for Motorola RhoElements and ET1
A big Thank You to Motorola for giving me the opportunity to speak as an external consultant at the Channel Power conference.
I am pleased to announce that Ajit Mahajani, one of the participants from my 2-Day Android Workshop has just published his first application in the Google Play (formerly known as Android Marketplace) Store.
The application titled “Light Me Up“ is a strategy game where you have light up all the tiles on the board. The tiles toggle their light every time you tap on it and the catch is that it also toggles the vertical and horizontal row.
The game is slick looking, lets you choose your grid, colors and also saves high scores.
Great stuff Ajit ! May you release many such applications on the Play Store. Ajit is also blogging about his experiences writing Android applications and is sharing some great tips on Android programming. Take a look at his blog.
If you have attended my workshop and have published an Android application, please let me know. And of course, if you want to take your first steps to writing Android applications, come and attend my 2-Day Android workshop.