1 00:00:00,000 --> 00:00:02,405 >> [MUZIKO Ludante] 2 00:00:02,405 --> 00:00:10,439 3 00:00:10,439 --> 00:00:11,980 DAVID Malan: Bone, ĉi tiu estas CS50. 4 00:00:11,980 --> 00:00:13,740 Tio estas la fino de semajno ok. 5 00:00:13,740 --> 00:00:15,887 Kaj hodiaŭ, ni komencas plenigi iuj pecoj 6 00:00:15,887 --> 00:00:17,720 kiam temas konstruaĵo aferoj en la reto. 7 00:00:17,720 --> 00:00:20,020 Do, memoru, ke lunde ni pasigas multe pli da tempo 8 00:00:20,020 --> 00:00:22,530 en PHP, kiu estas tiu dinamika programlingvo ke 9 00:00:22,530 --> 00:00:26,872 Lasas nin eligo, inter aliaj aferojn, HTML kaj aliaj tiaj enhavo 10 00:00:26,872 --> 00:00:27,830 ke ni volas vidi. 11 00:00:27,830 --> 00:00:30,871 Sed ni ne vere rigardis kiel ni iras por stoki ajnan informon. 12 00:00:30,871 --> 00:00:34,477 Efektive, preskaŭ neniu de kiuj la super interesaj retejoj vi vizitas hodiaŭ 13 00:00:34,477 --> 00:00:36,560 havas ian datumbazo sur la dorso fino, ĉu ne? 14 00:00:36,560 --> 00:00:39,540 Facebook certe stokas amasojn de datumoj pri ni ĉiuj kaj Gmail tendencas ĉiuj 15 00:00:39,540 --> 00:00:40,210 de via retmesaĝoj. 16 00:00:40,210 --> 00:00:44,150 >> Kaj tial, multaj aliaj lokoj estas ne nur statika enhavo kiu estas informa. 17 00:00:44,150 --> 00:00:45,640 Estas vere dinamika iel. 18 00:00:45,640 --> 00:00:48,480 Vi havigi enigo, ĝi ĝisdatigas la paĝoj por aliaj personoj. 19 00:00:48,480 --> 00:00:50,620 Vi ricevas mesaĝojn, vi sendu mesaĝojn, kaj tiel antaŭen. 20 00:00:50,620 --> 00:00:54,250 Do hodiaŭ, ni rigardas pli proksime rigardis la subkonstruaĵoj de projekto 21 00:00:54,250 --> 00:00:57,330 ke vi plonĝi en sekva semajno, CS50 Financoj, kio 22 00:00:57,330 --> 00:01:00,509 fakte havos vin konstrui io ne estas en C, sed en PHP. 23 00:01:00,509 --> 00:01:02,550 Retejo kiu aspektas iom io tiamaniere 24 00:01:02,550 --> 00:01:05,810 kiu permesas aĉeti kaj vendi akcioj kiuj reale 25 00:01:05,810 --> 00:01:09,044 tuj desegni sur reala tempo stock datumoj de Yahoo Financoj. 26 00:01:09,044 --> 00:01:11,960 Kaj do finfine, vi havos la iluzio por vi mem kaj por uzantoj 27 00:01:11,960 --> 00:01:14,550 ke vi reale aĉetante kaj vendante stokoj kaj ekhavi preskaŭ reala tempo 28 00:01:14,550 --> 00:01:16,800 ĝisdatigoj, administri biletujo, ĉiuj kiuj 29 00:01:16,800 --> 00:01:20,310 tuj postulas havanta, finfine, datumbazon de uzantoj. 30 00:01:20,310 --> 00:01:23,330 >> Do, en viaj propraj vortoj, precipe se vi ne estas 31 00:01:23,330 --> 00:01:25,670 súper konata kun komputila scienco aŭ datumbazoj, kio 32 00:01:25,670 --> 00:01:30,790 vi scias datumbazon esti ĝuste nun, en _nontechnical_ terminoj? 33 00:01:30,790 --> 00:01:32,300 Kio estas tio? 34 00:01:32,300 --> 00:01:36,882 Kiel vi priskribus ŝin al kunloĝanto aŭ amiko? 35 00:01:36,882 --> 00:01:40,100 >> Spektantaro: [inaudible] informo [inaudible] 36 00:01:40,100 --> 00:01:44,430 >> DAVID Malan: Do, liston de informoj, aŭ store-- listo de informoj 37 00:01:44,430 --> 00:01:47,160 ke vi eble volas konservi pri io, kiel uzanto. 38 00:01:47,160 --> 00:01:50,190 Kaj kion fari uzantoj havas asociita kun ili? 39 00:01:50,190 --> 00:01:53,160 Se vi estas uzanto de Facebook aŭ Gmail, kio estas la karakterizaĵoj 40 00:01:53,160 --> 00:01:54,940 ke ni ĉiuj uzantoj havas? 41 00:01:54,940 --> 00:01:58,530 Kiel, kio povus esti iuj de la kolumnoj en la kalkultabelo por kiu ni 42 00:01:58,530 --> 00:01:59,390 aludis lastfoje? 43 00:01:59,390 --> 00:02:01,140 Ĉar denove, vi povas pensi pri datumbazo 44 00:02:01,140 --> 00:02:05,810 vere kiel fantazio Excel dosiero aŭ Google Kalkultabelo aŭ Apple Nombroj dosiero. 45 00:02:05,810 --> 00:02:08,280 >> Do, kion vi opinias pri kiam vi pensas de uzanto? 46 00:02:08,280 --> 00:02:11,290 Kion ili havas? 47 00:02:11,290 --> 00:02:11,790 Kio estas tio? 48 00:02:11,790 --> 00:02:12,470 >> Publiko: A nomo. 49 00:02:12,470 --> 00:02:13,303 >> DAVID Malan: A nomo. 50 00:02:13,303 --> 00:02:16,840 Do se nomo, kiel David Malan estus la nomo de iu uzanto. 51 00:02:16,840 --> 00:02:17,980 Kion alian pruvas uzanto havas? 52 00:02:17,980 --> 00:02:18,770 >> Publiko: An ID. 53 00:02:18,770 --> 00:02:19,561 >> DAVID Malan: An ID. 54 00:02:19,561 --> 00:02:23,320 Do, kiel ID nombro, kiel via Harvard ID aŭ via Yale Net ID aŭ similaj. 55 00:02:23,320 --> 00:02:24,923 Kion alian oni uzanto havas? 56 00:02:24,923 --> 00:02:25,890 >> Publiko: Pasvorto. 57 00:02:25,890 --> 00:02:29,240 >> DAVID Malan: Pasvorta, eble oni adreso, eble telefonnumero, eble 58 00:02:29,240 --> 00:02:30,050 retadreson. 59 00:02:30,050 --> 00:02:32,640 Do, ekzistas aroj da kampoj kaj ĉi povus ia spirale el kontrolo 60 00:02:32,640 --> 00:02:34,760 rapide tuj kiam vi komencas rimarki, ho, ni stoki ĉi 61 00:02:34,760 --> 00:02:36,190 kaj ni stoki tion kaj tion. 62 00:02:36,190 --> 00:02:37,657 >> Sed kiel ni efektive faru tion? 63 00:02:37,657 --> 00:02:39,740 Do denove, la mensa modelo havi por hodiaŭ kiel ni 64 00:02:39,740 --> 00:02:42,320 plonĝi en reala SQL, Strukturita Query Language, 65 00:02:42,320 --> 00:02:44,186 estas datumbazo kiu similas ĉi. 66 00:02:44,186 --> 00:02:45,310 Estas nur vicoj kaj kolumnoj. 67 00:02:45,310 --> 00:02:48,309 Kaj vi povas imagi Google Spreadsheets aŭ ajnan numeron de aliaj programoj. 68 00:02:48,309 --> 00:02:52,130 Sed kio estas ŝlosilo pri MySQL, kiu estas la datumbaza softvaro ni tuj uzi, 69 00:02:52,130 --> 00:02:54,920 la libere malkaŝe available-- Facebook uzoj 70 00:02:54,920 --> 00:02:59,200 ĝi kaj ajna nombro da aliaj websites-- datumbazo stokas aferoj relationally. 71 00:02:59,200 --> 00:03:01,770 Kaj rilata datumbazo nur signifas unu kiu laŭvorte 72 00:03:01,770 --> 00:03:03,672 stokas liajn datumojn en vicoj kaj kolumnoj. 73 00:03:03,672 --> 00:03:04,630 Ĝi estas kiel simpla kiel tio. 74 00:03:04,630 --> 00:03:07,230 >> Do, eĉ ion kiel Oracle ke vi eble ĝenerale aŭdis 75 00:03:07,230 --> 00:03:08,271 estas rilata datumbazo. 76 00:03:08,271 --> 00:03:10,929 Kaj sub la kapuĉo, ĝi tendencas datumoj en vicoj kaj kolumnoj. 77 00:03:10,929 --> 00:03:12,970 Kaj Oracle enspezas vin multan monon por fari tion, 78 00:03:12,970 --> 00:03:15,550 dum MySQL ŝargoj vi nenion por la sama. 79 00:03:15,550 --> 00:03:18,790 Do, SQL tuj donos nin almenaŭ kvar operacioj. 80 00:03:18,790 --> 00:03:23,190 La kapablon elekti datumojn, kiel legita datumoj, insert, forigi, kaj ĝisdatigo de datumoj. 81 00:03:23,190 --> 00:03:25,525 En aliaj vortoj, tiuj estas vere la kvar ŝlosilaj operacioj 82 00:03:25,525 --> 00:03:28,950 ke tuj permesos nin ŝanĝi havajxoj en tiuj vicoj kaj kolumnoj. 83 00:03:28,950 --> 00:03:33,250 >> La ilo kiun ni uzas nuntempe ĉefe lerni SQL kaj ludi kun ĝi 84 00:03:33,250 --> 00:03:34,627 estas denove nomita PHP MyAdmin. 85 00:03:34,627 --> 00:03:35,460 Estas ttt bazita ilo. 86 00:03:35,460 --> 00:03:38,200 Sumo koincido ke ĝi estas skribita en PHP. 87 00:03:38,200 --> 00:03:42,400 Sed ĝi tuj donu al ni grafikan uzantinterfaco por ke ni povas reale 88 00:03:42,400 --> 00:03:46,054 krei tiujn vicoj kaj kolumnoj kaj tiam paroli al ili per kodo. 89 00:03:46,054 --> 00:03:47,970 Do, ni nun komencas kion mi opinias estas sincere 90 00:03:47,970 --> 00:03:51,000 speco de la amuza procezo de konstruanta la malantaŭa fino de retejoj, 91 00:03:51,000 --> 00:03:54,580 la partoj kiuj uzantoj ne vidi, sed verŝajne faras zorgon pri, 92 00:03:54,580 --> 00:03:56,170 ĉar tio estas prefere datumoj okazas. 93 00:03:56,170 --> 00:03:59,570 Do, simila al C kaj iom malpli kiel PHP, 94 00:03:59,570 --> 00:04:04,954 SQL, aŭ datumbazo kiu elportu SQL, havas almenaŭ tiuj datumtipoj 95 00:04:04,954 --> 00:04:05,870 kaj aroj da aliaj. 96 00:04:05,870 --> 00:04:08,107 Char, VARCHAR, INT, BIGINT, Dekuma kaj DatoTempo. 97 00:04:08,107 --> 00:04:09,940 Kaj ekzistas tuta faskon da aliaj trajtoj, 98 00:04:09,940 --> 00:04:11,940 sed ni faru tion maniero de fakta ekzemplo. 99 00:04:11,940 --> 00:04:16,450 >> Mi tuj iros en CS50 IDE kie, anticipe, mi ensalutinta 100 00:04:16,450 --> 00:04:19,372 kaj Mi ankaŭ vizitis URL por tiu ilo nomita PHP MyAdmin. 101 00:04:19,372 --> 00:04:22,580 Kaj en problemo starigis sep, ni diros vi precize kiel atingi tiun interfaco 102 00:04:22,580 --> 00:04:23,200 ankaŭ. 103 00:04:23,200 --> 00:04:25,640 Sur la supra maldekstra angulo, rimarki ĝin diras prelegi. 104 00:04:25,640 --> 00:04:27,610 Kaj tio nur signifas ke anticipe, mi kreis 105 00:04:27,610 --> 00:04:31,360 malplena datumbazo nomita prelego kiu havas neniun kalkultabelojn en ĝi ankoraŭ. 106 00:04:31,360 --> 00:04:32,600 Mankas vicoj kaj kolumnoj. 107 00:04:32,600 --> 00:04:34,308 Ĉar la unua afero ni tuj faros 108 00:04:34,308 --> 00:04:37,100 Estas komenci al krei tabulon ke tuj stoki niajn uzantojn. 109 00:04:37,100 --> 00:04:39,100 >> Do, laŭvorte super tie dekstren, mi estas 110 00:04:39,100 --> 00:04:42,070 tuj rakontos la datumbazo Mi volas tablo nomita Uzantoj. 111 00:04:42,070 --> 00:04:44,845 Do, tio estas kiel la dosiero kiun mi volas konservi ĉiujn miajn datumojn en. 112 00:04:44,845 --> 00:04:45,720 Kaj kiom da kolumnoj? 113 00:04:45,720 --> 00:04:47,740 Nu, ni teni ĝin simpla por nun. 114 00:04:47,740 --> 00:04:51,855 Mi nur volas konservi kiel uzantonomo kaj nomon de uzulo. 115 00:04:51,855 --> 00:04:53,020 Ni komencos malgranda. 116 00:04:53,020 --> 00:04:55,370 Do, mi volas du kolumnoj entute. 117 00:04:55,370 --> 00:04:57,360 Kaj mi tuj iros antaŭen kaj klaku Iru. 118 00:04:57,360 --> 00:04:59,210 Kaj poste, por tiuj kolumnoj, kion mi tuj 119 00:04:59,210 --> 00:05:04,576 al do-- se ĉi interreto cooperates-- bone, 120 00:05:04,576 --> 00:05:05,950 do ni tuj provi tion denove. 121 00:05:05,950 --> 00:05:09,180 Mi tuj krei tabulon vokis Uzantoj kun du kolumnoj, klaku Iru OK. 122 00:05:09,180 --> 00:05:10,520 Nun ni havas vere rapida. 123 00:05:10,520 --> 00:05:12,065 Dankon, tre bone farita. 124 00:05:12,065 --> 00:05:14,440 Bone, do kion ni volas tiujn kolumnojn por nomi? 125 00:05:14,440 --> 00:05:16,080 >> Do, oni tuj nomos Uzulnomo. 126 00:05:16,080 --> 00:05:19,480 Do, ĉiuj mi vidas here-- kaj la interfaco sincere ricevas iom malbela eventuale, 127 00:05:19,480 --> 00:05:21,270 unufoje vi ektajpu en ĉiuj ĉi tiuj datumoj. 128 00:05:21,270 --> 00:05:27,450 Sed kio estas agrabla estas tia paradokse, mi krei kolumnojn, 129 00:05:27,450 --> 00:05:29,977 sed la ilo havas malsaĝe elmetis tion en vicoj 130 00:05:29,977 --> 00:05:31,560 por ke mi povas agordi tiujn kolumnojn. 131 00:05:31,560 --> 00:05:33,550 Do, ekzistas du spacoj tie sub Nomo. 132 00:05:33,550 --> 00:05:36,180 Kaj unu el tiuj kampoj mi volas nomi Uzulnomo: 133 00:05:36,180 --> 00:05:38,000 kaj la alia kampo Mi volas nomi Nomo. 134 00:05:38,000 --> 00:05:40,340 >> Kaj nun mi devas elekti datumtipoj por tio. 135 00:05:40,340 --> 00:05:42,330 Do, dum en Excel kaj Google Spreadsheets, 136 00:05:42,330 --> 00:05:45,531 se vi volas kolumno, vi laŭlitere nur tajpu Nomo aŭ Uzulnomo, batis Enter. 137 00:05:45,531 --> 00:05:48,030 Eble vi faras ĝin aŭdaca vizaĝo nur por klareco, sed jen ĝi. 138 00:05:48,030 --> 00:05:50,140 Vi ne specifas la tipoj de la kolumnoj. 139 00:05:50,140 --> 00:05:53,790 Nun en Google Spreadsheets aŭ Excel, vi povus specifas kiel la datumoj estas pruntitaj. 140 00:05:53,790 --> 00:05:58,120 Vi povus iri al la menuo Formato, kaj vi povas specifi montri tion kiel dolaro signo, 141 00:05:58,120 --> 00:05:59,900 montri tiun kiel glitpunktaj valoro. 142 00:05:59,900 --> 00:06:01,990 >> Do, ĝi estas simila en spirito al ke kion ni estas farontaj, 143 00:06:01,990 --> 00:06:04,740 sed tiu estas vere tuj devigi la datumoj esti certa tipo. 144 00:06:04,740 --> 00:06:07,750 Nun, eĉ se antaŭ momento mi diris ke ekzistas nur kelkaj datumtipoj, 145 00:06:07,750 --> 00:06:11,120 ekzistas reale amason, kaj ili estas 146 00:06:11,120 --> 00:06:12,910 en variantaj gradoj de specifeco. 147 00:06:12,910 --> 00:06:14,970 Kaj kiel flanken, vi povas eĉ fari imago aferoj 148 00:06:14,970 --> 00:06:17,520 kiel stokado geometrioj ene de datumbazo. 149 00:06:17,520 --> 00:06:19,250 Vi povas stoki aferojn kiel GPS koordinatoj 150 00:06:19,250 --> 00:06:22,420 kaj fakte trovas, matematike, punktoj kiuj estas proksimaj al aliaj. 151 00:06:22,420 --> 00:06:24,128 Sed ni tuj daŭru super simpla 152 00:06:24,128 --> 00:06:26,800 kaj iri ĝis tie, ĉiuj la tn kordo tipoj. 153 00:06:26,800 --> 00:06:29,240 >> Do, jen listo de tuta aro da ebloj. 154 00:06:29,240 --> 00:06:32,740 Char, VARCHAR, TINYTEXT, MEDIUMTEXT, LONGTEXT. 155 00:06:32,740 --> 00:06:34,110 Kaj ĝi estas speco de blindiga. 156 00:06:34,110 --> 00:06:37,610 Kaj bedaŭrinde, iom paradokse al C, 157 00:06:37,610 --> 00:06:40,120 char ne estas vere char. 158 00:06:40,120 --> 00:06:44,170 Se vi specifas en datumbazo ke via datumtipo estas char, 159 00:06:44,170 --> 00:06:47,390 tio signifas ke jes, ĝi estas Char, sed ĝi estas unu aŭ pli signoj. 160 00:06:47,390 --> 00:06:49,630 Kaj vi devas doni kiom da signoj vi volas. 161 00:06:49,630 --> 00:06:51,636 Do, kio estas tipa longo por salutnomon? 162 00:06:51,636 --> 00:06:52,760 Ĉu ekzistas limo tipe? 163 00:06:52,760 --> 00:06:53,920 >> Spektantaro: [inaudible] 164 00:06:53,920 --> 00:06:55,050 >> DAVID Malan: 16 eble? 165 00:06:55,050 --> 00:06:55,990 Io simila. 166 00:06:55,990 --> 00:06:57,948 Vi scias, tie en la tago, ĝi kutimis esti ok. 167 00:06:57,948 --> 00:07:00,289 Foje estas 16, foje ĝi estas eĉ pli ol tio. 168 00:07:00,289 --> 00:07:02,080 Kaj tiel, ĉi ne signifas doni al mi unu CHAR. 169 00:07:02,080 --> 00:07:04,730 Tio signifas mi devas entajpi la longo de la kampo, 170 00:07:04,730 --> 00:07:07,402 kaj nun mi povus diri ion kiel 16. 171 00:07:07,402 --> 00:07:08,610 Kaj tie estas komerco ekstere tie. 172 00:07:08,610 --> 00:07:11,360 Do, ni vidos post momento ke tiu signifas unu, 173 00:07:11,360 --> 00:07:14,620 ĉiun salutnomo devas esti 16 karakteroj. 174 00:07:14,620 --> 00:07:18,720 Sed atendu momenton, M-A-L-A-D. Se tio mian salutnomon kaj mi nur uzante kvin, 175 00:07:18,720 --> 00:07:23,070 kion vi proponas ke la datumbazo fari por la aliaj 11 karakteroj kiuj 176 00:07:23,070 --> 00:07:24,471 Mi rezervis spacon por? 177 00:07:24,471 --> 00:07:25,220 Kion vi farus? 178 00:07:25,220 --> 00:07:26,480 >> Spektantaro: [inaudible] 179 00:07:26,480 --> 00:07:27,160 >> DAVID Malan: Yeah, simple fari ilin ĉiuj nulaj. 180 00:07:27,160 --> 00:07:28,290 Faru ilin spacoj. 181 00:07:28,290 --> 00:07:30,816 Sed probable nula, do Multa backslash nuloj. 182 00:07:30,816 --> 00:07:33,190 Do, unuflanke, ni havas nun certigis ke mia salutnomo 183 00:07:33,190 --> 00:07:34,780 povas esti ne pli ol 16 signoj. 184 00:07:34,780 --> 00:07:37,590 Kaj la flip flanko de kiu estas ke se mi havis vere longan nomon 185 00:07:37,590 --> 00:07:39,940 aŭ volis vere longa salutnomo kiel kelkaj el vi 186 00:07:39,940 --> 00:07:44,840 uloj havu en tiu kolegio aŭ ĉe Yale.edu, vi ne povas havi unu. 187 00:07:44,840 --> 00:07:47,177 Do fakte, se vi havas iam registrita por retejo 188 00:07:47,177 --> 00:07:49,385 kaj vi get kriis al jene vian pasvorton tro longa 189 00:07:49,385 --> 00:07:52,710 aŭ via uzantnomo estas tro longa, ĝi estas simple ĉar programisto, kiam 190 00:07:52,710 --> 00:07:55,500 agordante sian datumbazon, decidis ke tiu kampo 191 00:07:55,500 --> 00:07:57,150 ne plu ol ĉi longo. 192 00:07:57,150 --> 00:08:00,580 >> Bone, do kion se ni procedi por citi? 193 00:08:00,580 --> 00:08:05,240 Kiom longe devus pli tipa homa nomo estas? 194 00:08:05,240 --> 00:08:07,492 Kiom da karakteroj, 16? 195 00:08:07,492 --> 00:08:09,450 Mi konjektas ni povis trovi iun en tiu ĉambro 196 00:08:09,450 --> 00:08:13,210 kie por lia aŭ ŝia unua pli lasta nomo estas pli longa ol 16 karakteroj. 197 00:08:13,210 --> 00:08:14,850 Do, kio estas pli bona ol tio, la 17? 198 00:08:14,850 --> 00:08:17,040 18? 199 00:08:17,040 --> 00:08:18,830 25? 200 00:08:18,830 --> 00:08:20,350 Bigger? 201 00:08:20,350 --> 00:08:20,980 30? 202 00:08:20,980 --> 00:08:21,855 >> Spektantaro: [inaudible] 203 00:08:21,855 --> 00:08:23,700 DAVID Malan: 5.000, oh mia Dio. 204 00:08:23,700 --> 00:08:26,309 Do, tio estas probable deca supra ligis, ni diru. 205 00:08:26,309 --> 00:08:28,350 Kaj tie ni ia havis fari juĝon alvoko. 206 00:08:28,350 --> 00:08:30,400 Kiel, estas nenia dekstra respondon tie. 207 00:08:30,400 --> 00:08:32,740 Senfina estas ne tute eble, ĉar ni estas eventuale 208 00:08:32,740 --> 00:08:34,781 tuj have-- ni estas tuj kuri el memoro. 209 00:08:34,781 --> 00:08:36,909 Do, ni devas fari juĝon alvoko je iu punkto. 210 00:08:36,909 --> 00:08:41,010 >> Tre komuna estus, ekzemple, al use-- kaj lasu min specifi CHAR tie 211 00:08:41,010 --> 00:08:46,050 kiel before-- 255 estis laŭvorte la supra limo sur tiu datumbazo programaro 212 00:08:46,050 --> 00:08:46,700 antaŭ jaroj. 213 00:08:46,700 --> 00:08:48,575 Kaj do, multajn homojn estus ĝuste diri, fajna. 214 00:08:48,575 --> 00:08:49,420 255 estas la limo. 215 00:08:49,420 --> 00:08:50,620 Ni simple uzu la maksimumo. 216 00:08:50,620 --> 00:08:51,870 Kaj tiu estas sufiĉe ridinda. 217 00:08:51,870 --> 00:08:55,060 Kiel, se vi tajpas iun estas citi por 200 pli karakteroj, 218 00:08:55,060 --> 00:08:56,140 ke iom ridinda. 219 00:08:56,140 --> 00:08:59,624 >> Sed, memoru ke ASCII ne la sola sistemo por karakteroj. 220 00:08:59,624 --> 00:09:01,540 Kaj tiel, speciale en Multaj aziaj lingvoj 221 00:09:01,540 --> 00:09:04,248 kie ekzistas karakteroj ni ne povas esprimi en klavaroj kiel miaj usonaj 222 00:09:04,248 --> 00:09:08,209 klavaro, iuj karakteroj reale levu 16 bitoj anstataŭ ok bitoj. 223 00:09:08,209 --> 00:09:10,250 Kaj do, ĉi reale finfine ne senkaŭza 224 00:09:10,250 --> 00:09:12,250 ke ni bezonas pli spaco se ni volas persvadi 225 00:09:12,250 --> 00:09:16,252 grandaj karakteroj ol la tre usonaj centric ones ni jam emis diskuti. 226 00:09:16,252 --> 00:09:17,460 Do, ni bezonas iun superan baron. 227 00:09:17,460 --> 00:09:21,470 Mi ne scias, kion la bona estas, sed 255 estas ĝenerale komuna. 228 00:09:21,470 --> 00:09:22,700 25 sentas malalta. 229 00:09:22,700 --> 00:09:23,857 16, 32 sentas malalta. 230 00:09:23,857 --> 00:09:25,690 Mi estus erari sur la flanko de io pli alta. 231 00:09:25,690 --> 00:09:27,330 Sed estas komerco ekstere, kiel ĉiam. 232 00:09:27,330 --> 00:09:31,902 Kio estas la, eble, evidente komerco ekstere de rezervante 255 signoj 233 00:09:31,902 --> 00:09:33,360 por ĉies nomon en mian datumbazon? 234 00:09:33,360 --> 00:09:34,230 >> Spektantaro: [inaudible] 235 00:09:34,230 --> 00:09:34,510 >> DAVID Malan: Kio estas tio? 236 00:09:34,510 --> 00:09:35,430 >> Spektantaro: [inaudible] 237 00:09:35,430 --> 00:09:37,138 >> DAVID Malan: Estas Multa memoro, ĉu ne? 238 00:09:37,138 --> 00:09:42,280 M-A-L-A-D. Mi ĵus malŝparis 250 karakteroj ĵus stoki mia nomo 239 00:09:42,280 --> 00:09:46,000 defende, ĉiaokaze iu en la klaso havas vere longan nomon. 240 00:09:46,000 --> 00:09:47,940 Tio ŝajnas kiel troa tradeoff. 241 00:09:47,940 --> 00:09:52,040 >> Do, rezultas ke SQL, ĉi datumbaza lingvo, 242 00:09:52,040 --> 00:09:55,480 fakte subtenas ion nomata VARCHAR, aŭ Variablo CHAR. 243 00:09:55,480 --> 00:09:59,390 Kaj tiu estas speco de bela en tiu ĉi permesas vin specifi ne fiksa 244 00:09:59,390 --> 00:10:01,900 larĝa, sed prefere, larĝa ŝanĝiĝema. 245 00:10:01,900 --> 00:10:05,060 Kaj pli specife, maksimuma larĝo de la kampo. 246 00:10:05,060 --> 00:10:08,901 Do, tio signifas ke nomo povas esti ne pli ol 250 signoj, 247 00:10:08,901 --> 00:10:10,150 sed ĝi certe povas esti pli malmultaj. 248 00:10:10,150 --> 00:10:11,733 Kaj la datumaro estas iranta esti lerte. 249 00:10:11,733 --> 00:10:14,860 Se vi metas en M-A-L-A-N, ĝi estas nur tuj uzos kvin, 250 00:10:14,860 --> 00:10:18,120 eble ses bitokoj por kiel Rampanta nula karaktero, 251 00:10:18,120 --> 00:10:23,330 kaj ne elspezas plia 249 aŭ 250 bajtoj nenecese. 252 00:10:23,330 --> 00:10:27,380 >> Do, tio ŝajnas kiel mi devus komencis kun tiu rakonto. 253 00:10:27,380 --> 00:10:29,140 Sed ĉiam estas tradeoff. 254 00:10:29,140 --> 00:10:33,024 Do, unuflanke, uzantonomon mi havas specifita esti malfacile kodita en 16, 255 00:10:33,024 --> 00:10:34,940 kaj eble tio estis ne rajtas nomi, eble 256 00:10:34,940 --> 00:10:40,040 estas, sed kial ne uzi VARCHARs por ĉio? 257 00:10:40,040 --> 00:10:42,020 >> Ekzistas por kialo. 258 00:10:42,020 --> 00:10:46,200 Kial ne uzi VARCHARs por ĉiu kampo kies longo ne scias anticipe 259 00:10:46,200 --> 00:10:48,180 se ĝi ŝajnas esti granda afero, ĉu ne? 260 00:10:48,180 --> 00:10:50,482 Uzu nur tiom da spaco kiel vi bezonas ĝis ĉi limo? 261 00:10:50,482 --> 00:10:51,271 >> Publiko: Pli malrapida. 262 00:10:51,271 --> 00:10:52,146 DAVID Malan: Speller? 263 00:10:52,146 --> 00:10:53,120 Publiko: Makes pli malrapida? 264 00:10:53,120 --> 00:10:53,970 DAVID Malan: Ho, ĝi estas pli malrapida. 265 00:10:53,970 --> 00:10:55,720 Bona, tio estas preskaŭ ĉiam la respondon, sincere. 266 00:10:55,720 --> 00:10:56,520 Kiel, kio estas la tradeoff? 267 00:10:56,520 --> 00:10:58,570 Ĝi ĉu kostas pli spaco aŭ ĝi kostas pli da tempo. 268 00:10:58,570 --> 00:11:00,111 Do, en ĉi tiu kazo, ĝi povus esti pli malrapida. 269 00:11:00,111 --> 00:11:00,920 Kial? 270 00:11:00,920 --> 00:11:05,830 >> Spektantaro: [inaudible] determinado [inaudible]. 271 00:11:05,830 --> 00:11:06,640 >> DAVID Malan: Bonan. 272 00:11:06,640 --> 00:11:09,670 Do, vi eble memoras de vespero PSED5, ludante kun via alproksimiĝo 273 00:11:09,670 --> 00:11:12,750 al la vortaro, se vi devas rezervi memoron dinamike aŭ konservi 274 00:11:12,750 --> 00:11:14,630 kreskanta buffer, ke povas efektive esti malrapida. 275 00:11:14,630 --> 00:11:16,963 Se vi havas nomi malloc sub la kapuĉo kaj eble 276 00:11:16,963 --> 00:11:19,610 jen kion MySQL faras, tial certe tio povus esti la kazo. 277 00:11:19,610 --> 00:11:22,430 Kaj se vi pensas vojo reen al PSet-- aŭ eĉ 278 00:11:22,430 --> 00:11:26,340 semajnoj du, kiam ni faris aĵojn kiel duuma serĉo aŭ eĉ lineara serĉo, 279 00:11:26,340 --> 00:11:30,690 unu el la belaj aferoj pri ĉiu vorto en datumbazo aŭ ĉiu vorto en kolumno 280 00:11:30,690 --> 00:11:33,690 esti ĝuste la sama longo, eĉ se tutan faskon da tiuj karakteroj 281 00:11:33,690 --> 00:11:37,390 estas malplena, estas ke vi povos uzi hazarda aliro sur via datumo, dekstra? 282 00:11:37,390 --> 00:11:40,310 >> Se vi scias, ke ĉiu vorto estas 16 karakteroj for, 283 00:11:40,310 --> 00:11:46,460 vi povas uzi puntero aritmetiko, por tiel paroli, kaj iru kun ni 16, 32, 48, 64, 284 00:11:46,460 --> 00:11:49,589 kaj vi povas nur salti senprokraste uzante aritmetiko 285 00:11:49,589 --> 00:11:51,130 al cxiuj vortoj en via datumbazo. 286 00:11:51,130 --> 00:11:54,280 Dum se ĝi estas VARCHAR, Kion vi anstataŭe devas fari? 287 00:11:54,280 --> 00:11:55,960 >> [TELEFONO sonorado] 288 00:11:55,960 --> 00:11:58,680 >> Se ĝi estas VARCHAR, vi ne povas uzi hazarda aliro. 289 00:11:58,680 --> 00:12:01,341 Kion vi havas por serĉi aŭ fari? 290 00:12:01,341 --> 00:12:01,840 Yeah? 291 00:12:01,840 --> 00:12:03,240 >> Spektantaro: [inaudible] 292 00:12:03,240 --> 00:12:04,310 >> DAVID Malan: Rigardu tra la whole-- spuro 293 00:12:04,310 --> 00:12:06,518 tra la tutan liston serĉanta kio, plej versxajne? 294 00:12:06,518 --> 00:12:08,356 Kia speciala valoro? 295 00:12:08,356 --> 00:12:09,230 Spektantaro: [inaudible] 296 00:12:09,230 --> 00:12:11,105 DAVID Malan: Looking por la nula terminadores 297 00:12:11,105 --> 00:12:13,637 ke Demarco la disiĝo de vortoj. 298 00:12:13,637 --> 00:12:15,720 Do denove, tradeoff, kaj estas nenia dekstra respondon. 299 00:12:15,720 --> 00:12:18,380 Sed ĉi tiu estas kie, speciale kiam viaj uzantoj alveni al esti multaj 300 00:12:18,380 --> 00:12:21,700 kaj via ŝarĝo sur viaj serviloj, la nombro de homoj uzanta ĝi ricevas alta, 301 00:12:21,700 --> 00:12:23,650 tiuj estas vere netriviala decidoj. 302 00:12:23,650 --> 00:12:26,640 Do, ni povas lasi tiujn kiel tiu, sed ni rulumu malsupren super dekstren 303 00:12:26,640 --> 00:12:27,332 tie. 304 00:12:27,332 --> 00:12:30,290 Nun, ekzistas paro de kolumnoj kie ni havas por fari juĝon alvoko. 305 00:12:30,290 --> 00:12:35,170 Ĉu havas sencon por permesi uzanto nomo, uzanto salutnomo aŭ uzanto 306 00:12:35,170 --> 00:12:36,370 nomo, esti nulaj? 307 00:12:36,370 --> 00:12:37,610 Tio estas, nur malplenaj. 308 00:12:37,610 --> 00:12:40,360 Sentas iom sensenca, do mi estas Ne tuj kontroli tiujn skatolojn. 309 00:12:40,360 --> 00:12:42,670 Sed rezultu en datenbazo, vi povas diri, 310 00:12:42,670 --> 00:12:44,620 iu povas laŭvole havas tiun valoron. 311 00:12:44,620 --> 00:12:47,180 Tiu kolumno ne havas por fakte esti tie. 312 00:12:47,180 --> 00:12:48,570 >> Nun, ekzistas tiu falmenuo. 313 00:12:48,570 --> 00:12:50,810 Kaj rimarki mi ankoraŭ en la unua vico tien, 314 00:12:50,810 --> 00:12:52,520 do mi parolas salutnomo nun. 315 00:12:52,520 --> 00:12:56,290 Kaj ĝi rezultas ke datumbazon, kontraste simpla nura kalkultabelo, 316 00:12:56,290 --> 00:12:58,520 havas potencajn funkciojn nomita indeksoj. 317 00:12:58,520 --> 00:13:02,600 Kaj indico estas maniero de diri la datumbazo anticipe ke mi la homa 318 00:13:02,600 --> 00:13:03,900 am pli inteligenta ol vi. 319 00:13:03,900 --> 00:13:10,430 >> Mi scias kion specoj de demandoj, elektu aŭ enmeti aŭ forigi aŭ ĝisdatigo, 320 00:13:10,430 --> 00:13:13,182 ke mia kodo tuj finos supre faranta sur tiu datumbazo. 321 00:13:13,182 --> 00:13:14,390 Mi volas legi multajn datumojn. 322 00:13:14,390 --> 00:13:15,681 Mi volas enmeti multajn datumojn. 323 00:13:15,681 --> 00:13:17,530 Mi volas konstante forigi multajn datumojn. 324 00:13:17,530 --> 00:13:21,520 Se mi scias, ke mi tuj estos aliranta kampo kiel Uzulnomo multe, 325 00:13:21,520 --> 00:13:24,770 Mi povas diri al la preventa datenbazo, mi scias pli ol vi, 326 00:13:24,770 --> 00:13:29,220 kaj mi volas dekreton vi devus indekso ĉi kampo. 327 00:13:29,220 --> 00:13:33,200 Kie indeksante kampon aŭ kolumno signifas ke la datumbazo anticipe 328 00:13:33,200 --> 00:13:37,040 devus prunti kelkajn ideojn de, kiel, semajno kvar kaj kvin kaj ses el CS50 329 00:13:37,040 --> 00:13:39,240 kaj fakte konstrui supren iu kiel duuma serĉo 330 00:13:39,240 --> 00:13:41,560 arbo aŭ io kutime nomas B arbo 331 00:13:41,560 --> 00:13:43,410 ke vi lernus en klaso kiel CS124 332 00:13:43,410 --> 00:13:46,710 ĉe Harvard, la algoritmoj klaso, aŭ ajnan numeron de aliaj lokoj. 333 00:13:46,710 --> 00:13:49,570 >> La datumbaza kaj la beleta homoj kiu implementado ĝin 334 00:13:49,570 --> 00:13:53,880 estos eltrovi kiel memori ke tablo de informoj 335 00:13:53,880 --> 00:13:57,061 en memoro por ke serĉoj kaj aliaj operacioj estas super rapida. 336 00:13:57,061 --> 00:13:58,060 Vi ne devas fari tion. 337 00:13:58,060 --> 00:14:00,640 Vi ne devas apliki lineara serĉo aŭ duuma serĉo 338 00:14:00,640 --> 00:14:03,300 aŭ kunfandi varo aŭ selektado varon, neniun el tio. 339 00:14:03,300 --> 00:14:06,590 La datumbazo faras ĝin por vi, se vi diros ĝi preemptively indeksi ĉi kampo. 340 00:14:06,590 --> 00:14:09,100 >> Kaj vi povas vidi ankaŭ, ekzistas iuj aliaj karakterizaĵoj 341 00:14:09,100 --> 00:14:11,010 ni povas diri al la datumbazo observigi. 342 00:14:11,010 --> 00:14:16,431 Kion povus signifi se mi elektas Unika de ĉi tiu menuo, ĝuste intuicie? 343 00:14:16,431 --> 00:14:16,930 Yeah? 344 00:14:16,930 --> 00:14:17,889 >> Spektantaro: [inaudible] 345 00:14:17,889 --> 00:14:19,930 DAVID Malan: Yeah, la salutnomo devas esti unika. 346 00:14:19,930 --> 00:14:23,330 Ĉu tio estas bona afero aŭ malbona afero por datumbazo, por retejo kun uzantoj? 347 00:14:23,330 --> 00:14:24,965 Devus salutnomoj esti unika? 348 00:14:24,965 --> 00:14:25,880 Jes, verŝajne. 349 00:14:25,880 --> 00:14:27,800 Se tion la kampo ni uzas ensaluti, 350 00:14:27,800 --> 00:14:31,867 vi ne vere volas popolo havanta la sama sento aŭ la sama salutnomo. 351 00:14:31,867 --> 00:14:33,700 Do, ni povas havi la datumbazo observigi ke tiel 352 00:14:33,700 --> 00:14:37,880 ke nun en mia PHP kodo aŭ ajna lingvo, Mi ne devas, ekzemple, kontroli 353 00:14:37,880 --> 00:14:41,490 nepre faras ĉi salutnomo ekzistis antaŭ mi lasu iun registriĝi? 354 00:14:41,490 --> 00:14:46,690 La datumbazo ne permesos du homoj nomis Davido aŭ Malans registri en tiu kazo. 355 00:14:46,690 --> 00:14:50,030 >> Kaj kiel flanken, kvankam ĉi menuo nur permesas vin elekti unu, 356 00:14:50,030 --> 00:14:54,550 unika indekso estas unu tio estas indeksita por súper rapida agado, 357 00:14:54,550 --> 00:14:56,100 sed ankaŭ efikigas unikeco. 358 00:14:56,100 --> 00:14:58,850 Kaj ni revenos al kio la aliaj du signifas en nur momento. 359 00:14:58,850 --> 00:15:00,930 Dume, se mi iros al mia dua vico, kiu 360 00:15:00,930 --> 00:15:06,230 estas la uzanto nomo, mi devus specifi ke la nomo devus esti unika? 361 00:15:06,230 --> 00:15:09,550 Ne, ĉar vi certe povus have-- ekzistas neniu du Davido 362 00:15:09,550 --> 00:15:11,050 Malans en tiu ĉambro, plej probable. 363 00:15:11,050 --> 00:15:14,290 Sed se ni elektas alian nomon, ni certe havos kolizioj. 364 00:15:14,290 --> 00:15:16,130 >> Pensu reen al hash tabloj kaj similaj. 365 00:15:16,130 --> 00:15:18,604 Do, ni certe ne volas fari la nomo kampo unika. 366 00:15:18,604 --> 00:15:21,270 Do, ni ĵus tuj forlasi ke kiel haltostreko, haltostreko, haltostreko, nenio. 367 00:15:21,270 --> 00:15:22,660 Kaj mi tuj forlasi ĉio alia sola. 368 00:15:22,660 --> 00:15:25,035 Efektive, la plej multaj el tiuj kampoj ni ne devos zorgi pri. 369 00:15:25,035 --> 00:15:27,830 Kaj kiam mi estos preta savi tiun, se la interreto kunlaboru, 370 00:15:27,830 --> 00:15:35,032 Mi alklakas Konservi, kaj tre, tre, tre malrapide faras la datumbazo get savis. 371 00:15:35,032 --> 00:15:37,240 Kaj nun mi revenis al tiu interfaco, kiu koncedite, 372 00:15:37,240 --> 00:15:38,680 Estas superfortanta ĉe unua ekrigardo. 373 00:15:38,680 --> 00:15:42,450 Sed ĉiuj mi tuj faros estas klako sur la vorto Uzantoj ĉe pinto maldekstra. 374 00:15:42,450 --> 00:15:47,630 Mi tuj iros tien, klaku Uzantoj kaj defaŭlte, ĝi 375 00:15:47,630 --> 00:15:50,180 ekzekutis iuj SQL, sed pli sur tiu en momento. 376 00:15:50,180 --> 00:15:52,654 Ĉi tie estas nur resumo de kion mi faris. 377 00:15:52,654 --> 00:15:55,320 Kaj ne zorgu ke vi vidos mencii de latina kaj sveda tie. 378 00:15:55,320 --> 00:16:00,490 Tiuj estas nur la defaŭlta fiksoj, ĉar MySQL origine, 379 00:16:00,490 --> 00:16:04,000 aŭ PHP MyAdmin, unu el la du okazis esti skribita de iuj svedaj personoj. 380 00:16:04,000 --> 00:16:06,100 Sed estas palaj en nia kazo tie. 381 00:16:06,100 --> 00:16:08,280 >> Bone, do kial ĉi ĉiuj interesa? 382 00:16:08,280 --> 00:16:13,050 Rezultas, mi povas enmeti datumojn en datumbazo skribante kodon. 383 00:16:13,050 --> 00:16:15,940 Kaj mi iras antaŭen kaj en mian dosieron ĉi tie, mi estas 384 00:16:15,940 --> 00:16:19,000 tuj iros antaŭen kaj ŝajnigi kiel ĉi estas telegramis al la datenbazo, kiu 385 00:16:19,000 --> 00:16:23,040 ne estas en la momento, sed tuj kiam ni atingos problemo starigis sep. 386 00:16:23,040 --> 00:16:25,640 Kaj mi tuj iros antaŭen kaj ekzekuti funkcio nomita query, 387 00:16:25,640 --> 00:16:28,730 kiun ni donos al vi en problemo starigis sep la dissendo kodo, ke 388 00:16:28,730 --> 00:16:31,490 prenas almenaŭ unu argumenton, Kiu estas nur ĉeno. 389 00:16:31,490 --> 00:16:33,460 Kordo de SQL-kodo. 390 00:16:33,460 --> 00:16:36,700 Do, vi estas estonta lerni kiel skribi Strukturita Query Language. 391 00:16:36,700 --> 00:16:41,270 >> Se mi volas enmeti novan vicon en miajn datumbazo ĉar iu prezentis 392 00:16:41,270 --> 00:16:47,600 formo al mia kodo, mi volus laŭvorte skribi INSERT INTO uzantoj la jenaj 393 00:16:47,600 --> 00:16:52,800 kampoj: uzantnomo, komo, nomo, la valoroj, 394 00:16:52,800 --> 00:16:57,480 kaj nun mi devas enmeti io kiel Malan kaj citaĵo, 395 00:16:57,480 --> 00:17:01,490 unquote 'Davido Malan.' Kaj nun eĉ por tiuj nekonataj kun SQL, 396 00:17:01,490 --> 00:17:07,830 kial mi uzas solan citaĵoj ene de tiu verda kordo? 397 00:17:07,830 --> 00:17:10,790 398 00:17:10,790 --> 00:17:13,040 Kio povus esti la kialo tie? 399 00:17:13,040 --> 00:17:14,609 >> Rimarku mi ko-intervención subprema du lingvoj. 400 00:17:14,609 --> 00:17:18,099 Query estas PHP funkcio, sed prenas argumenton. 401 00:17:18,099 --> 00:17:21,740 Kaj tiu argumento devas mem esti skribita en alia lingvo nomata 402 00:17:21,740 --> 00:17:23,500 SQL, Strukturita Query Language. 403 00:17:23,500 --> 00:17:27,940 Do, ĉio, kion mi ĵus reliefigis tie 404 00:17:27,940 --> 00:17:30,380 estas tiu lingvo nomata SQL. 405 00:17:30,380 --> 00:17:36,290 Do, kio estas kun la citiloj, same rapidan prudento ĉeko? 406 00:17:36,290 --> 00:17:37,324 Antaŭen. 407 00:17:37,324 --> 00:17:37,990 Ili estas kordoj. 408 00:17:37,990 --> 00:17:41,590 Do, citaĵo, unquote Malan kaj citaĵo, unquote Davido Malan estas ŝnuroj. 409 00:17:41,590 --> 00:17:45,210 Kaj ĝuste pensas intuicie nun, sciante kion vi scias pri C kaj PHP, 410 00:17:45,210 --> 00:17:50,220 kial mi ne faros tion, kion mi kutime uzita citiloj por kordoj? 411 00:17:50,220 --> 00:17:52,310 Kial mi ne volas fari tion? 412 00:17:52,310 --> 00:17:52,810 Yeah? 413 00:17:52,810 --> 00:17:53,685 >> Spektantaro: [inaudible] 414 00:17:53,685 --> 00:17:56,695 415 00:17:56,695 --> 00:17:57,570 DAVID Malan: Ĝuste. 416 00:17:57,570 --> 00:17:59,653 Ĉar mi jam uzis citiloj survoje 417 00:17:59,653 --> 00:18:01,929 eksteren de la argumento al la PHP-a funkcio, 418 00:18:01,929 --> 00:18:03,470 Mi nur konfuzas la interpretisto. 419 00:18:03,470 --> 00:18:04,860 Ĝi ne scias, ĉu tiuj iri kune? 420 00:18:04,860 --> 00:18:05,735 Ĉu tiuj iri kune? 421 00:18:05,735 --> 00:18:06,810 Ĉu tiuj iri kune? 422 00:18:06,810 --> 00:18:08,070 Do, mi alterni anstataŭe. 423 00:18:08,070 --> 00:18:11,784 >> Aŭ mi povus fari ion kiel tiu, backslash citaĵo aŭ backslash citaĵo. 424 00:18:11,784 --> 00:18:14,200 Sincere, ke ĵus komencas akiri tre nelegebla kaj malbela. 425 00:18:14,200 --> 00:18:16,790 Sed tio sukcesus la sama rezulto ankaŭ. 426 00:18:16,790 --> 00:18:19,760 >> Do, se mi estus ekzekuti ĉi query nun, ni vidu kio okazas. 427 00:18:19,760 --> 00:18:22,740 Mi tuj iros antaŭen nun kaj prefere ol ekzekuti la PHP kodon, kiun 428 00:18:22,740 --> 00:18:24,610 Kie vi ludos en problemo starigis sep, 429 00:18:24,610 --> 00:18:27,200 Mi tuj anstataŭ iri al PHP MyAdmin. 430 00:18:27,200 --> 00:18:29,770 Kaj mi permane iranta iri al la SQL langeto, 431 00:18:29,770 --> 00:18:31,580 kaj lasu min zomi en sur la interfaco. 432 00:18:31,580 --> 00:18:34,007 Kaj mi tuj almeti en la afero mi ĵus tajpis. 433 00:18:34,007 --> 00:18:36,090 Kaj la koloro kodigo havas ŝanĝis iomete nun, 434 00:18:36,090 --> 00:18:38,750 nur ĉar la programo formatojn aferojn iom malsame. 435 00:18:38,750 --> 00:18:41,960 Sed rimarki ke ĉiuj mi faris estas mi diris, enmeti en Uzantoj. 436 00:18:41,960 --> 00:18:45,790 Mi specifita do en komo apartigitaj parenteza listo la du 437 00:18:45,790 --> 00:18:48,850 kampoj, ke mi volas enmeti kaj tiam mi laŭlitere diris valoroj 438 00:18:48,850 --> 00:18:51,510 sekvis alia paren, kaj tiam la du valoroj 439 00:18:51,510 --> 00:18:53,520 Mi volas plug-in, kaj nun por bonan mezuron, 440 00:18:53,520 --> 00:18:55,010 Mi metos punktokomo ĉe la fino. 441 00:18:55,010 --> 00:18:56,570 Do, tio ne C. Tio ne PHP. 442 00:18:56,570 --> 00:18:59,970 Jen nun SQL, kaj min alglui ĝin en ĉi ttt bazita interfaco kiu 443 00:18:59,970 --> 00:19:02,710 nur tuj lasu min, Kiam mi klakas Iru 444 00:19:02,710 --> 00:19:08,060 ekzekuti ĉi konsulto sur la datumbazo kurante ene de CS50 IDE. 445 00:19:08,060 --> 00:19:09,470 >> Do tio estas bona. 446 00:19:09,470 --> 00:19:12,520 Avizo kiu diris unu vico enmetita, iris super rapida, 447 00:19:12,520 --> 00:19:15,190 0,0054 sekundoj enigi tiun datumon. 448 00:19:15,190 --> 00:19:16,610 Do, tio sonas sufiĉe sana. 449 00:19:16,610 --> 00:19:19,350 Ĝi reformatigita mia query por min tie ĵus por vidi ĝin 450 00:19:19,350 --> 00:19:21,730 en ia koloro kodita versio. 451 00:19:21,730 --> 00:19:24,540 Sed nun se mi klakas Foliumu, rimarki ke, eĉ 452 00:19:24,540 --> 00:19:29,070 kvankam ekzistas multe de malordo sur la ekrano, mia tablo nun havas du vicojn. 453 00:19:29,070 --> 00:19:30,700 >> Do, lasu min antaŭeniri kaj fari alian. 454 00:19:30,700 --> 00:19:33,760 Anstataŭ tio, lasu min iri al la SQL langeto denove. 455 00:19:33,760 --> 00:19:40,723 Kaj cxifoje mi enmeti ion kiel Rob kaj lia nomo estos Rob Bowden. 456 00:19:40,723 --> 00:19:42,330 Bowden. 457 00:19:42,330 --> 00:19:44,040 Ni alklakas Konservi. 458 00:19:44,040 --> 00:19:46,140 Oops, prefere Iru. 459 00:19:46,140 --> 00:19:48,890 >> Klakas denove, kaj nun rimarkas mi havas du vicojn. 460 00:19:48,890 --> 00:19:52,390 Do, tio estas nur maniero pli kompleksa maniero de malfermado Google Spreadsheets 461 00:19:52,390 --> 00:19:54,010 kaj simple tajpante vico en kolumno. 462 00:19:54,010 --> 00:19:57,070 Sed kio estas ŝlosilo estas ke Ni nun havas la sintakson 463 00:19:57,070 --> 00:20:00,220 kun kiu skribi kodon por ke finfine, ni povis reale 464 00:20:00,220 --> 00:20:01,790 fari iun kaj ĉi. 465 00:20:01,790 --> 00:20:05,380 Memoru ke PHP apogoj super tutmonda variabloj. 466 00:20:05,380 --> 00:20:08,415 >> Kio estas interne de dolaro subskribi substreko GET en PHP? 467 00:20:08,415 --> 00:20:10,290 Ni prenis rigardi unu aŭ du simplaj ekzemploj. 468 00:20:10,290 --> 00:20:15,640 Kaj en PSet6, memoras vi havas saluton skalara PHP kiu uzas tiun variablon. 469 00:20:15,640 --> 00:20:17,870 Kio iras tien? 470 00:20:17,870 --> 00:20:21,015 Aŭ kio estas? 471 00:20:21,015 --> 00:20:22,522 Iom pli laŭte. 472 00:20:22,522 --> 00:20:23,790 >> Spektantaro: [inaudible] 473 00:20:23,790 --> 00:20:25,030 >> DAVID Malan: Estas neĝo semo de tabelo, kiu 474 00:20:25,030 --> 00:20:27,714 estas nur fantazio maniero diri al tabelo kiu havas ŝlosilan valoron paroj. 475 00:20:27,714 --> 00:20:28,880 Kaj la klavoj ne estas nombraj. 476 00:20:28,880 --> 00:20:30,420 Ili estas vortoj aŭ kordojn. 477 00:20:30,420 --> 00:20:32,750 Kaj specife, kion Estas tiuj ŝlosilaj valoro paroj? 478 00:20:32,750 --> 00:20:35,110 Kie ili estas? 479 00:20:35,110 --> 00:20:35,620 Pardonon? 480 00:20:35,620 --> 00:20:36,994 >> Spektantaro: [inaudible] 481 00:20:36,994 --> 00:20:37,660 DAVID Malan: Ne? 482 00:20:37,660 --> 00:20:40,700 Kie tiuj ŝlosilo valoro paroj venas? 483 00:20:40,700 --> 00:20:42,490 Diru denove? 484 00:20:42,490 --> 00:20:44,610 Denove? 485 00:20:44,610 --> 00:20:46,472 Ĉu mi la sola aŭdo ion? 486 00:20:46,472 --> 00:20:47,810 >> [Ridado] 487 00:20:47,810 --> 00:20:49,042 >> Tio pravas, jes? 488 00:20:49,042 --> 00:20:50,435 >> Spektantaro: [inaudible] 489 00:20:50,435 --> 00:20:52,560 DAVID Malan: Yeah, Ili veni de la query string. 490 00:20:52,560 --> 00:20:55,380 Do, se vi malantaŭenigi ĝustatempe al kiam ni ludis kun Google 491 00:20:55,380 --> 00:20:59,600 kaj ni iris al Google.com oblikvo serĉo demandosigno q egalas katoj, 492 00:20:59,600 --> 00:21:03,550 se mi batis Enter kaj se Google estis implementado en PHP, 493 00:21:03,550 --> 00:21:07,017 PHP kodo kiu Google skribis havus aliron al dolaro signo 494 00:21:07,017 --> 00:21:11,600 substreki GET interne de kiu Estas ŝlosila nomita Q kaj valoro 495 00:21:11,600 --> 00:21:17,680 vokis katojn ke povas tiam uzi kutimis fari faktan serĉo kun. 496 00:21:17,680 --> 00:21:20,860 >> Do, fakte, kion mi tuj do nun estas reiri al mia PHP kodo 497 00:21:20,860 --> 00:21:23,140 ke vi denove vidos pli de en PSet7. 498 00:21:23,140 --> 00:21:25,440 Kaj anstataŭ ŝtopanta en malmola kodita valoroj kiujn 499 00:21:25,440 --> 00:21:27,630 Ne ŝajnas kiel tre dinamikaj retejo, 500 00:21:27,630 --> 00:21:30,680 Mi tuj donos al vi teaser de kion via reala kodo farus. 501 00:21:30,680 --> 00:21:32,854 Vi metus en du demandosignojn ŝatas tion. 502 00:21:32,854 --> 00:21:34,270 Mi ne scias, kion la uzantnomo estas. 503 00:21:34,270 --> 00:21:37,390 Mi ne scias, kion la nomo tuj estos, 504 00:21:37,390 --> 00:21:39,470 sed mi scias ke mi povas akiri ilin dinamike. 505 00:21:39,470 --> 00:21:43,420 >> Do, se la kodo ni skribas nun estas la kodo kurante sur Google serviloj, 506 00:21:43,420 --> 00:21:46,940 aŭ se tio estas saluton punkto PHP, kiu venas kun PSet6, 507 00:21:46,940 --> 00:21:48,650 Mi tuj pasos en la konsulto funkcio 508 00:21:48,650 --> 00:21:51,450 nur kiel printf, du aliajn argumentojn. 509 00:21:51,450 --> 00:21:57,120 GET, citaĵo, unquote uzantnomo, kaj GET, citaĵo, unquote nomo. 510 00:21:57,120 --> 00:22:00,720 Kaj nun, rimarki kion la ĝenerala strukturo estas tie. 511 00:22:00,720 --> 00:22:03,320 Mi havas maldekstre mana flanko de la alvoko, 512 00:22:03,320 --> 00:22:05,480 tiu funkcio nomita query en PHP. 513 00:22:05,480 --> 00:22:08,160 Mi ankoraŭ havas kiel unua argumento, nur ŝnuron de teksto. 514 00:22:08,160 --> 00:22:11,000 >> Sed ke kordoj de teksto skribita en lingvo nomita SQL. 515 00:22:11,000 --> 00:22:12,616 Kaj sincere, ĝi ne estas granda lingvo. 516 00:22:12,616 --> 00:22:14,990 Ni nur tuj paroli pri ĝi formale hodiaŭ, vere. 517 00:22:14,990 --> 00:22:17,031 Kaj tiam en problemo aro sep, estas relative 518 00:22:17,031 --> 00:22:18,800 kelkaj trajtoj kiuj ni estas tuj utiligi. 519 00:22:18,800 --> 00:22:22,530 La demandosignojn, tamen, signifas konekti valoron tie kaj plug en alia valoro 520 00:22:22,530 --> 00:22:23,130 tie. 521 00:22:23,130 --> 00:22:26,010 Kaj rimarki, mi preterlasis kio el la tuta quote-- malbenita 522 00:22:26,010 --> 00:22:30,470 it-- ĉirkaŭ la citaĵo markas ĉi tempo. 523 00:22:30,470 --> 00:22:34,930 Mi preterlasis la citaĵo markojn ĉirkaŭ la demandosigno, 524 00:22:34,930 --> 00:22:36,410 bedaŭras, ĉifoje. 525 00:22:36,410 --> 00:22:38,870 >> Do, kio estas bela pri ĉi demandosigno trajto kiu 526 00:22:38,870 --> 00:22:42,830 PHP inklinas apogi, Ruby kaj Python kaj aliaj lingvoj, 527 00:22:42,830 --> 00:22:45,730 ĉi nur signifas ŝtopilo en iuj taksos tie kaj vi scias kion? 528 00:22:45,730 --> 00:22:48,300 Vi elkompreni se uzi solan citaĵoj aŭ duobla citaĵoj. 529 00:22:48,300 --> 00:22:50,966 Ne ĝenu min kun tiuj intelekte seninteresa detaloj. 530 00:22:50,966 --> 00:22:53,780 Sed, certigu ĝi estas korekta por ke mia kodo estas finfine 531 00:22:53,780 --> 00:22:57,010 operacia kaj sekura, kiu havos signifon antaŭ longe. 532 00:22:57,010 --> 00:23:00,460 >> Nun, kiom da argumentoj entute, nur por esti klara, estas la konsulto funkcio preno? 533 00:23:00,460 --> 00:23:05,240 534 00:23:05,240 --> 00:23:07,581 Ĉiu volas voĉdoni por pli ol du? 535 00:23:07,581 --> 00:23:08,080 Tri? 536 00:23:08,080 --> 00:23:10,001 Certe, kial? 537 00:23:10,001 --> 00:23:10,920 Kial tri? 538 00:23:10,920 --> 00:23:12,305 >> Spektantaro: [inaudible] 539 00:23:12,305 --> 00:23:13,180 DAVID Malan: Ĝuste. 540 00:23:13,180 --> 00:23:14,610 La unua parto estas la kordo. 541 00:23:14,610 --> 00:23:18,640 La dua argumento estas dolaro signo substreki GET krampo uzantnomon. 542 00:23:18,640 --> 00:23:21,950 Kaj la tria argumento estas la samon, sed nur la nomon. 543 00:23:21,950 --> 00:23:24,590 Do alivorte, nun se mi havus ttt formo 544 00:23:24,590 --> 00:23:27,149 kiu devis teksto kampoj, unu por la uzanto salutnomo, 545 00:23:27,149 --> 00:23:29,690 unu por lia aŭ ŝia nomo, nur kiel vi vidus en retejo 546 00:23:29,690 --> 00:23:32,120 kiam vi registras por iu retejo, tio eble 547 00:23:32,120 --> 00:23:35,450 estu la kodo sur la dorso fino ke fakte faras la inserción nun 548 00:23:35,450 --> 00:23:37,220 en la datumbazo. 549 00:23:37,220 --> 00:23:40,870 >> Nun kontraste, ni rapide antaŭen. 550 00:23:40,870 --> 00:23:43,840 Supozu ke uzanto estas nun ensalutas, kaj vi volas 551 00:23:43,840 --> 00:23:48,860 skribi PHP kodo kiu kontrolas ĉu la persono kiu estas ĵus ensalutinta 552 00:23:48,860 --> 00:23:52,250 estas fakte uzanto, vi povas uzi sufiĉe simpla sintakso. 553 00:23:52,250 --> 00:23:55,832 Vi povas diri ELEKTU, ni diru Stelo, kie stelo signifas ĉion. 554 00:23:55,832 --> 00:23:57,540 Mi ne scias kion mi volas, do nur al mi 555 00:23:57,540 --> 00:24:01,585 ĉiuj kolumnoj de la tabelo nomata uzantoj kie, kaj tio estas agrabla. 556 00:24:01,585 --> 00:24:03,710 Elektu apogas kio estas nomata predikato, kiu estas 557 00:24:03,710 --> 00:24:06,630 kiel maniero de kvalifikanta kion vi volas. 558 00:24:06,630 --> 00:24:10,590 Kie salutnomo egalas citaĵo, unquote Malan. 559 00:24:10,590 --> 00:24:13,680 Do ankaŭ ĉi tie, mi enigita ene la argumento 560 00:24:13,680 --> 00:24:16,110 al PHP funkcio, linio de SQL-kodo. 561 00:24:16,110 --> 00:24:18,680 Kaj ke SQLa kodon ĉi tempo laŭvorte iri 562 00:24:18,680 --> 00:24:21,790 serĉi citaĵo, unquote Malan. 563 00:24:21,790 --> 00:24:24,420 >> Nun tio ne estas ĉiu, kiu estas utila, do mi tuj salti ke 564 00:24:24,420 --> 00:24:28,650 kaj mi tuj forsendos tiu beko de Brady, kaj iru 565 00:24:28,650 --> 00:24:30,990 kaj plug-in anstataŭ demandosigno tie. 566 00:24:30,990 --> 00:24:33,290 Do, nur por esti klara, kion do mia dua argumento 567 00:24:33,290 --> 00:24:37,480 estu se iu ĵus ensalutinta kaj mi volas kontroli ĉu li aŭ ŝi estas fakte 568 00:24:37,480 --> 00:24:39,265 uzanto? 569 00:24:39,265 --> 00:24:40,140 Spektantaro: [inaudible] 570 00:24:40,140 --> 00:24:40,890 DAVID Malan: Yeah. 571 00:24:40,890 --> 00:24:44,120 Mi aŭdas dolaro signo substreko GET citaĵo, unquote uzantnomon. 572 00:24:44,120 --> 00:24:50,040 Kaj ke devus reveni al mi iu el la vicoj en mia datumbazo 573 00:24:50,040 --> 00:24:51,986 kiuj havas salutnomon de Malan. 574 00:24:51,986 --> 00:24:54,860 Nun espereble, mi tuj reiros nulo se Malan neniam estis tie, 575 00:24:54,860 --> 00:24:56,290 aŭ se li havas. 576 00:24:56,290 --> 00:24:59,026 Mi ne devus reiri du aŭ tri aŭ kvar. 577 00:24:59,026 --> 00:24:59,526 Kial? 578 00:24:59,526 --> 00:25:00,220 >> Spektantaro: [inaudible] 579 00:25:00,220 --> 00:25:01,120 >> DAVID Malan: Mi diris unikan, dekstra? 580 00:25:01,120 --> 00:25:01,750 Simpla kialo. 581 00:25:01,750 --> 00:25:04,030 Mi pensis ĝi estas alvenis al esti unika, nur logike, 582 00:25:04,030 --> 00:25:07,940 vi povas nur havas nulo aŭ unu Malans en ĉi tiu aparta datumbazo tablo. 583 00:25:07,940 --> 00:25:10,965 Nun kiel flanken, nur do vi vidis ĝin, kvankam mi plu uzi GET 584 00:25:10,965 --> 00:25:14,350 kaj kvankam PSet6 nur uzita GET, vi certe povas havi POST. 585 00:25:14,350 --> 00:25:17,212 Kaj memoras ke Post estas alia tekniko por sendado informo 586 00:25:17,212 --> 00:25:19,170 de formo, sed ĝi ne montras supren en la URL. 587 00:25:19,170 --> 00:25:22,690 Ĝi estas iom pli sekuraj certe por aĵoj kiel salutnomoj kaj pasvortoj, 588 00:25:22,690 --> 00:25:25,210 kiu PSet7 estos, fakte, engaĝi. 589 00:25:25,210 --> 00:25:28,130 >> Do, ni faru tion en PHP MyAdmin kaj vidu kio okazas. 590 00:25:28,130 --> 00:25:30,020 Mi tuj iros al MySQL langeto. 591 00:25:30,020 --> 00:25:34,450 Kaj rimarki ke la defaŭlta valoro por PHP MyAdmin, nur por provi esti helpema, 592 00:25:34,450 --> 00:25:37,050 estas selekti stelo de uzantoj kie unu. 593 00:25:37,050 --> 00:25:39,430 Nu, unu estas ĉiam vera, do tiu havas la stultan efika 594 00:25:39,430 --> 00:25:40,400 de simple elektu ĉion. 595 00:25:40,400 --> 00:25:42,691 Sed mi tuj estos iom pli pedanta kaj permane 596 00:25:42,691 --> 00:25:45,920 tajpi el ELEKTU stelo de uzantoj. 597 00:25:45,920 --> 00:25:48,294 >> Nun teknike, vi povas citi la nomon de la tabloj. 598 00:25:48,294 --> 00:25:50,460 Ĝi estas malofta, ke vi devas, sed rimarki tiuj ne 599 00:25:50,460 --> 00:25:52,240 via normala citaĵoj sur Usono klavaro. 600 00:25:52,240 --> 00:25:54,760 Jen la tn backtick, kiu estas ĝenerale sur la supron maldekstra mano 601 00:25:54,760 --> 00:25:56,000 angulo de via klavaro. 602 00:25:56,000 --> 00:25:58,500 Sed estas malofta ke vi fakte bezonas zorgi pri tio, 603 00:25:58,500 --> 00:25:59,950 do mi simple preterlasi ilin ĉiuokaze. 604 00:25:59,950 --> 00:26:02,280 Do nun, lasu min iri antaŭen kaj batis iri. 605 00:26:02,280 --> 00:26:06,616 Kaj kiom da vicoj mi devus akiri reen kiam mi elektu stelon de uzantoj? 606 00:26:06,616 --> 00:26:08,407 >> Spektantaro: [inaudible] 607 00:26:08,407 --> 00:26:09,990 DAVID Malan: La nombro de vicoj, certas. 608 00:26:09,990 --> 00:26:12,390 Sed kiel multaj en tiu konkretan historion ĝuste nun? 609 00:26:12,390 --> 00:26:14,640 Du, ĉar ekzistis min kaj farigxis Rob. 610 00:26:14,640 --> 00:26:19,370 Do, se mi klakas Iru, mi vidas ke vide Mi alveninta reen ja du vicoj. 611 00:26:19,370 --> 00:26:22,060 Ekzistas multe de malordo sur la ekrano, sed mi nur vidas du vicoj. 612 00:26:22,060 --> 00:26:28,580 Kontraŭe, se mi faras tion denove kaj fari ELEKTU stelo de uzantoj, kie salutnomo 613 00:26:28,580 --> 00:26:31,840 egalas citaĵo, unquote Malan, nun se mi klakas Iru 614 00:26:31,840 --> 00:26:33,970 Mi nur tuj reiri unu vico. 615 00:26:33,970 --> 00:26:36,499 Kaj laste, se mi faras ion tiel, supozu 616 00:26:36,499 --> 00:26:38,290 ke mi ne gravas pri atingi ĉiu, 617 00:26:38,290 --> 00:26:41,020 kiu estas speco de sensignifa nun, ĉar tie estas nur du kolumnoj. 618 00:26:41,020 --> 00:26:43,103 Ne estas kiel mi elektanta grandega kvanto de datumoj. 619 00:26:43,103 --> 00:26:46,720 Eble mi antaŭeniru kaj ĉu SELECT nomo FROM 620 00:26:46,720 --> 00:26:51,990 uzantoj, kie salutnomo egalas Malan, kio estas agrabla pri SQLa honeste, 621 00:26:51,990 --> 00:26:54,290 estas ke ĝi vere nur faras kion vi diros ĝin fari. 622 00:26:54,290 --> 00:26:57,550 Estas bela konciza, sed vi laŭvorte nur sciigus tion kion vi volas fari. 623 00:26:57,550 --> 00:27:01,130 Elektu nomon de uzantoj kie la salutnomo egalas Malan. 624 00:27:01,130 --> 00:27:03,440 Kaj ĝi vere estas ke eksplicitaj. 625 00:27:03,440 --> 00:27:08,410 Do, nun se mi batis Iru kiom vicoj mi tuj reiri? 626 00:27:08,410 --> 00:27:10,770 Unu, ĉar ĝi estas nur Malan, espereble. 627 00:27:10,770 --> 00:27:13,100 Aŭ nulo se li ne tie, sed oni maksimume. 628 00:27:13,100 --> 00:27:17,610 >> Kaj kiom da kolumnoj Mi reiros? 629 00:27:17,610 --> 00:27:18,450 Kiom da kolumnoj? 630 00:27:18,450 --> 00:27:20,658 Ĉi tiu fojo, mi simple tuj akiri unu, ĉar mi ne 631 00:27:20,658 --> 00:27:22,380 elektu stelon, kiu estas ĉio. 632 00:27:22,380 --> 00:27:27,900 Nun mi elektante nur nomo, do mi nur reiri unu kolumno kaj unu vico. 633 00:27:27,900 --> 00:27:31,730 Kaj ĝi aspektas ia taŭge ridindaj, nur rigardante super 634 00:27:31,730 --> 00:27:33,060 malgranda kiel tiu. 635 00:27:33,060 --> 00:27:34,290 Do, kio vere okazas? 636 00:27:34,290 --> 00:27:36,890 Kiam vi ekzekuti SQLa query uzante unuaranga, 637 00:27:36,890 --> 00:27:38,700 kio vi fariĝas reen de la datumbazo 638 00:27:38,700 --> 00:27:42,970 estas kiel tabulo temporal kun vicoj kaj kolumnoj, eble, 639 00:27:42,970 --> 00:27:46,260 sed ke preterlasi ion, kio ne vere elektitaj de vi. 640 00:27:46,260 --> 00:27:49,010 Do, estas kiel se iu havis grandan kalkultabelo de ĉiuj studentoj 641 00:27:49,010 --> 00:27:51,610 registritaj por iuj studenta grupo, kaj vi diras, 642 00:27:51,610 --> 00:27:55,097 donu al mi ĉiujn la unuajarulo kiu havas registrita por nia studenta grupo, kio 643 00:27:55,097 --> 00:27:56,930 via kolego en la studenta grupo plenumadu 644 00:27:56,930 --> 00:27:58,430 Estas ili povis nur transdoni vi la tutan tabelon. 645 00:27:58,430 --> 00:27:59,742 Tio estas kiel diri unuaranga stelo. 646 00:27:59,742 --> 00:28:02,200 Kaj ĝi estas iom ĝena se vi nur volis ke la unuajarulo. 647 00:28:02,200 --> 00:28:05,640 Kaj do, se vi anstataŭe diris, unuaranga stelo el datumbazo tablo 648 00:28:05,640 --> 00:28:08,470 kie jaro egalas citaĵo, unquote unuajarulo, 649 00:28:08,470 --> 00:28:10,810 ĝi estas kvazaŭ via amiko en la studenta grupo 650 00:28:10,810 --> 00:28:13,770 laŭvorte reliefigita kaj kopiitaj nur la unuajarulo vicoj, 651 00:28:13,770 --> 00:28:16,780 pasted ilin en novan Google Kalkultabelo aŭ Excel-dosiero, 652 00:28:16,780 --> 00:28:18,860 kaj enmanigis vin reen la rezulta dosiero nur. 653 00:28:18,860 --> 00:28:21,710 Jen ĉio tio okazas sur koncepte tie. 654 00:28:21,710 --> 00:28:23,920 >> Do en la fino, ni povas fari iu bela imago aferoj 655 00:28:23,920 --> 00:28:26,560 stokante aferojn kiel salutnomoj kaj pasvortoj kaj similaj. 656 00:28:26,560 --> 00:28:30,310 Sed, verŝajne, ni devus fari iom malsame ol ĉi. 657 00:28:30,310 --> 00:28:34,750 Ĝi ne estas ke nur inteligentaj stoki salutnomon kaj pasvorton. 658 00:28:34,750 --> 00:28:37,790 Iu antaŭe, mi pensas malsupren tie, sugestis IRU. 659 00:28:37,790 --> 00:28:40,787 Nun IRU povus esti kiel Harvard ID aŭ Yale Net IRU, 660 00:28:40,787 --> 00:28:42,870 sed povus esti ecx pli simple en nia datumbazo kazo. 661 00:28:42,870 --> 00:28:45,120 Kaj efektive, la komuna kazo estas havi alian kolumnon. 662 00:28:45,120 --> 00:28:46,953 Kaj mi tuj iri antaŭen kaj redakti mia tablo. 663 00:28:46,953 --> 00:28:49,521 Kaj se vi amuziĝu kun tiu interfaco por PSet7, 664 00:28:49,521 --> 00:28:51,770 vi vidos ke vi povas kontroli tiun butonon tie kaj aldoni 665 00:28:51,770 --> 00:28:53,750 kampo komence de la tablo. 666 00:28:53,750 --> 00:28:56,720 Kaj nun se mi klakas Go, ĝi tuj doni al mi unu el tiuj formoj 667 00:28:56,720 --> 00:28:57,600 de antaŭe. 668 00:28:57,600 --> 00:29:00,170 Mi tuj aldonu kampon vokis ID. 669 00:29:00,170 --> 00:29:03,070 Kaj mi tuj faras ĝin nombran tipon. 670 00:29:03,070 --> 00:29:05,362 >> Mi havas tutan faskon de valoroj por numerics. 671 00:29:05,362 --> 00:29:08,677 Mi simple tuj elekti INT kaj Ne maltrankviliĝu pri la malsimilajn grandecojn. 672 00:29:08,677 --> 00:29:10,510 Mi ne devas specifi longitudon aŭ valoron, 673 00:29:10,510 --> 00:29:13,710 ĉar ĝi tuj estu 32 bitoj negrave kio. 674 00:29:13,710 --> 00:29:16,070 Atributoj, ni ne vidis antaŭe. 675 00:29:16,070 --> 00:29:18,410 Ajna intereso en iu el tiuj menuo opcioj ĉi tempo? 676 00:29:18,410 --> 00:29:21,890 677 00:29:21,890 --> 00:29:23,745 Por int? 678 00:29:23,745 --> 00:29:24,620 Kion vi proponas? 679 00:29:24,620 --> 00:29:27,350 680 00:29:27,350 --> 00:29:28,445 Neniu? 681 00:29:28,445 --> 00:29:29,570 Ĉu iu el tiuj havas sencon? 682 00:29:29,570 --> 00:29:30,536 Yeah. 683 00:29:30,536 --> 00:29:31,900 Yeah, sensigna, dekstra? 684 00:29:31,900 --> 00:29:35,930 >> Ĝenerale, se ni tuj donu ĉiuj unikan numeron, kiu 685 00:29:35,930 --> 00:29:38,200 estas kie ĉi rakonto estas irante, mi vere volas nur 686 00:29:38,200 --> 00:29:41,919 persono al havi la numeron kiel nulon kaj unu kaj du kaj tri kaj kvar. 687 00:29:41,919 --> 00:29:43,710 Mi ne bezonas pritrakti kun negativaj nombroj. 688 00:29:43,710 --> 00:29:45,210 Ĝi nur ŝajnas kiel troa komplikeco. 689 00:29:45,210 --> 00:29:48,470 Mi volas kvar miliardoj eblaj valoroj, ne kvar miliardoj eblaj valoroj, 690 00:29:48,470 --> 00:29:50,699 do mi nur duobligis la kapablo de mia INT. 691 00:29:50,699 --> 00:29:53,490 Kiel flanken, se vi volas rilatigi ĉi al io kiel Facebook, 692 00:29:53,490 --> 00:29:56,190 reen en varo de mia tago Facebook unua eliris, 693 00:29:56,190 --> 00:29:59,510 Mi kredas kion ili uzante en lia MySQL datenbazo 694 00:29:59,510 --> 00:30:02,856 stoki uzanto identigilon, estis nur INT. 695 00:30:02,856 --> 00:30:05,230 Sed kompreneble ekzistas multe de realaj homoj en la mondo. 696 00:30:05,230 --> 00:30:07,438 Ekzistas multe de falsaj Facebook kontoj en la mondo. 697 00:30:07,438 --> 00:30:11,701 Kaj tial fine, Facebook superfluis la grandeco de int, kvar miliardoj 698 00:30:11,701 --> 00:30:12,200 valoron. 699 00:30:12,200 --> 00:30:15,032 Tial, se vi rigardas ĉirkaŭe kaj ekzistas retejoj 700 00:30:15,032 --> 00:30:16,740 kiu povas diri al vi kion Via unika ID estas. 701 00:30:16,740 --> 00:30:19,781 Kaj se vi neniam elektis salutnomon en Facebook, vi vidos vian unikan ID. 702 00:30:19,781 --> 00:30:23,080 Mi kredas ke estas profilon skalara PHP demandosigno ID egalas ion. 703 00:30:23,080 --> 00:30:27,210 Ke estas nun io kiel granda INT, aŭ longa longa se vi volas, 704 00:30:27,210 --> 00:30:29,700 kiu estas 64-bita valoro aŭ io komparebla. 705 00:30:29,700 --> 00:30:33,620 >> Do, eĉ en la reala mondo faras cxi temoj finfine foje gravas. 706 00:30:33,620 --> 00:30:37,600 Kaj ĝi rezultas tie, se mi donante ĉiujn miajn uzantoj unika ID, 707 00:30:37,600 --> 00:30:41,750 Mi volas esti super eksplicita kaj minimume fari Use unika. 708 00:30:41,750 --> 00:30:44,750 Sed rezultu ke estas unu peco de nomenclatura hodiaŭ tro 709 00:30:44,750 --> 00:30:46,470 jen primara ŝlosilo. 710 00:30:46,470 --> 00:30:49,800 Se vi desegnante datumbazo tablo kaj vi scias anticipe 711 00:30:49,800 --> 00:30:55,580 ke unu el la kolumnoj en tiu tabelo devus kaj estos unike identigi vicoj 712 00:30:55,580 --> 00:30:58,500 en la tablon, vi volas entajpi ĝin kaj diri la datumbazo, 713 00:30:58,500 --> 00:31:00,250 tio estas mia primara ŝlosilo. 714 00:31:00,250 --> 00:31:02,110 Tie povus esti duobligitaj en aliaj kampoj, 715 00:31:02,110 --> 00:31:06,330 sed mi diras al la datumbazo tiu ĉi Mia primara, mia plej grava kampo, 716 00:31:06,330 --> 00:31:08,420 ke estas garantiita esti unika. 717 00:31:08,420 --> 00:31:09,660 >> Nun, ĉi tio ŝajnas redunda. 718 00:31:09,660 --> 00:31:13,830 Mi nun proponas, ke ni aldoni, klakante Konservu tie, 719 00:31:13,830 --> 00:31:17,210 kampo called-- kaj mi tuj iri antaŭen kaj klaku AI, 720 00:31:17,210 --> 00:31:19,720 ni revenos al kiu tre frue, Save. 721 00:31:19,720 --> 00:31:22,540 Mi proponas nun ke Mia tablo aspekti ĉi. 722 00:31:22,540 --> 00:31:26,305 Mi havas int kampo nomata ID, char kampo nomita Uzulnomo: 723 00:31:26,305 --> 00:31:31,100 a VARCHAR kampo nomata nomo, sed ID, se ĝi estas primara kaj tial unika, 724 00:31:31,100 --> 00:31:33,760 kial mi simple malŝparos tempo enkondukante kio 725 00:31:33,760 --> 00:31:39,140 efike estas dua unika kampo nomata ID kiu estas int? 726 00:31:39,140 --> 00:31:41,980 >> Uzulnomo: revokon, estis jam solaj, ni diris. 727 00:31:41,980 --> 00:31:45,350 Do simple logike, vi ne bezonas ajna datumbazo sperton al kialo 728 00:31:45,350 --> 00:31:47,570 tra ĉi, kial eble mi enkondukis 729 00:31:47,570 --> 00:31:50,065 int kiel mian solan ensalutilo tiel? 730 00:31:50,065 --> 00:31:52,740 731 00:31:52,740 --> 00:31:53,930 Kio this-- rediras? 732 00:31:53,930 --> 00:31:55,580 >> Spektantaro: [inaudible] 733 00:31:55,580 --> 00:31:59,534 >> DAVID Malan: Hazarda aliro estas pli facila, kial? 734 00:31:59,534 --> 00:32:00,410 >> Spektantaro: [inaudible] 735 00:32:00,410 --> 00:32:02,367 DAVID Malan: Jes, ĝi estas nur aliranta nombroj. 736 00:32:02,367 --> 00:32:04,750 Do, se vi pensas pri tiu vere estas tabulo, kiel tabelo, 737 00:32:04,750 --> 00:32:07,690 nun mi havas unika ensalutiloj ke mi povas salti ĉirkaŭe. 738 00:32:07,690 --> 00:32:11,520 Kaj pli bona ol tio ankoraŭ estas ke kiom granda estas int tuj estos denove? 739 00:32:11,520 --> 00:32:14,450 740 00:32:14,450 --> 00:32:15,800 32 bitoj aŭ kvar bitokoj. 741 00:32:15,800 --> 00:32:17,750 >> Kiom granda estas mia uzantonomo tuj estos? 742 00:32:17,750 --> 00:32:20,310 743 00:32:20,310 --> 00:32:21,990 Maksimume? 744 00:32:21,990 --> 00:32:22,880 16 bajtoj. 745 00:32:22,880 --> 00:32:26,080 >> Do, se vi vere zorgas pri la rendimenton de via kodo, 746 00:32:26,080 --> 00:32:31,390 pensas reen al PSet5, vi preferas serĉi kvar bajto valoro aŭ 16 747 00:32:31,390 --> 00:32:32,240 bajto valoron, ĉu ne? 748 00:32:32,240 --> 00:32:33,810 Vere estas tiel simpla kiel tio. 749 00:32:33,810 --> 00:32:38,060 Vi devas fari kvaroblon laboro serĉi salutnomoj ĉar tiuj 750 00:32:38,060 --> 00:32:38,830 estas 16 bajtoj. 751 00:32:38,830 --> 00:32:41,320 Do, vi devas laŭvorte kompari ĉiuj 16 bajtoj por esti 752 00:32:41,320 --> 00:32:43,140 certa jes, tiu estas uzantonomo mi volas. 753 00:32:43,140 --> 00:32:46,610 Dum por INT, vi povas faru ĝin kun nur kvar bajtoj. 754 00:32:46,610 --> 00:32:49,212 >> Kaj kiel flanken por tiuj interesita en komputila aparataro, 755 00:32:49,212 --> 00:32:52,420 ĝi rezultas vi povas adapti io kiel int aŭ 32-bita valoro en iu 756 00:32:52,420 --> 00:32:55,330 nomata registro en komputilo CPU, kiu signifas ĝi estas super, 757 00:32:55,330 --> 00:32:58,400 super rapida, eĉ ĉe la plej malalta nivelo de la komputila aparataro. 758 00:32:58,400 --> 00:33:00,530 Do, ekzistas nur avantaĝojn cxirkauxe. 759 00:33:00,530 --> 00:33:01,530 Do, kion tio signifu? 760 00:33:01,530 --> 00:33:04,850 Fakte, kiam vi desegni datumbazon tablo, preskaŭ ĉiuj de la tempo 761 00:33:04,850 --> 00:33:07,170 vi havos ne nur la datumoj vi zorgas pri, 762 00:33:07,170 --> 00:33:09,280 sed ankaŭ ion kiel identificador sola 763 00:33:09,280 --> 00:33:11,280 ĉar ĉi tiu tuj ni fari aliajn aferojn. 764 00:33:11,280 --> 00:33:13,160 Kaj ni stumbli unu problemo tie. 765 00:33:13,160 --> 00:33:15,990 >> Supozu ke uzantoj ne nur salutnomoj kaj nomoj 766 00:33:15,990 --> 00:33:19,540 sed ili ankaŭ havas aĵojn kiel urboj kaj statoj kaj poŝtkodoj, almenaŭ 767 00:33:19,540 --> 00:33:20,432 tie en Usono. 768 00:33:20,432 --> 00:33:22,390 Do, mi tuj iros antaŭen kaj nur rapide diru, 769 00:33:22,390 --> 00:33:26,180 donu al mi tri pli kolumnoj ĉe la fino de la tablo. 770 00:33:26,180 --> 00:33:28,900 Kaj tiu tuj estos Urbo, ĉi tiu tuj estos ŝtato, 771 00:33:28,900 --> 00:33:30,400 kaj ĉi tiu tuj estos Zip. 772 00:33:30,400 --> 00:33:32,710 >> Nun Urbo, kion datumtipoj devus esti tiu, eble? 773 00:33:32,710 --> 00:33:35,460 774 00:33:35,460 --> 00:33:35,989 VARCHAR? 775 00:33:35,989 --> 00:33:37,780 Mi ne scias, kion la plej longa nomo urbo. 776 00:33:37,780 --> 00:33:40,571 Ie en Ameriko, ekzistas probable iuj ridinde longa vorto, 777 00:33:40,571 --> 00:33:43,605 Do ni nur iri kun 255, iom historie aŭ arbitre. 778 00:33:43,605 --> 00:33:44,730 Stato, kion vi volas fari? 779 00:33:44,730 --> 00:33:48,380 780 00:33:48,380 --> 00:33:50,367 Juĝo alvokon, ĉu ne? 781 00:33:50,367 --> 00:33:51,700 Kio eble la plej efika? 782 00:33:51,700 --> 00:33:53,500 Kiom da karakteroj? 783 00:33:53,500 --> 00:33:55,950 Eble nur du, se ni povas senpune faranta nur, 784 00:33:55,950 --> 00:33:58,250 kiel, MA por Masaĉuseco kaj tiel antaŭen. 785 00:33:58,250 --> 00:34:00,520 Do, mi tuj iros char valoron de du. 786 00:34:00,520 --> 00:34:03,080 >> Poŝtkodo estas interesa. 787 00:34:03,080 --> 00:34:06,679 Ni estas ĉi tie en 02138, tiel ke sugestas ni devus uzi kion? 788 00:34:06,679 --> 00:34:07,470 Estas int, dekstra? 789 00:34:07,470 --> 00:34:10,030 790 00:34:10,030 --> 00:34:12,800 INT, INT, mallonga? 791 00:34:12,800 --> 00:34:14,521 Mallonga laborus. 792 00:34:14,521 --> 00:34:15,020 Neniu? 793 00:34:15,020 --> 00:34:18,920 794 00:34:18,920 --> 00:34:20,870 CHAR aŭ kvin, sed mi volas int. 795 00:34:20,870 --> 00:34:23,710 Kial puŝi reen sur int? 796 00:34:23,710 --> 00:34:26,820 Persvadi min de tiu. 797 00:34:26,820 --> 00:34:29,210 Kio estas stultaj pri int, mia ideo? 798 00:34:29,210 --> 00:34:29,871 Yeah. 799 00:34:29,871 --> 00:34:31,199 >> Spektantaro: Prenu pli da memoro. 800 00:34:31,199 --> 00:34:32,909 >> DAVID Malan: Prenu pli da memoro. 801 00:34:32,909 --> 00:34:35,310 Kvar bajtoj, sed vi estas proponante poŝtkodo 802 00:34:35,310 --> 00:34:39,000 kiel kvin bajtoj aŭ iu estis kiel char, kiuj sentas he, tio ne vere 803 00:34:39,000 --> 00:34:39,620 la kazo. 804 00:34:39,620 --> 00:34:40,489 >> Nu, amuza rakonto. 805 00:34:40,489 --> 00:34:43,179 Antaŭ jaroj, kiam mi kutimis uzi Microsoft Outlook por mia retpoŝto, 806 00:34:43,179 --> 00:34:45,150 Mi poste volis ŝanĝi al Gmail. 807 00:34:45,150 --> 00:34:48,949 Kaj do, mi eksportas ĉiuj miaj kontaktoj de Outlook kiel CSV-dosiero. 808 00:34:48,949 --> 00:34:50,699 Komo apartigis valorojn, kio ĝuste signifis min 809 00:34:50,699 --> 00:34:54,060 havis ĉiuj miaj amikoj nomoj kaj lasta nomoj kaj telefonnumerojn kaj poŝtkodoj 810 00:34:54,060 --> 00:34:54,747 kaj ĉiujn kiuj. 811 00:34:54,747 --> 00:34:56,580 Kaj tiam mi faris la eraro de malfermanta ĝin 812 00:34:56,580 --> 00:34:58,640 en Excel, kiu estas kalkultabelo programo kiu 813 00:34:58,640 --> 00:35:00,289 komprenas CSV dosierojn kiel ni vidis. 814 00:35:00,289 --> 00:35:03,080 Sed tiam, mi devas esti frapita, kiel, Komando aŭ Kontrolo S ĉe unu punkto. 815 00:35:03,080 --> 00:35:06,250 Kaj Excel ŝajne tiutempe havis trajto per kiu ajn ĝi 816 00:35:06,250 --> 00:35:08,100 vidis plurajn, ĝi provis esti helpema. 817 00:35:08,100 --> 00:35:11,610 Kaj se tiu nombro komencis kun nuloj, estus simple forigi ilin. 818 00:35:11,610 --> 00:35:13,420 Kial vi bezonas gvida nuloj sur entjeroj? 819 00:35:13,420 --> 00:35:15,140 Ili estas sensignifa, matematike. 820 00:35:15,140 --> 00:35:17,530 Ili ne estas sensignifa en Usono Poŝta sistemo. 821 00:35:17,530 --> 00:35:19,954 Do, mi havis dum jaroj, al tiu tago, mi ankoraŭ 822 00:35:19,954 --> 00:35:22,370 havas amikojn, ke kiam la malofta kazo ke mi bezonas ke iu estas 823 00:35:22,370 --> 00:35:24,078 alparoli tiujn tagojn, Mi ankoraŭ vidas ke mi 824 00:35:24,078 --> 00:35:26,767 havas amikon en Cambridge, Masaĉuseco, 2138. 825 00:35:26,767 --> 00:35:29,350 Kaj estas ĝena se vi estas provas ordigi de programmatically 826 00:35:29,350 --> 00:35:30,975 generi kovertoj aŭ nur jot ĝi malsupren. 827 00:35:30,975 --> 00:35:33,599 Kaj tio estas pro ĉi tiu kialo, Mi elektis la malĝustan datumtipo. 828 00:35:33,599 --> 00:35:34,490 Do, mi amas vian ideon. 829 00:35:34,490 --> 00:35:35,650 Ni uzas char kampo. 830 00:35:35,650 --> 00:35:38,340 Kvin karakteroj, krom estas angulo kazo. 831 00:35:38,340 --> 00:35:42,220 Se vi ankoraŭ sendu mesagxon, kelkfoje poŝtkodoj tiuj tagoj, 832 00:35:42,220 --> 00:35:45,360 ili estas, kiel, plus kvar. 833 00:35:45,360 --> 00:35:48,200 Do, ni bezonas streketo kaj tiam ni bezonas kvar pli numeroj. 834 00:35:48,200 --> 00:35:50,330 Do por esti honesta, ĝi povis iri diversmaniere. 835 00:35:50,330 --> 00:35:52,371 >> Nuntempe, mi tuj konservi ĝin simpla kaj mi estas nur 836 00:35:52,371 --> 00:35:54,780 dironta ke ĝi estas kvin CHAR valoro kaj ni 837 00:35:54,780 --> 00:35:56,739 tuj transsaltu la tuta haltostreko plus kvar. 838 00:35:56,739 --> 00:35:58,280 Sed tiuj estas la specoj de tradeoffs. 839 00:35:58,280 --> 00:36:00,196 Kaj vi povas pensi pri la samaj problemoj ekestanta 840 00:36:00,196 --> 00:36:01,860 kun telefono nombroj aŭ aliaj kampoj. 841 00:36:01,860 --> 00:36:04,350 >> Kaj nun jen estas vere malsagxa vojo iri malsupren. 842 00:36:04,350 --> 00:36:08,000 Supozu ambaŭ Rob kaj mi kaj Hannah kaj Maria kaj [? Davon?] Kaj Andy 843 00:36:08,000 --> 00:36:12,820 kaj aliaj sur la kunlaborantaro ĉiuj vivas en Cambridge, Massachusetts, 02138. 844 00:36:12,820 --> 00:36:17,970 Tiu fakte sentas stulta ke mi estas aldonante al miaj uzantoj tablo, urbo, stato, 845 00:36:17,970 --> 00:36:18,630 kaj ZIP. 846 00:36:18,630 --> 00:36:20,980 Kial? 847 00:36:20,980 --> 00:36:21,960 >> Spektantaro: [inaudible] 848 00:36:21,960 --> 00:36:22,918 >> DAVID Malan: Diru denove? 849 00:36:22,918 --> 00:36:24,310 Spektantaro: [inaudible] 850 00:36:24,310 --> 00:36:25,850 >> DAVID Malan: Ili estas ĉiam tuj iru kune, ĉu ne? 851 00:36:25,850 --> 00:36:28,660 Kiam ĝi turnas, ni kutimis pensi tio estis la kazo ĝis ni ĝisfunde 852 00:36:28,660 --> 00:36:30,570 traserĉis la tutan Usonon, kaj rezultas ke 853 00:36:30,570 --> 00:36:32,653 estas iuj inconsistencias kie multnombraj vilaĝoj havas 854 00:36:32,653 --> 00:36:35,060 la sama zip, kio estas bizara. 855 00:36:35,060 --> 00:36:40,580 Sed, se ni kondiĉas nun ke 02138 ĉiam Kembriĝo, Masaĉuseco, 856 00:36:40,580 --> 00:36:44,910 kial en la mondo volus vin gardi en via datumbazo Kembriĝo kaj MA kaj 02138 857 00:36:44,910 --> 00:36:49,357 por mi kaj por Hannah kaj por Rob kaj por [? Davon?] Kaj por aliaj kiuj vivas 858 00:36:49,357 --> 00:36:51,190 tie en Cambridge, ĝi estas perfekte redunda. 859 00:36:51,190 --> 00:36:54,480 >> Ni devas foriri kun ĵus stokante kio? 860 00:36:54,480 --> 00:36:55,610 Nur la poŝtkodo. 861 00:36:55,610 --> 00:36:58,660 Sed tiam, se ni stoki ĝuste la poŝtkodo, mi volas, probable, 862 00:36:58,660 --> 00:37:02,160 por mia retejo scii kie 02138 estas. 863 00:37:02,160 --> 00:37:03,910 Do, mi bezonas alian tablon. 864 00:37:03,910 --> 00:37:04,697 Kaj tio estas bone. 865 00:37:04,697 --> 00:37:07,530 Kaj fakte, tiu estas unu el la dezajno procezoj de desegni tabloj 866 00:37:07,530 --> 00:37:11,472 ke vi faros en PSet7 tiel whereby vi volas faktora el komuna datumo. 867 00:37:11,472 --> 00:37:14,430 Ĝuste kiel ni estis faktoranta ekster komuna kodo kaj faktoranta ekster komuna 868 00:37:14,430 --> 00:37:17,380 stiloj de CSS, tie tro en la datumbazo, 869 00:37:17,380 --> 00:37:21,180 se mi nur bezonas 02138 al unike identigi ies hejmurbo, 870 00:37:21,180 --> 00:37:25,020 ne stokas Kembriĝo, Meso por ĉiun Darn uzanto en via tablo. 871 00:37:25,020 --> 00:37:29,770 >> Anstataŭe, ili havas apartan tablon nomita Zips ke devus havi kion kolumnoj? 872 00:37:29,770 --> 00:37:33,490 Probable IRU kampo, nur ĉar, por la principoj ni parolas pri nun. 873 00:37:33,490 --> 00:37:35,720 Probable zip kampo por 02138. 874 00:37:35,720 --> 00:37:38,400 Kaj tiam probable kion aliaj kolumnoj? 875 00:37:38,400 --> 00:37:42,950 Urbo kaj ŝtato, sed nur havas unu vico por 02138, unu vico por 02139, 876 00:37:42,950 --> 00:37:44,772 unu linio por 90210. 877 00:37:44,772 --> 00:37:46,730 Kaj tio estas laŭvorte ĉiuj poŝtkodoj mi scias. 878 00:37:46,730 --> 00:37:49,012 >> Do nun, kion vi povas fari? 879 00:37:49,012 --> 00:37:51,220 Tio estas problema, ĉar nun mi havas du tabloj. 880 00:37:51,220 --> 00:37:54,660 Do, mia uzantojn estas plejparte super tie, Sed ilia urbo ŝtata informo estas 881 00:37:54,660 --> 00:37:55,390 super tie. 882 00:37:55,390 --> 00:37:58,635 Do, rezultas kun SQL, ekzistas fakte manieron aliĝi informo, 883 00:37:58,635 --> 00:38:00,470 kaj vi vidos tion en la pset. 884 00:38:00,470 --> 00:38:03,000 >> Sed ĝi rezultas vi povas fari ion kiel tiu. 885 00:38:03,000 --> 00:38:10,501 ELEKTU stelo de uzantoj, JOIN zips SUR uzantoj dot zip egalas zips dot zip. 886 00:38:10,501 --> 00:38:13,360 Kiu estas iom wordy, Certe, sed tiu nur 887 00:38:13,360 --> 00:38:17,590 signifas unuaranga ĉion de la procezo de prenanta mian uzantoj tablo 888 00:38:17,590 --> 00:38:19,580 kaj mia zips tablo. 889 00:38:19,580 --> 00:38:22,120 Aliĝi ilin sur la kampo ili havas en kolumno. 890 00:38:22,120 --> 00:38:24,780 Do, laŭvorte faras ion kiel tiun, kaj redonu al mi 891 00:38:24,780 --> 00:38:27,360 nova portempa tablo jen pli larĝa, ke estas pli granda, 892 00:38:27,360 --> 00:38:29,450 kiu havas ĉiujn de la kolumnoj de ambaux. 893 00:38:29,450 --> 00:38:33,510 Kaj ke, tute simple, estus la sintakso por fari ion kiel tiu. 894 00:38:33,510 --> 00:38:35,540 >> Do, tie estas tio antaŭen, sed tie okazas 895 00:38:35,540 --> 00:38:38,950 esti alia dezajno decidoj vi instruos vin devas fari, ne nur kun indeksoj 896 00:38:38,950 --> 00:38:40,550 sed ankaŭ koliziante defioj. 897 00:38:40,550 --> 00:38:43,360 Fakte, Tie estas defio en ajna datumbazo dezajno 898 00:38:43,360 --> 00:38:47,930 whereby kelkfoje du homoj povus voli aliri la samajn vicojn de la datumbazo 899 00:38:47,930 --> 00:38:48,530 tablo. 900 00:38:48,530 --> 00:38:51,450 Do, tiu estas iu kiu ni renkontas en PSet7 tiel. 901 00:38:51,450 --> 00:38:54,686 >> Sed mi pensis mi rigardu unu atako kiu estas ebla en SQL. 902 00:38:54,686 --> 00:38:56,560 Kio estas kelkaj de la problemoj kiuj povas ekesti? 903 00:38:56,560 --> 00:38:58,170 Do, vi renkontas tiun en PSet7. 904 00:38:58,170 --> 00:39:01,874 Kaj ni diras al vi rekte, kion la kodigo solvo por tiu problemo estas. 905 00:39:01,874 --> 00:39:04,790 Sed se vi prenas pli altan nivelon klaso, speciale en operaciumoj, 906 00:39:04,790 --> 00:39:06,950 vi tuj renkontas elfluon de atomicidad, 907 00:39:06,950 --> 00:39:10,080 la problemo de provanta fari multnombraj aferojn samtempe 908 00:39:10,080 --> 00:39:11,000 sen interrompo. 909 00:39:11,000 --> 00:39:14,560 >> Kaj mi decidis enkonduki tiun ideo por PSet7 kun metaforo 910 00:39:14,560 --> 00:39:18,160 ke mi lernis mem en Margo Seltzer la CS164 operaciumoj 911 00:39:18,160 --> 00:39:18,990 klaso jaroj. 912 00:39:18,990 --> 00:39:22,230 Supozu ke vi havas unu el ĉi tiuj dormejo fridujoj en via dormejo ĉambro aŭ domo, 913 00:39:22,230 --> 00:39:24,474 kaj vi havas veran inklino al lakto. 914 00:39:24,474 --> 00:39:27,140 Kaj do, vi revenas hejmen el klasoj unu tagon, vi malfermas la fridujon. 915 00:39:27,140 --> 00:39:27,620 Ho, malbenita ĝi. 916 00:39:27,620 --> 00:39:28,870 Mankas lakto en la fridujo. 917 00:39:28,870 --> 00:39:32,470 Do, vi fermas la fridujon, ŝlosi la pordon, ŝlosi via dormejo, 918 00:39:32,470 --> 00:39:34,770 marŝi ĉirkaŭ la angulo al CVS, akiri en linio, 919 00:39:34,770 --> 00:39:36,312 kaj komenci kontrolanta iun lakton. 920 00:39:36,312 --> 00:39:38,978 Kaj ĝi tuj preni momenton, ĉar tiuj malbenita memon kaso 921 00:39:38,978 --> 00:39:40,570 nombriloj preni ĉiam uzi ĉiukaze. 922 00:39:40,570 --> 00:39:41,950 Do dume, via kunloĝanto venas hejmen. 923 00:39:41,950 --> 00:39:43,470 Li aŭ ŝi vere ŝatas lakto ankaŭ. 924 00:39:43,470 --> 00:39:45,520 Ili venis en la dormejo ĉambro, malfermos la fridujo, ho, Darn ĝi. 925 00:39:45,520 --> 00:39:46,490 Mankas pli lakto. 926 00:39:46,490 --> 00:39:49,040 >> Do, li aŭ ŝi ankaŭ iras ĉirkaŭ la angulo. 927 00:39:49,040 --> 00:39:51,670 Sed nun, kiam ekzistas kiel du aŭ tri aŭ kvar CVSes proksima, 928 00:39:51,670 --> 00:39:53,800 ili okazas por iri al unu el la malsamaj en la placo. 929 00:39:53,800 --> 00:39:55,830 Kaj tial nun, kelkajn minutojn poste, vi ambaŭ 930 00:39:55,830 --> 00:39:58,060 venas hejmen kaj uf, plej malbona problemo neniam. 931 00:39:58,060 --> 00:40:00,967 Nun vi havas tro da lakto ĉar ĝi tuj iros nematurajn. 932 00:40:00,967 --> 00:40:03,050 Kaj vi ŝatas lakton, sed vi ne vere ŝatas lakto. 933 00:40:03,050 --> 00:40:06,730 >> Do nun, tiu estis multekosta eraro ĉar vi ambaŭ 934 00:40:06,730 --> 00:40:09,870 faris decidon bazita sur la stato de iu variablo ke 935 00:40:09,870 --> 00:40:12,660 estis en la procezo de esti ŝanĝita de vi, 936 00:40:12,660 --> 00:40:14,560 iniciatoro de ricevos lakton. 937 00:40:14,560 --> 00:40:17,785 Do, kio estas eble homan solvo al tiu problemo? 938 00:40:17,785 --> 00:40:18,660 Spektantaro: [inaudible] 939 00:40:18,660 --> 00:40:19,430 DAVID Malan: Lasi noton, dekstra? 940 00:40:19,430 --> 00:40:21,850 Ĉiam skribu peton, se vi estas familiara kun tiu spektaklo. 941 00:40:21,850 --> 00:40:23,100 Jes, estas du el ni. 942 00:40:23,100 --> 00:40:25,940 Do, ĉiam skribu peton, aŭ laŭvorte ŝlosi la fridujon 943 00:40:25,940 --> 00:40:28,602 kun ia pendseruro aŭ io super la pinto tiel. 944 00:40:28,602 --> 00:40:31,310 Sed tio fakte tuj estos ŝlosila problemo kun datumbazo dezajno, 945 00:40:31,310 --> 00:40:34,710 Precipe kiam vi povus havi multoblaj retumiloj, multnombraj tekkomputiloj, 946 00:40:34,710 --> 00:40:37,450 multnombraj uzantoj ĉiuj provas ĝisdatigi informojn senprokraste. 947 00:40:37,450 --> 00:40:40,590 Aparte sentema informo kiel financa informo, 948 00:40:40,590 --> 00:40:43,350 whereby per provizo komercanta retejo kiel vi konstruos, 949 00:40:43,350 --> 00:40:47,270 kio se vi volas kontroli kiom monon vi havas kaj tiam se vi havas multe, 950 00:40:47,270 --> 00:40:48,490 aĉeti stoko? 951 00:40:48,490 --> 00:40:50,899 >> Sed kio se iu alia kiu havas komunan konton kun vi 952 00:40:50,899 --> 00:40:52,690 estas samtempe provanta aĉeti iuj proviza? 953 00:40:52,690 --> 00:40:55,190 Do, li aŭ ŝi estas kontrolanta la konto ekvilibro, ambaŭ de vi 954 00:40:55,190 --> 00:40:57,540 reiri la saman respondon, ne estas lakto. 955 00:40:57,540 --> 00:41:00,580 Aŭ vi ambaŭ reiri la respondo, vi havas $ 100 en la konto. 956 00:41:00,580 --> 00:41:04,680 Ambaŭ vi provos fari la decidon aĉeti unu porcion de iu kompanio stoko. 957 00:41:04,680 --> 00:41:06,130 >> Kaj nun kio okazas? 958 00:41:06,130 --> 00:41:07,140 Vi havas du agoj? 959 00:41:07,140 --> 00:41:08,420 Vi ne havas akciojn? 960 00:41:08,420 --> 00:41:10,320 Problemoj kiel tio povas ekesti. 961 00:41:10,320 --> 00:41:11,755 Do, ni renkontas tiu. 962 00:41:11,755 --> 00:41:14,630 SQL injekto atakoj, dankeme, Estas io ni helpos vin kun, 963 00:41:14,630 --> 00:41:17,430 sed tiuj estas atrociously komuna tiuj tagoj ankoraŭ. 964 00:41:17,430 --> 00:41:18,680 Do, tiu estas nur ekzemplo. 965 00:41:18,680 --> 00:41:21,290 Mi ne faru asertojn kiujn Harvard PIN sistemo estas 966 00:41:21,290 --> 00:41:23,130 vundeblaj al ĉi aparta atako. 967 00:41:23,130 --> 00:41:24,160 Ni provis. 968 00:41:24,160 --> 00:41:26,120 Sed, vi scias ke ni havi kampo kiel tiu. 969 00:41:26,120 --> 00:41:29,620 Kaj Yale Net ID havas similan rigardante ekrano tiujn tagojn. 970 00:41:29,620 --> 00:41:33,190 Kaj ĝi rezultas, ke eble la PIN sistemo estas efektivigita en PHP. 971 00:41:33,190 --> 00:41:37,050 >> Kaj se were-- estas not-- ili havu kodo kiu similas ĉi. 972 00:41:37,050 --> 00:41:38,210 Ili havas du variabloj. 973 00:41:38,210 --> 00:41:42,495 Donu al mi la uzantnomon kaj pasvorton el la post super tutmonda variablo 974 00:41:42,495 --> 00:41:43,970 ke ni parolis pri antaŭe. 975 00:41:43,970 --> 00:41:47,310 Eble Harvard havas query kiel ELEKTU stelo de uzantoj 976 00:41:47,310 --> 00:41:50,005 kie salutnomo egalas ke kaj pasvorton egalas tio. 977 00:41:50,005 --> 00:41:51,880 Kaj rimarki ke mi estas nur ŝtopanta ĝin en uzanta 978 00:41:51,880 --> 00:41:55,050 la krispa streĉa notacio de la aliaj tago, kio signifas nur ŝtopi en valoro 979 00:41:55,050 --> 00:41:55,550 tie. 980 00:41:55,550 --> 00:41:57,449 Mi ne uzante la demandosigno tekniko. 981 00:41:57,449 --> 00:41:59,240 Mi ne havas ajnan dua aŭ tria argumentoj. 982 00:41:59,240 --> 00:42:02,350 Mi estas nur laŭvorte konstrui la kordo mem. 983 00:42:02,350 --> 00:42:04,930 >> La problemo, tamen, estas ke se iu ŝatas scroob, 984 00:42:04,930 --> 00:42:09,020 kiu estas referenco al filmo, ensalutas per io tiamaniere, 985 00:42:09,020 --> 00:42:11,250 kaj mi forigis la punktojn kiuj kutimas kovri 986 00:42:11,250 --> 00:42:14,370 pasvortojn, se li estas aparte malica 987 00:42:14,370 --> 00:42:18,860 kaj lia pasvorton eble estas 12345, po la filmo nomita "Spaceballs" 988 00:42:18,860 --> 00:42:21,970 sed li kritike tipoj de sola citaĵo post la kvin, 989 00:42:21,970 --> 00:42:24,790 tiam laŭvorte la vorto aŭ en la spaco, kaj tiam citaĵo, 990 00:42:24,790 --> 00:42:29,160 unquote unu egalas citaĵo unu, Sed rimarki li preterlasis kio? 991 00:42:29,160 --> 00:42:32,700 Li preterlasis la citaĵo dekstre kaj li preterlasis la citaĵo maldekstre. 992 00:42:32,700 --> 00:42:35,170 >> Ĉar se tiu atacante scroob la supozo 993 00:42:35,170 --> 00:42:38,160 estas ke la personoj kiuj skribis ĉi PHP kodo ne estis tiel brila, 994 00:42:38,160 --> 00:42:42,990 eble ili nur havas iom sola citaĵoj ĉirkaŭ la interpola 995 00:42:42,990 --> 00:42:45,210 de variablo en buklaj krampoj? 996 00:42:45,210 --> 00:42:48,620 Kaj do eble li povus, speco de kompletigi lia penso 997 00:42:48,620 --> 00:42:53,290 por ili, sed en maniero kiu okazas permesos al li hakis en la PIN sistemo. 998 00:42:53,290 --> 00:42:55,310 Alivorte, supozi ke tiu estas la kodo 999 00:42:55,310 --> 00:42:57,140 kaj ni nun ŝtopi en kion scroob tajpita. 1000 00:42:57,140 --> 00:42:58,770 Kaj ĝi estas ruĝa, ĉar ĝi estas malbona. 1001 00:42:58,770 --> 00:43:01,310 >> Kaj la suba teksto estas kion li entajpis, 1002 00:43:01,310 --> 00:43:05,510 scroob povus trompi Harvard servilo en konstruanta SQL query 1003 00:43:05,510 --> 00:43:07,440 ŝnuro kiu similas ĉi. 1004 00:43:07,440 --> 00:43:11,760 Pasvorto egalas 12345 aŭ unu egalas unu. 1005 00:43:11,760 --> 00:43:14,820 La rezulto de kiu, logike, estas ke tiu estos log scroob 1006 00:43:14,820 --> 00:43:18,360 en se lia pasvorto estas 12345 aŭ se unu egaluloj 1007 00:43:18,360 --> 00:43:22,660 unu, kio estas kompreneble ĉiam vera, kio signifas scroob ĉiam ricevas en. 1008 00:43:22,660 --> 00:43:26,060 >> Kaj do, la maniero ripari tiu, kiel en multaj kazoj, 1009 00:43:26,060 --> 00:43:28,140 estus skribi pli defende. 1010 00:43:28,140 --> 00:43:30,390 Uzi ion kiel nia fakta query funkcio, kiun 1011 00:43:30,390 --> 00:43:33,980 vi vidos en PSet7, kie ni konekti io kiel demandosignojn tie. 1012 00:43:33,980 --> 00:43:35,980 Kaj la beleco de la query funkcio kiu ni 1013 00:43:35,980 --> 00:43:40,010 doni vin estas protektas kontraŭ tiuj tn SQL injekto atakoj, kie 1014 00:43:40,010 --> 00:43:44,260 iu trompante vian kodon en injekti siajn proprajn SQL kodo. 1015 00:43:44,260 --> 00:43:47,380 Pro kio la konsulto funkcio Ni donas vin efektive fari, 1016 00:43:47,380 --> 00:43:51,270 se vi uzas la demandosigno sintakso kaj dua kaj tria argumento tie, 1017 00:43:51,270 --> 00:43:54,590 Estas kion lin aldonas al la enigo ke la uzanto preparis? 1018 00:43:54,590 --> 00:43:56,060 Tiuj backslash citaĵoj. 1019 00:43:56,060 --> 00:43:58,590 >> Do, ĝi eskapas ajna potenciale danĝeraj karakteroj. 1020 00:43:58,590 --> 00:44:01,000 Ĉi aspektas strangaj nun, sed ĝi ne estas vundebla 1021 00:44:01,000 --> 00:44:03,260 ĉar ne ŝanĝi la logikon anymore 1022 00:44:03,260 --> 00:44:06,470 ĉar tiu tuta pasvorto estas nun sola citaĵo tio ne, 1023 00:44:06,470 --> 00:44:07,596 fakte, scroob pasvorton. 1024 00:44:07,596 --> 00:44:09,845 Do, tie jam kelkaj ŝercoj pri tiu super la jaroj. 1025 00:44:09,845 --> 00:44:12,570 Do, tio estis fotita de iu geek en parkejo 1026 00:44:12,570 --> 00:44:16,620 whereby vi sciu ke kelkaj urboj kaj statoj provi skani via licenco 1027 00:44:16,620 --> 00:44:19,460 lado al Bill vi aŭ bileto vi se vi iros tra ekstere, kiel, 1028 00:44:19,460 --> 00:44:20,660 la E-Z Pass afero. 1029 00:44:20,660 --> 00:44:24,490 Do, tiu persono paradas ke eble la personoj skribas la E-Z Pass sistemo 1030 00:44:24,490 --> 00:44:28,240 ne tiel brila, kaj eble ili nur kroĉitaj kune cxeno, 1031 00:44:28,240 --> 00:44:32,190 por ke li aŭ ŝi ne povis malice ne nur kompletigas lia penso, 1032 00:44:32,190 --> 00:44:35,150 sed reale ekzekuti malbona komando, kiun ni ne menciis ankoraux, 1033 00:44:35,150 --> 00:44:36,380 sed vi versxajne povas diveni. 1034 00:44:36,380 --> 00:44:39,820 Ke krom forviŝi kaj enmeti kaj ĝisdatigo kaj selekti, 1035 00:44:39,820 --> 00:44:43,370 ekzistas ankaŭ ŝlosilvorto nomita guto, kiu laŭvorte forigas ĉiun 1036 00:44:43,370 --> 00:44:45,300 en la datumbazo, kiu estas aparte malbona. 1037 00:44:45,300 --> 00:44:48,760 >> Ni povas zomi en sur ĉi se estas iom malfacile vidi. 1038 00:44:48,760 --> 00:44:52,300 Tiu nun estas fama karikaturo ke estas mirinde saĝaj nun 1039 00:44:52,300 --> 00:44:53,145 kaj komprenebla. 1040 00:44:53,145 --> 00:45:00,880 1041 00:45:00,880 --> 00:45:04,750 >> [Ridado] 1042 00:45:04,750 --> 00:45:05,910 >> Yeah, malvarmeta. 1043 00:45:05,910 --> 00:45:06,800 Speco de geeking eksteren. 1044 00:45:06,800 --> 00:45:08,800 Do tiuj, do, estas SQL injekto atakoj. 1045 00:45:08,800 --> 00:45:13,050 Kaj ili estas tiel facile eviti per uzo dekstren kodo aŭ la dekstra bibliotekoj. 1046 00:45:13,050 --> 00:45:15,947 Kaj vi vidos en PSet7, jen kial ni doni vin la konsulto funkcio. 1047 00:45:15,947 --> 00:45:17,780 Do, paro de teasers ke ni pensis ke ni 1048 00:45:17,780 --> 00:45:19,930 al vi ĉi tie en nia ceteraj minutoj kune. 1049 00:45:19,930 --> 00:45:24,030 Do, kiel vi memoras el semajno nulo, ni enkondukis tiujn du ampoloj kiuj 1050 00:45:24,030 --> 00:45:26,610 estas belaj, ne nur ĉar ili estas belaj kaj estas buntaj, 1051 00:45:26,610 --> 00:45:29,450 sed ĉar ili apogas ion nomita API, apliko 1052 00:45:29,450 --> 00:45:31,980 Programado Interfaco Kaj en CS50 tiele nun, ni 1053 00:45:31,980 --> 00:45:34,440 plejparte temigis GET kaj POST, sed ĝi rezultas 1054 00:45:34,440 --> 00:45:37,390 ekzistas aliaj HTTP verboj kiel meti. 1055 00:45:37,390 --> 00:45:39,430 >> Kaj fakte, tiu estis slide de semajno nulo 1056 00:45:39,430 --> 00:45:44,930 per kio se vi skribas kodo kiu sendas a la PSet6 HTTP peto ke 1057 00:45:44,930 --> 00:45:49,647 aspektas kiel tiu kun ĉi eron de teksto ĉe la malsupro, nomata JSON, 1058 00:45:49,647 --> 00:45:52,230 aŭ JavaScript Objekto Skribmaniero ke ni parolos pri venontsemajne, 1059 00:45:52,230 --> 00:45:57,030 vi povas ŝalti aŭ elŝalti aŭ ŝanĝo la koloro de lumoj kiel tiuj. 1060 00:45:57,030 --> 00:46:00,480 Do se CS50 ankaŭ havas krom kelkaj de tiuj ampoloj tie en New Haven 1061 00:46:00,480 --> 00:46:02,480 se vi ŝatus prunteprenos ilin por fina projektoj, 1062 00:46:02,480 --> 00:46:04,370 ankaŭ iuj Microsoft Bandoj, kiuj estas kiel 1063 00:46:04,370 --> 00:46:07,619 rigardas ke vi portas ĉirkaŭ via pojno ke simile havas API por ke vi 1064 00:46:07,619 --> 00:46:10,040 povas skribi vian propran programaron por ili. 1065 00:46:10,040 --> 00:46:12,490 >> Ni havas konton kun Apple iOS kodon tiel 1066 00:46:12,490 --> 00:46:15,510 ke se vi havas Apple aŭ Watch iPhone aŭ iPad aŭ iPod, 1067 00:46:15,510 --> 00:46:17,707 vi povas skribi kodon kiu fakte kuras sur tiuj. 1068 00:46:17,707 --> 00:46:19,540 Ni havas tutan faskon de Arduinos, kiuj estas 1069 00:46:19,540 --> 00:46:22,010 malgrandaĵeto komputiloj sen kazoj, esence, 1070 00:46:22,010 --> 00:46:25,240 ke vi povas konekti tra USB, tipe al via propra Mac aŭ PC, 1071 00:46:25,240 --> 00:46:28,810 skribi kodon kiu funkcias sur tiuj fizikaj mekanismoj kiuj ofte havas sentilojn sur ilin 1072 00:46:28,810 --> 00:46:30,790 do vi povas interagi kun la reala mondo. 1073 00:46:30,790 --> 00:46:32,860 Ni havas tutan faskon de Leap Motion aparatoj, 1074 00:46:32,860 --> 00:46:36,500 kiu estas USB aparatoj por Macs kaj PC, tie kaj denove, en New Haven. 1075 00:46:36,500 --> 00:46:40,080 Kaj se vi konektas ĝin al via Mac, vi efektive povas kontroli vian komputilon 1076 00:46:40,080 --> 00:46:42,550 skribante softvaron ke per transruĝaj radioj, 1077 00:46:42,550 --> 00:46:46,360 figuroj el kie viaj homaj manoj estas, eĉ sen tuŝi via klavaro. 1078 00:46:46,360 --> 00:46:49,135 Ni pensis ke ni dividas rapidan duonvidi ĉe tio, ekzemple. 1079 00:46:49,135 --> 00:46:51,428 >> [MUZIKO Ludante] 1080 00:46:51,428 --> 00:47:55,840 1081 00:47:55,840 --> 00:47:57,590 Do, ni havas tutajn faskon el tiuj aferoj, 1082 00:47:57,590 --> 00:48:01,040 Ankaŭ nomita Myo brako bandoj kiun vi starigos super via antaŭbrako 1083 00:48:01,040 --> 00:48:04,595 kaj tiam vi povas kontroli la realan mondo aŭ la virtuala mondo tiel. 1084 00:48:04,595 --> 00:48:06,471 >> [MUZIKO Ludante] 1085 00:48:06,471 --> 00:49:17,580 1086 00:49:17,580 --> 00:49:20,920 Aŭ, ni ankaŭ havas iuj Google Kartono, kiu estas laŭvorte, kiel, 1087 00:49:20,920 --> 00:49:24,841 kartona skatolo vi povus meti sur vian vizaĝon, sed glito en via telefono en ĝin 1088 00:49:24,841 --> 00:49:27,590 por ke vi metis la glason de via telefono vere proksime al viaj okuloj. 1089 00:49:27,590 --> 00:49:30,190 Kaj Google Kartono estas tre malinda je $ 10 aŭ $ 20. 1090 00:49:30,190 --> 00:49:32,230 Kaj ĝi havas malmultan lensoj ke iomete ekstere ŝanĝo 1091 00:49:32,230 --> 00:49:35,900 la bildo sur la ekrano por via homa okulojn doni al vi la senton de profundo 1092 00:49:35,900 --> 00:49:39,550 por ke vi efektive havas 3D medio antaŭ vi. 1093 00:49:39,550 --> 00:49:42,927 Ni ankaŭ havas iuj Samsung Gear, kiu Estas la pli altekosta versio de ĉi, 1094 00:49:42,927 --> 00:49:46,010 sed kiuj povas simile gliti en Android telefono kaj doni vin la iluzio 1095 00:49:46,010 --> 00:49:48,309 of-- aŭ doni la sperto de virtuala realaĵo. 1096 00:49:48,309 --> 00:49:50,850 Kaj en niaj finaj du minutoj, ni pensis ke ni provos fari tion. 1097 00:49:50,850 --> 00:49:55,250 Se mi povas projekti kio Colton havas tien ĝuste por iri malfermante buŝo, 1098 00:49:55,250 --> 00:49:58,442 lasu min antaŭeniri kaj ĵeti supren sur la granda ekrano tie. 1099 00:49:58,442 --> 00:49:59,400 Lasu min mortigi la lumoj. 1100 00:49:59,400 --> 00:50:02,290 Colton, ĉu vi volas antaŭeniri kaj metu sur via ĉelo dum momento 1101 00:50:02,290 --> 00:50:05,171 kaj venis sur super al la mezo de la scenejo? 1102 00:50:05,171 --> 00:50:07,420 Kaj ĉu vi volas project-- jen kion Colton vidas. 1103 00:50:07,420 --> 00:50:10,560 >> Nun, la Wi-Fi en tie estas Ne tiel forta por ĉi tiu mekanismo 1104 00:50:10,560 --> 00:50:13,870 ke tiu estas súper konvinka, sed Colton estas laŭvorte 1105 00:50:13,870 --> 00:50:15,710 en tiu magia futurisma loko. 1106 00:50:15,710 --> 00:50:16,796 Li vidas nur unu bildo. 1107 00:50:16,796 --> 00:50:19,920 Vi vidas sia maldekstra kaj dekstra okulo ke lia cerbo estas stitching kune 1108 00:50:19,920 --> 00:50:22,260 en tridimensia medion sur lia vizagxo. 1109 00:50:22,260 --> 00:50:24,319 Li ĵus elektis menuopcion tie. 1110 00:50:24,319 --> 00:50:27,360 Kaj tiel denove, li surhavas ĉi aŭdilo kun Samsung telefono sur ĝi jen 1111 00:50:27,360 --> 00:50:29,080 inalámbricamente projektante nian superkape. 1112 00:50:29,080 --> 00:50:30,349 Nun vi sur Marso, ĉu ne? 1113 00:50:30,349 --> 00:50:31,140 COLTON: Mi kredas tiel. 1114 00:50:31,140 --> 00:50:32,181 Mi ne certas [inaudible]. 1115 00:50:32,181 --> 00:50:34,250 [Ridado] 1116 00:50:34,250 --> 00:50:36,374 >> DAVID Malan: Rezultas Marso havas tiuj menuoj. 1117 00:50:36,374 --> 00:50:41,590 >> COLTON: [inaudible] iu malvarmeta lokoj se ni volas iri to-- 1118 00:50:41,590 --> 00:50:43,330 >> DAVID Malan: Kie ni volas iri? 1119 00:50:43,330 --> 00:50:45,837 >> COLTON: [inaudible] 1120 00:50:45,837 --> 00:50:48,170 DAVID Malan: Kaj ni vidu kie Colton a pren us nun. 1121 00:50:48,170 --> 00:50:48,961 COLTON: [inaudible] 1122 00:50:48,961 --> 00:50:52,830 1123 00:50:52,830 --> 00:50:56,380 >> DAVID Malan: Do, tie estas tiom da malsamaj lokoj vi povas preni vin mem. 1124 00:50:56,380 --> 00:51:00,590 Ekzistas FAPIs per kiu vi povas skribi ludojn aŭ interagoj kiuj 1125 00:51:00,590 --> 00:51:01,950 kuri, finfine, en la telefono. 1126 00:51:01,950 --> 00:51:03,908 Do, vi vere nur skribanta poŝtelefono app. 1127 00:51:03,908 --> 00:51:06,380 Sed danke al la programaro kaj la grafikaj kapabloj, 1128 00:51:06,380 --> 00:51:08,765 nun Colton estas en ĉi eta dometon. 1129 00:51:08,765 --> 00:51:10,515 Kaj riske de abrumadora ni mem, 1130 00:51:10,515 --> 00:51:13,330 Colton kaj mi persistos proksimume por dum ĉe la fino de klaso tie hodiaŭ 1131 00:51:13,330 --> 00:51:14,300 se vi ŝatus veni kaj ludi. 1132 00:51:14,300 --> 00:51:16,350 Kaj ni alportas ilin reen venontsemajne tiel. 1133 00:51:16,350 --> 00:51:18,420 Sen pli, Ado jen ĝi por hodiaŭ. 1134 00:51:18,420 --> 00:51:21,990 Ni vidos vin proksima semajno. 1135 00:51:21,990 --> 00:51:24,140 >> [MUZIKO - Ragga Twins, "Bad Man"] 1136 00:51:24,140 --> 00:55:23,146