Bonjour

Comme vous le savez , le Samedi  23 -02- 2013  se déroule la journée
internationale des ‘données ouvertes’  , plus connue sous le nom de
‘Open Data’ .  http://opendataday.org/ .

Qu’est ce que c’est?
Il s’agit d’une démarche globale dans le but de permettre la –Libération des données publiques et éventuellement privées — . Les buts vises sont multiples mais tous avantageux a mon sens .

En tant que développeur d’applications et citoyens , je me limiterais juste sur quelques exemples  qui a mon sens parlent plus aux professionnels
de l’Informatique .

1.  D’abord , il y’a ce que j’appelle le développement de –l’économie des
applications .

De facto une ouverture des données permettra aux développeurs de
proposer  des applications sur divers supports (Mobiles, Web,
Tablettes) aux citoyens . Toutes sortes d’application peuvent ainsi
être imaginées en fonction des données disponibles .

2 . Un travail de structuration de ces données.
Dans la philosophie de l’ouverture des données il y’a ce qu’on appelle
une notation hiérarchique de la qualité des données .

En 2010, Tim Berners-Lee a donné une échelle de qualité des données
ouvertes qui va de zéro à 5 étoiles.

★     Vos données (non filtrées c’est-à-dire dégradées) sont en ligne quel
que soit leur format (n’importe quel format)

★ ★     Vos données sont disponibles sous forme de données
structurées (
par exemple données tabulaires
en CSV, XML, Excel, RDF)

★ ★ ★     Vos données sont libres d’être exploitées juridiquement (
voir la partie sur les licences)

et techniquement dans des formats non-propriétaires (notamment pas Excel)
★ ★ ★ ★     utiliser des URL pour identifier vos données, de sorte que
l’on puisse  pointer dessus

★ ★ ★ ★ ★     lier vos données à d’autres personnes pour fournir un
contexte à ces données

Fort ce  constat , les développeurs prennent conscience que a chaque
niveau de qualité , un travail énorme doit être abattu par eux afin de
permettre aux données d’atteindre un niveau supérieur.

2 . Le troisième point qui me semble important , c’est en temps que
citoyen , j’aspire a plus de transparence dans le gestion des deniers
publiques et une confiance mutuelle entre nos gouvernants et nous .
il me semble évident que le meilleur moyen d’y parvenir est l’ouverture
des données publiques, permettant ainsi a la population de juger
, mais aussi de s impliquer dans le gestion de la cite  .

Bon assez de blabla , nous avons dit –Hackathon n’est ce pas 🙂


Pour cette journée je vous propose de travailler avec deux outils pour rendre cohérents des données qui nous allons télécharger sur le
site de l’agence de la statistique de l’état du Sénégal ( seulement
quelques Pdf  publies par les experts de cette agences) .
Nous allons faire un petit travail de catégorisation et de recherche sur ces fichiers en utilisant :

— Python
—Django
— Les données bien sures.

https://dialune.wordpress.com/

1 .Télécharger Django  sur  https://www.djangoproject.com/

Installing an official release manually
Download the latest release from our download page.
Untar the downloaded file (e.g. tar xzvf Django-X.Y.tar.gz, where X.Y is
the version number of the latest release).
If you’re using Windows, you can download the command-line tool bsdtar to do this,
or you can use a GUI-based tool such as 7-zip.
Change into the directory created in step 2 (e.g. cd Django-X.Y).
If you’re using Linux, Mac OS X or some other flavor of Unix, enter the command
sudo python setup.py install at the shell prompt. If you’re using Windows,
start a command shell with administrator privileges and run the command
python setup.py install.
This will install Django in your Python installation’s site-packages directory.

Verifying

>>> import django
>>> print django.get_version()

2 . Creer un project nome dakar-open-data-hackathon
django-admin.py startproject  dakar-open-data-hackathon

2 . Telecharger les trois applications de tests sur github.

https://github.com/aliounedia/dakar-open-data-hackathon

3. Remplacer votre settings.py et votre  urls.py par ceux qui sont ici
https://github.com/aliounedia/dakar-open-data-hackathon/tree/master/open_data

4 .Supprimer  les applications dont vous n’avez pas besion dans settings.py
INSTALLED_APPS

5. Demarrer  votre serveur de test python manage.py runserver

6. Allez dans http://localhost/hackathon

Image1

Image2

Image3
A+

Publicité

INTERFACE AVEC FTPLIB

le but de ce tutoral est de vous familiariser avec le protocole FTP (File Transfert Protocole), qui est un protocole de transfert de fichiers généralement utilisé par les Web Master pour mettre a jour leurs sites sur les serveurs hébergements. Cependant le protocole FTP peut être utilisé à d’autres fins plus importants par exemple dans l’échange de données entre deux clients (entreprises). Les grandes entreprises sont très retentissantes à partager leurs bases de données avec d’autres clients quelque que soit le juteux marcher qui les lit . A juste titre car la corruption des données ou leurs perte peut tout simplement ruiner une entreprises , et le licenciement de  ses employés ne serait que une question de semaines . Pour toutes ces raisons  il faut trouver un  espace de partage de données

entres les deux clients tout en permettant à chacun de garder précieusement ses bases de données.

Le protocole FTP permet alors de regeler ce problème puisque c’est un ensemble de spécifications que les deux parties peuvent implémenter chacun de son cote (interfaces et Fonctions).

L’exemple suivant traitent le retrait des informations depuis un serveur FTP, chaque partie

est alors libre de traiter les données trouvées sur le FTP et une fois le traitement terminé de le déposer pour l’autre partie .Je ne maitrise pas les autres langages de programmation , mais  sachez

que vous pouvez implémenter le FTP sur tous les grands  langages de programmations (Perls, Ruby, Python.., sh ).

Cet exemple montre comment se connecter et extraire quelques fichier d’un FTP dans un dossier local.

https://github.com/aliounedia/degeer/tree/master/degeer

https://github.com/aliounedia/degeer/blob/master/degeer/ftp_client.py

Noter que ftplib est un pure module python  (dans la librairie standard)

A+ 🙂

GNOKII

Gnokii est un outil permettant de manager un modem, vous pouvez envoyer
,recevoir des sms, passer des appels….Il est libre. En plus il peux être télécharger
gratuitement sur le site http://gnokii.org/.
Voici un petite application gnokii , qui est combiné avec du Django/JQuery.
Cette application reçoit des sms et  envoi une réponse ‘Merci d’avoir envoyer un message a Gnokii Dakar’.
Cette application est basique , mais peu être un point de départ pour programmer des applications
plus complexes [1]
https://github.com/Dakarlug/django_gnokii

MQ

MQ

DJANGO SIGNALS

Le but de ce tutoriel  est de vous montrer  une fonctionnalité intéressante sous Django appelé *signals* .
L’utilisation des signals  sous  django permet plusieurs choses :
Respecter Le Principe DRY.La plupart des frameworks modernes DJANGO  ,Rails veillent au respect de
ce principe  (Éviter de se répéter lorsque vous programmer  un Logiciel) .Plusieurs raisons peuvent
amener le développeur de ne pas le respecter (Délais de livraison trop courts ,projet  mal dimensionné ,
).La duplication du code est extrêmement dangereux car les conséquences sont sur le longs
termes.
Le développeur laisse en héritage du code très très mauvais, voir inutilisable .Une seule modification
doit être répercuté mille fois pour que le logiciel remarche ,c’est très mauvais.
Le principe DRY vous permet de coder une seule fois et de faire mouche a jamais .N’importe qui
peux étendre votre code sans grande difficulté.
DJANGO permet a bien des égards de voir l’application de ce principe  , le *signal* en est un.

Problème:
Imaginons le problème suivant,le développeur veux que lorsque une requête est passé
effectué une tache  bien définit.Deux solution s’offre a vous la plus sale est
de coder en dur  et sur chaque vue le même code :

def my_views()
 » »
 » »
mon code bla bla
def my_views2()
 » »
 » »
mon code bla bla

Il ne faut jamais faire ça c’est très mauvais.
La deuxième solution plus ou moins élégante est de définir une fonction quelque part
que vous appeler a chaque fois de besoin ( Ce n’est pas bon , vous perdez en découplage)
La solution idéale  est d’utiliser le *signal*  sous django .Le principe est
très simple : j’exécute quelque chose quand quelque chose se passe quelque part
dans l’application 😉

Cette exemple suivant [1]  permet par exemple de créer un fichier file.log et d’y écrire
la requête et la date a chaque fois que l’utilisateur accédé  a votre application.
[1] – https://github.com/aliounedia/django_tools/blob/master/learn_signals/

Jquery stats UI

Jquery est puissant tout le monde le sais , de ce fait toute api conçue au dessous est puissant .
Les gens ont changé complètement la façon de faire du du JavaScript , avec Jquery même moi qui suit
pourtant un piètre programmeur jQuery  je m’ose m’ aventurer  dans le ce monde .

Je le disait dans mes posts  précèdents  que programmer  jQuery c’est comme faire du python car
tout est object (list ,__dict__, set).

J’ai parlé récemment sur mon blog  d’une api qui trace des graphes cote clients  et qui est
conçues au dessus de jquery qui se nomme Jqplot.J’en parle souvent car les gens pour les
quels je travaille en général sont obsédés par les graphes et les statistiques il veulent
tout tracer.

Mais quand on vous fatigue  a faire des graphes dans les logiciels penser a Jqplot , de la
même maniéré que quand on vous harcèle a livrer un projet en 48 heures ,vous penser
naturellement and Django

Voici un petit , mais vraiment un tout petit aperçu de ceux qu’on peut faire avec .N’ hésiter
pas a aller sur le site car il est libre et gratuit 😉

Indicateur

Lorsque un bailleurs de fond travaille avec une ONG , l’évaluation des objectifs
se fait via ce qu’on appelle des indicateurs , Un projet visant à améliorer le taux
alphabétisation pourra ainsi avoir comme indicateur (Le taux de scolarisation des filles
, le nombres de filles de 12 ans ayant abandonné l’école , etc , …..)

L’ONG Tostan dispose de plusieurs logiciels d’évaluation des projets de bailleurs , mais
aujourd’hui l’objectif est de renforcer ces outils d’évaluations de prédictions mais surtout
de justifications des objectifs vis a vis des bailleurs .

C’est dans cette optique que nous essayons de mettre sous pieds un projet appelé (indicateurs)
.Ce logiciel doit pouvoir générer n’importe qu’elle type de projet de bailleurs  , mais
doit également être souple afin d’intégrer dans le temps n’importe qu’elle type d’indicateurs
.il doit egaelement pouvoir communiquer avec RapidSuivi le nouveau système de monitoring en temps réel
de ONG .

En bref voici un appercu de ce que nous essayons de faire 😉

 

 

RapidSuivi Testé dans les regions

Tostan , une ONG  américaine  déploie son système RapidSuivi sur le terrain .Après quelques semaines de codes voici les testes qui seront réalisés sur le terrain par les employés dans les différentes régions du senegal et dans la sous région .

http://www.jokkoinitiative.org/

RapidSuivi est un  système de monitoring en temps réel qui trace l’ensemble des activités  aux seins des villages dans les quels l’ONG tostan est présente .Les activités aux seins des communautés sont diverses (Sensibilisation , Vaccination , Mobilisation , transaction financière ).Tout ce qui se passe dans les village ne doit pas échapper au système RapidSuivi .

Le Système fonctionne comme un entrepôt d’information  , stockant toutes les informations reçues dans des bases de données centralisées  et disponibles pour le Département de suivi et évaluation de Tostan .

Le système interprète les données qu’il reçoit sous forme codée et le traduit dans un langage compréhensible par les différents acteurs .

Un Système de Monitoring et de statistiques est embarqué dans le système permettant de recouper toutes les informations .

http://github.com/tostan/rapidsms-tostan/blob/master/apps/rapidsuivi/

 

qtip Gadget & Django auto scape

Salut
Aujourd’hui je parlais de gadgets ,_qtip_ une bibliothèque jquery permettant
d’afficher des informations sur votre page web suivant les évènements _survole de la souris_
,_click_.Vous pouvez l’utiliser pour avoir des rendus plus ou moins jolis sur vos pages html.

Aussi django fait du auto scape automatiquement ,ce qui veut dire que si vous utilisez du HTML

dans un views.py django  le HTML rendu a votre JQUERY sera auto scapé , pour eviter cela

vous devez utilisez  {{my_var | safe}}  , et my_var contient votre code html retouné par votre

vue django.

Un exemple d’utilisation est disponible    ici

Vous pouvez télécharger qtip       ici  qtip

a + 😉

Django & Jquery data communication

Salut 😉

Salut a tous les lecteurs de ce blog , salut aux développeurs.La question que l’on se pose très souvent c’est
comment je peux interagir avec django et jquery , de manière a pouvoir parser les données retournées par django
sous jquery.La première chose a savoir c’est que jQuery comme django (python je veux dire est typé) , ce qui
veut dire que les type comme __dict__ ,__list__, __string__ existe aussi bien sous python et sous jquery.
Ainsi lorsque vous exécutez le code suivant

context = [
{« un » : 1 },
{« deux »:2}
]

return  render_to_response (request , context , template)

Le code ci dessus se trouve généralement dans une __view__ django , ce qui veut en terme claire que django est entrain de passer a votre  template un __dictionnaire__.

Maintenant la grande question est comment sous jquery je peux parser ce code et l’utiliser sans problème .la réponse a cette question est extrêmement simple  , trop même.

Je vous avez dit tout a l’heure que jquery comme django est type et de plus le django template système peut être manipulé sans probleme sous jquery .

{% for village in villages %}
var point = new GLatLng(« {{ village.gmap_latitude }} », »{{ village.gmap_longitude }} »);
var marker = new LabeledMarker(point,
{ « labelText »: « {{ village.name }} »,
« labelClass »: « caption »,
« icon »: sprite2()
});
marker.bindInfoWindow(« <div><ul><li>Village :{{ village.name}}</li><li>Relay :{{     village.name}}</li><i>Message: {{ village.name}}</li></ul></div> »);
map.addOverlay(marker);
{% endfor %}

Le bout de code ci dessus par exemple parcours un __dictionnaire__  de villages dans un script Jquery.vous voyez par exemple que on peut créer un dictionnaire jQuery a partir des valeurs retournées par  la vue.L »exemple concret ci dessous me permet de positionner sur google map des villages , et des données comme les  sms  envoyés  depuis ces  villages .
Sachez donc que jquery lorsqu’il est combiné avec django peut faire plein de choses;)