Team Blogs
Sahana installation poised for Myanmar disaster support
Upon the request from Lanka software, we have successfully brought up a virtualized Sahana instance.
You can see it here: https://sahana.instedd.org
(Note you may need to ignore a certificate warning to see this until we deploy a new certificate for this server)
Learn more about Sahana at: http://sahana.lk
Juan was instrumental in getting the Debian virtualized image running well on our Red Hat host OS, thank you! The compressed Sahana VM is about 300mb, which will allow a quick re-deployment of a hardened configuration in Myanmar as necessary. I think this VM would be a good asset to keep around, allowing anyone running Windows or Linux to bring up a running Sahana server with little to no effort.
Volunteer-based Sahana localization effort
There are over 30 volunteers across 4 continents working on localizing Sahana to Burmese. We ran into multiple issues, most stemming from the lack of Unicode standardization of Burmese. We are using Google Spreadsheets to coordinate the work (the embedded live chat is an amazing feature for live coordination) and folks are using mostly MS Word to do the translations, which we accumulate on a Google Groups page. Many thanks to all involved, I'm afraid to start mentioning folks by name because I'll mess things up or miss key individuals. Jesse Robbins blogged about this in O'Reilly Radar, and Bill Behrman from Stanford has worked his rolodex though which helped us get additional volunteers. Many folks at the NetHope summit had the chance to refer folks as well. Thanks!
Google Groups for localization
Translation is hard - especially for the fonts and encodings to work together. See the awesome burglish site to see what I mean... the translated docs end up having strings like tcef;u¾rsm; which is really encoded Wwin_burmese, which would look like this with Padauk
One of the main issues with the localization is that it isn't just about translating strings- there is also a need to accept input in the right format. This isn't trivial with all combinations of fonts and input methods people use, and especially not trivial on a web page that has to work in multiple browsers!
There is also ongoing work on InSTEDD's GeoChat system with usual suspects and new volunteers, preparing for a potential use in Myanmar, which is topic of another blog post entirely.
InSTEDD and the Myanmar Cyclone
1. We have a long-standing working relationship with the open-source disaster management tool called “Sahana”, developed and managed through a group in Sri Lanka. We received a request from them for help early yesterday after Sahana had, in turn, received a request from inside Myanmar. That request was asking for Sahana as the disaster response coordination software to use for the humanitarian response, starting immediately and probably continuing for several months. We agreed to help, of course, and we’ve installed Sahana on the same system we use for our own website at Rackspace and it’s up and working now.
2. We heard late last night that we needed to localize Sahana into Burmese so that we could engage local staff in the response coordination process. We have now located some translators (not enough) for the 3500 words and phrases, and built tools to help break up the phrases into manageable chunks and then weave them back together again. Those translators are within our Google partners, our Mekong Basin Disease Surveillance System contacts in Asia, Stanford, World Vision, and more. An excellent example of crowdsourcing and networking and all happening literally overnight.
3. We’re also talking with the IBM Crisis Response Team that are trying to get into Burma and making sure we have the ability to link the peripheral Sahana server they'll have in Myanmar to our central Sahana server here in the US. We have a request pending with Google engineers, working with our own dev team, to help use our Mesh4x sync tools (used to connect databases to databases and systems to systems) to link center-to-edge in Sahana, making sure bandwidth is optimized in Myanmar and those outside Myanmar have a large pipe for access onto our hosted server at Rackspace.
4. We’ve had a request to push our internal GeoChat tool out early, really before several important features are established, and we’ve agreed in the interests of time and urgency to let that happen, even with a little risk to our reputation. GeoChat allows SMS messages to appear interactively on a map in any system (GoogleEarth, Visual Earth, Google Maps, GeoFusion, ESRI, GeoRSS feeds, KML feeds) and has proven so useful, even in current form, that the teams in Myanmar consider it worthwhile to take this relatively immature version even if only from a safety standpoint. It still works, very well, but it's neither elegant nor robust. But it will soon be both.
We still need Burmese translators for localizing Sahana, so please drop a note into Contact Us if you think you might be able to help.
This is a remarkable disaster, made very complicated by the communications restrictions placed on international responders by the Myanmar government. We hope those restrictions ease soon or this is going to be a very difficult response with excess deaths that will eventually be quantified and published.
I’ll keep updates going here.
Eric
Build maps collaboratively with new Mesh4x KML adapter
A handful of months ago I met Kersten Jauer, UN Information Officer for the Central African Republic (CAR). CAR is a large country in Central Africa, surrounded by Sudan, Chad, Cameroon, Congo, and DRC; 67% of its population lives with under $1 a d
ay and is scoured by constant internal rebellions and gender-based violence.
Kersten spends a lot of the time in the field in CAR, and put together an amazing map of the whole country to support logistics and NGO programs. Roads, provinces, bridges, fuel pumps, it all got captured by hand in Google Earth and saved as KML files. By the time I got it, Kersten's KML had grown to be 11 MB, an amazing amount of information patiently collected and edited, and periodically shared online with all those working to improve the region.![]()
Contrast the map above showing the CAR KML with the map on the right showing the same region as seen by default in Google Earth. What got my attention was a little note in the KML:
If you would like to comment on this file or have suggestions please email to MapsAndGoogleEarth+car@hcpt.jot.com
To add a placemark just email it with a short description to the same address or kersten.jauer@undp.org
Please also check out the maps section on http://hcpt.jot.com
The map was built collaboratively, but imagine the workload Kersten must have had getting little snips, integrating them on the larger map, and then letting folks know of updates. And how would the map be maintained whenever Kersten was attending to some emergency?
Mesh4x KML Adapter
We started building a simple instance of a KML adapter for Mesh4x this week. This adapter would allow a team of people edit a KML file and then 'synchronize' it with all the others. For example, I could add a pushpin saying a bridge is down, and you could be editing another pushpin or moving it around to represent that a logistics truck has moved. When we synchronize, the truck moves around in my KML and the broken bridge appears in yours.
This could be synchronized peer-to-peer (a KML on your disk to a KML on a USB drive or someone else's box) as well as via a 'cloud' web service. Note this is changing the data inside the KML, it is not just 'file sharing'. The adapter knows about KML and keeps track of versions of fine-grained elements (pushpins, placemarks, polygons) inside the same file. It is an example of how a data mesh could be used to synchronize fine-grained data between applications.
We chose KML for this adapter as it is a standard ("OGC KML") that is widely used and supported by Google Earth (of course), Microsoft Virtual Earth, as well as nice tools that work offline and can be used in the field such as GeoPDF.
We have a sample UI (shown here) to let you play around with the basics. The effort is still on the libraries and we don't have a neat UI to let you choose endpoints or resolve conflicts, but all will come in due time. Other restrictions include having to put your placemarks in a "Shared Items" folder in your KML, and styles don't get replicated. We foresee no problems working out these constraints over the coming weeks.
To try it out, make sure you have Java installed and:
- Get the sample application from http://code.google.com/p/mesh4x/downloads/list
- Double click on mesh4j-KML-DemoApp.jar
- Point to a KML or open the sample ones
- Edit the location of Sample Pushpin 1 in File 1
- Add a new pushpin in File 2
- Press synchronize, and after both files should have the updated Sample pushpin 1 AND the new pushpin!
Another advantage of a data mesh is that endpoints can be heterogeneous, as long as you do the appropriate mapping. Eventually you will be able to sync a spreadsheet with columns such as Title/Description/Lat/Long into KML pushpins and back quite easily.
We hope to be showing this at Where 2.0. A lot of the team has been focusing on supporting the Myanmar disaster relief, so progress this week has been a bit random, but we still want your feedback!
Learn more about Kersten's Work in CAR at www.hdptcar.net, or get Kersten's latest epic KML.
See the Mesh4x project at http://mesh4x.org
Mesh4x adds generic database support
First of all - a very heartfelt support to the Myanmar population in this times of crisis. Many friends are either already there or on their way to help as part of UNDAC teams. It's a tough situation in a tough context, and all my hopes reach out to the communities there so they can recover soon. Unfortunately, it won't go back to "normal" for a long time, if ever. I was in Peru last week and the August '07 earthquake still defines how people live in Pisco. The press and much of the aid has left and the town is still...leveled. Throw in a major disaster in a non-resilient environment, with a bunch of foreign aid with varied commitments to the region, and the long term outcomes are very hard to predict.
This week we made significant updates in mesh4x. One of them is a Hibernate adapter, which allows you to plug into the mesh almost any relational database available in the market
Hibernate Adapter
In our first scenario, let's say you have, or you are quickly hacking together, an application to help enter, analyze and report information. You have a database schema, and you'd like to integrate it with an excel database that field folks are using for data entry. You need to make sure updates and deletes somehow make it out to the spreadsheets, and that folks' updates make it back in. Furthermore, you'd like folks in the field to synchronize spreadsheets with each other directly - thus making it a classic mesh scenario. With the Hibernate adapter, our goal is to allow you to mesh-enable your database by just mapping your entity fields to your database fields.
Hibernate, as most developers know, is an Object-Relational Mapper library for Java. With this adapter you can now integrate into a data mesh any database engine that Hibernate supports, which is an impressive list. By supporting Hibernate as an adapter we allow every user to customize the mapping of the mesh data to their database schema using familiar tools, and get support for a lot of databases. There is still some work to do - for example, as of today the adapter still requires the database schema to revolve around the fact that the rows are being synchronized in a mesh. We expect in the upcoming weeks to remove this restriction and use two separate 'repositories', one for the synchronization information (which you shouldn't care about) and another one for your data.
This will allow you to point to almost any existing database schema and mesh it up without messing it up. (Apologies, couldn't resist).
You can always reach the project through http://mesh4x.org.
Here you can see a list of adapters and suggest your own.
Empowerment practice explored...
Today I continue to explore the elements of effective community-based practice. My previous post was on the positive model Betty Makoni exemplifies for how to address serious social challenges, like domestic violence and rape. Her Girl Child Network employs true empowerment practice. This program, based on a network of girls' clubs, fosters the seeds of strength within the girls in the programs and encourages them to lead and effect change.
Empowerment practice is an overused word for those of us in the social work field. Everyone wants to engage in empowerment practice. One way to begin is to use a method described in an earlier post called asset mapping, which is also nicely described in the Social Design Notes. Another useful perspective is described as risk and protective factors.
Most of us know about risk factors - a history of breast cancer can be a risk factor for developing breast cancer. In infectious disease, poverty and malnutrition can be a particularly pernicious risk factors. According to the Global Health Council, "poverty not only characterizes the circumstances in which infectious diseases thrive, but the cycle of poverty is exacerbated by lost productivity, missed educational opportunities, and high health-care costs for the affected and their families."
Fortunately, poverty alone does not tell the whole story. Even in the midst of significant stressors, some people have positive outcomes. Protective factors - those factors that contribute to resiliency - are one place to look.
One of the early innovators of the term protective factors is developmental psychologist Emmy Werner, who did a groundbreaking longitudinal study on all of the children born in one year in Kauai, Hawaii. What was surprising about her work is that many of these children who were born into high risk households (substance abuse, etc) had successful outcomes. She found that 'protective factors' distinguished these resilient children. One of the most important protective factors was having a strong relationship with a nonparent caretaker or a community organization like the YMCA.
Social interventions (such as Big Brother/Big Sister) mimic and foster these protective factors. What intrigues me about this study is not just the resiliency research, but what they found to aid resilience -- social support and encouragement.
When we look at infectious disease in Southeast Asia for our Mekong Collaboration Program, we need to look not just at risk factors, but also at resiliency or protective factors: what are those qualities that make a community, village or family more likely to resist and respond to infectious disease outbreaks? Ultimately, the social and economic development of communities will be more important than fostering any single resiliency factors. In the meantime, stronger social networks strengthened by collaboration technology may help communities and public health officials respond more quickly and effectively.
Get inspired...
I have realized, after a career trying to improve the conditions in the world, it is really important at least every quarter to hear an inspirational person who reminds you why you are doing this work.
Betty Makoni is such a person. She embodies the word 'empowerment' and models how we can support communities to claim their own destinies. She has built a network of girls' clubs in Zimbabwe, now numbering over 30,000 girls, and these clubs develop strategies for their own growth and enhancement. Many of the members are victims of rape and domestic violence, much like Betty Makoni, who was raped at age 6 and who saw her mother killed in a domestic violence a few years later. But rather than give these girls a handout, Betty invites them to 'reach for the sky', heal their wounds, challenge societal norms around violence and build skills to live successful lives. She teaches girls to use the words donors use -- like 'strategic planning' -- and claim them for their own.
Her Girl Child Network reminds me of the elements of successful community programs:
- They tap into the strengths of people and challenge them to grow and succeed; many programs for sexual abuse victims are 'survivor' oriented. Betty wants her girls to thrive. Her healing camp for rape victims is called an "Empowerment Camp."
- They are not just a 'program' but are part of a movement to effect societal change, in this case the attitudes towards girls and women;
- They have their own energy - in this case the energy of the girls - to keep it going and growing. Betty does not have to set up girls' clubs, though she is usually there for their inauguration. They can be set up by girls' themselves and thus draw on the energy of large groups of people.
Enjoy your weekend and get inspired! My next installment will address another dimension of empowerment - resiliency.
Share and Sync. Any information. Anytime. Anywhere.
Whether you are a life science researcher, a practitioner, a veterinarian, an epidemiologist, a decision maker or a patient, you're always faced with the reality that information is often not shared in a timely manner. To make things worse, the value of the information is lost because you couldn't use it in time, or didn't have the means to share it when it was most needed. You want to quickly collect information and share this information with others in your discipline, across agencies, or across cultures. This is also the case if you are a patient, and your information resides in pieces across different places with no track of your lifelong health record.
Our engineers just released mesh4x to meet your needs and help fulfill your mission. This work is still within the context of our overall collaborative approach which enables and facilitates specifically social networking, participation, apomediation, collaboration, and openness within and between users: health care consumers, caregivers, patients, health professionals, biomedical researchers, epidemiologists, governments, NGOs, just to mention a few. The potential of mesh4x is great: realizing the promise to accelerate discovery of science, predict emergence of diseases, detect disease outbreaks, allow multiple response agencies to share "meaningful" information in a timely manner, assist the humanitarian community in its relief work in harsh and austere environments, enhance outcome research...
Big science, small science - we live in an era of big information. Tony Hey (Microsoft) once described the emergence of new science from a progression that started with experimental sciences (a few thousand years ago), to theoretical science (a few hundred years ago), to computational science (a few decades ago), to data-centric science of today. We’re in a constant state of denial about how much usable information is being lost in an increasingly vast amount of data at our fingertips.
Of course, the journey for us is just starting - we need your input and your help so we can make best use of our approach and tools to meet your needs. We want to respect and understand what works in your environment and what doesn't, and with great respect to your culture, policies, environment, connectivity and more.
Mesh4x: New Open Source Project for Data Meshes
Today we created a new open source project to host InSTEDD's efforts on data meshes.
The goal for the project is to provide libraries, tools and applications that simplify using standards-based data meshes. Our contributions will be based on the requirements observed in global health, community development and humanitarian aid.
You can find the project here: http://code.google.com/p/mesh4x/
Our first contribution to the project consists of some libraries that implement the FeedSync specification, an open standard that describes version vectors, and processes for conflict detection and conflict preservation. FeedSync also happens to be one of the underpinnings of Microsoft's consumer-targeted Live Mesh, but could be used happily on any platform as it's based on extensions to RSS and ATOM - an obvious idea is to build a Feedsync javascript adapter for Google Gears).
Because of the project's emphasis on standards, we structured the source tree so it would host implementations in more than one platform and language. 'Mesh4x' has 2 starter source code folders - Mesh4j (Java), Mesh4n (.NET - a large C# contribution done by Clarius Labs and the Microsoft XML MVPs who already had an open source version, unit tests and all). We hope to eventually see Mesh4php, Mesh4r (Ruby) and so on.
It's a start. InSTEDD's work in SE Asia in addition to the input of humanitarian aid agencies and other providers of technology for social good will be the drivers behind our contributions. We expect work in these areas:
- Adapters to different stores (e.g. MySQL, or application-specific formats, such as KML), for servers & clients, and the ETL (extract, transform, load) that goes at heterogeneous endpoints. I heard a great idea today for building open-source VMs that run on Amazon's cloud hosting.
- Implementations that work on mobile devices (for example, we are currently refactoring the Java library to run in J2ME)
- Support for different transports (plain XML over files, or HTTP is a start, but there are optimizations that can be done for low bandwidth, no-Internet scenarios, or integrating with a transport mesh like WASTE).
- Integrating implementations with standards-based authentication and data signing approaches.
- ..your contributions!
Applicability for Humanitarian & Health Scenarios
So why are we at InSTEDD interested in this? Data meshes have some interesting properties:
- Symmetrical: They allow data to exist in a concurrent multi-master environment where updates can be applied at any node in the mesh.
- Asynchronous: They allow offline updates to information and synchronization with other nodes without requiring data locks, essential for occasionally connected applications.
- Dynamic: The synchronization can happen even in constantly changing connectivity topologies. I can sync to a server and later the sync can be done between my client and another client, who could then sync with another server if the first one is there, and so on.
These properties make them very suitable for humanitarian, crisis, and health care environments, where information sharing, data system integration, and technologies that assist politically neutral solutions are beneficial. For example:
- Symmetry allows you to have two audiences work on the same data through different applications, with no application being the 'master'. You can also have data sharing of sensitive information between countries or organizations with no country hosting more or less data than the other. See Mary Jane's post about the NGOs in Cambodia, to understand how important this symmetry and neutrality can be. It also allows data to move around a user independently of the device it's been created on.
- Asynchronicity allows work to happen in environments where data connections are unavailable, bandwidth is low, or the only 'transport' is a USB stick.
- Dynamism allows the field teams to share data amongst themselves and servers as early as possible. Unlike email, there is no need to wait for connectivity to a specific server to let the information free.
One idea could be to add data mesh capabilities to Sahana, allowing any instance running on a server or laptop to edit the information and 'sync' both ways with any other server or laptop. We have also heard scenarios where users of FrontlineSMS could synchronize information amongst themselves. If anyone is interested we'd happily work with you to see how to approach this..
Come and participate - lets share our scenarios, ideas, and code here: http://code.google.com/p/mesh4x/
Adventures in PP...
One of our top priorities on this trip has been to get a deeper understanding of the technology infrastructure and staffing. Our technology team, including Ed, our Director of Engineering, believe strongly the tools need to engage and draw on Cambodian talent to be useful and to enable a Cambodian team to provide support after we leave. We welcome ideas on how to build technology sustainably or connections in Cambodia you might recommend.
One of our favorite NGOs is the Khmer Software Initiative, whose vision is "a country where Cambodians can learn and use computers in their own language, a country that does not have to change to a new language in order to use computers!" We are also concerned with this question because many software applications here are only in English, including mobile phone text messaging. There are some Khmer cell phones, but their reach is still limited. A serious question we are exploring is: how will widespread access to Khmer text messaging be possible?
Off to Thailand & Cambodia
I'm taking off to Southeast Asia in a couple of hours. Our goals for this trip is to set up the structure for our long-term presence in the region. I'm going with Dennis (our Program Director) to Bangkok to meet with many organizations that we are or would like to be working with in the area such as Mekong Basin Disease Surveillance and Mahidol. From there we go to Phnom Penh and inner Cambodia - where Mary Jane, Luke and Robert have already spent all week.
Here's my rough itinerary
- March 31..April 4: Bangkok
- April 4..April 15: Phnom Penh
I'd like to chat with folks who work in the technology space, especially in Cambodia. We also have a meeting with some of the folks contributing to Bar Camp Phnom Penh... So if you are in Phnom Penh and you are doing programming, web design, databases, mobile applications or program localization or have an interest in contributing tech skills to our MCP program drop me a comment here, or send an email at edjez-at-instedd-dot-org, and we'll take it from there.
See you soon!