dimanche 21 novembre 2010

La transition entre les SGBDR et les bases NoSQL



Le contenu des bases NoSQL (Not Only SQL ) n'est pas issu d'une génération spontanée. Une grande partie des informations provient des base de données 'traditionnelles'. Comment passer d'un modèle à un autre ?. Des interfaces vont devoir être développées, voici ma contribution : le module nosql.rb disponible sur Lemon-labs (github).

Ce module rassemble des informations d'une base de données (Postgresql , oracle , mysql etc ) et injecte les données dans une base NoSQL (ici couchdb).

Configuration

Le programme utilise un fichier de syntaxe YaML qui va décrire les sources, les filtres à utiliser et la cible.

Datasource:
adapter: sqlite3
database: db/development.sqlite3
poll: 5
timeout : 5000
Tables:
table_fact: projets
primarykey: id
table_dimension:
filieres:
primarykey: id
foreignkey: filiere_id
technos:
primarykey: id
foreignkey: techno_id
filters:
attributes: id
regexp: create,_id,update
append:
attribute: type,ROW
options:
NoNil: 1
target:
# output: 1
couchdb: http://localhost:5984/projets
Avec les paragraphes suivants:
  • Datasource : c'est l'accès à la base de données relationnelle. Sa syntaxe est celle ActiveRecord de Rails.
  • Table : la première partie décrit la table principale (ou table de fait) . La suivante liste toutes les tables de détails (dimension) et les champs utilisés pour les liens.
  • Filter: le programme constitue un tableau associatif pour la ligne à créer. Les filtres servent à supprimer des champs (exemple : les champs des clés primaires ou étrangères)
  • Append: Cet option ajoute des attributs fixes (exemple : type de ligne)
  • Options : fixe les règles de gestion des champs vides.
  • Target : précise la base NoSQL à charger.

Le programme va récupérer les informations sur les tables, les champs et les liens entre les tables.
Ligne par ligne, le module va entièrement dénormaliser la base pour ensuite l'injecter dans une base NoSQL.


API REST
Le module nosql.rb est associé avec un module nosqlonweb.rb qui lui ajoute un format d'API REST.



Le menu delete_row permet de supprimer toutes les entrées d'une base NoSQL sauf les documents de restitutions.

Le lancement du module web se fait par la commande :
ruby nosqlonweb.rb . Le framework utilisé est 'sinatra'.
L'API retourne ses résultats au format JSON.

Bases supportées
L'utilisation d'active record rend le programme compatible avec la majorité des bases de données. PostgreSQL, Oracle , SQLite, Mysql etc.

Les conséquences de l'annonce d'apple d'inclure une carte SIM dans ses produits


Apple travaille pour doter ses produits (surtout l'iphone) d'une carte SIM native et scellée (non amovible et non modifiable). Cette annonce à déclenchée des gros remous pas seulement dans le monde de la téléphonie. Actuellement un téléphone mobile c'est un portable et un carte SIM délivrée par un opérateur (SFR, Orange etc.) . Cette carte SIM contient deux types d'information: un numéro d'identification international unique (IMSI) et des informations de chiffrement.
Les premiers caractères d IMSI correspondent à l'identifiant de l'opérateur (comme une adresse MAC) .
Quand vous vous rendez à l'étranger:
Votre portable (SFR) se connecte à un relais (VODAFONE) et présente le IMSI , L'opérateur VODAFONE interroge un centre SFR pour savoir si vous avez l'autorisation de SFR d'utiliser votre portable à l'étranger. Si c'est le cas des accords de réciprocité existants entre les opérateurs font que vous pouvez utiliser les réseaux des autres opérateurs à l'étranger sans aucunes formalités.

Que veut faire APPLE :

Apple veux être référencé comme un opérateur téléphonique et que l'APPLE STORE serve d'intermédiaire entre vous et les opérateurs locaux.
Ainsi,il vous sera possible de choisir par le biais de l'APPLE STORE une formule de téléphone (à la journée, semaine , année etc.). Votre mobile sera considéré comme un mobile 'etranger'.

D'autant APPLE n'est pas obligé d'être un vrai opérateur. La firme peut acheter un ilot du pacifique et y mettre une antenne relais et ainsi accéder au statut d'opérateur et bénéficier des accords de réciprocités.

On comprend que cela risque de bouleverser le marché de la téléphonie. D'autant que la carte SIM intégrée permettrait d'être utilisée dans le cadre d'un réseau WIFI ou de mobile à mobile (M2M) et toujours en passant par l'APPLE STORE....
Les opérateurs traditionnels seront relégués à de simples tuyaux.

La stratégie de APPLE passe par le tiroir caisse de l'APPLE Store
Pour Google , l'objectif est plus simple: indexer du contenu et vendre des mots clés aux enchères.
Cela implique l'utilisation de leur OS android sur les mobiles, de la géolocalisation et de la segmentation des utilisateurs. Google travaille surement sur l'indexation des flux vocaux (conversation téléphonique).

jeudi 18 novembre 2010

Le web au bout des doigts:htty




Pour faire du web en ligne de commande il y a le client vintage 'lynx' , la petite commande 'wget'. Le produit le plus puissant du moment est 'curl' qui est devenu le client incontournable des API REST. Il existe maintenant un produit hybride 'htty'. Ce programme permet de faire du web en ligne de commande de manière interactive. Il fonctionne de la même manière qu'un telnet :

ex :

root@eric-1001PX:~# htty google.fr
*** Welcome to htty , the HTTP TTY. Heck To The Yeah!
http://google.fr/> cd images
http://google.fr/images> get
*** Type fol[low] to follow the 'Location' header received in the response
301 Moved Permanently -- 8 headers -- 224-character body
http://google.fr/images> body

301 Moved

301 Moved


The document has moved
here.

http://google.fr/images>



htty reconnait les commandes : cd , get body
Il permet d'examiner les entetes, les réponses, les cookies etc.





En cas d'erreur au lancement de la commande htty :
'require no such file to load -- readline (LoadError)'


faire

cd //ext/readline
2 ruby extconf.rb
3 make
4 sudo make install

jeudi 4 novembre 2010

Le grand retour du 33 tours


Je me suis rendu hier dans une FNAC et à mon grand étonnement, j'ai constaté un agrandissement important du rayon des disques vinyles 33 tours. Tous les week-end, des brocantes spécialisées sur ce thème, offrent aux nostalgiques de quoi assouvir leur passion.
(a signaler : Parc Brassens (15eme) jeudi 11/11 :5ème Marché du disque de collection)

C'est vraiment un phénomène étrange. Alors pourquoi ce renouveau ?

Pour l'objet en tant que tel :
  • Une pochette de 33 tours offre une surface et support agréable à opposer à la taille d'un CD.
  • Un disque vinyle doit se manipuler avec précaution et inspire le respect.
  • Il est facile d'établir un rapport direct entre le disque et la musique qu'il embarque. On 'voit ' la musique, l'avancement du bras de lecture sur le sillon.

Sur le mode d'écoute.
Il y a tout un rituel pour écouter un disque, il faut être patient, pas moyen de zapper facilement d'un morceau à l'autre.

ET pour les jeunes: les DJ sont restés accrochés à leurs bonnes vieilles platines , vive le scratching, geste technique sans aucune signification sur un lecteur de CD.

Les 33 tours qui sont toujours édités représentent des valeurs "sures", le ménage a été fait, il ne reste que les piliers de la musique.

Alors tous à vos platines: