(In this article, Nina Mukherji profiles Harshad Oak, who is very active in the tech community in Pune, who has done many things rather different from what most software technologists usually do, and who has started a number of interesting initiatives. Specifically, we would like to draw our readers’ attention to the TechNoProfits initiative, and his work with the Andhashraddha Nirmulan Samiti, which, we hope, at least some of our readers will get involved with.)
Harshad Oak has always chosen the road less travelled. After completing Computer Management in 2001 he worked for IT firms like I-flex & Cognizant for about two years. But he’d always felt a strong urge to venture out and do something on his own. He wrote tech based articles for many newspapers and magazines and even managed to get a number of certifications under his belt.
Harshad then decided to quit his job and set up Rightrix Solutions, a software development firm. By this time, he had also authored a few books on Java and Oracle. This gave him additional credibility and helped him land some good projects for his newly set up firm.
He was invited to participate and speak at various technology conferences abroad. This made him realize the criticality of having such forums in India – such independent conferences were non-existent till then. So with zero experience in the field, he launched the first Annual IndicThreads Conference on Java in 2006. After that they have had many more conferences in the different areas like Mobile Application Development, Upcoming Technology & Software Quality.
Now Rightrix does IT research and advisory services, software outsourcing services, technology portal (IndicThreads), 4 different and technology conferences every year.
Another recent initiative on his part has been starting TechnoProfits – a non-profit entity dedicated to connecting software professionals and NGOs. TechnoProfits enables volunteers to make a positive contribution to society and also come out feeling enriched from the experience. Harshad believes that technology today can connect and enhance lives like never before. “However, most non-profit organisations use no technology beyond making calls from a cell phone. The overwhelming majority of organizations run on passion & dedication but no technology” says Harshad. Please register as a volunteer.
Being of an analytical and rational mind, Harshad abhors superstitious and credulous behaviour. That a ring or pendant will ensure success or modifying their homes so that a bathroom faces X direction will end marital disputes were beliefs that left Harshad feeling frustrated and irritated. “A bathroom door can affect my health only if I accidentally bang into it” he jokes. But this was a serious matter to him and he decided to do something about it.
He started working with Andhashraddha Nirmoolan Samiti (ANiS) a 20 year old organisation. Though they have done remarkable work in Maharashtra towards eradicating blind faith and promoting scientific temperament amongst the youth, Harshad believes that technology awareness is very low. “At the recent ANiS 20 year anniversary event, more than a thousand people from all over Maharashtra turned up, but I probably was the only one using the web and writing about the event on my smartphone. I have been pushing for some kind of an Internet awareness workshop so that the ANiS team can not only leverage the net to reach more people but also be able to convey it’s point of view swiftly and accurately” says Harshad
In order to address this need, TechnoProfits is conducting an Internet Awareness Workshop for ANiS this Saturday the 19th of February (1-5 pm). The topics for the workshop include Internet Basics, Search, Email, Chat, Facebook, Twitter, Blogging, Using Indian languages Online, and How to make best use of the Internet for social work. Harshad told me: “While the workshop is planned for ANiS, anyone else wishing to use this learning for social good is most welcome”
(You can get in touch with Harshad by emailing harshad aT rightrix doT com)
The good folks at IndicThreads, Harshad Oak and Sangeeta Oak, organized the IndicMobile conference. The venue and arrangements were very good and the set of speakers top notch. The choice of topics was varied enough to be comprehensive and yet very relevant and amenable for deep enough dives. Overall, a great interaction and learning opportunity that I and my colleagues enjoyed. I also enjoyed live tweeting along with Saurabh, PuneLive, Mukund, Vishvesh. Here are my notes from the conference. They are longish, but then it was a two day affair, and I have tried to be brief.
Anand Deshpande, Persistent, Keynote Address
As expected, there was deeply thought out articulation from Anand on the future of the software space. Mobile + cloud is ‘it’, he said. Economic sense is driving everything on the cloud and that, combined with the all pervasive mobile technology will rewrite the software world, as we develop and use it today. He referred to the Harvard Business Review C.K. Pralhad and R. A. Mashelkar paper and pondered that more will be made available for less, for the many – elucidiating Gandhian principles. He made a core point about the data being separated from the App.
I like Anand’s ‘cows and milk’ analogy: focus on milk, why care about tending cows ? Applied to software, focus on developing and using software (App), not building the cloud. But – to take the analogy further – what control one has on chemically adulterated milk ? Its very difficult to even identify that. And, what about reliability and security and so on on the cloud ? Or is there a business case for the ‘organic software experience’ ? We as software product developers will have to figure it all out.
Rohit Nayak, Cross-platform mobile development: choices and limitations
Nice coverage of cross platform mobile development tools. I didnt know there was no garbage collector on the iPhone while there was one on the desktop. Titanium can be used for building cross compiled native apps on various platforms. It also has a good reference application that can be used to test all kinds of interfaces of the device you are building for, as well as sample code ready to be used. MoSync and PhoneGap were also covered. All three were demoed. He warned that tools can be out of step with device styles and new devices. He also suggested that a mobile web app could be the route of choice for maximum platform coverage. I noticed mere mention of MeeGo, but after all, its too new as of this writing. [See MeeGo related previous post on this blog.
Romin Irani, Mobile Web Applications using HTML5
Hemanth Sharma, Adobe Flash Platform for Mobile Development
Hemanth covered the various Adobe tools. Interestingly, none of the attendees present had developed for the platform so far. He pointed out that while designing for multiple screens, especially small, knowing the screen resolution was not enough and that the physical dimensions, the orientation and pixels-per-inch (PPI) were crucial. Amongst many other things, he mentioned DeviceCentral as a useful tool to test for devices that support flash. While iOS does not support flash, its cool that Adobe has ActionSript3 cross-compilation for iOS – it generates a native iOS application. He demoed real fast development of an app that gets twitter trending topics. His live demo broke by a whisker – must have kicked himself, mentally – he then showed us previously built code. Still cool. I would have loved stats (performance and so on) comparing native apps with similar functionality. All-in-all, a compelling write-once-run-anywhere-on-air story by this Adobe evangelist. Need to seriously evaluate the platform.
Balagopal K S, Deep dive into Application development for Nokia Technology Platforms
Bala had the difficult task of keeping us awake after lunch. He spoke all about the various platforms one can develop for, for Nokia devices, including the Symbian, Maemo and MeeGo. And of course all about Qt. I wasn’t expecting a Nokia representative to pronounce Qt as ‘quetee’. Everyone knows its ‘cute’, pun not intentionally intended 🙂 He revealed that 83% of users downloaded apps rated 4 and 5 (of 5). Shows how crucial it is, to build a high quality app that includes a great user experience. He advised to design for the user, not the technology, and consider the emotional engagement of the user with your app. And some more tidbits and tools and resources. Given that Qt is the development platform of choice on MeeGo, and a lot of Qt development is done in Python, I wonder why C++ is the language of choice for Qt/Meego. Its like going retro, no?
Pradeep Rao and Dilip Sridhar, BlackBerry Development Platform
BlackBerry just released the Torch and that has the BB6 platform. They have tieups with advertisers and an API that developoers can use in their apps. RIM does 60% revenue share with the app developers. BB SuperApps are native apps that are always on and connected, proactive and notification driven, highly contextualised, designed for efficiency in terms of network usage, battery life and so on. The Theme Studio and Theme Builder lets you make themes easily. The Playbook is coming. This platform is one to watch out for. Lately, BlackBerry devices have started delighting more and more number of users, notwithstanding their funny ads, and they have a powerful development platform plus increasing marketshare to entice developers.
Navin Kabra, Understanding the Touch Interface
Have you noticed how, the moment you start discussing something related to design, that hovers closer to art and makes the audience remember their most delightful and very frustrating moments with technology, everyone just tunes up their attention to the level of communion. Holy Photons ! This is exactly what happened in Navin’s session. He declared: “Touch will take over the world”. He made many excellent points, one being that using a mouse is a learned skill while touch comes naturally and that every app developer irrespective of whether he will develop for the mobile platform or not, will need to care about touch, simply because touch based devices will be the most commonly used devices going forward.
Also, a piece of text that is large enough for you to read is not necessarily large enough to touch – you will know this if you browse the web on your touch phone. Touch can be so easy that our spinal cord should be enough to do processing and give our brain some rest – everyone could do with that, I suppose. He showed a very interesting design of a touch keypad that can be used singlehandedly to browse the web because it has most of the frequently used functions on convenience buttons. He also touched upon – pun intended – the problems with touch, user perception of what is good and bad response time, caution of not overdoing it and perhaps most importantly, that developers wanting to design for touch must use a touch only device for a sufficient period of time !
I really liked the mindmap style (including the navigation) for the presentation. Made a mental note to make one this way at the next oppurtunity. Abhinav (an attendee) made an excellent point about designing in such a way that, with all the touch he can get, the user is still able to efficiently ‘blind type’, assuming he also has a physical on-device keyboard at his disposal – touch and type should not go out of sync. Really interactive and great talk on how to design for touch. And some informative follow-on interactions around stylus vs. fingers, resistive and capacitive touches, and handwriting recognition, the Palm (now Access) Graffiti et. al.
I personally feel there is huge potential for handwriting recognition or at least the Graffiti on the mobile platform – too many potential users who know native, local languages are currently ignored and can be empowered to communicate for low costs, in ways that come naturally to them.
Venkata Ratnam V, Introduction to bada platform & Samsung’s multi-platform strategy
Venkata explained Samsungs dual strategy with Bada (means the ocean, and does not have roots in the Hindi ‘baDaa’ i.e. big, as someone said to me) being for the low end devices while the other mobile OSes that they sell devices with, are for the high end devices. Looks like a large set of attendees were Android lovers and didn’t buy the Bada story but Venkata said ‘Dont grudge us our own mobile OS’. Its difficult to argue with that! He also made a wonderful observation: Customer (end users) expectations are very, very high. They want features on the phone that they may not use, but if the device doesn’t have them, they feel its handicapped.
One can develop for Bada with the combination of C++ and Eclipse, plus a web toolkit. There is also a memory leak checker bundled along with the developer toolset. As others, Samsung has a lot of other pieces of the mobile puzzle being put together in their own way. ‘In-App Purchase’ – is this new ubercool feature being bandied about. IIRC, Apple, Nokia, Samsung have it, others will want to catchup. Venkat also made a great point about user psychology – it’s easier to have an app in the store that is installed by the user and which then stays on the device and tends to be used more. This app can then of course use the web as needed. But its very difficult to have the user point his browser to a website from his device. Point to be taken ! Good session by this evangelist: funny slides, cheerful demeanour, solid defence.
Vikram Pendse V, Microsoft Windows Phone 7 Platform
Vikram Pendse’s overview of Win Phone 7 platform, architecture, development tools, demos and quirks was nice. He did a good job of explaining the Microsoft perspective for WP7. MS wants a consistent hardware strategy across vendors: ARMv7 Cortex/Scorpion or better, and decent combination of GPU, memory, display, capacitive touch, and sensors (GPS, accelerometer, proximity). There will be 3 buttons – Start, Search, Back. For developers, there is .NET compact framework and Silverlight. The OS supports ‘prioritised’ (not concurrent) multitasking of Apps. Libraries include cloud integration for Azure. He demoed apps to showcase various capabilities – graphics, app bar, music, UI navigation. As also a profiler. And pretty pictures of devices: Dell Venu Pro, HTC HD7, HTC Surround, LG Quantum, Samsung Focus. And some game screens.
MS story looks sketchy at best, and we tweeters had fun ! So WP7 won’t copy and paste. Surprised ? You shouldn’t. Remember C&P has moved to the iPhone last year?! There is no migration plan for apps written for WinCE 5/6. You gotta rewrite, in a different language! Romin noted: what Android calls “Intents” …. Microsoft calls “Launchers and Choosers”. Saurabh noted that WP7 is a fancy looking toy, but only for end user, developers will have to wait for more support and perfection. I agree – the UI looks really cool for end usage. Vishwesh: MS was dead after WM6.5 and now, with limited support for everything on WP7, they are … a zombie? The marketplace seems to be the weakest (non-existent yet ?) link. Too many restrictions imposed by the OS. The audience was wondering if all MS wanted to sell was under-USD-30 devices! Good fun 🙂
Rohit Ghatol, Getting Started With Android Application Development
Rohit began well. He gave some background on the platform, showed a list of devices in the market and asked: Do I really have to sell Android? The audience didn’t think so anyway. He also was the first person to do a live device demo in the conference. He covered stuff efficiently – Building Blocks of Android (Activity, Service, Content Provider, Broadcast Receiver, Notification Mgr, Alarm Mgr), the Dalvik VM, the DEXs and the APKs. He was swift through building an App and covered lot of details in short time. Froyo (API v8) brings the much needed enterprise security features to Android, while GingerBread and Honeycomb come later to focus on tablet features.Developer.Android.Com is a very well documented site and a great resource to learn at. We also discussed some could-be-better stuff – one is tablet support, another is that Android market does not provide flexible payment options, sometimes you can make more money by making the app free and include Google ads! Rohit had a nice conversational style, good use cases, employed simple stepping through the development process on a well done deck.
I liked this flexible approach. The audience identified pertinent topics for an open discussion and we had scintillating set of discussions on 4 topics. Difficult to capture all learning and speakers, but I hope I’ve got the gist.
Abhinav, Mobile Virtualization: Can we run multiple logical phones on one physical phone ? There are multiple applications. 3 years ago, you ran your PC at 1GHz, today you run your handset at that speed. In terms of device capability, virtualization seems plausible. Clouds will only separate the data from the device. What if you want to use your corporate mobile and your personal mobile on the same physical handset, for convenience ?
Saurabh, OpenGL: Useful for graphics and game development. Optimal use of hardware resources. Common library across platforms, however, support varies across platform. Simple games like ‘Bejeweled’ are being used more over serious games that need a console, simply because they are more available, like while waiting for the doctors appointment.
Vishwesh, Apps for the Indian Market: Firstly, is there an Indian Market? Consumers have to use apps developed for the western market. Where’s the Indian Content ? Pricing is a challenge. Prices are converted from USD to Rupees, needs to be thought differently. Rural market, huge but not addressed. Difficult to monetise. We don’t even SMS in local language yet. Amar Chitra Katha – available on one provider when it needs to be ubiquitious. Cash-On-Delivery is the preferred payment option for Indian Consumers, and this needs to be used for selling Apps. Microfinance has the potential to be in top-ten-app charts, but there aren’t any apps! And then there are too many platforms! Mobile Apps should connect to the physical, real world of the End User. It’s only then that they will be used
Dr.Lavania, Tele-Health: What is the best way to reach 24×7 touch and feel health services to rural areas, given that mobility is the only ubiquitious technology in villages! Apps that degrade from smart to dumb phones are needed. What low cost solution can we have for villages that are ‘over the horizon’ of connectivity?
Anand Hariharan, Performance in Android: Tips and Techniques
“Good Design is the practice of Subtraction” – Mark Anderson from the Good Design blog. Anand suggested we keep performance in mind right when you are desiging the App. Design, Measure, Identify, Improve : thats the mantra he gave us for performance extraction on mobile platforms. Speed, responsiveness, robustness, good behaviour (wrt battery usage and working well with other Apps) – all these done together make an App with good performance. Intensive CPU/battery usage, UI freeze (jankiness), long periods of percieved inactivity, actions that are not cancellable – any of these make an App bad, and it runs the risk of uninstallation from the users device! Apps should be designed to work well over varying net speeds. Recommended practices and style guides of respective platforms are important also for performance aspects. Like on the iPhone, its a good idea to show the image of your App, during startup, while the App loads – this improves user perception on response time. Android has a useful guide called Designing for Performance
Anand had specific advice – dos, donts – for Android apps in particular and Java apps in general. Do lookup his presentation on the conference site, it has a lot of depth and coverage – a handy reference for all developers, I’d say. Fluent talk, and I thought, Holy Photons – worth emulating!
Romin Irani, Power Your Mobile Applications On The Cloud
Romin has written a book on Google App Engine and you can download it for free. GAE is feature rich and free, has enough resources for trying out apps. He did a quick run through basics, and did a live demo – write, test, deploy! Simple, klaar, not cloudy at all. 🙂 You can code in Python or Java. Cloud in general and GAE in particular has great potential for mobile space. You could have the same cloud app serve multiple phone apps or even multiple kinds of clients (thick, thin, remote, local, and so on …). Romin mentioned a handy resource for information on about 15,000+ devices ! Checkout WURFL.
All presentations uploaded to the conference page as the talks got over. Pleasant green behaviour on part of organizers – free saplings were on offer for those who care. See the Press Report in DNA. An intense and thoroughly enjoyable conference with a lot of take-aways for me. Hope you have enjoyed reading about it.
About the Author – Atul Nene
Atul has a Masters in Computer Science from the University of Pune. His areas of interest are Technology in general and Software in particular. He studies Indian classical music, is a nature lover. He builds embedded products and Mobile Applications for the iPhone, Android, Symbian and BlackBerry platforms. Atul was 2008 Employee-of-the-Year at his workplace, and recipient of “Project Management Excellence Award” (for his team) by PMI, Pune Chapter.
Pune’s IndicThreads, which organizes a number of tech conferences in Pune, put out a call for speakers for its next two conferences – their flagship Java conference, whose 5th edition will be held in December 2010, and a new conference on mobile technologies, whose first edition will be in November 2010. The call for speakers for both conferences is still open (until 31st August) and represents a good opportunity for techies in Pune to get visibility for their work, and a chance for networking with like-minded people without having to pay the hefty conference fees.
The annual indicthreads.com java technology conference is Pune’s best and possibly one of India’s finest conferences on matters related to Java technologies. I looked forward to attending the same and was not disappointed a bit.
He has written a fairly detailed post, including overviews of the sessions he attended, which is worth reading.
Here are some other reasons I had given earlier as to why you should apply for a speaker spot. The reasons are still valid today, so I’ll simply cut-n-paste here:
If you’re accepted as a speaker, you get a free pass to the conference.
Become famous: being a speaker at a national conference is good for visibility, and all engineers should strive for visibility. It’s very important. Almost as important as being a good programmer. (Maybe more?)
Help out a good Pune initiative. More submissions will improve the quality of the conference, and having a high quality conference in Pune improves the overall stature of Pune as an emerging IT powerhouse.
And finally, I also said this:
I’m willing to bet that many people reading this will think – but I am not an expert. Not true. If you’ve spend a couple of years working on some specific aspect of testing, chances are that you’ve acquired expertise that you can present and add value to the understanding of others. You don’t have to have done groundbreaking research. Have you adopted a new tool that came out recently? Talk about it, because others will not have experience with its use. Have you used an old tool in a new way? Definitely submit a proposal. The others in this field would love to hear of this new wine in an old bottle.
(Disclaimer: In the past, a couple of times, PuneTech has received a complimentary pass from IndicThreads (sort of a “press pass”) for attending their conferences. There are no strings attached to this – and we try to be objective in our coverage of the conference. As per PuneTech policy, we don’t promote the actual conference on the PuneTech blog, since it’s a paid event, but we do promote the call for speakers, since that’s free, and we do reporting of the event itself whenever possible, since a significant fraction of it ends up highlighting technology work being done in Pune.)
(This is a live-blog of a talk given by Kalpak Shah, at the Indic Threads Conference on Cloud Computing, held in Pune on 20/21 Aug 2010. Since it’s being typed in a hurry, it is not necessarily as coherent and complete as we would like it to be, and also links might be missing.)
Kalpak Shah is the founder and CEO of Clogeny, a company that does consulting & services in cloud computing. His talk is about the various choices available in cloud computing today, and how to go about picking the one that’s right for you.
These are the slides that were used by Kalpak for this talk. Click here if you can’t see the slideshow above.
Kalpak’s definition of a cloud:
If you cannot add a new machine yourself (i.e. without making a phone call or email), then it’s just hosting, not cloud computing
If you cannot pay as you go (i.e. pay per use) it is not cloud computing
If you don’t have APIs which allow integration with the rest of your infrastructure/environment, then it is not a cloud
Kalpak separates out cloud infrastructure into three parts, and gives suggestions on how to choose each:
Infrastructure as a service
Basically allows you to move your local server stuff into the cloud. Examples: Amazon EC2, Terremark vCloud, GoGrid Cloud, Rackspace Cloud
You should check:
Support and Helpdesk. Is it 24×7? Email? Phone?
Hardware and Performance. Not all of them are the same. Amazon EC2 not as good as Terremark.
OS support. Which OS and distributions are supported. Is imaging of server allowed? Is distribution and re-selling of images allowed? Not everybody allows you to save the current state of the server, and restart it later on a different instance.
Software availability and partner network. Example, Symantec has put up their anti-virus software for Windows on EC2. How many such partners are available with the provider you’re interested in? (EC2 is far ahead of everybody else in this area.)
APIs and Ecosystem. What APIs are available and in what languages. Some providers don’t do a good job of providing backward compatibility. Other might not be available in language of your choice. EC2 and Rackspace are the best in this area.
Licensing is a big pain. Open source software is not a problem, but if you want to put licensed applications on the cloud, that is a problem. e.g. IBM Websphere clustering is not available on EC2. Or Windows licenses cannot be migrated from local data center to the cloud.
Other services – How much database storage are you allocated? What backup software/services are available? What monitoring tools? Auto-scaling, load-balancing, messaging.
Kalpak has put up a nice comparison of Amazon AWS, Rackspace, GoGrid and Terremark on the above parameters. You can look at it when the PPT is put up on the IndicThreads conference website in a few days.
Platform as a Service
This gives you a full platform, not just the hardware. You get the development environment, and a server to upload the applications to. Scalability, availability managed by the vendor. But much less flexibility than infrastracture-as-a-service. You are stuck with the programming language that the PaaS supports, and the tools.
For example, Google AppEngine. Which is available only for Python and Java. Or Heroku for Ruby + Rails.
PaaS is targeted towards developers.
Software as a Service
This gives you a consumer facing software that sits in the cloud. You can start using the software directly, or you can extend it a bit. A business layer is provided, so you can customize the processes to suit your business. Good if what is provided fits what you already want. Not good if your needs are rather different from what they have envisoned.
Examples: Sales Force, Google Apps, Box.net, Zoho
Storage as a Service
Instead of storing data on your local disks, store it in the cloud. Lots of consumer adopton, and now enterprise usage is also growing. No management overhead, backups, or disaster recovery to worry about. And pay either flat fees per month, or by the gigabyte.
Examples: Mozy from EMC. Amazon S3. Rackspace CloudFiles. Carbonite. DropBox.
Comparing PaaS and SaaS
Some choices automatically made for you based on development language and available skill sets. Python + Java? Use Google AppEngine. Ruby on Rails? Use Heroku. Microsoft shop? Use Azure.
Other ways to compare are the standard ones: size of vendor and ecosystem maturity. Tools, monitoring, connectors, etc. e.g. AppEngine has a Eclipse plugin, so if your developers are used to Eclipse (and they should be!) then this is very good. Another question to ask is this – will the vendor allow integration with your private cloud? Can you sync your online hosted database with your local database? If yes, that’s great. If not that can be very painful and complicated for you.
Interesting Private Cloud Platforms
These are some interesting private cloud platforms
Eucalyptus: open source IaaS cloud computing platform.
VMWare Cloud: Partnered with Terremark. Expensive but worth it.
Appistry: Allows installing of the platform on Amazon EC2, or in your private data center. Allows application deployment and mgmt, various services across the stack IaaS, PaaS, SaaS. Integration with SQL Azure, SharePoint, Dynamics CRM. Visual Studio development and testing. Supports multiple development languages.
Database in the cloud
You can either do regular relational databases (easy to use, everybody knows them, scaling and performance needs to be managed by you). Or do NoSQL – non-relational databases like SimpleDB (Amazon), Hadoop (Yahoo), BigTable (Google). They’re supported and managed by cloud vendor in some cases. Inherent flexibility and scale. But querying is more difficult and less flexible.
Licensing is a pain, and can make the cloud unattractive if you’re not careful. So figure this one out before you start. SLAs are around 99.9% for most vendors, but lots of fine print. Still evolving and might not meet your standards, especially if you’re an enterprise. Also, if SLA is not being met, vendor will not tell you. You have to complain and only then they might fix it. Overall, this is a grey area.
Pricing is a problem – it keeps changing (e.g. in case of Amazon). So you can have problems estimating it. Or the pricing is at a level that you might not understand. e.g. pricing of 10 cents per million I/O requests. Do you know how many I/Os your app makes? Maybe not.
Compliance might be a problem – your government might not allow your app to be in a different country. Or, for banking industry, there might be security certification required (for the vendor) before the cloud can be reached.
Consider all of these before deciding whether to go to a cloud or not.
IaaS gives you the infrastructure in the cloud. PaaS adds the application framework. SaaS adds a business layer on the top.
Each of these are available as public clouds (that would be somewhere out there on the world wide web), or private clouds that are installed in your data-center. Private is more expensive, more difficult to deploy, but your data is in your premises, you have better (local) connectivity, and have more flexibility. You could also have a hybrid cloud, where some stuff is in-house and some stuff in the public cloud. And if your cloud infrastructure is good enough, you can easily move computation or data back and forth.
About the Speaker – Kalpak Shah
Kalpak Shah is Founder & CEO of Clogeny Technologies Pvt. Ltd. and guides the overall strategic direction of the company. Clogeny is focused on providing services and consultancy in the cloud computing and storage domains. He is passionate about the ground-breaking economics and technology afforded by the cloud computing platforms. He has been working on various cloud platforms including IaaS, PaaS and SaaS vendors.
(This is a live-blog of the Indic Threads Conference on Cloud Computing, that’s being held in Pune. Since it’s being typed in a hurry, it is not necessarily as coherent and complete as we would like it to be, and also links might be missing. Also, this has notes only on selected talks. The less interesting ones have not been captured; nor have the ones I missed because I had to leave early on day 1.)
This is the first instance of what will become IndicThreads’ annual conference on Upcoming Technology – and the theme this time is Cloud Computing. It will be a two day conference and you can look at the schedule here, and the profiles of the speakers here.
Choosing your Cloud Computing Service
The first talk was by Kalpak Shah, the founder and CEO of Clogeny, a company that does consulting & services in cloud computing. He gave a talk about the various choices available in cloud computing today, and how to go about picking the one that’s right for you. He separated out Infrastructure as a Service (IaaS) which gives you the hardware and basic OS in the cloud (e.g.AmazonEC2), then Platform as a Service (PaaS) which gives you an application framework on top of the cloud infrastructure (e.g.Google AppEngine), and finally Software as a Service (SaaS) which also gives you business logic on top of the framework (e.g.SalesForce). He gave the important considerations you need to take into account before choosing the right provider, and the gotchas that will bite you. Finally he talked about the business issues that you need to worry about before you choose to be on the cloud or not. Overall, this was an excellent talk. Nice broad overview, lots of interesting, practical and useful information.
Everybody is jumping on the cloud bandwagon. Do you know how to find your way around in the maze? Image via Wikipedia
The next talk is by Arun Gupta about JavaEE in the cloud. Specifically Java EE 6, which is an extreme makeover from previous versions. It makes it significantly easier to deploy applications in the cloud. It is well integrated with Eclipse, NetBeans and IntelliJ, so overall it is much easier on the developer than the previous versions.
Challenges in moving a desktop software to the cloud
Prabodh Navare of SAS is talking about their experiences with trying to move some of their software products to the cloud. While the idea of a cloud is appealing, there are challenges in moving an existing product to the cloud.
Here are the challenges in moving to a cloud based business model:
Customers are not going to switch unless the cost saving is exceptional. Minor savings are not good enough.
Deployment has to be exceptionally fast
High performance is an expectation. Customers somehow expect that the cloud has unlimited resources. So, if they’re paying for a cloud app, they expect that they can get whatever performance they demand. Hence, auto-scaling is a minimum rquirement.
Linear scaling is an expectation. But this is much easier said than done. Parallelization of tasks is a big pain. Must do lots of in-memory execution. Lots of caching. All of this is difficult.
Latency must be low. Google, facebook respond in a fraction of a second. So, users expect you will to.
If you’re using Linux (i.e. the LAMP stack), then, for achieving some of thees things, you’ll need to use Memcache, Hadoop..
You must code for failure. Failures are common in the cloud (at those scales). And you’re system needs to be designed to seamlessly recover from this.
Is customer lock-in good or bad? General consensus in cloud computing market is that data lock-in is bad. Hence you need to design for data portability.
Pricing: Deciding the price of your cloud based offering is really difficult.
Cost of the service per customer is difficult to judge (shared memory used, support cost, CPU consumed, bandwidth consumed)
In Kalpak’s talk, he pointed this out and one of the inhibitors of cloud computing for business
Customers expect pay-as-you-go. This needs a full-fledged effort to build an appropriate accounting and billing system, and it needs to be grafted into your application
To support pay-as-you-go effectively, you need to design different flavors of the service (platinum, gold, silver). It is possible that this might not be easy to do with your product.
Multi-cloud programming with jCloud
This talk is by Vikas Hazrati, co-founder and “software craftsman” at Inphina.
Lots of people are interested in using the cloud, but one of the things holding them back is cloud vendor lock-in. If one cloud doesn’t work out, they would like to be albe to shift to another. This is difficult.
To fix this problem, a bunch of multi-cloud libraries have been created which abstract out the clouds. Basically they export an API that you can program to, and they have implementations of their API on a bunch of major cloud providers. Examples of such multi-cloud libraries/frameworks are: Fog, Delta, LibCloud, Dasein, jCloud.
These are the things that are different from cloud to cloud:
Key-value store (i.e. the database)
Resumability (can you stop and restart an application)
CDN (content delivery network)
Replication (some clouds have it and some don’t)
Consistency Model (nobody gives transaction semantics; everybody gives slightly different eventual consistency semantics)
APIs like jCloud try to shield you from all the differences in these.
jCloud allows a common API that will work on Amazon, Rackspace, VMWare and a bunch of other cloud vendors. It’s open source, performant, is based on closure, and most importantly, it allows unit testability across clouds. The testability is good because you can test without having to deploy on the cloud.
The abstractions provided by jCloud:
BlobStore (abstracts out key-value storage for: atmos, azure, rackspace, s3)
Compute (abstracts out vcloud, ec2, gogrid, ibmdev, rackspace, rimu)
Provisioning – adding/removing machines, turning them on and off
jCloud does not give 100% portability. It gives “pragmatic” portability. The abstraction works most of the time, but once in a while you can access the underlying provider’s API and do things which are not possible to do using jCloud.
A Lap Around Windows Azure
Windows Azure is Microsoft’s entry in the PaaS arena. Image via Wikipedia
This talk is by Janakiram, a Technical Architect (Cloud) at Microsoft.
Microsoft is the only company that plays in all three layers of the cloud:
IaaS – Microsoft System Center (Windows HyperV). Reliance is setting up a public cloud based on this in India.
PaaS – Windows Azure Platform (AppFabric, SQLAzure)
SaaS – Microsoft Online Services (MSOffice Web Application, MSExchange Online, MSOffice Communications Online, SharePoint Online)
The focus of this talk is the PaaS layer – Azure. Data is stored in SQLAzure, the application is hosted in Windows Azure and AppFabric allows you to connect/synchronize your local applications and data with the cloud. These together form the web operating system known as Azure.
The cloud completely hides the hardware, the scalability, and other details of the implementation from the developer. The only things the cloud exposes are: 1) Compute, 2) Storage, and 3) Management.
The compute service can have two flavors. There’s a “Web Role” is essentially the UI – it shows webpages and interacts with the user – based on IIS7. The “Worker Role” does not have a UI, and is expected to be “background” processes, often long-running, and operate on the storage directly. You can have Java Tomcat, Perl, Python, or whatever you want to run inside of a worker role. They demonstrated wordpress working on Azure – by porting mysql, php, and wordpress to the platform. Bottomline: you can put anything you want in a worker role.
Azure storage exposes a Blob (very much like S3, or any other cloud storage engine). This allows you to dump your data, serialized, to the disk. This can be combined with a CDN service to improve availability and performance. In addition you can use tables for fast read mostly access. And it gives you persistent queues. And finally, you get “Azure Drive”, a way to share raw storage across your apps. And all of this is available via a REST interface (which means that any app, anywhere on the web can access the data – not just .NET apps).
Building an Azure application is no different from designing, developing, debugging, and testing an ASP.NET application. There is a local, simulated cloud interface that allows you to try everything out locally before deploying it to the cloud.
Simone Brunozzi, a Technology Evangelist at Amazon Web Services, is talking about Amazon’s EC2.
AWS has the broadest spectrum of services on offer in the cloud computing space, and the best partner/developer/tools ecosystem. Image via Wikipedia
Overview of Amazon Web Services: Compute(EC2, Elastic MapReduce, AutoScaling), Messaging(SQS, simple notification service), Storage (S3, EBS, import/export), Content Delivery (CloudFront), Monitoring (CloudWatch), Support, Database (SimpleDB, RDBMS), Networking (Virtual Private Cloud, Elastic Load Balancing), Payments & Billing (FPS – flexible payments service), e-Commerce (fws – fulfillment web service, Amazon DevPay), Web Traffic (Alexa Web Information, Alexa Top sites), Workflow (Amazon Mechanical Turk)!! See this link for more
AWS exists in US-West (2 locations), US-East (4 locations), Europe (2 locations), Asia-Pacific (2 locations). It’s architected for redundancy, so you get availability and failover for free.
EC2 essentially gives you virtual servers in the cloud, that can be booted from a disk image. You can choose your instance type from small to extra-large (i.e. how much memory, and CPU speed), and install an image on that machine. You can choose from a lot of pre-configured images (Linux, Solaris, Windows). These are basic OS installs, or more customized versions created by Amazon or the community. You can further customize this as you want, because you obviously, get root/administrator access on this computer. Then you can attach a “disk” to this “computer” – basically get an EBS, which is 1GB to 1TB in size. An EBS device is persistent, and is automatically replicated. If you want even better durability, then snapshot the EBS and store it to S3.
Scaling with EC2: Put an ELB (Elastic Load Balancer) in front of your EC2 instances, and it will automatically load balance across those (and give you a single URL to expose to your users). In addition, ELB does health-checks on the worker instances and removes the ones who are not performing up to the mark. If you use the CloudWatch monitoring service, you can do things like: “if average CPU usage across all my instances is above 80%, then add a new instance, and remove it once average CPU usage drops below 20%.” After this point, adding and removing instances will be fully automated.
It’s important to mention that AWS is very enterprise ready: it has certifications and security (needed for banking apps), SLAs, worldwide ecosystem of service integrators, and other partners. Another enterprise feature: Virtual Private Clouds. Basically, carve out a small area in the Amazon Public cloud which is only accessible through a VPN, and this VPN ends in the enterprise. Hence, nobody else can access that part of the cloud. (Note: this is different from a Private Cloud, which is physically located in the enterprise. Here, it is still physically located somewhere in Amazon’s data-centers, but a VPN is used to restrict access to one enterprise.)
Vikas Hazrati (referenced earlier in this post), is talking about multi-tenancy. How do you give two different customers (or groups of customers) the impression that they are the only ones using a particular instance of a SaaS; but actually you’re using only one installation of the software.
Multi-tenancy is basically when you have a single infrastructure setup (software stack, database, hardware), but you want multiple groups to use it, and each should see a completely isolated/independent view. Basically, for security, one customer group does not want their data to be visible to anybody else. But we don’t want to give each group their own instance of the infrastracture, because that would be too expensive.
Variations on multi-tenancy. Easiest is to not do multi-tenancy – have separate hardware & software. Next step is to have multiple virtual machines on shared hardware. So hardware shared, software is not. If you’re sharing the middleware, you can do the following: 1. Multiple instances of the app on the same OS with independent memory, 2. Multiple instances of the app with shared memory, and 3. True multi-tenancy.
What level do you need to do multi-tenancy at? It could be at any layer: the database of course needs to be separable for different tenants. You can also do it at the business logic layer – so different tenants want different configurations of the business logic. And finally, you could also do this at the presentation logic – different tenants want different look’n’feel and branding.
Multi-tenancy in the database. Need to add a tenant-id to the database schema (and the rest of the schema is the same). A bit customer concern in this is that bugs in queries can result in data-leakage (i.e. a single poorly written query will result in your competitor seeing your sales leads data). This can be a huge problem. A typical SaaS vendor does this: put smaller customers in the same database with tenant-id, but for larger customers, offer them the option of having their data in a separate database.
Multi-tenancy in the cloud. This is really where the cloud shines. Multi-tenancy gives very low costs; especially compared to the non-multi-tenant version (also known as the on-premise version). For example, the cost of multi-tenant JIRA is $10 per month, while the on-premise version is $150 per month (for the same numbers of users).
Multi-tenancy example: SalesForce does a very fine-grained approach. Each user gets his own portion of the database based on primary-key. And there is a validation layer between the app and the database which ensures that all queries have a tenant-id. Fairly fine-grained, and fairly secure. But it is quite complex – lots of design, lots of thinking, lots of testing.
One big problem with multi-tenancy is that of the runaway customers. If a few customers are really using a large share of the resources, then the other customers will suffer. Limiting their resource usage, or moving them elsewhere are both difficult to do.
In general, some providers believe that having each app developer implement multi-tenancy in the app is inefficient. The solution to this is to virtualize the database/storage/other physical resources. In other words, for example, the database exports multiple virtual databases, one per tenant, and the underlying multi-tenant-database handles all the issues of multi-tenancy. Both Amazon’s RDS and Windows SQLAzure provide this service.
Google released the namespaces API for Google AppEngine just a few days back, and that takes a different approach. The multi-tenancy is handled at the highest level of the app, but there’s a very easy way of specifying the tenant-id and everything else is handled by the platform. However, note that multi-tenancy is currently supported only for 3 of their services, and will break if you use one of the others.
Issues in multi-tenancy:
Security: all clients are worried about this
Impact of other clients: customers hogging resources is still not a solved problem
Some customers are willing to pay for a separate instance: and it’s a pain for us to implement and manage
Multi-tenancy forces users to upgrade when the app is upgraded. And many customers don’t want to be upgraded forcefully. To handle this issue, many SaaS providers make new features available only via configuration options, not as a forced upgrade.
Configurations/customizations can only be done upto some level
There is no user acceptance testing. We test, and users have to take it when we make it live.
When should you not use multi-tenancy?
Obviously, when security is a concern. e.g. Google not doing this for government data
High customization and tight integration will make all the advantages of multi-tenancy disappear
SaaS-ifying a traditional application
Chirag Jog, CTO at Clogeny Technologies, a PICT ex-student, talking about the choices and issues faced in converting a traditional application to a SaaS, based on a real-life scenario they faced. The case study is of a customer in Pune, who was using his own infrastructure to host a standard web app (non-cloud), and occasional spikes in user requests would cause his app to go down. Dedicated hosting was too expensive for him – hence the need to move it to the cloud.
Different choices were: SaaS on top of shared infrastructure (like slicehost), or SaaS on top of PaaS (like AppEngine), or SaaS on top of IaaS (Amazon EC2, Rackspace). PaaS seems great, but real-life problems make you re-think: Your existing app is written in a language (or version of a language) that is not supported on the PaaS. Or has optimizations for a local deployment. Specific libraries might be missing. Thus, there’s lots of code change, and lots of testing, and stability will be a problem.
Hence, they decided to go with SaaS on IaaS. Basically simply moving the existing local app to the same software stack on to a server in IaaS. The app itself was largely compute intensive, so they decided to use the existing app as a ‘server’ and built a new client that talks to the server and serves up the results over the web. For this, the server(s) and client went on Amazon EC2 instances, Simple Queueing Service (SQS) was used to communicate between the ‘client’ and the ‘server’, and automatic scaling was used to scale the app (multiple compute servers). This not only helped the scalability & load balancing, but they were able to use this to easily create multiple classes of users (queue cheapo users, and prioritize priority customers) – improved business logic!
Cloud Security – Threats and Mitigations
If there’s a malicious hacker in your cloud, you could be in trouble. And it is your responsibility, not the cloud vendor. Image by Mikey G Ottawa via Flickr
Vineet Mago and Naresh Khalasi (the company that @rni and @dnene are associated with) are talking about the privacy and security issues they faced in putting their app on the cloud, and how to deal with those.
Good thing about the cloud is that the cloud vendor takes care of all the nitty-gritty, and the developer need not worry about it. The presenters disagree – especially where privacy and security are concerned. You have to worry about it. It is your responsibility. And if you’re not careful, you’ll get into trouble, because the vendors are not. Protecting against malicious hackers is still your responsibility; cloud vendor doing nothing about it.
System security: anti-virus, active directory, disabling USB
Application security: AAA, API security, release management (no release goes out without proper audits and checks by different departments)
And there are three aspects you need to think about:
Confidentiality: can your data get into the wrong hands? What if cloud provider employee gets his hands on the data?
Integrity: can the data be corrupted? Accidentally? Maliciously?
Availability: Can someone make your data unavailable for a period of time? DDoS?
Remember, if you’re using the cloud, the expectation is that you can do this with a very small team. This is a problem because the effort to take into account the security aspects doesn’t really reduce. It increases. Note: it is expected that a team of 2 people can build a cloud app (R&D). However, if a networked app needs to be deployed securely, we’d expect the team size to be 30.
State of the art in cloud security:
IaaS: provider gives basic firewall protection. You get nothing else.
PaaS: Securing the infrastructure (servers, network, OS, and storage) is the provider’s responsibility. Application security is your responsibility
SaaS: Network, system and app security is provider’s job. SLAs, security, liability expectation mentioned in agreements. Best. But least flexibility for developers.
Problems with cloud security:
Unknown risk profile: All of them, IaaS, PaaS, and SaaS, are unknowns as far as security is concerned. This industry is just 4 years old. There are areas that are dark. What to do?
Read all contracts/agreements carefully and ask questions.
Ask provider for disclosure of applicable logs and data.
Get partial/full disclosure of infrastructure details (e.g. patch levels, firewalls, etc.)
Abuse and nefarious use of cloud computing: Applies to IaaS, PaaS. If hackers are using using Amazon EC2 instances to run malware, then there are two problems. First, malware could exploit security loop-holes in the virtualization software and might be able to access your virtual machine which happens to be on the same physical machine as the hacker’s virtual machine. Another problem is that the provider’s machines/IP-addresses enter public blacklists, and that will cause problems. What to do?
Look for providers that have strict initial registration requirements.
Check levels of credit card fraud monitoring and co-ordination used by the provider
Is the provider capable of running a comprehensive introspection of customer network traffic?
Monitor public blacklists for one’s own network IP blocks
Insecure Interfaces and APIs: 30% of your focus in designing an API should go into building a secure API. e.g. Twitter API does not use https. So anybody at this conference today could sniff the wi-fi here, sniff the network traffic, get the authentication token, and run a man-in-the-middle attack. Insecure API. What to do?
Analyze the security model of cloud provider’s interfaces
Build limits into your apps to prevent over-use of your apps
Malicious Insiders: “In 3 years of working at company, you’ll have the root passwords of all the servers in the company!” Is your security policy based on the hope that all Amazon AWS employees are honest? What to do?
Know what are the security breach notification processes of your provider, and determine your contingency plans based on that information
Read the fine print in the contracts/agreements before deciding on cloud vendors
Shared Technology Issues: There are various ways in which a malicious program in a virtual machine can access underlying resources from the hypervisor and access data from other virtual machines by exploiting security vulnerabilities. What to do?
Implement security best practices for your virtual servers
Monitor environment for unauthorized changes/activity
Enforce vendor’s SLAs for patching and vulnerability remediation
Example: Amazon allows you to run penetration testing, but you need to request permission to do that
Overall, a good conference. Some great talks. Not too many boring talks. Quality of attendees was quite good. Met a bunch of interesting people that I hadn’t seen in POCC/PuneTech events. You should be able to find slides of all the talks on the conference website.
The call for papers is out and the deadline for submissions is 31st May – actually, it’s a call for speakers – because you’re only required to submit an abstract now, and a slideshow just before the conference. Submitting entries to conferences like this is, we believe, a good way for Pune’s tech professionals to get visibility for their work, and a good way to get into a paid conference without having to pay the fees. Hence, if you’ve done any work in cloud computing, or virtualization, or Software-as-a-Service, or if you know enough about one of the related fields to be able to give an overview talk, you should submit an abstract.
The IndicThreadsJava conference is a technology conference that happens in Pune every year. The conference has in-depth, vendor-neutral technical sessions about a wide range of topics in the Java space. If you have done some interesting work in or related to Java, you should consider submitting a proposal.
IndicThreads.com invites submissions for the 4th IndicThreads.com Conference On Java Technology to be held on 11th and 12th December 2009 in Pune, India. The conference is the premier independent conference on Java technology in India and is the place to be, to learn the latest in the Java world while meeting with like-minded individuals from across the industry.
IndicThreads welcomes submissions from subject experts across fields, geographic locations and areas of development. Topics of interest include new and groundbreaking technologies and emerging trends, successful practices and real world learnings.
Topics appropriate for submission to this conference include but are not restricted to the below, stated in no particular order –
1. Java Language Specs & Standards
2. Optimization, Scaling and Performance Tuning
3. Cloud Computing
4. Rich Internet Applications, Ajax and Web 2.0
5. Scripting languages for Java like JRuby, Groovy, Rhino, JavaFX.
6. Open Source Frameworks
7. Enterprise Architecture
10. Social Networking
12. Agile Techniques, Extreme Programing, Test Driven Development
13. New and emerging technologies
14. Case Studies and Real World Experiences
Please note that marketing-oriented submissions aimed at promoting specific organizations or products will not be accepted.
All sessions will be between 50-90 minutes. One / both of your proposals might be accepted.
The audience consists mostly of senior developers and project leads. Before submission consider how your submission can provide best value to this target segment.
Submissions will be accepted only on the website and not through emails. Please complete the entire form including the two session proposals.
The decision of the conference team as regards sessions, durations, timings, speaker benefits and all related aspects will be final and binding.
Complimentary Full Conference Pass
We will arrange for your hotel stay and cover the room tariff. Please note that hotel incidentals will not be covered.
We will reimburse up to Rs 5000 from the air fare or the actual, whichever is less.
Speaking at an IndicThreads event gets you recognition as a subject expert.
Write to [ conf AT rightrix DOT com ] in case of any other queries.
The IndicThreads conference on Java technologies, which is an annual occurrence in Pune happened over the course of 3 days last week, and IndicThreads were gracious enough to invite me to attend the conference (sort of a press pass, so to speak), and although I wasn’t able to attend the whole conference, I did manage to squeeze in a couple of hours each day, and was very glad that I did, because I ended up with some really enriching sessions.
On the first day of the conference, the two big names of the tech industry in Pune, Ganesh Natarajan and Anand Deshpande gave keynote addresses. Ganesh, who is CEO of Zensar, and President of NASSCOM gave the NASSCOM view of the coming recession. His main thrust was that the Indian software / BPO industry will not be as badly affected by the recession as the rest of the world. He had a large number of graphs and figures to make the following points:
We had already been tightening the belt for almost an year now, so we are in much better shape to handle the recession than those who weren’t being so prudent
We are creating new products, tackling new verticals, and focusing on end-to-end service (and these claims were all backed by facts and figures), and this diversification and added value makes us resilient
And he spent a lot of time pointing out that to do even better, or primary focus needs to be the tier 2 / tier 3 cities, 43 of which have been identified by NASSCOM and whose developement will get some attention. Also, our tier 2 / tier 3 colleges are sub-par and a lot of work is needed to improve the quality of students graduating from there. NASSCOM has started a number of initiatives to tackle this problem.
Since this was a conference for Java techies, Anand Desphande, CEO of Persistent, presented his view of the broader context in which the Java programmers exist, and what are the things they need to think about (other than their code) to have a better long term view. Basically:
Multicore chips, and why programmers need to worry about them
Mobile Telephony: the desktop/laptop is no longer the primary target device for programmers. Think about the mobile users, and how what they want is different from the traditional PC users
Cloud and SaaS: is coming in a big way, and will change the way people use software. Also, it makes life easier for users, but much more difficult for programmers. So need to improve skills in these areas
Web 2.0 and Social Networking: these are exciting new fields with a lot of growth. They require a different kind of programming mindset.
Rich Internet Applications: Similar to above
Large Volumes of Diverse Data (including BI and analytics)
Open source is on the rise. As programmers, you must have a good understanding of various open source licenses
Gaming and Entertainment boom: Too many programmers think of only corporate world & green monitors etc. Think different. E.g. Gaming and entertainment are large markets and require a different mindset to come up with new ideas in these fields.
Green IT: Instead of worrying about speed and efficiency, for the first time, worrying about power consumption has started affecting programmers
Be a part of the community. Give back. Do open source. Join CSI ACM. IEEE. (and I would like to add contribute to PuneTech)
Anand also predicted that in the next 6 months, the Industry will see serious job cuts and salary cuts, and he things it is unavoidable. But pointed out that those who take trouble to keep themselves updated in their area of expertise, and go deep (instead of just doing “enough”) will not have a problem, and in fact will be best positioned to take advantage of the situation when the financial situation starts recovering after 6 to 9 months.
I missed the rest of day 1, but it has been covered in great detail by Dhananjay Nene. on his blog, as well as Varun Arora on the IndicThreads blog (part 1, part 2).
The highlight of day 2, and in fact the highlight of the whole week for me, was the presentation by DJ Patil, Chief Scientist of Linked-in. DJ Patil is in charge of all the data analysis that happens at Linked-in – basically the advanced guess they make like: “people who viewed this profile also viewed these other profiles”, and “people whom you might know” etc. He was not listed on the conference schedule – and was just passing through, and got invited to talk. He gave a great talk on an overview of how linked in works, their strategy for linked-in apps (the third-party apps that are integrated into the linked-in website). Again Dhananjay has already captured most of DJ’s important points on his blog, so I will not repeat those here. But I did have a very detailed conversation with DJ afterwards, and one of the things that came through was that they are looking seriously at India and wondering what they can / should do to get more Indians on linked-in. India already has about 4.8% of linked-in’s users. He was very open about trying to find out what are the things about linked-in that we don’t like, what are the things in linked-in that we would like to change, and what are the features we would like to see. If you have suggestions, send them over to him – he is dpatil on twitter.
The third day had a session on Grails by Harshad Oak, and if you are not familiar with Rails, or any of the other “programming by convention” schools of software, it is definitely something you should check out. It can reduce development times by orders of magnitude on things like building web applications and other things that are done over and over by programmers all over the world.
For other talks that happened, but which I missed, unfortunately, I haven’t been able to find any reports or blog posts giving details, but you can see the conference schedule to get an idea of what went on.