Tomorrow will see the world’s first commercial 4G mobile network here in Stockholm. In the beginning, it is expected that speeds will be around 50MBps and grow to around 80MBps. TELIA is currently the only operator offering it ( http://www.telia.se/4g )

With 4G, users will be able to watch live HD videos using their mobile broadband.

In my view, less connected countries like those in Sub-Saharan Africa might gain by investing in 4G wireless networks instead of spending their limited resources on outdated wired networks that come with other challenges especially when trying to expand them.

By building 4th Generation networks, African countries would be able to combine services like TV, Phone and Internet and all this using an easy to deploy wireless system. Being a new technology makes it expensive but I sure am that, with time, it will become affordable.

Ubu noneho hari uburyo buhendutse bwo kwohereza ibigendajuru by’igerageza mu kirere (Satellites). Nizere ko abanyarwanda cyane cyane abiga muri KIST na UNR Butare batazacikanwa. Aha ndatekereza nk’abanyeshuri bashobora gufatanya barangiza amasomo ya BSc cyangwa MSc bakwohereza ikigendajuru.

Image of Satellite in the Sky

Igiciro ngo ni US$ 8000 (harimo ikigendajuru ndetse no kucyohereza). Iki kigendajuru ngo kikaba gipima 13 cm (Santimetero 13) ndetse na 0.75 Kg (amagarama 750).
Iki kigendajuru kiri mu bwoko bwa LEO kikajya kuri 310 Km uvuye ku isi hanyuma ntabwo kimara igihe kirekire mu kirere kuko nyuma y’ibyumweru bike kigaruka kigashya kigakongoka kikimara kwinjira mu mwuka w’isi.

Image of CubeSat


Ntekereza ko n’ibigo nka IRST bishobora guheraho byiga uko ibigendajuru byakoreshwa mu guteza u Rwanda imbere (Biramutse bibaye “made in Rwanda” ubanza atari njye gusa byatera akanyamuneza).

Inkuru irambuye iri kuri http://www.interorbital.com/TubeSat_1.htm

There seems to be a problem with my blog. This is the second time my latest entry content gets erased. Only the content is erased leaving the title intact. I am still investigating the issue. Meanwhile, I decided to upgrade to the latest WordPress release to see if the issue gets resolved

After googling around for a plug-in to help me authenticate PHPBB3 forums against an already existing web application and finding none, I decided to write my own. I modelled it to auth_db and auth_apache and named it auth_dbext as short for authentication using DB from external source (external to PHPBB Database).

I am sharing it with others who might have a similar need and of course any improvements are welcome.

I have not implement some optional parts (see http://wiki.phpbb.com/Authentication_plugins for more info)

The login code is in the function (The full source code is at auth_dbext.phps)

[code lang="php"]
/**
* Login function
*/
function login_dbext(&$username, &$password)
{
global $db;

// do not allow empty password
if (!$password)
{
return array(
'status' => LOGIN_ERROR_PASSWORD,
'error_msg' => 'NO_PASSWORD_SUPPLIED',
'user_row' => array('user_id' => ANONYMOUS),
);
}

if (!$username)
{
return array(
'status' => LOGIN_ERROR_USERNAME,
'error_msg' => 'LOGIN_ERROR_USERNAME',
'user_row' => array('user_id' => ANONYMOUS),
);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Note: on my systems, I include these following lines from an external file that is not web-accessible
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
$db_host = "localhost"; // Here goes the MySQL server address, hostname or IP
$db_user = "username"; // Here goes the MySQL user allowed to read the table below (GRANT SELECT ON ....)
$db_password = "passwd"; // Here should go the password associated with the above user
$db_database = "dbName"; // Here goes the Database containing the table below
$db_table = "tblUsers"; // Here will goes the table list users allowed to login into PHPBB
////////////////////////////////////////////////////////////////////////////////////////////////////////////
$col_username = "username";
$col_password = "password";
$hashMethod = "sha1"; // Can be one of: md5, sha1, plain
// In case you choose to use a non-standard hashing function, be
// sure to change below where the $hashedPassword variable is created

$objMySqli = new mysqli($db_host, $db_user, $db_password, $db_database);

/* check connection */
if (mysqli_connect_errno())
{
return array(
'status' => LOGIN_ERROR_EXTERNAL_AUTH ,
'error_msg' => 'LOGIN_ERROR_EXTERNAL_AUTH ',
'user_row' => array('user_id' => ANONYMOUS),
);
}

// Check the User/Password
if($hashMethod == 'sha1')
{
$hashedPassword = sha1($password);
} elseif($hashMethod == 'md5') {
$hashedPassword = md5($password);
} else {
$hashedPassword = $password;
}
$sql =
"SELECT 11 as ID
FROM " . $db_table . "
WHERE
" . $col_username . " = '" . mysqli_real_escape_string($username) . "' AND
" . $col_password . " = '" . mysqli_real_escape_string($hashedPassword) . "'
";

if ( $result = $objMySqli->query($sql) )
{
if ( $result->num_rows <= 0 )
{
return array(
'status' => LOGIN_ERROR_USERNAME,
'error_msg' => 'LOGIN_ERROR_USERNAME',
'user_row' => array('user_id' => ANONYMOUS),
);
}

$sql = 'SELECT user_id, username, user_password, user_passchg, user_email, user_type
FROM ' . USERS_TABLE . "
WHERE username = '" . $db->sql_escape($username) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

if ($row)
{
// User inactive...
if ($row['user_type'] == USER_INACTIVE || $row['user_type'] == USER_IGNORE)
{
return array(
'status' => LOGIN_ERROR_ACTIVE,
'error_msg' => 'ACTIVE_ERROR',
'user_row' => $row,
);
}

// Successful login...
return array(
'status' => LOGIN_SUCCESS,
'error_msg' => false,
'user_row' => $row,
);
}

// this is the user's first login so create an empty profile
return array(
'status' => LOGIN_SUCCESS_CREATE_PROFILE,
'error_msg' => false,
'user_row' => user_row_dbext($username, sha1($password)),
);
} else {
// TODO: Handle this situation
}

// Not logged in using the external DB
return array(
'status' => LOGIN_ERROR_EXTERNAL_AUTH,
'error_msg' => 'LOGIN_ERROR_EXTERNAL_AUTH',
'user_row' => array('user_id' => ANONYMOUS),
);
}
[/code]

To use this plugin, copy it to the directory /includes/auth/ (the file should be /includes/auth/auth_dbext.php ) in your PHPBB3 install location. This file can be downloaded at auth_dbext.php (ZIP) or view a highlighted source file at auth_dbext.phps

After reading the 2007 ITU report on ICT Development Index, I simply realize how deep the coma of Sub-saharan Africa is. When are we going to wake up???

Nordic countries, as in many other great things, come first with Sweden taking the number-one-sit. Out of 154, Rwanda comes at an unacceptable place of 143 (falling back from 136 [year 2002] even though the index improved). It has taken the Ugandan sit which improved its rank by 3 positions. Maybe the new Ugandan Minister for Development will help improve the index even better (On a side note, when I heard the news about the Ugandan President’s wife becoming a Government Minister, I thought it was a joke but by re-checking the calendar, it was not yet April 1st).

This is not about Ranks. But these numbers should awaken people and remind us that there are other important things than Genocide and mass-killing each other.

Almost all the shameful ranks are occupied by Black-inhabited countries. Behind Rwanda comes such countries as Tanzania, Mali, DR Congo, Chad and Niger. There is probably something wrong with us and until we have unearthed it, we will continue to lag far behind.

I read a few days ago that the SEACOM fibre was landing on the shores of Kenya. Let me hope that it will not only increase bandwidth for the East African region, but also interest in the use of ICTs. But, I believe that without local content, the backbones will dry up quickly and the local population will never see the benefit of having invested so much money into it.

Discours du Roi des Belges Leopold II s’adressant aux missionaires en 1883:


[code]

Révérends pères et chers compatriotes.

La tâche qui est confiée est très délicate et demande beaucoup de tact. Vous partez certes pour évangéliser le Congo, mais cette évangélisation doit servir avant tout les intérêts de la Belgique.
L'objectif principal de votre mission au Congo n'est donc point d'apprendre aux nègres à connaître Dieu, car ils le connaîssent déjà. Ils parlent et se soumettent à un "Nzambi Pungu", un "Nzambé Mawenzi", et que sais-je encore. Ils savent que tuer, voler, coucher avec la femme d'autrui, calomnier et injurier est mauvais.
Ayons donc le courage de l'avouer, vous n'irez pas leur apprendre ce qu'ils savent déjà.
Votre rôle essentiel est de faciliter la tâche aux administratifs et aux industriels, c'est-à-dire que vous interpréterez l'Evangile de la façon qui servira au mieux nos intérêts dans cette partie du monde.
Pour ce faire vous veillerez, entre autres, à désintéresser nos sauvages des richesses dont regorgent leur sol et sous-sol, pour éviter qu'ils s'y intéressent et ne nous fassent une concurrence meurtrière et rêvent un jour de nous déloger de cette partie du monde, avant que nous nous enrichissions.

Votre connaissance de l'Evangile vous permettra de trouver des textes recommandant aux fidèles d'aimer la pauvreté, tel par exemple : "Heureux les pauvres, car le royaume des cieux leur appartient. Il est aussi difficile pour un riche de rentrer au ciel, qu'un chameau de passer dans le trou d'une aiguille, etc...".On fera donc tout pour que les nègres aient peur de s'enrichir pour mieux mériter le ciel, les soutenir petit à petit pour qu'ils ne se révoltent jamais un jour.
Les industriels et les administratifs seront obligés de se conformer à ce que je vous recommanderai. A vous, prêtres et pasteurs blancs, de temps en temps, de leur faire craindre le recours à la violence, les injures, les coups. Il ne faudrait pas que les nègres ripostent ou se nourrissent de vengeance.
Pour cela, on les enseignera par tous les moyens et vous insisterez pour qu'ils prennent exemple sur tous les saints qui ont tendu les joues, qui ont pardonné les offenses, qui ont reçu les crachats et insultes. Il faudrait les décourager et les détacher de tout ce qui pourrait leur donner le courage de nous affronter.
Je songe ici spécialement à leurs nombres fétiches de guerre, qu'ils prétendent ne point abandonner.
Votre action doit se porter essentiellement sur les jeunes afin qu'ils n'hésitent point à nous saluer, qu'ils ne se révoltent pas. Si le commandement des parents est en contradiction avec celui des missionnaires, l'enfant devra apprendre à obéir à ce que lui recommande le missionnaire qui est le père de son âme.
Insistez surtout sur la soumission et l'obéissance. Evitez de développer l'esprit critique dans vos écoles. Apprenez à vos élèves à croire et non à raisonner.

Ce sont là, cher compatriotes, quelques-uns des principes que vous appliquerez sans faille. Vous en trouverez beaucoup d'autres dans les livres et textes qui vous seront remis à la fin de cette séance. Vous y lirez donc ce que je vous recommande à vous prêtres et pasteurs blancs.
Evangélisez les noirs jusqu'à la moelle des os, afin qu'ils ne se révoltent jamais contres les injustices que vous allez leur faire subir. Faites-leur réciter chaque jour : "Heureux ceux qui pleurent, car le royaume des cieux leur appartient".
Convertissez les noirs au moyen des chicottes, gardez leurs femmes à la mission pendant neuf mois, afin qu'elles travaillent pour vous. Courtisez-les s'il le faut et exigez ensuite de ces convertis d'offrir un signe de reconnaissance, de bonne viandes - chèvres, poules, coqs et oeufs, chaque fois que vous visitez chaque village.

Faites tout pour éviter que les noirs ne deviennent jamais riches. Pour ce faire, chantez-leur chaque jour qu'il est impossible à un homme riche d'entrer dans le royaume des cieux. Faites-leur payer une taxe chaque semaine à la messe du dimanche. Détournez cet argent prétendument destiné aux pauvres pour avoir des magasins importants, là où vous êtes, paroisse, procure... Transformez ainsi vos mission en de gros centres commerciaux florissants et aidez légèrement les pauvres pour encouragez d'autres blancs à investir régulièrement.
Demandez aux noirs de mourir de faim et, vous autres mangerez cinq fois par jour.
En plus que vos ventres soient toujours plein de bonnes choses et que vos bouches exhalent partout l'odeur des oignons, instituez pour eux un système de confession qui fera de vous de bons détecteurs, ou détectives pour dénoncer tous les noirs à une prise de conscience pour la revendication de l'indépendance nationale.
Enseignez-leur une doctrine que vous ne mettrez jamais en pratique et, s'il vous demandent pour quelle raison vous avez un comportement contraire à ce que vous prêchez, répondez-leur : "Vous, les noirs, suivez ce que nous disons et non ce que nous faisons".
Et s'il répliquent en disant : " Une foi sans oeuvre est une foi morte", fâchez-vous en appliquant le fouet, et répétez leur : "Heureux ceux qui croient sans protester"

[/code]

Image by New Times of Methane extraction platform on lake KIVU

The New Times of Rwanda has a very interesting news article informing us that finally the methane gas from Lake Kivu has produced electricity. I say finally because the first time I heard about this gas was when I was still doing my primary school. At the time a teacher told us that it was a terrible gas that sucks in those who approach it and kill them making it even impossible to recover their bodies because nobody would venture to go down in the lake to bring them back.

Now, that gas is no longer a killer-only monster but has been a useful ingredient to the production of electricity: my congratulations to the team that made this dream come true. They made history.

Like the skinny kid with a funny name , I will say Yes We Can.

I hope the full scale production will not take as many years as it took since I heard about the existence of this gas. I am sure this might be a great export product.

With my need to exchange data between a ASP.NET and PHP web applications, I decided to use JSON. The .NET team did a good job by integrating JSON de/serialization into the language (NET 3.5) but they decided not to follow JSON specifications for some good reasons. Serializing an object that has a DateTime property will insert a string that won’t be understood by json_decode of PHP.

On the site of JSON, there is no such thing as a date type. I have taken the ISO 8601 path which is my preferred date format (MySQL and Swedish Locale standard)

Consider the following class:

[code lang="C#"]
[DataContract]
public class Person
{
[DataMember]
public DateTime DateOfBirth { set; get; }
[DataMember]
public string Names { set; get; }
}
[/code]

By Serializing it you will get something like

[code]

{"DateOfBirth" : "\/Date(1210408872000+0200)\/", "Names" : "Kavuna ka Lyaziga"}

[/code]

That Date is not defined as a JSON type. In case your JSON will be used directly by JavaScript or .NET (C#, VB) you will not need to write extra codes.

Muri Suwedi hari umwongereza wakatiwe igifungo cy’imyaka 15 kubera ko yaryamanye n’abakobwa benshi kandi abizi ko arwaye SIDA. Muri abo bakobwa (bagera kuri 15), babiri nibo banduye iyo SIDA bayitewe n’uwo mwicanyi wamenye ko arwaye yanduye kuva mu 1992.

Mu mategeko ya Suwedi, ni icyaha gihanirwa n’amategeko kwanduza umuntu indwara ubizi kandi ubishaka.
Ku mugabane wa Afrika yazahajwe na SIDA, mbona ko byagira akamaro cyane gushyiraho ingamba zibuza abantu kwanduza abandi. Mu Rwanda ndabizi ko hari itegeko rihana uwanduje umwana ariko niba mbyibuka neza nta tegeko rihana uwanduje umukuru. Birababaje cyane kuba umuntu abizi ko arwaye indwara idafite umuti ariko akavuga ati singomba gupfa njyenyine reka nisasire n’abandi.

Si ubwa mbere muri Suwedi umuntu urwaye SIDA ahanirwa kwanduza (cyangwa kubigerageza) kuko hari umugore umwaka ushize wahaniwe kuba yaramaranye imyaka myinshi n’umugabo we yaramuhishe ko yanduye SIDA ndetse bakanabyarana abana. Ariko ku bw’amahirwe uwo mugabo ngo ntiyigeze yandura.

This should be a lesson to all African leaders whose ideas are hardly known. We are in the digital age.

President of Iran, Mahmoud Ahmadinejad

Ahmadinejad, the President of Iran has a blog that he (himself) updates. He uses 15 minutes every week on it (reading or posting). It is accessible at http://www.ahmadinejad.ir/
I remember some months ago when the Blog of the Swedish Minister of Foreign Affairs (and former prime minister) caused controversy. This was mainly due to journalists who don’t know if the ideas on the Minister’s blog should be taken as views of his Ministry or not.
Also, the prosecutor launched an inquiry into whether the Minister breached the law when some hate comments passed several days on his blog. This was about Anti-Palestian comments posted by some visitors (readers) of the blog. Under Swedish law, such comments should be removed by the blog maintainer.

Let me hope that African leaders in general, and Rwanda, my country, in particular will in the near future set up blogs where they post regularly and let us “Baturage” post comments, suggestions and questions. That way, they will make sure that they have something interesting to blog about. And those who pass months without any post will have given a clear idea of how well they sleep at work.

Next Page »