FOSSASIA 2016 :Asia’s Largest Open Technology Summit

This year’s FOSSASIA conference was a full circle for me. I had attended my first FOSSASIA conference last year which is where I first met Harsha Siriwardena and Michael Downey from OpenMRS and became heavily involved first through Google Summer of Code 2015 and then as Release Manager of Platform 2.0 and the Developer Tools Manager.


We kicked off the Singapore trip with a presentation at Hackerspace Awesome Talks at HackerspaceSG. It was a great experience introducing OpenMRS to hacker community in Singapore.

I spent a lot of my time outside the conference visiting a few spaces in Singapore that could be ideal for the OpenMRS hackathon including HackerspaceSG, The Hub, a few locations in Chinatown etc.


I teamed up with Huiren to take the hackathon forward and have been able to establish some progress on that front as a result of our efforts during FOSSASIA. We already have a developer forum slot for 14th April to discuss the current proposal with OpenMRS community. In addition, we proposed a brand new health track for FOSSASIA ‘17 where we plan to feature talks, sessions and workshops related to Healthcare IT and associated fields, I recently got a follow-up mail from Mario Behling and I will keep on it to make sure we have  a full-fledged health track at the next FOSSASIA summit.


FOSSASIA  officially began from 18th.This year, FOSSASIA was even bigger and better with a lot more leaders/contributors and a longer list of attendees, more than a 1000 participants and about 200 speakers from 32 different countries. That’s a truly global reach and a fantastic melting pot of developers from all walks of life.  What really makes this valuable is that each and every person at the event is someone who’s been working on something really brilliant and it’s always a great learning experience to talk to them and also collaborate with them.  I met a lot of people passionate about space, including Cal Allman, Stephanie Taylor, Hong Phuc, Mario, Harish Pillai, Huiren, Daniel Pocock etc. As the person on the other side of the table representing OpenMRS, I found a lot of interest among the developers and students attending about the work that we do at OpenMRS and how they can be a part of it.



I attended the keynotes by Harish Pillai where we concluded why Open Source is the foundation of all software being produced today and that it’s they key to the future of software industry. Cat Allman from the Google Open Source Programs Office talked about the awesome work being done by their team and why Google loves Open Source, In a slide where she talked about the open source science projects, OpenMRS was featured



Besides the keynotes, I attended a number of talks and sessions at FOSSASIA, including the 5 hour Node-School workshop, the workshop on Free Real-time Communications (SIP, XMPP, WebRTC) by Daniel Pocock,mining public large-scale datasets with open source tools by Alexander Bezzubov from Apache and Anomaly detection by Adam Drake. I really liked the talk by FOSSA, the organization leading open source projects in Vietnam .


I gave a talk on Saturday, March 19th on my Oauth2 project with OpenMRS. In my talk, I introduced the attendees to openMRS and what the community does. The core of the discussion was a quick introduction on how developers can set-up an OAuth2 authorization server and start managing the interactions of third-party applications with their system/APIs.


Following up on the RTC ladder, I also Alexandre Lision’s session on how Ring is a secure and modern open source RTC app.I also attended Saptarsi’s awesome talk on the networks and certification process of the openMRS community and spread the word about OpenMRS as much as possible, especially for those interested in the health track and the upcoming hackathon that I’m helping plan. The pre-summit Meetup at Redhat, Dinner in Bugis-Steamboat and drinks with speakers at Clarke Quay before the event gave me a chance to talk to some of the speakers and Redhatters.I also talked with a lot of people at the conference about the work being done at OpenMRS and we can expect new community members and contributors to our community in the coming time.



OpenMRS Summit : Where amazing happens!

I first found out about OpenMRS through the FOSSASIA Summit in Singapore in March this year. Since then, I have become heavily involved with the community first through Google Summer of Code 2015, where I developed a module to implement OAuth2 support and also worked on the FHIR module. Now, as Release Manager for Platform 2.0, I am leading the release process for our next major Platform, incorporating the latest tech stack in the core-API and migrating to REST’ful architecture. Additionally, as Developer Tools Manager, I have been working with the Infrastructure team for administration and maintenance of Atlassian JIRA, Confluence & Bamboo, Sonatype Nexus Maven repository, OpenMRS modules and Github.

The OpenMRS community has been instrumental to my involvement. The level of help, support and endorsement from developers has been truly inspiring.  The First Annual Worldwide Summit gave me the opportunity to convene with the project leaders in person for the first time to discuss, learn and brainstorm fresh ideas and perspectives. For me, it was eye-opening to meet the implementers, professors and medical professionals who use OpenMRS – actually hearing from them made me understand how the coding and developing is helping people all over the world.


I have quite an interesting anecdote about getting to OpenMRS- I was almost not able to make it due to exam scheduling conflict with my college and had to persuade my Head of Department to allow me finish exams the week prior to when they were scheduled. The sleepless nights before the Summit as I was scrambling to finish my semester requirements were worth it when I finally got to Singapore. It was The first person I talked in depth with was Wyclif,  who used to be Scrummaster before I took on the role and id among the top developers of our community. After that, it was all about putting faces to the names especially at the Pre-Summit BBQ dinner where I got a chance to talk to Burke, Paul, Darius, Suranga, Michael, Pascal, Kaweesi, other developers and implementers and understand their vision and motivation for being part of the organization. I knew I was in the company of good people when we “open sourced the food”, i.e. put leftover food into boxes and left those for those who might need it.


They say that the best learning comes from teaching and that was exactly my experience from giving the Lighting Talk on Platform 2.0. I got a lot of questions from implementers about the transition and new features before my talk that it made it easier for me to prepare what to highlight. As a result, the lightning talks were among the most appreciated sessions at the Summit. kudos to all our speakers!  Another experience I want to highlight is the hackathon where my team and developers were more cooperative than competitive, which had been my experience with past hackathons. So, I was pleasantly surprised when we were among the top teams. This experience for me encapsulates what makes OpenMRS so successful, it’s all about co-operation and friendly competition.

Additionally, the Summit enlightened me about new projects and opportunities to get more involved in ways that would accelerate the platform use and community membership. I learnt about Bahmni, which is an Indian Healthcare IT platform that incorporates OpenMRS and is supported by Thoughtworks, by attending their hands-on session. I got a chance to talk with PIH implementers from Haiti and Africa.This basically
allowed me to meet the community leaders and implementers and see OpenMRS through their eyes. Hence, making me more focused and more appreciative of my role as a Release Manager and Developer Tools Manager for our community.


This week-long Summit impressed on me again and again the power of amazing people in the community which makes OpenMRS what it is. After meeting with Neha from JHU, Maurya (my manager) and Pankaj, we decided to establish an OpenMRS community in India and laid down an initial plan. We intend to organizer multiple hackathons and meetups in different cities to get people acquainted with openMRS and possibly, get them involved as contributors.

Compared to other conferences I have been to, the Summit was very well-planned with a good mix of fun and work. I was able to hang out with hangout with my GSoC mentor, Harsha and colleagues from infrastructure team, Michael and Robby. I took some folks around for a tour of Little India, went tech shopping at Funan DigitaLife Mall with Paul, Burke and Robby as we were tasked to buy the prize for Scavenger Hunt winner.


What really made this Summit feel like a full circle was when I met Hong Phuc Dang, the founder of FOSSAsia who invited me to join their next conference as speaker. It was great to see OpenMRS and FOSSAsia support each other and employ the power of open source!

I’d really like to thank the OpenMRS community for giving me the opportunity to learn and contribute.

Interesting C++ ambiguity on Arduino

So, I am creating a Myo/ Arduino based URC and had an interesting c++ encounter.

Less talk, getting straight to code (have less time, gotta get back to work!!). Using pastebin as this is not a self hosted blog and WP won’t let me install the code snippet plugin.

What fails to work is :

That is, when I return the address of a variable (i.e &code) from a function that returns a pointer. I get a junk address.

For the record output was

code value from inside : A90
Oustide file : C002101

However if I return a pointer type variable from a function that returns a pointer type variable, everything is good

What works is this :


The output was :

code value from inside : A90
Oustide file : A90


So apparently, when using  something like

Code temp_code = Code();

Code* var = &temp_code;

in Visual Micro for Arduino (Atmega 328) programming, the execution environment faces some sorta ambiguity.

Will analyse this later. Currently, hack mode is on \m/



Week 13 : GSoC’s a Wrap

The module has come out pretty well so far. Token persistence has been accomplished using spring-jdbc. I am working on documentation and refactoring the UI to match the backend client structure.

Even though GSoC is up, I will stick around OAuth2, FHIR and OpenMRS for a long time 🙂 I am really excited to keep contributing to the community.

GSoC 2015 has been a great learning experience for me and I have definitely become a better web developer over the past few months.

The video demonstration and docs will be uploaded very soon. So keep following the project


Week 12 : Testing and Documentation

Only a few days are left before GSoC final pencil’s down date.

I have made some major changes to the OAuth Client to make it’s persistence easier in the database. Currently I am modifying the omod layer to reflect the changes introduced during the database migrations.

The Demo Server is complete with token, client and user persistance and I am migrating parts of code to the OAuth2 module and customizing it for OpenMRS.

I will be done with the programming part by Wednesday and will work on documentation and user guide for the remaining period 🙂

Looking forward to these last few days of the amazing GSoC journey

Week 11 : Almost there

The project is on track and we will have a fully functional OAuth2 server in OpenMRS by the end of GSoC

I am finishing up persisting UserDetails, ClientDetails, Tokens and Authorization Codes in the database. They have been implemented in the demo OAuth server and I am migrating them to the OAuth2 module.

I will try to finish up this part by the weekend and devote the remaining time on documentation and creating notes for developers and implementers on how to use the module.

I am excited and looking forward to a productive week 🙂

Custom Authentication Provider in Spring

daniel's devel blog

The Spring Security module supports by default some standard ways to retrieve user information for authentication from databases, LDAP or other commonly used storages. But unfortunately the Spring documentation does not say much about creating connections to custom data sources. There are actually several different ways to do it.

But let’s say we have a Spring MVC application with a login form which contains a user name and password field, but the application does not use any of the supported methods to store the user data. How can we authenticate the user anyway?

The easiest way in my opinion is to create a new authentication provider. So we simply need to implement the AuthenticationProvider interface.

The authenticate() function of the class must return an UsernamePasswordAuthenticationToken instance if the authentication is successful or null otherwise. You can choose another token, simple check the classes implementing AbstractAuthenticationToken. But for our scenario…

View original post 77 more words

Basic transactions in Spring using TransactionProxyFactoryBean

Nerd Notes

UPDATE – Aug 29, 2011: I see that quite a few sites link to this article. Please keep in mind that I wrote this at the beginning of year 2007. While it should still be valid, more recent versions of the Spring Framework have largely simplified the approach described here and the online documentation about transaction management is far more complete, precise and straightforward than what I wrote years ago. I strongly encourage you to read the Spring documentation for the most up-to-date details.

Scenario: you have a simple stand-alone java application which accesses a single database using spring DAOs and you want to make your application’s interface transaction aware.

Now, while there’s plenty of ways to achieve this, the fool-proof, working approach is to make use of Spring’s declarative transactions and the TransactionProxyFactoryBean.

Here is an example BeanFactory configuration file:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""

View original post 629 more words

Week 10 : Custom Token Store

Development was on track last week and I did not face any major blockers. Yaay!! Hardly there are weeks when developers do not encounter life-threatening bugs.

I have set up Authorization code grant type and Client credentials grant type as well. Now I am focusing on the major task of Token Persistence and setting up tests for spring security.

I have tested the JdbcTokenStore that comes with the Spring Security OAuth API. It works fine. But, I will be writing a new Token Store that uses the hibernate session factory

My college re-opens this week. I will be coding in the evenings of IST timezone from now.

Looking forward to the week 😀

Week 9 : Grant Types

This week I completed the configurations for Resource Owner Password Credentials grant type.

I was sick for most of the week and hence development activity was not too much.

As discussed on the 6 July Design Forum, I have put up a demo video to show how the OAuth2 module will provide OAuth2 support to other modules (FHIR module)

For this week I plan to complete the remaining Grant Types and provide a Custom Token Store