A5.2.2 Veille technologique

C.5.2.2.1 Définir une stratégie de recherche d’informations

C.5.2.2.2 Tenir à jour une liste de sources d’information

C.5.2.2.3 Évaluer la qualité d’une source d’information en fonction d’un besoin

C.5.2.2.4 Synthétiser et diffuser les résultats d’une veille

Pourquoi faire de la veille technologique?

Tout d’abord, il va falloir se demander pourquoi on souhaite mettre en place une veille technologique.

Évidemment, nous avons tous de bonnes raisons d’assurer une veille technologique à titre personnel ou professionnel. Les objectifs sont :

  • Diffusion d’information à un large public
  • Préparation d’une formation
  • Préparation d’un projet d’entreprise
  • Recherche de nouveaux outils
  • Recherche d’emploi ou changement de carrière
  • Suivi de nouvelles tendances
  • Marketing
  • Recherche et développement

Après analyse, qu’est ce qu’on garde ?

Une fois vos sources définies, un outil (ou plusieurs) vont être mis en place pour récupérer les informations, les centraliser et les trier.

Quelles sources utiliser ?

Les flux RSS/Atom et leurs limites

L’agrégateur de flux est un outil incontournable de la veille technologique.

Il peut être en client lourd comme Thunderbird et autres clients de messagerie.

Il peut être installé en tant qu’application Web de sorte qu’on puisse y accéder de n’importe quel type (PC, téléphone, tablette tactile). C’est le cas de Leed, RSSLounge ou encore TinyTinyRSS (applications clientes pour smartphone).

Réseaux sociaux

Twitter, Google+ et Facebook sont des outils efficaces pour la veille. Du côté du libre, il existe les plus connus StatusNet, Identica et Diaspora.

Alertes Google

Elles permettent de vous alerter par email de la publication de nouveaux articles contenant les mots-clefs que vous aurez saisis.

Présentation

python-logo

rossem-aangepastIMG_2192Guido van Rossum est le principal auteur de Python.En 1989, profitant d’une semaine de vacances durant les fêtes de Noël, il écrit la première version du langage. Fan de la série télévisée des Monty Python, il décide de baptiser ce projet Python.

Publié dans sa première version en 1991, Python est un langage de haut niveau élégant, portable et extensible qui vous permettra de créer du code lisible, selon l’un des paradigmes de programmation que vous maîtrisez.

Langage de programmation orienté objet et interprété

L’une des principales caractéristiques de Python est qu’il est orienté objet (il permet donc la POO : programmation orientée objet), mais pas seulement. En effet, la programmation objet n’est pas strictement obligatoire en Python.

Il permet le développement de scripts pour des pages web dynamiques et des applications client-serveur, comme PHP et Java.

Python est un langage interprété : à l’image du PHP, un programme Python ne nécessite pas d’étape de compilation en langage machine pour fonctionner. Le code est interprété à l’exécution. Python présente néanmoins une caractéristique intéressante : comme en Java, le code Python est compilé en bytecode (format intermédiaire) avant lancement, ce qui optimise ses performances.

Python est doté d’un typage dynamique fort : cela signifie que le typage, bien que non vérifié lors de la « compilation », Python effectue des vérifications de cohérence sur les types manipulés, et permet de transformer explicitement une variable d’un type à l’autre.

Python est placé sous licence libre.

Python : un langage lisible et concis

Plaisir des yeux : le code Python est beau.

Particularité importante : Python n’utilise pas d’accolades ou d’autres délimiteurs (begin/end…) pour repérer les blocs d’un programme, mais l’indentation.

Un exemple vaut mieux que mille mots : en fonction d’une liste de valeurs, nous souhaitons savoir celles qui sont des nombres pairs et celles qui ne le sont pas.

Langage Php et Python

PHP    if($a == $b) { echo « true »; } else { echo « false »; }

Python      print « true » if a == b else « false »

PHP

array(4) {
  [0]=>
  bool(false)
  [1]=>
  bool(true)
  [2]=>
  bool(false)
  [3]=>
  bool(false)
}

Python

def valeurs_paires(liste_valeurs):
    return [(False if v % 2 else True) for v in liste_valeurs]

print valeurs_paires([51, 8, 85, 9])
[False, True, False, False]

Les points attirant du Python

  • Qualité L’utilisation de Python permet de produire facilement du code évolutif et maintenable et offre les avantages de la programmation orientée-objet.
  • Productivité Python permet de produire rapidement du code compréhensible en reléguant nombre de détails au niveau de l’interpréteur.
  • Portabilité La disponibilité de l’interpréteur sur de nombreuses plates-formes permet l’exécution du même code sur une tablette ou smartphone.
  • Intégration L’utilisation de Python est parfaitement adaptée l’intégration de composants écrit dans un autre langage de programmation (C, C++, Java avec Jython). Embarquer un interpréteur dans une application permet l’intégration de scripts Python au sein de programmes.
  • Une très grande variété d’applications

Python a cette force de réussir à fédérer des profils d’informaticiens assez différents.

Parlez par exemple à un administrateur système, il y a fort à parier qu’il connaisse Python et le pratique régulièrement. Parlez à un développeur généraliste qui utilise Sublime Text comme éditeur tout terrain : Python lui est familier en tant que langage d’automatisation, de script et de macros au sein de cet éditeur. Parlez à un développeur d’application web : il ne sera pas sans connaître, au moins de nom et de réputation, des frameworks de développement web comme Django, Flask, Pyramid (Pylons)

Bref, on utilise Python partout, dans une grande variété de contextes et d’application. En découle une communauté très large, une grande diversité de librairies disponibles et une excellente maturité du langage.

Les points décevants du Python

  • Python est plus lent que C++ d’un ou deux ordres de grandeur. Si un algorithme simple qui s’exécute efficacement assez en C++ peut expirer en cas d’implémentation en Python.

Qui utilise Python ?

  • Nasa
  • Yahoo (Yahoo!mail)
  • Microsoft (E-Commerce)
  • Infoseek (Ultraseek)
  • SGMLTools 2.0, KSpread, Vim 5…
  • Mailman, le gestionnaire de listes de diffusion GNU
  • Projet Computer Programming for Everybody (DARPA)

Hebergement web :

  • Google App Engine
  • immotion hosting
  • OSiteGround
  • Ex2 hosting
  • 1HEBERGEMENT

Diagramme des concurrents ?

Afficher l'image d'origine

Présentation

django-neg-sh-600x600

C’est quoi un framework !

Les informaticiens emploient fréquemment le mot framework, pour parler d’une boite à outil.

Traduit litéralement, le mot anglais framework signie « cadre de travail ».                               Un framework de développement est donc :

  • un ensemble cohérent de composants éprouvés et réutilisables (bibliothèques, classes, helpers…) ;
  • un ensemble de préconisations pour la conception et le développement d’applications.

Pourquoi utiliser un framework ? Avantages…

  • Ne pas réécrire ce que d’autres ont déjà écrit (et testé).
  • Un framework vous donne les bonnes pratiques encouragées par les développeurs expérimentés.
  • Augmenter la production d’un site internet
  • Profiter des mise à jour concernant la sécurité de l’application.

Histoire de Django

Dans ces premières utilisations, Django a été écrit pour un journal local de la ville de Lawrence à partir de 2003.

Le besoin du journal était de développer des sites web avec beaucoup de contenu, avec une base de données, dans un temps court afin de répondre aux contraintes des journalistes.

Le framework a été nommé en souvenir d’un célèbre musicien de jazz Django Reinhardt.

Un framework « web »

Avant toute chose, il faut comprendre ce qu’est Django, et pouvoir le situer dans l’écosystème des frameworks de développement.

Django intervient pour la création d’applications web, et sa conception est caractéristique de ce genre de framework : il s’articule complètement autour du pattern logiciel MVC (Model/View/Controller, en français : modèle/vue/contrôleur).

Un framework avec des principes !

Django prend clairement le parti d’encourager très fortement le programmeur à écrire le moins de code possible, le plus réuilisable possible. Ces objectifs se traduisent concrètement par :

  • des helpers et autres outils pratiques pour ne pas se répéter (DRY : Don’t Repeat Yourself) ;

Des atouts séduisants : quelques points forts de Django

  • Productivité Django permet de produire rapidement tout type de site internet

Un moteur de template très puissant implémentant un concept d’héritage de templates, à la syntaxe élégante, qui a fait des émules (h2o-php, Jangod…)

  • Standardisation des taches Django fournit les bonnes pratiques à acquérir

La documentation : Django possède une très bonne documentation anglaise. (dont un effort de traduction en français de l’API stabilisé22) Cette documentation, au format ReStructuredText (ReST), est compatible avec le projet Sphinx.

  • Efficience et Efficacité Django fournit des outils permettant de diminuer les ressources humaines et le temps de développement:

Un ORM (Object Relational Mapper) défiant toute concurrence en matière de simplicité, d’élégance de syntaxe, et présentant des performances très honorables

Une gestion du routage d’URL (contrôleur frontal des applications) élégante, fondée sur les paterns d’expressions régulières nommés de Python

  • Qualité Django fait des mise à jour afin d’avoir un code évolutif et maintenable et offre l’ avantages d’un contrôle de la sécurité des sites internets

Django propose une nouvelle version tous les 6 mois.

  •  Confiance Une imposante communauté qui soutienne et fournisse des réponses aux nouveaux utilisateurs, Django est devenu populaire et s’impose sur le marché.

Des choix strategiques : quelques points faibles de django

  • L’AJAX : Django en tant que framework ne permet pas, seul, l’intégration d’AJAX côté client web. Ceci est un choix de l’équipe de développement qui préfère laisser à l’utilisateur le choix de la bibliothèque AJAX à combiner avec Django (MooTools, Prototype, jQuery, dojo, etc.).
  • Migrations : Avant la version 1.7, il n’y avait pas d’outil intégré au framework pour gérer les migrations lors des modifications des modèles. Mais des applications Django permettaient de pallier ce manque, notamment South.

Qui utilise Django ?

Voici quelques noms de sites très connus développés à l’aide de Django :
  • Instagram, Facebook
  • Pinterest, site web américain mélangeant les concepts des réseaux sociaux et de partage de photographies. Il permet à ses utilisateurs de partager leurs centres d’intérêts, passions à travers des albums de photographies.
  • GiantBomb, site web américain publiant toutes les actualités concernant les jeux vidéos (tests, astuces, vidéos, forums, communautés, etc…)

  • Winamax, site de poker et paris sportifs en ligne

  • Libération, journal français

  • WashingtonPost, est le site du journal américain The Washington Post

Quels sont les concurrents de Django ?

pyramid : le plus gros compétiteur de Django en termes de fonctionnalités. Beaucoup moins monolithique, et bien plus flexible, donnant pas mal de contrôle. Mais l’intégration des composants de django le rend beaucoup plus facile à maîtriser, et son écosystème est 100 fois meilleur (j’ai toujours été en froid avec l’écosystème Zope).

 

Bottle : le plus petit disponible (tient dans un fichier). Génial pour du code jetable ou des petits sites, etc. Fantastique outil d’enseignement et d’apprentissage. En plus, ça tient plutôt bien la charge compte tenu de la taille.

flask : sa taille est entre django et bottle, et avec tout ce qu’il faut pour faire un site de taille moyenne. Il commence à avoir pas mal de plugins disponibles un peu partout sur la toile, et est une alternative très sympa quand on n’a pas besoin de charger les 3 tonnes de Django.

 

Publicités