Tag Archives: indicthreads

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
  • IBM RAVE
  • 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
      Guides:
    • Simple Axis
    • Nested Axis
    • Facet Axis
      Layouts
    • Standard sequential/stacking layout
    • Graph Layouts (Network, Treelike)
    • Treemaps
    • Custom Layouts
      Aesthetics/Style:
    • Map data to graphic attributes
    • Color (exterior/interior, gradient)
    • Size (width, height, both)
    • Symbol
      Faceting:
    • 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.

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.

Why?

  • 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.

Event Report: IndicThreads Java Conference 2011

(This article about the IndicThreads Java Conference 2011 was written by Abhay Bakshi for DZone. It has been re-published here with permission for the benefit of PuneTech readers.)

Attending a conference (probably as renowned and as recognized as the Java conference by IndicThreads) adds to your muscle – Period. By the way, I have picked up from the same thread — same tone and similar spirit — from March 2011. IndicThreads held the Q11 conference then, which I had a chance to attend and then write a short report on for DZone. If you attended IndicThreads conferences before, your feedback is also welcome — through your blogs or through places like this report hosting page.

Now, you may ask – How Was the Environment This Time?

First and foremost, I would like to say this — you could feel the thought process from Harshad Oak (Owner – IndicThreads – Conference Organizer) all throughout the conference. When I attended the conference sessions, I could see that one presentation simply led to another one. And somehow I could also relate this fact to the earlier Q11 conference; and could see the passion that Harshad has when he arranges these events.

Just as a side note – Harshad is the first Java champion in India and he continues to serve the IT community. He is ably supported by his wife Sangeeta Oak in these endeavors. This young couple gives a lot of attention to detail for the events!

The Conference Agenda in short

The conference agenda included the following topics (Friday/Saturday — Dec 02/03):

  • The Java Report (Harshad Oak)
  • Scalability Considerations (Yogesh Deshpande)
  • PaaSing a Java EE 6 Application (Kshitiz Saxena)
  • Solr as your Search and Suggest Engine (Karan Nangru)
  • Testing Concurrent Java Programs (Sameer Arora)
  • Scala Collections: Expressivity and Brevity upgrade from Java (Dhananjay Nene)
  • REST Style Web Services – Google Protocol Buffers (Prasad Nirantar)
  • Java EE 7 Platform: Developing for the Cloud (Kshitiz Saxena – yes again! He has awesome topic coverage.)
  • Building Massively Scalable Applications with Akka (Vikas Hazrati)
  • Simplifying builds with Gradle (Saager Mhatre)
  • Using Scala for Building DSLs (Abhijit Sharma)

The presentation slides are hosted at http://j11.indicthreads.com/slides

My Thoughts on the Agenda

On the first day of the conference, I noticed that there are 7 sessions to attend on Friday and 4 more sessions on Saturday. Frankly, I thought there was some kind of mismatch in arranging these sessions. But my opinion changed as the conference went on from Friday into Saturday. The next day was intentionally kept lighter. As an attendee, I now think that your mind probably absorbs and retains more information during the initial parts of a conference. I believe that IndicThreads is getting better overall conference after conference.

What I Wanted to Get from Each Session

I planned on getting 3 things from the sessions (that was my ROI!) — first, how the knowledge earned will apply towards the business domain at my work place; second, my personal interactions with the speaker(s) from networking perspectives; and third, how I can help Harshad and his team and provide helpful feedback. Even with events like NFJS, TSSS in USA, I always received and offered my best to organizers Jay Zimmerman, Floyd Marinescu et al.

I should also mention, I still remember Rick Ross’ keynote speech at TSSS and how it was inspirational to many of us there. Point is that industry leaders like Harshad, Rick, Floyd (and of course some more) are doing everything to lead developers all across the world to be better IT professionals. Sometimes they pay from their own pockets to see results.

The Actual Sessions

I am not going to cover all the details from all the talks, well, it’s not possible. The slides are available for entire content.

The Java Report

In the keynote speech, Harshad mentioned that things moved very rapidly after Sun was purchased by Oracle. He later encouraged participants to have a look at topics such as Java EE 6 Web Profile, Java FX 2.0 (all Java), Java EE 7 and a few more. Harshad raised a point – do you as a Java expert look the same “sexy” today as you did when Java started? The answer is “less sexy”. He also said that Java ME was not offering many new things for quite a while now.

Scalability Considerations

Yogesh covered Vertical Scaling and Horizontal Scaling, and principles behind both techniques. He backed up his presentation with a helpful case study.

PaaSing a Java EE 6 Application

Kshitiz works at Sun/Oracle for last 10 years. He explained PaaS in simpler terms. It was very important to keep things simple. The speech was well accepted by the audience. Just as I was putting this article together, I saw that Javalobby had published a fresh article on PaaS 2.0 — it looks quite relevant to our discussion.

Solr as Your Search and Suggest Engine

It was very good to learn from Karan about Embedded Solr Server versus Commons Http Solr Server, and the various “search” and “suggestion” cases. Karan is quite passionate about Solr.

Testing Concurrent Java Programs

I don’t develop as much concurrent Java code at work as I do some other pieces; but learning from Sameer clicked a few ideas in my mind for a business case that we have at work. We (AEGIS) do some case executions in our workflow, and ideas from concurrency can be applied to what we do. By the way, for the intense session that we had with Sameer, fortunately, there was a coffee break after the session. Hats off to Sameer for how much he knows about this topic.

Scala Collections – Expressivity and Brevity upgrade from Java

Although Dhananjay knew a lot, he was addressing a very specific topic “Collections”. To me, the topic could have been broader (or be split in two sessions). Scala is a powerful language and initial learning curve looks longer for a beginner. I should mention that Dhananjay preferred IntelliJ for Scala-based development — rightfully so.

REST Style Web Services – Google Protocol Buffers

Prasad (speaker) has a background from Akron, Ohio (M.S.). He compared content negotiation techniques (JSON, XML, and Portable Binary Content) with focus on Google Protocol Buffers. His comparison of Google Protocol Buffers with Apache Avro was very apt.

Java EE 7 Platform: Developing for the Cloud

Kshitiz explained the terms IaaS, PaaS and SaaS. There are vendors other than Sun that offer PaaS support — but standards are lacking. He explained Java EE 7 focus on PaaS – Elasticity which has progressed from single node implementation to multi-node multi-instance clustering to SLA driven Elasticity. Refer the slides for more details.

Building Massively Scalable Applications with Akka

Vikas writes for InfoQ. He said that if you wanted to learn Akka, then you needed to keep in mind that Akka was designed to make developer’s life easier by addressing concurrency, scalability and fault-tolerance in applications. The founder of Akka is Jonas Boner, and I find Jonas’ article on Akka hosted by Javalobby at this page. As per Vikas, Akka is good for event-based systems, whereas Hadoop for batch-based systems.

Simplifying Builds (Build Scripts) with Gradle

An excellent slide presentation and visual illustrations by Saager. He corrected the name of the topic to “Simplifying build scripts..”. He compared Gradle with Ant and Maven, and mentioned that Gradle describes builds with only as much text as is absolutely necessary.

Using Scala for Building DSLs

This was the only session where there were no questions from the audience! From Abhijit’s (speaker) angle, it was a bit uncomfortable feeling; but I later mentioned to him that the presentation was so straight-forward (note – not an easy compilation) and neatly arranged, the questions were answered even before they were asked. I recommend – just download the presentation, and you will get to see what I mean. Good to learn about Scala in this domain.

Every session was little over an hour. And all speakers covered their sessions very well.

Past Reviews of IndicThreads Conference on Java

Some of the celebrity authors and speakers like Arun Gupta and Vikas Hazrati have reviewed their prior Java IndicThreads conference experiences by writing articles on their respective blogs (you may access the reviews: Arun, Vikas). It is rewarding to learn from such experts in the field.

Lastly, about the Food and Quizzes and Prizes!

I believe, Sangeeta made awesome choices for food at lunch and the breaks! As well as, she put up short quizzes and announced prizes in different categories. IndicThreads have maintained the “Green” theme and I won a prize in that category.

My Top Three Take-away Points

My top three take away points from J11 are – rejuvenating yourself by looking at technical topics from speakers’/attendees’ eyes and adding to your knowledge, networking with experts so that you can offer your best and receive the best from them, and just knowing where the Java industry stands today.

Conclusion

There was an “Unconference” session, where everybody who participated voiced a need for the Java groups in the city to come together. I get a feel that awareness in the industry about such conferences is increasing, and demand for such speakers and quality offered by these conferences is going to increase in few more short years.

Harshad encourages local speakers to come out and respond to the RFPs (and participate). For those who only want to attend can also win a FREE pass to the conference! All in all, it was worth attending the Java conference by IndicThreads.

Java Knowledge Contest to win free tickets to IndicThreads Java Conference

PuneTech is pleased to announce a Java Knowledge Contest which will give the winner a free ticket to the IndicThreads Java Conference.

The 6th Annual IndicThreads.com Conference On Java will be held on 2nd & 3rd December 2011 here in Pune. Sessions at the conference discuss topics like JavaEE 7 & the Cloud, Java EE 6 PaaS, Scala, Scalability, Concurrent Java, Gradle, JavaFX, REST Web Services, Google Protocol Buffers, Solr Search, JavaFX, Akka & more.

IndicThreads has been running a Java Conference in Pune for the last 6 years, and claims to be the oldest vendor-neutral Java conference. It is a great place to learn & discuss Java. You can check out PuneTech’s previous coverage of IndicThreads conferences to get an idea of our opinion of these conferences.

This Java Knowledge Contest will give two PuneTech readers the chance to attend this conference for free (which otherwise costs Rs. 3500 (2500 for students)). The contest is open to all, and all you need to do to enter is take one of these Java Knowledge tests:

Quick rules:

  • Complete the challenge on or before 6pm on Monday, 28th November, 2011.
  • Each of the above two challenges will have one winner who gets a free ticket. You can enter both if you so wish, but you will be allowed to win only one.
  • The ticket is not transferable. If you don’t want the free ticket, let us know, and we’ll give it to the next highest scorer
  • Names of judges (for the subjective questions contest), and tie-breaker rules (for the objective questions contest) will be announced soon.

For more details about the conference see: http://Java.IndicThreads.com

(Disclaimer #1: PuneTech has a policy of not promoting paid events, except under these circumstances:

  1. We publicize calls for speakers of conferences in Pune, especially if selected speakers get a free entry to the conference
  2. We publicize events where the fees are reasonably low, or if the event is exceptional.
  3. We publicize contests related to such events if that will result in PuneTech readers getting a chance at free tickets
  4. We allow addition of paid conferences to the PuneTech calendar, and will sometimes tweet about them, but they are not allowed on the PuneTech front page unless they satisfy one of the criteria above
  5. We are happy to publish event reports after the event, if they match up to our quality expectations.

This contest is being published on PuneTech due to reason #3.

Disclaimer #2: The contest is being run on ReliScore.com. Since the founders of ReliScore are also the people behind PuneTech, we try hard not to misuse PuneTech for publicizing ReliScore (due to the conflict of interest). However, in this particular case, since the contest benefits the community, we felt it was acceptable.)

Call for Speakers – IndicThreads Conference on Java – Dec 2011

The call for speakers for the 6th Annual IndicThreads’ conference on Java is open. The conference itself is in December, but the CFP closes this week (10th September) and you should submit a proposal.

Pune’s http://IndicThreads.com has been holding Java conferences since 2006 and the feedback on their conferences has generally been good. You can check previous PuneTech coverage of IndicThreads to get an idea.

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

Suggested topics are:

  • Java Language Specs & Standards
  • Enterprise Java
  • Java For Mobile Devices
  • Java for Multi-core Computing
  • Optimization, Scaling, Caching and Performance Tuning
  • Cloud Computing for Java
  • Rich Internet Applications
  • Languages for the JVM
  • Frameworks
  • Enterprise Architecture
  • Spring
  • Virtualization
  • Social Networking
  • Security
  • Agile
  • Java RIA
  • New and emerging technologies
  • Case Studies and Real World Experiences

For more details see the conference webpage

As to why you should bother to submit a proposal, see this post written for an earlier CFP which gives the reasons. And go for it now.

Note, there is also a call for speakers open for the ClubHack conference. So that gives you two avenues to showcase your work.

Event Report: IndicThreads Conference on Mobile Application Development

(This is a live-blog of the IndicThreads conference on mobile application development that is currently happening in Pune. Since this is a live blog, so please excuse the greater-than-normal number of errors and lack of coherence sometimes.)

NFC in mobile devices – Ashutosh Tripathy, Talentica

Ashutosh Tripathy talked about NFC in mobile devices and why it is important. NFC is “Near Field Communication”, which is a very short range wireless communication between devices. The range is very low – just a few centimeters, and the bandwidth is also low – just 424kbps max. But the important thing is the ease of use it gives in a large number of use cases – e.g. event tickets, sharing business cards, ID cards, easy printing, file sharing, mobile payments etc.

The important thing about NFC is that it does not work at a distance (and it can be configured so that it does not work when the screen is off). This means that NFC communication can only happen with the knowledge of the user of the device. Thus, for many applications you can get rid of complex security procedures and passcodes that are needed to prevent malicious users from getting access to your device without your knowledge.

For example:

  • Bluetooth + NFC gives instant Bluetooth pairing – without requiring passcodes and other complex mechanisms. So if you want to transfer a file between two devices, you bring them close together and NFC is used to set up the Bluetooth pairing. After this, the actual file transfer happens over Bluetooth, so that it will continue to work even when distance between the devices is increased.
  • Wi-Fi + NFC can similarly give very easy to use wi-fi configurations

NFC Enabled Phones in the market already:

  • Google Nexus S (Android)
  • Samsung Galaxy SII (Android)
  • Nokia C7
  • Blackberry Bold 9900 and 9930
  • Nokia 6131

Upcoming and rumored:

  • iPhone 5
  • Nokia N9, N5
  • Lots of Android 2.3.3 phones
  • LG Optimuz NET
  • Various Samsung BADA OS based phones

It is expected that most new smartphones will be NFC enabled soon.

Ashutosh followed it up with a demo of how to build an NFC app on Android.

Developing mobile enterprise applications – Yateen Shaha, SAS

More and more enterprise apps are now mobile enabled. The primary business drivers behind this trend is increased productivity, faster/better decisions, and thus competitive advantage.

Important Things to worry about when building enterprise mobile apps:

  • Delivering the right functionality – not all functionality can be supported in the mobile device. So choosing what is in and what is not included is important
  • Access Everywhere – User should be able to access the app from inside the company intranet, but also from outside over public networks.
  • Offline Access – Should be allowed
  • Protecting data – Security is very important to enterprise customers, so you need to take great pains to keep them happy.
    • Authentication could be device based, or user based, or ideally both.
    • Data Encryption:
      • Over the Air: The data being sent over the public internet should be encrypted
      • At Rest: The data stored on the device should also be encrypted, so that if the device gets lost, the data is still protected
  • Storage/Bandwidth limitations – Since storage and network bandwidth on the mobile device is going to be limited, you need to carefully design the architecture of the app (and the backend services supporting the app) in such a way that it does not require lots of data to be downloaded and stored locally.
    • Some of the decisions could be based on what kind of network connection the device is currently using. Thus, use network liberally when on wi-fi but be more careful when using 2G or 3G.
  • Code Reuse – having to maintain two different code bases, one for desktop apps, and another for mobile apps is a pain. Design the overall app (e.g. by using model-view-presenter patterns) so that maximum code is reused.

Tips and tricks:

  • Cache whenever you can, to improve performance
  • A good user experience is very critical – much more so than for desktop apps
  • Must take advantage of device features
  • Performance and Response time is critical for user acceptance

Other Talks

There was a panel discussion on “Mobile is the next Desktop.” I was one of the panelists, so unfortunately, I could not live-blog this. Topics discussed were why mobiles are going to take over the world, how developing for mobiles is different from developing for PCs, how the fragmentation in mobile (devices and platforms) is a huge pain (with no solution in sight), how html5 might or might not replace native apps, and other topics.

Mayur Tendulkar gave a presentation on Windows Phone 7. Most of what he said was similar to the talk he gave a few months back at TechWeekend 7, so I’m not repeating it here.

Abhay Aggarwal, from Xebia India talked about building an app that needs to target multiple screens. These are the various sizes available: 240×320, 240×400, 320×480, 360×640, 480×800, 540×960, this doesn’t even count the tablets. He talked about a process & architecture that would minimize the pain of doing this.

(At this point I had to leave even though there where two more talks later in the day, and a full day of talks the next day that I could not attend. However, the presentations are online at http://m11.indicthreads.com if you’re interested.)

Call for Speakers: IndicThreads Conference on Mobile App Development – 2011

Regular readers of PuneTech will know that we believe IndicThreads conducts the best vendor-neutral tech conferences in Pune, and hence we’re usually glad to promote the CFP for their conferences. Currently, the CFP for their Mobile Applications Development Conference (to be held in Pune on 19, 20 August 2011) is open and we would like to encourage our readers to submit proposals.

Since IndicThreads is a paid conference, PuneTech does not promote the conference itself on the PuneTech home page, but we’re happy to promote the call-for-speakers, since that is free, and it allows the selected speakers to attend the conference without having to pay. There are of course other benefits to being a speaker at one of these conferences – including increasing your visibility, becoming known as a domain expert, etc.

This CFP is soliciting speakers in the areas of mobile applications, mobile application platforms, frameworks, tools, testing, performance, security and in general anything interesting related to mobile applications.

The last date for submitting the proposal is 15th June, and right now, you only have to submit a short abstract of what you will be speaking about. So, it is as easy as just clicking here and writing one paragraph about whatever work you’ve been doing in the area of mobile app development recently. Just do it.

My Experience at the IndicThreads Conference on Software Quality

(This post by Abhay Bakshi, a techie who has recently moved to Pune, is about the IndicThreads Conference on Software Quality that was held in Pune recently. This post first appeared on DZone, and is reproduced here with permission.)

Typically, it was about a week’s planning before I got to attend the IndicThreads conference.  I didn’t know that the conference was taking place on Friday until I got an invite by Harshad Oak through LinkedIn.  I took permission from my authorities at my work place, took Friday off and was looking forward to this 2-day conference in the city of Pune, India.

I had attended (TSSS 2003, USA), presented at (FIE 97, USA), and written about (NFJS 2005, USA) conferences in the USA — but had never attended one in India, specifically in Pune.  Honestly, I was eager to.

Expectations

From my background in attending conferences in the USA, the expectations were high in my mind — the glamour, the large-size attendance, the goodies and the prizes to receive, the signed copies of books from authors, the networking and food (!) for two consecutive days.

On many of these fronts, Q11 by IndicThreads delivered and delivered well!  Yes, they did a pretty good job indeed.

Benefits

Benefits to receive are up to the individual, I believe — how much you want to take away.  That includes the speakers too.  In USA, I had paid $675 USD from my pocket to attend an NFJS weekend show and my employer was also surprised (pleasantly) then. But even today, I benefit (because I choose to) from that attendance.  It becomes easier to get in touch with authors / speakers / fellow attendees.  That is just one benefit.  The other benefit is — from your regular everyday schedule, you get out and see in reality what other developers / IT engineers are doing.  That opens a whole new perspective and regains energies for you in multitude.

Who Hosted the Conference?

The Q11 conference was hosted by Harshad Oak (Rightrix Solutions).  Harshad is the first Java champion in India and has served and continues to serve the overall IT community in several ways.  For his achievements, he is not that old – in fact quite young. 🙂

The thought process, as put in by Harshad, could be felt all throughout the conference

The Actual Sessions!

Every session was little over an hour.  That was good so that an otherwise information overload could be avoided.  Timings of the speakers were awesome — plus it didn’t feel that the speakers were running a race against time at any point.

The conference covered the following topics (all slides available on Slideshare):

  • Image Based Testing – Application Technology Independent Automation (Girish Kolapkar)
  • Proving correctness of a multiplayer game server (Nirmalya Sengupta)
  • Continuous Integration: A Case Study (Vaibhav Kothari)
  • Cloud based Testing for Mobile Applications (Dada Mote)
  • Test Automation for Mobile Applications (Dipesh Bhatewara)
  • Test Automation on Android Using Robotium (Amit Dixit)
  • Testing Flash and Flex for Accessibility (Rashmi Aghor)
  • PerformFuzz the Web Interface (Aniket Kulkarni)
  • Keyword Driven Automation using Selenesse (Ameya Naik)
  • Platform Independent Migration Testing Framework (Vishal Harane)

All speakers and sessions were accommodated fine by Harshad and Sangeeta (his wife).

It would be unjust to pick only one speaker that stood outstanding — everyone did a great job (offered their 100% for the attendees).  The professionalism was at its best.  This was probably the first time in the last 15 years that I interacted so closely with professionals in the IT industry in India.  All this was a superb learning experience for me.

Particularly speaking, Dada Mote, just for his zeal to learn more and offer more, had done a fantastic job.  I was amazed to see that he was accompanied by his boss who arrived just to give Dada moral support.  They both drove in from Mumbai.  Dada knows what he is doing.

Again, I do not have any bias for any one speaker (don’t even know Dada Mote in person that well!), everyone did so very well for us.

Vishal Harane, for what he put together at his work place using ANT (just under 3 days), was simply a great experience to watch and learn from.  I can go on and on like this for every session, but the space is limited and I have to get back to my work as well.

My Comparisons with the Conferences in the USA

The comparisons with the conferences in the USA will loom over my mind, by default.  But I attribute a few things lacking to the growth aspect of conferences at IndicThreads.

My mind was tuned to having parallel sessions and being able to choose a session where I want to get trained.  At Q11, there was however only one big hall for learning!  I couldn’t think of many “lacking” points at all.  Harshad has good experience in arranging the shows.  The professionalism shown by speakers was one of the best, as I mentioned earlier.  The consistent slide formats, good designs, aspects on the content arrangement for maximum absorption by the slide readers, real-time Q & A sessions, quizzes and prizes were all welcome and gave a pleasant appeal to the overall event.

What Can be Better / New Ideas

An obvious general difference between East and West — usage of English (well, I struggle myself with arrangement and good choice of words, as you can see in this article) during presentation.  And so we do not need “perfect” skills, just slight modifications with an element of clarity transferred from that in the slides’ content to every sentence that you speak.  Again, that’s about clarity only and nothing about undertaking the usage of any fancy English.

When speakers implement (more) clarity during speeches, here is a new idea for this conference (just for the sake of it) –> Harshad can even think about live broadcasting of the conferences where people from outside India can join the live sessions.  Yes, Harshad can charge a fee for such attendance. 🙂

The Best Take-away Point

The best take-away point for me will be the personal interactions with the fellow attendees and speakers.  A few of the speakers are local to the Pune city, and therefore if I were to get / offer help at any point regarding new emerging topics, I can rush for a get-together to a place which is only at a drivable distance.

Harshad encourages local speakers to come out and respond to the RFPs (and participate).  Hopefully, in the future, there will be “parallel” sessions (!), offering choices of topics, at conferences like Q11.

Call for Speakers – IndicThreads Conference on Cloud Computing

Pune’s http://IndicThreads.com, which organizes various conferences in Pune every year, has a call for speakers for their 2nd Conference On Upcoming Technologies to be held on 3rd and 4th June 2011 in Pune. The theme for this year is again Cloud Computing.

Look at these PuneTech posts (article 1, article 2) to get an idea of what last year’s conference was like. Look here for slides of all the talks last year.

If you’re an Industry Professional and have any experience with Cloud Computing, you’re encouraged to submit an abstract by March 31st April 10th. The suggested topics are:

  1. Cloud /Grid architecture
  2. Cloud-based Services and Education
  3. Infrastructure as a Service (IaaS)
  4. Software as a Service (SaaS)
  5. Platform as a Service (PaaS)
  6. Virtualization
  7. High-Performance Computing
  8. Cloud-Delivered Testing
  9. Cloud Lock-in vs. Cloud Interoperability
  10. Multi Cloud Frameworks & APIs
  11. Monitoring Cloud Applications
  12. Data Security & Encryption On The Cloud
  13. Elastic Computing
  14. Cloud Databases
  15. Private vs. Public Clouds
  16. Cloud Scalability
  17. Cloud Analytics

But don’t be limited by these choices.

Click here to submit a proposal. Remember the deadline is 31st March… and all you need to submit at this time, is a one paragraph abstract.

Event Report: Startup Saturday Pune on Technology in Education

(This report of the Feb 2011 Startup Saturday Pune, by Vishwa Vivek Garg, first appeared on eventNU, and is republished here with permission)

For the Feb 2011 Startup Saturday Pune on Technology in Education, we got speakers from IndicThreads, Millenium School/ myEshala, NextLeap, Synthesis Solutions & kPoint.

IndicThreads – Harshad Oak

It started with Harshad Oak of IndicThreads.

IndicThreads organizes tech conferences such as java, cloud computing, mobile computing, etc. As of now it is only within Pune but in long run they want to spread all across India. These conferences are paid and the overall response is good. Harshad used to work for Cognizant before he started (along with his wife) IndicThreads. He is basically a Java guy and got some renowned certifications. He also authored a Java book. While sharing his entrepreneurial journey, he mentioned that writing a book on Java helped him a lot starting his venture.

So do something & participate in various things so that people start recognizing you.

Millenium School – Nikhil Karkare

2nd presentation was from Nikhil Karkare of Millenium School. He talked about the concept of ‘no school bags’ for children of Millenium School. It is a day boarding, state board school where kid gets almost everything within the school campus. Kids don’t take any school bags to school. They give books/ copies within the school and kids practice it.

He mentioned that since the concept of no school bag was new, initially they faced some difficulty convincing the crowd.

A related query arised, “how do parents know what their kids are doing in the school?”. They daily send sheets of whatever their kids have done during the day.

He also talked about their learning tool called myEshala where they provide video CD to parents for the syllabus and child can practice it at home as well.

NextLeap – Suruchi Wagh

3rd presentation was from Suruchi Wagh of NextLeap.

NextLeap is a recommendation engine for students seeking admission in American universities. They work on freemium model where they suggest 3 universities free of cost. They have 2 other accounts called economy & advanced where they suggest more universities and support on phone as well.

They have 3 guys on advisory board and Alok Kejriwal of Games2Win/ Mobile2Win/ Contest2Win is one of them.

Synthesis Solutions – Swapnil Patil

4th presentation was from Swapnil Patil of Synthesis Solutions.

Swapnil talked about his new venture in education field called GetAdmission.in

kPoint – Avijit

Last presentation was from Avijit of kPoint.

kPoint is a product of GSLab (a soft. dev. comp.). It is a cloud-based solution for multimedia learning and sharing in fast moving organizations. kPoint enables easy capture of expert knowledge into multimedia kapsules, which provide searchable video and flexible navigation of content for informal learning. kPoint effectively overcomes the barrier for creating and sharing content.

With that we came to an end of the event and then participants networked with each other over cold-drink and snacks. It was a successful event with around 80-90 participants.

Next meet will focus on how to take your idea/ product into the market.

About the Author – Vishwa Vivek Garg

Vishwa has 11 yrs. of rich web development experience in which he has worked at various levels from software engineer to project manager. He has worked with startups as well as well-established software companies. He loves the startup culture and tries to help the ecosystem. He has managed startup meets in Pune, India for more than a year through Startup Saturday Pune Chapter.

Vishwa co-founded eventNu.com as a hobby project and it helps him understand various aspects of running a business. He is very hopeful that this will help him in his journey towards entrepreneurship.

He consults with startups on development and business strategy.