Sunday, December 4, 2016

Thrills of entering into the fascinating world of AI.

As you know I started my career(exploration) as Web Developer. When mobile came to market, then I jumped to mobile app development. Started with Android and couldn’t stop me to explore iOS too. I published few educational apps,financial app,health app in android & some image processing/facial recognition app in iOS. Once while reading a blog I encountered this term “Mobile app with Intelligence”. It left me to think. Aren’t all the apps intelligent? Am I creating dumb apps? How to make then intelligent apps? I just researched in internet. This way I met IBM Watson. To know more about Watson and learn from experts I attended the IBM Watson Developer Conference in San Francisco which took place recently in last November.

I came to know lots of things about Watson. But again just to know isn’t sufficient. I want to try hands on and wish to create my own intelligent apps. My exploration was on and while researching how to create by myself, I stumbled on this course by Udacity Nano degree program The course tag line is “Learn to build impossible”. I guarantee if someone is a developer at heart can’t resist this word. So I couldn’t. I signed up for the course. I signed very late,almost it reached 9000 number at that time. Still I signed, I was waiting for the selection which was scheduled to be declared on Dec 2. I got my acceptance offer on Nov 30. There are only 500 seats in the first batch while applicants were 10,000.It was very competitive. I feel thrills to enter the fascinating world of AI.

The leader in cognitive technology IBM Watson, Amazon Alexa & DIDI chuxing has designed the course. They will train the future Artificial Intelligent Engineer. 

I don’t know driving yet. I wish to train my car and make it AI enabled and use it. Now I can talk with car using IBM Watson conversion as here .Like for example if I say turn on light, wipe the screen, where is nearby restaurant?  it can do this things for me. Need to know more from Sebastian Thrun who is my current instructor too for AI and pioneer of the Self-Driving Car space.

As IBM CEO Ginni Rometty said in keynote she envision the future world to be man & machine. I envision that too. Everything from education,health, finance,telecom will take advantage of AI. Nothing can be escaped from it.It really interesting to be in this field and to create cool intelligent app, talk to robot, train robot.

Tuesday, November 15, 2016

My experience in attending IBM Watson Developer Conference in San Francisco

I attended the Watson developer conference which took place in San Francisco on Nov 9th & 10 to know more about cognitive technology. Yes I enjoyed the event and came to know about artificial intelligence. 

IBM CEO Ginni Rometty’s keynote "The world we envision is man AND machine." was inspiring & empowering one. I noticed one more thing in her speech, she desperately need developers who will give shape to her vision.

They had parallel track of talks. I wish I could attend both. 

These are following I attend.

Turning Visual Recognition Into Video Recognition

IBM Watson AI XPRIZE for Innovators

Why Audience Intelligence Requires a Modular AI Approach

Intelligent User Engagement with Chat Bots

The Future of Discovery – Deep Insights with Cognitive APIs

I met Olli which is the first vehicle to use cloud-based cognitive computing from IBM Watson Internet of Things to analyze and learn from 30 sensors embedded in the vehicle. Four Watson developer APIs were used that allow Olli to interact with passengers: speech to text, natural language classifier, entity extraction and text to speech. Not only it looks interesting. Riding on it & to train olli might be more interesting than this.

Thursday, May 19, 2016

My experience in attending the Apache Big Data & ApacheCon conference 2016 held in Vancouver,BC

I am a contributor and associated with Apache Fineract(incubating) project.
Apache Fineract (\’fīn-,ә-,rakt\) is an open source system for core banking as a platform. Fineract provides a reliable, robust, and affordable solution for entrepreneurs, financial institutions, and service providers to offer financial services to the world’s 2 billion underbanked and unbanked.

Last week I attended two biggest conference of North America. One is ApacheBigdata & another one is ApacheCon. Luckily both the conference were in my home city Vancouver. I got the chance to attend both. Around 3000 attendees from around the world attended the conference and it was held in Hyatt Regency Vancouver. It gathered together the Apache projects, people and technologies working in Big Data, ubiquitous computing and data engineering and science.

Before this event I did not have much knowledge about the Apache’s other cool projects. I came to know about Apache Hadoop, Twill,Spark,Kafka,Zeppelin.Bigtop,Cassandra. As a computer science professional I was always wanted to know(curious) how the big applications like LinkedIn, Netflix ,Intuit and other like so manage so many number of users. Engineers from these companies explained about their infrastructure and how the open source softwares like Hadoop,Spark ,Kafka, Twill and others are the backbones and it does the heavy lifting. They act like plumbing and enables smooth running of biggest applications.

Apache Zeppelin caught my attention. Like Google Document revolutionized the way we create document collaboratively, Apache Zeppelin is the online data visualization tool.One can make beautiful data-driven, interactive and collaborative documents with Spark SQL,Python, Scala, Hive, Flink, Kylin and more. Zeppelin enables rapid development of Spark and Hadoop workflows with simple, easy visualizations. On writing the simple SQL it generates graph on the fly.It includes the interpreter for different language.
One interesting topic was "How to become Well Rested App Developer Rockstar" by Glynn Bird Developer Advocate @ IBM. I can rest & rock too. How ?

He spoke how to secure data layer and one can be in peace of mind while the database is safe and not vulnerable. This can be achieved with a managed database service that:

  • Gives users increased visibility and control of technology environments
  • Enables users to spend less time obsessing over their database
  • Provides simpler integration between technologies
Topics were quite interesting and it left me in a state to know more about this. Not only to know but to use and work on these popular open source cool products.

Tuesday, March 15, 2016

My contribution to Mifos Android Client

Mifos( is  the open source financial software and it's mission is to provide banking solution to poor. It has complete range of financial services needed for an effective financial inclusion solution.
 Core engine which is java based have all the banking functionalities such as 
  • creating loan product,saving product, Multiple Lending Methodologies such as Individual lending
  • Grameen Joint Liability group lending
  • Multi-tranche loans
  • Standing instructions for automated payments
  • co-op lending
Full Range of Deposit Products
  • Passbook savings
  • Fixed (term) deposits
  • Recurring deposits
  • Current accounts
Client facing android & web softwares have developed to interact with the core engine.
I have worked on both android & web application during my internship period.
My task was to add Surveys and Social Performance Management Scorecards in Mifos X Android Client. This Survey will be used to determine the financial condition of a person/family, based on the score in Survey it will determined whether they need financial help.

Backend server exposes the survey API. I have access the API endpoints to get active surveys from Server. Parsed the json to get survey questions & options. Capture the user response and post it back to server as scorecard.

Android recent material design used in the application. As Material design introduced in Android 5.0, to make it compatible with previous version app compat lib used in the app along with android design library.

What problem it solves?

This mobile survey tool will enable businesses to better understand the needs and interests of low-income consumers, while providing additional revenue for some of the world's poorest people.

What are the technical  challenges faced? 

  •  Some of the Survey question have two selection option and some have eight options. So it was challenging for me to generate radiobutton dynamically.
  • To transfer ArrayList of values from android fragment to activity. 
  • To update the Scorecard( user response) while user decide to change the response. 

So I fetched active surveys from Server and displayed in android listview.
When you select a particular survey it will take you to the question & options of that particular survey.
As few question have 2 options & few has 7 options, so it was challenging for me to display radiobutton dynamically based on the no of options. I have used viewpager widget to scroll to go to next question. 
I need to store QuestionId, ResponseId & ResponseValue of each question  and submit the scorecard value to Server.

Android provides a lot of options for storing data but the preference related settings can be easily stored and maintained using SharedPreferences class.
In this case I have used Android SharedPreferences to store and retrieve user selected responses . Create a separate SharedPreference utility class with methods to save, add, remove and get Scorecards from SharedPreferences.
Android SharedPreferences class does not provide a way to store a List or ArrayList or any collection. In order to store a list (even array, set or any collection) under a key, we convert the list (or collection) to JSON format using Gson and store it as string. While retrieving we convert the JSON string back to list and return it.
Layout Files.
In src folder, create a new class Scorecard in the package . 

SharedPreference class
Create a new class SharedPreference in the package . This class defines methods to save, add, remove and get Scorecards from SharedPreferences.Here we use Gson to convert List to JSON string in saveScorecards method and back again to List in getScorecards method.
This file defines custom layout for ListView item which is used by SurveyListAdapter.
In src folder, create a new class SurveyListAdapter in the package . This is the custom list adapter class which displays survey name, description.
In src folder, create a new class SurveyQuestionFragment in the package 
  • This class displays list of questions and options.
  • On radio button selection changed it adds that response in Scorecards by saving it in SharedPreferences. 
SurveyQuestion Activity
This is the main activity class.
  • When the app starts, it begins a new FragmentTransaction and starts SurveyQuestionFragment.
  • SurveyQuestionFragment is placed in Viewpager widget. When you scroll the widget it loads the next question in the series dynamically.
  • When you go back and update selection,it updates Scorecard and saves in SharedPreference.
Output Screens

Tuesday, December 8, 2015

Kick Off Outreachy

I have always worked as an independent web developer, mobile app developer. I was developing android educational apps in my own time as I wish. That to say I was one woman army. I discovered when there is no deadline and no pressure, my work is getting delayed endlessly.

Seeing the popularity of open source culture, I got interested to work for open source organization. There are so many organization who are working towards social cause like eradicate poverty, improve poor’s life.
One of such organization is Mifos Initiative. So I applied to work for them through Outreachy program.

Outreachy is the successor of the Outreach Program for Women (OPW), which connects talented and passionate developers with people working in free and open source software
Luckily I got accepted into program. Purpose of Mifos Initiative is to empower poor women and to give them financial freedom. You can get more detail from their website.

I had the knowledge of  Android Cloud Computing, Rest API, Java Spring framework. They are using the same software stack. I love mathematics too. As Mifos(Microfinance) is a Financial software, so I got interested to work for them.

I made few contribution before I applied. My contribution is at

My mentors are very cooperative and friendly.

I will be working to add few features to their Android Client and to improve the AngularJS based Community app. I will update the blog as the work progress.