Sahana what?
Finally, the food request portal survived the first presentation to the users. Phew…
Now, the foundation wants us to quickly find a name for the child – “SahanaPy” is undoubtly a bad choice, as it suggests it being just another language version of the same software – even some members of the Sahana community themselves use to say that there are “two different language versions of Sahana – one in PHP, one in Python”, which is simply wrong – these are two different programs, not two different versions of one and the same.
Briefly surveying the battlefield I find us having a variety of codenames, the most famous (and most contested) of which being “S3″. So – Should it be “Sahana S3″?
Ummh – let me think: what’s a typical feature of the SahanaPy identity behind a potential name?
Our milestone releases use the names of rivers in England, as a symbol for distributed development: springs feeding small rivers, small rivers flowing into bigger rivers, and the bigger rivers contributing to yet bigger rivers, and in the end, each and every drop of water adding depth and power to the big stream. And all along its way the water is nurturing life – from the spring to the sea – the grass, the trees, the animals and the people.
The other point this analogy is going to make is about freedom. Water cannot be owned. Certainly, you can own a spring or a river, but not the water – the water is free and will always escape your ownership in less than a few minutes. That makes it something special compared with gold or gems.
So, what’s the big picture? The infinite flow of ideas into a ubiquitous ecosystem of free humanitarian software?
Yes!
That leads me to UNDINEs, the water spirits, so: Sahana Undine?
Another challenge
SahanaPy is being used as development platform in another project: a portal site to track and manage requests for food aid between the aid organisations involved in the Haiti relief effort and the UN World Food Programme.
The wider the scope grows, and the more practical experience is flowing in, the more limitations and wrong assumptions come to the fore. While the REST-heart seems to be strong and keep most of promises (not all, though), the UI - especially those features mainly based AJAX technology - turns out to be a rich source of problems (~50 to 70% of all issues). As a main reason for the latter I understand the loose implementation of indivual solutions with insufficient framework integration instead of solid generic formulations.
However: another challenge - another small step ahead.
S3 Phantoms, 1st edition
May I introduce – the first generation of S3 phantoms (test person records):
- Manfred Breitklopper
- Sylvia Kautsig
- Jens Schmachtstengl
- Gesine Klagenswerth
- Katrin Heilfrich
- Hans Faltung
- Gerhard Stümper
- Filip Weseknich
- Michaela Bütteseer
- Meinhild Umdiecke
The full set can be downloaded in s3xrc format here.
Sahana HMS for Haiti
People think we have done something new: the Sahana Hospital Status Assessment and Request Management System aka HMS. Actually looks like a useful thing:
…I am on the ground in Port-au-Prince helping with the relief efforts. I met a physician at the UN who shared with me that a huge problem hospitals are having is coordinating transfers of patients. One hospital will not necessarily know the capabilities of another hospital, or how to contact the hospital, or—even more importantly—how many beds that hospital has available.
I mentioned that the Sahana hospital info system seems to be a great solution….
However, it is not new: the magic engine was already there. Build in months, created in painful detail work and nightlong discussions of just us two. The small rest now has been nothing but new labels for the same thing.
Though – we were not through yet and not at all prepared for deployment for Haiti. Honestly – the new engine was not ready to race yet, S3XRC is only half the way. Or maybe two-third, but however a stub. We could have completed that already, if we wouldn’t have to do that all in our spare time of which both of us don’t have enough. But funding ain’t.
However, now they grab at it as if it could extinguish fire – the Sahana people run around with flashing warning lights on their heads as if they could save lives with mouse clicks. But actually it is rather about helping Sahana to survive – while the people in Haiti are still suffering.
Please note: that was not my intention! I was creating that out of what we discussed in Kobe and Himeji – to help the health professionals – especially my colleagues – to do their really vital work. All else is just the picture frame, nothing but flies on the windscreen of fate, obfuscating the clear sight on vital information while people are in need – while children loose their arms and legs due to the lack of means for early proper surgery.
SahanaPy Haiti Response
The Sahana Software Foundation operates a SahanaPy instance at:
Services provided so far include:
- Capturing of information about Aid Organisations, their offices and their activities on-site
- Situation Mapping
- Request Management
If you think of volunteering for Sahana – welcome! – we have plenty of tasks for you, e.g.:
- Data collection and entry
- Documentation
- Translation (French, Haitian Creole)
- Code-writing
- Coordination of volunteers
- Communications
Join us on IRC:
International Forum on Disaster Nursing
I am currently in Kobe/Japan for a meeting on the International Forum of Disaster Nursing, presenting about our works in SahanaPy and the development cluster approach.
From the initial meetings, especially with Mrs. Janice Kishner (East Jefferson General Hospital, New Orleans), it is again clear that nurses are a leading force in emergency management, and there is a demand for tools like SahanaPy to better handle the situation, especially regarding:
- Logistics
- People Tracking and Tracing
- Human Resources Management
This confirms the priority list I already had for my SahanaPy works.
On the other hand, there’s still a huge need for localisation – and for better streamlining the development and project management in Sahana(Py) in general. There’s a lot of potential input, if we only take it up effectively and in time.
A portal supporting clusters from the foundation website would be very useful in this regard.
dict.cc
For a very long time now, I’m using dict.cc to write all my english texts – be it blog entries, wiki pages, presentations, code comments, instant messages or e-mails – whatever. Just to look up a word or to check a phrase, check my spelling, find alternate expressions…yes – I even use it to train my pronunciation before talks and presentations – using dict.cc’s audio representation feature for many words. Dict.cc has accompanied me in years, it has become somewhat a part of my personal infrastructure – and has definitly made me better talk to many people all around the globe.
I’m really delighted with dict.cc, which meanwhile has grown up to a top-featured, community-written online dictionary for German/English into multiple European languages. It’s outstanding availability, performance and it’s usablity with such invaluable features like phrase search, synonym search, audio representation and more make it one of the most useful web sites I have ever seen. And it’s QA mechanisms make it one of the most trustable translation resources on the web.
And as priceless as it is – it’s free!
Thousand thanks to Paul Hemetsberger and all the contributors!
Keep up the good work!
Nursing module for Sahana
Regardless of the ongoing discussion about a BBC article that missed to mention Sahana, I’m going to work out a new unique feature for SahanaPy:
For the time being, I’m calling it NIM (Nursing Information Manager), and it’s meant to be a full-featured client data management system for nurses in disaster relief operations – in temporary shelters, field hospitals or even on the go. It is of course built upon the VITA framework (which is itself still under development, though), and it’s main attitude is to be minimalistic, focused on nursing, easy to deploy without heavy infrastructure, and – usable right away without any learning.
I intend to present a first cut of NIM in Japan on 12 January 2010, hopefully drawing some attention of the World Society for Disaster Nursing. My personal goal is to have a deployable version available in mid 2010.
In re: Interoperability
David W. Bitner promptly added XSLT templates for KML and GeoRSS:
“This will be sooooo awesome for being able to quickly extend to read/write any format”
“Nice thing about this architecture is it allows someone like me to come in and add new formats without having to understand *any* of the code going on”
Interoperability
I actually like that built-in GPS of my NOKIA 6220 classic cellphone. This is not a highly advanced professional equipment though, and I’m just using it to map the landmarks of my daily travel – for no serious reason, but just for fun.
However, here is what makes it a Sahana equipment:
The landmarks collection saved in the cellphone can be exported in a very comprehensible XML format, and shared via SMS, E-Mail or Bluetooth.
The XML interface of the SahanaPy RESTful API uses in-line XSLT transformation for export and import of data, so I thought it would perhaps be cool to have a template to import the landmark positions from my cellphone as GIS locations in SahanaPy.
So I added the following XSLT template as “lmx.xsl” to sahana/static/xslt/import:
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:lm="http://www.nokia.com/schemas/location/landmarks/1/0">
<xsl:output method="xml"/>
<xsl:template match="/">
<sahanapy>
<xsl:apply-templates select=".//lm:landmark"/>
</sahanapy>
</xsl:template>
<xsl:template match="lm:landmark">
<resource name="gis_location">
<data field="gis_feature_type" value="1">Point</data>
<xsl:apply-templates select="./lm:name"/>
<xsl:apply-templates select="./lm:coordinates"/>
</resource>
</xsl:template>
<xsl:template match="lm:name">
<data field="name">
<xsl:value-of select="./text()"/>
</data>
</xsl:template>
<xsl:template match="lm:coordinates">
<data field="lat">
<xsl:value-of select="./lm:latitude/text()"/>
</data>
<data field="lon">
<xsl:value-of select="./lm:longitude/text()"/>
</data>
</xsl:template>
</xsl:stylesheet>
Then, I added “lmx” to the supported XML import formats of 01_RESTlike_controller.py:
shn_xml_import_formats = ["xml", "lmx"] #: Supported XML import formats
After that, I sent the landmarks file from my phone (via bluetooth) to my server and import it just by calling the following URL:
http://localhost:8000/sahana/gis/location/create.lmx?filename=/home/dominic/landmarks.lmx
Done! Now I can use my “landmarks” to track people and shelters and other things, view them on maps, link other resources…
Finally, I added another template to be able to export SahanaPy GIS locations as NOKIA landmarks in order to import them on my cellphone, and that works equally good, just exporting by calling:
http://localhost:8000/sahana/gis/location.lmx
and sending the exported file via bluetooth to the phone – it immediately audibly indicates a new message – and when you choose “View” for that message then you get a list of locations which you can easily view on map or load into the navigation system.
Cool.
This is the first implemented cross-platform interoperability feature in SahanaPy, based merely on the SahanaPy RESTful API!