samedi 23 janvier 2010

Le casse-tête de la compatibilité de navigateurs

Lorsqu'on développe une application WEB, on se trouve tot ou tard confronté au problème de la compatibilité du navigateur du poste client. Situation qui s'aggrave avec le l'essor des smartphones. D'autres facteurs sont à prendre en compte comme l'arrivée de la norme HTML5, la progression inéluctable de l'utilisation du javascript et d'Ajax. La place du développement javascript va devenir prédominante dans les prochaines années, dopée par la puissance du moteur javascript. 2009 a été l'année ou la puissance d'une application javascript a dépassé celle d'une application WEB classique.
Il est difficile d'avoir des pages qui se comportent de la même manière dans tous les navigateurs. Je ne parle pas de l'incompatibilité des versions IE entres elles (IE6 restera le plus mauvais navigateur de tous les temps, Firefox peut lui dire merci).

Le blog http://webdesignledger.com/ dresse la liste d'outil pour tester un site web avec différents OS/Navigateur. L'article est ici (suivre ce lien).

J'ai testé http://browsershots.org/ sur l'adresse http://germanlinux.blogspot.com
Il est possible de choisir les associations OS-Navigateur-Version.
Voici les copies d'écran:
(clic pour élargir)

Les résultats s'affichent au fur et à mesure
(clic pour élargir)


Le traitement peut durer plus d'une heure en fonction du nombre de combinaisons.
Par contre, le test d'un site INTRANET reste impossible avec cet outil.
Mes conseils pour avoir une compatibilité maximum :
  • Remettre les marges à zéro par le biais des feuilles de style.
  • Utiliser des librairies javascripts reconnues et non pas des montages personnels.
La détection rapide au plus près de la phase de développement est préférable. Un coefficient multiplicateur par 10 s'applique pour chaque phase suivante.

jeudi 21 janvier 2010

Les règles de base du management cours 101



La Geeks world domination commence par la prise de contrôle des leviers du pouvoir: Ne restez pas devant votre clavier, le yeux rivés sur votre code, ou sur le dernier épisode de Big Bang théory, NON , levez vous et participez .


J'ai investi dans des livres de management. En faisant ce raisonnement simple:
S'il est possible d'arriver à comprendre comment configurer un serveur sendmail grâce à un livre, tout peut s'apprendre de cette manière.

Relevé sur un forum :

Je veux bien t'expliquer ce que je sais de sendmail, mais je n'en connais qu'une toute petite partie. Je n'utilise sendmail que lorsque l'on ne peut pas faire autrement (sendmail déjà installé et personne n'ose s'y aventurer, mais on ose pas le remplacer). Sendmail est historiquement le pionnier, je l'ai déjà utilisé sous Unix V, et il est très complet et très complexe. (Voir ici. configurer sendmail plus d'une fois rend fou
Chez o'reilly :
le livre sendmail fait 1232 pages.
le livre postfix 285 pages.

Dernière modification par pmarion (01/04/2008 15:54:18)


J'ai les livres "le management pour les nuls" , "100 trucs pour bien manager" etc , bref la collection de base.

Voici un début relevé sur un site US :

Quelques règles de management:

1) Déléguez et laissez faire les gens à leur façon
2) Gérez plus par les résultats que sur la manière de faire
3) Donnez toute la latitude au personnel pour faire les choses
4) Ayez confiance dans le jugement des gens qui sont compétents dans leur domaine
5) Gérez l'intendance et laissez les tranquilles
6) Donnez leur des objectifs
7) Soyez ouvert aux idées et aux suggestions
8) Félicitez les pour leur réussite
9) Laissez les faire des erreurs et en tirer les enseignements
10) Déchargez les des taches de gestion administratives
11) Ne soyez pas intrusif
12) Respectez les gens
13) Favorisez la diffusion des informations
14) Faire évoluer les personnels sur des nouveaux projets.
15) Encouragez les actions de formation croisées.


La liste est trop longue, je vais commencer par la règle numéro 1:

1) Écouter les gens.

Écouter, ce n'est pas:

  • Commencer par réfléchir à une réponse pendant que l'autre personne parle.
  • Chercher à avoir le dernier mot.
  • Faire autre chose pendant qu'on vous parle

C'est plutot:
  • Etre attentif !
  • A la fin faire une synthèse pour soi de ce que l'on vient d'entendre.

Chacun à quelque chose d'intéressant à dire. Celui qui parle n'écoute pas.

lundi 18 janvier 2010

Talend , après les ETL, le MDM

ETL c'est :Extract, transform and load, extraction, transformation et chargement de données, le MDM (Master data management, gestion des données de référence) est l'étage superieur de la fusée. C'est la gestion de tout le cycle de la donnée, comme la tracabilité, les indicateurs de qualité de la donnée, le référentiel des données, la modélisation et la gestion des Métadonnées.

L'idée est de considérer la donnée d'un point de vue industriel. C'est à la fois une ressource et un produit manufacturé. Avec des problèmes de gestion de stock, de fabrication, de diffusion ou de protection.

(Source le monde informatique)

dimanche 17 janvier 2010

Comment les éditeurs se préparent à conquérir le marché des réseaux sociaux et collaboratifs professionnels

La société SAP lance des offensives pour se placer sur le marché des outils collaboratifs à destination des professionnels.
Par exemple son produit SNA Social Network Analyser







Les sources sont par exemple un annuaire LDAP d'entreprise.
Avec une démonstration en ligne ici.

Autre projet SAP :
SAP’s 12sprints, outil collaboratif (partage de données et de document) (le lien ici)




SAP offre aussi un utilitaire gratuit pour intégrer des composants twitter dans une présentation powerpoint (lien ici).



Pour rappel SAP prépare une offre globale avec le projet ARSA à destination des collectivités territoriales.

De son coté la firme tibco lance son produit 'tibbr' qui est un twitter d'entreprise. Il permet outre les fonctions de microblogging d'échanger des messages avec des applicatifs ou des serveurs.



IBM, pousse son produit 'Lotus Connections' qui englobe 5 composants à destination du WEB 2.0 dans l'entreprise, article à lire :"IBM introduit dans l'entreprise les outils du Web 2.0"
Source: Le Monde informatique.

Interface Sinatra en #ruby pour #twitter


Sinatra (lien ici) est un framework léger pour ruby. Léger n'est pas un terme galvaudé pour un framework de moins de 2000 lignes de code. Il repose sur le produit 'Rack' pour la partie serveur WEB.

L'installation se fait par un gemme : gem install sinatra

Et voci le code d'une page minimaliste:
a) Lancer le programme suivant:
(imsinatra.rb)
require 'rubygems'
require 'sinatra'
get '/' do
"Hello,I'm Sinatra!"
end

Puis pointer votre navigateur sur
http://localhost:4567
Sinatra n'est un framework MVC comme Rails , simplement il décompose et traduit une URL en appel de fonction du programme en Ruby.

Le programme en question est composé de clause de type
'ordre HTTP' 'motif' do
#some actions here
end

Ex :
get '/about' do
"exemple de page"
end

Un peu à la manière des langages fonctionnel, c'est la première reconnaissance de motif valide qui traitera la requête. Il faut donc veiller bien ordonnée ses clauses.
Le système est construit sur des routes de type REST, à savoir:
L'url /projets/lemonldap pourra est interceptée par :
get '/projets:nom_du_projet'
#ici la variable params[:nom_du_projet] aura la valeur "lemonldap"


Il est possible d'enrichir la recherche de motif par l'utilisation de mot clé comme :capture combiné avec des expressions régulières.
Ex: get %r{motif_a_rechercher}
puis params[:captures]

Et d'utiliser des caractères 'joker' comme '*' avec le symbole :splat

La reconnaissance de motif peut s'utiliser en conjonction avec le contenu des entêtes HTTP comme par exemple le header 'User-Agent' lié à la variable :agent , et le header 'accept' lié au symbole :provides.
Il est possible d'appeler des vues et des templates depuis un script Sinatra et même de se servir Activerecord pour gérer ses accès aux bases de données. C'est peut là où doit s'arrêter l'usage de Sinatra pour passer à une infrastructure MVC avec Ruby On Rails.
A mon avis Sinatra doit être réservé à l'écriture d'interface web de configuration ou comme frontal à des applications sans base de données.
On peut l'utiliser pour visualiser les tweets collectés sur l'échantillon twitter.

voici un exemple:
On commence par lancer la commande curl de cette manière:
rl http://stream.twitter.com/1/statuses/sample.json -uuser:password -o /tmp/twitter.json


Puis lancer le script suivant:


#!/usr/bin/ruby
require 'rubygems'
require 'json'
require 'tweet'
require 'sinatra'
get '/' do
chaine="<html><body>"
File.open("/tmp/twitter.json" ).each_line do |line|
line.chomp!

next if !line[-1].respond_to?(:chr)

if (line[-1].chr == "}") then
jo= JSON.parse(line)
my_tweet=Tweet.new do |t|
t.tweet = jo
end
if (my_tweet.text) then
chaine += "<p><hr>"
chaine += my_tweet.user["screen_name"]
chaine +="(#{my_tweet.user["followers_count"]}):"
chaine += my_tweet.text

end
end
end
chaine+="</body></html>"
chaine
end

(remarque : la classe 'tweet' a déja détaillée dans des posts précédents)
Ci tout va bien vous devez voir ceci :(clic pour élargir)



Ou ce bon message d'erreur:(clic pour élargir)

jeudi 14 janvier 2010

La cartes des évolutions des bases de données et du web 2.0



Je me suis amusé à dresser une carte freemind des différents systèmes de base de données. Le web 2.0 à poussé le jusqu'au bout de leurs limites les bases de données relationnelles. Les réseaux sociaux ont fait voler en éclat les limites du volume des données et des requetes. Les SGBDR semblent en recul au profit de système plus adapter au stockage de contenu documentaire taggé.

Mais il manque sur cette carte le système utilisé par twitter. Mais est ce que twitter a vraiment besoin d'une base de données ?. Le fonctionnement s'apparente plus à un logiciel de messagerie avec des files d'attente. Question à creuser

Les systèmes prometteurs :
couchDB et mongoDB
Ici un lien de comparaison. entre les deux bases.

mardi 12 janvier 2010

Les interfaces de twitter (API) #twitter




Le circuit sur twitter est le suivant:
a) Un message arrive sur le réseau Twitter.
b) Il est injecté dans la base de données Twitter
c) S'il répond à certains critères (réputation,pertinance,hastag ) il est rentré dans la base de recherche.
I) Le 'sample' est l'échantillonnage offert aux utilisateurs de twitter ('gardenhose')
II) Le 'filter' est l'interface de recherche basé sur des mots clés , de la geolocalisation, tous les tweets sont candidats à cette recherche.

Il faut ajouter à cela le 'firehose' qui est flux issu directement des tweets (plus exhautif que le sample).

Ceci est issu du blog suivant:Social Media Analytics Research Toolkit