 Pendant la prochaine 40 minutes, on va découvrir, on va faire un tour rapide de CoochDB. Le premier, il va me introduire. Je suis Benoachino. J'ai fondé une nouvelle compagnie 3 ans plus tard, named NKMutimedia, le logo en top. Je découvre le CoochDB 3 ans plus tard, quand j'ai travaillé sur les nouveaux projets. J'ai besoin d'une nouvelle façon d'entraîner les données. J'ai découvert le CoochDB, et depuis que j'ai été un développeur de CoochDB, autour de CoochDB, j'ai maintenu deux libraries. CoochBeam, qui est une libraire dans l'aérolongue, qui vous permet d'accéder à la CoochDB. CoochDB c'est la même dans Python. J'ai maintenu aussi le script CoochDB, qui est le déploiement de CoochDB dans l'application de CoochDB en CoochDB. Alors, pourquoi CoochDB ? D'abord, c'est un document orienté database. Cela signifie que vous ne portez pas seulement la valeur de la clé, vous portez des documents avec la clé. CoochDB est HTTP native. On verra ce que ça veut dire. Vous pouvez avoir vos données locales ou sur le server centralisé. Vous pouvez faire p2p application avec CoochDB. Et la scale. Pourquoi la scale ? Parce que c'est l'infrastructure. CoochDB, le design est élevé dans l'aérolongue. C'est à dire que l'aérolongue est un langage qui est élevé pour la scale. Vous passez un message entre la CPU et les machines. C'est la même. CoochDB a une structure en Python. C'est à dire que quand il vous dit que le document est sauvé, c'est vraiment sauvé. C'est déjà sur le disque. Croshtoliverance, parce que c'est à l'aérolongue, parce que c'est à l'aérolongue. HTTP. Alors, qu'est-ce que le document ? Chaque document, chaque contenu en CoochDB est sauvé comme un document d'aison. Vous pouvez voir dans ce simple document que vous avez deux membres avec un autre score. C'est l'idée de votre document. C'est un code unicode. C'est un UID en CoochDB, mais ça pourrait être le cas que vous voulez. Vous avez le revivre membre. C'est la révision des documents. Mais c'est pas recommandé de l'utiliser comme une révision historique. Parce que c'est seulement pour l'engin interne. CoochDB permet de détecter les conflits entre le document et la réplication. Et d'autres données que vous pouvez mettre en place. Jacob Kaplanmoth, qui est le leader du projet Django, a dit que CoochDB est la bête de la web. C'est-à-dire que CoochDB est la bête avec un interface HTTP, mais c'est aussi possible de créer une application HTTP. La première chose, quand vous installez CoochDB et vous installez CoochDB, c'est le seul moyen de savoir si ça fonctionne. C'est d'aller avec votre frère ou la chaleur pour savoir si ça fonctionne. Vous avez le service URL. C'est un welcome et un fresh number. C'est un web. Qu'est-ce que ça veut dire ? HTTP est supportée à tout point. Si vous développez en Java, Python, Ruby, ou autre chose, chaque langage a son propre client HTTP. Donc, il y a beaucoup de tools et de libraries. Quand vous installez un document avec CoochDB vous faites via HTTP. En HTTP, vous avez 4 verbes GET, PUT, POST et DELETE. Et chaque de ces verbes sont utilisées pour sauver des documents ou créer des databases ou faire différentes actions dans CoochDB. Pour exemple, pour créer un database, vous postez le nom du service URL et le database est créé. C'est le même pour vos documents avec PUT, POST et quand vous voulez de DELETE, vous envoyez un verbe de DELETE pour le service. Maintenant, quand vous avez sauvé vos documents sur CoochDB, vous devez créer un CoochDB basé sur MapReduce qui est un concept de software développé par Google. CoochDB utilise sa propre implementation du système MapReduce. Cela signifie qu'il n'est pas patenté. C'est complètement gratuit. Il a été checké recentement par la FH Foundation. On utilise MapReduce pour extraire l'information du document. Qu'est-ce que ça veut dire ? C'est que vous avez votre document et vous faites ce qu'on appelle la map. La map va obtenir une liste de votre document. Cette liste est composée de deux éléments. L'une est la clé et l'autre est la valeur. Vous obtenez une liste et Reduce est le moyen de réduire la clé dans une liste de valeurs. Je vais voir un exemple concret Javascript est utilisé pour réduire les documents. Chaque function de MapReduce est faite dans Javascript. Tout est installé dans un document spécifique qui s'appelle DysenDoc. Chaque idée de DysenDoc start with underscore design dans le Roquez. Vous avez des documents spécifiques de votre data. Quand vous voulez query Qtb, vous devez query un ul spécifique de votre vue. Une vue peut être une map ou une map plus radius. Elle est disponible dans une liste de valeurs. Chaque réaction sur Qtb pour views, pour Qtb, etc. sera derrière DysenDoc. Qu'est-ce que MapReduce concrètement? Ce sont nos documents que nous installons dans la database Qtb. L'exemple est simple. Nous voulons organiser les bouts pour que les gens puissent mettre 1 minus 1 de 0 à un nouvel URL et nous voulons obtenir le top de l'URL. Nous avons sauvé ce document qui est valorisé dans la database. Maintenant, nous voulons map des documents. Nous voulons obtenir tous les votes dans la database. Une map de la function JavaScript où vous passez l'argument. Nous voulons map un document avec un URL et un vote de membres. Nous émettons l'URL à la première fois et la valeur sera la vote. Nous avons le résultat. Il fonctionne comme ça. Chaque fois que vous avez sauvé un document, il n'y a rien à faire. Mais quand vous appelez vos vues, ce document que vous avez sauvé depuis la dernière fois va être passé à l'argument de la function et la function va limiter les valeurs qui seront indexées. Vous obtenez un liste de résultats dans JSON. La première partie de la vue est l'offset en cas que vous avez limité vos vues. Et le résultat dans JSON, vous avez l'idée de la map document qui est un URL et la valeur qui est la vote. Nous avons un liste de résultats dans la database. Maintenant, nous voulons réduire les valeurs. Nous voulons calculer quelle valeur est attribuée à un URL. Nous voulons réduire la function de JavaScript. Nous pouvons passer dans les clés que nous avons retransmé avant. Les clés sont URL et les valeurs. Donc, deux listes. Chaque index est associé. La valeur 0 est la même que la valeur 0. Nous voulons réduire toutes les valeurs pour la clé. Et ça introduit la liste précédente à ce liste de deux clés. Nous avons ma SQL qui a moins de 1 vote. Nous pouvons éventuellement réorder la vue donc, c'était très facile d'aller sur la liste de documents afin de essayer la salle de SQL ou un autre système de SQL. Ce n'est pas facile. Je vous montre la possibilité de faire des views dans la JavaScript. Mais, dans Cushdaib, vous avez aussi la vue 7 dans votre serveur. Donc, vous pouvez éventuellement réduire la function dans votre serveur. Mais, si vous voulez, vous pouvez ajouter votre propre serveur et le faire dans la clé, SQL, Java, Perl, etc. Dans Cushdaib, il y a un web server Python et tout est juste assez typique. Nous avons aussi fait un web admin self hosted. C'est un web interface faite dans la JavaScript. Donc, dans cet admin, vous pouvez créer la vue, tester les views, reproduire les maps, obtenir les listes de documents, faire la réplication, etc. Diffloy, donc, une chose que Cushdaib a différente c'est la réplication. Nous voyons ce que c'est. La réplication nous permet d'améliorer l'envers. Et nous verrons que c'est facile de faire un cluster de différents nodes. Donc, la première réplication, c'est une réplication d'incrédients. C'est-à-dire qu'il n'y a pas de slaves, c'est un cluster dans la réplication de Cushdaib. Il n'y a qu'un master. Quand vous avez un database et vous voulez réplicer avec un autre database, vous avez juste un post sur le URL de Cushdaib et disons quel est le source, quel est le target et il pourrait travailler dans les autres sens. Vous pouvez éventuellement vous avez une réplication dans les deux sens. La réplication pourrait arriver dans une façon continue. Vous pouvez faire une réplication entre 2 nodes ou 3 nodes ou vous pouvez faire la réplication continue. C'est basé sur le change API de Cushdaib. Vous pouvez avoir une réplication du database, la création, la saison le design, etc. en temps réel et la réplication vous utilisez. Avec la réplication, vous pouvez prendre le data avec vous. C'est très facile de installer Cushdaib sur votre propre laptop. Puisque la réplication est il n'y a pas de master et chaque node est la seule histoire. Vous pouvez installer votre application sur votre laptop, mettre des données sur Cushdaib et quand vous revenez en ligne, répliquez-le sur le service central et la data va apparaître sur le service web ou le système d'information que vous utilisez. La réplication est incommotable. Cela signifie que la révision peut faire une réplication simple entre deux nodes ou même plus de nodes. Vous pouvez faire la réplication dans les deux sens ou plus ou plus. Cela fonctionne pour tous. Chaque fois que la réplication est faite chaque fois que la histoire est updates vous pouvez répliquer et cela fonctionne. La réplication est facile, vous devez créer deux machines pour installer Cushdaib et deux machines et mettre une réplication sur une machine ou l'autre, dépendant d'où elle est en ligne et quand la machine est faite l'autre va avoir la data en temps réel. L'autre n'est pas la réplication. Vous devez utiliser des nodes et vous devez installer plus que deux machines. Avec le Cushdaib database vous avez 500 MB sur votre computer vous devez 1 TB sur votre hard disk pour installer la réplication et pour installer la batterie n'est pas correcte. Vous devez utiliser un cluster en dessinant un cluster c'est vraiment facile vous pouvez le dessiner si vous voulez. C'est ce que Mibu apprend un cluster basé sur NGNX et Twisted un library Python. Vous devez utiliser chaque data qui est chargée vous définissez votre chargée au début et il n'y a pas de nodes ou de master pour la réplication il y a un algorithme qui calcule l'idée de la position de l'idée de votre document dans le cluster et si une machine perd vous devez encore accès vous devez mettre un autre machine dans votre chargée et il calcule la position de votre document. Donc, il n'y a pas de master non-name node ce n'est pas comme Adoop où vous avez un single pole de failure si vous avez une machine faite. C'est simple, c'est simple ce n'est pas n'importe quoi sur Google code, mais maintenant sur GitHub. Donc, c'est avec Kujibi, on a juste vu le système de map pour déployer vos Kujibi nodes et maintenant on ne peut pas faire plus. Avec un simple core Kujibi Core, vous pouvez faire vos données, vous pouvez query vos données vous pouvez repliquer vos données, mais évidemment, parfois, vous voulez rétribuer un HTML de votre doc ou un PDF ou un XML, etc. Donc, vous pouvez prendre le contrôle de vos données grâce à Cusheps. Ici, c'est un exemple on a une liste ici il y a un résultat que l'on a converti dans HTML comment on le fait on va simplement créer une fonction qui rendra les résultats de votre view ce n'est pas un view, c'est un doc ici on a créé un show et le show fait juste un truc, il prend votre ID si le doc existe si on continue la fonction et si c'est rendu en HTML vous pouvez aussi décider de le rendre en XML ou en JSON il n'y a pas d'impact c'est cachable c'est juste HTTP vous avez des tags avec votre doc et vous pouvez rendre en HTML les mêmes résultats vous avez des résultats chaque fois ici il est rendu en HTML via une liste les listes et shows sont appelées dans le Cougibay et le server URL2 il n'y a pas d'impact sur les database c'est un round word une ligne à deux fois donc vous pouvez éventuellement streamer la réponse c'est le même avec le view vous pouvez obtenir les résultats streamés ligne en ligne dans votre application donc vous pouvez éventuellement obtenir plus de 10 000 lines en une fois sans prendre la membre sur votre application une liste peut être rendue en HTML ou en formats quand vous savez vos documents sur le database vous avez des temps d'être sûrs que l'utilisateur s'arrête d'éventuellement d'éventuellement ou même d'éventuellement d'éventuellement d'éventuellement donc pour cela, nous avons une fonction de validation chaque fonction de validation chaque fonction est, encore, une fonction simple de JavaScript qui obtient le doc les objectifs et vous pouvez poursuivre l'arrêt vous pouvez éventuellement éventuellement poursuivre le document donc cuchdb est poursuivi avec beaucoup de tools nous avons deux tools pour créer cucheps, éventuellement avec le show en liste et d'autres fonctions vous pouvez acheter l'application ambitie donc il n'y a pas besoin de Python il n'y a pas besoin de Java ou autre chose vous installez un browser sous cuchdb achetez votre application et cela sera utilisé pour l'improvement de l'application par vos développeurs et juste une application simple de tout votre laptop mais quand toutes ces fonctions ne sont pas en train vous pouvez externe cuchdb via le external http handler et les diamants ce n'est pas un external oh, français donc external un simple script que vous ajoutez pour votre configuration il y a juste un standard input standard pour le système en fait cuchdb vous envoie votre script en Java, Python, Ruby c'est tout il vous envoie un JSON et vous envoie un string ou un JSON pour cela pour faire l'action si vous voulez ajouter un specific URL pour obtenir votre image transformez-les resizez-les et vous envoiez leur attachement de votre document vous créez-le en Python ou Java ou autre chose vous ajoutez ce script pour votre configuration c'est le nom de l'UL et cuchdb vous envoie l'http pour votre script et vous envoiez la réponse cuchdb c'est oui, désolé donc cela fonctionne pour ceux qui savent comme Whiskey ou Rec qui sont http pour Python pour Whiskey et Rec object et vous n'avez pas besoin d'avoir à managé les processus cuchdb vous envoiez les processus pour vous il vous crée un processus et il vous réutilise si vous avez besoin et sous les notifications vous pouvez ajouter le script vous pouvez externer le cuchdb avec votre ondler dans l'air toutes toutes les parts de l'application cuchdb sont dans la configuration 5 donc le view est un ondler le show est un autre ondler les listes sont d'autres ondler la façon dont vous voyez l'application est d'autres ondler si vous voulez rewrite votre ondler de cuchdb vous pouvez rewrite votre ondler de cuchdb comme ajouter le texte qui est possible avec cuchdb-lucen vous pouvez le faire cuchdb-lucen et il sera utilisé comme d'autres services et si vous voulez faire plus si vous avez la possibilité de répliquer c'est plus facile vous pouvez créer une vraie p2p services donc pourquoi pas ajouter bonjour à cuchdb c'est possible en fait vous créez votre script votre ondler ajoutez le ondler dans l'application et automatiquement cuchdb-lucen je vais le séparer pour vous pour que ça fonctionne facilement vous avez une notification vous avez deux moyens via un script que vous résistez dans votre configuration il y a un outil d'input qui fonctionne comme externes ou via le changement de l'ondler que j'ai montré avant donc il y a d'autres outils vous avez cuchdb-lucen qui permet d'installer votre cuchdb-node ou le cuchdb-lucen spécial dans cuchdb donc comme je l'ai dit, vous pouvez créer une application cuchdb-lucen pour faire une application cuchdb-lucen donc pour faire ça j'ai écrit un script nommé cuchdb-lucen dans python chaque cuchdb-lucen est installé dans un document design mais évidemment, vous n'aurez pas de tip dans votre cuchdb-lucen d'interface, d'interface et d'input cuchdb-lucen cuchdb-lucen est la procédure vous avez juste créé votre structure sur les 5 systèmes il y a une direction pour views, une direction pour shows, une direction pour web-tats et comme ça le script cuchdb-lucen va générer cette structure avec des commentaires puis quand vous avez fini de designer votre application, vous voulez le tester vous allez juste mettre dans le débat et ça sera disponible sur cuchdb-lucen et si vous voulez appliquer un cuchdb-lucen c'est possible aussi, grâce à les commentaires le script est disponible sur github et tout le monde l'utilise ou récréer pour créer cuchdb-lucen donc il y a des exemples de cuchdb-lucen sur le top une application d'images d'utiliser la libraire de cuchdb-lucen pour créer des effets sur l'image ici il y a un agenda qui t'aimera à travailler comme le calendar de Google il already works, vous pouvez ajouter des événements et grâce à l'application de l'application vous pouvez avoir un broussard ici un autre exemple au bouton qui travaille avec Twitter le site classique Baylock une information qui est rédite une différence qui est rédite c'est que quand quelqu'un a un URL ou un commentaire tout le monde qui est connecté il y a des informations dans des tempss vous pouvez aussi faire des likes sur Twitter qui existent c'est appelé toast ou vous pouvez faire une application présentation sur cuchdb-lucen chaque slide est un doc cuchdb-lucen et il y a 100 vachos donc cuchdb-lucen est un nouveau broussard ou cuchdb-lucen est un nouveau desktop récemment each Ubuntu a cuchdb-lucen et une libraise qui a créé cuchdb-lucen vous permet de faire une application avec cuchdb-lucen ubuntu ubuntu-byte ubuntu-1 et un desktop avec cuchdb-lucen cuchdb-lucen donc vous pouvez facilement répliquer les informations de cuchdb-lucen et d'utiliser un autre computer répliqué d'un cuchdb-lucen et vous pouvez même, grâce à debuts, payer 3 ou plus de computers dans votre network entre toutes les applications ça pourrait être dans votre office et dans votre favorito s2 depuis que c'est JPL Arch Linux est déjà sous-tit je pense que ça va bientôt dans Fubi Lv2 et le futur est cuchdb-lucen des gens ont déjà porté cuchdb-lucen 9000 9000 et des autres ont créé un API pour simuler cuchdb-lucen via JavaScript sur votre front, c'est possible sur l'iPhone c'est possible sur l'Android et grâce à html5 vous pouvez storez le data local sur votre browser et répliquer cuchdb-lucen c'est juste cuchdb-lucen c'est tout le futur de cuchdb-lucen il y aura un management de permission c'était récentement committé dans le train ce qui s'adresse c'est d'authentiquer PairDB vous pouvez protéger l'aliment et lire et chercher PairDatabase native clustering c'est surement utilisé la solution cloud c'est un autre company qui a créé leurs services c'est un jiga cluster basé sur un concept dynamo il fonctionne comme React ou Cassandra c'est le même système de réplication et est basé sur cuchdb-lucen improvement en cuchdb-lucen c'est un framework pour le service pour traverscript en server-sites on veut ajouter cuchdb-lucen plus d'improvement en cuchdb-lucen on veut assurer qu'on est fully cuchdb-native pour envoyer le bon message pour vous à plus, c'est le cuchdb-lucen il y a des livres qui sont disponibles cuchdb-lucen cuchdb.fr cuchdb.fr cuchdb-lucen cuchdb-lucen question sorry je ne sais pas si vous comprenez le second bien, la réplication fonctionne en bon sens si il y a des conflits je ne l'entends pas je ne l'entends pas je ne l'entends pas maintenant, on ne peut pas réplicer on ne peut pas il n'y a pas de réplication il y a dans le champ JPE il y a déjà un filtre et le réplicateur a utilisé le change donc il s'explique peut-être pas pour le next release je pense mais définitivement pour le 1.0 qui va arriver bientôt oui oui il y a une révision chaque document a une révision qui est utilisée pour la réplication il n'y a pas de il n'y a pas de il n'y a pas de documents et quand vous réplicer il n'y a pas de il n'y a pas d'histoire c'est-à-dire qu'on va essayer de trouver le dernier et si il y a un problème si le target est de l'autre côté de votre source il va juste faire des conflits et faire que l'application gère le conflit oui si vous gardez votre laptop en ligne en deux mois il y a des conflits mais c'est votre application parce que vous ne pourrez pas faire des conflits auto-conflits merci