Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

Critiques de formations en ligne et de livresConsultez tous les livres

Dernière mise à jour : 19 mai 2016  - 22 livres - 22 critiques - note globale : 4.5

  1. Les nouveautés d´Adobe Photoshop CS5 - Comprendre et utiliser les nouvelles fonctions !
  2. Adobe Photoshop CS5 : les fondamentaux - Créez des images époustouflantes avec Photoshop !
  3. Photoshop CS5: The Missing Manual - The book that should have been in the box
  4. Programming Python
  5. La programmation orientée objet - cours et exercices en UML 2 avec Java 6, C#4, C++, Python, PHP 5 et LinQ
  6. Mathematica Cookbook
  7. CUDA par l'exemple - une introduction à la programmation parallèle de GPU
  8. Minimanuel de C++ - Cours et exos corrigés
  9. Semantic Web for the Working Ontologist - Effective Modeling in Rdfs and Owl
  10. Thinking in Java
  11. Effective Java - Second Edition
  12. JavaScript - Introduction et notions fondamentales
  13. Structures de données avancées avec la STL - Programmation orientée objet en C++
  14. Le web sémantique - Comment lier les données et les schémas sur le web ?
  15. Maîtriser Joomla! - Guide professionnel du développement d'applications
  16. Réseaux
  17. Les bases de données NoSQL - Comprendre et mettre en œuvre
  18. Joomla! - Le Guide Officiel
  19. Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++)
  20. Programmer en Fortran - Fortran 90 et ses évolutions : Fortran 95, 2003 et 2008
  21. Programmer efficacement en C++ - 42 conseils pour mieux maîtriser le C++ 11 et le C++ 14
  22. Apprentissage machine - De la théorie à la pratique - Concepts fondamentaux en Machine Learning
couverture du livre Les nouveautés d´Adobe Photoshop CS5

Note 4.5drapeaucdrom
Détails du livre
Sommaire
Critiques (1)
 
 

Les nouveautés d´Adobe Photoshop CS5

Comprendre et utiliser les nouvelles fonctions !

de Yves Chatain
Public visé : intermédiaire

Résumé de l'éditeur

Des capacités 3D élargies, de nouveaux outils de création et une adaptation flexible à l'environnement de travail, voici quelques exemples des améliorations apportées à la nouvelle version d'Adobe Photoshop pour réaliser un travail de l'image adapté à un flux de travail de création et d'édition professionnelles.

0 pages, 12 avril 2010 

Édition : video2brain

ISBN10 : 0123456789

video2brain : 19,95 € TTC seulement

Commandez sur www.amazon.fr :

19,95 € TTC (prix éditeur 19,95 € TTC) livraison gratuite !

Bridge CS5

  • Nouvelles fonctionnalités de Bridge CS5
  • Renommage des fichiers
  • Panneau d'exportation
  • Barre de chemin pour la navigation
  • Sortie vers un fichier

Camera Raw 6

  • Réduction du bruit
  • Effet de grain d'image
  • Netteté ou piqué d'image
  • Vignettage

Photoshop CS5

  • Interface utilisateur

    • Nouveautés des espaces de travail
    • Raccourcis et astuces productives
    • Améliorations utiles au quotidien
    • Amélioration de la gestion de l'impression
    • Copier-coller
  • Mini Bridge

    • Mini Bridge dans un panneau de Photoshop
    • Favoris de Bridge dans Mini Bridge
  • Les outils

    • Redressement d'image
    • Recadrer ses images
    • Outil Netteté
    • Tampon et Correcteur
    • Correcteur de contenu manquant
    • Pinceau mélangeur
    • Pinceaux réalistes
    • Sélecteur de couleur flottant
  • Correction des pixels des images

    • Tons foncés/Tons clairs ou réglage Virage HDR ?
    • Fusion HDR devient Fusion HDR pro
  • Correction géométrique des images

    • Correction automatique dans Photoshop CS5
    • Correction manuelle des objectifs
    • Correction de l'objectif sur tout un lot d'images
  • Retouche et réparation des images

    • Remplir avec analyse de contenu manquant
    • Remplir avec le contenu pris en compte
    • Déformation comme une Marionnette
  • Sélection d'images

    • Amélioration de la sélection
    • Rayon d'analyse et décontamination couleur
  • Autres nouveautés

    • L'option Lancer de rayon finalisé
    • La fonction Repoussé
    • Animations .GIF
    • Travail avec les calques
    • Configurateur de palettes
    • CS Review pour Photoshop CS5

 
Critique du livre par la rédaction Thibaut Cuvelier le 27 août 2010 

Votre formateur à domicile. C'est vraiment l'impression que j'ai eue en regardant cette formation. Elle est détaillée, passe bien en revue les nouveautés de Photoshop CS5 : une mise à niveau vers cette nouvelle version, à peu près comme une formation en vrai. L'avantage ? Vous avez directement la liste des parties disponibles, vous pouvez sans problème aller directement à la partie qui vous intéresse. Elles ne sont pas prévues pour être visualisées les unes à la suite des autres : si vous n'utilisez jamais Camera Raw, il vous est inutile de regarder cette partie. Cependant, je ne vous le conseille pas : vous découvrirez ici des fonctionnalités très facilement accessibles (toujours disponibles sous Photoshop mais dans une interface plus lourde). Cela pose quand même un problème : quand on regarde toute la formation d'un bout à l'autre, on a l'impression que le formateur répète, voire bégaye.

La formation est divisée en trois chapitres, chaque chapitre étant subdivisé en une multitude de parties, généralement assez courtes (entre deux et trois minutes), parfois plus longues (jusqu'à une dizaine de minutes) soit plus globales, où l'on vous montre les principales nouveautés dans telle partie, soit plus précises, elles entrent alors dans le détail des nouveautés, tout ce qu'il est possible de dire sur une nouveauté l'est. Tout est bien expliqué, bien détaillé, rien à redire, la compréhension vient toute seule, tout est fait pour qu'elle ne tarde pas.

S'il y a des lacunes techniques dans la présentation (le volume sonore des vidéos n'est pas toujours égalisé) à certains niveaux, d'autres points les compensent : notamment la possibilité de mettre des signets pour revenir à un endroit que l'on n'a pas bien compris, plus intéressant pour son utilisation personnelle, que l'on aimerait montrer à un quidam, etc.

La formation n'est pas prévue pour débuter avec Photoshop, loin de là : elle s'adresse à ceux qui connaissent déjà Photoshop dans une version antérieure et ont envie d'exploiter au mieux cette nouveauté, voir ce qui est maintenant disponible et si elle mérite un achat ou tout simplement à ceux qui veulent devenir de plus en plus efficaces avec la nouvelle mouture du célèbre logiciel. Il n'est pas non plus nécessaire d'avoir une expérience millénaire dans le logiciel : simplement savoir l'utiliser correctement est suffisant.

On pourrait alors croire que des fonctionnalités plus avancées sont évincées de la formation : tel n'a pas été le but. Ici, toutes les nouveautés qui peuvent faire gagner du temps sont présentées, même si l'utilisateur moyen de Photoshop n'en connaît pas toutes les subtilités (j'ai particulièrement été étonné de voir que l'option d'expression régulière dans le renommage de Bridge a été citée, de même que grep, alors qu'en général elles sont réservées à une certaine élite qui les manie tant bien que mal).

Au final, il s'agit là d'une formation très intéressante, vous ne pourrez qu'y apprendre à mieux utiliser la dernière version en date de Photoshop. Grâce à elle, vous utiliserez le logiciel encore plus efficacement, sans passer du temps inutilement à essayer par des moyens détournés ce qui est possible directement. Au final, vous maîtriserez mieux l'outil mais surtout plus vite.

Vous avez vu cette formation ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 
couverture du livre Adobe Photoshop CS5 : les fondamentaux

Note 4.5drapeaucdrom
Détails du livre
Sommaire
Critiques (1)
 
 

Adobe Photoshop CS5 : les fondamentaux

Créez des images époustouflantes avec Photoshop !

de Yves Chatain
Public visé : débutant

Résumé de l'éditeur

Dans cette formation intégrale sur la dernière version d'Adobe Photoshop, explorez en compagnie d'Yves Chatain les bases fondamentales de Photoshop CS5. Au programme de cette formation : interface et panneaux, palette d'outils interactive, masques, effets, calques, 3D, retouches d'images et bien plus encore. Découvrez également un bon nombre de trucs et astuces à travers des ateliers pratiques qui feront de vous un pro de Photoshop CS5. Bien sûr, toutes les nouveautés de cette nouvelle version seront également abordées.

0 pages, 1er avril 2010 

Édition : video2brain

ISBN10 : 3902550570

ISBN13 : 9783902550576

video2brain : 49,80 € TTC seulement

Commandez sur www.amazon.fr :

46,80 € TTC (prix éditeur 49,80 € TTC) livraison gratuite !

Introduction

  • En préambule à la formation, parlons couleur
  • Comprendre la notion de sélection
  • Notion de plans et de calques
  • Les masques
  • L'interface utilisateur

    • Espaces de travail
    • Les panneaux de Photoshop
    • Les préférences
    • Accès temporaires et raccourcis clavier
  • Dix exercices pour une entrée en matière rapide

    • Renommer une sélection d'images dans Bridge
    • Convertir une photo en noir et blanc
    • Filtres artistiques
    • Petites retouches d'image
    • Créer un pêle-mêle
    • Maquiller ou colorer un portrait
    • Corrections automatiques
    • Créer une image panoramique
    • Recadrer et redresser une image
    • Planche contact ou diaporama avec Bridge
  • Concepts généraux d'utilisation

    • Astuce de modification et sélection des valeurs
    • Les informations visuelles dans Photoshop
    • Outils, boîtes de dialogue et commandes
    • Principe des poignées
    • Commandes clavier et menus

Travailler avec des fichiers image

  • Bridge et Camera Raw

    • Vue d'ensemble de Bridge
    • Étiqueter une image
    • Sélection de l'image
    • Mini Bridge, Bridge partout, toujours prêt à se rendre utile
    • Traitement de masse et recadrage avec Camera Raw
  • Zoom, aperçu et navigation dans une image

    • Introduction à la manipulation de l'image à l'écran
    • Autres manières de zoomer
  • Plusieurs fichiers et fenêtres de document

    • Ouvrir plusieurs fichiers et les disposer automatiquement à l'écran
    • Deux fenêtres pour une même image
  • Taille et résolution d'une image

    • Résolution d'image
    • Modifier la taille de l'image
    • Trois méthodes de changements de taille de l'image
    • Agrandir la zone de travail
    • Enregistrement et formats de fichier

Travailler avec des fichiers image

  • Manipulation des outils
  • Aperçu général du panneau Outils
  • Outils : astuces et raccourcis
  • Déplacement et sélection de contenu
  • Sélection rectangulaire et elliptique
  • Lasso, lasso polygonal et lasso magnétique
  • Sélection rapide et baguette magique
  • Recadrage et tranche
  • Pipette, règle, annotation, comptage
  • Correcteur de tons directs, pièce, oeil rouge
  • Pinceau, crayon, remplacement de couleur
  • Tampon de duplication, tampon de motif
  • Pinceau Forme d'historique, forme d'historique artistique
  • Gomme, gomme d'arrière-plan, gomme magique
  • Dégradé et pot de peinture
  • Goutte d'eau, netteté, doigt
  • Densité -, densité +, éponge
  • Dessin vectoriel
  • Textes horizontal et vertical
  • Sélection de tracé, sélection directe
  • Rectangle, rectangle arrondi, ellipse, polygone, etc.
  • Objet 3D
  • Caméra 3D
  • Outil main
  • Outil zoom
  • Couleur de premier plan et d'arrière-plan
  • Mode masque

Exercices avec les outils

  • Supprimer un bateau
  • Redresser une image
  • Une nuée d'étoiles à Shanghai
  • Regrouper des images en pèle-mêle
  • Tampon copie en action !
  • Les outils de retouche d'images en action !
  • Construire sa propre boîte à outils

La sélection

  • Quel est l'intérêt de la sélection ?
  • Combiner des sélections
  • Outils et menus de sélection, le choix est vaste
  • Modifier une sélection
  • Sélectionner par plage de couleurs
  • Combinaisons de sélections avec le mode Masque
  • Récupérer et sauvegarder des sélections
  • Affiner les contours des sélections
  • Décontaminer les couleurs parasites
  • Quatre exercices pratiques en guise d'exemple

    • Anneaux olympiques
    • Imbrication d'images
    • Ajuster la couleur des contours
    • Protéger des sélections

Les calques

  • Introduction et fonctions de base
  • Aperçu global de la manipulation des calques
  • Une attention particulière avec les calques
  • Fonctions supplémentaires des calques
  • Types de calques particuliers
  • Création facile de calques à partir d'une sélection
  • Effets et styles de calque
  • Opacités et modes de fusion des calques
  • Trois exercices pratiques en guise d'exemple

    • Retoucher simultanément plusieurs calques
    • Empiler des pièces de monnaie !
    • Las Vegas !

Les formes géométriques

  • Mise à l'échelle, rotation et miroir
  • Transformer la perspective
  • Adapter une grande image dans une petite image
  • Mise à l'échelle adaptée au contenu
  • Mise à l'échelle non destructive avec les objets dynamiques
  • Déformation de la marionnette

Les masques

  • Les types de masque
  • Les masques avec la palette de calques
  • Le panneau Masques
  • Détourer des personnes avec un masque de fusion
  • Affiner les contours de sélection
  • Améliorer les contours de sélection de cheveux
  • Masque d'écrêtage
  • Corriger avec les calques
  • Raccourcis, astuces et conseils
  • Créer un portrait composite avec un objet dynamique

Le texte

  • Le texte dans Photoshop
  • Les déformations du texte
  • Ce qui est possible et ce qui ne l'est pas
  • Mettre du texte dans une forme
  • Le portefeuille d'Eli
  • Le texte suit un tracé
  • Intégration du texte en fusion dans l'image

Effets de calque, styles et filtres

  • Créer et utiliser les styles
  • Texte en lueur dans un paysage nocturne
  • Du texte transparent avec effet de relief
  • Filtres
  • Filtres dynamiques
  • Filtre de déformation
  • Filtres de rendu
  • Perspective avec le filtre Point de fuite
  • Une peau affinée avec le filtre Atténuation
  • Modifier la physionomie d'un portrait avec le filtre Fluidité
  • Correction des aberrations d'objectif

Corrections et retouches d'image

  • Équilibrer les couleurs d'une image
  • Corriger une image avec les courbes
  • Les masques de fusion
  • Correction de photos anciennes
  • Corriger avec le réglage Niveaux
  • Corriger avec les courbes
  • Tons foncés / Tons clairs
  • Virage HDR
  • Convertir en noir et blanc
  • Régler une profondeur de champ impossible

 
Critique du livre par la rédaction Thibaut Cuvelier le 8 octobre 2010 

Vous rêviez de prendre des cours sur Photoshop ? Les horaires ne vous convenaient pas ? video2brain vous a trouvé LA solution : les formations vidéo. À un tel point que certains profs utilisent leurs vidéos pour donner cours.

Au niveau du contenu, il respecte bien le titre : tout ce dont vous avez besoin pour commencer à travailler efficacement et sérieusement avec Photoshop est abordé, quelle que soit votre utilisation au final. Cependant, le formateur venant du monde de la photographie, il oriente sa formation en ce sens - tout en restant tout aussi bien adaptée à toutes les utilisations du logiciel. Vous apprendrez ainsi à vous servir de l'interface, à la personnaliser, à l'adapter à vos besoins - on parle bien ici de l'interface de Photoshop CS5, ce n'est pas une ancienne formation pour une version très antérieure du logiciel qui a été recyclée, c'est entièrement adapté aux dernières améliorations apportées par Adobe.

N'oublions pas un point important : les exercices. Évidemment, vous n'avez pas l'énoncé puis un quart d'heure pour résoudre le problème posé ; rien ne vous empêche de regarder le début de ces vidéos, voir ce à quoi le formateur veut parvenir et le faire par vous-mêmes. Vous en apprendrez ainsi beaucoup. Néanmoins, ces exercices sont prévus pour être regardés, visionnés, décortiqués puis refaits sur d'autres images. Ils ne sont pas vides de contenu didactique, ils font autant partie de la formation que les vidéos plus « théoriques ». Certains aiment, d'autres détestent.

Une question que beaucoup se poseront : cette formation est-elle bien prévue pour des débutants ? La réponse est oui. Enfin, si un débutant sait comment installer et lancer un logiciel, se servir d'une souris et d'un clavier, possède un minimum d'esprit artistique, alors il n'aura pas de problème pour suivre la formation. Il ne finira pas par maîtriser Photoshop, ce n'est pas l'objectif. Il parviendra à se servir efficacement des bases de Photoshop. Même des parties plus avancées, comme les courbes. Elles sont extrêmement dures à maîtriser et pourtant extrêmement pratiques. C'est pour ça que pas moins de deux vidéos y sont consacrées. Dix minutes pour comprendre cette fonctionnalité de Photoshop, ce n'est pas trop peu.

Vous connaissez déjà Photoshop ? Cette formation risque quand même de vous être utile. Vous ne connaissez peut-être pas toutes les bases de Photoshop, surtout si vous avez appris en autodidacte. Si vous êtes professionnel et utilisez déjà Photoshop au quotidien, passez votre chemin, vous n'apprendrez rien de neuf (peut-être serez-vous remis sur le droit chemin de l'utilisation de la version CS5).
Vous ne connaissez rien à Photoshop ni à la retouche en général ? Vous êtes très exactement au bon endroit ! Tout vous sera expliqué, trop peut-être.
Vous venez d'un autre logiciel ? Vous connaissez donc déjà les bases, vous sauterez l'introduction et quelques chapitres de base, les interfaces de ces logiciels n'étant pas sans aucune ressemblance. Tout le reste vous sera utile, la puissance des outils de Photoshop étant souvent sans égale.

Vous avez vu cette formation ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 
couverture du livre Photoshop CS5: The Missing Manual

Note 5.0drapeaucdrom
Détails du livre
Sommaire
Critiques (1)
 
 

Photoshop CS5: The Missing Manual

The book that should have been in the box

de Lesa Snider
Public visé : débutant à expert

Résumé de l'éditeur

You'd be hard-pressed to find a published image that hasn't spent some quality time in Adobe Photoshop. With new features such as Content-Aware Fill and Puppet Warp, Photoshop CS5 is more amazing -- and perhaps more bewildering -- than ever. That's where this full-color Missing Manual comes in. It covers Photoshop from a practical standpoint, with tips, tricks, and practical advice you can use every day to edit photos and create beautiful documents.

Whether you're a beginner or an experienced pixel pusher ready to try advanced techniques, author and graphics pro Lesa Snider offers crystal-clear, jargon-free instructions to help you take advantage of these powerful tools -- not only how they work, but when you should use them. Describing the CS4 edition, bestselling Photoshop author Scott Kelby wrote, "Lesa did a great job on the book, and in my mind, it is the new Photoshop Bible."

  • Learn your way around Photoshop's revamped workspace
  • Get up to speed on essential features such as layers and channels
  • Edit images by cropping, resizing, retouching, working with color, and more
  • Create paintings and illustrations, work with text, and explore filters
  • Prepare images for printing or the Web, and learn how to protect your images online
  • Work smarter and faster by automating tasks and installing plug-ins

Written with the clarity, humor, and objective scrutiny, Photoshop CS5: The Missing Manual is the friendly, thorough resource you need.

813 pages, 1er mai 2010 

Édition : O'Reilly

ISBN10 : 1449381685

ISBN13 : 978-1-449-38168-4

Commandez sur www.amazon.fr :

37,78 € TTC (prix éditeur 39,32 € TTC) livraison gratuite !

The Basics

  • Photoshop CS5 Guided Tour

    • Meet the Application Frame
    • Working with Panels
    • The Power of Undo
    • Tweaking Photoshop's Preferences
    • The Preset Manager
  • Opening, Viewing, and Saving Files

    • Creating a New Document
    • Saving Files
    • Opening an Existing Document
    • Changing Your Image View
    • Arranging Open Images
    • Guides, Grids, and Rulers
  • Layers: The Key to Nondestructive Editing

    • Layer Basics
    • Managing Layers
    • Layer Blending
    • Layer Masks: Digital Masking Tape
    • Using Smart Objects
    • Layer Styles
  • Selections: Choosing What to Edit

    • Selection Basics
    • Selecting by Shape
    • Selecting by Color
    • Selecting Irregular Areas
    • Modifying Selections
  • Controlling Color with Channels

    • How Color Works
    • The Channels Panel and You
    • Meet the Color Channels
    • The Mighty Alpha Channel
    • Basic Channel Stunts

Editing Images

  • Cropping, Resizing, and Rotating

    • Cropping Images
    • Resizing Images
    • The Content-Aware Scale Tool
    • Rotating, Distorting, and Other Creative Madness
  • Combining Images

    • Cut It Out
    • Pasting into a Selection
    • Fading Images Together
    • Layer Blend Modes
    • Zapping Backgrounds with Blending Sliders
    • Auto-Aligning Layers and Photomerge
    • Auto-Blending Layers
    • Cloning Between Documents
    • Combining Vectors and Rasters
    • Mapping One Image onto Another
  • Draining, Changing, and Adding Color

    • Draining Color
    • Changing Color
    • Adding Color
  • Correcting Color and Lighting

    • Quick Fixer-Uppers
    • Correcting Images in Camera Raw
    • Using Levels
    • Working with Curves
    • Creating High Dynamic Range Images
    • Making Colors Pop
    • Rescuing the Unfixables
  • The Beauty Salon: Photoshopping People

    • The Great Healers
    • Zapping Shines and Shadows
    • Whitening Teeth
    • Super Slimmers
    • Skin Softeners
    • Show-Stopping Eyes
  • The Art of Sharpening

    • What Is Sharpening?
    • Basic Sharpening
    • Advanced Sharpening Techniques
    • Sharpening in Camera Raw

The Artistic Side of Photoshop

  • Painting in Photoshop

    • Color Theory: The Basics
    • Selecting a Color Scheme
    • Choosing Individual Colors
    • (Re)Introducing the Brush Tool
    • Customizing Brushes
    • Defining a New Brush
    • Installing New Brushes
  • Drawing with the Vector Tools

    • Photoshop's Drawing Modes
    • Drawing Paths with the Pen Tool
    • Saving Paths
    • Drawing with the Shape Tools
    • Editing Paths
    • Making Selections and Masks with Paths
  • Creating Artistic Text

    • Typography 101
    • Creating and Editing Text
    • Formatting Text
    • Special Text Effects
    • More Typographic Resources
  • The Wide World of Filters

    • The Joy of Smart Filters
    • A Filters Tour

Printing and the Web

  • Photoshop and Print

    • The Challenge of WYSIWYG Printing
    • Printer-Friendly Resizing and File Formats
    • Printing on an Inkjet Printer
    • Printing on a Commercial Offset Press
    • Printing on a Digital Press
    • Printing Several Images on a Page
    • Recap: Stress-Free Printing Tips
  • Photoshop and the Web

    • Creating Web- and Email-Friendly Images
    • Animating a GIF
    • Designing a Website Favicon
    • Creating Web-Page Mockups and Image Maps
    • Protecting Your Images Online
    • Building Online Photo Galleries

Photoshop Power

  • Working Smarter with Actions

    • The Actions Panel
    • Using Actions
    • Managing Actions
    • Creating Droplets
    • Sharing Actions
  • Beyond Photoshop: Plug-Ins

    • Adding and Removing Plug-Ins
    • Managing Plug-Ins
    • Noise Reducers
    • Making Selections and Masking
    • Color Correction and Enhancement
    • Miscellaneous Plug-Ins

 
Critique du livre par la rédaction Thibaut Cuvelier le 12 décembre 2010 

Première impression en ouvrant ce livre : il va vraiment au fond des choses. L'auteure n'hésite pas à ponctuer son texte d'expressions comme « vous en apprendrez plus que vous ne l'auriez jamais voulu » - vraiment, c'est très exactement ce qu'elle fait ! Ainsi, le lecteur se trouve plongé dans les arcanes du logiciel, dans les palettes d'outils plus que pléthoriques - tous y passent, certains sont développés sur une section plus large que d'autres, étant par nature plus indispensables (comme les brosses), tandis que d'autres n'ont droit qu'à un encart, tel l'outil d'accentuation (un filtre d'accentuation associé aux masques donnant un résultat bien meilleur).

Avant d'aborder des notions plus pointues, quelques concepts sont prérequis ; quand certains vous laissent aller sur le Web faire une recherche sur le sujet, ce Missing Manual veut tout couvrir : vous apprendrez en profondeur toutes les bases nécessaires à la compréhension du fonctionnement de certains outils, filtres ou techniques. Cela n'étant évidemment pas sans but : sans ces connaissances, seul le flair pourrait guider l'utilisateur jusqu'au résultat désiré ; avec ce livre, vous ne serez plus livré aux aléas du « pifomètre », vous saurez quel outil utiliser à quel moment et pourquoi - très exactement l'objectif avoué du livre.

Le style, assez simple et sobre, ne vire pas dans le moindre excès, permettant à tout lecteur un peu aguerri de l'anglais de s'y plonger tête baissée : n'allez pas acheter un autre livre sous le prétexte qu'il est en français. Il y a très peu de chances qu'il soit meilleur que celui-ci, qu'il soit autant à la portée de tous que celui-ci.

Cependant, il ne faut pas croire que, ici, tout est rose. Il y a quand même quelques points plus noirs. Notamment, les trois appendices sont relégués en ligne. Peut-être pour sauver l'environnement, abaisser un peu le prix du livre... mais nettement moins lisible. Si tels étaient les objectifs, il aurait mieux valu tout laisser en ligne. Ensuite, l'absence de CD : quelques fichiers que l'auteure traite et maltraite dans l'ouvrage sont disponibles en ligne, pas de CD accompagnant. La dernière page statue qu'il s'agit là de cinq dollars économisés. Dernièrement, les renvois : chaque page recèle un bon nombre de renvois à d'autres sections du livre, pour plus de détails sur un sujet, pour renvoyer à ce qui a déjà été dit ; louable objectif s'il en est. Cependant, la fréquence de ces rappels n'est pas sans gêner la lecture ; un petit tour dans l'index, fort bien construit, ne nécessiterait pas beaucoup plus de temps et faciliterait la lecture. Sans oublier le lot de frustrations : page 133, voir une référence jusqu'à la page 388, qui ne viendra que bien plus tard dans une lecture séquentielle du livre. Cela n'est pas sans souligner une autre caractéristique de l'ouvrage : il est conçu à la fois pour être une référence rapide lors du travail quotidien et pour être un livre d'apprentissage de Photoshop, c'est en cela qu'il s'adresse autant aux débutants qu'aux utilisateurs plus avertis.

Remarquons aussi qu'il est organisé de telle sorte que tout utilisateur puisse l'utiliser : les photographes, notamment, auront une liste de chapitres qui leur seront plus utiles que les autres, tandis que les webdesigners auront des parties qui leur sont plus dédiées qu'aux autres usagers de Photoshop. Le tout enrobant quelques pépites de tutoriels étape par étape sur l'utilisation d'un outil, sur un effet, etc.
Pour les experts, des sections Power User Clinic sont incluses ; d'autres boîtes sur des sujets parents, voisins ou un peu plus éloignés mais toujours pertinents sont aussi là pour vous guider, vous expliquer certains choix, certaines autres possibilités.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 
couverture du livre Programming Python

Note 4.0drapeaucdrom
Détails du livre
Sommaire
Critiques (1)
 
 

Programming Python

de Mark Lutz
Public visé : débutant à intermédiaire

Résumé de l'éditeur

If you've mastered Python's fundamentals, you're ready to start using it to get real work done. Programming Python will show you how, with in-depth tutorials on the language's primary application domains: system administration, GUIs, and the Web. You'll also explore how Python is used in databases, networking, front-end scripting layers, text processing, and more. This book focuses on commonly used tools and libraries to give you a comprehensive understanding of Python's many roles in practical, real-world programming.

You'll learn language syntax and programming techniques in a clear and concise manner, with lots of examples that illustrate both correct usage and common idioms. Completely updated for version 3.x, Programming Python also delves into the language as a software development tool, with many code examples scaled specifically for that purpose.

Topics include:
  • Quick Python tour: Build a simple demo that includes data representation, object-oriented programming, object persistence, GUIs, and website basics
  • System programming: Explore system interface tools and techniques for command-line scripting, processing files and folders, running programs in parallel, and more
  • GUI programming: Learn to use Python's tkinter widget library
  • Internet programming: Access client-side network protocols and email tools, use CGI scripts, and learn website implementation techniques
  • More ways to apply Python: Implement data structures, parse text-based information, interface with databases, and extend and embed Python
1632 pages, 1er janvier 2011 

Édition : O'Reilly

ISBN10 : 0596158106

ISBN13 : 9780596158101

Commandez sur www.amazon.fr :

47,18 € TTC (prix éditeur 50,60 € TTC) livraison gratuite !

The Beginning

  • Chapter 1: A Sneak Preview

    • “Programming Python: The Short Story”
    • The Task
    • Step 1: Representing Records
    • Step 2: Storing Records Persistently
    • Step 3: Stepping Up to OOP
    • Step 4: Adding Console Interaction
    • Step 5: Adding a GUI
    • Step 6: Adding a Web Interface
    • The End of the Demo

System Programming

  • Chapter 2: System Tools

    • “The os.path to Knowledge”
    • System Scripting Overview
    • Introducing the sys Module
    • Introducing the os Module
  • Chapter 3: Script Execution Context

    • “I'd Like to Have an Argument, Please”
    • Current Working Directory
    • Command-Line Arguments
    • Shell Environment Variables
    • Standard Streams
  • Chapter 4: File and Directory Tools

    • “Erase Your Hard Drive in Five Easy Steps!”
    • File Tools
    • Directory Tools
  • Chapter 5: Parallel System Tools

    • “Telling the Monkeys What to Do”
    • Forking Processes
    • Threads
    • Program Exits
    • Interprocess Communication
    • The multiprocessing Module
    • Other Ways to Start Programs
    • A Portable Program-Launch Framework
    • Other System Tools Coverage
  • Chapter 6: Complete System Programs

    • “The Greps of Wrath”
    • A Quick Game of “Find the Biggest Python File”
    • Splitting and Joining Files
    • Generating Redirection Web Pages
    • A Regression Test Script
    • Copying Directory Trees
    • Comparing Directory Trees
    • Searching Directory Trees
    • Visitor: Walking Directories “++”
    • Playing Media Files
    • Automated Program Launchers (External)

GUI Programming

  • Chapter 7: Graphical User Interfaces

    • “Here's Looking at You, Kid”
    • Python GUI Development Options
    • tkinter Overview
    • Climbing the GUI Learning Curve
    • tkinter Coding Alternatives
    • Adding Buttons and Callbacks
    • Adding User-Defined Callback Handlers
    • Adding Multiple Widgets
    • Customizing Widgets with Classes
    • Reusable GUI Components with Classes
    • The End of the Tutorial
    • Python/tkinter for Tcl/Tk Converts
  • Chapter 8: A tkinter Tour, Part 1

    • “Widgets and Gadgets and GUIs, Oh My!”
    • Configuring Widget Appearance
    • Top-Level Windows
    • Dialogs
    • Binding Events
    • Message and Entry
    • Checkbutton, Radiobutton, and Scale
    • Running GUI Code Three Ways
    • Images
    • Viewing and Processing Images with PIL
  • Chapter 9: A tkinter Tour, Part 2

    • “On Today's Menu: Spam, Spam, and Spam”
    • Menus
    • Listboxes and Scrollbars
    • Text
    • Canvas
    • Grids
    • Time Tools, Threads, and Animation
    • The End of the Tour
  • Chapter 10: GUI Coding Techniques

    • “Building a Better Mousetrap”
    • GuiMixin: Common Tool Mixin Classes
    • GuiMaker: Automating Menus and Toolbars
    • ShellGui: GUIs for Command-Line Tools
    • GuiStreams: Redirecting Streams to Widgets
    • Reloading Callback Handlers Dynamically
    • Wrapping Up Top-Level Window Interfaces
    • GUIs, Threads, and Queues
    • More Ways to Add GUIs to Non-GUI Code
    • The PyDemos and PyGadgets Launchers
  • Chapter 11: Complete GUI Programs

    • “Python, Open Source, and Camaros”
    • PyEdit: A Text Editor Program/Object
    • PyPhoto: An Image Viewer and Resizer
    • PyView: An Image and Notes Slideshow
    • PyDraw: Painting and Moving Graphics
    • PyClock: An Analog/Digital Clock Widget
    • PyToe: A Tic-Tac-Toe Game Widget
    • Where to Go from Here

Internet Programming

  • Chapter 12: Network Scripting

    • “Tune In, Log On, and Drop Out”
    • Python Internet Development Options
    • Plumbing the Internet
    • Socket Programming
    • Handling Multiple Clients
    • Making Sockets Look Like Files and Streams
    • A Simple Python File Server
  • Chapter 13: Client-Side Scripting

    • FTP: Transferring Files over the Net
    • Transferring Files with ftplib
    • Transferring Directories with ftplib
    • Transferring Directory Trees with ftplib
    • Processing Internet Email
    • POP: Fetching Email
    • SMTP: Sending Email
    • email: Parsing and Composing Mail Content
    • A Console-Based Email Client
    • The mailtools Utility Package
    • NNTP: Accessing Newsgroups
    • HTTP: Accessing Websites
    • The urllib Package Revisited
    • Other Client-Side Scripting Options
  • Chapter 14: The PyMailGUI Client

    • “Use the Source, Luke”
    • Major PyMailGUI Changes
    • A PyMailGUI Demo
    • PyMailGUI Implementation
    • Ideas for Improvement
  • Chapter 15: Server-Side Scripting

    • “Oh, What a Tangled Web We Weave”
    • What's a Server-Side CGI Script?
    • Running Server-Side Examples
    • Climbing the CGI Learning Curve
    • Saving State Information in CGI Scripts
    • The Hello World Selector
    • Refactoring Code for Maintainability
    • More on HTML and URL Escapes
    • Transferring Files to Clients and Servers
  • Chapter 16: The PyMailCGI Server

    • “Things to Do When Visiting Chicago”
    • The PyMailCGI Website
    • The Root Page
    • Sending Mail by SMTP
    • Reading POP Email
    • Processing Fetched Mail
    • Utility Modules
    • Web Scripting Trade-Offs

Tools and Techniques

  • Chapter 17: Databases and Persistence

    • “Give Me an Order of Persistence, but Hold the Pickles”
    • Persistence Options in Python
    • DBM Files
    • Pickled Objects
    • Shelve Files
    • The ZODB Object-Oriented Database
    • SQL Database Interfaces
    • ORMs: Object Relational Mappers
    • PyForm: A Persistent Object Viewer (External)
  • Chapter 18: Data Structures

    • “Roses Are Red, Violets Are Blue; Lists Are Mutable, and So Is Set Foo”
    • Implementing Stacks
    • Implementing Sets
    • Subclassing Built-in Types
    • Binary Search Trees
    • Graph Searching
    • Permuting Sequences
    • Reversing and Sorting Sequences
    • PyTree: A Generic Tree Object Viewer
  • Chapter 19: Text and Language

    • “See Jack Hack. Hack, Jack, Hack”
    • Strategies for Processing Text in Python
    • String Method Utilities
    • Regular Expression Pattern Matching
    • XML and HTML Parsing
    • Advanced Language Tools
    • Custom Language Parsers
    • PyCalc: A Calculator Program/Object
  • Chapter 20: Python/C Integration

    • “I Am Lost at C”
    • Extending Python in C: Overview
    • A Simple C Extension Module
    • The SWIG Integration Code Generator
    • Wrapping C Environment Calls
    • Wrapping C++ Classes with SWIG
    • Other Extending Tools
    • Embedding Python in C: Overview
    • Basic Embedding Techniques
    • Registering Callback Handler Objects
    • Using Python Classes in C
    • Other Integration Topics

The End

  • Chapter 21: Conclusion: Python and the Development Cycle

    • “Something's Wrong with the Way We Program Computers”
    • The “Gilligan Factor”
    • Doing the Right Thing
    • Enter Python
    • But What About That Bottleneck?
    • On Sinking the Titanic
    • So What's “Python: The Sequel”?
    • In the Final Analysis…

 
Critique du livre par la rédaction Thibaut Cuvelier le 6 mars 2011 

Certains disent de ce livre qu'il va leur donner les bases de Python 3 : sur la quatrième de couverture, c'est écrit noir sur blanc, le lecteur est censé avoir une expérience en programmation. Les premiers chapitres ne changent pas le ton, la syntaxe ne sera pas expliquée. En fait, il n'est pas nécessaire de déjà maîtriser la syntaxe de Python pour comprendre pleinement ce livre. Une expérience de programmation suffit ; les exemples sont donnés dans le bon ordre, c'est-à-dire par niveau croissant de difficulté ; les meilleures pratiques n'ont pas droit à tous les détails quand elles se limitent à la syntaxe (alors que l'auteur, même s'il a dit qu'il ne le ferait pas, donne le squelette de ce qui est nécessaire à leur compréhension). Il n'est absolument pas nécessaire d'avoir un tel bagage en Python ; cela ne peut qu'aider, bien évidemment, le lecteur pourra alors se plonger plus directement dans l'étude des exemples.

Tout au long du livre, l'auteur a parsemé des exemples - réalistes, complets, jusque quelques milliers de lignes pour PyMailGUI -, pas seulement quelques lignes éclaircissant un concept. On trouve des exemples pour faire comprendre tout ce qui est à comprendre du concept étudié, avec sur le côté d'autres exemples, plus longs, commentés en suffisance, entourés de quelques paragraphes d'explication, etc. On peut dire que l'auteur construit ses exemples étape par étape, il est impossible de s'y perdre. Même sur l'épineux sujet des threads, bête noire de tout développeur, il explique en détail ce qui doit l'être, les subtilités techniques n'ont plus de secret. Le tout étant utilisé dans des applications réelles. On trouve même des chapitres dédiés à l'étude d'un exemple, utilisant bien évidemment le code déjà écrit - la réutilisation du code est très importante.

Presque tout sujet principal sur Python est couvert : la programmation système (Python tend à remplacer les scripts Bash et Perl) ; les GUI (Python se montre aussi puissant que le C++ à ce niveau) ; Internet (Python est en plein essor avec des frameworks Web comme Django ou Zope, même si aucun des deux n'est couvert, aucun ne supporte Python 3 actuellement). Le principal problème se situe dans tout ce qui ne peut pas trouver sa place dans ce livre : ZODB, Zope, Django, MySQL, etc. ne sont pas encore portés sur Python 3 ; le livre ne couvrant que cette version de Python, ces sujets doivent être écartés de cette quatrième édition. Notons quand même que ZODB est montré avec Python 2 pour exposer l'utilisation des bases de données orientées objet.

Même si le livre semble impressionnant de par sa taille (1600 pages), il est presque impossible de couvrir autant de sujets en aussi peu de pages. Même si certains sujets auraient pu être couverts, le livre est plus que complet. Certains chapitres aident à comprendre les bases de choses qui ne sont pas couvertes volontairement (les scripts CGI sont expliqués, alors que plus personne ne songerait à les utiliser pour des projets Web modernes, même si les frameworks actuels sont basés sur ces principes).

Avez-vous lu ce livre ? Qu'en pensez-vous ? 1 commentaire Donner une note à l'article (5)

Some thought this book was to give them the basics about Python 3.x; turn the book, it is written: the readers are supposed to have a "previous programming experience." The first chapters are no different, the syntax will not be explained. Actually, you do not need to know Python's syntax to fully understand the book. Programming experience is enough, examples are given in the right order, the best practices are explained not in full details when related to the core language (however, even if he said he will not, the author spends some lines outlining what is really needed). No, it is not required to have completely read a introductive text about Python; of course, it helps, the reader can get more quickly into the full depth of the examples.

Throughout the book you can find examples - realistic, complete (up to thousands of lines for PyMailGUI) -, not a few lines explaining only the concept; you will find there examples for you to understand everything about the studied concept, along with more detailed examples, with comments, concept explanation paragraphs, and the like. One can say he builds his examples step by step, no one can get lost - even when he starts with threads, a subject many developers just do not like, he manages to make everyone completely aware of all those technical subtleties about beginning with threads. Everything here is also shown in use in real world applications.
Examples also mean that the whole book is not all about theory, there are some examples chapters, chapters totally dedicated to a single example, using many snippets written before (code reutilisation is important).

Almost every main subject in Python is covered: system programming, as Python is a replacement for Perl, Bash scripts, etc.; GUIs, as Python can do as much as C++ can in the GUIs' world; Internet, as Python is growing fast with frameworks like Django or Zope (even though any of these is covered: none currently supports Python 3). The main problem is that important things cannot find a place in that book: ZODB, Zope, Django, MySQL, etc. are not yet ported to Python 3; the book only covers Python 3 and thus cannot say much about these. Note that ZODB is shown, in its Python 2 flavour, to show the basics about OODB; wilingly, no Web framework is getting more than a paragraph or two, these technologies are said to change often.

Though this is an impressive book (about 1,600 pages), it is almost impossible to cover so many subjects in so few pages. Even if it lacks a few topics, this book is more than far complete. Some chapters help you understand the basics of things that cannot be covered (CGI scripting is shown, it is not used anymore for new Web projects, but current Web frameworks are based on these principles).

 
couverture du livre La programmation orientée objet - cours et exercices en UML 2 avec Java 6, C#4, C++, Python, PHP 5 et LinQ

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

La programmation orientée objet - cours et exercices en UML 2 avec Java 6, C#4, C++, Python, PHP 5 et LinQ

de Hugues Bersini
Public visé : débutant à intermédiaire

Résumé de l'éditeur

L'approche objet est enseignée dans les universités dès les premiers niveaux des cursus informatiques, car sa compréhension est le prérequis indispensable à toute pratique économe, fiable et élégante de la plupart des techniques informatiques qui en sont dérivées, depuis Java et Python, jusqu'à UML 2, en passant par .Net et C++.

L'objet par la pratique avec Python, Java, C# et C++ et PHP 5... en UML 2

Cette cinquième édition de l'ouvrage L'orienté objet décortique l'ensemble des mécanismes de la programmation objet (classes et objets, interactions entre classes, envois de messages, encapsulation, héritage, polymorphisme, interface, multithreading, sauvegarde des objets, programmation distribuée, modélisation...) en les illustrant d'exemples empruntant aux technologies les plus populaires : Java et C#, C++, Python, PHP 5, UML 2, LinQ mais aussi les services web, Cobra, les bases de données objet, différentes manières de résoudre la mise en correspondance relationnel/objet dont le langage innovant de requête objet LinQ et enfin les design patterns. Chaque chapitre est introduit par un dialogue vivant, à la manière du maître et de l'élève et se complète de nombreux exercices en UML 2, Java, Python, PHP 5, C# et C++.

À qui s'adresse ce livre ?

Ce livre sera lu avec profit par tous les étudiants de disciplines informatiques liées à l'approche objet (programmation orientée objet, modélisation UML, Java, Python, PHP 5, C#/C++...) et pourra être utilisé par leurs enseignants comme matériel de cours. Il est également destiné à tous les développeurs qui souhaitent approfondir leur compréhension des concepts objet sous-jacents au langage qu'ils utilisent.

644 pages, 1er janvier 2011 

Édition : Eyrolles

ISBN10 : 2212128061

ISBN13 : 9782212128062

Commandez sur www.amazon.fr :

33,25 € TTC (prix éditeur 35,00 € TTC) livraison gratuite !

Avant-propos

  • L'orientation objet en deux mots
  • Objectifs de l'ouvrage
  • Plan de l'ouvrage
  • À qui s'adresse ce livre ?

Principes de base : quel objet pour l'informatique ?

  • Le trio <entité, attribut, valeur>
  • Stockage des objets en mémoire
  • L'objet dans sa version passive
  • L'objet dans sa version active
  • Introduction à la notion de classe
  • Des objets en interaction
  • Des objets soumis à une hiérarchie
  • Polymorphisme
  • Héritage bien reçu
  • Exercices

Un objet sans classe… n'a pas de classe

  • Constitution d'une classe d'objets
  • La classe comme module fonctionnel
  • La classe comme garante de son bon usage
  • La classe comme module opérationnel
  • Un premier petit programme complet dans les cinq langages
  • La classe et la logistique de développement
  • Exercices

Du faire savoir au savoir-faire… du procédural à l'OO

  • Objectif objet : les aventures de l'OO
  • Mise en pratique
  • Analyse
  • Conception
  • Impacts de l'orientation objet

Ici Londres : les objets parlent aux objets

  • Envois de messages
  • Association de classes
  • Dépendance de classes
  • Réaction en chaîne de messages
  • Exercices

Collaboration entre classes

  • Pour en finir avec la lutte des classes
  • La compilation Java : effet domino
  • En C#, en Python, PHP 5 et en C++
  • De l'association unidirectionnelle à l'association bidirectionnelle
  • Autoassociation
  • Package et namespace
  • Exercices

Méthodes ou messages ?

  • Passage d'arguments prédéfinis dans les messages
  • Passage d'argument objet dans les messages
  • Une méthode est-elle d'office un message ?
  • La mondialisation des messages
  • Exercices

L'encapsulation des attributs

  • Accès aux attributs d'un objet
  • Encapsulation : pour quoi faire ?
  • Exercices

Les classes et leur jardin secret

  • Encapsulation des méthodes
  • Les niveaux intermédiaires d'encapsulation
  • Afin d'éviter l'effet papillon
  • Exercices

Vie et mort des objets

  • Question de mémoire
  • C++ : le programmeur est le seul maître à bord
  • En Java, C#, Python et PHP 5 : la chasse au gaspi
  • Exercices

UML 2

  • Diagrammes UML 2
  • Représentation graphique standardisée
  • Du tableau noir à l'ordinateur
  • Programmer par cycles courts en superposant les diagrammes
  • Diagrammes de classe et diagrammes de séquence
  • Diagramme de classe
  • Les bienfaits d'UML
  • Diagramme de séquence
  • Exercices

Héritage

  • Comment regrouper les classes dans des superclasses
  • Héritage des attributs
  • Héritage ou composition ?
  • Économiser en rajoutant des classes ?
  • Héritage des méthodes
  • La recherche des méthodes dans la hiérarchie
  • Encapsulation protected
  • Héritage et constructeurs
  • Héritage public en C++
  • Le multihéritage
  • Exercices

Redéfinition des méthodes

  • La redéfinition des méthodes
  • Beaucoup de verbiage mais peu d'actes véritables
  • Un match de football polymorphique
  • Exercices

Abstraite, cette classe est sans objet

  • De Canaletto à Turner
  • Des classes sans objet
  • Du principe de l'abstraction à l'abstraction syntaxique
  • Un petit supplément de polymorphisme
  • Exercices

Clonage, comparaison et assignation d'objets

  • Introduction à la classe Object
  • Décortiquons la classe Object
  • Test d'égalité de deux objets
  • Le clonage d'objets
  • Égalité et clonage d'objets en Python
  • Égalité et clonage d'objets en PHP 5
  • Égalité, clonage et affectation d'objets en C++
  • En C#, un cocktail de Java et de C++
  • Exercices

Interfaces

  • Interfaces : favoriser la décomposition et la stabilité
  • Java, C# et PHP 5 : interface via l'héritage
  • Les trois raisons d'être des interfaces
  • Les Interfaces dans UML 2
  • En C++ : fichiersh et fichierscpp
  • Interfaces : du local à Internet
  • Exercices

Distribution gratuite d'objets : pour services rendus sur le réseau

  • Objets distribués sur le réseau : pourquoi ?
  • RMI (Remote Method Invocation)
  • Corba (Common Object Request Broker Architecture)
  • Rajoutons un peu de flexibilité à tout cela
  • Les services Web surNet
  • Exercices

Multithreading

  • Informatique séquentielle
  • Multithreading
  • Implémentation en Java
  • Implémentation en C#
  • Implémentation en Python
  • L'impact du multithreading sur les diagrammes de séquence UML
  • Du multithreading aux applications distribuées
  • Des threads équirépartis
  • Synchroniser les threads
  • Exercices

Programmation événementielle

  • Des objets qui s'observent
  • En Java
  • En C# : les délégués
  • En Python : tout reste à faire
  • Un feu de signalisation plus réaliste
  • Exercices

Persistance d'objets

  • Sauvegarder l'état entre deux exécutions
  • Simple sauvegarde sur fichier
  • Sauvegarder les objets sans les dénaturer : la sérialisation
  • Les bases de données relationnelles
  • Réservation de places de spectacles
  • Les bases de données relationnelles-objet
  • Les bases de données orientées objet
  • Linq
  • Exercices

Et si on faisait un petit flipper ?

  • Généralités sur le flipper et les GUI
  • Retour au Flipper

Les graphes

  • Le monde regorge de réseaux
  • Tout d'abord : juste un ensemble d'objets
  • Liste liée
  • La généricité en C++
  • La généricité en Java
  • Passons aux graphes
  • Exercices

Petites chimie et biologie OO amusantes

  • Pourquoi de la chimie OO ?
  • Les diagrammes de classe du réacteur chimique
  • Quelques résultats du simulateur
  • La simulation immunologique en OO ?

Design patterns

  • Introduction aux design patterns
  • Les patterns « truc et ficelle »
  • Les patterns qui se jettent à l'OO

 
Critique du livre par la rédaction Thibaut Cuvelier le 19 mai 2011 

Pour un panorama complet du monde de l'orienté objet, ce livre est certainement à conseiller. L'auteur, par ailleurs professeur à l'ULB (université libre de Bruxelles) démontre son talent pédagogique, dès le début. De nombreuses allusions font d'ailleurs remarquer que ce livre est principalement prévu pour un public étudiant se familiarisant avec la programmation orientée objet, sans rien en connaître, mais ayant déjà connaissance d'un langage de programmation procédural (ou au moins les principes).

Dès le premier exemple, on se plonge dans un environnement Java, sans que cela n'ait été introduit, sans donner vraiment d'explication sur la syntaxe - cela n'est pas vraiment nécessaire, le code est suffisamment documenté pour que la compréhension ne tarde pas. Ensuite sont présentés les différents langages, en s'axant sur leurs particularités syntaxiques, sur les points qui choquent en comparaison au Java. Il n'y a que le minimum qui est présenté, il ne faut pas prendre ce livre pour ce qu'il n'est pas : il introduit à la programmation orientée objet, il n'a pas pour vocation d'apprendre un langage.

C'est d'ailleurs sur ces langages que se portent mes seuls griefs à l'encontre de ce livre : les langages sont parfois fortement détournés pour suivre le discours de l'auteur. On montrera, par exemple, du code Python très peu pythonique, sans utilisation de décorateurs comme @staticmethod ou la définition d'autres constructeurs quand des arguments mots-clés peuvent être utilisés. Du côté C++, on voit, dans les premiers exemples, des directives #include pointées sur... des fichiers .cpp ! Il faut attendre le quinzième chapitre sur les interfaces pour voir l'existence de fichiers .h, ce qui permet de s'assurer de très mauvaises pratiques dans du code C++... Cela passe aussi pour une faiblesse du langage, qu'un utilisateur du C++ pourra faire passer pour une méconnaissance du langage. Passons le fait que le C++/CLI devient du Visual C++ .Net, nom qui n'est attesté sur le Web presque exclusivement comme les nouvelles versions de l'EDI de Microsoft pour le C++, partie de l'environnement plus complet Visual Studio, ainsi que le fait qu'il semble jusqu'au chapitre sur l'héritage que la seule raison de traiter le C++ est de pouvoir en dire tout le mal qu'on peut. Sans oublier que la STL est entièrement nonobstée et que l'on juge les complexités du C++ comme des écarts par rapport aux autres langages, alors qu'il en est l'aîné. On remarque aussi que le PHP est exclusivement utilisé en contexte Web, comme s'il était incapable de faire autre chose (sans oublier que le décorum HTML tout autour ne facilite pas la compréhension de l'exemple, en ajoutant un bon nombre de lignes parfaitement inutiles).
En conclusion de ce paragraphe, on dira que ce livre n'est absolument pas là pour apprendre un langage ou l'autre, ce n'est pas son but, il veut simplement apprendre les bases de la programmation orientée objet, en déclinant les concepts aux différents langages, en montrant leurs différences. Tous les concepts sont illustrés dans tous les langages, permettant ainsi de visualiser in situ les différences de pensée entre les concepteurs. Ces exemples, d'ailleurs, évoluent au fur et à mesure de la progression de la compréhension du lecteur : les premiers exemples sont fort didactiques, on finit dans les derniers chapitres à simuler les réactions chimiques ayant lieu dans un réacteur, on passe d'exemples simplistes à des exemples réalistes.

À un niveau plus général, on remarquera quelques fautes d'orthographe restées malgré les relectures, les schémas de mauvaise facture (réalisés probablement à l'aide d'un logiciel peu évolué tel que Paint), qui font vraiment tache à côté des schémas UML, ainsi que des captures d'écran sur des systèmes d'exploitation relativement préhistoriques (aux alentours de Windows Millenium).

Ce ne sont pas ces quelques défauts qui vont entacher le principal du livre. On appréciera notamment le large chapitre dédié à UML2, ainsi que les schémas UML utilisés bien avant leur formalisation pour aider à comprendre les principes. Des exercices terminent la grande majorité des chapitres, permettant au lecteur de vérifier qu'il a bien assimilé les concepts ; on regrettera de ne voir les solutions que sur le site de l'éditeur, pas dans une annexe au livre.

Il faut aussi remarquer que l'utilisation plus pratique de l'orienté objet est aussi couverte : ainsi, on parlera des méthodes pour la communication entre un client et un serveur à l'aide de RMI, de Corba et d'autres. Sera aussi discutée la sérialisation dans les divers langages, sans toutefois rentrer dans les détails, car ils deviennent plus spécifiques aux langages. On regrettera de ne pas voir ici la sérialisation selon boost pour le C++ ou la fonction serialize() de PHP : ces deux langages ne sont pas arriérés, ils permettent aussi la sérialisation, alors qu'aucune mention n'en est faite.

Des sujets plus pointus comme le multithreading sont aussi abordés : point noir de ce chapitre, C++ et PHP sont oubliés. Signaler qu'aucune méthode vraiment propre n'existe en PHP n'est pas un luxe, préciser l'existence d'une pléthore de possibilités en C++ est un minimum pour tout qui parle de multithreading et de C++ (il n'aurait pas été utile de développer le sujet, mais au moins d'indiquer dans quelle direction chercher si le besoin s'en fait sentir). Les autres langages jouissent d'une description des méthodes disponibles en standard pour obtenir une application multithreadée, en tenant compte de la problématique des accès concurrents.

En bref ? Un ouvrage plus qu'excellent, didactique, qui passe par tous les jalons, toutes les étapes, sans en oublier une, pour la programmation orientée objet. Que le lecteur soit débutant ou plus avancé, il trouvera dans ce livre de quoi apprendre ou se remettre à niveau. Par contre, prendre ce livre pour apprendre un langage n'est pas forcément la meilleure idée, ce n'est pas son objectif, les explications ne vont d'ailleurs pas en ce sens. Le style assez humoristique de l'auteur en fait un livre très facile à lire.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 
couverture du livre Mathematica Cookbook

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Mathematica Cookbook

de Salvatore Mangano
Public visé : débutant à expert

Résumé de l'éditeur

Mathematica Cookbook helps you master the application's core principles by walking you through real-world problems. Ideal for browsing, this book includes recipes for working with numerics, data structures, algebraic equations, calculus, and statistics. You'll also venture into exotic territory with recipes for data visualization using 2D and 3D graphic tools, image processing, and music.

Although Mathematica 7 is a highly advanced computational platform, the recipes in this book make it accessible to everyone -- whether you're working on high school algebra, simple graphs, PhD-level computation, financial analysis, or advanced engineering models.

  • Learn how to use Mathematica at a higher level with functional programming and pattern matching
  • Delve into the rich library of functions for string and structured text manipulation
  • Learn how to apply the tools to physics and engineering problems
  • Draw on Mathematica's access to physics, chemistry, and biology data
  • Get techniques for solving equations in computational finance
  • Learn how to use Mathematica for sophisticated image processing
  • Process music and audio as musical notes, analog waveforms, or digital sound samples
832 pages, 1er mai 2010 

Édition : O'Reilly

ISBN10 : 0596520999

ISBN13 : 9780596520991

Commandez sur www.amazon.fr :

44,92 € TTC (prix éditeur 44,92 € TTC) livraison gratuite !

Numerics

  • Introduction
  • Controlling Precision and Accuracy
  • Mixing Different Numerical Types
  • Representing Numbers in Other Bases
  • Extracting the Digits of a Number
  • Working with Intervals
  • Converting Between Numerical Types
  • Displaying Numbers in Alternate Forms

Functional Programming

  • Introduction
  • Mapping Functions with More Than One Argument
  • Holding Arbitrary Arguments
  • Creating Functions That Automatically Map Over Lists
  • Mapping Multiple Functions in a Single Pass
  • Keeping Track of the Index of Each Item As You Map
  • Mapping a Function over a Moving Sublist
  • Using Prefix and Postfix Notation to Produce More Readable Code
  • Defining Indexed Functions
  • Understanding the Use of Fold As an Alternative to Recursion
  • Incremental Construction of Lists
  • Computing Through Repeated Function Application
  • Building a Function Through Iteration
  • Exploiting Function Composition and Inverse Functions
  • Implementing Closures
  • Currying in Mathematica
  • Creating Functions with Default Values
  • Creating Functions That Accept Options

Data Structures

  • Introduction
  • Ensuring the Most Efficient Representation of Numerical Lists
  • Sorting Lists
  • Determining Order Without Sorting
  • Extracting the Diagonals of a Matrix
  • Constructing Matrices of Specific Structure
  • Constructing Permutation and Shift Matrices
  • Manipulating Rows and Columns of Matrices
  • Using Sparse Arrays to Conserve Memory
  • Manipulating Deeply Nested Lists Using Functions with Level Specifications
  • Implementing Bit Vectors and Using Format to Customize Their Presentation
  • Implementing Trees and Traversals Using Lists
  • Implementing Ordered Associative Lookup Using a Red-Black Tree
  • Exploiting Mathematica's Built-In Associative Lookup
  • Constructing Graphs Using the Combinatorica' Package
  • Using Graph Algorithms to Extract Information from Graphs

Patterns and Rule-Based Programming

  • Introduction
  • Collecting Items That Match (or Don't Match) a Pattern
  • Excluding Items That Match (or Don't Match) a Pattern
  • Counting Items That Match a Pattern
  • Replacing Parts of an Expression
  • Finding the Longest (or Shortest) Match for a Pattern
  • Implementing Algorithms in Terms of Rules
  • Debugging Infinite Loops When Using ReplaceRepeated
  • Preventing Evaluation Until Replace Is Complete
  • Manipulating Patterns with Patterns
  • Optimizing Rules
  • Using Patterns As a Query Language
  • Semantic Pattern Matching
  • Unification Pattern Matching

String and Text Processing

  • Introduction
  • Comparing Strings
  • Removing and Replacing Characters from Strings
  • Extracting Characters and Substrings
  • Duplicating a String
  • Matching and Searching Text
  • Tokenizing Text
  • Working with Natural Language Dictionaries
  • Importing XML
  • Transforming XML Using Patterns and Rules
  • Transforming XML Using Recursive Functions (à la XSLT)
  • Writing Parsers and Grammars in Mathematica

Two-Dimensional Graphics and Plots

  • Introduction
  • Plotting Functions in Cartesian Coordinates
  • Plotting in Polar Coordinates
  • Creating Plots Parametrically
  • Plotting Data
  • Mixing Two or More Graphs into a Single Graph
  • Displaying Multiple Graphs in a Grid
  • Creating Plots with Legends
  • Displaying 2D Geometric Shapes
  • Annotating Graphics with Text
  • Creating Custom Arrows

Three-Dimensional Plots and Graphics

  • Introduction
  • Plotting Functions of Two Variables in Cartesian Coordinates
  • Plotting Functions in Spherical Coordinates
  • Plotting Surfaces in Cylindrical Coordinates
  • Plotting 3D Surfaces Parametrically
  • Creating 3D Contour Plots
  • Combining 2D Contours with 3D Plots
  • Constraining Plots to Specified Regions
  • Plotting Data in 3D
  • Plotting 3D Regions Where a Predicate Is Satisfied
  • Displaying 3D Geometrical Shapes
  • Constructing Wireframe Models from Mesh
  • Controlling Viewing Geometry
  • Controlling Lighting and Surface Properties
  • Transforming 3D Graphics
  • Exploring Polyhedra
  • Importing 3D Graphics from CAD and Other 3D Software

Image Processing

  • Introduction
  • Extracting Image Information
  • Converting Images from RGB Color Space to HSV Color Space
  • Enhancing Images Using Histogram Equalization
  • Correcting Images Using Histogram Specification
  • Sharpening Images Using Laplacian Transforms
  • Sharpening and Smoothing with Fourier Transforms
  • Detecting Edges in Images
  • Image Recognition Using Eigenvectors (Eigenimages)

Audio and Music Processing

  • Introduction
  • Creating Musical Notes
  • Creating a Scale or a Melody
  • Adding Rhythm to a Melody
  • Controlling the Volume
  • Creating Chords
  • Playing a Chord Progression
  • Writing Music with Traditional Chord Notation
  • Creating Percussion Grooves
  • Creating More Complex Percussion Grooves
  • Exporting MIDI files
  • Playing Functions As Sound
  • Adding Tremolo
  • Adding Vibrato
  • Applying an Envelope to a Signal
  • Exploring Alternate Tunings
  • Importing Digital Sound Files
  • Analyzing Digital Sound Files
  • Slicing a Sample

Algebra

  • Introduction
  • Solving Algebraic Equations
  • Finding a Polynomial from a Given Root
  • Transforming Expressions to Other Forms
  • Generating Polynomials
  • Decomposing Polynomials into Their Constituent Parts
  • Dividing Polynomials by Other Polynomials

Calculus: Continuous and Discrete

  • Introduction
  • Computing Limits
  • Working with Piecewise Functions
  • Using Power Series Representations
  • Differentiating Functions
  • Integration
  • Solving Differential Equations
  • Solving Minima and Maxima Problems
  • Solving Vector Calculus Problems
  • Solving Problems Involving Sums and Products
  • Solving Difference Equations
  • Generating Functions and Sequence Recognition

Statistics and Data Analysis

  • Introduction
  • Computing Common Statistical Metrics of Numerical and Symbolic Data
  • Generating Pseudorandom Numbers with a Given Distribution
  • Working with Probability Distributions
  • Demonstrating the Central Limit Theorem
  • Computing Covariance and Correlation of Vectors and Matrices
  • Measuring the Shape of Data
  • Finding and Adjusting for Outliers
  • Fitting Data Using a Linear Model
  • Fitting Data Using a Nonlinear Model
  • Creating Interpolation Functions from Data
  • Testing for Statistically Significant Difference Between Groups Using ANOVA
  • Hypothesis Testing with Categorical Data
  • Grouping Data into Clusters
  • Creating Common Statistical Plots
  • Quasi-Random Number Generation
  • Creating Stochastic Simulations

Science and Engineering

  • Introduction
  • Working with Element Data
  • Working with Chemical Data
  • Working with Particle Data
  • Working with Genetic Data and Protein Data
  • Modeling Predator-Prey Dynamics
  • Solving Basic Rigid Bodies Problems
  • Solving Problems in Kinematics
  • Computing Normal Modes for Coupled Mass Problems
  • Modeling a Vibrating String
  • Modeling Electrical Circuits
  • Modeling Truss Structures Using the Finite Element Method

Financial Engineering

  • Introduction
  • Leveraging Mathematica's Bundled Financial Data
  • Importing Financial Data from Websites
  • Present Value of Future Cash Flows
  • Interest Rate Sensitivity of Bonds
  • Constructing and Manipulating Yield Curves
  • Black-Scholes for European Option Pricing
  • Computing the Implied Volatility of Financial Derivatives
  • Speeding Up NDSolve When Solving Black-Scholes and Other PDEs
  • Developing an Explicit Finite Difference Method for the Black-Scholes Formula
  • Compiling an Implementation of Explicit Trinomial for Fast Pricing of American Options
  • Modeling the Value-at-Risk of a Portfolio Using Monte Carlo and Other Methods
  • Visualizing Trees for Interest-Rate Sensitive Instruments

Interactivity

  • Introduction
  • Manipulating a Variable
  • Manipulating a Symbolic Expression
  • Manipulating a Plot
  • Creating Expressions for Which Value Dynamically Updates
  • Intercepting the Values of a Control Attached to a Dynamic Expression
  • Controlling Updates of Dynamic Values
  • Using DynamicModule As a Scoping Construct in Interactive Notebooks
  • Using Scratch Variables with DynamicModule to Balance Speed Versus Space
  • Making a Manipulate Self-Contained
  • Remembering the Values Found Using Manipulate
  • Improving Performance of Manipulate by Segregating Fast and Slow Operations
  • Localizing a Function in a Manipulate
  • Sharing DynamicModule Variables across Cell or Window Boundaries
  • Creating Your Own Custom Controls
  • Animating an Expression
  • Creating Custom Interfaces
  • Managing a Large Number of Controls in Limited Screen Real Estate

Parallel Mathematica

  • Introduction
  • Configuring Local Kernels
  • Configuring Remote Services Kernels
  • Sending a Command to Multiple Kernels for Parallel Evaluation
  • Automatically Parallelizing Existing Serial Expressions
  • Distributing Data Segments in Parallel and Combining the Results
  • Implementing Data-Parallel Algorithms by Using ParallelMap
  • Decomposing a Problem into Parallel Data Sets
  • Choosing an Appropriate Distribution Method
  • Running Different Algorithms in Parallel and Accepting the First to Complete
  • Sharing Data Between Parallel Kernels
  • Preventing Race Conditions When Multiple Kernels Access a Shared Resource
  • Organizing Parallel Processing Operations Using a Pipeline Approach
  • Processing a Massive Number of Files Using the Map-Reduce Technique
  • Diagnosing Parallel Processing Performance
  • Measuring the Overhead of Parallelization in Your Environment

Interfacing Mathematica

  • Introduction
  • Calling External Command Line Programs from Mathematica
  • Launching Windows Programs from Mathematica
  • Connecting the Frontend to a Remote Kernel
  • Using Mathematica with C and C++
  • Using Mathematica with Java
  • Using Mathematica to Interact with Microsoft's .NET Framework
  • Using the Mathematica Kernel from a .NET Application
  • Querying a Database
  • Updating a Database
  • Introspection of Databases

Tricks of the Trade

  • Introduction
  • Cleaning Up During Incremental Development
  • Modifying Built-in Functions and Constants
  • Locating Undocumented Functions
  • Packaging Your Mathematica Solutions into Libraries for Others to Use
  • Compiling Functions to Improve Performance
  • Automating and Standardizing the Appearance of Notebooks Using Stylesheets
  • Transforming Notebooks into Other Forms
  • Calling into the Mathematica Frontend
  • Initializing and Cleaning Up Automatically
  • Customizing Frontend User Interaction

Debugging and Testing

  • Introduction
  • Printing as the First Recourse to Debugging
  • Debugging Functions Called Many Times
  • Stack Tracing to Debug Recursive Functions
  • Taming Trace to Extract Useful Debugging Information
  • Creating a Poor Man's Mathematica Debugger
  • Debugging Built-In Functions with Evaluation and Step Monitors
  • Visual Debugging with Wolfram Workbench
  • Writing Unit Tests to Help Ensure Correctness of Your Code
  • Creating MUnit Tests Where Success Is Not Based on Equality Testing
  • Organizing and Controlling MUnit Tests and Test Suites
  • Integrating Wolfram Workbench's MUnit Package into the Frontend

 
Critique du livre par la rédaction Thibaut Cuvelier le 6 juillet 2011 

Mathematica est un outil très puissant, l'auteur le montre à chaque nouvelle recette. Cependant, il faut arriver à l'utiliser, cela n'étant pas facilement possible sans aide externe. Ici, le lecteur est pris par la main, depuis une connaissance très basique requise pour commencer la lecture (avoir joué quelque peu avec Mathematica est bien suffisant), jusqu'à pouvoir résoudre de vrais problèmes à l'aide du logiciel, sans s'enfermer dans un domaine particulier : ce livre s'adresse à tous les publics d'utilisateurs de Mathematica, de l'étudiant au musicien, sans oublier scientifiques, ingénieurs, photographes, développeurs, financiers...

Le livre se base entièrement sur le principe de la résolution de problèmes, des « recettes ». Il n'y a pas de collection de code utile, plus de petits programmes réalisant une tâche spécifique (la dérivation symbolique d'une fonction ou un trémolo).

On ne perd pas de temps sur les bases de Mathematica, un chapitre les expédie rapidement, étant donné qu'il n'est pas nécessaire d'en connaître beaucoup plus. Suit un chapitre sur la programmation fonctionnelle, le paradigme de conception privilégié dans Mathematica. C'est l'un des chapitres les plus durs de tout l'ouvrage, surtout pour ceux qui ne sont pas habitués à une vision fonctionnelle de la programmation ; en tant que tel, il est absolument nécessaire d'avoir compris les principes de ce chapitre, l'auteur n'étant pas avare en exemples : son but est clairement que tout lecteur puisse en comprendre les subtilités. Pour ceux qui connaissent déjà l'un ou l'autre langage fonctionnel, l'auteur réalise quelques parallèles, afin de leur fournir une entrée en matière plus rapide. Les exemples sont généralement dans la catégorie des « one-liners », des programmes rédigés en une seule ligne, bien connus des développeurs Perl, tout en restant lisibles - du moins, pour qui sait les lire, ils sont très explicites. On pourra regretter que plusieurs solutions ne sont pas systématiquement proposées, quand cela peut être utile (autre algorithme, versions intermédiaires menant à la finale, autre paradigme, etc.).

A contrario, un utilisateur beaucoup plus expérimenté avec Mathematica pourra directement consulter les sections qui l'intéressent, l'ouvrage n'étant pas conçu pour n'être lu que d'une couverture à l'autre. En cas de dépendance d'une recette sur un autre chapitre, le lecteur est renvoyé vers la recette correspondante.

On peut diviser ce livre en trois parties : la première, l'introduction à Mathematica, ce qu'il faut savoir pour l'utiliser correctement (programmation fonctionnelle, par motifs ou règles, les structures de données, la gestion du texte et les graphiques - les sept premiers chapitres) ; ensuite, l'utilisation de ces concepts dans des cas plus réalistes (traitement de l'image, du son, fonctionnalités algébriques et analytiques, statistiques, sciences, ingénierie, finance, interactivité) ; finalement, des concepts beaucoup plus avancés pour retirer le maximum de Mathematica (programmation parallèle, interfaçage avec d'autres langages, astuces de débogage et diverses - les quatre derniers chapitres).

Même un utilisateur plus expérimenté peut avoir intérêt à lire la première partie, car il pourra y apprendre à se servir d'outils qu'il n'avait potentiellement jamais imaginés, mais surtout y apprendre à réaliser de meilleurs programmes, pas simplement fonctionnels.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (4)

 
couverture du livre CUDA par l'exemple - une introduction à la programmation parallèle de GPU

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

CUDA par l'exemple - une introduction à la programmation parallèle de GPU

de Jason Sanders, Edward Kandbrot, Eric Jacoboni (traducteur)
Public visé : intermédiaire à expert

Résumé de l'éditeur

CUDA est une architecture qui facilite le développement de programmes parallèles. Associé à une plate-forme logicielle complète, CUDA permet de tirer parti de la grande puissance des processeurs graphiques, ou GPU, afin de construire des applications très performantes dans de multiples domaines - ingénierie, calcul, finance, etc. - et ce sans nécessiter de connaissances en programmation graphique : il suffit de savoir programmer dans une version légèrement modifiée du langage C.

CUDA par l'exemple, écrit par deux membres éminents de l'équipe de développement de la plate-forme CUDA, a pour objectif d'expliquer comment utiliser cette nouvelle technologie. Cet enseignement s'appuie sur des exemples réels, pour lesquels tous les outils CUDA nécessaires sont librement téléchargeables à partir du site de NVIDIA.

L'ouvrage débute par une présentation de la plateforme de développement et son architecture, puis par une introduction rapide à CUDA C. Il détaille ensuite les techniques et les choix liés aux aspects essentiels de CUDA, ainsi que chaque extension de CUDA C. Grâce à ce livre, vous saurez rapidement écrire des programmes CUDA aux performances exceptionnelles.

260 pages, 1er mai 2011 

Édition : Pearson

ISBN10 : 2744024864

ISBN13 : 9782744024863

Commandez sur www.amazon.fr :

31,35 € TTC (prix éditeur 33,00 € TTC) livraison gratuite !
  • Pourquoi CUDA ? Pourquoi maintenant ?
  • Démarrage
  • Introduction à CUDA C
  • Programmation parallèle en CUDA C
  • Coopération entre threads
  • Mémoire de données constante et événements
  • Mémoire de texture
  • Interopérabilité avec les traitements graphiques
  • Atomicité
  • Flux
  • CUDA C avec plusieurs GPU
  • Compte à rebours final
  • Atomicité avancée
  • CUDA 4.0

 
Critique du livre par la rédaction Thibaut Cuvelier le 7 juillet 2011 

Petit livre s'il en est. Ses ambitions sont à la hauteur de son épaisseur : avec lui, on peut facilement se mettre dans le bain de CUDA, écrire ses premiers kernels, utiliser l'outil de manière relativement efficace. Par contre, il ne détaille pas l'architecture sous-jacente des processeurs graphiques, il ne perd pas son temps à expliquer le vocabulaire et les détails de la programmation parallèle tant que ce n'est pas nécessaire.

Les auteurs se sont basés sur une méthode d'apprentissage par l'exemple : chaque chapitre est organisé autour de plusieurs exemples, décortiqués autant que nécessaire pour que le lecteur s'y plonge sans trop de difficulté. L'objectif n'est pas de former des gens capables de comprendre jusque dans les moindres détails CUDA et l'optimisation profonde des algorithmes employés, mais plus de les amener à utiliser CUDA, en profitant de grands gains de performances par rapport à la version CPU, le tout dans un ton joyeux, sans se prendre la tête, avec une complexité croissante, sans sauter une marche. On remarquera notamment l'utilisation d'une bibliothèque de fonctions dans les exemples, afin de s'abstraire de ce qui ne concerne pas l'objectif premier du livre. Les auteurs semblent avoir remarqué ce qui pose souvent problème aux débutants avec CUDA et en profitent pour insister sur ces quelques points-clés.

Chaque chapitre est constitué de trois phases : l'introduction, où l'on introduit le sujet qui sera étudié dans le chapitre, avec la liste des objectifs ; le développement en lui-même ; la conclusion, où l'on résume les points essentiels du chapitre pour répondre aux objectifs fixés.

Il ne faut pas considérer ce livre comme une approche exhaustive de CUDA - tel n'en est pas le but -, il donne cependant les pistes nécessaires pour continuer son apprentissage de la technologie, comme le confirme le chapitre 12, où quelques pistes sont évoquées pour aller plus loin (livres de référence à consulter, bibliothèques utiles, etc.).

Par rapport à l'original, on remarquera l'ajout d'une annexe concernant CUDA 4.0, listant simplement les nouveautés de cette version, on aurait apprécié un peu plus de détails (des exemples, du code, notamment). On y apprend aussi que de nouvelles fonctionnalités du C++ sont supportées, alors que rien n'est précédemment dit sur ce langage. On n'apprendra rien sur l'architecture des GPU, pas plus sur la nouvelle architecture Fermi et les grandes nouveautés qu'elle apporte (elle n'est même pas citée), cela n'étant absolument pas l'objectif du livre.

Les prérequis ne sont pas exorbitants : la connaissance de la programmation en C est bien suffisante, inutile de connaître la programmation graphique. Dans cet ordre d'idées, chaque exemple est précédé d'une introduction plus théorique, qui explique ce qui va être réalisé par la suite, au cas où le lecteur ne le saurait pas. Ainsi, on explique brièvement le principe des réductions, des histogrammes, du lancer de rayons, etc.

Avez-vous lu ce livre ? Qu'en pensez-vous ? 1 commentaire Donner une note à l'article (4.5)

 
couverture du livre Minimanuel de C++

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Minimanuel de C++

Cours et exos corrigés

de Jean-Michel Réveillac
Public visé : débutant

Résumé de l'éditeur

Comment aller à l'essentiel, comprendre les méthodes et les techniques de programmation avant de les mettre en application ?

Conçus pour faciliter aussi bien l'apprentissage que la révision, les minimanuels proposent un cours concis et progressif pour vous accompagner jusqu'à l'examen. Des exemples, des savoir-faire et des méthodes pour éviter les pièges et programmer efficacement, ainsi que des exercices et leurs corrigés complètent le cours.

Ce minimanuel de C++ fournit les bases de l'un des langages de programmation incontournables dans toute formation d'informaticien, en particulier pour ceux qui vont travailler dans des domaines techniques et industriels.

Le code source des listings est disponible sur le site de Dunod sur la page dédiée à cet ouvrage.

241 pages, 1er juillet 2010 

Édition : Dunod

ISBN10 : 2100543296

ISBN13 : 9782100543298

Commandez sur www.amazon.fr :

15,20 € TTC (prix éditeur 16,00 € TTC) livraison gratuite !
  • Expression arithmétiques en C++
  • Chaînes et types énumération
  • Tableaux et vecteurs
  • Structures de contrôle
  • Pointeurs
  • Fonctions
  • Classes
  • La surcharge des opérateurs
  • Agrégation, héritage, polymorphisme et patrons

 
Critique du livre par la rédaction Thibaut Cuvelier le 3 août 2011 

Petit livre s'il en est, tout comme l'indique son nom (le « minimanuel »). Pourtant, tout est couvert : grâce à ce livre, pas besoin d'une expérience dans un langage pour faire ses premiers pas en C++. Une manière d'aborder le C++ très spéciale : on ne considère pas le C comme un prérequis, le C++ est enseigné comme premier langage, partant des bases de la syntaxe jusqu'à la programmation orientée objet, à laquelle pas moins d'une cinquantaine de pages sont dédiées (soit approximativement un quart de l'ouvrage).

Cependant, le tableau n'est pas que clair : on peut remarquer quelques fautes d'orthographe évidentes du début à la fin, ainsi que la présentation de Dev-C++, un EDI dont le support est arrêté depuis... 2005. On remarquera que ce livre a été édité en 2010 et qu'un particulier continue de manière non officielle la maintenance de l'EDI, sans que ce soit précisé.

Aucun point n'est jamais abordé en détail : le polymorphisme, par exemple, est expédié en trois pages seulement. C'est amplement suffisant pour la portée voulue de l'ouvrage (un minimanuel de C++), l'essentiel y est dit, on ne se pose pas de question supplémentaire la partie lue.

Chaque chapitre est divisé en plusieurs parties : le plan et les objectifs, le développement, un récapitulatif (l'essence des éléments principaux du chapitre) puis des exercices avec leur solution. Le développement est parsemé d'exemples, plus que bien commentés ; après chaque portion de code, le résultat que donne son exécution.

Il ne faut pas prendre ce livre pour ce qu'il n'est pas non plus : son but n'est pas d'introduire de l'algorithmique, il n'y en a d'ailleurs aucune trace. Il donne le condensé de la syntaxe du C++, pas une miette de plus - le format ne le permettant pas non plus. En tant que tel, il pourra servir de référence à celui qui ne pratique pas de longue date le C++ ; l'utilisateur plus avancé ne bénéficiera dans ce cas que des annexes, fort complètes, des mots-clés (tous avec un mot d'explication, même s'ils n'ont pas été abordés dans le texte) et des fonctions de la bibliothèque standard (avec l'en-tête de définition).

Sans oublier le point fort du livre : je l'ai lu d'une seule traite, en à peine quelques heures. Il est prévu pour être compréhensible par le commun des mortels.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (4.5)

 
couverture du livre Semantic Web for the Working Ontologist

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Semantic Web for the Working Ontologist

Effective Modeling in Rdfs and Owl

de Dean Allemang, James A. Hendler
Public visé : débutant

Résumé de l'éditeur

The promise of the Semantic Web to provide a universal medium to exchange data information and knowledge has been well publicized. There are many sources too for basic information on the extensions to the WWW that permit content to be expressed in natural language yet used by software agents to easily find, share and integrate information. Until now individuals engaged in creating ontologies-- formal descriptions of the concepts, terms, and relationships within a given knowledge domain -- have had no sources beyond the technical standards documents.

Semantic Web for the Working Ontologist transforms this information into the practical knowledge that programmers and subject domain experts need. Authors Allemang and Hendler begin with solutions to the basic problems, but don't stop there: they demonstrate how to develop your own solutions to problems of increasing complexity and ensure that your skills will keep pace with the continued evolution of the Semantic Web.

Provides practical information for all programmers and subject matter experts engaged in modeling data to fit the requirements of the Semantic Web.

De-emphasizes algorithms and proofs, focusing instead on real-world problems, creative solutions, and highly illustrative examples.

Presents detailed, ready-to-apply "recipes" for use in many specific situations.

Shows how to create new recipes from RDF, RDFS, and OWL constructs.

352 pages, 1re édition, 1er mai 2008 

Édition : Morgan Kaufmann

ISBN10 : 0123735564

ISBN13 : 9780123735560

Commandez sur www.amazon.fr :

33,20 € TTC (prix éditeur 34,95 € TTC) livraison gratuite !
  • What is the Semantic Web?
  • Semantic Modeling
  • RDF - The Basis of Semantic Web
  • Semantic Web Application Architecture
  • RDF and Inferencing
  • RDF Schema
  • RDFS-Plus
  • Using RDFS-Plus in the Wild
  • Basic OWL
  • Counting and Sets in OWL
  • Using OWL in the Wild
  • Good and Bad Modeling Practices
  • OWL Levels and Logic

 
Critique du livre par la rédaction Thibaut Cuvelier le 4 août 2011 

Constatation : le Web sémantique semble réservé à une élite de théoriciens. Or, pour qu'il continue à se développer, il faut donner des outils à d'autres personnes, des praticiens. C'est l'objectif de ce livre : le Web sémantique d'un point de vue pratique. On peut dire qu'il y est parvenu. Les exemples ne sont pas simplement des exemples théoriques : ce sont de vrais exemples, présentant de vraies situations.

On vise ici une compréhension du Web sémantique, de ses concepts du point de vue du praticien, de celui qui va utiliser le Web sémantique pour l'apporter au plus grand nombre. Il doit donc bien comprendre chacun des concepts, pas seulement les manières de les exprimer.

Par contre, en ligne de mire, on ne trouve pas une compréhension en profondeur et exhaustive des concepts liés : il s'agit avant tout d'une introduction au sujet. Après avoir lu ce livre, on peut s'aventurer plus loin dans son étude du domaine.

On notera la présence de chapitres In the Wild, présentant l'utilisation pratique d'un langage, un cas d'utilisation réel (pas simplement réaliste), ainsi qu'un Good and Bad Modeling Practices, présentant les avantages et inconvénients de certaines pratiques en matière de modélisation d'ontologies.

Avez-vous lu ce livre ? Qu'en pensez-vous ? 2 commentaires Donner une note à l'article (5)

 
couverture du livre Thinking in Java

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Thinking in Java

de Bruce Eckel
Public visé : débutant à intermédiaire

Résumé de l'éditeur

The classic object-oriented introduction for beginners and experts alike, fully updated for Java SE5/6 with many new examples and chapters!

Test framework shows program output.

Design patterns are shown with multiple examples throughout: Adapter, Bridge, Chain of Responsibility, Command, Decorator, Facade, Factory Method, Flyweight, Iterator, Data Transfer Object, Null Object, Proxy, Singleton, State, Strategy, Template Method, and Visitor.

Introduction to XML for data transfer; SWT, Flash for user interfaces.

Completely rewritten concurrency chapter gives you a solid grasp of threading fundamentals.

500+ working Java programs in 700+ compiling files, rewritten for this edition and Java SE5/6.

Companion web site includes all source code, annotated solution guide, weblog, and multimedia seminars.

Thorough coverage of fundamentals; demonstrates advanced topics.

Explains sound object-oriented principles.

Hands-On Java Seminar CD available online, with full multimedia seminar by Bruce Eckel.

Live seminars, consulting, and reviews available. See www.MindView.net

1480 pages, 4e édition, 10 février 2006 

Édition : Prentice Hall

ISBN10 : 0131872486

ISBN13 : 9780131872486

Commandez sur www.amazon.fr :

48,80 € TTC (prix éditeur 48,80 € TTC) livraison gratuite !
  • Preface
  • Introduction
  • Introduction to Objects
  • Everything Is an Object
  • Operators
  • Controlling Execution
  • Initialization & Cleanup
  • Access Control
  • Reusing Classes
  • Polymorphism
  • Interfaces
  • Inner Classes
  • Holding Your Objects
  • Error Handling with Exceptions
  • Strings
  • Type Information
  • Generics
  • Arrays
  • Containers in Depth
  • I/O
  • Enumerated Types
  • Annotations
  • Concurrency
  • Graphical User Interfaces
  • A: Supplements
  • B: Resources
  • Index

 
Critique du livre par la rédaction Thibaut Cuvelier le 4 août 2011 

Un des meilleurs livres sur la programmation déjà parus (comme l'indiquent, par ailleurs, les très nombreuses critiques incluses en début d'ouvrage sur les précédentes éditions) : les sujets abordés sont larges et couvrent plus que ce qu'il faut connaître pour se lancer dans une vraie application Java, les explications n'étant pas en reste (plutôt trop longues que trop courtes, mais toujours agrémentées d'exemples, autant que possible). Du début à la fin, on a l'impression d'être mené par un maître du langage : la prose se révèle précise, les détails très poussés, à un point que l'auteur montre sans cesse qu'il maîtrise le langage et ses spécificités sur le bout des doigts, sans que cela ne gêne la lecture. Par moments, on arrête l'apprentissage du langage pour une petite balade philosophique, en discutant les choix posés par les concepteurs du langage, en expliquant, quand ils se sont trompés, ce qui ne convenait pas. Par moment, les explications vont trop loin et risquent réellement de perdre les plus débutants (écrire un livre pour les débutants est l'une des tâches les plus ardues, l'auteur y arrive la majorité du temps).

S'il faut trouver des points négatifs, on pourrait citer certains exemples dignes de romans-fleuves : des pages de code, bien commenté, compréhensible, mais certainement trop verbeux, voire effrayant pour un débutant. L'introduction mène directement jusque dans certains recoins du langage, une partie que les débutants ne pourront pas comprendre en entier, à moins d'avoir une certaine expérience dans un ou plusieurs autres langages ; de même, l'entièreté d'un concept n'est pas couverte dans le chapitre dédié, car certaines notions nécessaires n'ont pas encore été abordées, cela peut donner une impression de fouillis.

Ce livre a aussi une assez forte orientation « migration depuis C++ », ce qui risque de gêner les lecteurs ne connaissant pas le C++. Cependant, les autres bénéficieront d'un apprentissage qui oppose les deux langages : ce que fait l'un par rapport à l'autre, ce qui les distingue, les avantages et inconvénients de chacun.

Les exercices ne seront pas au goût de tout le monde : certaines fois, il suffit de montrer la véracité d'une explication, ce qui risque de paraître fort inutile aux yeux de certains (tandis que d'autres apprécieront). À côté, des exercices bien plus exigeants, pour lesquels quelques minutes de réflexion ne suffiront probablement pas ; certains sont même proposés comme projets de quadrimestre pour certains cours universitaires.

Maintenant, ce livre est-il à recommander comme tout premier livre Java ? Pour un débutant accroché, oui : certains chapitres sont relativement compliqués à comprendre, il s'agit de ne pas abandonner à la première difficulté. Pour un vrai débutant, sans aucune notion de programmation préalable, il vaut mieux profiter du Thinking in C en long et en large avant d'attaquer cette brique. Une fois lu entièrement, on peut être sûr d'avoir une bonne compréhension du langage, ce qui ne peut qu'être bénéfique aux plus débutants, même si beaucoup vont se demander à quoi cela sert et vont aller voir un ouvrage moins détaillé, plus pragmatique, qui part moins dans de longues discussions sur un sujet pas forcément utile au développement pur et dur.

Avez-vous lu ce livre ? Qu'en pensez-vous ? 5 commentaires Donner une note à l'article (5)

 
couverture du livre Effective Java

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Effective Java

Second Edition

de Joshua Bloch
Public visé : débutants, intermédiaires, expérimentés

Résumé de l'éditeur

Are you looking for a deeper understanding of the Java™ programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! Effective Java™, Second Edition, brings together seventy-eight indispensable programmer's rules of thumb: working, best-practice solutions for the programming challenges you encounter every day.

This highly anticipated new edition of the classic, Jolt Award-winning work has been thoroughly updated to cover Java SE 5 and Java SE 6 features introduced since the first edition. Bloch explores new design patterns and language idioms, showing you how to make the most of features ranging from generics to enums, annotations to autoboxing.

Each chapter in the book consists of several “items” presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and outstanding code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why.

Highlights include:
  • New coverage of generics, enums, annotations, autoboxing, the for-each loop, varargs, concurrency utilities, and much more
  • Updated techniques and best practices on classic topics, including objects, classes, libraries, methods, and serialization
  • How to avoid the traps and pitfalls of commonly misunderstood subtleties of the language
  • Focus on the language and its most fundamental libraries: java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io

Simply put, Effective Java™, Second Edition, presents the most practical, authoritative guidelines available for writing efficient, well-designed programs.

384 pages, 2e édition, 28 mai 2008 

Édition : Prentice Hall PTR

ISBN10 : 0321356683

ISBN13 : 9780321356680

Commandez sur www.amazon.fr :

39,94 € TTC (prix éditeur 39,94 € TTC) livraison gratuite !
  1. Introduction
  2. Creating and Destroying Objects
  3. Methods Common to All Objects
  4. Classes and Interfaces
  5. Generics
  6. Enums and Annotations
  7. Methods
  8. General Programming
  9. Exceptions
  10. Concurrency
  11. Serialization

 
Critique du livre par la rédaction Thibaut Cuvelier le 20 septembre 2011 

Un ensemble d'items, de gemmes pourrait-on dire, contenant des conseils de programmation en Java, tant pour le novice que pour le développeur plus expérimenté, du point de vue d'un concepteur d'API Java, tous utiles, un jour ou l'autre, vu la diversité des sujets évoqués.

Dans l'avant-propos, on remarque une citation intéressante :

This book address your third need: customary and effective usage. [...] Here he offers good advice, systematically organized, on how to structure your code so that it works well, so that other people can understand it, so that future modifications and improvements are less likely to cause headache.
Ce livre répond à votre troisième besoin : l'habitude et l'usage pratique. [...] Ici, il offre de bons conseils, systématiquement organisés, sur la manière de structurer le code pour qu'il fonctionne bien, que d'autres puissent le comprendre, que de futures modifications et améliorations ne causent pas trop de maux de tête.

C'est exactement ce qui est fait : alors que bien des livres décrivent en longueur la syntaxe du langage ou les outils disponibles, très peu se penchent sur la manière de bien les utiliser. On comprend alors les avantages mais aussi les faiblesses du langage, ce que l'on peut faire et ce qu'il est préférable d'éviter, même avec les meilleures intentions, pour que tous en bénéficient (tant les futurs mainteneurs que les utilisateurs des API).

Un point cependant que l'on pourrait reprocher : une grande partie est orientée du point de vue d'un concepteur d'API, c'est-à-dire pas vraiment le but de la majorité des développements. Ces bonnes pratiques, néanmoins, utilisées dans toute application, ne peuvent qu'améliorer le code et tout ce qui s'en suit, sans beaucoup extrapoler.

On peut donc, sans grand danger, le recommander à tout qui a déjà débuté dans le langage (il n'est pas du tout prévu pour apprendre la syntaxe, il la considère acquise en grande partie) : le seul effet sera de produire du code de meilleure qualité !

Les items ne sont pas prévus pour être lus l'un après l'autre obligatoirement, il y a souvent une série de références d'items qui approfondissent certains points, ce qui fait qu'ils sont généralement assez spécialisés - bien que, parfois, une seule page leur est dédiée, ce qui est un peu court. On peut donc utiliser ce livre comme référence constante lors d'un développement, pour avoir une approche souvent considérée comme la meilleure : tous en bénéficieront, à tout moment de l'utilisation du langage. Cependant, se limiter à le lire ne sera probablement pas suffisant : tester soi-même ce qui est proposé et les alternatives, voir pourquoi, « en vrai », la solution proposée est meilleure en général, déceler les cas où cela n'est pas tellement d'application, discuter de cela avec des experts du langage.

Cette deuxième édition a été complètement revue pour Java SE 5 et 6 et dispense donc les dernières nouveautés de ces deux versions, principalement la 5, étant donné que la mise à jour a commencé avant la sortie de Java 6.

Avez-vous lu ce livre ? Qu'en pensez-vous ? 1 commentaire Donner une note à l'article (5)

 
couverture du livre JavaScript

Note 4.0drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

JavaScript

Introduction et notions fondamentales

de Luc Van Lancker
Public visé : débutants

Résumé de l'éditeur

Ce livre sur JavaScript est extrait du titre "Ajax - Développez pour le web 2.0" dans la collection Ressources Informatiques aux Editions ENI.

Il s'adresse à un public de lecteurs initiés désireux d'ajouter des éléments dynamiques et de l'interactivité aux pages Web qu'ils développent. Cette connaissance du JavaScript est la base indispensable pour accéder aux techniques de création de sites plus évoluées que sont le Dhtml et l'Ajax.

Pour tirer le meilleur profit possible de ces éléments et pour la bonne compréhension de cet ouvrage, la connaissance et l'expérience du langage Html ou Xhtml sont des pré-requis nécessaires.

  • Chapitre 1 - Introduction au JavaScript : Définitions, outils, code JavaScript...
  • Chapitre 2 - Notions fondamentales : La casse, les commentaires, les constantes, les variables, les opérateurs...
  • Chapitre 3 - Fonctions et méthodes : Déclaration, appel, passage de paramètres, quelques méthodes JavaScript...
  • Chapitre 4 - Conditions et boucles : Les conditions if ... else, la boucle for, la boucle while, l'instruction break, l'instruction continue...
  • Chapitre 5 - Gestionnaire d'événement : les événements onClick, onFocus, onLoad, onUnLoad, onMouseOver, onMouseOut, onSubmit...
  • Chapitre 6 - Formulaires : La ligne de texte, les boutons de choix, le menu déroulant, les boutons d'envoi, de réinitialisation, de commande...
  • Chapitre 7 - Manipulation des chaînes de caractères : Length(), charAt(), indexOf(), substring(), toLowerCase(), toUpperCase(), replace(), les expressions régulières...
  • Chapitre 8 - Tableaux en JavaScript : Définition, initialisation, accès aux données, tableaux associatifs, méthodes spécifiques aux tableaux...
  • Chapitre 9 - Quelques autres objets JavaScript : Les objets Date, Math, navigator, window...
160 pages, 1re édition, 12 mai 2008 

Édition : éditions ENI

ISBN10 : 2746042401

ISBN13 : 9782746042407

Commandez sur www.amazon.fr :

9,50 € TTC (prix éditeur 10,00 € TTC) livraison gratuite !
  • Introduction au JavaScript
  • Notions fondamentales
  • Fonctions et méthodes
  • Conditions et boucles
  • Gestionnaire d'événement
  • Formulaires
  • Manipulation des chaînes de caractères
  • Tableaux en JavaScript
  • Quelques autres objets JavaScript

 
Critique du livre par la rédaction Thibaut Cuvelier le 29 septembre 2011 

Sans grande prétention, cet ouvrage propose d'apprendre les notions fondamentales de JavaScript. On remarquera l'effort pédagogique fourni par l'auteur, qui explique la programmation à des profils plutôt orientés infographie que développeurs. Il y arrive d'une belle manière, allant étape par étape, sans en brûler une seule, pour construire des notions de base en programmation avec JavaScript. L'auteur présuppose une connaissance de HTML.

On n'y retrouvera à ce titre que l'essentiel : après lecture, on pourra ajouter un peu d'interactivité aux pages, mais sans avoir des connaissances très approfondies de JavaScript. Notamment, le modèle DOM y est à peine survolé. Il ne faut pas espérer être à même d'écrire du code JavaScript poussé, ni même d'entreprendre l'AJAX sans formation plus avancée, mais ce n'est clairement pas l'objectif poursuivi. Le développeur ayant déjà une expérience de programmation n'aura sans doute pas grand-chose à apprendre de ce livre, si ce n'est les quelques différences de JavaScript dues à son utilisation côté client.

Malgré quelques fautes d'orthographe, l'auteur s'ingénie à montrer, dans un style clair, l'utilité de JavaScript dans des sites, pas seulement pour s'amuser à réaliser quelques effets, plutôt pour donner une valeur ajoutée, à travers de nombreux exemples illustrés par des captures d'écran du résultat dans le navigateur.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (4)

 
couverture du livre Structures de données avancées avec la STL

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Structures de données avancées avec la STL

Programmation orientée objet en C++

de Philippe Gabrini
Public visé : débutants à intermédiaires

Résumé de l'éditeur

Destiné aux étudiants de premier cycle en informatique ainsi qu'aux développeurs, ce manuel a trois objectifs : le premier est de présenter des structures de données avancées ; le deuxième, d'introduire la programmation orientée objet telle qu'elle a été définie en C++ ; et le troisième, de présenter un certain nombre d'algorithmes classiques liés aux structures de données.

Après avoir exposé les concepts de base de la programmation et des aspects orientés objet de C++, le livre présente en particulier :
  • un rappel sur l'analyse des algorithmes (notation grand O) ;
  • des méthodes de tri interne efficaces ;
  • un rappel sur les structures de données linéaires ;
  • les structures de données et les algorithmes de la STL (Standard Template Library) ;
  • les divers algorithmes de recherche dans une chaîne de caractères ;
  • diverses sortes d'arborescences (arbres binaires de recherche, arbres équilibrés AVL, arbres Rouge-Noir) ;
  • les graphes et les algorithmes de Prim, de Warshall, de Floyd, de Dijkstra, de Sharir, et de Kruskal ;
  • le type de données abstrait Table accompagné de la technique du hachage et des méthodes qui lui sont associées pour la résolution des collisions.
438 pages, 1re édition, 15 septembre 2005 

Édition : Dunod

ISBN10 : 2100495232

ISBN13 : 9782100495238

Commandez sur www.amazon.fr :

30,88 € TTC (prix éditeur 32,50 € TTC) livraison gratuite !
  • Fondements du langage de programmation C++
  • Tableaux, structures, pointeurs et entrée-sortie
  • Algorithmes et leur complexité
  • Génie logiciel et orientation objet
  • STL, algorithmes et structures de données
  • Structures de données simples
  • Programmation orientée objet : hiérarchie et polymorphisme
  • Arborescences
  • Arborescences spécialisées
  • Graphes
  • Tables

 
Critique du livre par la rédaction Thibaut Cuvelier le 25 décembre 2011 

Un livre tel qu'on aimerait en avoir plus souvent dans les mains : le côté pédagogue de l'auteur n'est en rien gâché par la qualité de l'écrit. Bien qu'il semble a priori plus orienté vers la pratique, ce livre présente également les aspects théoriques nécessaires à la bonne compréhension du contenu (ni éléments de la théorie de la complexité, ni fondements et concepts mathématiques des structures de données ne sont oubliés). Les structures de données les plus utiles sont présentées, leurs méthodes d'accès sont toujours accompagnées de leur complexité en temps (et en espace si cela revêt une certaine importance), pour arriver à comparer plusieurs manières d'implémenter les graphes en fonction des opérations qui devront être effectuées. Les algorithmes généralement appliqués sur ces structures ne sont en rien oubliés, ils sont d'ailleurs doublement présentés : tant un aspect pratique (l'implémentation en C++) que théorique (l'explication de l'algorithme, son pseudocode). Le contenu est orienté du côté du développeur qui doit utiliser ces structures, plutôt que du théoricien qui doit en développer de nouvelles (on ne s'appesantira pas sur le pourquoi du comment, plutôt les avantages et inconvénients, sur les cas d'utilisation, etc.).

Cependant, tout ne concerne pas les structures de données : l'auteur part du principe que le lecteur sait développer dans un certain langage et réexplique donc les fondements de la syntaxe du C++ sans s'appesantir, mais approfondit la programmation orientée objet (il en donne les bases nécessaires pour un aperçu global du sujet, mais sans aller dans toutes les finesses que l'on attendrait d'un livre spécifiquement consacré à la programmation orientée objet). Ceci empêche notamment d'utiliser la STL dès les premiers morceaux de code (les tableaux sont préférés pour les premiers chapitres), bien que, une fois les bases acquises, elle est utilisée de manière systématique.

Du style, on retiendra une certaine dose d'humour, mais aussi de fréquentes références culturelles (pas forcément de culture informatique) tout au long de l'ouvrage (ce dès la préface, d'ailleurs nommée « prolégomènes »). On remarquera aussi une certaine dose de notes de bas de page, des incitations à consulter d'autres ouvrages ou articles pour de plus amples informations sur un sujet, tant pour les principes des structures que pour les nombreux exemples d'utilisation.

Avez-vous lu ce livre ? Qu'en pensez-vous ? 11 commentaires Donner une note à l'article (3.5)

 
couverture du livre Le web sémantique

Note 4.0drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Le web sémantique

Comment lier les données et les schémas sur le web ?

de Fabien Gandon, Catherine Faron-Zucker, Olivier Corby
Public visé : débutants

Résumé de l'éditeur

Le web sémantique désigne un ensemble de technologies visant à rendre les ressources du web plus largement utilisables ou plus pertinentes grâce à un système de métadonnées qui utilisent notamment la famille des langages développés par le W3C (World Wide Web Consortium).

Cet ouvrage offre dans un langage accessible une synthèse de ce qu'il faut aujourd'hui savoir du web sémantique. Il explique simplement quelles sont les techniques mises en œuvre et dresse un panorama des utilisations potentielles et des bénéfices attendus.

224 pages, 1re édition, 1er mai 2012 

Édition : Dunod

ISBN10 : 2100572946

ISBN13 : 9782100572946

Commandez sur www.amazon.fr :

31,25 € TTC (prix éditeur 33,00 € TTC) livraison gratuite !
  • Un seul web
  • Le web des données
  • Sémantique des vocabulaires et inférences
  • Règles d'inférence
  • Ressources, outils et standards connexes
  • Pour en finir avec quelques idées reçues
  • Web et métadonnées ubiquitaires

 
Critique du livre par la rédaction Thibaut Cuvelier le 8 octobre 2012 

Domaine émergent malgré son âge (les premiers développements du Web sémantique datent de la fin des années 1990), on en décrie parfois le manque de pédagogie des ressources disponibles. De fait, les concepts sont nombreux et abstraits, mais ce livre les résume en permettant de comprendre les tenants et aboutissants de ces technologies que l'on peut facilement croire comme détachées du Web - pourtant, les auteurs arrivent à en montrer la continuité par rapport à l'existant, à les raccrocher à la réalité (oui, les concepts sont utiles, des applications sont montrées).

Ce livre est destiné à divers publics : tant le décideur que l'étudiant, tous y trouveront leur compte, mais ne le liront pas de la même manière. Il est d'ailleurs prévu de la sorte : il n'est pas nécessaire de le lire de manière linéaire pour en apprécier le contenu. Pour avoir une vue d'ensemble du domaine, les chapitres 1 et 5 à 7 résument l'essentiel sans entrer dans les détails techniques ; celui qui cherche à se former plus spécifiquement sur la pile de standards se focalisera sur les chapitres 2 à 4, qui traitent des standards par ordre de dépendance (d'abord le framework RDF, puis les formalismes des vocabulaires pour finir sur les règles d'inférence).

Ainsi, le livre est bien structuré, pour faciliter une lecture rapide, une utilisation en tant que livre de référence, pour éviter de passer son temps sur des détails qui paraissent peu intéressants aux yeux du lecteur. Chaque chapitre débute par un encadré précisant les objectifs à atteindre et se finit par un autre encadré fournissant un résumé des notions abordées.

Ce n'est pas pour autant qu'on peut parler de livre de vulgarisation : la technique est très présente, les détails plus d'ordre théorique ne sont pas omis, des raccourcis trop rapides ne sont pas pris. Cependant, il reste accessible à tout public intéressé par les révolutions en cours dans le domaine du Web.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 
couverture du livre Maîtriser Joomla!

Note 4.0drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Maîtriser Joomla!

Guide professionnel du développement d'applications

de Christophe Demko
Public visé : intermédiaire

Résumé de l'éditeur

Ce livre sur Joomla! (en version 1.6 au moment de la rédaction) est une référence unique et complète pour le développement d'applications avec Joomla!. Il a été conçu à la fois comme un guide permettant de mettre en œuvre les concepts sous-jacents à son fonctionnement mais aussi comme une description exhaustive des classes et méthodes du cadre applicatif. Il s'adresse aux développeurs PHP désireux d'exploiter la librairie étonnamment performante de Joomla! pour créer des applications internet de très haute facture.

Après une description de l'architecture générale de Joomla! l'auteur explique quel est le cheminement entre une demande d'affichage de page internet et son rendu sur le navigateur de l'utilisateur. C'est à travers un exemple concret que le chapitre 3 détaille la procédure à suivre pour développer des modules et le chapitre 4 est consacré au développement de composants, ceux-ci constituant la colonne vertébrale du système de gestion de contenus. Le chapitre 5 détaille la création de templates et le chapitre 6 décrit le développement de plugins qui permettent à Joomla! d'appeler des fonctions complémentaires au système.

Enfin, le chapitre 7 constitue la documentation de référence de l'ensemble des classes non décrites dans les autres chapitres.

Écrit par Christophe Demko, membre de l'équipe de développement de Joomla!, ce livre est le reflet fidèle des concepts à utiliser pour le développement d'applications internet fiables. Rempli de conseils d'expert sur tous les aspects de la programmation avec Joomla!, il sera votre guide de référence dans vos tâches de développement d'applications.

334 pages, 1re édition, 1er mars 2011 

Édition : Editions ENI

ISBN10 : 2746063417

ISBN13 : 9782746063419

Commandez sur www.amazon.fr :

37,58 € TTC (prix éditeur 39,56 € TTC) livraison gratuite !
  • Avant-propos
  • Introduction
  • Cheminement d'une requête utilisateur
  • Développement de modules
  • Développement de composants
  • Développement de plugins
  • Les templates
  • Les outils du framework

 
Critique du livre par la rédaction Thibaut Cuvelier le 29 octobre 2012 

Joomla! est un système de gestion du contenu (CMS, en anglais) très répandu (aux alentours de deux pour cent du Web l'utilise) et très orienté vers les utilisateurs. De ce fait, la documentation autour du développement d'extensions (au sens large) est assez limitée : un de ses défauts est d'être peu orientée développeur, au sens au peu de choses sont expliquées (une série de pièces s'assemblent au fil du tutoriel, sans qu'une ligne directrice soit présente, sans qu'on sache ce que l'on fait).

Dans ce contexte, un tel livre est une aubaine : l'auteur y explique ce qu'il fait, pourquoi il le fait, comment il choisit ses noms de classe et de fichier. Pour chaque type d'extension, il y décrit la manière de procéder, les classes spécifiques à utiliser, les concepts mis en œuvre. Il ne néglige pas de mentionner le fonctionnement interne du CMS derrière cette API, de telle sorte que l'on puisse bien comprendre ce qui se trame en coulisse.

Le livre s'ouvre sur le cheminement d'une requête dans le CMS, de l'appel du fichier index.php aux événements qui apparaissent, en déroulant méthodiquement et sans presser le pas ce fichier, levant le masque sur chaque partie intéressante de son organisation. Ce premier chapitre offre une vue d'ensemble sur les entrailles du logiciel.

Cependant, le livre n'est clairement pas destiné aux débutants : de bonnes connaissances en PHP objet sont absolument requises pour comprendre une grande majorité du livre, il est nécessaire d'avoir déjà joué avec Joomla!, savoir l'utiliser, l'installer. L'auteur passe toutes les prémisses utiles à l'utilisateur de base et se destine directement au développement pour le CMS.

Également, la pédagogie n'est pas le point fort du livre, elle n'est pas voulue du début à la fin : il s'agit d'une documentation technique francophone sur les mécanismes en jeu, sur les API proposées. Pas d'exemple développé de long en large dans le livre, mais bien un fil rouge (le développement d'un dictionnaire, avec composant, module et extension), dont les sources sont proposées à côté du livre. Seuls les morceaux importants sont repris et développés dans le livre, l'auteur se base beaucoup sur la pratique et la lecture de code ; elle est cependant grandement facilitée par les explications plus ex cathedra.

On en retiendra qu'il s'agit d'une excellente documentation technique, loin d'être désuète malgré l'âge de l'ouvrage et l'évolution rapide du CMS ; cependant, le livre n'est pas à conseiller au débutant en programmation (Web, PHP et en général).

Avez-vous lu ce livre ? Qu'en pensez-vous ? 1 commentaire Donner une note à l'article (5)

 
couverture du livre Réseaux

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Réseaux

de Andrew Tanenbaum et David Wetherall
Public visé : débutant à expert

Résumé de l'éditeur

L'ouvrage de référence sur les réseaux, entièrement mis à jour pour inclure les technologies incontournables de demain.

Ce best-seller mondial a fait l'objet d'une révision minutieuse pour refléter les évolutions technologiques récentes, avec une attention particulière accordée aux avancées en matière de multimédia, aux réseaux 3G utilisés avec les smartphones et les terminaux de poche, aux étiquettes radio (RFID) et aux réseaux de capteurs, aux réseaux de distribution de contenu (CDN), et aux réseaux peer-to-peer. De nouveaux développements concernent également le temps réel (audio et vidéo à partir de fichiers ou en streaming), la vidéo à la demande et la téléphonie sur Internet (voix sur IP).

Andrew Tanenbaum et David Wetherall exposent de façon détaillée le fonctionnement interne des réseaux, depuis la couche physique jusqu'à la couche application. Cet ouvrage est organisé de la façon suivante :

  • Couche physique (cuivre, fibre, sans fil, satellites, OFDM et CDMA, etc.).
  • Couche liaison de données (principes des protocoles, détection et correction des erreurs, HDLC, PPP, etc.).
  • Sous-couche MAC (Ethernet gigabit, 802.11, 802.16, Bluetooth et les RFID, sans fil à large bande, etc.).
  • Couche réseau (algorithmes de routage, qualité de service en temps réel, IPv4, IPv6, etc.).
  • Couche transport (programmation de sockets, UDP, TCP, RTP, contrôle de congestion, performances des réseaux, réseaux tolérants aux délais, etc.).
  • Couche application (messagerie électronique, Web, PHP, DNS, streaming audio, etc.).
  • Sécurité des réseaux (AES, RSA, chiffrement quantique, IPSec, sécurité du Web, sécurité 802.11 et Kerberos V5, etc.).

Ce livre présente en outre de nombreux exemples issus de l'Internet et des réseaux sans fil ; il comporte plusieurs centaines d'exercices, tous entièrement corrigés sur le site compagnon.

970 pages, 5e édition, 26 août 2011 

Édition : Pearson

ISBN10 : 2744075213

ISBN13 : 9782744075216

Commandez sur www.amazon.fr :

48,92 € TTC (prix éditeur 51,50 € TTC) livraison gratuite !
  • Introduction
  • La couche physique
  • La couche liaison de données
  • La sous-couche MAC de contrôle d'accès au canal
  • La couche réseau
  • Couche transport
  • La couche application
  • La sécurité des réseaux

 
Critique du livre par la rédaction Thibaut Cuvelier le 27 décembre 2012 

Les réseaux informatiques sont un vaste sujet : on peut regrouper sous ce titre tant le manuel d'utilisation d'un routeur que les concepts généraux implémentés dans ce routeur. Ce livre se concentre sur la deuxième partie : il donne une vision d'abord théorique sur les concepts, les protocoles, les algorithmes généralement mis en œuvre dans le domaine des réseaux. Ainsi, son public premier sera les étudiants en informatique, mais aussi toute personne désireuse de connaissances en réseaux ; son exhaustivité le rendra également utile en tant qu'ouvrage de référence.

L'approche globale est plus académique, théorique que praticienne : les auteurs se focalisent sur les principes, les concepts avant de partir dans leur utilisation. Les raisons théoriques pour lesquelles les solutions adoptées fonctionnent ne sont pas oubliées.

L'ouvrage n'est pas seulement complet, il est vraiment exhaustif : toutes les couches du modèle étudié (proche du modèle OSI) sont vues en détail, avec force exemples réels. L'inconvénient de cette approche est qu'il n'est pas possible d'en saisir tous les détails en première lecture à moins d'avoir une grande expérience dans le domaine. On peut vraiment parler de la « bible » des réseaux - à ce titre, la taille de l'ouvrage (on devrait plutôt parler de brique) ne devrait pas effrayer, c'est le gage de la complétude dans l'exposé, de la minimisation des non-dits.

Les bases sont couvertes, au même titre que les technologies plus récentes : IPv6, Wi-Fi, VoIP, RFID et bien d'autres sont abordées.

Un point plus noir : les théories sur lesquelles se construisent les réseaux sont supposées connues. Ainsi, une approche des mathématiques, de la programmation (en C, bien que les exemples devraient rester compréhensibles pour des personnes sans connaissance du C), de l'électromagnétisme est requise pour saisir l'utilité de certains développements.

La traduction est de bonne facture, les anglicismes y sont réduits autant que possible dans leur nombre, ce qui rend le texte d'autant plus accessible que l'auteur fait preuve de pédagogie, en introduisant au fur et à mesure des solutions de plus en plus complexes, réelles et actuelles, passant des solutions plus historiques aux principes utilisés actuellement.

Avez-vous lu ce livre ? Qu'en pensez-vous ? 2 commentaires Donner une note à l'article (5)

 
couverture du livre Les bases de données NoSQL

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Les bases de données NoSQL

Comprendre et mettre en œuvre

de Rudi Bruchez
Public visé : débutant à expert

Résumé de l'éditeur

Des bases pour la performance et le Big Data

En quelques années, le volume des données brassées par les entreprises a considérablement augmenté. Émanant de sources diverses (transactions, comportements, réseaux sociaux, géolocalisation...), elles sont souvent structurées autour d'un seul point d'entrée, la clé, et susceptibles de croître très rapidement. Autant de caractéristiques qui les rendent très difficiles à traiter avec des outils classiques de gestion de données. Par ailleurs, certains cas d'utilisation exigeant des temps d'accès très courts défient également les capacités des moteurs transactionnels. C'est pour répondre à ces différentes problématiques que sont nées les bases de données NoSQL (Not Only SQL), sous l'impulsion de grands acteurs du Web comme Facebook ou Google, qui les avaient développées à l'origine pour leurs besoins propres. Grâce à leur flexibilité et leur souplesse, ces bases non relationnelles permettent en effet de gérer de gros volumes de données hétérogènes sur un ensemble de serveurs de stockage distribués, avec une capacité de montée en charge très élevée. Elles peuvent aussi fournir des accès de paires clé-valeur en mémoire avec une très grande célérité. Réservées jusqu'à peu à une minorité, elles tendent aujourd'hui à se poser en complément du modèle relationnel qui dominait le marché depuis plus de 30 ans.

Du choix de la base NoSQL à sa mise en oeuvre

Cet ouvrage d'une grande clarté dresse un panorama complet des bases de données NoSQL, en analysant en toute objectivité leurs avantages et inconvénients. Dans une première partie, il présente les grands principes de ces bases non relationnelles : interface avec le code client, architecture distribuée, paradigme MapReduce, etc. Il détaille ensuite dans une deuxième partie les principales solutions existantes (Hadoop, MongoDB, Cassandra, CouchDB...), en précisant spécificités, forces et faiblesses de chacune. Complétée par une étude de cas réel, la dernière partie du livre est consacrée au déploiement concret de ces bases : dans quel cas passer au NoSQL ? quelle base adopter selon ses besoins ? quelles données basculer en NoSQL ? comment mettre en place une telle base ? comment la maintenir et superviser ses performances ?

À qui s'adresse cet ouvrage ?
  • Aux experts en bases de données, architectes logiciels, développeurs...
  • Aux chefs de projet qui s'interrogent sur le passage au NoSQL

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

279 pages, 1re édition, 5 avril 2013 

Édition : Eyrolles

ISBN10 : 2212135602

ISBN13 : 9782212135602

Commandez sur www.amazon.fr :

30,40 € TTC (prix éditeur 32,00 € TTC) livraison gratuite !

Qu'est-ce qu'une base de données NoSQL ?

  • Des SGBD relationnels au NoSQL
  • NoSQL versus SQL : quelles différences ?
  • Les choix techniques du NoSQL
  • Les schémas de données dans les bases NoSQL

Panorama des principales bases de données NoSQL

  • Hadoop et HBase
  • CouchDB
  • MongoDB
  • Riak
  • Redis
  • Cassandra
  • Les autres bases de données de la mouvance NoSQL

Mettre en oeuvre une base NoSQL

  • Quand aller vers le NoSQL et quelle base choisir ?
  • Mettre en place une solution NoSQL
  • Maintenir et superviser ses bases NoSQL
  • Etude de cas : le NoSQL chez Skyrock
  • Conclusion : comment se présente le futur ?

 
Critique du livre par la rédaction Thibaut Cuvelier le 19 septembre 2013 

Parmi les premiers ouvrages en français sur le sujet du NoSQL, ce livre présente la particularité intéressante d'avoir été rédigé par un spécialiste des bases de données relationnelles. Cette compétence est largement mise à profit tout au long du livre, où l'approche NoSQL (unifiée en ce qu'elle abandonne le relationnel) est sans cesse comparée à l'approche relationnelle, déjà fort ancienne au vu de l'histoire de l'informatique. Il ne faut cependant pas croire que l'objectif est de prouver une quelconque supériorité des systèmes largement déployés : l'auteur n'hésite pas à signaler les points où l'une ou l'autre approche est plus adapté, en indiquant qu'il n'est pas rare de devoir faire cohabiter une solution relationnelle en plus d'un accès NoSQL.

Le contenu s'organise selon trois parties fort distinctes.

  • La première introduit les notions de base du NoSQL, en partant de l'origine des systèmes de gestion de bases de données (avant l'omniprésence du relationnel) et amène les éléments qui ont propulsé le mouvement NoSQL, les difficultés éprouvées par le relationnel pur (notamment en cas de montée en charge pour des volumes typiques du big data) mais aussi les problèmes qu'il résout. Dès le début, les points plus techniques ne sont pas mis de côté, avec une discussion des interfaces de programmation offertes par les systèmes NoSQL, leurs avantages et inconvénients, sans oublier l'architecture grandement distribuée pour la plupart des représentants de la mouvance NoSQL (ainsi qu'une série de tests pratiques sur MongoDB ou Redis) ou le modèle de données implémenté (schéma, paires clé-valeur, documents, colonnes, etc.).
  • La deuxième partie se concentre sur les logiciels regroupés sous le pavillon NoSQL plus en détail : leur installation sur une distribution Linux (Ubuntu), leur programmation (la grande majorité des codes d'exemple est écrite en Python), ainsi que quelques éléments sur les spécificités de chacun. Les plus connus MongoDB ou CouchDB ne sont pas les seuls traités, puisque le moteur de recherche ElasticSearch ou la base de données orientée graphes Neo4j sont aussi introduits, bien qu'en moindres détails.
  • L'ouvrage s'achève sur une approche plus pragmatique de la nébuleuse NoSQL. Quand faut-il aller vers du NoSQL ? Comment le marier avec du relationnel ? Quelle base de données choisir ? Comment modéliser ses données ? Comment évaluer le matériel requis pour les besoins estimés ? Comment importer des données ? Il ne s'agit pas simplement de poser les bonnes questions, mais aussi de donner les éléments de réponse qui aideront à effectuer le bon choix, avec un exemple sous forme d'étude du cas de SkyRock, qui mèle allègrement relationnel et NoSQL (y compris les bases MySQL sans relationnel, sans jointures).

Une fois posées, ces presque trois centaines de pages donnent l'impression d'avoir survolé une grande partie de la sphère NoSQL, mais aussi d'en savoir plus sur ses motivations : ces outils ont été créés d'abord pour répondre à un besoin précis, pas pour être génériques. En plus de s'épancher longuement sur les particularités de chaque moteur, il a l'avantage de donner les premiers éléments pour s'en servir, tant du côté client (exemples de programmes) que serveur (administration de base, déploiement de groupes de machines), de telle sorte qu'il est aisé de commencer à tester les moteurs, voir comment ils réagissent dans une situation donnée et effectuer son choix en toute connaissance de cause.

 
couverture du livre Joomla!

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Joomla!

Le Guide Officiel

de Jennifer Marriott, Elin Waring
Public visé : débutant

Résumé de l'éditeur

Le Guide officiel Joomla! est l'ouvrage de référence pour tout administrateur, blogueur, éditeur de contenus, développeur ou designer, débutant ou utilisateur averti. Grâce à des explications simples et des exemples pratiques, il vous permettra de mettre en place un site web de qualité, en accord avec vos cibles et le public que vous visez.

Si vous débutez avec Joomla!, vous apprendrez dans ce livre à créer et mettre en ligne des sites de qualité immédiatement opérationnels et entièrement personnalisables. Si vous êtes un utilisateur plus expérimenté, vous découvrirez comment rendre vos sites plus flexibles, plus attractifs, plus riches en fonctionnalités, en exploitant toutes les capacités et nouveautés de Joomla! 2.5 et 3. Dans un cas comme dans l'autre, vous maîtriserez tous les mécanismes de Joomla! et ferez connaissance avec la grande communauté Joomla!, afin de prendre appui sur elle pour la mise en place de votre site, ou pour contribuer au projet.

Le Guide officiel Joomla! vous guidera de la première étape de votre projet de site à la dernière, en passant par les thèmes, les extensions, et les fonctionnalités. Il vous donnera toutes les astuces dont vous avez besoin pour améliorer le référencement de votre site pour Joomla!, ainsi que de précieux conseils le tenir à jour, penser son marketing, et l'adapter votre site en fonction de votre activité.

Au sommaire
  • Pensez vos sites en amont, avant de les mettre en place
  • Créez des sites web rapidement, sans commettre les erreurs les plus courantes
  • Installez et confi gurez Joomla!
  • Créez et éditez votre contenu pour votre site Joomla!
  • Personnalisez votre site avec les thèmes Joomla! et les extensions
  • Optimisez le référencement de votre site pour les moteurs de recherche
  • Maintenez votre site Joomla! et effectuez des sauvegardes de sécurité
  • Participez à la communauté Joomla! en tant qu'utilisateur ou en tant que contributeur

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

380 pages, 2e édition, 24 mai 2013 

Édition : Pearson

ISBN10 : 2744025704

ISBN13 : 9782744025709

Commandez sur www.amazon.fr :

33,25 € TTC (prix éditeur 35,00 € TTC) livraison gratuite !
  • Le projet Joomla
  • Avant d'installer Joomla
  • Installer Joomla
  • Configurer Joomla
  • Gérer le contenu
  • Introduction aux extensions
  • Introduction aux templates
  • Créer un template simple
  • Promouvoir et s'occuper du site
  • Garder le site à jour
  • Joomla pour l'entreprise
  • Joomla pour les associations
  • Joomla pour l'enseignement

 
Critique du livre par la rédaction Thibaut Cuvelier le 24 octobre 2013 

L'avant-propos de ce livre le résume fort bien en peu de mots :

Joomla!, le guide officiel prend une approche différente de celles des autres "modes d'emploi". Il se focalise non pas sur l'utilisation de Joomla, mais sur la construction de sites web réels avec Joomla.

Couvrant tant Joomla 2.5 que 3 (ce qui lui assure d'être à jour jusqu'en 2015), il replace le CMS Joomla! dans une approche holistique de construction d'un site : il ne s'agit pas seulement d'installer une application sur un serveur puis de la configurer, il faut également penser le site, réfléchir aux implications. Ainsi, le deuxième chapitre s'oriente autour des questions essentielles lors la construction d'un site : déterminer son objectif, enregistrer un nom de domaine, choisir un hébergeur ; il présente également des notions de droit d'auteur et de marketing.

Cette caractéristique est approfondie dans les études de cas des derniers chapitres : avant d'entrer dans les détails des extensions utiles dans un cas particulier et des personnalisations à apporter au logiciel, les auteures prennent le temps de planifier le site, d'évaluer les besoins auxquels il répond.

Le cheminement du lecteur commence par une présentation du projet Joomla!, de son histoire dès la scission d'avec Mambo, avec une présentation des outils indispensables à tout utilisateur de Joomla! (les communautés d'entraide, le recueil d'extensions) et de la communauté derrière le projet. Bien évidemment, pour un projet open source, les auteures n'hésitent pas à signaler que toute contribution est intéressante.

La partie réellement technique n'arrive qu'après une quarantaine de pages avec l'installation d'un premier site, sans prérequis : l'utilisateur n'est pas considéré maître de son logiciel FTP et administrateur système, mais bien simple utilisateur d'un service d'hébergement. Les explications sont fondées sur cPanel.

Les chapitres suivants construisent sur ce site vierge en présentant, de manière thématique, les fonctionnalités utiles pour les utilisateurs, en commençant par celles utiles avant de créer la première page de contenu (la configuration et les menus), puis en présentant les extensions et les possibilités de développement de thèmes simples.

Avant de partir sur les études de cas, les auteures expliquent ce qu'il faut faire une fois le site lancé pour le maintenir en vie : s'assurer qu'il est bien référencé, fidéliser les visiteurs, mettre Joomla! à jour.

Ainsi, il est prévu pour parer les lecteurs de toutes les compétences nécessaires pour réaliser un site Web réussi. À lui seul, il donne toutes les clés nécessaires. Notamment, une annexe présente une série de problèmes classiques et la manière de les résoudre ; une autre présente une série de ressources utiles pour approfondir ses connaissances. Par contre, il ne faut pas chercher en lui une présentation avancée des concepts derrière l'implémentation de Joomla! ou pour le personnaliser jusqu'aux tréfonds, ce n'est pas son objectif : il reste relativement orienté vers les utilisateurs débutants, tout au long de l'ouvrage (un glossaire présentant les termes techniques pas forcément connus mais souvent rencontrés dans l'univers Joomla! est disponible à la fin de l'ouvrage).

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 
couverture du livre Coder efficacement

Note 4.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Coder efficacement

Bonnes pratiques et erreurs à éviter (en C++)

de Philippe Dunski
Public visé : débutant à expert

Résumé de l'éditeur

Développer une application peut rapidement devenir un enfer si vous n'avez pas anticipé certaines difficultés et fait les bons choix au moment de sa conception. Ce livre vous aidera à vous poser les bonnes questions et à tirer le meilleur parti de la programmation objet, en particulier en C++, sans tomber dans les pièges les plus fréquents. Il clarifie certains concepts délicats et passe en revue un ensemble de bonnes pratiques, qui rendront vos projets plus évolutifs et plus faciles à maintenir.

Organisé en quatre parties, il traite successivement :

  • des principes de base qui devraient être respectés quel que soit le langage de programmation ou le paradigme utilisé ;
  • des fondements de la programmation orientée objet et des principes qui sont applicables en toutes circonstances dès lors qu'on utilise ce paradigme ;
  • des principes spécifiques au C++ ;

pour se terminer sur une étude de cas approfondie détaillant les différentes étapes de conception d'un jeu d'échecs en conformité avec les principes énoncés précédemment. L'annexe vous apporte quelques compléments sur des aspects transversaux tels que la compilation ou les outils d'aide au développement.

Sa présentation sous forme de fiches thématiques permet aussi bien une lecture continue qu'un accès direct aux points qui vous intéressent.

Écrit sur un ton vivant et personnel, ce livre vous présente un point de vue résolument engagé en faveur d'une approche moderne de la programmation.

Avez-vous lu ce livre ? Qu'en pensez-vous ? 10 commentaires Donner une note à l'article (5)

416 pages, 1re édition, 17 février 2014 

Édition : D-BookeR

ISBN13 : 978-2-8227-0166-2

Commandez sur www.amazon.fr :

35,00 € TTC (prix éditeur 35,00 € TTC) livraison gratuite !
  • Quelques concepts de base
  • Les fondements de la programmation orientée objet
  • Et le C++ dans tout ça ?
  • Étude de cas : un jeu d'échecs en 3000 lignes de code
  • Annexe

 
Critique du livre par la rédaction Thibaut Cuvelier le 23 mars 2014 

Bien peu d'ouvrages se concentrent sur la manière de bien programmer. À l'instar de Effective Java (Joshua Bloch), ce livre a pour objectif de présenter les principes à respecter pour obtenir un code maintenable, évolutif. Il n'est pas spécifique au C++ dans ses deux premières parties : les principes généraux qui y sont énoncés sont valables pour une série de langages (de manière générale quand il s'agit d'écrire du code lisible ou d'éviter les effets de bord, plus spécifiquement pour l'orienté objet avec les grands principes que sont la substitution ou l'ouvert/fermé).

L'un de ses points forts est que l'auteur fait preuve de pragmatisme : ces préceptes sont prévus pour faciliter la maintenance du code lors de son évolution, mais leur respect peut mener à un code plus compliqué à écrire, à plus de réflexion avant de se lancer au clavier. Si ces évolutions sont très peu probables, inutile d'ajouter une couche de complexité au projet pour en faciliter l'ajout ultérieur (« la solution la plus simple est toujours la meilleure »).

Les premières parties du livre sont alors mises en application dans un jeu d'échecs en console. Bien que l'exemple soit relativement simple, bien coder l'application (pour en faciliter les évolutions, tant dans la jouabilité que dans l'interface) requiert de se poser, de réfléchir avant d'agir. Il s'agit d'ailleurs d'un des points sur lesquels l'auteur insiste : pour produire du code, une application de qualité, il n'est pas suffisant de s'installer derrière un clavier et de taper à un rythme effréné.

L'application des principes se fait exclusivement en C++, avec une certaine utilisation de C++11 là où le standard apporte au code une lisibilité supplémentaire ou de meilleurs messages d'erreur. L'ouvrage suppose cependant une connaissance de C++03, le standard précédent du langage : les nouveautés sont expliquées afin que le lecteur comprenne l'avantage d'utiliser les nouvelles constructions. Par contre, il ne s'agit pas d'un ouvrage traitant en long et en large du nouveau standard.

Certains patrons de conception sont aussi présentés, au niveau de l'étude de cas, afin de résoudre des problématiques propres au développement logiciel. Bien que le paradigme orienté objet soit omniprésent, l'œuvre n'est pas intégriste : d'autres paradigmes implémentés par C++, notamment la programmation générique, sont employés afin de limiter la quantité de code à écrire.

L'organisation est plus proche d'une série de fiches thématiques que d'une narration continue : la partie plus « théorique » de l'ouvrage n'est pas tant prévue pour une lecture linéaire qu'un piochage des éléments intéressants à un instant donné.

Ce livre vivant peut donc être recommandé chaudement à tous les développeurs. Les débutants y trouveront diverses manières d'améliorer leur code, mais ils n'en bénéficieront vraiment qu'avec de l'expérience de la programmation, notamment en C++ (l'annexe présente d'ailleurs un aperçu général de la chaîne de compilation en C++, souvent mystifiante pour ce public cible). Les plus chevronnés pourront découvrir de nouvelles pratiques pour améliorer leur manière de développer.

Avez-vous lu ce livre ? Qu'en pensez-vous ? 10 commentaires Donner une note à l'article (5)

 
couverture du livre Programmer en Fortran

Note 4.0drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Programmer en Fortran

Fortran 90 et ses évolutions : Fortran 95, 2003 et 2008

de Claude Delannoy
Public visé : débutant

Résumé de l'éditeur

Bien qu'existant depuis de nombreuses décennies, Fortran a toujours su évoluer pour garder sa place auprès de langages plus récents dans le domaine du calcul scientifique.

Cet ouvrage est destiné à tous ceux qui souhaitent maîtriser la programmation en Fortran : étudiants des disciplines scientifiques, chercheurs ou ingénieurs, enseignants de ce langage.

Il a été conçu sous forme d'un cours complet, chaque notion importante étant illustrée d'un programme d'exemple montrant comment la mettre en œuvre dans un contexte réel. La plupart des chapitres sont dotés d'exercices corrigés en fin de volume. Ils vous permettront de contrôler l'acquisition de vos connaissances.

La présente édition tient compte des différentes versions du langage. L'exposé privilégie Fortran 90/95, qui reste toujours très utilisé, les différences avec Fortran 77 et les apports des normes 2003 et 2008 étant mentionnés au fil du texte.

Deux nouvelles annexes présentent les possibilités de programmation orientée objet offertes par Fortran 2003, ainsi que les autres apports des normes Fortran 95, 2003 et 2008.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

454 pages, 2e édition, 19 février 2015 

Édition : Eyrolles

ISBN13 : 978-2-2121-4020-0

Commandez sur www.amazon.fr :

36,00 € TTC (prix éditeur 36,00 € TTC) livraison gratuite !
  • Généralités sur Fortran 90
  • Les types de base de Fortran 90 : integer, real, double précision et logical
  • Les expressions et l'instruction d'affectation
  • Les instructions de contrôle
  • Les tableaux
  • Les entrées-sorties standards
  • Les sous-programmes et les fonctions
  • Les chaînes de caractères
  • Les structures (ou types dérivés)
  • La gestion dynamique et les pointeurs
  • Les modules et la généricité
  • Les fichiers

Annexes

  • Les procédures intrinsèques de Fortran 90
  • Les variantes des types de base
  • Le type complex
  • Les descripteurs de format
  • Les priorités des opérateurs
  • Les instructions de déclaration
  • L'ordre des instructions
  • La programmation objet depuis Fortran 2003
  • Les nouveautés de Fortran 95, 2003 et 2008
  • Les instructions obsolètes
  • Correction des exercices

 
Critique du livre par la rédaction Thibaut Cuvelier le 21 décembre 2015 

Fortran n'est assurément pas le langage à la mode dans la communauté informatique au sens large : l'Histoire le retient comme l'un des tout premiers langages de programmation (il remonte aux années 1950), mais il reste couramment utilisé aujourd'hui — même si son emploi actuel ne ressemble en rien à ses débuts sur cartes perforées. Ce livre se place résolument au début de la renaissance de Fortran : il s'axe exclusivement autour de la version 90 et l'antique FORTRAN 77 est à peine cité dans le texte principal. En effet, le passage de l'une à l'autre marque une vraie rupture pour les développeurs. La rétrocompatibilité est cependant entièrement conservée, c'est pourquoi les constructions désuètes héritées de FORTRAN 77 sont expliquées dans une annexe — principalement pour faciliter la lecture et la compréhension du code de cette époque.

L'ouvrage, fort académique, a l'avantage d'être pédagogique et d'introduire progressivement les différentes notions, en partant de connaissances assez limitées de la programmation impérative. Il donne également un aperçu très large des possibilités de Fortran, y compris des fonctionnalités les plus récentes telles que la programmation orientée objet. Certains autres aspects, comme les cotableaux, sont à peine survolés — le livre ayant une longueur limitée. Un point gênant pour les plus débutants est l'impasse totale sur les aspects pratiques : l'auteur ne cite ni compilateur ni environnement de développement pour démarrer avec Fortran, pas même en annexe ; certes, ces informations peuvent rapidement devenir dépassées, mais elles aident à entrer dans la pratique du langage.

Toutefois, la lecture laisse une désagréable impression de manque de mise à jour. Outre la mise en page vieillotte, certains exemples font encore référence à des montants en francs et à des taux de TVA de 18,6 % (héritage français du début des années 1990). Les références aux versions plus récentes de Fortran donnent parfois l'impression d'avoir été ajoutées à la va-vite. De même, l'ouvrage cite régulièrement les avantages de Fortran par rapport aux autres langages pour une utilisation scientifique, mais les exemples sont rarement tirés de ce domaine ; les points mis en avant ont surtout trait à la syntaxe de manipulation des tableaux, qui ne sont absolument pas comparés aux langages de référence actuels, à l'instar de MATLAB (qui n'est même pas cité).

Le style de rédaction pourra rebuter plus d'un lecteur. Il est très académique, parfois plus proche du livre de référence que du cours (dix annexes), avec une bonne quantité de notes de bas de page et de remarques renvoyant vers la suite de l'ouvrage. L'auteur se perd régulièrement dans des détails de bas niveau, moins importants à l'heure actuelle, comme l'arithmétique des compléments à deux, les nombres en virgule flottante en base seize et autres détails des architectures IBM relativement anciennes.

Globalement, l'ouvrage apporte des bases de programmation en Fortran moderne largement suffisantes pour bien écrire de grandes quantités de code. Les exercices permettent de bien assimiler la matière. Cependant, pour débuter avec le langage, il reste souvent trop abstrait : la partie théorique, parfois assez consistante, vient toujours avant les exercices ; le lien avec la pratique de développement reste relativement ténu.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 
couverture du livre Programmer efficacement en C++

Note 5.0drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Programmer efficacement en C++

42 conseils pour mieux maîtriser le C++ 11 et le C++ 14

de Scott Meyers
Traducteur(s) : Hervé Soulard
Public visé : intermédiaire à avancé

Résumé de l'éditeur

Le C++ 11 et plus encore le C++ 14 sont des évolutions significatives du langage C++. Cet ouvrage vous aidera non seulement à découvrir ce qui a changé, mais aussi à écrire du code qui soit correct, efficace, facile à maintenir et à porter. Son objectif n'est pas de décrire ce que vous devez faire ou ne pas faire, mais de vous apporter une compréhension en profondeur du fonctionnement de C++11 et de C++14.

Il est structuré en 42 conseils qui vous enseigneront à la fois les bonnes pratiques et les pièges à éviter.

Vous voulez :

  • comprendre les différentes formes de déduction de type,
  • savoir quand (ne pas) utiliser les déclarations auto,
  • découvrir pourquoi les fonctions membres const doivent être sûres vis-à-vis des threads,
  • apprendre à implémenter l'idiome Pimpl avec std::unique_ptr,
  • comprendre pourquoi éviter le mode de capture par défaut dans les expressions lambda,
  • assimiler les différences entre std::atomic et volatile.

Toutes les réponses se trouvent ici. Elles sont indépendantes de la plate-forme et conformes à la norme. Cet ouvrage présente un C++ portable.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

320 pages, 1re édition, 16 mars 2016 

Édition : Dunod

ISBN10 : 2-10-074391-0

ISBN13 : 9782100743919

Commandez sur www.amazon.fr :

29,00 € TTC (prix éditeur 29,00 € TTC) livraison gratuite !
  • Comprendre les types
  • Les fonctions auto
  • Migrer vers les versions modernes du C++
  • Les pointeurs intelligents
  • Les références Rvalue, les Move semantics et le Perfect forwarding
  • Les Lamdba expressions
  • Le runtime d'accès concurrentiel pour C++

 
Critique du livre par la rédaction Thibaut Cuvelier le 19 mai 2016 

Scott Meyers est un gourou du C++, maintenant parti à la retraite. Sa dernière contribution à l'environnement C++ se veut magistrale, en détaillant les points les moins bien compris et utilisés des dernières itérations de la norme, c'est-à-dire C++11 et C++14, avec un code dans un style résolument moderne. L'auteur exploite dans cet ouvrage sa participation active dans la préparation des nouvelles versions du langage, en expliquant les raisons de l'ajout de l'une ou l'autre fonctionnalité. Il n'est pas avare en clarifications dans l'implémentation des compilateurs les plus courants. Globalement, ce livre fournit une vue approfondie des points les plus délicats des nouveautés syntaxiques.

Clairement, le livre ne s'adresse pas aux débutants : pour en profiter, il est nécessaire d'avoir déjà une certaine exposition aux nouveautés de C++11 et de C++14, avec une bonne expérience de C++ ; ce texte n'est pas un guide complet sur le C++ moderne et les derniers ajouts au langage. Sans ces connaissances préalables, l'ouvrage se montrera très ardu à aborder : l'auteur descend dans les détails les plus sombres de la norme, expose au grand jour toute une série de cas limites, le tout dans un style assez dense (à peine plus de trois cents pages pour autant de contenu, c'est un exploit, surtout que l'écriture reste lisible).

De par cette conception, le livre ravira cependant un public très large. Ceux qui n'ont pas encore une grande compréhension des avancées du C++ moderne auront une explication rationnelle des nouveaux concepts, les plus avancés se réjouiront du style d'écriture orienté vers un usage à long terme : il ne contient pas vraiment de solution directe à des problèmes rencontrés, mais entretient une culture C++ moderne. La performance du code généré est un point sur lequel l'auteur insiste, parfois lourdement.

Chaque « conseil » s'achève toujours sur un bref résumé des points essentiels à retenir. Cependant, la terminologie de « conseil » est très mal adaptée : il s'agit plutôt de séquences sur un sujet donné, préférant l'explorer à fond, en présentant les diverses alternatives et les avantages et défauts des unes et des autres. D'ailleurs, les points spécifiques à C++11 ou C++14 sont indiqués, en précisant ce qui est valable dans une version et pas l'autre, mais aussi tout ce qui s'applique depuis C++98.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 
couverture du livre Apprentissage machine

Note 3.5drapeau
Détails du livre
Sommaire
Critiques (1)
 
 

Apprentissage machine

De la théorie à la pratique - Concepts fondamentaux en Machine Learning

de Massih-Reza Amini

Résumé de l'éditeur

Apprentissage machine et intelligence artificielle

L'apprentissage machine est l'un des domaines phares de l'intelligence artificielle. Il concerne l'étude et le développement de modèles quantitatifs permettant à un ordinateur d'accomplir des tâches sans qu'il soit explicitement programmé à les faire. Apprendre dans ce contexte revient à reconnaître des formes complexes et à prendre des décisions intelligentes. Compte tenu de toutes les entrées existantes, la complexité pour y arriver réside dans le fait que l'ensemble des décisions possibles est généralement très difficile à énumérer. Les algorithmes en apprentissage machine ont par conséquent été conçus dans le but d'acquérir de la connaissance sur le problème à traiter en se basant sur un ensemble de données limitées issues de ce problème.

Un ouvrage de référence

Cet ouvrage présente les fondements scientifiques de la théorie de l'apprentissage supervisé, les algorithmes les plus répandus développés suivant ce domaine ainsi que les deux cadres de l'apprentissage semi-supervisé et de l'ordonnancement, à un niveau accessible aux étudiants de master et aux élèves ingénieurs. Nous avons eu ici le souci de fournir un exposé cohérent reliant la théorie aux algorithmes développés dans cette sphère. Mais cette étude ne se limite pas à présenter ces fondements, vous trouverez ainsi quelques programmes des algorithmes classiques proposés dans ce manuscrit, écrits en langage C (langage à la fois simple et populaire), et à destination des lecteurs qui cherchent à connaître le fonctionnement de ces modèles désignés parfois comme des boîtes noires.

À qui s'adresse ce livre ?

  • Aux élèves ingénieurs, étudiants de master et doctorants en mathématiques appliquées, algorithmique, recherche opérationnelle, gestion de production, aide à la décision.
  • Aux ingénieurs, enseignants-chercheurs, informaticiens, industriels, économistes et décideurs ayant à résoudre des problèmes de classification, de partitionnement et d'ordonnancement à large échelle.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

320 pages, 1re édition, 5 février 2015 

Édition : Eyrolles

ISBN10 : 2-212-13800-8

ISBN13 : 978-2-212-13800-9

Commandez sur www.amazon.fr :

39,00 € TTC (prix éditeur 39,00 € TTC) livraison gratuite !
  • Introduction à la théorie de l'apprentissage
  • Algorithmes d'optimisation convexe non-contrainte
  • Classification bi-classes
  • Classification multi-classes
  • Apprentissage semi-supervisé
  • Apprentissage de modèles d'ordonnancement
  • Annexes (rappels de probabilités, code programmes)

 
Critique du livre par la rédaction Thibaut Cuvelier le 7 juillet 2016 

La science des données est un mot clé à la mode actuellement, puisque les entreprises cherchent à tirer le meilleur profit des informations enregistrées. L'un de ses principaux outils est l'apprentissage automatique, domaine actuellement aussi en explosion : il attire l'attention et les auteurs. Certains ouvrages ont une vocation purement pratique, en ignorant complètement les détails des algorithmes, ce qui empêche de comprendre ce qui se passe en cas de résultats insatisfaisants. Ce livre ne se place pas dans cette optique : il descend au cœur des méthodes d'apprentissage, avec les détails mathématiques afférents, de telle sorte que ces outils ne soient pas des boîtes noires. En cela, il s'oriente très clairement vers un public de chercheurs dans le domaine, d'utilisateurs conscients de leurs outils.

C'est aussi, probablement, son point faible : les détails mathématiques occultent le reste du contenu. Le formalisme y est poussé très loin, notamment pour s'accrocher autour de l'axe du principe de minimisation du risque empirique : cette organisation confère au document une remarquable cohérence, mais ignore les questions de mise en œuvre. Le titre indique pourtant un voyage de la théorie à la pratique : cette dernière est résumée à l'implémentation (en C, parfois K&R !) des algorithmes. Les traces d'utilisation réelle des algorithmes sont ténues… et nulle trace de motivation par des applications réelles du contenu. En réalité, en opposition avec son titre, le livre se destine, à peu près exclusivement, aux chercheurs, avec une abondance de preuves mathématiques, mais aussi de références vers la littérature.

On peut pointer quelques manques dans l'ouvrage, comme les arbres de décision et leurs multiples variantes comme les forêts aléatoires, mais aussi la régression, qui n'est pas traitée explicitement. Ils ne sont cependant pas gênants, bon nombre d'algorithmes sont déjà au programme (perceptrons, SVM, AdaBoost, par exemple). Par contre, la question de l'évaluation de la qualité d'un modèle généré n'est pas véritablement à l'ordre du jour, sauf dans le chapitre sur l'apprentissage de fonctions d'ordonnancement.

La mise en page est soignée et aide généralement la lecture. Certaines parties du texte sont encadrées, notamment des sections qui mettent en évidence des notions centrales ou qui récapitulent le chapitre. Cependant, les mêmes artéfacts esthétiques sont employés pour des preuves : sont-elles alors mises en avant par rapport au reste du texte ? Ce n'est pas clair.

Globalement, l'ouvrage est complet et axé sur la théorie, difficile d'accès pour des personnes n'ayant pas eu une formation universitaire poussée en mathématiques. Celui qui souhaite se mettre à l'apprentissage automatique dans la pratique en retirera néanmoins quelques avantages, principalement pour la désacralisation des méthodes employées.

Avez-vous lu ce livre ? Qu'en pensez-vous ? Commentez Donner une note à l'article (5)

 

  

Copyright © 2010 - 2016 Thibaut Cuvelier. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.