Team Blogs

An Auspicious Beginning in Cambodia

Our first year in Southeast Asia is coming to a close. It seems apropos that this final trip of the year for me coincides with the Cambodian Water Festival, Bon Om Tuk. The Water Festival, centered around 300 pairs of Bayon-inspired boats competing in front of the Royal Palace, is an homage to Angkor's ancient navy. The Water Festival also marks a profound ecological transition: the end of the rainy season during which the waters of the Tonle Sap River reverse and flow back into the Mekong. During this change, the waters become still.

(PHOTO: Team training for Water Festival.)

At InSTEDD, we have been racing to the finish line, and I am grateful for the still waters to reflect upon our first year and prepare for the years to come. It has been amazing to see an idea -- that free, open source software that helps people work better together can make a real difference to the domains of public health and humanitarian response -- come to fruition.

We started the year with a set of possibilities, and found ourselves at the end of the year with eighty Cambodians doing a pandemic flu simulation using geochat near the Cambodian-Laos border. We started the year meeting in cafes, figuring out who is who, and ended the year with an Innovation Laboratory where the software is being co-developed and spearheaded by people who live here in partnership with two local technology NGOs, Yejj and Digital Divide Data. There were many challenges we faced along the way, but it has all been worth it to see what is happening now.

Now that we have laid a foundation, we are ready, in these still waters, to dive deeply over the next year. We look forward to working with all of you to ensure that we are making a difference.
Posted November 9th, 2008 by Mary Jane Marcus

1st PHI Workshop at Mahidol: Collaborations in Public Health Informatics among MBDS and SEAMEO Countries

Nico and I were invited to present at the 1st Workshop on Public Health Informatics organized by Center for Excellence for Biomedical and Public Health Informatics (BIOPHICS), Faculty of Tropical Medicine at Mahidol University in Bangkok, Thailand (Sep 29-Oct 10, 2008). The workshop was co-organized by University of Washington and the Rockefeller Foundation. This two-week workshop introduced the discipline of public health informatics to an elite group of public health and information technology experts from the MBDS and SEAMEO countries (Vietnam, Yunnan, Cambodia, Lao PDR, Myanmar, Indonesia, Philippines, Thailand, etc.) The course included topics on the application of latest advancements in information science and technology in supporting public health practice, education and research.


On the morning of Thursday October 9, 2008, Nico and I gave 3 lectures on the application of machine learning for early detection and response, Open Source movement and licensing, and discussed various Open Source applications for public health. We introduced biosurveillance, its current challenges and limitations, and proposed a practical “collaborative approach” for effective early disease detection and response from local, national, and global perspectives.

We then had a lunch break with Assoc. Prof. Pratap Singhasivanon, Dean of Faculty of Tropical Medicine who also supervises BIOPHICS. We discussed with Dr. Pratap InSTEDD’s role in the region and the MBDS, the various projects and technology tools currently underway, the innovation lab model, and our gratitude for extending his invitation to us to present at the 1st PHI course.

We spent the majority of the afternoon in the computer lab where we offered hands-on training on various Open Source tools and projects, their implication to public health, and their role in the MBDS region. We also used this opportunity to introduce InSTEDD’s tools including: Mesh4X, Geochat (Overview, Details and source), Riff and RNA.

At the end of day, we had a quick tour of BIOPHICS and its various state-of-the art projects. We were briefed of BIOPHICS multi-clinical trials center (several million patients), observational studies and disease registry, and had a tour of the BIOPHICS data center. The clinical trials ranged from PK study, Phase I to Phase III studies, and Phase IV monitoring adverse drug reaction (ADR). We were also offered a demonstration of a versatile and mobile patient tracking system. Other services include computerized system development for disease surveillance and medical/laboratory data. BIOPHICS has experts in basic science, health science, public health, medical and information sciences and they offer various consulting services related to applications of genetics statistics, bioinformatics and clinical informatics.

On Friday October 10, 2008, each country had a representative speaker from their group who presented on their country's current challenges in disease surveillance and response, what they learned from the workshop, and how best to apply that to address the current system's limitations and challenges.

We were pleased to see how InSTEDD's tools and “collaborative” approach was mentioned in various discussions and considered to be part of the solution (Picture: The Cambodian team presented on their future solution and suggested using various InSTEDD tools and technologies as part of this solution.)

Afterwards, Nico and I sat on a final panel discussion that addressed participants’ questions with regards to the material presented during the workshop. We received various questions on the role of Geochat and SMS in enhancing and augmenting current surveillance and response activities in the MBDS and SEAMEO countries. Given the fact that text-messaging solutions can be cost-prohibitive for many localities, we discussed how Geochat’s “Gateway” offers an affordable alternative—requiring coordination between mobile providers and government agencies—and more features than regular text-messaging provided by local mobile companies.


We then concluded the session with graduation ceremony where participants received their certificate in PHI, the first for the region! Congrats!

After graduation, Dr. Moe Ko Oo, (Regional Coordinator for the MBDS project), Dr. Yin Myo Aye (Data Analyst & Manager for the MBDS project) and I had a meeting to further discuss the project and InSTEDD's contribution to the region. During the workshop we introduced various open source efforts projects; in particular we discussed two efforts which aggregate news media and ProMed reports, HealthMap and BioCaster. Dr. Moe and I discussed the importance of providing situation awareness capacity for the MBDS region by extending these efforts from detection into response. We discussed in details; as I mentioned in a previous blog, how the majority of current systems have been geared towards specific data sources and detection algorithms but much less effort has been focused on how these systems will "interact" with humans. Dr. Moe was very keen towards our “collaborative” approach, and I quote: “HealthMap, the data they are presenting in their web is good for us to know, but we would like to see more on it” and that efforts as such should offer a “…better analytical way for future planning and advocacy purpose.” We also discussed how our approach could further refine and enhance classification of health events especially at the earliest stages of an infectious disease outbreak. I had a follow-up discussion with Dr. John Browntein and his team is working with ProMed (recent grant from Google (healthMap/ProMed) through the Google Predict and Prevent initiative) on extending the current HealthMap platform to incorporate collaborative tools.
Posted November 6th, 2008 by Taha Kass-Hout

Mesh4x goes mobile with JavaROSA, allows you to sync data on your handset with no Internet

The latest batch of advances in mesh4x and JavaROSA allows you to do forms-based data input and editing on any java-enabled phone and synchronize with other phones or a server.

JavaROSA forms UI, in action. I'm in ur phonez, filling formzYou can define a generic form, load the form definition to any  java-enabled cell phone loaded with the JavaROSA forms clients extended with a mesh4x transport component, do data entry in your phone and synchronize the data 2-way with a server or directly peer-to-peer with another phone handset.

all types of sync options The form definitions are saved and exchanged as XForms, and the data as XForm models. The data can be exchanged over http (if the phone users can afford GPRS and have a data connection) or over compressed SMS messages. This can even happen between phones directly - you enter the phone number of another handset running the app and press "sync". Tondat describes this in detail in his latest blog post. The clients depicted here look awful on the emulators as they use J2ME Polish ( http://www.j2mepolish.org), which then makes the app look great on specific handset models and adapts the UI to the capabilities of each phone.

This extends the scenarios of JavaROSA- from data-entry bringing it closer to a collaboration tool, where the information being entered can be edited by multiple users and shared from a central database back to the phone in the field.

This contrasts with "data collection" pattern of data entry solutions...if you believe information is power, data collection creates a vast vacuum cleaner shifting the balance of power: away from those in the field who understand the data the best and can act on it the soonest, towards the center. But does it need to be this way?

At InSTEDD we look at information flows such as those and ask  people working in health in developing countries spend a large proportion of their time filling in forms that then go somewhere. What information would they want in return? ourselves: What information should be flowing back to the field? How can the person at A work better with the person at B beyond just sending data? How do we shift from 'sending' data to sharing realtime and enriched information two ways? The mesh4x + JavaROSA effort is addresses some of these questions.

This was made possible through a collaboration and set of code contributions we had with the JavaROSA team. JavaROSA is an implementation of OpenROSA which could become a strong player in the mobile data gathering and sharing space in the near future. Kudos to Clayton Sims, Jonathan Jackson, Andreas Kollegger, and everyone else from the javaROSA team for your work and friendly attitude!

The XForm definitions are stored in an http service behind a REST API (http://sync.instedd.org/ which is a strawman of a mesh4x cloud-based service. If you played with our map-sync technology you have already used this service).

kind of like this

Next Steps

Our strategy with mesh4x is to contribute code to existing projects being deployed in the field that need 2-way synchronization, data exchange over SMS, or multi-master storage based on standards. Episurveyor, Gather, Pendragon etc come to mind.

Within this directive, our roadmap on mesh4x will involve effort in four areas:

  • Cloud Services
  • Data Standards
  • Client Applications
  • Transformers and Adapters

1. Cloud Services: A scalable server implementation supporting security standards . We have a skeletal solution built in C# that we grew from the 'sse' open source project in Codeplex, (which has moved to http://mesh4x.org as well). We host an instance at http://sync.instedd.org/. But it uses a relational database, so we Amazons web services include VM Hosting (EC2) Storage (S3) and Message Queuing (SQS)would have to change the storage layer if we wanted to grow it    for real. So what are our options? Java on EC2/S3  seems to be the shortest path given the code Google App Engine - coolest logo in town!we already have in the project, but Python on Google App Engine sounds enticingly simple to  maintain and scale, at the expense of initial effort to port the sync libraries to Python. Which seems a unnecessary until you consider that Inveneo, the African Access Point and other platforms prefer Python or Ruby for a bunch of good reasons. We'd like your input - .NET+MySQL, Java, or Python + GAE?

2. Default Data Exchange Standards: Using XForms is simple and works for easy scenarios.  this fun little thing looks like an RDF triplet, of sorts.We'll advocate use of RDF when XForms will fall short, but by all means we wanted to avoid a custom/ad hoc way of defining a typed dictionary 'schema', versioning of that schema, and of encoding entities following the schema.

Following a clear set of standards for data formats will allow easier mapping of information from one system to another, and the creation of tools that allow end-users to define how their systems integrate.

Isn't this obvious? Defining which standards to support early in the process is critical because it is easy to reinvent the wheel in this space. Even accidentally. Anyone who can code their way out of a paper bag can define a custom way of serializing dictionaries (a collection of names and values such as name:Ed, country:Cambodia) and define a schema model for it in an hour or so. But inventing one just tends to lead to incompatibilities in the long run, and lack of interoperability in humanitarian systems is an obstacle that anyone with experience has seen get in the way of collaboration and data sharing. It is much smarter to support a well documented subset of a standard such as RDF or XForms -and define extensions as needed (both standards allow schemas/ontologies to be extended). If we can we pledge to play along, applications from multiple organizations will add up to be 'more than the sum of the parts'

3. Client Applications: We desperately would like to implement or contribute to a stand-alone fat (aka rich) client that you can use on your desktop to synchronize two data endpoints. Ideally this client would allow you to set the endpoints for synchronization, mapping of data schemas, filters, and managing conflicts - in a secure and easy-to-use interface. Any pointers?

4. Transformers and Adapters: There are many existing applications out there that do their work very well. Sometimes two applications serve similar purposes for different audiences or contexts. Sometimes new applications have to coexist with politically entrenched older systems. While we are building common-purpose adapters to mesh4x (such as Hibernate, Java RMS, and KML which we already have but also CSV and google spreadsheets for example), we already hear demand for specific adapters that take into account particular needs of real-world applications that are already deployed in the field. Which systems should we start with? We have been approached with questions about mesh4x and OpenMRS (http://openmrs.org/) or Sahana (http://www.sahana.lk/). 

We'd love your input!

Posted October 29th, 2008 by Eduardo Jezierski

Phnom Penh Innovation Lab team giving its first steps!

After months of work in the region, our technology team in Cambodia has started their daily work! We had our first standup meetings last week!

As part of InSTEDD's strategy of 'sustainable innovation' we are creating a full engineering team that over time owns and reinvents technologies used in the region. All technologies go obsolete - so for true sustainability you need to assemble a team of people that will invent the 'next thing' - and give it the skills, capital and opportunities to do so.

It's one of those rare, beautiful moments in the professional life of anyone: seeing a team's first day, the getting to know each other, starting to create a work culture, picking a set of small challenges and taking them on. Some moments stick - first standup, seeing the first code checkin notification, hearing the first idea that is "so obvious and locally appropriate yet no one in the global team had thought about it".

It starts with the people, so here they are:

Day one. Each t-shirt has a long story behind it too. Chris di Bona gave me the google t-shirt not long ago. Channe is wearing a Microsoft Developer Division all-hands tshirt 'Your Software, our Passion'. Saravann is wearing a Clarius 'automate your work' t-shirt from my Software Factory days, and Tola has an Oredev/Expertzone t-shirt from a conference I spoke at once in Europe.

From left to right we have Sopheap, Channe, (myself behind), Sodany, Laura, Saravann (below) Miguel and Tola.

Mann, Channe and Sopheap. Ot-Painha-haa!

Here are Mann, Channe and Sopheap

Channe Suy


I am interested working with object oriented technology such as Java and C# . Besides work, I like traveling to the mountain area or to the beach. As I start working with InSTEDD, I would like to learn more about good patterns and practices, improve communications with users, and project management.


Sopheap


I'm Sopheap, working as software developer. I am a third-year-Student at Royal university of Phnom Penh (Computer Science). I am interested in .Net and Java, and I spend my day and time on both technologies. I always do the research in the library or reading e-books and sometimes take a course related to the topic. I spent some time learning the Google technologies too. As a member of the InSTEDD Team I want to improve my ability with .Net (C#), and Java languages. Outside of work I like to spend time reading and researching, and sometimes I spend time with friends at the coffee or at the countryside with the fresh and green views.


Mann (Lim Chanmann)


My name is Lim Chanmann, but just call me Mann. I have been working on web-based application development with ASP and ASP.NET with C#. And now here at InSTEDD I am interesting in OOP, OOD, software design patterns and best practices, and project management as well as the latest technologies. I spend my free time swimming, and chatting with friends or sometimes with a stranger so I can learn something new.

The QA team (and Daniel behind)

The QA team and Dany in action - behind is Daniel from http://www.ideapreneur.net/, who slept over at the Lab around Barcamp Phnom Penh.(more about that soon).


Miguel Collantes (QA Manager)


I have 10 years experience in Software Quality Assurance (SQA) during which I developed management tasks and management of offshore teams. I'm working as QA Manager for InSTEDD. My challenge is to accomplish the expected goals while building and working together with foreign teams from very different cultures.

Laura Fricke Weinberg


I have 5 years experience in Software Quality Assurance (SQA) during which I developed testing tasks such as data set generation, test cases and test plans creation and QA team leadership. I am currently working with InSTEDD as QA Engineer and have great expectations in improving my scope of knowledge in QA for other InSTEDD software and technologies, as well as teaching and learning every day in our Cambodian Innovation Lab.


Saravann Paol


Hi! I am Saravann- I worked as a Computer Operator for Digital Divide Data Organization, and I got started with InSTEDD on Friday 29th August 2008, It is the first job for me that I have opportunity to work with a large team. I'm the third year student at International Institute of Cambodia (Computer Science). I am interested in my position because it can help me to learn new technologies and know more about the diseases and disasters happening in the world. These are the big problems that all the people in the world have to know and learn. I was really happy on my first day, studying with Miguel and Laura who are very good teachers, friendly and good communicators.
I hope that when I finish my studies I will have new knowledge and skills to improve my personal needs and my work.


Ung Tola


My name is Ung Tola. I worked at Digital Divide Data Organization for over two years. Now I got started with InSTEDD on September 1st 2008. I am a third-year student at Norton University and my major subject is English for Teaching. I'm also interested in  the Internet and new technologies being used in the world. I am happy to spend my time with InSTEDD learning new software skills and preparing products that will be used for people helping with diseases and disasters.
In my free time I like having small picnics in the country side.


Sodany Chap

I am from Kampong Cham Province and graduated from the Royal University of Law and Economics in Law field. Then I have been pursuing my study in Masters of Management. I am very excited to have such a great opportunity to access to higher education in this competitive world, and I do wish many Cambodians had at least the same opportunity like me as education plays very important role in the social development of a country like mine.
So far, I worked and gained some experience from a few NGOs here such as Legal Aid of Cambodia (LAC), Cooperation International (CI), Cambodian Defender Project (CDP) on women trafficking, PILLAP and also from Cambodian Arts and Scholarship Foundation (CASF). 
I have been working for InSTEDD since mid-June. I am extremely interested in what InSTEDD does. I am now helping with some translation and also learning to be a tester with a group of talented people from DDD and with Miquel and Laura. I have a very strong commitment to effectively and efficiently work on InSTEDD projects to ensure their smooth operation. 
I'd like to deeply thank to Marry Jane, Dennis, Eduardo, Miquel and Laura and to all of others InSTEED staff who always support and encourage me in implementing my work. Also, let me wish all of them the best health, luck and success in both work and personal life.

InSTEDD has been able to attract these excellent fellows through - and with the help of- some of our partners in the region, especially Digital Divide Data and Yejj.

The goal of the QA group is to 'train the trainer' and seed a full QA unit that can carry this aspect of the software development lifecycle end to end. Cambodia has very little experience in QA and we hope to share a bit of our experience in what's needed to have robust systems deployed reliably to your users.

Kzu explains KML and Linq at the Cambodian Ministry of Health The development team and our Product Manager have engaged with the Cambodian Center for Disease Control and now have a prototype of a mobile application used for hotline call tracking, that then submits the information via batches of SMS messages onto a desktop with a phone plugged in, exports data to excel and posts it to an online Riff instance where the calls can be classified and collaborated on. All this is open source and was done in an agile fashion with weekly iterations and they recently refactored the code to design patterns such as MVP.

Nico di Tada does a hands-on TDD workshop in the InSTEDD innovation lab. Red-Green-Refactor The skills gained and experience with concrete technologies (SMS-based applications, RESTful web services) will be useful beyond this particular system. Plus, Daniel Cazzulino and Nico di Tada have been giving workshops here in Phnom Penh covering topics such as REST architectures, TDD, KML and Linq.

Training, roundtables and architecture & methodology discussions are a key part of life at the InSTEDD lab. We don't have enough furniture yet to accommodate a lot of visitors but as soon as we figure out these logistics issues we'll be posting the schedule online and take an 'open house approach'- if you show up, you can participate!

PS This is just the initial team - we are still hiring for QA Engineers, Graphic Designers, Software Developers, Test Leads, Test Manager and ICT leads here in Phnom Penh. Contact me if it sounds interesting!

Posted October 29th, 2008 by Eduardo Jezierski