Marketing digital. Making results.

African Tech News Tidbits – Week of July 29th 2012

One Laptop Per Child Rwanda

So what’s new in African Tech News? A bunch of interesting tidbits as usual. But before that, I need you to take some time and head over to Start Some Good and support the 30 Coders Campaign we are currently running to sponsor the training of 33 African software developers. Also don’t forget to tune in this Sunday at 1:00PM for The African Tech Weekly show on Coders4Africa radio, as we will speak with a Senegalese coder doing his thing, and a quick trip to Ghana again this week to get the feel for the local tech scene. Now back to your regularly scheduled program:

 

Continue Reading

Infinite redirect loop when using CakePHP

You will sometimes run into this issue when using CakePHP, I did  a few times, and randomly or so it seemed and the reason is in my case, and I want to bet in most cases, is that you are using the Auth Component, and added a new action to your controller, and simply forgot to add it to the allowed functions in the Auth Component. Make sure you add the action name that you want to be made available to anyone to the Auth.allow() call in your beforeFilter() function body in the controller where the action is defined.

The African Tech News Tidbits Week of June 7th

Polyvalent Wireless Communication System

How are we all doing? Here are your ATN Tidbits for this week. By the way, I hope to count you as one of our listeners in my new weekly radio show at Coders4Africa Radio starting June 24th 2012. We will be discussing of course your weekly ATN Tidbits, discoveringCoders4Africa and getting to know more of the African Developer and Geek community. It a serious but irreverent affair and audience participation is key. You can link us up on Skype at “Coders4AfricaRadio” to participate live. My prayers and thoughts are also with all the victims and their families of the plane crash in Nigeria. Now without further “Abou” here we go:

 

Continue Reading

African Tech News Tidbits – Week of June 13th 2012

Austin Okere

Here are your African Tech News Tidbits for this week. You can follow them on Twitter using #atntidbits and you will soon find them in Audio version on the Coders4AfricaRadio show starting June 24th 2012.

  • Ghana’s MESTIncubator is a program to watch. In this TechCrunch article, we learn about how “MEST is the worlds earliest early stage startup. We invest in people even before they know how to programme or have even touched a computer.” MEST is currently home to some of Ghana’s most successful startups such as Dropifi, Retail Tower and Nandi Mobile.
  • Austin Okere was elected ICT  Personality of the Year at the Nigerian Titans of Tech Awards. The Titans of Tech annual Awards and gala was instituted in 2005. The event is designed to celebrate Hi-Tech most important movers and shakers; the Revolutionaries, Tech Superstars, Organizations and institutions that are behind the technological wind of change sweeping Nigeria towards the global information society
  • Samsung is targeting an African expansion: Its latest phone the Samsung Galaxy S3 will be released in South Africa to 50,000 pre-orders.
 

Continue Reading

African Tech News Tidbits: Week of June 20th 2012

Smart vs Feature Phone

This week’s African tech news are again full of interesting tidbits. Don’t forget to join me on Sunday June 24th for the first edition of Technofrique on Coders4Africa Radio. I will be presenting theCoders4Africa founding team as well as some of the members from around the continent.

 

Continue Reading

CakePHP: Permission denied error when trying to execute cake console command

I run both CakePHP 1.3 and 2.0 for my side projects and wanted to be able to use both console executables in my Ubuntu 11.10 dev box; I set up my aliases in my .bashrc file to point for:

Cake 1.3: alias cake=”<CAKE_FOLDER>/cake/console/cake”

Cake 2.1: alias cake2=”<CAKE_2_1_FOLDER>/app/Console/cake2″

and added the paths to the console folders where the scripts actually reside to my global PATH variable:

PATH=”<CAKE_FOLDER>/cake/console:$PATH”

PATH=”<CAKE_2_1_FOLDER>/app/Console:$PATH”

Since both Cake 1.3 and 2.1 console commands are called cake, i renamed the Cake 2 version to cake2 and gave it executable permissions:

mv cake cake2

chmod 755 cake2

So i tried running both command but kept getting a: “Permission Denied” error. I googled around and everybody else got their problem solved by either chmoding the cake script to either 755 or 777, or any of the containing folders in the script path. If you are running into this issue, first ensure that any folder in the path to the cake script has 755 permissions and that the cake script itself is 755. Mine was all halal but it was still no dice! I couldn’t execute and was still getting this permission denied issue. So i went back to Google and expanded my search outside the CakePHP fold and into permissions error in general when executing scripts and bang! I encountered a question on SO related to a similar issue that put me on the right track. My code resides on an extended partition that i mounted using the “users,user” option, and apparently doing it that way sets the “noexec” option as well which prevents the execution of binaries on the mounted partition. That was the source of my error, I edited my /etc/fstab file and added the “exec” option to the mount options. unmounted and remounted and bingo! I was in business. If you have exhausted all other possibilities, I bet this is what your issue is related to so give it a shot and make sure to comment for others if you come up with another solutions.

African Tech News Tidbits – Week of June 28th 2012

EthiopiaTecno-T3 Ethiopia's first local cellphone

As some of you may already know, last week’s edition of the Coders4Africa Radio show was cancelled due to a quite ironic power outage at the studio in Maryland but everything is back on track so make sure to tune in this Sunday July 1st at 1:00PM Eastern, 17:00 GMT for the show, hosted by myself. We will be talking to the founders of Coders4Africa, as well as some members from around the continent. And don’t worry we will be done in time to watch the Euro 2012 final . Now for what’s interesting in African Tech this week:

 

Continue Reading

African Tech News Tidbits: Week of May 30th

Kente Clothes Weaver

It’s been a month since the last iteration so there is a lot to go over. Let’s not then waste time:

  • This right here is absolutely cool, straight: Teaching algorithms through kente cloth: a case for Culturally-Situated Educational Software
  • Upcoming in December 2012 in Cote d’Ivoire, The WHUB: It’s a yearly conference and exhibition hosted by Waleya Hub, startup incubator and social business actor in Africa. The event provides with a unique opportunity to showcase a vibrant tech community in Africa and creates amazing networking experience to develop business activities and investments for the continent. This year edition of the Whub Internet and technologies conference and exhibition will take place in Abidjan, Cote d’ivoire from the 13th to the 15th of december 2012. Check it out, it will be worth it.
  • Over at Afrinnovator, a must read series if you are interested in the current state of tech opportunities in Africa as well as all the buzz that is happening about investing in Africa. It’s called “Africa:The Present Frontier” by Muchiri Nyaggah and the first two parts (“Message from Africa: Have Money“, Will Buy and “Where Opportunities Lie in the African Mobile Space” ) are available. I also liked an earlier article outlining the missing key skills in African startups by Will Mutua.
  • From VC4Africa, an interesting look at the top 5 startup trends in Africa – http://pulse.me/s/9GHO5
 

Continue Reading

Social Entrepreneurship: Make a difference

Make a difference 2012-04-09 14-18-11

In a guest post at Venture Beat, David Gorodyansky, CEO of AnchorFree, which makes Hotspot Shield, a privacy shield for internet users around the world dicusses examples of entrepreneurs around the US that founded startup whose primary mission was effecting social good as opposed to purely commercial ventures. Gorodyansky argues that:

It’s time we took a cue from innovators such as the duo behind MobiCrops, an app aimed at eradicating world hunger. New Jersey Institute of Technology graduate students Daniel Boston and Manoop Talasila developed the app as a tool to enable farmers around the world to communicate better, therefore improving their efficiency for planning and growing crops for those most in need.

“Our first goal is usually to solve the problem, not make money,” the students said.

It’s this mentality that should serve as our guide as we launch start-ups and build business plans. The world doesn’t need another mind-numbing game. It needs solutions like the ones the NJIT students devised. Once you identify a true problem and develop a means for addressing it, the money will come.

I especially agree with that last sentence and it kind off resumes my take on entrepreneurship as it related to my life goals. The primary motivation is to affect a change in the world, but honestly, I am not Mother Teresa, nor a monk so i want to take care of my family as well. The ideal venture I am working on will achieve both God willing even though it’s a hard road to trod.

African Tech News Tidbits: Week of April 10th

Startup Weekend Dakar

Back for another session of ATNT, and I got some good reads for you. This week the topics covered include disruptive technology in an African context, startups raising funds, hackathons, and a robbery/kidnapping victime saved by Twitter, yes you can believe it!

  • The always-on-point Will Mutua at AfricanBrains gives us an excellent take on the opportunities for disruptive technology in an African context, highlighting current examples of such technologies and what the opportunities in the field are. If you are looking for a good idea on a startup, you might find some inspiration there. Mutua also has a preview of theKenyan Innovation & Startup Report for 2012 available for download.
  • Talking about disruption, it pays to be disruptive as Accion, an international microfinance and investment firm, has launched Venture Lab, a $10 million investment vehicle which will provide seed capital and management support to financial inclusion startups in East Africa, focusing on those companies developing game-changing technologies and disruptive business models with the potential to transform the quality and scale of financial services available to the world’s un- and under-banked.
 

Continue Reading

Kenyan startups: As real businesses or social impact projects?

iCow

In an interesting reflection, Dinfin Mulupi over at HowWeMadeItInAfrica brings up a worry from investors in Kenya that the emphasis on social impact technology is distracting entrepreneurs from building real tech businesses. That’s a  good question to ask I believe, and legitimate from an investor point of view. As argued by Nikolai Barnwell of 88mph, an investment fund:

“[...]There are the entrepreneurs with social apps and they get a lot of media coverage. These are the people considered to be successful. There is not enough focus on businesses that make money.[...] The information is disproportionally skewed towards social impact. People are getting the idea that African tech is all about social impact.”

Sean Smith, an analyst and manager of new investments at Invested Development, concurs but with the nuance that it is possible to have both social impact innovations and profit-driven businesses in the same ecosystem provided that “entrepreneurs need to have the rigours to build sustainable businesses using the money they get. They need to have some level of discipline”. On the other side of the debate, Su Kahumbu-Stephanou sums it up nicely:

“Su Kahumbu-Stephanou, the developer of iCow, a platform that enables farmers to access agriculturaleducation and extension services, says that social impact projects play a critical role, especially in a country where millions of people live below the poverty line. “In a country like Kenya, a continent like Africa, our focus should be on poverty alleviation and impact, not money in the bank,” says Kahumbu-Stephanou.”

Furthermore, she points out that “it is incredibly important for entrepreneurs to maintain the majority shareholding in their companies, adding that receiving VC investment too early often results in the entrepreneur having little leverage”, which any startup founder can definitely agree with and I am more of this opinion. I can not discount however the point brought out by Sean Smith in that, if applicable and appropriate, social impact applications should also include a sustainable business model, because after all, the longevity and prosperity of the business affects its social impact as well. In the end, I think the startup ecosystem is reflective of the society it evolves in, and as progress is made as a whole in the Kenyan economy, the ecosystem will adapt as well to the realities of the terrain.

African Tech News Tidbits: Week of April 17th

dotAfrica

A lot happening and since my schedule cleared up a bit, let’s do a quick round of what’s been happening in the world of AfricaTech.

  • First, this is a must read by Prof. Chukwuma Charles Soludo, titled “Will Europe Underdevelop Africa Again?“, on the inequities of the new Economic Partnership Agreements or EPAs being negotiated right now between between the EU and African Countries. The first two or three paragraphs are a summary of policy talk, it might discourage you but keep on because when Soludo comes around to his own thorough and “meticulate”(meticulous and articulate) analysis of why EPAs are a bad deal for African countries, you will most certainly find a lot of gems. It is my Pick of the Week.
  • An African Renaissance is still 10 to 15 years away says Frost and Sullivan, still within my lifetime God willing!
 

Continue Reading

Titanium Studio: package org.appcelerator.titanium does not exist

After updating to the latest 2.0.1 version of Titanium Studio, i got this error while trying to deploy my applications:

package org.appcelerator.titanium does not exist

import org.appcelerator.titanium.TiStylesheet;

Followed by a bunch of other errors related to missing Titanium libraries. And in the end, that’s just what it was. For some reason, Titanium Studio had set my SDK path to an invalid value. To fix this issue, go to Window -> Preferences -> Titanium and check that the Titanium SDK Home path is set to a correct value.

The Africa Tech News Tidbits: Week of April 25th

SenMobile, Makers of Yaboy, winner of the Ericsson Application Award at the App4Africa challenge.

SenMobile, Makers of Yaboy, winner of the Ericsson Application Award at the App4Africa challenge.

Here is what has been happening in the world of African Tech this week:

  • An interview with Jason Njoku, founder of IrokoTV, known as the “netflix of Africa”. Some good insight in a young business that makes sense because the demand is there on it. On the challenges of growth in Africa, this particular nugget stood out to me:  “At present, more people watch iROKOtv in London than they do in the whole of Nigeria.”
  • Think you can’t get rich of the Tech in Africa, think again, and again, and again. You get the point? No, then read this article on 5 Kenyan Internet millionairesand weep at your self inflicted misery. Now go back to work so next time, I can list your name here too.
 

Continue Reading

Cardiopad: A Cameroonian Medical Tablet

Arthur Zang

Arthur Zang, copyright @ Agence EcoFin

Arthur Zang is a 24 year old Cameroonian who just came up withthe country’s first medical tablet, the CardioPad, which is aimed at helping diagnose heart patients. Zang explains that the tablet will help “enable remote medical exams and the transfer of those results without the patients travelling to the city where the heart doctors usually practice”. The device operates by recording the patient’s heartbeat, which is a common app feature on most of today’s smartphones, and based on an integrated heart diseases databases, transmits the recorded data to the cardiologist who can then diagnose and prescribe the appropriate medications. Zang wrote a thesis about capturing heart rate and transmitting it as a student and after studying electronics at in a Indian university, he created the tablet from Chinese parts.  The tablet he says will be useful in a country where there is  a cardiologist for every 20 million resident. He is currently looking for investment and backers, as the the table cost 1 million CFA ( $2000 US) to make but is cheaper compared to traditional electrocardiographs which costs about $5000 US .

Africa Tech News Tidbits, Week of March 5

Mobile in Africa

Mobile Users in Africa, copyright @ AgenceEcofin

Back at it, after  taking a little break due to a busy work schedule, let’s see what’s been happening in African Tech:

  • In Cameroon, a young entrepreneurjust released the Cardiopad, a medical tablet designed to help with remote diagnosis of heart problems.
  • Saya Mobile in Ghana has released a messaging competitor to WhatsApp called Saya, which killer feature is StreetChat, allowing you to chat with people in your direct proximity.
  • AfriNic (The Registry of Internet Number Resources for Africa) is currently working with the Internet society to promote and encourage a bigger African participation in the worldwide IPv6 launch initiative scheduled for June 6th 2012.
  • Today, March 7th was the last day of a 2-day conference held in Ouagadougou on the topic of “Internet infrastructure for an African Digital Economy”. This event was put together by the African Union for Telecommunications in collaboration with the ICANN, ISOC and the aforementioned AfriNic and was aimed at educating government officials and ICT regulators on Internet ecosystems and the current challenges in term of infrastructure.
  • On the topic of conferences, another was held in Zanzibar February 29th to March 1st on the topic of African mobile finance with representatives from about 39 countries, as well as banking and financials operatives from diverses African economic bodies (ECOWAS). Finance experts concluded that there are real opportunities to develop finance in informal economies by allowing the 75% of unbanked Africans to have access to banking services through the mobile platform.
  • In 2011 , First National Bank in South Africa sold 30000 Ipads and 2400 Galaxy (S smartphones) by allowing clients to break down payments in monthly installments, allowing them to boast that they sold one Ipad “every two minutes”. Everybody’s happy!
  • Etisalat Nigeria will offer the Samsung Galaxy Note for N125,000 ($795 US), not too bad…
  • For you African football fans, Goal.com has released the localized edition of its site for Nigeria.
  • Not directly tech related, but with the help of social media participation during the first round of the presidential elections in Senegal, more and more Senegalese people are calling for a public televised debatebetween the participants in the second round incumbent Abdoulaye Wade and challenger Macky Sall.
  • A recent UN report warns against an increase in electronic waste in West Africa, with 85% of it coming from domestic consumption and the remainder through imports. The dangers to the population and environment are real but collection and recycling of this waste is a job creator in itself with about 30000 people deriving income from it in Ghana for example.

That’s it for this edition, back for more next week!

Update an array property in MongoDB with multiple values

If you are working with array properties in your Mongo documents you know that by using $push you can add a value to an existing array or create one and add the value to it like:

db.test.push({name:”TechnologicalAfrican”}, {$push:{partners:”Abou Kone”}})

But let’s say you have an array like

var partners =  ["Coders4Africa", "EtriLabs", "IndexDot"]

and you want to update your array with those values, if you use $push again with the previous syntax, you will end up with a document that looks like:

{name:”TechnologicalAfrican”, partners:["Abou Kone", ["Coders4Africa", "EtriLabs", "IndexDot"] ]}

which is basically an embedded array as $push is for atomic values. Use $pushAll to add multiple values to an array like:

db.test.push({name:”TechnologicalAfrican”}, {$pushAll:{partners:["Coders4Africa", "EtriLabs", "IndexDot"] }})

This will append the new values to the “partners” property in your document as you would expect.

A list of West African brilliant startups?

Memeburn just compiled a list of 30 African startups and it’s an inspiration to see the list of business models and technologies at play. The startup scene in Africa is definitely picking up, and ideas come from all over the continent. Of course South Africa and Kenya are well represented, as well as Nigeria (TruSpot), but there are companies from Cameroon (Njorku, X-Net), Ghana (Dropifi), Zimbabwe (ForgetMeNot). What is glaringly missing from this list though is an account from other West African countries like Senegal, Cote d’Ivoire, Mali etc, and I am taking it upon myself to put such a list together (They must be out there…). If you are in West Africa and currently working on a startup, please contact me and let me know what you are doing so we can highlight it as well.

Africa Tech News Tidbits: Week of March 25th

Magatte Wade, founder of Tiossan Copyright Forbes

Magatte Wade, founder of Tiossan
Copyright Forbes

Here we are back again. Another round of African Tech news you might have missed over the past couple of weeks:

  • Forbes has an interview with Magatte Wade, a young senegalese woman who successfully started and ran a $30M business, Adina World Beverages before starting anew with a new venture, Tiossan.
  • If you ever had to deal with customer service in Africa (most probably the lack thereof), you will be excited to know that Airtel just opened the first Customer Service Academy in Africa which “will work towards equipping the Airtel customer service personnel from all 17 countries of operation, with the requisite skill set required to deliver customer service of exceptional quality.”.
  • Two good reads over at Afrinnovator: “The Road Ahead: Blueprint for Building Africa’s Tech Ecosystem” which gives a detailed analysis of the steps that need to happen to build a robust and thriving African tech ecosystem, and “Tech Startup Funding in Kenya – the Other Side of the Coin”, which exposes the side story from an investor point of view about funding startups in Kenya.
  • Over at Techloy, the editor is starting multi-part series about tech multinationals African operations and why Google is ahead of the bunch. Good analysis and the first part is an overview of the players involved.
  • In relation to the above news, Africa as a tech investment destination has been in the news lately with articles in GQ, Wired, Ars Technica all pointing to the emergence of the continent as the last “tech” frontier and a “lucrative” investment opportunity. There is a growing talk of tech colonialism and I can’t fault some Africans for being cynical, especially as you will understand from the Ars Technica article, “the instant African startups relax their insistence on guiding their own futures, someone else will step in to do it for them”. Given the story of the continent, it is important at this stage of the our story to remain firmly in control of our own destinies, and especially now that the world is a global stage and we have the means to maintain that control, it would be foolish to stand by and watch our tech resources get pillaged as easily and methodically as the mineral and other industrial kind of resources do get on a daily basis.

The Problematic Developer/Programmer Interview Process

Annoying Orange Fan Art, Copyright The Annoying Orange

Annoying Orange Fan Art, Copyright The Annoying Orange

I was going through Dzone and bumped into this article by Bozhidar Bozhanov explaining his frustration with the interview process at Facebook after being rejected after 3 phone interviews. In the article Bozhanov explains that the interview process consisted of algorithmic skills and general computer science test (recursion, binary search, basic data structures), basically “easy” stuff that any computer science grad should be able to solve and that is the rub that I personally have with those types of interviews. As Bhozanov puts it (better than I could have):

  • what you do on these interviews is something you never, ever do in real life: you write code without using any compiler or debugger. You do that in a limited time, with people watching you / waiting for you on the line. But let’s put that aside for now. Let’s assume that writing code without being able to run it is fine for interview purposes.
  • the skills that these puzzles are testing are skills that the majority of developers have never needed. Most people are writing business software, and it does not require red-black trees. What was the last time you used recursion in your business software? So the last time you’ve done anything like that is in college. And many of these problems are really simple if you are a freshman, you did them as a homework just the other day. But then it becomes a bit more tedious to write even things as simple as a binary search. Because you just didn’t do it yesterday. Of course you will be able to do it, but for a little more time, so that you can remember, and for sure by using a compiler. (By the way, the puzzles at facebook were really simple. I didn’t do them perfectly though, which is my bad, perhaps due to interview anxiety or because I just haven’t done anything like that for the past 3 years)
  • the skills tested are rarely what you will do in your daily work anyway. Even in these cool companies like Google and Facebook, there are still pretty regular projects that require coding to APIs, supporting existing code, etc. I don’t think you will be allowed to tweak the search engine in your first week, no matter how great you did on the interview
  • interview preparation is suggested and actually required before these interviews. Exactly as if it is a college exam. But that’s dumb – you don’t want people to study to match your artificial interview criteria. You want them to be…good programmers.
  • focusing on these computer science skills means these companies will probably miss good engineers that are simply not so interested in the low-level details.
 

Continue Reading

Speak Chic: Luxurious pronunciation has no price!

Speak Chic App

The Speak Chic App

I stumbled on this article from Twitter and after a chuckle, I had to post about it, both because it’s a great necessary idea, but with a great funny factor to me. Essentially after seeing foreign brand names getting their pronunciations slaughtered in countless reality shows, hip and pop songs and of course on Youtube (without forgetting obnoxious people at the mall), enter Speak Chic! For $1.99 please make sure that if you are obnoxious enough to bash people ears in with the brand names you own, at least you are pronouncing it correctly!

All jokes aside, this is a great idea and the app is designed by Rebelle a mobile app company founded by Monique Woodard whose main audience are fashion aficionados and insiders who might not always be up on the correct pronunciation for the latest names to make their appearance in the business. The app allow users to “quickly and discreetly search for the correct pronunciation, read the phonetic spelling, and listen to the audio”. Makes sense to me!

Heroku setup: “git push heroku master” permission denied ssh issue

I think i am not the only one that ran into this issue trying to set up your app into Heroku. I was trying to do so as part of following the Ruby On Rails tutorial and ran into this issue in which i sank a couple of hours. I am running on Ubuntu 11.10, and had already set up my id_rsa and id_rsa.pub keys for Github in ~/.ssh. so when I called in a terminal

heroku login

and provided my login credentials, it told me that it found my public key in ~/.ssh and uploaded to Heroku. All is fine then, but when I ran

git push heroku master

No luck there, I kept getting a :

“Permission denied (publickey). fatal: The remote end hung up unexpectedly”

After deleting my original app I had set up on Heroku, deleted my original keys and setting them up again in Github, i noticed that, contrary to before when setting up keys by running

ssh-keygen -t rsa -C  “myemail.com”

I was asked now in which directory i wanted to save the file, with the default being set to /root/.ssh/id_rsa. That was the rub! Even though Heroku picked up my public key residing in ~/.ssh, when running the git command it was still looking for it in /root/.ssh. I just copied over the keys in ~/.ssh to /root/.ssh and lo and behold, I had a working push again!

I then ran into another issue whereas, having deleted my original Heroku app, my git remote was now invalid. I had to point my git remote to a working app on Heroky. In Git to change your remote, not deleting it but just updating the url to a new one, run:

git remote set-url heroku This email address is being protected from spambots. You need JavaScript enabled to view it.:example-app-872223.git

Hope it helps!

Installing MongoDB on Ubuntu 11.10

If you’re like me new to Ubuntu, you’d rather install your software through Aptitude instead of dealing with editing various config files and moving files and archives around, so needing to get up to speed on MongoDB, i looked for a quick way to get it set up and sure enough:

http://www.stehem.net/2012/01/16/how-to-install-mongodb-on-ubuntu-11-10.html

This link will get you up and running real quick on Ubuntu 11.10 with Mongo 2.0.2 and if you are ready to start learning MongoDB, head over to NetTut’s two part tutorial on the topic:

http://net.tutsplus.com/tutorials/databases/getting-started-with-mongodb/

http://net.tutsplus.com/tutorials/databases/getting-started-with-mongodb-part-2/

Fire away!

Rails console not starting up in Ubuntu 11.10

On trying to launch the Rails console from the command line by running the “rails console” command I got this error:

/home/abou/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.22/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /media/DATA/Development/www/cakephp/cake/console in PATH, mode 040777
/home/abou/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/completion.rb:9:in `require’: no such file to load — readline (LoadError)
from /home/abou/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/completion.rb:9:in `’
from /home/abou/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.11/lib/rails/commands/console.rb:3:in `require’
from /home/abou/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.11/lib/rails/commands/console.rb:3:in `’
from /home/abou/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.11/lib/rails/commands.rb:20:in `require’
from /home/abou/.rvm/gems/ruby-1.9.2-p290@rails3tutorial/gems/railties-3.0.11/lib/rails/commands.rb:20:in `’
from script/rails:6:in `require’
from script/rails:6:in `’

Continue Reading

Speed up your CakePHP application by using Memcached

In anticipation of heavier traffic and also just for performance reasons, I’ve started looking into ways of caching data for Nouchi.Mobi. Since this is a CakePHP application, I naturally looked into PHP cache based solutions and you’d be hard pressed not be recommended Memcached(Used by Facebook, Twitter, Youtube, Flicker amongst others). Why would you want database caching? If you’re using a framework to build your application or just from building any type of decently functional custom coded dynamic application nowadays, chances are you will make numerous calls to retrieve the data you want to display (the average Drupal site issues 300/400 queries!). Some pages do actually make more SQL queries than others and caching the result of these queries would give your application a significant performance boost. Memcached is a high performance in-memory data caching system that works by storing data as key-value pairs, meaning :

  • Store the value V with the key K
  • Retrieve the Value V identified by the key K

In the context of CakePHP, follow these instructions to get Memcached up and running in your local development environment. The trickiest steps in this set up will probably enabling the memcache support in your PHP configuration (getting and enabling the php_memcache.so extension in Linux). Keep in mind that for your production environment, unless you have your own Virtual Private Server, you’d be hard pressed to find any  host that will let you run Memcached in a shared hosting environment, but this is a scaling issue, and a problem you want to have, meaning your application is getting popular. Next you’d need to enable it in CakePHP in your app/core.php

Cache::config('default', array('engine' => 'Memcache'));

Once it’s up and running what you have to remember about using caching is that it is not magic. You have to code with caching in mind, and caching works best for queries that return the same data or that don’t change often. Teknoid has a good article on explaining what I mean by that with an example. Hope that’s enough to get you started and you can also take a look at this excellent Nettuts tutorial on the matter.

African Tech Tidbits: Week of February 13th 2012

X-Net The first Cameroonian created cell phone

X-Net The first Cameroonian created cell phone

It’s the middle of the week, I’ve been busy with life and wanted to post a few articles but never got time, so  decided to start a new, hopefully weekly series of articles aggregating articles that I find interesting related to Africa and Tech. So for this week:

Over at Forbes, a list of the top 20 African Tech startups: A good variety in terms of business models and technologies, going from social networks, job portals and mobile shops/apps to payment solutions, but the overall trend is definitely in the mobile space.

 

Continue Reading

Code Hero: A video game gun that shoots Javascript?

Code Hero world

Code Hero

This was cool enough for me to mention it, Primer Labs, a company that “makes games that teach and inspire to make all knowledge playable” has release their flagship product, Code Hero. In their words:

Code Hero is a co-op first-person science shooter where you use the code gun to manipulate code. Your code gun can copy code like new items and fire it like ammunition to do new things.

You can edit new code to do anything you can imagine. You’ll learn how to blast the enemy, manipulate the world, and build structures creatively to create the games of your dreams and recruit an army of coders to save the world from rogue AI.

The game can be played without prior programming experience, but as the player skills increases in the game he or she can pick up on enough of the language to bring custom solutions to the challenges posed by the game. This is an interesting project by all means and I encourage you, especially non technical and younger people to try it out!

Lessons in unsuccessful African startup creation

In a blog entry,  developer Pascal Ehitie Aito from Nigeria shares some insight in the best ways not to create a successful startup. It is funny and definitely makes sense. Highlights:

When developing your startup idea, ask yourself, “is what I am creating a solution to a NEED or a WANT?” According to the Nigerian Bureau of statistics 60.9% of Nigerians in 2010 were living in “absolute poverty” i.e. less than $1 per day. Do you think that taking a hiatus to create a music startup to enable these people living in abject poverty listen to music amounts to a good use of your time? or “skills”?

Why would you clone when there are a myriad of problems you could develop solutions for? If you are developing a clone, ask yourself this question “why would anyone use this (***insert the name of your clone***) instead of the main thing (***insert the name of the website you cloned***)?” .

Reading too much of Techcrunch et al. These tech blogs are written by elitist white techies who live in silicon valley where the difference between over there and here is like light and day.

That last point makes sense, it’s easy to get overly enthusiastic reading the likes of TechCrunch and Venture Beat. Head over and also check out the comments on the article.

E-Learning Africa 2012 to happen in Benin

E-Learning Africa 2012

E-Learning Africa 2012 - Copyright @icw

Tech Event of note on the continent:

eLearning Africa is the continent’s largest gathering of high-level policy makers, decision makers and practitioners from education,business andgovernment. It is the key networking event for developing eLearning capacities in Africa.

eLearning Africa 2012 will take place from 23rd to 25th May in Cotonou, Benin, which has a rich cultural heritage and significant record of achievement in education over the last decade.

 

eLearning Africa 2012 is under the patronage ofHon. Max AhouêkêMinister of Communications and New Technologies, Benin.

Focusing on eLearning and Sustainability, eLearning Africa 2012 will explore creative ways in which eLearning can support development and help to build a sustainable future. eLA 2012 will focus on the key themes of sustainable technologies and infrastructure; eLearning for sustainable communities; sustainable change management; eLearning and sustainable resources; and sustainable economy, culture and society.

Git Merge/Git Difftool: Compare a file between two different branches

Moving from Subversion to Git can be hard and i ran into an issue trying to resolve conflicts in a file that was different in the two branches I work on. Since I am working on a Mac, with OSX Lion, i found these two articles to be quite useful:

How to setup Git to use Diffmerge to setup DiffMerge as your Git difftool, for Mac OSX you actually need to set the path to DiffMerge like this:

[difftool]
prompt = NO
[difftool "diffmerge"]
cmd = ~/Applications/DiffMerge.app/Contents/MacOS/DiffMerge “$LOCAL” “$REMOTE” # For DiffMerge

Using DiffMerge as your Git visual merge and diff tool provided some good examples on how to use the command git difftool

# diff the local file.m against the checked-in version
git difftool file.m

  1. diff the local file.m against the version in some-feature-branch

git difftool some-feature-branch file.m

  1. diff the file.m from the Build-54 tag to the Build-55 tag

git difftool Build-54..Build-55 file.m

This helped me resolve my issues, DiffMerge is an impressive tool, especially the three way merge, and I heavily recommend it.

More Articles ...