Tuesday, September 29, 2009

Doc Progress

Today Paul and I embarked on one of our many 13Bit documentary road trips. A documentary is lots of fun to make. It is sort of like playing detective. In the beginning stages, you go out to different locations and meet interesting people to sus out the story for your doc. Today Paul and I went to Bethlehem PA to meet with Greta Browne, a woman who recently walked for climate change. Paul first read about her in an article in the New York Times.

She is an average american, well I don't know how average really. I mean not many people would dedicate 6 months of their lives to walking route 11 to 'Witness' climate change. 'Witness' is Greta's description and I think it is a very evocative word. Her mission during the 6 months was just to 'be there', to experience the country and to 'state for the record', in a sense, her concern for the climate. We spoke a bit about buddhism and mindfulness and the state of mind that allows for you to fully experience your current experience - what it means to 'witness'.

We are slowing building the pieces to this documentary - and the final shape is not all together clear yet. We have not found our story. It is like Michaelangelo finding David in a block of marble. We are finding a story in a block of human experiences.

Monday, September 28, 2009

Day Off

Between the Robots and Sunday night dinner I forgot to blog.

I am really doing badly with my daily deadlines and I attribute to my inability to stop writing code once I start. This morning I am not going to code. Instead I am going to finish some web design/business card designs and some writing that I started. I would like to also update my iphone firmware and download a flash card app so i can study kung fu.

I am redoing the chang projects website. I accidentally deleted the files the other day to I am redesigning practically from scratch. The good thing is that I am off tables forever and have totally converted to css (about 5 years after starting css). CSS is hard for me, because I have bad memories of div and layer problems in IE and Netscape from the dawn of the internet age.

I am exploring web hosting on the cloud via rackspace. This seems much cheaper than mediatemple's virtual server. I also bought a very cool url for my social networking software and I will probably be revealing it in a few days. The server in Lilongwe is down for 3 days because they are transferring ISPs. I have been communicating with the Ministry of Health, and there are massive problems with managing expectations. So, now, I am managing expectations and making people feel good. Tomorrow 13Bit is going to PA to interview a woman walking across the US to raise awareness for global warming.

Today I was reading "My Mother was a Computer" by Hayles. I was looking for inspiration to finish my song about the singularity and I think it did the trick. It is not a bad book, although I think it probably does not belong all in one book. Most interesting to me is the treatment of computer code as an art, and the discussion of code as performative. (Ah-hem I presented a paper on this in 03). Ok so this is a philosophical idea - Performative statements. I think AJ Ayers talks about it. So you look at something like marriage. The justice of the peace, by performing the marriage ceremony - by saying 'i now pronounce you man and wife' - has a meaning beyond pure linguistic communication. It is performative in that it changes the status of the couple hoping to be married. This statement 'does' something within our judicial system (unless you are a same sex couple) - but then you sort of enter the world of language game - the performance only takes place in a particular judical system.

So code is like saying 'you are man and wife' - it 'does' something. Code is performative.

Anyway, Hayles disregards the literary content of code, saying that the only meaning of code is the execution. This is myopic. The clearer the code the greater lifespan (ie more people will reuse it). Same goes for speed. In this case memory management could probably be sacrificed for speed unless you are developing for microcontrollers. The language of code perpetuates English language dominance since most code structure is written in English (I did not go to Brown so I dont use the word Hegemony).

To break it down there is
1) A poetics of code: This is the language of code, the names of your functions and variables, the types of patterns that you use, the architecture of your project. The clearer a book the easier it is to transmit information, same as code. Code is executed by a computer but it is compiled by a human. As long as humans are writing code, they will need to read something and the clearer and more elegant the the code is, the easier it is to communicate the ideas within the code.
2) An aesthetics of code: In thought aesthetics is truth. Truth is beauty or beauty is truth. In code speed is beauty. The elegance of a piece of code is the optimization of its algorithm.
3) A politics of code: Who can use the code. Copyright issues. Power structure. What sorts of metaphysical assumptions are built into software paradigms. How does the use of English perpetuate a certain western power structure? How do the rules of code perpetuate Aristotelian logic?
4) An ethics of code. What does code do? What ought it do? What constraints should we build to control the effects of code? Once we control 2nd (and 3rd and 4th) order effects our notion of ethics as a 1st order personal or interpersonal interaction must change.

This is all completely irrelevant in the face of horrible diseases that affect the bottom billion. I need to do more RapidSMS now.

I will post my singularity song soon

Saturday, September 26, 2009

The Triumph of Video

This morning I have been watching some ted conferences while working on my social software projects:
Some enjoyable ones were: Taryn Simon, Theo Jansen, and Hans Rosling

I also like watching concerts on youtube - I dont look for audio anymore i look like video.
It is an evolution that I am watching/listening to video while working because I used to watch/listen to audio tapes/lectures. Now I am moving from audial to video.

So what is going to happen when everyone has a video camera? Is everyone going to make little narrative fictions? I dont really think so, rather I think there will be lots of 'instructables' . I wonder though if fiction is at a lull right now? The new media/democratized media in a sense is creating a fiction itself and the challenge is to find the reality in that narrative rather than the unreality in that narrative. Once we figure out what is true we can then create fictions. People have always told stories, but what is the content of those stories? Histories, mythologies, philosophies, fictions. At some level they are all instructables - telling people what to do, what they ought to do, what has been done, etc. We no longer couch most of our instruction in narrative frameworks. I dont know if this matters. The reason to include a narrative framework is to probably improve recall. Recall is now unnecessary because everything is on the web (I dont believe this but this is the prevailing view)

I just started reading Madame Bovary right now, and Charles is disparaged for his memory. He is a mimic not an original, or i suppose he is re-acting not acting. What is with the western war against memory??!?

I am listening to some Rexalls which I really enjoy - it reminds me of The Doors- Very cool stuff!

Friday, September 25, 2009

The Pseudoscience of Phonology

This morning I finished a version of BlackListTweet. This is an application that tracks and blocks twitter spam from twitter accounts. While writing this I also wrote an application to track twitter favorites, I dont have a name for this app yet. Please email your suggestions... I am thinking something like PopTweet.

I still need to design a front end and start the back end process (cron job). I hope to finish the front end tonight. Tonight is web nite. I accidentally deleted my web templates for my new site - chang projects. So, I need to re do those as well. Once those are complete, then I plan on moving the site, and the twitter sites, over to a media temple virtual server. That way I have complete control over the server and I can install csound (and finish doeraetweet.

This morning I reread some of The Oxford Handbook of Computational Linguistics, which is actually a fantastic book and very readable. I am slowly adding different algorithms and heuristics for detecting spam tweets, and I wanted to check up on some NLP (natural language processing) algorithms. I could not help, but start rereading the book, starting with the chapter on Phonology. It sounds like phrenology- which is a pseudoscience- phonology is just a social science - which I suppose is also a pseudo science. Phonology is the study of sounds in language.

Science on the one hand refers to a methodology, however I think that science also refers to subject matter. Scientific subject matter can be verified and falsified via scientific methodology. Really I think linguistics is a set of heuristics and does not meet the possibility of validity via scientific method that should be required of things that are a science. I suppose phonology is in fact a pseudo science.

The section on phonology covered something called free variation, and this really piqued my curisosity. The t in ten, the t in net, and the t in water, are all different types of t sounds. In english we do not have two words ten: one pronounced with the t as in ten and the other as the t in net. In some languages we do have this difference -ten can have two meanings and two pronunciations (or more).

There are myriad ways one can say ten. If I say ten ten times, the t will sound slightly different each time. This diversity is called 'free variation.'

I want to the idea of free variation into my robot singularity song, because a robot really does not have free variation - or a mechanical device does not have free variation (or does it). Speech is a motor process and if the motor process is constant there will be no change. I suppose as components wear down in a robot for example, you will get free variation as well. This is interesting for me to think about. I may to an audio project about free variation.

Thursday, September 24, 2009

First Interview for Eco Doc

I was out the door at 7:30 this morning. That is my usual blogging time, so this blog post will be rather short.

I was out so early because 13bit interviewed Mathis Wackernagel of footprint network at 8:45!

It was a fantastic interview and we are really excited about the potential of this documentary. The whole idea is that human beings are consuming more than is being replenished, and certain countries and cities are really consuming more. The eco footprint is looking at adding an ecological measure to economic analysis similar to the GDP. So for example, Argentina might have a low GDP but its eco footprint (use vs possession of natural resources) is actually quite good. I can totally see Latam Traders using eco footprint to push latam bonds.

Its amazing how everything must be put in economic terms, but that really is the driving philosophy behind contemporary life.

Jamie is over at the 13Bit compound taking care of some logistical issues involving trains, Thalys, and our october trip to europe to speak with various footprint people. It seems like we may set up some streaming site with our first two docs.

I finally was able to fix the dns/ip issues with the Malawi Servers - Now the site is up, although I think there is still an SMS problem that I need to fix.

Other than that, I am busily knocking things off the todo this today, and I may start trading my new options strategy.

Over and out

Wednesday, September 23, 2009

Is it Wednesday already

Where does the time go!
Today I need to set up a backup server for RapidSMS Malawi. I have no idea why I cannot access the server over there - even though it is running. I really dont want to do it this - I foresee 5 hours of pain. I think running cherrypy on media temple will be painful. Tonight will be an all nighter -after kung fu fun. The things on the todo list are really piling up.

I have a version of BlackListTweet running over at http://blt.s61754.gridserver.com/blt/ - I need to create a front end and finish coding the first spam filter algorithm. Since twitter only lets me make 150 api calls in an hour, what I am doing is basically running a cron job at the end of every hour to test as many BlackListTweet registered accounts as possible. If BLT takes off, then I suppose I can cut a deal with Twitter and make BlackListTweet real-time. I still need to do web maintenance.

Tomorrow 13Bit is interviewing Mathis Wackernagel for the water/geopolitical power doc. It is not going to be a talking heads doc, but a wacked out espionage thriller like chinatown - but not as well lit. However, you do need to talk to talking heads, that is part of research. Wackernagel is pioneering something called the ecological footprint. This is a metric (like the carbon footprint) to determine how much ecological resources a person or country consumes. The idea is that perhaps we can integrate this into our economic system - it is sort of absurd that GDP and other measures of economic strength completely neglect consumption of environmental resources. In many ways, it reminds me on the Sen book I was reading in Africa (that I accidentally left at lake Malawi). Namely that, an increase in income does not necessarily lead to economic development. Development depends, as well, on the cultivation of personal liberties that enable people improve their own circumstances. THIS then leads to economic growth. At the core of both of these analysis are the ideas of incomplete or inadequate metrics (either for gauging economic health via GDP or gauging economic development via Income levels). With all this talk of metrics, you cannot help but feel how arbitrary it all is. After all, behind CDOs and S&P ratings were metrics designed to create safe securities out of risky securities. You can make a metric to prove anything. Man is the measure of all things.

13Bit is also collecting material for a potential documentary on the history of measurement, and on the history of money.
Odin is the god of wednesday

Tuesday, September 22, 2009

Oauth, O Superman, O judge, O Mom and Dad

I am still on my Big Science kick.

This morning I received an enlightening email from Pawan, the head of IT over at UNICEF Malawi. He told me the reason why I cannot log on to the Malawi UNICEF servers is because there is a problem with the service provider. Ahhh. This makes me feel a bit better, because it means that I did not destroy the system with my attempt to fix dns mapping.

It is unfortunate that the Ministry of Health is in the field this week training health workers. RapidSMS should still be working (cell network no relation to internet-work). But who knows, I cannot log in to see. Stanley has a big rapidsms presentation this weekend, so I am going to put the site up over on one of the ChangProject sites and let him use that. Then at least I can work with Stanley to make the UI look as fantastic as possible - and bring glory to RapidSMS.

I did not implement my new plan of blogging at night. Rather I came home and worked on BlackListTweet and read the fate of africa. Last night, Lian and I got home at about 10:30. Instead of going to kung fu, I went to a fantastic Jivamukti yoga class with JF&Son. It was a great class, but I think Kung Fu is a better work out - and Kung Fu has weapons. It is also true that Yoga people are in general more insane than Kung Fu people. But Yoga and Kung Fu are related. Yoga is in many ways the foundation of Kung Fu (in particular the I Chin Ching). When the first kung fu master - whom I forget - came to china to teach the shaolin monks - the monks would fall asleep during his lectures. They had no energy. So he forced them to do yoga (I Chin Ching) to bring up their constitution and their energy level.

After yoga - we met diametrik and the parents and ate cold candle cafe. It was a momentous occasion. My mother stayed up past 9:30, and my father and brother continued the finkelstein family business of hiring the most obnoxious and incompetent people possible and then berating one another about it. (Katie this does not refer to you, as you may be where JF is breaking out of this tradition)

This morning I am working on BlackListTweet. I lost some time due to mediatemple's implementation of django. I wish I could just have my own box and do my own hosting - but that, too, is a pain in the neck. I had to recreate a database and deal with some fcgi issues. Now I am implementing some oauth functions, so I can access twitter via oauth. Django has some nice code snippits I have been cannabalizing. Maybe TOMORROW I will have an alpha up.

The Robot Parade is coming - I need to work on my singularity song!

And I need to get my eyebrows waxed - it hurts to be beautiful

Monday, September 21, 2009

Django Reinhardt

I have decided to implement a new blogging work flow. I will blog at night, save a draft, and then edit and post in the morning.

The mornings are my most productive time of the day, so I would rather spend that time working on projects than blogging.
I am slowly adjusting back to NYC. The good thing about jetlag for me, is that it gives me super human abilities to not sleep (for the period of jet lag). I generally need a lot of sleep, so I sort of enjoy this phase.

At the moment I am attempting to coordinate with the folks at UNICEF malawi to check on the server and figure out why it is down. There is a UNICEF holiday, so I may be forced to wait until later. Stanley is presenting the project in 7 days, so I would also like to add some bells and whistles to the UI. However, the UI is rather slick as it is and generates oohs and ahhs - so perhaps I should not over design. I am just taking the lead from Stanley on this.

This morning I was engaged in some housekeeping. I moved all the social software development and ICT/humanitarian type work under a separate Chang Projects - so I was involved in a site redesign and branding exercise. (My husband - the design guru diametrik , gave me some excellent feedback - solicited). I may eventually further break off the ICT to its own entity, but I am going to give that time.

I have a list of projects that I have been putting off while working in Malawi, so I am excited to start working on those again.
This morning I built the django framework for my twitter application - blacklisttweet. Blacklisttweet (blt) lets twitter users track and block spam twitter accounts. I have a NLP (natural language processing) algorithm that I came up with a few months ago, and I hope to program that tonight, along with a simple view. Maybe tomorrows blog post will contain a link!

I also need to move this software over to a media temple account with its own server, so I can install crazy software like csound. (That is for my next twitter project).

This weekend marks the 5th annual Robot Parade. Really it is the 3rd parade - we took a 2 year hiatus. Cindym Paul and I will have a robot work day this week. I am composing a song about the singularity - inspired by Laurie Andersen's Big Science record. Lian likes the chorus which goes something like:

I am a sine wave
I am a sine wave
The singularity
The singularity

It may not sound like much, but the melody is very satisfying - and follows a sign wave. I am recording my own voice (and synth) and manipulating in pd (pure data).

I also started start work on my radical narrative/documentary/mashup - Joelle, Naomi, Alyssa, Meredith Barcelona. A recutting of barcelona vacation footage with a narrative ala the kid stays in the picture. I am starting to log the tapes now - which include 20 minutes of bird love in Gaudi's park.

At 12 I have a 13bit lunch with Paul. We have some interviews this week for our next documentary on Water and Geopolitical power. I am thinking we should call the documentary Water/Power but that might be too cheesy. I am looking forward to getting back to the water research. We are going to also continue editing the current feature, which we hope to finish before January.

I also have some ETF research/reading to do. I want to expand my e-trading option strategy for ETFs. Right now it only exists for american style stock options.

Lian told me all the tea I started drinking in Malawi has stained my teeth - going to the dentist friday to beautify.

Sunday, September 20, 2009

A Blustery Day

It is a blustery day in gotham. You can never say that you dont have jet - because perhaps one night you seem not to have jet lag, but the next night you do. I, by force of will, can overcome jet lag. Last night I woke at 4:30, looking for my wedding ring and not quite sure where I was. At the moment, Lian is playing 18 musicians and I am resisting the urge to fall off the coffee wagon - sipping some english breakfast from mcnulty.

This morning I logged into the Malawi server and lo and behold the server cannot be located. I am trying to track down the IT guy at the Lilongwe office so he can check on the server. I think we need to change the ip/dns server mappings again so I can log in. The security system over there is sort of labrynthine.

We went live with the system about 1 week after I finished writing it. This is sort of insane, yes. But hey, its malnurished kids, we cant wait. What I am learning about deploying tech projects in Africa, is that you need to map out a detailed deployment plan. People are not used to releasing software products, and so there is no concept of testing/debugging/soft launch. It is great that at UNICEF you can deploy a project a week after you finish. Generally this is impossible because of all the red tape at most organizatons. I believe in rapid deployment and iterative design/testing. I attempted to orchestrate a soft launch with the Ministry of Health - and this week is the soft launch, in 2 weeks is the hard launch. Launching is hard. Like Math and Titanium.

I am now focusing on my tea and finishing the Fate of Africa, an excellent book. However, I wish the Fate of Africa was more analytical and less descriptive, or to use Kant's terms, more synthetic and less analytic.

Saturday, September 19, 2009

First post in NYC

So after 24 hours in transit I am home in lovely NYC. I am holding up rather well. My husband however wants to nap - I dont think he has been sleeping well this past month.

Before I left Lilongwe, we finally had a meeting with the Ministry of Health. They finally got funds to go into the field and engage with training. Let me say that this rapidsms system we are deploying is essentially a new system built in 3 weeks and the MoH wants to roll it out without any testing! In the future, I think it is important to build testing time and deployment time into these RapidSMS projects and to help stakeholders understand that this is not a trivial task to build and deploy one of these systems.

I sat down with the MoH and we revised the deployment plan. Rather than start monday and roll out to all 15 sites, they are going to roll out to 5 sites monday. I will monitor from NY - and bug fix the following week. If I am happy with the program - the MoH will roll out to the other 10 sites the following week. If necessary the MoH will also redeploy to the initial 5 sites.

I think this will be fine - all that matters is that the sms messages generate appropriate responses. I am not even concerned with if everything flows properly through the db - although it should. Worst comes to worst, I am logging all messages with the logger app - so we can go a post process the messages later. The most important thing is that the sms service works as expected for the heath workers and the trainers.

I think the travel is starting to catch up with me - my head is swimming -

Thursday, September 17, 2009

On Way Home

This is my last morning in Lilongwe. I am looking forward to going home. Once I get home I will change all my passwords! I will also vet my bills - it looks like my hotel at the sunbird charged me twice. Good thing I payed with american express - they will take care of me. I am not sure when the Ministry of Health will roll out to the new sites. We were supposed to do it this week, but they have not been returning phone calls. Since, I will not be here for the final roll out, I am hoping to hire a local developer who will oversee the final roll out. I am really going to push for this.

Anyway I am looking forward to returning home and taking care of logistical issues.

Wednesday, September 16, 2009

Last full day in Lilongwe

Today is my last full day in Lilongwe. It looks like I am not going to the field after all. Who knows...

I had a very productive meeting with Stanley and the folks at Zain. Zain is one of two cellphone providers in malawi. The other is TNM. We/UNICEF have a toll free number with Zain and TNM that health workers can sms their medical reports to. The problem with Zain, aside from the fact that their number did not work, was that in order to send sms (even to a toll free number) you need to have 10 cents on your card.

What we decided to do was have Zain look at all the cell phones sending sms messages to our tollfree number and bypass that restriction. The only problem is, with the first message that identifies the number to the system. Next solutin - when MoH trainers go to the field to train health workers, they are all going to have the health workers add themselves to the system. If anyone needs cell credit to do this, then it will be provided by MoH. We will see how the system fares as health workers move between health centers or change phone numbers.

What is the deal with the cabal of cellphone operators? It issomething I need to learn more about.

Thats it for today folks - over and out

Tuesday, September 15, 2009

Deploying RapidSMS

Oh help me Thomas Jefferson - patron saint of secular humanists...

This morning I am working from under the mosquito net of my lovely bed at the lovely kiboko town hotel. Now that Kiboko gets wifi (at the steep price of $13/5 hrs) - I am a bit happy. It means I dont have to sit at the internet cafe (which is not really a cafe).

For the past 3 days I have been trying to run the new version of rapidsms on the servers here in Lilongwe. This is difficult because I cannot access ssh through the UNICEF firewalls. The firewalls keep everyone from sshing out -but seem unable to prevent viruses from coming in (as seen my the prevalent nakedlady.vbs virus on my unicef computer). I am going to change all my passwords when I return to the US.

So I have to do all this server work at night, or if I am lucky enough to get a ride to UNICEF headquarters - on the mian server there - in the server farm. This the story of my rapidsms server deployment.

1) Monday night 6:30 (started late because of blackout) - log in to malawi rapidsms server attempt to run django - oops no django wget django tarball (this takes 20 min). update git (this takes 20 min) down load rapidsms source from git. oops - git does not seem to work. ok lets try http://git. oops git says I have a commit error - damn! open up rapidsms source code - pull commit (oh nothing to commit - wtf)
ok what else is going on - try ssh into git. ok git recognizes my ssh. Oops its 8:30 - blackout - time for green beer.

2) Tuesday 4:30 finally get a lift to unicef server. This was difficult because all drivers were in the field save 1, so the illustrious Stanley, savior of the RapidSMS Malawi Project, gave me a lift. Ok I copied a tarball of my code onto a usb drive because i dont know wtf is up with git. Ok how do I mount again. oh no need to mount i see my tarball. Wha - I cant unpack it - there is a problem .... ok lets recopy a version on to the usb hard drive. plug in the usb - where is my tarball? crap i need to mount - how do you mount again. Due to nice unix guis - I have not mounted since 2003. ok mount /src /dst -f usbfs . something like that. where are my files! Crap. Oh its 5:30 - have to get home before dark - there is Stanley - ok will try and get git to work from internet cafe. Look Stanley - I need to work from the hotel tomorrow because I cannot use any of my programming tools from unicef and I am going bonkers.

3) At Kiboko - suffering from Shaka's revenge - is it the water or the nali sauce or belharzia - who knows?

ok after dashing off some emails that go ignored in the noosphere (did I mention how my petpeeve is people not responding to email) - ssh -vv, ok. I look at the config file - ok what is going on here - we are sshing on port 443???? lets blow all this away and generate some new ssh keys and link it with my git hub (this took an hr to figure out) after trying various other things. ok now git works - 20 min later i have rapidsms on malawi. I shut down the rubysms site - which does not really matter because the UI has not updated in 4 months. Ok lets run this sucker - where is the webserver? oh - need to download apache - oh no - rapidsms uses cherrypy - phew -ok cant set the ip to malawi.rapidsms.mepemepe.com hmmm.. hacked the cherrypy ok that does not work - lets look at other peoples rapidsms.ini - where do i set the server name. Perhaps adam knows - but i think he has been eaten by hungry gorrillas in Uganda.

after intense googling i email the rapidsms group -but in the back of my mind i think - dns issue - this is some dns issue - so i fire up trusty ifconfig to find my ip. then i see it and i say ./rapidsms runserver static_ip_address:8000. Now I need to map this. But you know what, I forget how to do it - and will leave that to the dev we hired. Perhaps I should have brought my unix sys admi purple book with me... So the site is now up on a super secret ip address. I had to remove the io functionality - because the version of python does not have it and i am not installing a new version of python. Actually Matt Berg caught this bug 2 weeks ago- but i thought my server could handle python io - I was wrong. I replaced it with something else that may totally crap out - we will see. At least the site is up! I am ready for the field

almost 12pm Malawi time - need to pay my hotel bill and go to the UNICEF office - where I can rewrite the training posters.
tomorrow going to the field I think - and friday hiring a local developer to test/bug/fix and set my mind at ease- and then hop a plane to JFK. On the plane i look forward to finishing some as3 projects that I have put off because this rapidsms became a many headed hydra guarded on all sides by sychlla charbidis and other mixed metaphors and mythological creatures.

Returning home to 13Bit, where I can finish our current movie, and continue working on the docs in progress - automate my e-trading option strategy, finish some web2,0 apps, some iphone games, and of course start selling some ace ICT projects with my crack team of project managers and developers

I send love into the world

Sloop John B

I've been here a month in Malawi. That means a month of blogging daily. Upon returning to the USA I may consider making my blog posts more topic oriented. But, I may also discard that thought in favor of writing the blogging equivalent to finnegan's wake. I plan to continue subverting tag etiquette. Today is my first day using blogger spell check. I really love it. Blogger spell check highlights all misspelled words in your document and allows you to edit at your leisure. I prefer this to the serial spell check of all word processing programs.

RapidSMS Malawi
I have a beta cut of the new Malawi RapidSMS Malnutrition app. We demoed to the Ministry of Health yesterday, who were very pleased with the project. Yesterday, I updated the server with django and related apps. I am having problems using git on the Malawi server because of some firewall issue. I am considering blowing away the .bashrc and .bash_profile files because they set display commands that make it impossible to use sftp.

But enough jargon. The project is wildly successful. I am thoroughly exhausted. Tonight it is is Shona's last night in Lilongwe, so we are going to party over at diplomats. But first I am going to gorge myself on pasta since I finally have cash again after being near destitute for 4 days.

Thursday I go to the field for more training and HSA visits. I was supposed to go to Mzuzu today-Thurs to hold a mini bar camp at Mzuzu University. This was canceled when Stanley came back from vacation and decided to plan a field visit for Thursday. What can you do?

Passed Kenyatta road on the way to work this morning,and thanks to "The Fate of Africa" I now know who Kenyatta was. We took a short cut to work this morning, driving down a pedestrian dirt road. It makes me wonder where the other pedestrian dirt roads are. There are secret roads everywhere!

I was reminded of Gilbert Ryles Mind Body theory today. The question is -where is the mind?: Analogously we ask: where is the Hey University? And you take me to Hey's library, and classrooms, athletic facilities and dormatories. And I say, this is all nice, but you have not taken me to the 'University' where is the university. And you say, well the whole thing is the university. Or I say, show me team spirit, and you take me to a soccer match and show me people with facepaint, and cheerleaders, and players hugging each other after a goal. But where is the spirit? Well - there is no spirit, all of these things are expression of spirt. Same thing, where is the mind, I show you all these things like memories, and emotions, and rational decisions, and irrational decisions, and you say nice - but where is the mind. And Gilbert Ryle says, well its a category mistake, mind is like team spirit and the university - it is not a thing, but a description of an aggregate of things or a state of being - an abstract class, an interface, the walrus.

I am thoroughly exhausted. I am happy with the project. Say no to vaporware.

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.

Sunday Dispatch from Lilongwe

So I have less than 1 week left in Lilongwe. This morning while I was eating my daily breakfast of 2 eggs over medium on toast with a bowl of fruit and a cup of tea, I looked up at the masive tree shading the patio.

Its a type of tree I have never seen before coming to Africa with a medium size barky trunk, and little tubular smooth branches. There are experiences of newness everywhere if you stop and take a breath and refresh your eyes.
I'm sure this is also the case back home in the US, where we walk around with blinders in a tunnel.
My room is above the kitchen of a resturant - to which I owe the proliferation of cockaroaches. At night I can here the chatter and bustle, like I am living above a jazz cafe. This is especially true, when I put on some Don Cherry Mu (Thanks to Chris Barke).Yesterday, I did some negotiations at the market, and brought some tzschatkies for people back home. I did manage to exchange some tee shirts and pants, and all my video out and lumia DVDs. When you go to Africa, bring discmans, mp3 players, old phones, old cameras, sneakers, baseball caps. Use these as
currency. These are worth something, they are like bicycles on the black market.Something happend with my bank card and I cant get cash. I topped off my cellpone credit and called chase 7 TIMES! They said they removed the block but I still cannot get cash out. I am hoping it is some weird Malawi ATM issue. I will take care of it at Monday. I am looking forward to Stanley returning. I asked Benson last week to help me call the US, and it took him 3 hours to help me out.Im not brining tzchotchies back for Paul. Paul wants a local tee shirt. I am looking for a tee shirt - but I dont think there are local malawi tee shirts.

Clothing in Malawi -I was acutally discussing this with people the other day. Most Malawians wear clothing from the US - perhaps donated. There is a high prevalence of AIG shiny shirts. I saw one guy wearing a red socks cap. This is actually a detrement because it underminds the local Malawi manufacturing efforts, which cannot compete on price with the US products. There are a fair number of chinese emigres who have ope
ned up clothing factories here - but I am not sure what has come from it yet.
Back at Kiboko:I have become friends with an older french man and 2 guys from Liverpool. I take this as 13bit sign - because Paul is rereading the Beatles biography - one of the 13bit canonical books. The older french man is reading a bio of Sarte by BHL. One of the things I love about France is that they read philosophy. It is like Argentina where Homeric epics and Freud are sold in trainstations and airport kiosks
I am working this weekend, since it is my last weekend here and I still have some work to do. This is because I foolishly refactored my code - which in some cases has resulted in some worse code - espcially in my breadcrumbs functionality. I really should not have refactored. NEVER REFACTOR IN THE FIELD - that being said I think my refactoring will pay off in the long run - but it has caused me grief - and I still have to write some spaghetti code because I am running out of time.

The most important reasons to be in Malawi for this project are:
1) The ability to go into the field and get feedback from HSAs
2) The ability to meet with the ministry of health and gauge their technical capacity
3) Other related work that people are doing in Malawi.

On step 3, when I met with Isaac yesterday I asked him how the local healthworkers at his hospital - St Gabriel's finance their SMS fees. Well, apparently, Josh Nesbit of Frontline Medic (another SMS eHealth company), received a grant fromStanford U last summer to implement a basic SMS health alert system - like 911.
He had 5 grand at the end of the summer and used this to fund the SMS messages -its a year later and they still have 1 grand left.

Now, while this is not necessarily a sustainable solution - IT IS AN EXCELLENT USE OF GRANT MONEY. It will help the system to gain a toe hold while a more sustainable financing solutions are explored.

So if you get a grant for a software project what you should you do with the money? I think a good use is to pay for something on the ground where your project will be implemented (rather than a new prada handbag perhas). For the Malawi INFSS project - I would hire a local developer on contract for a few thousand dollars. I would have spend most of my time working with him/her to spec out the systme and to work on social/process engineering, training materials and some iterative coding. This would have probably added 3-5k to the cost of the project, but it is these sorts of details that make the difference between tranquility and 100% success and stress and compromise . However - You still have the problem of no stakeholder committment. I think stakeholders need to contribute something, if you expect them to take the project seriously.

I have learned so much from working in Malawi and implementing this project. In many cases, the only way to learn how to implement one of these projects, is to implement one of these probjects.


Saturday, September 12, 2009

Are you a Christian?

In Lilongwe, after getting to know people for a bit, they invariably will ask - 'Are you a Christian'? I am not quite sure what the analogue is in America, perhaps are you a democrat/republican. I've started saying no - I'm a secular humanist. (This unbeknownst to me is my husband's twitter ID!)

Then I explain that, I believe in Christian ethical values, but not necessarily in a Christian god or Jesus who interferes in world affairs - aka a God with divine providence. But this leads me to think what exactly are Christian ethics? During the crusades, would it be meaningful to speak of christian ethics - these ethics would be different from christian ethics today.

I suppose what I value is the humanist tradition expressed in the teachings of jesus, the rational tradition, preserved by Aquinus - and the scientific tradition that was actively repressed by the medieval church, and of course the legal/judicial/debate tradition of Judaic teachings.

More about this later - I think my internet connection may soon give up.

Last night I had a lovely dinner with Isaac Holeman of Frontline SMS at Huts, a well recommended Indian eatery in Lilongwe. It was good - but my pricest meal in Lilongwe 4800k for the two of us! It was good, and I am not feeling any digestive side effects but not worth the kwatcha.

I returned home to finish the fixtures for my new refactored data models and low and behold the fixtures revealed some issues with my class structure. Basically I had a person class (an abstract class) that was inherited by a healthworker class and a childpatient class. Prior to this project my only experience with django was writing fast backends for iphone applications. This project has been a django learning experience. When I started loading fixtures for my healthworkers and patients, they would not show up in the django admin page as separate entities, but as aggregated, unclickable items on the admin page (something like 20 patients). Exhausted and exasperated - I chucked the possibility of polymorphism and added a person object to healthworkers and children. Then because of my super slick - with some spaghetti code - dynamiclayout model I remapped the report columns to the new function/method names and everything worked as in a dream.


Also in looking at the data - it is really bad. I am not going to be able to clean this data before I leave. I would if I could, but it really is not in the scope of this project - and already I have been unsuccessful in staving off feature creep. In software development it is important to have strict boundaries for a given project. You could conceivably work for ages on a project making minor tweaks and assisting with various automated tasks. You cannot work indefinitely with out appropriate remuneration on a project. People generally only value a service that they have to pay for - and in this case they will take ownership in the project. In the case of the INFSSS project. It is paid for by a Columbia grant - and I think this is reflected in the lack of interest by stakeholders. Everyone wants the sun, the moon, and the stars, if its free. However, if there is money then the hard decisions in terms of scoping - are made. Then, too, people will take active interest in the project and in its success. How this works into open source software - I will discuss at a later date.

I am now debugging my stats and graphing - and then will add 2 more sms messages. I should be done tonight. Tomorrow hopefully will be spent wandering around and trading video out CDs for tzchakies. Hopefully going to Mzuzu next week, but need to speak with Stanley on Monday.

Thursday, September 10, 2009

Travel to Africa

Here at the office, putting some final touches to the malnutrition application. This weekend I will integrating data from the existing rapidSMS system, and some more data munging with the historical data so all data will conform to my new data model.

I built a kind of insane layout/flow manager that I think should be autogenerated at runtime to import the apps in the rapidsms.ini. It needs a bit reengineering, but I think the foundation is solid.

There is trade off between realtime calculations and storing the calulations in a database table, (data storages vs. speed and ease of programming). As a result I am storing patient status and boolean values for various levels of malnutrition (MAM, SAM, SAM+). This makes my job easier when generating reports because I dont have to calculate these values I just have to pull them from a db.

The excel download functionality is partially wonky,and should probably be converted to a jQuery/Javascript function. That way, you load the data in your page once - and via js - you both display the data and download it as excel. I think the javascript classes for rapidsms probably need to be built out a bit.

Next week I train the ministry of health in the system and supposedly go to Mzuzu where I will be holding workshops. I hope to have a workshop also next friday at Baobab before I go to the airport! Yes I am leaving in one week. I love it here, but I miss home - and i am sort of sick of trying to tune out the myriad coackroaches and malaria carrying mosquitoes that cohabitate with me. Also, I am running over budget - basically my budget did not take into account wifi and food.
I could probably have spent less money on accomidations if I was able to find a houes to share, but I think there were less people in Lilongwe this year due to NGO cutbacks. Also I think I was sort of limited in my living arrangement, because I dont have a car.

Anyway, when you go to africa here are somethings you should bring:

CASH! - you have to pay 16% sur charge if you use credit (including for hotel rooms)
soldering iron
wirestrippers/allegator clips
extra power adapters
extra soap (dr bonners)
gnu bars/seitan strips/little bitsize pieces of chocolate (i lov choklat)
extra clothing/shoes/old electronics - you can barter with these at the market
malarone - pay extra
ditch the adapters and use usb power when possible
usb harddrive - I use this A LOT
dont worry about wearing long sleeve shirts/long pants - no matter what the mosquitoes will get you

i have not used my candle, my water uv disinfectant, my rope
i did bring a sleeping bag - which I use - if my hotel room seems nasty.

i have my kindle - and i've had no problems

Free Jazz

i've been listening to lots of Don Cherry thanks to Chris Barker - it turns even the most delapidated hotelroom into a hep nite spot

Wednesday, September 9, 2009

Back in the Office

Yesterday was my final trip in the field.

The RapidSMS Malnutrition project was originally deployed in 3 health centers in 3 different districts. Now we are scaling up to add 4 other health centers in these 3 districts. I went to the pilot health centers to collect feedback on the existing system, and also to collect feedback on some changes that I plan on implementing.

On change I am making is associating every report with a health worker and a health center. Originally, tracking was done by the number that send the malnutrition report, but workers share numbers and numbers change, so I thought we should just explicitly send the health worker number.

The health workers thought that was a great idea, because it would be easier for them to get credit for the work they were doing. Before, you could do this by looking up the phone number, but this is sort of a usibility issue. By explicitly sending their HSA id number,the health workers will feel a more personal connection with the system.

Another change I am making is something called a short id. So every health center has about 30 health workers. If we numbered health workers squentially on a national level we will easily hit 3 digits - and this would complicate sending messages. So what I did was create a key based on a short id (1-30) and the health center number. This is linked to a longer nationwide id number, but health workers can keep simplier numbering system in their centers. I also implemented the same change for patients.

One of the most interesting things about this process, is that it is not just a technological issue. The 3 health centers I visited varied widely on patient drop out rate and data quality. For example,the health center in Kasungu had a large drop out rate. Care givers just would not bring their children in, and health workers would not follow up.

In Dedza, however, only 8 children missed measurements, and only 1 child dropped out of the program - because he moved. The reason for the success was that they partnered with the local head man in the community. If a care giver missed a measurement session, the head man followed up.

In Salima, the success rate was also high, not as high as Dedza though. In Selima, health workers would go into the field if a care giver missed a measurement session.

All three locations stressed the importants of explaining to the caregivers and perhaps the head man - the goal of the malnutrition survelliance project.

In Salima and Dedza, the health workers overwhelmingly in praised the rapidSMS system for reducing child malnutrition. In Kasungu, the reports were not as positive. The success of the project lies not in the technology but the processes surrounding the use of technology.

The 13Bit Labs is going to spin off a humanitarian technology company. Our implementations will be holistic solutions integrating technology, with process and people management, and education. Too often technology is seen as the solution, but the solution is really a process enabled by technology. It is these other less 'rational' and perhaps less tangible aspects that make a system successful.

I am thinking of Ellul's The Technological Society. We should not reduce everything to a optimized process, where human beings are treated as interchangable commodities and completely compartmentalize in their execution of one particular task. However, we should put systems in place that allow projects to succeed - and to ignore this is to doom projects to failure.

Obsessivly reading Martin Meredith's the Fate of Africa

Tuesday, September 8, 2009

In the Field Day 2

The feedback was a bit more positive at this health center. The workers said that due to the SMS feedback from the RapidSMS system, they were able to take malnurished children to the hospital immediately. The system actually reduced cases of malnutrition.

At this health center, there was not as much of an issue with children/parents not wanting to participate in the program - The health workers went to the parents rather than waiting for the parents to go to the children.
At this health center, there was not as much of an issue with children/parents not wanting to participate in the program - The health workers went to the parents rather than waiting for the parents to go to the children.

These different practices between health centers illusrate that the problem with SMS is as much a process management project as a systems development project. Part of these technology project must also be devoted to standardizing and specing out processes.

The different health centers want to meet with one another, share information, and see how they compare to one another in the implementation of the RapidSMS system. I think this is a good idea and I tell the health workers this, however, in my mind I dont think this will happen. There is no budget for this, there is no one that will plan this. The Ministry of Health wants a complete package, not something that will need by yearly followup and group meetings. It makes me a bit sad, but I think this is the truth.

The health workers at Selima were very organized. When I got there, they set out an agena and started diagnosing specific benefits and criticisms of the system. It was so different to see how two HSAs could be so different. On the wall of the room where we met, there were make shift charts graphing cases of measels, polio, and other childhood diseases. These HSAs were very ingenious and serious. However, the physical health center in Selima was in worse shape than the one in Kasunga. It is really useful to visit these centers - and I think the health workers also appreciate the opportunity to give feedback. The health workers are the only ones who can make the system work. As I left one of the health workers informed me that next time I need to bring fanta for everyone - oops.

We hit a few roadside stands where Edwin and my drive bought charcoal and a reed mat. We stopped for food and I had an entire chambo fish! I have a picture. I got back early and was able to do some more programming. At this point there are no uncertainties left, I have everything working: graphing, mapping, pagination, my displaymanager. I am just working on implementation. By friday I will have a re-engineered version of the system complete, and will spend the weekend rationalizing data, testing, and fixing fixtures. If I decide to use RapidSMS as the foundation of a mHealth package, I may do some additional refactoring back in NY. I think that for rapidSMS to be successful, then on the django front end it needs to be MORE than django. I am thinking of class generation for the dynamic reporting and so forth, SMS message flow files, and perhaps more consistant use of message.py files for choice tuples, error messages, and other constants.

Last night my friend Kyran left so we had a big dinner at Mama Mia! Yum Pizza. I am burning through kwatcha this week. I just found out that there is a 15% sur charge on credit card payments at the hotel. When you go to Malawi - bring cash!

Monday, September 7, 2009

Into the Field

Today I went into the field. I visited a health center in Karonga and spoke with local health workers there about the rapidsms malnutrition survellance system. It was incredible and really made me connect with the work I was doing. This was necessary because I was becoming bogged down in beaurocratic hastles and was losing hope. But, thanks to the field visit I have renewed vigor.

The health center was fantastic. While I was there, about 10 women came in for vaccinations and blood pressure readings. Twomothers brought in their children, and there was one sick girl hanging out who looked like she had a very very very bad cold and drippy eye. I think she probably could have used some chicken soup from Katz's deli - and maybe vitamin A. Vitamin A is very big here. All the health workers I have spoken with have expressed distress at the lack of vitamin A (why vitamin a I asked - eyesight?) - yes but really vitamin A is good for the immune system. One of the best things I have had in Malawi are the carrots. I dont like carrots, but I love Malawi carrots - they are incredibly sweet. So I asked Edwin, my escort and the local instructor at the university - why Edwin dont people eat more carrots? Ahh, Edwin said, people dont like vegetables. Well what do people like (I asked) - Meat! Well there you have it.

The surprising fact about Malawi is that it is a fertile area. There are fruits and vegetables being sold everywhere on the roads. I have yet to come across someone who has looked under fed. So I think the issue has more to do with educating people on what a balance diet consists of, and with making sure that everyone in a family is fed a balanced diet. I can also see the case where some girls in a large family, are perhaps thought of last, after the boys, interms of nutrition and health.
In addressing health education, I have a tech idea - but first I need my wolfram alpha API!

Back to the health center. It was on a campus with a girls school, a hospital and a church, and was very peaceful. The landscape of the north of Malawi is a bit different from the south. No Baobab trees, lots of tall grasses and the occasional lone large mountain rising up out of the landscape. I did not take pictures. People are not into pictures here (except children). At the Health center we met with about 5 health workers - they seemed young - maybe in their 20s. Some were very happy to talk to me and some I think were a bit skeptical and hostile. My main concern was in the usability of the system. I was planning a few changes such as linking a health worker's id with a report and expanding the id numbers for children.

The health workers like the idea of adding a health worker id. They thought that would encourage better measurement taking - because you could identify the health worker. People were not so keen on changing the id system, so I am going to go back to the system and create unique keys made up of health worker ids + clinic ids , as well as children ids + clinic ids.

I think this may be specific to malawi so I will not push this to the child health app that I am working on.

There were also issues with stunting and wasting cut offs. Right now we are using WHO stunting and wasting cut offs - as expressed by weight for height - but apparently Malawi has other metrics. So, children will go to the hospital for wasting/stunting because of rapidsms diagnosis, but then are sent away because their measuments are fine for Malawi. We need to rationalize these systems.

Another issue I found was with parent participation. The survellance system takes 70 children, randomly, and takes their measurements every month. I dont think I will blog about the randomization process used but I was sad to hear it did not involve geomancy ala Eglash. One of the problems with the survellance system is that parents have no incentive to bring their children into the clinic for this trial. I can understand that - when I was at university we always paid people to participate in trials. One woman, a health worker, suggested that we educate the parents about the rapidsms system. I think that is a great idea. Another woman, a health worker, suggested that we turn it into a game, the child with the best attendance wins a prize (a candy or extra sms credits).

I really liked this game idea. I was trying to think of a way to make the rapidsms interaction more fun and less burdensome - ie to turn it into a game. But I really had no ideas. This game idea is great. I am thinking that we can also expand it to HSAs, you know the health worker with the most texts but the least errors - gets extra sms credits.

The health workers were very interested to see how they fit in with the rest of the country, and I think this is very important to develop a larger sense of mission and connect with other people doing similar work around malawi (and perhaps bitch about crazy americans and their rapidsms system - I dont know)

The other complaint was that the toll free phone numbers did not work. I am going to put Stanley on this case. When I got here, I knew Zain had a problem with their toll free number. (There are 2 cell providers in Malawi Zain and TMN) Stanley said he would take care of Zain, perhaps when he returns from vacation we can go to Zain together.

On the way back we stopped at a massive open air market selling all types of food, clothing, etc. Me, Edwin and the driver stopped to take a look around and Edwin bought me some roasted corn. He said he once tried american corn and it tasted bad. I said he should read the omnivores dilema. Well I ate the corn - it was delicious -it sort of tasted like popcorn. It has been a few hours and I dont feel sick, so I think I'll be okay!

We also stopped to visit Edwin's sister who just moved near Karunga. She works for AdMark - we met her friend who is the granddaughter (but not real granddaughter) of the other UNICEF driver Lindsay! crazy

Finally, we also stopped to get some tangerines - 12 for 150k ($1!) yumm. Edwin said, you see, fruits are much cheaper here. Yes, I said. Perhaps we have malnutrition in the US. My husband is vitamin D deficient because he does not get outside enough.

We had fantastic discussions about developing systems for sending farmers text messages for the price of commodities at the local market, and for developing intelligent measurement devices - I would like to investigate this more back in the US.

I am not going to engage the internet vs sms debate. SMS is in Africa NOW so lets develop for it, we can always adapt systems and front ends for technology that comes in the future. Why develop something for future infrastructure that no one can use. Its like the market - it doesn't matter if your right - it matters if you match the market.

Tonight I added graphing to my rapidsms app. I did not add a graphing app, but just implemented flot in my app. FLOT IS EASY. I am doing something slightly bogus with generating javascript from django. I think sometimes it is better to be bogus than to over-design a system. That being said, I think there there should be an app that graphs any two+ values in a datamodel (line graph, scatter plot & correlation, histogram). I am going to do some more debugging with my layoutmanager. This can really add some value and become a robust part of rapidsms. It is in areas like this where rapidsms can offer some value in django integration.

I am learning a lot about how I want to manage future projects - and people I want to work with. I am feeling better about the project. I'll feel EVEN better when some of the stakeholders start responding to my emails.
Time for dinner - I am going to live it up and get some food at Don Brioni.

Sunday, September 6, 2009

Rest Cure Success!

This weekend I got to spend a lovely weekend at Lake Malawi with my new friends Kiran, Shona and Cornelius, and a local Malawian who I will call T (because I cant spell his name).

Well at the end of last week I was going kind of nutty. I was feeling a bit exhausted - luckily I got to spend a fantastic weekend splashing around lake malawi, talking about human rights and going to a black missionaries concert. I sadly left my sen book at the hotel - but thats ok - I have some renewed vigor to read Rawls and some works on cosmpolitanism (which does not sound profound because of its relationship to cosmo magazine) For now though, I will turn to poetry and my kindle and read some Meredith on Africa.

But back up to last friday I went to a local Windows 7 tech presentation at the Lilongwe Sunbird hotel - everyone's favorite malarial swap. I don't have a windows computer. Those of you who know me - know that I actually worked at microsoft briefly - where I had my infamous meeting with Bill G to discuss social networks. Ahh the salad days of youth. Even then I did not use microsoft products, but while working at MS I had to develop in C++ or C#, MS SQL Server, and Visual Studio. Make sense, a company should use the products that they sell. At the other MS( Morgan Stanley) I recently was working in F#, which is a cool language - although it would be much cooler if it was interpreted rather than compiled into .NET bytecode. I do think Microsoft has great desktop software development tools - but with applications moving online, or to the cloud, I think that this bonus will become irrelevant.

At the tech event, I met the guys from Baobab again. They are a linux/ubuntu house and were groused by the windows presentation leader. I also met some tech people working on various projects (bank projects/government projects). It was cool. I should have taken a picture but I did not. Again, I had a meeting the Legnani, a local python/Django developer, and his business partner. It was there that I discovered Ushahidi's deep dark secret (really not that secret) - it is written in PHP! Oh the HUMANITY! On of the Baobab guys, Soyapi, a RAILS guy, contributes to Ushahidi - but only writing AJAX - he told me. PHP! Oh the HUMANITY (again). DISCLAIMER - I LOVE USHAHIDI - I think its a GREAT service - I just like making fun of PHP, Visual Basic, and ocassionally java - even though I program in all three languages.

I really hope I can work with some of these developers, I have given them all rapidsms demos and information about how to install and develop on the platform. Josiah, up at Mzuzu U is the only one so far who has seemed to try anything out. As I said before, I am not going to hire a local developer for this project.

1) My main UNICEF contact who would approve this hire is on vacation for 3 weeks - so it would be pointless to hire someone without being able to work with him and train him for a few weeks.

2) Most of the software development will be done (by me). I am under such a time constrain here, and have so much work to do -that it would take more time to actually hire someone and have them do the work. Especially considering there is no one at UNICEF who could budget this at the moment .

3) UNICEF is starting a big AIDS/HIV project that will need a software person with similar skills. There is actually funding for this project - so that developer could also maintain the INFSSS project (that is the project I'm currently working on)

So my solution was/is to train two webmasters. I did that last week - although I still need to write up/print up some training manuals - that will probably happen once I return to the US. At least I got the word documents for the Rwanda training manuals so I dont have to do this from scratch (THANKS EVAN!)

I will write about my fantastic weekend at the Lake tomorrow. Tomorrow I will also write about my first day in the field. Finally! This took a lot of arm twisting. When I first got here Stanley, my contact, said I would be spending my first two weeks in the field. Although probably due to some cultural misunderstanding on my part - we are actually spending the last two weeks in the field. I am going with a junior staffer, Benson, who has been my main contact while Stanley has been on vacation. I think Benson is living it up while the boss is out. He really did not want to go to the field (we were supposed to go last week - and he balked) - and then this week we are only going to the field for 3 days. I really miss Stanley - I wish I was able to work with him longer.

Also - I would like to thank everyone who responds promptly to my emails - you are the best!

Friday, September 4, 2009

Saturday Travels

I am off to lake Malawi. Cape something - I forget the name. I could use some R&R. I've been working like a dog on this project and I could use a vacay.

So yeah - I refactored my code so that there is as little hard coding as possible - I created a display manager class that is totally misnamed and should be broken into two classes. It lets you specify report formats through a data model, as well as section headers and other things. I regret doing this. Who cares if there is hard coding - just get something out the door. I plan on selling some rapidsms projects back in the states - so at least I will be able to use what I have already written.

I still need to do graphing - that will probably not happen till next week. I have the SMS code written for the pre-refactored code. I am also going to regenerate my json files and stick them in the appropriate model/fixture dicrectories. I'll also integrate the data for the last four months into my data set.

Still reading development as freedom - but I think i'll leave it home this weekeed and bring some poetry to the lake. Development as freedom while interesting is super dry - I dont know - i think there is a better way to make this information more compelling because it really is interesting a useful framework for thinking about development.. What do I mean by dry? (well for example Kant is not dry he is just dense and slightly convaluted - but I enjoy reading him)

I need beach and belharzia ! Lake Malawi here I come.

Vodka prevents Malaria

I am currently at Mamma Mia for my weekly pizza. Today I also had an espresso that tasted like dirt. I hope I dont get sick.

Today I am working from old town, rather than the UNICEF office. I dont see the point in spending 2 hours in transit to stay for 4 hours - unless I have a meeting. Well, I did NOT have a meeting. I was supposed to have national level training on the new INFSSS SMS system protocol, but the Ministry of Health rescheduled. This is both good and bad. Good because it gives me more time to refine, bad because it gives me more time. Do you know what I did with that time??? I refactored by code.

After speaking with Sean who is working on a malnutrition project in Rwanda, I decided I had to make my framework super flexible. So I stripped out everything hardcoded, report formats, headers, everything - and made a class called LayoutManager. I will eventually have to refactor this class to include two classes, HeaderManager and Variable Manager.

For example, you define columns for a report, you link these columns to a function or variable (thank you getattr), and then you link these to a view and a class. (You can also do things like associate a link with the column.)

I also broke out the wasting and stunting tables to their own class -I renamed nutrition to childhealthindicators. I made an abstract class/app Person and then in childhealthindicators I have two classes ChildPatient and Healthworker. I have health status and other strings in messages.py. Here I will also define the SMS response flow. Messages should also be its own app - Probably one app called SMSFlow, and one called appconstants.

This would be a singleton - a singleton - for those of you who dont know - is a class that only has one instantiation. This is useful for keeping things that dont change - such as constants - and that are initalized at system startup.

The pagination was super simple- thanks Adam - but means that I need to rewrite my layout engine so that I dont corrupt the model objects - before I would turn the model objects into strings. It just struck me that there is something wrong with my solution -arrg.

The interesting thing about developing out here - is that all my research is done in batch. I cant be programming and think - ok what is the proper way to do that in django semantics and then google it.... instead i need to file it away until i get internet access and then do all my research all at once.
This is also making me reconsider webmail. i think I am going to start downloading all my mail into evolution and just respond off line. Then the message will go out when I sync. Ahh -living in a batch world.

So I am hoping to get my refactoring done tonight. Tomorrow I may go to Lake Malawi. If I dont - I will get started on Graphing. That is the last piece I have left - I download flot - the graphing library - so I can read up on it tonight.

Monday I go to the field. I have to rewrite the questionnaire for the local health workers. Really I want to know if they find it difficult to enter in children's ids or that sort of thing. My good friend Joelle is a questionnaire master - I will seek her advice for all future questionnaires.

Tonight I am planning to go to a local tech meetup - I am also supposed to give a demo at 4 to a local techie - but I have not heard from him - so I am not sure if that is still happening.

I have been watching a few movies - via paul V. Most recently, family plot and my man godfrey. I sort of OD'd on Kung Fu. Next on my list are Marnie and Vertigo (which I have never seen). I sort of prefer the old hitch. modern hitch is creepy flirty sexy. That is also an inside joke from the new 13bit movie. I may breakdown and rewatch some lynch (blue velvit)
And thank you Chris Barker for the Free Jazz (Don Cherry) It is great. I still need to download the second package!

This is probably enough - but I met a man who had Malaria 14 times. He told me the secrets of how to detect malaria carrying mosquitos (apparentl i was wrong). He also said mosquitos dont like gin or vodka - so drink up.

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

Tuesday, September 1, 2009

Kwacha shooting star and put it in your pocket

I am down to my last kwacha - the local currency in Malawi. This week I spent 8000K, not including my hotel. It is about 150K to 1$. Where does the money go. Well I spend about 400K a day on internet - because I cannot connect with my computers at UNICEF and so must go to the internet cafe to sync with github, and invariably get caught up in gchat or in fixing some git merging problem. (5K a minute). Then I spend 200K on beer - it is a small price to pay for happiness. And the occasional coke - 150K. And of course dinner at mamma mia (pizza) 1500K or don brioni 1000K or lunch at UNICEF/Market 200-600K. It adds up. A cab around Lilongwe, if you share one, is about 500K. I take one probably twice a week. So there you have it.

I read the Stanley Fish piece in the New York Times today. I sort of think he is a crank,but other than that - one thing struck me. A reader commented on his last piece that he was writing about two topics and it diluted the force of his essay. Fish acknowledged this, and pledged to TRY and keep his writing to one topic.

Let me rail against this for a moment. Why must everything be commoditized and informatized for maximum information processing? This is something that I am thinking about now that I am reading poetry every morning. You cannot speed read poetry or keep to the point with poetry. You must experience poetry. You must roll the words around in your mouth like cold-eze or jello. - hmm jello. You must strike the balance between focus and peripheral awareness. Too much focus and you miss the setting, too much periphery and you miss the details.

Today I banged out the final throws of the User Interface until Adam (please please please) finishes the Flot Graphing class.I really hope I dont have to write the graphing class - I want to go to Lake Malawi this weekend and get Belharzia.

I am enjoying programming in Django. I think that RapidSMS (mainly Adam and Evan) have written some great classes that are an excellent foundation for future rad RapidSMS development. Working in the field, however, you really get a sense of how these applications are used - you can't develop in a vacuum, otherwise you will build something like Chandelier.

Let me take a moment to discuss DoeRaeTweet. DoeRaeTweet is an application I wrote that translates twitter messages into audio and lets people collaborate by adding their own audio - For example, if you tweet: AAAABBBA @drt - DoeRaeTweet will translate this into the musical note A A A A followed by B B B B followed by A. There is more syntax for rests and beats and timbre.I basically have a python script that generates csound files and then run csound. I was trying to use pymedia and then generate opensound (something) files that interface with PD but I could not get pymedia installed because Ubuntu only lets me have one version of GCC installed at a time - blah blah. Anyway I need to upgrade my server to run csound - so stay tuned.

I have a new UNICEF driver. He is AWESOME and he is driving me into the field next week with Benson, my UNICEF coworker. He told me that I should stay overnight in the field all week- I will bring my stash of gnu bars in case there is no candle cafe in the bush. I dont think benson will be into it, but I need a coding break, my mind is totally in the code-i-verse and I am having problems related to reality - like last night when I may or maynot have taken my malarone malaria pill. I am really sick of gnu bars and long for the day when I can eat some seitan jerky.

Tomorrow the Ministry of Health is sending some IT people over and I will train them as webmasters on the RapidSMS system -
I am hoping to reuse some very slick RapidSMS documentation from a Somalia project. If I dont get the SVGs by tomorrow then we are just going to wing it - and I will send documentation later.

My idea was to train a webmaster rather than a programmer, because going forward I really dont see a need for additional programming for the INFSSS system. All that is needed is someone to add data, to answer questions about the user interface, tell people where the anykey is, and to update django and rapidsms when the time comes. This last bit may be a gigantic headache- but I am hoping that it will some how be rolled into the massive malawi hiv/aids post-natal project.

Friday I train the national health workers in the SMS protocol, so I will be coding the SMS backend tomorrow and thursday. Friday I am meeting with a local django developer and then going to a tech meeting for local techies. I have also been working with a great dev, Josiah, at Mzuzu University. He is getting up to speed on RapidSMS and Django and I am hoping to work on some projects with him, and perhaps his wife who is a CS student in AI.

This is my second week in Malawi. Even though I am drinking lots of beer, I dont think I am gaining weight. That is because I am living on gnu bars -as the food here is too expensive - except the local food in the market near UNICEF - but then that is not vegi friendly.

I am attempting to push to git tonight -I had some issues the other night - and gave up in dispair. I may wait till tomorrow.

Started reading Sen again - Development as Freedom, and I am enjoying it. I think the intro is not very engaging, too bad we can't get Susan Sontag to rewrite it - she was the master of the philosophical intro. So the main question is - What should we do in helping developing countries 'Develop' - what what is Development anyway? The typical answer is economic - well lets help people make money/generate income. Sen's idea though is - lets help people develop freedom (political freedom, economic freedom, social freedom) and this will lead to the 'development' of 3rd world economies. The basic idea is that development is dependent upon people's access to acting freely. (So poverty is slavery) For example, if I am starving, all of my actions are governed by my animal desire to satiate my hunger - I am not 'capable' of engaging in economic acts that are traditionally felt to bring people out of poverty. Reminds me of my favorite quote from Rousseau - Man is free but everywhere he is in chains (and as Foucault would add - 'I wish'). Freedom construed in this way is (as Sen writes) is a end, and a means (the more freedoms I develop the more freedoms I can develop. I feel like there is something Kantian here. We are all both subjects and sovereigns in the kingdoms of ends, but are we all sovereigns? Not if we are starving, or die young because of crime or poor healthcare, or are repressed because we have no say in our government practices. And then how are we expected to 'develop.' This also reminds me of the desire in Buddism to live as long as possible so that we can have as much time as possible to develop spirtuallly in our current incarnation. The ability to spirtually progress is dependant upon the biological or physical ability to stay alive. (Apologies for poorly expressing Sen - don't attack me - I am sensitive I'm banging out a blog not crafting a dissertation)

My bathroom is crawling with cockaroches, and the internet cafe I think is closing early due to Ramadan - A sex worker is walking the halls of the Koboko.

I would like to send a special shout out to Paul. Happy birthday Paul - this post is dedicated to you.

Brought to you by vi and carlsberg green beer