1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> DAVID MALAN: Très bien, nous sommes de retour. 3 00:00:01,560 --> 00:00:03,830 Donc, pour l'excitante conclusion, notre dernière section 4 00:00:03,830 --> 00:00:06,900 sur la programmation web, que je pensé que nous utilisons comme un terme général 5 00:00:06,900 --> 00:00:08,440 pour capturer quelques sujets restants. 6 00:00:08,440 --> 00:00:10,390 Ainsi, à la fin de la jour, nous allons effectivement faire 7 00:00:10,390 --> 00:00:14,830 un peu de mains sur la programmation web avec un langage appelé JavaScript. 8 00:00:14,830 --> 00:00:17,510 Et je pense que nous allons jeter un coup d'oeil à quelque chose lié à des images 9 00:00:17,510 --> 00:00:20,040 et découvrir quelque chose secrètement caché dans une image, 10 00:00:20,040 --> 00:00:23,230 et aussi jeter un oeil à la Google Maps API, programmation d'application 11 00:00:23,230 --> 00:00:26,040 interface, comme quelque chose représentatif du type de logiciels 12 00:00:26,040 --> 00:00:28,800 qui est de plus en plus et librement disponibles aujourd'hui. 13 00:00:28,800 --> 00:00:32,029 >> Mais pourquoi ne pas prendre un coup d'oeil à un ingrédient dans ce monde 14 00:00:32,029 --> 00:00:34,070 que nous avons été en sorte de en prenant pour acquis existe 15 00:00:34,070 --> 00:00:36,720 pendant un certain temps, une base de données. 16 00:00:36,720 --> 00:00:39,150 Pour la dernière journée et demi, nous avons supposé 17 00:00:39,150 --> 00:00:42,910 que nous avons accès à une base de données, mais ce problème ne résout une base de données? 18 00:00:42,910 --> 00:00:45,540 Que fait-il pour nous? 19 00:00:45,540 --> 00:00:47,030 Qu'Est-ce que c'est? 20 00:00:47,030 --> 00:00:48,679 >> AUDIENCE: [Inaudible] 21 00:00:48,679 --> 00:00:51,720 DAVID MALAN: Contient toutes les informations, OK, et quels types d'informations 22 00:00:51,720 --> 00:00:53,186 pourriez-vous mettre? 23 00:00:53,186 --> 00:00:54,590 >> AUDIENCE: [Inaudible] 24 00:00:54,590 --> 00:00:56,450 >> DAVID MALAN: Toute information vous mettez dedans, vous récupérerez. 25 00:00:56,450 --> 00:00:57,070 C'est vrai. 26 00:00:57,070 --> 00:01:01,900 Et sur un site web ou sur le Web typique demande, quels types d'informations, 27 00:01:01,900 --> 00:01:03,385 précisément, pourriez-vous mettre en? 28 00:01:03,385 --> 00:01:04,260 AUDIENCE: [Inaudible] 29 00:01:04,260 --> 00:01:05,051 DAVID MALAN: Utilisateurs. 30 00:01:05,051 --> 00:01:07,000 Alors qu'est-ce qu'un utilisateur? 31 00:01:07,000 --> 00:01:09,765 >> AUDIENCE: [Inaudible] 32 00:01:09,765 --> 00:01:11,640 DAVID MALAN: OK, enregistré utilisateur du site. 33 00:01:11,640 --> 00:01:15,100 Et qu'est-ce que cela signifie pour l'information des utilisateurs du magasin? 34 00:01:15,100 --> 00:01:17,260 Qu'est-ce que compose un utilisateur? 35 00:01:17,260 --> 00:01:18,331 Un utilisateur a quoi? 36 00:01:18,331 --> 00:01:19,206 AUDIENCE: [Inaudible] 37 00:01:19,206 --> 00:01:21,040 DAVID MALAN: Ouais, personnel données, et moi comme ça. 38 00:01:21,040 --> 00:01:21,970 Soyons plus précis. 39 00:01:21,970 --> 00:01:25,275 Ainsi, un utilisateur dispose typiquement d'un nom, quoi d'autre pourrait avoir un utilisateur? 40 00:01:25,275 --> 00:01:26,150 AUDIENCE: [Inaudible] 41 00:01:26,150 --> 00:01:29,130 DAVID MALAN: Une OK addr--, donc le prénom, le nom. 42 00:01:29,130 --> 00:01:29,630 C'est bon. 43 00:01:29,630 --> 00:01:31,463 En fait, nous allons fixer que, parce que ça va 44 00:01:31,463 --> 00:01:35,010 d'ouvrir une opportunité pour discussion, encore, plus loin. 45 00:01:35,010 --> 00:01:39,090 Prénom, nom, sexe. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 Un ID de quelque sorte. 48 00:01:43,481 --> 00:01:43,980 Quoi d'autre? 49 00:01:43,980 --> 00:01:45,438 J'ai entendu d'autre avant que quelque chose, aussi. 50 00:01:45,438 --> 00:01:51,600 Un e-mail, adresse postale. 51 00:01:51,600 --> 00:01:58,170 >> Donc, nous allons faire une pause là et maintenant considérer pas ce que nous stocker dans la base de données, 52 00:01:58,170 --> 00:02:01,980 mais-- et pas pourquoi, car il est peut-être évident qu'une fois que vous enregistrez un utilisateur, 53 00:02:01,980 --> 00:02:03,730 vous voulez les retenir pour un certain temps. 54 00:02:03,730 --> 00:02:05,480 Vous ne voulez pas qu'il juste être stocké dans la mémoire RAM 55 00:02:05,480 --> 00:02:08,690 et être forgotten-- donc concentrons-nous sur le comment. 56 00:02:08,690 --> 00:02:11,700 >> Il se trouve que, dans le monde des bases de données, 57 00:02:11,700 --> 00:02:14,410 il y a au moins deux types de ces jours. 58 00:02:14,410 --> 00:02:20,010 Quelque chose a appelé une base de données SQL, Structured Query Language, 59 00:02:20,010 --> 00:02:24,770 ou, cutely nommé, NoSQL, qui ne sont pas SQL. 60 00:02:24,770 --> 00:02:26,980 Et le second est un exemple de ce qui pourrait 61 00:02:26,980 --> 00:02:30,660 être appelé orientée objet, ou un magasin d'objets, une base de données 62 00:02:30,660 --> 00:02:36,010 qui stocke des objets, et non, excuse moi, comme nous le verrons bientôt, lignes. 63 00:02:36,010 --> 00:02:41,800 >> Donc, nous allons concentrer pour un instant sur le premier d'entre eux, à savoir un SQL 64 00:02:41,800 --> 00:02:46,850 base de données, si seulement parce qu'il est déjà si familier, à tout le monde 65 00:02:46,850 --> 00:02:51,070 qui a utilisé Excel ou Feuilles Google ou d'Apple 66 00:02:51,070 --> 00:02:53,740 Numbers ou toute norme tableur, 67 00:02:53,740 --> 00:02:56,040 ou, de manière équivalente, ou plus sophisticatedly, 68 00:02:56,040 --> 00:02:58,610 quelque chose comme Microsoft Access ou Oracle 69 00:02:58,610 --> 00:03:03,890 ou MySQL ou PostgreSQL, qui sont les noms de produits pour les implémentations 70 00:03:03,890 --> 00:03:04,865 de l'idée suivante. 71 00:03:04,865 --> 00:03:10,350 >> Une base de données relationnelle est simplement ce qui a des rangées et des colonnes. 72 00:03:10,350 --> 00:03:12,850 Et par des rangées et des colonnes, Je veux dire littéralement quelque chose 73 00:03:12,850 --> 00:03:21,860 comme celui-ci, de sorte que nous puissions avoir la le nom d'un champ et son type ici. 74 00:03:21,860 --> 00:03:25,800 Et en fait, laissez-moi commencer dès maintenant à la carte ci. 75 00:03:25,800 --> 00:03:29,420 Donc, en fait, je ne sais pas pourquoi je dessinais un tableau distinct. 76 00:03:29,420 --> 00:03:30,780 Gardons cette simple. 77 00:03:30,780 --> 00:03:34,830 >> Nous avons ici la débuts de notre table, où 78 00:03:34,830 --> 00:03:40,150 ceci est le nom du champ ce qui est le type de données, 79 00:03:40,150 --> 00:03:41,660 et par type, je veux dire ce qui suit. 80 00:03:41,660 --> 00:03:45,510 Est-il un certain nombre, est-il une chaîne, une courte chaîne comme un mot, 81 00:03:45,510 --> 00:03:49,340 est-il un paragraphe, est-il des données binaires, comme une image? 82 00:03:49,340 --> 00:03:51,980 Et disons simplement taquiner cette à part pour un instant. 83 00:03:51,980 --> 00:03:57,575 Donc, prénom, numéro, ficelle, gros morceau de text-- 84 00:03:57,575 --> 00:03:58,450 AUDIENCE: [Inaudible] 85 00:03:58,450 --> 00:03:59,616 DAVID MALAN: Oui, chaîne. 86 00:03:59,616 --> 00:04:04,744 Et dans un contexte de base de données, nous allons généralement appeler ce domaine char. 87 00:04:04,744 --> 00:04:07,660 Je vais juste dire omble pour le moment mais nous sommes va affiner dans un instant. 88 00:04:07,660 --> 00:04:09,180 champ Caractère. 89 00:04:09,180 --> 00:04:11,365 Nom de famille est probablement le même. 90 00:04:11,365 --> 00:04:11,865 Le genre? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Homme ou femme, de sorte qu'il pourrait être un champ char. 93 00:04:18,310 --> 00:04:21,380 Il pourrait être soit entre guillemets «Mâle» ou entre guillemets "femelle" 94 00:04:21,380 --> 00:04:23,650 ou il peut être m ou f. 95 00:04:23,650 --> 00:04:26,540 Si vous voulez être plus inclusif, vous pourriez avoir besoin d'une troisième valeur 96 00:04:26,540 --> 00:04:28,640 ou une sorte d'autre domaine tout à fait. 97 00:04:28,640 --> 00:04:31,350 Et pour que vous puissiez utiliser vrai faux. 98 00:04:31,350 --> 00:04:35,036 Le champ pourrait être appelé mâle, et alors vous pourriez dire vrai ou faux. 99 00:04:35,036 --> 00:04:38,160 Mais cela ne rend pas nécessairement toutes les informations que vous voudrez peut-être. 100 00:04:38,160 --> 00:04:41,118 >> Donc, il se trouve qu'il ya un autre type de champ qui pourrait être utile ici 101 00:04:41,118 --> 00:04:46,040 dans une base de données classique, appelée enum, où il est un champ de caractères, 102 00:04:46,040 --> 00:04:50,480 mais vous, le concepteur, obtenez énumérer les valeurs possibles, 103 00:04:50,480 --> 00:04:54,630 comme entre guillemets "mâle", citation, unquote «femelle» et ainsi de suite. 104 00:04:54,630 --> 00:04:57,620 Donc, que quelle que soit la valeur est dans votre base de données, 105 00:04:57,620 --> 00:05:00,670 est en effet basée sur des caractères, mais elle doit être l'une de ces valeurs. 106 00:05:00,670 --> 00:05:03,520 Nous ne voudrions probablement pas un enum pour prénom ou nom. 107 00:05:03,520 --> 00:05:05,630 Sinon, nous aurions d'énumérer, comme son nom 108 00:05:05,630 --> 00:05:09,570 dérive de, littéralement chaque possible prénom et nom. 109 00:05:09,570 --> 00:05:13,960 >> OK, donc ce devrait ID un ID être? 110 00:05:13,960 --> 00:05:15,200 Oui, peut-être un certain nombre. 111 00:05:15,200 --> 00:05:17,870 Donc, nous allons coller avec que pour l'instant, le nombre. 112 00:05:17,870 --> 00:05:22,010 Et par numéro, le numéro est un peu trop large maintenant. 113 00:05:22,010 --> 00:05:23,900 Pour la fin de la seconde jour, je me sens comme nous 114 00:05:23,900 --> 00:05:25,280 devrait être un peu plus précis. 115 00:05:25,280 --> 00:05:29,280 Nombre pourrait signifier que, il pourrait être quelque chose comme 1.236. 116 00:05:29,280 --> 00:05:31,500 Et c'est probablement pas ce que nous entendons par un ID. 117 00:05:31,500 --> 00:05:34,635 Qu'entendons-nous probablement par un ID? 118 00:05:34,635 --> 00:05:36,382 >> AUDIENCE: [Inaudible] 119 00:05:36,382 --> 00:05:38,590 DAVID MALAN: Oh, OK, peut-être il est même pas un numéro. 120 00:05:38,590 --> 00:05:42,840 Peut-être qu'il est en fait un identifiant unique qui est une chaîne, comme un nom d'utilisateur. 121 00:05:42,840 --> 00:05:44,580 Donc, absolument, pourrait être. 122 00:05:44,580 --> 00:05:46,730 Je pense que quelqu'un probablement signifié numérique, cependant. 123 00:05:46,730 --> 00:05:48,460 Donc, nous allons rester avec cela. 124 00:05:48,460 --> 00:05:49,320 Quel genre de numéro? 125 00:05:49,320 --> 00:05:51,960 Qu'est-ce qu'un plus precise-- un nombre entier. 126 00:05:51,960 --> 00:05:56,710 Donc, un nombre comme 0, 1, 2, 3, de sorte que nous appellerons un nombre entier. 127 00:05:56,710 --> 00:05:58,909 Et même alors, je pouvais être tatillon, il est 128 00:05:58,909 --> 00:06:00,700 pas vraiment juste un entier général que vous voulez. 129 00:06:00,700 --> 00:06:04,340 Vous ne voulez probablement pas de valeurs négatives, juste parce que, il se sent juste bizarre. 130 00:06:04,340 --> 00:06:06,070 Vous voulez probablement des nombres entiers positifs. 131 00:06:06,070 --> 00:06:07,920 Ainsi, vous pouvez également exprimer que, dans une base de données, 132 00:06:07,920 --> 00:06:09,450 mais pour l'instant, nous dirons entier. 133 00:06:09,450 --> 00:06:10,650 >> Email? 134 00:06:10,650 --> 00:06:13,550 Ceci est probablement just-- quoi? 135 00:06:13,550 --> 00:06:14,460 >> AUDIENCE: [Inaudible] 136 00:06:14,460 --> 00:06:16,980 >> DAVID MALAN: Il est un e-mail, mais c'est des caractères, non? 137 00:06:16,980 --> 00:06:19,813 Il a juste un personnage génial comme un symbole «à» ou autre chose, 138 00:06:19,813 --> 00:06:21,580 mais il est encore un champ de caractères. 139 00:06:21,580 --> 00:06:23,900 Et adresse postale? 140 00:06:23,900 --> 00:06:25,360 champ Caractère. 141 00:06:25,360 --> 00:06:31,400 Voilà donc un beau début, mais soyons un peu plus précis maintenant. 142 00:06:31,400 --> 00:06:34,540 >> Donc, il se trouve que, dans une base de données, vous avez souvent 143 00:06:34,540 --> 00:06:39,120 avoir le choix sur plus raffiné versions de ces choses. 144 00:06:39,120 --> 00:06:44,330 En effet, dans une base de données SQL typique, SQL, ou de façon plus générale, la base de données relationnelle, 145 00:06:44,330 --> 00:06:46,680 bases de données avec des rangées et les colonnes, vous avez souvent 146 00:06:46,680 --> 00:06:53,610 obtenir de préciser non seulement le type de field-- permettez-moi de faire quelques ici-- de chambre 147 00:06:53,610 --> 00:06:56,600 mais aussi la longueur. 148 00:06:56,600 --> 00:06:59,900 >> Alors combien de temps est un prénom? 149 00:06:59,900 --> 00:07:07,060 Je pense que, D-A-V-I-D. OK, je l'ai eu probablement juste offensé comme la moitié 150 00:07:07,060 --> 00:07:11,260 des gens dans la salle, à droite, étant donné que vos noms sont plus longs que cinq 151 00:07:11,260 --> 00:07:16,608 lettres, donc cinq semble un peu égoïste et naïf, donc ce qui est une meilleure valeur? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, tout droit, et je pense que nous sommes OK dans la chambre. 154 00:07:24,330 --> 00:07:26,254 13? 155 00:07:26,254 --> 00:07:27,541 30? 156 00:07:27,541 --> 00:07:29,540 Pourquoi dois-je prends pas le approche plus tôt lorsque nous 157 00:07:29,540 --> 00:07:31,081 parlaient des tableaux et de la mémoire? 158 00:07:31,081 --> 00:07:32,450 Pourquoi ne pas que je viens de dire comme 1000? 159 00:07:32,450 --> 00:07:35,260 le nom ne va être supérieure à 1000. 160 00:07:35,260 --> 00:07:36,706 Repousser. 161 00:07:36,706 --> 00:07:38,005 >> AUDIENCE: [Inaudible] 162 00:07:38,005 --> 00:07:40,130 DAVID MALAN: Oui, il est gaspillage, à droite, en particulier 163 00:07:40,130 --> 00:07:44,630 si la plupart des noms ne sont que cinq ou 10 ou 15 caractères, qui est très coûteux. 164 00:07:44,630 --> 00:07:45,810 Donc, vous savez quoi? 165 00:07:45,810 --> 00:07:48,020 C'est un peu une question difficile. 166 00:07:48,020 --> 00:07:51,721 Maintenant, nous pouvons certainement analyser English et les noms de toute autre langue 167 00:07:51,721 --> 00:07:54,470 et de comprendre, eh bien, quelle est la moyenne average-- n'a pas vraiment 168 00:07:54,470 --> 00:07:57,150 aider us-- ce qui est le max est probablement ce que nous voulons vraiment. 169 00:07:57,150 --> 00:07:59,920 Mais il se trouve que nous avons même un certain choix sur le type ici. 170 00:07:59,920 --> 00:08:03,400 >> Dans une base de données SQL typique, vous ont quelque chose appelé un champ omble 171 00:08:03,400 --> 00:08:07,505 et aussi un varchar, V-A-R, pour le champ char variable. 172 00:08:07,505 --> 00:08:08,630 Et la différence est la suivante. 173 00:08:08,630 --> 00:08:12,400 Un champ de char, vous le concepteur, doivent spécifier à l'avance 174 00:08:12,400 --> 00:08:14,900 la longueur exacte du champ. 175 00:08:14,900 --> 00:08:20,530 Alors peut-être le premier nom comme 20 se sent sorte de coffre-fort. 176 00:08:20,530 --> 00:08:23,950 Pourrait avoir à faire quelques googler à voir si cela suffit réellement sans danger. 177 00:08:23,950 --> 00:08:26,910 Il y a probablement un nom avec 21 caractères, mais pour l'instant, supposons 20 178 00:08:26,910 --> 00:08:27,620 est sans danger. 179 00:08:27,620 --> 00:08:30,070 >> Un champ char impliquerait dans une base de données que vous 180 00:08:30,070 --> 00:08:33,289 sont en utilisant 20 et toujours 20 caractères. 181 00:08:33,289 --> 00:08:37,419 Maintenant, si elle est juste D-A-V-I-D, 15 de ceux ne sont que va être des caractères blancs, 182 00:08:37,419 --> 00:08:40,450 mais vous êtes toujours en utilisant tous les 20 octets. 183 00:08:40,450 --> 00:08:46,302 Un champ varchar, en revanche, les moyens de chaîne doit être jusqu'à 20 caractères 184 00:08:46,302 --> 00:08:48,260 mais si elle est seulement cinq, vous allez seulement utiliser 185 00:08:48,260 --> 00:08:51,270 cinq, ou peut-être six pour un valeur spéciale à la fin, 186 00:08:51,270 --> 00:08:54,980 comme ça 0 nous avons discuté de ce que signifie la fin d'un caractère 187 00:08:54,980 --> 00:08:56,790 séquence dans la mémoire. 188 00:08:56,790 --> 00:08:59,950 >> Alors, quand pensez-vous vous pouvez choisir l'omble 189 00:08:59,950 --> 00:09:05,240 par rapport à varchar, étant donné que le commerce-off? 190 00:09:05,240 --> 00:09:09,321 Char utilise que de nombreux caractères, varchar utilise pas plus que de nombreux personnages. 191 00:09:09,321 --> 00:09:10,196 AUDIENCE: [Inaudible] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 DAVID MALAN: OK, lorsque vous connaissez la longueur de la chaîne assez convaincante 194 00:09:16,900 --> 00:09:19,316 d'utiliser simplement char, parce que si vous le savez, il suffit de mettre le bas. 195 00:09:19,316 --> 00:09:23,390 Et peut-être cela est vrai pour un zip code, aux États-Unis, au moins, 02138, 196 00:09:23,390 --> 00:09:26,660 il va toujours être de cinq caractères jusqu'à ce que vous ajoutez le tableau de bord quatre. 197 00:09:26,660 --> 00:09:29,750 Mais vous pourriez avoir quelques valeurs pour que vous connaissez toujours la longueur. 198 00:09:29,750 --> 00:09:32,310 Ou peut-être des symboles de l'Etat, comme NY pour New York, 199 00:09:32,310 --> 00:09:33,811 et MA pour le Massachusetts aux États-Unis. 200 00:09:33,811 --> 00:09:36,560 Peut-être que vous n'avez certaines situations où cela est tout à fait raisonnable, 201 00:09:36,560 --> 00:09:39,520 mais par cette logique, pourquoi nous avons même overthinking cela? 202 00:09:39,520 --> 00:09:41,800 Pourquoi utilisons-nous pas seulement varchar puis nous allons juste 203 00:09:41,800 --> 00:09:46,730 toujours utiliser deux caractères de toute façon, ou toujours utiliser cinq caractères de toute façon? 204 00:09:46,730 --> 00:09:50,300 Pourquoi ne pas simplement enregistrer varchar pour tout, par cette logique? 205 00:09:50,300 --> 00:09:51,677 Il doit y avoir un hic. 206 00:09:51,677 --> 00:09:52,552 AUDIENCE: [Inaudible] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 DAVID MALAN: Could écrire quelque chose de mal. 209 00:09:56,660 --> 00:09:58,090 Donc, ce qui est vrai. 210 00:09:58,090 --> 00:10:01,030 Mais même alors, ils ne peuvent pas utiliser plus de mémoire que j'allouer. 211 00:10:01,030 --> 00:10:03,340 J'ai encore la finale dire sur la longueur, 212 00:10:03,340 --> 00:10:06,780 de sorte qu'ils ne puissent pas faire cette erreur, mais une bonne pensée. 213 00:10:06,780 --> 00:10:10,510 Il est plus subtil, mais il est très lié à notre discussion, en fait, de tableaux 214 00:10:10,510 --> 00:10:12,390 et listes liées plus tôt. 215 00:10:12,390 --> 00:10:16,290 >> Il se trouve que la base de données si on sait que toutes les valeurs sont 216 00:10:16,290 --> 00:10:19,250 d'une longueur fixe, même si certaines de ces valeurs sont vides, 217 00:10:19,250 --> 00:10:22,484 sorte d'esthétique vierge, D-A-V-I-D et 15 blancs, 218 00:10:22,484 --> 00:10:24,650 il se trouve que si chaque champ est la même longueur, 219 00:10:24,650 --> 00:10:28,670 un peu comme un tableau avait tous ses trucs dos à dos à dos à dos de telle sorte que 220 00:10:28,670 --> 00:10:33,480 vous pourriez juste plus 1 pour se rendre à la prochaine valeur, même idée dans une table de base de données. 221 00:10:33,480 --> 00:10:37,550 Si tout votre personnage les chaînes ont la même longueur, 222 00:10:37,550 --> 00:10:39,390 vous avez ce qu'on appelle l'accès aléatoire. 223 00:10:39,390 --> 00:10:41,850 Si toutes les chaînes sont des longueur 20, vous faites non seulement 224 00:10:41,850 --> 00:10:45,230 faire plus 1 vous faites juste, plus 20, plus 20, plus 20, plus 20, 225 00:10:45,230 --> 00:10:48,775 et vous pouvez très rapidement faire défiler ou recherche à travers toutes vos données. 226 00:10:48,775 --> 00:10:54,420 >> Un champ de la variable de carbonisation, au contraire, n'a pas toujours 20 caractères. 227 00:10:54,420 --> 00:10:58,000 Il pourrait avoir 20 puis 15, puis 19, puis 10, 228 00:10:58,000 --> 00:11:00,720 et donc si vous voulez rechercher à travers elle, vous ne pouvez pas aveuglément 229 00:11:00,720 --> 00:11:03,050 ajouter 20 octets pour se rendre à la prochaine. 230 00:11:03,050 --> 00:11:07,280 Vous avez littéralement à parcourir parce que le bord de la structure de données, 231 00:11:07,280 --> 00:11:08,340 si vous voulez, est en lambeaux. 232 00:11:08,340 --> 00:11:11,480 Ce genre de va et basée sur la longueur réelle de la corde. 233 00:11:11,480 --> 00:11:14,460 Donc, quand vous savez que la longueur, comme Kareem dit, utiliser un champ de char, 234 00:11:14,460 --> 00:11:16,460 parce que vous gagnez l'efficacité d'être 235 00:11:16,460 --> 00:11:19,170 capable de rechercher à travers elle plus rapide lorsque vous êtes à la recherche pour les données, 236 00:11:19,170 --> 00:11:20,550 sinon utiliser une variable. 237 00:11:20,550 --> 00:11:24,450 >> Malheureusement, je ne bonne réponse combien de temps le nom devrait être, 238 00:11:24,450 --> 00:11:26,360 mais pour quelque chose comme un nom, je dirais 239 00:11:26,360 --> 00:11:28,470 varchar est commun parce que ça ne va pas 240 00:11:28,470 --> 00:11:30,430 être une longueur fixe pour tout le monde. 241 00:11:30,430 --> 00:11:33,650 20, je ne sais pas, 20 sent un peu serré. 242 00:11:33,650 --> 00:11:36,460 Disons simplement que 50, 50. 243 00:11:36,460 --> 00:11:39,210 Il n'a pas vraiment vous coûte que beaucoup plus à dire 50 au lieu de 40, 244 00:11:39,210 --> 00:11:41,260 mais à un moment donné, vous avez besoin pour faire un appel du jugement. 245 00:11:41,260 --> 00:11:43,090 >> Très fréquent, franchement, pour [? historique ?] 246 00:11:43,090 --> 00:11:47,670 raisons, même si elle est excessive, est-à-dire 255, parce que il y a quelque temps, 247 00:11:47,670 --> 00:11:51,440 dans les systèmes de bases de données populaires, comme MySQL, un outil gratuit open source 248 00:11:51,440 --> 00:11:53,790 que beaucoup de sociétés comme même Facebook utilisé, 249 00:11:53,790 --> 00:11:56,654 ce fut le défaut maximal afin que les gens juste allé avec elle. 250 00:11:56,654 --> 00:11:59,070 Donc pas déraisonnable, mais nous allons utiliser un peu plus d'intuition 251 00:11:59,070 --> 00:12:02,970 et dire, que 50, qui est probablement un peu excessive. 252 00:12:02,970 --> 00:12:05,720 >> Sexe, je fais comme enum, et ainsi nous pouvons donc 253 00:12:05,720 --> 00:12:08,760 énumérer mâle ou femelle, ou peut-être plus efficace, 254 00:12:08,760 --> 00:12:13,420 m ou f ou d'un autre symbologie, mais enum se sent comme un bon choix là-bas. 255 00:12:13,420 --> 00:12:16,740 Pour être clair, le sexe pourrait juste être un varchar, 256 00:12:16,740 --> 00:12:19,090 et nous pourrions tout simplement d'accord que des gens sympathiques, 257 00:12:19,090 --> 00:12:21,010 de toujours mettre les mêmes valeurs là. 258 00:12:21,010 --> 00:12:22,720 Homme ou femme ou quoi. 259 00:12:22,720 --> 00:12:27,800 >> Mais le problème est donc que nous pourrions faire une erreur, comme [Inaudible] proposé 260 00:12:27,800 --> 00:12:29,140 précédemment dans un contexte différent. 261 00:12:29,140 --> 00:12:32,780 Si nous faisons une erreur, nous pourrions obtenir des valeurs incorrectes dans notre base de données. 262 00:12:32,780 --> 00:12:36,320 Alors qu'est-ce qui est bien sur les bases de données comme Oracle et MySQL et d'autres, 263 00:12:36,320 --> 00:12:39,280 est que vous avez cette dernière couche de défense où 264 00:12:39,280 --> 00:12:43,010 votre administrateur DBA, base de données, celui qui conçoit ce tableau comme nous 265 00:12:43,010 --> 00:12:46,440 sont verbalement, pourrait mettre en place un enum qui 266 00:12:46,440 --> 00:12:51,250 protège contre ce en spécifiant mâle, femelle, et donc personne ne 267 00:12:51,250 --> 00:12:54,230 d'autre aucun programmeur peut accidentellement insérer toute autre valeur. 268 00:12:54,230 --> 00:12:55,480 Donc, ce serait une bonne chose. 269 00:12:55,480 --> 00:12:56,660 Ceci est une caractéristique. 270 00:12:56,660 --> 00:13:00,760 >> Donc, une pièce d'identité, en supposant un identifiant numérique, il devrait probablement être un entier positif. 271 00:13:00,760 --> 00:13:04,380 Et nous ont parfois occasion de discuter longuement. 272 00:13:04,380 --> 00:13:06,830 Vous ne voudriez pas généralement spécifier un numéro ici, 273 00:13:06,830 --> 00:13:11,310 vous à la place de spécifier ceci est un int, ou un grand int, 274 00:13:11,310 --> 00:13:12,980 car ils sont généralement appelés. 275 00:13:12,980 --> 00:13:18,840 Mais en général, un nombre entier serait, disons, 4 octets. 276 00:13:18,840 --> 00:13:23,694 Et si elle est de 4 octets, qui est le nombre de bits? 277 00:13:23,694 --> 00:13:24,630 >> AUDIENCE: [Inaudible] 278 00:13:24,630 --> 00:13:26,610 >> DAVID MALAN: 32 bits. 279 00:13:26,610 --> 00:13:30,270 Donc, le nombre d'utilisateurs que nous pouvons avoir dans notre base de données si elles ont tous un ID 280 00:13:30,270 --> 00:13:33,320 et cet ID doit être unique? 281 00:13:33,320 --> 00:13:36,780 32 bits signifie que nous avons des motifs d'un, deux, trois, quatre, five-- 282 00:13:36,780 --> 00:13:41,000 alors comment de nombreux modèles différents de zéros et ceux peuvent vous s'il y a 32? 283 00:13:41,000 --> 00:13:43,235 C'est la même chose que demandant ce qui est de deux à 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 Il est un grand nombre qui Je ne peux pas tout à fait obtenir le droit, 286 00:13:48,430 --> 00:13:50,270 mais je sais qu'il est à peu près 4 milliards. 287 00:13:50,270 --> 00:13:53,970 Donc, cela signifie que votre table de base de données peut ont quatre milliards d'utilisateurs et voilà. 288 00:13:53,970 --> 00:13:56,410 >> Donc, ceci est un intéressant conception implication. 289 00:13:56,410 --> 00:14:00,840 Un nombre décent d'entreprises ont décidé, peut-être pas tant 290 00:14:00,840 --> 00:14:04,860 pour leur table d'utilisateurs, parce qu'ayant 4 milliards d'utilisateurs est un problème rare. 291 00:14:04,860 --> 00:14:08,410 Ceci est une sorte de style Facebook problème, pas un problème de société typique. 292 00:14:08,410 --> 00:14:12,670 Mais peut-être si vous avez des journaux de transactions ou une sorte de données constamment 293 00:14:12,670 --> 00:14:15,610 les écrit dans votre base de données qu'absolument pourrait avoir des milliards 294 00:14:15,610 --> 00:14:18,900 et des milliards de lignes et vous utilisez un entier pour elle, 295 00:14:18,900 --> 00:14:22,750 ce qui va se passer dès vous obtenez à la ligne numéro 4 milliards 296 00:14:22,750 --> 00:14:26,210 et puis vous essayez d'insérer le 4000000000e et 1, pour ainsi dire? 297 00:14:26,210 --> 00:14:29,610 Je simplifie les numéros un peu. 298 00:14:29,610 --> 00:14:33,740 >> Vous pouvez réduire, je te veux dire avoir à gérer en quelque sorte. 299 00:14:33,740 --> 00:14:37,910 Et quel ordinateur serait généralement faire, penser même à partir de ce matin, 300 00:14:37,910 --> 00:14:42,430 si vous avez une valeur de 4 bits comme 1, 1, 1, 1, qui, 301 00:14:42,430 --> 00:14:44,920 juste pour attacher le matin ensemble pour l'après-midi, ce qui 302 00:14:44,920 --> 00:14:48,369 est-ce nombre représente en binaire? 303 00:14:48,369 --> 00:14:49,410 OK, nous allons faire plus facilement. 304 00:14:49,410 --> 00:14:53,310 Qu'est-ce que ce nombre représentent en binaire? 305 00:14:53,310 --> 00:14:56,794 OK, nous allons faire plus facilement, ce qui ce que cela représente en binaire? 306 00:14:56,794 --> 00:14:57,460 AUDIENCE: Trois. 307 00:14:57,460 --> 00:14:59,670 DAVID MALAN: Trois, parce nous avons ceux column-- 308 00:14:59,670 --> 00:15:00,450 [RIRE] 309 00:15:00,450 --> 00:15:01,350 Ouf! 310 00:15:01,350 --> 00:15:03,980 Nous avons eu la colonne des unités et la colonne de deux. 311 00:15:03,980 --> 00:15:07,250 Supposons donc que, en effet, notre [? infield?] étaient pas 32 bits, 312 00:15:07,250 --> 00:15:13,440 mais ce sont deux bits, nous pouvons compter du numéro 0, 1, 2, 3 utilisateur, 313 00:15:13,440 --> 00:15:18,040 et nous sommes en quelque sorte retour à l'utilisateur 00 à nouveau. 314 00:15:18,040 --> 00:15:19,739 Donc, voilà ce qui arrive généralement. 315 00:15:19,739 --> 00:15:22,780 Si vous avez déjà entendu le expression-- probablement pas, mais si vous have-- 316 00:15:22,780 --> 00:15:26,500 débordement d'entier, où vous garder retournement tous vos morceaux 317 00:15:26,500 --> 00:15:29,640 être les plus grandes valeurs possibles, et puis vous êtes hors de bits, 318 00:15:29,640 --> 00:15:30,850 ce qui serait généralement arriver? 319 00:15:30,850 --> 00:15:32,280 Pourquoi dis-je 00? 320 00:15:32,280 --> 00:15:33,220 Eh bien, cela est trois. 321 00:15:33,220 --> 00:15:34,230 Comment puis-je représente 4? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Comment puis-je représente la pour le numéro 4 en binaire? 324 00:15:38,915 --> 00:15:39,790 AUDIENCE: [Inaudible] 325 00:15:39,790 --> 00:15:41,780 DAVID MALAN: One-- ouais, ne pas dire 100 en soi, 326 00:15:41,780 --> 00:15:44,190 parce qu'il a le mauvais connotation, mais 1-0-0. 327 00:15:44,190 --> 00:15:48,920 Donc, ce nombre 1-0-0 est en effet correct, mais si vous avez seulement deux bits, 328 00:15:48,920 --> 00:15:50,820 qu'est-ce que vous avez vraiment fait? 329 00:15:50,820 --> 00:15:53,219 Vous avez roulé sur 00. 330 00:15:53,219 --> 00:15:54,760 Et en effet, voilà ce qui se passerait. 331 00:15:54,760 --> 00:15:56,884 En fait, vous pouvez penser sur cet aspect plus familièrement. 332 00:15:56,884 --> 00:15:59,350 Si vous vous souvenez, ce qui, il y a 16 ans, le monde 333 00:15:59,350 --> 00:16:03,380 était censé prendre fin lorsque le problème Y2K est arrivé. 334 00:16:03,380 --> 00:16:04,330 Pourquoi? 335 00:16:04,330 --> 00:16:08,170 Eh bien la plupart des ordinateurs, pour des décisions raisonnables, 336 00:16:08,170 --> 00:16:15,320 ont été le stockage des numéros comme le 1975 ou l'année 1999 337 00:16:15,320 --> 00:16:19,010 en utilisant simplement deux chiffres dans la mémoire de l'ordinateur. 338 00:16:19,010 --> 00:16:21,950 Alors bien sûr, ce qui se passe quand vous arrivez à l'an 2000, 339 00:16:21,950 --> 00:16:25,790 vous allez à cela, ou plutôt, oui. 340 00:16:25,790 --> 00:16:30,120 Donc, vous allez à l'an 2000, mais si vous êtes seulement en utilisant deux chiffres, il regarde 341 00:16:30,120 --> 00:16:32,660 comme l'année 00 et de sorte que vous avez roulé sur. 342 00:16:32,660 --> 00:16:36,820 Et voilà pourquoi beaucoup de systèmes nécessaire pour être mis à jour à l'époque. 343 00:16:36,820 --> 00:16:42,500 >> Donc, avec cela dit, des sociétés comme Facebook courir contre cela. 344 00:16:42,500 --> 00:16:46,147 Donc, la seule façon de gérer la la situation, franchement, est d'anticiper. 345 00:16:46,147 --> 00:16:47,980 Ou la manière la plus propre à gérer cette situation 346 00:16:47,980 --> 00:16:50,330 est d'anticiper afin de ne pas avoir à faire des changements plus tard. 347 00:16:50,330 --> 00:16:51,970 Ainsi, au lieu de 8 octets, vous savez quoi? 348 00:16:51,970 --> 00:16:54,261 Je vais être avant-gardiste ici, même si elle est 349 00:16:54,261 --> 00:16:56,760 un peu optimiste nous allons avoir 4 milliards 350 00:16:56,760 --> 00:16:58,850 et 1 utilisateurs sur notre site Web. 351 00:16:58,850 --> 00:17:01,790 Mais nous allons simplement utiliser 8 octets, ou 64 bits, ce qui serait généralement 352 00:17:01,790 --> 00:17:05,640 appelé un grand entier, très technique. 353 00:17:05,640 --> 00:17:10,280 Et cela signifie que vous pouvez avoir encore plus de chiffres dans votre numéro. 354 00:17:10,280 --> 00:17:12,599 Mais ceci est une importante décision de conception, 355 00:17:12,599 --> 00:17:16,400 parce que si vous choisissez un nombre qui a trop peu de bits d'expressivité 356 00:17:16,400 --> 00:17:19,089 vous pouvez réellement créer un bug dans votre logiciel. 357 00:17:19,089 --> 00:17:21,750 >> Très bien, alors laissez Terminons avec email et adresse postale. 358 00:17:21,750 --> 00:17:26,369 Donc, email, combien de temps devrait une adresse e-mail soit? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Je ne sais vraiment pas, mais il est probablement quelque chose comme ça, 361 00:17:29,220 --> 00:17:32,261 parce que sinon on ne va vous écrire si elle est trop longue, de sorte que 50, 362 00:17:32,261 --> 00:17:33,360 allons avec elle pour le moment. 363 00:17:33,360 --> 00:17:35,770 Adresse postale, combien de temps devrait-il être? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 AUDIENCE: [Inaudible] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> DAVID MALAN: Il est pas juste un code postal, cependant. 368 00:17:43,890 --> 00:17:45,720 Adresse postale, j'ai entendu. 369 00:17:45,720 --> 00:17:50,720 Donc, cela ressemble à 1 Brattle Square, virgule, Cambridge Mass., virgule, 02138. 370 00:17:50,720 --> 00:17:53,860 Et en fait, permettez-moi de tirer un peu feuille ici. 371 00:17:53,860 --> 00:17:56,510 Cela se sent comme il est une occasion manquée. 372 00:17:56,510 --> 00:18:01,480 Si nous avons 1 Brattle Square, virgule, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 Je me sens comme nous pouvons faire mieux qu'un simple adresse postale. 374 00:18:04,510 --> 00:18:07,100 Pourquoi avons-nous exploser ce pas un peu? 375 00:18:07,100 --> 00:18:08,030 Que suis-je en venir? 376 00:18:08,030 --> 00:18:10,970 Que devrions-nous avoir la place pour nos lignes ici, peut-être? 377 00:18:10,970 --> 00:18:12,260 >> AUDIENCE: [Inaudible] 378 00:18:12,260 --> 00:18:17,579 >> DAVID MALAN: Oui, nous allons donc appeler street_number, 379 00:18:17,579 --> 00:18:20,620 et un trait de soulignement est juste une commune façon d'avoir ce qui ressemble à un espace, 380 00:18:20,620 --> 00:18:22,360 mais pas, en fait. 381 00:18:22,360 --> 00:18:26,240 Street, puis ville-- désolé? 382 00:18:26,240 --> 00:18:28,440 >> AUDIENCE: [Inaudible] 383 00:18:28,440 --> 00:18:29,690 DAVID MALAN: Nous pourrions faire cela. 384 00:18:29,690 --> 00:18:30,702 Ligne un, la deuxième ligne. 385 00:18:30,702 --> 00:18:32,410 Pourquoi ne pas nous conserverons simple pour l'instant, 386 00:18:32,410 --> 00:18:34,840 mais cela est tout à fait une décision acceptable. 387 00:18:34,840 --> 00:18:38,180 Et puis l'état, puis nous allons être un peu centré sur les US pour l'instant 388 00:18:38,180 --> 00:18:42,040 et juste faire code postal, juste parce que il va conduire à une erreur intéressante 389 00:18:42,040 --> 00:18:43,090 ou un problème ici. 390 00:18:43,090 --> 00:18:44,655 Donc, supposons que maintenant est notre adresse. 391 00:18:44,655 --> 00:18:47,280 Il est un peu plus ennuyeux que nous avons tous ces autres domaines, 392 00:18:47,280 --> 00:18:49,200 mais maintenant nous pouvons marquer les choses un peu mieux. 393 00:18:49,200 --> 00:18:53,210 >> Numéro Alors maintenant la rue probablement ne devrait pas être un char, devrait-il? 394 00:18:53,210 --> 00:18:54,835 Que devrait-il être? 395 00:18:54,835 --> 00:18:55,710 AUDIENCE: [Inaudible] 396 00:18:55,710 --> 00:18:57,835 DAVID MALAN: Peut-être, un certain nombre comme un entier à nouveau? 397 00:18:57,835 --> 00:19:00,170 Un grand nombre entier? 398 00:19:00,170 --> 00:19:02,170 Vous avez probablement ne vivez pas à 4 milliards de Main Street 399 00:19:02,170 --> 00:19:03,490 ou quelque chose de fou comme ça. 400 00:19:03,490 --> 00:19:06,850 Donc entier est probablement très bien, mais il a tout le monde 401 00:19:06,850 --> 00:19:13,880 jamais vécu à une adresse comme 1A Brattle Square, ou 1 et 1/2? 402 00:19:13,880 --> 00:19:17,030 Ces choses existent, malheureusement, même si vous ne l'avez pas vécu là-bas, 403 00:19:17,030 --> 00:19:21,240 il y a ces anomalies comme appartement 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 Donc, vous savez quoi, nous avons probablement ne devrait pas aller avec entier, 405 00:19:24,260 --> 00:19:27,440 sinon nous allons perdre quelques ventes. 406 00:19:27,440 --> 00:19:29,920 >> champ Char, peut-être? 407 00:19:29,920 --> 00:19:30,870 Je ne sais pas combien de temps. 408 00:19:30,870 --> 00:19:33,370 Il est probablement ne va pas être ce long, donc 10 ou quelque chose. 409 00:19:33,370 --> 00:19:34,950 Personne ne va à écrire un nombre plus, peut-être. 410 00:19:34,950 --> 00:19:37,070 Mais encore une fois, nous devrions probablement donner plus de pensée à ce sujet. 411 00:19:37,070 --> 00:19:39,900 Peut-être que google, faire des recherches, mais nous irons avec nos tripes pour le moment. 412 00:19:39,900 --> 00:19:44,565 Rues, char, 50, je ne sais pas. 413 00:19:44,565 --> 00:19:46,940 À un certain moment, personne ne va de l'écrire sur une enveloppe, 414 00:19:46,940 --> 00:19:49,350 aussi, donc il n'y a probablement certaines limites supérieures là-bas. 415 00:19:49,350 --> 00:19:54,200 Ville, même, bien sûr, de sorte carboniser 50. 416 00:19:54,200 --> 00:19:59,120 >> État, peut être centré sur les US pour l'instant. 417 00:19:59,120 --> 00:20:01,850 Ainsi, il pourrait être une liste, si gentil d'un appel de jugement, l'Etat. 418 00:20:01,850 --> 00:20:04,000 Il pourrait être comme deux caractères. 419 00:20:04,000 --> 00:20:06,140 Donc en fait, peut-être, je répétais l'omble. 420 00:20:06,140 --> 00:20:09,420 Je veux dire probablement varchar, seulement pour une certaine efficacité, 421 00:20:09,420 --> 00:20:12,240 mais nous y reviendrons cette décision dans un moment. 422 00:20:12,240 --> 00:20:16,150 Peut-être un caractère de longueur 2 pour l'état. 423 00:20:16,150 --> 00:20:20,670 Si aux États-Unis, ils ont, comme MA, Massachusetts, État de New York, New York, New Jersey, New 424 00:20:20,670 --> 00:20:22,100 Jersey, et ainsi de suite. 425 00:20:22,100 --> 00:20:23,630 Donc, il pourrait être fixé à ce sujet. 426 00:20:23,630 --> 00:20:25,900 DC pour Washington DC. 427 00:20:25,900 --> 00:20:29,915 >> Mais je pense que, Olivier, vous proposé une autre approche. 428 00:20:29,915 --> 00:20:30,790 AUDIENCE: [Inaudible] 429 00:20:30,790 --> 00:20:33,670 DAVID MALAN: Oui, il est donc un peu ennuyeux à taper, 430 00:20:33,670 --> 00:20:37,890 mais une énumération serait plus logique, car de cette façon, au moins aux États-Unis, 431 00:20:37,890 --> 00:20:41,320 vous pourriez énumérer, si fastidieusement, mais vous faites juste une fois dans votre base de données 432 00:20:41,320 --> 00:20:47,480 et ne jamais avoir à nouveau penser à elle, tous les 50 codes de deux caractères. 433 00:20:47,480 --> 00:20:48,660 J'aime enum. 434 00:20:48,660 --> 00:20:51,720 Restons avec ce là, parce que il sorte d'applique une plus grande rigueur. 435 00:20:51,720 --> 00:20:53,620 Et puis zip code? 436 00:20:53,620 --> 00:20:55,306 Je pense que Andrew a eu une pensée sur ce 437 00:20:55,306 --> 00:20:56,180 AUDIENCE: [Inaudible] 438 00:20:56,180 --> 00:20:57,240 DAVID MALAN: Oui, cinq ou neuf. 439 00:20:57,240 --> 00:20:58,323 Disons simplement rester simple. 440 00:20:58,323 --> 00:20:59,380 Il suffit de faire cinq pour le moment. 441 00:20:59,380 --> 00:21:03,070 Mais peut-être que je pourrais juste faire un entier, non? 442 00:21:03,070 --> 00:21:08,750 Je pourrais, mais vous savez quoi, je fait cette erreur une fois, dans un certain sens. 443 00:21:08,750 --> 00:21:13,110 Il y a des années, je suis la migration à partir Microsoft Outlook à Gmail, 444 00:21:13,110 --> 00:21:18,640 et Outlook a une façon d'exporter tous vos contacts sous forme de fichier Excel, 445 00:21:18,640 --> 00:21:21,280 un fichier CSV, séparés par des virgules fichier de valeurs. 446 00:21:21,280 --> 00:21:23,950 Et je fait l'erreur, je penser, de double-cliquant dessus, 447 00:21:23,950 --> 00:21:27,380 une fois que je téléchargé l'exportation, à assurez-vous qu'il regardait comme je m'y attendais. 448 00:21:27,380 --> 00:21:31,320 Je dois avoir frappé Enregistrer ou laisser auto-save coup ou quelque chose. 449 00:21:31,320 --> 00:21:35,100 Parce que quand je puis importé dans Gmail, tout fonctionnait. 450 00:21:35,100 --> 00:21:39,910 Mais pendant des années, jusqu'à ce jour, et Je l'ai fait cinq, il y a 10 ans, 451 00:21:39,910 --> 00:21:44,380 Je suis toujours à trouver des amis qui ont adresses qui ressemblent à ceci. 452 00:21:44,380 --> 00:21:45,700 Pourquoi? 453 00:21:45,700 --> 00:21:47,900 >> AUDIENCE: [Inaudible] 454 00:21:47,900 --> 00:21:50,650 >> DAVID MALAN: Il a fallu le 0, eh bien, plutôt, il 455 00:21:50,650 --> 00:21:53,810 a pris tout le code postal comme un certain nombre, et donc il est 456 00:21:53,810 --> 00:21:56,590 un 0 qui signifie il n'a pas de sens. 457 00:21:56,590 --> 00:21:59,470 Et 2138 semble être mon code postal. 458 00:21:59,470 --> 00:22:07,100 Et cela est, franchement, Excel ennuyeux fonction pour laquelle je pense que par défaut, 459 00:22:07,100 --> 00:22:10,980 même si elle est destinée à tout être du texte, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 décide, laissez-moi être utile, et oh, je ne vois que des chiffres. 461 00:22:13,780 --> 00:22:15,290 Nous allons les traiter comme des numéros. 462 00:22:15,290 --> 00:22:16,790 Et il tronque les zéros. 463 00:22:16,790 --> 00:22:19,165 >> Je jure devant Dieu, tous les deux mois, je trouve une adresse, 464 00:22:19,165 --> 00:22:22,300 et sur une sorte de trouble obsessionnel-compulsif, je reviens et ajouter le 0, même si je ne 465 00:22:22,300 --> 00:22:23,700 envoyer des gens de lettres ou de quoi que ce soit. 466 00:22:23,700 --> 00:22:25,510 Mais je suis encore trouver des restes de cela. 467 00:22:25,510 --> 00:22:28,820 Donc, c'est-à-dire, est-ce une bonne idée? 468 00:22:28,820 --> 00:22:31,610 OK, non, parce que tout le monde en Massachusetts, dans ce domaine, 469 00:22:31,610 --> 00:22:33,270 va avoir un o les conduisant. 470 00:22:33,270 --> 00:22:38,070 Allons donc avec comme char, probablement, cinq. 471 00:22:38,070 --> 00:22:41,450 >> Et ici, nous rendre compte pourrait utiliser une énumération et nous 472 00:22:41,450 --> 00:22:44,600 pourrait énumérer 10.000 codes postaux possibles, 473 00:22:44,600 --> 00:22:48,530 mais cela se sent comme il est probablement traverser une ligne de, comme, avantages. 474 00:22:48,530 --> 00:22:51,350 Si vous avez à l'entrée que beaucoup de données dans votre base de données 475 00:22:51,350 --> 00:22:52,940 pour protéger contre quelque chose. 476 00:22:52,940 --> 00:22:57,400 Donc, l'omble réalisé vous pouvez taper en H-E-L-L-O en tant que votre code postal, 477 00:22:57,400 --> 00:22:59,180 ce qui est évidemment pas numérique. 478 00:22:59,180 --> 00:23:01,680 Donc il n'y a aucun moyen, en une base de données classique, 479 00:23:01,680 --> 00:23:05,561 spécifier uniquement numérique et seulement cinq caractères, 480 00:23:05,561 --> 00:23:07,310 de sorte que nous allons avoir de le faire dans le code. 481 00:23:07,310 --> 00:23:11,100 Nous allons le faire en PHP ou Java ou quelle que soit la langue que nous sommes 482 00:23:11,100 --> 00:23:14,230 en utilisant sur le serveur pour appliquer ce genre de contrainte. 483 00:23:14,230 --> 00:23:14,860 >> Whoo! 484 00:23:14,860 --> 00:23:18,322 D'accord, donc des questions pour l'instant? 485 00:23:18,322 --> 00:23:19,780 Faisons une autre décision de conception. 486 00:23:19,780 --> 00:23:22,500 Il se trouve que vous obtenir aussi de choisir, 487 00:23:22,500 --> 00:23:26,600 lors de la conception d'une base de données SQL, ou database-- typiques relationnelles où 488 00:23:26,600 --> 00:23:28,790 encore une fois, juste relationnelle des moyens lignes et colonnes, 489 00:23:28,790 --> 00:23:35,500 voilà comment vous organisez vos data-- et se rendre compte que ce que cela signifie est, 490 00:23:35,500 --> 00:23:37,740 J'ai été trompeuses dans ça, je suis drawing-- cette 491 00:23:37,740 --> 00:23:40,190 est ce qu'on appelle le schéma pour une table de base de données. 492 00:23:40,190 --> 00:23:42,810 Cela ressemble à la spécifications pour le table-- 493 00:23:42,810 --> 00:23:48,040 mais quand vient le temps pour réellement stocker des données, 494 00:23:48,040 --> 00:23:52,081 et nous ferons ce que par exemple ici. 495 00:23:52,081 --> 00:23:55,080 Je vais ouvrir Excel, parce Excel va me donner des lignes et des colonnes. 496 00:23:55,080 --> 00:23:58,050 Et c'est exactement ce que Oracle et MySQL et d'autres outils vont me donner. 497 00:23:58,050 --> 00:24:02,270 Donc, je vais juste utiliser pour l'amour de la discussion. 498 00:24:02,270 --> 00:24:05,250 Laissez-moi aller de l'avant et d'ouvrir un document représentatif ici, 499 00:24:05,250 --> 00:24:06,310 agrandir un peu. 500 00:24:06,310 --> 00:24:15,200 Ainsi, par exemple, nos têtes sont maintenant prénom, nom, sexe, ID, 501 00:24:15,200 --> 00:24:20,980 email, numéro de rue, rue, whoops. 502 00:24:20,980 --> 00:24:25,710 Rue, ville, état, juste convient à propos de l'écran. 503 00:24:25,710 --> 00:24:29,080 >> Donc, cela signifie que lorsqu'un utilisateur enregistre d'abord pour mon site, 504 00:24:29,080 --> 00:24:32,880 ça va être quelque chose comme David, Malan, m, disons 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, numéro de rue sera être comme 1 Brattle Square, Cambridge, MA, 506 00:24:42,910 --> 00:24:44,780 02138, puis ainsi de suite. 507 00:24:44,780 --> 00:24:48,290 Donc, quand je dis qu'une base de données relationnelle ou une base de données SQL est rangées et colonnes, 508 00:24:48,290 --> 00:24:49,350 Je veux dire. 509 00:24:49,350 --> 00:24:51,900 Que les données réelles sont stockées en lignes et en colonnes. 510 00:24:51,900 --> 00:24:53,950 Ceci est juste une coïncidence, que nous parlions, 511 00:24:53,950 --> 00:24:56,033 et je viens de le dessiner en lignes et en colonnes. 512 00:24:56,033 --> 00:24:58,320 Ceci est juste le schéma, la définition globale. 513 00:24:58,320 --> 00:25:01,640 >> Donc, de ces champs ici, ou de manière équivalente, là, 514 00:25:01,640 --> 00:25:06,270 quels sont les domaines que vous pensez Je suis susceptible de rechercher sur si je suis un utilisateur 515 00:25:06,270 --> 00:25:09,200 ou si je suis l'administrateur de base de données? 516 00:25:09,200 --> 00:25:12,426 Comme, quels domaines suis-je effectivement aller à la recherche sur? 517 00:25:12,426 --> 00:25:13,830 >> AUDIENCE: [Inaudible] 518 00:25:13,830 --> 00:25:17,690 >> DAVID MALAN: Le nom, ouais donc J'aime le fait that-- ouais, 519 00:25:17,690 --> 00:25:19,750 email pourrait être assez commun. 520 00:25:19,750 --> 00:25:21,440 Désolé, vous avez dit nom. 521 00:25:21,440 --> 00:25:24,030 Alors maybe-- et encore, nous sommes sorte de parler dans l'abstrait. 522 00:25:24,030 --> 00:25:25,988 Je ne sais pas pourquoi vous feriez être à la recherche d'un nom, 523 00:25:25,988 --> 00:25:29,340 mais qui se sent raisonnable si vous êtes à la recherche d'un utilisateur. 524 00:25:29,340 --> 00:25:31,170 Peut-être que les Etats, bien sûr, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> Et il est un glissante pente, parce que je pouvais 527 00:25:36,160 --> 00:25:38,890 ingénier un scénario où peut-être mon patron m'a demandé, 528 00:25:38,890 --> 00:25:40,417 combien d'hommes avons-nous sur notre site? 529 00:25:40,417 --> 00:25:42,000 Combien de femmes avons-nous sur notre site? 530 00:25:42,000 --> 00:25:45,210 Et à ce moment-là, vous voudrez peut-être pour la recherche sur le terrain entre les sexes, aussi, 531 00:25:45,210 --> 00:25:45,940 et rien d'autre. 532 00:25:45,940 --> 00:25:47,350 Donc, il y a un compromis ici. 533 00:25:47,350 --> 00:25:49,180 Encore une fois, il n'y a pas bonne réponse, mais il 534 00:25:49,180 --> 00:25:53,760 est une caractéristique dans la plupart des bases de données SQL connu sous le nom d'indexation, de sorte que 535 00:25:53,760 --> 00:25:56,100 vous, le concepteur, le administrateur de base de données, 536 00:25:56,100 --> 00:26:01,730 se décider à l'avance qui Les champs de la base de données devrait optimiser 537 00:26:01,730 --> 00:26:02,980 pour les recherches sur. 538 00:26:02,980 --> 00:26:07,620 >> Vous pourriez très naïvement dire optimiser ce, d'optimiser cela, optimiser cela, 539 00:26:07,620 --> 00:26:10,300 optimiser cela et ce, et la base de données 540 00:26:10,300 --> 00:26:14,882 faire quelque chose magique sous le hotte, et faire quelque chose de manière 541 00:26:14,882 --> 00:26:17,090 que la prochaine fois que vous recherchez sur l'un de ces domaines, 542 00:26:17,090 --> 00:26:18,400 il sera, en fait, être plus rapide. 543 00:26:18,400 --> 00:26:19,110 C'est possible. 544 00:26:19,110 --> 00:26:20,530 Il ne s'annule pas. 545 00:26:20,530 --> 00:26:22,500 Mais il doit y avoir un prix payé. 546 00:26:22,500 --> 00:26:27,220 >> Si vous naïvement, ou trop d'enthousiasme disons, index tous ces domaines, 547 00:26:27,220 --> 00:26:29,810 pour ainsi dire, faire tous efficacement consultable, 548 00:26:29,810 --> 00:26:31,625 quel prix vous payez probablement? 549 00:26:31,625 --> 00:26:32,500 AUDIENCE: [Inaudible] 550 00:26:32,500 --> 00:26:33,090 DAVID MALAN: Performance. 551 00:26:33,090 --> 00:26:33,798 Que voulez-vous dire? 552 00:26:33,798 --> 00:26:37,380 Ainsi le rendement, au moins dans la contexte je parle, est mieux maintenant. 553 00:26:37,380 --> 00:26:38,830 Voilà la définition de l'indexation. 554 00:26:38,830 --> 00:26:41,180 Il fera des recherches plus rapidement. 555 00:26:41,180 --> 00:26:43,366 Donc, le temps diminue, pour ainsi dire. 556 00:26:43,366 --> 00:26:44,240 AUDIENCE: [Inaudible] 557 00:26:44,240 --> 00:26:45,031 DAVID MALAN: Space. 558 00:26:45,031 --> 00:26:46,520 Encore une fois, ce sont un métier commun. 559 00:26:46,520 --> 00:26:50,820 Je peux accélérer vos recherches, mais il est va vous coûter plus d'octets d'espace. 560 00:26:50,820 --> 00:26:51,610 Pourquoi? 561 00:26:51,610 --> 00:26:55,230 Eh bien, par défaut, si nous avons aucun des ces étoiles rouges, aucun de ces indices, 562 00:26:55,230 --> 00:26:58,797 comme je l'ai dit, comment voulez-vous rechercher un nom dans cette base de données? 563 00:26:58,797 --> 00:27:00,630 Donc, nous allons tirer notre attention à cet exemple. 564 00:27:00,630 --> 00:27:06,300 Si nous avons David et Scully et Kareem et Arwa et d'autres dans ces lignes, 565 00:27:06,300 --> 00:27:06,910 par exemple. 566 00:27:06,910 --> 00:27:08,390 >> Donc, nous allons faire exactement cela. 567 00:27:08,390 --> 00:27:13,990 Scully est ici, puis nous avons Kareem, et Arwa, 568 00:27:13,990 --> 00:27:18,390 et tout le monde, si vous ne le faites pas ont un indice défini, pour ainsi dire, 569 00:27:18,390 --> 00:27:20,160 le mieux que vous pouvez faire est la recherche linéaire. 570 00:27:20,160 --> 00:27:23,470 Si vous recherchez Arwa, nous ne sommes pas va être en mesure de sauter droit de la 571 00:27:23,470 --> 00:27:24,140 rapidement. 572 00:27:24,140 --> 00:27:26,556 Nous allons commencer en haut et aller tout le chemin vers le bas, 573 00:27:26,556 --> 00:27:28,600 pas à la différence de notre originale par exemple Mike Smith. 574 00:27:28,600 --> 00:27:33,470 >> Si, cependant, je dis, hey, base de données, indexer le premier champ de nom, 575 00:27:33,470 --> 00:27:37,000 alors il va faire quelque chose colombophile et soutenir quelque chose 576 00:27:37,000 --> 00:27:38,130 comme la recherche binaire. 577 00:27:38,130 --> 00:27:39,820 Il est probablement pas binaire de recherche en soi. 578 00:27:39,820 --> 00:27:42,810 Les bases de données ont tendance à utiliser un autre structure de données appelée b-arbres, 579 00:27:42,810 --> 00:27:46,540 à ne pas confondre avec des arbres binaires, qui vient de le rendre plus rapide à la recherche 580 00:27:46,540 --> 00:27:48,500 quelque chose logarithmique dans la nature. 581 00:27:48,500 --> 00:27:53,510 Mais le prix que vous payez pour construire que fonctionnalité, cette structure de données dans la mémoire, 582 00:27:53,510 --> 00:27:54,570 est plus d'octets. 583 00:27:54,570 --> 00:27:57,170 Ainsi, il pourrait prendre quelques mégaoctets, quelques giga-octets, qui sait? 584 00:27:57,170 --> 00:27:58,410 Cela dépend des données. 585 00:27:58,410 --> 00:28:02,640 >> Donc, à un moment donné, vous devez décider, il est probablement pas un cas commun. 586 00:28:02,640 --> 00:28:06,000 Alors, quelles sont la réelle commune des cas, si vous avez vraiment eu à choisir, 587 00:28:06,000 --> 00:28:10,080 ce qui pourrait être vos domaines de prédilection? 588 00:28:10,080 --> 00:28:10,580 Email. 589 00:28:10,580 --> 00:28:14,400 Et j'aime email parce email, en théorie, devrait être unique. 590 00:28:14,400 --> 00:28:17,650 Et si typiquement, quand vous savez à l'avance que l'un de vos champs 591 00:28:17,650 --> 00:28:20,277 est ou sera unique, que a tendance à être un bon champ 592 00:28:20,277 --> 00:28:22,860 à la recherche, parce que de cette façon, lorsque vous recherchez quelque chose, 593 00:28:22,860 --> 00:28:26,194 vous allez récupérer un ou zéro réponses et vous avez terminé. 594 00:28:26,194 --> 00:28:28,110 Vous n'êtes pas obligé de garder à la recherche d'autres encore. 595 00:28:28,110 --> 00:28:31,992 >> Et dans ce cas là, email, aussi longtemps que vous ne pouvez pas enregistrer deux fois 596 00:28:31,992 --> 00:28:33,450 avec le même email, est un bon. 597 00:28:33,450 --> 00:28:36,710 ID par définition, dans la la science informatique mondial, 598 00:28:36,710 --> 00:28:39,610 si vous parlez d'un ID, qui avait mieux d'être unique. 599 00:28:39,610 --> 00:28:42,970 C'est un peu la connotation d'ID ou identifiant. 600 00:28:42,970 --> 00:28:46,440 Et le reste de ceux-ci pourraient être, appelons-les bien de nantis, 601 00:28:46,440 --> 00:28:47,860 mais pas vraiment nécessaire. 602 00:28:47,860 --> 00:28:49,976 >> Et dans une base de données, vous spécifiez les index, 603 00:28:49,976 --> 00:28:51,350 mais vous pouvez être encore plus précis. 604 00:28:51,350 --> 00:28:56,060 Vous pouvez dire, hey, base de données, assurez-vous que chaque ID dans ce tableau est unique. 605 00:28:56,060 --> 00:28:59,330 Ne même pas laisser un programmeur accidentellement mis dans un e-mail en double 606 00:28:59,330 --> 00:29:00,740 ou dupliquer numéro d'identification. 607 00:29:00,740 --> 00:29:03,140 Donc, un peu comme les énumérations nous protéger de manière similaire, vous 608 00:29:03,140 --> 00:29:04,881 peut avoir les moyens de défense de niveau inférieur. 609 00:29:04,881 --> 00:29:07,130 Et donc la conception de base de données, en un certain sens, est une sorte de plaisir, 610 00:29:07,130 --> 00:29:08,380 parce que vous le faites à la défense. 611 00:29:08,380 --> 00:29:11,460 Vous sorte de supposer que vous travaillez avec horribles, horribles programmeurs 612 00:29:11,460 --> 00:29:15,550 et vous voulez mettre en autant de défenses que vous pouvez pour protéger vos données, 613 00:29:15,550 --> 00:29:18,940 mais en même temps vous voulez pour les aider à un meilleur rendement 614 00:29:18,940 --> 00:29:21,386 en choisissant les champs d'optimiser pour. 615 00:29:21,386 --> 00:29:24,260 Mais vous ne pouvez pas nécessairement le faire dans un vide comme nous sorte de sont ici. 616 00:29:24,260 --> 00:29:26,480 Vous devez savoir quels sont les cas communs étant. 617 00:29:26,480 --> 00:29:29,397 Si les développeurs sont la mise en œuvre d'un carnet d'adresses, 618 00:29:29,397 --> 00:29:32,230 vous pourriez très bien voulez être en mesure pour la recherche sur presque tous les domaines, 619 00:29:32,230 --> 00:29:33,830 seulement par la nature de l'application. 620 00:29:33,830 --> 00:29:37,910 Alors peut-être que vous dépensez que l'espace supplémentaire. 621 00:29:37,910 --> 00:29:39,090 >> Droit, des questions? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 Ouais. 624 00:29:42,486 --> 00:29:43,470 >> AUDIENCE: [Inaudible] 625 00:29:43,470 --> 00:29:44,404 >> DAVID MALAN: Non 626 00:29:44,404 --> 00:29:45,279 >> AUDIENCE: [Inaudible] 627 00:29:45,279 --> 00:29:47,840 628 00:29:47,840 --> 00:29:48,826 >> DAVID MALAN: OK. 629 00:29:48,826 --> 00:29:49,701 >> AUDIENCE: [Inaudible] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> DAVID MALAN: Oh, donc nous parlons d'une manière 632 00:29:54,850 --> 00:29:57,940 maintenant que est tout à fait la langue agnostique. 633 00:29:57,940 --> 00:30:02,370 Donc, nous parlons maintenant bases de données relationnelles plus généralement, 634 00:30:02,370 --> 00:30:04,760 ou bases de données SQL plus généralement. 635 00:30:04,760 --> 00:30:06,870 >> AUDIENCE: [Inaudible] 636 00:30:06,870 --> 00:30:10,030 >> DAVID MALAN: Un meilleur mot à utiliser est, peut être utilisé par toutes les langues. 637 00:30:10,030 --> 00:30:15,280 Je peux donc écrire du code JavaScript, C code, code C ++, le code Java, le code Ruby, 638 00:30:15,280 --> 00:30:19,010 qui tous parlent à un requêtes de base de données et exécuter. 639 00:30:19,010 --> 00:30:22,310 En fait, ce n'est pas une mauvaise segue à un exemple de requête. 640 00:30:22,310 --> 00:30:25,720 Et encore une fois, on ne va pas aller dans Java ou C ++ ou tout cela plus, 641 00:30:25,720 --> 00:30:29,420 mais dans SQL, la langue à laquelle je garde se référant, Structured Query Language, 642 00:30:29,420 --> 00:30:32,790 cela est en soi un langage de programmation, mais il est destiné à être utilisé pour, aucune 643 00:30:32,790 --> 00:30:37,330 surprise, structuré de requêtes d'interrogation. 644 00:30:37,330 --> 00:30:38,660 >> Par cela, je veux dire ceci. 645 00:30:38,660 --> 00:30:41,190 La façon dont vous sélectionnez les données à partir d'une base de données MySQL 646 00:30:41,190 --> 00:30:49,330 est littéralement vous tapez dans votre programme quelque chose comme select étoile des utilisateurs. 647 00:30:49,330 --> 00:30:52,200 Je suppose que ce tableau, désormais est appelé les utilisateurs. 648 00:30:52,200 --> 00:30:54,860 Je pourrais l'appeler tout ce que nous voulons, mais ce genre de logique. 649 00:30:54,860 --> 00:30:57,240 Et sélectionnez est un très verbe commun, si vous 650 00:30:57,240 --> 00:30:59,290 sera, dans SQL, est-ce que la lettre que. 651 00:30:59,290 --> 00:31:02,730 Que pensez-vous étoiles signifie dans ce contexte? 652 00:31:02,730 --> 00:31:04,410 >> AUDIENCE: [Inaudible] 653 00:31:04,410 --> 00:31:05,380 >> DAVID MALAN: Je suis désolé? 654 00:31:05,380 --> 00:31:06,300 >> AUDIENCE: [Inaudible] 655 00:31:06,300 --> 00:31:09,580 >> DAVID MALAN: Pas nécessaire, il est plus inclusif que cela, en fait. 656 00:31:09,580 --> 00:31:11,700 Il est le caractère générique. 657 00:31:11,700 --> 00:31:14,740 Étoile presque toujours signifie quoi que ce soit, donc cela signifie, dans ce cas, 658 00:31:14,740 --> 00:31:16,510 tout sélectionner à partir de la base de données. 659 00:31:16,510 --> 00:31:20,730 Donc, quand je dis cela, je veux dire rends-moi chaque colonne 660 00:31:20,730 --> 00:31:22,440 de ma table appelée utilisateurs. 661 00:31:22,440 --> 00:31:24,730 Donnez-moi donc un jeu de résultats, comme on l'appelle. 662 00:31:24,730 --> 00:31:28,210 En d'autres mots, donnez-moi une copie de la tableur, est ce que je veux en venir. 663 00:31:28,210 --> 00:31:34,890 >> Mais si je disais select étoiles des utilisateurs où ID est égal à 1, la taille devrait 664 00:31:34,890 --> 00:31:36,640 mon jeu de résultats alors? 665 00:31:36,640 --> 00:31:41,680 Ou de manière équivalente, le nombre de lignes devrait Je être remis en retrait de la base de données? 666 00:31:41,680 --> 00:31:45,860 Probablement juste un, si je dois en effet ID traité comme un identifiant unique, 667 00:31:45,860 --> 00:31:50,710 et si David a cette ID unique, je devrait revenir une et une seule rangée 668 00:31:50,710 --> 00:31:53,220 contenant toutes les informations de David. 669 00:31:53,220 --> 00:31:56,390 Si je l'ai dit où ID est égal à 99, je devrais retourner, 670 00:31:56,390 --> 00:32:00,320 dans ce contexte, aucune ligne, au moins à l'heure actuelle. 671 00:32:00,320 --> 00:32:03,620 >> Toutefois, si je ne me soucie pas vraiment à propos de toutes ces informations, 672 00:32:03,620 --> 00:32:06,970 Je pourrais dire, où David vit-il? 673 00:32:06,970 --> 00:32:10,860 Sélectionner le code postal de utilisateurs où ID est 1. 674 00:32:10,860 --> 00:32:15,820 Cela permet de sélectionner seulement à moi zip David Code et non la totalité de cette ligne. 675 00:32:15,820 --> 00:32:19,541 Pourquoi pourrais-je faire cela au lieu de la requête d'étoile, la wild card? 676 00:32:19,541 --> 00:32:21,950 >> AUDIENCE: [Inaudible] 677 00:32:21,950 --> 00:32:24,590 >> DAVID MALAN: Oui, je pourrais seulement besoin. 678 00:32:24,590 --> 00:32:26,350 Donc, la performance est à nouveau la réponse ici. 679 00:32:26,350 --> 00:32:28,540 Pourquoi demander plus informations que vous avez besoin, 680 00:32:28,540 --> 00:32:32,020 parce que même si elle est bien ensemble, vous avez encore de copier ces données, 681 00:32:32,020 --> 00:32:35,560 il semblerait, à partir de la base de données en quelque sorte votre programme, 682 00:32:35,560 --> 00:32:38,490 et c'est tout simplement ridicule si vous seulement besoin de cinq de ces chiffres, 683 00:32:38,490 --> 00:32:40,340 pas la totalité de la ligne. 684 00:32:40,340 --> 00:32:42,180 >> Alors, comment puis-je insérer un utilisateur? 685 00:32:42,180 --> 00:32:44,780 Supposons qu'un utilisateur a juste enregistrée pour la première fois. 686 00:32:44,780 --> 00:32:46,560 La syntaxe serait généralement ressembler à ceci. 687 00:32:46,560 --> 00:32:52,700 Insérer dans les utilisateurs, et alors nous dirions des valeurs, 688 00:32:52,700 --> 00:33:00,150 puis nous dirions des valeurs comme, disons, Lauren Scully, 689 00:33:00,150 --> 00:33:02,380 notre vidéaste ici. 690 00:33:02,380 --> 00:33:04,390 Et le champ suivant est le sexe. 691 00:33:04,390 --> 00:33:08,020 Donc, nous allons dire entre guillemets "F", alors nous avons un ID 692 00:33:08,020 --> 00:33:12,250 et je vais say-- nous allons prétendre qu'elle est pas vraiment ici, 693 00:33:12,250 --> 00:33:14,380 donc nous allons rembobiner dans l'histoire. 694 00:33:14,380 --> 00:33:16,530 Donc 2 sera son ID. 695 00:33:16,530 --> 00:33:19,130 Et puis le champ suivant voici son email. 696 00:33:19,130 --> 00:33:22,140 Donc, ça va être comme Lauren Scully et ainsi de suite, 697 00:33:22,140 --> 00:33:24,360 et nous allons simplement dot dot dot loin de là sur. 698 00:33:24,360 --> 00:33:26,890 Maintenant, il va obtenir un peu fastidieux, mais la requête d'insertion 699 00:33:26,890 --> 00:33:28,310 finirait par ressembler à ça. 700 00:33:28,310 --> 00:33:30,970 >> Si je veux me débarrasser de Scully, uh-oh, disons désenregistrer 701 00:33:30,970 --> 00:33:37,420 elle, elle supprime son compte, supprimer des utilisateurs où ID est égal à 2, 702 00:33:37,420 --> 00:33:38,500 va se débarrasser de Scully. 703 00:33:38,500 --> 00:33:48,050 Ou je peux dire les utilisateurs de mise à jour définis, disons, que pourrions-nous changer? 704 00:33:48,050 --> 00:33:49,430 Supposons qu'elle se déplace. 705 00:33:49,430 --> 00:33:53,730 Set zip est égal à 021-- Nope, qui est son zip actuel. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 Le seul autre code Je sais que dans le monde. 708 00:33:56,320 --> 00:33:59,002 Alors que cela changerait son zip code-- effectivement, 709 00:33:59,002 --> 00:34:00,460 cela ne changerait pas son code postal. 710 00:34:00,460 --> 00:34:02,170 >> Qu'est-ce que je viens de faire? 711 00:34:02,170 --> 00:34:04,292 Même si la syntaxe est probablement nouvelle. 712 00:34:04,292 --> 00:34:05,302 >> AUDIENCE: [Inaudible] 713 00:34:05,302 --> 00:34:08,010 DAVID MALAN: Oui, je me suis déplacé tout le monde à Beverly Hills, en Californie. 714 00:34:08,010 --> 00:34:11,920 Donc je devrais effectivement dire où ID est égal à 2. 715 00:34:11,920 --> 00:34:12,820 Et ainsi de suite. 716 00:34:12,820 --> 00:34:15,290 Donc, SQL est tout au sujet de ces types d'instructions. 717 00:34:15,290 --> 00:34:20,260 Sélectionnez, insérer, supprimer, mettre à jour, avec ces prédicats à la fin 718 00:34:20,260 --> 00:34:22,139 ces clauses where, pour ainsi dire. 719 00:34:22,139 --> 00:34:25,170 Et il y a beaucoup plus que vous pouvez faire, mais il a vraiment se résume juste en bas 720 00:34:25,170 --> 00:34:29,750 simplement, si arcanely, exprimant ce que vous voulez que la base de données à faire. 721 00:34:29,750 --> 00:34:31,580 >> Et puis la base de données va comprendre, quand 722 00:34:31,580 --> 00:34:35,630 vous insérez Lauren Scully dans la base de données, où la mettre en mémoire 723 00:34:35,630 --> 00:34:38,230 afin que nous puissions très rapidement obtenir son basé sur son adresse e-mail 724 00:34:38,230 --> 00:34:42,610 ou sur la base de son numéro d'identification ou analogue. 725 00:34:42,610 --> 00:34:43,391 Ouais, Dan. 726 00:34:43,391 --> 00:34:44,266 AUDIENCE: [Inaudible] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 DAVID MALAN: Très bonne question. 729 00:34:47,780 --> 00:34:50,370 Est-ce que ces scripts de changer Microsoft Access à Oracle 730 00:34:50,370 --> 00:34:52,290 MySQL vers PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 La réponse courte est que cela dépend. 732 00:34:53,790 --> 00:34:58,697 En théorie, il existe une très sous-ensemble commun significatif de SQL 733 00:34:58,697 --> 00:35:00,780 qui est partagé dans l'ensemble de ces mises en œuvre. 734 00:35:00,780 --> 00:35:03,340 Cependant, divers fabricants ont ajouté des fonctionnalités 735 00:35:03,340 --> 00:35:07,120 à leurs bases de données pour faire certaines choses au-delà de la portée de ces caractéristiques, 736 00:35:07,120 --> 00:35:08,720 qui pourrait, en fait, briser. 737 00:35:08,720 --> 00:35:11,210 >> Donc, la façon dont les développeurs couvrir contre cela, 738 00:35:11,210 --> 00:35:14,350 est que, plutôt que d'écrire brut code SQL comme je vous écris ici, 739 00:35:14,350 --> 00:35:19,460 ils utilisent à la place une bibliothèque, une bibliothèque commune qui se 740 00:35:19,460 --> 00:35:23,650 est de niveau supérieur en quelque sorte et les résumés de là qui produit que vous utilisez. 741 00:35:23,650 --> 00:35:25,710 Et il vous donne fonctions et procédures 742 00:35:25,710 --> 00:35:28,810 d'appeler de sorte que vous ne réellement écrire SQL brut. 743 00:35:28,810 --> 00:35:32,609 >> En théorie, donc, vous pouvez changer produits d'Oracle à Microsoft 744 00:35:32,609 --> 00:35:34,650 ou vice versa, ou quoi que ce soit d'autre, et vous littéralement 745 00:35:34,650 --> 00:35:36,920 rien changer au sujet de votre code. 746 00:35:36,920 --> 00:35:40,180 La réalité, cependant, est, vous parfois renoncer à des caractéristiques à la suite. 747 00:35:40,180 --> 00:35:43,860 Vous pourriez avoir choisi un produit parce il possède ces caractéristiques à valeur ajoutée, 748 00:35:43,860 --> 00:35:46,610 et vous êtes juste pas maintenant les utiliser consciemment. 749 00:35:46,610 --> 00:35:51,630 >> Et anecdotique, la plupart des entreprises ont tendance jamais de se déplacer loin de leur base de données. 750 00:35:51,630 --> 00:35:54,002 Ainsi, alors que ceci est un bon de ont fonctionnalité, la réalité 751 00:35:54,002 --> 00:35:55,960 est, si vous êtes la refonte votre base de données, vous êtes 752 00:35:55,960 --> 00:35:59,890 probablement faire des grappes d'autres changements de toute façon, que vous ne faites pas nécessairement 753 00:35:59,890 --> 00:36:01,360 besoin d'anticiper cela. 754 00:36:01,360 --> 00:36:03,720 Donc, il est sans doute over-engineering du problème, 755 00:36:03,720 --> 00:36:05,670 mais cela dépend vraiment du contexte. 756 00:36:05,670 --> 00:36:09,960 Mais en théorie, SQL est partagée sur ces différents produits. 757 00:36:09,960 --> 00:36:11,560 Vraiment de bonnes questions. 758 00:36:11,560 --> 00:36:12,272 Ouais. 759 00:36:12,272 --> 00:36:13,147 >> AUDIENCE: [Inaudible] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> DAVID MALAN: Ouais, donc vous pouvez penser une base de données 762 00:36:21,480 --> 00:36:25,020 est juste un serveur, à la fin de la journée, et à l'intérieur de ce serveur 763 00:36:25,020 --> 00:36:28,670 est tout un tas de tables, des lignes et des colonnes. 764 00:36:28,670 --> 00:36:33,410 Et lorsque vous envoyez une requête comme ceci à partir de votre programme, votre site web, 765 00:36:33,410 --> 00:36:39,340 écrit en Java, Ruby, Python, que ce soit, le serveur reçoit cette commande 766 00:36:39,340 --> 00:36:41,660 et l'interprétation dans littéralement de la même façon 767 00:36:41,660 --> 00:36:43,660 nous avons discuté plus tôt avec langages interprétés, 768 00:36:43,660 --> 00:36:47,333 puis effectuer une action sur le zéro ou plusieurs lignes de zéro ou plusieurs tables. 769 00:36:47,333 --> 00:36:48,208 AUDIENCE: [Inaudible] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> DAVID MALAN: Exactement, exactement. 772 00:36:55,070 --> 00:36:58,450 Donc, le pseudocode pour quelque chose comme ce pourrait être cela. 773 00:36:58,450 --> 00:37:02,450 Dans votre fichier PHP ou votre fichier Python ou votre fichier Java, 774 00:37:02,450 --> 00:37:09,210 vous auriez du code pseudocode, ou blocs Scratch-like que, si les visites des utilisateurs 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V pour la première fois, puis l'insérer dans les utilisateurs et ainsi de suite. 776 00:37:19,870 --> 00:37:22,619 Et nous traduisons cela plus de code concret à la fin. 777 00:37:22,619 --> 00:37:24,660 Mais vraiment, nous avons tous les blocs de construction ici, 778 00:37:24,660 --> 00:37:27,680 même si nous sauter quelques-uns des étapes de mise en oeuvre. 779 00:37:27,680 --> 00:37:31,560 >> Alors permettez-moi de trouver à redire à ce que nous merveilleusement fait il y a un instant. 780 00:37:31,560 --> 00:37:36,470 Vous avez créé une jolie tableau complet pour les utilisateurs. 781 00:37:36,470 --> 00:37:38,920 Certes, nous pourrions mettre en œuvre en quelques façons différentes, 782 00:37:38,920 --> 00:37:43,030 mais vous avez réellement nous conduit en bas de la path-- et je vous dis, 783 00:37:43,030 --> 00:37:48,080 mais il est probablement mon fault-- d'une assez la mise en oeuvre de bases de données inefficace. 784 00:37:48,080 --> 00:37:49,950 Ce n'est pas normalisée. 785 00:37:49,950 --> 00:37:52,320 >> Et je veux dire normalisée il va être, 786 00:37:52,320 --> 00:37:57,380 au fil du temps, une redondance importante, et donc l'inefficacité, 787 00:37:57,380 --> 00:38:00,210 qui est gaspillage d'espace. 788 00:38:00,210 --> 00:38:05,650 Basé sur seulement ce que vous voyez ici, peut vous imaginez où ces déchets de l'espace 789 00:38:05,650 --> 00:38:08,710 va venir, au fil du temps, que le registre de plus en plus d'utilisateurs 790 00:38:08,710 --> 00:38:10,860 pour votre site web? 791 00:38:10,860 --> 00:38:13,047 Quelles données pourrait devenir redondant? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> AUDIENCE: [Inaudible] 794 00:38:20,940 --> 00:38:22,686 >> DAVID MALAN: Pourquoi voulez-vous dire? 795 00:38:22,686 --> 00:38:23,561 AUDIENCE: [Inaudible] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 DAVID MALAN: Oui. 798 00:38:32,930 --> 00:38:35,622 Et supposons aux fins d'aujourd'hui que cela est vrai. 799 00:38:35,622 --> 00:38:38,330 Les tours dehors, et nous avons appris cette la dure, qui est pas vrai. 800 00:38:38,330 --> 00:38:41,670 Somehow plusieurs villes ont, en quelque sorte, le même code postal, 801 00:38:41,670 --> 00:38:43,390 qui rompt cette merveilleuse intuition. 802 00:38:43,390 --> 00:38:46,180 Mais supposons que ce soit vrai, car il est presque toujours vrai. 803 00:38:46,180 --> 00:38:51,390 Donc, supposons qu'un code postal est toujours associés à la même ville 804 00:38:51,390 --> 00:38:53,600 et de l'Etat, qui est une sorte des hypothèses raisonnables, 805 00:38:53,600 --> 00:38:54,840 mais incorrect, il se trouve. 806 00:38:54,840 --> 00:38:57,310 Mais une hypothèse raisonnable pour les besoins d'aujourd'hui. 807 00:38:57,310 --> 00:39:01,650 >> Puis suppose que je vis à Cambridge, MA, selon la table de cet utilisateur, 808 00:39:01,650 --> 00:39:04,100 et supposons que Lauren Scully vit à Cambridge, MA, 809 00:39:04,100 --> 00:39:06,120 et supposons que Kareem vit à Cambridge, MA, 810 00:39:06,120 --> 00:39:10,400 et Arwa vit à Cambridge, MA, nous tous en 02138. 811 00:39:10,400 --> 00:39:15,890 Pourquoi sommes-nous souvenant de Cambridge, MA, 02138 pour les quatre d'entre nous? 812 00:39:15,890 --> 00:39:18,903 Que devrait suffire à retenir? 813 00:39:18,903 --> 00:39:20,249 >> AUDIENCE: [Inaudible] 814 00:39:20,249 --> 00:39:21,540 DAVID MALAN: Juste le code postal. 815 00:39:21,540 --> 00:39:25,080 Juste que 02138 existe, parce que vous savez ce que nous pourrions faire? 816 00:39:25,080 --> 00:39:32,650 Nous pourrions obtenir un peu de fantaisie ici et ici, définir une autre table 817 00:39:32,650 --> 00:39:35,850 où cela va être le nom, cela va être le type, 818 00:39:35,850 --> 00:39:38,840 cela va être le longueur, et désormais, je suis 819 00:39:38,840 --> 00:39:42,900 va appeler cela ma table de villes. 820 00:39:42,900 --> 00:39:47,011 Cela a été appelé, de Bien sûr, ma table d'utilisateurs. 821 00:39:47,011 --> 00:39:49,885 Et que dois-je mettre ici pour ma table villes, pensez-vous? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> AUDIENCE: [Inaudible] 824 00:39:54,535 --> 00:39:55,930 >> DAVID MALAN: Oui. 825 00:39:55,930 --> 00:40:01,440 Donc, zip et de l'État et la ville. 826 00:40:01,440 --> 00:40:05,350 Et donc le type ici, on va dire cela va être un omble 5 nouveau, 827 00:40:05,350 --> 00:40:06,750 sujet au débat plus tôt. 828 00:40:06,750 --> 00:40:14,810 Ce sera un enum, peut-être comme avant, et la ville sera un varchar 50. 829 00:40:14,810 --> 00:40:17,960 Et maintenant qu'est-ce que je reçois effacer de ce tableau 830 00:40:17,960 --> 00:40:21,995 pour éliminer cette inefficacité? 831 00:40:21,995 --> 00:40:23,100 >> AUDIENCE: [Inaudible] 832 00:40:23,100 --> 00:40:23,850 DAVID MALAN: Nice. 833 00:40:23,850 --> 00:40:30,239 État et la ville vont, je me suis donc maintenant éliminé l'inefficacité potentielle 834 00:40:30,239 --> 00:40:33,280 pour se rappeler de manière redondante, Cambridge, MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, qui, nous l'espérons ne va jamais changer. 836 00:40:35,712 --> 00:40:37,670 Et même si elle le fait, il est minorly ennuyeux, maintenant 837 00:40:37,670 --> 00:40:39,750 que je dois changer en plusieurs rangées, 838 00:40:39,750 --> 00:40:43,770 alors qu'ici, je ne pouvais tout simplement changer en un seul endroit. 839 00:40:43,770 --> 00:40:46,890 >> Maintenant, quel est le compromis, peut-être? 840 00:40:46,890 --> 00:40:48,020 C'était super pratique. 841 00:40:48,020 --> 00:40:50,730 Nous avons passé toutes mes données bien ensemble. 842 00:40:50,730 --> 00:40:53,644 Mais ce qui est clairement le cas maintenant? 843 00:40:53,644 --> 00:40:55,684 >> AUDIENCE: [Inaudible] 844 00:40:55,684 --> 00:40:58,100 DAVID MALAN: Exactement, et je suis heureux que vous ayez utilisé le mot se joindre, 845 00:40:58,100 --> 00:41:01,320 parce que ce fait le mot-clé, dans le monde des bases de données relationnelles 846 00:41:01,320 --> 00:41:05,270 dans SQL, il est un mot réel vous pourrait taper ou au moins transmettre. 847 00:41:05,270 --> 00:41:09,280 Et en fait, ce que nous avons maintenant à faire pour sélectionner une information complète de David est 848 00:41:09,280 --> 00:41:19,700 quelque chose comme select étoile à partir de utilisateurs, rejoignent les villes, on-- et maintenant 849 00:41:19,700 --> 00:41:24,010 Je vais passer tout simplement à une deuxième ligne de sorte que cette users.zip fits-- est égal à 850 00:41:24,010 --> 00:41:34,570 cities.zip où users.ID est égal à 1. 851 00:41:34,570 --> 00:41:35,550 >> Alors que se passe-t-il? 852 00:41:35,550 --> 00:41:38,970 Il est moche, mais vous pouvez sorte de lire de gauche à droite, de haut en bas. 853 00:41:38,970 --> 00:41:41,030 Sélectionnez étoiles des utilisateurs est le même que précédemment, 854 00:41:41,030 --> 00:41:42,930 mais pas des utilisateurs, en soi. 855 00:41:42,930 --> 00:41:45,910 Il est des utilisateurs rejoignent les villes. 856 00:41:45,910 --> 00:41:48,520 Que vais-je joins ces deux tables sur? 857 00:41:48,520 --> 00:41:51,820 Eh bien, apparemment, la tables utilisateurs zip champ, 858 00:41:51,820 --> 00:41:54,810 et cette période est tout simplement spéciale la syntaxe pour exprimer cette idée, 859 00:41:54,810 --> 00:41:58,130 et ce sont les tables de villes zip champ. 860 00:41:58,130 --> 00:42:01,580 Je veux que ces deux être égaux, mais je veux choisir finalement 861 00:42:01,580 --> 00:42:06,280 seules les lignes où ID dans la table des utilisateurs 862 00:42:06,280 --> 00:42:08,730 est égal à 1, ce qui est arrivé à être le mien. 863 00:42:08,730 --> 00:42:11,781 >> Et juste pour être clair, un programmeur, généralement lorsque 864 00:42:11,781 --> 00:42:14,780 hardcode quelque chose comme le nombre 1, parce que sinon le site ne 865 00:42:14,780 --> 00:42:17,630 soutient David ou tout premier utilisateur, vous 866 00:42:17,630 --> 00:42:20,720 serait plutôt faire quelque chose comme ID, où 867 00:42:20,720 --> 00:42:22,510 cela représente un variables, ce qui 868 00:42:22,510 --> 00:42:26,210 peut changer au fil du temps, semblable dans l'esprit de ce que je disais plus tôt 869 00:42:26,210 --> 00:42:28,080 avec ces types de caractères génériques. 870 00:42:28,080 --> 00:42:30,396 Mais pour l'instant, nous allons simplement hardcode comme 1. 871 00:42:30,396 --> 00:42:31,520 Et qu'est-ce que cela signifie? 872 00:42:31,520 --> 00:42:35,100 Eh bien, une belle façon de visualiser cela est que si cette main est la table des utilisateurs, 873 00:42:35,100 --> 00:42:38,090 et cette main est les zips table, nous sommes en quelque sorte finding-- 874 00:42:38,090 --> 00:42:41,330 et le bout de mes doigts sont zip ici, et le bout de mes doigts 875 00:42:41,330 --> 00:42:43,740 voici zip, vous êtes sorte de verrouillage, il 876 00:42:43,740 --> 00:42:47,950 de sorte que vous obtenez en retour le résultat table d'origine, par vraiment se joindre à 877 00:42:47,950 --> 00:42:49,590 les deux tables sur le champ commun. 878 00:42:49,590 --> 00:42:50,840 Et il ne doit pas être zip. 879 00:42:50,840 --> 00:42:54,460 Il pourrait être plus rien d'autre, mais zip est agréable, parce que l'un, il est court, 880 00:42:54,460 --> 00:42:56,470 deux, il y a toujours la même longueur, donc il n'y a 881 00:42:56,470 --> 00:43:02,270 une réelle efficacité à ce que Olivier propose ici 882 00:43:02,270 --> 00:43:05,200 avec l'affacturage le zip, et [Inaudible] proposant que nous nous débarrassons 883 00:43:05,200 --> 00:43:07,110 de la ville et les Etats. 884 00:43:07,110 --> 00:43:11,370 >> Donc, ceci est le processus connu comme la normalisation. 885 00:43:11,370 --> 00:43:14,171 Toute question à ce sujet? 886 00:43:14,171 --> 00:43:16,170 Eh bien, laissez-moi de souligner c'est le genre de choses, 887 00:43:16,170 --> 00:43:19,202 même si elle est faible niveau assez, cette discussion, que vous penseriez 888 00:43:19,202 --> 00:43:20,910 vous êtes sorte d'obtenir perdu dans les mauvaises herbes, 889 00:43:20,910 --> 00:43:26,690 ceci est une manifestation de la vaste occasion pour les développeurs d'être mauvais. 890 00:43:26,690 --> 00:43:29,600 Et en fait, même si nous, en cours que j'ai enseigné, quand nous avons eu, 891 00:43:29,600 --> 00:43:32,290 par exemple, inexpérimenté programmeurs de premier cycle 892 00:43:32,290 --> 00:43:35,920 construire des sites Web, à première vue, les sites peuvent sembler terrible. 893 00:43:35,920 --> 00:43:38,280 Et ils ont tous les fonctionnalité, nous avons demandé, 894 00:43:38,280 --> 00:43:40,650 les développeurs ont fait un bon travail. 895 00:43:40,650 --> 00:43:43,370 >> Mais ils ne savaient pas nécessairement assez sur la conception de base de données 896 00:43:43,370 --> 00:43:46,680 ou ils ne pensaient pas difficile assez sur les types de données 897 00:43:46,680 --> 00:43:49,220 et les types d'utilisateurs des site allait avoir, 898 00:43:49,220 --> 00:43:53,240 et nous trouvons, puis, six mois plus tard, après qu'ils ont obtenu leur diplôme ou déplacés sur, 899 00:43:53,240 --> 00:43:56,016 que bon sang, notre site Web est vraiment, vraiment lent. 900 00:43:56,016 --> 00:43:58,890 Et je ne parle même pas d'avoir des millions ou des milliers d'utilisateurs. 901 00:43:58,890 --> 00:44:02,580 Je veux dire quelques centaines d'utilisateurs sur le campus, qui ont tous aiment, par exemple, 902 00:44:02,580 --> 00:44:04,870 acheter des cours à En même temps, ils sont 903 00:44:04,870 --> 00:44:07,010 utiliser ce catalogue de cours application que je mentionnais 904 00:44:07,010 --> 00:44:10,410 et la chose devient vraiment ralentir parce qu'il n'y avait pas d'index. 905 00:44:10,410 --> 00:44:13,740 Il n'y avait pas des étoiles rouges, ainsi parler, ou nous avons eu pas nécessairement 906 00:44:13,740 --> 00:44:17,690 pris en compte sur les données communes à obtenir des économies d'espace. 907 00:44:17,690 --> 00:44:21,880 >> Et donc quand vetting un développeur ou d'une personne de base de données ou analogue, 908 00:44:21,880 --> 00:44:25,864 le genre de questions à penser par est encore, lors de la révision du code de quelqu'un, 909 00:44:25,864 --> 00:44:28,530 à-dire, pas nécessairement regarder à travers l'ensemble de leur code, mais disons, 910 00:44:28,530 --> 00:44:30,154 regardons à travers les tables de base de données. 911 00:44:30,154 --> 00:44:31,150 Qu'est-ce que vous stockez? 912 00:44:31,150 --> 00:44:33,941 Et puis dire, eh bien, attendez un minute, pourquoi utilisez-vous un nombre entier? 913 00:44:33,941 --> 00:44:36,224 Que faire si nous avons 4 milliards et 1 de ces lignes? 914 00:44:36,224 --> 00:44:38,140 Et ces types de questions est une occasion 915 00:44:38,140 --> 00:44:40,170 à type de repousser et avoir une idée de où 916 00:44:40,170 --> 00:44:42,300 si vous n'êtes pas à l'aise il, avoir quelqu'un plus technique 917 00:44:42,300 --> 00:44:45,425 poser ces questions, de savoir si ou non la personne sait vraiment leur truc. 918 00:44:45,425 --> 00:44:47,890 Et ceci est le genre de choses, aussi, que les gens 919 00:44:47,890 --> 00:44:50,540 sur l'Internet qui sont autodidacte, peut-être 920 00:44:50,540 --> 00:44:53,920 apprendre moins souvent, parce que vous ne viennent pas nécessairement à travers elle 921 00:44:53,920 --> 00:44:56,630 autant, parce que vous pouvez obtenir le haut de la base et en cours d'exécution, 922 00:44:56,630 --> 00:44:58,880 mais à moins que vous avez lu sur des tutoriels ou été 923 00:44:58,880 --> 00:45:01,880 dit à propos de la base de données de normalisation et de l'indexation et de la performance, 924 00:45:01,880 --> 00:45:04,255 ce sont le genre de choses qui vont vous faire mal. 925 00:45:04,255 --> 00:45:07,480 Et vous pourriez penser, ou un mauvais ingénieur pourrait-on dire, oh, eh bien, nous une meilleure rémunération 926 00:45:07,480 --> 00:45:09,600 pour une plus grande base de données ou une base de données plus rapide 927 00:45:09,600 --> 00:45:13,360 ou tout simplement jeter de l'argent à cela, échelle verticale, pas nécessairement. 928 00:45:13,360 --> 00:45:16,920 Si vous allez in-- et vous pouvez aller en après les indices fact-- et ajouter, 929 00:45:16,920 --> 00:45:20,320 et il peut prendre quelques heures pour la base de données pour construire que de nouvelles données 930 00:45:20,320 --> 00:45:24,100 structure qui je l'ai mentionné plus tôt, vous pouvez toujours corriger cela après le fait, 931 00:45:24,100 --> 00:45:26,180 que ce soit l'endroit où vous commencer à distinguer 932 00:45:26,180 --> 00:45:28,830 bons designers de mauvais designers, pas seulement esthétiquement, 933 00:45:28,830 --> 00:45:32,972 mais la performance sage aussi bien. 934 00:45:32,972 --> 00:45:33,555 Des questions? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 Non? 937 00:45:37,480 --> 00:45:41,980 Donc, pour NoSQL, qui est l'autre type de base de données à laquelle je faisais allusion plus tôt, 938 00:45:41,980 --> 00:45:43,490 vous ne disposez pas des lignes et des colonnes. 939 00:45:43,490 --> 00:45:47,000 Au lieu de cela, vous auriez quelque chose qui ressemble un peu plus comme ça. 940 00:45:47,000 --> 00:45:48,630 Je vais utiliser la syntaxe commune. 941 00:45:48,630 --> 00:45:51,270 Les accolades se trouvent être utilisé ici beaucoup. 942 00:45:51,270 --> 00:45:55,400 Vous pourriez avoir quelque chose comme le premier nom est David, 943 00:45:55,400 --> 00:46:00,180 vous pourriez avoir la dernière nom est Malan, citations, 944 00:46:00,180 --> 00:46:07,530 vous pourriez avoir ID est-- excusez-moi, whoops-- ID est 1, 945 00:46:07,530 --> 00:46:13,410 email est malan@harvard.edu, et je ne la peine de taper le reste, puis 946 00:46:13,410 --> 00:46:14,380 d'autres choses. 947 00:46:14,380 --> 00:46:17,380 >> En d'autres termes, ceci est une représentation textuelle 948 00:46:17,380 --> 00:46:20,720 de ce que nous généralement appeler un objet dans un programme informatique. 949 00:46:20,720 --> 00:46:26,079 Et un objet est généralement juste un ensemble de paires de valeurs clés. 950 00:46:26,079 --> 00:46:27,370 Encore une fois, ce thème récurrent. 951 00:46:27,370 --> 00:46:30,440 Nous avons vu des paires de valeurs clé dans HTML, nous avons vu des paires de valeurs clés maintenant 952 00:46:30,440 --> 00:46:34,020 dans le contexte de bases de données, et nous vu des paires de valeurs clés dans le contexte 953 00:46:34,020 --> 00:46:35,970 de, je pense, un langage plus tôt aujourd'hui. 954 00:46:35,970 --> 00:46:36,890 Garde à venir. 955 00:46:36,890 --> 00:46:39,620 Et en effet, c'est vraiment quelles données se résume à, 956 00:46:39,620 --> 00:46:44,240 données et de métadonnées, ou des valeurs et les touches, respectivement. 957 00:46:44,240 --> 00:46:47,430 >> Ainsi, un non-relationnel la base de données, sur la base chose 958 00:46:47,430 --> 00:46:50,680 sur des objets, où vous Clump juste tout ensemble et le mettre 959 00:46:50,680 --> 00:46:55,640 dans la mémoire, serait généralement photo comme, ou pensé, comme cela. 960 00:46:55,640 --> 00:47:00,500 Et je vais laisser ça maintenant comme type d'approche alternative. 961 00:47:00,500 --> 00:47:03,750 Et on est pas nécessairement mieux que l'autre. 962 00:47:03,750 --> 00:47:07,310 En fait, très en vogue ces jours sont des systèmes de base de données 963 00:47:07,310 --> 00:47:11,942 comme MongoDB et Redis et quelques d'autres outils, disponibles gratuitement, 964 00:47:11,942 --> 00:47:13,400 mais ils sont de plus en plus en vogue. 965 00:47:13,400 --> 00:47:18,850 En partie parce qu'ils offrent plus propose plus de ces approches tabulaires, 966 00:47:18,850 --> 00:47:20,850 mais aussi parce qu'ils sont un peu plus facile à utiliser, 967 00:47:20,850 --> 00:47:24,099 parce que vous ne devez pas penser aussi dur sur beaucoup de ces décisions de conception. 968 00:47:24,099 --> 00:47:25,970 Donc, avantages et inconvénients. 969 00:47:25,970 --> 00:47:29,740 Ainsi se rendent compte qu'il ya des options au-delà de ce que nous venons de passer du temps sur. 970 00:47:29,740 --> 00:47:32,310 >> Donc, nous allons le faire. 971 00:47:32,310 --> 00:47:37,870 Faisons un peu de transition retour maintenant à la programmation web, 972 00:47:37,870 --> 00:47:40,470 de sorte que nous sorte de conclure aujourd'hui avec quelque chose 973 00:47:40,470 --> 00:47:43,930 qui est un peu pratique, le remplissage certaines lacunes d'hier. 974 00:47:43,930 --> 00:47:45,340 Laisse-moi aller à cette première. 975 00:47:45,340 --> 00:47:49,310 Donc, rappeler que, hier, nous avons eu quelques canonique HTML 976 00:47:49,310 --> 00:47:55,110 pages qui avaient initialement, seulement HTML, puis secondairement avait CSS, 977 00:47:55,110 --> 00:47:56,620 feuilles de style en cascade. 978 00:47:56,620 --> 00:47:59,830 Ceci est une nouvelle variable que nous ne l'avons pas voir hier, ou insister sur, 979 00:47:59,830 --> 00:48:01,490 soi-disant balise script. 980 00:48:01,490 --> 00:48:05,830 >> Il s'avère que vous pouvez réellement intégrer un langage appelé JavaScript dans votre site Web 981 00:48:05,830 --> 00:48:08,310 la page et de faire votre web pages font quelque chose. 982 00:48:08,310 --> 00:48:09,710 Alors qu'est-ce que je veux dire par là? 983 00:48:09,710 --> 00:48:12,630 Eh bien, laissez-moi aller de l'avant et juste emprunter ce code pour un moment. 984 00:48:12,630 --> 00:48:15,860 Je vais aller dans Cloud9, pas besoin aller juste encore là-bas vous-mêmes, 985 00:48:15,860 --> 00:48:21,350 et je vais appeler ce alert.HTML. 986 00:48:21,350 --> 00:48:23,650 Je vais coller dans mon dossier ici. 987 00:48:23,650 --> 00:48:32,070 Et juste pour clarifier ce que je l'ai fait, laissez moi aller à cette adresse et aller à alerter, 988 00:48:32,070 --> 00:48:33,870 et vous voyez le Bonjour tout le monde. 989 00:48:33,870 --> 00:48:35,440 >> Mais cela est un peu décevante. 990 00:48:35,440 --> 00:48:37,410 je veux faire quelque chose un peu différent. 991 00:48:37,410 --> 00:48:40,610 Donc, je vais effectivement faire. 992 00:48:40,610 --> 00:48:43,820 Je vais ici e, et entre mes balises de script, 993 00:48:43,820 --> 00:48:53,460 dire alert ( 'bonjour, monde »); donc un avis il est un peu bâclée, mais j'ai HTML, 994 00:48:53,460 --> 00:48:56,180 à l'intérieur duquel se trouve un langage appelé JavaScript, 995 00:48:56,180 --> 00:48:59,420 et ceci est ce qu'on appelle un appel de fonction ou de la procédure d'appel. 996 00:48:59,420 --> 00:49:04,500 Ceci est un verbe, littéralement, dans ce cas, et j'invoque la fonctionnalité de code 997 00:49:04,500 --> 00:49:06,310 que quelqu'un d'autre a écrit. 998 00:49:06,310 --> 00:49:09,630 >> De telle sorte que la fonctionnalité est un alerte, alors allons-y vers cette page 999 00:49:09,630 --> 00:49:14,046 maintenant et cliquez sur reload, et maintenant vous voir un peu d'interactivité. 1000 00:49:14,046 --> 00:49:15,420 Il est une sorte de vieille école et laid. 1001 00:49:15,420 --> 00:49:18,580 Cela vous rappelle genre de la pop-ups, peut-être, d'antan 1002 00:49:18,580 --> 00:49:22,030 mais il a fait faire quelque chose d'un peu plus programmatique. 1003 00:49:22,030 --> 00:49:26,940 >> Donc, plus que cela, nous allons faire quelque chose de plus intéressant. 1004 00:49:26,940 --> 00:49:30,980 Laisse-moi aller ici et me débarrasser de cela. 1005 00:49:30,980 --> 00:49:33,840 Et je vais aller de l'avant et créer une forme comme nous l'avons fait hier. 1006 00:49:33,840 --> 00:49:34,840 En fait, vous savez quoi? 1007 00:49:34,840 --> 00:49:37,350 Je vais aller dans google.html, que nous 1008 00:49:37,350 --> 00:49:43,027 commencé hier, qui ressemblait à ce, par l'intermédiaire duquel nous avons cherché chat 1009 00:49:43,027 --> 00:49:45,360 Mais remarquez qu'il ya une sorte de bug dans la version actuelle. 1010 00:49:45,360 --> 00:49:49,770 Il fonctionne pour les chats, mais supposons que Je ne coopérais pas et je tape rien, 1011 00:49:49,770 --> 00:49:53,290 et je clique simplement soumettre. 1012 00:49:53,290 --> 00:49:54,540 Ce genre de comportement est bizarre. 1013 00:49:54,540 --> 00:49:57,300 Il m'a fallu au réel Google, ne me donne pas un message d'erreur. 1014 00:49:57,300 --> 00:50:00,590 Je voudrais dire à l'utilisateur vous devez nous donner une valeur. 1015 00:50:00,590 --> 00:50:01,780 >> Alors, comment pouvons-nous faire cela? 1016 00:50:01,780 --> 00:50:06,790 Eh bien, laissez-moi revenir en Cloud9 et laissez-moi aller dans le haut de ma page 1017 00:50:06,790 --> 00:50:11,980 et ajouter une balise de script comme celui-ci, où Je vais taper un code JavaScript. 1018 00:50:11,980 --> 00:50:15,420 Et je vais faire ce qui suit. 1019 00:50:15,420 --> 00:50:22,910 Si (document.getelementByID-- et le rappel dont nous avons parlé plus tôt, 1020 00:50:22,910 --> 00:50:23,960 cette fonction. 1021 00:50:23,960 --> 00:50:25,310 Quel ID que je veux obtenir? 1022 00:50:25,310 --> 00:50:33,050 Je veux obtenir q, et je vais dire égale à rien, comme this-- 1023 00:50:33,050 --> 00:50:38,220 effectivement me laisser utiliser des guillemets doubles juste pour consistency-- est égal à rien, 1024 00:50:38,220 --> 00:50:46,650 puis alert ( "S'il vous plaît taper une requête") ici. 1025 00:50:46,650 --> 00:50:49,200 >> Je dois donc ce qui semble être quelque chose comme une condition. 1026 00:50:49,200 --> 00:50:51,410 Nous avons vu cette idée générale dans Scratch. 1027 00:50:51,410 --> 00:50:54,240 Il est comme un de ces casse-tête morceaux qui ressemblaient à cela. 1028 00:50:54,240 --> 00:50:55,780 Et que dis-je? 1029 00:50:55,780 --> 00:50:59,520 Eh bien, ici-bas, notez que je suis va faire ce qui suit. 1030 00:50:59,520 --> 00:51:02,790 Je vais donner ce formulaire domaine, non seulement un nom de q, qui 1031 00:51:02,790 --> 00:51:06,630 est ce qui est passé à Google, mais je suis va lui donner un identifiant local, 1032 00:51:06,630 --> 00:51:07,630 également appelé q. 1033 00:51:07,630 --> 00:51:11,780 Mais je pourrais appeler cela tout ce que je voulez, je vais juste garder les choses simples 1034 00:51:11,780 --> 00:51:14,570 et aussi l'appeler q, juste pour la simplicité. 1035 00:51:14,570 --> 00:51:17,650 >> Et maintenant, je vais faire quelque chose d'un peu plus. 1036 00:51:17,650 --> 00:51:22,600 Sur les champs de formulaire ici, je vais ajouter ce qu'on appelle un gestionnaire d'événements. 1037 00:51:22,600 --> 00:51:32,260 Sur soumettre, je veux appeler une fonction appelée valider. 1038 00:51:32,260 --> 00:51:35,520 Cela n'existe pas encore, cela mot, ou ce verbe valider, 1039 00:51:35,520 --> 00:51:38,560 parce que ce que je vais faire ici est maintenant ajouter un peu de code. 1040 00:51:38,560 --> 00:51:42,200 >> Je vais dire la fonction validate. 1041 00:51:42,200 --> 00:51:48,280 Je vais mettre en retrait cela et ajouter un autre accolade ici et un autre ici. 1042 00:51:48,280 --> 00:51:50,110 Pensez à ce que cela est en train de faire. 1043 00:51:50,110 --> 00:51:54,210 Je maintenant-- penser à cela comme créé mon propre morceau de puzzle qui n'a pas précédemment 1044 00:51:54,210 --> 00:51:57,440 existe, et je l'ai appelé ce puzzle reconstituer la pièce validate de puzzle. 1045 00:51:57,440 --> 00:52:01,620 Son but dans la vie est d'exécuter les quatre lignes de code à l'intérieur de celui-ci. 1046 00:52:01,620 --> 00:52:04,940 >> Si document.getElementById donc conceptuellement, 1047 00:52:04,940 --> 00:52:09,380 qui va entrer dans l'élément, l'élément HTML dont unique, 1048 00:52:09,380 --> 00:52:12,930 idée est juste q, puis même si la syntaxe est un peu bizarre, 1049 00:52:12,930 --> 00:52:16,430 que l'égalité est égal signifie simplement égaux. 1050 00:52:16,430 --> 00:52:20,950 Cela signifie donc que si l'élément de la identifiant unique de q, lorsque obtenu, 1051 00:52:20,950 --> 00:52:25,700 n'a pas de valeur, il est égal à juste entre guillemets, rien là-dedans, 1052 00:52:25,700 --> 00:52:27,170 alors qu'est-ce que je veux faire? 1053 00:52:27,170 --> 00:52:29,360 Je veux crier à l'utilisateur. 1054 00:52:29,360 --> 00:52:31,710 >> Et nous ne rentrerons pas les détails ici. 1055 00:52:31,710 --> 00:52:32,960 Je vais retourner false. 1056 00:52:32,960 --> 00:52:34,380 C'est une erreur. 1057 00:52:34,380 --> 00:52:38,746 Sinon, je vais retourner vrai. 1058 00:52:38,746 --> 00:52:40,120 Donc, soit il a travaillé ou qu'il n'a pas. 1059 00:52:40,120 --> 00:52:41,800 Faux ou vrai. 1060 00:52:41,800 --> 00:52:47,820 Et maintenant, si je ne fais aucune erreur, permettez-moi de sauver ceci et recharger cela. 1061 00:52:47,820 --> 00:52:50,940 Et laissez-moi juste vérifiez que Je ne suis pas, en fait, faire des fautes de frappe, 1062 00:52:50,940 --> 00:52:52,690 donc je ne me suis pas embarrasser. 1063 00:52:52,690 --> 00:52:54,240 Voyons voir si cela fonctionne. 1064 00:52:54,240 --> 00:52:56,930 >> Alors maintenant, je vais taper les chats. 1065 00:52:56,930 --> 00:52:59,421 Il fonctionne toujours, ou des travaux de la moitié, au moins. 1066 00:52:59,421 --> 00:53:02,170 Maintenant, permettez-moi de le recharger, et maintenant laissez moi essayer de soumettre sans taper 1067 00:53:02,170 --> 00:53:05,860 anything-- damn it, il a éclaté. 1068 00:53:05,860 --> 00:53:06,430 Un moment. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Permettez-moi d'ouvrir la console, [Inaudible] log, rechargez la page. 1071 00:53:12,660 --> 00:53:13,576 Permettez-moi d'essayer encore une fois. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 Oh, bon sang. 1074 00:53:17,501 --> 00:53:18,000 J'ai oublié. 1075 00:53:18,000 --> 00:53:18,630 J'ai fait une faute de frappe. 1076 00:53:18,630 --> 00:53:20,760 Je me rappelle ce qu'il est. 1077 00:53:20,760 --> 00:53:21,350 .valeur. 1078 00:53:21,350 --> 00:53:27,060 Je voulais dire si la valeur de l'élément dont l'ID est q 1079 00:53:27,060 --> 00:53:29,800 est égale à celle, puis crier à l'utilisateur. 1080 00:53:29,800 --> 00:53:31,870 >> Alors maintenant, permettez-moi de tenir à nouveau mon souffle. 1081 00:53:31,870 --> 00:53:33,480 Et c'est parti. 1082 00:53:33,480 --> 00:53:34,130 Nous y voilà. 1083 00:53:34,130 --> 00:53:35,010 S'il vous plaît taper une requête. 1084 00:53:35,010 --> 00:53:36,840 Donc, ça ne me laisser passer. 1085 00:53:36,840 --> 00:53:40,210 Je peux être une sorte de ludique avec cela, et au lieu de vérifier aucune valeur, 1086 00:53:40,210 --> 00:53:46,720 Je peux dire quelque chose comme, pas plus de recherche pour les chats, 1087 00:53:46,720 --> 00:53:51,150 et maintenant nous pouvons simplement laisser plus ludique la recherche de l'utilisateur pour les chiens s'il ou elle 1088 00:53:51,150 --> 00:53:57,490 veut, ou si je vais ici et chercher des chats, maintenant je ne peux pas. 1089 00:53:57,490 --> 00:53:58,690 >> Alors, quel est l'emporter ici? 1090 00:53:58,690 --> 00:54:03,010 Donc un, nous avons introduit dans notre monde de HTML et CSS, 1091 00:54:03,010 --> 00:54:04,320 fonctionnalité de programmation. 1092 00:54:04,320 --> 00:54:06,300 Je peux effectivement maintenant prendre des décisions dans le code. 1093 00:54:06,300 --> 00:54:10,570 Auparavant, tout ce que je pouvais faire est de marquer le contenu textuel ou graphique contenu 1094 00:54:10,570 --> 00:54:13,080 et lui dire ce qu'il faut comme et où afficher. 1095 00:54:13,080 --> 00:54:16,650 Maintenant, je peux effectivement demander les questions de la page Web 1096 00:54:16,650 --> 00:54:20,010 et prendre des décisions fondées là-dessus, et invite l'utilisateur 1097 00:54:20,010 --> 00:54:22,780 si je dois crier à lui. 1098 00:54:22,780 --> 00:54:28,740 >> Donc, nous allons essayer quelque chose sur notre propre avec cela. 1099 00:54:28,740 --> 00:54:33,350 Allez-y, laissez-moi ouvrir la diapositive suivante ici, et juste souligner une chose. 1100 00:54:33,350 --> 00:54:37,250 Tout comme avec CSS, nous pouvons factoriser notre code JavaScript dans un fichier séparé, 1101 00:54:37,250 --> 00:54:40,660 vous pouvez faire la même chose avec JavaScript comme avec CSS. 1102 00:54:40,660 --> 00:54:44,520 Et vous utilisez que l'utilisation d'une source attribut de la balise de script. 1103 00:54:44,520 --> 00:54:46,540 Mais nous ne compliquer les choses pour le moment. 1104 00:54:46,540 --> 00:54:50,440 Au lieu de cela, si vous pouviez aller à pas cette page, 1105 00:54:50,440 --> 00:55:02,690 mais-- permettez-moi de passer ceci autour de order-- aller, si vous pouviez, cette page ici. 1106 00:55:02,690 --> 00:55:03,592 Cette URL ici. 1107 00:55:03,592 --> 00:55:04,550 Il est dans les diapositives d'aujourd'hui. 1108 00:55:04,550 --> 00:55:07,133 Vous pourriez avoir à recharger parce J'ai ajouté quelques chose. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> Mais il y aller là où quelques énigmes attendent. 1111 00:55:13,890 --> 00:55:16,670 Et cela va nous donner une chance, dans un contexte un peu plus de plaisir, 1112 00:55:16,670 --> 00:55:20,610 barboter avec un peu de JavaScript. 1113 00:55:20,610 --> 00:55:25,505 Et quand vous y arrivez, Je vais vous expliquer ce qui l'attend. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Obtenez vert. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Set bleu. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Règle verte, fixe rouge. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 Oops. 1122 00:56:20,220 --> 00:56:22,330 Pardon. 1123 00:56:22,330 --> 00:56:27,630 >> Ceci est la mesure de nos documentation pour relever ce défi. 1124 00:56:27,630 --> 00:56:29,920 Et cela va fonctionner comme suit. 1125 00:56:29,920 --> 00:56:33,340 Donc ce que vous avez sur ce page est tout un tas 1126 00:56:33,340 --> 00:56:38,024 des images casse-tête par un copain à l'Université de Stanford. 1127 00:56:38,024 --> 00:56:41,190 Donc, ce que vous voyez ici est presque sorte de l'un de ces casse-tête pour les yeux magiques, 1128 00:56:41,190 --> 00:56:43,815 mais si vous venez de regarder fixement, rien ne va sortir de vous. 1129 00:56:43,815 --> 00:56:46,000 Au contraire, quelque chose est caché dans cette image. 1130 00:56:46,000 --> 00:56:47,790 Et il est caché de la manière suivante. 1131 00:56:47,790 --> 00:56:51,740 Images, comme vous le savez, peut être composée de seulement trois couleurs. 1132 00:56:51,740 --> 00:56:53,346 Du rouge, du bleu et du vert. 1133 00:56:53,346 --> 00:56:55,220 Et nous pouvons faire toute la couleurs de l'arc-en 1134 00:56:55,220 --> 00:56:57,570 en mélangeant ces trois couleurs en quelque sorte. 1135 00:56:57,570 --> 00:57:01,940 >> Donc, cela ressemble surtout vert et bleu, mais comme Nick dit ici, 1136 00:57:01,940 --> 00:57:04,060 cette image de fer de puzzle est un puzzle. 1137 00:57:04,060 --> 00:57:06,780 Il contient une image de quelque chose célèbre, cependant, 1138 00:57:06,780 --> 00:57:08,310 l'image a été déformée. 1139 00:57:08,310 --> 00:57:11,500 L'objet est célèbre dans les valeurs de rouge. 1140 00:57:11,500 --> 00:57:13,810 valeurs Toutefois, le rouge ont tous été divisé par 10. 1141 00:57:13,810 --> 00:57:16,230 Donc, ils sont trop petits par un facteur de 10. 1142 00:57:16,230 --> 00:57:18,280 En d'autres termes, Nick a pris une image originale, 1143 00:57:18,280 --> 00:57:21,500 et il désaturé tous du rouge de celui-ci, 1144 00:57:21,500 --> 00:57:23,850 l'abaissement de la quantité de rouge encre, si vous voulez, en elle. 1145 00:57:23,850 --> 00:57:26,060 >> Les valeurs bleues et vertes sont tous à sens, 1146 00:57:26,060 --> 00:57:30,000 des valeurs aléatoires, aka bruit conçus à obscurcir l'image réelle. 1147 00:57:30,000 --> 00:57:32,250 Alors, que Nick a fait était-il atténué le rouge puis 1148 00:57:32,250 --> 00:57:34,380 il a juste jeté au hasard quantités de bleu et vert 1149 00:57:34,380 --> 00:57:37,590 à l'image de type obscure ce qui est effectivement toujours là. 1150 00:57:37,590 --> 00:57:41,089 Vous devez annuler ces distorsions pour révéler l'image. 1151 00:57:41,089 --> 00:57:44,255 Tout d'abord, définir toutes les valeurs bleues et vertes à zéro pour les sortir de la voie, 1152 00:57:44,255 --> 00:57:48,700 et regardez le résultat. alors multiplier chaque valeur rouge de 10, 1153 00:57:48,700 --> 00:57:51,720 mise à l'échelle de retour jusqu'à environ sa valeur finale. 1154 00:57:51,720 --> 00:57:53,035 Quel est le fameux objet? 1155 00:57:53,035 --> 00:57:57,920 >> Donc, vous avez tous ce rectangle dans votre navigateur en ce moment. 1156 00:57:57,920 --> 00:58:00,830 Et remarquez qu'il ya un certain le code de démarrage, pour ainsi dire. 1157 00:58:00,830 --> 00:58:04,370 Ceci est du code JavaScript qui Nick a écrit pour vous. 1158 00:58:04,370 --> 00:58:07,250 Et remarquez qu'il ya une ligne au milieu qui 1159 00:58:07,250 --> 00:58:10,380 commence par une barre oblique, qui est ce qui est généralement appelé un commentaire. 1160 00:58:10,380 --> 00:58:14,660 Cela signifie qu'il est une phrase pour le programmeur qui n'a pas de signification fonctionnelle. 1161 00:58:14,660 --> 00:58:16,520 Il est juste un repère visuel à l'humain. 1162 00:58:16,520 --> 00:58:18,670 >> Ainsi, vous pouvez aller de l'avant et supprimer simplement cette ligne, 1163 00:58:18,670 --> 00:58:22,214 et être super prudent de ne pas supprimer ou changer quoi que ce soit d'autre. 1164 00:58:22,214 --> 00:58:25,130 Et permettez-moi de vous guider à travers ce que ce code fait et je vais laisser 1165 00:58:25,130 --> 00:58:28,580 à vous de comprendre l'image secret. 1166 00:58:28,580 --> 00:58:32,226 Cette première ligne ici que je viens surligné vous donne ce qui suit. 1167 00:58:32,226 --> 00:58:34,100 Sur la gauche, vous avez ce qu'on appelle 1168 00:58:34,100 --> 00:58:39,140 une variable que Nick a arbitrairement, mais raisonnablement appelé im pour l'image. 1169 00:58:39,140 --> 00:58:41,660 Du côté de la main droite de ce signe égal, 1170 00:58:41,660 --> 00:58:45,240 il dit me donner une nouvelle entre guillemets "simple image". 1171 00:58:45,240 --> 00:58:49,680 >> Simple image, dans ce contexte, est ce qu'on appelle une classe, eh bien, 1172 00:58:49,680 --> 00:58:53,910 il est un peu comme un class-- techniquement un prototype-- mais vraiment, 1173 00:58:53,910 --> 00:58:58,000 cela me donne un nouvel objet, dont le contenu sont le fichier, 1174 00:58:58,000 --> 00:58:59,610 fer-puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 En d'autres termes, Nick a créé cette notion d'une simple image 1176 00:59:03,190 --> 00:59:05,920 afin que nous puissions, pour pédagogique fins, jouer avec l'image 1177 00:59:05,920 --> 00:59:09,790 et changer son rouge, les valeurs vertes et bleues. 1178 00:59:09,790 --> 00:59:11,750 >> Et comment faisons-nous cela? 1179 00:59:11,750 --> 00:59:15,360 Cette syntaxe quelque peu cryptique ici est un peu comme le bloc de répétition 1180 00:59:15,360 --> 00:59:19,140 que certains d'entre vous ont vu dans Scratch tôt aujourd'hui, où vous pouvez répéter 10 fois. 1181 00:59:19,140 --> 00:59:22,220 Dans ce cas, Nick n'a pas hardcoded un nombre comme 10. 1182 00:59:22,220 --> 00:59:28,020 Au lieu de cela, il dit, initialiser une variable appelée x à 0, 1183 00:59:28,020 --> 00:59:33,180 vérifier si x est inférieur à la largeur de l'image. 1184 00:59:33,180 --> 00:59:38,160 >> Et pour être plus appropriée, l'image est le variable point signifie aller à l'intérieur de celui-ci 1185 00:59:38,160 --> 00:59:40,900 et obtenir sa largeur, et puis paren ouverts, fermés 1186 00:59:40,900 --> 00:59:43,687 paren est juste façon de programmeur de dire cela est une fonction. 1187 00:59:43,687 --> 00:59:44,520 Ceci est une procédure. 1188 00:59:44,520 --> 00:59:46,430 Ceci est une fonctionnalité quelqu'un d'autre a écrit. 1189 00:59:46,430 --> 00:59:48,570 Utilisez-le et donnez-moi une réponse. 1190 00:59:48,570 --> 00:59:53,610 Et puis x ++ est une façon élégante de dire, une fois que vous l'avez fait une fois, 1191 00:59:53,610 --> 00:59:55,850 incrémenter x par 1. 1192 00:59:55,850 --> 00:59:58,760 En d'autres termes, cette est la manière d'un programmeur 1193 00:59:58,760 --> 01:00:05,760 d'induire une boucle qui est va parcourir 1194 01:00:05,760 --> 01:00:10,410 toutes les colonnes d'une image. 1195 01:00:10,410 --> 01:00:14,790 >> Une image est juste une grille de des points, des lignes et des colonnes de points. 1196 01:00:14,790 --> 01:00:18,270 Ceci est une façon d'itérer sur l'ensemble de ces colonnes. 1197 01:00:18,270 --> 01:00:20,770 Et à l'intérieur, Pendant ce temps, nous itérer 1198 01:00:20,770 --> 01:00:24,030 sur les hauteurs, ici et ici et ici. 1199 01:00:24,030 --> 01:00:29,442 Donc, ceci est juste une façon de Traipsing, presque comme une vieille machine à écrire à l'école, 1200 01:00:29,442 --> 01:00:32,230 pour aller un peu plus de la toute l'image itérative. 1201 01:00:32,230 --> 01:00:36,370 Même c'est pas tout à fait à part entière clair, il suffit de prendre sur la foi pour l'instant, 1202 01:00:36,370 --> 01:00:38,880 que ces trois lignes du code ensemble sont 1203 01:00:38,880 --> 01:00:43,090 va vous permettre de regarder itérative à chaque pixel, chaque point de l'image. 1204 01:00:43,090 --> 01:00:43,790 >> Qu'est-ce qu'un pixel? 1205 01:00:43,790 --> 01:00:46,250 Eh bien, pour être clair, si nous regardons à l'original et un zoom avant, 1206 01:00:46,250 --> 01:00:49,060 si vous mettez vraiment vos yeux à l'écran de l'ordinateur, qui est 1207 01:00:49,060 --> 01:00:53,510 juste un tas de points, plusieurs mille points entassés là. 1208 01:00:53,510 --> 01:00:56,180 Et que faites-vous faire? 1209 01:00:56,180 --> 01:00:59,240 Chacun de ces points, une définition finale, 1210 01:00:59,240 --> 01:01:06,350 est le résultat de ce qui est généralement appelé RVB, rouge, vert, bleu, qui 1211 01:01:06,350 --> 01:01:09,940 de plus, peuvent être combinés pour vous donner un certain nombre de couleurs. 1212 01:01:09,940 --> 01:01:13,200 >> En fait, si vous vous souvenez de beaucoup il y a, de nombreuses années, 1213 01:01:13,200 --> 01:01:17,320 écrans de projection comme ces choses l'habitude d'avoir non pas un objectif mais trois. 1214 01:01:17,320 --> 01:01:20,700 L'un d'eux cracher lumière rouge, l'un des cracher le feu vert, l'un d'entre eux 1215 01:01:20,700 --> 01:01:21,600 cracher la lumière bleue. 1216 01:01:21,600 --> 01:01:24,391 Et si vous étiez dans un collège comme je l'étais où ils étaient jamais 1217 01:01:24,391 --> 01:01:27,000 correctement aligné, vous étiez toujours regarder des films d'histoire 1218 01:01:27,000 --> 01:01:29,770 qui étaient légèrement déformées, parce que les trois couleurs ne sont pas 1219 01:01:29,770 --> 01:01:30,970 combinant correctement. 1220 01:01:30,970 --> 01:01:36,330 >> Mais il se trouve que chacun des ces valeurs de rouge, vert et bleu, 1221 01:01:36,330 --> 01:01:37,980 peut avoir un numéro qui leur est associé. 1222 01:01:37,980 --> 01:01:42,500 Par exemple, 0 pour le rouge signifie pas rouge, 0 pour le vert signifie pas vert, 1223 01:01:42,500 --> 01:01:45,120 et 0 pour le bleu signifie pas bleu. 1224 01:01:45,120 --> 01:01:49,403 Donc, si vous avez pas de rouge, pas de vert, et pas de bleu, de quelle couleur avez-vous? 1225 01:01:49,403 --> 01:01:51,009 >> AUDIENCE: [Inaudible] 1226 01:01:51,009 --> 01:01:52,800 DAVID MALAN: Vous feriez espère, il est blanc. 1227 01:01:52,800 --> 01:01:55,333 Malheureusement, ce operates-- désolé? 1228 01:01:55,333 --> 01:01:56,380 >> AUDIENCE: [Inaudible] 1229 01:01:56,380 --> 01:01:58,630 DAVID MALAN: Donc, vous avez réellement avoir noir, dans ce cas. 1230 01:01:58,630 --> 01:02:01,530 Donc, si vous avez aucune de ces couleurs est activée, vous avez noir. 1231 01:02:01,530 --> 01:02:06,510 Toutefois, si vous avez, disons beaucoup d'entre eux, comme beaucoup de rouge, 255 de celui-ci, 1232 01:02:06,510 --> 01:02:10,340 beaucoup de vert, et beaucoup de bleu, qui est blanc. 1233 01:02:10,340 --> 01:02:12,230 Donc, ce sont les deux extrêmes. 1234 01:02:12,230 --> 01:02:17,460 Donc, par cette logique, si j'ai beaucoup de rouge et pas de vert et pas de bleu, 1235 01:02:17,460 --> 01:02:18,485 quelle couleur est-ce? 1236 01:02:18,485 --> 01:02:19,360 AUDIENCE: [Inaudible] 1237 01:02:19,360 --> 01:02:20,610 DAVID MALAN: Oui, évidemment. 1238 01:02:20,610 --> 01:02:25,940 Et puis pas de rouge, beaucoup de vert, pas de bleu, puis 1239 01:02:25,940 --> 01:02:29,590 si vous have-- bien, nous allons terminer elle, juste parce que, mais cela, bien sûr, 1240 01:02:29,590 --> 01:02:31,350 maintenant, est bleu. 1241 01:02:31,350 --> 01:02:33,030 Et maintenant, vous pouvez combiner ces couleurs. 1242 01:02:33,030 --> 01:02:36,430 Maintenant, en passant, si l'un d'entre vous ont jamais fait une certaine conception de site Web réel, 1243 01:02:36,430 --> 01:02:38,360 vous pourriez effectivement voir des symboles comme celui-ci. 1244 01:02:38,360 --> 01:02:42,030 FFF-- et effectivement, il est probablement même pas. 1245 01:02:42,030 --> 01:02:44,380 Il est FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Quiconque a déjà vu des F et E de et A through-- donc il se trouve, 1247 01:02:48,970 --> 01:02:52,970 nous avons parlé hier décimal, et aujourd'hui, le type d'environ décimal. 1248 01:02:52,970 --> 01:02:54,570 Aujourd'hui, nous avons parlé de binaire. 1249 01:02:54,570 --> 01:02:59,010 Tours dehors, hexadécimal est un très système de base commun à utiliser dans le calcul. 1250 01:02:59,010 --> 01:03:04,960 Binary est deux, décimal est 10, hex est 16. 1251 01:03:04,960 --> 01:03:08,640 Et il se trouve, comment faire vous comptez en hexadécimal? 1252 01:03:08,640 --> 01:03:11,620 Zéro, un, deux, trois, quatre, cinq, six, sept, huit, 1253 01:03:11,620 --> 01:03:14,730 neuf, qu'est-ce que vous utilisez après neuf? 1254 01:03:14,730 --> 01:03:16,600 Quel est le prochain numéro? 1255 01:03:16,600 --> 01:03:19,180 Nous avons déjà utilisé zéro. 1256 01:03:19,180 --> 01:03:20,570 J'ai besoin 16 d'entre eux. 1257 01:03:20,570 --> 01:03:25,770 Zéro, un, deux, trois, quatre, cinq, six, sept, huit, neuf, 1258 01:03:25,770 --> 01:03:27,520 vous avez besoin d'une certaine convention arbitraire. 1259 01:03:27,520 --> 01:03:30,810 >> Et ce que l'humanité a décidé un certain temps il y a que, après neuf vient la lettre 1260 01:03:30,810 --> 01:03:34,450 A puis B puis C. Ainsi, le façon dont vous comptez en hexadécimal 1261 01:03:34,450 --> 01:03:37,040 est égal à zéro, un, deux, trois, quatre, cinq, six, sept, huit, neuf, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, et que comptera vous tout le chemin, il se trouve, à 15. 1263 01:03:42,880 --> 01:03:47,850 Donc, de zéro à 15 est égal à zéro par F. Maintenant, pourquoi est-ce important? 1264 01:03:47,850 --> 01:03:51,570 Eh bien, quand vous avez deux F de, voilà comment vous exprimez 255. 1265 01:03:51,570 --> 01:03:54,350 >> Donc, longue histoire courte, en le monde de Photoshop, 1266 01:03:54,350 --> 01:03:57,299 que le logiciel de conception graphique, dans le monde du développement web, 1267 01:03:57,299 --> 01:03:59,590 où vous avez beaucoup de couleurs, bien sûr, de jouer avec, 1268 01:03:59,590 --> 01:04:02,350 souvent les programmeurs les exprimer en hexadécimal, 1269 01:04:02,350 --> 01:04:05,260 juste parce qu'il tend être un peu plus simple. 1270 01:04:05,260 --> 01:04:07,850 Même si, à première vue il est beaucoup plus complexe. 1271 01:04:07,850 --> 01:04:11,590 >> Ainsi, dans tous les cas, il est important parce que Nick à Stanford 1272 01:04:11,590 --> 01:04:15,100 nous a donné six morceaux de fonctionnalité que vous, les programmeurs en herbe, 1273 01:04:15,100 --> 01:04:17,060 auront désormais la possibilité d'utiliser. 1274 01:04:17,060 --> 01:04:19,960 Construit dans ce web page est six fonctions, 1275 01:04:19,960 --> 01:04:21,820 six procédures que Nick a écrit. 1276 01:04:21,820 --> 01:04:26,800 Trois d'entre eux vous obtiendrez un certain nombre, un rouge, un vert, ou une valeur bleue. 1277 01:04:26,800 --> 01:04:28,787 Trois d'entre eux mis cette valeur. 1278 01:04:28,787 --> 01:04:30,620 Et ces soulignement ne sont que des espaces réservés, 1279 01:04:30,620 --> 01:04:32,600 si vous avez besoin de savoir ce que ceux-ci sont. 1280 01:04:32,600 --> 01:04:36,240 >> Donc, avec ces trois fonctions, la première de ces choses 1281 01:04:36,240 --> 01:04:39,190 va être une coordonnée x, et la seconde de ces choses 1282 01:04:39,190 --> 01:04:40,700 va être une coordonnée y. 1283 01:04:40,700 --> 01:04:44,650 En d'autres mots, qui parsèment, qui pixel voulez-vous obtenir le vert, 1284 01:04:44,650 --> 01:04:46,480 obtenir le bleu, obtenir le rouge. 1285 01:04:46,480 --> 01:04:51,440 Et puis ici, cela va être x, cela va être une valeur y, 1286 01:04:51,440 --> 01:04:55,379 et cela va être un certain nombre. 1287 01:04:55,379 --> 01:04:57,170 Alors, faisons le premier ligne de cela ensemble 1288 01:04:57,170 --> 01:05:00,220 et puis je vais laisser à vous pour essayer d'en déduire le reste. 1289 01:05:00,220 --> 01:05:03,100 Donc, selon les instructions sur cette page, nous avons besoin 1290 01:05:03,100 --> 01:05:08,960 augmenter le rouge d'un facteur 10, et nous avons besoin d'enlever le vert 1291 01:05:08,960 --> 01:05:09,930 et enlever le bleu. 1292 01:05:09,930 --> 01:05:12,410 Commençons par les derniers scénarios. 1293 01:05:12,410 --> 01:05:17,760 Donc, si je veux, et je vais mettre en retrait en utilisant des espaces, 1294 01:05:17,760 --> 01:05:22,291 si je veux régler le rouge, le vert, ou la valeur de bleu, 1295 01:05:22,291 --> 01:05:23,540 Je vais faire ce qui suit. 1296 01:05:23,540 --> 01:05:31,280 >> Image, im.setBlue, puis sur la base de mes instructions ici, 1297 01:05:31,280 --> 01:05:36,700 ce que trois choses que je devrais tapez l'intérieur des parenthèses maintenant? 1298 01:05:36,700 --> 01:05:41,960 J'ai besoin de la valeur de x, la valeur y, et ce nombre 1299 01:05:41,960 --> 01:05:48,770 dois-je mettre ici si je veux me débarrasser du bleu, sur la base de cette histoire ici? 1300 01:05:48,770 --> 01:05:49,630 Juste zéro. 1301 01:05:49,630 --> 01:05:52,420 Si je veux pas de bleu, je suis juste va changer à zéro. 1302 01:05:52,420 --> 01:05:54,465 >> Maintenant, nous allons récapituler tout ce que cela fait. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 J'ai ici sur ces top deuxième et troisième lignes, 1305 01:06:01,170 --> 01:06:04,080 Je prétendais deux boucles, boucles imbriquées, si vous 1306 01:06:04,080 --> 01:06:08,360 aura, vont que pour avoir l'effet de progresser de gauche à droite, 1307 01:06:08,360 --> 01:06:11,590 de haut en bas sur l'ensemble de x les valeurs et toutes les valeurs y. 1308 01:06:11,590 --> 01:06:15,167 Parce qu'encore une fois, une image seulement une grille de lignes et de colonnes. 1309 01:06:15,167 --> 01:06:17,000 Donc, cela va obtenir débarrasser de tout le bleu. 1310 01:06:17,000 --> 01:06:18,627 Permettez-moi de laisser dans la ligne suivante pour vous. 1311 01:06:18,627 --> 01:06:20,043 Comment puis-je me débarrasser de tous les verts? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> AUDIENCE: [Inaudible] 1314 01:06:25,140 --> 01:06:26,151 >> DAVID MALAN: Nice. 1315 01:06:26,151 --> 01:06:28,260 >> AUDIENCE: [Inaudible] 1316 01:06:28,260 --> 01:06:30,850 >> DAVID MALAN: Nice. 1317 01:06:30,850 --> 01:06:36,120 Et je vais faire un zoom arrière, et juste prendre souciez de ce que vous avez pas fait de fautes de frappe. 1318 01:06:36,120 --> 01:06:39,390 Et si vous êtes à l'aise avec ce que vous avez fait, 1319 01:06:39,390 --> 01:06:42,936 allez-y et cliquez sur le bouton Exécuter / Enregistrer et voir ce que vous obtenez. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 Et encore une fois, nous avons fait seulement trois changements. 1322 01:06:48,690 --> 01:06:52,130 Nous avons supprimé cette première commenter et remplacé 1323 01:06:52,130 --> 01:06:53,575 avec ces deux lignes de code. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 Et il est OK si vous avez besoin de frapper Run / bouton Enregistrer une ou deux fois 1326 01:06:58,450 --> 01:07:01,190 de réparer quelque chose. 1327 01:07:01,190 --> 01:07:03,610 >> Et laissez-moi aussi un zoom avant sur mon le code de sorte que vous pouvez transcrire. 1328 01:07:03,610 --> 01:07:04,110 Bien. 1329 01:07:04,110 --> 01:07:08,720 Donc, je vois Andrew a ce semble être une erreur. 1330 01:07:08,720 --> 01:07:11,110 Il a juste un grand noir rectangle sur son écran. 1331 01:07:11,110 --> 01:07:13,120 Quelqu'un at-il un grand rectangle noir? 1332 01:07:13,120 --> 01:07:13,390 >> AUDIENCE: Oui. 1333 01:07:13,390 --> 01:07:14,360 >> DAVID MALAN: Big rectangle noir? 1334 01:07:14,360 --> 01:07:16,068 OK, donc nous allons réfléchir ce que cela signifie. 1335 01:07:16,068 --> 01:07:20,560 Nous avons dit que zéro, zéro, zéro, donc pas de vert, pas rouge, pas de bleu, 1336 01:07:20,560 --> 01:07:21,980 va vous donner noir. 1337 01:07:21,980 --> 01:07:24,467 Et il se trouve que la plupart de nos ordinateurs portables 1338 01:07:24,467 --> 01:07:25,800 il suffit de ne pas avoir assez de fidélité. 1339 01:07:25,800 --> 01:07:27,750 Vous ne pouvez pas tout à fait dire qu'il est en fait quelque chose. 1340 01:07:27,750 --> 01:07:30,340 Et si vous penchez genre de peut-être votre écran avant et en arrière, 1341 01:07:30,340 --> 01:07:32,850 peut-être voyez-vous un petit quelque chose là-bas? 1342 01:07:32,850 --> 01:07:34,820 Peut-être, en quelque sorte, en quelque sorte? 1343 01:07:34,820 --> 01:07:36,640 Il est pas tout à fait noir. 1344 01:07:36,640 --> 01:07:38,050 >> AUDIENCE: [Inaudible] 1345 01:07:38,050 --> 01:07:39,510 >> DAVID MALAN: Spoiler! 1346 01:07:39,510 --> 01:07:42,610 Il y a un peu de rouge, mais souvenez-vous des spécifications 1347 01:07:42,610 --> 01:07:44,940 du problème, Nick atténué vers le bas. 1348 01:07:44,940 --> 01:07:47,860 Il désaturé quelque peu, mais pas complètement à zéro. 1349 01:07:47,860 --> 01:07:51,670 Donc, si nous voulons agrandir le montant de rouge, je vous propose cette astuce. 1350 01:07:51,670 --> 01:07:53,750 Permettez-moi un zoom avant sur mon écran. 1351 01:07:53,750 --> 01:07:58,678 Et laissez-moi aller de l'avant et de dire montant est égal à im.getRed (x, y). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Cette ligne de code me donne ce qu'on appelle une variable. 1354 01:08:05,790 --> 01:08:09,643 J'ai arbitrairement, mais, sans doute, raisonnablement appelé ma variable ce que, 1355 01:08:09,643 --> 01:08:10,143 Apparemment? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Montant. 1358 01:08:14,340 --> 01:08:14,980 montant Just. 1359 01:08:14,980 --> 01:08:16,960 J'aurais appelé tout ce que je veux, mais je suis 1360 01:08:16,960 --> 01:08:19,490 en utilisant cette autre fonction que je l'ai décrit plus haut 1361 01:08:19,490 --> 01:08:25,359 pour obtenir la quantité de rouge à x virgule y. 1362 01:08:25,359 --> 01:08:27,520 Pourquoi ai-je fait cela? 1363 01:08:27,520 --> 01:08:30,004 Que voulez-vous faire ici? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Vous devez add-- 1366 01:08:33,619 --> 01:08:34,493 AUDIENCE: [Inaudible] 1367 01:08:34,493 --> 01:08:36,279 DAVID MALAN: Oui, peut-être multiplier par 10. 1368 01:08:36,279 --> 01:08:38,862 Et si vous ne savez pas cela, je suis aller de l'avant et de le faire. 1369 01:08:38,862 --> 01:08:42,060 Je vais aller de l'avant et par exemple, je veux que la quantité de rouge 1370 01:08:42,060 --> 01:08:46,550 Je veux être tout ce que est au rouge, 10 fois, 1371 01:08:46,550 --> 01:08:50,330 et l'étoile, l'astérisque sur votre clavier est the-- ne pas utiliser x. 1372 01:08:50,330 --> 01:08:51,569 Utilisez l'étoile. 1373 01:08:51,569 --> 01:08:55,350 Voilà comment vous multipliez les choses dans la plupart des langages de programmation. 1374 01:08:55,350 --> 01:08:59,790 >> Ainsi, selon l'intuition de Kareem, stockée dans cette variable appelée quantité, 1375 01:08:59,790 --> 01:09:03,649 est combien rouge que je veux à l'emplacement xy. 1376 01:09:03,649 --> 01:09:11,500 Comment, maintenant, ce que je fais cette pixel avoir ce numéro? 1377 01:09:11,500 --> 01:09:12,859 Vous avez déjà fait ça avant. 1378 01:09:12,859 --> 01:09:17,666 Vous définissez le vert et le bleu pour aucune valeur, à zéro. 1379 01:09:17,666 --> 01:09:18,540 AUDIENCE: [Inaudible] 1380 01:09:18,540 --> 01:09:20,040 DAVID MALAN: Oui, bien vous ne voulez pas à 10. 1381 01:09:20,040 --> 01:09:21,460 Vous avez déjà fait le calcul ici. 1382 01:09:21,460 --> 01:09:24,779 Donc, nous obtenons la valeur de rouge, qui est un faible nombre, sans doute. 1383 01:09:24,779 --> 01:09:26,180 Nous multiplier par 10. 1384 01:09:26,180 --> 01:09:29,139 Ce que vous voulez faire avec le montant variable maintenant? 1385 01:09:29,139 --> 01:09:30,130 >> AUDIENCE: [Inaudible] 1386 01:09:30,130 --> 01:09:30,880 >> DAVID MALAN: Nice. 1387 01:09:30,880 --> 01:09:34,616 Alors im.set-- quoi? 1388 01:09:34,616 --> 01:09:35,640 >> AUDIENCE: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> DAVID MALAN: setRed, à l'emplacement xy. 1390 01:09:39,760 --> 01:09:40,260 Ouais. 1391 01:09:40,260 --> 01:09:41,200 Et juste montant. 1392 01:09:41,200 --> 01:09:44,257 En d'autres termes, une variable est un espace réservé temporaire 1393 01:09:44,257 --> 01:09:45,840 que vous pouvez mettre tout ce que vous voulez dans. 1394 01:09:45,840 --> 01:09:48,680 Il nous arrive à mettre un nombre en elle, en ce moment. 1395 01:09:48,680 --> 01:09:51,569 Nous avons multiplié par 10 pour le rendre plus grand. 1396 01:09:51,569 --> 01:09:56,480 Et maintenant je remplace cette variable comme ce troisième argument, ou d'entrée 1397 01:09:56,480 --> 01:09:57,810 de mettre en rouge. 1398 01:09:57,810 --> 01:10:00,440 Et pour que une fois que vous terminer que, et de prendre note 1399 01:10:00,440 --> 01:10:02,330 des points-virgules et les parenthèses. 1400 01:10:02,330 --> 01:10:06,290 >> Allez-y et cliquez sur exécuter / enregistrer à nouveau, et vous 1401 01:10:06,290 --> 01:10:10,690 devrait voir, comme par magie, ce qui était en fait Là. [? Arwa,?] Ce qui est là? 1402 01:10:10,690 --> 01:10:16,412 La Tour Eiffel en part entière rouge, pas tout à fait sombre. 1403 01:10:16,412 --> 01:10:17,870 il devrait être plus évident maintenant, oui? 1404 01:10:17,870 --> 01:10:18,840 D'ACCORD. 1405 01:10:18,840 --> 01:10:20,215 Et Andrew, boîte pas plus noir? 1406 01:10:20,215 --> 01:10:21,090 AUDIENCE: [Inaudible] 1407 01:10:21,090 --> 01:10:22,180 DAVID MALAN: Très bien. 1408 01:10:22,180 --> 01:10:23,610 Donc, je vais garder cela sur l'écran. 1409 01:10:23,610 --> 01:10:27,010 Si vous voulez jouer avec cette plus tard, je vais recréer pour vous. 1410 01:10:27,010 --> 01:10:29,140 Mais ce code ici a fait exactement cela. 1411 01:10:29,140 --> 01:10:31,460 Pourquoi faisons-nous pas un autre. 1412 01:10:31,460 --> 01:10:33,880 Permettez-moi de faire défiler vers le bas légèrement. 1413 01:10:33,880 --> 01:10:36,760 >> Donc dans ce cas, le projecteur ne pas vraiment faire justice. 1414 01:10:36,760 --> 01:10:40,486 Mais sur vos écrans, vous avez probablement avoir une boîte très rouge et très noir. 1415 01:10:40,486 --> 01:10:42,610 Cela, aussi, est un casse-tête qui montre quelque chose célèbre. 1416 01:10:42,610 --> 01:10:44,193 Cependant, l'image a été déformée. 1417 01:10:44,193 --> 01:10:47,740 L'image vraie, cette fois, est les valeurs bleues et vertes. 1418 01:10:47,740 --> 01:10:51,820 Cependant, ils ont tous été divisés par 20 conséquent, les valeurs sont très faibles. 1419 01:10:51,820 --> 01:10:54,660 Les valeurs rouges sont juste nombres aléatoires, le bruit. 1420 01:10:54,660 --> 01:10:57,190 Annuler ces distorsions pour révéler l'image vraie. 1421 01:10:57,190 --> 01:10:59,200 >> Alors Nick vous dit alors ce qu'il faut faire. 1422 01:10:59,200 --> 01:11:04,290 Définir les valeurs de rouge à zéro, et alors ne gâche pas ce qu'elle est. 1423 01:11:04,290 --> 01:11:07,110 Puis, multiplier le bleu et les valeurs vertes par 20. 1424 01:11:07,110 --> 01:11:09,820 Il est donc presque même programme comme avant, 1425 01:11:09,820 --> 01:11:11,380 mais vous inverser le processus. 1426 01:11:11,380 --> 01:11:13,780 Et je mettrai mon code de avant sur l'écran en cas 1427 01:11:13,780 --> 01:11:16,650 vous voulez vous y référer ou jouer davantage avec celui-là. 1428 01:11:16,650 --> 01:11:18,100 Permettez-moi un zoom avant sur ce point. 1429 01:11:18,100 --> 01:11:21,450 Mais l'image de cuivre résoudre puzzle, numéro deux. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> AUDIENCE: [Inaudible] 1432 01:11:40,580 --> 01:11:44,010 >> DAVID MALAN: OK, donc ce que je suis ne vais pas donner autant de conseils. 1433 01:11:44,010 --> 01:11:47,220 Je would-- oh, allons voyez, vous avez une faute de frappe ici. 1434 01:11:47,220 --> 01:11:49,621 Alors rappelez-vous, cela ici effectivement besoin d'y aller. 1435 01:11:49,621 --> 01:11:52,870 Donc, ce que je propose, si vous voulez se concentrer sur celui-ci, il y a la réponse. 1436 01:11:52,870 --> 01:11:57,060 Si vous voulez transcrire ce que devrait obtenir une première travail. 1437 01:11:57,060 --> 01:11:59,910 Et puis, vous pouvez l'utiliser comme inspiration pour le second. 1438 01:11:59,910 --> 01:12:02,230 Agréable. 1439 01:12:02,230 --> 01:12:02,730 Bien. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> Et pour les curieux, ceci est un exemple simple 1442 01:12:08,180 --> 01:12:11,080 d'une science ou un art appelé stéganographie, 1443 01:12:11,080 --> 01:12:14,100 l'art de cacher des informations dans les images. 1444 01:12:14,100 --> 01:12:16,890 En règle générale, les images peuvent être filigrané très flagrante 1445 01:12:16,890 --> 01:12:19,500 avec un logo dans le fond coin, mais il est clair, vous 1446 01:12:19,500 --> 01:12:22,070 peut être beaucoup plus sophistiqué à ce sujet et en fait 1447 01:12:22,070 --> 01:12:25,050 cacher d'autres images dans les images en quelque sorte avec cette technique. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Prenez 30 secondes, puis nous allons au moins annoncer ce que vous devriez voir. 1450 01:13:05,770 --> 01:13:08,330 Et je vais laisser la troisième l'un comme un exercice à la maison, 1451 01:13:08,330 --> 01:13:11,353 si vous souhaitez plus d'un contester ce week-end. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 Et je pense que Andrew pourrait ont obtenu le premier. 1454 01:13:20,390 --> 01:13:22,645 Quelle est la deuxième image, Andrew? 1455 01:13:22,645 --> 01:13:23,920 >> AUDIENCE: Statue de la Liberté. 1456 01:13:23,920 --> 01:13:28,500 >> DAVID MALAN: Statue de la Liberté sera la réponse cette fois-ci. 1457 01:13:28,500 --> 01:13:31,140 Donc, encore une fois, juste quelques simples Des exemples, dont l'objectif 1458 01:13:31,140 --> 01:13:35,040 est de vous donner une idée de la façon dont nous avons traduit Scratch picturale 1459 01:13:35,040 --> 01:13:40,410 blocs de plus ennuyeux et plus code compliqué, mais toutes les idées 1460 01:13:40,410 --> 01:13:42,980 sont toujours exactement les mêmes, mais avec l'introduction 1461 01:13:42,980 --> 01:13:48,380 maintenant de la notion d'une variable, étant capable de stocker quelque chose temporairement. 1462 01:13:48,380 --> 01:13:51,750 >> Faisons un plus de mains sur, juste pour se connecter maintenant les points 1463 01:13:51,750 --> 01:13:53,880 à quelque chose d'un peu plus du monde réel. 1464 01:13:53,880 --> 01:13:56,610 Lorsque vous êtes prêt, si vous pouviez aller à cette URL sur l'écran. 1465 01:13:56,610 --> 01:14:00,610 C'est aussi dans votre copie de la diapositives, developers.google.com/maps~~V~~singular~~3rd. 1466 01:14:00,610 --> 01:14:03,660 Nous allons effectivement faire quelque chose réel, pour ainsi dire, sur le web 1467 01:14:03,660 --> 01:14:07,600 en utilisant l'API Google Maps, ou Interface de programmation d'applications, 1468 01:14:07,600 --> 01:14:08,940 de la façon suivante. 1469 01:14:08,940 --> 01:14:12,341 >> Google, comme de nombreuses entreprises, fournit un grand nombre de fonctionnalités gratuit 1470 01:14:12,341 --> 01:14:14,840 que vous pouvez utiliser pour construire votre propres applications intéressantes. 1471 01:14:14,840 --> 01:14:18,890 En fait, si vous avez déjà utilisé Uber pour obtenir un taxi ou une voiture, 1472 01:14:18,890 --> 01:14:21,640 vous savez probablement que Uber a une carte et il montre des voitures sur elle. 1473 01:14:21,640 --> 01:14:24,870 Autrement dit, le mieux que je peux dire, Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 Ils utilisent en fait les cartes de Google, mais Uber est pas une société de cartographie, 1475 01:14:28,884 --> 01:14:31,050 ni que ce serait un problème particulièrement intéressant 1476 01:14:31,050 --> 01:14:33,510 pour résoudre au sommet de leur problème de service de voiture. 1477 01:14:33,510 --> 01:14:35,510 Et ils sont debout, à nouveau, sur les épaules 1478 01:14:35,510 --> 01:14:37,520 d'autres, Google dans ce cas. 1479 01:14:37,520 --> 01:14:42,850 Donc, ils utilisent les cartes de Google, mais leur propre services de voiture et autres caractéristiques. 1480 01:14:42,850 --> 01:14:47,770 >> Nous allons donc profiter de ce faire ce qui suit. 1481 01:14:47,770 --> 01:14:50,230 Et si je suis allé trop vite, appelez-moi plus dans un instant. 1482 01:14:50,230 --> 01:14:53,500 Heureux de récapituler certains de l'image des choses. 1483 01:14:53,500 --> 01:14:56,290 Vous devriez vous voir à une page comme ça. 1484 01:14:56,290 --> 01:14:58,230 Donc, la belle de Google, et ils sont parmi les meilleurs 1485 01:14:58,230 --> 01:15:01,364 de fournir non seulement des API, mais API gratuits que vous 1486 01:15:01,364 --> 01:15:02,780 peut jouer avec ou utiliser commercialement. 1487 01:15:02,780 --> 01:15:06,450 Ils ne commencent à vous charger si votre utilisation est élevé, mais je suis allé à venir à l'avance 1488 01:15:06,450 --> 01:15:10,490 et nous signé pour un compte gratuit qui, espérons-le, 10 ordinateurs 1489 01:15:10,490 --> 01:15:12,480 ne nous disqualifie pour soudainement. 1490 01:15:12,480 --> 01:15:14,320 Donc, nous espérons que cette démonstration fonctionnera. 1491 01:15:14,320 --> 01:15:18,840 >> Et remarquez qu'ils ont des API pour Android, iOS, les services Web et Web, 1492 01:15:18,840 --> 01:15:19,620 Quoique ce soit. 1493 01:15:19,620 --> 01:15:20,700 Concentrons-nous sur Internet. 1494 01:15:20,700 --> 01:15:26,560 Alors cliquez sur la case rose, web, et que vous mènera, nous l'espérons, à une page 1495 01:15:26,560 --> 01:15:27,630 ici. 1496 01:15:27,630 --> 01:15:29,335 Et ils ont tout un tas d'API. 1497 01:15:29,335 --> 01:15:31,210 Et il peut être un peu écrasante au premier abord, 1498 01:15:31,210 --> 01:15:33,000 mais je vais nous orienter à travers ce que nous voulons. 1499 01:15:33,000 --> 01:15:38,500 >> En haut à gauche est la carte Google Maps JavaScript API, l'API JavaScript. 1500 01:15:38,500 --> 01:15:40,380 Alors allez-y et cliquez sur celui-là. 1501 01:15:40,380 --> 01:15:49,360 Et cela vous mènera maintenant à la page suivante, des démos et des exemples de code. 1502 01:15:49,360 --> 01:15:51,190 Permettez-moi de zoom ici. 1503 01:15:51,190 --> 01:15:56,300 Et laissez-moi nous to-- défiler vers le bas à l'endroit où il est dit des étapes de démarrage rapide. 1504 01:15:56,300 --> 01:15:57,970 Votre écran doit ressembler à la mienne. 1505 01:15:57,970 --> 01:16:01,130 >> Et il y a deux étapes, obtenir une clé et commencer à développer. 1506 01:16:01,130 --> 01:16:04,190 Je l'ai déjà fait la première étape pour nous, obtenir une clé dite. 1507 01:16:04,190 --> 01:16:05,320 Et cela est une idée commune. 1508 01:16:05,320 --> 01:16:09,210 Une clé API est généralement juste un grand nombre aléatoire ou une chaîne 1509 01:16:09,210 --> 01:16:11,130 que vous êtes censé à coller dans votre code, 1510 01:16:11,130 --> 01:16:15,280 de sorte que Google sait qui vous êtes quand vous utilisez leur service, leur API. 1511 01:16:15,280 --> 01:16:17,370 Ne pas dire que nous sommes être accusé quoi que ce soit. 1512 01:16:17,370 --> 01:16:21,030 Et maintenant, cliquez sur, au lieu de un, cliquez commencer à développer. 1513 01:16:21,030 --> 01:16:25,990 Si vous pouviez me vague plus si ne sais pas où nous sommes. 1514 01:16:25,990 --> 01:16:28,040 >> Nous allons donc rayer la surface, ici, mais ce 1515 01:16:28,040 --> 01:16:31,000 Je pensais être convaincant est d'avoir fait de nous tous, 1516 01:16:31,000 --> 01:16:34,240 à l'aide Cloud9 dans une fenêtre, et ce tutoriel dans une autre fenêtre, 1517 01:16:34,240 --> 01:16:37,120 laisse réellement obtenir notre propre l'application et au fonctionnement 1518 01:16:37,120 --> 01:16:40,920 qui intègre une coutume Google carte dans notre propre page Web, 1519 01:16:40,920 --> 01:16:43,010 et ajoute ensuite une ou deux caractéristiques. 1520 01:16:43,010 --> 01:16:45,520 Mais nous allons juste gratter la surface de ce que nous pouvons faire. 1521 01:16:45,520 --> 01:16:47,020 >> Il suffit donc d'un test de cohérence rapide. 1522 01:16:47,020 --> 01:16:49,740 Tout le monde est à cette page, API Google Maps JavaScript? 1523 01:16:49,740 --> 01:16:50,872 Devrait-dire la mise en route. 1524 01:16:50,872 --> 01:16:53,330 On ne va pas passer par le tout par tout moyen. 1525 01:16:53,330 --> 01:16:58,090 OK, dans un autre onglet, si vous ne le faites pas ont ouvert, ne vont en Cloud9 1526 01:16:58,090 --> 01:17:03,500 et vous obtenez juste un nouvel onglet, en fin de compte. 1527 01:17:03,500 --> 01:17:11,070 Donc, encore une fois, c9.io d'hier, c9.io, et il suffit de créer un nouveau fichier. 1528 01:17:11,070 --> 01:17:13,500 Et allez-y et appel ce que vous voudriez. 1529 01:17:13,500 --> 01:17:16,495 J'ai appelé map.html mien. 1530 01:17:16,495 --> 01:17:17,870 Appelez quoi que ce soit se terminant par .html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 Et vous devriez être à peu près où je suis dans ce processus 1533 01:17:26,580 --> 01:17:31,470 avec juste une invite à clignoter dans un vide onglet appelé quelque chose comme map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 Ou fichier, nouveau fichier cette fois. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> Et maintenant, plus sur la API Google Maps JavaScript, 1538 01:17:48,000 --> 01:17:50,010 nous allons sauter la lecture à travers tout ce texte. 1539 01:17:50,010 --> 01:17:53,760 Mais notez que monde bonjour est en effet partout, vous voyez maintenant. 1540 01:17:53,760 --> 01:17:58,020 Bonjour tout le monde a ce grand coloré exemple de tout un tas de HTML. 1541 01:17:58,020 --> 01:18:03,590 Allez-y et copier et coller seulement HTML, donc du type de doc en haut 1542 01:18:03,590 --> 01:18:08,810 tout le chemin à la balise HTML proche, allez avant et copier tous that-- à nouveau, 1543 01:18:08,810 --> 01:18:14,430 qui est sous le monde bonjour exemple-- et le coller dans votre onglet Cloud9, 1544 01:18:14,430 --> 01:18:17,996 de sorte que maintenant votre écran devrait ressembler à peu près comme le mien. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> Et vous pouvez l'enregistrer, mais ne chargez pas seulement encore. 1547 01:18:24,520 --> 01:18:26,290 Regardons d'abord à le code et voir si nous 1548 01:18:26,290 --> 01:18:29,110 ne peut pas en déduire ou d'apprendre de ce qu'il est Google 1549 01:18:29,110 --> 01:18:30,860 a eu de nous copier et coller aveuglément. 1550 01:18:30,860 --> 01:18:33,334 Ils veulent juste aider, littéralement, nous aider à démarrer, 1551 01:18:33,334 --> 01:18:35,500 mais il n'y a pas grand-chose complexité réellement là. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Une question pour l'instant? 1554 01:18:42,210 --> 01:18:43,790 Nous sommes en sécurité pour aller de l'avant? 1555 01:18:43,790 --> 01:18:44,330 D'ACCORD. 1556 01:18:44,330 --> 01:18:46,800 >> Alors vite, faisons juste certains contrôles rapides. 1557 01:18:46,800 --> 01:18:48,800 Ligne un de ce que je voir, et nous l'espérons, vous 1558 01:18:48,800 --> 01:18:51,710 voyez, qu'est-ce que cela veut dire, doctype HTML? 1559 01:18:51,710 --> 01:18:52,385 Kareem, rappeler? 1560 01:18:52,385 --> 01:18:53,260 AUDIENCE: [Inaudible] 1561 01:18:53,260 --> 01:18:53,968 DAVID MALAN: Oui. 1562 01:18:53,968 --> 01:18:54,870 Voici venir HTML 5. 1563 01:18:54,870 --> 01:18:57,950 Pendant ce temps, la deuxième ligne sur la écran signifie ici hey navigateur, 1564 01:18:57,950 --> 01:18:59,482 voici le code HTML réel. 1565 01:18:59,482 --> 01:19:01,440 Ligne trois est bon navigateur, voici la tête. 1566 01:19:01,440 --> 01:19:04,260 Ligne quatre est, bien sûr, hé navigateur, voici le titre. 1567 01:19:04,260 --> 01:19:07,780 Qu'est-ce que la ligne de cinq faire? 1568 01:19:07,780 --> 01:19:09,930 En fait, cela ne vraiment faire quelque chose pour nous. 1569 01:19:09,930 --> 01:19:13,340 Dans ce cas, il redimensionne juste la page à un défaut. Ligne six, 1570 01:19:13,340 --> 01:19:16,140 nous avons pas parlé, mais il spécifie le codage de caractères. 1571 01:19:16,140 --> 01:19:19,181 Il y a différentes façons d'encoder des fichiers, en particulier pour les langues étrangères. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 tend juste à être la valeur par défaut. 1573 01:19:21,100 --> 01:19:26,580 >> Alors maintenant, nous allons voir en ligne sept à 16, certains CSS. 1574 01:19:26,580 --> 01:19:29,260 Et même si nous avons pas vu toutes ces choses avant, 1575 01:19:29,260 --> 01:19:30,810 nous pouvons sorte de déduire. 1576 01:19:30,810 --> 01:19:37,075 Donc, la ligne huit moyens, hé navigateur, appliquez tous les éléments suivants à laquelle deux balises, 1577 01:19:37,075 --> 01:19:37,575 Apparemment? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 Le texte HTML et le corps. 1580 01:19:41,701 --> 01:19:43,200 Donc, la virgule est la nouvelle chose là-bas. 1581 01:19:43,200 --> 01:19:46,140 Et c'est juste une façon de spécifiant plusieurs balises à la fois. 1582 01:19:46,140 --> 01:19:47,640 >> Ensuite, nous avons les accolades. 1583 01:19:47,640 --> 01:19:51,170 Donc, apparemment, cela indique au navigateur, rendre la hauteur de la page 100%. 1584 01:19:51,170 --> 01:19:54,170 Donc, même s'il y a très peu contenu, faire toute la page, 1585 01:19:54,170 --> 01:19:55,530 faire la chose à remplir la page. 1586 01:19:55,530 --> 01:19:57,524 Faire la carte remplir finalement la page. 1587 01:19:57,524 --> 01:19:58,690 Marge, qu'est-ce que cela signifie? 1588 01:19:58,690 --> 01:20:01,559 C'est habituellement comme arbitraire espace blanc autour des bords 1589 01:20:01,559 --> 01:20:04,350 que certains concepteur de navigateur juste décidé devrait être là, parce qu'il 1590 01:20:04,350 --> 01:20:05,540 sorte de fait les choses semblent plus propre. 1591 01:20:05,540 --> 01:20:06,498 Mais nous ne voulons pas que. 1592 01:20:06,498 --> 01:20:08,710 Nous voulons que la carte va tout le chemin vers les bords. 1593 01:20:08,710 --> 01:20:10,930 Rembourrage, dans le même esprit à des marges. 1594 01:20:10,930 --> 01:20:14,980 Les marges signifient l'extérieur, des moyens de remplissage à l'intérieur, mais il est le même genre d'affaire. 1595 01:20:14,980 --> 01:20:17,520 Il est un peu d'un tampon entre vous et les bords. 1596 01:20:17,520 --> 01:20:21,170 >> Et puis la ligne 13 est un bon chance pour un examen rapide. 1597 01:20:21,170 --> 01:20:26,440 Qu'est-ce que le signe dièse carte signifie, ou hashtag carte signifie? 1598 01:20:26,440 --> 01:20:29,650 Qu'est-ce que font référence à, en principe? 1599 01:20:29,650 --> 01:20:31,485 >> AUDIENCE: [Inaudible] 1600 01:20:31,485 --> 01:20:32,360 DAVID MALAN: Exactement. 1601 01:20:32,360 --> 01:20:36,900 Cette propriété, cette propriété CSS applique à une seule chose, la balise HTML 1602 01:20:36,900 --> 01:20:41,180 qui a un ID d'entre guillemets "map". 1603 01:20:41,180 --> 01:20:44,460 avance rapide, défilement de Et maintenant laissez jusqu'à la fin du fichier, qui 1604 01:20:44,460 --> 01:20:49,860 est pas trop loin, et un avis en ligne 19, si vous collez exactement comme je l'ai fait, 1605 01:20:49,860 --> 01:20:53,405 la ligne 19 a juste un div, qui est un division de la page, qui, hier, je 1606 01:20:53,405 --> 01:20:54,820 appelée une zone rectangulaire. 1607 01:20:54,820 --> 01:20:55,820 Il n'y a rien dans il a obtenu. 1608 01:20:55,820 --> 01:20:57,550 Il est une balise ouverte, à proximité tag. 1609 01:20:57,550 --> 01:20:59,490 Mais elle a un ID unique. 1610 01:20:59,490 --> 01:21:02,090 >> Donc, ce qui semble être passe ici est Google 1611 01:21:02,090 --> 01:21:05,880 est en préparant notre page Web pour avoir une hauteur totale de 100%, 1612 01:21:05,880 --> 01:21:09,680 et pas de remplissage, sans marges, parce ce que nous allons mettre à l'intérieur 1613 01:21:09,680 --> 01:21:13,647 de ce div, dont ID unique est la carte est une carte réelle intégré. 1614 01:21:13,647 --> 01:21:15,480 Et nous voulons qu'elle se remplisse la page et non pas seulement 1615 01:21:15,480 --> 01:21:17,560 être un petit rectangle au milieu. 1616 01:21:17,560 --> 01:21:24,220 Donc, la ligne 14 souligne de même, le lui-même la carte doit avoir une hauteur de 100%. 1617 01:21:24,220 --> 01:21:29,220 >> Donc remarquerez maintenant entre les lignes 20 et 28, ceci est le code JavaScript. 1618 01:21:29,220 --> 01:21:33,020 Et cela est, même si elle est syntaxiquement un peu étrange, 1619 01:21:33,020 --> 01:21:34,730 il n'y a pas que ça se passe ici. 1620 01:21:34,730 --> 01:21:39,310 Dans la ligne 21, cela se déclarant ce qu'on appelle une variable. 1621 01:21:39,310 --> 01:21:42,030 Au lieu de l'appeler les montants, comme nous l'avons fait avant, 1622 01:21:42,030 --> 01:21:44,500 nous disons plus précisément var, qui signifie simplement variable. 1623 01:21:44,500 --> 01:21:46,520 Nous aurions pu utiliser que dans le code de Nick, mais il n'a pas, donc je 1624 01:21:46,520 --> 01:21:48,190 n'a pas pris la peine de le faire non plus. 1625 01:21:48,190 --> 01:21:50,240 Il est une variable appelée map, et puis il y a 1626 01:21:50,240 --> 01:21:53,360 une fonction qui est apparemment appelé initMap. 1627 01:21:53,360 --> 01:21:55,780 >> Donc, cela est comme notre propre coutume pièce de puzzle dans Scratch. 1628 01:21:55,780 --> 01:21:58,830 Nous avons créé un morceau de initMap fonctionnalité appelée, 1629 01:21:58,830 --> 01:22:00,980 et vous pouvez sorte de déduire que se passe t-il ici. 1630 01:22:00,980 --> 01:22:02,930 Sur la gauche, nous avons une variable, 1631 01:22:02,930 --> 01:22:06,000 donc nous allons mettre ce qui suit chose à l'intérieur de cette variable, 1632 01:22:06,000 --> 01:22:07,362 de droite à gauche. 1633 01:22:07,362 --> 01:22:11,940 Le côté droit dit, hé navigateur, donnez-moi une nouvelle carte Google. 1634 01:22:11,940 --> 01:22:16,490 Et google.maps.map est juste une façon géniale de préciser que cette fonctionnalité 1635 01:22:16,490 --> 01:22:19,790 appartient à Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> Après les parenthèses, nous avons vu cela avant, hey navigateur, obtenir 1637 01:22:23,010 --> 01:22:29,210 moi les éléments de la page, la balise dans la page dont ID unique est-- 1638 01:22:29,210 --> 01:22:30,710 >> AUDIENCE: [Inaudible] 1639 01:22:30,710 --> 01:22:31,790 >> DAVID MALAN: --map. 1640 01:22:31,790 --> 01:22:35,770 Et ce qui se passe, eh bien, cette ligne ensemble, ligne 23, 1641 01:22:35,770 --> 01:22:38,630 est essentiellement en disant: hey navigateur, allez me chercher 1642 01:22:38,630 --> 01:22:42,800 que div vide sur la page dont ID unique est la carte, 1643 01:22:42,800 --> 01:22:45,600 parce que je veux insérer en it-- injecter en elle, 1644 01:22:45,600 --> 01:22:49,520 si vous will-- tout un tas de contenu ce qui arrive à venir à partir du Web, 1645 01:22:49,520 --> 01:22:50,427 par la suite. 1646 01:22:50,427 --> 01:22:52,010 Et Google fait tout cela pour nous. 1647 01:22:52,010 --> 01:22:55,350 >> Encore une fois, à la fin de la journée, nous avons cet exemple d'abstraction. 1648 01:22:55,350 --> 01:22:58,610 Je ne sais pas ce qu'est une carte est ou comment mettre en œuvre une carte API. 1649 01:22:58,610 --> 01:22:59,460 Nous ne devons pas. 1650 01:22:59,460 --> 01:23:02,740 Nous avons juste besoin de dire la carte où se mettre, et de laisser 1651 01:23:02,740 --> 01:23:04,880 ceux qui sous-tend la mise en œuvre détails à Google. 1652 01:23:04,880 --> 01:23:08,190 Maintenant, il est apparemment deux éléments de données 1653 01:23:08,190 --> 01:23:11,940 que cet exemple est fournir à l'API de Google. 1654 01:23:11,940 --> 01:23:16,450 Apparemment, le centre de la carte, et le niveau de zoom, pour ainsi dire. 1655 01:23:16,450 --> 01:23:21,390 >> Et que quelqu'un reconnaît ces coordonnées, latitude et longitude? 1656 01:23:21,390 --> 01:23:24,364 Probablement pas, mais nous pouvons revenir en arrière le tutoriel, voir littéralement. 1657 01:23:24,364 --> 01:23:25,780 Mais nous allons le voir dans un instant. 1658 01:23:25,780 --> 01:23:29,880 Le niveau de zoom est une valeur entre, je ne savoir, un dans 13 ou quelque chose comme ça. 1659 01:23:29,880 --> 01:23:32,880 Il a juste à voir avec quelle distance vous êtes zoom avant ou arrière, et voilà. 1660 01:23:32,880 --> 01:23:35,690 Et maintenant, à la fin de la page, ligne préavis 29-- 1661 01:23:35,690 --> 01:23:39,960 il est un peu laid parce il wraps-- cette ligne de code 1662 01:23:39,960 --> 01:23:44,570 est ce que la télécharge navigateur API réelle de Google. 1663 01:23:44,570 --> 01:23:47,500 Tout le code que Google Les ingénieurs ont écrit qui mettent en œuvre 1664 01:23:47,500 --> 01:23:50,000 toute cette fonctionnalité de cartes intégrables. 1665 01:23:50,000 --> 01:23:51,470 >> Maintenant, il ne faut pas changer quoi que ce soit. 1666 01:23:51,470 --> 01:23:54,761 Si vous suivez, allez-y et il suffit de sauvegarder ce fichier, si vous avez en effet 1667 01:23:54,761 --> 01:23:55,760 ce que j'ai. 1668 01:23:55,760 --> 01:23:57,370 Aller à son URL. 1669 01:23:57,370 --> 01:23:59,820 Vous pouvez cliquer sur le bouton Exécuter là-haut et que nous le dira 1670 01:23:59,820 --> 01:24:03,050 vous l'URL de votre serveur Web à nouveau. 1671 01:24:03,050 --> 01:24:06,010 Et il vous mènera à un nouvel onglet. 1672 01:24:06,010 --> 01:24:11,910 Si vous cliquez sur Ouvrir pour map.html, et les chances sont que vous êtes 1673 01:24:11,910 --> 01:24:15,520 allez obtenir une alerte, un message d'erreur, oui? 1674 01:24:15,520 --> 01:24:18,570 Message d'erreur, un message d'erreur? 1675 01:24:18,570 --> 01:24:21,170 >> Donc, malheureusement, l'erreur message est pas éclairant 1676 01:24:21,170 --> 01:24:23,890 à moins que vous ouvrez en fait la console, cet onglet spécial que nous 1677 01:24:23,890 --> 01:24:27,110 gardé l'ouverture hier et un peu plus tôt aujourd'hui. 1678 01:24:27,110 --> 01:24:29,445 Mais je suis tombé sur déjà plus tôt, donc je 1679 01:24:29,445 --> 01:24:30,820 compris ce que la solution est. 1680 01:24:30,820 --> 01:24:34,440 Dans les diapositives d'aujourd'hui, ou plutôt, dans Cloud9, avis 1681 01:24:34,440 --> 01:24:36,430 que nous ne l'avons pas quelque chose de délibérément. 1682 01:24:36,430 --> 01:24:40,690 Notez que cette balise de script dans ligne 29, si vous lisez à travers elle, 1683 01:24:40,690 --> 01:24:44,440 il est comme maps.googleapis.com/ quelque chose, quelque chose, quelque chose, 1684 01:24:44,440 --> 01:24:46,430 puis notez quelqu'un, l'un des développeurs, 1685 01:24:46,430 --> 01:24:50,040 écrit dans la totalité du capital lettres, votre clé API. 1686 01:24:50,040 --> 01:24:51,700 >> Nous avons besoin de coller quelque chose là-dedans. 1687 01:24:51,700 --> 01:24:53,450 Et ce fut l'étape Je l'ai fait pour nous avant, 1688 01:24:53,450 --> 01:24:57,190 et encore ils pourraient la liste noire nous si soudainement, 12 ou plus de nous 1689 01:24:57,190 --> 01:24:59,470 commencer à utiliser la même clé, mais nous allons voir ce qui se passe. 1690 01:24:59,470 --> 01:25:03,030 Donc, si vous allez dans aujourd'hui diapositives, une diapositive plus tard, il est 1691 01:25:03,030 --> 01:25:07,070 cette chaîne très funky à la recherche du texte. 1692 01:25:07,070 --> 01:25:12,230 Allez-y et il suffit de copier et que collez-le où il est dit votre clé API. 1693 01:25:12,230 --> 01:25:15,120 C'est celui que je signé pour. 1694 01:25:15,120 --> 01:25:17,700 >> Et certainement ne pas essayer tapant manuellement, 1695 01:25:17,700 --> 01:25:21,210 parce qu'il se sent lourd avec les fautes de frappe, potentiellement. 1696 01:25:21,210 --> 01:25:23,260 Il suffit donc de copier et coller cela. 1697 01:25:23,260 --> 01:25:26,090 Et il va faire la ligne plus longtemps, mais maintenant, juste pour être clair, 1698 01:25:26,090 --> 01:25:29,540 il devrait ressembler un peu plus comme celui-ci, où la clé est égale à pas 1699 01:25:29,540 --> 01:25:32,200 capitalisés crier à vous. 1700 01:25:32,200 --> 01:25:34,810 Enregistrez votre page, revenir à l'autre onglet, recharger, 1701 01:25:34,810 --> 01:25:36,770 et l'espoir de voir une carte d'où? 1702 01:25:36,770 --> 01:25:37,790 >> AUDIENCE: Australie. 1703 01:25:37,790 --> 01:25:38,748 >> DAVID MALAN: Australie. 1704 01:25:38,748 --> 01:25:41,200 Donc, apparemment, ce sont les Coordonnées GPS de l'Australie. 1705 01:25:41,200 --> 01:25:44,491 Et laissez-moi marcher autour pendant un moment et aider toute personne qui est pas tout à fait là, 1706 01:25:44,491 --> 01:25:47,729 mais permettez-moi de proposer, via Google, trouver les coordonnées GPS de votre propre ville natale 1707 01:25:47,729 --> 01:25:48,770 ou dans votre propre pays d'origine. 1708 01:25:48,770 --> 01:25:51,436 Et probablement Google peut transformer cette up, ou Wikipedia peuvent vous dire. 1709 01:25:51,436 --> 01:25:54,410 Mais choisir deux valeurs différentes pour la latitude et la longitude, 1710 01:25:54,410 --> 01:25:57,530 revenir en arrière et de les coller, et puis recharger la page après avoir sauvegardé 1711 01:25:57,530 --> 01:26:00,718 et voyez si vous pouvez avoir un carte pour votre propre ville natale. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> Et quand vous avez terminé avec que, le suivi challenge-- 1714 01:26:08,042 --> 01:26:11,250 et je vais vous donner un peu moins direction, délibérément, de sorte que vous avez délibérément 1715 01:26:11,250 --> 01:26:13,791 avoir à lutter pour un couple minutes avec la documentation, 1716 01:26:13,791 --> 01:26:18,740 changer la carte à ne pas être présent défaut de dessin animé, mais une carte satellite. 1717 01:26:18,740 --> 01:26:24,600 Donc, vous voyez réellement satellite des images au lieu de les jolies couleurs. 1718 01:26:24,600 --> 01:26:29,710 >> Et le soupçon Je vais vous donner est de changer le type de la carte. 1719 01:26:29,710 --> 01:26:33,084 Retour à qu'obtenir commencé page pour inspiration. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Comme vous avez pu glaner, si vous êtes à la recherche, 1722 01:26:42,390 --> 01:26:44,250 Il y en a tant d'autres choses que vous pouvez faire. 1723 01:26:44,250 --> 01:26:46,380 Certains d'entre vous ont déjà modifié le type de carte. 1724 01:26:46,380 --> 01:26:49,890 Mais vous pouvez do-- par exemple, laissez-moi aller à quelque chose que nous avons fait pour le cours 1725 01:26:49,890 --> 01:26:52,050 I teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 L'un de nos undergrads ont fait cela. 1727 01:26:53,470 --> 01:26:58,890 Nous centrons notre carte sur Harvard Yard et superposer tous ces noms de construction, 1728 01:26:58,890 --> 01:27:01,070 et nous avons eu l'ajouter ceci. 1729 01:27:01,070 --> 01:27:04,270 Donc, si je veux chercher, par exemple, Matthews Hall, 1730 01:27:04,270 --> 01:27:05,730 nous avons un menu déroulant peu. 1731 01:27:05,730 --> 01:27:09,080 Et je pense qu'il utilise Bootstrap, le bibliothèque, nous avons discuté plus tôt pour cela. 1732 01:27:09,080 --> 01:27:12,190 Et si vous cliquez sur Matthews Hall, immédiatement 1733 01:27:12,190 --> 01:27:14,790 saute la carte à un certain emplacement, et il montre 1734 01:27:14,790 --> 01:27:16,440 vous une image dans ce petit pop-up. 1735 01:27:16,440 --> 01:27:18,670 >> Mais même ce petit pop-up, nous ne mettons en œuvre. 1736 01:27:18,670 --> 01:27:27,521 Si je fais défiler vers le bas sur notre obtenir commencé et cherchez des fenêtres d'information, 1737 01:27:27,521 --> 01:27:29,770 vous verrez que certains des fonctionnalité vous vous 1738 01:27:29,770 --> 01:27:31,561 peut ajouter, mais avec un peu plus de complexité, 1739 01:27:31,561 --> 01:27:33,970 est ce qu'on appelle une fenêtre d'information. 1740 01:27:33,970 --> 01:27:37,190 Et si je clique sur un exemple ici, ce qui est ce qui est amusant, 1741 01:27:37,190 --> 01:27:40,530 vous pouvez faire des choses comme ça, en cliquant sur un marqueur, puis voila, 1742 01:27:40,530 --> 01:27:42,400 informations apparaît. 1743 01:27:42,400 --> 01:27:45,874 >> Nous avons donc pas tout à fait mis en place suffisamment de fonctionnalités de JavaScript 1744 01:27:45,874 --> 01:27:49,040 de brosser un tableau de exactement comment vous pourrait câbler toutes ces choses ensemble, 1745 01:27:49,040 --> 01:27:50,706 mais nous avons sorte de gratté la surface. 1746 01:27:50,706 --> 01:27:53,140 En fait, ce que je viens de le faire quand J'ai cliqué sur ce marqueur, 1747 01:27:53,140 --> 01:27:55,819 a déclenchement d'un événement, un que l'on appelle le clic événement. 1748 01:27:55,819 --> 01:27:57,610 Et nous avons effectivement vu une événement plus tôt aujourd'hui, 1749 01:27:57,610 --> 01:28:00,670 le soi-disant soumettre un événement, quand nous empêchons 1750 01:28:00,670 --> 01:28:02,490 l'utilisateur de rechercher des chats. 1751 01:28:02,490 --> 01:28:06,560 Nous avons donc choisi de genre et choosed parmi toutes ces différentes caractéristiques, 1752 01:28:06,560 --> 01:28:08,990 pour vous donner une idée, nous l'espérons, de ce que vous pouvez réellement 1753 01:28:08,990 --> 01:28:11,000 faire avec un peu plus le confort dans la programmation, 1754 01:28:11,000 --> 01:28:12,587 et des ressources complètement libres. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> Des questions? 1757 01:28:18,770 --> 01:28:19,790 Non? 1758 01:28:19,790 --> 01:28:22,542 Ceci est votre dernière chance, au moins aujourd'hui, un vendredi, 1759 01:28:22,542 --> 01:28:25,000 pour obtenir quelque chose de votre poitrine de sorte que vous sortez d'ici, 1760 01:28:25,000 --> 01:28:27,067 confiant et confortable. 1761 01:28:27,067 --> 01:28:27,566 Oui. 1762 01:28:27,566 --> 01:28:29,740 >> AUDIENCE: Pourquoi ne pas vous ajoutez une chose? 1763 01:28:29,740 --> 01:28:32,720 >> DAVID MALAN: Oh mon Dieu. 1764 01:28:32,720 --> 01:28:35,260 Je dois me reposer ce week-end, je pense. 1765 01:28:35,260 --> 01:28:36,180 D'autres questions? 1766 01:28:36,180 --> 01:28:37,055 >> AUDIENCE: [Inaudible] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> DAVID MALAN: Vous can-- dans Internet Explorer, repose en paix, 1769 01:28:46,810 --> 01:28:49,310 vous avez utilisé pour être en mesure de mettre VB scénario, script de base virtuelle, 1770 01:28:49,310 --> 01:28:50,643 mais qui n'a jamais vraiment pris. 1771 01:28:50,643 --> 01:28:52,490 Donc, la réponse courte est juste JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 D'autres questions? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 Bon, eh bien, laissez-moi faire. 1776 01:28:59,760 --> 01:29:02,070 Laissez-moi prendre nos collègues à l'extérieur. 1777 01:29:02,070 --> 01:29:04,500 Ils ont une certaine évaluation formes qu'ils veulent tout le monde 1778 01:29:04,500 --> 01:29:06,310 passer quelques minutes complétant. 1779 01:29:06,310 --> 01:29:08,775 Ils veulent recueillir ce formulaire et tout renonciations que vous pourriez avoir à l'extérieur. 1780 01:29:08,775 --> 01:29:10,240 Ils vont aussi avoir des certificats. 1781 01:29:10,240 --> 01:29:12,380 Je devine qu'il ya encore quelques collations à l'extérieur. 1782 01:29:12,380 --> 01:29:14,360 Laissez-moi passer ces out, et si vous Pour toute question, dans l'intervalle, 1783 01:29:14,360 --> 01:29:17,120 Je vais marcher autour de plus individuellement et nous pouvons vous aider à démarrer. 1784 01:29:17,120 --> 01:29:17,879 Oui bien sûr. 1785 01:29:17,879 --> 01:29:18,754 AUDIENCE: [Inaudible] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 DAVID MALAN: C'est généralement vrai ces jours-ci. 1788 01:29:28,570 --> 01:29:30,730 Certes, avec web logiciel, vous penchez 1789 01:29:30,730 --> 01:29:32,901 sur d'autres, vous êtes soit utilisant esthétiquement choses 1790 01:29:32,901 --> 01:29:35,400 comme Bootstrap, afin de ne pas avoir à mettre en œuvre le niveau bas 1791 01:29:35,400 --> 01:29:37,169 les détails de menus et boutons et tout ça. 1792 01:29:37,169 --> 01:29:39,210 Vous êtes penché sur quelqu'un comme Google afin que vous 1793 01:29:39,210 --> 01:29:42,050 ne pas avoir à construire un Uber affaires et une entreprise de cartographie, 1794 01:29:42,050 --> 01:29:44,850 et un certain nombre de semblables applications. 1795 01:29:44,850 --> 01:29:46,350 >> En fait, les connexions sont très populaires, aussi. 1796 01:29:46,350 --> 01:29:48,500 Si vous avez utilisé Spotify ou un certain nombre de sites, 1797 01:29:48,500 --> 01:29:51,210 vous connecter à certains sites Web en utilisant Facebook. 1798 01:29:51,210 --> 01:29:53,350 Alors, quelle est belle, il sont des API pour les connexions 1799 01:29:53,350 --> 01:29:56,570 de nos jours, de sorte que vous n'avez pas d'avoir votre propre table d'utilisateurs 1800 01:29:56,570 --> 01:29:59,440 et l'ensemble de votre propre base de données nécessairement dans la même mesure. 1801 01:29:59,440 --> 01:30:01,795 Vous pouvez laisser faire tout Facebook de cette complexité pour vous. 1802 01:30:01,795 --> 01:30:03,920 Donc, il est un moment excitant, honnêtement, dans la programmation, 1803 01:30:03,920 --> 01:30:07,200 parce qu'il ya tant de tiers services que vous pouvez construire sur le dessus. 1804 01:30:07,200 --> 01:30:10,890 >> Et encore une fois, le prix que vous payez est financière ou les temps d'arrêt. 1805 01:30:10,890 --> 01:30:13,750 Si Google descend, il en va de Uber, sans doute, 1806 01:30:13,750 --> 01:30:15,690 mais peut-être que c'est un compromis raisonnable. 1807 01:30:15,690 --> 01:30:18,040 Et encore, ce fut l'un des thèmes, espérons-le, pour les deux derniers jours, 1808 01:30:18,040 --> 01:30:18,780 est ces compromis. 1809 01:30:18,780 --> 01:30:20,738 Et est rarement là va être une bonne réponse. 1810 01:30:20,738 --> 01:30:25,700 Il est vraiment le meilleur de deux ou plusieurs réponses. 1811 01:30:25,700 --> 01:30:26,682 >> Passez ces autour. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> Et ces comptes Cloud9 continueront au travail, en théorie, à perpétuité. 1814 01:30:41,110 --> 01:30:45,000 Vous trouverez peut-être si vous attendez quelques jours ou une semaine ou plus de se connecter de nouveau en eux, 1815 01:30:45,000 --> 01:30:49,170 il pourrait prendre comme une ou cinq minutes pour ouvrir la sauvegarde, 1816 01:30:49,170 --> 01:30:54,090 mais c'est juste parce qu'ils ont mis pour dormir à économiser les ressources. 1817 01:30:54,090 --> 01:31:10,527