Assured Labor (http://www.assuredlabor.com/) seeks to improve the lives of workers in developing countries by using mobile phones to match dependable workers with honest employers.
Well, this is it. It's the night before the big day.... I am a little nervous. I hope the demo goes off with out a hitch--that's the part I'm most concerned about. I tested our system in the area outside Bartos Theater today and it only seems to work if I'm very close to the entrance to the outside, so either our poster will have be by the doors to the street or I'll have to camp out by the doors and who ever's manning the poster will have to direct people my way. I wanted Kevin to be able to demo it as well, but somehow the disk that came with the modem go scratched and so we had no way of installing the modem drivers on Kevin's laptop. Hmmm... what about Katchy?! I will talk to him tomorrow about it, after we rehearse at 9 AM. In order to get into Bartos at 9 AM, I'll visit the facilities manager at 8:30 AM to request that someone opens the door for us.
Other things that could potentially go wrong are that
(1) I run out of paid credit on the cell phone account
I just checked and there's $3.85 left on the account and I filled it up with $25 only... days ago!
Tomorrow morning I'll add another $25. And print out the receipt so I can get reimbursed!
(2) The number of messages received/stored on my PC could get over that magic limiting number and then my program would stop getting new messages!
So I will delete all stored messages right now and remember to check that too many have not built up when (if) I have any trouble with the demo tomorrow. Okay, that's done.
(3) Someone will find the bug I found this morning in which info where jobID is not a valid jobID is not handled properly.
So I will fix that bug tonight, so no one can find it, because it won't exist! :-) Testing the fix right now... Fixed!
I think that's all the problems I can think of! I'm going to go ask some of the other "users" (my friends in my dorm) to message my program now to make extremely sure that the live demo will work tomorrow--with anyone's phone!
I'm really excited. :-)
This has been a busy week for the Assured Labor D-Lab Team. We got people's fantasy jobs and phone numbers in order to test out the prototype, but haven't sent them any messages yet because I'm still implementing the features requested by Luis and Gari, who we met with on Tuesday morning. I'm going to finish implementing those features by Saturday, when Joseph and I will shoot the demo movie of the prototype in action. So after the movie is shot, I will migrate my code and database *back* to my desktop PC in CSAIL which, unlike my laptop, can be on and processing SMS messages 24/7, and then I'll send out fantasy job invites. We also met with Gari last night for a practice run of our presentation. Thanks to Joseph for taking a lead role in the creation of the slides, and thanks to, well, everyone, for being great speakers. We managed to give everyone a speaking part in the presentation. (That was a discussion we had earlier, since some people think two speakers is better than four.) We're still waiting to hear back from people coordinating field testing in Portuguese communities in Boston, and I'm crossing my fingers!
Hi Guys,
Google provides a SMS query/search service at 466453. If you are interested, check it out at
http://www.google.com/intl/en_us/mobile/sms/
Since several groups have started sms field testing and sms message parsing, there are several web sites that you can sms for free. Below is one of them: http://textforfree.net/
Prototype is up and working. Finally! I'm so happy. I'm now about to call all my friends to sign them selves up to be eligible for their "fantasy" jobs.
-Elena
We've got the basics of the system working,
the prototype is looking better and better.
This has led to further questions that need to be answered..
Right now, we are working with a dedicated SIM card or phone...
Upon deployment, what system are we going to use?
Do we have to get a short code number from the wireless providers?
Typically, those providers take anywhere from 40 - 60% of the revenue coming in.
Forking over such a huge amount can lead to an increase in the final cost of the system
which defeats the whole purpose since this is specifically targeted at people without deep pockets.
Guess we have to answer this to be able to provide a viable sustainable business plan...
For future reference, here is how to install JDBC (the connector between java and a mysql database):
Download JDBC from Sun: http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1....
Extract the zipped folder
In that folder (at the highest level in the hierarchy of folders and files), there should be a .jar file (a java archive file) called mysql-connector-java-5.0.8-bin.jar.
Copy that into the "lib" folder under the "src" folder that contains your java files
Then in Eclipse go to File-->Properties, which should open a little window with tabs and buttons
Click on the "libraries" tab, highlight the .jar file mentioned above, and then click "add JARs"
As part of your .java file which has the functions you call when you want to interact with the database, you should have a public boolean function called something like OpenDBConnection() .
Inside it should look something like:
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, "username", "password");
}
catch(ClassNotFoundException cnfex)
{
System.err.println(" Failed to load JDBC driver.");
cnfex.printStackTrace();
System.exit(1);
}
catch(SQLException sqlex){
System.err.println(" Unable to connect.");
sqlex.printStackTrace();
}
return true;
You need to make sure the username and password of your database in this code match that of your database, of course, and that your username's account has all the necessary privileges to change the database.
This code refers to a string variable called "url"; this url variable should be defined somewhere in this .java file, and for reasons not completely known to me, looks something like: private String url = "jdbc:mysql://localhost:3306/assuredlabor". Our db is on a server, and our server's address in Firefox is http://localhost/phpmyadmin/. (We're using the WAMP server software, which comes with apache, php, and msql. It's got a great user interface.) So I don't know why the url is defined as such, but I recommend using the WAMP software, creating a new database, giving it a name, and then defining the url string to be exactly the same as above except with your database's name instead of "assuredlabor."
Then run your java program with this extra code at the beginning:
boolean DBStatus ;
Liukapi myDB = new Liukapi();
DBStatus = myDB.OpenDBConnection();
System.out.println("DBStatus:= " + DBStatus);
And it should print out that DBStatus is true. Hoorah!
-Elena
With help from Adam, from the IRD team, we can now connect our java program to the database on our local host. Hooray!
-Elena
The java logic sends out SMS messages, receives responses, and
properly handles them, to the extent that it can when working with an
array of data rather than a database of data. I spent most of the
night working on that, so I'm going to polish a pset for a different
class before I integrate the database.
My Personal To Do:
install myPHP
create DB using Kevin's create_all_tables script
interact with it using Kevin's other scripts if possible
interact with it within Eclipse using Kevin's API functions
replace data arrays in my Java code with Kevin's API functions
write additional API functions if necessary
I would tell you to interact with the system as it is right now but
it's currently not running so that I can take care of some common
mistakes people will probably make when submitting responses!
Since I need to make sure my pset due today is indeed complete, I will
let you know this evening/tomorrow when I've gotten as far as I can
with the to-do list above and have gotten stuck. Or I'll tell you that
I *didn't* get stuck and that you can text it whenever you want. You
can even tell me what kind of fantasy jobs you'd like alerts about!
It's getting to crunch time now, but we're on track.
Elena has successfully integrated the SMS interface to the logic piece so our prototype can now actually send out text messages.
The plan is to finish up the database integration b4 the weekend so that there will be some immediate testing over the long weekend.
Speaking of the long weekend, it was a pleasant suprise. Only found out about it yesterday. So I have some time to catch up on a lot of work..
I very much enjoyed the business and market discussions on the Assured Labor project! I hope there could be more discussions on the commercial plan, entry strategies, and competitive advantages. As the class approaches the end, the project really boils down meeting the expectations.
We had a good discussion with the Assured Labor core development team. To provide the database transparency and reuse, we agreed to have a database layer between the application and the mysql database engine. We compared the two gateway solutions introduced in the class: java vs. php. Since we don’t really have a Linux environment, the team has decided to use a complete java solution. To support the scenarios of notification and reminder in the application, there are two database APIs are currently under implementation. The database layer will use JDBC to communicate with the mysql database engine.
I read an article in "THE TECH" by Diana Jue - It's a Big, Big World; The showdown. You can find the article here .
In the article she stated..."Politics — the art of getting things done — work differently in developing countries with weaker governments...I reflected on the fact that anyone can make up perfect solutions, but their real life implementation, constrained to conditions like budget and corruption, is incredibly difficult"
Yes, this is an ICT class and we are concentrating on technology. But after all is said and done, what happens to the politics? If the rulers decide the solution will not be implemented, does that mean all that effort has gone down the drain?
Part of the principles we have learnt in class is to take cognizance of the target environment whilst designing the solution. This has spurred things like the "store and forward solution" where having determined that real-time online access is not necessarily a requirement, solutions can be developed to aggregate information and send them out in batches.
It's never just the code!
They say "techies" never really believe this. All they supposedly want to do is to write the greatest code, and
voila! everybody takes up the product.
This theory of it's not just being the code came to the fore in our technical meeting. We met to discuss the development of our prototype. And it turned out to be a mixture of the technical, and other factors such as time (how much time is left in the class), strategy, the target of the end product, etc.
I haven't done much (if any) of mobile systems development but the same principles of architecting a system applied. Using our "Use Cases", we developed a flow for the application, and then translated this to a very high level pseudecode. This makes it much easier to write the actual code, especially since we'll be working with new components none of us on the development team have used before.
Things are moving forward, step by step.
This past evening Katchy and I met for an hour and started to rewrite code--or rather re-think how we wanted to convert the use cases into code. Then we met up with Joseph, Kevin, and the core developers and founders. Sid (now a full-time Assured Labor developer) showed us how to make sequential diagrams that help us define exactly which and how many classes we need and which functions each class needs. Extremely helpful! We're going to make those sequential diagrams for each of our 5 or 6 use cases and then send them to Sid. Once we've all agreed on the classes and their functions, each person will have a class, probably, to make. We can then put them all together for a (hopefully) working prototype. In two weeks, we hope to have this basic functioning prototype, and we'll meet with the core developers again.
On Thursday I traveled 2 hours each way to get to the community of Favela Pantenao. This was in Zona l'Este, or the East zone. A non profit named MOCA (MOVIMENTO DE ORIENTACAO A CRIANCA E AO ADOLESCENTE) was having a community fair that they had been planning for several months. The goal was to help provide services and a gathering for young people, with services such as name card registration, health and nutrition information, photography for ID cards, and other health care services. In addition, there was to be a job fair for workers and employers in the community, and this was to be my primary research into employers of low income people in Sao Paulo.
However, when I arrived at the school, I learned that the job fair was cancelled. Although disappointing, I made the best of it and worked with my translator to talk to a few young people and leaders of other ONG's (same as NGO - non-governmental organization). In addition, a government official, the secretary for social development for Sao Paulo, was visiting the meeting. During his speech, my translator told me "He's talking about you." I turned red, and she related that he was talking about the research project in the community. After the speech, the secretary wanted to talk to me, and I showed him the idea and my project, and he was very interested.
So, despite the fact that the job fair was cancelled, it was good to make some connections in the community and the government.
This evening I went to visit a low income community named Parque Regina, through Jane's contacts at Sou Da Paz. My guides were Marilia and Marcio. Marcio lived in the community and had helped the community take an open area filled with trash and rubble and turn it into a community park, complete with trees, walkways, and a basketball / soccer court. It took an hour by public transit to get to the community. Marilia translated, and we interviewed a group of 10 workers to ask about how they currently found work. We found that all of them had cell phones and email addresses, and had used the internet before for looking for work. However, most of these workers were looking for full time work. Despite this goal, several were unemployed and several worked informally.
I arrived in Sao Paulo at 6 am after an all night flight. My host, Helio, picked me up at the airport, and drove me back to his house. The first thing I realized about Sao Paulo, or Sampa, is it is called by the natives, is just how huge it is. Twenty million people live here, and the traffic is horrendous. It took us 2 hours just to get from the airport to Helio's house, which is only about 30km away.
After I settled in, Helio went to work, and Jane's friend Joao picked me up. We rode on the back of a motorscooter one hour across town to an agency that helps low income people find jobs. The people at the agency were very kind, and showed us how they assist people in finding jobs. They also set up a few focus group interviews for people who were at the agency to talk with them about our idea. These people were interested, but I think they were looking for full time jobs, and not temporary work, which doesn't quite fit with our model of lots of jobs and resulting feedback. Nevertheless, it was good feedback and very good information. It was quite interesting to see the inefficiency in the system. The job database is only accessible in this office, and workers must come in person once a week to update their information. If there are no open jobs in the system on the day they come, they must come back again. They hope to make the system accessible online, but it will take a sizable investment and some time to migrate the system over.
This week we made some terrific progress. On Friday Kevin, Joseph, and I got together to talk about the nitty-gritty implementation details; now I feel like we're really able to start bringing our DB and Java application together using J2DB and APIs, etc. On Sunday and Monday we hashed out first a rough draft and then, after my meeting with our advisor Jhonatan, a second and final presentation. Everyone came together on Tuesday and gave (what I believe was) a fantastic presentation. To top it all off, Joseph got tickets to San Paulo on Tuesday, and so he's probably on his way there now. I can't wait to hear all about it when he gets back. Until then, I'll be working on my Java app and calling Kevin; hopefully together we can get his database and my Java application to talk to each other!
Joe, Elena, and I met on the weekend (3/16) to prepare for the midterm project presentation. Joe showed us some interesting market analysis slides from the Assured Labor (AL) founding team. Elena prepared slides for the Project Timetables and Roles. Together, we discussed upcoming field testing. We summarized the field testing effort by the Sloan AL founding team including zooming in the South America - Brazil market and selecting the target companies such as TeleListas.net, Garner, and Spoleto. Going forward, we are planning testing in both Brazil and Boston. In Brazil, we will focus on small businesses and small focus groups; in Boston, we aim for the Portuguese communities. The field testing will further validate customer needs to support value propositions and understand user needs to increase user buy-ins. The testing also intends to verify the product/system usability. The scenarios of the testing include:
1. Customers sign on the web site and post jobs
2. Users receive SMS message and provide feedback to the AL web system
For testing, we went through a few SMS messages to flow though the SMS parsing and the feedback logic.
The GSM modem has been successfully installed on my PC. Whoo! :-) As soon as Kevin teaches me how to make my Java app pull info out of/ update his database, we'll be able to have a very nice little demo!
Elena
Another crazy week has flown by. It is funny, it seems like each week of work has been categorized by a slightly different theme, and the theme for this week has been "team". We had an all team get together last night with the founders, developers, Ventureships team, and the ICT4D team (14 people in total). It was great to get everyone together and meet the other members to hear what they are working on. I think it is really important for the ICT4D team to be able to coordinate with the Ventureships team on their market research, or with the core developers and the product.
So my group had a formal kick-off meeting (or as the construction guys would say - ground breaking ceremony)
In under two hours, we were able to make a lot of headway, with the tasks split up amongst ourselves
( is this still the forming stage of Tuckman's model... or have we entered the performing stage already?)
We've agreed to go with an SMS interface and have set ourselves a task of having a rapid prototype ready by spring break. Ha! This better work or else I'll go back to one of my other Professors and tell him his agile software theory is not working (lol...)
Anyway, we're trying to see if we can have a very light version of the system available before spring break so that this can be tested during the trip to Brazil. We've created our use cases and the code is being worked on right now.
Sometime during the week, the Assured Labor team met with the project founders and another team working on the project from another class (the venture mentoring service group). It was a fun and relaxing evening. Whoever said "techies" are nerds? Well, you need to come meet people who are passionate about "Harry Potter" and those who are at the opposite end of the spectrum.
I can't believe it's Wednesday! Ack. I got set up to program in Java last week. I think one hurdle is that... I don't know Java. That seems like it could be a problem, but by pattern-matching with the example code we've been given and looking at material on the internet, I should be fine. Fawah also said she'd be available to help; she's in a Java course this term, in fact. I'm sure what I'm trying to do is simple enough that she'll know how to help me. Luis will be away next week. This could be a problem! I'll go to his office hours tomorrow at 5 PM. Perhaps by then I can make a hell of a lot of progress on my Java app.
To Do tonight:
Activate our phone
Install the GSM modem on my laptop
Test it by following the instructions on ict4dlab.org
Finish my part of the group write-up
To Do (longer term):
talk to the group about our presentation
set a time for a run-through this weekend
see if we can get Luis's feedback on Monday
Okay, off to our dinner meeting with all of Assured Labor's founders, marketing consultants, etc.!
Elena
Wow, what a week! We are definitely making some progress as a team, and we had a great team meeting on Sunday, as Elena detailed in her post. We also had three meetings with potential investors who had some good feedback about the idea, and they had some positive words to say as well as things to look into as a team.
I really like the idea of developing a rapid prototype and testing it, hopefully in brazil or in portuguese communities here in Boston. I think that this early feedback will be helpful in shaping a more intuitive user design. I am looking forward to getting back into css / html / design to work on the web side of the interface.
We still have a lot of work to do, but it looks like we are headed in the right direction. I am enjoying this class and really excited to be working with such a talented team.
Also, are any of you interested in going to the MobileCampBoston that the instructors sent out? I already registered, sounds like a useful and interesting conference.
http://www.barcamp.org/mobicampbos
- Joseph
So! It's Wednesday night, and therefore it's time for a personal blog post. The most obvious thing to comment on is the huge amount of progress we've made this past week. Jhonatan emphasized becoming a "cohesive team" this week, and we're certainly well on our way. We kicked things off on Sunday going over the overall project and determining what our roles will be within this larger company product's development. The next day we were already meeting with instructors, and I was modifying the class lab code to suit our needs. It's going to be difficult to get the "prototype prototype" ready for a field test by spring break, especially because all of us have varying degrees of the relevant technical experience to execute this project, but that's our best case scenario. :-) It's good to have ambitious goals, I think. Currently Katchy is working on the specifications that will determine exactly what I make my Java app do and how Kevin structures his database. Joseph's working on the website. I think at this point I'm most fuzzy on how the website talks to the database and how my Java program talks to the database. I think I'll ask the instructors tomorrow in class.
Who am I?
I am a Nigerian and a graduate student in the Systems Design and Management program. I have a background in information technology and have several years of experience in different aspects of it.
My current research is in development of location-based services in emerging economies. Simply put, I'm looking at how one can deploy location-based services (driving directions, local search, friend-finder, etc) or large-scale systems in general, within the constraints of developing countries.
Some people say "you need broad band internet density to do this, so subsidize internet costs"
I say "look around the environment and ask yourself - what is available that can be used? How have the locals been able to find their way around the cities & locations? Generalize this and see if you can come up with a technology/solution."
Why am I going this route? Because if one keeps on waiting till internet access becomes ubiquitous, some of these services will never get off the ground. Unless of course, a solution to internet ubiquity is found immediately., (like a fibre-optic cable is laid all round Africa in the nearest future.
Is this going to work?
One of the technical challenges that our team faces is to parse the SMS messages once the server receives them. At MIT, there are several EECS professors working on natural language processing. Below are two CSAIL professors who also distribute source code (free parser download).
Prof. Michael Collins, http://people.csail.mit.edu/mcollins/code.html
Prof. Regina Barzilay, http://people.csail.mit.edu/regina/code.html
In our project deploying country, people may speak and write in other languages than English. It might be a complex task to interface a natural language parser depending on the parsing algorithms used. An alternative for prototyping is to use a "coding book" for SMS messages encode/decode; this requires user education of the "coding book".
Every big project needs a work plan... :-) Our's is here:
http://docs.google.com/Doc?id=dgcxd7wv_430cpm87thq
-Elena
When: Monday 3/3 at 2:30 PM
Attendees: Luis, Kevin, Elena
Accomplishments:
Luis confirmed that our work plan's timeline was reasonable.
He also clarified the significance of and distinctions between our choices, namely Kannel or SMSLib, Java or PHP or some other language, etc.
Finally, he mentioned that most teams working on this kind of project break it down into the website part, database part, and application part.
When: Sunday, 3/2 at 5 PM
Where: Stata, by 32-144
Attendees: Joseph, Katchy, Jane, and Elena
Accomplishments:
Joseph delved into the details of Assured Labor's current plan.
We discussed how the ICT4D team's responsibilities fit in with the core software developers and marketing teams.
Joseph addressed the concerns of Katchy, Jane, and Elena regarding the differences between Boston and a developing country.
We broke ourselves down into two teams: one for software and one for the more human side of things.
Since we're considering Brazil's Favelas as a place to deploy our technology, here are a few links about them:
from RoadJunky.com
from Wikipedia
I've also attached a particularly striking image from RoadJunky.com.
-Elena