Help The Victims of the 8.9 Earthquake in Japan by Spreading Awareness and Aid. Visit http://goo.gl/wjZQz to donate. /* ]]> */

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.

Read On:

You can get in touch with me anytime at

r o m i n . i r a n i @ m i n d s t o r m s o f t w a r e . c o m

I am also active on Twitter – do follow me.

 

Mind Storm Software successfully conducted another edition of its 2-Day Android Developer Workshop last weekend. This was the 2nd workshop that we have conducted this year and it went off well with a next set of developers all set to launch themselves into their Android programming journey.

We had 10 folks joining us for this edition and all of them were working software professionals. Our venue again was the Residency Hotel and we were hosted in the large and spacious Indigo Conference Room. Travelling in Mumbai is always a challenge especially if you are finding the place for the first time but we were all set to go with minimum of delay on the first day.

The workshop has found a successful pattern now and the first half of the first day is spent in understanding what Android is, developer machine setup and the traditional Hello World program. The rest of the first day typically sees us through Activities, Built in Intents, Views & Layouts and List Activity.

Residency Hotel tried their level best to put us to sleep during the afternoon by giving us a sumptuous lunch and like a strict school teacher, I made sure that the participants were getting none of their afternoon sleep by giving them hands on exercises.

The second day kicked off with Menus, Dialogs and various persistence options like Files, Shared Preferences and SQLite database support in Android. The afternoon started off with Networking, Maps and GPS and then a complete Android application called Quotes.

The session that I enjoy most is to show how to build the APK, show the Android Marketplace and demonstrate how ridiculously easy it is to publish your Application to the marketplace. We also play a little game in which the APKs are submitted on a first come first served basis to see which participants APK gets through successfully first.

The few things that I changed in this workshop were:

  • Clear labels in the applications telling what we are going to see next.
  • A New Example on combining GPS and Maps together.
  • Introduction of NodeJS in the Android Networking section. More on that in a later paragraph.
  • Cleaned up the UI in various sample code.
  • Updates to some of the hands on exercises.

Just to note, every participant gets the slides, roughly 20 odd Do-It-Yourself hands on exercises, all source code for the sample applications and the hands on exercises.

One of the important new introduction that I introduced in this workshop was the use of NodeJS in the session on Networking. NodeJS has been a neat way to setup a server locally for the participants to try out Android networking examples without the need to go outside the network to a web service. What I have done is to stub out the Networking calls with the correct JSON responses and simple run NodeJS on the local participant laptops. This saves a lot of time and everyone learns about NodeJS too. I will cover more on my usage of NodeJS in another blog post. In short, no more explaining Tomcat, web apps and stuff like to setup a local server. Simply whip up some Javascript, stub the response JSON and node your way to local services nirvana.

I have become a bit superstitious with my Workshops and wear a cute little Android pin on both the days. The Android pins are shown below and they are quite a hit with all the participants. I wear the formal Android on Saturday and the beach wear Android on Sunday.

One of the questions that I always get asked is where I got these lovely pins from? The Android pins were sent by my dear friend from France, Jerome Baton. Jerome is a passionate Java developer. He did the technical review of two great books on Android that I highly recommend and refer to constantly : Android in Action and Android in Practice from Manning Books. Thank you Jerome for the pins and for all the conversations on programming we have been having over the last few years.

This is the 6th batch that we have conducted in the last 4 months and every batch has given me great inputs in terms of the topics that they would like to see more of. With that in mind, I am happy to inform everyone that I have several topics that I have identified for an Advanced Course in Android, which is a followup to this course. Participants who have attended my introductory 2-Day workshop and even developers who have a basic knowledge of Android programming will benefit from this new course. The new course will delve into areas like Services, Broadcast Receivers, Widgets, Content Providers, Sensors and some UI related topics. The topics are still open for discussion and it might end up being a 1-day or a 2-day course. Stay tuned for more details.

I would also like to announce a piece of good news at this blog. We have been conducting this course in Mumbai, which is where we live and work. We are soon going international and are going to conduct the 2-Day Android Developer Workshop in Dubai in February. I am extremely excited to take this workshop across the Arabian sea. Thank you everyone for attending the workshop and helping me take it to the next level.

The feedback as with earlier workshops has been great. These 6 workshops have now provided me with enough gotchas that beginner Android programmers face while dealing with Java, Android SDK and the Eclipse tools. I plan to publish a series of articles where I will present those findings and solutions. Keep track of my blog.

We are going to conduct the same workshop in Mumbai in February too. The dates are not finalized and I would recommend to let us know if you would like to join the course. The batch is limited to 10 only. Please visit the 2-Day Android Workshop page and write to us indicating your interest.

The Mind Storm Android training has started well in January 2012. We thank all those who have been part of this workshop. Stay tuned for much more.

Yet another edition of Mind Storm Software’s Android Developer Workshop was successfully conducted last week, on January 7 & 8, 2012. We have continued to build on the terrific interest that developers have shown in this workshop and we hope to take it to new heights this year.

The venue for the 2-Day Android Workshop was our trusted place, The Residency Hotel in Mumbai. As always they were precision like in their planning and in fact upgraded us to much larger rooms this time around. The pictures of the training rooms before the action started are shown below:

We had a batch of 12 participants this time (the largest so far). There was a mix of experienced and junior developers. Their expertise ranged from Java, .NET, various Web technologies and some of them were even well versed with mobile programming (We had a PhoneGap pro and a Symbian, Windows Mango programmer also in our group). It is very encouraging to see that despite the varied backgrounds, all of them wanted to learn more about Android programming in general. The icing on the cake this time around was that several participants had their own mobile phone and the sheer delight of seeing your own code work on the physical devices is an experience in itself.

We kicked off Day 1 with the usual introduction to Android. I try my best not to be a spokesperson for Android or Google, since the manufacturers have done the Android marketing blitzkrieg in all forms of media. The first half is always a bit tense so as to make sure that we setup the Android Dev Environment – Eclipse IDE, JDK, Android Eclipse plugin, Android SDK 2.2 & 2.3 and so on. With a little hiccup or two, we were well on our way.

The day proceeded then with the traditional “Hello World” in Android, then Activities, Built In Intents / Explicit Intents, Views/Layouts and List Activity. The Hotel stuff tried their best to keep us all asleep in the afternoon with a decent spread of lunch dishes but I guess we survived the lunch, the afternoon and Android Layouts, to make it through the first day. Not a bad achievement for day 1.

The next day kicked off with Android Menus, Alerts, Notifications, Persistence Options (Files, Shared Preferences, Databases before we broke for lunch. Post lunch we started off with Networking, GPS (Location) programming, Google Maps and rounded it off with a study of a complete Famous Quotes application that included most of the building blocks that we covered since day 1.

We rounded off the day with the Android Marketplace, how to package the .APK for distribution and also uploaded and published the application in the Marketplace. The workshop thus focused on not just getting the participant familiar with the tools, Android APIs but also ensure that the last mile i.e. publishing to the marketplace is also covered.

I enjoyed my interaction with the participants. They asked me some tough questions but I believe the exchange was quite healthy in terms of clarifying the issues. I sincerely hope that all of them move way forward in their Android careers and I can see some of their Android applications getting launched in the Marketplace. Here are the future Android superstars:

If you are waiting to get started with your Android Development journey, do not wait any more. We are currently taking in registrations for the next batch that is scheduled for January 21-22, 2012 in Mumbai and we hope to see you there. For more details on the course and registering yourself, visiting the training page. If you want us to conduct this workshop in-house in your organization, feel free to contact us.

My writings for ProgrammableWeb.com are listed below:

November 2011

After iOS, Box.Net Woos Android Developers with 50GB Free Space 11/30/2011
Google Maps Charging Fewer Than 1%, MapQuest 0% 11/29/2011
Box.net Puts Up $2 Million Integration Fund for New Developer Network 11/17/2011
The Curious Case of the Unofficial APIs 11/15/2011
Mobile Local Search Hackathon Goes Down Under 11/10/2011
Google App Engine Goes Out of Preview, Means Serious Business 11/08/2011
Dropbox Woos Developers With New API Release 11/03/2011
Currency Bot Delivers Exchange Rates For Free 11/01/2011

December 2011

Make Your Ancestors Proud With Genealogy Contest 12/19/2011
PostageApp Delivers New Engine, Analytics and Subscriber Plans 12/16/2011
Factual Places Goes Global, Adds Restaurant Attributes 12/15/2011
Yahoo’s the BOSS? Maybe of Developer Search 12/07/2011
Use JavaScript Now to Access Many Google APIs 12/06/2011
With V.me, Visa Aims to Simplify Digital Payments 12/01/2011

This post is a collection of points around the iPhone 4S Pricing and some observations around them, specifically in the Indian context. Its been over a month now that the iPhone 4S was announced in the US but India has been kept waiting for both the hardware and of course, the pricing. India is a price sensitive market and hence there are bound to be reactions (in fact more from people who anyways were never going to buy this phone).

But first the facts. Officially, the low end model of the iPhone will be available at Rs. 44,500 (approx $870 at the current exchange rate of Rs. 51 to a US $). The next set of models, 32GB and 64GB are going to be sold at Rs. 50,900 ($998)and Rs. 57,500 ($1127). Compared to the current prices available at the Apple Store for iPhone 4S , the prices are atleast $200 more.

The most striking part of the price is that the $200 more for each model that I am talking about is for the Unlocked models, whereas in India, it is currently tied to the operator. Similar models with 2-3 year plans in the US are much cheaper. For those who have been following Apple for a while in India, it is not surprising. I do not think that anything has changed so the hue and cry is a bit I must say, not really needed. Every time, a new model comes out, people get most of them from the US or the gray market, get it unlocked and the world goes on.

I would like to classify several categories of users vis-a-vis the iPhone:

1) I love the iPhone: The number of people in India who really care for the iPhone in terms of its iconic status, its design, its path breaking UI features AND who will purchase the phone, no matter what the price is very small in number. This is a different segment and increasing at a small but steady pace. I do not have any numbers to back my claims but it is based on keeping my eyes open as I meet people everyday.

2) I develop for the iPhone : The other segment is that of the Companies who do iPhone development will get it anyways for themselves, no matter what the price since you can recover the costs easily in your first project itself .

3) I wish my company gave me the iPhone instead of the Blackberry : Here I am talking about the Enterprise users, who secretly and badly wish that their company breaks the shackles and goes with the iPhone/iPad.

4) Everyone Else: Here I am clubbing together the following: users who want to buy it for the first time, iPhone haters, Apple haters, “Android is going to fucking rule this world” fans, the Press, those who cannot afford the iPhone or do not see a need for it. Hopefully I have covered all but you can add them if I missed.

So does all this mean that the iPhone is doomed in India and that it is never going to see the upswing? That is exactly what most people are saying (or should I say reacting!) but I have a different point on all of this and it pertains to point (3) above. And here it goes:

1) Apple has validated this great product of theirs in the biggest consumer markets of the world. No one can dispute that.

2) The next battleground is that of the Enterprise users. We all know where Blackberry is heading to and it does not make for great reading the way that they are stumbling in delivering new models.

3) The situation is ripe for either Apple or Android to come in and take this pie that Blackberry assumed was theirs for a long time to come.

4) Given the fragmentation in the Android market, it is going to be a nightmare for any IT head of an Enterprise to make a decision on which vendor and model of Android to go with. Mind  you, this is not a consumer sort of a thing, where the decision rests with an individual, his buying power, his choice. We are talking here about Enterprises where thousands if not hundreds of devices have to be purchased.

5) The Pricing of the Apple iPhone therefore to me looks absolutely fine when it comes to Enterprises, who are debating to equip their executives with iPhone instead of the Blackberry. If you have any doubt if this is just a pipe dream, stop dreaming and read this. Just look at the numbers. The trend has already begun and I do not see why Indian corporates will not adopt this phone. All it needs at times is someone to make that first step and then the herd mentality will take over.

So in summary, if you are unhappy about the iPhone pricing — a) Chances are you were never going to buy the iPhone anyways b) The iPhone was always at the high end of pricing c) Apple, in my opinion, wants to court the Enterprise market not the consumer market.

You can say that I do not back up any of this with numbers. But if numbers were the only thing in the world, Apple should not have even contemplated making a music player a decade back.

I’d love to hear what you think about this? Let us keep the talk on pricing and if you see the iPhone making inroads into the Enterprise segment in India.

P.S:

1) I do not own an iPhone. I own an Android Phone and I teach Android. I am bullish on Android. And I am glad that there is the iPhone in the market, competition and choice is very important for us to move forward.

2) By the way, I did not talk about security in the Enterprise. This one line is all that it deserves.

My writings for ProgrammableWeb.com are listed below:

June 2011

Twitter Direct Message Enforcement Deadline This Week 06/28/2011
“Hack For Change” Produces Neighborly Results 06/28/2011
Hoover’s Declares “Ideas” Winners and Opens Contest to All 06/24/2011
Web Miners Grab Their Programming Picks for Bay Area Hack Day 06/22/2011
Release-Happy Google App Engine Automatically Geolocates Users, Adds Features 06/22/2011
New Version Gives Users Insight Into Kynetx Browser Mashups 06/09/2011
Mashup Merges Twitter and O’Reilly Books to Win Contest 06/03/2011

July 2011

Winning Springer Contest Apps Make Research Easier 07/29/2011
Always an Eye on Performance, Google Adds Partial Responses to Some APIs 07/28/2011
TradeKing Invites Students to $100,000 API Campus Challenge 07/27/2011
Mobile App Hackathon in the Bay Area on August 6 07/26/2011
The Unofficial Google Plus API–Wait, Which One? 07/18/2011
New Monthly Contest Gives $5,000 to Best 4shared App 07/15/2011
Auto Contact Updater Wins Rainmaker Identity API Contest 07/13/2011
API Hackday Hits Portland July 30 07/11/2011
YouTube Create: Now Any App Can Add Videos 07/08/2011
Yahoo Search BOSS API V2 is Paid, V1 Gone in Two Weeks 07/07/2011
Plug to be Pulled on Google Health and PowerMeter 07/06/2011
TextBook Exchange Bags Top Honors in Alibris API Contest 07/06/2011
India’s Individual Identification Project Adds API 07/04/2011

August 2011

Google Translate API is Back… For a Fee 08/29/2011
Stack Exchange API: the Good and the Bad 08/22/2011
InfiniteGraph Wants You to Connect the Dots and Win Big Prizes 08/19/2011
Wow The World With Your Vision in the Layar Creation Challenge 08/16/2011
HAPI Hack Happening This Weekend in San Francisco 08/10/2011
Mopper Mops Up Top Prize In Paypal Challenge 08/09/2011
Be a Lord of the Domains with the DomainTools API 08/05/2011
Apps for the Environment: Mr. Dev Goes to Washington 08/04/2011
Google App Engine Builds Steam, Updates Datastores and Task Queues 08/04/2011

September 2011

Add Voice to Your Social Data via QWiPS 09/28/2011
File-sharing Mashup Gets Incubated at Yahoo After Hack Event 09/27/2011
API Mashup Contest Looking for Central Europe Ideas 09/21/2011
Tokbox Adds Live Video Archiving, Announces Pricing 09/19/2011
Foursquare Global Hackathon: 100+ Cities, One Championship Belt 09/15/2011
Samsung Still Wants to “Free the TV,” Offering $225,000 09/14/2011
Google App Engine Adjusts Price Changes After Developer Outcry 09/13/2011
Google Maps for Flash Among Several Axed Google APIs 09/06/2011
OfficeDrop boosts PaperPort with Device to Cloud API 09/05/2011
Google App Engine Pricing Makes Developers Steam and Sputter 09/01/2011

October 2011

Layar Winners Display Augmented Reality Commerce 10/25/2011
Google App Engine Adds Premier Accounts and New Features 10/20/2011
Personalization Twist on Daily Deals Among RapLeaf Fund Recipients 10/19/2011
Contest Promotes Another Kind of Family Planning 10/18/2011
8coupons Now Aggregates 500+ Coupon Sources, Releases New API 10/12/2011
Google Plus Now Part of Topsy’s Real-time Search Index 10/11/2011
Accounting iOS App Wins File Storage Developer Challenge 10/04/2011

Have you ever been in the middle of a call and found out that you need to look up some information on the phone? This could be an Address Book or some data that is residing in another application on the phone? Chances are almost 100% that you have done that. The problem with this scenario is that, you need to keep the person on the hold and then try finding out the information and then either say it on the phone or tell the user that you will be sending that information right away after you disconnect the phone.

Nothing wrong in the above scenario, just that you always wish that it is simpler and more contextual so that you can not just fulfill that need in the middle of the call but also maybe engage with the other person in exchanging some notes or any other kind of collaboration, all while the phone call is still on. The bottom line is, use all the capabilities of the Smart phone i.e. Location, Screen Size, Graphics, collaboration, network, etc. all while you are on the call.

Today, most mobile operating systems provide enough hooks to the developer to tap into an incoming or outgoing call and then do something about it. This has given rise to applications that can provide you more information on who is calling or apps that can log all the data and so on. This class of applications are useful in their own right but are not a natural fit to the general collaborative nature of a phone call. To think about it in more simple terms, a phone call between two people is to get some information to and fro, so it is important to meet that objective.

If  you own a Smartphone, you need to take a serious look at Thrutu. I will quote from their website what this application does. “Thrutu™ lets you share all kinds of information and media while you’re on a call — at the touch of a button, and without disrupting the conversation.” All this happens when you are in the middle of the call. An ideal scenario is when both the parties, the caller and the recipient have Thrutu installed on the Phone.

Look at some of the things that one can do with Thrutu, while the phone call is ON:

  • Location : See each other on the Map in real time, while the conversation is on.
  • Photo : Take a photo and share it instantly.
  • Contacts : Share contact information within the call
and many more. Thrutu can even function when the other party does not have Thrutu installed on the phone. In that case, you can share the information via SMS. Take a look at this video. And as a lady mentions in the video, “Are there any more excuses?” :-)

Thrutu is actually making some sort of a platform play here by giving a framework to developers to develop Thrutu extensions themselves. If you are a developer, go ahead and download their SDKs that allow you to build out your dream extension that can enhance a phone call. Developers have taken the lead and the results are there for all to see in the Thrutu Gallery.

Recently, Thrutu held a Developer Contest where it invited developers to develop Thrutu extensions. The winners of the contest had terrific entries. The 1st prize went to DropThru, that actually allows you to share files present on dropbox or the phones SD Card, right in the middle of the call. What a great idea and definitely a use case that is so common. Imagine how many times have you got a call from someone saying “Hey! Can you share that file with me that has XYZ information”. Now do all that inside of a phone call and confirm if the other end got the file, all looks good, before hanging up. Definitely a big boost to productivity. Yours truly participated in the contest and did submit one of the entries, called Thrutu Notes.

Give Thrutu a try. The use case is so familiar with anyone using a phone that you would definitely be able to connect with it. And if you have some ideas for a Thrutu extension that you do not yet see, I would love to hear about it.

Adobe has announced that it will no longer continue to develop the Flash Plugin available in Mobile Browsers, available on devices running for e.g. the Android OS. The fact that Adobe has made several moves recently to show its public acceptance of HTML5 is a known fact, but it did come as a surprise to what they decided to cut down on. I am as good or bad as anyone at reading the future, but I think this move definitely is a rude wake up call for folks delivering websites running Flash.

A Brief History

To begin with, I took on the task of learning Adobe Flex and related technologies in and around 2005, and did a good amount of work with it. I liked their development tools and for what we were developing then, they were the numero uno tools after we evaluated multiple other platforms. Ofcourse all of this was delivered ultimately to the user via the browser and so the Flash Player plugin in the browser was a key part of the runtime environment. We had some heartache at times in ensuring that everyone ran the right Flash Player plugin in the browser but since we were deploying in mostly controlled enterprise environments, it was not really a problem barring a machine or two that needed to get its act together in terms of the software installed on it.

Along came HTML5

HTML5 came along in my development career a few years back and I haven’t looked back since. With every passing day, it became clear that the browser had finally arrived with solid APIs that could be used to deliver a majority of apps that probably I might have used Flex for. And seriously, it was all about the 80-20 principle. If I could do the same with HTML5 Related technologies for a majority of applications, I found the need to use Flex less and less. The Flash Player is a mighty capable engine and while I do not know the internals of it, it is suffice to say that certain kinds of applications would definitely benefit being within the Flash Player to take advantage of it, but since I was not in that space i.e. gaming or graphics stuff, it mattered less to me.

Brothers in Arms

But what I did not have any doubt about and which HTML5 enthusiasts should acknowledge is the fact that HTML5 needed Flash to be there to make its progress. Flash over a decade or more of its existence till now has played a big role in ensuring that applications are delivered within the browser and its role in ensuring that the browser is the application delivery mechanism cannot be undervalued. So, I always thought that it would result in a good healthy contest between HTML5 and Flash Player to keep pushing the limits and thereby hastening the need for HTML5 to build features faster. One of the HTML5 guiding principles is a “World without Plugins” and if it had to meet that, it had to deliver most, if not all features that Flash Player plugin provides.

The future is staring at us or is it the other way?

The future is already onto us and it is clear that the web will be the delivery mechanism for most applications. And the browser will be the center piece of that all, atleast for web applications. It is also apparent that people are going to rely less on a desktop and more on various devices (phones, tablets and what not) to access the web. I do not want to get into the debate of Native v/s Mobile Web applications, but it is given that Mobile Web applications will constitute a huge percentage in the coming numbers, if not completely overwhelm native applications in terms of percentage. And that brings me to the question as to what would be the reason to abandoning the plugin for a device browser v/s continuing development for the plugin for a desktop? If trends are any indication, the desktops/laptops should see a percentage fall while accessing the internet from devices keep increasing.

Conclusion

Given all this, it seems that if you are writing Web applications that are to be delivered to a variety of devices (and by the way, you need to make sure you do, because users are demanding that they access your application and it function well via a Desktop, Phone or Tablet) and if you are using or contemplating using Flash to be delivered within the browser, probably it is not a prudent choice from a long term perspective. If the company with all the firepower of its product is not committing to this runtime within the browser, then why should developers jeopardize their chances of maximizing their application reach with such a technology choice.

I think the clock is ticking now. Till date, I took a very balanced view that one must use right technology depending on the need of the application. Maybe it is time now to at least inform the client that it is important to make sure that the stuff works fine in browsers over the next few years and maybe you might want to do away with dependence on the Flash Player as soon as you can. Its time to move on and concentrate solely on creating the next set of great experiences/applications inside your browser and with a plugin free paradigm.

I look forward to comments.

P.S: Looks like Microsoft is also following suit and wants to retire the Silverlight Plugin.

The Mind Storm Android Developer Workshop is going strong. We held our second workshop on Android Training last weekend. The venue was the same as last time, Residency Hotel and the 2-Day Developer Workshop was held on October 8-9, 2011.

The goal of the Developer Workshop is to get any interested developer get started with Android programming. It is geared towards both newbies and experienced developers who would like to learn what it takes to get started with programming their first Android applications.

We had an interesting mix of participants this time. 8 of them were Engineering students while the rest of them were professionals working in the software industry. All of them had a clear goal in mind and that was to demystify what Android meant as a developer and get them started with their first steps in Android Development.

We received some good feedback from the first workshop that we held in September and based on how participants received some of the topics; I had made small changes to the curriculum to keep it relevant to the audience and also to fit the material within 2 days. The material that we have is among the most comprehensive, nearly 200 slides with numerous hands on exercises (both to be tried during the two days and some more for homework) for the participants to try out throughout the course of the Workshop.

The first half of the first day also comes with some surprises and stress. The main task that we need to do is to make sure that all the participant machines are setup with Android Developer Tools. This involves setting up Java, Eclipse, Android SDK and the Android Eclipse Plugins. Our last workshop taught us a lesson that it does not harm to carry an extra laptop or two to cater to a scenario where one of the participants’ laptop does not take too well to the new software. The extra laptop turned out to be handy. Once the machines were setup with software, we follow tradition typically and take the participants through the Hello World program. My repeated experiences with numerous developers that I have trained till now in Android tells me that the Android team needs to seriously look at improving the Android Virtual Device performance as much as they can. They have been doing a good job across the releases but the earlier some of its quirks like start up time, occasional freezes are taken care of , the newbie Android programmers will feel much comfortable.

Next up was understanding Activities, Passing Data to Activities, Built In Android Intents like Web Browsing, Calling Phone Numbers, SMS and Email Programs were covered next. We then took up Views, Layouts and rounded up the day with an introduction of ListActivity.

The second day took off with Menus and various persistence options like Files, SharedPreferences and Databases. That was enough in the morning to break for some sumptuous lunch that was served by the Hotel. The afternoon began with an introduction to Location Based programming, Google Maps and then a 2hr+ session on attempting to build a complete Android Application, which was then rounded out with how to publish your application to the Android marketplace. While the participants completed parts of the whole Android application, the main thing that I hope all of them took away from the experience was that Android Development is no longer a mystery to them and hopefully the training has been a launching pad for them to take off in their Android journey.

The queries raised by all the participants kept me on my toes. Residency Hotel, located in Andheri, Mumbai — once again did a great job in terms of logistics. It definitely makes our task much easier and lets us focus on delivering great Android content. It was good to see the Hotel buzzing with various other conferences/workshops that were going on in the weekend.

If you are interested in signing up for the Android Developer Course, do not wait anymore. Please visit the detail page and get going. 2 dates have been announced in November. We also encourage organizations to call us to conduct corporate trainings for their team within their own premises.

The first 2-day Android Developer Workshop was held this weekend on September 24 and 25 in Mumbai. The venue was the Residency Hotel in Mumbai.

The agenda was to impart Android Development knowledge in 2 days flat and push the participants onwards in their Android journey. The full details of the course are available over here.

The Mind Storm Army i.e. me and Devyani Irani, reached the venue more than an hour in advance. This was our first experience organizing a small conference anywhere and we were delighted to find that the conference room was well setup and the technician came along promptly with the slide projector and WIFI password. More on our great experience with the hotel staff later in this post.

We quickly setup the banner, which you can see below, distributed the complimentary file folders, notepads and pens and everything looked well set.



The training room pictured below… almost like the calm before the storm.

The task at hand was challenging since the participants (a total of 10 developers) had different backgrounds and years of software development experience. In fact, we were delighted to have amongst us a batch of 3 Engineering students (average age 18 years) who were excited to learn more about Android. On a serious note, a batch of interested and curious folks is all I need to get my energy levels up and start talking.

In summary, this is what we planned to cover in the 2-days:

  • A total of 216 Slides
  • 18 Hands On Exercises
  • 40 Odd Eclipse Projects demonstrating Android APIs and Framework

And we had about 15 hours, give and take a few. To see all the topics that we cover, you can visit the details page.

First Day

We did expect a small delay on the first day since it is never an easy task to find a new place in Mumbai the first time. But we shot off the blocks and were soon discussing “What is Android?”. One of the immediate challenges was to make sure that all the participant laptops were setup with the latest Java, Android, Eclipse and other related tools. I had packaged all the goodies on a pen drive and distributed that to the participants to make it as painless as possible. We faced some issues on a couple of machines due to some quirky things like space in a directory name and another scenario where there was a Mac Machine with a Windows VM, but we overcame all of them and within no time everyone was fully loaded with their Android arsenal. “Bring on the Apps” was the cry from that time on.

Why mess around with tradition when it has worked so beautifully so far? I am talking about the good old “Hello World” program. And we did exactly that in the next session. The world of Android Virtual Devices (AVD) soon became the lingo of the batch with esoteric terms like API Level 10 too slapped onto the minds of the participants. The day progressed well with the workhorse of Android programming, the powerful “Activity” and then on to Multiple activities, the Views, Layouts, List Activities and Menu Options.

With coverage of the above topics, it was a good way to end the first day. One could almost sense the feeling that the participants no longer viewed Android as something that was “so near yet so far” but more like Bob the Builder, who sings “Yes, We Can!”

Second Day

We kicked off the second morning with Notifications. It was almost a poetic way of starting the day, just like as humans greet each other in the morning. We got through Dialogs, Status Bar Notifications and then moved to a critical area of Persistence. We spent the morning till lunch with Files, Shared Preferences and SQLite databases in Android. After the lunch break, we tackled Networking, GPS and Maps.

Finally we dived into key topics like Publishing your App for the marketplace, Localization and a complete Android Application that demonstrated the concepts that we had learnt in the two days.

In Summary

I would like to thank the participants for being bold enough to be a part of my first batch. This memory will remain with me for a long time to come. Thank you for asking questions, keeping me on my toes and having loads of patience when we faced a few hiccups during installation and running of samples on certain machines.

We got some good feedback from the participants about the training. I believe it turned out well for everyone and I only hope that they will move on to greater things in Android. What I particularly liked about the feedback were topics that the participants would like to see more of and/or possibly learn next. It shows that they are already onto Android and are not afraid to say what they want next. I sincerely look forward to incorporating these topics into future trainings or even launch a different course that can be classified as an “Intermediate” Android course.

Our venue, The Residency Hotel did a fabulous job. They literally took the pain of organizing a conference away from us and made us look like seasoned veterans on the conference scene. The staff were prompt, courteous and knew what they were doing. The food was great and I had to work extra hard in the afternoon to make sure that the Android material that I covered was better than the food.

The Future

Our next batch is scheduled to be held on October 8-9 at the Residency Hotel again in Mumbai. And….drum roll please ….. it is full.

Two additional batches have been announced in November. Do check them out and register soon to reserve your seat for a great Android learning experience.

The dates are:

  • November 12 & 13, 2011
  • November 26 & 27, 2011
The cost for the course is just Rs. 3000/-. We believe it is the most comprehensive Introductory Android Development Training that you can get at this price, anywhere in the World ! Ask our participants.

If you prefer that I come to your organization and deliver the training, drop me a line. So what are you waiting for? Get started on “Learning Android” now.

 

This blog post was original published at the following URL : http://www.xoriant.com/blog/cloud-computing-for-isvs/cloud-computing-the-definition.html

Cloud Computing now finds a way through most technical discussions. Irrespective of the medium (Web Search, Twitter, Online Journals), you will find Cloud Computing being discussed. But ask anyone the definition of Cloud Computing and you will be hard pressed to get two exact definitions from different people.

Some define it as servers available for rent to storage or applications that we access from the browser, etc. All of them are right in ways. But is there a definition that describes the essence of Cloud Computing. While there might be various definitions of that, we shall look at one of the definitions of Cloud Computing in this blog post. It is known as the 5-3-4 Formula.

The 5-3-4 Formula is further broken down into the following:

5 key characteristics

The key characteristics are:

  • On Demand Self Service: As the application owner, you should be able to provision additional computational resources for your application, look up reports and perform Administration tasks without requiring human intervention. Cloud vendors are now providing monitoring and provisioning tools where the user is in full control of provisioning things.
  • Ubiquitous Network Access: We are living in a world where a desktop and laptop computer is not the only way that people access the Internet. Mobile device access is increasingly becoming a major source of traffic to your application. And it is not just mobile devices but devices fitted in vehicles and even our Televisions that are accessing the Internet. These explosion of device types and various networks around the world brings to the important concept of “ubiquity”. It means that no matter from what device or network , one should be able to reach your application via the public cloud networks. And this access is the cornerstone of cloud computing. Always available and from anywhere.
  • Location Independent Resource Pooling: This feature is key to providing your additional resources. As a consumer one should not be worried about how the cloud allocates additional servers, takes care of multi-tenancy and allocation of physical and virtual servers in different geographical locations to meet your demand. Location Independent Resource Pooling is the ability of the Cloud to do exactly that.
  • Elasticity: If you have released any online web application you can now look back and see those days where the number of hits to your sites peaked due to a new release or a press announcement. There will be spikes in user activity and you cannot scramble around for additional hardware when that happens. Cloud Computing addresses this through Elasticity. What it means is that the Cloud Vendors will automatically allocate you more resources as your application needs it. Extra Servers, more memory, more storage, etc will be available to your application if the need arises.
  • Pay per Use: This is one of the key characteristics and one of the reasons for cloud computing gaining acceptance. Just like you can seldom predict your peak usage, it is important that you pay only for the amount of resources that you use. Cloud Computing vendors have various schemes starting with freemiums and then tiered pricing that clearly specify the quotas that are available based on what they charge you. At any point in time, you can switch between plans and allow for extra charging depending on additional resources that your application might use.

3 delivery models

Cloud Computing is typically delivered in 3 models and each one builds on the other

  • IaaS : Infrastructure as a Service. This layer is about providing processing power (CPU cycles), storage, bandwidth, networks and other infrastructural resources. Some of the key players over here are Amazon Web Services (AWS) , Rackspace and others.
  • PaaS: Platform as a Service. This layer builds on top of the IaaS layer and provides a developer with a complete stack on which to build applications. The stack comprises APIs that abstract out the low level details and allow the developer to quickly use them to build out the application. The key players in this space are Google (Google App Engine), Microsoft (Azure), Sales Force (force.com) and recent entrants like CloudFoundry from VmWare.
  • SaaS: Software as a Service. In simple terms, these are ready made applications that you can use either for free or a fee. You simply need to sign up, optionally pay and login to use the software. Examples of this include SalesForce (CRM), Gmail, Google Apps, etc.

4 deployment models

The 4 deployment models available are given below:

  • Public
  • Private
  • Hybrid
  • Community

Typically, the public cloud is what is best known to most of us. While classification does exist for other types like private, hybrid (mix of public/private) and community – they are not that prevalent and no clear classification exists. So for all practical purposes, when we refer to the cloud, it is public and with appropriate authentication and access control mechanisms built in.

So the next time, someone asks you to define “Cloud Computing”, you can simply say “5-3-4”.

© 2012 iRomin Suffusion theme by Sayontan Sinha