Critiques de formations en ligne et de livresConsultez tous les livres

Dernière mise à jour : 14 novembre 2019  - 49 livres - 49 critiques - note globale : 4.0

  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
  23. Rercherche d'information - Applications, modèles et algorithmes — data mining, décisionnel et big data
  24. Data Scientist et langage R - Guide d'autoformation à l'exploitation des Big Data
  25. Big Data et Machine Learning - Les concepts et les outils de la data science
  26. Maîtrisez l'utilisation des technologies Hadoop - Initiation à l'écosystème Hadoop
  27. Machine Learning avec Scikit-Learn - Mise en oeuvre et cas concrets
  28. Deep Learning avec TensorFlow - Mise en oeuvre et cas concrets
  29. Apprentissage artificiel - Deep learning, concepts et algorithmes
  30. Data science - Cours et exercices
  31. Les réseaux - L'ére des réseaux cloud et de la 5G - Edition 2018-2020
  32. Design Patterns - Apprendre la conception de logiciels en réalisant un jeu vidéo (avec exercices et corrigés)
  33. Algorithms and Networking for Computer Games
  34. Conception d'algorithmes - Principes et 150 exercices corrigés
  35. Machine Learning for Data Streams - With Practical Examples in MOA
  36. Elements of Causal Inference - Foundations and Learning Algorithms
  37. Écrire un scénario interactif - Jeux vidéo, escape games, serious games
  38. Data Visualization - Charts, Maps, and Interactive Graphics
  39. Théorie des codes - Compression, cryptage, correction
  40. Hands-On Unsupervised Learning Using Python - How to Build Applied Machine Learning Solutions from Unlabeled Data
  41. Stream Processing with Apache Flink - Fundamentals, Implementation, and Operation of Streaming Applications
  42. Think Julia - How to Think Like a Computer Scientist
  43. GPU Parallel Program Development Using CUDA -
  44. Computer Graphics Through OpenGL - From Theory to Experiments
  45. Algorithms Illuminated: The Basics -
  46. Algorithms Illuminated: Graph Algorithms and Data Structures -
  47. Algorithms Illuminated: Greedy Algorithms and Dynamic Programming -
  48. Kernelization - Theory of Parameterized Preprocessing
  49. Les fibres optiques - Notions fondamentales (Câbles, Connectique, Composants, Protocoles, Réseaux...)
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.0drapeau
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)

 
couverture du livre Rercherche d'information

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

Rercherche d'information

Applications, modèles et algorithmes — data mining, décisionnel et big data

de Massih-Reza Amini, Éric Gaussier

Résumé de l'éditeur

Le premier ouvrage francophone sur les algorithmes qui sous-tendent les technologies de big data et les moteurs de recherche !

Depuis quelques années, de nouveaux modèles et algorithmes sont mis au point pour traiter des données de plus en plus volumineuses et diverses. Cet ouvrage présente les fondements scientifiques des tâches les plus répandues en recherche d'information (Rl), tâches également liées au data mining, au décisionnel et plus générale-ment à l'exploitation du big data.

La deuxième édition de cet ouvrage propose un exposé détaillé et cohérent des algorithmes classiques développés dans ce domaine, abordable par des lecteurs qui cherchent à connaître le mécanisme des outils quotidiens d'Internet. De plus, le lecteur approfondira les concepts d'indexation, de compression, de recherche sur le Web, de classification et de catégorisation, et pourra prolonger cette étude avec les exercices corrigés proposés en fin de chapitre.

Ce livre s'adresse tant aux chercheurs et ingénieurs qui travaillent dans le domaine de l'accès à l'information et employés de PME qui utilisent en profondeur les outils du webmarketing, qu'aux étudiants de Licence, Master, écoles d'ingénieurs ou doctorants qui souhaitent un ouvrage de référence sur la recherche d'information.

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

294 pages, 2e édition, 3 janvier 2017 

Édition : Eyrolles

ISBN10 : 2-212-67376-0

ISBN13 : 978-2-212-67376-0

Commandez sur www.amazon.fr :

39,00 € TTC (prix éditeur 39,00 € TTC) livraison gratuite !
  • Représentation et indexation
  • Recherche d'information
  • Recherche sur le Web
  • Catégorisation de documents
  • Partitionnement de documents
  • Réseaux de neurones profonds
  • Recherche de thèmes latents
  • Considérations pratiques

 
Critique du livre par la rédaction Thibaut Cuvelier le 3 juin 2017 

L'exploitation des données, dans toute la généricité des termes employés, est un terme qui revient très régulièrement dans toutes les libraires, avec quantité d'ouvrages sur le sujet. Cependant, fort peu nombreux sont ceux qui traitent du cas très particulier où les données sont textuelles : c'est exactement ce trou que veut combler ce livre. Son titre indique qu'il portera principalement sur la manière de rechercher de l'information utile dans une masse de documents, tel un moteur de recherche. C'est d'ailleurs à ce thème que sont dédiés les premiers chapitres. Les deux auteurs s'ouvrent à des sujets connexes qui traitent de l'exploitation d'une quantité de textes, comme leur classification ou l'extraction de thèmes latents. On peut regretter que certains mots aient été ajoutés à la couverture sans qu'ils soient réellement traités dans le livre : « data mining », « big data »…

Ces trois cents pages explorent le domaine avec une approche mathématique : les auteurs ne vous présentent pas d'outil-boîte noire à utiliser pour obtenir un résultat sans en comprendre le fonctionnement — ni les hypothèses à poser pour donner des résultats en des temps raisonnables. Les auteurs y passent d'ailleurs un certain temps. Au contraire, l'aspect pratique est relativement délaissé dans l'ouvrage, se concentrant sur les concepts principalement utilisés dans le domaine. Ainsi, contrairement à ce que la quatrième de couverture promet, il ne s'adresse pas tellement à un public de professionnels, mais plutôt d'étudiants et de chercheurs, dont l'objectif est d'atteindre un bon niveau de compréhension du domaine. En cela, le grand nombre de références vers des publications scientifiques de pointe pour approfondir les sujets abordés est une bonne chose. L'ouvrage pourra rester des années dans une bibliothèque sans prendre une ride.

Cependant, après avoir fini la lecture, difficile de mettre en pratique le contenu de l'ouvrage : c'est une chose que l'on peut regretter dans ce livre. Peu d'outils pratiques sont cités : quelques-uns sont égrainés à travers le texte (auquel cas peu de choix est proposé au lecteur), le dernier chapitre se consacre exclusivement à une liste raisonnée de logiciels. Par contre, leur mise en pratique est relativement occultée — à moins que l'on veuille écrire soi-même le code de chacun des algorithmes proposés (ils sont tous détaillés, pas simplement esquissés).

Le sujet est traité de manière relativement exhaustive et progressive, sans précipitation malvenue vers l'un ou l'autre sujet hyper pointu. Quand plusieurs formules sont régulièrement utilisées en pratique, les variantes sont détaillées et justifiées, pour indiquer dans quel cas l'une ou l'autre aura plus de sens. Néanmoins, le style est relativement sec, les auteurs entrent rapidement dans le vif du sujet, sans forcément chercher à justifier le pourquoi du comment. Certaines parties sont structurées au point de mettre d'abord les détails mathématiques, puis quelques utilisations potentielles par après — ce qui aura du mal à accrocher un lecteur qui ne voit pas la vie au travers d'équations. À ce niveau, quelques applications numériques ne feraient pas de mal dans le texte (elles sont rares), car elles aident à bien comprendre la mise en pratique de formules : le lien entre des séries de mots et des suites de chiffres n'est jamais aisé.

Au niveau de la structure globale de l'ouvrage, on peut principalement regretter que l'introduction de l'apprentissage automatique soit si tardive. Certes, cela aide à limiter les prérequis. Cependant, ce choix oblige les auteurs à de vagues formulations indiquant qu'il est possible d'utiliser ce genre d'algorithmes à certains endroits : le niveau de détail est insuffisant pour bien comprendre les tenants et les aboutissants de cette utilisation.

En mode mineur, on peut reprocher à certaines figures d'être relativement peu claires à comprendre. Une bonne partie du contenu du livre se trouve dans les exercices, qui donnent l'impression de ramasser toutes les parties théoriques moins importantes (les auteurs y présentent notamment l'algorithme AdaBoost, plutôt que de l'inclure dans la section sur les algorithmes d'apprentissage). Le chapitre sur les réseaux neuronaux profonds laisse sur sa faim : il présente les concepts essentiels aux réseaux neuronaux tels qu'ils étaient utilisés dans les années 1980 et 1990 (avant leur qualificatif de profond), mais la pratique dans le cadre de la recherche d'information est éclipsée en trois pages.

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

 
couverture du livre Data Scientist et langage R

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

Data Scientist et langage R

Guide d'autoformation à l'exploitation des Big Data

de Henri Laude

Résumé de l'éditeur

Tous les experts s'accordent à dire que 90% des usages du Big Data proviennent de l'utilisation des data sciences. L'objectif de ce livre est de proposer une formation complète et opérationnelle sur les data sciences qui permet de délivrer des solutions via l'usage du langage R.

Ainsi, l'auteur propose un parcours didactique et professionnalisant qui, sans autre pré-requis qu'un niveau Bac en mathématiques et une grande curiosité, permet au lecteur :

  • de s'intégrer à une équipe de data scientists,
  • d'aborder des articles de recherche possédant une haute teneur en mathématiques,
  • le cas échéant de développer en langage R, y compris des algorithmes nouveaux et de beaux graphiques,
  • ou tout simplement de manager une équipe projet comprenant des data scientists, en étant à même de dialoguer avec eux de façon efficace.

Le livre ne se cantonne pas aux algorithmes du "machine learning", il aborde divers sujets importants comme le traitement du langage naturel, les séries temporelles, la logique floue, la manipulation des images.

La dynamique de l'ouvrage soutient le lecteur pas à pas dans sa découverte des data sciences et l'évolution de ses compétences théoriques et pratiques. Le praticien en exercice y découvrira également de nombreux savoir-faire à acquérir et le manager pourra surfer sur l'ouvrage après avoir lu attentivement le bestiaire des data sciences de l'introduction, qui sans inexactitude ou vulgarisation excessive présente le sujet en faisant l'économie de mathématiques ou de formalismes dissuasifs.

Les programmes R décrits dans le livre sont accessibles en téléchargement sur le site www.editions-eni.fr et peuvent être exécutés pas à pas.

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

663 pages, 1re édition, 9 mars 2016 

Édition : Eni

ISBN10 : 2-409-00043-6

ISBN13 : 978-2-409-00043-0

Commandez sur www.amazon.fr :

54,00 € TTC (prix éditeur 54,00 € TTC) livraison gratuite !
  • Introduction
  • Premiers pas avec R
  • Maîtriser les bases
  • Techniques et algorithmes incontournables
  • Cadre méthodologique du data scientist
  • Traitement du langage naturel
  • Graphes et réseaux
  • Autres problèmes, autres solutions
  • Feature Engineering
  • Compléments utiles
  • Annexes

 
Critique du livre par la rédaction Thibaut Cuvelier le 1er juillet 2017 

La « science des données » se veut à la mode, ce qui incite à la publication de nombreux livres sur ce sujet. Les axes d'approche sont multiples et variés : du côté purement académique (les algorithmes d'apprentissage, étudiés dans l'abstrait) à l'extrême pragmatique (utiliser ces algorithmes comme des boîtes noires). Cet ouvrage se place entre ces deux extrêmes, ce qui le rend, de prime abord, intéressant pour un public large. La présence du terme (voire jargonnerie) « big data » donne l'impression qu'il sera sujet de grands volumes de données, mais l'auteur n'en traite que très rapidement, se focalisant sur les aspects de traitement des données, de leur visualisation et de l'application des algorithmes principaux d'apprentissage automatique.

D'une manière générale, ce livre déçoit par son manque de structure. Les sections se succèdent sans nécessairement avoir de lien entre elles, en présentant parfois approximativement des techniques issues des statistiques et de l'apprentissage automatique sans vraiment de recul. Par exemple, on aura droit à une présentation des data frames de R, très rapidement suivie de la notion d'arbre de décision — sans que les deux aient l'air liés d'une quelconque manière — ou encore à RCommander juste après une introduction à la notion de variable aléatoire. Cette construction déstructurée pourrait être avantageuse pour un public plutôt débutant, sans bagage substantiel en mathématiques ou en programmation, qui aura ainsi la possibilité de tester directement la syntaxe de R entre le chargement d'un jeu de données et son exploitation par apprentissage automatique, sans s'alourdir de considérations autres que pratiques. Néanmoins, une structure assumée aiderait certains à comprendre… et surtout à utiliser l'ouvrage comme référence.

Cet ouvrage contient une introduction à la programmation en R de manière intuitive, renforcée par quantité d'exemples : elle devrait donner les bases à ceux qui n'ont que très peu touché à la programmation, des bases suffisantes pour écrire leur propre code proprement — même en utilisant l'approche orientée objet. Cependant, par la suite, l'auteur ne convainc pas réellement que R est l'outil le plus approprié pour ce cas d'utilisation, notamment à cause du nombre d'avertissements égrainés tout au long de l'ouvrage, autant d'indicateurs que le langage est piégeur. Un bon nombre d'outils est présenté, mais très rarement approfondi : par exemple, dplyr est très rapidement présenté, mais tout aussi vite oublié, sans montrer réellement ses apports par rapport aux fonctionnalités de base de R.

Le premier chapitre du livre est néanmoins très intéressant, notamment pour son bestiaire de la science des données : tous les concepts de base y sont représentés, dont une série graphiquement. Les explications sont succinctes, parfois approximatives, mais facilitent la compréhension du domaine dans son ensemble, chaque élément menant au suivant.
L'autre chapitre qui fait sortir ce livre de la moyenne concerne le suivi d'un projet de développement dans le domaine de la science des données. Il devrait aider le lecteur à s'organiser en situation réelle, notamment en pointant les différences par rapport aux cycles de développement logiciel.

Tout au long de l'ouvrage, l'auteur ne suit qu'une seule approche : comprendre le jeu de données (à l'aide de graphiques, principalement) aide à le modéliser, c'est-à-dire à choisir et appliquer un algorithme d'apprentissage automatique. L'approche inverse, qui consiste à exploiter le résultat d'algorithmes d'apprentissage pour analyser les données, n'est reléguée qu'à quelques notes éparses (à peine parle-t-on de l'importance des variables déterminée par une forêt aléatoire). On a là l'impression que l'auteur a une bonne expérience du domaine, avec un biais très fort envers les solutions très pragmatiques, mais nettement moins envers la recherche, toujours florissante dans le domaine — un comble, quand l'un des objectifs annoncés du livre est de mener à un niveau de compréhension suffisant du domaine pour aborder la littérature scientifique de pointe. Les notions théoriques ne sont toutefois pas oubliées, avec des présentations assez détaillées en ce qui concerne les probabilités et variables aléatoires (jusqu'à préciser la définition d'une tribu !) ou encore l'algèbre linéaire — sans que ces rappels soient réellement mis en rapport avec le reste de l'ouvrage.

Certains sujets sont abordés de manière extrêmement superficielle (comme le traitement d'images ou encore la logique floue), les rendant strictement inutiles. D'autres le sont nettement plus, mais sans que ce soit justifié (le niveau de détail des variables aléatoires ou encore l'optimisation par essaims) : ces outils ne sont pas mis en lien avec le reste des thèmes abordés.

En résumé, ce livre pourrait être utile pour des débutants dans le domaine, qui n'ont pas une grande expérience dans le domaine ou un bagage mathématique poussé. Ces gens pourront profiter du livre, en omettant les parties trop mathématiques abstraites. Cela ne signifie pas que, pour ce public, tous les objectifs annoncés sont atteints. Difficile d'être pleinement opérationnel après uniquement la lecture de ce livre, de « s'autoformer », même en approfondissant chacun des exemples. Par contre, le niveau d'exposition devrait être suffisant pour dialoguer en profondeur avec des personnes dont la science des données est le domaine de prédilection.

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

 
couverture du livre Big Data et Machine Learning

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

Big Data et Machine Learning

Les concepts et les outils de la data science

de Pirmin Lemberger, Marc Batty, Médéric Morel, Jean-Luc Raffaëlli

Résumé de l'éditeur

Cet ouvrage s'adresse à tous ceux qui cherchent à tirer parti de l'énorme potentiel des « technologies Big Data », qu'ils soient data scientists, DSI, chefs de projets ou spécialistes métier.

Le Big Data s'est imposé comme une innovation majeure pour toutes les entreprises qui cherchent à construire un avantage concurrentiel grâce à l'exploitation de leurs données clients, fournisseurs, produits, processus, machines, etc.

Mais quelle solution technique choisir ? Quelles compétences métier développer au sein de la DSI ?

Ce livre est un guide pour comprendre les enjeux d'un projet Big Data, en appréhender les concepts sous-jacents (en particulier le Machine Learning) et acquérir les compétences nécessaires à la mise en place d'un data lab.

Il combine la présentation :

  • de notions théoriques (traitement statistique des données, calcul distribué...) ;
  • des outils les plus répandus (écosystème Hadoop, Storm...) ;
  • d'exemples d'applications ;
  • d'une organisation typique d'un projet de data science.

Cette deuxième édition est complétée et enrichie par des mises à jour sur les réseaux de neurones et sur le Deep Learning ainsi que sur Spark..

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

272 pages, 2e édition, 9 octobre 2016 

Édition : Dunod

ISBN10 : 2-100-75463-7

ISBN13 : 978-2-100-75463-2

Commandez sur www.amazon.fr :

29,90 € TTC (prix éditeur 29,90 € TTC) livraison gratuite !

Les fondements du Big Data

  • Les origines du Big Data
  • Le Big Data dans les organisations
  • Le mouvement NoSQL
  • L'algorithme MapReduce et le framework Hadoop

Le métier de data scientist

  • Le quotidien du data scientist
  • Exploration et préparation de données
  • Le Machine Learning
  • La visualisation des données

Les outils du Big Data

  • L'écosystème Hadoop
  • Analyse de logs avec Pig et Hive
  • Les architectures lambda
  • Apache Storm

 
Critique du livre par la rédaction Thibaut Cuvelier le 25 septembre 2017 

Cet ouvrage concerne deux mots qui reviennent régulièrement à l'actualité : le « big data » et le « machine learning ». Il dresse effectivement un tour d'horizon assez large de cet univers : toutes les étapes d'un projet d'exploitation de données sont traitées, depuis les questions auxquelles on peut s'attendre à trouver une réponse au traitement des données, depuis le déploiement d'une grappe de calcul jusqu'aux algorithmes qui y tourneront, sans oublier la visualisation.

Le principal avantage du livre est qu'il présente, dans un format compact, l'ensemble des notions de base utiles à toute personne devant intervenir dans un projet d'exploitation de données. Son public est donc assez large, le contenu ne nécessite bien souvent pas une longue expérience en informatique pour s'y retrouver : les auteurs assument entièrement ce choix. Les explications sont généralement claires, ce qui cadre bien avec l'objectif ; les nombreuses illustrations aident également. Malgré les quatre auteurs, l'ensemble est extrêmement fluide.

Le livre n'hésite pas à tordre le cou à certaines idées reçues. Non, la science de données n'est pas neuve : ce qui l'est, c'est la capacité (technique) de gérer de grands volumes d'informations. Non, de grandes quantités de données ne résoudront pas tout problème dans une entreprise.

Les aspects réellement techniques ne sont pas oubliés. Le livre s'appesantit sur l'architecture MapReduce avec l'outil Hadoop pour déployer les calculs à large échelle, mais n'oublie pas de présenter YARN ou Drill. Conformément à l'esprit des auteurs, l'installation des outils est mise sur le côté, puisqu'ils préfèrent parler de distributions qui facilitent en bonne partie le travail et sont très bien adaptées à ceux qui débutent dans le domaine.

On peut cependant noter l'un ou l'autre point faible. Le côté apprentissage automatique est extrêmement limité, malgré sa présence dans le titre. La section sur l'apprentissage profond dénote fortement avec le reste du chapitre, étant extrêmement mathématique (au contraire du reste de l'ouvrage !). Une seule étude de cas est présentée, ce qui est dommage, notamment au niveau de la partie sur les outils.

Pour résumer, ce livre est à mettre entre toutes les mains des personnes qui aimeraient découvrir le domaine de l'exploitation des données à grande échelle. Elles auront un aperçu complet et bon nombre de pointeurs pour continuer leur apprentissage.

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

 
couverture du livre Maîtrisez l'utilisation des technologies Hadoop

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

Maîtrisez l'utilisation des technologies Hadoop

Initiation à l'écosystème Hadoop

de Juvénal Chokogoue

Résumé de l'éditeur

Le manuel d'apprentissage de référence

Cet ouvrage est un manuel d'apprentissage technique qui a été rédigé pour toute personne souhaitant développer des compétences sur une ou plusieurs technologie(s) de l'écosystème Hadoop. Il permet d'utiliser de façon professionnelle 18 technologies clés de l'écosystème Hadoop : Spark, Hive, Pig, Impala, ElasticSearch, HBase, Lucene, HAWQ, MapReduce, Mahout, HAMA, Tez, Phoenix, YARN, ZooKeeper, Storm, Oozie et Sqoop.

L'ouvrage permet d'initier les débutants pour les emmener vers une utilisation professionnelle de ces technologies. Pour faciliter la compréhension de l'ouvrage, chaque chapitre s'achève par un rappel des points clés et un guide d'étude qui permettent au lecteur de consolider ses acquis. Des compléments web sont également disponibles en téléchargement sur le site www.editions-eyrolles.com/dl/0067478.

Au fil de la lecture de cet ouvrage, vous allez comprendre les approches conceptuelles de chacune de ces technologies pour rendre vos compétences indépendantes de l'évolution d'Hadoop. Vous serez finalement capable d'identifier les portées fonctionnelle, stratégique et managériale de chacune de ces technologies.

Ce livre est un guide pour comprendre les enjeux d'un projet Big Data, en appréhender les concepts sous-jacents (en particulier le Machine Learning) et acquérir les compétences nécessaires à la mise en place d'un data lab.

À qui cet ouvrage s'adresse-t-il ?

  • Aux consultants BI/big data, data scientists, chargés d'études et chefs de projets data
  • Aux étudiants désireux de s'orienter vers le big data
  • Plus généralement, à tout professionnel souhaitant prendre le virage du big data ou souhaitant valoriser les données de son entreprise

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

432 pages, 1re édition, 31 mai 2018 

Édition : Eyrolles

ISBN10 : 2-212-67478-3

ISBN13 : 978-2-212-67478-1

Commandez sur www.amazon.fr :

39,00 € TTC (prix éditeur 39,00 € TTC) livraison gratuite !

Les modèles de calcul de l'écosystème Hadoop

  • Les modèles de calcul batch
  • Les modèles de calcul interactifs

Les abstractions des modèles de calcul d'Hadoop

  • Les langages d'abstraction d'Hadoop
  • Le SQL sur Hadoop

Le stockage de données en Hadoop

  • Généralités sur le stockage des données
  • HBase
  • L'indexation de contenu
  • Apache Lucene
  • ElasticSearch

La gestion du cluster Hadoop

  • YARN
  • Apache ZooKeeper

Le streaming en temps réel dans Hadoop

  • Apache Storm

Les outils annexes de l'écosystème Hadoop

  • Oozie et Sqoop
  • Hue et Ambari

Adoption à grande échelle d'Hadoop

  • Distributions d'Hadoop
  • Solutions Hadoop embarquées
  • Hadoop dans le Cloud
  • Le big data

 
Critique du livre par la rédaction Thibaut Cuvelier le 14 juillet 2018 

Hadoop est probablement l'une des technologies phares actuelles dès que l'on s'approche du traitement de données à grande échelle. Cependant, l'écosystème ne cesse de grandir, avec de plus en plus de composants à connaître pour bien exploiter sa grappe de serveurs Hadoop. Ce livre fournit une introduction exhaustive à cet environnement, il vous familiarise rapidement avec l'ensemble des composants qui constituent Hadoop aujourd'hui.

L'un des grands avantages de cet ouvrage est qu'il recontextualise en permanence les éléments les uns par rapport aux autres : il devient aisé de se retrouver dans la jungle Hadoop. De même, chaque brique est présentée avec les objectifs et les contraintes qui l'ont vue naître, ce qui permet d'apprécier les choix techniques qui ont été posés. Le côté véritablement technique est largement présent : dès le premier chapitre, le lecteur est plongé dans des détails de l'organisation de Hadoop. L'un des maîtres-mots était de chercher à comprendre avant d'utiliser. Pari tenu !

À la fin de la lecture de l'ouvrage, vous êtes censés atteindre un niveau « professionnel » avec Hadoop. Les exemples vous montreront au moins comment utiliser chaque partie de Hadoop, d'une manière relativement basique, mais néanmoins suffisante pour bon nombre d'utilisations. L'aspect administration des machines n'est pas abordé, il ne fait pas partie du périmètre visé par l'auteur.

On peut regretter que le niveau attendu du lecteur ne soit pas clair : l'ouvrage rappelle (assez brièvement) ce qu'est une classe, une fonction, etc., alors que le public cible semble plutôt fin connaisseur de ces notions. Un point bien plus gênant est le nombre d'erreurs techniques, qui diminuent la crédibilité du texte. Par exemple, selon l'auteur, le format PDF est propriétaire (alors qu'il correspond à la norme ISO 32000-1 depuis 2008), W3Schools est un site officiel du W3C, Google utilise l'algorithme PageRank pour l'indexation (en réalité, uniquement pour mesurer la popularité de pages). De même, certains exemples ne sont pas toujours très bien choisis. Par exemple, présenter le NoSQL avec une application extrêmement bien traitée par des systèmes relationnels à très grande échelle (listes du personnel, des commandes) n'est pas le plus judicieux.

En résumé, ce livre aide à se forger une vue d'ensemble de Hadoop pour envisager de l'utiliser efficacement. Il ne fera pas du lecteur un maître, mais lui donnera les éléments nécessaires pour commencer son utilisation sereinement.

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

 
couverture du livre Machine Learning avec Scikit-Learn

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

Machine Learning avec Scikit-Learn

Mise en oeuvre et cas concrets

de Aurélien Géron

Résumé de l'éditeur

Cet ouvrage, conçu pour tous ceux qui souhaitent s'initier au Machine Learning (apprentissage automatique) est la traduction de la première partie du best-seller américain Hands-On Machine Learning with Scikit-Learn & TensorFlow.

Il ne requiert que peu de connaissances en mathématiques et présente les fondamentaux du Machine Learning d'une façon très pratique à l'aide de Scikit-Learn qui est l'un des frameworks de ML les plus utilisés actuellement.

Des exercices corrigés permettent de s'assurer que l'on a assimilé les concepts et que l'on maîtrise les outils.

Des compléments en ligne interactifs sous forme de notebooks Jupyter complètent le livre avec des exemples exécutables.

Ce premier titre est complété par un second ouvrage intitulé Deep Learning avec TensorFlow.

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

256 pages, 1re édition, 30 août 2017 

Édition : Dunod

ISBN10 : 2-100-76540-X

ISBN13 : 978-2-100-76540-9

Commandez sur www.amazon.fr :

34,00 € TTC (prix éditeur 34,00 € TTC) livraison gratuite !
  • Vue d'ensemble du Machine Learning
  • Un projet de Machine Learning de bout en bout
  • Classification
  • Entraînement de modèles
  • Machines à vecteurs de support
  • Arbres de décision
  • Apprentissage d'ensemble et forêts aléatoires
  • Réduction de dimension

 
Critique du livre par la rédaction Thibaut Cuvelier le 8 août 2018 

On trouve sur le marché quantité de livres sur l'apprentissage automatique, mais rares sont ceux qui valent vraiment la peine. Cet ouvrage trouve le juste équilibre entre une composante théorique (savoir comment fonctionnent les algorithmes, sans formalisme excessif) et pratique (utiliser des méthodes d'apprentissage en réalité, sans code inutile). Le sujet du passage à l'échelle (avec une plateforme comme Hadoop) n'est pas abordé, mais cela ne nuit pas au lecteur, qui pourra se référer à l'abondante littérature sur le sujet, tout comme les sujets les plus avancés : l'auteur se focalise sur les algorithmes les plus utiles, plutôt que sur les dernières avancées de la recherche. Le style est très loin d'être académique, même si l'ouvrage pointe régulièrement vers des articles de la littérature scientifique pour approfondir certains points.

Un des points forts est sans nul doute la pédagogie dont fait preuve l'auteur. Il n'abuse pas de jargon (la traduction en français est d'ailleurs de très bonne facture, sans quantité phénoménale d'anglicismes), pour des explications claires et progressives. Les exemples sont aussi bien choisis et donnent envie d'en faire plus. La présentation de scikit-learn n'est pas exhaustive, l'auteur préférant passer du temps sur les éléments les plus importants pour structurer correctement son code.

En résumé, on peut vraiment recommander ce livre pour toutes les personnes qui débutent dans le domaine de l'apprentissage automatique, mais aussi à toutes celles qui ont une certaine expérience et aimeraient la formaliser quelque peu. Le niveau attendu n'est pas très élevé, il suffit de connaissances assez basiques en mathématiques (à condition d'avoir une formation en informatique), comme les fonctions, les dérivées et les matrices. Par contre, il ne conviendra pas vraiment à celles et ceux qui cherchent une ressource plus avancée (même s'ils apprendront l'une ou l'autre chose utile au passage). Le seul aspect vraiment négatif est la séparation en deux ouvrages, celui-ci faisant complètement l'impasse sur les réseaux neuronaux, même si certaines remarques dans le fil du texte y font référence.

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

 
couverture du livre Deep Learning avec TensorFlow

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

Deep Learning avec TensorFlow

Mise en oeuvre et cas concrets

de Aurélien Géron

Résumé de l'éditeur

Cet ouvrage, conçu pour tous ceux qui souhaitent s'initier au Deep Learning (apprentissage profond) est la traduction de la deuxième partie du best-seller américain Hands-On Machine Learning with Scikit-Learn & TensorFlow.

Le Deep Learning est récent et il évolue vite. Ce livre en présente les principales techniques  : les réseaux de neurones profonds, capables de modéliser toutes sortes de données, les réseaux de convolution, capables de classifier des images, les segmenter et découvrir les objets ou personnes qui s'y trouvent, les réseaux récurrents, capables de gérer des séquences telles que des phrases, des séries temporelles, ou encore des vidéos, les autoencodeurs qui peuvent découvrir toutes sortes de structures dans des données, de façon non supervisée, et enfin le Reinforcement Learning (apprentissage par renforcement) qui permet de découvrir automatiquement les meilleures actions pour effectuer une tâche (par exemple un robot qui apprend à marcher).

Ce livre présente TensorFlow, le framework de Deep Learning créé par Google. Il est accompagné de notebooks Jupyter (disponibles sur github) qui contiennent tous les exemples de code du livre, afin que le lecteur puisse facilement tester et faire tourner les programmes. Il complète un premier livre intitulé Machine Learning avec Scikit-Learn.

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

320 pages, 1re édition, 22 novembre 2017 

Édition : Dunod

ISBN10 : 2-100-75993-0

ISBN13 : 978-2-100-75993-4

Commandez sur www.amazon.fr :

39,00 € TTC (prix éditeur 39,00 € TTC) livraison gratuite !
  • Les fondamentaux du Machine Learning
  • Introduction à TensorFlow
  • Introduction aux réseaux de neurones artificiels
  • Entraînement de réseaux de neurones profonds
  • Distribution de TensorFlow sur des processeurs ou des serveurs
  • Réseaux de neurones convolutifs
  • Réseaux de neurones récurrents
  • Autoencodeurs

 
Critique du livre par la rédaction Thibaut Cuvelier le 21 août 2018 

L'apprentissage profond est la dernière technique à la mode pour l'apprentissage automatique, avec un évident manque de maturité. Il n'empêche que le domaine a donné d'excellents résultats dans un certain nombre d'applications, pour des jeux (comme AlphaGo) et la reconnaissance d'images, notamment. C'est pourquoi des livres comme celui-ci ont un marché à saisir. Comme dans le premier tome, Aurélien Géron ne se focalise pas sur les applications directement pratiques, mais passe aussi du temps sur les principes sous-jacents, de telle sorte que le lecteur a toutes les clés en main pour comprendre ce qu'il fait. Par rapport au premier ouvrage, celui-ci se montre néanmoins beaucoup plus pratique (les exemples de code sont plus nombreux) et passe nécessairement sur le sujet du calcul à plus grande échelle (sur plusieurs machines et cartes graphiques) — sans quoi on serait bien en peine d'exploiter complètement les techniques décrites.

Les points forts de cette œuvre se rapprochent de la première partie, notamment une bonne dose de pédagogie et une langue compréhensible par la majorité (à condition d'avoir les bonnes bases mathématiques) — l'emploi de termes anglophones est cependant plus présent que dans le premier tome. La variété de sujets abordés est intéressante, car elle s'étend sur tous les domaines actuels où l'apprentissage profond se développe (convolution, récursion, apprentissage par renforcement, principalement). Ce dernier exemple est particulièrement important, car rares sont les ressources qui parlent d'apprentissage par renforcement, surtout à un tel niveau de détail (en omettant toutefois les parties mathématiques assez complexes qui viennent rapidement dans le domaine — un grand plus de cet ouvrage qui facilite fortement la compréhension !). On peut regretter que Keras ou une autre interface de plus haut niveau ne soit pas traitée, pour faciliter l'expérimentation rapide.

Cet ouvrage se destine donc à toutes les personnes débutant dans l'apprentissage profond (ou qui connaissent l'utilisation plus classique des réseaux neuronaux, mais souhaitent se mettre au goût du jour). Il servira surtout à ceux qui veulent une référence écrite à garder sous la main ou qui n'aiment pas apprendre par le biais de vidéos en ligne (à ce niveau, quand il faut clairement faire un tri dans les vidéos disponibles, ce livre n'est pas démuni d'avantages).

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

 
couverture du livre Apprentissage artificiel

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

Apprentissage artificiel

Deep learning, concepts et algorithmes

de Antoine Cornuéjols, Laurent Miclet, Vincent Barra

Résumé de l'éditeur

Les programmes d'intelligence artificielle sont aujourd'hui capables de reconnaître des commandes vocales, d'analyser automatiquement des photos satellites, d'assister des experts pour prendre des décisions dans des environnements complexes et évolutifs (analyse de marchés financiers, diagnostics médicaux...), de fouiller d'immenses bases de données hétérogènes, telles les innombrables pages du Web...

Pour réaliser ces tâches, ils sont dotés de modules d'apprentissage leur permettant d'adapter leur comportement à des situations jamais rencontrées, ou d'extraire des lois à partir de bases de données d'exemples. Ce livre présente les concepts qui sous-tendent l'apprentissage artificiel, les algorithmes qui en découlent et certaines de leurs applications. Son objectif est de décrire un ensemble d'algorithmes utiles en tentant d'établir un cadre théorique pour l'ensemble des techniques regroupées sous ce terme "d'apprentissage artificiel".

La troisième édition de ce livre a été complètement réorganisée pour s'adapter aux évolutions très significatives de l'apprentissage artificiel ces dernières années. Une large place y est accordée aux techniques d'apprentissage profond et à de nouvelles applications, incluant le traitement de flux de données.

A qui s'adresse ce livre ?

Ce livre s'adresse tant aux décideurs et aux ingénieurs qui souhaitent mettre au point des applications qu'aux étudiants de niveau Master 1 et 2 et en école d'ingénieurs, qui souhaitent un ouvrage de référence sur ce domaine clé de l'intelligence artificielle.

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

912 pages, 3e édition, 17 mai 2018 

Édition : Eyrolles

ISBN10 : 2-212-67522-4

ISBN13 : 978-2-212-67522-1

Commandez sur www.amazon.fr :

56,00 € TTC (prix éditeur 56,00 € TTC) livraison gratuite !
  • Des machines apprenantes !
  • L'induction exploitant la structure de l'espace des hypothèses
  • L'induction par optimisation d'un critère inductif
  • L'induction par comparaison à des exemples (et par collaboration)
  • L'apprentissage descriptif
  • Apprentissage en environnement et non stationnaire
  • Aspects pratiques et suppléments
  • Annexes et bibliographie

 
Critique du livre par la rédaction Thibaut Cuvelier le 9 octobre 2018 

À l'achat, ce livre se dénote par son poids, son nombre de pages. Que peut-il donc contenir de plus que la concurrence ? Le lecteur intéressé regardera ensuite la table des matières et verra que les sujets abordés sont plus étendus : les auteurs ne se focalisent pas sur l'apprentissage automatique, mais visent plus large, toutes les techniques qui permettent à un ordinateur d'extraire des connaissances depuis un jeu de données. C'est là le grand avantage de cet ouvrage, il cherche à donner une vue d'ensemble aussi diversifiée que possible sur un domaine d'étude loin d'être jeune. À la lecture, ce pressentiment se confirme : c'est complet, si ce n'est exhaustif ; c'est une référence (et le texte est prévu comme tel : aucun ordre n'est imposé sur la lecture des chapitres).

La rédaction diffère également de la concurrence, le point de vue adopté étant plus basé sur la théorie que la pratique. Les titres des chapitres ne révèlent pleinement leur cohérence qu'à la lecture. C'est là un parti pris : plus de théorie que de pratique. Cette structuration mène également à des points plus étonnants, comme le fait que la question de l'évaluation d'un apprentissage est traitée d'abord pour l'apprentissage non supervisé, puis (bien) après pour l'apprentissage supervisé plus classique. Également, le texte fourmille de références vers des articles plus académiques encore (les pages 851 à 889 sont réservées à la bibliographie), pour creuser plus avant si le cœur vous en dit.

Un point négatif (par rapport au public visé : « décideurs et […] ingénieurs […, ainsi] qu'aux étudiants de niveau Master 1 et 2 et en école d'ingénieurs ») est justement le côté théorique de toutes choses, le formalisme mathématique poussé à un très bon niveau. Les auteurs se veulent formels, et ce, dès l'introduction. Cela rend malheureusement l'ouvrage assez peu accessible, voire complètement imperméable pour les allergiques des mathématiques. Pourtant, lors de la majorité des chapitres, on se rend compte de l'effort fourni pour éviter l'abus d'anglicismes. Le sous-titre présente le mot clé « deep learning », mais celui-ci n'occupe pas une place aussi prépondérante que cela laisserait penser (deux chapitres sur vingt-trois).

On sent assez fortement qu'il y a trois auteurs, l'ouvrage manquant parfois de cohérence. Il est régulier de voir des références au passé à des notions qui ne sont pourtant détaillées que dans plusieurs chapitres (de manière similaire, les couvertures de Markov sont présentées au moins trois fois). Les rappels sont fréquents, mais il est plus gênant que, lorsque tous les chapitres pointent vers une notion à un endroit précis, cette définition soit elle aussi un rappel. Finalement, certaines informations sont clairement périmées : une note de bas de page indique que « très peu de travaux traitent de ce problème à ce jour (octobre 2009) », soit un peu avant la sortie de l'édition… précédente (en 2010). Trois sources de données sont citées (Microsoft Azure Marketplace, Datamarket, Data Publica), seule la dernière existe encore — quid dans quelques années ?

Par conséquent, l'ouvrage semble plutôt prédestiné à ceux qui veulent une compréhension profonde de la théorie derrière l'apprentissage, de ses liens avec les algorithmes. Il pèche sur les questions plus pratiques. Il n'y a donc pas beaucoup de souci à se faire pour la péremption des informations, qui resteront valables des années, si ce n'est dizaines d'années pour la plupart. Le public visé est plutôt mathématicien ou chercheur dans le domaine : il faut avoir déjà des connaissances préalables en apprentissage pour tirer un maximum du livre.

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

 
couverture du livre Data science

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

Data science

Cours et exercices

de Massih-Reza Amini, Renaud Blanch, Marianne Clausel, Jean-Baptiste Durand, Eric Gaussier, Jérôme Malick, Christophe Picard, Vivien Quéma, Georges Quénot

Résumé de l'éditeur

Un ouvrage de référence sur les data sciences !

La data science, ou science des données, est la discipline qui traite de la collecte, de la préparation, de la gestion, de l'analyse, de l'interprétation et de la visualisation de grands ensembles de données complexes. Elle n'est pas seulement concernée par les outils et les méthodes pour obtenir, gérer et analyser les données ; elle consiste aussi à en extraire de la valeur et de la connaissance.

Cet ouvrage présente les fondements scientifiques et les composantes essentielles de la science des données, à un niveau accessible aux étudiants de master et aux élèves ingénieurs. Notre souci a été de proposer un exposé cohérent reliant la théorie aux algorithmes développés dans ces domaines. Il s'adresse aux chercheurs et ingénieurs qui abordent les problématiques liées à la science des données, aux data scientists de PME qui utilisent en profondeur les outils d'apprentissage, mais aussi aux étudiants de master, doctorants ou encore futurs ingénieurs qui souhaitent un ouvrage de référence en data science.

A qui s'adresse ce livre ?

  • Aux développeurs, statisticiens, étudiants et chefs de projets ayant à résoudre des problèmes de data science.
  • Aux data scientists, mais aussi à toute personne curieuse d'avoir une vue d'ensemble de l'état de l'art du machine learning.

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

272 pages, 1re édition, 16 août 2018 

Édition : Eyrolles

ISBN10 : 2-212-67410-4

ISBN13 : 978-2-212-67410-1

Commandez sur www.amazon.fr :

32,00 € TTC (prix éditeur 32,00 € TTC) livraison gratuite !
  • Introduction
  • Prétraitement des données
  • Gestion de données large-échelle et systèmes distribués
  • Calcul haute performance
  • Optimisation pour l'analyse de données
  • Décomposition matricielle/tensorielle
  • Modèles génératifs
  • Modèles discriminants
  • Deep learning
  • Visualisation interactive d'information

 
Critique du livre par la rédaction Thibaut Cuvelier le 13 octobre 2018 

Ce petit livre se dénote de la concurrence par son focus sur les bases de la science des données : pas uniquement les algorithmes d'apprentissage ou d'extraction de connaissances. En effet, il traite aussi de la représentation des données, chose importante en début de projet . Globalement, les chapitres sont organisés comme le serait un projet en science des données. Le lecteur commence son parcours avec les données, puis passe aux techniques d'implémentation (c'est-à-dire le calcul distribué, l'optimisation, les méthodes numériques), finalement aux algorithmes proprement dits.

Tous ces sujets sont abordés de manière assez brève (le livre ne fait même pas trois cents pages) et concise, en insistant juste sur les éléments principaux. Le texte est rédigé de manière assez sèche, sans fioritures ; ce choix le rend d'ailleurs facile à lire. Les explications présentent un certain côté pédagogique qui plaira à bon nombre d'étudiants. Néanmoins, ce dépouillement impose des connaissances préexistantes dans le domaine, bien que pas forcément très poussées : la très brève introduction mène directement au vif du sujet, une progression assez étonnante.

Il s'agit de l'un des rares ouvrages à traiter tant des algorithmes que des techniques d'implémentation, ce qui en fait un point positif : ce lien aide le lecteur à rassembler Hadoop & co. avec les algorithmes d'apprentissage. On peut cependant regretter le fait que les exemples ne soient pas toujours les mieux choisis : notamment, le chapitre sur le calcul de haute performance présente diverses notions sous l'angle habituel de la résolution d'équations aux dérivées partielles — un sujet assez éloigné de la science des données.

La plupart des méthodes d'apprentissage sont ici survolées : les méthodes probabilistes (dont les modèles graphiques), les réseaux neuronaux, les ensembles, les plus proches voisins. Étonnamment, pourtant, les arbres de décision ne sont jamais présentés, ainsi que leurs dérivés directs (comme les forêts aléatoires), malgré leur grande utilité pratique. Tout le côté pratique est toutefois mis de côté : les neuf auteurs se focalisent sur les aspects théoriques du domaine, les principes derrière les méthodes, dans l'idée qu'il « suffit » alors de regarder la documentation d'une bibliothèque d'apprentissage.

Le chapitre sur la visualisation étonne quelque peu, mais apporte des compléments d'information très utiles. Il distille l'expérience acquise, notamment en cartographie, sur la meilleure manière de faire passer un message à travers des graphiques. Il n'importe là pas d'utiliser correctement les bibliothèques, mais d'agencer leurs fonctionnalités pour que les graphiques atteignent leur objectif.

En résumé, il s'agit là d'un très bon support de cours ou d'un petit ouvrage de référence dans le domaine de la science des données. Il ratisse assez large, en donnant des pointeurs vers la recherche actuelle dans le domaine, en omettant la pratique. (À noter que les solutions des exercices ne sont pas fournies.)

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

 
couverture du livre Les réseaux

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

Les réseaux

L'ére des réseaux cloud et de la 5G - Edition 2018-2020

de Guy Pujolle

Résumé de l'éditeur

La référence des étudiants et des professionnels en réseaux et télécoms

Avec plus de 100 000 exemplaires vendus. Les Réseaux de Guy Pujolle s'est imposé comme la référence en langue française auprès des étudiants comme des professionnels en réseaux et télécoms.

Très largement refondue et mise à jour, cette neuvième édition témoigne des évolutions rapides des technologies et des usages. Alors que certaines technologies comme la téléphonie sur IP ou la 4G sont arrivées à maturité et sont largement déployées, le monde des réseaux vit de nouveaux bouleversements :

  • généralisation du Cloud et du Fog Networking, avec le remplacement des boîtiers de type routeur ou commutateur par des machines virtuelles s'exécutant dans des datacenters ;
  • montée en puissance de l'architecture SDN qui va à l'encontre de la philosophie Internet en (re)centralisant les fonctions de routage ;
  • succès croissant des logiciels open source au détriment des solutions propriétaires des grands équipementiers ;
  • transition de la 4G vers la 5G. un des grands chantiers de ces prochaines années.

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

780 pages, 9e édition, 5 juillet 2018 

Édition : Eyrolles

ISBN10 : 2-212-67535-6

ISBN13 : 978-2-212-67535-1

Commandez sur www.amazon.fr :

42,00 € TTC (prix éditeur 42,00 € TTC) livraison gratuite !

Eléments de base

  • Introduction aux réseaux
  • Les composants des réseaux
  • Réseaux virtuels et Cloud
  • L'intelligence dans les réseaux

Les protocoles réseau

  • Le niveau physique
  • Le niveau trame
  • Le niveau paquet et message

Les solutions réseau

  • Les réseaux de niveau physique
  • Les réseaux Ethernet
  • Les réseaux IP
  • Le Label Switching – MPLS et GMPLS
  • Les réseaux SDN
  • Le cloud Networking
  • Les réseaux open source

Les réseaux d'accès

  • Les réseaux d'accès terrestres
  • Les réseaux d'accès hertziens
  • Les small cells et les réseaux multisaut

Les réseaux de mobiles et sans fil

  • Les réseaux de mobiles 1G à 5G
  • Les réseaux personnels
  • Les réseaux Wi-Fi
  • L'Internet des objets

Contrôle, gestion et sécurité

  • VLAN et VPN
  • La gestion et le contrôle
  • La sécurité et l'identité
  • Les réseaux green
  • Générations futures

 
Critique du livre par la rédaction Thibaut Cuvelier le 28 octobre 2018 

Les réseaux informatiques sont un vaste sujet, en permanente explosion, d'une diversité sans limites. Difficile de s'y retrouver sans un guide de qualité, c'est cela que ce livre vient fournir. Contrairement à la majorité des classiques du sujet, l'auteur a investi une quantité d'efforts pour présenter les dernières nouveautés du domaine, pour bien montrer que les réseaux informatiques ne sont pas fixés, mais au contraire doivent continuer à évoluer.

Ainsi, la 5G et les réseaux logiciels (SDN) sont abordés avec un certain niveau de détail. Ces ajouts ne se font pas au détriment du volume du livre, puisque les sujets moins d'actualité sont présentés dans des annexes disponibles en ligne (par exemple, ATM ou X.25). On pourrait alors croire que seuls les réseaux du futur sont présentés, mais ce n'est pas le cas : les protocoles actuels sont bien présents.

Le vrai point fort du livre est néanmoins ailleurs. Les sujets sont abordés sous un angle pédagogique, afin que le lecteur s'y retrouve vraiment. Il ne s'agit pas d'une longue description de protocoles, mais plus d'une mise en perspective des techniques utilisées ou prometteuses pour l'avenir. La pédagogie ne s'oppose pas à la profondeur du contenu : par exemple, pour les réseaux IP, les techniques de gestion de la qualité de service (modèles IntServ et DiffServ, notamment) ne sont pas omises.

Par contre, l'ouvrage se focalise sur les couches basses des réseaux, à proximité des télécommunications, des manières précises d'émettre un bit sur une paire de cuivre. Ainsi, TCP et UDP sont présentés, les réseaux xDSL et fibre sont approfondis, mais HTTP et DNS sont à peine survolés. Aussi, la structuration n'est pas toujours la plus aisée à comprendre, certaines technologies (comme WiFi) étant expliquées dans plusieurs parties : avoir quelques connaissances préalables en réseaux informatiques ne pourra qu'aider à compléter les explications supplémentaires, distantes de quelques chapitres. Le chapitre sur la sécurité laisse aussi un peu sur sa faim : malgré des explications très pédagogiques et une section très intéressante sur les attaques possibles sur les SDN, on retrouve des mentions de disquettes et de MD5 (à proximité du mot clé « sécurisé »).

On peut donc conseiller ce livre les yeux fermés aux personnes qui souhaitent comprendre en profondeur les mécanismes à l'œuvre dans les réseaux informatiques, ainsi qu'aux étudiants dans leurs premiers cours de réseaux.

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

 
couverture du livre Design Patterns

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

Design Patterns

Apprendre la conception de logiciels en réalisant un jeu vidéo (avec exercices et corrigés)

de Philippe Gosselin

Résumé de l'éditeur

Ce livre s'adresse aux développeurs qui souhaitent acquérir des compétences dans le domaine de la conception logicielle en utilisant les patrons de conception (design patterns). L'approche suivie dans ce livre pour atteindre cet objectif est celle de la réalisation d'un jeu vidéo, développé à l'aide du langage Java. Seules des connaissances de base en programmation objet sont requises pour bien démarrer la lecture de ce livre.

Le lecteur commence par découvrir le travail de conception, nécessaire avant de débuter le développement proprement dit, puis étudie plus précisément la manière de représenter l'ensemble des données utiles à la réalisation de l'application (classes, conteneurs...). L'auteur présente ensuite la notion d'interface utilisateur (en 2D et en 3D) pour le développement de l'affichage puis la mise en place du moteur du jeu vidéo (déplacements, animations, règles du jeu…). Les derniers chapitres sont ensuite consacrés à l'intégration de l'intelligence artificielle et au développement des fonctionnalités pour le jeu en réseau.

Les notions étudiées dans ce livre sont introduites et mises en œuvre pas à pas, des plus élémentaires au plus complexes, et permettent au lecteur d'acquérir la pratique nécessaire pour éviter les pièges usuels liés au développement d'une application d'envergure. L'auteur propose également une série d'exercices avec corrigés pour illustrer les différentes techniques étudiées.

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

614 pages, 1re édition, 10 octobre 2018 

Édition : Eni

ISBN10 : 2-409-01583-2

ISBN13 : 978-2-409-01583-0

Commandez sur www.amazon.fr :

29,90 € TTC (prix éditeur 29,90 € TTC) livraison gratuite !
  • Avant-propos
  • Concevoir une application d'envergure
  • Représenter l'état du jeu
  • Interface utilisateur
  • Moteur de jeu
  • Intelligence artificielle
  • Exécution concurrente et réseaux

 
Critique du livre par la rédaction Thibaut Cuvelier le 1er décembre 2018 

La conception logicielle n'est probablement pas le sujet en informatique qui a le plus la réputation d'être sexy, ni même intéressant. Le sujet est souvent enseigné de manière dogmatique, sans mise en pratique ou en perspective. Ce livre devrait réconcilier les plus déçus avec le sujet, grâce à son approche très pragmatique : concevoir un jeu assez simple, mais à l'aide de patrons de conception bien choisis. Ainsi, tous les exemples de l'ouvrage, à de rares exceptions près, tournent autour du jeu vidéo. Cette cohérence rend le tout motivant.

L'avantage principal de l'angle d'attaque utilisé est qu'il est foncièrement pratique, chaque patron de conception étant très brièvement présenté de manière abstraite. La plupart des explications concernent son utilisation réelle dans du code, ses interactions avec d'autres patrons. L'auteur part souvent d'un code simplement fonctionnel, sans conception poussée, avant d'introduire les quelques patrons appropriés. Le lecteur peut ainsi voir clairement l'effet structurant de chaque patron de conception, les situations dans lesquelles il peut être utile, mais aussi les avantages qu'il propose.

Pour arriver à ses fins, l'auteur suppose un certain niveau de programmation orientée objet impérative en Java, puis explique le reste. Il passe un certain temps à présenter AWT et LWJGL (OpenGL) pour l'interface graphique, par exemple. Il ne s'agit pas d'un survol accéléré ni d'une descente profonde, mais bien d'un niveau suffisant pour l'application visée (un simple Pacman, certes) et d'autres encore. Aussi, l'auteur présente des techniques de parallélisme (de manière assez générale, le sujet étant vital dans le développement de jeux), de communication en réseau (avec un focus sur les problématiques propres aux jeux, comme NAT et UDP) et d'intelligence artificielle, ainsi que les patrons de conception associés, sans présupposer de connaissances poussées dans ces domaines. Un regret, toutefois, est l'absence des systèmes à entités, un mécanisme de structuration très fort (notamment à l'œuvre dans Unity 3D), mais probablement un peu trop spécifique aux jeux.

En peu de mots, l'on peut dire que ce livre ne peut qu'être recommandé à ceux qui souhaitent débuter dans la conception logicielle, après avoir remarqué les limites des approches naïves. L'ouvrage sera plus difficilement utilisé comme une référence, même si chacun des vingt-trois patrons est présenté de manière abstraite à l'aide de diagrammes UML.

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

 
couverture du livre Algorithms and Networking for Computer Games

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

Algorithms and Networking for Computer Games

de Jouni Smed et Harri Hakonen

Résumé de l'éditeur

The essential guide to solving algorithmic and networking problems in commercial computer games, revised and extended

Algorithms and Networking for Computer Games, Second Edition is written from the perspective of the computer scientist. Combining algorithmic knowledge and game-related problems, it explores the most common problems encountered in game programing.

The first part of the book presents practical algorithms for solving “classical” topics, such as random numbers, procedural generation, tournaments, group formations and game trees. The authors also focus on how to find a path in, create the terrain of, and make decisions in the game world.

The second part introduces networking related problems in computer games, focusing on four key questions: how to hide the inherent communication delay, how to best exploit limited network resources, how to cope with cheating and how to measure the on-line game data.

Thoroughly revised, updated, and expanded to reflect the many constituent changes occurring in the commercial gaming industry since the original, this Second Edition, like the first, is a timely, comprehensive resource offering deeper algorithmic insight and more extensive coverage of game-specific networking problems than ordinarily encountered in game development books.

Algorithms and Networking for Computer Games, Second Edition:

  • Provides algorithmic solutions in pseudo-code format, which emphasises the idea behind the solution, and can easily be written into a programming language of choice
  • Features a section on the Synthetic player, covering decision-making, influence maps, finite-state machines, flocking, fuzzy sets, and probabilistic reasoning and noise generation
  • Contains in-depth treatment of network communication, including dead-reckoning, local perception filters, cheating prevention and on-line metrics
  • Now includes 73 ready-to-use algorithms and 247 illustrative exercises

Algorithms and Networking for Computer Games, Second Edition is a must-have resource for advanced undergraduate and graduate students taking computer game related courses, postgraduate researchers in game-related topics, and developers interested in deepening their knowledge of the theoretical underpinnings of computer games and in learning new approaches to game design and programming.

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

416 pages, 2e édition, 25 août 2018 

Édition : Wiley

ISBN10 : 1-119-25976-2

ISBN13 : 978-1-119-25976-3

Commandez sur www.amazon.fr :

60,67 € TTC (prix éditeur 60,80 € TTC) livraison gratuite !
  • Introduction

Algorithms

  • Random Numbers
  • Noise
  • Procedural Generation
  • Tournaments
  • Game Trees
  • Path Finding
  • Group Movement
  • Decision-Making
  • Modelling Uncertainty

Networking

  • Communication Layers
  • Compensating Resource Limitations
  • Cheating Prevention
  • Online Metrics

 
Critique du livre par la rédaction Thibaut Cuvelier le 20 janvier 2019 

Le titre semble prometteur : des algorithmes et des techniques de réseau dans l'application des jeux vidéos. Cet objectif est atteint, puisque l'ouvrage présente son contenu avec un lien permanent pour les jeux vidéos. Cette attache vidéoludique ne se présente pas que dans la table des matières, mais aussi dans le texte, chaque section présentant des contraintes spécifiques au jeu vidéo. Les chapitres se divisent en trois parties : la génération de bruit, les techniques d'intelligence artificielle (ces deux-là étant regroupées sous le vocable « algorithmes ») et le réseau. Cette dernière laisse cependant un arrière-goût de trop peu.

L'approche se veut indépendante de tout langage ou moteur de jeu, les auteurs n'écrivent que du pseudo-code. Cette manière de faire rappelle des racines académiques (tout comme le style de rédaction, relativement sec) et permet de présenter les algorithmes dans toute leur généralité, sans bruit en provenance d'une API ou l'autre. Cependant, certains pourront regretter la méthode, puisqu'il faut alors plus de temps pour appliquer un algorithme à son cas particulier — ce qui n'est sans doute pas un mal, chacun devant être plus ou moins spécialisé au type de jeu développé. À ce niveau, la partie réseau reste bien plus dans l'abstrait et s'éloigne des considérations pratiques d'implémentation.

Néanmoins, l'ouvrage n'est sûrement pas le plus abordable, au vu du contenu hautement technique qu'il présente, avec des développements plus académiques que pratiques. Par exemple, les premiers chapitres sur la génération de nombres aléatoires et de bruit nécessitent des prérequis en mathématiques non négligeables ; il n'empêche que cette partie est extrêmement instructive.

Les auteurs présentent un certain nombre de références vers la littérature, notamment scientifique, liées aux problématiques évoquées tout au long du livre. Ces liens permettent souvent d'approfondir le contenu ; cependant, on pourra regretter que toutes ces références ne soient plus accessibles (notamment, sur les techniques d'équilibrage utilisées dans Age of Empires II, sorti en 1999). Malgré tout, bon nombre de ces références ont été mises à jour par rapport à la première édition.

En bref, cet ouvrage peut être recommandé aux personnes qui souhaitent se lancer dans le développement de jeux vidéo, après quelques premiers développements. Il leur permettra de s'améliorer significativement dans une série de domaines spécifiques aux jeux vidéo et ignorés dans la plupart des cours d'algorithmique (par exemple, pour le déplacement d'unités sur un terrain).

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

 
couverture du livre Conception d'algorithmes

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

Conception d'algorithmes

Principes et 150 exercices corrigés

de Patrick Bosc, Marc Guyomard et Laurent Miclet

Résumé de l'éditeur

La conception des algorithmes : une science !

L'algorithmique est l'art et la science de concevoir des algorithmes corrects et efficaces. Pour beaucoup d'informaticiens, c'est l'aspect artistique qui prédomine : on cherche l'idée lumineuse, la structure cachée, la réponse astucieuse. Mais la conception des algorithmes est d'abord une science dont il faut posséder les bases et les techniques avant d'exprimer sa créativité. Ce livre invite le lecteur à une approche rigoureuse de la construction d'algorithmes. Il explique comment la même idée peut se retrouver dans plusieurs algorithmes correspondant à des problèmes différents. Il donne les outils pour analyser rationnellement un problème, le classer dans une famille de méthodes et produire une solution exacte.

Un manuel de référence sur la construction raisonnée des algorithmes

Dans chaque chapitre de ce livre, les bases théoriques et techniques sont rappelées et illustrées par des exemples. On y trouve ensuite un grand nombre d'exercices, accompagnés d'une correction minutieuse et complète. De la sorte, on y voit comment une démarche rationnelle permet d'atteindre une solution, exacte par construction, à travers une grande variété de cas. Après des rappels sur le raisonnement, les structures de données et la complexité, le livre parcourt les grandes méthodes de construction d'algorithmes : invariants, récursivité, essais successifs, méthodes PSEP, algorithmes gloutons, diviser pour régner, programmation dynamique. Au total, près de 150 exemples d'algorithmes sont ainsi analysés et construits rigoureusement.

Cet ouvrage, pour sa deuxième édition, a été entièrement revu et corrigé. Nombre d'exercices ont été remaniés, certains assez largement, en visant une meilleure gradation des difficultés et une argumentation plus complète.

À qui s'adresse ce livre ?

  • Aux étudiants et enseignants en science informatique
  • Aux ingénieurs, enseignants-chercheurs, informaticiens et industriels

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

832 pages, 2e édition, 10 janvier 2019 

Édition : Eyrolles

ISBN10 : 2-212-67728-6

ISBN13 : 978-2-212-67728-7

Commandez sur www.amazon.fr :

49,00 € TTC (prix éditeur 49,00 € TTC) livraison gratuite !
  • Mathématiques et informatiques : notions utiles
  • Complexité d'un algorithme
  • Spécification, invariants, itération
  • Diminuer pour résoudre, récursivité
  • Essais successifs
  • PSEP
  • Algorithmes gloutons
  • Diviser pour régner
  • Programmation dynamique

 
Critique du livre par la rédaction Thibaut Cuvelier le 20 février 2019 

Vaste sujet qu'est la conception d'algorithmes. Peu de gens maîtrisent réellement ce domaine de l'informatique, le prenant pour mystérieux ou obscur. Cet ouvrage offre un tour d'horizon exhaustif des techniques de conception et abreuve le lecteur d'exemples en tout genre, justement pour donner l'habitude de la pensée algorithmique. Les auteurs suivent un schéma commun pour chaque technique présentée : une introduction, un premier exemple détaillé en profondeur, un résumé de la technique (les points essentiels à mettre en œuvre et les conditions d'application) sous la forme d'un patron de conception d'algorithme, puis une série d'exercices (parfois plus de cent pages pour une méthode, corrections comprises !). Cette manière de procéder explicite comment arriver, par un raisonnement rationnel plutôt qu'intuitif, à une solution efficace (sans oublier d'indiquer où la créativité a droit de cité). Les auteurs mettent en avant la rigueur avec laquelle ils ont rédigé le texte — il faut avouer que ce n'étaient pas des paroles en l'air.

L'ouvrage est principalement constitué d'exercices. Leurs énoncés sont souvent détaillés, de telle sorte qu'on comprenne bien là où les auteurs veulent mener sans devoir regarder la solution. Une manière très efficace d'utiliser le livre est ainsi de réaliser les exercices comme ils sont proposés, en ne vérifiant les solutions qu'à la fin de chaque question. Le lecteur qui préférera rester passif devra au contraire se munir de deux signets (l'un pour les énoncés, l'autre pour les solutions). Les exercices proposés sont relativement variés : on n'a pas droit à une pléthore de graphes et quelques autres pour faire bonne figure, mais un mélange plus varié, avec par exemple des jeux.

Pourtant, l'ouvrage n'est pas le plus abordable. Ce n'est pas tellement dû à ses prérequis — les auteurs s'attendent entre autres à un bon bagage en structures de données et en mathématiques —, mais plutôt au niveau de formalisme mathématique utilisé. Ils démontrent, par exemple, que les schémas de preuves habituels sont corrects ; autant dire que chaque algorithme est donné avec son invariant de boucle. Les preuves données dans les corrections sont détaillées, chaque étape du raisonnement étant minutieusement abordée (les auteurs ne sont pas des adeptes du « laissé au lecteur »). Ceci restreint le public ciblé, qui doit avoir une certaine ouverture d'esprit à la beauté mathématique ; inutile cependant d'avoir un parcours mathématique pur pour tirer bénéfice du livre.

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

 
couverture du livre Machine Learning for Data Streams

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

Machine Learning for Data Streams

With Practical Examples in MOA

de Albert Bifet, Ricard Gavaldà, Geoff Holmes et Bernhard Pfahringer

Résumé de l'éditeur

A hands-on approach to tasks and techniques in data stream mining and real-time analytics, with examples in MOA, a popular freely available open-source software framework.

Today many information sources—including sensor networks, financial markets, social networks, and healthcare monitoring—are so-called data streams, arriving sequentially and at high speed. Analysis must take place in real time, with partial data and without the capacity to store the entire data set. This book presents algorithms and techniques used in data stream mining and real-time analytics. Taking a hands-on approach, the book demonstrates the techniques using MOA (Massive Online Analysis), a popular, freely available open-source software framework, allowing readers to try out the techniques after reading the explanations.

The book first offers a brief introduction to the topic, covering big data mining, basic methodologies for mining data streams, and a simple example of MOA. More detailed discussions follow, with chapters on sketching techniques, change, classification, ensemble methods, regression, clustering, and frequent pattern mining. Most of these chapters include exercises, an MOA-based lab session, or both. Finally, the book discusses the MOA software, covering the MOA graphical user interface, the command line, use of its API, and the development of new methods within MOA. The book will be an essential reference for readers who want to use data stream mining as a tool, researchers in innovation or data stream mining, and programmers who want to create new algorithms for MOA.

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

288 pages, 1re édition, 2 mars 2018 

Édition : MIT Press

ISBN10 : 0-262-03779-3

ISBN13 : 978-0-262-03779-2

Commandez sur www.amazon.fr :

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

Introduction

  • Introduction
  • Big Data Stream Mining
  • Hands-on Introduction to MOA

Stream Mining

  • Streams and Sketches
  • Dealing with Change
  • Classification
  • Ensemble Methods
  • Regression
  • Clustering
  • Frequent Pattern Mining

The MOA Software

  • Introduction to MOA and Its Ecosystem
  • The Graphical User Interface
  • Using the Command Line
  • Using the API
  • Developing New Methods in MOA

 
Critique du livre par la rédaction Thibaut Cuvelier le 13 avril 2019 

L'apprentissage automatique est un domaine aux multiples facettes. Ce livre dépoussière l'une d'entre elles qui n'est que trop peu explorée dans la littérature : l'étude des flux de données, où les algorithmes doivent effectuer des prédictions, mais surtout s'adapter en temps réel à des données disponibles au compte-gouttes (même si ce dernier peut avoir un très bon débit !). Les auteurs font la part belle aux spécificités de ce paradigme : les calculs doivent être effectués très rapidement, on n'a presque pas de temps disponible par échantillon, ni de mémoire d'ailleurs.

Structurellement, on retrouve trois parties bien distinctes :

  • une introduction très générale au domaine, qui montre néanmoins l'essentiel de MOA, un logiciel dédié aux tâches d'apprentissage dans les flux ;
  • une présentation plus détaillée des algorithmes applicables à des flux, que ce soit pour les résumer, pour en dériver des modèles de prédiction ou pour explorer les données. Cette partie devrait plaire aux étudiants, professionnels et chercheurs qui souhaitent se lancer dans le domaine, notamment avec ses nombreuses références (pour les détails de certains algorithmes moins intéressants ou trop avancés : on sent un vrai lien entre le livre et la recherche actuelle dans le domaine). Les algorithmes sont détaillés avec un certain niveau de formalisme mathématique, pour bien comprendre ce qu'ils font (et pourquoi ils garantissent une certaine approximation de la réalité) ;
  • finalement, un guide d'utilisation assez succinct de MOA, avec un bon nombre de captures d'écran du logiciel (imprimées en couleurs !), qui détaille les différents onglets de l'interface graphique (à l'aide de listes très descriptives, mais liées aux autres chapitres de l'ouvrage) et passe rapidement sur les interfaces en ligne de commande et de programmation (ces deux derniers chapitres sont brefs et doivent être complémentés par celui sur l'interface graphique, qui contient les éléments essentiels).

On peut néanmoins reprocher quelques références vers la suite du livre (la section 4.6.2 considère parfois le contenu de la 4.9.2 intégré, par exemple), mais aussi l'omniprésence de MOA : on a l'impression que les auteurs se sont focalisés sur les algorithmes disponibles dans cette boîte à outils, plutôt que de présenter les algorithmes les plus intéressants en général. Cette remarque est toutefois assez mineure, au vu de l'exhaustivité de MOA.

À noter : le livre est aussi disponible gratuitement au format HTML, les auteurs répondant aux commentaires qui leur sont laissés.

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

 
couverture du livre Elements of Causal Inference

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

Elements of Causal Inference

Foundations and Learning Algorithms

de Jonas Peters, Dominik Janzing et Bernhard Schölkopf

Résumé de l'éditeur

A concise and self-contained introduction to causal inference, increasingly important in data science and machine learning.

The mathematization of causality is a relatively recent development, and has become increasingly important in data science and machine learning. This book offers a self-contained and concise introduction to causal models and how to learn them from data. After explaining the need for causal models and discussing some of the principles underlying causal inference, the book teaches readers how to use causal models: how to compute intervention distributions, how to infer causal models from observational and interventional data, and how causal ideas could be exploited for classical machine learning problems. All of these topics are discussed first in terms of two variables and then in the more general multivariate case. The bivariate case turns out to be a particularly hard problem for causal learning because there are no conditional independences as used by classical methods for solving multivariate cases. The authors consider analyzing statistical asymmetries between cause and effect to be highly instructive, and they report on their decade of intensive research into this problem.

The book is accessible to readers with a background in machine learning or statistics, and can be used in graduate courses or as a reference for researchers. The text includes code snippets that can be copied and pasted, exercises, and an appendix with a summary of the most important technical concepts.

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

288 pages, 1re édition, 22 décembre 2017 

Édition : MIT Press

ISBN10 : 0-262-03731-9

ISBN13 : 978-0-262-03731-0

Commandez sur www.amazon.fr :

42,03 € TTC (prix éditeur 42,03 € TTC) livraison gratuite !
  • Statistical and Causal Models
  • Assumptions for Causal Inference
  • Cause-Effect Models
  • Learning Cause-Effect Models
  • Connections with Machine Learning, I
  • Multivariate Causal Models
  • Learning Multivariate Causal Models
  • Connections with Machine Learning, II
  • Hidden Variables
  • Time Series

 
Critique du livre par la rédaction Thibaut Cuvelier le 21 avril 2019 

L'apprentissage automatique est un champ extrêmement développé, mais uniquement pour la découverte de corrélations entre variables. Il est parfois facile de déduire un lien entre des symptômes et une pathologie, mais les algorithmes d'apprentissage ne peuvent pas déterminer qui implique qui : est-ce à cause des symptômes que la maladie est présente ou est-ce l'inverse ? L'apprentissage causal cherche à répondre à ce genre de question, le livre ne porte que sur ce sujet.

Les trois auteurs présentent l'essentiel de ce domaine trop peu connu de la science des données, d'une manière progressive : les premiers raisonnements se font « avec les mains », la formalisation suit (à deux variables aléatoires pour commencer, puis dans le cas général). Notamment, les analyses contrefactuelles sont abordées en détail. Ils n'hésitent pas à parsemer leur texte de bouts de code pour faciliter la compréhension des concepts et la mise en pratique des algorithmes. À ce sujet, ils considèrent que le lecteur connaît les bases de R et de quelques bibliothèques pour comprendre ces morceaux de code, aucune explication syntaxique n'étant donnée. Autant que possible, le sujet est mis en relation avec l'apprentissage automatique plus classique.

Le style de rédaction est toutefois sec et académique. Ceci implique notamment l'abondance de références vers la littérature (les trois auteurs ne sont pas en reste dans la liste des citations…) pour approfondir les sujets : la présentation d'un algorithme se limite bien souvent aux idées principales sous-jacentes, le reste étant disponible dans la littérature. Globalement, l'ouvrage n'est pas toujours aussi facile à suivre que l'on espérerait : il est plutôt destiné à des gens qui connaissent déjà les bases de l'inférence de causalité, mais cherchent à approfondir le sujet ou à découvrir d'autres axes de recherche dans le domaine.

À noter : le livre est aussi disponible gratuitement au format PDF.

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

 
couverture du livre Écrire un scénario interactif

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

Écrire un scénario interactif

Jeux vidéo, escape games, serious games

de Pierre Lacombe, Gabriel Féraud et Clément Rivière

Résumé de l'éditeur

Le jeu vidéo est devenu le premier produit culturel mondial. La narration y a enfin pris toute sa place. Découvrez-en les coulisses, embrassez votre créativité et plongez dans un atelier d'écriture unique guidé par les plus grands scénaristes interactifs.

Avec la scénarisation interactive, le spectateur devient acteur de l'œuvre. Grâce à cette narration, on parvient à faire passer des messages encore plus forts, car c'est le joueur qui expérimente ses propres choix et en subit les conséquences. C'est la narration ultime. Que vous soyez amateur/rice de jeux vidéo, étudiant(e) ou professionnel(le), découvrez comment créer des expériences personnalisées plus immersives que jamais et offrez à votre joueur/se l'opportunité à travers ses choix d'écrire son propre destin.

Les méthodes, stratégies et secrets de ce nouvel art vous attendent. Pour partir à leur rencontre, rendez-vous à la page 1.

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

240 pages, 1re édition, 7 février 2019 

Édition : Eyrolles

ISBN10 : 2-212-57100-3

ISBN13 : 978-2-212-57100-4

Commandez sur www.amazon.fr :

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

La scénarisation interactive, un art multimédia

  • Qu'est-ce qu'un scénario interactif ?
  • Cas d'usage d'un scénario interactif
  • Se préparer à l'écriture interactive

Le scénario interactif, histoire d'un genre renouvelé

  • Les livres dont vous êtes le héros
  • Les jeux textuels et les jeux vidéo narratifs

Les fondamentaux du scénario interactif

  • Architecture du scénario
  • Créer un univers et maîtriser ses codes
  • Le personnage principal
  • Créer un réseau de personnages secondaires
  • Les évènements déclencheurs et les révélations
  • Le dialogue
  • L'action
  • Construire une scène

Les mécaniques de l'interactivité

  • Maîtriser son outil de travail
  • Imaginer les différentes fins
  • Les différents types de choix
  • Le bestiaire des graphes
  • La force des contraintes
  • Une expérience personnalisée

 
Critique du livre par la rédaction Thibaut Cuvelier le 22 mai 2019 

Dans le développement d'un jeu vidéo, les amateurs ont tendance à négliger un point en particulier : le scénario, surtout s'il est voulu interactif. Ce livre propose une base assez solide pour concevoir un tel scénario qui tient la route. Comme indiqué dans le sous-titre, le livre ne se focalise pas sur le jeu vidéo, loin de là : les auteurs traitent aussi bien les jeux audio (à la radio), audiovisuels (comme des films), de rôle (ceux que l'on joue sur table). Par contre, ils survolent les jeux sérieux (dont l'objectif n'est pas le divertissement, mais plutôt la pédagogie) et délaissent les jeux d'évasion (grandeur nature), pourtant cités sur la couverture, ce qui est dommage.

Tout au long de l'ouvrage, on retrouve une série de conseils pour bien s'organiser en travaillant sur un scénario, y compris pour la collaboration en équipe sur un projet réel. On sent vraiment que les auteurs ont une expérience de projets aboutis. Des illustrations en nombre aident à comprendre le propos. Dès que cela est nécessaire, les chapitres sont segmentés selon le medium visé. Le trio derrière la rédaction a aussi inclus des témoignages d'autres professionnels du secteur, pour apporter des astuces plus pragmatiques.

Outre le fond, la présentation est agréable : le livre est illustré en couleur, le texte est parsemé d'humour. La séquence entre les différents chapitres est indiquée à la manière d'un livre dont vous êtes le héros, pour éviter de sortir du cadre du scénario interactif.

On pourra cependant regretter le manque de profondeur et d'analyse, qui nuira aux lecteurs les moins expérimentés. Par exemple, tout au long de l'ouvrage, les auteurs parlent de genres et de clichés, mais sans jamais détailler un seul cliché, ni donner d'exemple pour retravailler une scène (tout au plus une phrase pour donner une idée). Ces précisions supplémentaires aideraient cependant à bien intégrer toutes les subtilités et, plus important encore, à mettre en pratique.

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

 
couverture du livre Data Visualization

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

Data Visualization

Charts, Maps, and Interactive Graphics

de Robert Grant

Résumé de l'éditeur

This is the age of data. There are more innovations and more opportunities for interesting work with data than ever before, but there is also an overwhelming amount of quantitative information being published every day. Data visualisation has become big business, because communication is the difference between success and failure, no matter how clever the analysis may have been. The ability to visualize data is now a skill in demand across business, government, NGOs and academia.

Data Visualization: Charts, Maps, and Interactive Graphics gives an overview of a wide range of techniques and challenges, while staying accessible to anyone interested in working with and understanding data.

Features:

  • Focusses on concepts and ways of thinking about data rather than algebra or computer code.
  • Features 17 short chapters that can be read in one sitting.
  • Includes chapters on big data, statistical and machine learning models, visual perception, high-dimensional data, and maps and geographic data.
  • Contains more than 125 visualizations, most created by the author.
  • Supported by a website with all code for creating the visualizations, further reading, datasets and practical advice on crafting the images.

Whether you are a student considering a career in data science, an analyst who wants to learn more about visualization, or the manager of a team working with data, this book will introduce you to a broad range of data visualization methods.

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

218 pages, 1re édition, 4 décembre 2018 

Édition : CRC Press

ISBN10 : 1-138-55359-X

ISBN13 : 978-1-138-55359-0

Commandez sur www.amazon.fr :

26,07 € TTC (prix éditeur 24,67 € TTC) livraison gratuite !
  • Why visualise?
  • Translating numbers to images
  • Continuous and discrete numbers
  • Percentages and risks
  • Showing data or statistics
  • Differences, ratios, correlations
  • Visual perception and the brain
  • Showing uncertainty
  • Time trends
  • Statistical predictive models
  • Machine learning techniques
  • Many variables
  • Maps and networks
  • Interactivity
  • Big data
  • Visualisation as part of a bigger package
  • Some overarching ideas

 
Critique du livre par la rédaction Thibaut Cuvelier le 18 juin 2019 

La visualisation de données est un besoin de plus en plus pressant, notamment dans un contexte de mégadonnées : c'est bien de disposer de données, c'est mieux d'arriver à les exploiter correctement. La visualisation est un outil très utile pour cela, mais seulement quand elle est appliquée à bon escient. C'est ce que ce livre propose : des techniques de visualisation, un lien avec les statistiques, des principes de conception d'une bonne visualisation, mais aussi toute une série d'exemples. L'auteur a comme but d'enseigner la manière de réaliser des graphiques qui ont un impact.

L'auteur est un statisticien et cela se ressent dans la manière d'aborder les sujets : pas question d'afficher des barres d'erreur sans expliciter ce qu'elles représentent (écart type, erreur standard, intervalle de confiance ?), par exemple. Ce n'est pas une raison pour abrutir le lecteur de mathématiques, puisque l'ouvrage ne comporte aucune formule, vraiment aucune. Quelques outils statistiques sont présentés, mais assez brièvement, uniquement en expliquant les principes généraux (des références sont là pour compléter). Ce choix est parfois limitant : pour le bootstrap, notamment, l'auteur répète maintes fois l'utilité de la technique, mais ne l'explique pas vraiment.

Les mises en situation constituent l'épine dorsale du livre, en ce sens que chaque chapitre dispose d'une ou plusieurs visualisations réalistes, parfois comparées : quels sont les avantages de telle manière de représenter les données, quelles sont les interprétations plus faciles à réaliser sur tel graphique, quelle visualisation ne peut pas fonctionner (sans oublier le pourquoi, qu'il soit plutôt statistique ou visuel). Cette manière de procéder rend l'ouvrage très lisible et attirant.

Pour la mise en pratique, l'auteur met à disposition sur son site le code source de chaque graphique qu'il a réalisé pour le livre (surtout en R) — même si le livre en lui-même ne présente pas une seule ligne de code, ce n'est pas un tutoriel R ou Stata.

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

 
couverture du livre Théorie des codes

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

Théorie des codes

Compression, cryptage, correction

de Jean-Guillaume Dumas, Jean-Louis Roch, Sébastien Varrette, Eric Tannier

Résumé de l'éditeur

Transmettre des informations sous forme numérique suppose entre autres d'optimiser la taille des messages transmis pour éviter de surcharger les canaux de transmission, d'être capable de rectifier des erreurs apparues en cours de transmission, de crypter les contenus et d'authentifier les émissaires et les destinataires...

L'originalité de cet ouvrage est de présenter tous les fondements mathématiques et informatiques sur lesquels reposent ces techniques.

Les notions théoriques présentées sont illustrées par 140 exercices corrigés.

Cette 3e édition s'enrichit de compléments sur les infrastructures à clefs publiques (PKI), les courbes elliptiques, les registres à décalage (LFSR), les fonctions de hachage.

L'utilisation de la cryptographie dans les applications mobiles (Facebook, Messenger, WhatsApp...) est abordée, et des bonnes pratiques de sécurité sont présentées pour des utilitaires incontournables comme GPG et SSH.

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

384 pages, 3e édition, 13 juin 2018 

Édition : Dunod

ISBN10 : 2-10-078109-X

ISBN13 : 978-2-10-078109-6

Commandez sur www.amazon.fr :

39,90 € TTC (prix éditeur 39,90 € TTC) livraison gratuite !
  • Théorie des codes
  • Théorie de l'information et compression
  • Cryptologie
  • Détection et corrections d'erreurs

 
Critique du livre par la rédaction Thibaut Cuvelier le 18 juin 2019 

Malgré ses aspects très mathématiques, la théorie de l'information se révèle très utile pour l'ingénieur, tant en informatique qu'en électronique, tant elle a su se faire une place : elle couvre la compression des données, la transmission avec détection et correction des erreurs, mais aussi le chiffrement des communications. Ce livre est assez particulier dans la littérature, car il couvre ces trois aspects (le chiffrement est souvent ignoré en théorie de l'information). Il a aussi l'avantage de n'aborder les éléments mathématiques qu'au compte-gouttes, selon les besoins du sujet développé — les auteurs ont évité de présenter trop d'éléments de manière abstraite, ils ont préféré recontextualiser.

Cette troisième édition aborde bon nombre de sujets au goût du jour, comme l'algorithme de hachage SHA-3 (Keccak) ou la cryptographie homomorphe. On peut cependant regretter que la cryptographie post-quantique ne soit pas plus évoquée, puisqu'elle n'est présente que dans un seul exercice (un cryptosystème résistant aux ordinateurs quantiques) : aucune mention des possibilités d'échange de clés à l'aide de photons intriqués, pourtant bientôt utilisés de manière commerciale.

Pour les étudiants, le livre dispose d'une grande série d'exercices, tous corrigés en annexe (bien que de manière assez succincte — suffisant pour vérifier que l'on a le bon résultat, pas tellement pour se débloquer), avec des niveaux de complexité assez variables (mais sans que ce niveau soit indiqué). Dans certains cas, on aurait plutôt préféré voir le sujet de l'exercice traité au fil du texte, avec plus de détails.

L'ouvrage est très complet dans sa présentation : sont présents tous les éléments nécessaires pour l'implémentation complète d'un système de compression, de chiffrement ou de codage sont disponibles, y compris les algorithmes de plus bas niveau (comme le produit efficace de deux polynômes). Les auteurs donnent aussi les recommandations actuelles pour rendre une implémentation cryptographiques sûre. La complétude continue dans les détails mathématiques, puisque toutes les définitions, tous les théorèmes utiles sont donnés (avec une présentation austère, toutefois), souvent avec leur preuve.

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

 
couverture du livre Hands-On Unsupervised Learning Using Python

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

Hands-On Unsupervised Learning Using Python

How to Build Applied Machine Learning Solutions from Unlabeled Data

de Ankur A. Patel

Résumé de l'éditeur

Many industry experts consider unsupervised learning the next frontier in artificial intelligence, one that may hold the key to general artificial intelligence. Since the majority of the world's data is unlabeled, conventional supervised learning cannot be applied. Unsupervised learning, on the other hand, can be applied to unlabeled datasets to discover meaningful patterns buried deep in the data, patterns that may be near impossible for humans to uncover.

Author Ankur Patel shows you how to apply unsupervised learning using two simple, production-ready Python frameworks: Scikit-learn and TensorFlow using Keras. With code and hands-on examples, data scientists will identify difficult-to-find patterns in data and gain deeper business insight, detect anomalies, perform automatic feature engineering and selection, and generate synthetic datasets. All you need is programming and some machine learning experience to get started.

  • Compare the strengths and weaknesses of the different machine learning approaches: supervised, unsupervised, and reinforcement learning
  • Set up and manage machine learning projects end-to-end
  • Build an anomaly detection system to catch credit card fraud
  • Clusters users into distinct and homogeneous groups
  • Perform semisupervised learning
  • Develop movie recommender systems using restricted Boltzmann machines
  • Generate synthetic images using generative adversarial networks

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

362 pages, 1re édition, 18 mars 2019 

Édition : O'Reilly

ISBN10 : 1-4920-3564-5

ISBN13 : 978-1-4920-3564-0

Commandez sur www.amazon.fr :

43,01 € TTC (prix éditeur 43,01 € TTC) livraison gratuite !

Fundamentals of Unsupervised Learning

  • Unsupervised Learning in the Machine Learning Ecosystem
  • End-to-End Machine Learning Project

Unsupervised Learning Using Scikit-Learn

  • Dimensionality Reduction
  • Anomaly Detection
  • Clustering
  • Group Segmentation

Unsupervised Learning Using TensorFlow and Keras

  • Autoencoders
  • Hands-On Autoencoder
  • Semisupervised Learning

Deep Unsupervised Learning Using TensorFlow and Keras

  • Recommender Systems Using Restricted Boltzmann Machines
  • Feature Detection Using Deep Belief Networks
  • Generative Adversarial Networks
  • Time Series Clustering

 
Critique du livre par la rédaction Thibaut Cuvelier le 2 juillet 2019 

Le titre de cet ouvrage promet une belle partie appliquée, c'est effectivement ce que l'on ressent à sa lecture : on ne compte plus les lignes de code pour bien montrer ce que l'auteur fait, notamment dans ses graphiques (le code les générant étant présent dans le livre in extenso). Tout le code est d'ailleurs écrit avec Python 3, en utilisant les dernières versions des bibliothèques, afin de rester utilisable aussi longtemps que possible. Ce côté appliqué est présent tout au long du livre, l'auteur cherche toujours à présenter une utilité aux algorithmes qu'il aborde, il ne se contente pas d'un inventaire à la Prévert, le lien avec les applications réalistes est toujours présent.

L'ouvrage est construit progressivement, avec des techniques de plus en plus avancées, en présentant d'abord brièvement les concepts théoriques (sans mathématiques, car tel n'est pas le but du livre), les algorithmes, puis en plongeant dans la pratique. Les approches sont bien souvent comparées sur un même exemple, afin d'en voir les avantages et inconvénients. Cependant, l'apprentissage non supervisé n'est vu que sous un seul angle : l'exploitation de données sans étiquettes dans l'objectif d'effectuer des prédictions, c'est-à-dire comme une approche entièrement supervisée. Ce faisant, tous les aspects d'analyse de données sont négligés : il aurait été agréable, par exemple, de voir une application de partitionnement de données pour comprendre ce qu'elles contiennent (comme déterminer, sans a priori, les différentes manières de participer à un jeu). Au contraire, dans les exemples de partitionnement, on sait d'avance le nombre de classes que l'on cherche.

Au niveau de la présentation, une grande quantité de code et parfois d'images est redondante. Dans les premiers exemples, qui montrent plusieurs algorithmes d'apprentissage supervisé, la validation croisée est présentée à chaque fois, au lieu de se focaliser sur les différences entre les algorithmes. Chaque chapitre commence par une bonne page d'importation de modules Python (y compris des modules qui ne sont pas utilisés dans ce chapitre !). Certaines parties présentent une grande quantité d'images disposées de telle sorte qu'elles prennent un maximum de place (six images de taille raisonnable présentées sur trois pages, alors qu'en les réduisant un peu on aurait pu tout faire tenir sur une seule face…). Par ailleurs, toutes les images sont en noir et blanc, mais ont été conçues en couleurs : il est souvent difficile de s'y retrouver, car l'information de couleur est très exploitée (notamment pour présenter plusieurs courbes : elles ont sûrement des couleurs très différentes, mais les niveaux de gris se ressemblent trop pour que l'on arrive à faire la distinction entre les courbes).

Le côté technique m'a vraiment déçu. Les algorithmes sont présentés très rapidement, leurs paramètres sont quelque peu vus comme des boîtes noires ou simplement ignorés : comment peut-on en comprendre l'impact sur la solution ? Le chapitre sur la détection d'anomalies n'est vu que comme une application de la réduction de dimensionnalité, on ne trouve aucune discussion des algorithmes spécifiquement prévus pour cette tâche (forêts d'isolation, SVM à une classe, etc.), ce qui est assez réducteur. On ne trouve aucune mention des plongements (comme word2vec pour la représentation de mots) dans la section sur les autoencodeurs, alors que c'en est une application très importante.

Le public ciblé semble n'avoir qu'une assez faible expérience en apprentissage automatique. Le livre sera surtout utile à ceux qui veulent une introduction rapide et pas trop poussée au domaine de l'apprentissage non supervisé, un survol du domaine en abordant toutes ses facettes principales. Ceux qui se demandent à quoi l'apprentissage non supervisé peut bien être utile seront servis, mais n'en verront pas toutes les possibilités.

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

 
couverture du livre Stream Processing with Apache Flink

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

Stream Processing with Apache Flink

Fundamentals, Implementation, and Operation of Streaming Applications

de Fabian Hueske et Vasiliki Kalavri

Résumé de l'éditeur

Get started with Apache Flink, the open source framework that powers some of the world’s largest stream processing applications. With this practical book, you’ll explore the fundamental concepts of parallel stream processing and discover how this technology differs from traditional batch data processing.

Longtime Apache Flink committers Fabian Hueske and Vasia Kalavri show you how to implement scalable streaming applications with Flink’s DataStream API and continuously run and maintain these applications in operational environments. Stream processing is ideal for many use cases, including low-latency ETL, streaming analytics, and real-time dashboards as well as fraud detection, anomaly detection, and alerting. You can process continuous data of any kind, including user interactions, financial transactions, and IoT data, as soon as you generate them.

  • Learn concepts and challenges of distributed stateful stream processing
  • Explore Flink’s system architecture, including its event-time processing mode and fault-tolerance model
  • Understand the fundamentals and building blocks of the DataStream API, including its time-based and statefuloperators
  • Read data from and write data to external systems with exactly-once consistency
  • Deploy and configure Flink clusters
  • Operate continuously running streaming applications

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

310 pages, 1re édition, 23 avril 2019 

Édition : O'Reilly

ISBN10 : 1-4919-7429-X

ISBN13 : 978-1-4919-7429-2

Commandez sur www.amazon.fr :

51,31 € TTC (prix éditeur 51,31 € TTC) livraison gratuite !
  • Introduction into Data Stream Processing
  • Stream Processing Fundamentals
  • The Architecture of Apache Flink
  • Setting up a development environment for Apache Flink
  • The DataStream API (v1.7)
  • Time-based and Windows Operators
  • Stateful Operators and Applications
  • Reading from and Writing to External Systems
  • Setting up Flink for Streaming Applications
  • Operating Flink and Streaming Applications
  • Where to Go from Here?

 
Critique du livre par la rédaction Thibaut Cuvelier le 9 juillet 2019 

La nouvelle frontière de l'exploitation de gros jeux de données est le flux, quand de grandes quantités de données arrivent en temps réel et doivent être traitées à la même vitesse. Apache Flink est un outil moderne pour traiter ces problématiques et ce livre, écrit par deux développeurs majeurs du projet, se focalise sur la meilleure manière de développer de telles applications. Il est d'ailleurs très complet et part vraiment des bases (plus théoriques) du traitement de données en flux — certains regretteront que le code fasse son apparition aux alentours de la page 80.

Le contenu se structure de façon très progressive : les auteurs parlent d'abord des principes généraux, puis développent petit à petit et finissent dans des détails sur le fonctionnement interne de Flink (en veillant toutefois à ce que le contenu reste utile pour plusieurs versions). Ainsi, quand l'explication d'un système particulier requiert des détails d'autres sous-systèmes (comme le mécanisme de sauvegarde), ceux-ci sont d'abord esquissés, puis détaillés dans une section ou un chapitre futur : on ne se sent pas dépassé par le contenu, grâce à cette approche progressive.

À ce sujet, le livre couvre Flink 1.7, la version 1.8 étant sortie le même mois que le livre — les nouveautés de Flink 1.8 ne sont pas abordées, ni même citées, comme les évolutions du schéma d'état ou le traitement de données par lots. Chaque système est illustré par l'un ou l'autre exemple, très courts au début du livre, puis bien plus longs ; pour bien en profiter, des connaissances basiques en Scala seront nécessaires (le langage n'est pas du tout présenté). On pourra cependant regretter l'absence d'exemples complets, qui combinent toute une série de fonctionnalités, comme un cas d'utilisation.

Globalement, cet ouvrage pourra viser tant un public de débutants (rien n'est omis dans les bases) que de développeurs plus chevronnés dans le traitement de données en flux (les systèmes et choix de conception de Flink sont abordés en profondeur). Il ne se limite pas aux fonctionnalités et opérateurs de base, mais présente bien toutes les possibilités que l'on a d'adapter le fonctionnement de Flink à ses besoins.

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

 
couverture du livre Think Julia

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

Think Julia

How to Think Like a Computer Scientist

de Allen B. Downey et Ben Lauwens

Résumé de l'éditeur

If you’re just learning how to program, Julia is an excellent JIT-compiled, dynamically-typed language with a clean syntax. This hands-on guide uses Julia (version 1.0) to walk you through programming one step at a time, beginning with basic programming concepts before moving on to more advanced capabilities, such as creating new types and multiple dispatch.

Designed from the beginning for high performance, Julia is a general-purpose language not only ideal for numerical analysis and computational science, but also for web programming or scripting. Through exercises in each chapter, you’ll try out programming concepts as you learn them.

Think Julia is ideal for students at the high school or college level, as well as self-learners, home-schooled students, and professionals who need to learn programming basics.

  • Start with the basics, including language syntax and semantics
  • Get a clear definition of each programming concept
  • Learn about values, variables, statements, functions, and data structures in a logical progression
  • Discover how to work with files and databases
  • Understand types, methods, and multiple dispatch
  • Use debugging techniques to fix syntax, runtime, and semantic errors
  • Explore interface design and data structures through case studies

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

310 pages, 1re édition, 4 mai 2019 

Édition : O'Reilly

ISBN10 : 1-4920-4503-9

ISBN13 : 978-1-4920-4503-8

Commandez sur www.amazon.fr :

33,61 € TTC (prix éditeur 33,61 € TTC) livraison gratuite !
  • The Way of the Program
  • Variables, Expressions, and Statements
  • Functions
  • Case Study: Interface Design
  • Conditionals and Recursion
  • Fruitful Functions
  • Iteration
  • Strings
  • Case Study: Word Play
  • Arrays
  • Dictionaries
  • Tuples
  • Case Study: Data Structure Selection
  • Files
  • Structs and Objects
  • Structs and Functions
  • Multiple Dispatch
  • Subtyping
  • The Goodies: Syntax
  • The Goodies: Base and Standard Library
  • Debugging

 
Critique du livre par la rédaction Thibaut Cuvelier le 11 juillet 2019 

Julia est un langage de programmation assez récent, mais qui perce notamment dans les domaines où la performance est critique ou quand les besoins en syntaxe spécifique au domaine (DSL) sont élevés. Ce livre présente le langage en faisant abstraction des domaines où il est le plus apprécié, en suivant une approche très progressive adaptée à l'apprentissage de la programmation. L'auteur ne présente donc aucun élément spécifique aux applications du langage, ni même de paquet supplémentaire : il fait plutôt un tri dans les constructions pour proposer les plus courantes, en évitant la redondance — ce qui n'est pas plus mal pour aborder la programmation ! Deux chapitres présentent toutefois brièvement les constructions et outils qui n'ont pas été abordés plus tôt dans l'ouvrage, au cas où le lecteur aurait du code à lire.

De même, chaque chapitre contient une série d'exercices pour mettre en pratique le contenu étudié (malheureusement, la correction n'est disponible qu'en ligne). La pratique est vraiment mise en avant, mais les aspects plus théoriques ne sont pas pour autant négligés quand ils sont nécessaires. Ces passages sont d'ailleurs très clairs. Chaque chapitre se termine par un glossaire des nouveaux termes utilisés dans l'ouvrage, ainsi que, bien souvent, avec une section sur le débogage et les techniques adaptées aux constructions du langage présentées dans ce chapitre. Le dernier chapitre vient ajouter une couche de débogage supplémentaire, pour aider ceux qui n'ont pas de grande expérience en programmation à toujours arriver à leurs fins. Aussi, trois chapitres sont dédiés à des études de cas, qui ne servent qu'à la mise en pratique des nouveaux savoirs, la mise en perspective de différentes manières d'aborder une même problématique.

Le livre est rédigé de manière attrayante et vivante, il ne s'agit pas d'un austère cours de programmation où l'on n'apprend finalement pas grand-chose. Bien au contraire ! Les fonctions disponibles de base en Julia mais réimplémentées pour l'exemple sont toujours suivies de la meilleure manière de procéder (c'est-à-dire d'utiliser l'implémentation de base), ce que tous les ouvrages pour débutants ne font pas forcément. Le chapitre sur la gestion des chaînes de caractères pourrait poser quelques soucis de compréhension pour ceux qui ne sont pas habitués à l'informatique, mais c'est pour la bonne cause, puisque seul Unicode est enseigné, avec ses caractères représentés sur plusieurs octets : de manière globale, l'ouvrage tend à ne présenter que de bonnes pratiques avec le langage.

Globalement, ce livre servira de socle pour tout qui souhaite se lancer en programmation avec le langage Julia. Par contre, eux qui sont déjà adeptes de l'un ou l'autre langage de programmation n'apprécieront probablement pas son rythme lent. On peut regretter que certains points ne soient pas abordés, comme la macro @enum, le paquet Revise.jl ou les opérations vectorielles, s'il faut vraiment chercher une critique à apporter.

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

 
couverture du livre GPU Parallel Program Development Using CUDA

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

GPU Parallel Program Development Using CUDA

de Tolga Soyata

Résumé de l'éditeur

GPU Parallel Program Development using CUDA teaches GPU programming by showing the differences among different families of GPUs. This approach prepares the reader for the next generation and future generations of GPUs. The book emphasizes concepts that will remain relevant for a long time, rather than concepts that are platform-specific. At the same time, the book also provides platform-dependent explanations that are as valuable as generalized GPU concepts.

The book consists of three separate parts; it starts by explaining parallelism using CPU multi-threading in Part I. A few simple programs are used to demonstrate the concept of dividing a large task into multiple parallel sub-tasks and mapping them to CPU threads. Multiple ways of parallelizing the same task are analyzed and their pros/cons are studied in terms of both core and memory operation.

Part II of the book introduces GPU massive parallelism. The same programs are parallelized on multiple Nvidia GPU platforms and the same performance analysis is repeated. Because the core and memory structures of CPUs and GPUs are different, the results differ in interesting ways. The end goal is to make programmers aware of all the good ideas, as well as the bad ideas, so readers can apply the good ideas and avoid the bad ideas in their own programs.

Part III of the book provides pointer for readers who want to expand their horizons. It provides a brief introduction to popular CUDA libraries (such as cuBLAS, cuFFT, NPP, and Thrust),the OpenCL programming language, an overview of GPU programming using other programming languages and API libraries (such as Python, OpenCV, OpenGL, and Apple’s Swift and Metal,) and the deep learning library cuDNN.

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

440 pages, 1re édition, 16 février 2018 

Édition : CRC Press

ISBN10 : 1-4987-5075-3

ISBN13 : 978-1-4987-5075-2

Commandez sur www.amazon.fr :

38,32 € TTC (prix éditeur 38,32 € TTC) livraison gratuite !

Understanding CPU Parallelism

  • Introduction to CPU Parallel Programming
  • Developing Our First Parallel CPU Program
  • Improving Our First Parallel CPU Program
  • Understanding the Cores and Memory
  • Thread Management and Synchronization

GPU Programming Using CUDA

  • Introduction to GPU Parallelism and CUDA
  • CUDA Host/Device Programming Model
  • Understanding GPU Hardware Architecture
  • Understanding GPU Cores
  • Understanding GPU Memory
  • CUDA Streams

More To Know

  • CUDA Libraries
  • Introduction to Open CL
  • Other GPU Programming Languages

Deep Unsupervised Learning Using TensorFlow and Keras

  • Recommender Systems Using Restricted Boltzmann Machines
  • Feature Detection Using Deep Belief Networks
  • Generative Adversarial Networks
  • Time Series Clustering

 
Critique du livre par la rédaction Thibaut Cuvelier le 23 juillet 2019 

La programmation de cartes graphiques pour du calcul généraliste est un art exigeant : écrire du code correct n'est pas suffisant, il faut aussi qu'il soit rapide, sinon il n'est pas très utile de passer sur un processeur graphique. Pour y arriver, la meilleure alliée est probablement l'expérience et l'auteur semble en avoir une certaine quantité.

Ce livre prend le lecteur par la main en ce qui concerne l'écriture de code (très) performant, tant sur CPU que GPU. Il commence par expliquer toutes les notions utiles pour un CPU, avant de généraliser aux GPU (et de préciser les distinctions), pour travailler à une échelle plus habituelle pour un programmeur (quelques fils d'exécution, pas plusieurs millions). Le lecteur est abreuvé de détails de bas niveau sur le fonctionnement d'un processeur et de la mémoire, afin d'en profiter un maximum : autant que possible, l'auteur limite ses explications à des invariants dans la conception de ces processeurs, de telle sorte que le livre reste utile pendant plusieurs générations de matériel.

Le livre se focalise sur extrêmement peu d'exemples différents, toujours pris dans le traitement d'images (retournement d'une image et détection d'arêtes). Ces exemples ont des caractéristiques suffisamment variées pour les besoins du livre (utilisation intense de la mémoire ou des capacités de calcul) et permettent d'aller droit au but dans les améliorations de performance. D'ailleurs, les analyses de performance ne se limitent pas à constater des différences, mais bien à les expliquer en détail en fonction du matériel utilisé.

La partie la plus décevante du livre est sans conteste la troisième, qui sort de CUDA. On a droit à des introductions extrêmement courtes et partielles à des sujets bien plus variés. Par exemple, pour les bibliothèques livrées avec CUDA, on a plus une liste de possibilités qu'une vraie explication de leur utilisation. Le très bref chapitre sur les réseaux neuronaux explique très rapidement le principe, l'existence de la bibliothèque cuDNN, ses fonctions principales (mais juste les noms, pas leur utilisation !) avant de conseiller l'utilisation de Keras : au vu du titre du livre, on s'attendait à plus de détails.

Le ton est vivant, pas lénifiant, comme l'on a parfois dans les ouvrages introductifs du genre : l'auteur a une certaine expérience pédagogique et la met à profit (même si les personnes allergiques aux noix de coco feraient mieux de passer leur chemin — les concepts principaux sont expliqués à l'aide d'analogies avec la récolte de noix de coco). Une conséquence est que le livre n'est pas compact, les explications ne laissant pas beaucoup de place à l'interprétation. Le public visé n'a pas de grandes connaissances en programmation de haute performance, il s'agit plutôt de scientifiques non informaticiens ou d'étudiants dans ces domaines — par exemple, les premiers chapitres ne supposent aucune connaissance de la ligne de commandes.

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

 
couverture du livre Computer Graphics Through OpenGL

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

Computer Graphics Through OpenGL

From Theory to Experiments

de Sumanta Guha

Résumé de l'éditeur

From geometric primitives to animation to 3D modeling to lighting, shading and texturing, Computer Graphics Through OpenGL®: From Theory to Experiments is a comprehensive introduction to computer graphics which uses an active learning style to teach key concepts. Equally emphasizing theory and practice, the book provides an understanding not only of the principles of 3D computer graphics, but also the use of the OpenGL® Application Programming Interface (API) to code 3D scenes and animation, including games and movies.

The undergraduate core of the book takes the student from zero knowledge of computer graphics to a mastery of the fundamental concepts with the ability to code applications using fourth-generation OpenGL®. The remaining chapters explore more advanced topics, including the structure of curves and surfaces, applications of projective spaces and transformations and the implementation of graphics pipelines.

Part II of the book introduces GPU massive parallelism. The same programs are parallelized on multiple Nvidia GPU platforms and the same performance analysis is repeated. Because the core and memory structures of CPUs and GPUs are different, the results differ in interesting ways. The end goal is to make programmers aware of all the good ideas, as well as the bad ideas, so readers can apply the good ideas and avoid the bad ideas in their own programs.

This book can be used for introductory undergraduate computer graphics courses over one to two semesters. The careful exposition style attempting to explain each concept in the simplest terms possible should appeal to the self-study student as well.

Features

  • Covers the foundations of 3D computer graphics, including animation, visual techniques and 3D modeling
  • Comprehensive coverage of OpenGL® 4.x, including the GLSL and vertex, fragment, tessellation and geometry shaders
  • Includes 180 programs with 270 experiments based on them
  • Contains 750 exercises, 110 worked examples, and 700 four-color illustrations
  • Requires no previous knowledge of computer graphics
  • Balances theory with programming practice using a hands-on interactive approach to explain the underlying concepts

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

732 pages, 3e édition, 7 janvier 2019 

Édition : CRC Press

ISBN10 : 1-138-61264-2

ISBN13 : 978-1-138-61264-8

Commandez sur www.amazon.fr :

100,59 € TTC (prix éditeur 100,59 € TTC) livraison gratuite !

Hello World

  • An Invitation To Computer Graphics
  • On To OpenGL And 3D Computer Graphics

Tricks Of The Trade

  • An OpenGL Toolbox

Movers And Shapers

  • Transformation, Animation And Viewing
  • Inside Animation: The Theory of Transformations
  • Advanced Animation Techniques

Geometry for the Home Office

  • Convexity and Interpolation
  • Triangulation
  • Orientation

Making Things Up

  • Modeling in 3D Space

Lights, Camera, Equation

  • Color and Light
  • Texture
  • Special Visual Techniques

Pixels, Pixels, Everywhere

  • Raster Algorithms

Programming Pipe Dreams

  • OpenGL 4.3, Shaders And The Programmable Pipeline: Liftoff
  • OpenGL 4.3, Shaders And The Programmable Pipeline: Escape Velocity

Anatomy Of Curves And Surfaces

  • Bézier
  • B-Spline
  • Hermite

Well Projected

  • Applications Of Projective Spaces: Projection Transformations and Rational Curves

Time For A Pipe

  • Pipeline Operation

Appendices

  • Projective Spaces and Transformations
  • Math Self-Test
  • Math Self-Test Solutions

 
Critique du livre par la rédaction Thibaut Cuvelier le 11 août 2019 

L'infographie 3D est un domaine paradoxal : autant les applications montrent vite un côté fun et entraînant, autant l'apprentissage peut se montrer rébarbatif. Ce livre met véritablement l'accent sur la pratique, c'est-à-dire que les concepts sont dès que possible mis en pratique à l'aide d'« expériences », des morceaux de code à lancer pour mieux comprendre. L'aspect pratique est tellement développé qu'il est handicapant de ne pas avoir d'ordinateur à proximité pour tester ces exemples !

Le côté théorique n'est pas mis de côté, il est fort présent, au point que l'auteur se sent parfois obligé d'indiquer que certaines sections peuvent être sautées en première lecture. Le niveau de détail est toutefois adapté pour des autodidactes, avec des prérequis raisonnables (sauf pour la partie sur la géométrie projective, bien plus difficile d'accès) : trigonométrie, analyse mathématique, algèbre linéaire, à un niveau relativement basique. Les sections vraiment mathématiques sont présentées d'abord de manière assez abstraite, mais en contexte  l'objectif n'est pas d'enseigner des mathématiques, mais des outils mathématiques utiles dans un contexte infographique. L'auteur fait autant de liens que possible avec la pratique d'OpenGL.

L'approche pédagogique risque de surprendre, puisque les quinze premiers chapitres se focalisent sur OpenGL « à l'ancienne », avec toutes ses fonctions fixes. De la sorte, l'auteur suit une approche progressive, laissant OpenGL gérer un grand nombre de difficultés pour se focaliser sur les principes de base (VAO et VBO ne simplifient pas le code) : par conséquent, les nuanceurs n'arrivent que très tard, Vulkan n'est que cité. On peut aussi regretter que la pratique des nuanceurs ne soit pas plus développée, l'auteur ne montrant qu'une série d'effets que l'on peut implémenter grâce à eux. Ce livre ne vise pas à enseigner l'utilisation d'OpenGL, mais bien les principes de l'infographie 3D : la syntaxe OpenGL n'est pas aussi importante que la bonne compréhension des principes sous-jacents.

L'ouvrage ne contient pas énormément de code, surtout les parties nécessaires à la compréhension. Pour voir le code au complet, le lecteur est redirigé vers le contenu supplémentaire du livre. À titre personnel, j'aurais néanmoins préféré voir plus d'extraits de code dans le texte. Il paraît que tout le code est écrit en C++, mais il s'agit plus d'un C89 avec des classes (notamment avec les définitions de variables en début de bloc) : utiliser la classe string plutôt qu'un tableau char* aurait simplifié certains passages.

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

 
couverture du livre Algorithms Illuminated: The Basics

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

Algorithms Illuminated: The Basics

de Tim Roughgarden

Résumé de l'éditeur

Accessible, no-nonsense, and programming language-agnostic introduction to algorithms. Includes solutions to all quizzes and selected problems, and a series of YouTube videos by the author accompanies the book. Part 1 covers asymptotic analysis and big-O notation, divide-and-conquer algorithms and the master method, randomized algorithms, and several famous algorithms for sorting and selection.

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

218 pages, 1re édition, 27 septembre 2017 

Édition : Soundlikeyourself Publishing

ISBN10 : 0-999-28290-5

ISBN13 : 978-0-999-28290-8

Commandez sur www.amazon.fr :

15,81 € TTC (prix éditeur 15,81 € TTC) livraison gratuite !
  • Introduction
  • Asymptotic Notation
  • Divide-and-Conquer Algorithms
  • The Master Method
  • QuickSort
  • Linear-Time Selection
  • Quick Review of Proofs By Induction
  • Quick Review of Discrete Probability

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

L'algorithmique est un sujet indispensable pour toute formation de développeur informatique et c'est (malheureusement ou non) souvent un sujet testé lors des interviews de code des grandes entreprises. Cependant, la matière est souvent enseignée de manière très rigide et rarement accessible au plus grand nombre, y compris en début de cursus (l'algorithmique est parfois considérée comme un sujet éliminatoire par les enseignants).

Ce livre propose un autre angle de vue sur le sujet : le texte est clair, pas encombré de termes techniques inutiles. Le contenu est abordé de manière progressive et intégrée (les notations asymptotiques ne sont pas détaillées de manière abstraite, mais dans le concret d'un algorithme). L'auteur a fait le choix de présenter relativement peu d'algorithmes (aucun algorithme de tri ne nécessite de structure de données comme le monceau), ce qui lui permet d'entrer dans les détails. Chacun est d'ailleurs placé dans un vrai contexte avec des problèmes réels où cet algorithme peut être utilisé. Chaque chapitre est terminé par un petit encadré résumant les notions les plus importantes abordées dans ce chapitre.

L'un des choix posés lors de la rédaction a été une complète indépendance vis-à-vis du langage de programmation. D'un côté, cela rend le livre plus abstrait et légèrement moins accessible. De l'autre, cela permet d'éviter les complexités liées à la syntaxe d'un langage de programmation (le lecteur est d'ailleurs supposé déjà savoir programmer dans un langage, c'est presque le seul prérequis — avec un petit peu de mathématiques). Les intrications mathématiques sont limitées au maximum, afin d'élargir le public visé. Certains sujets nécessitent plus d'écritures mathématiques, mais ils sont clairement indiqués comme tels et ne sont pas nécessaires à la bonne compréhension globale de l'ouvrage.

Ce livre fait partie d'une série de quatre et il est extrait de cours en ligne donnés par l'auteur. Ce premier tome parle d'algorithmique en général, sans entrer dans les détails de structures de données : il se limite à quelques algorithmes de tri (le tri rapide ayant droit à son propre chapitre bien détaillé). L'auteur a d'ailleurs réutilisé certaines des ressources de ces cours pour compléter le livre. On y retrouve donc l'un ou l'autre quiz (avec des solutions très détaillées) et des problèmes (la plupart ayant une solution explicitée dans le livre), mais aussi des tests plus compliqués en ligne ainsi que des vidéos.

En résumé, je trouve que ce livre est une très bonne introduction au sujet de l'algorithmique. Il conviendra très bien aux plus débutants et à ceux que le domaine rebute. Par contre, il faudra le compléter par d'autres livres pour approfondir.

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

 
couverture du livre Algorithms Illuminated: Graph Algorithms and Data Structures

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

Algorithms Illuminated: Graph Algorithms and Data Structures

de Tim Roughgarden

Résumé de l'éditeur

Accessible, no-nonsense, and programming language-agnostic introduction to algorithms. Includes solutions to all quizzes and selected problems, and a series of YouTube videos by the author accompanies the book. Part 2 covers graph search and its applications, shortest-path algorithms, and the applications and implementation of several data structures: heaps, search trees, hash tables, and bloom filters. (Part 1 is not a prerequisite.)

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

221 pages, 1re édition, 5 août 2018 

Édition : Soundlikeyourself Publishing

ISBN10 : 0-999-28292-1

ISBN13 : 978-0-999-28292-2

Commandez sur www.amazon.fr :

16,87 € TTC (prix éditeur 16,87 € TTC) livraison gratuite !
  • Graphs: The Basics
  • Graph Search and Its Application
  • Dijkstra's Shortest-Path Algorithm
  • The Heap Data Structure
  • Search Trees
  • Hash Tables and Bloom Filters
  • Quick Review of Asymptotic Notation

 
Critique du livre par la rédaction Thibaut Cuvelier le 31 octobre 2019 

L'algorithmique est un sujet indispensable pour toute formation de développeur informatique, notamment sa partie sur les structures de données. Ce deuxième tome se focalise sur cette notion (ainsi que sur les graphes) et montre à quel point un bon choix de structure de données permet de réduire la complexité d'un algorithme. Il suit de manière très naturelle le premier (bases de l'algorithmique), sans toutefois en nécessiter la lecture : si vous avez de vieilles bases en algorithmique, vous pourrez probablement passer directement à ce deuxième volume pour vous remettre à jour (au cas où vos souvenirs seraient trop émoussés, une annexe résume — forcément brièvement — les éléments essentiels). Les plus débutants devraient cependant plutôt débuter par le premier livre, avec des explications des concepts de complexité bien plus poussées. Cette division en deux volumes fait d'ailleurs que certains éléments sont répétés par rapport au premier tome (comme la justification du pseudocode ou la définition du tri, ainsi que certains traits d'humour).

Comme dans le premier tome, l'auteur prend le parti d'un texte clair, épuré, accessible au plus grand nombre (on peut apprécier la quantité d'illustrations pour les algorithmes de traversée de graphes, pas toujours les plus intuitifs quand on débute dans le domaine). À nouveau, il se focalise sur les éléments les plus importants du sujet. Notamment, seul l'algorithme de Dijkstra pour les plus courts chemins est détaillé dans le livre (pas de Bellman-Ford ou d'A*). Un autre exemple, peut-être plus litigieux, est celui des structures de données de base, puisque l'auteur considère que le lecteur est parfaitement au courant des propriétés et de la manipulation des tableaux, des listes liées, des files et des piles.

Plus que le premier tome, ce deuxième volume se rapproche des applications pratiques. Les algorithmes présentés semblent moins utiles, mais seulement à première vue. L'auteur met toujours les algorithmes en contexte, justifie leur besoin réel. Ainsi, les algorithmes travaillant sur des graphes sont présentés en même temps que leurs applications dans les réseaux ou la planification. Ce côté appliqué se montre aussi dans la structure des chapitres sur les structures de données : le praticien doit surtout connaître les opérations principales des structures de données, leur complexité, mais pas forcément leur implémentation. L'auteur sépare ainsi la spécification de la structure de données des techniques d'implémentation.

L'organisation des chapitres peut sembler un peu contre-intuitive, avec d'abord les graphes et puis les structures de données. Elle a le grand avantage de justifier le besoin en structures de données par la pratique, par la recherche d'algorithmes efficaces pour des besoins concrets (pas vraiment académiques). On peut regretter que ce tome soit autant lié à la série pour certains aspects : l'algorithme de Dijkstra n'est pas l'algorithme le plus générique pour les plus courts chemins, mais il est le seul présenté ici. Il faudra attendre le troisième tome pour découvrir l'algorithme de Bellman-Ford, dans le cadre de la programmation dynamique (peu après avoir lié celui de Dijkstra aux algorithmes gloutons).

Ce livre fait partie d'une série de quatre et il est extrait de cours en ligne donnés par l'auteur. L'auteur en a réutilisé certaines ressources pour le compléter. On y retrouve donc l'un ou l'autre quiz (avec des solutions très détaillées) et des problèmes (la plupart ayant une solution explicitée dans le livre), mais aussi des tests plus compliqués en ligne ainsi que des vidéos.

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

 
couverture du livre Algorithms Illuminated: Greedy Algorithms and Dynamic Programming

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

Algorithms Illuminated: Greedy Algorithms and Dynamic Programming

de Tim Roughgarden

Résumé de l'éditeur

Accessible, no-nonsense, and programming language-agnostic introduction to algorithms. Includes hints or solutions to all quizzes and problems, and a series of YouTube videos by the author accompanies the book. Part 3 covers greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, shortest paths, optimal search trees).

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

229 pages, 1re édition, 1er mai 2019 

Édition : Soundlikeyourself Publishing

ISBN10 : 0-999-28294-8

ISBN13 : 978-0-999-28294-6

Commandez sur www.amazon.fr :

16,87 € TTC (prix éditeur 16,87 € TTC) livraison gratuite !
  • Introduction to Greedy Algorithms
  • Huffman Codes
  • Minimum Spanning Trees
  • Introduction to Dynamic Programming
  • Advanced Dynamic Programming
  • Shortest Paths Revisited
  • Epilogue: A Field Guide to Algorithm Design

 
Critique du livre par la rédaction Thibaut Cuvelier le 8 novembre 2019 

L'algorithmique est un sujet indispensable pour toute formation de développeur informatique. Ce troisième tome s'intéresse à la manière de concevoir de nouveaux algorithmes selon deux paradigmes : les algorithmes gloutons et la programmation dynamique. Ce livre se place dans la lignée des deux premiers de la série, avec un approfondissement des sujets : par exemple, le deuxième tome abordait les graphes, le troisième présente l'algorithme de Bellman-Ford pour le calcul de plus courts chemins. La lecture des deux premiers ouvrages n'est pas absolument nécessaire, si toutefois vous en avez acquis les bases (aucune annexe ne résume les éléments essentiels) ; certaines connaissances en algorithmique sont requises pour profiter de ce livre.

L'auteur continue avec son parti pris d'un texte clair, épuré, accessible au plus grand nombre. Malgré le niveau technique plus avancé que dans les deux premiers tomes, les explications restent claires et faciles à suivre. Cette troisième partie de la série contient presque exclusivement des exemples des deux techniques de conception d'algorithmes, notamment avec les algorithmes les plus connus et utiles (on a déjà cité Bellman-Ford, il ne faut pas oublier les codes de Huffman, les algorithmes de Prim, de Kruskal, de Floyd-Warshall pour les graphes). Elle s'oriente encore plus vers des applications, mais aussi de la recherche (avec quelques références vers des articles parfois très récents — 2018).

Ce livre fait partie d'une série de quatre et il est extrait de cours en ligne donnés par l'auteur. Tim Roughgarden en a réutilisé certaines ressources pour le compléter. On y retrouve donc l'un ou l'autre quiz (avec des solutions très détaillées) et des problèmes (la plupart ayant une solution explicitée dans le livre), mais aussi des tests plus compliqués en ligne ainsi que des vidéos.

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

 
couverture du livre Kernelization

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

Kernelization

Theory of Parameterized Preprocessing

de Fedor V. Fomin, Daniel Lokshtanov, Saket Saurabh, Meirav Zehavi

Résumé de l'éditeur

Preprocessing, or data reduction, is a standard technique for simplifying and speeding up computation. Written by a team of experts in the field, this book introduces a rapidly developing area of preprocessing analysis known as kernelization. The authors provide an overview of basic methods and important results, with accessible explanations of the most recent advances in the area, such as meta-kernelization, representative sets, polynomial lower bounds, and lossy kernelization. The text is divided into four parts, which cover the different theoretical aspects of the area: upper bounds, meta-theorems, lower bounds, and beyond kernelization. The methods are demonstrated through extensive examples using a single data set. Written to be self-contained, the book only requires a basic background in algorithmics and will be of use to professionals, researchers and graduate students in theoretical computer science, optimization, combinatorics, and related fields.

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

528 pages, 1re édition, 10 janvier 2019 

Édition : Cambridge University Press

ISBN10 : 1-107-41515-2

ISBN13 : 978-1-107-41515-7

Commandez sur www.amazon.fr :

58,92 € TTC (prix éditeur 58,92 € TTC) livraison gratuite !
  • What Is a Kernel?

Upper Bounds

  • Warm Up
  • Inductive Priorities
  • Crown Decomposition
  • Expansion Lemma
  • Linear Programming
  • Hypertrees
  • Sunflower Lemma
  • Modules
  • Matroids
  • Representative Families
  • Greedy Packing
  • Euler's Formula

Meta Theorems

  • Introduction to Treewidth
  • Bidimensionality and Protrusions
  • Surgery on Graphs

Lower Bounds

  • Framework
  • Instance Selectors
  • Polynomial Parameter Transformation
  • Polynomial Lower Bounds
  • Extending Distillation

Beyond Kernelization

  • Turing Kernelization
  • Lossy Kernelization

 
Critique du livre par la rédaction Thibaut Cuvelier le 9 novembre 2019 

La recherche d'algorithmes aussi efficaces que possible pour les problèmes les plus difficiles (c'est-à-dire dans la classe de complexité NP-hard) a lancé la communauté scientifique dans une série de pistes. L'une des approches les plus récentes est la définition de noyaux, des transformations des données d'entrée qui permettent de les réécrire en en diminuant la taille. Ce livre parle exclusivement de ces techniques de définition de noyaux, son sujet est donc l'informatique théorique, plus particulièrement la complexité paramétrique. Malgré le niveau élevé du contenu abordé, les prérequis sont assez limités : une bonne formation en informatique de niveau universitaire suffit, avec une certaine expérience des machines de Turing et de la théorie des graphes.

Pour un sujet aussi complexe et avancé, les auteurs font preuve d'une bonne pédagogie, ils avancent sans hâte, partant de définitions plutôt intuitives pour aller jusqu'à une formalisation complète des concepts utilisés. Cependant, l'approche reste académique, les exemples ne sont pas légion : bon nombre de transformations auraient pu bénéficier d'être explicitées sur des graphes, pour éviter d'être expliquées uniquement de manière abstraite. La plupart des résultats avancés sont prouvés, sans omettre d'étape importante dans le raisonnement, ce qui en facilitera la compréhension par des gens qui ne sont pas du milieu.

Une bonne partie de l'ouvrage présente des outils pour dériver des noyaux utiles, avec plusieurs exemples à chaque fois de problèmes qui peuvent en bénéficier. La manière dont ces exemples sont rédigés peut rebuter, vu qu'une bonne partie du texte constitue un inventaire à la Prévert de théorèmes et algorithmes. On peut regretter que tous ces résultats ne soient pas régulièrement mis en perspective pour montrer l'intérêt d'utiliser des noyaux en pratique.

L'ouvrage peut donc être facilement conseillé à des chercheurs du domaine de la complexité algorithmique ou à des gens que ce domaine intéresse fortement. Ils trouveront du contenu raisonnablement facile d'accès et exhaustif.

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

 
couverture du livre Les fibres optiques

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

Les fibres optiques

Notions fondamentales (Câbles, Connectique, Composants, Protocoles, Réseaux...)

de Jean-Michel Mur

Résumé de l'éditeur

Devenu un classique, ce livre s'adresse à toute personne intervenant dans le domaine des réseaux en fibres optiques (services informatiques, services généraux, collectivités territoriales, promoteurs immobiliers, gestionnaires d'équipements...), aux étudiants, élèves-ingénieurs et techniciens ainsi qu'aux investisseurs des zones d'aménagement public, des data centers, des réseaux locaux, de l'immobilier et de l'habitat, etc. L'auteur y présente de manière simple, sans être simpliste, la diversité des éléments composant le monde des fibres optiques.

Ce livre, mis à jour et complété pour cette troisième édition, décrit la variété des fibres optiques et leurs points forts (fibres unimodales, multimodales, fibres en plastique, fibres pour applications spécifiques...) ainsi que leur protection à travers des câbles en fibres optiques pour l'intérieur ou pour l'extérieur (câbles en aérien, enterrés, en galerie, en caniveaux, marinisés, hybrides, etc.).

Le côté « matériel » est étudié avec les aboutements des fibres optiques (connectique, épissure…), les équipements pour tests et mesures (photomètres, réflectomètres, analyseurs…) et les composants optoélectroniques (lasers, photodiodes, coupleurs, cordons optiques actifs, etc.).

Des chapitres traitent du multiplexage en longueurs d'onde (WDM) rentabilisant les investissements dans les réseaux, des principaux protocoles employés (de l'ancien Ethernet 10 Mbit/s aux récents 100 et 400 Gbit/s, Ethernet industriel, InfiniBand, Fibre Channel, etc.). D'autres chapitres présentent les grands types de réseaux (réseaux étendus - WAN, métropolitains - MAN, réseaux locaux - LAN, etc.) avec un focus sur les réseaux optiques passifs (PON) déployant à moindre coût le FTTH.

Enfin, l'auteur propose en annexe les adresses des sites Internet des organismes de normalisation et d'associations d'industriels ainsi qu'une liste d'acronymes propres aux domaines des fibres optiques. Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.

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

472 pages, 3e édition, 10 juillet 2019 

Édition : Editions Eni

ISBN10 : 2-409-01992-7

ISBN13 : 978-2-409-01992-0

Commandez sur www.amazon.fr :

54,00 € TTC (prix éditeur 54,00 € TTC) livraison gratuite !
  • Généralités sur les fibres optiques
  • Types de fibres optiques et fabrication
  • Panorama des fibres optiques unimodales
  • Fibres multimodales en silice et fibres en plastique
  • Câbles à fibres optiques
  • Aboutement des fibres optiques
  • Mesures dans un réseau de fibres optiques
  • Composants optoélectroniques
  • Multiplexage en longueurs d'onde
  • Ethernet et fibres optiques
  • Réseaux d'entreprise et fibres optiques
  • Réseaux d'exploitants en fibres optiques
  • Conclusion
  • Annexes

 
Critique du livre par la rédaction Thibaut Cuvelier le 14 novembre 2019 

Les fibres optiques occupent une place prépondérante dans les réseaux informatiques modernes, y compris dans la vie de tous les jours avec le déploiement de la FTTH dans de nombreux pays. Cependant, le sujet reste parfois mystérieux : comment des impulsions lumineuses peuvent-elles transférer autant de données en aussi peu de temps ? Ce livre décortique tous les éléments nécessaires à la bonne compréhension des fibres optiques, de manière ascendante ; en partant des bases physiques (les grands principes généraux), des composants optoélectroniques et en allant jusqu'aux protocoles déployés. De ce fait, l'ouvrage est assez complet, il dépasse très largement la simple évocation de principes généraux.

Il offre cependant une vue système sur le domaine, sans entrer dans les détails physiques ; pour les protocoles, il se focalise sur les différences par rapport aux technologies plus traditionnelles, par exemple. Le public visé doit donc posséder des connaissances dans le domaine des réseaux (comme les techniques de multiplexage), mais pas forcément en optique ou en électronique. L'ouvrage est rédigé à destination tant de techniciens qui doivent déployer un réseau qu'aux décideurs techniques.

Dans le domaine des réseaux (et en particulier des fibres optiques), on se retrouve très vite à devoir gérer un grand nombre de sigles : l'auteur fournit, en annexe, une liste de ces sigles et leur définition. Par ailleurs, bon nombre de chapitres sont rédigés de manière encyclopédique, un très grand nombre de types de fibres étant expliqué, les protocoles principaux et leur évolution aussi. L'auteur en fournit une vision historique, en détaillant les différences entre les révisions des normes.

La rédaction est soignée, notamment au niveau du choix du vocabulaire technique, afin d'éviter les anglicismes et les raccourcis qui nuisent à la compréhension. On peut regretter que certaines photos incluses soient de mauvaise qualité (par exemple, quelques illustrations du chapitre sur l'aboutement sont floues). Les dégradations possibles sur les fibres optiques sont étudiées, mais d'un point de vue plutôt physique (agression chimique, efforts mécaniques, etc.) en vue de leur détection et de leur réparation : leur impact sur les communications n'est pas vraiment abordé.

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

 
  

Copyright © 2010 - 2019 Thibaut Cuvelier. Aucune reproduction, même partielle, ne peut être faite de ce site ni 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.