I came across a project initiative in the United States called code for america. The leaders of technology companies had a video where they ask the programmers to code for a change and it is a kind of social service. I thought about the issue for some time and it came to my mind what we can do for Ethiopia. Information technology is like death, they are the two things that we, people from the third world countries, could be equal to those from the developed world. We get the latest software and equipment not too late than the rest of the world. If you take it this way, my idea makes sense, I guess. So, when the Americans code to change the way of living in the US from better to best, why not we change the way of living from worst to bad at least? Don’t you think that is possible? I think it is possible. This is all about coding for changing the life style of the people.
Consider the way we move in addis, the way we advertise new movies, the way we go to cinema, the way we choose schools for our kids (or brothers/ sisters) and so on. Do you think there is a place we can get in? Is there a way to make things better in this ways? I see lots of things that can be developed. The simplest scenario is the bus arrival and departure time. To my knowledge, there is no public way of getting an information about a bus, say Number 58. What areas it cross, what time it arrives at its starting point and so on. This is not actually a simple thing to come up with a working source of information. It requires the involvement of the source of information, the City bus, the public in general and developers.
Another simple scenario, I want to eat my lunch somewhere I have never been. I could only drive around and see the restaurant from outside and check what they have. What if we had a central repository of restaurants and their menu, what they have for a specific day, what specialties they have, so that I can go online and check. In this way, I believe countries close to us are ahead of us. Eat-out Kenya is one of the leading restaurant location tracker and their menu for the day.
I usually don’t get a place to go after work. Have you ever been to that situation? I guess there are many people around addis who share this. What if we had a way of getting schedule of what’s out there for that day? I got a site and see what’s hot today and see if it is of interest to me. The data comes from different entertainment entities and I get the chance to see it. How about schools? I expect to have a way of locating a school and see what they have, get what people say about the school or college, hospitals and clinics, embassies and their location, how to go their location and so on.
Let me put a typical Saturday of Ato X. He wake up in the morning and wanted to go out shopping. He take a taxi or a bus and goes to merkato. Looks at the items and buys what ever is in his mind. Then he comes back home. Prepare lunch and eat or may be eats somewhere out. Then he has a plan of going to a hospital he know by name to ask a friend. The last thing on his schedule is going out with friends and having fun. Imagine the places that we could have made his life more enjoyable. I know there are lots of shopping guide sites which lack content; but what if they are full of information that is current. He could just look at the items and the best deal in town and go to that place.
If we had a directory of hospitals and their locations on a map, he could have gone straight to the hospital without unnecessary calls to ask the place. On the last schedule, what if he just goes online and see that there is a salsa show somewhere then meet people of his interest. Please forgive me if I am too ambitious, I see it that way. We need to build an information repository where the community is updating it every now and then. I hope changing the way we live changes the way we think which in turn changes the way we work. I hope that affects the growth in a positive way and one day enhance the life’s of those people who are in the rural areas.
In general, there are lots of things that need to be exposed to public for easy access. That is all about information availability. What if we build the information and also the application? If I get enough allies I will start it as an open source project. Anyone can be part of the project, either by coding or collecting data or giving comments. Let’s code for Ethiopia and see the changes.
I have been in a company called Cybersoft that develops software for four full years after graduation and one year when I was in college. The company is not like the other IT companies in Ethiopia, it purely does software and software only. It has been more than 12 years since it emerged. The first time I went to the company was when I was about to go out for a practical attachment program for the summer. They had a project in the University I was learning, Mekelle University. The scope of the project was to automate the record office of the university and two other features, scheduling and student placement. It has a limited budget and time, it was not more than two years.
The actual time it took was more than five years. I have witnessed similar scenarios of project time limit extensions. After I graduate, I joined the team of developers working on the software for universities. There were no new clients coming to the ‘solution line’, as we call it back there, after I joined the team. All we did was maintenance and support work. I was not interested in that and I changed a product to work on. Luckily, I get the chance and joined the team that works on supply chain management system. They were trying to build from scratch. The earlier version was not an easy one for them to understand and modify. I changed to other applications and have worked with lots of clients. I am not trying to tell you how much I gained in terms of technical experience, but rather lots of ‘chigir’ (It means ‘Problem’ in Amharic).
Currently, I am working at Johns Hopkins University as an application developer. Things are perfect for me here. But, on part time basis I consult a Client University for the automation of the BPR, Business Process Re-engineering. I am responsible to design the whole system and supervise the company that is going to develop the system. One of the reasons I wanted to write this blog is this email I received from the IT team of the university today. I tried to give them a document which shows what the big picture looks like. They have also ‘burnt’ their finger working with lots of companies (I put it as they said, who knows who burnt who). The email was a comment on the document I sent. They were telling me to add a module for project management. It came to my mind the article I saw years before while we were trying to build an ERP (Enterprise Resource Planning) system. It states that one of the main reasons for the failure of most ERP systems is that they are too ambitious.
When I was in Cybersoft, we had once been working to enhance the development process so that our software projects close with in time and budget. We came up with the latest possible development methodology, Scrum. We tried to start one project using this; all I remember is the first few days me and my other friend coming to the daily meet up but not the others. I am sure, the technical capability of the developers is competent as that of India and the rest of the world. This can be seen with the guys who left to the US and are working at Microsoft, who have been once at Cybersoft. I know there is a lot to say, which I will add more in the coming posts, and invite others to say what they feel. Currently, I’m worried about the project which will either make-or-break my consulting carrier.
The beginning of this week I met Markos , one of the ice-Addis guys and he told me about the world IPv6 Day coming on June 8th. He told me his idea of having a session at the ice just to be part of the event. The next morning I met Fitsum , who works with me in the office, also told me same thing. I am not a network guy but it took my attention. One of the first being the application I build two years before using Windows communication foundation (WCF). It is a client-server system where the client connects and sends requests. I remember I used an IP address to find the server, just like http://192.168.0.2/ kind of url. I started wondering what the effect of this IPv6 would be on my application.
I looked at all the possible posts and books to see what the effect of IPv6 is on my application and the way WCF works in general. Luckily enough I did it in the era of WCF not dot net remoting, the changes will be minimal. It doesn’t even need a modification in the code but only the configuration file. However, I came across different issues that are interesting for me and liked to share it with you. I told you am not a network guy so I will all be talking about from the application side.
The first one is the things that need to be looked at to see if your application is ‘IPv6 Compliant’ (that’s not the way the call it thou). These include
- The data structure that are used to hold IP’s, say array length the like
- Function call, special if you are using Microsoft technologies there are added functions to support IPv6
- Hardcoded IPv4 addresses , just what I have found… but not in my code thou
- User Interfaces, where you ask the user to enter ip address
- The underlying protocol used are some of the issues to look at and you can find details here.
There is also a tool Checkv4.exe
which you can use to port your IPv4 dependent application to an IPv6. You can check the tool from here
There are different scenarios that might lead you to using a utility function in your application which translates between IPv4 and IPv6 addresses.
The other thing that I wanted to share is that, there might be an internet connection problem on that day, June 8th of 2011. The social network site, that we all love to see it daily if not hourly, facebook is one of the participants among the hundreds on the IPv6 day. You can find the participating sites here
. If you are a windows user, like most Ethiopian, Microsoft had been working on IPv6 since the days of Windows xp. Please don’t get me wrong if I am favoring Microsoft on this issue. It has come up a way of looking at if you will have a problem accessing sites on that day or not. Click here
and see if you will have a problem. Here is the result of my test.
As you can see I am expected to have problems connecting this day
to web sites participating in IPv6 day. It tells me to disable IPv6 configuration. To get a fix for this problem, Microsoft is telling me to go to this site
and download the fix or run it from there. It will do all the configuration and on the 10th of June the configuration will be back to normal. For a simplified test of your IPv6 day readiness you can also use this
Lastly, I would like to share with you my idea on “Is there any benefit for applications when IPv6 comes?” and invite you to say what you feel. From what I have seen in this week, I hope there will be a revolutionary change coming in the way we interact. May be communication will be cheaper and easier than now. Who knows Ethio-telecom will have sufficient IP’s to give us all. Have your say and let’s get ready for it.