Archive for the ‘Uncategorized’ Category
The first smartphone I experienced was an i-mate jamin, that i received from my boss as a replacement to my Nokia phone. It runs windows mobile 5 and was the heaviest phone I ever had. I remember I lost the stylus and I had to use keys as a replacement to touch regions where it is difficult to do it by hand. I have used it for about a year and back then I was not complaining about any performance issues or a need to restart the device due to a glitch in the OS or any additional application. Memory management, even if I never cared about it, was not an issue. However, when I started looking at other devices like iphone and HTC, running android, I tried so hard to update the windows version and get applications installed on it but I couldn’t do it. The touch, was not that sensitive as the other touch devices I saw. I was trying to develop an application for my device but it was so hard to get one running on my device. The picture quality was not as good as the other devices and the update process was not so good.
The next phone I moved to was iphone 3G running ios 3.x. After I received it I upgraded the ios and I had to jail break and unlock it by myself. That was one of the scary things to do back then. I didn’t get it to work for two days trying to get the right tool to jail break. As compared to the imate, the iphone upgrade process was smooth using itunes but trying to unlock it to work on our network was a challenge. Even if it was possible to get applications of different types without jail breaking, I wanted more and I did jail break the iphone and become good at it. I installed lots of add-on to the iphone and while its all working good a new version of ios came out. The main purpose to upgrade was the need for multitasking and other minor changes. I updated it to the latest version ios 4.2 After few weeks it crashed and i had to restore it. However, when i was upgrading it to 4.2 to get it unlocked in our network, i updated the baseband version which was an irreversible upgrade so I had to only stick to 4.1 or earlier versions only.
The process of developing an iphone app was more difficult than for my previous phone. I tried to get a way out but with no success. The touch was smooth, I didn’t need to clear memory at all or restart it except once in while. the camera was good specially during the day time. Battery life, the wifi and all were great. All I hated was the fact that I couldn’t easily do things that I want to do, develop an application, update without the long process of jail breaking and unlocking. After more than a year stay with my iphone i needed to switch to Android world. A more open and free world. I remember the time I installed android on my iphone and made it a dual boot due to a growing need for android.
The one I am using is Samsung Galaxy SII T-mobile version running android 2.3.6. By the time I get it, android 2.3.6 was not the latest version of android. I had to wait long until T-mobile rolls out the version of android,4.0.1, for that specific model. After trying few times to get the update downloaded through a Samsung built software, Kies, I succeeded in updating my phone. When it was running the 2.3.6 version of android, I never had a problem at all. The touch was as good as the iphone, the camera was amazing and there were enough application to download and install for my phone. I even tried to build my own application and there was no need of getting another machine or another platform. I don’t remember the time I needed to restart the phone due to a failure of themes or applications I installed.
The problem started after updating my phone to the latest version of android. In short, it is the most disappointing experience of smart phone I ever had. My friend had to uninstall it and roll back to old version of android because of it. The memory management is so bad, the key board get stuck every other day and I have to restart it, some applications get stuck in the middle, and many more. Too good to be true, I like the device so much and I don’t even look at others. But the combination is by far the worst of all device-os combination I ever had. If you have an android device and are looking to upgrade it to the new version, I encourage you to look at reviews before doing so.
If I have to change my phone, the next phone will be a device running Windows 8, back to square 1. I want to repeat the cycle and see what’s changed since I left. I hope you have your own experience of one of the three worlds and I encourage you to share it with us.
P=M*V, Momentum in classical mechanics is the product of Mass and velocity. It has been long time since I talked about the concept of momentum in the mechanics world and it is not the intention of the post, but the speed of movement of our IT industry. I had a discussion with friends about why we don’t see the momentum in ICT in Ethiopia. I have been trying to establish a dot net user group since 2008, and yet we are struggling to make one event happen. A friend at Microsoft in the neighboring Kenya told me that there are tens and hundreds of Windows phone applications in the Market from other African countries but none from here. For the imagine cup (students competition organized by Microsoft) we were trying to have students take part from here and for two years we didn’t succeed while two other African countries (Egypt and Algeria) take home winnings.
We can list lots of similar situations where we don’t see much of Ethiopian developers/students/ participation in local and international venue. I am not trying to list out the missed opportunities that could have benefited individual participants and boost the energy of the others. The picture to the right is taken few years back at an exhibition held in Addis Ababa to showcase IT solutions (hardware, software and training facilities). I didn’t even have the chance to see this years exhibition but from what I heard, specially the software section was not as good as what it used to be. I believe that drive of individuals is a major part of the company they work in. I just want to focus on individual momentum and the possible challenges in our context.
The first reason that could be a reason for lack of momentum is the problem of infrastructure. There are lots of arguments about this one but I will try to explain it. Imagine someone interested to discover the new windows 8 and build a metro style application. The first thing to do it get all the necessary resources starting from the developer preview of windows 8 ( which has Gb’s of size), then Visual studio 2012 developer preview and reading materials, video tutorials and similar things. The total download size could range from 4 to 6Gb of size, which is not feasible for a developer outside of an organization with broadband connection. Imagine another case where he wants to build a cloud based application. He/she has to be connected to create an account, build the app and test it. I don’t want to just point out the problems but also show possible ways of getting through it and obviously a solution for this is to get the downloads from a friend. This has been what I used to do before two years before changing my work place.
The second possible reason I think is lack of ‘inspiration’ for developers. For someone who doesn’t have internet connection to see what others are doing around the world, the only inspiration is seniors he/she know in the company. When I say inspiration, I saw yesterday on TV about a guy who shot innocents for nothing and was in a court room. A body language interpreter was saying that he’s trying to mimic ‘The Jocker’ we know on a movie. Most people need inspiration to get the momentum to accomplish something, to create to work hard … I used to have people that I look up to getting close to them when I started working. It feels good to talk to them and discuss technical issues, show them what I did and look at what they have done and all that. The chain is endless, the inspiring guy has his own inspirations in that field. Luckily this happened because i had the chance of working in a large organization full of senior developers. IMHO, for someone who is working in an organization as a ‘one-man-IT-department’ (we know that some organizations hire an IT guy to do the job of an IT department; network, website development, content development, system administration … ), this is not easy thing to achieve. This links to my last category-‘community’.
Last, for this post only, reason is the fact that there is no community. I am sorry to to override the efforts we had to create a live community of developers but its clear that there is none. If we had a community of developers, it is easier to share ideas about new technologies, problems faced and the probable solutions and so much more. As described above, it is easier for people to get inspirational people in their field. It also relates to the first problem as there might be someone with the resources already at hand to share, the big organizations (Microsoft, Google and others) can also directly make available the resources. The solution for this is clear, to have a community and participate in it. However, that community of developers is none existent and we should be able to bring that. To create a community of developers we see in other countries might be against many issues we have here; economy and culture. Discussing about these problems is beyond the scope of the post.
In general, to bring the growth momentum of IT in Ethiopia , it is better to start from individuals. We should be able to ‘break the spell’ and go forward. Lets start by creating a community, share resources and get inspired. Finally, I would like to thank a developer who came recently to Ethiopia and is going to share his experience tomorrow at iceAddis. After you read this, I hope you have the drive to say some of the problems and the courage to share that with other readers and you are very welcome.
Infographic by- GO-Gulf.com Web Design Company
Today is my blog’s birthday. I wanted to write this post as a birthday gift to myself and whoever has been following the blog. This post is a kind of interview between the other me and the writer in me.
Why did I start writing? I was nominated to for a dot net MVP (Microsoft Most Valuable Professional) for the year 2011. The form I had to fill asks, in addition to other things, if I have a blog and statistics about it. The second reason is, I met online a guy in Microsoft talking about an African blog talking about technical issues. We discussed and he encouraged me to start blogging and gave me an idea of the challenges and opportunities. These two things helped me to start writing.
What’s the blog about? The blog, as the name indicates, is about coding or programming and what it looks like in Ethiopia specifically and my view in general. The last part of the url (‘dotnet’ after ‘livetocode’) was not actually added intentionally. But after I saw it, I loved it as I was working on dot net for a long time. In the past 27 posts I talked about challenges in Ethiopia for developers while working, during meet-ups and some opensource projects I initiated and came across on my way. It was not only about dot net.
The statistics, what does it look like? As of today, the blog had 2,873 viewers from a little more than 60 countries Ethiopia, US and Canada being in the top three, 27 posts, 57 comments. Real time traffic in Addis? leads the board by readers and Facebook as a top referrer. I know that’s not satisfactory but for technical blog, it is sufficient.
What’s the plan for the second year? The guy I referred earlier told me that blogging technical content is hard, time consuming and really hard specially if you want to write something worth reading for the public. You have to do first what you write and write it down. It requires a lot of energy, time and commitment. In addition, if you make it too technical, the non-techies don’t like it and vice verse. This is what I’v learnt. One of the plans of the blog is to make opensource development and collaboration a trend in Ethiopia. We don’t have a habit of writing online (except on facebook🙂 ), even the technical people like to go online to see a solution they faced but don’t comment at least on the solution they got. My plan for year two is to enhance the posts, so that they make people comment on them, a mix of technical and general issues.
Any appreciation and comments? I would like to thank all the readers so far and the new ones who will join me and most of all the people who took the time & courage to comment on the posts. I would like to thank ‘Ethiopian-Blog’ community at ice addis for creating the culture and the introduction. I have seen that the developer community in Ethiopia is growing and is taking the initiative to build a sort of collaboration platform, or opensource projects. I wish success for the team.
Happy Easter for all celebrating it. After my last post about an opensource project and my sample application I developed, I had the time to release it online and make it functional. It has been less than a month and we are doing fine in locating out favorite restaurants, cafes and lounges /bars. In the past few days I have seen that there has been some difficulties in contributing and hence this post is to help people.
1. For people with smart phone : Ushahidi is a platform and this is a specific implementation called ‘eat out addis’. If you have an iphone or Android based phone, you can go to the specific application store and get ushahidi application, add a map and in the url textbox add ‘http://eatoutaddis.crowdmap.com’ . You will get a list of restaurants, cafes and bars added so far. You can add your comment on them.
To contribute to Eat Out addis by adding new ones, either create a user name or report anonymously by adding title ( which is the name of the place you want to add), description ( your personal review), locate it on a map and give specific locations or guide and submit it.
2. For those who want to use the web interface: Open your browser and enter the address http://eatoutaddis.crowdmap.com. when the page fully loads you will see a map of addis with dots on the map. If you click on one, you will see the description with a popup window. If you want to filter your choice only to a specific category, you can click on the category you want on the right ( this choice is also available for smart phone users.) If you are ready to contribute by adding a place ( either as a registered user or anonymous), click on ‘Submit a report’ and fill the form. Similar to the phone based app, you will are required to fill title, description, and the refined location of the place.
In both cases, please make sure that the pin ( red polygon on the map) is located at the right place. Zoom in to locate the place on the map. In many cases you might need to click on ‘clear map’ so that you don’t have to pins on the map. After clearing, you just need select the button with a pencil below the map and then click on the specific location on the map.
3. For twitter users: if you want to contribute through twitter a specific location, use the hash tag #eatoutaddis in your tweet and it will be automatically available in the site.
If we can have sufficient locations on our map, we can add functionality to eat out addis. In my opinion, making the place you liked visible to the world is a lot more than giving a tip to the waiter or telling the manager that their service is good. Every time you are eating/drinking/having fun with your friends at a place in addis, don’t forget to let others know by locating it on eatoutaddis.
A friend of mine who lives abroad sent me a facebook message last time with a link to Ushahidi. A platform with a growing user community and application (Ushahidi means testimony or witness) . I heard about it a while ago, checked it and didn’t know that it can make life easier to do something useful. This time I had to see it deeper and see what I can make out of it to have fun and if possible bring it out there for public use. In this post I will try to describe what I have done with it so that anyone interested can do the same and implement his/her own idea. Here is a short description of what Ushahidi is: “Ushahidi is a non-profit tech company that specializes in developing free and open source software for information collection, visualization and interactive mapping.”
Eat out Addis is a sort of restaurant/bar/cafe … guide for the people of Addis or anyone coming to Addis. Let’s say you’v been a restaurant and had an amazing meal and you want to return the favor for their hospitality or what ever you like. So, what you do is, you can either go online to review the restaurant or use your mobile phone. To be honest, I didn’t try the SMS part but you can send an SMS to a specific number to do the same. So, let us say you go online or you are using your iphone or Android based smart phone to rate the restaurant. You locate it on the map, you give it a title ( which could be the name of the restaurant), a description (your review, which appears on the map), the type ( restaurant, bar or which ever it’s category is), optionally you can also give your personal information, specific location or feature and may be a picture you took there. A trusted group of people will receive your submission to either publish it on the map or reject ( based on the information).
What did it take to build such an online application? I am going to tell you what I did, but for the none developer, Ushahidi has already prepared an easier version (hosted version) called crowdmap. The first and most important thing to try out the platform is having a web server on your local machine if you are going my way. I am using Wamp , a windows web development environment with Apache, MySQL and PHP. Download it and install it on your machine ( If you are using an operating system different from Windows, please check Xampp as an alternative but I follow the windows path). Start Wamp server from you programs list and your web server is now ready. To check if there is any problem open your browser and navigate to http://localhost/ and you will see the picture to the in the left. After installation you will have Wamp/WWW folder inside the disk where your operation system resides.
Download the Ushahidi platform ( the latest version is code named after the Capital of South Sudan- ‘Juba’). Extract the Zipped file inside the directory (Wamp/www) and rename it to a name you prefer (say ‘eatoutaddis’). If you now go to http://localhost/eatoutaddis , it will automatically redirect you to http://localhost/eatoutaddis/installer and you will see a starting point of Ushahidi installation with two options (right side picture). Before proceeding to the installation, open another tab (assuming that your browser is one of the latest tabbed browsers), or another page and go to http://locahost/phpmyadmin. This let’s you manage MySQL databases. In the text box under ‘Create new database’ label give it a name which is close to that of your site or the same and click ‘Create’ button to have a database ready for your Ushahidi instance to use. I went through the ‘Basic Installation’, so cilck on ‘proceed with basic’ and you will see the requirements of the installation. Leave the top notifications as the web server has already done that for you and write down this things:
- Database name: the name you provided above in the ‘phpmyadmin’ link
- Database username: root
- Database password: is empty by default (which is not recommended actually)
- Database host: localhost
Click ‘Let’s get started!’ and fill the above in the text boxes and leave the ‘Base path’ and ‘Table prefix’ as they are and continue.
Give the site name the name you want to appear on the top of the site, like ‘Eat Out Addis’ and the tag line is the slogan of your site (‘Discover Habesha meals in Addis’). For the email address you can give it some fake email and for the last part which says Enable Clear url, just select ‘yes’. Clean url helps in many ways which is out of the scope of this but if you like to read please follow this.
Continue to the next part and provide an administrative password for your site and the last part is a summary of what you have done so far and links to manage the functionality of your site. Your site is now ready, go to http://locahost/’name you’v given’ . If you select ‘Configure your map’ from the last part of the installation page, you will get a lot of options to set the site like you want it. You can manage the categories of your report ( in my case I have Restaurants, Bars, Cafe… ). You can also select the default country, the map provider and so on. The look and feel of the site can also be modified, if you know CSS and how to get the regions you want to change and so on. You can also change the logo of the site as I did. I hope this can get you started to do something you have been thinking. Eat Out Addis is not hosted yet for you to see it but below is the screenshot of my installation. Cheers!
I left office yesterday the usual time and was thinking to go and meet some of my friends around Bole Medhanialem. It used to take me only 10-15 minutes. However, yesterday was extremeley abnormal. It took me around 40 minutes, though i tried to be ‘smart’ and take the possible shortcuts. On my way back home, I was going from the millennium hall down to olompia and that was the time I decided to write this post. What can I possibly do atleast to save myself from the chaos? Not to come on this path anymore. But that was silly as I can’t avoid it. Then I started thinking of other solutions, which might also help others too. The next thing I did was to see if the idea can be realized given the Ethiopian situation.
The first thing that I did was talking to people around me what their opinion is about my idea. I was thinking, if people could send SMS to the server the traffic information in given format, so that the server can aggregate the traffic coming from these people and render it on a map. It will also be easier to look for alternatives ways before leaving office. If you are already caught in the traffic, you can send SMS with your location and the server tell you what to do and all these. However, I realized that it is not possible to text while driving😦 I had to spend sometime looking for alternatives to this problem.
I saw that Google Maps has a built in service, which is diplayed as a layer on top of a map called Traffic. I tried to see how it represents the traffic data . Cities in the US, Europe, Asia, Austrailia and south America have their traffic mapped live on Google maps. The picture here shows Stuttgart’s traffic (why Stuttgart? by the time I checked, it was one of the cities having all the possible traffic density categories). The next thing I did was to check if that was possible in Addis too, which is not there as expected. How does google get the data to show a live traffic information?
I came across a blog by a Googler, he explains what the bright side of sitting in traffic is: Crowdsourcing road congestion data. Crowdsourcing is (according to wikipedia) a distributed problem-solving and production process that involves outsourcing tasks to a network of people, also known as the crowd. The idea of crowdsourcing was exactly the way I was thinking. But how does the Google way work? These days we have lots of smart phones in Ethiopia. (Too bad my iphone stopped working last week😦 I was one of them) Most of the smart phones come with Google maps application on them if not, there is one out there on the respective app stores ( Android or Windows phone or blackberry … ). In addition, most smart phones do have GPS in them. Google maps, when location services is enabled, provided it has internet connection, it sends bits of data to Google which helps determine the traffic condition. The data that’s sent to google, as they say, is not personal except the speed and location of the owner of the phone.
Taking a rough estimate of smartphone holders in addis to be 20,000 of which half of them are willing to contribute, google could get 10,000 traffic information to map Addis’s traffic. If 200 of these are going to bole at a speed of 5Km/hr, google can show the graph as red, on the road to bole. On the other hand if it get’s 50 people going to gotera at a speed of 50Km/hr, well that could be green (this is an estimate of the general process of aggregating the information).
I am an optimist, I do believe that we can make it happen. When the idea of sending information to Google comes, people complain about privacy and all. People don’t want to be tracked, where they are going or at what speed they are driving, for that matter they might be in a taxi … or what ever. I am not saying the issue of privacy is not important here, but we all know how many of us really modified our account setting on Google when it changed the privacy setting. As I said earlier, Google says it doesn’t use the information for any other purpose other than traffic log, so let’s believe that… If you know anyone who have a smartphone, tell them to install Google maps if they don’t have and switch on location services. Whenever you are in your office or home, you can stop the service as the mobile service provider will be counting each Kb.