A firsthand account from the UCOSP Code sprint in Totonto on XX. by POSIT project team members :

UCOSP (Undergraduate Capstone Open Source Projects) gives students all across Canada the opportunity to work together and collaborate on joint open source projects. One of the great projects of UCOSP is POSIT, an android application from the Humanitarian FOSS project.

Since many of the students in UCOSP are from different regions of Canada, the wonderful steering committee of UCOSP organized a 3-day code sprint, held in Toronto, for students to meet face to face and familiarize themselves with the projects together. Members of the POSIT project, Gordon, Stanley, Ryan, Kalin, and Eric were all extremely excited to attend the code sprint; some even traveled from Vancouver and Edmonton to Toronto.

On the first day of code sprint, we devised a tentative plan for the next three days, based on our supervisor Professor Ralph Morelli’s agenda. Since working on POSIT was our first time working in an Android development environment, we decided to set up the Java Android environment and work through Google’s online tutorials to really understand the structure and workflow of an Android application. We have found that the Notepad Tutorial (http://developer.android.com/resources/tutorials/notepad/index.html) was particularly helpful because not only did it show us the standard Android framework, it also introduced the Java SQL database, which was essential in understanding the inner-working of the POSIT application.

One of the biggest challenges of working with team members all around Canada is effective team communication and efficient project coordination. We were thus grateful that, during the second day of the code sprint, our supervisor Ralph showed us many tools that we could utilize to easily collaborate and share with the team online. Such tools include online POSIT wiki and ticketing system where we can report and resolve issues encountered in using POSIT; and Mercurial for managing POSIT’s online code repository. With the help of Ralph, we also successfully deployed the demo POSIT application on our phone to test out its basic features.

Ralph also mentioned that he and POSIT’s past development team decided to overhaul POSIT’s overall framework to make it a more agile and configurable application. He introduced us the concept of “plug-in”, with one “plug-in” being its own separate application that has different user interface and supports one or more data types (texts, images, videos, etc). He also shared with us his vision on how users could simply configure the “plug-in” online and our code base would auto-magically generate a brand new version of POSIT with the specifications defined in “plug-in”.

We were all very excited with the idea of configurable application, but in order to get there, we needed to first understand the structure of the existing POSIT code base. On the last day of code sprint, Ralph pointed us to some fundamental POSIT framework and we each read through a part of the POSIT code base. Before we all left for our lovely home city, we had set up the date for our weekly Skype meeting so that we could update each other on our progress and coordinate project features.

Throughout the three days of code sprint, we all felt like we had accomplished a lot. We were so glad to meet each other face to face and were given the opportunity to work on such a great project. We really look forward to collaborating with each other and we cannot wait to see what our final POSIT application will be like.

A peak into localization by Chris N. who worked on the POSIT-Haiti code base:

Being able to display the app in multiple languages was essential for the project, due to the developers being native English speakers and the end users speaking French and Haitian Creole. I localized the mobile side of the app. There are hundreds of strings that appear in the display of the app, each of which needed to be internationalized and then localized. After the strings were translated and organized into xml files, they were then tested. A number of bugs appeared as a result of being able to change the language. Multiple strings needed to be abstracted out of the code. In addition, menu and dialog boxes needed to be reinitialized so that the newly changed language would display properly.

There was a great deal of difficulty keeping the character encoding consistent between Linux and Apple machines, which use different codes for special characters (such as the é character). This coding issue made it difficult to create non-conflicting translation patches that can work on both Linux and Macintosh computers. In addition, the patches often had to be tested for conflicts before being applied to the most recent repositories, due to the localization process’s nature of touching all the files in the app. It also became necessary to abstract the options end users select in data entry forms from the strings those forms store in the database, since otherwise the data queries would not be able to identify data submitted in one language and retrieved in another.

The localization process was difficult, but enjoyable. Users are able to toggle the display language between English, French, and Haitian Creole without exiting the app. Furthermore, the app is set up so that additional languages can be implemented quickly and easily.

Finished another busy day at the camp Roberts exercise today. We made progress on several fronts.

Here is an extract from the STAR-TIDES RELIEF 10-1 website to give you a little background on the efforts.

Under a partnership between the National Defense University and the Naval Postgraduate School, the STAR-TIDES initiative hosts quarterly experiments at a remote field site in Paso Robles, CA (Camp Roberts). These experiments explore the edge of the possible within humanitarian operations, focusing on the creation of a common operating picture between all responding organizations–civilian and military, domestic and international.

The experiments in November 2009 will explore four areas:

Open Aerial Data: Using UAVs to build a new base map of a region, and creating the software to automatically mosaic those still images into a new base map.

Cross-Sector Information Sharing: Using quickly deployable, flexible, and scalable virtual machines to create a network of interoperable, networked information sharing devices that will connect all organizations working in a theatre of operations.

Mobile Data Collection: Using mobile devices to submit structured and unstructured data to gateways that automatically map and analyze the incoming flow of information.

Disaster Management System Development: Extending the Sahana disaster management system to include integration with Android phones, netbooks, OLPCS, and other computing devices.

Chamindra and I were working on getting Sahana SMS capabilities configured on the netbook using a Palm Treo 670 connected via bluetooth as a SMS gateway using smstools and AT commands. It wasn’t the most stable of environments and we ran into more than a few setbacks. We did successfully get it running on Windows using FrontLineSMS, SMS Tools and a tethered nokia phone. Chamindra is writing a new module to better integrate the incoming SMS messages from the field. We are also working together with Robert K. to integrate GeoRSS feeds through GeoChat.

Chris wrote a android application to capture geo-coded tags out in the field and send it back to the Sahana server via SMS. This application will be tested tomorrow.

Antonio wrote a new “Personnel Management” module for Sahana, which facilitates the self registration of first responders, observers, or anyone involved in a disaster response. Participants in the Moneray county fire evacuation exercise will come through and register through this new registration system. The “Personnel Management” (PM) module is an extrapolation of the VM module self registration capabilities, allowing it to function as an outward facing module for Sahana. In the same note the PM module would be expanded to allow for the registration of other information including additional organizations or assets relating to personnel.

Gavin and Mark worked on pre-populating the Sahana instance with some data sets. We have been joined by Sahana’s resident GIS expert David and a new comer to the community Dan.

On October 24, 2009, we participated in the First Open Mobile Camp,the first barcamp of the Open Mobile Consortium at UNICEF office in UN Plaza, New York City. It was organized by the Open Mobile Consortium and the Humanitarian FOSS Project. We got to meet a lot of people there, share ideas on how to work together on making mobile platform more open and more importantly, more useful. Hey, we even got to give an interview! Check it out.

We got to meet a lot of people there. Meeting great people like Nathan Freitas of the Guardian Project was very interesting. An interesting project that hit home was the EpiCollect project from the Spatial Edimology lab at Imperial College, London. They have cool Android and iPhone applications that researchers can use to collect data of infectious disease and produce them on a map.

If you watched the video, you probably figured that we focused quite a bit on the Ad-hoc capabilities of POSIT. We had a fun time discussing what kind of situations can this solution be used and got some great insights from people like Robert Kirkpatrick who have actually worked on real disaster scenarios. We are looking forward to more conference (oops, unconferences :p) of this kind in the future. Here are some pictures from the event.