[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:07.41,0:00:10.01,Default,,0000,0000,0000,,Ok, bienvenue à tous ! Dialogue: 0,0:00:10.01,0:00:13.24,Default,,0000,0000,0000,,Je suis ici aujourd'hui avec Lieke pour vous parler de Cloud9, Dialogue: 0,0:00:13.24,0:00:19.33,Default,,0000,0000,0000,,un IDE dans le cloud, avec lequel vous pouvez accéder à votre code de n'importe où, n'importe quand. Dialogue: 0,0:00:20.04,0:00:26.46,Default,,0000,0000,0000,,Je suis Ruben Daniels, co-fondateur et directeur de Ajax.org, et Cloud9. Dialogue: 0,0:00:26.47,0:00:31.84,Default,,0000,0000,0000,,Je développe en Javascript depuis 1999. Dialogue: 0,0:00:31.84,0:00:35.92,Default,,0000,0000,0000,,Ça fait un moment, et javascript a beaucoup évolué. Dialogue: 0,0:00:35.92,0:00:44.58,Default,,0000,0000,0000,,Je suis l'auteur et le créateur de la plateforme Ajax.org, qui est une librairie d'interface qu'on utilise dans Cloud9. Dialogue: 0,0:00:44.58,0:00:51.80,Default,,0000,0000,0000,,Notre compagnie comprend 20 personnes, et on essaie de révolutionner le développement Dialogue: 0,0:00:51.80,0:00:54.60,Default,,0000,0000,0000,,de code, dans le cloud. Dialogue: 0,0:00:55.38,0:01:01.02,Default,,0000,0000,0000,,Bonjour, je m'appelle Lieke, je parle français, mais je ne fais pas cette présentation en français, Dialogue: 0,0:01:01.02,0:01:05.92,Default,,0000,0000,0000,,parce que Ruben ne parle pas, et moi je ne parle pas "tant" bien. Dialogue: 0,0:01:05.92,0:01:12.91,Default,,0000,0000,0000,,Donc, il y a de la traduction, mais je m'intéresse : combien de gens peuvent entendre l'anglais ? Dialogue: 0,0:01:12.91,0:01:16.70,Default,,0000,0000,0000,,C'est presque toute la salle. Dialogue: 0,0:01:16.75,0:01:25.66,Default,,0000,0000,0000,,Je vais parler anglais. Je fais partie dAjax.org depuis 2009, dans les relations avec les développeurs. Dialogue: 0,0:01:33.43,0:01:40.43,Default,,0000,0000,0000,,Donc, ce dont on va parler aujourd'hui : premièrement, une réponse à la question "Pourquoi le cloud ?" Dialogue: 0,0:01:40.43,0:01:44.42,Default,,0000,0000,0000,,Ou plutôt, "Pourquoi le cloud pour des développeurs ?" Dialogue: 0,0:01:44.42,0:01:49.76,Default,,0000,0000,0000,,Je vous ferai une démo de l'IDE Cloud9, qui est notre vision de la manière de faire, Dialogue: 0,0:01:49.76,0:01:57.31,Default,,0000,0000,0000,,et ensuite nous parlerons de collaboration, que nous imaginons dans le futur du développement dans le cloud. Dialogue: 0,0:01:57.31,0:02:04.35,Default,,0000,0000,0000,,Je vais laisser Lieke commencer, elle va vous expliquer pourquoi le cloud est important. Dialogue: 0,0:02:05.36,0:02:12.08,Default,,0000,0000,0000,,Nous pensons que le développement se fera dans le cloud, donc prenons un peu de recul. Dialogue: 0,0:02:12.08,0:02:16.67,Default,,0000,0000,0000,,Il se peut que vous vous demandiez : pourquoi travailler dans le cloud ? Dialogue: 0,0:02:16.67,0:02:21.75,Default,,0000,0000,0000,,Et d'ailleurs, c'est quoi cette chose qu'on appelle le "cloud" ? Dialogue: 0,0:02:22.73,0:02:25.40,Default,,0000,0000,0000,,Alors, jetons un oeil au cloud... Dialogue: 0,0:02:25.40,0:02:33.81,Default,,0000,0000,0000,,Le cloud, c'est l'étape qui suit la virtualisation, qui nous permet de ne plus nous soucier du matériel, Dialogue: 0,0:02:33.81,0:02:42.59,Default,,0000,0000,0000,,mais quand même toujours de quel OS tourne, comment installer et configurer des SGBD comme MySQL, Dialogue: 0,0:02:42.59,0:02:49.34,Default,,0000,0000,0000,,et il faut toujours garder un oeil sur chaque serveur, on doit s'inquiéter de leur dimensionnement. Dialogue: 0,0:02:49.34,0:02:55.54,Default,,0000,0000,0000,,Donc, il y a deux types de systèmes que l'on appelle "cloud" : Dialogue: 0,0:02:55.54,0:02:59.03,Default,,0000,0000,0000,,il y en a qui sont des constructions d'APIs sur des systèmes de gestion de virtualisation, Dialogue: 0,0:02:59.03,0:03:03.65,Default,,0000,0000,0000,,ce qui est proche de "Infrastructure as a Service" (IaaS) Dialogue: 0,0:03:03.65,0:03:12.05,Default,,0000,0000,0000,,et des systèmes où la couche remonte au-dessus de l'API, "Platform as a Service" (PaaS) Dialogue: 0,0:03:12.05,0:03:18.67,Default,,0000,0000,0000,,Pour moi, la promesse du cloud, c'est que l'intégration remonte au niveau de l'API, Dialogue: 0,0:03:18.67,0:03:23.13,Default,,0000,0000,0000,,que l'on utilise en construisant des applications au-dessus. Dialogue: 0,0:03:23.13,0:03:27.45,Default,,0000,0000,0000,,Ça inclut donc l'espace disque, la base de données, et la puissance de calcul. Dialogue: 0,0:03:27.45,0:03:33.55,Default,,0000,0000,0000,,Ce niveau de cloud est pour l'instant surtout une promesse, même si Google App Engine Dialogue: 0,0:03:33.55,0:03:36.97,Default,,0000,0000,0000,,et Heroku sont plutôt loin dans le concept. Dialogue: 0,0:03:36.97,0:03:41.98,Default,,0000,0000,0000,,Donc, regardons un exemple ; il est plutôt simple, peut-être inutile, Dialogue: 0,0:03:41.98,0:03:44.82,Default,,0000,0000,0000,,mais j'aimerais vous expliquer ce que le cloud signifie. Dialogue: 0,0:03:44.82,0:03:49.23,Default,,0000,0000,0000,,Donc, disons que vous avez une boîtes de livres ; vous devez la stocker, Dialogue: 0,0:03:49.23,0:03:52.41,Default,,0000,0000,0000,,et plus tard, vous voudrez récupérer des livres. Dialogue: 0,0:03:52.41,0:04:01.74,Default,,0000,0000,0000,,Avant la virtualisation, vous deviez construire un abri ; pour protéger vos livres, avec une porte verrouillable, Dialogue: 0,0:04:01.74,0:04:06.85,Default,,0000,0000,0000,,mais maintenant, avec la virtualisation, l'abri est déjà prêt. Dialogue: 0,0:04:06.85,0:04:13.47,Default,,0000,0000,0000,,Vous avez quand même besoin de gérer l'espace à l'intérieur, construire les étagères, Dialogue: 0,0:04:13.47,0:04:17.37,Default,,0000,0000,0000,,et stocker les livres vous-mêmes. Dialogue: 0,0:04:17.37,0:04:24.73,Default,,0000,0000,0000,,Avec le cloud, vous obtenez un gars, ou un robot, vous lui donnez votre stock de livres, Dialogue: 0,0:04:24.73,0:04:29.58,Default,,0000,0000,0000,,il les stocke pour vous, et vous pouvez les lui redemander quand vous voulez. Dialogue: 0,0:04:29.58,0:04:38.04,Default,,0000,0000,0000,,C'est un exemple simple, mais il montre bien les niveaux de pré-intégration. Dialogue: 0,0:04:38.04,0:04:43.24,Default,,0000,0000,0000,,Alors, quelle est la fonctionnalité la plus utile du cloud ? Dialogue: 0,0:04:43.24,0:04:49.44,Default,,0000,0000,0000,,Premièrement, gérer le dimensionnement des serveurs. Dialogue: 0,0:04:49.44,0:04:57.33,Default,,0000,0000,0000,,Imaginez que vous avez une application sociale, vous commencez avec quelques utilisateurs, Dialogue: 0,0:04:57.33,0:05:01.51,Default,,0000,0000,0000,,et vous le faites tourner sur une VM chez Amazon. Dialogue: 0,0:05:01.51,0:05:05.92,Default,,0000,0000,0000,,Soudainement, Justin Bieber remarque votre appli, et il tweete dessus. Dialogue: 0,0:05:05.92,0:05:12.08,Default,,0000,0000,0000,,Et hop, 8 million d'adolescentes excitées, qui embourbent soudainement sur vos serveurs ! Dialogue: 0,0:05:12.08,0:05:17.93,Default,,0000,0000,0000,,Que votre business model soit construit pour ça, c'est pas la question ! Dialogue: 0,0:05:17.93,0:05:21.60,Default,,0000,0000,0000,,Et du coup, vos serveurs explosent... Dialogue: 0,0:05:21.60,0:05:27.38,Default,,0000,0000,0000,,Il faut que vous puissiez gérer vos ressources back-end rapidement, donc que faire ? Dialogue: 0,0:05:27.38,0:05:36.18,Default,,0000,0000,0000,,Il faut démarrer d'autres instances, et un balanceur de charge, mais d'abord, il faut gérer le dimensionnement de votre code ! Dialogue: 0,0:05:36.18,0:05:40.87,Default,,0000,0000,0000,,La plupart de vos applications avec des fonctionnalités sociales, ou des bases de données, Dialogue: 0,0:05:40.87,0:05:44.72,Default,,0000,0000,0000,,ne peuvent pas se redimensionner horizontalement, sans une étude approfondie ; Dialogue: 0,0:05:44.72,0:05:47.18,Default,,0000,0000,0000,,c'est donc un cauchemar ! Dialogue: 0,0:05:47.18,0:05:54.10,Default,,0000,0000,0000,,Pas juste à cause de lui, mais à cause du coût pour architecturer et dimensionner votre application Dialogue: 0,0:05:54.10,0:05:59.41,Default,,0000,0000,0000,,sans même savoir si elle sera populaire ou non. Dialogue: 0,0:05:59.41,0:06:06.97,Default,,0000,0000,0000,,L'infrastructure dans le cloud résoud ce problème ; les APIs sont exactement construites pour le dimensionnement. Dialogue: 0,0:06:06.97,0:06:13.42,Default,,0000,0000,0000,,En utilisant cet outil de dimensionnement tout prêt, vous pouvez dimensionner d'1 utilisateur à 1 million, Dialogue: 0,0:06:13.42,0:06:15.33,Default,,0000,0000,0000,,puis redescendre à 1 utilisateur ! Dialogue: 0,0:06:15.33,0:06:23.36,Default,,0000,0000,0000,,Et ceci, sans le coût de le prévoir à l'avance, ou les pertes dûes à l'échec face à la popularité soudaine ! Dialogue: 0,0:06:23.36,0:06:27.61,Default,,0000,0000,0000,,En gros, le cloud sauve du temps et de l'argent, Dialogue: 0,0:06:27.61,0:06:33.11,Default,,0000,0000,0000,,et les développeurs peuvent se concentrer sur ce qu'ils aiment faire le plus : développer des applications ! Dialogue: 0,0:06:33.11,0:06:38.83,Default,,0000,0000,0000,,Ils peuvent se concentrer sur les fonctionnalités demandées par les utilisateurs. Dialogue: 0,0:06:38.83,0:06:43.35,Default,,0000,0000,0000,,Je pense qu'on peut se mettre d'accord pour dire que le cloud, c'est un truc sympa. Dialogue: 0,0:06:43.35,0:06:45.03,Default,,0000,0000,0000,,Ruben ? Dialogue: 0,0:06:45.03,0:06:48.69,Default,,0000,0000,0000,,Qu'est-ce que ça veut dire pour le développement ? Dialogue: 0,0:06:48.69,0:06:54.08,Default,,0000,0000,0000,,Les plateformes cloud fournissent un SDK, que vous installez sur votre machine, Dialogue: 0,0:06:54.08,0:06:58.56,Default,,0000,0000,0000,,et vous espérez que tout marchera pareil sur votre machine et dans le cloud, mais ce n'est jamais le cas. Dialogue: 0,0:06:58.56,0:07:03.74,Default,,0000,0000,0000,,Regardons App Engine, dans Google, qui embarque Big Table. Dialogue: 0,0:07:03.74,0:07:08.22,Default,,0000,0000,0000,,Big Table est cette énorme infrastructure dans le cloud pour stocker des données ; Dialogue: 0,0:07:08.22,0:07:11.10,Default,,0000,0000,0000,,vous ne pouvez pas l'installer sur votre PC. Dialogue: 0,0:07:11.10,0:07:17.42,Default,,0000,0000,0000,,Donc, vous devez simuler ça, quand vous installez ce SDK, vous simulez l'environnement cloud. Dialogue: 0,0:07:17.42,0:07:22.48,Default,,0000,0000,0000,,Et ce n'est jamais parfait ; vous aurez toujours le cas où votre application marche localement, Dialogue: 0,0:07:22.48,0:07:27.77,Default,,0000,0000,0000,,et vous l'uploadez, et elle ne marche pas, à cause de certaines différences. Dialogue: 0,0:07:27.77,0:07:38.71,Default,,0000,0000,0000,,Donc, c'est difficile, vous ne pouvez pas tester entièrement votre application, et il faut une solution. Dialogue: 0,0:07:38.71,0:07:44.00,Default,,0000,0000,0000,,Cloud9, c'est notre vision d'une solution au problème. Dialogue: 0,0:07:44.00,0:07:49.51,Default,,0000,0000,0000,,Le code que vous développez ne vit pas sur votre machine, mais dans le cloud, Dialogue: 0,0:07:49.51,0:07:58.61,Default,,0000,0000,0000,,vous développez dans le cloud, et puisque c'est là qu'il vit, vous pouvez accéder toute l'API, dont Big Table. Dialogue: 0,0:07:58.61,0:08:02.93,Default,,0000,0000,0000,,Donc quand vous buildez l'application, il n'y a pas de problème. Dialogue: 0,0:08:02.93,0:08:07.76,Default,,0000,0000,0000,,Vous pouvez lancer et débuguer dans le même environnement aussi. Dialogue: 0,0:08:07.76,0:08:12.01,Default,,0000,0000,0000,,Un autre avantage : vous n'avez pas à télécharger et installer un SDK, Dialogue: 0,0:08:12.01,0:08:20.53,Default,,0000,0000,0000,,sur votre système, qui est sans doute différent de celui du développeur qui a créé le SDK. Dialogue: 0,0:08:20.53,0:08:27.91,Default,,0000,0000,0000,,Tous ces problèmes s'en vont, vous pouvez commencer à faire ce que vous aimez faire en tant que développeur : Dialogue: 0,0:08:27.91,0:08:29.79,Default,,0000,0000,0000,,écrire du code. Dialogue: 0,0:08:30.46,0:08:37.67,Default,,0000,0000,0000,,Maintenant, prenons ce scénario, vous êtes un nouveau développeur, vous rejoignez une compagnie, Dialogue: 0,0:08:37.67,0:08:41.22,Default,,0000,0000,0000,,qui a distribué une web-app il y a un an ; Dialogue: 0,0:08:41.22,0:08:45.07,Default,,0000,0000,0000,,les clients appellent parce qu'ils ont entendu parler d'une nouvelle technologie, Dialogue: 0,0:08:45.07,0:08:48.90,Default,,0000,0000,0000,,et ils veulent que la web-app la supporte. Dialogue: 0,0:08:48.90,0:08:56.43,Default,,0000,0000,0000,,Pour ajouter cette fonctionnalité convenablement, vous avez besoin de tout l'environnement, Dialogue: 0,0:08:56.43,0:09:05.44,Default,,0000,0000,0000,,le serveur, la base de données, scripts pour le déploiement, et d'installer tout ça. Dialogue: 0,0:09:05.44,0:09:10.01,Default,,0000,0000,0000,,Il faut que vous trouviez votre chemin dans ce système : discuter avec les administrateurs, Dialogue: 0,0:09:10.01,0:09:14.21,Default,,0000,0000,0000,,trouver les mots de passe, comprendre la procédure de déploiement... Dialogue: 0,0:09:14.21,0:09:20.53,Default,,0000,0000,0000,,Du coup, avant d'avoir créé un environnement de développement que vous pouvez utiliser Dialogue: 0,0:09:20.53,0:09:28.28,Default,,0000,0000,0000,,sans avoir à modifier du code en live, vous devez passez une éternité à faire tout ça. Dialogue: 0,0:09:28.28,0:09:33.30,Default,,0000,0000,0000,,Ce problème est une réalité pour beaucoup de développeurs. Dialogue: 0,0:09:33.30,0:09:38.57,Default,,0000,0000,0000,,Imaginez que vous tentiez d'ajouter une fonctionnalité, ou de résoudre un bug, Dialogue: 0,0:09:38.57,0:09:44.05,Default,,0000,0000,0000,,maintenant, imaginez ça : un environnement de développement qui tourne dans le cloud Dialogue: 0,0:09:44.05,0:09:49.53,Default,,0000,0000,0000,,est ce qui est utilisé pour fabriquer cette application. Dialogue: 0,0:09:49.53,0:09:56.87,Default,,0000,0000,0000,,Tout l'ensemble d'outils, d'éditeurs et de processeurs sont maintenant disponibles Dialogue: 0,0:09:56.87,0:10:00.49,Default,,0000,0000,0000,,en entrant une simple URL dans le navigateur. Dialogue: 0,0:10:00.49,0:10:09.13,Default,,0000,0000,0000,,En tant que développeur, vous pouvez démarrer immédiatement, améliorer votre application, Dialogue: 0,0:10:09.13,0:10:13.40,Default,,0000,0000,0000,,et tester sur une ferme cloud de test. Dialogue: 0,0:10:13.40,0:10:17.63,Default,,0000,0000,0000,,Quand vous avez testé le nouveau code, et avec succès, Dialogue: 0,0:10:17.63,0:10:21.90,Default,,0000,0000,0000,,vous pouvez cliquer sur "déployer en prod", et le client est content ! Dialogue: 0,0:10:21.90,0:10:29.19,Default,,0000,0000,0000,,Vous n'avez pas à perdre de temps à faire l'admin système, ou à répéter vos efforts ! Dialogue: 0,0:10:29.19,0:10:35.90,Default,,0000,0000,0000,,Vous pouvez avoir tout l'environnement de développement d'un projet derrière une simple URL, Dialogue: 0,0:10:35.90,0:10:41.39,Default,,0000,0000,0000,,et votre vie est soudainement bien plus heureuse ! Dialogue: 0,0:10:42.64,0:10:50.26,Default,,0000,0000,0000,,Je vais vous montrer comment un IDE dans le cloud peut marcher. Dialogue: 0,0:10:53.78,0:11:04.46,Default,,0000,0000,0000,,C'est notre site web, c9.io, et vous ne le voyez pas, parce qu'on a deux écrans... Dialogue: 0,0:11:11.98,0:11:19.86,Default,,0000,0000,0000,,Donc, vous pouvez vous loguer avec votre compte GitHub ; qui en a un ? Dialogue: 0,0:11:19.86,0:11:30.35,Default,,0000,0000,0000,,GitHub est un site qui héberge votre code source, avec un aspect social. Dialogue: 0,0:11:30.35,0:11:37.94,Default,,0000,0000,0000,,Pour les gens qui ont un compte c'est facile ; sinon, vous pouvez créer un compte avec Cloud9. Dialogue: 0,0:11:37.94,0:11:42.96,Default,,0000,0000,0000,,Ici, vous avez tous vos projets ; ils vivent tous dans le cloud. Dialogue: 0,0:11:42.96,0:11:51.51,Default,,0000,0000,0000,,Vous pouvez les ouvrir, en les clonant depuis GitHub. Dialogue: 0,0:11:51.51,0:11:58.89,Default,,0000,0000,0000,,On ouvre le projet Node.JS, par exemple. Dialogue: 0,0:11:58.89,0:12:03.95,Default,,0000,0000,0000,,Comme vous voyez, vous pouvez reconnaître des éléments d'IDE habituels. Dialogue: 0,0:12:03.95,0:12:11.17,Default,,0000,0000,0000,,Un éditeur, un arbre de fichiers, et des éléments d'interface pour vous aider dans certaines tâches. Dialogue: 0,0:12:11.17,0:12:20.95,Default,,0000,0000,0000,,Nous voulons cet éditeur innovant, meilleur que les éditeurs que vous connaissez, dans Eclipse, par exemple, Dialogue: 0,0:12:20.95,0:12:26.01,Default,,0000,0000,0000,,ou dans d'autres IDEs important, ou des éditeurs de textes. Dialogue: 0,0:12:26.01,0:12:35.67,Default,,0000,0000,0000,,Quand nous l'avons construit, en septembre 2010, nous l'avons présenté à une conférence, "JS conf", Dialogue: 0,0:12:35.67,0:12:40.62,Default,,0000,0000,0000,,et immédiatement, les gars de Mozilla qui construisaient un éditeur sont venus nous voir : Dialogue: 0,0:12:40.62,0:12:49.81,Default,,0000,0000,0000,,"votre éditeur est plus rapide, on pourrait travailler ensemble, et mêler nos efforts" Dialogue: 0,0:12:49.81,0:12:56.31,Default,,0000,0000,0000,,Et donc, c'est ce qu'on a fait, on a travaillé avec Mozilla pour le rendre meilleur et plus rapide. Dialogue: 0,0:12:56.31,0:13:00.66,Default,,0000,0000,0000,,Et maintenant, on a une vraie communauté de quelques centaines de gens qui donnent du code, Dialogue: 0,0:13:00.66,0:13:05.76,Default,,0000,0000,0000,,et qui rendent l'éditeur encore meilleur, avec des raccourcis vim pour ceux qui aiment. Dialogue: 0,0:13:05.76,0:13:11.48,Default,,0000,0000,0000,,La coloration syntaxique, et toutes ces choses que vous voulez pour en faire le meilleur éditeur Dialogue: 0,0:13:11.48,0:13:16.82,Default,,0000,0000,0000,,au monde, point final, le détail étant qu'il tourne dans un navigateur. Dialogue: 0,0:13:16.82,0:13:22.67,Default,,0000,0000,0000,,Le truc cool avec cet éditeur, c'est qui se dimensionne dynamiquement, Dialogue: 0,0:13:22.67,0:13:28.70,Default,,0000,0000,0000,,même avec 100000 lignes de code, il serait toujours aussi rapide ; il ne rend que la partie que vous voyez. Dialogue: 0,0:13:28.70,0:13:38.55,Default,,0000,0000,0000,,Cloud9 utilise ACE, cet éditeur, il est open-source, sur ace.ajax.org Dialogue: 0,0:13:38.55,0:13:47.05,Default,,0000,0000,0000,,et Cloud9 y ajoute notamment des onglets pour naviguer à travers les fichiers. Dialogue: 0,0:13:47.05,0:13:53.90,Default,,0000,0000,0000,,et les fichiers vivent dans le cloud, donc vous y accéder dans le navigateur, Dialogue: 0,0:13:53.90,0:14:01.58,Default,,0000,0000,0000,,et on supporte l'offline, donc sans connexion, certains fichiers restent disponibles. Dialogue: 0,0:14:01.58,0:14:06.37,Default,,0000,0000,0000,,Dans les versions futures, il y aura un support complet de la synchronisation, Dialogue: 0,0:14:06.37,0:14:09.11,Default,,0000,0000,0000,,on en a fait une démo le mois dernier. Dialogue: 0,0:14:09.11,0:14:15.40,Default,,0000,0000,0000,,Tout votre projet se synchronise automatiquement avec votre système de fichier local. Dialogue: 0,0:14:15.40,0:14:20.02,Default,,0000,0000,0000,,Vous pouvez y accéder dans le train. Dialogue: 0,0:14:20.02,0:14:25.08,Default,,0000,0000,0000,,Créons une application de zéro. Dialogue: 0,0:14:35.46,0:14:39.31,Default,,0000,0000,0000,,Une application Hello World... Dialogue: 0,0:15:02.05,0:15:09.25,Default,,0000,0000,0000,,On commence en créant un fichier javascript. Dialogue: 0,0:15:13.96,0:15:19.12,Default,,0000,0000,0000,,On l'appelle "HelloWorld", fichier vide. Dialogue: 0,0:15:19.12,0:15:27.22,Default,,0000,0000,0000,,On crée un fichier javascript qui s'exécute côté serveur, qui tourne grâce à Node.JS. Dialogue: 0,0:15:27.22,0:15:31.40,Default,,0000,0000,0000,,Qui ici connaît Node.JS ? Dialogue: 0,0:15:31.40,0:15:36.07,Default,,0000,0000,0000,,Pour ceux qui ne connaissent pas, c'est un runtime javascript, qui utilise V8, Dialogue: 0,0:15:36.07,0:15:43.66,Default,,0000,0000,0000,,et exécute du javascript côté serveur, en étant très orienté sur les entrées/sorties asynchrones. Dialogue: 0,0:15:43.66,0:15:51.58,Default,,0000,0000,0000,,Vous utilisez un style de développement orienté "événements", comme les événements dans le navigateur, Dialogue: 0,0:15:51.58,0:15:53.64,Default,,0000,0000,0000,,sauf qu'on est dans le serveur. Dialogue: 0,0:15:53.64,0:15:57.20,Default,,0000,0000,0000,,Pour toutes les opérations qui peuvent prendre du temps, comme la lecture d'un fichier, Dialogue: 0,0:15:57.20,0:16:04.90,Default,,0000,0000,0000,,vous passez un callback, qui est retourné quand le contenu du fichier est chargé. Dialogue: 0,0:16:04.90,0:16:08.13,Default,,0000,0000,0000,,Ça vous autorise à faire beaucoup de choses en même temps, Dialogue: 0,0:16:08.13,0:16:12.60,Default,,0000,0000,0000,,et de ne pas bloquer votre thread principal. Dialogue: 0,0:16:12.60,0:16:18.10,Default,,0000,0000,0000,,Donc, créons un petit serveur HTTP. Dialogue: 0,0:16:27.45,0:16:32.29,Default,,0000,0000,0000,,On crée une classe HTTP. Dialogue: 0,0:16:38.16,0:16:47.34,Default,,0000,0000,0000,,Ça c'est le callback, et il a deux paramètres, "request" et "response". Dialogue: 0,0:16:58.40,0:17:01.75,Default,,0000,0000,0000,,On lui demande d'écouter sur le port 80. Dialogue: 0,0:17:01.75,0:17:10.11,Default,,0000,0000,0000,,Puisqu'il tourne dans le cloud, il va nous lever une erreur, parce qu'on n'a pas le droit d'écouter sur le port 80. Dialogue: 0,0:17:10.11,0:17:14.05,Default,,0000,0000,0000,,Regardons... Je clique sur "debug"... Dialogue: 0,0:17:14.05,0:17:21.07,Default,,0000,0000,0000,,La boîte de dialogue me propose d'ajouter des arguments, mais je ne veux pas. Dialogue: 0,0:17:21.07,0:17:23.74,Default,,0000,0000,0000,,Et j'obtiens mon erreur. Dialogue: 0,0:17:23.74,0:17:28.17,Default,,0000,0000,0000,,C'est exécuté dans le serveur, qui me dit que je ne peux pas accéder ce port, Dialogue: 0,0:17:28.17,0:17:35.23,Default,,0000,0000,0000,,il faut que j'utilise le port qui est dans cette variable, que l'on me fournit. Dialogue: 0,0:17:35.23,0:17:38.64,Default,,0000,0000,0000,,donc, je copie ça là. Dialogue: 0,0:17:38.64,0:17:43.26,Default,,0000,0000,0000,,On devrait faire autre chose, tiens, à la récupération de la requête. Dialogue: 0,0:17:43.26,0:18:00.46,Default,,0000,0000,0000,,Répondons, passons "200", et lançons ça. Dialogue: 0,0:18:05.51,0:18:09.18,Default,,0000,0000,0000,,J'ai oublié quelque chose ? Dialogue: 0,0:18:09.18,0:18:18.33,Default,,0000,0000,0000,,Ah, après le "200", il faut quand même que j'envoie quelque chose. Dialogue: 0,0:18:27.04,0:18:40.41,Default,,0000,0000,0000,,Et voila ; c'est un petit serveur web écrit en Node. Je peux l'accéder dans le cloud, et il me dit "HelloWorld". Dialogue: 0,0:18:40.41,0:18:48.29,Default,,0000,0000,0000,,Maintenant, un peu plus complexe ; on ajoute un compteur. Dialogue: 0,0:19:05.100,0:19:10.46,Default,,0000,0000,0000,,Regardons ce que ça fait. Dialogue: 0,0:19:16.40,0:19:22.04,Default,,0000,0000,0000,,À chaque fois que je recharge la page, il s'incrémente, mais deux fois. Dialogue: 0,0:19:22.04,0:19:31.96,Default,,0000,0000,0000,,C'est parce que le serveur requête aussi la favicône à chaque requête. Dialogue: 0,0:19:31.96,0:19:39.33,Default,,0000,0000,0000,,Pour faire en sorte que ça ne contrarie pas notre test, Dialogue: 0,0:19:48.03,0:19:55.60,Default,,0000,0000,0000,,on peut ajouter cette petite condition. Dialogue: 0,0:20:29.27,0:20:32.68,Default,,0000,0000,0000,,Désolé ? Dialogue: 0,0:20:32.68,0:20:39.32,Default,,0000,0000,0000,,Oui, c'est partiellement vrai. Dialogue: 0,0:20:46.12,0:20:50.58,Default,,0000,0000,0000,,Parce que c'est à la favicon qu'il s'intéresse... Dialogue: 0,0:20:50.58,0:20:56.19,Default,,0000,0000,0000,,Faute de frappe ? Dialogue: 0,0:21:12.82,0:21:26.76,Default,,0000,0000,0000,,Bon, aucune idée de pourquoi ça ne marche pas, mais on peut passer à autre chose. Dialogue: 0,0:21:26.76,0:21:31.28,Default,,0000,0000,0000,,On peut aussi positionner un point d'arrêt. Dialogue: 0,0:21:31.28,0:21:39.04,Default,,0000,0000,0000,,J'arrête ce process... Dialogue: 0,0:21:39.04,0:21:44.10,Default,,0000,0000,0000,,Et maintenant qu'on a lancé une requête, le breakpoint l'arrête. Dialogue: 0,0:21:44.10,0:21:50.95,Default,,0000,0000,0000,,On peut inspecter les variables, pour voir ce qui se passe. Dialogue: 0,0:21:50.95,0:22:01.19,Default,,0000,0000,0000,,On peut voir la pile d'appels ici, et la visiter. Dialogue: 0,0:22:01.19,0:22:06.51,Default,,0000,0000,0000,,Et tout ceci, ce sont les fichiers internes à Node.JS, que l'on visite. Dialogue: 0,0:22:06.51,0:22:12.37,Default,,0000,0000,0000,,On peut aussi regarder ce qu'est la variable "counter". Dialogue: 0,0:22:18.40,0:22:22.32,Default,,0000,0000,0000,,"counter" est à 1. Dialogue: 0,0:22:22.32,0:22:30.29,Default,,0000,0000,0000,,On débloque, et on relance la requête ; et maintenant, c'est 2. Dialogue: 0,0:22:30.29,0:22:36.47,Default,,0000,0000,0000,,Vous pouvez aussi changer la variable. Dialogue: 0,0:22:48.75,0:22:51.65,Default,,0000,0000,0000,,Et comme vous voyez, on a changé la variable ici. Dialogue: 0,0:22:51.65,0:22:59.57,Default,,0000,0000,0000,,Ça permet un debugging d'application auquel on est habitué dans le monde Java. Dialogue: 0,0:22:59.57,0:23:03.14,Default,,0000,0000,0000,,Mais ici c'est du javascript, et c'est dans le cloud. Dialogue: 0,0:23:03.14,0:23:06.28,Default,,0000,0000,0000,,Donc, on n'a pas d'application qui tourne localement. Dialogue: 0,0:23:06.28,0:23:13.64,Default,,0000,0000,0000,,Et c'est le type de choses qui deviennent possibles avec les navigateurs qui sont de plus en plus rapides. Dialogue: 0,0:23:13.64,0:23:20.32,Default,,0000,0000,0000,,Beaucoup plus rapides, 3000 fois plus rapides. Dialogue: 0,0:23:20.32,0:23:27.41,Default,,0000,0000,0000,,Cette application, en terme de vitesse et de temps de démarrage bat Eclipse, mais parce que c'est dans le cloud, Dialogue: 0,0:23:27.41,0:23:35.42,Default,,0000,0000,0000,,on peut faire beaucoup plus, on peut prendre l'URL, et la partager. Dialogue: 0,0:23:35.42,0:23:42.55,Default,,0000,0000,0000,,On n'a pas eu à installer quoi que ce soit, j'ai juste créé un projet, pas d'installation de Node, Dialogue: 0,0:23:42.55,0:23:46.70,Default,,0000,0000,0000,,ou de Git, ou NPM, ou quoi que ce soit. Dialogue: 0,0:23:46.70,0:23:51.67,Default,,0000,0000,0000,,Ce n'est même pas mon ordinateur que je suis en train d'utiliser. Dialogue: 0,0:23:51.67,0:23:56.53,Default,,0000,0000,0000,,Je peux prendre n'importe quel ordinateur, et j'ai toujours accès à tous mes projets. Dialogue: 0,0:23:56.53,0:24:05.28,Default,,0000,0000,0000,,Ça change beaucoup de choses, mais ce qui compte encore plus, c'est la collaboration. Dialogue: 0,0:24:05.28,0:24:07.79,Default,,0000,0000,0000,,Travailler ensemble sur du code. Dialogue: 0,0:24:07.79,0:24:14.27,Default,,0000,0000,0000,,Et c'est la partie suivante de cette présentation. Dialogue: 0,0:24:20.16,0:24:29.54,Default,,0000,0000,0000,,Il y avait un slide de plus que je voulais évoquer, sur le projet qui tourne sous Cloud9 IDE. Dialogue: 0,0:24:29.54,0:24:34.30,Default,,0000,0000,0000,,Ce sont tous des projets open source que l'on a démarrés et que l'on utilise. Dialogue: 0,0:24:34.30,0:24:42.27,Default,,0000,0000,0000,,Le plus large est APF, Ajax.org PlatForm, une librairie d'applications qui tourne dans le navigateur. Dialogue: 0,0:24:42.27,0:24:49.77,Default,,0000,0000,0000,,C'est open source, et ça vous permet de mélanger plusieurs types de composants, de manière déclarative. Dialogue: 0,0:24:49.77,0:24:58.29,Default,,0000,0000,0000,,Et il y a ACE, je vous en ai parlé, l'éditeur avec la coloration syntaxique, la complétion de code, etc. Dialogue: 0,0:24:58.29,0:25:03.98,Default,,0000,0000,0000,,Et Cloud9 IDE, qui est open source aussi ; elle est sur GitHub, Dialogue: 0,0:25:03.98,0:25:08.58,Default,,0000,0000,0000,,vous pouvez la rélécharger, et l'utiliser localement, ou sur votre serveur Web, si vous le souhaitez. Dialogue: 0,0:25:08.58,0:25:17.70,Default,,0000,0000,0000,,Il y a beaucoup d'autres projets, comme JSDav, WebFS, qui est un wrapper pour le FS offline de Chrome, Dialogue: 0,0:25:17.70,0:25:20.49,Default,,0000,0000,0000,,et aussi quelques autres librairies. Dialogue: 0,0:25:20.49,0:25:28.10,Default,,0000,0000,0000,,Donc, jetez-y un oeil, sur github.com/ajaxorg, si ça vous intéresse. Dialogue: 0,0:25:28.10,0:25:34.56,Default,,0000,0000,0000,,Donc, comme Ruben l'a dit, c'est l'étape suivante dans la collaboration. Dialogue: 0,0:25:34.56,0:25:39.32,Default,,0000,0000,0000,,Jetons un oeil à la collaboration : il y a des challenges habituels. Dialogue: 0,0:25:39.32,0:25:45.57,Default,,0000,0000,0000,,Quand vous regardez le monde, vous voyez que c'est un énorme effort de collaboration : Dialogue: 0,0:25:45.57,0:25:51.60,Default,,0000,0000,0000,,bureaux, immeubles, gouvernements, ... tout est collaboration ! Dialogue: 0,0:25:51.60,0:25:58.20,Default,,0000,0000,0000,,Et la nature lui a donné une forme particulière, qui la rend efficiente et efficace ! Dialogue: 0,0:25:58.20,0:26:04.24,Default,,0000,0000,0000,,Prenons un exemple simple encore : des enfants, qui construisent un château de sable. Dialogue: 0,0:26:04.24,0:26:11.08,Default,,0000,0000,0000,,Si on veut faire un truc simple, comme un gros tas de sable, tout le monde peut travailler librement, Dialogue: 0,0:26:11.08,0:26:17.68,Default,,0000,0000,0000,,ils travaillent en parallèle, et il n'y a aucun problème, ils font tous la même chose. Dialogue: 0,0:26:17.68,0:26:24.32,Default,,0000,0000,0000,,Mais une fois que la pile de sable est finie, il faut des changements dynamiques ; Dialogue: 0,0:26:24.32,0:26:31.80,Default,,0000,0000,0000,,les tâches vont être séparées : un enfant va creuser une trancher, un autre construire le château, Dialogue: 0,0:26:31.80,0:26:35.21,Default,,0000,0000,0000,,encore un autre doit construire une porte, ... Dialogue: 0,0:26:35.21,0:26:41.43,Default,,0000,0000,0000,,La collaboration parallèle vient d'être remplacée par une séparation des tâches, Dialogue: 0,0:26:41.43,0:26:49.07,Default,,0000,0000,0000,,et quand un enfant interfère avec les tâches d'un autre, il va y avoir des caprices, sous peu... Dialogue: 0,0:26:49.07,0:26:53.32,Default,,0000,0000,0000,,Je ne pense pas que cet enfant déteste les châteaux de sable ; Dialogue: 0,0:26:53.32,0:27:01.03,Default,,0000,0000,0000,,je pense qu'il ne peut juste pas séparer ses tâches convenablement avec l'autre enfant. Dialogue: 0,0:27:01.03,0:27:10.04,Default,,0000,0000,0000,,C'est une partie difficile de la collaboration ; et fondamentalement, il n'y a pas une seule manière de faire. Dialogue: 0,0:27:10.04,0:27:18.77,Default,,0000,0000,0000,,Toutes les tâches ont des paramètres différents selon la phase du process où vous êtes. Dialogue: 0,0:27:20.72,0:27:28.48,Default,,0000,0000,0000,,Avec le développement, tout le monde utilise sans doute un de ces contrôleurs de sources. Dialogue: 0,0:27:28.48,0:27:34.96,Default,,0000,0000,0000,,Et c'est la manière de collaborer du malchanceux. Dialogue: 0,0:27:34.96,0:27:40.46,Default,,0000,0000,0000,,Vous devez uploader votre code pour qu'il soit livré à un serveur, peut-être dans le cloud. Dialogue: 0,0:27:40.46,0:27:43.48,Default,,0000,0000,0000,,Et qu'il soit re-downloadé. Dialogue: 0,0:27:43.48,0:27:48.84,Default,,0000,0000,0000,,C'est très distant, vous n'avez pas une réponse immédiate, il faut que vous sachiez ce que les autres font, Dialogue: 0,0:27:48.84,0:27:53.60,Default,,0000,0000,0000,,en utilisant une autre forme de communication. Dialogue: 0,0:27:53.60,0:27:58.36,Default,,0000,0000,0000,,Vous travaillez séparément, chacun dans son silo. Dialogue: 0,0:27:58.36,0:28:04.61,Default,,0000,0000,0000,,Il y a beaucoup d'autres moyens de collaborer, et dans Cloud9, on essaie de trouver des pistes Dialogue: 0,0:28:04.61,0:28:11.25,Default,,0000,0000,0000,,pour faire en sorte que les développeurs travaillent en temps réel. Dialogue: 0,0:28:11.25,0:28:17.50,Default,,0000,0000,0000,,Avoir un IDE dans le cloud ouvre la voie à des nouveaux modes de collaboration. Dialogue: 0,0:28:17.50,0:28:24.67,Default,,0000,0000,0000,,Par exemple, les revues de code interactives : vous pouvez parcourir le code, et ajouter un commentaire. Dialogue: 0,0:28:24.67,0:28:30.38,Default,,0000,0000,0000,,Et c'est immédiatement partagé avec les autres personnes, parce que c'est dans le cloud. Dialogue: 0,0:28:30.38,0:28:41.81,Default,,0000,0000,0000,,Pensez aussi à l'entraide, à la formation, au partage de morceaux de codes, ou de l'URL de votre application. Dialogue: 0,0:28:41.81,0:28:46.82,Default,,0000,0000,0000,,On n'aura plus besoin de dépendre d'inventions comme celle-ci, pour la programmation à plusieurs. Dialogue: 0,0:28:46.82,0:28:53.88,Default,,0000,0000,0000,,Il y a une nouvelle manière de collaborer qui améliore l'expérience de développement. Dialogue: 0,0:28:53.88,0:29:01.45,Default,,0000,0000,0000,,Disons que vous avez une équipe sur un projet, je vais prendre un exemple véridique. Dialogue: 0,0:29:01.45,0:29:10.81,Default,,0000,0000,0000,,Avec Cloud9, on a la possibilité de partager notre environnement de travail. Dialogue: 0,0:29:10.81,0:29:14.52,Default,,0000,0000,0000,,Regardons un peu la situation de notre compagnie à nous : Dialogue: 0,0:29:14.52,0:29:18.96,Default,,0000,0000,0000,,on a des gens qui travaillent à distance, aux USA ou en Europe, Dialogue: 0,0:29:18.96,0:29:22.67,Default,,0000,0000,0000,,mais l'équipe centrale de développement est à Amsterdam. Dialogue: 0,0:29:22.67,0:29:30.52,Default,,0000,0000,0000,,Souvent, quelqu'un a un problème, il y a un bug à corriger, du code doit être produit, Dialogue: 0,0:29:30.52,0:29:39.65,Default,,0000,0000,0000,,ça nécessite d'y réfléchir, et d'y collaborer ; c'est pratique de travailler ensemble sur ce problème. Dialogue: 0,0:29:39.65,0:29:42.32,Default,,0000,0000,0000,,Comment faire ? Dialogue: 0,0:29:42.32,0:29:47.40,Default,,0000,0000,0000,,Avec Cloud9, tout le projet est en ligne, pas juste le code. Dialogue: 0,0:29:47.40,0:29:53.04,Default,,0000,0000,0000,,Le runtime, la base de données, tout est là derrière une unique URL. Dialogue: 0,0:29:53.04,0:29:56.76,Default,,0000,0000,0000,,Comme vous en avez l'habitude avec d'autres services en ligne, Dialogue: 0,0:29:56.76,0:30:04.45,Default,,0000,0000,0000,,avec Cloud9, vous pouver partager l'URL de votre environnement avec vos collègues de l'autre côté du monde. Dialogue: 0,0:30:04.45,0:30:10.78,Default,,0000,0000,0000,,Pour le faire, vous positionnez des permissions, lecture seule ou lecture-écriture. Dialogue: 0,0:30:10.78,0:30:14.64,Default,,0000,0000,0000,,Puis, votre ami rejoint votre projet. Dialogue: 0,0:30:14.64,0:30:21.54,Default,,0000,0000,0000,,À l'intérieur du projet, vous pourrez communiquer directement, chat, vidéo, conversations audio ; Dialogue: 0,0:30:21.54,0:30:30.41,Default,,0000,0000,0000,,mais avant tout, vous pouvez coder simultanément, de manière collaborative, comme vous le faites avec Google Docs. Dialogue: 0,0:30:30.41,0:30:36.65,Default,,0000,0000,0000,,Et non seulement ça, mais la personne qui s'est fait inviter peut lancer l'application. Dialogue: 0,0:30:36.65,0:30:41.53,Default,,0000,0000,0000,,En cliquant sur le bouton "debug", vous lancez le code dans un système identique au vôtre, Dialogue: 0,0:30:41.53,0:30:44.69,Default,,0000,0000,0000,,parce que c'est très exactement votre système. Dialogue: 0,0:30:44.69,0:30:55.76,Default,,0000,0000,0000,,Donc la personne n'a pas à simuler votre environnement, et la phrase "Ça marche chez moi" n'existe plus ! Dialogue: 0,0:30:55.76,0:31:00.41,Default,,0000,0000,0000,,Donc, en résumé : les APIs dans le cloud vous aident à dimensionner, Dialogue: 0,0:31:00.41,0:31:06.68,Default,,0000,0000,0000,,et avoir votre code dans le cloud vous facilitent l'accès, la collaboration, et la maintenance sur vos applications. Dialogue: 0,0:31:06.68,0:31:10.16,Default,,0000,0000,0000,,L'intégration permet de cibler facilement des plateformes. Dialogue: 0,0:31:10.16,0:31:15.27,Default,,0000,0000,0000,,Donc, c'était un aperçu de l'avenir, merci de votre attention, Dialogue: 0,0:31:15.27,0:31:22.26,Default,,0000,0000,0000,,et si vous voulez collaborer, ou utiliser notre application, c'est en ligne sur c9.io, ou GitHub. Dialogue: 0,0:31:22.26,0:31:26.35,Default,,0000,0000,0000,,Merci beaucoup ! Dialogue: 0,0:31:33.56,0:31:36.49,Default,,0000,0000,0000,,Y a-t-il des questions ? Dialogue: 0,0:31:36.49,0:31:40.14,Default,,0000,0000,0000,,C'est un vieux troll, désolé de le présenter ! Dialogue: 0,0:31:40.14,0:31:48.36,Default,,0000,0000,0000,,Mais il y a un problème avec la confiance et la sécurité, et l'accessibilité, dans le cloud. Dialogue: 0,0:31:48.36,0:31:54.53,Default,,0000,0000,0000,,Je peux hacker dans le train, et pusher mes commits ; mais que se passe-t-il Dialogue: 0,0:31:54.53,0:32:01.59,Default,,0000,0000,0000,,si je possède une compagnie privée, et je ne veux pas ne plus être capable de récupérer mes données Dialogue: 0,0:32:01.59,0:32:06.00,Default,,0000,0000,0000,,parce que le service est down, ou a simplement fermé ? Dialogue: 0,0:32:06.00,0:32:09.56,Default,,0000,0000,0000,,Je ne vous souhaite pas d'avoir à fermer Cloud9, bien sûr... Dialogue: 0,0:32:09.56,0:32:19.80,Default,,0000,0000,0000,,Mais quels sont les problèmes de sécurité, de confidentialité, de confiance, et comment vous les gérez ? Dialogue: 0,0:32:19.80,0:32:23.30,Default,,0000,0000,0000,,Je pense que ce sont des soucis généralisés au le cloud ; Dialogue: 0,0:32:23.30,0:32:26.09,Default,,0000,0000,0000,,et je pense que le monde s'en rend progressivement compte, Dialogue: 0,0:32:26.09,0:32:29.48,Default,,0000,0000,0000,,de plus en plus de grosses applications tournent en ligne, Dialogue: 0,0:32:29.48,0:32:34.63,Default,,0000,0000,0000,,et les gens mettent beaucoup de leur valeur dedans, regardez Salesforce, par exemple. Dialogue: 0,0:32:34.63,0:32:38.74,Default,,0000,0000,0000,,Il y a des solutions, notamment aux problèmes de sécurité bien entendu ; Dialogue: 0,0:32:38.74,0:32:43.85,Default,,0000,0000,0000,,on pourrait même avancer qu'un fournisseur de cloud investira plus dans sa sécurité, Dialogue: 0,0:32:43.85,0:32:52.56,Default,,0000,0000,0000,,parce que c'est son "nom", et sa compagnie n'aura aucune valeur en cas de problème de sécurité. Dialogue: 0,0:32:52.56,0:32:58.60,Default,,0000,0000,0000,,Mais il y a des compagnies qui veulent pouvoir contrôler ça eux-mêmes. Dialogue: 0,0:32:58.60,0:33:04.49,Default,,0000,0000,0000,,Je pense qu'il va toujours y avoir un équilibre entre le cloud privé, et le cloud public ; Dialogue: 0,0:33:04.49,0:33:09.90,Default,,0000,0000,0000,,et ceux qui se soucient plus des coûts se pencheront vers les publics, Dialogue: 0,0:33:09.90,0:33:21.28,Default,,0000,0000,0000,,et ceux qui se soucient plus de la sécurité se pencheront vers les clouds privés. Dialogue: 0,0:33:25.65,0:33:31.54,Default,,0000,0000,0000,,Dans l'exemple, vous avez fait une application en Node.JS, et je me demande, Dialogue: 0,0:33:31.54,0:33:37.84,Default,,0000,0000,0000,,il y a plusieurs versions de Node.JS, comment vous en sortir ? Dialogue: 0,0:33:37.84,0:33:42.30,Default,,0000,0000,0000,,Chaque utilisateur installe sa propre version de Node.JS ? Dialogue: 0,0:33:42.30,0:33:48.26,Default,,0000,0000,0000,,Est-ce qu'il y a des modules spéciaux, des hacks spéciaux ? Dialogue: 0,0:33:48.26,0:33:54.21,Default,,0000,0000,0000,,Ou est-ce que vous le mettez à jour à la dernière version, mais du coup le code doit être mis à jour ? Dialogue: 0,0:33:54.21,0:33:57.13,Default,,0000,0000,0000,,Ou alors vous restez sur une version spécifique ? Dialogue: 0,0:33:57.13,0:34:02.20,Default,,0000,0000,0000,,Pour le moment, nous ne supportons qu'une version, mais on travaille dur, Dialogue: 0,0:34:02.20,0:34:09.46,Default,,0000,0000,0000,,pour gérer ce problème de versions ; et c'est dans le SDK, et dans le runtime en effet. Dialogue: 0,0:34:09.46,0:34:15.27,Default,,0000,0000,0000,,Ce que vous aurez, c'est un fichier de configuration, dans votre projet, qui déclare la version, Dialogue: 0,0:34:15.27,0:34:17.64,Default,,0000,0000,0000,,et on les supportera toutes. Dialogue: 0,0:34:17.64,0:34:29.34,Default,,0000,0000,0000,,On travaille ensemble avec Joyent pour supporter toutes ces versions de Node simultanément. Dialogue: 0,0:34:35.40,0:34:39.21,Default,,0000,0000,0000,,Bonjour, je ne vous ai jamais vu sauvegarder votre code ; Dialogue: 0,0:34:39.21,0:34:42.92,Default,,0000,0000,0000,,et comment est-ce que vous gérer le versionning, aussi ? Dialogue: 0,0:34:42.92,0:34:50.14,Default,,0000,0000,0000,,J'ai sauvegardé du code en utilisant Cmd+S, mais c'était rapide ! Dialogue: 0,0:34:50.14,0:34:56.16,Default,,0000,0000,0000,,Si je ne sauvegarde pas, il sauvegardera quand je cliquerai sur le bouton "debug". Dialogue: 0,0:34:56.16,0:35:02.08,Default,,0000,0000,0000,,Pour le versionning, vous avez dû voir vers le bas l'interface en ligne de commande ; Dialogue: 0,0:35:02.08,0:35:07.28,Default,,0000,0000,0000,,et vous pouvez faire beaucoup de choses que vous feriez sur votre ordinateur, comme "ls" ou "cd", Dialogue: 0,0:35:07.28,0:35:11.88,Default,,0000,0000,0000,,ou taper "git" ; et même "git" et ce que vous voulez. Dialogue: 0,0:35:11.88,0:35:17.03,Default,,0000,0000,0000,,"git status", "git push/pull", "git commit", pour gérer vos versions. Dialogue: 0,0:35:17.03,0:35:25.65,Default,,0000,0000,0000,,On ajoute Mercurial en ce moment aussi ; Subversion n'est pas encore sûr, mais on finira probablement par l'ajouter. Dialogue: 0,0:35:25.65,0:35:34.96,Default,,0000,0000,0000,,Pardon ? {\i1}inaudible{\i0} Peut-être, peut-être... Dialogue: 0,0:35:34.96,0:35:41.88,Default,,0000,0000,0000,,Il demandait aussi si ça allait fonctionner avec Bazaar. Dialogue: 0,0:35:41.88,0:35:51.91,Default,,0000,0000,0000,,Bonjour, si j'ai bien compris, votre IDE Cloud9 exécute du Javascript du côté du serveur ? - Oui. Dialogue: 0,0:35:51.91,0:35:57.44,Default,,0000,0000,0000,,Du coup, est-ce qu'on devrait l'utiliser comme CDN, Content Delivery Network ? Dialogue: 0,0:35:57.44,0:35:59.62,Default,,0000,0000,0000,,Est-ce possible ? Dialogue: 0,0:35:59.62,0:36:02.73,Default,,0000,0000,0000,,Heu... non... Dialogue: 0,0:36:02.73,0:36:09.35,Default,,0000,0000,0000,,Ce sont des concepts très différents... Dialogue: 0,0:36:09.35,0:36:15.50,Default,,0000,0000,0000,,Il exécute du code, mais qui vivra uniquement sur un serveur, quelque part dans le cloud. Dialogue: 0,0:36:15.50,0:36:21.52,Default,,0000,0000,0000,,Donc ce n'est pas plus proche de certains réseaux, c'est à un seul endroit, Dialogue: 0,0:36:21.52,0:36:24.07,Default,,0000,0000,0000,,contrairement à ce que ferait un CDN. Dialogue: 0,0:36:24.07,0:36:28.34,Default,,0000,0000,0000,,Ok, donc c'est juste de l'exécution locale pour tester ? Dialogue: 0,0:36:28.34,0:36:32.15,Default,,0000,0000,0000,,Oui, l'exécution est dans le but de développer votre application ; Dialogue: 0,0:36:32.15,0:36:40.81,Default,,0000,0000,0000,,donc on vous fournit toute l'infrastructure pour développer votre appli, comme vous l'installeriez localement. Dialogue: 0,0:36:40.81,0:36:50.80,Default,,0000,0000,0000,,Juste un petit exemple : votre IDE a l'air d'utiliser MarkItUp, pour les Cmd+S et tout. Dialogue: 0,0:36:50.80,0:36:57.27,Default,,0000,0000,0000,,Si vous voulez refactoriser MarkitUp avec votre IDE, que va-t-il se passer ? Dialogue: 0,0:36:57.27,0:37:01.52,Default,,0000,0000,0000,,Je ne comprends pas vraiment la question, désolé ? Dialogue: 0,0:37:01.52,0:37:08.16,Default,,0000,0000,0000,,C'est écrit en Javascript, Cloud9? - Oui. - Il utilise des librairies, des plugs-in jQuery ? Dialogue: 0,0:37:08.16,0:37:12.48,Default,,0000,0000,0000,,Quelque chose de similaire, mais pas jQuery, oui. Dialogue: 0,0:37:12.48,0:37:19.63,Default,,0000,0000,0000,,Et si je veux refactoriser un plug-in jQuery, par exemple (désolé pour mon anglais) Dialogue: 0,0:37:19.63,0:37:27.55,Default,,0000,0000,0000,,qui est utilisé par Cloud9 IDE ? Est-ce qu'il y a des conflits entre les exécutions ? Dialogue: 0,0:37:27.55,0:37:33.36,Default,,0000,0000,0000,,Non, l'exécution de votre application est complètement séparée de Cloud9. Dialogue: 0,0:37:33.36,0:37:41.88,Default,,0000,0000,0000,,Cloud9 est juste une application qui tourne là, et quel que soit le code que vous tapez, il tourne dans une nouvelle fenêtre. Dialogue: 0,0:37:41.88,0:37:45.73,Default,,0000,0000,0000,,Donc il n'y a pas de conflits. Dialogue: 0,0:37:45.73,0:37:49.19,Default,,0000,0000,0000,,C'était ça la question que tu voulais poser ? - Ouais ouais. Dialogue: 0,0:37:49.19,0:37:52.42,Default,,0000,0000,0000,,Merci beaucoup. Juste pour savoir. Dialogue: 0,0:37:52.42,0:37:56.76,Default,,0000,0000,0000,,{\i1}inaudible{\i0} Dialogue: 0,0:37:56.76,0:38:01.78,Default,,0000,0000,0000,,Production ? Non, c'est juste pour du développement. Dialogue: 0,0:38:01.78,0:38:06.28,Default,,0000,0000,0000,,La question c'est : est-ce fait pour du développement, ou aussi de la production ? Dialogue: 0,0:38:06.28,0:38:09.35,Default,,0000,0000,0000,,Et on veut vraiment rester concentrés sur le développement. Dialogue: 0,0:38:09.35,0:38:12.83,Default,,0000,0000,0000,,On travaille avec d'autres compagnies qui fournissent des environnements de production, Dialogue: 0,0:38:12.83,0:38:19.40,Default,,0000,0000,0000,,donc vous pouvez publier votre application depuis Cloud9, vers l'environnement que vous voulez. Dialogue: 0,0:38:19.40,0:38:23.05,Default,,0000,0000,0000,,Vous avez montré Node.JS, mais qu'est-ce qu'il en est de Python, de Ruby, ... ? Dialogue: 0,0:38:23.05,0:38:28.39,Default,,0000,0000,0000,,On était à Google I/O le mois dernier, à démontrer un runtime Python, Dialogue: 0,0:38:28.39,0:38:31.36,Default,,0000,0000,0000,,pour pouvoir déployer dans Google App Engine. Dialogue: 0,0:38:31.36,0:38:36.91,Default,,0000,0000,0000,,On travaille sur ce type de runtimes, et on les ajoutera dans les mois qui viennent. Dialogue: 0,0:38:36.91,0:38:41.25,Default,,0000,0000,0000,,On pourrait considérer un déploiement vers Heroku, aussi ? Dialogue: 0,0:38:41.25,0:38:45.29,Default,,0000,0000,0000,,Où es... ? - Juste derrière. - Ah ! Dialogue: 0,0:38:45.29,0:38:52.77,Default,,0000,0000,0000,,Désolé ? - On pourrait considérer un déploiement vers Heroku, en d'autres langages, comme PHP ? Dialogue: 0,0:38:52.77,0:39:05.87,Default,,0000,0000,0000,,Oui, on pense à Ruby aussi, et peut-être PHP, et on discute avec ces fournisseurs pour déployer vers eux. Dialogue: 0,0:39:05.87,0:39:14.67,Default,,0000,0000,0000,,Désolé pour mon anglais. Est-ce qu'il y a des services de tests automatisés dans l'outil ? Dialogue: 0,0:39:14.67,0:39:18.71,Default,,0000,0000,0000,,Vous parlez de développement, de plans, d'infrastructure, ... Dialogue: 0,0:39:18.71,0:39:23.19,Default,,0000,0000,0000,,Très bonne question. Pas encore, mais c'est sur la roadmap. Dialogue: 0,0:39:23.19,0:39:29.36,Default,,0000,0000,0000,,Et on est en train de construire une jolie interface, pour brancher n'importe quel framework Dialogue: 0,0:39:29.36,0:39:32.92,Default,,0000,0000,0000,,de test unitaire que vous souhaitez. Dialogue: 0,0:39:32.92,0:39:37.12,Default,,0000,0000,0000,,Et on va aussi ajouter des tests Selenium, pour que vous puissiez les lancer, Dialogue: 0,0:39:37.12,0:39:47.47,Default,,0000,0000,0000,,les enregistrer dans Cloud9 mais les lancer dans le cloud, pour n'importe quel navigateur. Dialogue: 0,0:39:56.30,0:40:02.52,Default,,0000,0000,0000,,Bonjour, j'aimerais en savoir plus sur votre business model, est-ce que le service est gratuit ? Dialogue: 0,0:40:02.52,0:40:10.49,Default,,0000,0000,0000,,Pourquoi devrais-je avoir confiance en un service gratuit comme le vôtre ? Dialogue: 0,0:40:10.49,0:40:16.45,Default,,0000,0000,0000,,Ok, le service est basé sur du freemium, c'est-à-dire qu'il y a une partie gratuite. Dialogue: 0,0:40:16.45,0:40:21.12,Default,,0000,0000,0000,,C'est gratuit pour une utilisation open-source ; donc si vous avez un projet open-source, Dialogue: 0,0:40:21.12,0:40:24.26,Default,,0000,0000,0000,,et que vous voulez travailler dessus dans le cloud, c'est gratuit. Dialogue: 0,0:40:24.26,0:40:32.20,Default,,0000,0000,0000,,Si c'est un projet commercial, que vous voulez avoir en privé, alors il faut payer. Dialogue: 0,0:40:35.08,0:40:38.68,Default,,0000,0000,0000,,Que se passe-t-il quand vous perdez la connexion ? Dialogue: 0,0:40:38.68,0:40:44.48,Default,,0000,0000,0000,,On peut toujours utiliser l'éditeur et écrire du code ? Dialogue: 0,0:40:44.48,0:40:49.80,Default,,0000,0000,0000,,La fonctionnalité "offline" devrait disponible dans quelques semaines ; Dialogue: 0,0:40:49.80,0:40:55.28,Default,,0000,0000,0000,,elle permettra de synchroniser tout le projet sur votre système de fichier, Dialogue: 0,0:40:55.28,0:40:59.53,Default,,0000,0000,0000,,et en utilisant le manifest HTML5, l'application est disponible aussi. Dialogue: 0,0:40:59.53,0:41:04.75,Default,,0000,0000,0000,,Donc vous pouvez faire toutes les opérations, créer des répertoires, des fichiers, etc. Dialogue: 0,0:41:04.75,0:41:14.37,Default,,0000,0000,0000,,les sauvegarder, les supprimer, et ils seront resynchronisés en se reconnectant. Dialogue: 0,0:41:23.72,0:41:30.90,Default,,0000,0000,0000,,Si vous n'êtes pas un environnement de production, comment vous gérer les déploiements ? Dialogue: 0,0:41:30.90,0:41:36.80,Default,,0000,0000,0000,,L'un de vos arguments était que vous êtes dans le cloud, donc c'est facile de déployer ; Dialogue: 0,0:41:36.80,0:41:45.64,Default,,0000,0000,0000,,mais si la configuration de l'environnement de déploiement est différent du vôtre, vous ne résolvez pas le problème ? Dialogue: 0,0:41:45.64,0:41:52.05,Default,,0000,0000,0000,,Ce qu'on fait, c'est qu'on travaille ensemble avec les PaaS, ou les fournisseurs d'infrastructure. Dialogue: 0,0:41:52.05,0:41:57.76,Default,,0000,0000,0000,,Quand vous commencez votre projet, vous pouvez choisir : je veux créer un projet Google App Engine. Dialogue: 0,0:41:57.76,0:42:02.64,Default,,0000,0000,0000,,Et votre environnement se configure pour que vous développiez sur App Engine. Dialogue: 0,0:42:02.64,0:42:06.28,Default,,0000,0000,0000,,Et quand vous déployez, il déploie sur App Engine. Dialogue: 0,0:42:06.28,0:42:14.30,Default,,0000,0000,0000,,Du coup, on génère de la liberté, parce que toutes ces organisations ré-invente comment on fait ça. Dialogue: 0,0:42:14.30,0:42:23.58,Default,,0000,0000,0000,,Nous on ne veut pas faire ça, on veut juste fournir la meilleure expérience de développement. Dialogue: 0,0:42:23.58,0:42:25.95,Default,,0000,0000,0000,,Je pense qu'on n'a plus de temps. Dialogue: 0,0:42:25.95,0:42:33.31,Default,,0000,0000,0000,,On a deux livres, qui doivent être donnés aux meilleures questions ; mais il faut que tu me donnes un coup de main. Dialogue: 0,0:42:33.31,0:42:36.33,Default,,0000,0000,0000,,J'ai trouvé la première question plutôt bonne. - Moi aussi, oui. Dialogue: 0,0:42:36.33,0:42:39.19,Default,,0000,0000,0000,,Et qui va avoir le deuxième ? Dialogue: 0,0:42:39.19,0:42:43.18,Default,,0000,0000,0000,,J'ai trouvé la question sur les tests très bonne. - Mais c'est un orateur ! Dialogue: 0,0:42:43.18,0:42:46.83,Default,,0000,0000,0000,,Mais il ne peut pas l'avoir, je sais, c'est juste une remarque pour l'honneur ! Dialogue: 0,0:42:46.83,0:42:51.56,Default,,0000,0000,0000,,Bon, du coup, on va le garder ! Dialogue: 0,0:42:51.56,0:42:53.42,Default,,0000,0000,0000,,Je pense que... Dialogue: 0,0:42:53.42,0:42:56.39,Default,,0000,0000,0000,,La dernière ? Dialogue: 0,0:42:56.39,0:43:02.08,Default,,0000,0000,0000,,Ok, donc pour la première et la dernière question ! Dialogue: 0,0:43:02.08,0:43:04.53,Default,,0000,0000,0000,,Félicitations ! Dialogue: 0,0:43:08.65,0:43:09.88,Default,,0000,0000,0000,,Voila. Dialogue: 0,0:43:09.88,0:43:13.88,Default,,0000,0000,0000,,Vous pouvez poser quand même une dernière question en français si vous voulez, si c'est juste la langue qui vous retient. Dialogue: 0,0:43:13.88,0:43:17.78,Default,,0000,0000,0000,,On traduira après. Dialogue: 0,0:43:17.78,0:43:21.08,Default,,0000,0000,0000,,Si vous avez honte de votre anglais... Dialogue: 0,0:43:21.08,0:43:22.72,Default,,0000,0000,0000,,Merci beaucoup ! Dialogue: 0,0:43:22.72,9:59:59.99,Default,,0000,0000,0000,,Merci !