At the moment I am trying to spec out some next steps for rapidsms. I am focusing on a rapidSMS turn key solution - a one step process to install rapidsms (a sms gateway and web interface). What exactly should be installed by this one step process?
I keep using the dreaded W term - wizard. There are lots of wizard haters out there. To you wizard haters - please email me or leave comments - I have forgotten all the anti-wizard arguments.
Why a wizard??? With a wizard a non-programmers can customize a piece of software. I am thinking that perhaps we need a rapidSMS wizard for a rapidSMS easy install. That way users can specify what functionality they would like their rapidSMS deployment to have. The next question is, what in RapidSMS should be available for customization?
Some of the things I think that we need to work out is a way to specify SMS request and response. What messages map to what responses and is there a response flow. This is similar to the web application flow of many early app servers - like apache cocoon. Do people still use this? In the end, RapidSMS should have different modules that you can install for different purposes, an eHealth module, eCrisis, eBusiness... etc. I suppose FrontlineSMS does this with Frontline::Medic. I am not sure how intervention free we can make these modules, but ideally most of the business logic will be developed by engaging in field projects like the Malawi project this summer.
It would be nice to have a forms editor in rapidSMS so you can edit your SMS flow AND then it would be nice to have a HTML flow editor. Does this exist? Is there a GUI where you can edit the flow of your web application. I know this exists for mashups.
Ok now thinking about GUI editors. After the wizard process, where you specify what functionality you want, then you should get a list of sms keywords you need to implement. This means that we need to probably standardize the keyword functionality in rapidSMS. This can probably be implemented via the excellent keyword class that Adam (or Evan) wrote.
With your list of sms keywords you create a sort of flow chart or something similar to patch based programs like max/msp. You link the keywords with certain responses.
Finally, there should be a simple way to set up web reports, and email alerts....
Oooph - I just ran out of steam. I am really shot. I was at Kung Fu for about 4 hours and I cant turn my neck. Tomorrow I will blog more if I can turn my neck again.
My final thought - rapidsms apps need to have annotation to specify what parameters will be defined by wizards. I think this is the first time I have ever found a use for annotation in programming.
Showing posts with label rapidsms. Show all posts
Showing posts with label rapidsms. Show all posts
Monday, November 2, 2009
Friday, October 23, 2009
Chicago (sang musically like sinatra)
I am writing this in Argo Tea shop in downtown chicago - the loop. I do love Chicago. In many ways it is less oppressive than new york. I am not on my A game this morning. Too much wine from wine parings that Lian and I had at Alinea last night. The molecular gastronomy was divine - and was payed for by my amazon puts - thank you amazon for making money this quarter.
This morning I awoke to a rapidsms documentation email. The current documentation is crap and a place holder. Claude, a rapidsms developer, wrote his own documentation. I hope he merges it with the github master so that my script pulls it and publishes it on the website.
Sometimes my anti social nature makes me wonder why I want to work on collaborative software projects - but then when someone like Claude comes along and does something useful, you see why.
Paul and I may embark on yet another doc - this will make 3 in the hopper. This one is partially inspired by Margaret Beals, an improv dancer and New York Character. I think we should do a podcast called New York Characters. Paul also had a brilliant idea - but I cannot reveal it here - it is too brilliant. But it is somewhat analogous to Balzac's Human Comedy. Margaret is a fantastic lady and real character - I have been watching some of her old improv dance dvds. That is fun. I know nothing about dance, I am not very kinetic or physical - but I would love to learn more.
This morning I awoke to a rapidsms documentation email. The current documentation is crap and a place holder. Claude, a rapidsms developer, wrote his own documentation. I hope he merges it with the github master so that my script pulls it and publishes it on the website.
Sometimes my anti social nature makes me wonder why I want to work on collaborative software projects - but then when someone like Claude comes along and does something useful, you see why.
Paul and I may embark on yet another doc - this will make 3 in the hopper. This one is partially inspired by Margaret Beals, an improv dancer and New York Character. I think we should do a podcast called New York Characters. Paul also had a brilliant idea - but I cannot reveal it here - it is too brilliant. But it is somewhat analogous to Balzac's Human Comedy. Margaret is a fantastic lady and real character - I have been watching some of her old improv dance dvds. That is fun. I know nothing about dance, I am not very kinetic or physical - but I would love to learn more.
Sunday, September 13, 2009
Gov 2.0
I opened up my browser this morning and what did I see??? Unicef won a Gov 2.0 award for RapidSMS! The Unicef Story,Gov2.0
What is Gov2.0? A buzz word. Database fetishism. I read a blog post this morning on Quinn said - and one of the points was the lack of imagination in database driven websites/communities. The net is a dialogue and database driven systems are just online versions of old media catalogs. I think this is correct. But the web is not only a dialogue but a cybernetic dialogue/a feedback loop. I think these databases become useful when they are analyzed to provide targeted feedback - a cybernetic system. For example to analyze the data quality in the malnutrition system to better understand which health centers need more training. Communicate and then use the communication to improve the system. I also think that transparency of gov data is fantastic. Perhaps we should not call this Gov2.0, but call it Society2.0. I think we should strive for transparency in all our social systems political, economic, medical.
But should Gov2.0 be more than online catalogs. I dont know- I dont know if for a large country like the US - if we really need public referendums on all issues (This does not really work for California). However, in this age of military-industrial-finacial-government complex, I think that government 'online catalogs' are necessary in maintaining an educated populus. For example,I have a partially working program called congresscal that puts all legislation before congress on a shared google calendar. Perhaps I should enable it so you can subscribe to the calendar and only show those bills related to certain issues - and see which congress people are supporting them etc - but still there is not a feedback loop.
I dont know how the Gov2.0 feedback loop will work or will look. I think it will necessitate a new form of interaction -lest we collapse into mob rule, or technocrat rule,or wacko fringe rule (oh - we just had 8 years of that) Looking at RapidSMS in Malawi, I see Gov2.0 as being able to target resources (malnutrition resources, vitamins, suppliments), immediately to children in need. It is not really about improving the democratic process. Rather it is about government services - streamlining the channels of communication between the governement and the people who need government services.
I wonder if legislation on farm subsidies could be automated to tie into agricultural economic, and world crop yields. Should legislation itself be changed, is it obselete. Do we only need human legislators for gray areas like cloning human? Could most legislation be automated ?
Kudos to RapidSMS it is a fantastic system. I am in Malawi right now, where I have rewritten a version of the software to conform to the new python/django rapidsms framework. (The old version was written in ruby). I am 90% done, and I am very happy with the outcome. I will post some screenshots later. I wish performance was better. I have backpopulated the system with data from 2003 and as a result the database queries are quite slow especially when calculating stats. (I think my love affair with the django orm ended with aggregation) I think I may cache stats or store calc'd stats in a db table. Really I would like to consider generating the data in flat files and storing it in the cloud (s3). If these sorts of issues are cropping up now, then they will only persist - so we need to create a robust solution.
So anyway, Gov2.0! Yes there are many ways that RapidSMS can solve problems in places with wide cellphone penetration and low internet penetration. All sorts of problems. Remote data collection with real-time feedback,tracking distribution of medicine, food, vitamins, receiving feedback on the quality of goods and services, crisis management,etc... I also think that the the simplicity of SMS is perfectly suited to these sorts of problems, sometimes a limited feature set is a blessing in disguise.
I am waiting for my MoH training session. Today I am training the MoH, tomorrow I will make the final changes to the system, and wednesday I will go into the field for our first training session.
There is so much more we could do. If you are delivering a great innovative product (like the RapidSMS nutrition package) it always generates more pathways and more ideas.
This afternoon I will be reviewing integrating the database system with epipen (I think this is an R system) or another epidemological system to track data quality and provide feedback on those health centers that need more training, as well as to track seasonal trends for malnutrition. Data analysis is powerful stuff !
I have been watching lots of Hitchcock the past few nights, I think vertigo is the best Hitch - vertigo and charade! The worst is the movie with paul newman and julie andrews about cold war espionage.
What is Gov2.0? A buzz word. Database fetishism. I read a blog post this morning on Quinn said - and one of the points was the lack of imagination in database driven websites/communities. The net is a dialogue and database driven systems are just online versions of old media catalogs. I think this is correct. But the web is not only a dialogue but a cybernetic dialogue/a feedback loop. I think these databases become useful when they are analyzed to provide targeted feedback - a cybernetic system. For example to analyze the data quality in the malnutrition system to better understand which health centers need more training. Communicate and then use the communication to improve the system. I also think that transparency of gov data is fantastic. Perhaps we should not call this Gov2.0, but call it Society2.0. I think we should strive for transparency in all our social systems political, economic, medical.
But should Gov2.0 be more than online catalogs. I dont know- I dont know if for a large country like the US - if we really need public referendums on all issues (This does not really work for California). However, in this age of military-industrial-finacial-government complex, I think that government 'online catalogs' are necessary in maintaining an educated populus. For example,I have a partially working program called congresscal that puts all legislation before congress on a shared google calendar. Perhaps I should enable it so you can subscribe to the calendar and only show those bills related to certain issues - and see which congress people are supporting them etc - but still there is not a feedback loop.
I dont know how the Gov2.0 feedback loop will work or will look. I think it will necessitate a new form of interaction -lest we collapse into mob rule, or technocrat rule,or wacko fringe rule (oh - we just had 8 years of that) Looking at RapidSMS in Malawi, I see Gov2.0 as being able to target resources (malnutrition resources, vitamins, suppliments), immediately to children in need. It is not really about improving the democratic process. Rather it is about government services - streamlining the channels of communication between the governement and the people who need government services.
I wonder if legislation on farm subsidies could be automated to tie into agricultural economic, and world crop yields. Should legislation itself be changed, is it obselete. Do we only need human legislators for gray areas like cloning human? Could most legislation be automated ?
Kudos to RapidSMS it is a fantastic system. I am in Malawi right now, where I have rewritten a version of the software to conform to the new python/django rapidsms framework. (The old version was written in ruby). I am 90% done, and I am very happy with the outcome. I will post some screenshots later. I wish performance was better. I have backpopulated the system with data from 2003 and as a result the database queries are quite slow especially when calculating stats. (I think my love affair with the django orm ended with aggregation) I think I may cache stats or store calc'd stats in a db table. Really I would like to consider generating the data in flat files and storing it in the cloud (s3). If these sorts of issues are cropping up now, then they will only persist - so we need to create a robust solution.
So anyway, Gov2.0! Yes there are many ways that RapidSMS can solve problems in places with wide cellphone penetration and low internet penetration. All sorts of problems. Remote data collection with real-time feedback,tracking distribution of medicine, food, vitamins, receiving feedback on the quality of goods and services, crisis management,etc... I also think that the the simplicity of SMS is perfectly suited to these sorts of problems, sometimes a limited feature set is a blessing in disguise.
I am waiting for my MoH training session. Today I am training the MoH, tomorrow I will make the final changes to the system, and wednesday I will go into the field for our first training session.
There is so much more we could do. If you are delivering a great innovative product (like the RapidSMS nutrition package) it always generates more pathways and more ideas.
This afternoon I will be reviewing integrating the database system with epipen (I think this is an R system) or another epidemological system to track data quality and provide feedback on those health centers that need more training, as well as to track seasonal trends for malnutrition. Data analysis is powerful stuff !
I have been watching lots of Hitchcock the past few nights, I think vertigo is the best Hitch - vertigo and charade! The worst is the movie with paul newman and julie andrews about cold war espionage.
Wednesday, September 2, 2009
Twas brillg and the slithy toves did gyre and gimble in the wave
Good news from lilongwe! My RapidSMS training session has been pushed back 10 days. This is good because I really need some feedback from the field as regards the current system. I am slightly changing the way patients are registered and the way local care providers are registered and i want to see if there are any usage patterns I should be aware of. I wish I had done this earlier, but its been sort of chaotic.
Last night I revisited the Malawi RapidSMS specifications. This project has taken a slightly different turn. Originally I was just supposed to be tweaking the system. However the last Malawi RapidSMS implementation did not adhere to the RapidSMS application structure, and the refactoring was not finished by the time I left for Malawi - so I had to rebuild the logic and front end of the system. By tonight - I hope to have completed the SMS logic. Then all I will have left is graphing. There are some other bells and whistles I would like to add - but if no one complains - then I will probably not ask forit.
It is very important to prioritize in software development. I often see people spending tons of time on features that no one uses. I myself am guilty of that. Yesterday I spent 2 hours implementing an upload/download documentation feature. This feature will probably not get much usage, and probably would not have been missed - by my OCD got the better of me and I had to finish it.
When I was a trading strat - I would prioritize by only doing work for traders that were making money. If you were losing money - you were probably going to get riffed - or would not contribute much to my bonus - so I would put those projects on the bottom of the list.
Anyway as I was rereading the specs last night, I saw a few features that I had overlooked. I had primarily been implementing features that exist on pilot version, but there were other features that the specs included - and it really only took me about 2 hours (while I was concurrently rewatching Hitchcock's family plot). This however destroyed the beauty of my data models - I would like to refactor. I am doing all sms processing in the nutrition app (which I will eventually rename). Then I am dong all sms response in the infsss app - since this is implementation specific. For example, we want different responses in Malawi and Kenya, but the protocol for registering a patient remains the same. I have to figure out how to get this to work.
I am hoping to work from old town tomorrow. I need an additional cell phone and its a half day anyway - besides I want to enjoy my breakfast - rather than having 5 minutes to eat.
Yesterday I started training two women from the Ministry of Health in maintaining the system. I am really not concerned about system maintenance. In about a month there will be more RapidSMS developers working on a new HIV/AIDS project, and they will hire local developers to maintain the system. However, as I was speaking with the Ministry of Health people the other day, I said, are you interested in understanding how the system works and in perhaps working on the system (ie becoming developers). They seemed very interested- they had studied IT and knew visual basic, and I thought it would be fantastic if they could program the system.
When they first came to the meeting they seemed sort of bored. One woman kept checking her cellphone. They became a bit more animated as I walked them through the nuances of the system. Its amazing how much body language influences your perception of other people. I am constantly guarding against judging people's intention by their body language - especially because I think that I must have some bad body language. People often think I am disinterested in what they are saying, or bored (especially when I am focusing the most!). This has probably predisposed people against me. I wish I could change this body langauge - but really I dont know what I am doing.
Anyway I sent an email out with various links describing the system, and a study plan - and the response i got back. "Thanks for the email - I did not get a chance to look at the links because I was too tired" - ok so maybe they really were disinterested.
This brings me back to my last thought. Education. There is no reason why these women were not taught to program. Right now, there are so many things people can learn that will directly empower them to control their own destiny. It is amazing that this is not a focus of education. I think that programming should be taught with reading, and that calculus should be taught in 10th grade. Sadly education is not about teaching people - but rather about indoctrinating them into industrial society.
I saw a sign on the outskirts of Lilongwe, "Annual Reunion for Malawi Institute of Management." Operations Reserach and Management is really legacy from the Napoleanic wars, where superior logicstics enabled Napolean to supply his troops (I think I stole that from Manuel Delanda - war in the age of intelligent machines). But, it is only useful when you have an army to coordinate - but in Malawi where there is a lot of actual work to get done, perhaps we need experts in irrigation farming, nursing, telecommunications infrastructure, computer programming. Then when we have a mass of pepole in these areas we can focus on operations research and management. What are we optimizing - there is nothing to optimize.
Lets have less optimization and operations research and more nonsense - that make sense
Last night I revisited the Malawi RapidSMS specifications. This project has taken a slightly different turn. Originally I was just supposed to be tweaking the system. However the last Malawi RapidSMS implementation did not adhere to the RapidSMS application structure, and the refactoring was not finished by the time I left for Malawi - so I had to rebuild the logic and front end of the system. By tonight - I hope to have completed the SMS logic. Then all I will have left is graphing. There are some other bells and whistles I would like to add - but if no one complains - then I will probably not ask forit.
It is very important to prioritize in software development. I often see people spending tons of time on features that no one uses. I myself am guilty of that. Yesterday I spent 2 hours implementing an upload/download documentation feature. This feature will probably not get much usage, and probably would not have been missed - by my OCD got the better of me and I had to finish it.
When I was a trading strat - I would prioritize by only doing work for traders that were making money. If you were losing money - you were probably going to get riffed - or would not contribute much to my bonus - so I would put those projects on the bottom of the list.
Anyway as I was rereading the specs last night, I saw a few features that I had overlooked. I had primarily been implementing features that exist on pilot version, but there were other features that the specs included - and it really only took me about 2 hours (while I was concurrently rewatching Hitchcock's family plot). This however destroyed the beauty of my data models - I would like to refactor. I am doing all sms processing in the nutrition app (which I will eventually rename). Then I am dong all sms response in the infsss app - since this is implementation specific. For example, we want different responses in Malawi and Kenya, but the protocol for registering a patient remains the same. I have to figure out how to get this to work.
I am hoping to work from old town tomorrow. I need an additional cell phone and its a half day anyway - besides I want to enjoy my breakfast - rather than having 5 minutes to eat.
Yesterday I started training two women from the Ministry of Health in maintaining the system. I am really not concerned about system maintenance. In about a month there will be more RapidSMS developers working on a new HIV/AIDS project, and they will hire local developers to maintain the system. However, as I was speaking with the Ministry of Health people the other day, I said, are you interested in understanding how the system works and in perhaps working on the system (ie becoming developers). They seemed very interested- they had studied IT and knew visual basic, and I thought it would be fantastic if they could program the system.
When they first came to the meeting they seemed sort of bored. One woman kept checking her cellphone. They became a bit more animated as I walked them through the nuances of the system. Its amazing how much body language influences your perception of other people. I am constantly guarding against judging people's intention by their body language - especially because I think that I must have some bad body language. People often think I am disinterested in what they are saying, or bored (especially when I am focusing the most!). This has probably predisposed people against me. I wish I could change this body langauge - but really I dont know what I am doing.
Anyway I sent an email out with various links describing the system, and a study plan - and the response i got back. "Thanks for the email - I did not get a chance to look at the links because I was too tired" - ok so maybe they really were disinterested.
This brings me back to my last thought. Education. There is no reason why these women were not taught to program. Right now, there are so many things people can learn that will directly empower them to control their own destiny. It is amazing that this is not a focus of education. I think that programming should be taught with reading, and that calculus should be taught in 10th grade. Sadly education is not about teaching people - but rather about indoctrinating them into industrial society.
I saw a sign on the outskirts of Lilongwe, "Annual Reunion for Malawi Institute of Management." Operations Reserach and Management is really legacy from the Napoleanic wars, where superior logicstics enabled Napolean to supply his troops (I think I stole that from Manuel Delanda - war in the age of intelligent machines). But, it is only useful when you have an army to coordinate - but in Malawi where there is a lot of actual work to get done, perhaps we need experts in irrigation farming, nursing, telecommunications infrastructure, computer programming. Then when we have a mass of pepole in these areas we can focus on operations research and management. What are we optimizing - there is nothing to optimize.
Lets have less optimization and operations research and more nonsense - that make sense
Sunday, August 30, 2009
Lilongwe Holiday
I have run across some linkings (mainly through other people's twitter) and I though i'd put them up:
- Malawi school girl studying at US prep school for the Summer
- Zinc combating diarrea in Africa
- Sex workers in Swaziland (sex work is legal in Malawi and currently there is a legislation attempting to criminalize HIV transmission - something for a future blog post)
- Git articles (I’ve been using this a lot to keep my code in sync)
I took another look at the original specifications for the RapidSMS/Malawi Health project as spec’d out by the SIPA students (aka Mobile Development Solutions). So now I have a good idea of the SMS protocol I need to use, and the UI look and feel. It also gave me data for stunting and wasting metrics - so I added that to my data models and I’m creating fixtures for those pieces of data. I am upgrading my jsonmedusa script because I see future deployments of RapidSMS will involve lots of data munging.
Right now, with the nutrition app as it stands (on the shoulders of giants by the way), I think RapidSMS could deploy a basic malnutrition alert and monitoring system ANYWHERE IN THE WORLD. I would like to do this somewhere in China, mainly because I am desperately craving Sha lum Bao/Soup dumplings (apologies for the non Pinyin transliteration).
Last night I went to a new night spot in the outskirts of lilongwe - ‘Sol Farm.’ We then drove back via the posh neighborhoods of lilongwe - enormous homes/beautiful. I took some pictures. So much of this trip cannot be captured on film (or sd card): the smells, the feel of the sun and the dust, the song of the birds and the call to prayer at 5:30 in the morning. I tried to record the call to prayer last week - but it sounded rather crappy. I may go out and play pool at ‘The Diplomat’ tonight, a bar with a modest amount of sex workers. I am feeling out of sorts so I may just stay in work, read a book, and watch one of the films I have on my hard drive. I did some meditation in the late afternoon, and then I fell asleep. It is sometimes hard for me to stay awake during meditation.
Can lists be poetry?
"We make out of the quarrel with others, rhetoric, but of the quarrel with ourselves, poetry." William Butler Yeats
I have finished the totally awful Globalization anthology - I think I may leave it in the hotel library, but then I feel that is unfair to future people who might pick it up. Many of the essays in Globalization brought up really interesting topics, but then became mired down in jargon and academic ass kissing. To cleanse my palate I picked up my copy of Mayes poetry handbook. A fantastic book that I usually travel with it. I always try to memorize poetry, so that when my mind starts to wander to negative thoughts I can have something beautiful (like a mantra) to focus my mind. Poetry reminds me of drawing, it involves intense focus on something and the recreation of that thing in your own likeness (to be biblical) but really - this is what lets the experience become integrated into your person.javascript:void(0)
It is weird - this time last year I was living in Hong Kong. Hong Kong was way more lonely than Lilongwe although there was more to do and the food was better (and my accommodations were nicer). I never feel alone in Lilongwe - although I do feel like I am at the ends of the earth lost in another time.
- Malawi school girl studying at US prep school for the Summer
- Zinc combating diarrea in Africa
- Sex workers in Swaziland (sex work is legal in Malawi and currently there is a legislation attempting to criminalize HIV transmission - something for a future blog post)
- Git articles (I’ve been using this a lot to keep my code in sync)
I took another look at the original specifications for the RapidSMS/Malawi Health project as spec’d out by the SIPA students (aka Mobile Development Solutions). So now I have a good idea of the SMS protocol I need to use, and the UI look and feel. It also gave me data for stunting and wasting metrics - so I added that to my data models and I’m creating fixtures for those pieces of data. I am upgrading my jsonmedusa script because I see future deployments of RapidSMS will involve lots of data munging.
Right now, with the nutrition app as it stands (on the shoulders of giants by the way), I think RapidSMS could deploy a basic malnutrition alert and monitoring system ANYWHERE IN THE WORLD. I would like to do this somewhere in China, mainly because I am desperately craving Sha lum Bao/Soup dumplings (apologies for the non Pinyin transliteration).
Last night I went to a new night spot in the outskirts of lilongwe - ‘Sol Farm.’ We then drove back via the posh neighborhoods of lilongwe - enormous homes/beautiful. I took some pictures. So much of this trip cannot be captured on film (or sd card): the smells, the feel of the sun and the dust, the song of the birds and the call to prayer at 5:30 in the morning. I tried to record the call to prayer last week - but it sounded rather crappy. I may go out and play pool at ‘The Diplomat’ tonight, a bar with a modest amount of sex workers. I am feeling out of sorts so I may just stay in work, read a book, and watch one of the films I have on my hard drive. I did some meditation in the late afternoon, and then I fell asleep. It is sometimes hard for me to stay awake during meditation.
Can lists be poetry?
"We make out of the quarrel with others, rhetoric, but of the quarrel with ourselves, poetry." William Butler Yeats
I have finished the totally awful Globalization anthology - I think I may leave it in the hotel library, but then I feel that is unfair to future people who might pick it up. Many of the essays in Globalization brought up really interesting topics, but then became mired down in jargon and academic ass kissing. To cleanse my palate I picked up my copy of Mayes poetry handbook. A fantastic book that I usually travel with it. I always try to memorize poetry, so that when my mind starts to wander to negative thoughts I can have something beautiful (like a mantra) to focus my mind. Poetry reminds me of drawing, it involves intense focus on something and the recreation of that thing in your own likeness (to be biblical) but really - this is what lets the experience become integrated into your person.javascript:void(0)
It is weird - this time last year I was living in Hong Kong. Hong Kong was way more lonely than Lilongwe although there was more to do and the food was better (and my accommodations were nicer). I never feel alone in Lilongwe - although I do feel like I am at the ends of the earth lost in another time.
Friday, August 28, 2009
RapidSMS is AWESOME
Many things have changed since I last posted.
1) I have decided to change my nutrition architecture and reuse the location app and the reporter app for locations, reporters and patients. I need to make some minor tweeks to this code to accomidate patient type things like gender and date of birth - which really all people have. I am trying to use rapidSMS to the fullest of its RAD capabilities - what this means is that I am spending time writing scripts to translate csv backdata to json to import as data into the RapidSMS databases. This is probably going to be a typical use case for RapidSMS implementation - as little reinvention of the wheel as possible.
I strongly urge developers/interested parties who want to use RapidSMS to look at the locations app and the reporters app - they are really well architected. I am going ahead with my malwai health app - eventually I think it would be useful to have an indicators app similar to the locations/reporter paradigm. But for now, I am going to stick with my explicit/non flexible model- which will work.
2) I have stopped drinking coffee
3) I can now identify malaria carrying mosquitoes
4) I have totally destroyed my local git hub repository and need to regenerate a ssh key. This is leading to massive ssh key proliferation that I need to stamp out.
5) I am on a good UNICEF bus pickup/drop off schedule
We end at 1:30 on Fridays - at which point - I think I am going to go and eat pizza at mamma mia. It is SOO good - I am dreaming about it- but pricey (I had to dig into my stash of gnu bars yesterday to save up for it)
Last night there was no bar volleyball -very sad. Instead I took myself upto the Kiboko bar, which is completely deserted, sat infront of a roaring fire (it is cold here), had a beer (a green one as we call Carlsberg in Lilongwe) - and cracked open 'Globalization' - the anthology I am reading. I think this book was written in 99, and it is a bit dated, however some of the articles are excellent (like the memory article from a few posts back). Last night there were two standouts, a piece on the Chinese Artist Wang Jin and his work 'A Chinese Dream' by Wu Hung and 'Inside the Economoy of Appearances' by Anna Tsing.
So the first piece was basically an analysis of this piece of artwork - a replication of a traditional chinese opera costume recreated entirely in plastic. Of course the author gives treatment to the artist as capitalist/cosmopolitian producer (the piece is manufactured by old ladies in rural china),artist reappropriating traditional forms - that are realy ersatz. (Chinese opera these days is akin to Disney world). I really was touched aesthetically by Wang Jin's artwork and its different manifestations (as performance art, as photograph, etc). I though the article was excellent as an thorough investigation into all aspects of the work: production, consumption, reappropriation,etc.
Second article, ok this one was bit long. In 13Bit filmmaking we would say it needed a little choppy choppy (ie editing). However,this was really an incredibly fascinating article and I recommend it to anyone interested in Gold, mining, and the markets. Basically it follows the rise and fall of Bre-X, a Canadian mining company as it attempted to look for Gold in Indonesia. The article touches upon how the 'scientific-izatio' of the field (now we have geologists exploring rather than miners), makes in palatable to wall street. How there was this transformation of part of Indonesia into frontier land fit for explorers and fortune hunters (like the Brazilian Amazon). How antropological tropes have been mapped on to this capitalist venture. How Bre-X was able to pull a magnificent swindle on the stockmarket - and yet how people were still able to make money from stock speculation. It is truly a rich article that is told in a narrative and entertaining fashion- I will probably reread it.
Caveat Emptor - I know I am discussing this book - however I dont recommend purchasing it. The quality of the articles are really uneven and I would probably be better off reading Shakespeare. That being said, if you still want to read it, borrow it from your local library.
So after my thinking and reading - I settled down into my queensize bed covered with mosquito netting, and listened to the philosophybites podcast - the most awesome podcast evar! http://www.philosophybites.com (well its a toss up between that and coverville)
OOp - just got the rest of the location codes from the Malawi ministry of health! They are really on top of things. More csv to json - via my jsonmedusa.py script.
Next time I hope to be reporting on my RapidSMS Malawi version2 test.
TGIF!
1) I have decided to change my nutrition architecture and reuse the location app and the reporter app for locations, reporters and patients. I need to make some minor tweeks to this code to accomidate patient type things like gender and date of birth - which really all people have. I am trying to use rapidSMS to the fullest of its RAD capabilities - what this means is that I am spending time writing scripts to translate csv backdata to json to import as data into the RapidSMS databases. This is probably going to be a typical use case for RapidSMS implementation - as little reinvention of the wheel as possible.
I strongly urge developers/interested parties who want to use RapidSMS to look at the locations app and the reporters app - they are really well architected. I am going ahead with my malwai health app - eventually I think it would be useful to have an indicators app similar to the locations/reporter paradigm. But for now, I am going to stick with my explicit/non flexible model- which will work.
2) I have stopped drinking coffee
3) I can now identify malaria carrying mosquitoes
4) I have totally destroyed my local git hub repository and need to regenerate a ssh key. This is leading to massive ssh key proliferation that I need to stamp out.
5) I am on a good UNICEF bus pickup/drop off schedule
We end at 1:30 on Fridays - at which point - I think I am going to go and eat pizza at mamma mia. It is SOO good - I am dreaming about it- but pricey (I had to dig into my stash of gnu bars yesterday to save up for it)
Last night there was no bar volleyball -very sad. Instead I took myself upto the Kiboko bar, which is completely deserted, sat infront of a roaring fire (it is cold here), had a beer (a green one as we call Carlsberg in Lilongwe) - and cracked open 'Globalization' - the anthology I am reading. I think this book was written in 99, and it is a bit dated, however some of the articles are excellent (like the memory article from a few posts back). Last night there were two standouts, a piece on the Chinese Artist Wang Jin and his work 'A Chinese Dream' by Wu Hung and 'Inside the Economoy of Appearances' by Anna Tsing.
So the first piece was basically an analysis of this piece of artwork - a replication of a traditional chinese opera costume recreated entirely in plastic. Of course the author gives treatment to the artist as capitalist/cosmopolitian producer (the piece is manufactured by old ladies in rural china),artist reappropriating traditional forms - that are realy ersatz. (Chinese opera these days is akin to Disney world). I really was touched aesthetically by Wang Jin's artwork and its different manifestations (as performance art, as photograph, etc). I though the article was excellent as an thorough investigation into all aspects of the work: production, consumption, reappropriation,etc.
Second article, ok this one was bit long. In 13Bit filmmaking we would say it needed a little choppy choppy (ie editing). However,this was really an incredibly fascinating article and I recommend it to anyone interested in Gold, mining, and the markets. Basically it follows the rise and fall of Bre-X, a Canadian mining company as it attempted to look for Gold in Indonesia. The article touches upon how the 'scientific-izatio' of the field (now we have geologists exploring rather than miners), makes in palatable to wall street. How there was this transformation of part of Indonesia into frontier land fit for explorers and fortune hunters (like the Brazilian Amazon). How antropological tropes have been mapped on to this capitalist venture. How Bre-X was able to pull a magnificent swindle on the stockmarket - and yet how people were still able to make money from stock speculation. It is truly a rich article that is told in a narrative and entertaining fashion- I will probably reread it.
Caveat Emptor - I know I am discussing this book - however I dont recommend purchasing it. The quality of the articles are really uneven and I would probably be better off reading Shakespeare. That being said, if you still want to read it, borrow it from your local library.
So after my thinking and reading - I settled down into my queensize bed covered with mosquito netting, and listened to the philosophybites podcast - the most awesome podcast evar! http://www.philosophybites.com (well its a toss up between that and coverville)
OOp - just got the rest of the location codes from the Malawi ministry of health! They are really on top of things. More csv to json - via my jsonmedusa.py script.
Next time I hope to be reporting on my RapidSMS Malawi version2 test.
TGIF!
Thursday, August 27, 2009
In the code
Score 1 for UNICEF Malawi - they picked me up from the hotel this morning.
Sadly, I was unable to visit the internet cafe and sync with github. The internet cafe opens at 8 and the unicef car picked me up at 7:10.
Today was also my first day without coffee, I drank tea instead. The only coffee here is nescafe and i'm not so into it. If I am able to kick my coffee habit - then a true miracle will have occured. I am now grumpy with a bad headache. I guess its a good thing I am half way around the world from people I could seriously alienate.
Another milestone today (today is very momentus it seems) I got my 'Malawi Health' RapidSMS version up and running. Exciting Exciting. For the next few days I will be editing templates to improve data display andd data navigation.
There is a big discussion in the RapidSMS world over apps. Where in the repository should apps go, are there core apps, where should 3rd party apps go, should some of this move to a library, what about projects- are projects apps?
Well - I will leave that to the list to figure out.
What I did was create a MalawiHealth app. I've attempted to make it exensible for future Malawi Health projects.
Classes:
Models.py - this contains 3 classes. a GMC class (that represents a health center). I inheret adam's Location model (from the location app). Then we have a Patient, this should probably inheret from something. Finally I have a INFSSS model that includes 5 heath indicators (muac, height,weight, oedema,diarrea) and calculators for age and malnutrition. 82 lines of code. Apparently this was originally written with the reporter app, but I think it is perhaps a good idea to build out a datamodel for clarity.
App.py - Here is where I parse the sms message. It is very brute force. I intend to spend my last few weeks working on this, especially as I get feedback from the field. Basically, I implemented a tokenizer and a bunch of conditionals that add data and send responses. It is not pretty, but not THAT ugly - and fine for v1 (74 lines).
It seems that many things I have been thinking about have already been included in RapidSMS - isn't RapidSMS awesome! I am very keen on using the Keyword parser (an app) to improve my message parsing in the coming weeks.
I have a urls.py, views.py and templates - and this will take most of my time over the coming days. I almost forgot - my fixtures - creating fixtures right now in order to backpopulate the data with data from 2003. Got this 2 days ago from the Malawi Ministry of Health.
Some other apps I will be using are the excel exporting app (although I think this is tag library), and perpahs the ajax app, and of course the admin app (I already mentioned the locations app). I will probably add a document app (I need a better name). This will associate documents with a rapidSMS project - e.g., a sidebar of relavent & downloadable reports/powerpoint presentation etc). We are hoping to turn the Malawi INFSSS system into a one stop shop for all things INFSSS related - so I am trying to aggregate as much useful content as possible.
In this case, since I am bulding the Malawi INFSSS rapidsms system for a particular scenario, I am going to sacrifice some reusability. As I build more health systems, I will probably be able to build out a health app, but perhaps this is a future project for the 13Bit Labs.
Final note on the documentation system:
RapidSMS uses sphinx for documentation. We copied Django. Sphinx is really powerful and an awesome document management system. According to the Sphinx documentation, autogenerating code documentation was an afterthough and that is really apparent when you use the system. Yesterday I build a directory walker that generates a rst file with the classes availabe explicitly stated. Perhaps when RapidSMS is done - I can take a look at the Sphinx code base.
I have been a hermit the last 2 nights. Staying in my room/internet cafe writing code and watching Kung Fu. Tonight though I will go and hang with some of my new friends, maybe we can play bar volleyball again!
I will try not to use demorgans law to reduce all my conditionals to booleans inorder to assign them to variables
Sadly, I was unable to visit the internet cafe and sync with github. The internet cafe opens at 8 and the unicef car picked me up at 7:10.
Today was also my first day without coffee, I drank tea instead. The only coffee here is nescafe and i'm not so into it. If I am able to kick my coffee habit - then a true miracle will have occured. I am now grumpy with a bad headache. I guess its a good thing I am half way around the world from people I could seriously alienate.
Another milestone today (today is very momentus it seems) I got my 'Malawi Health' RapidSMS version up and running. Exciting Exciting. For the next few days I will be editing templates to improve data display andd data navigation.
There is a big discussion in the RapidSMS world over apps. Where in the repository should apps go, are there core apps, where should 3rd party apps go, should some of this move to a library, what about projects- are projects apps?
Well - I will leave that to the list to figure out.
What I did was create a MalawiHealth app. I've attempted to make it exensible for future Malawi Health projects.
Classes:
Models.py - this contains 3 classes. a GMC class (that represents a health center). I inheret adam's Location model (from the location app). Then we have a Patient, this should probably inheret from something. Finally I have a INFSSS model that includes 5 heath indicators (muac, height,weight, oedema,diarrea) and calculators for age and malnutrition. 82 lines of code. Apparently this was originally written with the reporter app, but I think it is perhaps a good idea to build out a datamodel for clarity.
App.py - Here is where I parse the sms message. It is very brute force. I intend to spend my last few weeks working on this, especially as I get feedback from the field. Basically, I implemented a tokenizer and a bunch of conditionals that add data and send responses. It is not pretty, but not THAT ugly - and fine for v1 (74 lines).
It seems that many things I have been thinking about have already been included in RapidSMS - isn't RapidSMS awesome! I am very keen on using the Keyword parser (an app) to improve my message parsing in the coming weeks.
I have a urls.py, views.py and templates - and this will take most of my time over the coming days. I almost forgot - my fixtures - creating fixtures right now in order to backpopulate the data with data from 2003. Got this 2 days ago from the Malawi Ministry of Health.
Some other apps I will be using are the excel exporting app (although I think this is tag library), and perpahs the ajax app, and of course the admin app (I already mentioned the locations app). I will probably add a document app (I need a better name). This will associate documents with a rapidSMS project - e.g., a sidebar of relavent & downloadable reports/powerpoint presentation etc). We are hoping to turn the Malawi INFSSS system into a one stop shop for all things INFSSS related - so I am trying to aggregate as much useful content as possible.
In this case, since I am bulding the Malawi INFSSS rapidsms system for a particular scenario, I am going to sacrifice some reusability. As I build more health systems, I will probably be able to build out a health app, but perhaps this is a future project for the 13Bit Labs.
Final note on the documentation system:
RapidSMS uses sphinx for documentation. We copied Django. Sphinx is really powerful and an awesome document management system. According to the Sphinx documentation, autogenerating code documentation was an afterthough and that is really apparent when you use the system. Yesterday I build a directory walker that generates a rst file with the classes availabe explicitly stated. Perhaps when RapidSMS is done - I can take a look at the Sphinx code base.
I have been a hermit the last 2 nights. Staying in my room/internet cafe writing code and watching Kung Fu. Tonight though I will go and hang with some of my new friends, maybe we can play bar volleyball again!
I will try not to use demorgans law to reduce all my conditionals to booleans inorder to assign them to variables
Tuesday, August 25, 2009
The Lilongwe Server Farm
Today brought me to the UNICEF/Lilongwe server farm/cage. I'll post a picture later.
Here I inspected the source of all that is good and holy in the Lilongwe RapidSMS project - the RapidSMS server.
This is the hardware system: One computer, 2 serial modems with serial to usb adaptors. There are 4 usb ports total so we can add 2 additional modems out of the box, without adding a usb hub.
There are some questions that we are asking about RapidSMS implementation. RapidSMS is going to support 2 different projects in Malawi, a Malnutrition project and a mother child HIV/AIDS project. I dont think these should run under the same rapidsms instance, but has anyone tried running 2 rapidsms projects at the same time,on the same port.... I've done this with Django - but media temple did all the heavy lifting.
I still need to do some more work planning the barcamp. My goal is to work on a RapidSMS based twitter app. Similar to the Naijapulse - Nigerian Twitter. I'm planning two barcamps here. My UNICEF collegue Sean suggested that I communicate with MobileActive and do some sort of NY-Mzuzu remote barcamp. I dont know if Malawi has the bandwidth for it.
Today I was also thinking of marriage. Is marriage a raw deal for women in developing countries?
I am a liberated western woman married to a liberated eastern man - and I think our marriage has advantages - FOR ME. My husband and I share work, pool income, share expenses, provide support - and my husband cooks delicious food for me and begrudgingly picks up my socks which I hide around the apartment. I'm trying to figure out what he gets out of the relationship, but I digress.
Professionally, as a working woman, I think some men find it easier to work with married women. Pehaps marriage seems to confirm a certain level of maturity or perhaps acceptability. I dont know, I have not conducted a scientific study, but I have experienced different treatment pre marriage vs post marriage.
Marriage is such a hot topic in the United States. People want the ability to get married (gay rights), there are tons of dating sites dedicated to finding the right match, and there is certain social pressure to be married if everyone in your social circle is married. When we go into the third world we assume these same circumstances exist.
DO NOT BE FOOLED, I think marriage is a raw deal for women in developing countries. Today I got a lift to the main UNICEF headquarters from a woman named Lindsay. I dont know her age, but she has 5 children, works a full time job, and her husband lives in a different city (Blantyre) 5 hours away. She is a no nonsense woman - we did share some laughs though. Lindsay has no time for nonsense, raising 5 children by herself. What has marriage given her - 5 kids, a full time job, and an absent husband.
Did she choose to get married? How old was she? Was it an arranged marriage? The woman that runs the front desk at my hotel signs her email with Mrs. Is this empowering or enslaving?
Marriage rights in the US, but lets also have Singles rights around the world.
The NYTimes - amazingly enough since I am really down on the nytimes - ran a great magazine issue on woman's rights in the third world. I recommend it.
Here I inspected the source of all that is good and holy in the Lilongwe RapidSMS project - the RapidSMS server.
This is the hardware system: One computer, 2 serial modems with serial to usb adaptors. There are 4 usb ports total so we can add 2 additional modems out of the box, without adding a usb hub.
There are some questions that we are asking about RapidSMS implementation. RapidSMS is going to support 2 different projects in Malawi, a Malnutrition project and a mother child HIV/AIDS project. I dont think these should run under the same rapidsms instance, but has anyone tried running 2 rapidsms projects at the same time,on the same port.... I've done this with Django - but media temple did all the heavy lifting.
I still need to do some more work planning the barcamp. My goal is to work on a RapidSMS based twitter app. Similar to the Naijapulse - Nigerian Twitter. I'm planning two barcamps here. My UNICEF collegue Sean suggested that I communicate with MobileActive and do some sort of NY-Mzuzu remote barcamp. I dont know if Malawi has the bandwidth for it.
Today I was also thinking of marriage. Is marriage a raw deal for women in developing countries?
I am a liberated western woman married to a liberated eastern man - and I think our marriage has advantages - FOR ME. My husband and I share work, pool income, share expenses, provide support - and my husband cooks delicious food for me and begrudgingly picks up my socks which I hide around the apartment. I'm trying to figure out what he gets out of the relationship, but I digress.
Professionally, as a working woman, I think some men find it easier to work with married women. Pehaps marriage seems to confirm a certain level of maturity or perhaps acceptability. I dont know, I have not conducted a scientific study, but I have experienced different treatment pre marriage vs post marriage.
Marriage is such a hot topic in the United States. People want the ability to get married (gay rights), there are tons of dating sites dedicated to finding the right match, and there is certain social pressure to be married if everyone in your social circle is married. When we go into the third world we assume these same circumstances exist.
DO NOT BE FOOLED, I think marriage is a raw deal for women in developing countries. Today I got a lift to the main UNICEF headquarters from a woman named Lindsay. I dont know her age, but she has 5 children, works a full time job, and her husband lives in a different city (Blantyre) 5 hours away. She is a no nonsense woman - we did share some laughs though. Lindsay has no time for nonsense, raising 5 children by herself. What has marriage given her - 5 kids, a full time job, and an absent husband.
Did she choose to get married? How old was she? Was it an arranged marriage? The woman that runs the front desk at my hotel signs her email with Mrs. Is this empowering or enslaving?
Marriage rights in the US, but lets also have Singles rights around the world.
The NYTimes - amazingly enough since I am really down on the nytimes - ran a great magazine issue on woman's rights in the third world. I recommend it.
Sunday, August 23, 2009
Software, Hardware, and Health
I finally met Isaac Holeman, Clinical Programs Co-founder of FrontlineSMS:Medic. Isaac is on a year long Compton Fellowship. His project is to spec out an electronic medical records system that integrates with medical data collected in the field (via sms). Isaac -I hope I got that partially correct. Isaac's accomplishments with FrontlineSMS:Medic are really fantastic and prescient. I am very excited to hear how his project develops and to hear more of his thoughts on mHealth.
Isaac has been thinking about these issues longer than I have, so it was great to sit down and talk with him.
We discussed some of the SMS/health/development solutions available
We also discussed other people and orgs doing similar work: Partners in Health, The Clinton Foundation, The Gates Foundation, RapidResponse, TextToChange, MobileActive - Ken Isaac's mentor - the list goes on...
We also talked about new medical technology, along with a scottish aid worker that is staying at the same rooming house as Isaac. I am very interested in the Cellophone technology being developed out of UCLA EE - use a sensor on your phone to diagnose various blood based diseases (such as malaria). Also interested in PointCare - they developed a portable mobile cd4 (t cell count) test. Also found this link about other cellphone-enabled medical devices. All this has inspired me to think about intelligent medical devices and integrating this with mHealth solutions.
Ahh - The Meuzzin is calling. That gives me about 45 minutes to do some kung fu before the mosquitos start to attack. I wonder how many years of my life the deet I just have sprayed will steal....
Lots of good work to do - you cant spell change with out chang (hahahahahha)
Hope to see Isaac next week for the Lucius Banda concert!
This blogging is hard - i hope my stream of consciousness translates into coherent blog posts.
Isaac has been thinking about these issues longer than I have, so it was great to sit down and talk with him.
We discussed some of the SMS/health/development solutions available
- RapidSMS - open source, super extensible, you need some technical savvy. (I'm working on this so it is of course my personal favorite :)
- FrontlineSMS - a more established turnkey solution, with support for many different phone platforms, and for java enabled xforms. I think it would be a great idea to create a FrontlineSMS app for RapidSMS to integrate with the FrontlineSMS gateway and xforms java engine.
- OpenMRS - this is an open source java based medical records system. The system is open source not the records :) FrontlineSMS:Medic (Isaac's product) is developing a plug in for OpenMRS. Again, I think this would be a great candidate for an RapidSMS app. I also think that there is a lot of potential to implement this system in the US and other developed countries - mobile/realtime communication with eHealth systems.
- Ushahidi - started out as an sms/google map mashup engine - it's strenght is in a crowd sourcing application for mapping areas of political unrest. Its built on top of FrontlineSMS and The strength of an application like ushahidi is it is a intelligible and useful solution to a well defined problem. It is an application. RapidSMS and FrontlineSMS are more general frameworks - with applications built on top of them.
We also discussed other people and orgs doing similar work: Partners in Health, The Clinton Foundation, The Gates Foundation, RapidResponse, TextToChange, MobileActive - Ken Isaac's mentor - the list goes on...
We also talked about new medical technology, along with a scottish aid worker that is staying at the same rooming house as Isaac. I am very interested in the Cellophone technology being developed out of UCLA EE - use a sensor on your phone to diagnose various blood based diseases (such as malaria). Also interested in PointCare - they developed a portable mobile cd4 (t cell count) test. Also found this link about other cellphone-enabled medical devices. All this has inspired me to think about intelligent medical devices and integrating this with mHealth solutions.
Ahh - The Meuzzin is calling. That gives me about 45 minutes to do some kung fu before the mosquitos start to attack. I wonder how many years of my life the deet I just have sprayed will steal....
Lots of good work to do - you cant spell change with out chang (hahahahahha)
Hope to see Isaac next week for the Lucius Banda concert!
This blogging is hard - i hope my stream of consciousness translates into coherent blog posts.
Labels:
frontlinesms,
frontlinesms:medic,
mHealth,
openmrs,
rapidsms,
software
Subscribe to:
Posts (Atom)