Tag Archives: Technology

Free 2-Day Intensive Clojure Workshop – 24-25 Aug

the Pune Clojure User Group is organizing an intensive 2-day workshop on Clojure – on 24-25 August. The workshop is designed for programmers who have been using imperative programming languages so far and will give them a solid foundation in Functional Programming, Clojure & the Lisp-way.

The course is completely free of charge thanks to gracious hosts, BMC Software. Seats are limited, so hurry!

Course Content

  • Data Structures
  • Functional Programming
  • Sequences & Collections
  • JVM Interop
  • Concurrency
  • OO & Polymorphism
  • Macros
  • A lot more!


You don’t need any prior experience with Clojure, Lisp or Functional Programming but we do expect that all participants will have at least an intermediate level of experience with any programming language. We can’t teach you programming in two days but if you already know some programming we can definitely teach you a different (and extremely elegant) way of solving non-trivial problems.

You’ll have to bring your own laptop to the course. WiFi will be provided at the venue.

It’s also recommended that you setup your favourite editor for editing Clojure so that we can get started very quickly. Some resources are given in the resources section and others can be found online.

If you still have questions feel free to ask on the Pune Clojure mailing list.

About the Instructor – Baishampayan Ghose

Baishampayan “BG” Ghose has been a professional Lisp programmer for most of his career. He has been using Clojure since the early days and has contributed to Clojure and multiple libraries in the Clojure ecosystem. His areas of interest are functional programming, distributed systems & ethnobotany.

Currently he is Co-founder/CTO at Helpshift.

You can contact him on @ghoseb or b.ghose@freegeek.in

Fees and Registration

The event is on 24-25 August, from 9:30am to 5pm, at BMC Software, SB Road, Pune.

This event is free and open for anybody to attend. Seats are limited, so please register here fast.

About the PuneTech Calendar

Get event announcements by email. Subscribe (free) to the PuneTech Calendar

Event: Global Technology Outlook 2013 by Dr. C. Mohan (IBM)

On Wednesday, Pune is fortunate to have a very distinguished visitor – Dr. C. Mohan, an IBM Fellow, IBM Master Innovator, inventor of the presumed abort commit protocol in database, and a list of other achievements and awards that is so long that you’ll get bored reading the list.

Mohan is giving a talk on the “Global Technology Outlook” on Wednesday, 24 July, 6pm, at Dewang Mehta Auditorium, Persistent (SB Road). This talk should be of interest to not only technical people but also to a much broader set of people.

Abstract of the Talk

The Global Technology Outlook (GTO) is IBM Research’s vision of the future for information technology (IT) and its impact on industries that use IT. This annual exercise highlights emerging software, hardware, and services technology trends that are expected to significantly impact the IT sector in the next 3-7 years. In particular, the GTO identifies technologies that may be disruptive to an existing business, have the potential to create new opportunities, and can provide new business value to our customers. The 2013 GTO is built not only on its 31 predecessors, but the 100 years of IBM innovation. The 2013 GTO reports on six key findings which form 2 groups. The first group addresses The Rapidly Evolving Infrastructure while the second one addresses The Future of Big Data and Analytics. The six topics of GTO 2013 are: Mobile First, Scalable Services Ecosystems, Software Defined Environments, Multimedia and Visual Analytics, Contextual Enterprise and Personalized Education. In this talk, Mohan will share the GTO 2013 findings with the audience.

About the speaker – C. Mohan

Dr. C. Mohan has been an IBM researcher for 31 years in the information management area, impacting numerous IBM and non-IBM products, the research community and standards, especially with his invention of the ARIES family of locking and recovery algorithms, and the Presumed Abort commit protocol. This IBM, ACM and IEEE Fellow has also served as the IBM India Chief Scientist. In addition to receiving the ACM SIGMOD Innovation Award, the VLDB 10 Year Best Paper Award and numerous IBM awards, he has been elected to the US and Indian National Academies of Engineering, and has been named an IBM Master Inventor. This distinguished alumnus of IIT Madras received his PhD at the University of Texas at Austin. He is an inventor of 38 patents. He serves on the advisory board of IEEE Spectrum and on the IBM Software Group Architecture Board’s Council. More information can be found at his home page

Fees and Registration

The talk is at 6pm, on Wednesday, 24 July, at the Dewang Mehta Auditorium, “Bhageerath”, Persistent Systems, SB Road.

This event is free and open for anybody to attend. Please register here

Global Windows Azure Bootcamp – 27th April

On April 27th, 2013, you’ll have the ability to join a free Windows Azure Bootcamp at Persistent on SB Road. This is a one day deep dive class that will get you up to speed on developing for Windows Azure. The class includes trainers with deep real world experience with Windows Azure:


  • Session 01: 10:00 AM-11:00 AM Windows Azure Overview – by Laxmikant Bhole from Accenture. Microsoft’s Windows Azure platform is a mature and enterprise ready cloud for various solutions. This session will be a overview of various offerings in the Microsoft Azure platform including hosting, storage, database, media, networking, messaging, routing , authentication services. Come and join this session to see Windows Azure in action and get an complete overview along with internal specifics & latest enhancements on the platform.
  • Tea Break : 11:00 AM – 11:15 AM
  • Session 02: 11:15 AM – 12:15 PM Windows Azure IaaS: Technical Overview – by Aviraj Ajgekar from Microsoft. Join us for a tour of the features that make up the Windows Azure Virtual Machines and Virtual Networks offerings, which collectively make up Windows Azure’s Infrastructure as a Service (IaaS) support. Using demonstrations throughout, we will cover the Virtual Machine storage architecture and shows how to provision and customize virtual machines, configure network connectivity between virtual machines, and configure site-to-site networks that enable true applications that span from on-premises to Windows Azure. In this session we cover the significant investments that Microsoft is making in our Windows Azure Infrastructure-as-a-Service (IaaS) solution and how it works. We discuss how you provision, deploy, and manage Virtual Machines and Applications in Windows Azure. The session spends time covering both the new management portal and PowerShell management options.
  • Session 03: 12:15 PM – 1:15 PM: Storage Options in Windows Azure. – by Vikram Pendse & Kiran Khambete from Accenture. In this session you will learn various Storage Options provided by Windows Azure.This session will be an overview of various Storage offerings like Blobs,Queues,Tables and SQL Azure.This session gives a guideline to leverage these Storage options especially in Enterprise and Large Scale Line Of Business Applications.We will also discuss about scenarios of storing Structural,Relational Data and Nonstructured Data followed by Demos.
  • Lunch Break: 1:15 PM – 2:00 PM.
  • Session 04: 02:00 PM – 3:00 PM Deep Dive into Windows Azure Mobile Services. – by Mayur Tendulkar from Zevenseas. In this session, attendees will get to introduce to about Windows Azure Mobile Services. Attendees will get to know feature provided by Azure Mobile Service like Data, Push Notifications, Email Service, etc.. Using these services, we’ll build a Windows Phone application and leverage these platforms to create nice mobile applications.
  • Session 05: 03:00 PM – 4:00 PM: BigData analysis with HD Insights for Windows Azure and Windows Server – by Monish Darda from Icertis. In this session, Monish will discuss how BigData is changing the world and introduce you to some exciting things that you can do with BigData using HDInsight and Microsoft Business Intelligence. He will also demonstrate how PolyBase can be used to enable integrated querying across Hadoop and relational data with SQL Server 2012.
  • Tea Break: 04:00 PM – 4:15 PM
  • Session 06: 04:15 PM – 5:15 PM: Building Hybrid Cloud Environment using Windows Azure & System Center – by Aviraj Ajgekar from Microsoft. In this session we will explore how can you build a true hybrid cloud solution using Microsoft solutions. We will leverage best of both the worlds & explore some of the scenarios where you can leverage System Center 2012 SP1 along with Windows Azure to build a hybrid cloud solution. We will discuss how can you build & manage different workloads in Windows Azure & System Center 2012 SP1 to build your hybrid cloud strategy.

About the Speakers

Aviraj Ajgekar

Aviraj is a Computer Engineer from Mumbai and is currently working with Microsoft Corporation India as a Technology Evangelist. In his present role he is working with IT Professionals across India evangelizing Microsoft Technologies. Primarily he focuses on Microsoft Core IO Technologies such as Windows Client Platform, Windows Server System, Virtualization, System Center, Private Cloud & Public Cloud.

A real blogger, he is very compulsive about adding his thoughts to online blogs, forums, community and media. He blogs regularly at http://blogs.technet.com/aviraj He a regular speaker at various Microsoft events such as Microsoft TechEd, MS TechDays, Virtual TechDays, Microsoft India Webcasts etc.

In his spare time he likes to spend time with his family, hang out with friends & listen to rock music. He’s also passionate about photography and long drives. You can follow him on twitter @aviraj111

Kiran Khambete

Kiran is Technology Architect working with Accenture India Development Center,He has around 13 yeards of industry experience with proficiency in various Microsoft Technologies. He is passionate about Microsoft Technology and core member of AUG (Avanade User Group) within Accenture India. He is also responsible for architecting and implementing various solution based on Microsoft Technologies.

Laxmikant Bhole

Laxmikant is a Technology Architect at Accenture, India and has about 17 years of industry experience with proficiency in various Microsoft Technologies. In his current role, he leads Windows Azure capability in Accenture India and is accountable for architecting and implementing Azure-centric solutions. Laxmikant is as well active in technology community and have been participating and presenting in multiple technology events on Windows Azure topics.

Mayur Tendulkar

Mayur Tendulkar works as a Local Type Inference (for outsiders: Consultant) at Zevenseas, Pune (India). As a Local Type Inference, he has worked in various technologies like .NET, ASP.NET, Windows Mobile/Phone, SharePoint, HTML5, JQuery and currently Windows 8. He has been an active volunteer/member of Pune and Mumbai User Group. He was a Microsoft Student Partner and Lead from 2008-2010. He has delivered numerous sessions at various colleges and corporate trainings at various organizations. He has been a speaker at Microsoft Community Days, TechDays, Virtual TechDays, DevCons, and many others. He loves listening to 80s/90s Angrezi and Bollywood songs. He always say that, “My first crush is .NET, first love is Windows Mobile. But I’m married to Windows Phone and having an affair with SharePoint”

Monish Darda

Monish is the CTO and co-founder of Icertis, a leading provider enterprise solutions on the Microsoft Cloud. Monish has more than 20 years of experience in application and systems software development and the architecting of enterprise distributed systems. Along with Unmesh, he co-founded Websym Technologies in 1998. He set up and headed the India R&D operation of Storability, an enterprise storage management startup from Boston. Storability was eventually acquired by Sun Microsystems and Monish then founded and led the India R&D of BladeLogic, another East Coast startup, helping build a highly scalable enterprise platform for server management in the data center. BladeLogic was acquired by BMC Software after a successful IPO, and Monish contributed to BMC’s cloud management vision, laying the foundation for some of the early pioneering work on cloud resource management and provisioning, and is co-inventor of two patents in this area.

Vikram Pendse

Vikram is SME working with Accenture AIR Capability, He has around 6 years of industry experience with proficiency in various Microsoft Technologies such as .NET Web Platform, Silverlight, Windows Phone and Windows Azure. He is Microsoft Most Valuable Professional since 2008 and One of the Core Member of Pune User Group. In his current role, he works as SME in Azure Integration Renewal (AIR) Capability of Accenture India and is accountable for implementing Azure-centric solutions and Migration Solutions for legacy Apps to New .NET Framework. He is passionate about Windows Azure, Windows Phone and Windows 8 Application Development.

Giveaways from Global Sponsors

  • JetBrains: ONE (1) winner at each event gets a license of one of their products. The winner may choose from ReSharper, dotTrace, dotCover, PhpStorm, PyCharm, IntelliJ IDEA, AppCode, WebStorm.
  • PluralSight: ONE (1) winner at each event will get a 1 Year Annual Subscription. ALL Attendees will get a 7 Day training pass via an unique code.
  • Telerik: ONE (1) winner at each event will get a DevCraft Complete (all their products).
  • Cerebrata: ALL Attendees will get a license to the new Azure Management Studio product. There will be an email address they can use to request it.
  • Blue Syntax: ONE (1) winner at each event can win a Cloud Backup Advanced Edition license.
  • MyGet: ONE (1) winner at each event can win a 1 year Starter Subscription. ALL Attendees will get a 1 month starter subscription redeemable via an online sign up form.
  • Cloud Berry: FIVE (5) winners at each event can win a Cloud Berry Explorer License. FIVE (5) winners at each event can win a Cloud Berry Drive License.
  • AzureWatch: ALL Attendees will get a free 30 day unlimited license, redeemable via an unique code..
  • Inner Workings: ALL Attendees will get 90 days Free Training, redeemable online.
  • Zudio: ALL Attendees will get a 3 month free trial redeemable via an unique code. ALL Organizers will get a 1 year subscription.


The event is free, and anybody can attend. But registration is required

The event is on Saturday, 27th April, 2013 from 09:30 AM – 05:30 PM, at Dewang Mehta Auditorium, Persistent Systems Ltd. Bhageerath, 402, Senapati Bapat Road.



Globle twitter hashtag for this event is: #GlobalWindowsAzure

use this # tag while you twit about this event. Do mention #PuneUG or @PuneUserGroup in your twit if you participating in Pune event and twiting about Pune Event

Get connected with us on :

Invisible Bugs or Why Every Developer Must Understand Details of IT Infrastructure

(This article is adapted from a very interesting post written by Sunil Uttamchandani, Co-founder and Director of Services at Mithi Software, a Pune-based Software Products company specializing in software for email, collaboration and other enterprise products. The article first appeared on the Mithi Blog and is adapted & reproduced here for the benefit of PuneTech readers with permission.)

Most of the education of a Software Developer is centered around programming, and keeping their code clean and maintainable and debuggable, and well-tested and ensuring that customers don’t run into bugs, and if they do, the bugs are easy to find. However, in real life, one of the most difficult category of bugs to find is the “invisible” bug. The first thing you notice about such a bug is that a customer complains about a bug, but you are unable to reproduce it in your environment. Now, if there is one thing you cannot convince a customer about, is that the bug is caused due to some misconfiguration of the software infrastructure in the customer environment. All bugs are bugs in your product, irrespective of what actually caused the bug.

In the Blog of Mithi Software, Sunil Uttamchandani talks about how their products (which deal with email servers and other enterprise collaboration software) often have to deal with “Intangible/Invisible Network Obstacles” when dealing with customer bugs.

Here he describes a recent experience.

A Ghost In the Network

Recently during a POS (proof on site) exercise with a prospective customer, we had to perform a test in which an email client would send mail to a large number of recipients from our cloud email setup and capture performance test results. As a regular practice, we setup the SMTP controls on our server to allow this test, did a test from our environment and then asked the client to repeat the same test in their environment.

The test failed in the client environment.

We enabled the SMTP scanning engines for their source IP to capture detailed information (which would slow down the mail flow naturally), and we found that the client could deliver a few mail, but would give up after a little while. It would simply show the progress bar, but would not move ahead. The logs on our server showed that there was no more connections coming from that client. As a first point of troubleshooting we eliminated the scanning controls and simplified the SMTP rules in our product to speed up things by making no checks for their source IP address. We did another round of testing, but we had similar results. Just a few more mails went through and the process hung again. During this phase, we couldn’t successfully send mail to all their recipients at all. After a few mails, the system would simply do nothing and client would eventually time out.

On the face of it, all looked well in the client’s environment, since the other users/programs in the client’s environment were going about their business with no issues.

Without assuming anything, we performed the test from our office to eliminate any issues on the server side. Once we did this successfully, we re-did the test from our environment, with the client’s data and that too went through successfully. All pointers were now to the client’s environment!

There obviously was some firewall policy, some proxy, or some other transparent firewall in the network which was disabling the test through the given Internet link. On our request, when the firewall policies were bypassed for connections to our servers, the test went through successfully.

This shows two things. Network administrators, and firewalls often interfere with the web connections in complicated, and difficult to debug ways. And, the job of determining the root cause of the problem always falls upon the product vendor.

More Examples of Real Life Network Problems

If you think this is an isolated problem, think again. Sunil goes on to point out a bunch of other cases where similar ghost bugs bothered them:

Several times, our help desk receives tickets for such “intangible” problems in the network which are difficult to troubleshoot since there is some element in the network, which is interfering in the normal flow. Clients find it difficult to accept these kind of issues since on the face of it all seems to be well. Some real life examples of such issues we face:

  • At one of our customer sites, address book on the clients’ machines suddenly stopped working. Clients connect to the Address book over the LDAP port 389. We found that while a telnet to the LDAP port was working fine from a random set of clients, still the address book was not able to access the server over port 389. It turned out to be a transparent firewall which had a rate control.
  • Several of our customers complain of duplicate mail. This typically happens when MS Outlook as a client sends a mail, but retains the mail in the Outbox when it doesn’t receive a proper acknowledgement from the server. It then resends the mail and may do so repeatedly until its transaction completes successfully. On the face of it, it appears to be a server issue, while actually its a network quality issue. Difficult to prove. I’ve personally spent hours on the phone trying to convince customers to clean up their networks. One of our customers, after a lot of convincing, did some hygiene work on their network and the problem “magically” vanished.
  • One of our customers complained that their remote outgoing mail queue was rising rapidly. We found that the capacity of Internet link’s (provided by the ISP) to relay mail had suddenly dropped. So mails were going, but very slowly, and hence the queues were rising. Apparently there had been no change in the network which could explain this. After some analysis, We were quite convinced that the ISP had probably an introduced an SMTP proxy in the network, which had some rate control or tar pit policies. The ISP refused to acknowledge this. To prove our hypothesis, we routed the mail from our hosted servers over a different port (not port 25 – which is default for SMTP). As soon as we did this, the mail flow became normal, even though we were sending through the same Internet link. As of the time of this writing, the ISP is still to acknowledge that there is an impediment in the path for port 25.

These and several more incidents show that problems in the network environment are challenging to troubleshoot and accept.

So What Next?

In other words, to be able to keep customers happy, software developers need to have a very good and detailed understanding of the various IT infrastructure environments in which their product is likely to be deployed, and be able to come up with inventive strategies by which to isolate which part of the infrastructure is actually causing the problem.

Event Report: 7th IndicThreads Software Development Conference

(This is a live blog of the talks being given at the 7th IndicThreads Software Development Conference happening in Pune today and tomorrow. The slides of the individual talks will become available on the conference website tomorrow.)

Keynote Address: Suhas Kelkar: Technology Is Just The Start

The the keynote address was by Suhas Kelkar, CTO (APAC) for BMC Software, also in charge of driving BMC’s Incubator Team globally as well as the overall technical and business strategy.

The main point Suhas made was that technology is a great way to innovate, but technology is not enough. There are many other things beyond technology to look at to build great software products.

Any technology innovator must understand the technology adoption curve that Geoffrey Moore explained in Crossing the Chasm. First you innovate and create a new technology, and the first people to use it are the early adopters. And to keep the early adopters you need to keep adding technology features. But the set of early adopters is small. You cannot get mainstream success based on the early adopters. And most new technology innovations fail at this stage. Getting the mainstream to adopt the technology you need to win them over with non-technology things like better user experience, reliability, low cost, etc. And this is necessary, otherwise you’re technology innovation will be wasted. So you must learn to focus on these things (at the right stage in the life-cycle of the product)

Technology innovation is easy. Feature/function innovation is easy. User experience innovation is hard. Getting reliability without increasing cost is very hard. The best technologists need to work on these problems.

Karanbir Gujral: Grammar of Graphics: A New Approach to Visualization

The world has too much data, but not enough information. Not enough people working on converting raw data to easily consumable, actionable information. Hence, the area of data visualization is very important.

“Grammar of Graphics” is a new approach to visualization. It is not simply a library of different types of chart. Instead, it is a language which can be used to describe chart type, or even easily declare/create new chart types. Think of it as the SQL equivalent of graphics.

The language describes features of charts, not specific names/types. For example, instead of saying “bar chart”, you would describe it as a chart with basic 2D co-ordinates, categorical x numeric, displayed with intervals.

Where is this available?

  • Book: Grammar of Graphics by Leland Wilkinson
  • Open Source software packages:
  • ProtoVis and D3 for JavaScript users
  • Ggplot2 for R users
  • Bokeh for Python users
  • Commercial Software
  • Tableau

More specifically, the grammar allows specification of a chart using six different properties:

  • Element Type:
    • point, line, area, interval (bar), polygon, schema, text.
    • Any element type can be used with any underlying data
  • Co-ordinates:
    • Any number of dimensions (1D, 2D, etc)
    • Clustering and stacking
    • Polar
    • Transpositions
    • Map projections
    • Simple Axis
    • Nested Axis
    • Facet Axis
    • Standard sequential/stacking layout
    • Graph Layouts (Network, Treelike)
    • Treemaps
    • Custom Layouts
    • Map data to graphic attributes
    • Color (exterior/interior, gradient)
    • Size (width, height, both)
    • Symbol
    • Splitting data into multiple charts
    • Chart-in-chart
    • Panels

Ideally, you would like each of these 6 different types of properties to be orthogonal to each other. You should be able to mix and match any type of element type with any type of co-ordinate system, with any aesthetics/style. Thus, specifying the values of these six different properties gives a specific type of chart.

Karanbir gave an example of how a simple bar chart is specified using a language like this. The specification was in JSON. I could not capture it in this live blog, but check out the slides for the actual specification. It is quite interesting.

Having to write out a largish specification in JSON just to get a bar chart doesn’t seem to be that useful, but the real power of this approach becomes apparent when you need to make changes or combine the different properties in new/unique ways. The power of orthogonality and composition become readily apparent, and you are able to do really big and cool changes with simple modifications to the specification. Karanbir’s demo of different visualizations for the same data using simple changes to the spec was very intersting. Again, see the slides for some examples.

Mohan Kumar Muddana: JVM the Polyglot Platform

The Java Virtual Machine (JVM) was initially built for Java. But now it handles many different languages. More specifically, it was built to only handle classes, but now so many different types of language constructs from modern languages newer than Java are handled. Since Java6 (JSR223), JVM has supported scripting (Groovy, Jython, JRuby). Starting with Java7 (JSR292), the JVM has added the ‘invokedynamic’ construct, allowing support for dynamically typed languages, which makes it easier to implement all the features of interpreted languages on the JVM – and not just those that are compiled to bytecode.

Why would you want to run other languages on the JVM? Because you can get the speed and stability of the JVM and combine it with the productivity, or ease-of-use, or the different paradigm of the other languages.

Some interesting JVM based languages to check out:

  • Scala: Pure object oriented language with Traits, Case Classes and Pattern Matching, and Type Erasure.
  • Clojure: Pure functional language
  • Groovy

The slides of the talk contain lots of details and examples of why these languages are cool.

Sushanta Pradhan: Typesafe Stack Software Development on the JVM

The world is moving towards apps that need Scalability, Distributed, Parallel & Concurrent, Dynamic and Agile and Swift.

Concurrent access to data-structures is a big pain when trying to implement parallel programs.

Scala is a functional, concise programming language written on top of the JVM, and inter-operates with Java (i.e. you can very easily access all the Java standard library and any other Java code you might have from Scala code). It has immutable and mutable variables; it has tuples, multiple assignments in a single statements, sensible defaults, and operator overloading.

Scala has the following important features that help with implementation of parallel code:

  • Parallelism:
    • Parallel Data-Structures
    • Distributed Data-Structures
  • Concurrency:
    • Actor Model
    • Software Transactional Memory
    • Futures

Akka Middleware is a concurrent, scalable and fault tolerant framework based on the actor model. It is event driven and highly performant. It has a supervision model which establishes relationships between actors, and the supervisor can detect and correct errors of the subordinate model. This is a model of reliability based on the belief that you cannot completely avoid failures, so you should simply let your actor fail, and allow the supervisor to take corrective action.

Akka is written using Scala, but has Java APIs, so you can use Akka without really having to use or know Scala.

The Play framework, gives Ruby-on-Rails style agility in the Java world by adopting the convention-over-configuration techniques from Rails, has seamless integration with Akka, and hot deployment which makes it easier to have agile code updates. Play has an easy, out of the box setup for unit and functional testing, asynchronous HTTP request handling, WebSocket support, support for caching (e.g. memcaching).

Play has progressive stream processing. This is based on the iteratee model, which improves over the iterator model by allowing you to easily work with streaming data in which the collection size is not fixed beforehand. Similarly there are enumerator and enumeratees.

Play is written using Scala, and has integration with Akka, but it can be used without Akka, and it has Java APIs, so you can use Play without really having to use or know either Scala or Akka.

Scala, Akka and Play together are called the TypeSafe stack, and is a modern JVM based software stack for building scalable applications.

Mushtaq Ahmed/Shripad Agashe: Using Play! 2.0 to Build a Website

Important features of Play!

  • Powerful Templating: Play! has A heavy focus on type-safety across all the layers. This means that even the templating engine has type-safety built in; thus the templates are statically compiled and check for type safety.
  • Routes: Statically compiled reverse routes. Ease of refactoring routes due to compiler support. All references to routes are via reverse routes, no hard-coded routes.
  • Non-blocking: End-to-end non-blocking architecture. Thus a small number of threads can handle large numbers of concurrent requests. There are no callbacks.
  • Great Developer Workflow: Hot reloading, error display (compile time and runtime errors shown in browser), and in-memory database during development.

The rest of this talk contained a code walk-through of Play! features and an implementation of an insurance website using Play! 2.0.

Arun Tomar: Cloud Automation using Chef

Chef is an open source framework that allows the creation of automated scripts that help with hardware/software infrastructure management and deployment. Previously, app upgrades/deployments were manual processes that took hours if not days. Chef allows creation of scripts (written in Ruby) which fully automate these processes.

Chef is cross-platform, so it supports pretty much everything: Windows, Linux, Sun, Mac, BSD, AIX etc.

A Chef deployment consists of a Chef server, which holds all the configuration information for all your infrastructure (aka recipes), a Chef workstation (i.e. the machine from which you will run the Chef recipes), and the actual servers/machines that will be controlled/configured using Chef (aka Chef nodes). Chef client software needs to be installed on each node. The Chef workstation then takes the Chef script (or recipe) from the Chef server, breaks it up into pieces to be executed on each individual server/machine and sends those instructions to the Chef client on the nodes using ssh.

Each Chef recipe is used to configure some part of a server: e.g. Apache, MySQL, Hadoop, etc. These recipes describe a series of resources that should be in a particular state – packages that should be installed, services that should be running, or files that should be written. Chef makes sure each resource is properly configured, and gives you a safe, flexible, easily-repeatable mechanism for making sure your servers are always running exactly the way you want them to.

Core principles of Chef:

  • Idempotence: doing an operation should be idempotent. This ensures that when scripts fail halfway through, you can just re-run the whole script and everything will just work properly and the script will complete cleanly, without doing anything twice.
  • Order Matters: the steps in a recipe will get executed in the order they’re written
  • You are the Boss: Most infrastructure solutions force you to adapt to their “one-size-fits-all” approaches, even though every infrastructure challenge is different. This is crazy. Instead, Chef allows you to be in full charge of everything and you can configure everything exactly the way you want it – and you have the full power of the Ruby programming language to specify this to any level of detail required.

A big advantage of Chef is that Chef recipes are essentially a self-documenting record of your actual infrastructure. In addition, when you add new servers, Chef automatically discovers information your system. So, for example, when you need to do something on production, you simply ask Chef, which knows what is really happening, and you don’t need to rely on static documentation that might be out of date.

Another advantage of Chef is the extensive library of existing recipes for standard things that people would like to install/control using Chef. For example, consider this:

include_recipe "apache2"

This line is enough to install apache2 on any machine, irrespective of which OS the machine is running. This is possible because all the hardwork of actual commands and configurations for Apache2 for all the various supported platforms has already been done for you by someone else!

In addition, Chef contains templates (e.g. a template for apache2 ) which contain the various configuration parameters that can be configured by you easily. So if you don’t want to standard apache2 installation, you can “include” a template, over-ride a few parameters, and you’re done.

Here are some examples of what chef can do:

  • It can use rpm, or apt-get, or dpkg, or yum, or python-pip, or python-easy_install, or ruby gems, or whatever your package installer happens to be and install packages. It is smart enough to know whether a package is already installed and which version, and will not do unnecessary things.
  • It can update configuration files, start and stop services, and install plugins for software packages that can handle plugins.
  • It can automatically clone git repositories, make/build/install, handle dependencies, execute scripts.

Shubham Srivastava: NoSQL – Now and the Path Ahead

Why NoSQL?

  • Scalability and Performance
    • Horizontal scalability is better than vertical scalability
    • Hardware is getting cheaper and processing power in increasing
    • Less operational complexity compared to RDBMS solutions
    • Get automatic sharding as default
  • Cost
    • Scale without Hefty Cost
    • Commodity Hardware, and free/open source software (think versions, upgrades, maintenance)
  • Flexibility in Data Modeling.
    • Key-value stores (very powerful…)
    • Hierarchical or Graph Data
    • Storing values like maps, or maps of maps
    • Document databases – with arbitrarily complex objects

The next part of the talk was a detailed look at advantages and disadvantages of a specific type of NoSQL data base for answering specific queries.

The Ninja Club at BMC Software

(BMC Software Pune has created a by-the-techies, for-the-techies group, called The Ninja Club, to give the technical individual contributors in the company a place to learn, hang out, and get recognition for their work. This article about the Ninja Club is by guest author Neeran Karnik, an Architect at BMC.)

The problem is well known in the IT industry in India – why are smart techies tempted to switch to the management ladder, a few years into their careers? The industry loses technical talent, and quite possibly, gets saddled with mediocre management talent in the bargain! Techies who stay on the technical track complain about a lack of control, a lack of visibility, and a lack of rewards. Society also seems to treat “managers” as an exalted breed, and someone who remains an individual contributor is seen as having stagnated in his or her career.

The Ninja Club the BMC
The Ninja Club at BMC is a techies-only club, created to provide cross-team visibility for techies, encouraging collaboration, peer reviews of design and code, and in general, letting the smartest techies interact with each other more easily.

Organizations are taking different approaches to tackle this problem – including creating explicit technical ladders, giving more high-profile recognition for technical accomplishments, even awarding junkets for creating IP. At BMC Software, we have taken a somewhat different approach – a grassroots effort in the technical community that is backed by, but not actively promoted by management. It’s loosely patterned after the martial arts, and is called the Ninja Club.

The Ninja Club is a forum created by techies, for techies. Its membership is self-selected (by invitation), purely on the basis of demonstrated accomplishments on the technical front. As such, membership itself is a badge of honour. In addition however, like in a martial arts discipline, members qualify for different coloured belts – starting with white, and earning their way to black. These belts are completely independent of the usual grades or bands in the HR system, and unrelated to promotions and performance evaluations. A points system has been put in place – a Ninja earns points for activities such as technical talks, participating in coding contests and ideation sessions, filing invention disclosures, publishing conference papers / whitepapers, etc. Points make you eligible for ‘promotion’ to the next coloured belt: white –> yellow –> green –> red –> black. But promotion is not necessarily automatic – in addition to points, the Ninja may have to get past, for example, an online programming test or an interview by other Ninjas at the higher belt level.

Like martial artists, the idea is that Ninjas get together regularly to practice their skills – coding, design, etc. – and to learn from each other. To that end, the Ninja Club organizes various activities such as coding contests, design review sessions, etc. for club members. We are also starting Special Interest Groups (SIGs) focused around technology areas like Big Data, Cloud Computing, SaaS, etc. Discussions can also be around the business domain (IT management and data centers, in BMC’s case) and customer use-cases, not necessarily on technology. Smaller groups of Ninjas can get together in SIGs to discuss, brainstorm, and do small side projects on such topics of their interest.

Such activities enable techies to network across their product teams, find role models and/or mentors, benefit from peer review of their ideas, and expand their sphere of influence. However, the club also organizes wider events that are open to everyone at BMC, not just its members. Over the past year, Ninja Club has organized the following different types of events:

  • Ninjutsu: Quizzes focused on technology and programming – with questions ranging from tech trivia to ‘spot the bug in a snippet of code’
  • Kaigi: Technical talks on hot topics like Hadoop, Android development…
  • Tougi: Debates, where teams argue for or against a given proposition, such as the effects of Consumerization of IT, “BYOD”, or Desktop Virtualization
  • Online contests like treasure hunts, crosswords, etc.
Ninja Club emee screenshot
A screenshot of one of the pages in the Ninja Club, powered by eMee.

One key element of Ninja Club is its online presence, in the form of a gamified social network called eMee. This was developed at Persistent Systems, and heavily customized by them for BMC. Ninjas get their own profiles and avatars on eMee, using which they can showcase their technical skills, certifications and accomplishments. Points earned for various activities can be exchanged for ‘gifts’ that are used for decorating your house. Promotion to a higher belt results in your moving to a fancier house! Like in the martial arts, a Ninja can have ‘followers’. You can follow your role models or mentors, to keep track of their activities and status updates. Common news items are published to the “Ninja Times”, and visible to all. Non-Ninjas also get their own limited profiles, and the ability to follow Ninjas. A search mechanism allows anyone to find people with specific skills. This melding of the real and virtual worlds in eMee levels the playing field for smart programmers who may not be very social in the real world!

The hope is that this Ninja Club initiative will improve the technical vitality of the organization, and make technical careers more desirable and rewarding. By providing cross-team visibility, encouraging collaboration, and peer reviews of design and code, product functionality and quality should also improve over time. Success will eventually be measured in terms of the quality and growth of the technical populace at BMC Software, and being seen as the techies’ employer of choice in the region!

About the Author – Neeran Karnik

Neeran Karnik is an architect at BMC for their Bladelogic Server Automation product. Before that Neeran has worked at IBM India on the datacenter automation and cloud computing products in the Tivoli group, and as a Technical Director and Research at Symantec, and a Research Staff Member at IBM India Research Lab. Neeran has a Ph.D. in Computer Sciences from University of Minnesota, USA.

Neeran is also one of the co-founders of Cricinfo.

Call for Speakers: IndicThreads Conference Pune

The call for speakers for the IndicThreads’ software technology conference is open. The conference is in December, but the CFP closes this week (22 September), and you should submit a proposal

IndicThreads have been holding tech conferences in Pune for the last 7 years, and their conferences are the top pure technology conferences in Pune. An IndicThreads conference is one of the best places to hear about the latest trends in the software industry, and to meet techies from large and small companies of not only Pune, but the rest of the country too.

The conference itself is paid, but becoming a speaker is a good way to get into the conference for free.

This time around, the conference will cover a wide range of technologies from Java, Cloud Computing, Mobile App Development to emerging technologies like Big Data, Gamification, HTML5. (Traditionally, IndicThreads used to have a Java conference – but this year, they are broadening the theme.)

The CFP calls for submissions in these areas:

  • Software Architecture
  • Cloud Computing: IaaS, SaaS, PaaS
  • Design methodology
  • Mobile Software Platforms
  • Mobile Software Development
  • Software Testing
  • Optimization, Scaling, Caching and Performance Tuning
  • Java Language Specs & Standards
  • Enterprise Java (JavaEE)
  • JVM Languages
  • Software Security
  • Development Frameworks
  • Big Data
  • NoSQL Software Development
  • Agile
  • HTML5
  • New and emerging technologies
  • Case Studies and Real World Experiences

But feel free to submit other topics in software technology too. The audience consists mostly of software architects and project leads from various product and services companies across India. If you have done any interesting work in one of the areas above, you should submit a proposal. For now, all you need to do is submit a one paragraph abstract of what you’d like to talk about.


  • Because you get a free pass to the conference
  • Get recognized amongst the community as an expert in an area
  • It strengthens the tech community in Pune, which benefits all of us.

The submission deadline is 22 Sept, so submit your proposal now. For more details about the conference itself, see the conference webpage.

PuneTech Event: Storage Technology Trends talk by Ken Boyd, IBM: 28 July

Ken Boyd, a Distinguished Engineer at IBM, who has been building high end storage products at IBM for over 25 years, is visiting Pune and will talk about his thoughts on the trends in storage technology.

On Saturday July 28, 5pm, at MCCIA, SB Road, Ken will present some of the technology trends that are shaping the design of future storage systems in IBM. Ken will also discuss the opportunities these technology trends are creating for increasing the value of future storage systems. This talk is free and open to all those who’re interested in attending.

Ken is current Chief NAS (Network Attached Storage) Architect at IBM, and leads IBM’s NAS division. He is a Distinguished Engineer at IBM and has been awarded the Master Inventor award, and holds over 40 patents.

Ken recently completed a two year IBM international assignment in Israel where he served as XIV Chief Architect. After IBM acquired XIV, an Israeli start up company, Ken led the XIV team in defining the future architecture and system design of IBM-XIV. Ken also led the technical integration of XIV into IBM.

Ken started his IBM career after graduating from the University of Illinois, Urbana-Champaign in with a B.S. degree in Computer Engineering. After beginning as an IBM logic designer, Ken held a variety of engineering and management positions in Poughkeepsie, NY before transferring to Tucson, AZ in 1987. Advancing in IBM’s storage development team in Tucson, Ken led several organizations, including hardware development, microcode development, technical support marketing, and product management. Ken made significant contributions to IBM high end storage products, including the IBM 3990 Storage Controller, the IBM Enterprise Storage Controller (now known as the DS8000 family), and the XIV Storage System. He was promoted to IBM Director in 1993 and was named an IBM Distinguished Engineer in 2003. In July 2005 Ken received an IBM Outstanding Innovation Award for significant contributions to developing and protecting IBM Intellectual Property. Ken, named an IBM Master Inventor, holds over 40 patents and has achieved an IBM 12th Plateau Invention Achievement Award. Ken earned a M.B.A. degree from the University of Arizona and he is a Senior Member of the IEEE.

This is a free event, and anybody interested in technology is free to attend.

Registration and Fees

This event is free and open for anybody to attend. Please register here

What NVidia is up to – NVidia Tech Week Open House in Pune

(This report of an demo/event organized by NVidia in February 2012 was written by Abhijit Athavale, and was originally published on PuneChips.com, a PuneTech sister organization that focuses on semiconductor, eda, embedded design and VLSI technology in Pune. It is reproduced here for the benefit for PuneTech readers.)

I was invited to visit the Nvidia Tech Week this past weekend (February 25-26, 2012) at their facilities in Pune. This is a great concept – getting employees to invite friends and relatives to actually see what their company is all about is very good social outreach and a fantastic marketing initiative. If more tech companies in the area do similar events once or twice a year, it will help lift the shroud of technical opaqueness around them. I think hosting similar events in area colleges will also help students realize that even VLSI/Embedded Systems Design is cool.

I was given a personal tour by Sandeep Sathe, a Sr. Development manager at Nvidia and also met with Jaya Panvalkar, Sr. Director and head of Pune facilities. There was enough to see and do at this event and unfortunately I was a bit short on time. It would have taken a good two hours for a complete walk-through, so I decided to spend more time on the GPU/HPC section though the Tegra based mobile device section was also quite impressive. It’s been a while since I actually installed a new graphics card in a desktop (actually, it’s been a while since I used a desktop), but graphics cards have come a long way! Nvidia is using standard PCI Express form factor cards for the GPU modules with on-board fans and DVI connectors.

The following are key takeaways from the demo stations I visited

GeForce Surround 2-D

Here, Nvidia basically stretches the game graphics from a single monitor to three monitors. Great for gamers as it gives a fantastic feel for peripheral vision. The game actually doesn’t have to support this. The graphics card takes care of it. The setup here is that while the gamer sits in front of the main monitor, he also sees parts of the game in his peripheral vision in two other monitors that are placed at an angle to the main monitor. I played a car rally game and the way roadside trees, objects moved from the main monitor to the peripheral vision monitors was quite fascinating.

GeForce 3-D Vision Surround

This is similar to the above, but with 3D. You can completely immerse yourself in the game. This sort of gaming setup is now forcing monitor manufacturers to develop monitors with ultra small bezel widths. I suppose at some point in the next few years, we will be able to seamlessly merge graphics from different monitors into one continuous collage without gaps.

Powerwall Premium Mosaic

Powerwall is a eight monitor setup driven by the Quadro professional graphics engine. Two Quadro modules fit into one Quadroplex industrial PC to drive four monitors. Projectors can also be used in place of monitors to create a seamless view. The display was absolutely clear and highly detailed. The Powerwall is application transparent. Additional coolness factor – persistence data is saved so you don’t lose the image during video refresh and buffer swaps. This is most certainly a tool intended for professionals who need high quality visuals and computing in their regular work. Examples are automotive, oil and gas, stock trading.

PhysX Engine

PhysX is a graphics engine that infuses real time physics into games or applications. It is intended to make objects in games or simulations move as they would in real life. To me this was very disruptive, and highlight of the show. You can read more about PhysX here. It is very clear how PhysX would change gaming. The game demo I watched had several outstanding effects: dried leaves moving away from the character as he walks through a corridor, glass breaking into millions of shards as it would in real life. Also running was a PhysX simulation demo that would allow researchers to actually calculate how objects would move in case of a flood. What was stunning was that the objects moved differently every time as they would in real life. PhysX runs on Quadro and Tesla GPUs. It is interesting to note that Ra.One special effects were done using PhysX.

3D photos and movies

Next couple of demos demonstrated 3D TV and photo technology using Sony TVs and a set of desktops/laptops. Notably, the Sony 3D glasses were much more comfortable compared to others. Nvidia is working with manufacturers to create more comfortable glasses. There was also a Toshiba laptop that uses a tracking eye camera to display a 3D image to the viewer regardless of seating position without glasses. It was interesting. However, the whole 3D landscape need a lot of work from the industry before it can become mainstream.


What was explained to me was that Optimus allows laptops to shut off GPUs when they are not needed. They can be woken up when high performance work is required. This would be automatic and seamless, similar to how power delivery is in on a Toyota Prius. This sort of a technology is not new to computing – a laptop typically puts a lot of components to sleep/hibernate when not being used, but the GPU is not included.

Quadro Visualizations

This allows 2D/3D visualizations for automotive, architectural and similarly complex systems for up to one thousand users at a time. You can easily change colors, textures, views so everyone can comment and give constructive feedback. I was not sure if the design can be changed on the fly as well. Nvidia is working with ISVs like Maya and Autodesk on this.


Tesla GPUs use chips that are used for high performance computing and not rendering, which is different from what Nvidia typically does. The Tesla modules do not have any video ports! It has a heterogeneous GPU/CPU architecture that saves power. In fact, the SAGA-220 supercomputer, dubbed India’s fastest, at ISRO’s Vikram Sarabhai Space Center facility uses 2070 Tesla GPUs along with 400 Intel Xeon processors. In addition to supercomputing, Tesla is very useful in 3D robotic surgery, 3D ultrasound, molecular dynamics, oil and gas, weather forecasting and many more applications.

Tegra Mobile Processor

Next few demos showcased the Tegra mobile applications processor based on ARM Cortex A9 cores. The HD quality graphics and imaging were impressive. It is clear that smartphones and tablets of the day are clearly far more powerful compared to desktops of yesteryear and can support highly impressive video and audio in a very handy form factor.

In all, I had a great time. As I mentioned earlier, Nvidia along with other tech companies in Pune should hold more of these kinds of events to give technology exposure to the larger population in general. I think it is important for people to know that the stuff that makes Facebook run is the real key and that is where the coolness is.

QuickOffice Launches ‘Connect’ – Frontend Developed in Pune

QuickOffice, the mobile office/documents software company, has recently launched Connect by QuickOffice, which is an ambitious platform which allows users to synchronize their documents across all their devices (multiple mobiles), clouds (Dropbox, Google Docs, Microsoft SkyDrive), and computers (office computer, laptop, home desktop).

QuickOffice has an offshore development center in Pune (in Pune-based Synerzip), and this team has played a significant role in this project. Vishwesh Jirgale, Architect and Delivery Head for the Client-side of Connect by QuickOffice writes:

For past one and half year I led a team of passionate engineers for Quickoffice Pune ODC and finally Quickoffice launching their new product in market, Connect By Quickoffice, which will change the way you work.

The entire client side development (Android + iOS + Windows Desktop + Mac Desktop) happened out of Pune ODC where we had large team of DEV + QA.

For more information, see this article