1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> David Malan: Alle reg, ons is terug. 3 00:00:01,560 --> 00:00:03,830 So vir die opwindende gevolgtrekking, ons laaste artikel 4 00:00:03,830 --> 00:00:06,900 op web ontwikkeling, wat ek gedink ons ​​wil gebruik as 'n algemene term 5 00:00:06,900 --> 00:00:08,440 om 'n paar oorblywende onderwerpe te vang. 6 00:00:08,440 --> 00:00:10,390 So aan die einde van die dag, sal ons eintlik doen 7 00:00:10,390 --> 00:00:14,830 'n bietjie van hands-on web ontwikkeling met 'n taal JavaScript genoem. 8 00:00:14,830 --> 00:00:17,510 En ek dink ons ​​sal 'n blik iets wat verband hou met beelde 9 00:00:17,510 --> 00:00:20,040 en iets ontdek geheim versteek in 'n beeld, 10 00:00:20,040 --> 00:00:23,230 en ook 'n blik op die Google Maps API, aansoek ontwikkeling 11 00:00:23,230 --> 00:00:26,040 koppelvlak, as iets verteenwoordiger van die tipe van sagteware 12 00:00:26,040 --> 00:00:28,800 dit is al hoe meer en vrylik beskikbaar vandag. 13 00:00:28,800 --> 00:00:32,029 >> Maar hoekom doen ons nie 'n blik op 'n bestanddeel van hierdie wêreld 14 00:00:32,029 --> 00:00:34,070 dat ons soort gewees het neem as vanselfsprekend aanvaar bestaan 15 00:00:34,070 --> 00:00:36,720 vir 'n geruime tyd, 'n databasis. 16 00:00:36,720 --> 00:00:39,150 Vir die afgelope dag en 'n half het ons aanvaar 17 00:00:39,150 --> 00:00:42,910 dat ons toegang tot 'n databasis, maar Watter probleem het 'n databasis op te los? 18 00:00:42,910 --> 00:00:45,540 Wat beteken dit vir ons? 19 00:00:45,540 --> 00:00:47,030 Wat is dit? 20 00:00:47,030 --> 00:00:48,679 >> Gehoor: [onhoorbaar] 21 00:00:48,679 --> 00:00:51,720 David Malan: Hou al die inligting, OK, en watter soort inligting 22 00:00:51,720 --> 00:00:53,186 kan jy sit in dit? 23 00:00:53,186 --> 00:00:54,590 >> Gehoor: [onhoorbaar] 24 00:00:54,590 --> 00:00:56,450 >> David Malan: Enige inligting jy sit in dit, sal jy terug te kry. 25 00:00:56,450 --> 00:00:57,070 Dit is waar. 26 00:00:57,070 --> 00:01:01,900 En op 'n tipiese web-gebaseerde webwerf of web aansoek, watter soort inligting, 27 00:01:01,900 --> 00:01:03,385 spesifiek, kan jy sit in? 28 00:01:03,385 --> 00:01:04,260 Gehoor: [onhoorbaar] 29 00:01:04,260 --> 00:01:05,051 David Malan: Gebruikers. 30 00:01:05,051 --> 00:01:07,000 So, wat is 'n gebruiker? 31 00:01:07,000 --> 00:01:09,765 >> Gehoor: [onhoorbaar] 32 00:01:09,765 --> 00:01:11,640 David Malan: OK, geregistreer gebruiker van die webwerf. 33 00:01:11,640 --> 00:01:15,100 En wat beteken dit om inligting gebruikers winkel? 34 00:01:15,100 --> 00:01:17,260 Wat komponeer 'n gebruiker? 35 00:01:17,260 --> 00:01:18,331 'N gebruiker wat? 36 00:01:18,331 --> 00:01:19,206 Gehoor: [onhoorbaar] 37 00:01:19,206 --> 00:01:21,040 David Malan: Ja, persoonlike data, en ek hou daarvan. 38 00:01:21,040 --> 00:01:21,970 Kom ons wees meer akkurate. 39 00:01:21,970 --> 00:01:25,275 So 'n gebruiker het tipies 'n naam, Wat anders kan 'n gebruiker te hê? 40 00:01:25,275 --> 00:01:26,150 Gehoor: [onhoorbaar] 41 00:01:26,150 --> 00:01:29,130 David Malan: 'n addr-- OK, sodat die eerste naam, laaste naam. 42 00:01:29,130 --> 00:01:29,630 Dis goed. 43 00:01:29,630 --> 00:01:31,463 Eintlik, laat ons los dat, omdat dit gaan 44 00:01:31,463 --> 00:01:35,010 om oop te maak 'n geleentheid vir bespreking, nog verder. 45 00:01:35,010 --> 00:01:39,090 Eerste naam, laaste naam, geslag. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 'N ID van een of ander aard. 48 00:01:43,481 --> 00:01:43,980 Wat nog? 49 00:01:43,980 --> 00:01:45,438 Ek het gehoor iets anders voor, ook. 50 00:01:45,438 --> 00:01:51,600 'N e-pos, posadres. 51 00:01:51,600 --> 00:01:58,170 >> So laat ons daar breek en nou oorweeg nie wat ons stoor in die databasis, 52 00:01:58,170 --> 00:02:01,980 but-- en nie hoekom nie, want dit is dalk voor die hand liggend dat wanneer jy 'n gebruiker registreer, 53 00:02:01,980 --> 00:02:03,730 jy wil hê hulle moet onthou vir 'n geruime tyd. 54 00:02:03,730 --> 00:02:05,480 Jy wil dit nie te net gestoor in die geheue 55 00:02:05,480 --> 00:02:08,690 en so word forgotten-- Kom ons fokus op die hoe. 56 00:02:08,690 --> 00:02:11,700 >> Dit blyk dat in die wêreld van databasisse, 57 00:02:11,700 --> 00:02:14,410 daar is ten minste twee tipes deesdae. 58 00:02:14,410 --> 00:02:20,010 Iets genaamd 'n SQL databasis, Structured Query Language, 59 00:02:20,010 --> 00:02:24,770 of, cutely genoem, noSQL, wat nie SQL. 60 00:02:24,770 --> 00:02:26,980 En laasgenoemde is 'n voorbeeld van wat kan 61 00:02:26,980 --> 00:02:30,660 word 'n objek-georiënteerde genoem, of 'n voorwerp te slaan, 'n databasis 62 00:02:30,660 --> 00:02:36,010 dat voorwerpe slaan, en nie, verskoning my, soos ons sal binnekort sien, rye. 63 00:02:36,010 --> 00:02:41,800 >> So ons sal fokus vir 'n oomblik op Die eerste van hierdie, naamlik, 'n SQL 64 00:02:41,800 --> 00:02:46,850 databasis, al is dit net omdat dit so bekend reeds aan enigiemand 65 00:02:46,850 --> 00:02:51,070 wat gebruik Excel of Google Blaaie of Apple 66 00:02:51,070 --> 00:02:53,740 Nommers of enige standaard sigbladprogram, 67 00:02:53,740 --> 00:02:56,040 of, anders gestel, of meer geraffineerd, 68 00:02:56,040 --> 00:02:58,610 iets soos Microsoft Toegang of Oracle 69 00:02:58,610 --> 00:03:03,890 of MySQL of PostgreSQL, wat almal is die produk name vir implementering 70 00:03:03,890 --> 00:03:04,865 van die volgende idee. 71 00:03:04,865 --> 00:03:10,350 >> 'N relasionele databasis is bloot iets wat rye en kolomme het. 72 00:03:10,350 --> 00:03:12,850 En deur rye en kolomme, Ek het letterlik beteken iets 73 00:03:12,850 --> 00:03:21,860 soos hierdie, so waar ons dalk die naam van 'n stuk grond en sy soort hier. 74 00:03:21,860 --> 00:03:25,800 En eintlik, laat my nou begin om hierdie kaart. 75 00:03:25,800 --> 00:03:29,420 So eintlik, weet ek nie Daarom het ek het 'n aparte grafiek. 76 00:03:29,420 --> 00:03:30,780 Kom ons hierdie eenvoudige hou. 77 00:03:30,780 --> 00:03:34,830 >> Ons het hier die begin van ons tafel, waar 78 00:03:34,830 --> 00:03:40,150 dit is die naam van die veld en dit is die tipe data, 79 00:03:40,150 --> 00:03:41,660 en deur die tipe bedoel ek die volgende. 80 00:03:41,660 --> 00:03:45,510 Is dit 'n aantal, is dit 'n string, 'n kort tou soos 'n woord, 81 00:03:45,510 --> 00:03:49,340 is dit 'n paragraaf, is dit binêre data, soos 'n beeld? 82 00:03:49,340 --> 00:03:51,980 En laat ons dit net terg afgesien vir net 'n oomblik. 83 00:03:51,980 --> 00:03:57,575 So eerste naam, nommer, string, 'n groot deel van text-- 84 00:03:57,575 --> 00:03:58,450 Gehoor: [onhoorbaar] 85 00:03:58,450 --> 00:03:59,616 David Malan: Ja, so string. 86 00:03:59,616 --> 00:04:04,744 En in 'n databasis konteks, sal ons tipies noem hierdie gebied kar. 87 00:04:04,744 --> 00:04:07,660 Ek sal net sê kar vir nou, maar ons is gaan hierdie verfyn in 'n oomblik. 88 00:04:07,660 --> 00:04:09,180 Karakter veld. 89 00:04:09,180 --> 00:04:11,365 Laaste naam is waarskynlik dieselfde. 90 00:04:11,365 --> 00:04:11,865 Geslag? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Man of vrou, so dit 'n kar in die veld kan wees. 93 00:04:18,310 --> 00:04:21,380 Dit kan óf quote wees, unquote "Manlike" of kwotasie, unquote "vroulike" 94 00:04:21,380 --> 00:04:23,650 of dit kan wees m of f. 95 00:04:23,650 --> 00:04:26,540 As jy wil meer inklusiewe te wees, jy dalk 'n derde waarde moet 96 00:04:26,540 --> 00:04:28,640 of 'n soort van 'n ander land geheel en al. 97 00:04:28,640 --> 00:04:31,350 En so kan jy ware valse gebruik. 98 00:04:31,350 --> 00:04:35,036 Die veld kan manlike genoem, en dan kan jy sê waar of onwaar is. 99 00:04:35,036 --> 00:04:38,160 Maar dit beteken nie noodwendig vang al die inligting wat jy dalk wil. 100 00:04:38,160 --> 00:04:41,118 >> So dit blyk daar is 'n ander soort van die veld wat dalk hier nuttig wees 101 00:04:41,118 --> 00:04:46,040 in 'n tipiese databasis, genoem 'n enum, waar dit 'n karakter in die veld, 102 00:04:46,040 --> 00:04:50,480 maar jy, die ontwerper, leer ken opnoemen die moontlike waardes, 103 00:04:50,480 --> 00:04:54,630 soos kwotasie, unquote "manlike", kwotasie, unquote "vroulike" en dies meer. 104 00:04:54,630 --> 00:04:57,620 Sodat alles wat waarde is in jou databasis, 105 00:04:57,620 --> 00:05:00,670 inderdaad-karakter gebaseer, maar Dit moet een van daardie waardes wees. 106 00:05:00,670 --> 00:05:03,520 Ons sal waarskynlik nie wil hê 'n enum vir die eerste naam of laaste naam. 107 00:05:03,520 --> 00:05:05,630 Anders sou ons om te noem, soos die naam 108 00:05:05,630 --> 00:05:09,570 afgelei van letterlik elke moontlike eerste naam en laaste naam. 109 00:05:09,570 --> 00:05:13,960 >> OK, so ID wat moet 'n ID te wees? 110 00:05:13,960 --> 00:05:15,200 Ja, so miskien 'n aantal. 111 00:05:15,200 --> 00:05:17,870 So laat ons vashou aan dat vir nou, nommer. 112 00:05:17,870 --> 00:05:22,010 En volgens die getal, se nommer 'n bietjie te breed nou. 113 00:05:22,010 --> 00:05:23,900 Vir die einde van die tweede dag, ek voel soos ons 114 00:05:23,900 --> 00:05:25,280 moet 'n bietjie meer presies te wees. 115 00:05:25,280 --> 00:05:29,280 Nommer kan beteken soos dit kon so iets 1,236 wees. 116 00:05:29,280 --> 00:05:31,500 En dit is waarskynlik nie wat ons bedoel met 'n ID. 117 00:05:31,500 --> 00:05:34,635 Wat doen ons waarskynlik bedoel met 'n ID? 118 00:05:34,635 --> 00:05:36,382 >> Gehoor: [onhoorbaar] 119 00:05:36,382 --> 00:05:38,590 David Malan: Ag, OK, so miskien is dit nie eens 'n aantal. 120 00:05:38,590 --> 00:05:42,840 Miskien is dit eintlik 'n unieke identifiseerder dit is 'n string, soos 'n gebruiker naam. 121 00:05:42,840 --> 00:05:44,580 So absoluut, kan wees nie. 122 00:05:44,580 --> 00:05:46,730 Ek dink dat iemand waarskynlik bedoel numeriese, al is. 123 00:05:46,730 --> 00:05:48,460 So laat ons bly met dit. 124 00:05:48,460 --> 00:05:49,320 Watter soort getal? 125 00:05:49,320 --> 00:05:51,960 Wat is 'n meer precise-- 'n heelgetal. 126 00:05:51,960 --> 00:05:56,710 So 'n paar soos 0, 1, 2, 3, so ons sal dit 'n heelgetal te bel. 127 00:05:56,710 --> 00:05:58,909 En selfs dan, ek kon word nitpicking, dis 128 00:05:58,909 --> 00:06:00,700 nie regtig net 'n algemene heelgetal wat jy wil. 129 00:06:00,700 --> 00:06:04,340 Jy het waarskynlik nie wil hê negatiewe waardes, net omdat dit net voel vreemd. 130 00:06:04,340 --> 00:06:06,070 Jy wil seker positiewe heelgetalle. 131 00:06:06,070 --> 00:06:07,920 So jy kan ook druk wat in 'n databasis, 132 00:06:07,920 --> 00:06:09,450 maar vir nou, sal ons sê heelgetal. 133 00:06:09,450 --> 00:06:10,650 >> E-pos? 134 00:06:10,650 --> 00:06:13,550 Dit is waarskynlik just-- n wat? 135 00:06:13,550 --> 00:06:14,460 >> Gehoor: [onhoorbaar] 136 00:06:14,460 --> 00:06:16,980 >> David Malan: Dit is 'n e-pos, maar dit is karakters, reg? 137 00:06:16,980 --> 00:06:19,813 Dit het net 'n funky karakter soos 'n "op" simbool of iets anders, 138 00:06:19,813 --> 00:06:21,580 maar dit is nog steeds 'n karakter in die veld. 139 00:06:21,580 --> 00:06:23,900 En posadres? 140 00:06:23,900 --> 00:06:25,360 Karakter veld. 141 00:06:25,360 --> 00:06:31,400 So dit is 'n mooi begin, maar Kom ons wees 'n bietjie meer akkurate. 142 00:06:31,400 --> 00:06:34,540 >> So dit blyk dat in 'n databasis, wat jy dikwels 143 00:06:34,540 --> 00:06:39,120 'n keuse oor meer verfynde weergawes van hierdie dinge. 144 00:06:39,120 --> 00:06:44,330 Trouens, in 'n tipiese SQL databasis, SQL, of meer algemeen, relasionele databasis, 145 00:06:44,330 --> 00:06:46,680 databasisse met rye en kolomme, jy dikwels 146 00:06:46,680 --> 00:06:53,610 kry om nie net die tipe van die spesifiseer field-- laat my toe om 'n paar kamer here-- 147 00:06:53,610 --> 00:06:56,600 maar ook die lengte. 148 00:06:56,600 --> 00:06:59,900 >> So hoe lank is 'n eerste naam? 149 00:06:59,900 --> 00:07:07,060 Ek dink, D-A-V-ek-D. Goed, het dit ek waarskynlik net aanstoot soos die helfte 150 00:07:07,060 --> 00:07:11,260 van die mense in die kamer, reg, aangesien julle name is langer as vyf 151 00:07:11,260 --> 00:07:16,608 briewe, so vyf lyk 'n bietjie selfsugtig en naïef, so wat is 'n beter waarde? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, alles reg, en ek dink ons is OK in die kamer. 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 Hoekom weet ek nie neem die benadering van vroeër toe ons 157 00:07:29,540 --> 00:07:31,081 praat oor skikkings en geheue? 158 00:07:31,081 --> 00:07:32,450 Hoekom moet ek nie sê net soos 1000? 159 00:07:32,450 --> 00:07:35,260 Niemand se naam gaan om meer as 1000 wees. 160 00:07:35,260 --> 00:07:36,706 Druk terug. 161 00:07:36,706 --> 00:07:38,005 >> Gehoor: [onhoorbaar] 162 00:07:38,005 --> 00:07:40,130 David Malan: Ja, dis verkwistende, reg, veral 163 00:07:40,130 --> 00:07:44,630 As die meeste name is net vyf of 10 of 15 karakters, dis baie verkwistende. 164 00:07:44,630 --> 00:07:45,810 So jy weet wat? 165 00:07:45,810 --> 00:07:48,020 Dit is 'n soort van 'n harde vraag. 166 00:07:48,020 --> 00:07:51,721 Nou, ons kan seker analiseer Engels en name enige ander taal se 167 00:07:51,721 --> 00:07:54,470 en uit te vind, wel, wat is die average-- gemiddelde nie regtig 168 00:07:54,470 --> 00:07:57,150 help us-- wat die maksimum is waarskynlik wat ons regtig wil. 169 00:07:57,150 --> 00:07:59,920 Maar dit blyk ons ​​eens sommige keuse oor die tipe hier. 170 00:07:59,920 --> 00:08:03,400 >> In 'n tipiese SQL databasis, jy 'n kar in die veld het iets genoem 171 00:08:03,400 --> 00:08:07,505 en ook 'n varchar, V-A-R, vir veranderlike kar veld. 172 00:08:07,505 --> 00:08:08,630 En die verskil is hierdie. 173 00:08:08,630 --> 00:08:12,400 A kar veld, jy die ontwerper, moet spesifiseer vooraf 174 00:08:12,400 --> 00:08:14,900 die presiese lengte van die veld. 175 00:08:14,900 --> 00:08:20,530 So miskien is die eerste naam soos 20 voel soort van 'n veilige. 176 00:08:20,530 --> 00:08:23,950 Dalk 'n paar googlen doen om kyk of dit is eintlik veilig genoeg. 177 00:08:23,950 --> 00:08:26,910 Daar is waarskynlik 'n naam met 21 karakters, maar vir nou, dink 20 178 00:08:26,910 --> 00:08:27,620 veilig. 179 00:08:27,620 --> 00:08:30,070 >> A kar veld sou impliseer in 'n databasis wat jy 180 00:08:30,070 --> 00:08:33,289 gebruik 20 en altyd 20 karakters. 181 00:08:33,289 --> 00:08:37,419 Nou is dit net D-A-V-ek-D, 15 van dié is net gaan leeg karakters wees, 182 00:08:37,419 --> 00:08:40,450 maar jy nog steeds met behulp van al 20 grepe. 183 00:08:40,450 --> 00:08:46,302 A varchar veld, daarenteen, beteken die string moet wees tot 20 karakters 184 00:08:46,302 --> 00:08:48,260 maar as dit is net vyf, jy net gaan gebruik 185 00:08:48,260 --> 00:08:51,270 vyf, of miskien ses vir 'n spesiale waarde aan die einde, 186 00:08:51,270 --> 00:08:54,980 soos wat 0 ons bespreek wat dui op die einde van 'n karakter 187 00:08:54,980 --> 00:08:56,790 volgorde in die geheue. 188 00:08:56,790 --> 00:08:59,950 >> So wanneer dink jy jy dalk kies kar 189 00:08:59,950 --> 00:09:05,240 versus varchar, gegee dat kompromis? 190 00:09:05,240 --> 00:09:09,321 Char gebruik wat baie karakters, varchar gebruik nie meer as wat baie karakters. 191 00:09:09,321 --> 00:09:10,196 Gehoor: [onhoorbaar] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 David Malan: OK, as jy weet wat die lengte van die string mooi dwingende 194 00:09:16,900 --> 00:09:19,316 om net te gebruik kar, want as jy weet dit, net sit dit af. 195 00:09:19,316 --> 00:09:23,390 En miskien is dit waar vir 'n rits kode, in die VSA, ten minste, 02138, 196 00:09:23,390 --> 00:09:26,660 Dit was nog altyd gaan wees vyf karakters totdat jy voeg die streep vier. 197 00:09:26,660 --> 00:09:29,750 Maar jy kan 'n paar waardes vir het wat jy altyd weet wat die lengte. 198 00:09:29,750 --> 00:09:32,310 Of miskien staat simbole, soos NY vir New York, 199 00:09:32,310 --> 00:09:33,811 en MA vir Massachusetts in die VSA. 200 00:09:33,811 --> 00:09:36,560 Miskien wil jy 'n paar situasies waar dit is heeltemal redelike, 201 00:09:36,560 --> 00:09:39,520 maar teen daardie logika, hoekom is ons selfs overthinking hierdie? 202 00:09:39,520 --> 00:09:41,800 Hoekom het ons nie gebruik net varchar en dan sal ons net 203 00:09:41,800 --> 00:09:46,730 gebruik altyd twee karakters in elk geval, of gebruik altyd vyf karakters in elk geval? 204 00:09:46,730 --> 00:09:50,300 Waarom nie net red varchar vir alles, deur daardie logika? 205 00:09:50,300 --> 00:09:51,677 Daar moet 'n vangs wees. 206 00:09:51,677 --> 00:09:52,552 Gehoor: [onhoorbaar] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 David Malan: Kan skryf iets verkeerd. 209 00:09:56,660 --> 00:09:58,090 So dit is waar. 210 00:09:58,090 --> 00:10:01,030 Maar selfs dan kan hulle nie gebruik meer geheue as wat ek ken. 211 00:10:01,030 --> 00:10:03,340 Ek het nog steeds die finale sê oor die lengte, 212 00:10:03,340 --> 00:10:06,780 sodat hulle kan nie per ongeluk maak wat fout, maar 'n goeie gedagte. 213 00:10:06,780 --> 00:10:10,510 Dit is meer subtiel, maar dit is baie verwante om ons gesprek, eintlik, van skikkings 214 00:10:10,510 --> 00:10:12,390 en geskakelde lyste vroeër. 215 00:10:12,390 --> 00:10:16,290 >> Dit blyk dat 'n databasis, indien dit weet dat al die waardes is 216 00:10:16,290 --> 00:10:19,250 van 'n vaste lengte, selfs al sommige van hierdie waardes is leeg, 217 00:10:19,250 --> 00:10:22,484 soort estetiese leeg, D-A-V-ek-D en dan 15 spasies, 218 00:10:22,484 --> 00:10:24,650 Dit blyk dat indien elke veld is ewe lank, 219 00:10:24,650 --> 00:10:28,670 baie soos 'n skikking moes al sy dinge rug aan rug aan rug aan rug, sodat 220 00:10:28,670 --> 00:10:33,480 jy kan net plus 1 tot na die volgende te kry waarde, dieselfde idee in 'n databasistabel. 221 00:10:33,480 --> 00:10:37,550 As al jou karakter snare is dieselfde lengte, 222 00:10:37,550 --> 00:10:39,390 jy wat ewetoeganklike genoem. 223 00:10:39,390 --> 00:10:41,850 As al die snare is van lengte 20, doen jy nie net 224 00:10:41,850 --> 00:10:45,230 doen plus 1 wat jy net doen plus 20, plus 20, plus 20, plus 20, 225 00:10:45,230 --> 00:10:48,775 en jy kan baie vinnig blaai deur of soek deur al jou data. 226 00:10:48,775 --> 00:10:54,420 >> 'N Veranderlike kar veld, daarenteen, hoef nie altyd 20 karakters. 227 00:10:54,420 --> 00:10:58,000 Dit mag hê 20 en dan 15 en dan 19 en dan 10, 228 00:10:58,000 --> 00:11:00,720 en dus as jy wil soek deur dit, kan jy nie net blindelings 229 00:11:00,720 --> 00:11:03,050 voeg 20 grepe na die volgende een te kry. 230 00:11:03,050 --> 00:11:07,280 Jy het letterlik om te soek deur omdat die rand van die datastruktuur, 231 00:11:07,280 --> 00:11:08,340 as jy wil, is verskeurde. 232 00:11:08,340 --> 00:11:11,480 Dit gaan soort van in en uit gebaseer op die werklike lengte van die string. 233 00:11:11,480 --> 00:11:14,460 So as jy weet die lengte, soos Kareem sê, gebruik 'n kar in die veld, 234 00:11:14,460 --> 00:11:16,460 omdat jy kry wat doeltreffendheid daarvan om 235 00:11:16,460 --> 00:11:19,170 staat om te soek deur dit vinniger wanneer jy soek vir data, 236 00:11:19,170 --> 00:11:20,550 anders 'n veranderlike te gebruik. 237 00:11:20,550 --> 00:11:24,450 >> Ongelukkig het ek nie 'n goeie antwoord hoe lank die naam moet wees, 238 00:11:24,450 --> 00:11:26,360 maar vir iets soos 'n naam, sou ek sê 239 00:11:26,360 --> 00:11:28,470 'n varchar is algemeen want dit gaan nie 240 00:11:28,470 --> 00:11:30,430 om 'n vaste lengte vir almal wees. 241 00:11:30,430 --> 00:11:33,650 20, weet ek nie, 20 voel 'n bietjie styf. 242 00:11:33,650 --> 00:11:36,460 Kom ons sê maar 50, 50. 243 00:11:36,460 --> 00:11:39,210 Dit maak nie regtig kos wat veel meer om te sê 50 in plaas van 40, 244 00:11:39,210 --> 00:11:41,260 maar op 'n sekere punt, moet jy om te oordeel. 245 00:11:41,260 --> 00:11:43,090 >> Baie algemeen, eerlik, vir [? historiese?] 246 00:11:43,090 --> 00:11:47,670 redes, selfs al is dit buitensporig, dit wil sê 255, omdat 'n geruime tyd gelede, 247 00:11:47,670 --> 00:11:51,440 in die populêre databasis stelsels, soos MySQL, 'n gratis open source instrument 248 00:11:51,440 --> 00:11:53,790 wat 'n baie maatskappye soos selfs Facebook gebruik, 249 00:11:53,790 --> 00:11:56,654 dit was die maksimum standaard sodat mense net saam met dit. 250 00:11:56,654 --> 00:11:59,070 So nie onredelik nie, maar ons sal gebruik 'n bietjie meer intuïsie 251 00:11:59,070 --> 00:12:02,970 en sê: seker 50, dis waarskynlik 'n bietjie oordrewe. 252 00:12:02,970 --> 00:12:05,720 >> Gender, ek doen soos enum, en so kan ons dus 253 00:12:05,720 --> 00:12:08,760 opsom man of vrou, of dalk meer doeltreffend, 254 00:12:08,760 --> 00:12:13,420 m of f of 'n ander simboliek nie, maar enum voel soos 'n goeie keuse is daar. 255 00:12:13,420 --> 00:12:16,740 Om duidelik te wees, geslag kon net 'n varchar wees, 256 00:12:16,740 --> 00:12:19,090 en ons kon net al eens so mooi mense, 257 00:12:19,090 --> 00:12:21,010 om altyd die dieselfde waardes daar. 258 00:12:21,010 --> 00:12:22,720 Man of vrou of iets anders. 259 00:12:22,720 --> 00:12:27,800 >> Maar die probleem is dus dat ons kon 'n fout maak, soos [onhoorbaar] voorgestel 260 00:12:27,800 --> 00:12:29,140 vroeër in 'n ander konteks. 261 00:12:29,140 --> 00:12:32,780 As ons 'n fout maak, kan ons kry foutiewe waardes in ons databasis. 262 00:12:32,780 --> 00:12:36,320 So, wat is lekker oor databasisse soos Oracle en MySQL en ander, 263 00:12:36,320 --> 00:12:39,280 is dat jy hierdie laaste laag verdediging waar 264 00:12:39,280 --> 00:12:43,010 jou DBA, databasis-administrateur, Wie is die ontwerp van die tabel soos ons 265 00:12:43,010 --> 00:12:46,440 is mondelings, kan sit in plek 'n enum wat 266 00:12:46,440 --> 00:12:51,250 beskerm teen daardie spesifisering manlike, vroulike en sodat niemand 267 00:12:51,250 --> 00:12:54,230 anders geen programmeerder kan per ongeluk voeg enige ander waarde. 268 00:12:54,230 --> 00:12:55,480 So sou dit 'n goeie ding wees. 269 00:12:55,480 --> 00:12:56,660 Dit is 'n kenmerk. 270 00:12:56,660 --> 00:13:00,760 >> So 'n ID, aanvaarding van 'n numeriese ID, dit waarskynlik moet 'n positiewe heelgetal wees. 271 00:13:00,760 --> 00:13:04,380 En ons soms doen het geleentheid om lengte te bespreek. 272 00:13:04,380 --> 00:13:06,830 Jy sal nie tipies spesifiseer 'n aantal hier, 273 00:13:06,830 --> 00:13:11,310 sou jy eerder spesifiseer dit is 'n int, of 'n groot int, 274 00:13:11,310 --> 00:13:12,980 as hulle is tipies genoem. 275 00:13:12,980 --> 00:13:18,840 Maar tipies, 'n heelgetal sou wees, kom ons sê, 4 grepe. 276 00:13:18,840 --> 00:13:23,694 En as dit is 4 grepe, dit is hoe baie stukkies? 277 00:13:23,694 --> 00:13:24,630 >> Gehoor: [onhoorbaar] 278 00:13:24,630 --> 00:13:26,610 >> David Malan: 32 stukkies. 279 00:13:26,610 --> 00:13:30,270 So hoeveel gebruikers kan ons in ons databasis of hulle al 'n ID 280 00:13:30,270 --> 00:13:33,320 en hierdie ID het om uniek te wees? 281 00:13:33,320 --> 00:13:36,780 32 stukkies beteken dat ons patrone van een, twee, drie, vier, five-- 282 00:13:36,780 --> 00:13:41,000 so hoeveel verskillende patrone van nulle en kinders kan jy as daar 32? 283 00:13:41,000 --> 00:13:43,235 Dit is dieselfde as vra wat twee tot die 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 Dis 'n groot getal wat Ek kan nie heeltemal reg te kry, 286 00:13:48,430 --> 00:13:50,270 maar ek weet dit is min of meer 4 miljard. 287 00:13:50,270 --> 00:13:53,970 So dit beteken dat jou databasis kan het 4000000000 gebruikers en dit is dit. 288 00:13:53,970 --> 00:13:56,410 >> So dit is 'n interessante ontwerp implikasie. 289 00:13:56,410 --> 00:14:00,840 'N ordentlike aantal maatskappye besluit het, miskien nie soseer 290 00:14:00,840 --> 00:14:04,860 vir hul gebruikers tafel, want met 4 miljard gebruikers is 'n seldsame probleem. 291 00:14:04,860 --> 00:14:08,410 Dit is 'n soort van 'n Facebook-styl probleem, nie 'n tipiese maatskappy probleem. 292 00:14:08,410 --> 00:14:12,670 Maar miskien as jy 'n transaksie logs of 'n soort van data wat voortdurend 293 00:14:12,670 --> 00:14:15,610 kry geskryf in jou databasis wat absoluut miljarde kan hê 294 00:14:15,610 --> 00:14:18,900 en miljarde rye, en jy 'n heelgetal vir dit, 295 00:14:18,900 --> 00:14:22,750 wat gaan sodra gebeur jy rijnummer 4000000000 296 00:14:22,750 --> 00:14:26,210 en dan probeer jy om die plaas 4000000000 en 1, om so te praat? 297 00:14:26,210 --> 00:14:29,610 Ek is die vereenvoudiging van die getalle 'n bietjie. 298 00:14:29,610 --> 00:14:33,740 >> Jy kan sny, ek bedoel jy moet dit een of ander manier te hanteer. 299 00:14:33,740 --> 00:14:37,910 En wat 'n rekenaar tipies sou doen, daaroor dink selfs van vanoggend, 300 00:14:37,910 --> 00:14:42,430 as jy 'n 4-bit waarde soos 1, 1, 1, 1, wat, 301 00:14:42,430 --> 00:14:44,920 net om die oggend te bind saam met die middag, wat 302 00:14:44,920 --> 00:14:48,369 beteken hierdie getal verteenwoordig in binêre? 303 00:14:48,369 --> 00:14:49,410 OK, ons sal dit makliker te maak. 304 00:14:49,410 --> 00:14:53,310 Wat beteken hierdie getal verteenwoordig in binêre? 305 00:14:53,310 --> 00:14:56,794 OK, ons sal dit makliker te maak, wat beteken dit verteenwoordig in binêre? 306 00:14:56,794 --> 00:14:57,460 Publiek: Drie. 307 00:14:57,460 --> 00:14:59,670 David Malan: Drie, omdat Ons het die kinders column-- 308 00:14:59,670 --> 00:15:00,450 [Gelag] 309 00:15:00,450 --> 00:15:01,350 Sjoe! 310 00:15:01,350 --> 00:15:03,980 Ons het die kolom kinders en die twee-twee kolom. 311 00:15:03,980 --> 00:15:07,250 So veronderstel dat, wel, ons [? binneveld?] was nie 32 stukkies, 312 00:15:07,250 --> 00:15:13,440 maar dit was twee stukkies, ons kan tel van gebruiker getal 0, 1, 2, 3, 313 00:15:13,440 --> 00:15:18,040 en dan is ons soort terug na die gebruiker 00 weer. 314 00:15:18,040 --> 00:15:19,739 So dit is wat gewoonlik gebeur. 315 00:15:19,739 --> 00:15:22,780 As jy al ooit die expression-- het gehoor waarskynlik nie, maar as jy have-- 316 00:15:22,780 --> 00:15:26,500 heelgetal oorloop, waar jy hou daarby al jou stukkies 317 00:15:26,500 --> 00:15:29,640 om die grootste moontlike waardes wees, en dan is jy uit stukkies, 318 00:15:29,640 --> 00:15:30,850 wat sou tipies gebeur? 319 00:15:30,850 --> 00:15:32,280 Hoekom moet ek sê 00? 320 00:15:32,280 --> 00:15:33,220 Wel, dit is drie. 321 00:15:33,220 --> 00:15:34,230 Hoe kan ek 4 verteenwoordig? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Hoe kan ek verteenwoordig die vir nommer 4 in binêre? 324 00:15:38,915 --> 00:15:39,790 Gehoor: [onhoorbaar] 325 00:15:39,790 --> 00:15:41,780 David Malan: One-- ja, moenie sê 100 per se nie, 326 00:15:41,780 --> 00:15:44,190 want dit het die verkeerde konnotasie, maar 1-0-0. 327 00:15:44,190 --> 00:15:48,920 So dat die getal 1-0-0 is inderdaad korrek is, maar as jy net twee stukkies, 328 00:15:48,920 --> 00:15:50,820 Wat het jy regtig gedoen? 329 00:15:50,820 --> 00:15:53,219 Jy het na 00 gerol. 330 00:15:53,219 --> 00:15:54,760 En inderdaad, dit is wat gaan gebeur. 331 00:15:54,760 --> 00:15:56,884 Eintlik, kan jy dink hieroor meer vertroulik. 332 00:15:56,884 --> 00:15:59,350 As jy onthou, wat, 16 jaar gelede het die wêreld 333 00:15:59,350 --> 00:16:03,380 was veronderstel om die einde toe die J2K probleem gebeur. 334 00:16:03,380 --> 00:16:04,330 Hoekom was dit? 335 00:16:04,330 --> 00:16:08,170 Wel, die meeste rekenaars, vir redelike besluite, 336 00:16:08,170 --> 00:16:15,320 is die stoor nommers soos die jaar 1975 of die jaar 1999 337 00:16:15,320 --> 00:16:19,010 deur net die gebruik van twee syfers in die geheue van die rekenaar. 338 00:16:19,010 --> 00:16:21,950 So natuurlik, wat gebeur wanneer jy die jaar 2000, 339 00:16:21,950 --> 00:16:25,790 jy gaan om dit, of liewer, ja. 340 00:16:25,790 --> 00:16:30,120 So gaan jy na die jaar 2000, maar as jy net met behulp van twee syfers lyk dit 341 00:16:30,120 --> 00:16:32,660 soos die jaar 00 en sodat jy het oor gerol. 342 00:16:32,660 --> 00:16:36,820 En dit is die rede waarom 'n klomp stelsels wat nodig is om opgedateer op daardie tydstip. 343 00:16:36,820 --> 00:16:42,500 >> So met dit gesê, maatskappye soos Facebook aanloop teen hierdie. 344 00:16:42,500 --> 00:16:46,147 Dus is die enigste manier om die te hanteer situasie, eerlik, is om dit te verwag. 345 00:16:46,147 --> 00:16:47,980 Of die skoonste manier om hanteer hierdie situasie 346 00:16:47,980 --> 00:16:50,330 is om dit te verwag, sodat jy dit nie doen nie moet veranderinge later te maak. 347 00:16:50,330 --> 00:16:51,970 So in plaas van 8 grepe, jy weet wat? 348 00:16:51,970 --> 00:16:54,261 Ek gaan vooruit dink nie hier, selfs al is dit 349 00:16:54,261 --> 00:16:56,760 'n bietjie optimisties dat ons gaan hê 4000000000 350 00:16:56,760 --> 00:16:58,850 en 1 gebruikers op ons webwerf. 351 00:16:58,850 --> 00:17:01,790 Maar laat ons net gebruik 8 grepe, of 64 stukkies, wat oor die algemeen sou wees 352 00:17:01,790 --> 00:17:05,640 bekend as 'n groot heelgetal, baie tegnies van aard. 353 00:17:05,640 --> 00:17:10,280 En dit beteken net jy kan hê selfs meer syfers in jou nommer. 354 00:17:10,280 --> 00:17:12,599 Maar dit is 'n belangrike ontwerp besluit, 355 00:17:12,599 --> 00:17:16,400 want as jy 'n aantal kies wat het te min stukkies uitdrukking 356 00:17:16,400 --> 00:17:19,089 jy kan eintlik maak 'n fout in jou sagteware. 357 00:17:19,089 --> 00:17:21,750 >> Goed, so laat ons draai met e-pos en posadres. 358 00:17:21,750 --> 00:17:26,369 So e-pos, hoe lank moet 'n e-pos adres? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Ek het regtig geen idee nie, maar dit is waarskynlik iets soos dit, 361 00:17:29,220 --> 00:17:32,261 want anders niemand gaan skryf jy as dit te lank raak, so 50, 362 00:17:32,261 --> 00:17:33,360 Kom ons gaan met dit vir nou. 363 00:17:33,360 --> 00:17:35,770 Posadres, hoe lank moet dit wees? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 Gehoor: [onhoorbaar] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> David Malan: Dit is nie net 'n kode, al is. 368 00:17:43,890 --> 00:17:45,720 Posadres, hoor ek. 369 00:17:45,720 --> 00:17:50,720 So dit is soos 1 Brattle Square, komma, Cambridge Mass., komma, 02138. 370 00:17:50,720 --> 00:17:53,860 En in werklikheid, laat my net trek 'n bietjie werkblad hier. 371 00:17:53,860 --> 00:17:56,510 Dit voel soos dit is 'n gemiste kans. 372 00:17:56,510 --> 00:18:01,480 As ons 1 Brattle Square, komma, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 Ek voel soos ons beter kan doen as net posadres. 374 00:18:04,510 --> 00:18:07,100 Hoekom het ons nie ontplof dit 'n bietjie? 375 00:18:07,100 --> 00:18:08,030 Wat kry ek by? 376 00:18:08,030 --> 00:18:10,970 Wat moet ons 'plaas vir ons rye hier, miskien? 377 00:18:10,970 --> 00:18:12,260 >> Gehoor: [onhoorbaar] 378 00:18:12,260 --> 00:18:17,579 >> David Malan: Ja, so laat ons noem dit street_number, 379 00:18:17,579 --> 00:18:20,620 en 'n onderstreep is net 'n gewone manier van met wat lyk soos 'n ruimte, 380 00:18:20,620 --> 00:18:22,360 maar dit is nie, eintlik. 381 00:18:22,360 --> 00:18:26,240 Street, en dan city-- jammer? 382 00:18:26,240 --> 00:18:28,440 >> Gehoor: [onhoorbaar] 383 00:18:28,440 --> 00:18:29,690 David Malan: Ons kan dit doen. 384 00:18:29,690 --> 00:18:30,702 Line een, lyn twee. 385 00:18:30,702 --> 00:18:32,410 Hoekom nie sal ons hou dit eenvoudig vir nou, 386 00:18:32,410 --> 00:18:34,840 maar dit is absoluut 'n aanvaarbare besluit. 387 00:18:34,840 --> 00:18:38,180 En dan staat, en dan kom ons 'n bietjie VSA-sentriese vir nou 388 00:18:38,180 --> 00:18:42,040 en net doen poskode, net omdat Dit sal lei tot 'n interessante fout 389 00:18:42,040 --> 00:18:43,090 of probleem hier. 390 00:18:43,090 --> 00:18:44,655 So dink dis nou ons adres. 391 00:18:44,655 --> 00:18:47,280 Dit is 'n bietjie meer irriterende dat Ons het al hierdie meer velde, 392 00:18:47,280 --> 00:18:49,200 maar nou kan ons merk dinge 'n bietjie beter. 393 00:18:49,200 --> 00:18:53,210 >> So nou straatnommer waarskynlik behoort nie 'n kar te wees, moet dit? 394 00:18:53,210 --> 00:18:54,835 Wat moet dit wees? 395 00:18:54,835 --> 00:18:55,710 Gehoor: [onhoorbaar] 396 00:18:55,710 --> 00:18:57,835 David Malan: Miskien, 'n aantal soos 'n heelgetal weer? 397 00:18:57,835 --> 00:19:00,170 'N Groot heelgetal? 398 00:19:00,170 --> 00:19:02,170 Jy het waarskynlik nie leef by 4000000000 Hoofstraat 399 00:19:02,170 --> 00:19:03,490 of enigiets gek soos dit. 400 00:19:03,490 --> 00:19:06,850 So heelgetal is waarskynlik fyn, maar het enigiemand 401 00:19:06,850 --> 00:19:13,880 ooit geleef op 'n adres soos 1A Brattle Square, of 1 en 1/2? 402 00:19:13,880 --> 00:19:17,030 Hierdie dinge bestaan ​​ongelukkig selfs al is jy nie daar gewoon het, 403 00:19:17,030 --> 00:19:21,240 Daar is hierdie afwykings soos woonstel 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 So jy weet wat ons waarskynlik moet nie saam met heelgetal, 405 00:19:24,260 --> 00:19:27,440 anders gaan ons 'n paar verkope te verloor. 406 00:19:27,440 --> 00:19:29,920 >> Char veld, miskien? 407 00:19:29,920 --> 00:19:30,870 Ek weet nie hoe lank ken. 408 00:19:30,870 --> 00:19:33,370 Dit is waarskynlik nie van plan om te wees so lank, so 10 of iets. 409 00:19:33,370 --> 00:19:34,950 Niemand gaan skryf 'n langer nommer, miskien. 410 00:19:34,950 --> 00:19:37,070 Maar weereens, moet ons waarskynlik gee meer gedink aan daardie. 411 00:19:37,070 --> 00:19:39,900 Miskien Google doen 'n bietjie navorsing, maar ons sal saam met ons guts vir nou. 412 00:19:39,900 --> 00:19:44,565 Strate, kar, 50, ek weet nie. 413 00:19:44,565 --> 00:19:46,940 Op 'n sekere punt, is niemand gaan om dit te skryf op 'n koevert, 414 00:19:46,940 --> 00:19:49,350 Ook, daar is waarskynlik sommige bogrense daar. 415 00:19:49,350 --> 00:19:54,200 Plaas, dieselfde, seker, so char 50. 416 00:19:54,200 --> 00:19:59,120 >> State, kan VSA-sentriese vir nou. 417 00:19:59,120 --> 00:20:01,850 So kan dit 'n lys wees, so vriendelik van 'n vonnis oproep, meld. 418 00:20:01,850 --> 00:20:04,000 Dit kan wees soos twee karakters. 419 00:20:04,000 --> 00:20:06,140 So eintlik, miskien, ek bly sê kar. 420 00:20:06,140 --> 00:20:09,420 Ek bedoel waarskynlik varchar, net vir 'n paar doeltreffendheid, 421 00:20:09,420 --> 00:20:12,240 maar ons sal terug te kom na daardie besluit in 'n oomblik. 422 00:20:12,240 --> 00:20:16,150 Kan 'n kar van lengte 2 vir die staat wees. 423 00:20:16,150 --> 00:20:20,670 As in die VSA hulle, soos MA, Massachusetts, NY, New York, New Jersey, New 424 00:20:20,670 --> 00:20:22,100 Jersey, ensovoorts. 425 00:20:22,100 --> 00:20:23,630 So dit kan vasgestel word op daardie. 426 00:20:23,630 --> 00:20:25,900 DC vir Washington DC. 427 00:20:25,900 --> 00:20:29,915 >> Maar ek dink, Olivier, jy voorgestelde ander benadering. 428 00:20:29,915 --> 00:20:30,790 Gehoor: [onhoorbaar] 429 00:20:30,790 --> 00:20:33,670 David Malan: Ja, so dit is 'n klein irriterende om te tik in, 430 00:20:33,670 --> 00:20:37,890 maar 'n enum dalk meer sin maak, want op hierdie manier, ten minste in die VSA, 431 00:20:37,890 --> 00:20:41,320 jy kan opsom as tediously, maar jy doen dit net een keer in jou databasis 432 00:20:41,320 --> 00:20:47,480 en nooit weer hoef te dink oor dit, al 50 twee-karakter kodes. 433 00:20:47,480 --> 00:20:48,660 So ek wil enum. 434 00:20:48,660 --> 00:20:51,720 Kom ons vashou aan dat daar, as gevolg dit soort van dwing meer strengheid. 435 00:20:51,720 --> 00:20:53,620 En dan kode rits? 436 00:20:53,620 --> 00:20:55,306 Ek dink Andrew het 'n gedagte oor wat 437 00:20:55,306 --> 00:20:56,180 Gehoor: [onhoorbaar] 438 00:20:56,180 --> 00:20:57,240 David Malan: Ja, vyf of nege. 439 00:20:57,240 --> 00:20:58,323 Kom ons hou dit net eenvoudig nie. 440 00:20:58,323 --> 00:20:59,380 Doen vyf vir nou. 441 00:20:59,380 --> 00:21:03,070 Maar miskien kan ek net doen 'n heelgetal, reg? 442 00:21:03,070 --> 00:21:08,750 Ek kon, maar jy weet wat ek gemaak hierdie fout keer, in 'n sekere sin. 443 00:21:08,750 --> 00:21:13,110 Jare gelede, was ek migreer vanaf Microsoft Outlook na Gmail, 444 00:21:13,110 --> 00:21:18,640 en Outlook het 'n manier om die uitvoer al jou kontakte as 'n Excel-lêer, 445 00:21:18,640 --> 00:21:21,280 'n CSV-lêer, komma waardes lêer geskei. 446 00:21:21,280 --> 00:21:23,950 En ek het die fout gemaak het, het ek dink, dubbele te klik, 447 00:21:23,950 --> 00:21:27,380 nadat ek afgelaai die uitvoer, te maak seker dat dit lyk soos ek verwag het. 448 00:21:27,380 --> 00:21:31,320 Ek moet getref Slaan of laat Auto-red skop in of iets. 449 00:21:31,320 --> 00:21:35,100 Want as ek dan ingevoer dit in Gmail, dit alles saam. 450 00:21:35,100 --> 00:21:39,910 Maar vir die jaar, tot vandag toe, en Ek het dit vyf, 10 jaar gelede, 451 00:21:39,910 --> 00:21:44,380 Ek is nog steeds die vind van vriende wat adresse wat lyk soos hierdie. 452 00:21:44,380 --> 00:21:45,700 Hoekom? 453 00:21:45,700 --> 00:21:47,900 >> Gehoor: [onhoorbaar] 454 00:21:47,900 --> 00:21:50,650 >> David Malan: Dit het die 0, goed, maar eerder, dit 455 00:21:50,650 --> 00:21:53,810 het die hele poskode as 'n nommer, en daarom is dit 456 00:21:53,810 --> 00:21:56,590 'n leidende 0 wat beteken dit het geen betekenis. 457 00:21:56,590 --> 00:21:59,470 En so 2138 lyk my poskode wees. 458 00:21:59,470 --> 00:22:07,100 En dit is die waarheid te sê, 'n irriterende Excel funksie waardeur ek dink by verstek, 459 00:22:07,100 --> 00:22:10,980 selfs al is dit bedoel om net wees teks, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 besluit, laat my nuttig wees, en O, ek sien net nommers. 461 00:22:13,780 --> 00:22:15,290 Kom ons hanteer dit as nommers. 462 00:22:15,290 --> 00:22:16,790 En dit truncates die voorste nulle. 463 00:22:16,790 --> 00:22:19,165 >> Ek sweer aan God, elke paar maande Ek vind 'n adres, 464 00:22:19,165 --> 00:22:22,300 en uit 'n soort van OCD, gaan ek terug in en voeg die 0, selfs al het ek nog nooit 465 00:22:22,300 --> 00:22:23,700 stuur mense briewe of iets. 466 00:22:23,700 --> 00:22:25,510 Maar ek is nog steeds vind oorblyfsels van hierdie. 467 00:22:25,510 --> 00:22:28,820 So dit is om te sê, is dit 'n goeie idee? 468 00:22:28,820 --> 00:22:31,610 OK, nee, want niemand in Massachusetts, op hierdie gebied, 469 00:22:31,610 --> 00:22:33,270 gaan 'n o voorste hulle het. 470 00:22:33,270 --> 00:22:38,070 So laat ons gaan met soos kar, waarskynlik, vyf. 471 00:22:38,070 --> 00:22:41,450 >> En hier, besef ons kon 'n enum en ons gebruik 472 00:22:41,450 --> 00:22:44,600 kon opsom 10000 moontlik zipkodes 473 00:22:44,600 --> 00:22:48,530 maar wat voel soos dit is waarskynlik kruising van 'n lyn van, soos, voordele. 474 00:22:48,530 --> 00:22:51,350 As jy op die insette wat veel data in jou databasis 475 00:22:51,350 --> 00:22:52,940 te beskerm teen iets. 476 00:22:52,940 --> 00:22:57,400 So kar besef jy kan tik in H-E-L-L-O as jou poskode, 477 00:22:57,400 --> 00:22:59,180 wat is nie, natuurlik, numeriese. 478 00:22:59,180 --> 00:23:01,680 Daar is dus geen manier, in 'n tipiese databasis, 479 00:23:01,680 --> 00:23:05,561 slegs numeriese spesifiseer en slegs vyf karakters lank, 480 00:23:05,561 --> 00:23:07,310 so ons gaan hê om dit te doen in die kode. 481 00:23:07,310 --> 00:23:11,100 Ons gaan om dit te doen in PHP of Java of wat ook al taal wat ons is 482 00:23:11,100 --> 00:23:14,230 gebruik van die bediener af te dwing daardie soort dwang. 483 00:23:14,230 --> 00:23:14,860 >> Whoo! 484 00:23:14,860 --> 00:23:18,322 Goed, so enige vrae nog net? 485 00:23:18,322 --> 00:23:19,780 Kom ons maak 'n ander ontwerp besluit. 486 00:23:19,780 --> 00:23:22,500 Dit blyk dat jy ook om van te kies, 487 00:23:22,500 --> 00:23:26,600 by die ontwerp van 'n SQL databasis, of tipiese relasionele database-- waar 488 00:23:26,600 --> 00:23:28,790 weer, relasionele net beteken rye en kolomme, 489 00:23:28,790 --> 00:23:35,500 dit is hoe jy jou data-- organiseer en besef dat wat dit beteken is, 490 00:23:35,500 --> 00:23:37,740 Ek het al misleidend in wat, ek is drawing-- hierdie 491 00:23:37,740 --> 00:23:40,190 is wat is bekend as die skedule vir 'n databasistabel. 492 00:23:40,190 --> 00:23:42,810 Dit is soos die spesifikasies vir die table-- 493 00:23:42,810 --> 00:23:48,040 maar wanneer dit tyd aanbreek om werklik te stoor, 494 00:23:48,040 --> 00:23:52,081 en ons sal dit doen net deur 'n voorbeeld hier. 495 00:23:52,081 --> 00:23:55,080 Ek gaan om oop te maak Excel, omdat Excel sal my rye en kolomme gee. 496 00:23:55,080 --> 00:23:58,050 En dit is presies wat Oracle en MySQL en ander instrumente sal my gee. 497 00:23:58,050 --> 00:24:02,270 So ek gaan net om te gebruik dit ter wille van bespreking nie. 498 00:24:02,270 --> 00:24:05,250 Laat my gaan voort en maak 'n verteenwoordiger dokument hier, 499 00:24:05,250 --> 00:24:06,310 in 'n bietjie te vergroot. 500 00:24:06,310 --> 00:24:15,200 So byvoorbeeld, ons kop is nou eerste naam, laaste naam, geslag, ID, 501 00:24:15,200 --> 00:24:20,980 e-pos, straatnommer, straat, Oeps. 502 00:24:20,980 --> 00:24:25,710 Street, stad, staat, net oor pas op die skerm. 503 00:24:25,710 --> 00:24:29,080 >> So, wat dit beteken is dat wanneer 'n gebruiker eerste registreer vir my webwerf, 504 00:24:29,080 --> 00:24:32,880 dit gaan iets soos Dawid Malan, m, kom ons sê 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, straatnommer sal soos 1 Brattle Square, Cambridge, MA, 506 00:24:42,910 --> 00:24:44,780 02138, en dan so meer. 507 00:24:44,780 --> 00:24:48,290 So as ek sê dat 'n relasionele databasis of SQL databasis is rye en kolomme, 508 00:24:48,290 --> 00:24:49,350 Ek bedoel dit. 509 00:24:49,350 --> 00:24:51,900 Dit werklike data gestoor in rye en kolomme. 510 00:24:51,900 --> 00:24:53,950 Dit is net 'n toeval, wat ons praat, 511 00:24:53,950 --> 00:24:56,033 en ek was net teken dit in rye en kolomme. 512 00:24:56,033 --> 00:24:58,320 Dit is net die skema, die oorkoepelende definisie. 513 00:24:58,320 --> 00:25:01,640 >> So van hierdie velde hier, Of anders gestel, is daar, 514 00:25:01,640 --> 00:25:06,270 wat die velde wat jy dink is Ek is geneig om te soek op as ek 'n gebruiker 515 00:25:06,270 --> 00:25:09,200 of as ek die databasis administrateur? 516 00:25:09,200 --> 00:25:12,426 Soos wat velde is ek eintlik gaan soek op? 517 00:25:12,426 --> 00:25:13,830 >> Gehoor: [onhoorbaar] 518 00:25:13,830 --> 00:25:17,690 >> David Malan: Die naam, ja so Ek hou van die feit that-- ja, 519 00:25:17,690 --> 00:25:19,750 e-pos kan redelik algemeen wees. 520 00:25:19,750 --> 00:25:21,440 Jammer, jy het gesê naam. 521 00:25:21,440 --> 00:25:24,030 So maybe-- en weer, ons is soort praat in die abstrakte. 522 00:25:24,030 --> 00:25:25,988 Ek weet nie hoekom jy wil word op soek na 'n naam, 523 00:25:25,988 --> 00:25:29,340 maar wat voel redelik as jy soek vir 'n gebruiker. 524 00:25:29,340 --> 00:25:31,170 Miskien stel, seker, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> En dit is 'n glibberige helling, want ek kon 527 00:25:36,160 --> 00:25:38,890 bedink 'n scenario waar Miskien is my baas het my gevra, 528 00:25:38,890 --> 00:25:40,417 hoeveel mense het ons op ons webwerf? 529 00:25:40,417 --> 00:25:42,000 Hoeveel vroue het ons op ons webwerf? 530 00:25:42,000 --> 00:25:45,210 En so op daardie stadium, wil jy dalk Soek op die veld geslag ook 531 00:25:45,210 --> 00:25:45,940 en niks anders nie. 532 00:25:45,940 --> 00:25:47,350 Daar is dus hier 'n trade-off. 533 00:25:47,350 --> 00:25:49,180 Weereens, daar is geen regte antwoord, maar daar 534 00:25:49,180 --> 00:25:53,760 is 'n funksie in die meeste SQL databasis bekend as kruip, waardeur 535 00:25:53,760 --> 00:25:56,100 jy, die ontwerper, die databasis administrateur, 536 00:25:56,100 --> 00:26:01,730 kry om te besluit vooraf watter velde van die databasis moet optimaliseer 537 00:26:01,730 --> 00:26:02,980 vir soektogte op. 538 00:26:02,980 --> 00:26:07,620 >> Jy kan baie naïef sê, te optimaliseer hierdie, optimaliseer dat optimaliseer hierdie, 539 00:26:07,620 --> 00:26:10,300 optimaliseer dat en hierdie, en die databasis sal 540 00:26:10,300 --> 00:26:14,882 doen 'n paar magiese ding onder die kap, en iets te doen in so 'n manier 541 00:26:14,882 --> 00:26:17,090 dat die volgende keer wat jy soek op enige van hierdie velde, 542 00:26:17,090 --> 00:26:18,400 Dit sal inderdaad vinniger. 543 00:26:18,400 --> 00:26:19,110 Dit is moontlik. 544 00:26:19,110 --> 00:26:20,530 Dit maak hom nie kanselleer. 545 00:26:20,530 --> 00:26:22,500 Maar daar moet 'n prys betaal word. 546 00:26:22,500 --> 00:26:27,220 >> As jy naïef, of oor-entoesiasties Sê indeks al hierdie velde, 547 00:26:27,220 --> 00:26:29,810 so te sê, maak hulle almal doeltreffend gesoek, 548 00:26:29,810 --> 00:26:31,625 watter prys jy waarskynlik betaal? 549 00:26:31,625 --> 00:26:32,500 Gehoor: [onhoorbaar] 550 00:26:32,500 --> 00:26:33,090 David Malan: Prestasie. 551 00:26:33,090 --> 00:26:33,798 Wat bedoel jy? 552 00:26:33,798 --> 00:26:37,380 Wel prestasie, ten minste in die konteks Ek bespreek, is nou beter. 553 00:26:37,380 --> 00:26:38,830 Dit is die definisie van kruip. 554 00:26:38,830 --> 00:26:41,180 Dit sal soektogte vinniger te maak. 555 00:26:41,180 --> 00:26:43,366 So tyd afneem, om so te praat. 556 00:26:43,366 --> 00:26:44,240 Gehoor: [onhoorbaar] 557 00:26:44,240 --> 00:26:45,031 David Malan: Space. 558 00:26:45,031 --> 00:26:46,520 So weer, dit is 'n algemene handel. 559 00:26:46,520 --> 00:26:50,820 Ek kan bespoedig jou soektogte, maar dit is gaan jy meer kos grepe van ruimte. 560 00:26:50,820 --> 00:26:51,610 Hoekom? 561 00:26:51,610 --> 00:26:55,230 Wel, by verstek, as ons nie een van hierdie rooi sterre, geeneen van hierdie indekse, 562 00:26:55,230 --> 00:26:58,797 soos ek sê, hoe kan jy soek vir 'n naam in die databasis? 563 00:26:58,797 --> 00:27:00,630 So laat ons trek ons aandag aan hierdie voorbeeld. 564 00:27:00,630 --> 00:27:06,300 As ons Dawid en Scully en Kareem en Arwa en ander in hierdie rye, 565 00:27:06,300 --> 00:27:06,910 byvoorbeeld. 566 00:27:06,910 --> 00:27:08,390 >> So laat ons doen presies dit. 567 00:27:08,390 --> 00:27:13,990 Scully is hier, en dan Ons het Kareem, en Arwa, 568 00:27:13,990 --> 00:27:18,390 en al die ander, as jy dit nie doen nie 'n indeks gedefinieer, om so te praat, 569 00:27:18,390 --> 00:27:20,160 die beste wat jy kan doen is om lineêre soek. 570 00:27:20,160 --> 00:27:23,470 As jy soek vir Arwa, ons is nie gaan in staat wees om reg te spring om haar 571 00:27:23,470 --> 00:27:24,140 vinnig. 572 00:27:24,140 --> 00:27:26,556 Ons gaan na bo begin en gaan al die pad na die bodem, 573 00:27:26,556 --> 00:27:28,600 nie in teenstelling met ons oorspronklike Mike Smith voorbeeld. 574 00:27:28,600 --> 00:27:33,470 >> As jy egter sê ek, hey, databasis, indeks die eerste naam veld, 575 00:27:33,470 --> 00:27:37,000 dan is dit gaan om iets te doen liefhebber en iets te ondersteun 576 00:27:37,000 --> 00:27:38,130 soos binêre soek. 577 00:27:38,130 --> 00:27:39,820 Dit is waarskynlik nie binêre soek per se. 578 00:27:39,820 --> 00:27:42,810 Databasisse is geneig om 'n ander te gebruik datastruktuur genoem b-bome, 579 00:27:42,810 --> 00:27:46,540 moet nie verwar word met binêre bome, wat net maak dit vinniger te soek 580 00:27:46,540 --> 00:27:48,500 iets logaritmiese in die natuur. 581 00:27:48,500 --> 00:27:53,510 Maar die prys wat jy betaal om op te bou wat funksie, wat datastruktuur in die geheue, 582 00:27:53,510 --> 00:27:54,570 meer grepe. 583 00:27:54,570 --> 00:27:57,170 So kan dit 'n paar megagrepe neem, sommige GB, wie weet? 584 00:27:57,170 --> 00:27:58,410 Dit hang af van die data. 585 00:27:58,410 --> 00:28:02,640 >> So op 'n sekere punt, jy moet besluit, dit is waarskynlik nie 'n gemeenskaplike saak. 586 00:28:02,640 --> 00:28:06,000 So, wat is die werklike algemene gevalle, as jy regtig moes kies, 587 00:28:06,000 --> 00:28:10,080 wat kan jou gunsteling velde wees? 588 00:28:10,080 --> 00:28:10,580 E-pos. 589 00:28:10,580 --> 00:28:14,400 En ek wil e-pos, want e-pos, in teorie, moet uniek wees. 590 00:28:14,400 --> 00:28:17,650 En so tipies, wanneer jy weet by voorbaat dat een van julle lande 591 00:28:17,650 --> 00:28:20,277 is of sal uniek wees, wat geneig is om 'n goeie veld 592 00:28:20,277 --> 00:28:22,860 Soek op, want op die manier, wanneer jy soek na iets, 593 00:28:22,860 --> 00:28:26,194 jy gaan om terug te kry een of nul antwoorde en dan is jy klaar is. 594 00:28:26,194 --> 00:28:28,110 Jy hoef nie te hou op soek na nog ander. 595 00:28:28,110 --> 00:28:31,992 >> En so in hierdie geval hier, e-pos, so lank as wat jy nie twee keer kan registreer 596 00:28:31,992 --> 00:28:33,450 met dieselfde e-pos, is 'n goeie een. 597 00:28:33,450 --> 00:28:36,710 ID per definisie, in die rekenaarwetenskap wêreld, 598 00:28:36,710 --> 00:28:39,610 As jy praat oor 'n ID, wat beter unieke het nie. 599 00:28:39,610 --> 00:28:42,970 Dit is soort van die konnotasie van ID of identifikasie. 600 00:28:42,970 --> 00:28:46,440 En die res van hierdie kan wees, Kom ons noem dit lekker om haves, 601 00:28:46,440 --> 00:28:47,860 maar nie regtig nodig is. 602 00:28:47,860 --> 00:28:49,976 >> En so in 'n databasis, jy indekse spesifiseer, 603 00:28:49,976 --> 00:28:51,350 maar jy kan nog meer presies te wees. 604 00:28:51,350 --> 00:28:56,060 Jy kan sê, hey, databasis, maak seker dat elke ID in hierdie tabel is uniek. 605 00:28:56,060 --> 00:28:59,330 Moet nie eers toelaat dat 'n programmeerder per ongeluk in 'n dubbele e-pos 606 00:28:59,330 --> 00:29:00,740 of dupliseer ID-nommer. 607 00:29:00,740 --> 00:29:03,140 Soveel soos enums beskerm ons insgelyks, jy 608 00:29:03,140 --> 00:29:04,881 kan diegene laer-vlak verdediging het. 609 00:29:04,881 --> 00:29:07,130 En so databasisontwerp, in 'n sekere sin, is 'n soort van pret, 610 00:29:07,130 --> 00:29:08,380 omdat jy dit defensief te doen. 611 00:29:08,380 --> 00:29:11,460 Jy soort van aanvaar dat jy werk met aaklige, aaklige programmeerders 612 00:29:11,460 --> 00:29:15,550 en jy wil soveel verdediging in te sit as wat jy kan om jou data te beskerm, 613 00:29:15,550 --> 00:29:18,940 maar terselfdertyd jy wil om hulle te help beter te presteer 614 00:29:18,940 --> 00:29:21,386 deur te kies watter velde te optimaliseer vir. 615 00:29:21,386 --> 00:29:24,260 Maar jy kan nie noodwendig in 'n vakuum soos ons soort is hier. 616 00:29:24,260 --> 00:29:26,480 Jy het om te weet wat is diegene algemene gevalle word. 617 00:29:26,480 --> 00:29:29,397 As die ontwikkelaars is implementering van 'n adres boek, 618 00:29:29,397 --> 00:29:32,230 jy dalk baie goed wil in staat wees Soek op byna elke gebied, 619 00:29:32,230 --> 00:29:33,830 net deur die natuur van die aansoek. 620 00:29:33,830 --> 00:29:37,910 So miskien spandeer jy dat bykomende ruimte. 621 00:29:37,910 --> 00:29:39,090 >> Reg, enige vrae? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 Ja. 624 00:29:42,486 --> 00:29:43,470 >> Gehoor: [onhoorbaar] 625 00:29:43,470 --> 00:29:44,404 >> David Malan: No. 626 00:29:44,404 --> 00:29:45,279 >> Gehoor: [onhoorbaar] 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 >> Gehoor: [onhoorbaar] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> David Malan: Ag, sodat ons praat op 'n manier 632 00:29:54,850 --> 00:29:57,940 nou dit is heeltemal taal agnostikus. 633 00:29:57,940 --> 00:30:02,370 So ons is nou praat relasionele databasisse meer algemeen, 634 00:30:02,370 --> 00:30:04,760 of SQL databases meer algemeen. 635 00:30:04,760 --> 00:30:06,870 >> Gehoor: [onhoorbaar] 636 00:30:06,870 --> 00:30:10,030 >> David Malan: 'n beter woord om te gebruik is, kan gebruik word deur enige taal. 637 00:30:10,030 --> 00:30:15,280 So kan ek JavaScript-kode skryf, C kode, C ++ kode, Java-kode, Ruby kode, 638 00:30:15,280 --> 00:30:19,010 wat almal praat met 'n databasis en uit te voer navrae. 639 00:30:19,010 --> 00:30:22,310 Trouens, dit is nie 'n slegte segue om 'n voorbeeld navraag. 640 00:30:22,310 --> 00:30:25,720 En weer, ons gaan nie in te gaan Java of C ++ of enige van daardie nie, 641 00:30:25,720 --> 00:30:29,420 maar in SQL, die taal waarin ek hou verwys, Structured Query Language, 642 00:30:29,420 --> 00:30:32,790 hierdie self is 'n programmeertaal, maar dit is bedoel om gebruik te word vir geen 643 00:30:32,790 --> 00:30:37,330 verrassing, gestruktureerde navraag navrae. 644 00:30:37,330 --> 00:30:38,660 >> Daarmee bedoel ek dit. 645 00:30:38,660 --> 00:30:41,190 Die manier waarop jy data kies uit 'n MySQL databasis 646 00:30:41,190 --> 00:30:49,330 is jy letterlik tik in jou program iets soos kies ster van die gebruikers. 647 00:30:49,330 --> 00:30:52,200 Ek neem aan dat hierdie tabel, voortaan word gebruikers genoem. 648 00:30:52,200 --> 00:30:54,860 Ek kon dit noem enigiets wat ons wil, maar dat die soort van sin maak. 649 00:30:54,860 --> 00:30:57,240 En so kies 'n baie algemene werkwoord, as jy 650 00:30:57,240 --> 00:30:59,290 sal, in SQL, wat letterlik beteken dat. 651 00:30:59,290 --> 00:31:02,730 Wat dink jy ster beteken in hierdie konteks? 652 00:31:02,730 --> 00:31:04,410 >> Gehoor: [onhoorbaar] 653 00:31:04,410 --> 00:31:05,380 >> David Malan: Ek is jammer? 654 00:31:05,380 --> 00:31:06,300 >> Gehoor: [onhoorbaar] 655 00:31:06,300 --> 00:31:09,580 >> David Malan: nie nodig nie, dis meer inklusiewe as dit, eintlik. 656 00:31:09,580 --> 00:31:11,700 Dit is die wild card karakter. 657 00:31:11,700 --> 00:31:14,740 Ster byna altyd beteken niks, so dit beteken, in hierdie geval, 658 00:31:14,740 --> 00:31:16,510 Kies alles van die databasis. 659 00:31:16,510 --> 00:31:20,730 En toe ek dit sê, ek bedoel gee my terug elke kolom 660 00:31:20,730 --> 00:31:22,440 uit my tafel geroep gebruikers. 661 00:31:22,440 --> 00:31:24,730 So gee my 'n resultaat stel, soos dit genoem word. 662 00:31:24,730 --> 00:31:28,210 Met ander woorde, gee my 'n afskrif van die sigblad, is wat ek kry by. 663 00:31:28,210 --> 00:31:34,890 >> Maar as ek sê kies ster van die gebruikers waar ID gelyk 1, hoe groot moet 664 00:31:34,890 --> 00:31:36,640 my gevolg stel dan? 665 00:31:36,640 --> 00:31:41,680 Of anders gestel, hoeveel rye moet Ek teruggegee word van die databasis? 666 00:31:41,680 --> 00:31:45,860 Waarskynlik net een, as ek wel behandel ID as unieke identifikasie, 667 00:31:45,860 --> 00:31:50,710 en as Dawid het daardie unieke ID, ek moet terug te kry een en slegs een ry 668 00:31:50,710 --> 00:31:53,220 wat al inligting van Dawid. 669 00:31:53,220 --> 00:31:56,390 As ek sê dit waar ID gelyk 99, moet ek terug te kry, 670 00:31:56,390 --> 00:32:00,320 In hierdie konteks, nul rye, ten minste op die oomblik. 671 00:32:00,320 --> 00:32:03,620 >> Maar as ek nie regtig omgee oor al daardie inligting, 672 00:32:03,620 --> 00:32:06,970 Ek kon net sê, waar kom Dawid leef? 673 00:32:06,970 --> 00:32:10,860 Kies poskode van gebruikers waar ID is 1. 674 00:32:10,860 --> 00:32:15,820 Dit sal kies om my net David se ritssluiter kode en nie die hele inhoud van die ry. 675 00:32:15,820 --> 00:32:19,541 Hoekom kan ek dit in plaas van doen die ster navraag, die wild card? 676 00:32:19,541 --> 00:32:21,950 >> Gehoor: [onhoorbaar] 677 00:32:21,950 --> 00:32:24,590 >> David Malan: Ja, ek kan net nodig het. 678 00:32:24,590 --> 00:32:26,350 So prestasie is weer die antwoord hier. 679 00:32:26,350 --> 00:32:28,540 Hoekom vra vir meer inligting as wat jy nodig het, 680 00:32:28,540 --> 00:32:32,020 want selfs al is dit alles reg saam, jy moet nog daardie data kopieer, 681 00:32:32,020 --> 00:32:35,560 Dit wil voorkom, uit die databasis in jou program of ander manier, 682 00:32:35,560 --> 00:32:38,490 en dit is net dom as jy net nodig vyf van dié syfers, 683 00:32:38,490 --> 00:32:40,340 nie die geheel van die ry. 684 00:32:40,340 --> 00:32:42,180 >> So, hoe kan ek 'n gebruiker te voeg? 685 00:32:42,180 --> 00:32:44,780 Veronderstel 'n gebruiker het net geregistreer vir die eerste keer. 686 00:32:44,780 --> 00:32:46,560 Die sintaksis sal gewoonlik soos volg lyk. 687 00:32:46,560 --> 00:32:52,700 Voeg in gebruikers, en dan sal ons waardes sê, 688 00:32:52,700 --> 00:33:00,150 en dan sal ons waardes sê soos, kom ons sê, Lauren Scully, 689 00:33:00,150 --> 00:33:02,380 ons videograaf hier. 690 00:33:02,380 --> 00:33:04,390 En die volgende veld is geslag. 691 00:33:04,390 --> 00:33:08,020 So ons sal sê quote, unquote "F", dan het ons 'n ID 692 00:33:08,020 --> 00:33:12,250 en ek gaan say-- laat voorgee sy is nie eintlik hier, 693 00:33:12,250 --> 00:33:14,380 so ons sal terugdraai in die storie. 694 00:33:14,380 --> 00:33:16,530 So 2 sal haar ID te wees. 695 00:33:16,530 --> 00:33:19,130 En dan is die volgende veld hier is haar e-pos. 696 00:33:19,130 --> 00:33:22,140 So dit gaan wees soos Lauren Scully en dies meer, 697 00:33:22,140 --> 00:33:24,360 en ons sal net dot dot dot dit weg van hier op. 698 00:33:24,360 --> 00:33:26,890 Nou sal dit 'n bietjie te kry vervelige, maar die insetsel navraag 699 00:33:26,890 --> 00:33:28,310 sou uiteindelik lyk dit. 700 00:33:28,310 --> 00:33:30,970 >> As ek wil om ontslae te raak van Scully, uh-oh, kom ons deregistreer 701 00:33:30,970 --> 00:33:37,420 haar, verwyder sy haar rekening, verwyder van gebruikers waar ID gelyk 2, 702 00:33:37,420 --> 00:33:38,500 sal ontslae te raak van Scully. 703 00:33:38,500 --> 00:33:48,050 Of ek kan sê update gebruikers stel, kom ons sê, wat kan ons verander? 704 00:33:48,050 --> 00:33:49,430 Veronderstel sy beweeg. 705 00:33:49,430 --> 00:33:53,730 Stel zip gelyk 021-- nope, dit is haar huidige zip. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 Die enigste ander poskode Ek weet in die wêreld. 708 00:33:56,320 --> 00:33:59,002 Sodat sal verander haar zip code-- eintlik, 709 00:33:59,002 --> 00:34:00,460 wat sou haar Poskode nie verander nie. 710 00:34:00,460 --> 00:34:02,170 >> Wat het ek net doen? 711 00:34:02,170 --> 00:34:04,292 Selfs al is die sintaksis is waarskynlik nuwe. 712 00:34:04,292 --> 00:34:05,302 >> Gehoor: [onhoorbaar] 713 00:34:05,302 --> 00:34:08,010 David Malan: Ja, ek het almal om Beverly Hills, Kalifornië. 714 00:34:08,010 --> 00:34:11,920 So sou ek eintlik sê waar ID gelyk 2. 715 00:34:11,920 --> 00:34:12,820 En dies meer. 716 00:34:12,820 --> 00:34:15,290 So SQL is alles oor hierdie soorte instruksies. 717 00:34:15,290 --> 00:34:20,260 Kies, voeg, te verwyder, te verander, met hierdie predicaten aan die einde 718 00:34:20,260 --> 00:34:22,139 hierdie waar klousules, om so te praat. 719 00:34:22,139 --> 00:34:25,170 En daar is 'n baie meer wat jy kan doen nie, maar dit is werklik net daarop neer 720 00:34:25,170 --> 00:34:29,750 om eenvoudig, as arcanely, uitdrukking wat jy wil hê die databasis te doen. 721 00:34:29,750 --> 00:34:31,580 >> En dan die databasis sal uitvind, wanneer 722 00:34:31,580 --> 00:34:35,630 jy voeg Lauren Scully in die databasis, waar haar in die geheue sit 723 00:34:35,630 --> 00:34:38,230 sodat ons baie vinnig kan kry haar op grond van haar e-pos adres 724 00:34:38,230 --> 00:34:42,610 of op grond van haar ID-nommer of dies meer. 725 00:34:42,610 --> 00:34:43,391 Ja, Dan. 726 00:34:43,391 --> 00:34:44,266 Gehoor: [onhoorbaar] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 David Malan: Regtig 'n goeie vraag. 729 00:34:47,780 --> 00:34:50,370 Sal hierdie skrifte verander van Microsoft Access te Oracle 730 00:34:50,370 --> 00:34:52,290 MySQL te PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 Die kort antwoord is dit hang af. 732 00:34:53,790 --> 00:34:58,697 In teorie, daar is 'n baie beduidende algemene subset van SQL 733 00:34:58,697 --> 00:35:00,780 dit is verdeeld oor die hele van hierdie implementasies. 734 00:35:00,780 --> 00:35:03,340 Maar verskeie vervaardigers het meer funksies 735 00:35:03,340 --> 00:35:07,120 om hul databasisse aan sekere dinge te doen buite die bestek van hierdie eienskappe, 736 00:35:07,120 --> 00:35:08,720 wat kan, in werklikheid, breek. 737 00:35:08,720 --> 00:35:11,210 >> So het die manier ontwikkelaars verskans teen hierdie, 738 00:35:11,210 --> 00:35:14,350 is dat in plaas van die skryf van rou SQL-kode soos ek hier skryf, 739 00:35:14,350 --> 00:35:19,460 hulle plaas gebruik 'n biblioteek, 'n gemeenskaplike biblioteek wat homself 740 00:35:19,460 --> 00:35:23,650 is 'n soort van 'n hoër vlak en abstrakte weg wat die produk wat jy gebruik. 741 00:35:23,650 --> 00:35:25,710 En dit gee jou funksies en prosedures 742 00:35:25,710 --> 00:35:28,810 om sodat jy nooit bel eintlik skryf rou SQL. 743 00:35:28,810 --> 00:35:32,609 >> In teorie, dan kan jy verander produkte van Oracle Microsoft 744 00:35:32,609 --> 00:35:34,650 of andersom of enigiets anders, en jy letterlik 745 00:35:34,650 --> 00:35:36,920 niks oor jou kode te verander. 746 00:35:36,920 --> 00:35:40,180 Die werklikheid is egter, jy soms opgee funksies as 'n resultaat. 747 00:35:40,180 --> 00:35:43,860 Jy kan 'n produk as gevolg gekies dit het hierdie eienskappe op toegevoegde waarde, 748 00:35:43,860 --> 00:35:46,610 en jy is nou net nie die gebruik van hulle doelbewus. 749 00:35:46,610 --> 00:35:51,630 >> En anecdotally, die meeste maatskappye is geneig nooit weg van hul databasis te skuif. 750 00:35:51,630 --> 00:35:54,002 Dus, terwyl dit 'n lekker wees om het funksie, die werklikheid 751 00:35:54,002 --> 00:35:55,960 is, as jy opknapping jou databasis, jy 752 00:35:55,960 --> 00:35:59,890 waarskynlik maak trosse van ander veranderinge In elk geval, wat jy nie noodwendig 753 00:35:59,890 --> 00:36:01,360 moet verwag dat. 754 00:36:01,360 --> 00:36:03,720 Dit is dus waarskynlik oor-Engineering die probleem, 755 00:36:03,720 --> 00:36:05,670 maar dit hang af van die konteks. 756 00:36:05,670 --> 00:36:09,960 Maar in teorie, SQL gedeel oor die verskillende produkte. 757 00:36:09,960 --> 00:36:11,560 Regtig 'n goeie vrae. 758 00:36:11,560 --> 00:36:12,272 Ja. 759 00:36:12,272 --> 00:36:13,147 >> Gehoor: [onhoorbaar] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> David Malan: Ja, so jy kan 'n databasis dink 762 00:36:21,480 --> 00:36:25,020 is net 'n bediener, aan die einde van die dag, en binnekant van die bediener 763 00:36:25,020 --> 00:36:28,670 is 'n hele klomp van die tafels, rye en kolomme. 764 00:36:28,670 --> 00:36:33,410 En wanneer jy 'n navraag te stuur soos hierdie uit jou program, jou webwerf, 765 00:36:33,410 --> 00:36:39,340 geskryf in Java, Ruby, Python, wat ook al, die bediener ontvang hierdie opdrag 766 00:36:39,340 --> 00:36:41,660 en die interpretasie van dit in letterlik op dieselfde manier 767 00:36:41,660 --> 00:36:43,660 ons vroeër bespreek met geïnterpreteer tale, 768 00:36:43,660 --> 00:36:47,333 en dan die uitvoering van 'n aksie op nul of meer rye in nul of meer tabelle. 769 00:36:47,333 --> 00:36:48,208 Gehoor: [onhoorbaar] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> David Malan: Presies, presies. 772 00:36:55,070 --> 00:36:58,450 So het die pseudokode na iets so kan dit wees. 773 00:36:58,450 --> 00:37:02,450 In jou PHP lêer of jou Python lêer of jou Java lêer, 774 00:37:02,450 --> 00:37:09,210 jy sou pseudokode-kode het, of Kras soos blokke as, indien die gebruiker besoeke 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V vir die eerste keer, voeg dan in gebruikers en dies meer. 776 00:37:19,870 --> 00:37:22,619 En ons sou dit vertaal na meer konkrete kode op die ou end. 777 00:37:22,619 --> 00:37:24,660 Maar regtig, ons het al die boustene hier, 778 00:37:24,660 --> 00:37:27,680 selfs al is ons draai 'n paar van die stappe implementering. 779 00:37:27,680 --> 00:37:31,560 >> So laat my fout vind met wat ons wonderlik gedoen net 'n oomblik gelede. 780 00:37:31,560 --> 00:37:36,470 Jy het 'n mooi geskep volledige tabel vir gebruikers. 781 00:37:36,470 --> 00:37:38,920 Toegegee, kan ons implementeer dit in 'n paar verskillende maniere, 782 00:37:38,920 --> 00:37:43,030 maar jy het eintlik het ons af die path-- en sê ek jou, 783 00:37:43,030 --> 00:37:48,080 maar dit is waarskynlik my fault-- van 'n redelik ondoeltreffende databasis implementering. 784 00:37:48,080 --> 00:37:49,950 Dit is nie genormaliseer. 785 00:37:49,950 --> 00:37:52,320 >> En deur genormaliseer ek bedoel daar gaan wees, 786 00:37:52,320 --> 00:37:57,380 met verloop van tyd, 'n beduidende ontslag, en dus ondoeltreffendheid, 787 00:37:57,380 --> 00:38:00,210 dit is n vermorsing van ruimte. 788 00:38:00,210 --> 00:38:05,650 Op grond van net wat jy hier sien, kan jy sien 'waar hierdie vermorsing van ruimte 789 00:38:05,650 --> 00:38:08,710 gaan uit, om te kom met verloop van tyd, aangesien meer en meer gebruikers te registreer 790 00:38:08,710 --> 00:38:10,860 vir jou webwerf? 791 00:38:10,860 --> 00:38:13,047 Watter data kan oorbodig geword? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> Gehoor: [onhoorbaar] 794 00:38:20,940 --> 00:38:22,686 >> David Malan: Hoekom dink jy beteken dit? 795 00:38:22,686 --> 00:38:23,561 Gehoor: [onhoorbaar] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 David Malan: Ja. 798 00:38:32,930 --> 00:38:35,622 En laat ons veronderstel vir die doeleindes van vandag dat dit waar is. 799 00:38:35,622 --> 00:38:38,330 Turns out, en ons het hierdie leer op die harde manier, dit is nie waar nie. 800 00:38:38,330 --> 00:38:41,670 Een of ander manier verskeie stede het, een of ander manier, dieselfde poskode, 801 00:38:41,670 --> 00:38:43,390 wat breek hierdie wonderlike intuïsie. 802 00:38:43,390 --> 00:38:46,180 Maar laat ons veronderstel dit is waar, want dit is byna altyd waar nie. 803 00:38:46,180 --> 00:38:51,390 So veronderstel dat 'n kode is altyd verband hou met dieselfde stad 804 00:38:51,390 --> 00:38:53,600 en die staat, wat is 'n soort van redelike aanname, 805 00:38:53,600 --> 00:38:54,840 maar verkeerd is, dit blyk. 806 00:38:54,840 --> 00:38:57,310 Maar 'n redelike aanname vir doeleindes van vandag. 807 00:38:57,310 --> 00:39:01,650 >> Dan dink dat Ek woon in Cambridge, MA, volgens tabel se gebruiker, 808 00:39:01,650 --> 00:39:04,100 en veronderstel dat Lauren Scully woon in Cambridge, MA, 809 00:39:04,100 --> 00:39:06,120 en veronderstel dat Kareem woon in Cambridge, MA, 810 00:39:06,120 --> 00:39:10,400 en Arwa woon in Cambridge, MA, almal van ons in 02.138. 811 00:39:10,400 --> 00:39:15,890 Hoekom is ons onthou Cambridge, MA, 02138 vir al vier van ons? 812 00:39:15,890 --> 00:39:18,903 Wat moet volstaan ​​om te onthou? 813 00:39:18,903 --> 00:39:20,249 >> Gehoor: [onhoorbaar] 814 00:39:20,249 --> 00:39:21,540 David Malan: Net die poskode. 815 00:39:21,540 --> 00:39:25,080 Net dat 02.138 bestaan, omdat jy weet wat ons kan doen? 816 00:39:25,080 --> 00:39:32,650 Ons kan 'n bietjie fancy hier te kry en hier, definieer 'n ander tafel 817 00:39:32,650 --> 00:39:35,850 waar dit gaan om die wees naam, dit gaan na die tipe wees, 818 00:39:35,850 --> 00:39:38,840 dit gaan die wees lengte, en van nou af, ek is 819 00:39:38,840 --> 00:39:42,900 gaan hierdie skakel my stede tafel. 820 00:39:42,900 --> 00:39:47,011 Dit was bekend as, van Natuurlik, my gebruikers tafel. 821 00:39:47,011 --> 00:39:49,885 En so wat moet ek sit hier vir my stede tafel, dink jy? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> Gehoor: [onhoorbaar] 824 00:39:54,535 --> 00:39:55,930 >> David Malan: Ja. 825 00:39:55,930 --> 00:40:01,440 So rits en staat en die stad. 826 00:40:01,440 --> 00:40:05,350 En so het die tipe hier, sal ons sê dit gaan weer 'n kar 5 wees, 827 00:40:05,350 --> 00:40:06,750 onderhewig aan die debat van vroeër. 828 00:40:06,750 --> 00:40:14,810 Dit sal 'n enum wees, dalk soos voor, sal en stad 'n varchar 50 wees. 829 00:40:14,810 --> 00:40:17,960 En so nou wat kry ek om vee uit hierdie tabel 830 00:40:17,960 --> 00:40:21,995 om dat ondoeltreffendheid uit te skakel? 831 00:40:21,995 --> 00:40:23,100 >> Gehoor: [onhoorbaar] 832 00:40:23,100 --> 00:40:23,850 David Malan: Nice. 833 00:40:23,850 --> 00:40:30,239 Staat en die stad weggaan, so ek het nou uitgeskakel die potensiaal ondoeltreffendheid 834 00:40:30,239 --> 00:40:33,280 vir verskeie kere onthou, Cambridge, MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, wat hopelik is nooit gaan verander. 836 00:40:35,712 --> 00:40:37,670 En selfs al is dit die geval is, is dit minorly irriterende, nou 837 00:40:37,670 --> 00:40:39,750 dat ek moet verander dit in verskeie rye, 838 00:40:39,750 --> 00:40:43,770 terwyl hier, ek kon net verander dit in 'n plek. 839 00:40:43,770 --> 00:40:46,890 >> Nou wat is die trade-off, miskien? 840 00:40:46,890 --> 00:40:48,020 Dit was super gerieflik. 841 00:40:48,020 --> 00:40:50,730 Het al my data mooi saam. 842 00:40:50,730 --> 00:40:53,644 Maar wat duidelik die geval nou? 843 00:40:53,644 --> 00:40:55,684 >> Gehoor: [onhoorbaar] 844 00:40:55,684 --> 00:40:58,100 David Malan: Presies, en ek is bly jy gebruik die woord aan te sluit, 845 00:40:58,100 --> 00:41:01,320 want dit is eintlik die navraag, in die wêreld van relasionele databasisse 846 00:41:01,320 --> 00:41:05,270 in SQL, dit is 'n werklike woord wat jy kan tik of ten minste oor te dra. 847 00:41:05,270 --> 00:41:09,280 En in werklikheid, wat ons nou te doen kies volledige inligting van Dawid is 848 00:41:09,280 --> 00:41:19,700 iets soos kies ster van gebruikers, sluit stede, is-- en nou 849 00:41:19,700 --> 00:41:24,010 Ek gaan net skuif na 'n tweede lyn sodat hierdie fits-- users.zip gelyk 850 00:41:24,010 --> 00:41:34,570 cities.zip, waar users.ID gelyk 1. 851 00:41:34,570 --> 00:41:35,550 >> So wat gaan aan? 852 00:41:35,550 --> 00:41:38,970 Dit is lelik op soek, maar jy kan soort lees dit van links na regs, bo na onder. 853 00:41:38,970 --> 00:41:41,030 Kies ster van die gebruikers is dieselfde as voorheen, 854 00:41:41,030 --> 00:41:42,930 maar dit is nie van die gebruikers, per se. 855 00:41:42,930 --> 00:41:45,910 Dit is van die gebruikers aan te sluit stede. 856 00:41:45,910 --> 00:41:48,520 Wat kan ek by die twee tafels aan? 857 00:41:48,520 --> 00:41:51,820 Wel, blykbaar, die gebruikers tafels rits veld, 858 00:41:51,820 --> 00:41:54,810 en hierdie tydperk is net spesiale sintaksis om die idee uit te druk, 859 00:41:54,810 --> 00:41:58,130 en dit is die stede tafels rits gebied. 860 00:41:58,130 --> 00:42:01,580 Ek wil dié twee gelyke wees, maar ek wil uiteindelik kies 861 00:42:01,580 --> 00:42:06,280 slegs diegene rye waar ID in die gebruikers tafel 862 00:42:06,280 --> 00:42:08,730 gelyk 1, wat gebeur het om myne te wees. 863 00:42:08,730 --> 00:42:11,781 >> En net om duidelik te wees, 'n programmeerder, tipies wanneer 864 00:42:11,781 --> 00:42:14,780 hardcode iets soos die aantal 1, want anders net die webwerf 865 00:42:14,780 --> 00:42:17,630 ondersteun Dawid of die heel eerste gebruiker, jy 866 00:42:17,630 --> 00:42:20,720 sou plaas nie iets soos ID, waar 867 00:42:20,720 --> 00:42:22,510 Dit verteenwoordig 'n veranderlike, iets wat 868 00:42:22,510 --> 00:42:26,210 kan oorskakel tyd, soortgelyk in die gees van wat ek vroeër gesê het 869 00:42:26,210 --> 00:42:28,080 met hierdie soort van plekhouers. 870 00:42:28,080 --> 00:42:30,396 Maar vir nou sal ons net hardcode dit as 1. 871 00:42:30,396 --> 00:42:31,520 En so wat beteken dit? 872 00:42:31,520 --> 00:42:35,100 Wel, 'n mooi manier om dit te visualiseer is dat indien hierdie kant is die gebruikers tafel, 873 00:42:35,100 --> 00:42:38,090 en hierdie kant is die Poskodes tafel, ons is soort van finding-- 874 00:42:38,090 --> 00:42:41,330 en die punte van my vingers is ritssluiter hier, en die punte van my vingers 875 00:42:41,330 --> 00:42:43,740 hier is zip, jy soort ineen dit 876 00:42:43,740 --> 00:42:47,950 sodat jy terug die gevolglike oorspronklike tabel deur werklik by 877 00:42:47,950 --> 00:42:49,590 die twee tafels aan die gemeenskaplike gebied. 878 00:42:49,590 --> 00:42:50,840 En dit hoef nie te rits wees. 879 00:42:50,840 --> 00:42:54,460 Dit kan die meeste enigiets anders wees, maar ritssluiter is lekker, want 'n mens, is dit kort, 880 00:42:54,460 --> 00:42:56,470 twee, dit is altyd die ewe lank, dus is daar 881 00:42:56,470 --> 00:43:02,270 'n ware doeltreffendheid in watter Olivier voorgestelde hier 882 00:43:02,270 --> 00:43:05,200 met factoring uit die zip en [Onhoorbaar] stel dat ons ontslae te raak 883 00:43:05,200 --> 00:43:07,110 van die stad en state. 884 00:43:07,110 --> 00:43:11,370 >> Dit is dus die proses bekend as normalisering. 885 00:43:11,370 --> 00:43:14,171 Enige vrae oor wat? 886 00:43:14,171 --> 00:43:16,170 Wel laat ek uitwys dit is die soort dinge, 887 00:43:16,170 --> 00:43:19,202 selfs al is dit redelik lae-vlak, hierdie bespreking, wat jy sou dink 888 00:43:19,202 --> 00:43:20,910 jy soort van kry verlore in die onkruid, 889 00:43:20,910 --> 00:43:26,690 dit is 'n manifestasie van genoegsame geleentheid vir ontwikkelaars om sleg wees. 890 00:43:26,690 --> 00:43:29,600 En in werklikheid, selfs wanneer ons in kursusse Ek het geleer, wanneer ons gehad het, 891 00:43:29,600 --> 00:43:32,290 byvoorbeeld, onervare voorgraadse programmeerders 892 00:43:32,290 --> 00:43:35,920 bou webwerwe, met die eerste oogopslag, die webwerwe kan kyk geweldig. 893 00:43:35,920 --> 00:43:38,280 En hulle het al die funksionaliteit ons versoek, 894 00:43:38,280 --> 00:43:40,650 die ontwikkelaars het 'n goeie werk. 895 00:43:40,650 --> 00:43:43,370 >> Maar hulle het nie noodwendig weet genoeg oor databasisontwerp 896 00:43:43,370 --> 00:43:46,680 of hulle nie hard dink genoeg oor die tipes data 897 00:43:46,680 --> 00:43:49,220 en die tipes gebruikers die webwerf gaan hê, 898 00:43:49,220 --> 00:43:53,240 en ons vind dan ses maande later, nadat hulle gegradueer het of aanbeweeg, 899 00:43:53,240 --> 00:43:56,016 dat damn dit, ons webwerf werklik, werklik stadig. 900 00:43:56,016 --> 00:43:58,890 En ek is nie eens praat oor wat miljoene of duisende gebruikers. 901 00:43:58,890 --> 00:44:02,580 Ek bedoel 'n paar honderd gebruikers op kampus, wat almal graag, byvoorbeeld, 902 00:44:02,580 --> 00:44:04,870 shop vir kursusse by Terselfdertyd, hulle is 903 00:44:04,870 --> 00:44:07,010 die gebruik van daardie kursus katalogus aansoek ek genoem 904 00:44:07,010 --> 00:44:10,410 en die ding is regtig stadig, want daar was geen indekse. 905 00:44:10,410 --> 00:44:13,740 Daar was geen rooi sterre, om so te praat, of ons het nie noodwendig 906 00:44:13,740 --> 00:44:17,690 ingereken uit algemene data te kry 'n paar spaar ruimte. 907 00:44:17,690 --> 00:44:21,880 >> En so wanneer gekeur n ontwikkelaar of databasis persoon of dies meer, 908 00:44:21,880 --> 00:44:25,864 die soort vrae te deurdink selfs wanneer die hersiening van iemand se kode, 909 00:44:25,864 --> 00:44:28,530 om te sê, nie noodwendig kyk deur al hulle kode, maar sê: 910 00:44:28,530 --> 00:44:30,154 Kom ons kyk deur die databasis tabelle. 911 00:44:30,154 --> 00:44:31,150 Wat doen jy stoor? 912 00:44:31,150 --> 00:44:33,941 En dan sê, goed, wag 'n minuut, waarom gebruik jy 'n heelgetal? 913 00:44:33,941 --> 00:44:36,224 Wat gebeur as ons het 4 miljard en 1 van hierdie rye? 914 00:44:36,224 --> 00:44:38,140 En hierdie soort vrae is 'n geleentheid 915 00:44:38,140 --> 00:44:40,170 soort stoot terug en kry 'n gevoel van waar 916 00:44:40,170 --> 00:44:42,300 As jy nie gemaklik doen dit, met iemand wat meer tegniese 917 00:44:42,300 --> 00:44:45,425 vra hierdie vrae, van of die persoon weet regtig hul dinge. 918 00:44:45,425 --> 00:44:47,890 En dit is die soort dinge ook dat mense 919 00:44:47,890 --> 00:44:50,540 op die internet wat is self geleer, miskien 920 00:44:50,540 --> 00:44:53,920 leer minder gereeld, want jy nie noodwendig kom oor dit 921 00:44:53,920 --> 00:44:56,630 soveel, want jy kan kry die databasis aan die gang, 922 00:44:56,630 --> 00:44:58,880 maar tensy jy gelees op tutoriale of nie 923 00:44:58,880 --> 00:45:01,880 vertel databasis normalisering en kruip en prestasie, 924 00:45:01,880 --> 00:45:04,255 Dit is die soort van dinge wat gaan jy seerkry. 925 00:45:04,255 --> 00:45:07,480 En jy dink, of 'n slegte ingenieur kan sê, O, goed, ons beter betaal 926 00:45:07,480 --> 00:45:09,600 vir 'n groter databasis of 'n vinniger databasis 927 00:45:09,600 --> 00:45:13,360 of net gooi geld op hierdie, vertikaal skaal, nie noodwendig so nie. 928 00:45:13,360 --> 00:45:16,920 As jy gaan in-- en jy kan gaan in nadat die fact-- en voeg indekse, 929 00:45:16,920 --> 00:45:20,320 en dit kan 'n paar uur vir die neem databasis op te bou wat nuwe data 930 00:45:20,320 --> 00:45:24,100 struktuur wat ek verwys na vroeër, jy kan dit nog steeds los nadat die waarheid te sê, 931 00:45:24,100 --> 00:45:26,180 dat dit is waar jy begin om te onderskei 932 00:45:26,180 --> 00:45:28,830 goeie ontwerpers van slegte ontwerpers, nie net esteties, 933 00:45:28,830 --> 00:45:32,972 maar prestasie-wyse sowel. 934 00:45:32,972 --> 00:45:33,555 Enige vrae? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 Geen? 937 00:45:37,480 --> 00:45:41,980 So vir NoSQL, wat die ander soort was van databasis waaraan ek verwys vroeër, 938 00:45:41,980 --> 00:45:43,490 jy nie rye en kolomme te hê. 939 00:45:43,490 --> 00:45:47,000 In plaas daarvan, sal jy iets hê wat lyk 'n bietjie meer soos hierdie. 940 00:45:47,000 --> 00:45:48,630 Ek gaan om gemeenskaplike sintaksis gebruik. 941 00:45:48,630 --> 00:45:51,270 Krulhakies gebeur hier gebruik word heelwat. 942 00:45:51,270 --> 00:45:55,400 Jy kan iets het soos die eerste naam is Dawid, 943 00:45:55,400 --> 00:46:00,180 jy dalk laaste het naam is Malan, aanhalings, 944 00:46:00,180 --> 00:46:07,530 jy dalk ID het is-- verskoon my, whoops-- ID is 1, 945 00:46:07,530 --> 00:46:13,410 e-pos is malan@harvard.edu, en ek sal nie pla tik aan die res, en dan 946 00:46:13,410 --> 00:46:14,380 n paar ander dinge. 947 00:46:14,380 --> 00:46:17,380 >> Met ander woorde, dit is 'n tekstuele voorstelling 948 00:46:17,380 --> 00:46:20,720 van wat ons in die algemeen sou noem 'n voorwerp in 'n rekenaarprogram. 949 00:46:20,720 --> 00:46:26,079 En 'n voorwerp is oor die algemeen net 'n versameling van die belangrikste waarde pare. 950 00:46:26,079 --> 00:46:27,370 So weer, hierdie herhalende tema. 951 00:46:27,370 --> 00:46:30,440 Ons het die sleutel waarde pare in HTML, Ons het nou die sleutel waarde pare 952 00:46:30,440 --> 00:46:34,020 in die konteks van 'n databasis, en ons sien sleutel waarde pare in die konteks 953 00:46:34,020 --> 00:46:35,970 van, dink ek, 'n taal wat vroeër vandag. 954 00:46:35,970 --> 00:46:36,890 Hou kom. 955 00:46:36,890 --> 00:46:39,620 En inderdaad, dit is regtig wat data kom neer op, 956 00:46:39,620 --> 00:46:44,240 data en metadata, of waardes en sleutels, onderskeidelik. 957 00:46:44,240 --> 00:46:47,430 >> So 'n nie-relasionele databasis, iets wat gebaseer is 958 00:46:47,430 --> 00:46:50,680 op voorwerpe, waar jy net klont alles saam en sit dit 959 00:46:50,680 --> 00:46:55,640 in die geheue, sal oor die algemeen wees uitgebeeld as, of gedink, want dit. 960 00:46:55,640 --> 00:47:00,500 En Ek sal nou laat dit as 'n soort van alternatiewe benadering. 961 00:47:00,500 --> 00:47:03,750 En een is nie noodwendig beter as die ander. 962 00:47:03,750 --> 00:47:07,310 Trouens, baie in die mode deesdae is databasisstelsels 963 00:47:07,310 --> 00:47:11,942 soos MongoDB en Redis en 'n paar ander sulke instrumente, vrylik beskikbaar, 964 00:47:11,942 --> 00:47:13,400 maar hulle is steeds af mode. 965 00:47:13,400 --> 00:47:18,850 Deels omdat hulle bied addisionele funksies oor hierdie tabel benaderings, 966 00:47:18,850 --> 00:47:20,850 maar ook omdat dit 'n bietjie makliker om te gebruik, 967 00:47:20,850 --> 00:47:24,099 want jy hoef nie so hard te dink oor 'n groot deel van hierdie ontwerp besluite te neem. 968 00:47:24,099 --> 00:47:25,970 So plus punte en minuses. 969 00:47:25,970 --> 00:47:29,740 So besef daar is opsies as wat ons net tyd spandeer op. 970 00:47:29,740 --> 00:47:32,310 >> So laat ons dit doen. 971 00:47:32,310 --> 00:47:37,870 Kom ons oorgang 'n bietjie terug nou op die web ontwikkeling, 972 00:47:37,870 --> 00:47:40,470 sodat ons soort afsluiting vandag met iets 973 00:47:40,470 --> 00:47:43,930 dit is 'n bietjie hande-op, te vul in sommige leemtes van gister. 974 00:47:43,930 --> 00:47:45,340 Laat my gaan na die eerste. 975 00:47:45,340 --> 00:47:49,310 So onthou dat gister Ons het 'n paar kanoniese HTML 976 00:47:49,310 --> 00:47:55,110 bladsye wat aanvanklik slegs HTML, en dan sekondêr gehad CSS, 977 00:47:55,110 --> 00:47:56,620 Cascading Style Sheets. 978 00:47:56,620 --> 00:47:59,830 Dit is 'n nuwe etiket dat ons nie gedoen sien gister of bewoners van, 979 00:47:59,830 --> 00:48:01,490 sogenaamde script tag. 980 00:48:01,490 --> 00:48:05,830 >> Turns out jy kan eintlik embed 'n taal genoem JavaScript in jou web 981 00:48:05,830 --> 00:48:08,310 bladsy en maak jou web bladsye doen iets. 982 00:48:08,310 --> 00:48:09,710 So, wat kan ek daarmee? 983 00:48:09,710 --> 00:48:12,630 Wel, laat ek gaan voort en net leen hierdie kode vir 'n oomblik. 984 00:48:12,630 --> 00:48:15,860 Ek gaan in Cloud9 te gaan, nie nodig om te gaan daar self nog net, 985 00:48:15,860 --> 00:48:21,350 en ek gaan dit alert.HTML noem. 986 00:48:21,350 --> 00:48:23,650 Ek gaan plak in my lêer hier. 987 00:48:23,650 --> 00:48:32,070 En net om te verduidelik wat ek gedoen het, laat my gaan na hierdie adres en gaan na waarsku, 988 00:48:32,070 --> 00:48:33,870 en jy sien die Hello World. 989 00:48:33,870 --> 00:48:35,440 >> Maar dit is 'n soort van underwhelming. 990 00:48:35,440 --> 00:48:37,410 Ek wil iets doen 'n bietjie anders. 991 00:48:37,410 --> 00:48:40,610 So ek gaan dit werklik doen. 992 00:48:40,610 --> 00:48:43,820 Ek gaan om te gaan in hier e, en tussen my skripmerkers, 993 00:48:43,820 --> 00:48:53,460 sê waarskuwing ( 'hallo, wêreld); sodat kennisgewing dit is 'n bietjie slordig, maar ek het HTML, 994 00:48:53,460 --> 00:48:56,180 binnekant van wat 'n taal JavaScript genoem, 995 00:48:56,180 --> 00:48:59,420 en dit is wat 'n sogenaamde funksie oproep of prosedure oproep. 996 00:48:59,420 --> 00:49:04,500 Dit is 'n werkwoord, letterlik, in hierdie geval, en ek beroep kode funksionaliteit 997 00:49:04,500 --> 00:49:06,310 dat iemand anders geskryf. 998 00:49:06,310 --> 00:49:09,630 >> Sodat funksie is 'n waarskuwing, so laat ons gaan na hierdie bladsy 999 00:49:09,630 --> 00:49:14,046 nou en klik herlaai, en nou is jy sien 'n bietjie van interaktiwiteit. 1000 00:49:14,046 --> 00:49:15,420 Dit is soort van die ou skool en lelik. 1001 00:49:15,420 --> 00:49:18,580 Hierdie soort herinner u van die pop-ups, miskien, van weleer 1002 00:49:18,580 --> 00:49:22,030 maar dit het iets te doen 'n bietjie meer programmatiese. 1003 00:49:22,030 --> 00:49:26,940 >> So meer as dit, kom ons doen iets meer interessant. 1004 00:49:26,940 --> 00:49:30,980 Laat my hier inkom en ontslae te raak van hierdie. 1005 00:49:30,980 --> 00:49:33,840 En ek gaan om voort te gaan en Skep 'n vorm soos ons gister gedoen. 1006 00:49:33,840 --> 00:49:34,840 Eintlik, weet jy wat? 1007 00:49:34,840 --> 00:49:37,350 Ek gaan in om te gaan google.html, wat ons 1008 00:49:37,350 --> 00:49:43,027 begin op gister, wat lyk soos hierdie, via wat ons gesoek vir kat 1009 00:49:43,027 --> 00:49:45,360 Maar let op daar is soort van 'n fout in die huidige weergawe. 1010 00:49:45,360 --> 00:49:49,770 Dit werk vir katte, maar veronderstel dat Ek het nie saam te werk en ek tik niks, 1011 00:49:49,770 --> 00:49:53,290 en ek kliek voor te lê. 1012 00:49:53,290 --> 00:49:54,540 Dit is soort van vreemde gedrag. 1013 00:49:54,540 --> 00:49:57,300 Het my na die werklike Google, het nie vir my 'n fout boodskap. 1014 00:49:57,300 --> 00:50:00,590 Ek wil graag die gebruiker vertel wat jy nodig het om vir ons 'n waarde gee. 1015 00:50:00,590 --> 00:50:01,780 >> So, hoe kan ons dit doen? 1016 00:50:01,780 --> 00:50:06,790 Wel laat ek teruggaan na Cloud9 en dat ek kan gaan na die top van my bladsy 1017 00:50:06,790 --> 00:50:11,980 en voeg 'n script tag soos hierdie, waar Ek gaan 'n paar JavaScript-kode tik. 1018 00:50:11,980 --> 00:50:15,420 En ek gaan die volgende te doen. 1019 00:50:15,420 --> 00:50:22,910 As (document.getelementByID-- en herroeping dat ons het gepraat oor wat vroeër, 1020 00:50:22,910 --> 00:50:23,960 daardie funksie. 1021 00:50:23,960 --> 00:50:25,310 Wat ID wil ek kry? 1022 00:50:25,310 --> 00:50:33,050 Ek wil Q kry, en ek gaan sê gelyk niks, soos this-- 1023 00:50:33,050 --> 00:50:38,220 eintlik laat my dubbele aanhalingstekens gebruik net vir consistency-- gelyk niks, 1024 00:50:38,220 --> 00:50:46,650 dan waarskuwing ( "Tik asseblief 'n navraag") hier. 1025 00:50:46,650 --> 00:50:49,200 >> So ek het wat blyk te wees, iets soos 'n toestand. 1026 00:50:49,200 --> 00:50:51,410 Ons het hierdie algemene idee in Scratch gesien. 1027 00:50:51,410 --> 00:50:54,240 Dit is soos een van daardie legkaart stukke wat lyk soos hierdie. 1028 00:50:54,240 --> 00:50:55,780 En wat sê ek? 1029 00:50:55,780 --> 00:50:59,520 Wel, hier neer, sien ek is gaan die volgende te doen. 1030 00:50:59,520 --> 00:51:02,790 Ek gaan hierdie vorm te gee gebied nie net 'n naam van Q, wat 1031 00:51:02,790 --> 00:51:06,630 is wat kry geslaag om Google, maar ek is gaan dit 'n plaaslike identifiseerder gee, 1032 00:51:06,630 --> 00:51:07,630 ook bekend as Q. 1033 00:51:07,630 --> 00:51:11,780 Maar ek kan dit enigiets noem ek wil, is ek net gaan om dit eenvoudig te hou 1034 00:51:11,780 --> 00:51:14,570 en ook 'n beroep dit Q, net vir eenvoud. 1035 00:51:14,570 --> 00:51:17,650 >> En nou is ek gaan doen iets wat 'n bietjie meer. 1036 00:51:17,650 --> 00:51:22,600 Op die vorm velde hier, ek gaan voeg wat 'n event handler genoem. 1037 00:51:22,600 --> 00:51:32,260 Op voorlê, ek wil 'n beroep 'n funksie genoem valideer. 1038 00:51:32,260 --> 00:51:35,520 Dit bestaan ​​nie, dit woord, of hierdie werkwoord te staaf, 1039 00:51:35,520 --> 00:51:38,560 want wat ek gaan doen hier is nou 'n bietjie kode. 1040 00:51:38,560 --> 00:51:42,200 >> Ek gaan om te sê funksie te valideer. 1041 00:51:42,200 --> 00:51:48,280 Ek gaan hierdie keep en voeg 'n ander krullerige brace hier en 'n ander een hier. 1042 00:51:48,280 --> 00:51:50,110 Dink na oor wat dit nou doen. 1043 00:51:50,110 --> 00:51:54,210 Ek het now-- dink aan dit as geskape my eie legkaart stuk wat nie voorheen 1044 00:51:54,210 --> 00:51:57,440 bestaan, en ek het hierdie legkaart genoem stuk die Bevestig legkaart stuk. 1045 00:51:57,440 --> 00:52:01,620 Sy doel in die lewe is om uit te voer die vier reëls van die kode binnekant van dit. 1046 00:52:01,620 --> 00:52:04,940 >> As document.getElementByID sodat konseptueel, 1047 00:52:04,940 --> 00:52:09,380 wat gaan in die element om te gaan, die HTML element waarvan die unieke 1048 00:52:09,380 --> 00:52:12,930 idee is net Q, en dan selfs al die sintaksis lyk 'n bietjie vreemd, 1049 00:52:12,930 --> 00:52:16,430 wat gelyk is gelyk aan net beteken gelykes. 1050 00:52:16,430 --> 00:52:20,950 So dit beteken dat indien die element met die unieke identifiseerder van Q, toe gekry, 1051 00:52:20,950 --> 00:52:25,700 geen waarde, is dit net gelyk kwotasie unquote, niks daar, 1052 00:52:25,700 --> 00:52:27,170 dan wat doen wat ek wil doen? 1053 00:52:27,170 --> 00:52:29,360 Ek wil skree die gebruiker. 1054 00:52:29,360 --> 00:52:31,710 >> En ons sal groot detail nie hier gaan. 1055 00:52:31,710 --> 00:52:32,960 Ek gaan terug vals. 1056 00:52:32,960 --> 00:52:34,380 Dit is 'n fout. 1057 00:52:34,380 --> 00:52:38,746 Anders, ek gaan om terug te keer waar. 1058 00:52:38,746 --> 00:52:40,120 So óf dit het gewerk of dit gedoen het nie. 1059 00:52:40,120 --> 00:52:41,800 Vals of waar nie. 1060 00:52:41,800 --> 00:52:47,820 En nou as ek nie enige foute gemaak het nie, laat my dit te red en laai dit. 1061 00:52:47,820 --> 00:52:50,940 En laat my net dubbel seker dat Ek het nie eintlik enige spelfoute, 1062 00:52:50,940 --> 00:52:52,690 sodat ek myself nie in die verleentheid. 1063 00:52:52,690 --> 00:52:54,240 Kom ons kyk of dit werk. 1064 00:52:54,240 --> 00:52:56,930 >> So nou gaan ek katte tik. 1065 00:52:56,930 --> 00:52:59,421 Dit werk nog steeds, of 'n halwe werk, ten minste. 1066 00:52:59,421 --> 00:53:02,170 Nou kan ek herlaai nie, en nou laat ek probeer indiening sonder tik 1067 00:53:02,170 --> 00:53:05,860 anything-- verdoem het, het dit uitgebreek. 1068 00:53:05,860 --> 00:53:06,430 Een oomblik. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Laat my die konsole te open, [Onhoorbaar] aanteken, herlaai die bladsy. 1071 00:53:12,660 --> 00:53:13,576 Laat my dit weer te probeer. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 Ag, damn dit. 1074 00:53:17,501 --> 00:53:18,000 Ek het vergeet. 1075 00:53:18,000 --> 00:53:18,630 Ek het 'n tikfout. 1076 00:53:18,630 --> 00:53:20,760 Ek onthou hoe dit is. 1077 00:53:20,760 --> 00:53:21,350 .value. 1078 00:53:21,350 --> 00:53:27,060 Ek bedoel om te sê as die waarde van die element waarvan die ID is Q 1079 00:53:27,060 --> 00:53:29,800 gelyk dat, dan skree die gebruiker. 1080 00:53:29,800 --> 00:53:31,870 >> So nou laat ek weer hou my asem. 1081 00:53:31,870 --> 00:53:33,480 Hier gaan ons. 1082 00:53:33,480 --> 00:53:34,130 Daar gaan ons. 1083 00:53:34,130 --> 00:53:35,010 Tik asseblief 'n navraag. 1084 00:53:35,010 --> 00:53:36,840 So dit is nie te laat my deur. 1085 00:53:36,840 --> 00:53:40,210 Ek kan soort speelse wees met hierdie, en in plaas van die monitor vir geen waarde, 1086 00:53:40,210 --> 00:53:46,720 Ek kan iets sê soos, nie meer op soek na katte, 1087 00:53:46,720 --> 00:53:51,150 en nou kan ons net meer speels laat die gebruiker soek vir honde indien hy of sy 1088 00:53:51,150 --> 00:53:57,490 wil, of as Ek gegaan hier en soek vir katte, nou kan ek nie. 1089 00:53:57,490 --> 00:53:58,690 >> So, wat is die afhaal hier? 1090 00:53:58,690 --> 00:54:03,010 So een, het ons in bekendgestel ons wêreld van HTML en CSS, 1091 00:54:03,010 --> 00:54:04,320 programmering funksies. 1092 00:54:04,320 --> 00:54:06,300 Ek kan eintlik nou besluite te neem in die kode. 1093 00:54:06,300 --> 00:54:10,570 Voorheen, al wat ek kon doen, is merk op tekstuele inhoud of grafiese inhoud 1094 00:54:10,570 --> 00:54:13,080 en vertel dit wat om te kyk soos en waar om te vertoon. 1095 00:54:13,080 --> 00:54:16,650 Nou kan ek eintlik vra vrae van die webblad 1096 00:54:16,650 --> 00:54:20,010 en om besluite te neem op grond daarop, en gevra die gebruiker 1097 00:54:20,010 --> 00:54:22,780 As ek moet skree hom of haar. 1098 00:54:22,780 --> 00:54:28,740 >> So kom ons probeer iets op ons eie met hierdie. 1099 00:54:28,740 --> 00:54:33,350 Gaan voort, laat my oop te stel die volgende skyfie hier, en net wys een ding. 1100 00:54:33,350 --> 00:54:37,250 Net soos met CSS, kan ons faktor uit ons JavaScript-kode 'n aparte lêer, 1101 00:54:37,250 --> 00:54:40,660 jy kan dieselfde ding doen met JavaScript soos met CSS. 1102 00:54:40,660 --> 00:54:44,520 En jy gebruik dit met behulp van 'n bron kenmerk van die script tag. 1103 00:54:44,520 --> 00:54:46,540 Maar ons sal nie dinge bemoeilik vir nou. 1104 00:54:46,540 --> 00:54:50,440 In plaas daarvan, as jy kon gaan na hierdie bladsy, 1105 00:54:50,440 --> 00:55:02,690 but-- laat my rond te beweeg in order-- gaan na, as jy kon, hierdie bladsy hier. 1106 00:55:02,690 --> 00:55:03,592 Hierdie URL hier. 1107 00:55:03,592 --> 00:55:04,550 Dit is in skyfies vandag. 1108 00:55:04,550 --> 00:55:07,133 Jy kan hê om te herlaai, want Ek het 'n paar ding bygevoeg. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> Maar gaan daar waar 'n paar raaisels wag. 1111 00:55:13,890 --> 00:55:16,670 En dit sal ons 'n kans te gee, in 'n bietjie meer pret konteks, 1112 00:55:16,670 --> 00:55:20,610 om ploeteraars met 'n paar JavaScript. 1113 00:55:20,610 --> 00:55:25,505 En wanneer jy daar kom, Ek sal verduidelik wat wag. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Kry groen. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Stel blou. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Stel groen, stel rooi. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 Oeps. 1122 00:56:20,220 --> 00:56:22,330 Jammer. 1123 00:56:22,330 --> 00:56:27,630 >> Dit is die omvang van ons dokumentasie vir hierdie uitdaging. 1124 00:56:27,630 --> 00:56:29,920 En dit gaan soos volg te werk. 1125 00:56:29,920 --> 00:56:33,340 So, wat jy op hierdie bladsy is 'n hele klomp 1126 00:56:33,340 --> 00:56:38,024 beeld legkaarte deur 'n makker aan die Stanford Universiteit. 1127 00:56:38,024 --> 00:56:41,190 So, wat jy hier nou sien is byna soort een van daardie magic eye legkaarte, 1128 00:56:41,190 --> 00:56:43,815 maar as jy net kyk na dit, niks gaan pop by jou. 1129 00:56:43,815 --> 00:56:46,000 Inteendeel, daar iets versteek in hierdie beeld. 1130 00:56:46,000 --> 00:56:47,790 En dit is versteek in die volgende manier. 1131 00:56:47,790 --> 00:56:51,740 Beelde, soos jy dalk weet, kan wees bestaan ​​uit net drie kleure. 1132 00:56:51,740 --> 00:56:53,346 Sommige rooi, 'n paar blou, en 'n paar groen. 1133 00:56:53,346 --> 00:56:55,220 En ons kan al die maak kleure in die reënboog 1134 00:56:55,220 --> 00:56:57,570 deur die vermenging van die drie kleure op 'n manier. 1135 00:56:57,570 --> 00:57:01,940 >> So dit lyk meestal groen en blou, maar as Nick hier sê, 1136 00:57:01,940 --> 00:57:04,060 hierdie beeld yster legkaart is 'n legkaart. 1137 00:57:04,060 --> 00:57:06,780 Dit bevat 'n beeld van iets beroemde egter 1138 00:57:06,780 --> 00:57:08,310 die beeld is verwring. 1139 00:57:08,310 --> 00:57:11,500 Die bekende voorwerp in die rooi waardes. 1140 00:57:11,500 --> 00:57:13,810 Maar die rooi waardes is almal gedeel deur 10. 1141 00:57:13,810 --> 00:57:16,230 So hulle is te klein met 'n faktor van 10. 1142 00:57:16,230 --> 00:57:18,280 So met ander woorde, Nick het 'n oorspronklike beeld, 1143 00:57:18,280 --> 00:57:21,500 en hy gedesatureer al van die rooi daaruit, 1144 00:57:21,500 --> 00:57:23,850 verlaging van die bedrag van die rooi ink, as jy wil, in dit. 1145 00:57:23,850 --> 00:57:26,060 >> Die blou en groen waardes is almal net betekenisloos, 1146 00:57:26,060 --> 00:57:30,000 ewekansige waardes, aka geraas ontwerp om te verduister die werklike beeld. 1147 00:57:30,000 --> 00:57:32,250 So, wat Nick gedoen het, was hy zwakt die rooi en dan 1148 00:57:32,250 --> 00:57:34,380 hy het net gegooi ewekansige bedrae van blou en groen 1149 00:57:34,380 --> 00:57:37,590 op die foto om te soort duister Wat is daar nog eintlik. 1150 00:57:37,590 --> 00:57:41,089 Jy moet hierdie verdraaiings ongedaan openbaar die beeld. 1151 00:57:41,089 --> 00:57:44,255 Stel eers al die blou en groen waardes nul om hulle uit die weg te ruim, 1152 00:57:44,255 --> 00:57:48,700 en kyk na die resultaat. Toe vermenigvuldig elke rooi waarde met 10, 1153 00:57:48,700 --> 00:57:51,720 skalering terug tot ongeveer sy finale waarde. 1154 00:57:51,720 --> 00:57:53,035 Wat is die beroemde voorwerp? 1155 00:57:53,035 --> 00:57:57,920 >> So julle almal het hierdie reghoek in jou leser nou. 1156 00:57:57,920 --> 00:58:00,830 En sien dat daar 'n paar voorgereg kode, om so te praat. 1157 00:58:00,830 --> 00:58:04,370 Dit is JavaScript-kode wat Nick het geskryf vir jou. 1158 00:58:04,370 --> 00:58:07,250 En sien dat daar ' 'n lyn in die middel wat 1159 00:58:07,250 --> 00:58:10,380 begin met 'n streep streep, dis wat oor die algemeen bekend as 'n kommentaar. 1160 00:58:10,380 --> 00:58:14,660 Dit beteken dit is 'n frase aan die programmeerder dat geen funksionele betekenis. 1161 00:58:14,660 --> 00:58:16,520 Dis net 'n visuele cue om die menslike. 1162 00:58:16,520 --> 00:58:18,670 >> Sodat jy kan voortgaan en verwyder net daardie lyn, 1163 00:58:18,670 --> 00:58:22,214 en wees super versigtig wees om nie te verwyder of enigiets anders te verander. 1164 00:58:22,214 --> 00:58:25,130 En laat my net loop jy deur middel van wat hierdie kode nie en ek sal dit laat 1165 00:58:25,130 --> 00:58:28,580 aan jou om uit te vind die geheime beeld. 1166 00:58:28,580 --> 00:58:32,226 Die eerste lyn hier dat ek net gemerkte gee jou die volgende. 1167 00:58:32,226 --> 00:58:34,100 Op die linkerkant, jy wat genoem 1168 00:58:34,100 --> 00:58:39,140 'n veranderlike wat Nick het arbitrêr, maar redelik genoem im vir beeld. 1169 00:58:39,140 --> 00:58:41,660 Op die regterkant van daardie gelykaanteken, 1170 00:58:41,660 --> 00:58:45,240 hy sê vir my 'n nuwe quote, unquote "eenvoudige beeld". 1171 00:58:45,240 --> 00:58:49,680 >> Eenvoudige beeld, in hierdie konteks is wat bekend as 'n klas, wel, 1172 00:58:49,680 --> 00:58:53,910 Dit is soort van soos 'n class-- tegnies 'n prototype-- maar regtig, 1173 00:58:53,910 --> 00:58:58,000 dit gee my 'n nuwe voorwerp, die inhoud waarvan die lêer, 1174 00:58:58,000 --> 00:58:59,610 yster-puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 Met ander woorde, het Nick geskep hierdie idee van 'n eenvoudige beeld 1176 00:59:03,190 --> 00:59:05,920 sodat ons kan, na pedagogiese doeleindes, speel met die beeld 1177 00:59:05,920 --> 00:59:09,790 en verander sy rooi, groen en blou waardes. 1178 00:59:09,790 --> 00:59:11,750 >> En hoe gaan ons dit doen? 1179 00:59:11,750 --> 00:59:15,360 Dit ietwat kripties sintaksis hier is soort van soos die herhaling blok 1180 00:59:15,360 --> 00:59:19,140 dat sommige van julle het in Scratch vroeër vandag, waar jy 10 keer kan herhaal. 1181 00:59:19,140 --> 00:59:22,220 In hierdie geval, Nick het nie hardcoded n aantal soos 10. 1182 00:59:22,220 --> 00:59:28,020 In plaas hy gesê inisialiseer 'n veranderlike genoem x om 0, 1183 00:59:28,020 --> 00:59:33,180 kyk of x minder as is die breedte van die beeld. 1184 00:59:33,180 --> 00:59:38,160 >> En so meer gepas wees, beeld is die veranderlike, dot beteken gaan binnekant van dit 1185 00:59:38,160 --> 00:59:40,900 en kry sy breedte, en dan oop hakie, gesluit 1186 00:59:40,900 --> 00:59:43,687 hakie is net 'n programmeerder se manier om te sê dit is 'n funksie. 1187 00:59:43,687 --> 00:59:44,520 Dit is 'n proses. 1188 00:59:44,520 --> 00:59:46,430 Dit is funksies iemand anders geskryf. 1189 00:59:46,430 --> 00:59:48,570 Gebruik dit en gee my terug 'n antwoord. 1190 00:59:48,570 --> 00:59:53,610 En dan x ++ is 'n fancy manier gesê nadat jy hierdie keer gedoen het, 1191 00:59:53,610 --> 00:59:55,850 inkrementeer x met 1. 1192 00:59:55,850 --> 00:59:58,760 Met ander woorde, hierdie is 'n programmeerder se manier 1193 00:59:58,760 --> 01:00:05,760 van beïnvloeding van 'n lus wat gaan oor Itereer 1194 01:00:05,760 --> 01:00:10,410 al die kolomme in 'n beeld. 1195 01:00:10,410 --> 01:00:14,790 >> 'N beeld is net 'n rooster van kolle, rye en kolomme van kolletjies. 1196 01:00:14,790 --> 01:00:18,270 Dit is 'n manier van iterating oor al daardie kolomme. 1197 01:00:18,270 --> 01:00:20,770 En aan die binnekant, Intussen, ons iterating 1198 01:00:20,770 --> 01:00:24,030 oor die hoogtes, hier en hier en hier. 1199 01:00:24,030 --> 01:00:29,442 So dit is net 'n manier van traipsing, amper soos 'n ou skool tikmasjien, 1200 01:00:29,442 --> 01:00:32,230 om net te gaan oor die geheelbeeld iteratief. 1201 01:00:32,230 --> 01:00:36,370 Selfs dit is nie heeltemal volledig duidelik, net op geloof vir nou, 1202 01:00:36,370 --> 01:00:38,880 dat die drie lyne van die kode saam is 1203 01:00:38,880 --> 01:00:43,090 gaan toelaat om iteratief kyk by elke pixel, elke dot in die beeld. 1204 01:00:43,090 --> 01:00:43,790 >> Wat is 'n pixel? 1205 01:00:43,790 --> 01:00:46,250 Wel, om duidelik te wees, as ons kyk by die oorspronklike en zoom in, 1206 01:00:46,250 --> 01:00:49,060 as jy regtig sit jou oë om die rekenaar skerm, dit is 1207 01:00:49,060 --> 01:00:53,510 net 'n hele klomp van die kolle, 'n paar duisend punte gepak daar saam. 1208 01:00:53,510 --> 01:00:56,180 En ja, wat jy oor om te doen? 1209 01:00:56,180 --> 01:00:59,240 Elkeen van dié punte, 'n finale definisie, 1210 01:00:59,240 --> 01:01:06,350 is die gevolg van wat algemeen genoem RGB, rooi, groen, blou, wat 1211 01:01:06,350 --> 01:01:09,940 weer, kan gekombineer word om gee jou 'n aantal van kleure. 1212 01:01:09,940 --> 01:01:13,200 >> In werklikheid, as jy onthou uit baie, baie jare gelede, 1213 01:01:13,200 --> 01:01:17,320 projektor skerms soos hierdie dinge gebruik om nie 'n lens, maar drie het. 1214 01:01:17,320 --> 01:01:20,700 Een van hulle spoeg uit rooi lig, een van hulle spoeg uit groen lig, een van hulle 1215 01:01:20,700 --> 01:01:21,600 spoeg uit blou lig. 1216 01:01:21,600 --> 01:01:24,391 En as jy in 'n middel van die skool soos ek was, waar hulle nooit was 1217 01:01:24,391 --> 01:01:27,000 behoorlik in lyn, jy was altyd kyk geskiedenis films 1218 01:01:27,000 --> 01:01:29,770 wat was effens verwring, omdat die drie kleure is nie 1219 01:01:29,770 --> 01:01:30,970 behoorlik te kombineer. 1220 01:01:30,970 --> 01:01:36,330 >> Maar dit blyk dat elkeen van hierdie waardes rooi, groen en blou, 1221 01:01:36,330 --> 01:01:37,980 kan 'n aantal wat verband hou met hulle. 1222 01:01:37,980 --> 01:01:42,500 Byvoorbeeld, 0 vir rooi beteken nie rooi, 0 vir groen beteken dat geen groen, 1223 01:01:42,500 --> 01:01:45,120 en 0 vir blou beteken nie blou. 1224 01:01:45,120 --> 01:01:49,403 So as jy het geen rooi, geen groen, en geen blou, watter kleur het jy? 1225 01:01:49,403 --> 01:01:51,009 >> Gehoor: [onhoorbaar] 1226 01:01:51,009 --> 01:01:52,800 David Malan: Jy sal hoop so, dis wit. 1227 01:01:52,800 --> 01:01:55,333 Ongelukkig is dit operates-- jammer? 1228 01:01:55,333 --> 01:01:56,380 >> Gehoor: [onhoorbaar] 1229 01:01:56,380 --> 01:01:58,630 David Malan: So jy eintlik swart, in hierdie geval. 1230 01:01:58,630 --> 01:02:01,530 So as jy nie een van hierdie kleure aangeskakel, jou swart het. 1231 01:02:01,530 --> 01:02:06,510 Maar as jy, kom ons sê 'n baie van hulle, soos 'n baie rooi, 255 daarvan, 1232 01:02:06,510 --> 01:02:10,340 'n baie groen, en 'n baie blou, dit is wit. 1233 01:02:10,340 --> 01:02:12,230 So dit is die twee uiterstes. 1234 01:02:12,230 --> 01:02:17,460 So deur hierdie logika, as ek 'n baie rooi en geen groen en geen blou, 1235 01:02:17,460 --> 01:02:18,485 Watter kleur is dit? 1236 01:02:18,485 --> 01:02:19,360 Gehoor: [onhoorbaar] 1237 01:02:19,360 --> 01:02:20,610 David Malan: Right, natuurlik. 1238 01:02:20,610 --> 01:02:25,940 En dan nie rooi, baie groen, nie blou, en dan 1239 01:02:25,940 --> 01:02:29,590 As jy goed have--, sal ons net klaar dit, net omdat, maar dit is natuurlik 1240 01:02:29,590 --> 01:02:31,350 nou, is blou. 1241 01:02:31,350 --> 01:02:33,030 En nou kan jy hierdie kleure te kombineer. 1242 01:02:33,030 --> 01:02:36,430 Nou as 'n eenkant, indien enige van u ooit gedoen 'n paar werklike website design, 1243 01:02:36,430 --> 01:02:38,360 jy kan eintlik sien simbole soos hierdie. 1244 01:02:38,360 --> 01:02:42,030 FFF-- en eintlik, dis waarskynlik nie eens dat. 1245 01:02:42,030 --> 01:02:44,380 Dis FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Enigiemand ooit F en E se gesien en 'n through-- so dit blyk, 1247 01:02:48,970 --> 01:02:52,970 ons gepraat gister oor desimale, en vandag, soort van ongeveer desimale. 1248 01:02:52,970 --> 01:02:54,570 Vandag het ons gepraat oor binêre. 1249 01:02:54,570 --> 01:02:59,010 Turns out, heksadesimale is 'n baie gemeenskaplike basis stelsel om te gebruik in rekenaar. 1250 01:02:59,010 --> 01:03:04,960 Binary is twee, desimale, is 10, Hex is 16. 1251 01:03:04,960 --> 01:03:08,640 En dit blyk dat hoe doen jy reken in heksadesimaal? 1252 01:03:08,640 --> 01:03:11,620 Zero, een, twee, drie, vier, vyf, ses, sewe, agt, 1253 01:03:11,620 --> 01:03:14,730 nege, wat gebruik jy ná nege? 1254 01:03:14,730 --> 01:03:16,600 Wat is die volgende getal? 1255 01:03:16,600 --> 01:03:19,180 Ons het reeds gebruik nul. 1256 01:03:19,180 --> 01:03:20,570 Ek moet 16 van hulle nie. 1257 01:03:20,570 --> 01:03:25,770 Zero, een, twee, drie, vier, vyf, ses, sewe, agt, nege, 1258 01:03:25,770 --> 01:03:27,520 wat jy nodig het 'n paar arbitrêre konvensie. 1259 01:03:27,520 --> 01:03:30,810 >> En wat die mensdom besluit 'n geruime tyd gelede dat ná nege kom die brief 1260 01:03:30,810 --> 01:03:34,450 A en dan B en dan C. So het die manier waarop jy reken in heksadesimaal 1261 01:03:34,450 --> 01:03:37,040 nul, een, twee, drie, vier, vyf, ses, sewe, agt, nege, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, en wat sal tel jy al die pad, dit blyk dat tot 15. 1263 01:03:42,880 --> 01:03:47,850 So nul tot 15 is nul deur F. Nou hoekom is dit belangrik? 1264 01:03:47,850 --> 01:03:51,570 Wel, as jy twee F se dit is hoe jy 255 te druk. 1265 01:03:51,570 --> 01:03:54,350 >> So lang storie kort, in die wêreld van Photoshop, 1266 01:03:54,350 --> 01:03:57,299 dat grafiese ontwerp sagteware, in die wêreld van die web-ontwikkeling, 1267 01:03:57,299 --> 01:03:59,590 waar jy baie kleure, natuurlik, om mee te speel, 1268 01:03:59,590 --> 01:04:02,350 dikwels programmeerders sal uit te druk wat in heksadesimaal, 1269 01:04:02,350 --> 01:04:05,260 net omdat dit geneig is om 'n bietjie makliker. 1270 01:04:05,260 --> 01:04:07,850 Selfs al met die eerste oogopslag dit is baie meer kompleks. 1271 01:04:07,850 --> 01:04:11,590 >> So in elk geval, dit is belangrik omdat Nick aan die Stanford 1272 01:04:11,590 --> 01:04:15,100 het ons ses stukke van funksies gegee dat jy, die ontluikende programmeerders, 1273 01:04:15,100 --> 01:04:17,060 sal nou die vermoë om te gebruik. 1274 01:04:17,060 --> 01:04:19,960 Gebou in hierdie web bladsy is ses funksies, 1275 01:04:19,960 --> 01:04:21,820 ses prosedures wat Nick geskryf. 1276 01:04:21,820 --> 01:04:26,800 Drie van hulle sal jy kry 'n nommer, 'n rooi, groen, of 'n blou waarde. 1277 01:04:26,800 --> 01:04:28,787 Drie van hulle sal daardie waarde te stel. 1278 01:04:28,787 --> 01:04:30,620 En dit onderstreping is net plekhouers, 1279 01:04:30,620 --> 01:04:32,600 sodat jy nodig het om te weet wat dit is. 1280 01:04:32,600 --> 01:04:36,240 >> So met hierdie drie funksies, Die eerste van hierdie dinge 1281 01:04:36,240 --> 01:04:39,190 gaan wees 'n x-koördinaat, en die tweede van hierdie dinge 1282 01:04:39,190 --> 01:04:40,700 gaan 'n y-koördinaat. 1283 01:04:40,700 --> 01:04:44,650 Met ander woorde, wat dot, wat pixel wil jy die groen te kry, 1284 01:04:44,650 --> 01:04:46,480 kry die blou van, kry die rooi van. 1285 01:04:46,480 --> 01:04:51,440 En dan hier, dit gaan wees x, dit gaan 'n y-waarde wees, 1286 01:04:51,440 --> 01:04:55,379 en dit gaan 'n aantal wees. 1287 01:04:55,379 --> 01:04:57,170 So laat ons doen die eerste lyn van hierdie saam 1288 01:04:57,170 --> 01:05:00,220 en dan sal ek dit laat jou om te probeer om die res af te lei. 1289 01:05:00,220 --> 01:05:03,100 So per die instruksies Op hierdie bladsy vind, moet ons 1290 01:05:03,100 --> 01:05:08,960 om die rooi te verhoog met 'n faktor van 10, en ons moet die groen verwyder 1291 01:05:08,960 --> 01:05:09,930 en verwyder die blou. 1292 01:05:09,930 --> 01:05:12,410 Kom ons begin met die laasgenoemde scenario. 1293 01:05:12,410 --> 01:05:17,760 So as ek wil, en ek gaan om in te keep deur die gebruik van 'n paar spasies, 1294 01:05:17,760 --> 01:05:22,291 As ek wil die rooi stel, die groen, of die blou waarde, 1295 01:05:22,291 --> 01:05:23,540 Ek gaan die volgende te doen. 1296 01:05:23,540 --> 01:05:31,280 >> Image, im.setBlue, en dan gebaseer op my instruksies hier, 1297 01:05:31,280 --> 01:05:36,700 Watter drie dinge moet ek tik binnekant van hakies nou? 1298 01:05:36,700 --> 01:05:41,960 Ek moet die x-waarde, die y waarde, en watter getal 1299 01:05:41,960 --> 01:05:48,770 moet ek hier as ek wil ontslae te raak die bloute, gebaseer op hierdie storie hier? 1300 01:05:48,770 --> 01:05:49,630 Net nul. 1301 01:05:49,630 --> 01:05:52,420 As ek wil nie blou, ek is net gaan om dit te verander na nul. 1302 01:05:52,420 --> 01:05:54,465 >> Nou laat ons net saam te vat wat dit doen. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 Ek het hier op hierdie top tweede en derde lyne, 1305 01:06:01,170 --> 01:06:04,080 Ek beweer twee sirkelroetes, geneste lusse, as jy 1306 01:06:04,080 --> 01:06:08,360 sal, wat gaan die effek van vordering van links na regs, 1307 01:06:08,360 --> 01:06:11,590 bo na onder oor al die x waardes en al die y-waardes. 1308 01:06:11,590 --> 01:06:15,167 Omdat weer 'n prentjie is net 'n rooster van rye en kolomme. 1309 01:06:15,167 --> 01:06:17,000 So dit gaan kry ontslae te raak van al die blou. 1310 01:06:17,000 --> 01:06:18,627 Laat my laat in die volgende lyn na jou toe. 1311 01:06:18,627 --> 01:06:20,043 Hoe kan ek ontslae raak van al die groen? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> Gehoor: [onhoorbaar] 1314 01:06:25,140 --> 01:06:26,151 >> David Malan: Nice. 1315 01:06:26,151 --> 01:06:28,260 >> Gehoor: [onhoorbaar] 1316 01:06:28,260 --> 01:06:30,850 >> David Malan: Nice. 1317 01:06:30,850 --> 01:06:36,120 En ek gaan om te vergroot, en net neem sorg van dat jy nie enige spelfoute gedoen het. 1318 01:06:36,120 --> 01:06:39,390 En as jy gemaklik is met wat jy gedoen het, 1319 01:06:39,390 --> 01:06:42,936 gaan voort en klik op die knoppie Begin / Save en kyk wat jy kry. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 En weer, wat ons gemaak het net drie veranderings. 1322 01:06:48,690 --> 01:06:52,130 Ons verwyder dat eerste kommentaar en vervang dit 1323 01:06:52,130 --> 01:06:53,575 Met hierdie twee reëls van die kode. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 En dit is OK as jy nodig het om te tref die knoppie Run / Save 'n paar keer 1326 01:06:58,450 --> 01:07:01,190 om iets op te los. 1327 01:07:01,190 --> 01:07:03,610 >> En laat ek ook in zoom op my -kode, sodat jy kan skryf. 1328 01:07:03,610 --> 01:07:04,110 Goeie. 1329 01:07:04,110 --> 01:07:08,720 So ek sien Andrew het wat lyk na 'n fout wees. 1330 01:07:08,720 --> 01:07:11,110 Hy is net 'n groot swart reghoek op sy skerm. 1331 01:07:11,110 --> 01:07:13,120 Is daar iemand anders het n groot swart reghoek? 1332 01:07:13,120 --> 01:07:13,390 >> Gehoor: Ja. 1333 01:07:13,390 --> 01:07:14,360 >> David Malan: Groot swart reghoek? 1334 01:07:14,360 --> 01:07:16,068 OK, so laat ons dink oor wat dit beteken. 1335 01:07:16,068 --> 01:07:20,560 Ons het gesê dat nul, zero, zero, sodat daar geen groen, nie rooi nie, geen blou, 1336 01:07:20,560 --> 01:07:21,980 gaan jy swart gee. 1337 01:07:21,980 --> 01:07:24,467 En dit blyk dat die meeste van ons skootrekenaars 1338 01:07:24,467 --> 01:07:25,800 net nie genoeg trou. 1339 01:07:25,800 --> 01:07:27,750 Jy kan nie heeltemal vertel daar is eintlik iets daar. 1340 01:07:27,750 --> 01:07:30,340 En as jy soort miskien leun jou skerm vorentoe en agtertoe, 1341 01:07:30,340 --> 01:07:32,850 Miskien sien jy 'n ietsie daar? 1342 01:07:32,850 --> 01:07:34,820 Miskien, soort, soort? 1343 01:07:34,820 --> 01:07:36,640 Dit is nie heeltemal swart. 1344 01:07:36,640 --> 01:07:38,050 >> Gehoor: [onhoorbaar] 1345 01:07:38,050 --> 01:07:39,510 >> David Malan: Spoiler! 1346 01:07:39,510 --> 01:07:42,610 Daar is 'n paar rooi daar, maar onthou van die spesifikasies 1347 01:07:42,610 --> 01:07:44,940 van die probleem, Nick getinte dit af. 1348 01:07:44,940 --> 01:07:47,860 Hy gedesatureer dit 'n bietjie, maar nie al die pad na nul. 1349 01:07:47,860 --> 01:07:51,670 So as ons wil hê dat die bedrag vergroot rooi, laat my stel hierdie truuk. 1350 01:07:51,670 --> 01:07:53,750 Laat my zoom in op my skerm. 1351 01:07:53,750 --> 01:07:58,678 En laat ek gaan voort en sê bedrag gelyk im.getRed (x, y). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Hierdie lyn van kode gee my iets genaamd 'n veranderlike. 1354 01:08:05,790 --> 01:08:09,643 Ek het na willekeur, maar waarskynlik, redelik roep my veranderlike wat, 1355 01:08:09,643 --> 01:08:10,143 blykbaar? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Bedrag. 1358 01:08:14,340 --> 01:08:14,980 Net bedrag. 1359 01:08:14,980 --> 01:08:16,960 Ek kon het dit genoem enigiets wat ek wil, maar ek is 1360 01:08:16,960 --> 01:08:19,490 die gebruik van hierdie ander funksie dat ek vroeër beskryf 1361 01:08:19,490 --> 01:08:25,359 om die hoeveelheid rooi kry by x komma y. 1362 01:08:25,359 --> 01:08:27,520 Hoekom het ek dit gedoen? 1363 01:08:27,520 --> 01:08:30,004 Wat wil jy hier doen? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Jy moet add-- 1366 01:08:33,619 --> 01:08:34,493 Gehoor: [onhoorbaar] 1367 01:08:34,493 --> 01:08:36,279 David Malan: Ja, miskien vermenigvuldig dit met 10. 1368 01:08:36,279 --> 01:08:38,862 En as jy nie weet nie, ek is gaan om voort te gaan en dit te doen. 1369 01:08:38,862 --> 01:08:42,060 Ek gaan om voort te gaan en sê, ek wil die bedrag van rooi 1370 01:08:42,060 --> 01:08:46,550 Ek wil alles wees is by die rooi, tye 10, 1371 01:08:46,550 --> 01:08:50,330 en die sterre, die sterretjie op jou sleutelbord is the-- nie gebruik x. 1372 01:08:50,330 --> 01:08:51,569 Gebruik die ster. 1373 01:08:51,569 --> 01:08:55,350 Dit is hoe jy dinge vermeerder in die meeste programmeertale. 1374 01:08:55,350 --> 01:08:59,790 >> So volgens intuïsie Kareem se gestoor in hierdie veranderlike genoem bedrag, 1375 01:08:59,790 --> 01:09:03,649 is hoeveel rooi Ek wil by plek xy. 1376 01:09:03,649 --> 01:09:11,500 Hoe nou, maak ek dit pixel dat die getal het? 1377 01:09:11,500 --> 01:09:12,859 Jy het alreeds hierdie voorheen gedoen. 1378 01:09:12,859 --> 01:09:17,666 Jy stel die groen en die blou geen waarde aan nul. 1379 01:09:17,666 --> 01:09:18,540 Gehoor: [onhoorbaar] 1380 01:09:18,540 --> 01:09:20,040 David Malan: Ja, goed jy nie wil hê om dit te 10. 1381 01:09:20,040 --> 01:09:21,460 Jy het reeds die wiskunde hier. 1382 01:09:21,460 --> 01:09:24,779 So kry ons die waarde van rooi, wat 'n lae aantal, vermoedelik. 1383 01:09:24,779 --> 01:09:26,180 Ons vermenigvuldig met 10. 1384 01:09:26,180 --> 01:09:29,139 Wat jy wil doen met die veranderlike bedrag nou? 1385 01:09:29,139 --> 01:09:30,130 >> Gehoor: [onhoorbaar] 1386 01:09:30,130 --> 01:09:30,880 >> David Malan: Nice. 1387 01:09:30,880 --> 01:09:34,616 So im.set-- wat? 1388 01:09:34,616 --> 01:09:35,640 >> Publiek: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> David Malan: setRed, op plek xy. 1390 01:09:39,760 --> 01:09:40,260 Ja. 1391 01:09:40,260 --> 01:09:41,200 En net bedrag. 1392 01:09:41,200 --> 01:09:44,257 Met ander woorde, 'n veranderlike is 'n tydelike plekhouer 1393 01:09:44,257 --> 01:09:45,840 dat jy enigiets wat jy wil in kan sit. 1394 01:09:45,840 --> 01:09:48,680 Ons toevallig te wees om 'n aantal daarin, op die oomblik. 1395 01:09:48,680 --> 01:09:51,569 Ons het dit vermenigvuldig met 10 om dit groter te maak. 1396 01:09:51,569 --> 01:09:56,480 En nou is ek vervang wat veranderlike as daardie derde argument, of insette 1397 01:09:56,480 --> 01:09:57,810 rooi te stel. 1398 01:09:57,810 --> 01:10:00,440 En so dat wanneer jy voltooi nie, en neem kennis 1399 01:10:00,440 --> 01:10:02,330 van die semi-dubbelpunte en die hakies. 1400 01:10:02,330 --> 01:10:06,290 >> Gaan voort en klik hardloop / weer te red, en jy 1401 01:10:06,290 --> 01:10:10,690 moet sien, mettertyd, wat eintlik daar. [? Arwa,?] Wat daar? 1402 01:10:10,690 --> 01:10:16,412 Die Eiffeltoring in volwaardige rooi, nie heeltemal donker. 1403 01:10:16,412 --> 01:10:17,870 dit moet nou meer voor die hand liggend te wees, ja? 1404 01:10:17,870 --> 01:10:18,840 OK. 1405 01:10:18,840 --> 01:10:20,215 En Andrew, geen meer swart boks? 1406 01:10:20,215 --> 01:10:21,090 Gehoor: [onhoorbaar] 1407 01:10:21,090 --> 01:10:22,180 David Malan: Alle reg. 1408 01:10:22,180 --> 01:10:23,610 So ek sal dit hou op die skerm. 1409 01:10:23,610 --> 01:10:27,010 As jy wil om te speel met hierdie later, sal ek dit herskep vir jou. 1410 01:10:27,010 --> 01:10:29,140 Maar hierdie kode hier het presies dit. 1411 01:10:29,140 --> 01:10:31,460 Hoekom het ons nie te doen een ander. 1412 01:10:31,460 --> 01:10:33,880 Laat my rol af effens. 1413 01:10:33,880 --> 01:10:36,760 >> So in hierdie geval, die projektor nie regtig doen dit reg. 1414 01:10:36,760 --> 01:10:40,486 Maar op jou skerms, het jy waarskynlik het 'n baie rooi en baie black box. 1415 01:10:40,486 --> 01:10:42,610 Dit is ook 'n legkaart wat toon iets bekend. 1416 01:10:42,610 --> 01:10:44,193 Tog het die beeld verwring. 1417 01:10:44,193 --> 01:10:47,740 Die ware beeld, dié keer, is in die blou en groen waardes. 1418 01:10:47,740 --> 01:10:51,820 Maar het hulle almal verdeel 20 sodat die waardes is baie klein. 1419 01:10:51,820 --> 01:10:54,660 Die rooi waardes is net ewekansige getalle, geraas. 1420 01:10:54,660 --> 01:10:57,190 Ongedaan hierdie verdraaiings om die ware beeld te openbaar. 1421 01:10:57,190 --> 01:10:59,200 >> So Nick vertel jou dan wat om te doen. 1422 01:10:59,200 --> 01:11:04,290 Stel die rooi waardes aan nul, en dan nie bederf wat dit is. 1423 01:11:04,290 --> 01:11:07,110 vermenigvuldig dan die blou en groen waardes met 20. 1424 01:11:07,110 --> 01:11:09,820 So dit is amper die Dieselfde program soos voorheen, 1425 01:11:09,820 --> 01:11:11,380 maar jy omkeer van die proses. 1426 01:11:11,380 --> 01:11:13,780 En Ek sal my kode sit uit voor op die skerm in die geval 1427 01:11:13,780 --> 01:11:16,650 jy wil terugverwys na dit of speel verder met daardie een. 1428 01:11:16,650 --> 01:11:18,100 Laat my zoom in op daardie. 1429 01:11:18,100 --> 01:11:21,450 Maar los beeld koper legkaart, nommer twee. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> Gehoor: [onhoorbaar] 1432 01:11:40,580 --> 01:11:44,010 >> David Malan: OK, so hierdie een Ek is nie van plan om soveel wenke gee. 1433 01:11:44,010 --> 01:11:47,220 So ek would-- O, laat ons sien, jy 'n tikfout hier. 1434 01:11:47,220 --> 01:11:49,621 So onthou, hierdie hier eintlik nodig om daarheen te gaan. 1435 01:11:49,621 --> 01:11:52,870 So, wat ek wil voorstel, as jy wil fokus op hierdie een, daar is die antwoord. 1436 01:11:52,870 --> 01:11:57,060 As jy wil op skrif te stel dat dit moet die eerste een werk te kry. 1437 01:11:57,060 --> 01:11:59,910 En dan kan jy gebruik wat as inspirasie vir die tweede een. 1438 01:11:59,910 --> 01:12:02,230 Lekker. 1439 01:12:02,230 --> 01:12:02,730 Goeie. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> En vir die nuuskierige, dit is 'n eenvoudige voorbeeld 1442 01:12:08,180 --> 01:12:11,080 van 'n wetenskap of 'n kuns genoem steganografie, 1443 01:12:11,080 --> 01:12:14,100 die kuns van wegkruip inligting in beelde. 1444 01:12:14,100 --> 01:12:16,890 Tipies, kan beelde watermerk baie blatant 1445 01:12:16,890 --> 01:12:19,500 met 'n logo in die onderste hoek, maar dit is duidelik, jy 1446 01:12:19,500 --> 01:12:22,070 kan baie meer gesofistikeerd wees daaroor en eintlik 1447 01:12:22,070 --> 01:12:25,050 verberg ander beelde in die beelde een of ander manier met hierdie tegniek. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Neem 'n ander 30 sekondes, en dan sal ons ten minste kondig wat jy moet sien. 1450 01:13:05,770 --> 01:13:08,330 En Ek sal die derde verlaat een as 'n by-huis oefening, 1451 01:13:08,330 --> 01:13:11,353 As jy meer van 'n wil daag die naweek. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 En ek dink Andrew mag het dit die eerste keer gekry. 1454 01:13:20,390 --> 01:13:22,645 Wat is die tweede beeld, Andrew? 1455 01:13:22,645 --> 01:13:23,920 >> Publiek: Statue of Liberty. 1456 01:13:23,920 --> 01:13:28,500 >> David Malan: Statue of Liberty sal die antwoord hierdie tyd. 1457 01:13:28,500 --> 01:13:31,140 So weer, net 'n paar eenvoudige voorbeelde, waarvan die doel 1458 01:13:31,140 --> 01:13:35,040 is om jou 'n gevoel van hoe gee Ons het geïllustreerde Scratch vertaal 1459 01:13:35,040 --> 01:13:40,410 blokke om meer irriterende en meer ingewikkelde kode, maar al die idees 1460 01:13:40,410 --> 01:13:42,980 nog presies dieselfde, al is dit met die bekendstelling 1461 01:13:42,980 --> 01:13:48,380 nou van die idee van 'n veranderlike, omdat in staat om iets tydelik te stoor. 1462 01:13:48,380 --> 01:13:51,750 >> Kom ons doen 'n meer hands-on, net nou verbind die kolletjies 1463 01:13:51,750 --> 01:13:53,880 om iets 'n bietjie meer werklike wêreld. 1464 01:13:53,880 --> 01:13:56,610 Wanneer jy klaar is, as jy kon gaan na hierdie URL op die skerm. 1465 01:13:56,610 --> 01:14:00,610 Dit is ook in jou kopie van die skyfies, developers.google.com/maps~~V. 1466 01:14:00,610 --> 01:14:03,660 Kom ons eintlik iets te doen ware, so te sê, op die web 1467 01:14:03,660 --> 01:14:07,600 die gebruik van die Google Maps API, of Application Programming Interface, 1468 01:14:07,600 --> 01:14:08,940 op die volgende manier. 1469 01:14:08,940 --> 01:14:12,341 >> Google, soos baie maatskappye, bied 'n baie vrye funksies 1470 01:14:12,341 --> 01:14:14,840 wat jy kan gebruik om te bou jou eie interessante programme. 1471 01:14:14,840 --> 01:14:18,890 In werklikheid, as jy al ooit gebruik Uber om 'n taxi of 'n motor te kry, 1472 01:14:18,890 --> 01:14:21,640 jy waarskynlik weet dat uber het 'n Kaart en dit wys motors op dit. 1473 01:14:21,640 --> 01:14:24,870 Dit is, so goed as wat ek kan vertel, Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 Hulle is eintlik die gebruik van Google se kaarte, maar uber is nie 'n kartering maatskappy, 1475 01:14:28,884 --> 01:14:31,050 of sal dit wees 'n veral interessant probleem 1476 01:14:31,050 --> 01:14:33,510 om op te los op die top van hul motor diens probleem. 1477 01:14:33,510 --> 01:14:35,510 En so hulle staan, weer, op die skouers 1478 01:14:35,510 --> 01:14:37,520 van ander, Google in hierdie geval. 1479 01:14:37,520 --> 01:14:42,850 Sodat hulle gebruik Google se kaarte, maar hul eie motor dienste en ander sulke eienskappe. 1480 01:14:42,850 --> 01:14:47,770 >> So ons gaan om voordeel te trek van hierdie om die volgende te doen. 1481 01:14:47,770 --> 01:14:50,230 En as ek te vinnig gegaan, bel my oor in 'n oomblik. 1482 01:14:50,230 --> 01:14:53,500 Gelukkig om 'n paar van die beeld goed saam te vat. 1483 01:14:53,500 --> 01:14:56,290 Jy moet jouself sien teen 'n bladsy soos hierdie. 1484 01:14:56,290 --> 01:14:58,230 So Google se mooi, en hulle is een van die beste 1485 01:14:58,230 --> 01:15:01,364 van die verskaffing van nie net API, maar gratis API's wat jy 1486 01:15:01,364 --> 01:15:02,780 kan speel met of gebruik kommersieel. 1487 01:15:02,780 --> 01:15:06,450 Hulle het begin hef jou as jou verbruik hoog, maar ek voortgegaan vooruit 1488 01:15:06,450 --> 01:15:10,490 en onderteken ons aan vir 'n gratis rekening wat hopelik 10 rekenaars 1489 01:15:10,490 --> 01:15:12,480 sal ons nie diskwalifiseer vir skielik. 1490 01:15:12,480 --> 01:15:14,320 So hopelik hierdie demonstrasie sal werk. 1491 01:15:14,320 --> 01:15:18,840 >> En agterkom dat hulle APIs vir Android, IOS, web, en web dienste, 1492 01:15:18,840 --> 01:15:19,620 wat dit ook al is. 1493 01:15:19,620 --> 01:15:20,700 Kom ons fokus op die web. 1494 01:15:20,700 --> 01:15:26,560 So op die pienk boks, web, en dat sal jou lei, hopelik, 'n bladsy 1495 01:15:26,560 --> 01:15:27,630 hier. 1496 01:15:27,630 --> 01:15:29,335 En hulle het 'n hele klomp van die API's het. 1497 01:15:29,335 --> 01:15:31,210 En dit kan 'n bietjie wees oorweldigend op die eerste, 1498 01:15:31,210 --> 01:15:33,000 maar ek sal ons stuur deur middel van wat ons wil hê. 1499 01:15:33,000 --> 01:15:38,500 >> Op die boonste linkerkantste is die Google Maps JavaScript API, die JavaScript API. 1500 01:15:38,500 --> 01:15:40,380 So gaan voort en klik dat 'n mens. 1501 01:15:40,380 --> 01:15:49,360 En dit sal jy nou lei tot die volgende bladsy, demonstrasies en voorbeeld kode. 1502 01:15:49,360 --> 01:15:51,190 Laat my uit zoom hier. 1503 01:15:51,190 --> 01:15:56,300 En laat my sommer ons aan- en af ​​te beweeg na die plek waar dit sê vinnig begin stappe. 1504 01:15:56,300 --> 01:15:57,970 Jou skerm behoort te lyk myn. 1505 01:15:57,970 --> 01:16:01,130 >> En daar is twee stappe, kry 'n sleutel en begin met die ontwikkeling. 1506 01:16:01,130 --> 01:16:04,190 Ek het reeds stap een vir ons, om 'n sogenaamde sleutel. 1507 01:16:04,190 --> 01:16:05,320 En dit is 'n algemene idee. 1508 01:16:05,320 --> 01:16:09,210 'N API sleutel is oor die algemeen net 'n groot ewekansige getal of reeks 1509 01:16:09,210 --> 01:16:11,130 wat jy veronderstel is om te plak in jou kode, 1510 01:16:11,130 --> 01:16:15,280 sodat Google weet wie jy is wanneer jy gebruik hul diens, hul API. 1511 01:16:15,280 --> 01:16:17,370 Dit beteken nie dat ons aangekla enigiets. 1512 01:16:17,370 --> 01:16:21,030 En nou, kliek, in plaas van een, klik begin ontwikkel. 1513 01:16:21,030 --> 01:16:25,990 As jy net kon waai my oor indien nie seker waar ons is. 1514 01:16:25,990 --> 01:16:28,040 >> So sal ons net krap die oppervlak, hier, maar wat 1515 01:16:28,040 --> 01:16:31,000 Ek het gedink dwingende sou wees is om werklik ons ​​almal het, 1516 01:16:31,000 --> 01:16:34,240 gebruik van Cloud9 in 'n venster en hierdie handleiding in 'n ander venster, 1517 01:16:34,240 --> 01:16:37,120 Kom ons kry eintlik ons ​​eie aansoek aan die gang 1518 01:16:37,120 --> 01:16:40,920 wat ingesluit 'n persoonlike Google karteer in ons eie webblad, 1519 01:16:40,920 --> 01:16:43,010 en voeg dan een of twee funksies. 1520 01:16:43,010 --> 01:16:45,520 Maar ons sal net krap die oppervlak van wat ons kan doen. 1521 01:16:45,520 --> 01:16:47,020 >> Dus net 'n vinnige gesonde verstand tjek. 1522 01:16:47,020 --> 01:16:49,740 Is almal op hierdie bladsy, Google Maps JavaScript API? 1523 01:16:49,740 --> 01:16:50,872 Indien sê die slag. 1524 01:16:50,872 --> 01:16:53,330 Ons gaan nie om te gaan deur die hele ding op enige manier. 1525 01:16:53,330 --> 01:16:58,090 OK, in 'n ander blad, as jy dit nie doen nie het dit oop, moenie ingaan Cloud9 1526 01:16:58,090 --> 01:17:03,500 en kry jouself net 'n nuwe blad, uiteindelik. 1527 01:17:03,500 --> 01:17:11,070 So weer, c9.io van gister, c9.io, en net 'n nuwe lêer te skep. 1528 01:17:11,070 --> 01:17:13,500 En gaan voort en roep dit alles wat jy wil. 1529 01:17:13,500 --> 01:17:16,495 Ek het my map.html. 1530 01:17:16,495 --> 01:17:17,870 Noem dit enigiets wat eindig in Html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 En jy moet rofweg waar ek in hierdie proses 1533 01:17:26,580 --> 01:17:31,470 met net 'n flikkerende vinnige in 'n leë blad genoem iets soos map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 Of lêer, nuwe lêer hierdie tyd. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> En nou, meer as op die Google Maps JavaScript API, 1538 01:17:48,000 --> 01:17:50,010 ons sal lees oorslaan deur al hierdie teks. 1539 01:17:50,010 --> 01:17:53,760 Maar let op dat hello world is inderdaad oral, nou sien jy. 1540 01:17:53,760 --> 01:17:58,020 Hello world het hierdie groot kleurvolle Voorbeeld van 'n hele klomp van HTML. 1541 01:17:58,020 --> 01:18:03,590 Gaan voort en kopieer en net dit plak HTML, so uit die aard doc aan die bokant 1542 01:18:03,590 --> 01:18:08,810 al die pad na die einde HTML tag, gaan voor en kopieer al that-- weer, 1543 01:18:08,810 --> 01:18:14,430 dit is onder die Hello World voorbeeld-- en plak dit in jou blad Cloud9, 1544 01:18:14,430 --> 01:18:17,996 sodat nou jou skerm moet kyk rofweg soos myne. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> En jy kan dit te verlos, maar doen dit net nog nie laai nie. 1547 01:18:24,520 --> 01:18:26,290 Kom ons kyk eers na die kode en kyk of ons 1548 01:18:26,290 --> 01:18:29,110 kan nie aflei of leer uit wat dit is Google 1549 01:18:29,110 --> 01:18:30,860 gehad het ons blindelings kopieer en plak. 1550 01:18:30,860 --> 01:18:33,334 Hulle wil net om te help, letterlik, kry ons begin, 1551 01:18:33,334 --> 01:18:35,500 maar daar is nie veel kompleksiteit eintlik daar. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Enige vrae nog net? 1554 01:18:42,210 --> 01:18:43,790 Ons is veilig om vooruit? 1555 01:18:43,790 --> 01:18:44,330 OK. 1556 01:18:44,330 --> 01:18:46,800 >> So vinnig, laat ons net doen 'n paar vinnige gesonde verstand tjeks. 1557 01:18:46,800 --> 01:18:48,800 Line een van wat ek sien, en hopelik, jy 1558 01:18:48,800 --> 01:18:51,710 sien, wat beteken dit, DOCTYPE HTML? 1559 01:18:51,710 --> 01:18:52,385 Kareem, onthou? 1560 01:18:52,385 --> 01:18:53,260 Gehoor: [onhoorbaar] 1561 01:18:53,260 --> 01:18:53,968 David Malan: Ja. 1562 01:18:53,968 --> 01:18:54,870 Hier kom HTML 5. 1563 01:18:54,870 --> 01:18:57,950 Intussen, reël twee op die skerm beteken hier hey leser, 1564 01:18:57,950 --> 01:18:59,482 hier kom die werklike HTML. 1565 01:18:59,482 --> 01:19:01,440 Line drie is hey leser, hier kom die kop. 1566 01:19:01,440 --> 01:19:04,260 Line vier is, natuurlik, hey leser, hier kom die titel. 1567 01:19:04,260 --> 01:19:07,780 Wat beteken lyn Vyf doen? 1568 01:19:07,780 --> 01:19:09,930 Eintlik is dit nie regtig iets vir ons te doen. 1569 01:19:09,930 --> 01:19:13,340 In hierdie geval, is dit net die grootte die bladsy aan 'n verstek. Line ses, 1570 01:19:13,340 --> 01:19:16,140 Ons het nie gepraat oor, maar dit spesifiseer die karakter enkodering. 1571 01:19:16,140 --> 01:19:19,181 Daar is verskillende maniere om lêers te enkodeer, veral vir buitelandse tale. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 is geneig om net die standaard wees. 1573 01:19:21,100 --> 01:19:26,580 >> So nou sal ons sien in lyn sewe deur 16, 'n CSS. 1574 01:19:26,580 --> 01:19:29,260 En selfs al het ons nie gesien al hierdie dinge voor, 1575 01:19:29,260 --> 01:19:30,810 Ons kan soort aflei. 1576 01:19:30,810 --> 01:19:37,075 So reël agt middel, hey leser, aansoek doen al die volgende waaraan twee etikette, 1577 01:19:37,075 --> 01:19:37,575 blykbaar? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 Die teks HTML en liggaam. 1580 01:19:41,701 --> 01:19:43,200 So het die komma is die nuwe ding daar. 1581 01:19:43,200 --> 01:19:46,140 En dit is net 'n manier om spesifiseer verskeie etikette in 'n keer. 1582 01:19:46,140 --> 01:19:47,640 >> Toe het ons die krullerige draadjies. 1583 01:19:47,640 --> 01:19:51,170 So glo, dit vertel die leser, maak die hoogte van die bladsy 100%. 1584 01:19:51,170 --> 01:19:54,170 So selfs al is daar baie min inhoud, maak die hele bladsy, 1585 01:19:54,170 --> 01:19:55,530 maak die ding vul die bladsy. 1586 01:19:55,530 --> 01:19:57,524 Maak die kaart uiteindelik die bladsy in te vul. 1587 01:19:57,524 --> 01:19:58,690 Marge, wat beteken dit? 1588 01:19:58,690 --> 01:20:01,559 Dit is gewoonlik soos arbitrêre wit ruimte rondom die kante 1589 01:20:01,559 --> 01:20:04,350 dat sommige leser ontwerper net besluit moet daar wees, want dit 1590 01:20:04,350 --> 01:20:05,540 soort maak dinge lyk skoner. 1591 01:20:05,540 --> 01:20:06,498 Maar ons wil nie dat. 1592 01:20:06,498 --> 01:20:08,710 Ons wil hê dat die kaart gaan al die pad na die kante. 1593 01:20:08,710 --> 01:20:10,930 Padding, soortgelyk in gees om marges. 1594 01:20:10,930 --> 01:20:14,980 Marges beteken buite, padding middel binne, maar dit is dieselfde soort transaksie. 1595 01:20:14,980 --> 01:20:17,520 Dit is 'n bietjie van 'n buffer tussen jou en die kante. 1596 01:20:17,520 --> 01:20:21,170 >> En dan is 'n goeie lyn 13 kans vir 'n vinnige oorsig. 1597 01:20:21,170 --> 01:20:26,440 Wat beteken skerp teken kaart bedoel, of hashtag kaart beteken? 1598 01:20:26,440 --> 01:20:29,650 Wat beteken dat verwys na in beginsel? 1599 01:20:29,650 --> 01:20:31,485 >> Gehoor: [onhoorbaar] 1600 01:20:31,485 --> 01:20:32,360 David Malan: Presies. 1601 01:20:32,360 --> 01:20:36,900 Hierdie eiendom is dit CSS eiendom geld vir net een ding, die HTML tag 1602 01:20:36,900 --> 01:20:41,180 wat beskik oor 'n ID van aanhaling, unquote "kaart". 1603 01:20:41,180 --> 01:20:44,460 En nou, laat ons vinnig vorentoe, boek af na die onderkant van die lêer, wat 1604 01:20:44,460 --> 01:20:49,860 is nie te ver weg, en kennis op die lyn 19 As jy dit plak presies soos ek gedoen het, 1605 01:20:49,860 --> 01:20:53,405 lyn 19 het net 'n div, wat 'n afdeling van die bladsy, wat gister het ek 1606 01:20:53,405 --> 01:20:54,820 bekend as 'n reghoekige gebied. 1607 01:20:54,820 --> 01:20:55,820 Dit het niks daarin. 1608 01:20:55,820 --> 01:20:57,550 Dit is 'n oop tag, naby tag. 1609 01:20:57,550 --> 01:20:59,490 Maar dit het nie 'n unieke ID. 1610 01:20:59,490 --> 01:21:02,090 >> So, wat blyk te wees hier gebeur is Google 1611 01:21:02,090 --> 01:21:05,880 is readying ons webblad te het 'n volledige 100% hoogte, 1612 01:21:05,880 --> 01:21:09,680 en geen padding, geen grense nie, want wat ons gaan binne sit 1613 01:21:09,680 --> 01:21:13,647 van hierdie div, wie se unieke ID is kaart, is 'n werklike ingeboude kaart. 1614 01:21:13,647 --> 01:21:15,480 En ons wil dit in te vul die bladsy en nie net 1615 01:21:15,480 --> 01:21:17,560 'n paar klein reghoek in die middel. 1616 01:21:17,560 --> 01:21:24,220 So lyn 14 insgelyks beklemtoon, die karteer self moet 'n hoogte van 100% behaal. 1617 01:21:24,220 --> 01:21:29,220 >> So nou sien tussen lyne 20 en 28, dit is JavaScript-kode. 1618 01:21:29,220 --> 01:21:33,020 En dit is nie, selfs al is dit sintakties 'n bietjie vreemd, 1619 01:21:33,020 --> 01:21:34,730 daar nie veel aan die gang hier. 1620 01:21:34,730 --> 01:21:39,310 In lyn 21, dit verklaar iets genaamd 'n veranderlike. 1621 01:21:39,310 --> 01:21:42,030 In plaas van 'n beroep dit beloop, soos ons vroeër gewaarsku het: 1622 01:21:42,030 --> 01:21:44,500 ons meer presies te sê var, wat net beteken veranderlike. 1623 01:21:44,500 --> 01:21:46,520 Ons kon gebruik wat in Nick se kode, maar hy het nie, so ek 1624 01:21:46,520 --> 01:21:48,190 het nie die moeite om dit te doen nie. 1625 01:21:48,190 --> 01:21:50,240 Dit is 'n veranderlike genoem karteer, en dan is daar 1626 01:21:50,240 --> 01:21:53,360 'n funksie wat blykbaar genoem initMap. 1627 01:21:53,360 --> 01:21:55,780 >> So dit is soos ons eie persoonlike legkaart stuk in Scratch. 1628 01:21:55,780 --> 01:21:58,830 Ons het 'n stuk geskep funksie genoem initMap, 1629 01:21:58,830 --> 01:22:00,980 en jy kan soort aflei wat gaan hier aan. 1630 01:22:00,980 --> 01:22:02,930 Op die linkerkant, Ons het 'n veranderlike het, 1631 01:22:02,930 --> 01:22:06,000 so ons gaan die volgende plaas ding in daardie veranderlike, 1632 01:22:06,000 --> 01:22:07,362 van links na regs. 1633 01:22:07,362 --> 01:22:11,940 Die regterhand sê, hey leser, gee my 'n nuwe Google kaart. 1634 01:22:11,940 --> 01:22:16,490 En google.maps.map is net 'n funky manier spesifiseer dat hierdie funksie 1635 01:22:16,490 --> 01:22:19,790 behoort aan Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> Na afloop van die hakies, het ons gesien hierdie voor, hey leser, kry 1637 01:22:23,010 --> 01:22:29,210 my die elemente in die bladsy, die merker in die bladsy se unieke ID is-- 1638 01:22:29,210 --> 01:22:30,710 >> Gehoor: [onhoorbaar] 1639 01:22:30,710 --> 01:22:31,790 >> David Malan: --map. 1640 01:22:31,790 --> 01:22:35,770 En wat aangaan, wel, hierdie lyn saam, lyn 23, 1641 01:22:35,770 --> 01:22:38,630 is in wese sê: hey leser, gaan kry my 1642 01:22:38,630 --> 01:22:42,800 dat leë div op die bladsy wie se unieke ID is kaart, 1643 01:22:42,800 --> 01:22:45,600 want ek wil voeg in it-- spuit in dit, 1644 01:22:45,600 --> 01:22:49,520 As jy will-- 'n hele klomp van die inhoud dit gebeur te kom van die web, 1645 01:22:49,520 --> 01:22:50,427 daarna. 1646 01:22:50,427 --> 01:22:52,010 En Google se dit alles vir ons doen. 1647 01:22:52,010 --> 01:22:55,350 >> So weer, aan die einde van die dag, Ons het hierdie voorbeeld van abstraksie. 1648 01:22:55,350 --> 01:22:58,610 Ek het geen idee wat 'n kaart is of hoe om 'n kaart API te implementeer. 1649 01:22:58,610 --> 01:22:59,460 Ons hoef nie te. 1650 01:22:59,460 --> 01:23:02,740 Ons het net nodig om die kaart te vertel waar om homself te sit, en laat 1651 01:23:02,740 --> 01:23:04,880 diegene onderliggende implementering besonderhede na Google. 1652 01:23:04,880 --> 01:23:08,190 Nou is daar blykbaar twee stukke data 1653 01:23:08,190 --> 01:23:11,940 dat dit 'n voorbeeld is verskaffing aan API van Google. 1654 01:23:11,940 --> 01:23:16,450 Blykbaar was die middelpunt van die kaart, en die zoom vlak, om so te praat. 1655 01:23:16,450 --> 01:23:21,390 >> En nie almal erken hierdie koördinate, lengte-en breedtegraad? 1656 01:23:21,390 --> 01:23:24,364 Waarskynlik nie, maar ons kan terug gaan om die handleiding, letterlik sien. 1657 01:23:24,364 --> 01:23:25,780 Maar ons sal dit sien in net 'n oomblik. 1658 01:23:25,780 --> 01:23:29,880 Klik op die vlak is nie 'n waarde tussen, ek doen nie weet, een uit elke 13 of so iets. 1659 01:23:29,880 --> 01:23:32,880 Dit het net te doen met hoe ver jy ingezoomd of uit, en dit is dit. 1660 01:23:32,880 --> 01:23:35,690 En nou heel aan die einde van die bladsy, kennisgewing lyn 29-- 1661 01:23:35,690 --> 01:23:39,960 dit is 'n bietjie lelik omdat dit wraps-- hierdie reël van die kode 1662 01:23:39,960 --> 01:23:44,570 is wat afgelaai om die leser werklike API van Google. 1663 01:23:44,570 --> 01:23:47,500 Al die kode wat Google se ingenieurs het geskryf dat implementeer 1664 01:23:47,500 --> 01:23:50,000 hierdie hele aspek van Inlegbare kaarte. 1665 01:23:50,000 --> 01:23:51,470 >> Nou laat ons niks verander nie. 1666 01:23:51,470 --> 01:23:54,761 As jy volgende saam, gaan voort en net red wat lêer, as jy inderdaad 1667 01:23:54,761 --> 01:23:55,760 wat ek het. 1668 01:23:55,760 --> 01:23:57,370 Gaan na die URL. 1669 01:23:57,370 --> 01:23:59,820 Jy kan kliek op die knoppie Run op die top en dit sal vertel 1670 01:23:59,820 --> 01:24:03,050 jy die URL van jou webbediener weer. 1671 01:24:03,050 --> 01:24:06,010 En dit sal jou lei tot 'n nuwe blad. 1672 01:24:06,010 --> 01:24:11,910 As jy klik op Open vir map.html, en die kans is jy 1673 01:24:11,910 --> 01:24:15,520 gaan 'n waarskuwing kry, 'n fout boodskap, ja? 1674 01:24:15,520 --> 01:24:18,570 Fout boodskap, fout boodskap? 1675 01:24:18,570 --> 01:24:21,170 >> So ongelukkig die fout boodskap is nie dat insiggewend 1676 01:24:21,170 --> 01:24:23,890 tensy jy eintlik maak die konsole, wat spesiale blad ons 1677 01:24:23,890 --> 01:24:27,110 gehou opening gister en 'n bietjie vroeër vandag. 1678 01:24:27,110 --> 01:24:29,445 Maar ek het gestruikel oor hierdie vroeër, so ek reeds 1679 01:24:29,445 --> 01:24:30,820 uitgepluis het wat die oplossing is. 1680 01:24:30,820 --> 01:24:34,440 In skyfies vandag, of eerder, in Cloud9, kennisgewing 1681 01:24:34,440 --> 01:24:36,430 dat ons nie gedoen het nie iets doelbewus. 1682 01:24:36,430 --> 01:24:40,690 Let daarop dat hierdie script tag in lyn 29, as jy lees dit, 1683 01:24:40,690 --> 01:24:44,440 dit is soos maps.googleapis.com/ iets, iets, iets, 1684 01:24:44,440 --> 01:24:46,430 dan sien iemand, een van die ontwikkelaars, 1685 01:24:46,430 --> 01:24:50,040 geskryf in alle kapitaal briewe, jou API sleutel. 1686 01:24:50,040 --> 01:24:51,700 >> Ons moet iets plak daar. 1687 01:24:51,700 --> 01:24:53,450 En dit was die stap Ek het vir ons voor, 1688 01:24:53,450 --> 01:24:57,190 en weer hulle kan swartlys indien skielik, 12 of meer van ons 1689 01:24:57,190 --> 01:24:59,470 begin met behulp van dieselfde sleutel, maar laat ons kyk wat gebeur. 1690 01:24:59,470 --> 01:25:03,030 So as jy gaan in vandag se skyfies, een skyfie later, is daar ' 1691 01:25:03,030 --> 01:25:07,070 hierdie baie funky-soek string teks. 1692 01:25:07,070 --> 01:25:12,230 Gaan voort en net kopieer dit en plak dit waar dit jou API sleutel sê. 1693 01:25:12,230 --> 01:25:15,120 Dit is die een wat ek ingeskryf vir. 1694 01:25:15,120 --> 01:25:17,700 >> En beslis nie probeer uit die hand tik dit, 1695 01:25:17,700 --> 01:25:21,210 want dit voel belaai met spelfoute, potensieel. 1696 01:25:21,210 --> 01:25:23,260 Dus net kopieer en plak dit. 1697 01:25:23,260 --> 01:25:26,090 En dit gaan die lyn te maak langer, maar nou, net om duidelik te wees, 1698 01:25:26,090 --> 01:25:29,540 Dit moet 'n bietjie meer kyk soos hierdie, waar die sleutel is gelyk nie 1699 01:25:29,540 --> 01:25:32,200 gekapitaliseer skree op jou. 1700 01:25:32,200 --> 01:25:34,810 Slaan jou bladsy, gaan terug om die ander blad, herlaai, 1701 01:25:34,810 --> 01:25:36,770 en hoop om 'n kaart van waar sien? 1702 01:25:36,770 --> 01:25:37,790 >> Publiek: Australië. 1703 01:25:37,790 --> 01:25:38,748 >> David Malan: Australië. 1704 01:25:38,748 --> 01:25:41,200 So glo dit is die GPS-koördinate van Australië. 1705 01:25:41,200 --> 01:25:44,491 En laat my rond te loop vir 'n oomblik en help iemand wat nogal daar nie, 1706 01:25:44,491 --> 01:25:47,729 maar laat my stel, via Google, vind die GPS-koördinate van jou eie tuisdorp 1707 01:25:47,729 --> 01:25:48,770 of jou eie tuisland. 1708 01:25:48,770 --> 01:25:51,436 En waarskynlik Google kan hierdie draai up, of Wikipedia kan jou vertel. 1709 01:25:51,436 --> 01:25:54,410 Maar kies twee verskillende waardes vir lengte-en breedtegraad, 1710 01:25:54,410 --> 01:25:57,530 gaan terug in en plak dit, en dan herlaai die bladsy na die redding 1711 01:25:57,530 --> 01:26:00,718 en sien as jy 'n kan hê Kaart vir jou eie tuisdorp. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> En as jy klaar is met dat die opvolg challenge-- 1714 01:26:08,042 --> 01:26:11,250 en Ek sal 'n bietjie minder rigting te gee, doelbewus, sodat jy doelbewus 1715 01:26:11,250 --> 01:26:13,791 moet sukkel vir 'n paar minute met die dokumentasie, 1716 01:26:13,791 --> 01:26:18,740 verander die kaart om nie hierdie word strokiesverhaalagtige verstek, maar 'n satelliet kaart. 1717 01:26:18,740 --> 01:26:24,600 So jy eintlik sien satelliet beelde in plaas van die mooi kleure. 1718 01:26:24,600 --> 01:26:29,710 >> En die wenk ek sal jou gee is verander die kaart se tipe. 1719 01:26:29,710 --> 01:26:33,084 Gaan terug na dat om begin bladsy vir inspirasie. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Soos jy dalk opgetel het, As jy op soek is na, 1722 01:26:42,390 --> 01:26:44,250 daar is so baie meer dinge wat jy kan doen. 1723 01:26:44,250 --> 01:26:46,380 Sommige van julle het reeds verander die kaart tipe. 1724 01:26:46,380 --> 01:26:49,890 Maar jy kan do-- byvoorbeeld, laat my gaan na iets wat ons gedoen het vir die kursus 1725 01:26:49,890 --> 01:26:52,050 Ek teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 Een van ons voorgraadse studente het dit. 1727 01:26:53,470 --> 01:26:58,890 Ons sentrum ons kaart oor Harvard Yard en trek al hierdie gebou name, 1728 01:26:58,890 --> 01:27:01,070 en ons het hom dié byvoeging. 1729 01:27:01,070 --> 01:27:04,270 So as ek wil om te soek na, byvoorbeeld, Matthews-saal, 1730 01:27:04,270 --> 01:27:05,730 ons het 'n bietjie drop-down menu. 1731 01:27:05,730 --> 01:27:09,080 En ek dink hy met behulp van Skoenlus, die biblioteek ons ​​vroeër vir hierdie bespreek. 1732 01:27:09,080 --> 01:27:12,190 En as jy op Matthews Hall, dit onmiddellik 1733 01:27:12,190 --> 01:27:14,790 spring die kaart om 'n sekere plek, en dit wys 1734 01:27:14,790 --> 01:27:16,440 jy 'n prentjie in hierdie klein pop-up. 1735 01:27:16,440 --> 01:27:18,670 >> Maar selfs hierdie klein pop-up, het ons nie te implementeer. 1736 01:27:18,670 --> 01:27:27,521 As ek scroll down op ons kry begin bladsy en kyk vir inligting vensters, 1737 01:27:27,521 --> 01:27:29,770 sal jy sien dat sommige van die funksies wat jy jouself 1738 01:27:29,770 --> 01:27:31,561 kan byvoeg, al is dit met 'n bietjie meer ingewikkeld, 1739 01:27:31,561 --> 01:27:33,970 is iets genaamd 'n inligting venster. 1740 01:27:33,970 --> 01:27:37,190 En as ek klik 'n voorbeeld hier, en dit is wat is pret, 1741 01:27:37,190 --> 01:27:40,530 jy kan dinge doen soos hierdie, kliek op 'n merker en dan voila, 1742 01:27:40,530 --> 01:27:42,400 inligting verskyn. 1743 01:27:42,400 --> 01:27:45,874 >> So ons het nie heeltemal ingestel genoeg kenmerke van JavaScript 1744 01:27:45,874 --> 01:27:49,040 om 'n foto van presies wat jy verf hoe kon al hierdie dinge saam te bedraad, 1745 01:27:49,040 --> 01:27:50,706 maar ons het soort van die oppervlak krap. 1746 01:27:50,706 --> 01:27:53,140 Trouens, wat ek gedoen het net toe Ek het op daardie merker, 1747 01:27:53,140 --> 01:27:55,819 was verwek 'n gebeurtenis, 'n sogenaamde op kliek gebeurtenis. 1748 01:27:55,819 --> 01:27:57,610 En ons eintlik sien 'n geval vroeër vandag, 1749 01:27:57,610 --> 01:28:00,670 die sogenaamde voorlê gebeurtenis, toe ons die voorkoming 1750 01:28:00,670 --> 01:28:02,490 die gebruiker van soek vir katte. 1751 01:28:02,490 --> 01:28:06,560 So het ons soort opgetel en koos uit al die verskillende funksies, 1752 01:28:06,560 --> 01:28:08,990 om jou 'n gevoel te gee, hopelik, van wat jy kan eintlik 1753 01:28:08,990 --> 01:28:11,000 doen met 'n bietjie meer troos in programmering, 1754 01:28:11,000 --> 01:28:12,587 en heeltemal gratis hulpbronne. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> Enige vrae? 1757 01:28:18,770 --> 01:28:19,790 Geen? 1758 01:28:19,790 --> 01:28:22,542 Dit is jou laaste kans, ten minste vandag, op 'n Vrydag, 1759 01:28:22,542 --> 01:28:25,000 om iets te kry uit jou bors sodat jy loop uit hier 1760 01:28:25,000 --> 01:28:27,067 voel vol vertroue en gemaklik. 1761 01:28:27,067 --> 01:28:27,566 Ja. 1762 01:28:27,566 --> 01:28:29,740 >> Publiek: Hoekom doen nie jy nog een ding byvoeg? 1763 01:28:29,740 --> 01:28:32,720 >> David Malan: Ag, my goedheid. 1764 01:28:32,720 --> 01:28:35,260 Ek nodig het om hierdie naweek rus, ek dink. 1765 01:28:35,260 --> 01:28:36,180 Ander vrae? 1766 01:28:36,180 --> 01:28:37,055 >> Gehoor: [onhoorbaar] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> David Malan: Jy can-- in Internet Explorer, rus in vrede, 1769 01:28:46,810 --> 01:28:49,310 jy gebruik om in staat wees om VB sit script, virtuele basiese script, 1770 01:28:49,310 --> 01:28:50,643 maar wat werklik nooit gevang op. 1771 01:28:50,643 --> 01:28:52,490 So die kort antwoord is net JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 Ander vrae? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 Goed, goed, laat ek dit doen. 1776 01:28:59,760 --> 01:29:02,070 Laat my buite gryp ons kollegas. 1777 01:29:02,070 --> 01:29:04,500 Hulle het 'n paar evaluasie vorms wat hulle wil hê dat almal 1778 01:29:04,500 --> 01:29:06,310 om 'n paar minute te spandeer vul. 1779 01:29:06,310 --> 01:29:08,775 Hulle wil hê dat die vorm in te samel en enige kwytskeldings dat jy buite kan hê. 1780 01:29:08,775 --> 01:29:10,240 Hulle sal ook sertifikate. 1781 01:29:10,240 --> 01:29:12,380 Ek vermoed daar is nog 'n paar snacks buite. 1782 01:29:12,380 --> 01:29:14,360 Laat my trek dit uit, en as jy enige vrae in die tussentyd, 1783 01:29:14,360 --> 01:29:17,120 Ek sal rondom meer individueel loop en ons kan kry wat jy begin het. 1784 01:29:17,120 --> 01:29:17,879 Ja natuurlik. 1785 01:29:17,879 --> 01:29:18,754 Gehoor: [onhoorbaar] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 David Malan: Dis gewoonlik ware deesdae. 1788 01:29:28,570 --> 01:29:30,730 Sekerlik met web sagteware, jy leun 1789 01:29:30,730 --> 01:29:32,901 op ander jy óf esteties met behulp van dinge 1790 01:29:32,901 --> 01:29:35,400 soos Skoenlus, so jy hoef nie moet die lae vlak te implementeer 1791 01:29:35,400 --> 01:29:37,169 besonderhede van spyskaarte en knoppies en alles wat. 1792 01:29:37,169 --> 01:29:39,210 Jy leun op iemand soos Google, sodat jy 1793 01:29:39,210 --> 01:29:42,050 hoef nie te 'n uber bou besigheid en 'n kartering besigheid, 1794 01:29:42,050 --> 01:29:44,850 en 'n aantal soortgelyke aansoeke sowel. 1795 01:29:44,850 --> 01:29:46,350 >> Trouens, logins is gewild, ook. 1796 01:29:46,350 --> 01:29:48,500 As jy gebruik Spotify of enige aantal webwerwe, 1797 01:29:48,500 --> 01:29:51,210 jy inteken op 'n paar webwerwe met behulp van Facebook. 1798 01:29:51,210 --> 01:29:53,350 So, wat is lekker, daar is APIs vir logins 1799 01:29:53,350 --> 01:29:56,570 deesdae, sodat jy nie hoef om jou eie gebruikers tafel 1800 01:29:56,570 --> 01:29:59,440 en al jou eie databasis noodwendig in dieselfde mate. 1801 01:29:59,440 --> 01:30:01,795 Jy kan laat Facebook almal doen van daardie kompleksiteit vir jou. 1802 01:30:01,795 --> 01:30:03,920 Dit is dus 'n opwindende tyd, eerlik, in programmering, 1803 01:30:03,920 --> 01:30:07,200 want daar is so baie derde party dienste wat jy kan bou op die top van. 1804 01:30:07,200 --> 01:30:10,890 >> En weer, die prys wat jy betaal is óf finansiële of stilstand. 1805 01:30:10,890 --> 01:30:13,750 As Google sak, so ook uber, waarskynlik, 1806 01:30:13,750 --> 01:30:15,690 maar miskien is dit 'n redelike kompromis. 1807 01:30:15,690 --> 01:30:18,040 En weer, dit was een van die temas, Hopelik vir die afgelope paar dae, 1808 01:30:18,040 --> 01:30:18,780 is hierdie kompromieë. 1809 01:30:18,780 --> 01:30:20,738 En selde is daar gaan 'n regte antwoord wees. 1810 01:30:20,738 --> 01:30:25,700 Dit is regtig die beter van twee of meer antwoorde. 1811 01:30:25,700 --> 01:30:26,682 >> Slaag hierdie rond. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> En dit Cloud9 rekeninge sal voortgaan om te werk, in teorie, vir altyd. 1814 01:30:41,110 --> 01:30:45,000 Jy kan vind as jy wag 'n paar dae of 'n week of meer om terug te meld by hulle 1815 01:30:45,000 --> 01:30:49,170 dit aan te gryp soos een of vyf minute om terug te oop te maak, 1816 01:30:49,170 --> 01:30:54,090 maar dit is net omdat hulle dit aan die slaap te bespaar op hulpbronne. 1817 01:30:54,090 --> 01:31:10,527