Bâtir des API que vous aimerez
|
|
- Thibault Joseph
- il y a 8 ans
- Total affichages :
Transcription
1
2 Bâtir des API que vous aimerez Traduction française de «Build APIs You Won t Hate» Phil Sturgeon and Michaël Lecerf This book is for sale at This version was published on This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do Phil Sturgeon and Michaël Lecerf
3 Tweet This Book! Please help Phil Sturgeon and Michaël Lecerf by spreading the word about this book on Twitter! The suggested hashtag for this book is #api-que-vous-aimerez. Find out what other people are saying about the book by clicking on this link to search for this hashtag on Twitter : https ://twitter.com/search?q=#api-que-vous-aimerez
4 Table des matières 1. «Seeding» de base de données Introduction Introduction au «seeding» de base de données Construire des «seeders» Voilà, c est tout Données secondaires Quand exécuter tout ça?
5 1. «Seeding» de base de données 1.1 Introduction La première étape de toute application est généralement la conception de la base de données. Que vous utilisiez un type de base relationnelle, MongoDB, Riak ou n importe quoi d autre, il vous faudra avoir au moins une vague idée de la façon dont vos données seront stockées. Avec une base de données relationnelle, il est probable que vous démarrerez par un schéma entités-relations et, pour une base orientée documents telle que MongoDB, CouchDB ou ElasticSearch, vous laisserez votre application créer une structure comme par magie. Dans tous les cas, il vous faudra un plan. Même s il s agit d un gribouillage sur un coin de nappe. Ce livre aura pour postulat que vous utiliserez une base de données relationnelle pour stocker vos données mais les principes évoqués pourront facilement être adaptés aux systèmes NoSQL. Ce chapitre part du principe que vous disposez déjà d une base de données construite et fonctionnelle. Il ne traitera pas du «Comment planifier une base de données» car il existe déjà beaucoup d autres livres consacrés à ce sujet. 1.2 Introduction au «seeding» de base de données Une fois la base de donnée schématisée et implémentée, la prochaine étape consiste à stocker des données. Plutôt que d ajouter des informations réelles, il est beaucoup plus simple d utiliser des «données de test» pour vérifier si votre structure est adaptée à votre API. Cette approche permet également de jeter la base à la poubelle et de recommencer sans avoir à se soucier de maintenir l intégrité des données. Le processus consistant à remplir ainsi une base de données est appelé «seeding». Ces données peuvent être : des utilisateurs de test ; des articles, avec leurs commentaires ; de faux lieux auxquels faire des «check-ins» ; des payements par carte de crédit, à différents stades de traitement certains complets, d autres à moitié terminés, et d autres encore ayant l air vraiment soupçonneux. En créant des scripts de seeding, vous vous épargnerez le besoin de recréer tout cela manuellement à chaque fois que vous en aurez besoin. Plus vous pourrez automatiser de choses durant le développement de votre API et plus vous pourrez consacrer de temps aux aspects de votre application qui nécessitent davantage d attention. Des données de test sont également nécessaires pour, entre autres :
6 «Seeding» de base de données 2 effectuer des tests de conformité ; permettre à des freelances ou de nouveaux collègues de se mettre plus efficacement au travail ; éviter que les données réelles de vos clients soient exposées à des personnes externes à votre entreprise ; résister à la tentation de copier votre base de données de production dans votre environnement de développement. Pourquoi c est mal d utiliser les données de production pour le développement? Avez-vous déjà écrit un script qui envoie des s, et contenant du faux texte durant la phase de développement? Avez-vous déjà utilisé des propos douteux ou des blagues internes dans ce faux texte? Avez-vous déjà accidentellement envoyé cet à véritables adresses parmi votre liste de clients? Avez-vous déjà été viré pour avoir fait perdre à votre employeur? Ça n a jamais été mon cas, mais je connais un gars à qui c est arrivé. Ne faites pas comme lui. Quel genre de données utiliser? Du n importe quoi! Utilisez des trucs insensés pour votre base de données de développement, mais des trucs insensés ayant le bon type de donnée, la bonne taille et le bon format. Ceci peut être réalisé grâce une petite bibliothèque sympa appelée [Faker], développée par François Zaninotto¹. Son unique but est de générer du n importe nawak. 1.3 Construire des «seeders» Kapture, mon employeur, utilise le framework Laravel. Celui-ci a le bon goût d intégrer par défaut des fonctionnalités de seeding de bases de données. Cela consiste essentiellement en un outil en ligne de commande, tel qu en possèdent (ou devraient posséder) la plupart des frameworks PHP modernes, ce qui permet aux principes ci-après d être applicables à tous. Divisez vos seeders en groupes logiques. Ça ne doit pas nécessairement être «un seeder par table», mais ça pourrait. Personnellement, je ne tente pas de respecter scrupuleusement cette règle car, parfois, mes données ont besoin d être générées en même temps que d autres données. Par exemple, des utilisateurs peuvent être créés dans le même seeder que leurs paramètres, jetons OAuth et relations avec d autres utilisateurs. Répartir tout ceci dans des seeders différents juste par souci d organisation serait futile et ralentirait les choses pour rien. Dans ce chapitre, j utiliserai en guise d exemple une application de «check-in». Celle-ci gère des «utilisateurs» et stocke leurs «check-ins» chez des «commerçants» (ou dans des «lieux»). En outre, ces «commerçants» fournissent des «campagnes» (ou «promotions»). Voici une version très simplifiée de notre seeder d utilisateurs, qui omet la structure spécifique à Laravel. Si vous utilisez Laravel 4, copiez simplement ceci dans votre méthode run(). ¹
7 «Seeding» de base de données 3 Créer un utilisateur avec Faker et l ORM Eloquent 1 $faker = Faker\Factory::create(); 2 3 for ($i = 0; $i < Config::get('seeding.users'); $i++) { 4 5 $user = User::create([ 6 'name' => $faker->name, 7 ' ' => $faker-> , 8 'active' => $i === 0? true : rand(0, 1), 9 'gender' => rand(0, 1)? 'male' : 'female', 10 'timezone' => mt_rand(-10, 10), 11 'birthday' => rand(0, 1)? $faker->datetimebetween('-40 yea\ 12 rs', '-18 years') : null, 13 'location' => rand(0, 1)? "{$faker->city}, {$faker->state}\ 14 " : null, 15 'had_feedback_ ' => $faker->boolean, 16 'sync_name_bio' => $faker->boolean, 17 'bio' => $faker->sentence(100), 18 'picture_url' => $this->picture_url[rand(0, 19)], 19 ]); 20 } Alors, qu avons-nous donc ici? Parcourons ce code morceau par morceau : 1 $faker = Faker\Factory::create(); On crée une instance de Faker, notre expert en génération de n importe nawak. 3 for ($i = 0; $i < Config::get('seeding.users'); $i++) { On va vouloir un certain nombre d utilisateurs. Je recommande d en avoir un peu moins en développement qu en environnement de test ou de staging, afin de gagner du temps. 5 $user = User::create([ 6 'name' => $faker->name, 7 ' ' => $faker-> , On crée aléatoirement un nom et une adresse . Pas besoin de définir un ensemble de données aléatoires à utiliser, parce que C EST MAGIQUE! 8 'active' => $i === 0? true : rand(0, 1), Bon, ok, j ai menti, nos données ne sont pas 100 % aléatoires. On veut que l utilisateur numéro 1 soit actif, pour simplifier nos tests plus tard.
8 «Seeding» de base de données 4 9 'gender' => $faker->randomelement(['male', 'female']), L égalité des sexes, c est important. 10 'timezone' => mt_rand(-10, 10), Notre développeur d origine a cru intelligent de stocker les fuseaux horaires sous forme de nombres entiers. Stockez des fuseaux horaires, pas des décalages Saviez-vous que certains fuseaux ne sont pas formés d heures entières? Que le Népal est à UTC/GMT + 5h45? Que les îles Chatham (Nouvelle-Zélande) vont de UTC/GMT + 12h45 à UTC/GMT + 13h45 pendant l heure d été? Saviez-vous que certaines régions du monde n ajoutent qu une demi-heure pour passer à l heure d été? N utilisez pas des nombres entiers en tant que timestamps. PHP intègre la liste de fuseaux horaires IANA², qui est un standard. Si vous stockez Europe/Brussels ou Asia/Khandyga, le décalage ainsi que l heure d été pourront être calculés automatiquement. 11 'birthday' => rand(0, 1)? $faker->datetimebetween('-40 years', '-18 year\ 12 s') : null, On place nos utilisateurs dans une tranche d âge précise. 13 'location' => rand(0, 1)? "{$faker->city}, {$faker->state}" : null, Ceci nous donne un nom de ville et d État. Ça marche aussi avec les pays étrangers, et ça c est cool. 15 'had_feedback_ ' => $faker->boolean, 16 'sync_name_bio' => $faker->boolean, Quelques flags sans grande importance. On les met à vrai ou faux au hasard. 17 'bio' => $faker->sentence(100), Crée une phrase comportant une centaine de caractères. 1.4 Voilà, c est tout Vous allez créer un paquet de fichiers de ce genre, et vous voudrez remplir à peu près toutes vos tables avec des données. Vous voudrez aussi que vos seeders commencent par vider les tables avant de les remplir. Faites ça de façon globale au début du processus. Ne videz pas les tables en haut de chaque seeder sinon le contenu de cette table provenant d autres seeders sera effacé. ²
9 «Seeding» de base de données 5 Exemple d un système complet avec Laravel 4 1 class DatabaseSeeder extends Seeder 2 { 3 public function run() 4 { 5 if (App::environment() === 'production') { 6 exit('je viens juste de vous empêcher de vous faire virer. Bisous\ 7, Phil'); 8 } 9 10 Eloquent::unguard(); $tables = [ 13 'locations', 14 'merchants', 15 'opps', 16 'opps_locations', 17 'moments', 18 'rewards', 19 'users', 20 'oauth_sessions', 21 'notifications', 22 'favorites', 23 'settings', 24 'friendships', 25 'impressions', 26 ]; foreach ($tables as $table) { 29 DB::table($table)->truncate(); 30 } $this->call('merchanttableseeder'); 33 $this->call('placetableseeder'); 34 $this->call('usertableseeder'); 35 $this->call('opptableseeder'); 36 $this->call('momenttableseeder'); 37 } 38 } Ceci supprime tout, puis exécute les classes de seeders pour qu elles fassent leurs trucs.
10 «Seeding» de base de données 6 Clés étrangères Il peut être difficile de vider une base de données quand des contraintes d intégrité sont en place. Dans un tel cas de figure, votre seeder devrait exécuter DB ::statement('set FOREIGN_KEY_CHECKS=0 ;') ; avant le vidage des tables et DB ::statement('set FOREIGN_KEY_CHECKS=1 ;') ; après pour réactiver les contraintes. 1.5 Données secondaires Comme je l ai dit, il est très probable que vous ayez besoin d ajouter des données dépendantes les unes des autres. Pour cela, vous devez déterminer quelles sont les données principales (par exemple des utilisateurs). Dans le cas d un système de check-in, des «lieux» ou «commerçants» pourraient probablement en faire partie aussi (tout dépend de la nomenclature de votre système). Pour cet exemple, je vais montrer comment créer des «commerçants» puis ensuite leur associer des «promotions». Seeder principal pour la table des commerçants 1 <?php 2 3 class MerchantTableSeeder extends Seeder 4 { 5 /** 6 * Exécute les seeders. 7 * 8 void 9 */ 10 public function run() 11 { 12 $faker = Faker\Factory::create(); // Crée un certain nombre de commerçants 15 for ($i = 0; $i < Config::get('seeding.merchants'); $i++) { 16 Merchant::create([ 17 'name' => $faker->company, 18 'website' => $faker->url, 19 'phone' => $faker->phonenumber, 20 'description' => $faker->text(200), 21 ]); 22 } 23 } 24 }
11 «Seeding» de base de données 7 Seeder principal pour la table des promotions 1 <?php 2 3 use Carbon\Carbon; 4 use Kapture\CategoryFinder; 5 6 class OppTableSeeder extends Seeder 7 { 8 /** 9 * Initialise le tout 10 * 11 Place 12 */ 13 public function construct(categoryfinder $finder, Place $places) 14 { 15 $this->categoryfinder = $finder; 16 $this->places = $places; 17 } /** 20 * Images. 21 * 22 string 23 */ 24 protected $imagearray = [ 25 ' 26 ' 27 ' 28 ' 29 ' 30 ]; /** 33 * Exécute les seeders. 34 * 35 void 36 */ 37 public function run() 38 { 39 $faker = Faker\Factory::create(); foreach (Merchant::all() as $merchant) { // Crée un nombre aléatoire de promos pour ce commerçant 44 foreach (range(1, rand(2, 4)) as $i) {
12 «Seeding» de base de données // Il y a trois types d images à ajouter 47 $image = Image::create([ 48 'name' => "{$merchant->name} Image #{$i}", 49 'url' => $faker->randomelement($this->imagearray), 50 ]); // On démarre tout de suite la promo et on la fait 53 // durer deux mois 54 $starts = Carbon::now(); // On s assure d en avoir au moins une dont on 57 // connait les données 58 if ($i === 1) { 59 // Cette promotion cessera très bientôt 60 $ends = Carbon::now()->addDays(2); 61 $teaser = 'Quelque chose à propos de fromage'; } else { 64 $ends = Carbon::now()->addDays(60); 65 $teaser = $faker->sentence(rand(3, 5)); 66 } $category = $this->categoryfinder->setrandom()->getone(); $opp = Opp::create([ 71 'name' => $faker->sentence(rand(3, 5)), 72 'teaser' => $teaser, 73 'details' => $faker->paragraph(3), 74 'starts' => $starts->format('y-m-d H:i:s'), 75 'ends' => $ends->format('y-m-d H:i:s'), 76 'category_id' => $category->id, 77 'merchant_id' => $merchant->id, 78 'published' => true, 79 ]); // Associe le lieu à la promo 82 $opp->images()->attach($image, [ 83 'published' => true 84 ]); 85 } echo "Created $i Opps for $merchant->name \n"; 88 } 89 } 90 }
13 «Seeding» de base de données 9 Ça peut paraître un peu bordélique, et ça mélange des appels pseudo-statiques à l ORM avec un peu d injection de dépendances, mais ces seeders n ont pas reçu beaucoup d amour. Ils pourraient toujours être améliorés mais, quoi qu il en soit, ils font leur boulot. Les grands lignes sont : 41 foreach (Merchant::all() as $merchant) { Boucle sur tous les commerçants. 43 // Crée un nombre aléatoire de promos pour ce commerçant 44 foreach (range(1, rand(2, 4)) as $i) { Crée entre une et quatre promotions pour chaque commerçant. 46 // Il y a trois types d images à ajouter 47 $image = Image::create([ 48 'name' => "{$merchant->name} Image #{$i}", 49 'url' => $faker->randomelement($this->imagearray), 50 ]); Ajoute une image choisie parmi notre tableau d exemples. Plus il y en a, mieux c est. 68 $category = $this->categoryfinder->setrandom()->getone(); Je parlerai davantage de «finders» dans un chapitre ultérieur mais, pour l instant, retenez juste que c est un moyen pratique de récupérer une catégorie au hasard. Le reste devrait être relativement évident. Si vous utilisez Laravel 4 (ou plus récent), vous pouvez exécuter tout ça depuis la ligne de commande avec $ php artisan db :seed. 1.6 Quand exécuter tout ça? C est souvent déclenché manuellement, et parfois de façon automatique en fonction des circonstances. Par exemple, si vous venez juste d ajouter une nouvelle route à votre API ainsi que des données associées, vous voudrez sans doute prévenir les autres membres de votre équipe afin qu ils récupèrent les dernières mises à jour du code, lancent les migrations et exécutent les seeders. C est aussi pratique quand un freelance arrive pour faire quelques trucs, ou quand un nouveau développeur commence, ou que votre dev iphone veut récupérer des données. Dans toutes ces situations, il suffit simplement de lancer la commande dans le terminal. À l occasion, ça peut aussi être lancé manuellement sur le serveur de validation, et automatiquement sur le serveur Jenkins de test quand on déploie de nouvelles versions de l API.
Mon Odyssée Lean Startup
Mon Odyssée Lean Startup Qui n a jamais rêvé de lancer sa petite entreprise sans risques? Voici mon expérience grâce au Lean Startup. Nicolas Deverge This book is for sale at http://leanpub.com/myleanstartupjourney-fr
Plus en détailHistoire d une transformation Agile, Scrum et XP à grande échelle. This book is for sale at http://leanpub.com/lepluspetitpas
Le plus petit pas Histoire d une transformation Agile, Scrum et XP à grande échelle Nicolas Gouy This book is for sale at http://leanpub.com/lepluspetitpas This version was published on 2015-08-15 This
Plus en détail1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7
Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application
Plus en détailProjet de programmation (IK3) : TP n 1 Correction
Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public
Plus en détailInstructions Mozilla Thunderbird Page 1
Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et
Plus en détailProcédure d installation de la Sauvegarde de Windows Server
Procédure d installation de la Sauvegarde de Windows Server Des outils de sauvegarde/récupération sont intégrés dans Windows Server 2008. Pour y accéder, vous devez installer les éléments suivants : Sauvegarde
Plus en détailOUTIL DE TRAVAIL COLLABORATIF
B i b l i o t h è q u e OUTIL DE TRAVAIL COLLABORATIF Septembre 2012 TitanPad est un outil de travail collaboratif permettant de prendre des notes ou de rédiger à plusieurs un même texte à distance en
Plus en détailMODERN LANGUAGES DEPARTMENT
MODERN LANGUAGES DEPARTMENT Common Assessment Task 3 YEAR 9 Je m appelle Ma classe Mark 20 10 19 22 16 13 Total Effort Instructions For this extended piece of homework, you are going to learn and write
Plus en détailComment consolider des données
Comment consolider des données Version 0.02 du 18.11.2004 Réalisé avec : OOo 1.1.3 Plate-forme / Os : Toutes Distribué par le projet fr.openoffice.org Sommaire 1 Introduction...3 2 Création des données...4
Plus en détailHow to Login to Career Page
How to Login to Career Page BASF Canada July 2013 To view this instruction manual in French, please scroll down to page 16 1 Job Postings How to Login/Create your Profile/Sign Up for Job Posting Notifications
Plus en détailGuide préparatif «Automatiser sa vigie sur Twitter avec R» 1
Guide préparatif «Automatiser sa vigie sur Twitter avec R» 1 Date : Jeudi 25 juin 2015 Horaire : 9h à 16h Local : C-2059 Adresse : Université de Montréal Pavillon Lionel Groulx 3150, rue Jean-Brillant
Plus en détailParis Airports - Web API Airports Path finding
Paris Airports - Web API Airports Path finding Hackathon A660 Version Version Date writer Comment 1.0 19/05/2015 Olivier MONGIN Document creation Rédacteur : Olivier.MONGIN@adp.fr Date : 19/05/2015 Approbateur
Plus en détailGuide d'installation rapide TFM-560X YO.13
Guide d'installation rapide TFM-560X YO.13 Table of Contents Français 1 1. Avant de commencer 1 2. Procéder à l'installation 2 Troubleshooting 6 Version 06.08.2011 16. Select Install the software automatically
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailPHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)
PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et
Plus en détailDOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0
DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0 INDEX : DOCUMENTATION - FRANCAIS... 2 1. INSTALLATION... 2 2. CONFIGURATION... 2 3. LICENCE ET COPYRIGHT... 3 4. MISES
Plus en détailAlfstore workflow framework Spécification technique
Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date
Plus en détailEditing and managing Systems engineering processes at Snecma
Editing and managing Systems engineering processes at Snecma Atego workshop 2014-04-03 Ce document et les informations qu il contient sont la propriété de Ils ne doivent pas être copiés ni communiqués
Plus en détailMELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :
MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : Housing system est un service gratuit, qui vous propose de vous mettre en relation avec
Plus en détailDOCUMENTATION - FRANCAIS... 2
DOCUMENTATION MODULE CATEGORIESTOPMENU MODULE CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 CONFIGURATION... 2 LICENCE ET COPYRIGHT... 3 SUPPORT TECHNIQUE ET MISES A JOUR...
Plus en détailCréation d un service web avec NetBeans 5.5 et SJAS 9
Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailFlexible Identity. authentification multi-facteurs. authentification sans token. Version 1.0. Copyright Orange Business Services mai 2014.
Flexible Identity authentification multi-facteurs authentification sans token Version 1.0 1 of 23 historique des mises à jour date no. version auteur description mai 2014 1.0 Version initiale. Copyright
Plus en détailGet Instant Access to ebook Cest Maintenant PDF at Our Huge Library CEST MAINTENANT PDF. ==> Download: CEST MAINTENANT PDF
CEST MAINTENANT PDF ==> Download: CEST MAINTENANT PDF CEST MAINTENANT PDF - Are you searching for Cest Maintenant Books? Now, you will be happy that at this time Cest Maintenant PDF is available at our
Plus en détailGestion des références bibliographiques. Comment simplifier la gestion des références bibliographiques?
Gestion des références bibliographiques Comment simplifier la gestion des références bibliographiques? Objectifs de la formation Créer votre base de données personnelle de références bibliographiques.
Plus en détailLogiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.
Ce document est libre de droit, merci simplement de respecter son auteur. Toutes remarques ou commentaires seront les bienvenues. ATTENTION : La mise à jour par script entre GLPI et Active Directory ne
Plus en détail1.The pronouns me, te, nous, and vous are object pronouns.
1.The pronouns me, te, nous, and vous are object pronouns.! Marie t invite au théâtre?!! Oui, elle m invite au théâtre.! Elle te parle au téléphone?!! Oui, elle me parle au téléphone.! Le prof vous regarde?!!!
Plus en détaillundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public
Communautés Numériques L informatique à la portée du Grand Public Initiation et perfectionnement à l utilisation de la micro-informatique Microsoft Document Connection pour Mac. Microsoft Document Connection
Plus en détailGPI Gestion pédagogique intégrée
Société GRICS GPI Gestion pédagogique intégrée Guide d installation Fonctionnalités Internet GPI 2012 Version mise à jour le 29 janvier 2014 Société GRICS Page 1 de 23 Table des matières PRESENTATION DES
Plus en détailArbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
Plus en détailL envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248
L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations
Plus en détailPetit guide pour l installation de CVW sous Linux
LinuxFocus article number 310 http://linuxfocus.org par Juan Manuel Triana,Carlos Andrés Pérez Petit guide pour l installation de CVW sous Linux L auteur:
Plus en détailOnce the installation is complete, you can delete the temporary Zip files..
Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une
Plus en détailDéploiement OOo en environnement Windows Terminal Server
Déploiement OOo en environnement Windows Terminal Server Version 1.00 du 10.12.2004 Réalisé avec : OOo 1.1.3 Plate-forme / Os : Microsoft Windows Distribué par le projet fr.openoffice.org Sommaire 1 Introduction...3
Plus en détailWDpStats Procédure d installation
WDpStats Procédure d installation Table de matières WDpStats... 1 Procédure d installation... 1 Table de matières... 1 Résumé... 2 Réquisits... 2 Installation... 2 Difficultés... 6 Lancement... 7 wdpstats_install_oracle_fr.xml
Plus en détailIntroduction à ElasticSearch
Introduction à ElasticSearch Présentée par : Romain Pignolet Lundi 7 Juillet 2014 Sommaire 1 Présentation de Elasticsearch 2 Installation et exemples simples 3 API Rest 4 Comment fonctionne Elasticsearch?
Plus en détail10 tâches quotidiennes que devrait maîtriser votre système de sauvegarde des données
10 tâches quotidiennes que devrait maîtriser votre système de sauvegarde des données Une sauvegarde des données simple, fiable et rapide, ce n est qu un début Table des matières Sauvegarde et récupération
Plus en détailConstruire une application marketing Facebook sur la plateforme Windows Azure
Construire une application marketing Facebook sur la plateforme Windows Azure Lorsque le «Social Effect» est au rendez-vous, comment s assurer que votre application va supporter la montée en charge? Nous
Plus en détailFAQ Trouvez des solutions aux problématiques techniques.
FAQ Trouvez des solutions aux problématiques techniques. 1. Au lieu des livres numériques dont je m'attendais, j'ai téléchargé un fichier qui s'intitule «urllink.acsm». Où est le livre numérique? 2. Comment
Plus en détailCEST POUR MIEUX PLACER MES PDF
CEST POUR MIEUX PLACER MES PDF ==> Download: CEST POUR MIEUX PLACER MES PDF CEST POUR MIEUX PLACER MES PDF - Are you searching for Cest Pour Mieux Placer Mes Books? Now, you will be happy that at this
Plus en détailMANUEL MARKETING ET SURVIE PDF
MANUEL MARKETING ET SURVIE PDF ==> Download: MANUEL MARKETING ET SURVIE PDF MANUEL MARKETING ET SURVIE PDF - Are you searching for Manuel Marketing Et Survie Books? Now, you will be happy that at this
Plus en détailPUPPET. Romain Bélorgey IR3 Ingénieurs 2000
PUPPET Romain Bélorgey IR3 Ingénieurs 2000 SOMMAIRE Qu est-ce que Puppet? Utilisation de Puppet Ses composants Son utilisation Le langage Puppet Démonstration QU EST-CE QUE PUPPET? Administration centralisée
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailJAB, une backdoor pour réseau Win32 inconnu
JAB, une backdoor pour réseau Win32 inconnu Nicolas Grégoire Exaprobe ngregoire@exaprobe.com, WWW home page : http ://www.exaprobe.com 1 Introduction Le but de cet article est de montrer les possibilités
Plus en détailWiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)
#45 #46 WiFi Security Camera Quick Start Guide Guide de départ rapide Caméra de surveillance Wi-Fi (P5) #47 Start Here 1 Is this you? TECH SUPPORT CTRL ALT DEL 2 If yes, turn to page three 1 3 If not,
Plus en détailet Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion
et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion Copyright 2009 Alt-N Technologies. 3 allée de la Crabette Sommaire Résumé... 3 MDaemon
Plus en détailLes GPO 2012 server R2 (appliqués à Terminal Serveur Edition)
Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition) Par LoiselJP Le 01/08/2014 Rev. : 01/03/2015 1 Objectifs Dès qu il s agit de placer des paramètres particuliers, on annonce «il suffit d utiliser
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailConnaître la version de SharePoint installée
Connaître la version de SharePoint installée Comment savoir la version de SharePoint en cours Dans le cadre de la maintenance de plusieurs fermes SharePoint, il est indispensable de connaître les versions
Plus en détailLa base de données XML exist. A. Belaïd
La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques
Plus en détailDOCUMENTATION - FRANCAIS... 2
DOCUMENTATION MODULE SHOPDECORATION MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des
Plus en détailModule pour la solution e-commerce Magento
Module pour la solution e-commerce Magento sommaire 1. Introduction... 3 1.1. Objet du document... 3 1.2. Liste des documents de référence... 3 1.3. Avertissement... 3 1.4. Contacts... 3 1.5. Historique
Plus en détailSoon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions
Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1
Plus en détailComment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux
Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux Distribué par Le Projet Documentation d'openoffice.org Table of Contents 1) Préambule...3 2) Télécharger
Plus en détailInstallation d'un TSE (Terminal Serveur Edition)
Installation d'un TSE (Terminal Serveur Edition) Par LoiselJP Le 01/05/2013 (R2) 1 Objectifs Le TSE, comprenez Terminal Server Edition est une application de type 'main-frame' de Microsoft qui réside dans
Plus en détailComment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents
Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Diffusé par Le Projet Documentation OpenOffice.org Table des Matières 1. Les Versions...3 2. Les Modifications...5
Plus en détailDOCKER MEETUP. Christophe Labouisse / @XtlCnslt
DOCKER MEETUP Christophe Labouisse / @XtlCnslt #ME, #MYSELF AND #I CHRISTOPHE LABOUISSE Développeur Freelance Java mais pas que Côté front : Angular, Ionic Sous le capot : Linux, Docker DOCKER @ HOME Retour
Plus en détailsshgate Patrick Guiran Chef de projet support pguiran@linagora.com WWW.LINAGORA.COM
sshgate Patrick Guiran Chef de projet support pguiran@linagora.com WWW.LINAGORA.COM Sommaire 1. Problématique des accès aux serveurs Besoins Linagora Recherche d'une solution 2. Présentation de sshgate
Plus en détailNFA 008. Introduction à NoSQL et MongoDB 25/05/2013
NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée
Plus en détailFiche technique logiciel #SAMBC (Windows 2000 / XP / Vista)
stream24 Webcasting KG Bismarckstr. 5 91054 Erlangen Allemange Téléphone +49 9131-920 18 65 Fax +49 9131-920 18 67 E-mail Web info@stream24.fr www.stream24.fr Fiche technique logiciel #SAMBC (Windows 2000
Plus en détailInstaller Enterprise Miner 5.1 en SAS9.1.3 - environnement Windows
Installer Enterprise Miner 5.1 en SAS9.1.3 - environnement Windows Introduction :... 3 1. Présentation de l architecture Enterprise Miner 5.1 :... 4 2. Installation d Enterprise Miner 5.1:... 5 3. Post-installation
Plus en détailProcédure de sauvegarde - Cobian Backup 11 2012
Sommaire Utilitaires requis... 2 Procédure d installation du logiciel Cobian Backup 11... 2 Procédure de paramétrage du logiciel Cobian Backup 11... 6 Code et plan de test de validation... 13 1 1. Utilitaires
Plus en détailComment intégrer des images dans un texte
Quoi de plus utile que de pouvoir ajouter une image, un graphique à un commentaire afin d étoffer celui-ci. C est possible de le faire de plusieurs façon dans le forum Météocentre. Cependant il faut limiter
Plus en détailMEMORANDUM POUR UNE DEMANDE DE BOURSE DE RECHERCHE DOCTORALE DE LA FONDATION MARTINE AUBLET
MEMORANDUM POUR UNE DEMANDE DE BOURSE DE RECHERCHE DOCTORALE DE LA FONDATION MARTINE AUBLET ATTENTION : Tout formulaire de candidature qui présentera des erreurs ou anomalies dans le remplissage des champs
Plus en détailUtiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces
Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles
Plus en détailUNIVERSITE DE YAOUNDE II
UNIVERSITE DE YAOUNDE II The UNIVERSITY OF YAOUNDE II INSTITUT DES RELATIONS INTERNATIONALES DU CAMEROUN INTERNATIONAL RELATIONS INSTITUTE OF CAMEROON B.P. 1637 YAOUNDE -CAMEROUN Tél. 22 31 03 05 Fax (237)
Plus en détailAIDE FINANCIÈRE POUR ATHLÈTES FINANCIAL ASSISTANCE FOR ATHLETES
AIDE FINANCIÈRE POUR ATHLÈTES FINANCIAL ASSISTANCE FOR ATHLETES FORMULAIRE DE DEMANDE D AIDE / APPLICATION FORM Espace réservé pour l utilisation de la fondation This space reserved for foundation use
Plus en détailJanvier 2005. Entretien de l ordinateur
Janvier 2005 Entretien de l ordinateur Sommaire : Entretien de l ordinateur Suppression de fichiers inutiles Vérification des erreurs Défragmentation Sauvegarde des données N.B. : Cette aide a été réalisée
Plus en détailNetwork Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server Machine virtuelle Machine virtuelle Machine virtuelle VMware ESX 3 Network Shutdown Module Network
Plus en détailDéploiement de SAS 9.1.3 Foundation
Déploiement de SAS 9.1.3 Foundation I. Installation de SAS sur des postes en local à partir de Cédéroms 3 II. Phase de préparation au déploiement : Création des images disque 6 a) Pour une installation
Plus en détailINTRODUCTION. Bienvenue dans la TCN FRENCH TEAM, nous allons ensemble démarrer une belle aventure qui peut devenir lucrative pour tous.
AIDE AU DEMARRAGE INTRODUCTION Bienvenue dans la TCN FRENCH TEAM, nous allons ensemble démarrer une belle aventure qui peut devenir lucrative pour tous. Text Cash Network s implante juste en France et
Plus en détailNTP (Network Time Protocol)
NTP (Network Time Protocol) Nous utilisons l'environnement du Lab Guide de Novell, pour nous familiariser avec SLES-10, roulant sous un serveur VMware Server 1.0.6. A: sles101-nsm (SLES10.1/OES2.0) B:
Plus en détailFrance SMS+ MT Premium Description
France SMS+ MT Premium Description Summary Subscription : kinematics Subscription via SMS (Kinematic + messages) Subscription via Wap (Kinematic + messages) Subscription via Mix SMS / WAP Subscription
Plus en détailCréer un blog ou un site e-commerce avec WordPress
Créer un blog ou un site e-commerce avec WordPress OnBusinessPlan.fr Copyright 2015 OnBusinessPlan.fr On Business Plan Edition, License Notes This ebook is licensed for your personal enjoyment only. This
Plus en détailWeb : Stockage de mot de passe LOG619 Automne 2011 Olivier Bilodeau
Web : Stockage de mot de passe LOG619 Automne 2011 Olivier Bilodeau 1 Plan Historique du Web Problème du stockage de mots de passe La menace Le craquage de mots de passes Évolution d'une solution et ses
Plus en détail1 Configuration des Fichiers Hosts, Hostname, Resolv.conf
INSTALLATION ET CONFIGURATION ZIMBRA SUR DEBIAN 4.0 ETCH Zimbra est une solution Open Source d e-mail et de partage de calendrier destinée aux entreprises, aux prestataires de service, aux institutions
Plus en détailGuide de démarrage Tradedoubler. Manuel éditeur / affilié
Guide de démarrage Tradedoubler Manuel éditeur / affilié 1 DEMARRER 1. Devenir éditeur sur Tradedoubler 2. Ajouter ses informations bancaires 3. Bénéficier des paiements internationaux 4. Avoir accès aux
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailSupervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14
Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...
Plus en détailGestion Electronique de Document (ECM/GED)
Gestion Electronique de Document (ECM/GED) Analyse de l existant Découpage modulaire La gestion électronique de documents repose sur un ensemble de deux modules conjoints, au sein de la famille «ecm» :
Plus en détailDans l'article précédent, vous avez appris
Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez
Plus en détailRafraichissement conditionné d'une page en.net
Rafraichissement conditionné d'une page en.net Test avec AJAX pour rafraichissement En utilisant AJAX, voici une possibilité de faire un rafraichissement conditionné. Nous verrons dans cet article une
Plus en détailComment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris
Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris Diffusé par Le Projet Documentation OpenOffice.org Table des matières 1. Définir les plages...3 2. Sélectionner une plage...4
Plus en détailNetwork Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5 Machine virtuelle Machine virtuelle Machine virtuelle VMware ESX Network Shutdown Module
Plus en détailCOMMENT CRÉER UN «DOODLE»?
COMMENT CRÉER UN «DOODLE»? Pour arriver à trouver LA date qui convient le mieux à de nombreuses personnes (pour une réunion, une sortie, etc.) rien de tel que l outil «Doodle»! Il vous permettra d éviter
Plus en détailWINDOWS SHAREPOINT SERVICES 2007
WINDOWS SHAREPOINT SERVICES 2007 I. TABLE DES MATIÈRES II. Présentation des «content types» (Type de contenu)... 2 III. La pratique... 4 A. Description du cas... 4 B. Création des colonnes... 6 C. Création
Plus en détailINF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Plus en détailMicro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance
Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser le Bureau a distance.doc Préambule Voici quelques
Plus en détailApplication Form/ Formulaire de demande
Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application
Plus en détailCours de didactique du français langue étrangère (*) French as a foreign language (*)
FORMULAIRE DESTINE AUX DEMANDES DE BOURSE DURANT L ETE FORM TO BE USED FOR APPLICATIONS FOR A SUMMER SCHOLARSHIP Wallonie-Bruxelles International Service des Bourses d études 2, Place Sainctelette 1080
Plus en détailALCATEL IP1020. Guide de Configuration pour l offre Centrex OpenIP
ALCATEL IP1020 Guide de Configuration pour l offre Centrex OpenIP Ed. 1 23 septembre 2014 ALCATEL Temporis IP1020 Guide de configuration pour OpenIP v1.0 1 Table des matières 1 Introduction 3 2 Prérequis
Plus en détailGuide d installation de SugarCRM Open Source version 4.5.1
Guide d installation de SugarCRM Open Source version 4.5.1 Version 1.0.2 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans notification. Disclaimer / Responsabilité
Plus en détailTable des matières. Date : Version : 29/06/2013 1.1. Objet : OpenVas 6.0
Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Paternité - Pas d'utilisation Commerciale 3.0 non transposé. Le document est librement diffusable dans le contexte de
Plus en détailLambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
Plus en détailUtilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008
Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détailTHE FRENCH EXPERIENCE 1
Euro Worksheet 1 Euro quiz Here s a quiz to help you get used to euro prices in France. Choose a or b to complete each item. 1 Le prix d une baguette de pain est de: a 0,66 euros. b 6,60 euros. 2 Une chambre
Plus en détailTenrox. Guide d intégration Tenrox-Salesforce. Janvier 2012. 2012 Tenrox. Tous droits réservés.
Tenrox Guide d intégration Tenrox-Salesforce Janvier 2012 2012 Tenrox. Tous droits réservés. À propos de ce guide Le présent guide décrit les procédures nécessaires pour configurer les paramètres d intégration
Plus en détail