1 00:00:00,000 --> 00:00:12,610 2 00:00:12,610 --> 00:00:12,900 >> DAVID J. MALAN: Ondo da. 3 00:00:12,900 --> 00:00:16,790 Beraz, lehen inoiz ongi etorri CS50 galdetegi bezala postmortem. 4 00:00:16,790 --> 00:00:18,340 Litzaidake inauguratuko dugu pentsatu genuen Tradizio hau aurten. 5 00:00:18,340 --> 00:00:20,960 Eta honek aukera bat izango da hemen ibiltzeko 6 00:00:20,960 --> 00:00:22,220 galdetegia irtenbideak. 7 00:00:22,220 --> 00:00:26,160 Eta bizkortu egingo dugu gora edo mantsotu oinarritutako Hemen horietako interes da. 8 00:00:26,160 --> 00:00:29,730 >> Beraz Ziurrenera hemen zauden delako nola izan dezakezu interesa edo 9 00:00:29,730 --> 00:00:31,170 batzuei erantzun behar arazo horiek. 10 00:00:31,170 --> 00:00:33,300 Beraz, zergatik ez dute begirada bat hartuko dugu Lehenengo tarte honetan? 11 00:00:33,300 --> 00:00:34,450 Beraz kateak lortzean. 12 00:00:34,450 --> 00:00:37,600 Honek hiru bertsio ezberdin eman zenuen hori izan zen programa bat, azken finean, 13 00:00:37,600 --> 00:00:39,650 ekarri kate bat lortzeko erabiltzaileari batetik. 14 00:00:39,650 --> 00:00:42,530 Zela egin zuen ala ez Zuri utzi nahi zehazteko. 15 00:00:42,530 --> 00:00:45,150 >> Eta eskatu dugu 0 Galdera batean, Suposatzen 1 bertsioa dela 16 00:00:45,150 --> 00:00:46,400 konpilatu eta exekutatu. 17 00:00:46,400 --> 00:00:48,860 Zergatik segfault liteke programa? 18 00:00:48,860 --> 00:00:51,150 Lehen begiratuan, edozein iradokizun zergatik? 19 00:00:51,150 --> 00:00:54,012 20 00:00:54,012 --> 00:00:54,489 Bai. 21 00:00:54,489 --> 00:00:59,260 >> AUDIENCE: Beraz, hau ikusten dut gogoan in aurreko begira adibide bat 22 00:00:59,260 --> 00:01:05,506 char * s eta z du eskaneatu ikusten eta ikusten da erakuslea, nola delako 23 00:01:05,506 --> 00:01:07,971 ez zer eskaneatu duzu eragina izan du? 24 00:01:07,971 --> 00:01:10,940 Da s edo z helbidea? 25 00:01:10,940 --> 00:01:11,180 >> DAVID J. MALAN: Ados. 26 00:01:11,180 --> 00:01:11,480 Ona. 27 00:01:11,480 --> 00:01:14,830 Beraz, azken finean, edozein arazo-iturri da zentzuzkoa, murriztea joan 28 00:01:14,830 --> 00:01:16,210 aldagai s hori. 29 00:01:16,210 --> 00:01:17,280 Eta halaxe da, aldagai bat. 30 00:01:17,280 --> 00:01:19,900 Datuak aldagai hori mota da char *, eta horrek esan nahi du joan den 31 00:01:19,900 --> 00:01:22,570 eduki pertsonaia baten helbidea. 32 00:01:22,570 --> 00:01:23,850 Eta bertan ezagutzeko datza. 33 00:01:23,850 --> 00:01:28,330 Honez helbide elektronikoak dituzten joan pertsonaia bat edo, oro har, eta 34 00:01:28,330 --> 00:01:32,110 lehen pertsonaia helbide karaktere bloke oso bat. 35 00:01:32,110 --> 00:01:36,680 >> Baina harrapatzen da eskaneatu s, helburua in Bizitza, helbide batekin jartzen da eta emandako 36 00:01:36,680 --> 00:01:40,960 formatu-kode bat,% s bezala, irakurri zatia sartu katea 37 00:01:40,960 --> 00:01:42,330 Helbide horretan memoria. 38 00:01:42,330 --> 00:01:46,040 Baina ez dago berdin ikurra delako aurretik Lehenengo orrian koma duten 39 00:01:46,040 --> 00:01:49,310 kode-lerro, ez dugulako benetan edozein memoria esleitu 40 00:01:49,310 --> 00:01:53,020 malloc, ez duelako benetan tamaina batzuk array bat, guztiak esleitu 41 00:01:53,020 --> 00:01:57,620 egiten ari zaren irakurtzen da erabiltzaile-en teklatuaren sarrera osoa batzuk sartu 42 00:01:57,620 --> 00:02:00,490 zabor-balioa, eta horrek s lehenetsita. 43 00:02:00,490 --> 00:02:04,480 Beraz, odds dira zu segfault gertatzen bada Helbide hori ez da besterik gabe, hala gertatuko 44 00:02:04,480 --> 00:02:08,009 ahal duzun balio bat izan nahi du, hain zuzen ere, idatzi. 45 00:02:08,009 --> 00:02:10,889 Hain txarra ez den esleitu Zure memoria han. 46 00:02:10,889 --> 00:02:13,150 >> Beraz, galdera 1 urtean, eskatu dugu, Suposatzen 2 bertsioa dela 47 00:02:13,150 --> 00:02:14,230 konpilatu eta exekutatu. 48 00:02:14,230 --> 00:02:15,900 Zergatik segfault liteke programa hau? 49 00:02:15,900 --> 00:02:17,990 Beraz, hau buggy gutxiago. 50 00:02:17,990 --> 00:02:21,470 Eta ez da benetan bakarra bistako bidea ahal duzun non 51 00:02:21,470 --> 00:02:22,810 segfault eragin hemen. 52 00:02:22,810 --> 00:02:23,730 Eta hau tematikoa da. 53 00:02:23,730 --> 00:02:28,180 C erabiltzen ari gara memoria edozein momentutan, zer ezin segfault bultzatu egiten duzu 54 00:02:28,180 --> 00:02:30,718 2 bertsioarekin? 55 00:02:30,718 --> 00:02:35,560 >> AUDIENCE: sarrera hori zehazten baduzu kate bat hori da, 49 baino luzeagoa 56 00:02:35,560 --> 00:02:35,975 pertsonaiak. 57 00:02:35,975 --> 00:02:37,260 >> DAVID J. MALAN: Zehazki. 58 00:02:37,260 --> 00:02:41,420 Ikusten duzu zerbait finko luzera edozein momentutan orduan array bat da, zure 59 00:02:41,420 --> 00:02:44,650 radar off joan behar hori izan daiteke problematikoa ari bazara ez du egiaztapena 60 00:02:44,650 --> 00:02:45,810 array baten mugetan. 61 00:02:45,810 --> 00:02:46,650 Eta hori da hemen arazoa. 62 00:02:46,650 --> 00:02:47,910 Oraindik ere scanf ari gara erabiltzen. 63 00:02:47,910 --> 00:02:52,200 Oraindik% s ari gara erabiltzen, eta horrek esan nahi saiatu kate bat irakurtzeko erabiltzaileari from. 64 00:02:52,200 --> 00:02:56,300 Hori z irakurri behar horrek joan,, puntu honetan, ez da modu eraginkorrean 65 00:02:56,300 --> 00:02:58,570 memoria zatia baten helbidea edo baliokidea da. 66 00:02:58,570 --> 00:03:02,080 Array baten izena da oroimenaren karaktere. 67 00:03:02,080 --> 00:03:07,610 >> Baina zehazki, hori kate bat irakurri baduzu hori da 49 karaktere, 49 baino luzeagoa 68 00:03:07,610 --> 00:03:10,440 gela behar duzulako backslash egiteko 0, ari gainezkatzea zoazen 69 00:03:10,440 --> 00:03:11,390 buffer duten. 70 00:03:11,390 --> 00:03:16,410 Eta zortea duzu agian eta izan gai 51 pertsonaia bat, 52, 53 idatzi. 71 00:03:16,410 --> 00:03:18,560 Baina uneren batean, sistema eragilea dagoela esan du, ez. 72 00:03:18,560 --> 00:03:21,270 Hau ez da memoria ukitu bazaizu onartzen. 73 00:03:21,270 --> 00:03:23,380 Eta programa da segfault joan. 74 00:03:23,380 --> 00:03:26,650 >> Beraz, ez dago, heuristikoak edozein izan beharko luke lortu duzun luzera finkoa denbora, duzu 75 00:03:26,650 --> 00:03:30,150 ziur luzera zaren egiaztatzen egiteko edozein dela ere saiatzen ari da eremu 76 00:03:30,150 --> 00:03:31,090 sartu irakurri. 77 00:03:31,090 --> 00:03:35,110 >> AUDIENCE: Beraz, hori konpontzeko, zuk ezin dute adierazpen bat egiaztapena benetan izan 78 00:03:35,110 --> 00:03:37,140 luzera handiagoa da edo baino baino gutxiago? 79 00:03:37,140 --> 00:03:37,730 >> DAVID J. MALAN: Absolutely. 80 00:03:37,730 --> 00:03:41,706 Aski izango duzu baldintza bat dioen, bada - 81 00:03:41,706 --> 00:03:46,080 edo, hobeto esanda, ez dute zertan badakizu aldez aurretik zenbat pertsonaiak 82 00:03:46,080 --> 00:03:49,060 Erabiltzaileak dokumentu hau idatzi du, zeren oilasko eta arrautza duzu. 83 00:03:49,060 --> 00:03:51,860 Irakurtzen duzun bertan ez arte scanf rekin daiteke irudikatu duzu zenbat denbora da. 84 00:03:51,860 --> 00:03:54,500 Baina puntu horretan, beranduegi da, duzun dagoeneko irakurri delako sartu 85 00:03:54,500 --> 00:03:55,710 memoria bloke batzuk. 86 00:03:55,710 --> 00:03:59,590 Beraz, bat alde batera utzita, CS50 liburutegia eragozteak gisa Arazo hau guztiz, abisuaren 87 00:03:59,590 --> 00:04:01,060 fgetc erabiliz. 88 00:04:01,060 --> 00:04:05,390 Eta pertsonaia bat irakurtzen du aldi berean, punta-toeing zehar, jakinda duzun 89 00:04:05,390 --> 00:04:08,060 ezin bada pertsonaia bat gainezkatzea bat irakurri duzu aldi berean. 90 00:04:08,060 --> 00:04:11,580 >> Harrapatzen GetString abisuaren dituena da etengabe berriro tamaina dugula 91 00:04:11,580 --> 00:04:13,590 memoria zatia dela, eta horrek mina bat besterik ez da. 92 00:04:13,590 --> 00:04:15,310 Ildo asko da horretarako kodea. 93 00:04:15,310 --> 00:04:18,779 Beraz, agindu ahal izango litzateke benetan lehengusu bat erabili, beraz, 94 00:04:18,779 --> 00:04:19,790 , hitz egiteko scanf neurtzen. 95 00:04:19,790 --> 00:04:22,820 Daude horiek asko aldaera funtzio benetan egiaztatu diren 96 00:04:22,820 --> 00:04:25,870 luzera zenbat karaktere Gehienez irakurri dezakezu. 97 00:04:25,870 --> 00:04:29,430 Eta zehaztu ahal izango duzu, ez irakurri 50 karaktere baino gehiago. 98 00:04:29,430 --> 00:04:34,110 Beraz, agindu izango litzateke, baina Sarrerek handiagoa hartzen gutxiago. 99 00:04:34,110 --> 00:04:37,040 >> Beraz, zalantzan 2 galdetzen du, demagun bertsio hori 3 konpilatu eta exekutatu. 100 00:04:37,040 --> 00:04:39,960 Zergatik segfault agian programa hori? 101 00:04:39,960 --> 00:04:42,650 Beraz, hau da, benetan bera erantzun, nahiz eta 102 00:04:42,650 --> 00:04:43,590 itxura apur bat fancier. 103 00:04:43,590 --> 00:04:46,440 Malloc, bezala sentitzen erabiltzen ari gara ari geure buruari aukera gehiago ematen dugu. 104 00:04:46,440 --> 00:04:48,030 Eta gero esaten ari gara libratzen amaierako memoria. 105 00:04:48,030 --> 00:04:49,580 50 byteko memoria Oraindik da. 106 00:04:49,580 --> 00:04:53,620 Beraz dugu oraindik, agian, irakurtzen saiatu 51, 52, 1.000 byte. 107 00:04:53,620 --> 00:04:55,830 Honez for segfault joan zehazki arrazoi bera. 108 00:04:55,830 --> 00:04:57,530 >> Baina han ere beste arrazoi bat da. 109 00:04:57,530 --> 00:05:03,890 Zer gehiago bueltan malloc gain memoria zatia helbidea? 110 00:05:03,890 --> 00:05:04,920 Null itzuliko zitekeen. 111 00:05:04,920 --> 00:05:07,560 Delako eta ez gabiltza egiaztapena duten, behar zerbait egiten dugu agian 112 00:05:07,560 --> 00:05:11,350 beste arrazoi bat, hau da, horren ergelak dugu behar scanf kontatzea agian, irakurri 113 00:05:11,350 --> 00:05:16,050 erabiltzaileak duen teklatuaren sarrera 0 kokapena sartu, AKA nulua. 114 00:05:16,050 --> 00:05:18,890 Eta hori, ere, behin betiko segfault bat eragin. 115 00:05:18,890 --> 00:05:21,590 Beraz, galdetegi horrek helburu lortzeko, genuke dute gisa horiek bai onartu 116 00:05:21,590 --> 00:05:22,740 baliozko arrazoirik. 117 00:05:22,740 --> 00:05:23,420 Bat-berdina da. 118 00:05:23,420 --> 00:05:25,720 Apur bat ñabardura gehiago da. 119 00:05:25,720 --> 00:05:28,975 >> Azkenik, programa-ren aldean memoriaren erabilera, nola egin 2 bertsioa eta 120 00:05:28,975 --> 00:05:30,350 3 bertsio datoz? 121 00:05:30,350 --> 00:05:35,070 Beraz, zer merezi du, eta ikusi genuen bat itxuraz amaigabeak posible hornikuntza 122 00:05:35,070 --> 00:05:35,770 honek erantzun. 123 00:05:35,770 --> 00:05:39,300 Eta jendearen erantzun artean, zer izan ginen mesederako, baina beste onartuko dugu 124 00:05:39,300 --> 00:05:42,250 gauzak, aipamen batzuk Izan ere 2 bertsio hori erabiltzen ari da 125 00:05:42,250 --> 00:05:44,560 pila deiturikoak. 126 00:05:44,560 --> 00:05:46,710 3 bertsio zeure erabiltzen ari da. 127 00:05:46,710 --> 00:05:50,060 Eta funtzionalki, horrek ez du benetan egiteko diferentzia asko duten guztiak. 128 00:05:50,060 --> 00:05:54,040 Egunaren amaieran, oraindik gaude besterik 50 byteko memoria lortzean. 129 00:05:54,040 --> 00:05:56,640 >> Baina hori izan zen, ahalik eta erantzun bat dugun begira ziren. 130 00:05:56,640 --> 00:05:59,730 Baina ikusiko duzu, zure galdetegiak lortu duzun bezala TFS atzera, ez dugu 131 00:05:59,730 --> 00:06:04,330 beste eztabaidak onartzen dute beren memoriaren erabilera desberdina baita. 132 00:06:04,330 --> 00:06:08,600 Baina pila eta zeure zatekeen erantzun erraz bat joan. 133 00:06:08,600 --> 00:06:11,150 Zalantzaren bat? 134 00:06:11,150 --> 00:06:12,400 Duzu Rob ematen dut. 135 00:06:12,400 --> 00:06:18,360 136 00:06:18,360 --> 00:06:20,210 >> ROB BOWDEN: Beraz, arazo 4. 137 00:06:20,210 --> 00:06:21,985 Hau da, non bete behar izan duzu byte kopurua guztiak daudelarik 138 00:06:21,985 --> 00:06:23,460 erabilitako mota ezberdinak hauek. 139 00:06:23,460 --> 00:06:24,830 Beraz, lehenengo gauza ikusten dugu. 140 00:06:24,830 --> 00:06:27,930 32-bit arkitektura bat hartzeko, CS50 tresnaren hau atsegin dute. 141 00:06:27,930 --> 00:06:33,530 Beraz buruzko funtsezko gauza bat 32-bit arkitekturen, kontatzen digu 142 00:06:33,530 --> 00:06:37,490 zehazki nola big erakuslea va den arkitektura izango da. 143 00:06:37,490 --> 00:06:43,020 >> Beraz, berehala, ezagutzen dugun erakusle motako 32-bit edo 4 byte da. 144 00:06:43,020 --> 00:06:46,010 Beraz, taula hau begira, bat nodo * erakuslea mota bat da. 145 00:06:46,010 --> 00:06:47,250 Hori 4 byte izango. 146 00:06:47,250 --> 00:06:51,640 Egitura nodo *, hori da, hitzez hitz nodo izar berdina. 147 00:06:51,640 --> 00:06:53,590 Eta beraz, hori da, 4 byte izango. 148 00:06:53,590 --> 00:06:58,270 Katea, beraz, ez du itxurarik erakuslea oraindik, baina typedef, bat 149 00:06:58,270 --> 00:07:01,590 kate besterik char * bat da, eta horrek erakuslea mota bat da. 150 00:07:01,590 --> 00:07:03,550 Beraz, 4 byte izango. 151 00:07:03,550 --> 00:07:06,150 >> Beraz, hiru horiek 4 byte guztiak dira. 152 00:07:06,150 --> 00:07:09,350 Orain, nodo eta ikasleak dira pixka bat zailagoa. 153 00:07:09,350 --> 00:07:15,160 Beraz, nodo eta ikasleari begira, ikusiko dugu nodo zenbaki oso bat eta erakuslea gisa. 154 00:07:15,160 --> 00:07:18,050 Eta ikasleen bi erakusle da barruan. 155 00:07:18,050 --> 00:07:23,340 Beraz, gutxienez, gure kasuan hemen, bide amaituko dugu tamaina kalkulatzeko duten 156 00:07:23,340 --> 00:07:27,020 struct hau besterik gehitu da guztia duten struct barruan. 157 00:07:27,020 --> 00:07:30,690 >> Beraz nodoa da, zenbaki oso bat daukagu, horietatik 4 byte da. 158 00:07:30,690 --> 00:07:32,830 Erakuslea, zein 4 byte da behar dugu. 159 00:07:32,830 --> 00:07:35,820 Eta beraz, nodo bat va hartu 8 byte. 160 00:07:35,820 --> 00:07:39,490 Eta, era berean, ikaslea, bat dugu erakuslea duten 4 byte eta beste 161 00:07:39,490 --> 00:07:40,770 erakuslea duten 4 byte da. 162 00:07:40,770 --> 00:07:43,180 Beraz Amaierara joan gehienez 8 byte izanik. 163 00:07:43,180 --> 00:07:45,480 Beraz, nodo eta ikaslearen 8 byte dira. 164 00:07:45,480 --> 00:07:48,950 Eta hiru hauek 4 byte guztiak dira. 165 00:07:48,950 --> 00:07:50,240 Horri buruzko galderak? 166 00:07:50,240 --> 00:07:54,640 167 00:07:54,640 --> 00:07:54,990 Bai. 168 00:07:54,990 --> 00:07:58,413 >> AUDIENCE: Is 64-bit bat izan zen arkitektura, zela 169 00:07:58,413 --> 00:07:59,880 denak bikoiztu? 170 00:07:59,880 --> 00:08:01,790 >> ROB BOWDEN: Ez litzateke denak bikoiztu. 171 00:08:01,790 --> 00:08:05,830 Beraz, 64 bit-arkitektura, da, berriz ere, aldaketak funtsezko gauza bat 172 00:08:05,830 --> 00:08:08,910 erakuslea da orain 64 bit. 173 00:08:08,910 --> 00:08:09,290 Bai. 174 00:08:09,290 --> 00:08:10,930 Beraz erakuslea 8 byte da. 175 00:08:10,930 --> 00:08:15,420 Beraz, hauek 4 byte zirela dira 8 byte izango. 176 00:08:15,420 --> 00:08:18,617 Ikasle batek, eta horrek bi erakusle izan zen, baita, gaur egun gertatzen den 177 00:08:18,617 --> 00:08:19,800 8 byte, 8 byte izan. 178 00:08:19,800 --> 00:08:21,980 Honez 16 byte egingo. 179 00:08:21,980 --> 00:08:25,710 >> Baina nodo batek 4 byte da oraindik. 180 00:08:25,710 --> 00:08:27,800 Beraz erakuslea da joan 8 byte izan. 181 00:08:27,800 --> 00:08:28,930 Hau 4 byte da. 182 00:08:28,930 --> 00:08:30,870 Beraz nodo bat da bakarrik joan 12 byte izan. 183 00:08:30,870 --> 00:08:36,309 184 00:08:36,309 --> 00:08:39,280 Alde horretatik, beste edozein galdera? 185 00:08:39,280 --> 00:08:44,500 Beraz, hurrengo bat, horiek dira HTTP egoera kode. 186 00:08:44,500 --> 00:08:48,000 Eta egoera deskribatzeko behar izan duzu zein egoeratan agian horiek 187 00:08:48,000 --> 00:08:49,810 izango duzu itzuli. 188 00:08:49,810 --> 00:08:56,730 arazoren bat duten ikasle batzuk entzun nuen izan da egin saiatu dutela 189 00:08:56,730 --> 00:08:58,950 akatsak bezeroaren amaieran izango da. 190 00:08:58,950 --> 00:09:02,320 Beraz, eskaera egiten saiatzen gara zerbitzariari, zerbait doa 191 00:09:02,320 --> 00:09:03,820 gure amaieran gaizki. 192 00:09:03,820 --> 00:09:07,660 Baina, oro har, kode hauek dira ari zerbitzariak itzuli. 193 00:09:07,660 --> 00:09:11,720 Beraz irudikatu zer joan nahi dugun oker edo eskuinera zerbitzarian duten 194 00:09:11,720 --> 00:09:14,280 gauza horiek itzuli beharreko eragiten. 195 00:09:14,280 --> 00:09:18,670 Zergatik alda daiteke zerbitzari bat itzultzen egoera kode 200? 196 00:09:18,670 --> 00:09:19,920 Edozein pentsamenduak? 197 00:09:19,920 --> 00:09:23,360 198 00:09:23,360 --> 00:09:23,730 >> Bai. 199 00:09:23,730 --> 00:09:27,850 Beraz, zerbait arrakastaz buruz eskatuta joan bidez. 200 00:09:27,850 --> 00:09:30,260 Eta itzultzeko gai ari dira galdetu duzuna da. 201 00:09:30,260 --> 00:09:32,240 Beraz, dena ondo legoke. 202 00:09:32,240 --> 00:09:35,662 Zer 302 inguru aurkitu? 203 00:09:35,662 --> 00:09:36,618 Bai. 204 00:09:36,618 --> 00:09:39,008 >> AUDIENCE: Zerbitzariak bila nenbilen zer da, zuk eskatu da. 205 00:09:39,008 --> 00:09:40,442 Baina ezin izan dugu aurkitu. 206 00:09:40,442 --> 00:09:42,850 Beraz, ez dago errore bat da. 207 00:09:42,850 --> 00:09:47,720 >> ROB BOWDEN: Beraz zerbitzariari zen zer nahi duzun bila. 208 00:09:47,720 --> 00:09:51,682 Beraz, besterik ez da hemen bilatzen, 302 aurkitu, gai aurkitu zen. 209 00:09:51,682 --> 00:09:53,035 >> IKUSLEEN: Sentitzen dut. 210 00:09:53,035 --> 00:09:54,388 Aurkitu nahi du aurkitu zutela adierazi zuten. 211 00:09:54,388 --> 00:09:55,638 Barkatu. 212 00:09:55,638 --> 00:09:58,120 213 00:09:58,120 --> 00:10:00,160 >> ROB BOWDEN: Beraz, 302 aurkitu. 214 00:10:00,160 --> 00:10:02,350 Zerbitzariari aurkitzeko gai da zer nahi duzu. 215 00:10:02,350 --> 00:10:04,640 >> AUDIENCE: Baina ez da erakusteak? 216 00:10:04,640 --> 00:10:08,180 >> ROB BOWDEN: arteko aldea honen 302 eta 200 dela 217 00:10:08,180 --> 00:10:09,280 nahi duzuna daki. 218 00:10:09,280 --> 00:10:12,000 Baina ez da zehazki non Eskatu nahi duzun. 219 00:10:12,000 --> 00:10:14,580 Beraz, 302 redirect tipikoa da. 220 00:10:14,580 --> 00:10:16,510 Beraz orri bat eskatu duzu. 221 00:10:16,510 --> 00:10:19,590 Daki, oh, nahi dut duzu itzultzeko honetarako. 222 00:10:19,590 --> 00:10:21,070 Baina honen URL ezberdin bat da. 223 00:10:21,070 --> 00:10:23,534 Beraz, beno, egia esan, hau nahi duzun. 224 00:10:23,534 --> 00:10:26,950 >> DAVID J. MALAN: duela esan zuen pieza bat da eman dugu you guys redirect bat 225 00:10:26,950 --> 00:10:30,830 duten goiburua funtzioa erabiltzen funtzioa horretan, aldi berean, inprimatutako kokapena, 226 00:10:30,830 --> 00:10:34,110 bi puntu, eta gero, URLa zein erabiltzaileari baztertu nahi dituzun. 227 00:10:34,110 --> 00:10:37,480 Nahiz eta ez duzu ikusi 302 esplizituki han, zer PHP da 228 00:10:37,480 --> 00:10:41,550 litzateke magikoki txertatu goiburua gisa esanez Rob zehazki zer esan han - 229 00:10:41,550 --> 00:10:41,930 aurkitu. 230 00:10:41,930 --> 00:10:43,180 Baina hemen ordez. 231 00:10:43,180 --> 00:10:45,960 232 00:10:45,960 --> 00:10:46,160 >> ROB BOWDEN: Ados. 233 00:10:46,160 --> 00:10:47,630 Beraz, zein 403 inguru debekatuta? 234 00:10:47,630 --> 00:10:52,240 235 00:10:52,240 --> 00:10:57,120 >> AUDIENCE: uste dut dela zerbitzariari funtsean esaten duten bezeroak 236 00:10:57,120 --> 00:10:59,970 ezin hasiera orrian sartzeko. 237 00:10:59,970 --> 00:11:03,260 >> ROB BOWDEN: Beraz, bai. 238 00:11:03,260 --> 00:11:07,670 Beno, erantzun tipikoa ginen espero bezala, zerbait fitxategiak da 239 00:11:07,670 --> 00:11:08,920 ez dira era egokian chmodded. 240 00:11:08,920 --> 00:11:11,590 Hori da ziurrenik azpian zer egoera horiek ikusi duzu. 241 00:11:11,590 --> 00:11:18,920 Baina bada arrazoia da, bezeroak errua izan liteke hemen. 242 00:11:18,920 --> 00:11:20,440 Ez da benetan egoera kode beste - 243 00:11:20,440 --> 00:11:21,210 401. 244 00:11:21,210 --> 00:11:22,820 Beraz, horiek oso antzekoak dira. 245 00:11:22,820 --> 00:11:24,590 >> 401 baimenik gabe da. 246 00:11:24,590 --> 00:11:26,130 Eta 403 debekatuta dago. 247 00:11:26,130 --> 00:11:31,890 Eta, beraz, baimenik gabe duzu esklusiboki lortuko ez zaude erregistratuta badago oraindik sartu 248 00:11:31,890 --> 00:11:34,520 Baina saioa hasten Beharbada duten baimena duzu. 249 00:11:34,520 --> 00:11:37,930 Baina zu dagoeneko erregistratuta badago eta zuk oraindik ez dute eskumenik, ondoren 250 00:11:37,930 --> 00:11:40,140 halaber, debekatuta lor dezakezu. 251 00:11:40,140 --> 00:11:45,320 Beraz ari zaren saioa hasita badago, eta ez dute baimena, debekatuta dago, halaber, 252 00:11:45,320 --> 00:11:47,164 zerbait lor dezakezu. 253 00:11:47,164 --> 00:11:48,900 >> DAVID J. MALAN: Eta by mekanismoa eta horrek arazo horiek izan ohi dira 254 00:11:48,900 --> 00:11:53,100 zerbitzarian konpondu da zer komandoaren bidez? 255 00:11:53,100 --> 00:11:57,700 Chmod, egiten bada, hain zuzen ere, baimen bat fitxategia edo gidan emateko. 256 00:11:57,700 --> 00:11:59,220 >> ROB BOWDEN: Ondoren, 404 ez da aurkitu. 257 00:11:59,220 --> 00:12:03,100 258 00:12:03,100 --> 00:12:03,470 Bai. 259 00:12:03,470 --> 00:12:10,150 Beraz 302 ez bezala non ez zen zehazki non galdetuz baina zu zer daki 260 00:12:10,150 --> 00:12:12,710 nahi baduzu, hau, besterik ez da ez daki zer nahi duzun. 261 00:12:12,710 --> 00:12:15,648 Eta ez duzu hau eskatzeko zerbait baliozko. 262 00:12:15,648 --> 00:12:18,580 263 00:12:18,580 --> 00:12:22,310 418 teapot bat naiz eta, ondoren, 500 Barneko zerbitzari. 264 00:12:22,310 --> 00:12:24,870 Beraz, zergatik nahi duzu? 265 00:12:24,870 --> 00:12:26,120 >> Beraz segfault - 266 00:12:26,120 --> 00:12:28,760 267 00:12:28,760 --> 00:12:30,640 Egia esan, ez dakit kalifikatzeko hau estandar. 268 00:12:30,640 --> 00:12:34,850 Baina zure PHP kodea zerbait izan bada bertan gaizki, teorian, izan liteke 269 00:12:34,850 --> 00:12:39,650 benetan segfault, eta kasu horretan, hau 500 Barneko zerbitzari error, zerbait 270 00:12:39,650 --> 00:12:41,400 da zure zerbitzari gaizki konfigurazioa. 271 00:12:41,400 --> 00:12:44,320 Edo han sintaxi errore bat da Zure PHP kodean. 272 00:12:44,320 --> 00:12:46,095 Edo zerbait txarra gertatzen da. 273 00:12:46,095 --> 00:12:48,320 >> DAVID J. MALAN: ikusi genuen segfault Batzuk jendearen erantzun artean. 274 00:12:48,320 --> 00:12:49,490 Eta teknikoki, gerta zitekeela. 275 00:12:49,490 --> 00:12:53,820 Baina horrek PHP bat, programa izango litzateke beste pertsona idatzitako, benetan 276 00:12:53,820 --> 00:12:57,790 segfaulted, zein bada bakarrik pertsona horiek izorratu eta idatzi buggy kodean 277 00:12:57,790 --> 00:13:00,680 haien interprete litzateke PHP berak segfault. 278 00:13:00,680 --> 00:13:06,460 Beraz, nahiz eta 500 segfault bat bezalakoa da espirituz, ia beti da 279 00:13:06,460 --> 00:13:10,490 konfigurazio fitxategia alean baten emaitza zure web zerbitzari batera edo, Rob esan bezala, 280 00:13:10,490 --> 00:13:13,200 syntax error bat, zu bezalako ez zuen aurrekontua ixteko. 281 00:13:13,200 --> 00:13:16,180 Edo puntu eta koma bat galdu duzu nonbait. 282 00:13:16,180 --> 00:13:23,677 >> IKUSLEEN: Anezka pset du, I Uste noiz egin nuen behin klik egindakoan dut 283 00:13:23,677 --> 00:13:26,300 nabigatzaileak, baina ezer ez zen sortu, zer deitu dute orri zuriak. 284 00:13:26,300 --> 00:13:28,056 Baina baita kodearen izan zen. 285 00:13:28,056 --> 00:13:29,440 Uste dut JavaScript zen, ezta? 286 00:13:29,440 --> 00:13:29,770 >> ROB BOWDEN: Bai. 287 00:13:29,770 --> 00:13:31,180 >> AUDIENCE: akats horrek oraindik etorri? 288 00:13:31,180 --> 00:13:34,290 >> ROB BOWDEN: Beraz, ez litzateke ahaztuak Akats hau delako dena 289 00:13:34,290 --> 00:13:36,930 web zerbitzari ikuspegitik guztiz fina izan zen. 290 00:13:36,930 --> 00:13:39,090 Baina index.html eskatu duzu. 291 00:13:39,090 --> 00:13:42,000 Shuttle.js Eskatutako eta service.js. 292 00:13:42,000 --> 00:13:44,580 Eta arrakastaz itzultzeko gai izan zen duzu gauza horiek guztiak egiteko - 293 00:13:44,580 --> 00:13:44,980 200. 294 00:13:44,980 --> 00:13:45,680 Ados. 295 00:13:45,680 --> 00:13:49,330 Hori besterik ez da bakarrik zure nabigatzailean saiatu JavaScript kodea interpretatzen duen 296 00:13:49,330 --> 00:13:51,370 nik bezala, itxaron, hau ez da baliozko JavaScript error. 297 00:13:51,370 --> 00:13:55,720 298 00:13:55,720 --> 00:13:58,210 Beste edozein galdera? 299 00:13:58,210 --> 00:14:00,750 Ondo da. 300 00:14:00,750 --> 00:14:04,120 >> DAVID J. MALAN: Beraz, hurrengo up kopurua 11 izan zen. 301 00:14:04,120 --> 00:14:07,610 Eta 11 scariest zen jende asko da. 302 00:14:07,610 --> 00:14:14,620 303 00:14:14,620 --> 00:14:18,570 Beraz, hemen, kontuan izan, garrantzitsuena izan zen hori izan zen, hain zuzen ere, inguru 304 00:14:18,570 --> 00:14:19,840 bi aldiz lotuta zerrenda. 305 00:14:19,840 --> 00:14:23,160 Baina hori ez zen iazko berdina bi aldiz lotuta zerrenda arazoa, 306 00:14:23,160 --> 00:14:27,170 eta ez dute Oharra eman duzula Zerrendako zitekeen, hain zuzen ere, izango ordenatu gabe. 307 00:14:27,170 --> 00:14:29,640 >> Beraz, hain zuzen ere, zerrenda hori Unsorted zen eta hain zuzen, hitz hori zela 308 00:14:29,640 --> 00:14:32,930 azpimarratu du han zen ekarri transmititzea hau da, benetan sinplifikazio bat 309 00:14:32,930 --> 00:14:35,430 bestela zer izan zen duen gehiago Challenging arazo bat 310 00:14:35,430 --> 00:14:36,600 eta luzeagoa da. 311 00:14:36,600 --> 00:14:40,760 Beraz, akatsa hemen komun bat jarri zen Iazko irtenbide zure bat on 312 00:14:40,760 --> 00:14:45,580 pager eta gero besterik ez blindly kopiatu duten erantzuna, eta horrek eskubidea da gisa behera 313 00:14:45,580 --> 00:14:48,520 desberdinak galdera bati erantzun espiritua antzekoak. 314 00:14:48,520 --> 00:14:51,340 Baina ñabardurak hemen honakoak izan dira. 315 00:14:51,340 --> 00:14:55,200 >> Beraz, bat, dute nodo bat izendatu dugu, eta modurik ohikoena hemen definitutako. 316 00:14:55,200 --> 00:14:59,230 Ondoren zehaztutako dugu zerrenda izan globala erakuslea hasieratu null. 317 00:14:59,230 --> 00:15:02,150 Ondoren, itxuraz, bi funtzio ez dago Hemen prototipoak dugu, txertatze 318 00:15:02,150 --> 00:15:03,240 eta kendu. 319 00:15:03,240 --> 00:15:06,600 Eta ondoren lagina kode batzuk ditugu hemen insertions mordo bat egiten. 320 00:15:06,600 --> 00:15:09,930 Eta, ondoren, amaitzeko eskatzen dizugu du txertatze ezartzeko azpitik horietan 321 00:15:09,930 --> 00:15:14,380 modu batean txertatzen dela n zerrendan sartu konstante denboran, halaber, azpimarratu, 322 00:15:14,380 --> 00:15:15,730 lehendik ere badago ere. 323 00:15:15,730 --> 00:15:20,600 >> Beraz, txertatu ahal izatearen edertasuna konstante denboran da esan nahi 324 00:15:20,600 --> 00:15:23,060 Txertatu duzula nodo berria non? 325 00:15:23,060 --> 00:15:23,690 Aurrealdean sartu. 326 00:15:23,690 --> 00:15:27,760 Beraz kanporatzea da, zorionez, gutxienez Kasu hori eskatzen erabilitako bat 327 00:15:27,760 --> 00:15:30,520 kode lerro are gehiago, bezala egin iaz eta nahiz klasean dugunean 328 00:15:30,520 --> 00:15:34,040 Gauza mota honen bidez hitz egin gizakiak eta batzuekin 329 00:15:34,040 --> 00:15:35,250 hitzezko sasi kodea. 330 00:15:35,250 --> 00:15:39,190 Beraz, konponbidea hemen, egin dezagun gorako hori besterik bisuala on bat izateko 331 00:15:39,190 --> 00:15:40,480 pantaila. 332 00:15:40,480 --> 00:15:42,230 >> Ohartu, honako hau egiten ari gara. 333 00:15:42,230 --> 00:15:45,140 Eta, gainera, beste sinplifikazio nabarituko zela da, nahiz 334 00:15:45,140 --> 00:15:48,280 dagoeneko presente, beraz, horrek esan nahi du, nahiz zenbakia da dagoeneko, ahal duzun 335 00:15:48,280 --> 00:15:50,280 besterik blindly txertatzeko beste kopia. 336 00:15:50,280 --> 00:15:52,560 Eta hori, ere, zen ekarri izan nahi du sinplifikazioa, ezin izan duzu beraz 337 00:15:52,560 --> 00:15:54,940 zentratu da, benetan, gehiago batzuk parte intelektualki interesgarri eta 338 00:15:54,940 --> 00:15:58,090 Akats batzuk osagarriak ez soilik egiaztapena emandako denbora mugatua. 339 00:15:58,090 --> 00:16:02,880 >> Beraz lagin irtenbide honetan, esleitu dugu ezkerreko eskuko on erakuslea 340 00:16:02,880 --> 00:16:04,510 alboko hemen nodo bat. 341 00:16:04,510 --> 00:16:07,190 Orain, konturatzen erakuslea, gisa Rob esan, bit 32 bakarrik da. 342 00:16:07,190 --> 00:16:09,060 Eta ez du benetan eduki Helbide bat arte 343 00:16:09,060 --> 00:16:09,970 esleitu helbide. 344 00:16:09,970 --> 00:16:13,220 Eta hori egiten dugu eskuineko on malloc bidez alboko. 345 00:16:13,220 --> 00:16:16,550 Herritar on bat bezala, begiratu dugu malloc ez da, hain zuzen ere, baliogabea da, beraz, 346 00:16:16,550 --> 00:16:18,690 ez ustekabean sortzen dugu segfault hemen. 347 00:16:18,690 --> 00:16:22,840 Eta edonoiz bizitzan malloc erabiliz gero, zuk nulua behar egiaztatuz, kausituko 348 00:16:22,840 --> 00:16:24,090 sotil akatsen bat duzu. 349 00:16:24,090 --> 00:16:28,460 >> Ondoren nulua duten abiarazi dugu arabera n eta aurreko eta hurrengo esleitzea. 350 00:16:28,460 --> 00:16:32,450 Eta kasu honetan hemen, I hasieratu Internet aurreko, berri hau, zeren 351 00:16:32,450 --> 00:16:34,780 nodoa da berria izango da nire zerrenda hasieran. 352 00:16:34,780 --> 00:16:37,050 Beraz, ez da joan aurretik ezer ez. 353 00:16:37,050 --> 00:16:42,010 Eta funtsean, erantsi nahi dut existitzen den nodoaren arabera zerrendako 354 00:16:42,010 --> 00:16:44,700 bera zerrendara hurrengo berdinak ezarriz. 355 00:16:44,700 --> 00:16:47,120 Baina ez dut besterik egin oraindik. 356 00:16:47,120 --> 00:16:51,780 Zerrenda bera bazegoen, hala bada, eta ez dago nodo gutxienez bat izan zen 357 00:16:51,780 --> 00:16:57,070 dagoeneko leku, hau zerrendan badago Hemen eta nodo berri bat txertatu dut hemen, I 358 00:16:57,070 --> 00:17:01,840 ziurtatu egin behar nire ohia nodo atzeraka puntuak nire nodo berria, 359 00:17:01,840 --> 00:17:04,260 hau da, izan ere, berriro ere, bi aldiz lotuta zerrenda. 360 00:17:04,260 --> 00:17:05,460 >> Beraz behatu kontrol bat egiten dugu. 361 00:17:05,460 --> 00:17:10,109 Zerrenda ez da nulua bada, ez da dagoeneko nodo bat edo gehiago badaude, orduan 362 00:17:10,109 --> 00:17:12,470 gehitzen duten atzera erreferentzia nolabait esateko. 363 00:17:12,470 --> 00:17:15,420 Eta gero oso azken gauza behar dugu egin benetan eguneratu da globala 364 00:17:15,420 --> 00:17:20,329 zerrenda aldakorra bera seinalatu nodo berri horretara. 365 00:17:20,329 --> 00:17:21,790 Bai. 366 00:17:21,790 --> 00:17:26,579 >> AUDIENCE: erakuslea gezi batean [INAUDIBLE] berdinen null, ez dela 367 00:17:26,579 --> 00:17:30,420 Zerrendako aurre delako Zerrendako nulua da? 368 00:17:30,420 --> 00:17:30,596 >> DAVID J. MALAN: Laguia. 369 00:17:30,596 --> 00:17:34,500 Besterik ez da, niretzat proaktiboan izateaz ibili, horretan hau da nire bada 370 00:17:34,500 --> 00:17:38,730 agian, nodo batzuk gehiago jatorrizko zerrenda hemen baino gehiago eta txertatu dut nire 371 00:17:38,730 --> 00:17:42,380 hemen baino gehiago nodo berria, ez da joan hemen ez da ezer izan. 372 00:17:42,380 --> 00:17:44,720 Eta ideia hori harrapatu nahi dut Lotura aurreko ezarriz 373 00:17:44,720 --> 00:17:47,740 nodo berria on nulua. 374 00:17:47,740 --> 00:17:51,410 Eta, ustez, nire kodea zuzena bada eta ez dago beste txertatzeko modu 375 00:17:51,410 --> 00:17:54,970 funtzio hori baino beste nodo, ustez, zerrenda nahiz eta dagoeneko 376 00:17:54,970 --> 00:18:00,090 bertan nodo bat edo gehiago, zentzuzkoa zerrenda, lehen nodoa, izan litzateke bat 377 00:18:00,090 --> 00:18:02,750 aurreko null beraren erakuslea. 378 00:18:02,750 --> 00:18:03,550 >> AUDIENCE: Eta jarraipen-a besterik ez. 379 00:18:03,550 --> 00:18:08,139 Arrazoia erakuslea jarri duzu hurrengo berdinen zerrenda erakuslea da egiten ari zaren 380 00:18:08,139 --> 00:18:13,579 zerrendan duten seinalatuz aurretik hurrengo, asmatzen dut - 381 00:18:13,579 --> 00:18:14,980 I don't - 382 00:18:14,980 --> 00:18:15,450 besterik zerrendatzen? 383 00:18:15,450 --> 00:18:16,400 >> DAVID J. MALAN: Zehazki. 384 00:18:16,400 --> 00:18:19,400 Eta, beraz, utzi bi kasuetan kontuan hartu benetan en hemen benetan, nahiz eta 385 00:18:19,400 --> 00:18:22,070 ordena horiek kontuan hartu beharko dugu ez dela kodearen berdina nahiko. 386 00:18:22,070 --> 00:18:26,250 Baina maila altu batean, honetan adierazten bada zerrendatu eta hau 32-bit bat da 387 00:18:26,250 --> 00:18:29,560 erakuslea, eszenatokia errazena da hau lehenetsita nulua dela. 388 00:18:29,560 --> 00:18:33,010 Eta demagun Txertatu nahi dut kopurua 50 lehen zenbakia izan zen. 389 00:18:33,010 --> 00:18:37,640 Beraz, ez dut aurretik joan eta esleitu joan nodo bat, hau da, eduki joan 390 00:18:37,640 --> 00:18:38,770 Hiru eremuak - 391 00:18:38,770 --> 00:18:42,070 n, aurreko eta hurrengo. 392 00:18:42,070 --> 00:18:44,580 >> 50 zenbakia jarri nahi dut hemen, hau delako n izango da. 393 00:18:44,580 --> 00:18:46,130 Hurrengo hau izango da. 394 00:18:46,130 --> 00:18:48,530 Eta hau aurreko izango dira. 395 00:18:48,530 --> 00:18:50,910 Eta beraz, zer egin behar dut kasu honetan? 396 00:18:50,910 --> 00:18:53,900 Beno, besterik ez dut egin lerro 1 hemen. 397 00:18:53,900 --> 00:18:55,400 Erakuslea n lortzen n. 398 00:18:55,400 --> 00:18:57,740 Orduan nuen, esaten aurreko null jaso behar. 399 00:18:57,740 --> 00:18:59,470 Beraz, hau da nulua izango. 400 00:18:59,470 --> 00:19:01,365 Ondoren, naiz hurrengoa esan nahi du joan da zerrenda lortu du. 401 00:19:01,365 --> 00:19:05,150 >> Eta hau besterik lanak eta. 402 00:19:05,150 --> 00:19:06,500 Hau nulua da. 403 00:19:06,500 --> 00:19:10,620 Eta, beraz, esaten dut berria nodo hurrengo eremuan lortu behar da, edozein dela ere, hau da. 404 00:19:10,620 --> 00:19:12,570 Beraz, null beste jartzen badira. 405 00:19:12,570 --> 00:19:14,510 Eta, ondoren, azken gauza Dut check dago hemen. 406 00:19:14,510 --> 00:19:17,870 Zerrenda ez da nulua berdina bada, baina null berdina da, beraz, saltatzen dugu 407 00:19:17,870 --> 00:19:18,470 guztiz. 408 00:19:18,470 --> 00:19:23,520 Eta beraz, ez dut zerrenda hurrengoa da lortzen erakuslea, zein pictorially emaitzak 409 00:19:23,520 --> 00:19:25,570 Horrelako irudi bat. 410 00:19:25,570 --> 00:19:26,620 Beraz, eszenatoki bat da. 411 00:19:26,620 --> 00:19:30,490 >> Eta horri buruz galdezka ziren duzuna zehazki, hau bezalako egoera bat da, 412 00:19:30,490 --> 00:19:33,190 non dagoeneko jaso dugu bat-listak bat. 413 00:19:33,190 --> 00:19:36,240 Eta atzera gora joaten naiz jatorrizko bada Arazoa comunicado, hurrengo dugu 414 00:19:36,240 --> 00:19:39,320 txertatzeko adibidez, 34 da, besterik eztabaidak eztabaida. 415 00:19:39,320 --> 00:19:46,210 Beraz, naiz besterik erosoan joan ahal marraztu duten hemen baino gehiago. 416 00:19:46,210 --> 00:19:47,540 Besterik ez dut malloced. 417 00:19:47,540 --> 00:19:49,310 Demagun I egiaztapena naiz nulua da. 418 00:19:49,310 --> 00:19:51,870 >> Orain, nik nahi hasieratu noa n 34 izan. 419 00:19:51,870 --> 00:19:53,040 Eta honen n izango da. 420 00:19:53,040 --> 00:19:54,670 Hurrengo hau izango da. 421 00:19:54,670 --> 00:19:57,100 Eta hau aurreko izango dira. 422 00:19:57,100 --> 00:19:59,370 Dezagun ziur ez nuen get honetan atzeraka. 423 00:19:59,370 --> 00:20:01,110 Aurreko dator lehen definizioan. 424 00:20:01,110 --> 00:20:03,070 Utzi hau konpondu zidan. 425 00:20:03,070 --> 00:20:04,410 Hau aurreko da. 426 00:20:04,410 --> 00:20:05,780 Hau da hurrengoa. 427 00:20:05,780 --> 00:20:08,620 Hauek berdinak dira, nahiz eta, dezagun koherentea mantentzeko. 428 00:20:08,620 --> 00:20:09,450 >> Aurreko. 429 00:20:09,450 --> 00:20:11,030 Hau da hurrengoa. 430 00:20:11,030 --> 00:20:16,310 Beraz, besterik ez dut malloced nire ohar, egiaztaturik nulua da, esleitutako 34 nodo sartu. 431 00:20:16,310 --> 00:20:17,570 Aurreko lortzen nulua. 432 00:20:17,570 --> 00:20:19,480 Beraz, horrek ematen dit horrek. 433 00:20:19,480 --> 00:20:21,010 Hurrengoa lortzen zerrenda. 434 00:20:21,010 --> 00:20:22,370 Beraz zerrenda hau dago. 435 00:20:22,370 --> 00:20:26,520 Beraz, hau, orain bera da honen marrazketa gisa arrow, beraz, puntu bat behar dute 436 00:20:26,520 --> 00:20:27,940 berean. 437 00:20:27,940 --> 00:20:30,400 Eta ondoren dut egiaztapena bada zerrenda ez da nulua berdina. 438 00:20:30,400 --> 00:20:31,740 Eta ez da oraingo honetan. 439 00:20:31,740 --> 00:20:35,580 Ondoren, naiz zerrenda egin da joan Aurreko erakuslea lortzen. 440 00:20:35,580 --> 00:20:39,700 >> Beraz zerrendatu aurreko lortzen PTR. 441 00:20:39,700 --> 00:20:44,300 Beraz, hau jarriz eragina du gezi grafiko bat hemen. 442 00:20:44,300 --> 00:20:46,930 Eta hori pixka bat lortzean Wavy, lerroak. 443 00:20:46,930 --> 00:20:50,780 Eta gero, azkenik, I egunera zerrendara erakuslea seinalatu. 444 00:20:50,780 --> 00:20:55,560 Beraz, gaur egun hau tipo hau seinalatzen. 445 00:20:55,560 --> 00:20:57,170 Eta orain, egin dezagun azkar bat utzi behatu egiaztatzeko. 446 00:20:57,170 --> 00:20:59,470 >> Hauek dira, hau da, aldagai globala. 447 00:20:59,470 --> 00:21:02,850 Lehen nodoa da, hain zuzen ere, 34, delako Gezi duten honako naiz. 448 00:21:02,850 --> 00:21:05,210 Eta hori zuzena da nahi dudalako zerrendaren hasieran txertatzeko 449 00:21:05,210 --> 00:21:06,070 nodo berri guztiak. 450 00:21:06,070 --> 00:21:08,860 Bere hurrengo eremua niri eramaten tipo honi. 451 00:21:08,860 --> 00:21:10,710 Jarraitzea badut, sakatu dut hurrengo nulua da. 452 00:21:10,710 --> 00:21:11,760 Beraz, ez dago gehiago zerrenda ez da. 453 00:21:11,760 --> 00:21:14,460 Aurreko hit badut, ez dut lortzen atzera non espero dut. 454 00:21:14,460 --> 00:21:16,435 >> Beraz, ez dago erakusle bat gutxi daude oraindik, jakina, manipulatzeko. 455 00:21:16,435 --> 00:21:19,870 Baina, hain zuzen, esan zinen egin hau konstante denboran bakarrik esan nahi duzu 456 00:21:19,870 --> 00:21:22,910 gauza-kopuru mugatu bat dute egin bazaizu onartzen. 457 00:21:22,910 --> 00:21:24,290 Eta zer da zenbaki hori? 458 00:21:24,290 --> 00:21:25,185 Urrats bat izango da agian. 459 00:21:25,185 --> 00:21:25,700 Agian bi, izango da. 460 00:21:25,700 --> 00:21:26,820 1.000 urrats izan liteke. 461 00:21:26,820 --> 00:21:30,500 Baina finitua da, eta horrek esan nahi ezin duzu dute edozein begizta moduko den gertatzen 462 00:21:30,500 --> 00:21:32,010 Hemen, errekurtsibitate gabe, begiztak gabe. 463 00:21:32,010 --> 00:21:37,390 Besterik ez da lortu hard-lerroen izateko lagin honetan dugun kode gisa. 464 00:21:37,390 --> 00:21:42,330 >> Beraz, hurrengo arazoa 12 eskatu digu remove ezartzeko osatzeko 465 00:21:42,330 --> 00:21:46,740 modu bat da kentzen hemen behean n denbora lineala zerrendan. 466 00:21:46,740 --> 00:21:48,740 Beraz, apur bat gehiago duzu wiggle gela orain. 467 00:21:48,740 --> 00:21:52,380 N dela suposatuko dezakezu, bada gaur zerrendan, gaur izango da 468 00:21:52,380 --> 00:21:53,340 gabe, behin baino gehiagotan. 469 00:21:53,340 --> 00:21:56,770 Eta hori ere ekarri bat galdetegi oinarritutako izateko errazte hipotesi, beraz, 470 00:21:56,770 --> 00:21:59,780 duten zenbakia 50 nonbait aurkitu ezkero zerrendan, ez duzu ere 471 00:21:59,780 --> 00:22:02,890 arte jarraitu kezkatu batetik bestera joateko, posible guztietan bila 472 00:22:02,890 --> 00:22:06,990 50 kopia, besterik devolve litzateke Denbora mugatu batean minutia batzuk sartu. 473 00:22:06,990 --> 00:22:10,460 >> Beraz remove-rekin, hau izan zen behin betiko gehiago Challenging eta gehiago 474 00:22:10,460 --> 00:22:11,640 idatzi kodea. 475 00:22:11,640 --> 00:22:14,990 Baina hasiera batean, Egia da, agian jasanezinak eta antzeko zerbait bilatzeko 476 00:22:14,990 --> 00:22:17,060 ez da ez izan dezakezu modu etorri galdetegi baten gainean. 477 00:22:17,060 --> 00:22:22,450 Baina banakako urratsak ardatz badugu, zorionez, bat-batean geratuko da 478 00:22:22,450 --> 00:22:26,060 greba banakako horietako bakoitzean urrats bistako zentzuzkoa 479 00:22:26,060 --> 00:22:27,080 atzera begirako. 480 00:22:27,080 --> 00:22:28,200 Beraz dezagun begirada bat. 481 00:22:28,200 --> 00:22:32,570 >> Beraz, lehenengo, erakuslea abiarazi dugu izan zerrendatu bera. 482 00:22:32,570 --> 00:22:36,040 Denbora lineala nahi dudalako, baliabide Begizta batzuk izan dut. 483 00:22:36,040 --> 00:22:39,730 Eta hemen zehar batetik bestera joateko modu komun bat zerrenda egitura baten edo edozein motatako nodo 484 00:22:39,730 --> 00:22:43,860 egituraren iteratively da hartu datuen aurrean erakuslea 485 00:22:43,860 --> 00:22:46,990 egitura eta orduan besterik hasteko eguneratzeari da eta oinez zure bidea 486 00:22:46,990 --> 00:22:48,650 Datu-egitura bidez. 487 00:22:48,650 --> 00:22:50,040 Beraz, ez dut zehazki hori egin. 488 00:22:50,040 --> 00:22:54,260 >> Erakuslea, berriz, aldi baterako nire aldakorra, ez da nulua berdina, dezagun 489 00:22:54,260 --> 00:22:55,660 joan aurretik eta egiaztatzeko. 490 00:22:55,660 --> 00:22:56,910 Ba zortea lortu dut? 491 00:22:56,910 --> 00:23:01,740 N eremua da nodoaren ari naiz une batean berdina begira 492 00:23:01,740 --> 00:23:03,380 zenbakia bilatzen ari naiz? 493 00:23:03,380 --> 00:23:05,410 Eta hala bada, egin dezagun zerbait utzi. 494 00:23:05,410 --> 00:23:10,020 Orain, nabarituko hau bada baldintza inguratzen osoa 495 00:23:10,020 --> 00:23:11,520 kode lerro jarraituz. 496 00:23:11,520 --> 00:23:14,610 Honi buruzko zaintzen dut gauza bakarra da - galdera zenbaki bat aurkitzeko. 497 00:23:14,610 --> 00:23:18,010 Beraz, ez da beste inor ez, eta horrek errazten du gauza kontzeptualki pixka bat. 498 00:23:18,010 --> 00:23:22,040 >> Baina orain, konturatu nintzen, eta agian duzu bakarrik konturatu hau pentsatzen ondoren 499 00:23:22,040 --> 00:23:24,720 pixka bat bidez, ez da egia esan, bi kasuetan hemen. 500 00:23:24,720 --> 00:23:28,060 Da bat non nodo at da zerrendan, hau da, baten hasieratik 501 00:23:28,060 --> 00:23:31,040 txiki gogaikarriak, hori delako bat Kasu berezietan, eta aurre egin behar duzulako 502 00:23:31,040 --> 00:23:33,340 gauza honekin, zein anomalia bakarra. 503 00:23:33,340 --> 00:23:35,720 Nonahi bestela zerrendan, Gauza bera da. 504 00:23:35,720 --> 00:23:38,050 Badira aurreko nodo bat eta hurrengo bat da Nodo, aurreko nodoa, hurrengo nodoa. 505 00:23:38,050 --> 00:23:40,940 Baina tipo hau berezia txiki bat da zuen hasieran bada. 506 00:23:40,940 --> 00:23:48,710 >> Beraz erakuslea zerrendan berdin bada bera, hain naiz hasieran bada 507 00:23:48,710 --> 00:23:53,960 zerrenda eta aurkitu dut n, behar dut gauza pare bat egiteko. 508 00:23:53,960 --> 00:23:59,230 Bat-zerrenda aldatzeko behar dut hurrengo eremuan, 50 seinalatu. 509 00:23:59,230 --> 00:24:01,270 Beraz suposatzen duten saiatzen ari naiz 34 kentzeko. 510 00:24:01,270 --> 00:24:03,560 Beraz, tipo hau en got joan kanpoan une bat besterik ez. 511 00:24:03,560 --> 00:24:07,210 >> Beraz, ez dut esango, zerrendan lortzen erakuslea hurrengo. 512 00:24:07,210 --> 00:24:08,570 Beno, hau erakuslea da. 513 00:24:08,570 --> 00:24:10,360 Hurrengoa da hemen seinalatuz. 514 00:24:10,360 --> 00:24:17,470 Beraz, hau gezi eskubide hori aldatzen Orain lasaia honetan seinalatu hemen. 515 00:24:17,470 --> 00:24:19,580 Orain, gogoratu, daukagun tenporala aldagai bat. 516 00:24:19,580 --> 00:24:23,520 Beraz, ez dugu edozein nodo umezurtz, dudalako ere tipo hau izan nire 517 00:24:23,520 --> 00:24:25,010 remove ezartzeko. 518 00:24:25,010 --> 00:24:29,600 Beraz, orain, zerrenda bera ez da nulua, Zerbait apur bat konpondu behar dut. 519 00:24:29,600 --> 00:24:32,690 >> Orain ziurtatu gezi hori behar dut, hau da, aldez aurretik seinalatuz 520 00:24:32,690 --> 00:24:36,830 50 eta 34 bitartekoa, hau lortu urrun joan, delako kentzeko saiatzen naiz bada 521 00:24:36,830 --> 00:24:41,910 34, 50 izan hobeto ez mantentzeko edozein motatako itzuli da erreferentzia gisa 522 00:24:41,910 --> 00:24:42,820 gezi iradoki. 523 00:24:42,820 --> 00:24:44,820 Beraz, lerro hau, egin dut. 524 00:24:44,820 --> 00:24:46,520 Beraz, ondoren egin dut. 525 00:24:46,520 --> 00:24:48,040 Kasu horretan, benetan nahiko erraza. 526 00:24:48,040 --> 00:24:51,010 Zerrenda-burua moztu nahiko erraza da. 527 00:24:51,010 --> 00:24:52,980 >> Tamalez, ez da hau gogaikarriak bestela blokea. 528 00:24:52,980 --> 00:24:56,170 Beraz, gaur egun, kasuan kontuan hartu behar dut han erdian zerbait. 529 00:24:56,170 --> 00:24:59,880 Baina ez da gehiegi terrible, salbu honen antzeko sintaxia da. 530 00:24:59,880 --> 00:25:03,080 Beraz, ez naiz hasieran bada zerrenda, erdian nonbait naiz. 531 00:25:03,080 --> 00:25:08,160 Eta lerro hau hemen esaten da, hasieratik edozein dela ere, nodo egiten ari zaren at. 532 00:25:08,160 --> 00:25:11,210 533 00:25:11,210 --> 00:25:18,550 Aurreko nodoa hurrengo eremura joan eta seinalatzen duen erakuslea at. 534 00:25:18,550 --> 00:25:20,390 >> Egin pictorially utzi. 535 00:25:20,390 --> 00:25:21,640 Zela konplikatuak lortzean. 536 00:25:21,640 --> 00:25:30,480 537 00:25:30,480 --> 00:25:37,990 Beraz, aurreko eremuak hemen daukat bada - egin dezagun hau - hurrengo eremuak hemen. 538 00:25:37,990 --> 00:25:41,200 Nire erakusleak errazteko baizik noa sorta oso bat marraztu baino 539 00:25:41,200 --> 00:25:45,710 gauzak atzera eta aurrera crisscrossing elkarrengandik. 540 00:25:45,710 --> 00:25:50,870 Eta orain, utzi, besterik gabe esan hau da, 1, 2, 3 eztabaidak eztabaida, nahiz 541 00:25:50,870 --> 00:25:53,410 nahiz eta horrek ez du lerro batera galdera arazoa. 542 00:25:53,410 --> 00:25:55,900 >> Beraz, hemen nire zerrenda lotuta dago. 543 00:25:55,900 --> 00:25:59,300 Bi kentzeko honetan saiatzen ari naiz ipuinaren bertsio bereziki. 544 00:25:59,300 --> 00:26:01,960 Beraz eguneratu dut erakuslea be tipo hau seinalatuz. 545 00:26:01,960 --> 00:26:03,315 Beraz, hau PTR da. 546 00:26:03,315 --> 00:26:04,530 Hemen apuntatzen zuen. 547 00:26:04,530 --> 00:26:07,170 Hau zerrenda da, eta horrek existitzen orokorrean bezala aurretik. 548 00:26:07,170 --> 00:26:09,200 Eta hemen ez du axola zer apuntatzen zuen. 549 00:26:09,200 --> 00:26:10,800 Eta orain, bi kendu saiatzen ari naiz. 550 00:26:10,800 --> 00:26:13,850 >> Hala bada erakuslea hemen apuntatzen da, naiz , jarraitu itxuraz, joan den 551 00:26:13,850 --> 00:26:17,110 Aurreko erakuslea, eta horrek jartzen nau, 1. 552 00:26:17,110 --> 00:26:22,290 Naiz gero esango duten hurrengo eremua, eta horrek ekartzen dit baino gehiago honetarako 553 00:26:22,290 --> 00:26:25,410 kutxa hemen, joan den erakuslea berdina hurrengo. 554 00:26:25,410 --> 00:26:28,400 Beraz erakuslea hau bada, hau da hurrengoa. 555 00:26:28,400 --> 00:26:31,840 Horrek esan nahi du honek gezi beharrak tipo hau seinalatu. 556 00:26:31,840 --> 00:26:35,140 >> Beraz, zer kode lerro bat besterik ez du, egin hau pixka bat da. 557 00:26:35,140 --> 00:26:37,500 Eta, gaur egun, hau da, antza norabide egokian zapaldu. 558 00:26:37,500 --> 00:26:41,390 Funtsean 2 out snip nahi dugu 1 eta 3 erdian dagoen. 559 00:26:41,390 --> 00:26:44,400 Beraz, zentzuzkoa da hori nahi dugu Ibilbidea erakuslea honen inguruan. 560 00:26:44,400 --> 00:26:50,400 Beraz, hurrengo lerro hau markatuta badago erakuslea hurrengoa ez da nulua, ez da 561 00:26:50,400 --> 00:26:54,200 hain zuzen ere, 2-eskuin norbait, horrek esan nahi du ere egin behar dugu 562 00:26:54,200 --> 00:26:55,850 apur bat snip hemen. 563 00:26:55,850 --> 00:27:00,590 >> Beraz, gaur egun erakuslea hau jarraitu behar dut eta eguneratzeko on aurreko erakuslea 564 00:27:00,590 --> 00:27:05,410 tipo hau pixka bat egin sahiesteko hona hemen puntua. 565 00:27:05,410 --> 00:27:07,100 Eta orain, ikusmen hori da polita. 566 00:27:07,100 --> 00:27:11,930 Apur bat narratsa da hori, ez da inork ez 2 seinalatuz jada. 567 00:27:11,930 --> 00:27:13,600 2 da ezkerrera seinalatuz. 568 00:27:13,600 --> 00:27:14,980 Eta 2 da eskuin seinalatuz. 569 00:27:14,980 --> 00:27:17,480 Baina nahi duena, edozein dela ere egin ahal izango zuen, zeren buruzko libratuko ezagutu nahi zuen. 570 00:27:17,480 --> 00:27:19,480 Eta ez du axola zer balio horiek gehiago dira. 571 00:27:19,480 --> 00:27:23,040 >> Zer da garrantzitsua da hori, gainerako guys gainetik routing dira 572 00:27:23,040 --> 00:27:24,280 eta orain haren azpitik. 573 00:27:24,280 --> 00:27:25,810 Eta hain zuzen ere, hori da, zer egin dugu. 574 00:27:25,810 --> 00:27:29,360 Dugu free erakuslea, eta horrek esan nahi esango dugu sistema eragilea, ongi etorria zara 575 00:27:29,360 --> 00:27:30,906 hau aldarrikatu. 576 00:27:30,906 --> 00:27:34,900 Eta gero, azkenik, itzuliko gara. 577 00:27:34,900 --> 00:27:37,220 Bestela inplizituki, badugu oraindik ez dute itzuliko, 578 00:27:37,220 --> 00:27:38,290 lortu dugu bila mantentzeko. 579 00:27:38,290 --> 00:27:41,485 Beraz erakuslea berdin hurrengo erakuslea besterik esan nahi du mugitu tipo hau hemen. 580 00:27:41,485 --> 00:27:42,600 Mugitu tipo hau hemen. 581 00:27:42,600 --> 00:27:45,400 Mugitu tipo hau hemen bada, hain zuzen ere, ez genuen zenbakia aurkitu 582 00:27:45,400 --> 00:27:46,960 Oraindik bilatzen ari gara. 583 00:27:46,960 --> 00:27:49,630 >> Beraz, Egia, erabat garbi ikusten da , jasanezinak, uste dut lehen 584 00:27:49,630 --> 00:27:52,180 begiratuan, batez ere borrokatu baduzu honekin galdetegi zehar, ondoren ikusiko 585 00:27:52,180 --> 00:27:52,850 honen antzeko zerbait. 586 00:27:52,850 --> 00:27:55,050 Eta zeure burua pat duzu atzeko aldean. 587 00:27:55,050 --> 00:27:57,080 Beno, ez da izan nezakeen modu zatoz gora duten galdetegi on batera. 588 00:27:57,080 --> 00:28:00,470 Baina esango nuke, ahal duzun apurtu duzu bada behera banakako horiek sartu 589 00:28:00,470 --> 00:28:04,400 kasu eta besterik ez ibiltzeko arretaz,, nahiz admittedly, bajo 590 00:28:04,400 --> 00:28:06,300 estres egoeratan. 591 00:28:06,300 --> 00:28:09,470 >> Zorionez, argazkia egin guztia zoriontsuago. 592 00:28:09,470 --> 00:28:11,050 Hau marraztu izan zugan Edozein modutan kopurua. 593 00:28:11,050 --> 00:28:12,760 Ez duzu nahasketa egin Gauza hemen. 594 00:28:12,760 --> 00:28:14,520 Egin ahal izango duzu zuzen honen antzeko lerro. 595 00:28:14,520 --> 00:28:18,790 Baina arazo hau gist, in orokorrean, ez zen konturatzen diren 596 00:28:18,790 --> 00:28:22,060 azkenean, irudi apur bat begiratu behar honen antzeko zerbait, zeren 597 00:28:22,060 --> 00:28:25,030 etengabeko denbora inplizituki mantentzen baduzu jamming eta jamming eta jamming du 598 00:28:25,030 --> 00:28:29,900 hasieran nodo berria zerrendaren. 599 00:28:29,900 --> 00:28:31,960 Zalantzaren bat? 600 00:28:31,960 --> 00:28:34,565 Ziurrenik gehien Challenging zalantzarik kodetze galderak. 601 00:28:34,565 --> 00:28:37,690 >> IKUSLEEN: da antzekoa zerrenda aurreko adibideetako buru. 602 00:28:37,690 --> 00:28:39,640 >> DAVID J. MALAN: Zehazki, zehazki. 603 00:28:39,640 --> 00:28:43,130 Just ezberdinetan izen bat aldagai global bat. 604 00:28:43,130 --> 00:28:44,380 Mundu zabalean zer? 605 00:28:44,380 --> 00:28:48,880 606 00:28:48,880 --> 00:28:49,730 >> ROB BOWDEN: Ados. 607 00:28:49,730 --> 00:28:52,020 Beraz, hau bat non da paragrafoa idatzi behar izan zuen. 608 00:28:52,020 --> 00:28:56,060 Batzuek idatzi zuen saiakera Galdera honetarako. 609 00:28:56,060 --> 00:29:00,230 Baina besterik sei termino horiek erabili behar duzu zer gertatzen den deskribatzeko 610 00:29:00,230 --> 00:29:02,440 facebook.com harremanetan saiatzen zara. 611 00:29:02,440 --> 00:29:07,930 Beraz, besterik ez dut prozesuan zehar hitz egin baldintza hauek guztiak erabiliz. 612 00:29:07,930 --> 00:29:11,290 Beraz, gure nabigatzailean, idatzi dugu facebook.com eta sakatu Sartu. 613 00:29:11,290 --> 00:29:17,280 Beraz, gure nabigatzaileak zer bat eraikitzeko joan HTTP eskaera dela bidaliko duten 614 00:29:17,280 --> 00:29:22,220 Facebook-prozesu batzuen bidez Facebook digu erantzuteko duen 615 00:29:22,220 --> 00:29:24,450 Bere orriaren HTML. 616 00:29:24,450 --> 00:29:28,800 >> Beraz, zer prozesua da egilea horrek HTTP eskaera 617 00:29:28,800 --> 00:29:30,730 benetan Facebook lortzen? 618 00:29:30,730 --> 00:29:32,790 Beraz, lehenik eta behin, itzuli behar dugu Facebook.com. 619 00:29:32,790 --> 00:29:38,780 Beraz, besterik gabe, emandako Facebook.com izenarekin, non benetan HTTP eskaera egiten du 620 00:29:38,780 --> 00:29:39,940 joan behar? 621 00:29:39,940 --> 00:29:44,120 Beraz itzultzeko Facebook.com behar dugu IP helbide bati, bakarrean 622 00:29:44,120 --> 00:29:47,620 identifikatzen makina zer dugu benetan eskaera hau bidali nahi. 623 00:29:47,620 --> 00:29:49,310 Eramangarria IP helbide bat dauka. 624 00:29:49,310 --> 00:29:52,240 Internetera konektatutako ezer IP helbide bat dauka. 625 00:29:52,240 --> 00:29:59,030 >> Beraz, DNS, Domain Name System, hau da zer itzulpena kudeatzeko joan 626 00:29:59,030 --> 00:30:03,750 etik facebook.com IP helbide bat behar duten benetan nahi duzun harremanetan jarri. 627 00:30:03,750 --> 00:30:08,075 Beraz, DNS zerbitzarien abisatzen dira eta esan, zer da facebook.com? 628 00:30:08,075 --> 00:30:16,560 Dio, oh, IP helbide 190,212 da zerbait, zerbait, zerbait. 629 00:30:16,560 --> 00:30:16,900 Ondo da. 630 00:30:16,900 --> 00:30:18,850 Orain, badakit zer makina Kontaktuari nahi dut. 631 00:30:18,850 --> 00:30:22,360 >> Orduan, zure HTTP eskaera bidaltzen dituzunean Makina hori baino gehiago. 632 00:30:22,360 --> 00:30:24,140 Beraz, nola lortu duen makina da? 633 00:30:24,140 --> 00:30:27,200 Beno, eskaera aurrera doa router itzulerako router. 634 00:30:27,200 --> 00:30:32,630 Gogoratu adibidea klasean, non benetan ibilbidea ikusi genuen hori 635 00:30:32,630 --> 00:30:35,340 paketetan hartu denean saiatu ginen komunikatzeko. 636 00:30:35,340 --> 00:30:38,460 Salto Atlantikoaren gainean ikusi genuen Ocean puntu bat edo dena delakoa ere. 637 00:30:38,460 --> 00:30:42,820 >> Beraz, epe azken portu. 638 00:30:42,820 --> 00:30:46,520 Beraz, hau da gaur egun ordenagailuan. 639 00:30:46,520 --> 00:30:49,970 Gauza anitz unean izan dezakezu Interneten komunikatzeko. 640 00:30:49,970 --> 00:30:53,730 Beraz exekutatzen I daiteke, adibidez, Skype. 641 00:30:53,730 --> 00:30:55,670 Baliteke web nabigatzailea irekita daukat. 642 00:30:55,670 --> 00:30:59,010 Agian zerbait izan dut fitxategiak torrenting. 643 00:30:59,010 --> 00:31:00,880 Beraz, gauza horiek guztiak dira komunikatzeko 644 00:31:00,880 --> 00:31:02,600 nolabait internet. 645 00:31:02,600 --> 00:31:08,070 >> Beraz, zure ordenagailuaren datu batzuk jasotzen denean Internetetik, nola egiten du 646 00:31:08,070 --> 00:31:10,130 dakit zer aplikazio benetan Datuak nahi? 647 00:31:10,130 --> 00:31:12,610 Nola ez dakit zehatz honetan ote den datuak ekarri 648 00:31:12,610 --> 00:31:16,070 torrenting aplikazioaren aurka Web nabigatzaileak? 649 00:31:16,070 --> 00:31:20,980 Beraz, hori portu helburua da aplikazio horiek guztiak izan 650 00:31:20,980 --> 00:31:22,720 portu bat aldarrikatu ordenagailuan. 651 00:31:22,720 --> 00:31:27,580 Beraz, zure web nabigatzailea dio, beno, 1000 atakan entzuten ari naiz. 652 00:31:27,580 --> 00:31:32,240 Eta zure torrenting programa, esaten da 3000 atakan entzuten ari naiz. 653 00:31:32,240 --> 00:31:34,770 Eta Skype dio, 4000 ataka erabiltzen dut. 654 00:31:34,770 --> 00:31:41,950 >> Beraz, datu batzuk lortu duzu pertenece Aplikazio horietako bat, datuen 655 00:31:41,950 --> 00:31:45,510 Zein ataka markatzen da benetan batera bidali behar dira. 656 00:31:45,510 --> 00:31:47,950 Beraz, hau dio, oh, I belong 1000 portura. 657 00:31:47,950 --> 00:31:50,950 Badakit gero honek birbidali behar dut nire web nabigatzaile batera. 658 00:31:50,950 --> 00:31:56,440 Beraz, arrazoia garrantzitsua da hemen da web zerbitzarietan duten joera 659 00:31:56,440 --> 00:31:58,240 80 atakan entzun. 660 00:31:58,240 --> 00:32:02,420 Beraz, harremanetan dut Facebook.com, naiz makina batzuk komunikatzeko. 661 00:32:02,420 --> 00:32:06,390 Baina zein portutik esan behar dut makina, komunikatu nahi dut. 662 00:32:06,390 --> 00:32:09,160 Eta web zerbitzarien ohi dira 80 atakan entzuten. 663 00:32:09,160 --> 00:32:14,010 >> Nahi badute, ezarri ahal izango dute beraz 7000 atakan gisa zerrendatzen da. 664 00:32:14,010 --> 00:32:19,090 Eta, ondoren, web arakatzaile batean, I Could Facebook.com eskuz idatzi: 7000 arte 665 00:32:19,090 --> 00:32:24,600 eskaera bidali 7000 portura Facebook-en web zerbitzaria. 666 00:32:24,600 --> 00:32:26,820 >> DAVID J. MALAN: Eta kasu honetan, are nahiz eta ez genuen eskatzen duten pertsonen 667 00:32:26,820 --> 00:32:30,000 aipatu hau, kasu honetan, zer ataka eskaera benetan joan litzateke? 668 00:32:30,000 --> 00:32:36,630 669 00:32:36,630 --> 00:32:37,880 Saiatu berriro. 670 00:32:37,880 --> 00:32:42,810 671 00:32:42,810 --> 00:32:44,300 Zehazki. 672 00:32:44,300 --> 00:32:47,960 Ez hori bilatzen, baina sotiltasun bat hori da, han ere ez azkena. 673 00:32:47,960 --> 00:32:51,770 >> ROB BOWDEN: Beraz HTTPS du, geroztik, zehazki entzuten du 674 00:32:51,770 --> 00:32:55,180 enkriptatuta, 4430 atakan da. 675 00:32:55,180 --> 00:32:57,680 >> AUDIENCE: Eta emailak 25 dira, ezta? 676 00:32:57,680 --> 00:33:00,670 >> DAVID J. MALAN: igorlea emailak, 25, bai. 677 00:33:00,670 --> 00:33:03,760 >> ROB BOWDEN: ez dakite dut gehienetan du - Beheko direnak guztiak ohi dira 678 00:33:03,760 --> 00:33:06,310 Gauza gordeak. 679 00:33:06,310 --> 00:33:09,260 Nik uste dut dena pean 1024 erreserbatuta dago. 680 00:33:09,260 --> 00:33:13,450 >> AUDIENCE: Zergatik esan duzu 3 Zenbaki okerra izan zen? 681 00:33:13,450 --> 00:33:18,820 >> ROB BOWDEN: Zeren IP helbide bat ere, lau zifrako multzoak dago. 682 00:33:18,820 --> 00:33:21,090 Eta 0 eta 255 ari dira. 683 00:33:21,090 --> 00:33:28,060 Beraz 192.168.2.1 da komun bat sare lokaleko IP helbidea. 684 00:33:28,060 --> 00:33:30,840 Iragarki horiek guztiak ez dira 255 baino gutxiago. 685 00:33:30,840 --> 00:33:33,570 Beraz, hasi 300 dut, hori ezinezkoa izan 686 00:33:33,570 --> 00:33:35,210 Zenbaki bat izan da. 687 00:33:35,210 --> 00:33:38,170 >> DAVID J. MALAN: Baina hori silly clip tik - CSI, non izan dute zen 688 00:33:38,170 --> 00:33:39,970 zenbaki hori handiegia zen IP helbidea. 689 00:33:39,970 --> 00:33:42,940 690 00:33:42,940 --> 00:33:46,110 >> ROB BOWDEN: honi buruzko zalantzaren bat? 691 00:33:46,110 --> 00:33:51,710 Hurrengoa, aldaketa hain osoa gaia, baina PHP array hau dugu 692 00:33:51,710 --> 00:33:53,270 quad-etxe. 693 00:33:53,270 --> 00:33:56,360 Eta orden gabeko zerrenda bat dugu. 694 00:33:56,360 --> 00:33:59,550 Eta zerrendako elementu bakoitza inprimatu nahi dugu besterik etxe izen dauzkan. 695 00:33:59,550 --> 00:34:09,090 696 00:34:09,090 --> 00:34:11,870 Beraz foreach begizta bat dugu. 697 00:34:11,870 --> 00:34:17,540 Beraz, gogoratu, sintaxia foreach da array elementu gisa array. 698 00:34:17,540 --> 00:34:22,360 Beraz begizta-iterazio bakoitzean zehar, etxea da bat hartzera joaten 699 00:34:22,360 --> 00:34:24,060 array-barrutik balioak. 700 00:34:24,060 --> 00:34:26,530 >> Lehen iterazio, etxe on Cabot Etxea izango da. 701 00:34:26,530 --> 00:34:30,370 Bat bigarren iterazio, etxe on egingo izan Courier Etxea eta abar. 702 00:34:30,370 --> 00:34:34,370 Beraz quad bakoitzaren etxea bezala, gaude besterik argitaratzeko - 703 00:34:34,370 --> 00:34:37,250 ere oihartzuna izan ahal izango duzu - 704 00:34:37,250 --> 00:34:42,199 Zerrendako elementua eta, ondoren, etxearen izena eta ondoren itxi zerrendako elementua. 705 00:34:42,199 --> 00:34:45,210 Giltza kizkur aukerakoak dira hemen. 706 00:34:45,210 --> 00:34:49,480 >> Eta gero ere galdera batean esan genuen berez, gogoratzeko itxi 707 00:34:49,480 --> 00:34:50,770 orden gabeko zerrenda etiketa. 708 00:34:50,770 --> 00:34:53,949 Beraz PHP modutik irteteko behar dugu Horretarako urtean. 709 00:34:53,949 --> 00:35:00,280 Edo oihartzuna izan dugu dute itxi orden gabeko zerrenda etiketa. 710 00:35:00,280 --> 00:35:02,380 >> DAVID J. MALAN: hemen Gainera isuna litzateke izan dira, eskola zahar bat erabili ahal izateko 711 00:35:02,380 --> 00:35:07,340 $ i a = 0 0 loop eta zenbatzen erabiliz irudikatu izpien luzera. 712 00:35:07,340 --> 00:35:09,240 Too guztiz fina, besterik wordier apur bat. 713 00:35:09,240 --> 00:35:12,170 714 00:35:12,170 --> 00:35:14,742 >> AUDIENCE: Beraz zinen joan bada [INAUDIBLE], egingo zenuke - 715 00:35:14,742 --> 00:35:16,734 Ahaztu dut zer begizta [INAUDIBLE] da. 716 00:35:16,734 --> 00:35:21,380 Litzateke $ duzun quad parentesi i? 717 00:35:21,380 --> 00:35:21,850 >> DAVID J. MALAN: Zehazki. 718 00:35:21,850 --> 00:35:23,100 Bai, hain zuzen. 719 00:35:23,100 --> 00:35:26,650 720 00:35:26,650 --> 00:35:27,900 >> ROB BOWDEN: Beste ezer? 721 00:35:27,900 --> 00:35:31,350 722 00:35:31,350 --> 00:35:32,010 >> DAVID J. MALAN: Ondo da. 723 00:35:32,010 --> 00:35:32,300 Merkataritza-off. 724 00:35:32,300 --> 00:35:38,290 Beraz, ez dago erantzun sortak ziren horietako bakoitzaren posible. 725 00:35:38,290 --> 00:35:40,510 Ginen benetan besterik bila zerbait sinesgarria bat goitik eta 726 00:35:40,510 --> 00:35:41,100 arazotxo bat. 727 00:35:41,100 --> 00:35:44,830 Eta zenbaki 16 eskatu, erabiltzaileen balioztatzeko sarrera bezero-aldeko, Javascript bezala, 728 00:35:44,830 --> 00:35:47,280 ordez zerbitzariaren aldeko of, PHP bezala. 729 00:35:47,280 --> 00:35:49,450 Beraz, zein da eremu bat goitik egiteko bezero-aldeko? 730 00:35:49,450 --> 00:35:53,780 >> Beno, proposatu ditugun gauzetako bat da latentzia gutxitzeko duzula, duzulako 731 00:35:53,780 --> 00:35:56,750 ez dute harremanetan traba hemen zerbitzaria, eta horrek gutxi iraun dezake 732 00:35:56,750 --> 00:36:00,390 milisegundotan edo are segundo pare bat dela saihestuz eta besterik 733 00:36:00,390 --> 00:36:04,670 erabiltzaileen sarrera Bezeroaren aldeko arabera balioztatzeko on-submit handler eragiteko eta 734 00:36:04,670 --> 00:36:06,650 besterik, egiaztapena zuten idatzi izena eman zerbait? 735 00:36:06,650 --> 00:36:08,080 Ba zerbait idazten dute helbide elektronikoen in? 736 00:36:08,080 --> 00:36:10,950 Ba gela bat aukeratzen dute Goitibeherako menu? 737 00:36:10,950 --> 00:36:14,360 >> Horiek berehalako iritzia eman ahal izango duzu gigahertzetan ordenagailua erabiliz 738 00:36:14,360 --> 00:36:16,770 edo dena hori izan dute benetan dute mahaian. 739 00:36:16,770 --> 00:36:19,310 Beraz, besterik ez da erabiltzaileen hobea esperimentatu normalean. 740 00:36:19,310 --> 00:36:24,460 Baina bezero-aldeko egiten arazotxo bat baliozkotzea, egin bada ere gabe duzu 741 00:36:24,460 --> 00:36:29,860 zerbitzariaren aldeko baliozkotzea egiten ari dela edonork gehienetan CS50 irteten daki 742 00:36:29,860 --> 00:36:33,980 Besterik nahi duzun edozein datu bidali ahal duten zerbitzari batera edozein modutan kopurua. 743 00:36:33,980 --> 00:36:37,030 Egia, gehienetan Edozein nabigatzailean, ahal duzun Ezkutatu inguruan ezarpenetan eta besterik 744 00:36:37,030 --> 00:36:40,110 itzali JavaScript, biltzeko eta, beraz, edozein forma ezgaitu 745 00:36:40,110 --> 00:36:41,080 baliozkotzea. 746 00:36:41,080 --> 00:36:44,460 >> Baina ere gogoratzen dezakezu, nahiz eta I klasean urrutira gauza batzuk erabiliz egin 747 00:36:44,460 --> 00:36:47,790 telnet eta benetan itxurak get bidaliz nabigatzaileak bat izan 748 00:36:47,790 --> 00:36:49,240 zerbitzari batera eskaerak. 749 00:36:49,240 --> 00:36:51,030 Eta hori da, zalantzarik gabe, ez Edozein JavaScript erabiliz. 750 00:36:51,030 --> 00:36:53,290 Hori besterik ez niri komandoak idazten teklatu bat. 751 00:36:53,290 --> 00:36:57,410 Beraz, benetan, nahikoa barruan edozein programatzaile web eta HTTP batera erosotasuna 752 00:36:57,410 --> 00:37:01,690 edozein dela ere, datu berak nahi bidali izan balidazio gabe zerbitzari batera. 753 00:37:01,690 --> 00:37:05,470 Eta zure zerbitzaria ez dago, gainera, egiaztatzen bada ba niri eman dute izena, ez da 754 00:37:05,470 --> 00:37:08,930 benetan baliozko helbide elektroniko honetan, zuen aukeratuko dute gela bat, agian amaituko duzu 755 00:37:08,930 --> 00:37:12,800 sortu akastunak edo besterik gabe datuak hutsik txertatzeak Zure datu-basean sartu, eta horrek, ziurrenik, 756 00:37:12,800 --> 00:37:15,450 gauza on bat izan nahi, ez da joan bada suposatuz zinen zegoen han. 757 00:37:15,450 --> 00:37:16,770 >> Beraz, hau gogaikarriak errealitatea da. 758 00:37:16,770 --> 00:37:19,890 Baina, bezero-aldeko orokorrean balidazio handia da. 759 00:37:19,890 --> 00:37:21,810 Baina bi aldiz ere lana esan nahi du. 760 00:37:21,810 --> 00:37:25,970 Han egin arren existitzen hainbat liburutegiak, Javascript liburutegiak 761 00:37:25,970 --> 00:37:28,830 Esate baterako, askoz hau osatzen duten, askoz ere buruhauste bat gutxiago. 762 00:37:28,830 --> 00:37:31,940 Eta kodearen batzuk berrerabiltzeko dezakezu zerbitzariaren aldeko, bezero-aldeko. 763 00:37:31,940 --> 00:37:35,980 Baina konturatzen normalean dela lan osagarriak. 764 00:37:35,980 --> 00:37:36,415 Bai. 765 00:37:36,415 --> 00:37:37,792 >> AUDIENCE: Beraz, bada besterik ez dugu esan bezain segurua - 766 00:37:37,792 --> 00:37:39,205 >> DAVID J. MALAN: [Barreak] 767 00:37:39,205 --> 00:37:39,680 Ugh. 768 00:37:39,680 --> 00:37:43,105 Horiek dira beti gogorragoa ere bai esleitzea. 769 00:37:43,105 --> 00:37:44,480 >> ROB BOWDEN: Hori litzateke onartu egin dituela. 770 00:37:44,480 --> 00:37:44,810 >> DAVID J. MALAN: Zer? 771 00:37:44,810 --> 00:37:45,810 >> ROB BOWDEN: arazo hau sortu dut. 772 00:37:45,810 --> 00:37:46,735 Onartu izan litzateke. 773 00:37:46,735 --> 00:37:47,220 >> DAVID J. MALAN: Bai. 774 00:37:47,220 --> 00:37:47,830 >> AUDIENCE: Cool. 775 00:37:47,830 --> 00:37:51,770 >> ROB BOWDEN: Baina ez dugu onartuko lehenengoa izan - 776 00:37:51,770 --> 00:37:53,630 ondo, zer ginen eta bilatzen da Zu bezalako zerbait ez dute behar 777 00:37:53,630 --> 00:37:55,270 zerbitzariarekin komunikatzeko. 778 00:37:55,270 --> 00:37:58,355 Ez genuen besterik azkarrago onartu. 779 00:37:58,355 --> 00:38:00,080 >> AUDIENCE: What about ez dute orri freskatuz? 780 00:38:00,080 --> 00:38:00,430 >> ROB BOWDEN: Bai. 781 00:38:00,430 --> 00:38:03,000 Duela onartuko erantzun bat izan zen. 782 00:38:03,000 --> 00:38:06,300 >> DAVID J. MALAN: Ezer non sentitu dugu Ez litekeena baino gehiago egongo zen 783 00:38:06,300 --> 00:38:09,780 zer zinen bazekien duzula , esanez eta hori gogorra 784 00:38:09,780 --> 00:38:13,500 linea batzuetan marrazteko. 785 00:38:13,500 --> 00:38:16,000 Ordez lotuta zerrenda bat erabiliz array bat mantentzeko of a 786 00:38:16,000 --> 00:38:17,590 ordenatuko osoko zenbakien zerrendan. 787 00:38:17,590 --> 00:38:21,000 Beraz, bat goitik askotan aipatuko dugu lotuta bere osotasunean motibatuta duten zerrendak 788 00:38:21,000 --> 00:38:22,370 sarrera dinamismoa lortuko duzu zen. 789 00:38:22,370 --> 00:38:23,030 Hazi daitezen. 790 00:38:23,030 --> 00:38:23,950 Txikitu ahal izango dute. 791 00:38:23,950 --> 00:38:27,370 Beraz, ez duzu uztai bidez salto egin behar memoria gehiago benetan sortzeko 792 00:38:27,370 --> 00:38:28,140 array bat. 793 00:38:28,140 --> 00:38:30,310 Edo zuk ez dute besterik esatea, barkatu, erabiltzaileak. 794 00:38:30,310 --> 00:38:31,410 Array betetako. 795 00:38:31,410 --> 00:38:35,850 Zerrendaren hazkundea, beraz, dinamikoa. 796 00:38:35,850 --> 00:38:37,210 Arazotxo bat zerrendak lotuta nahiz eta? 797 00:38:37,210 --> 00:38:40,916 798 00:38:40,916 --> 00:38:43,356 >> AUDIENCE: lineala da. 799 00:38:43,356 --> 00:38:45,800 Bilatzen lotutako zerrenda on lineala ordez zer hasi oraindik sartu zuetako 800 00:38:45,800 --> 00:38:46,360 >> DAVID J. MALAN: Zehazki. 801 00:38:46,360 --> 00:38:50,160 Bilatzen lotutako zerrenda bat lineala da, du horrela antolatu bada ere, ahal duzun delako 802 00:38:50,160 --> 00:38:53,170 ogi apurrak horiek bakarrik jarraitu, horiek erakusleak, zerrendaren hasiera-hasieratik 803 00:38:53,170 --> 00:38:53,570 amaieran. 804 00:38:53,570 --> 00:38:57,970 Ezin duzu ausazko sarbidea eta leverage, beraz, bilaketa bitarra, hau da, nahiz 805 00:38:57,970 --> 00:39:00,740 ordenatuta, ezin izan duzu array bat egin. 806 00:39:00,740 --> 00:39:02,390 Han eta kostu bat da, gainera. 807 00:39:02,390 --> 00:39:02,966 Bai. 808 00:39:02,966 --> 00:39:03,800 >> AUDIENCE: Memoria eraginkorra? 809 00:39:03,800 --> 00:39:04,130 >> DAVID J. MALAN: Bai. 810 00:39:04,130 --> 00:39:06,940 Beno, ez nuke zertan esan eraginkorra. 811 00:39:06,940 --> 00:39:10,110 Baina balio du memoria gehiago, 32 bit bakoitzean behar duzulako 812 00:39:10,110 --> 00:39:13,400 erakuslea osagarriak nodo, at banaka lotuta zerrenda bat gutxienez. 813 00:39:13,400 --> 00:39:16,660 Orain, Osoko zenbaki bakarra da gordetzeko bazabiltza eta erakuslea gehitzen ari zaren, hori da 814 00:39:16,660 --> 00:39:17,830 benetan mota ez hutsala. 815 00:39:17,830 --> 00:39:19,340 Honez memoria kopurua bikoiztu da. 816 00:39:19,340 --> 00:39:22,330 Baina errealitatean, zuk gordetzeko bazabiltza bat lotuta agian izan structs zerrenda 817 00:39:22,330 --> 00:39:25,540 8 byte, 16 byte, are gehiago Hori baino, agian, gutxiago da 818 00:39:25,540 --> 00:39:26,500 kostu marjinala baten. 819 00:39:26,500 --> 00:39:28,320 Baina hala ere, kostu bat da. 820 00:39:28,320 --> 00:39:31,880 Beraz, horiek bai Pentsamendu downsides gisa fina izan. 821 00:39:31,880 --> 00:39:32,110 >> 18. 822 00:39:32,110 --> 00:39:36,100 PHP C ordez erabiliz idatzi komando-line programa bat. 823 00:39:36,100 --> 00:39:41,890 Beraz, hemen, askotan, azkarragoa da erabiltzea PHP edo Ruby edo Python bezalako hizkuntza. 824 00:39:41,890 --> 00:39:43,700 Besterik azkar irekitzean testu editore bat sortu. 825 00:39:43,700 --> 00:39:45,900 Funtzio askoz gehiago duzu zure eskura. 826 00:39:45,900 --> 00:39:49,325 PHP sukaldea funtzioen konketa ditu, C, zuk berriz 827 00:39:49,325 --> 00:39:50,420 Oso, oso gutxi. 828 00:39:50,420 --> 00:39:53,820 Izan ere, mutilak ezagutzeko modu gogorrean ez duzula izan hash taulak. 829 00:39:53,820 --> 00:39:55,000 Ez ekin erabiltzen duzun zerrendak. 830 00:39:55,000 --> 00:39:57,470 Horiek nahi baduzu, izan nahi duzu horiek ezartzeko yourself. 831 00:39:57,470 --> 00:40:00,950 >> Beraz PHP goitik bat edo benetan inongo interpretatu hizkuntza azkar egiten 832 00:40:00,950 --> 00:40:02,920 horrekin kodea idatz dezakezu. 833 00:40:02,920 --> 00:40:06,660 Baina arazotxo bat, hau ikusi genuen naizenean azkar harrotua sortu misspeller bat 834 00:40:06,660 --> 00:40:11,780 hitzaldia ezartzeko PHP erabiliz, da duten lengoaia interpretatu bat erabiliz 835 00:40:11,780 --> 00:40:13,570 da normalean motelagoa. 836 00:40:13,570 --> 00:40:18,420 Eta hori ikusi genuen froga bat denboran handitzeko 0,3 segundo eta 3 837 00:40:18,420 --> 00:40:24,440 segundo, delako interpretazioa benetan hori gertatzen. 838 00:40:24,440 --> 00:40:27,060 >> Goitik beste izan zen duzun ez dute konpilatu. 839 00:40:27,060 --> 00:40:30,130 Beraz ere bizkortzen da sortu garapena bide batez, ez duzu delako 840 00:40:30,130 --> 00:40:31,360 programa bat martxan bi urrats. 841 00:40:31,360 --> 00:40:32,140 Besterik ez duzu bat. 842 00:40:32,140 --> 00:40:35,260 Eta beraz, nahiko sinesgarria baita. 843 00:40:35,260 --> 00:40:38,450 Ordez SQL datu-base bat erabiliz CSV fitxategi batean datuak gordetzeko. 844 00:40:38,450 --> 00:40:40,230 Beraz SQL datu pset7 erabiltzen. 845 00:40:40,230 --> 00:40:42,060 CSV fitxategiak ez duzu askoz erabili. 846 00:40:42,060 --> 00:40:45,960 Baina zeharka erabiltzen duzun pset7 gisa ongi Yahoo Ogasun hitz eginez. 847 00:40:45,960 --> 00:40:49,330 >> Baina CSV besterik ez da Excel fitxategi bat bezala, baizik eta super simple, non zutabeak dira 848 00:40:49,330 --> 00:40:54,010 besterik barrutik komaz demarked bestela testu fitxategi baten berri. 849 00:40:54,010 --> 00:40:56,740 Eta SQL datu-base bat erabiliz apur bat gehiago sinesgarria. 850 00:40:56,740 --> 00:41:00,060 Goitik bat da, gauzak lortuko duzu delako bezala hautatu eta txertatu eta ezabatu. 851 00:41:00,060 --> 00:41:03,790 Eta, lortu duzu, ustez, indizeak duen MySQL eta beste datu-base, bezalako 852 00:41:03,790 --> 00:41:07,510 Oracle, zuretzat eraikitzeko memoria, eta horrek esan nahi du zure hautatu Seguru asko ez da 853 00:41:07,510 --> 00:41:09,000 goitik behera lineala izango. 854 00:41:09,000 --> 00:41:11,300 Benetan zerbait izango da bilaketa bitarra edo antzeko zerbait 855 00:41:11,300 --> 00:41:12,520 espiritua antzekoak. 856 00:41:12,520 --> 00:41:13,930 Beraz, oro har, azkarrago ari dira. 857 00:41:13,930 --> 00:41:16,040 >> Baina arazotxo bat dago besterik lan gehiago da. 858 00:41:16,040 --> 00:41:16,730 Ahalegin gehiago da. 859 00:41:16,730 --> 00:41:18,140 Datu-base ulertu behar duzu. 860 00:41:18,140 --> 00:41:18,940 Ezarri sortu behar duzu. 861 00:41:18,940 --> 00:41:20,840 Exekutatu zerbitzari bat behar duzu buruzko datu-base horrek. 862 00:41:20,840 --> 00:41:22,750 Ulertu behar duzu nola konfiguratzeko. 863 00:41:22,750 --> 00:41:24,930 Beraz hemen hauek besterik merkataritza-offs mota. 864 00:41:24,930 --> 00:41:27,860 CSV fitxategi batera, egin dezakezu berriz sortu ezazu gedit batera. 865 00:41:27,860 --> 00:41:28,770 Eta zauden onak joan. 866 00:41:28,770 --> 00:41:31,550 Dagoela haratago konplexutasuna ez da. 867 00:41:31,550 --> 00:41:34,870 >> Ordez hash taula baten trie bat erabiliz kateatzea bereizi gordetzeko rekin bat 868 00:41:34,870 --> 00:41:37,490 hitzak gogorarazten hiztegia Pset5 neurtzen. 869 00:41:37,490 --> 00:41:42,480 Beraz, bat saiatzen goitik, teorian gutxienez, zer? 870 00:41:42,480 --> 00:41:46,380 Etengabeko denbora, gutxienez bazaude gizabanakoaren bakoitzean osatzerakoan 871 00:41:46,380 --> 00:41:48,990 hitz batean letrak, zuk bezala baliteke Pset5 dute. 872 00:41:48,990 --> 00:41:52,720 Duten bost egiaztapenekin, sei izan liteke hash-ak ez da bospasei bada 873 00:41:52,720 --> 00:41:53,900 hitzaren letrak. 874 00:41:53,900 --> 00:41:54,580 Eta hori da nahiko ona. 875 00:41:54,580 --> 00:41:56,910 Eta ez da on goi-muga bada nola Luze zure hitzak izan liteke, hori da 876 00:41:56,910 --> 00:41:59,320 hain zuzen ere asymptotically etengabeko denbora. 877 00:41:59,320 --> 00:42:05,180 >> Berriz bereizi hash taula bat , kateatzea arazoa ez dagoela batera 878 00:42:05,180 --> 00:42:09,070 datuen egitura mota da, Zure algoritmoak errendimendua normalean 879 00:42:09,070 --> 00:42:12,700 Gauzak kopuruaren araberakoa Dagoeneko datu-egituran. 880 00:42:12,700 --> 00:42:15,660 Eta hori da, zalantzarik kasua kateak, zeinaren gehiago stuff jarri duzu 881 00:42:15,660 --> 00:42:18,800 hash taula bat sartu, luzeagoa dutenen kateak joan, zein txarrena esan nahi 882 00:42:18,800 --> 00:42:21,960 kasuan, gauza izango duzu bilatzen agian modu guztiak banan amaieran da 883 00:42:21,960 --> 00:42:26,000 kateak horiek, eta eraginkortasunez zerbait lineal devolves. 884 00:42:26,000 --> 00:42:29,450 >> Orain, praktikan, ezin izan erabat da kasuan duen hash taula bat izango 885 00:42:29,450 --> 00:42:32,820 kateak dagokion egitea azkarragoa da trie ezartzeko. 886 00:42:32,820 --> 00:42:35,570 Baina hori hainbat arrazoirengatik da, besteak diren saio eta asko erabili 887 00:42:35,570 --> 00:42:39,240 memoria hori, ahal, izan ere, gauza geldoa , behera ez duzulako lortu polit 888 00:42:39,240 --> 00:42:42,410 katxeak zerbait izeneko onurak, non elkarren ondoan daudela gauzak 889 00:42:42,410 --> 00:42:45,420 memorian sar daitezke sarritan azkarrago. 890 00:42:45,420 --> 00:42:48,180 Eta batzuetan etorri dezakezu rekin hash funtzioa benetan ona. 891 00:42:48,180 --> 00:42:51,060 Apur bat alferrik galdu dute, nahiz eta memoria, baliteke, hain zuzen ere, izan gai 892 00:42:51,060 --> 00:42:54,430 gauzak azkar eta ez aurkitu txarra bezain linealki. 893 00:42:54,430 --> 00:42:58,410 >> Beraz, azken finean, ez zen nahitaez Alde horiek edo baita bi edozein 894 00:42:58,410 --> 00:43:00,050 Gauzak zehatzak bilatzen dugu. 895 00:43:00,050 --> 00:43:03,080 Benetan ezer limurtzaile goitik bat eta arazotxo gisa 896 00:43:03,080 --> 00:43:04,800 oro har, gure begi harrapatu. 897 00:43:04,800 --> 00:43:11,840 >> ROB BOWDEN: Beraz, goitik egiteko, egin genuen ez bere kabuz onartzeko "azkarrago". Duzu 898 00:43:11,840 --> 00:43:14,540 horri buruz zerbait esan behar izan zuen. 899 00:43:14,540 --> 00:43:17,910 Teorikoki azkarrago esan baduzu ere, bagenekien motatako ulertzen duzula 900 00:43:17,910 --> 00:43:19,470 1 0 dela. 901 00:43:19,470 --> 00:43:22,820 Eta hash taula, teorian, Ez da 1 0. 902 00:43:22,820 --> 00:43:26,550 Exekuzio buruz ezer aipatu oro har, lortu dituzun puntuak. 903 00:43:26,550 --> 00:43:32,640 Baina "azkarragoa," irtenbideak gehienak on taula handiak ziren saiatzen ziren 904 00:43:32,640 --> 00:43:34,990 Objektiboki konponbideak baino motelagoa duen hash taulak ziren. 905 00:43:34,990 --> 00:43:37,250 Beraz, azkarrago eta bera ez da benetan egia. 906 00:43:37,250 --> 00:43:41,550 907 00:43:41,550 --> 00:43:44,380 >> DAVID J. MALAN: Dom de dom dom. 908 00:43:44,380 --> 00:43:46,686 Ziurrenik naiz dela konturatuko bakarra hori nola hori ustezko 909 00:43:46,686 --> 00:43:47,500 nabarmenagoa izango da, ezta? 910 00:43:47,500 --> 00:43:50,400 >> ROB BOWDEN: benetan izan nuen ideia ez. 911 00:43:50,400 --> 00:43:51,650 >> DAVID J. MALAN: egindako nire buruan zentzua. 912 00:43:51,650 --> 00:43:53,830 913 00:43:53,830 --> 00:43:57,580 >> ROB BOWDEN: hau egiten ari naiz. 914 00:43:57,580 --> 00:43:58,020 Ados. 915 00:43:58,020 --> 00:44:04,243 Beraz, hau dena non marraztu izan duzu da zaren antzeko diagrama agian 916 00:44:04,243 --> 00:44:06,040 iraganean azterketak ikusi. 917 00:44:06,040 --> 00:44:12,200 Hargatik begiratu besterik. 918 00:44:12,200 --> 00:44:18,170 Beraz HTML nodo batetik, ditugun bi haurrak, burua eta gorputza. 919 00:44:18,170 --> 00:44:20,570 Beraz koka dugu - buru eta gorputz. 920 00:44:20,570 --> 00:44:22,280 Buruan izenburu etiketa dauka. 921 00:44:22,280 --> 00:44:23,710 Beraz, izenburu bat behar dugu. 922 00:44:23,710 --> 00:44:28,450 >> Orain, gauza bat, jende asko ahazten da testu nodo horiek 923 00:44:28,450 --> 00:44:30,430 Zuhaitz honen barruan elementu. 924 00:44:30,430 --> 00:44:36,260 Hortaz, hona hemen horietako ovals gisa marraztu gertatuko dugu haiek bereizten hauetatik 925 00:44:36,260 --> 00:44:37,380 nodes-mota. 926 00:44:37,380 --> 00:44:41,450 Baina oharra ere hemen goian dugu, erdian, eta beheko aldean amaituko da izatea 927 00:44:41,450 --> 00:44:42,560 testu nodoak. 928 00:44:42,560 --> 00:44:46,250 Beraz, horiek ahantzi samarra zegoen akats komun bat. 929 00:44:46,250 --> 00:44:48,770 >> Gorputzaren hiru seme-alaba ditu - Hiru eta DIV horiek. 930 00:44:48,770 --> 00:44:53,340 Beraz div, div, div eta ondoren testua nodo eta DIV horietako haurrak. 931 00:44:53,340 --> 00:44:55,900 Hori nahiko askoz galdera horrentzat. 932 00:44:55,900 --> 00:44:57,860 >> DAVID J. MALAN: Eta Aipagarria da, ez dugu, nahiz eta horiek dwell 933 00:44:57,860 --> 00:45:01,040 denbora pasatzen dugun xehetasun JavaScript, duten ordena ez, in 934 00:45:01,040 --> 00:45:02,290 Izan ere, materia teknikoki. 935 00:45:02,290 --> 00:45:06,330 Beraz, burua gorputza baino lehenago badator batean HTML, orduan agertu beharko luke 936 00:45:06,330 --> 00:45:08,860 gorputza utzi benetako DOM en. 937 00:45:08,860 --> 00:45:12,265 Bere da, oro har, aski FYI, dokumentu ordena izeneko zerbait, non 938 00:45:12,265 --> 00:45:13,260 Gaia ez da. 939 00:45:13,260 --> 00:45:17,470 Eta zuk parser bat ezartzeko balira, HTML irakurtzen duen eraikin batean programa bat 940 00:45:17,470 --> 00:45:20,960 oroimenez zuhaitz gora, egia esateko, hori da senez seguruenik duzuna 941 00:45:20,960 --> 00:45:24,720 egin hala ere - goitik behera, ezkerretik eskuinera. 942 00:45:24,720 --> 00:45:26,116 >> ROB BOWDEN: Horri buruzko galderak? 943 00:45:26,116 --> 00:45:29,080 944 00:45:29,080 --> 00:45:30,000 Beharko luke hurrengo bat egin? 945 00:45:30,000 --> 00:45:32,380 >> DAVID J. MALAN: Noski. 946 00:45:32,380 --> 00:45:33,810 >> ROB BOWDEN: Ados. 947 00:45:33,810 --> 00:45:39,320 Beraz, hau inbaditu bufferraren da Eraso galdera. 948 00:45:39,320 --> 00:45:43,740 Hemen aitortu gauza nagusia da, ondo, nola gerta daiteke aurkariarekiko trikimailu bat 949 00:45:43,740 --> 00:45:46,170 programa hau exekutatzean sartu kode arbitrarioa? 950 00:45:46,170 --> 00:45:51,860 Beraz argv1, lehen komando lerroan Programa honen argumentua, izan daiteke 951 00:45:51,860 --> 00:45:53,920 arbitrarioki luze. 952 00:45:53,920 --> 00:45:59,160 Baina hemen kopiatu memcpy erabiltzen ari gara argv1, hemen barra da. 953 00:45:59,160 --> 00:46:00,165 Pasatuz ari gara argudio gisa. 954 00:46:00,165 --> 00:46:02,050 Eta beraz, izen-barrako hartuz. 955 00:46:02,050 --> 00:46:08,040 >> Beraz bar memcpying ari gara buffer c honetan sartu. 956 00:46:08,040 --> 00:46:09,400 Zenbat byte dugu kopiatzen dira? 957 00:46:09,400 --> 00:46:14,040 Beno hala ere asko byte bar gertatzen erabili, argumentu hori luzera. 958 00:46:14,040 --> 00:46:17,930 Baina c da byte 12 bakarrik zabal. 959 00:46:17,930 --> 00:46:22,280 Beraz, komando lerroko argumentu bat idazten badugu hori da 12 byte baino luzeagoa, gaude 960 00:46:22,280 --> 00:46:25,470 hau gainezkatzea joan buffer bereziki. 961 00:46:25,470 --> 00:46:31,000 Orain, nola liteke aurkariarekiko bat engainatu du kode arbitrarioa exekutatzen sartu programatzen? 962 00:46:31,000 --> 00:46:34,910 >> Beraz, gogoratu hemen nagusia foo deituz. 963 00:46:34,910 --> 00:46:37,340 Eta beraz, ondoren, nagusia deiak foo. 964 00:46:37,340 --> 00:46:40,408 Dezagun marraztu honetan. 965 00:46:40,408 --> 00:46:44,720 966 00:46:44,720 --> 00:46:46,990 Beraz, gure pila ditugu. 967 00:46:46,990 --> 00:46:49,090 Eta pila-markoa du nagusiak behealdean. 968 00:46:49,090 --> 00:46:51,860 969 00:46:51,860 --> 00:46:53,250 Uneren batean, nagusia deiak foo. 970 00:46:53,250 --> 00:46:55,390 Beno, berehala, nagusia deiak foo. 971 00:46:55,390 --> 00:46:57,130 Eta beraz foo bere pila-markoa lortzen. 972 00:46:57,130 --> 00:46:59,650 973 00:46:59,650 --> 00:47:02,220 >> Orain, uneren batean, foo itzuli egingo. 974 00:47:02,220 --> 00:47:06,810 Eta Foo itzultzen joan zen, aldi jakin behar dugu zer lerro kode dugu nagusien barruan 975 00:47:06,810 --> 00:47:10,610 ordena jakin izan ziren bertan nagusian berrekiteko behar dugu. 976 00:47:10,610 --> 00:47:13,100 Foo deitu dezakegu osotasunean aurrera leku desberdinetan sorta. 977 00:47:13,100 --> 00:47:14,620 Nola dakigu non itzultzeko? 978 00:47:14,620 --> 00:47:16,460 Beno, nonbait gorde behar dugu. 979 00:47:16,460 --> 00:47:23,010 >> Beraz, nonbait, hementxe inguruan, gordetzen dugu non behin itzuli behar dugu 980 00:47:23,010 --> 00:47:24,070 Foo itzultzen. 981 00:47:24,070 --> 00:47:26,350 Eta honen bueltan helbidea da. 982 00:47:26,350 --> 00:47:30,490 Beraz, nola aurkariarekiko bat aprobetxatu dezake honen kontua da, 983 00:47:30,490 --> 00:47:37,550 buffer c honetan gordetzen da, dezagun esan, hementxe c da. 984 00:47:37,550 --> 00:47:39,690 Beraz, lortu dugu 12 byte c. 985 00:47:39,690 --> 00:47:40,540 Hau da c. 986 00:47:40,540 --> 00:47:43,030 Eta hau foo en pila eraztuna da. 987 00:47:43,030 --> 00:47:49,970 Maltzurren erabiltzaile gehiago sartzen da, hala bada 12 baino byte edo komando bat sartu dute 988 00:47:49,970 --> 00:47:54,570 lerroko argumentu hori da 12 baino luzeagoa pertsonaiak, gero goazela 989 00:47:54,570 --> 00:47:57,540 Buffer honek gainezka. 990 00:47:57,540 --> 00:47:59,910 >> Jarraitzeko aukera izango dugu. 991 00:47:59,910 --> 00:48:02,220 Eta uneren batean, urrun joan gara nahikoa hasiko garela 992 00:48:02,220 --> 00:48:05,120 bueltan helbide hau gainidatziz. 993 00:48:05,120 --> 00:48:08,310 Beraz, behin itzulera helbidea gainidatzi dugu, honek esan nahi du, lelo 994 00:48:08,310 --> 00:48:14,220 itzulerak, ari lekuan itzuli dugu erabiltzaile maltzur hura kontatzea da egindako 995 00:48:14,220 --> 00:48:19,490 edozein dela ere, balioa, sartu da edozein dela egindako pertsonaiak erabiltzaileak sartu. 996 00:48:19,490 --> 00:48:24,320 Eta hala bada maltzurren erabiltzaile izatea da bereziki azkarra, hau izan zuen 997 00:48:24,320 --> 00:48:29,255 printDef nonbait itzuli funtzio edo malloc nonbait 998 00:48:29,255 --> 00:48:31,830 funtzioa, edozein lekutan arbitrarioa. 999 00:48:31,830 --> 00:48:38,420 >> Baina are gehiago clever da dauka zer bada Erabiltzaileak itzultzeko hemen. 1000 00:48:38,420 --> 00:48:41,920 Eta, ondoren, exekutatzen hasten zara hauek kode lerro gisa. 1001 00:48:41,920 --> 00:48:46,610 Beraz, puntu horretan, erabiltzaileak sartu ahal edozein dela ere nahi du eskualde honetan sartu zuen. 1002 00:48:46,610 --> 00:48:52,210 Eta kontrol osoa du Zure programa baino gehiago. 1003 00:48:52,210 --> 00:48:53,460 Horri buruzko galderak? 1004 00:48:53,460 --> 00:48:56,380 1005 00:48:56,380 --> 00:49:00,970 Beraz, hurrengo galdera da osoa izan foo reimplementation horrela 1006 00:49:00,970 --> 00:49:02,620 jada ez dela zaurgarria. 1007 00:49:02,620 --> 00:49:03,870 >> Beraz, ez dago modu pare bat da duzu hau egin izan da. 1008 00:49:03,870 --> 00:49:10,900 1009 00:49:10,900 --> 00:49:13,330 Oraindik ere c besterik ez dugu luzera 12 izanik. 1010 00:49:13,330 --> 00:49:16,480 Zuk aldatu egin liteke hau zure irtenbidea barruan. 1011 00:49:16,480 --> 00:49:18,930 Halaber, txeke bat egiteko gehitu ditugu ziur barra ez zela nulua. 1012 00:49:18,930 --> 00:49:24,460 Nahiz eta zuk ez duzu behar kreditu osoa duten. 1013 00:49:24,460 --> 00:49:27,690 Beraz, lehenik eta egiaztatzen ari gara katea bar luzera. 1014 00:49:27,690 --> 00:49:31,650 12 baino handiagoa da, eta gero, bada ez benetan egiten kopia. 1015 00:49:31,650 --> 00:49:33,010 Beraz, hura konpontzeko modu bat da. 1016 00:49:33,010 --> 00:49:36,750 >> Hura konpontzeko beste modu bat da ordez c beharrik bakarrik luzera izango 12, izan da 1017 00:49:36,750 --> 00:49:39,310 luzera strlen (bar) izan. 1018 00:49:39,310 --> 00:49:43,370 Hura konpontzeko beste modu bat da benetan besterik ez itzultzeko. 1019 00:49:43,370 --> 00:49:46,690 Beraz, zuk izan besterik ahaztuak guztia deusezten bada hau, besterik ez duzu guztia ezabatu izan balu 1020 00:49:46,690 --> 00:49:51,830 kode lerro, you ahaztuak zukeen kreditu osoa, funtzio hori geroztik 1021 00:49:51,830 --> 00:49:54,150 ez benetan betetzeko ezer. 1022 00:49:54,150 --> 00:49:57,650 Honez agindu lerroan kopiatzen da argumentu in array batzuk sartu 1023 00:49:57,650 --> 00:49:59,960 bere tokiko pila markoa. 1024 00:49:59,960 --> 00:50:01,310 Eta gero, gauza itzuli da. 1025 00:50:01,310 --> 00:50:04,020 Eta edozein dela ere lortzen desagertuko da. 1026 00:50:04,020 --> 00:50:09,740 Beraz, bueltan nahikoa ere izan zen kreditu osoa lortzeko modu. 1027 00:50:09,740 --> 00:50:13,425 >> DAVID J. MALAN: Not espiritua nahiko du galderari baina per onargarria 1028 00:50:13,425 --> 00:50:15,580 zehaztapenak, hala ere. 1029 00:50:15,580 --> 00:50:18,260 >> ROB BOWDEN: horretako edozein galderak? 1030 00:50:18,260 --> 00:50:22,270 Gauza bat duzu gutxienez Beharko den kode konpilatzean dute. 1031 00:50:22,270 --> 00:50:24,810 Beraz, nahiz eta teknikoki ez zara zaurgarria zure kodea ez bada 1032 00:50:24,810 --> 00:50:29,130 konpilatu, ez genuen onartzea. 1033 00:50:29,130 --> 00:50:31,350 No galdera? 1034 00:50:31,350 --> 00:50:33,320 Ados. 1035 00:50:33,320 --> 00:50:34,580 >> DAVID J. MALAN: nahi duzun Ez titulu hori esateko? 1036 00:50:34,580 --> 00:50:37,230 >> ROB BOWDEN: N º 1037 00:50:37,230 --> 00:50:40,470 >> DAVID J. MALAN: Beraz, oraingo honetan, hau bai albiste ona edo albiste txarra izan zen. 1038 00:50:40,470 --> 00:50:43,870 Hau da, hitzez hitz, arazo bera lehen galdetegi gisa. 1039 00:50:43,870 --> 00:50:46,140 Eta ia ez da berdina pset1 gisa arazoa. 1040 00:50:46,140 --> 00:50:49,980 Baina nahita sinplifikatu zen izan piramide sinpleago bat, hori izan daiteke 1041 00:50:49,980 --> 00:50:52,330 apur batekin konpondu iterazio errazagoa. 1042 00:50:52,330 --> 00:50:55,680 Eta benetan, zer dugu at lortzean ziren Hemen ez zen hainbeste logika, 1043 00:50:55,680 --> 00:50:58,100 Ziurrenik, une honetan, zauden delako erosoagoa izan ziren baino 1044 00:50:58,100 --> 00:51:01,850 astebete begiztak edo zergatik loops batera, baina benetan gain tease duten 1045 00:51:01,850 --> 00:51:04,790 Oraindik batera pixka bat eroso Nozio horrek PHP ez da bakarrik zeri buruz 1046 00:51:04,790 --> 00:51:05,290 programazioa. 1047 00:51:05,290 --> 00:51:07,820 Da benetan hizkuntza gisa erabiltzen komando lerroko programak idazteko. 1048 00:51:07,820 --> 00:51:10,060 >> Eta, hain zuzen, hori da saiatzen ari ginen zure atentzioa emateko. 1049 00:51:10,060 --> 00:51:12,060 Hau komando lerroan PHP programa bat da. 1050 00:51:12,060 --> 00:51:16,690 Beraz, C kodea hemen, zuzena berriz C, ez PHP zuzendu. 1051 00:51:16,690 --> 00:51:17,940 Baina benetan kodearen berdina da. 1052 00:51:17,940 --> 00:51:21,720 Quiz konponbideak alderatu ezkero 0 Quiz 1 aurka, aurkituko dituzu duen 1053 00:51:21,720 --> 00:51:25,630 ia berdina da, salbu batzuk dolarraren seinaleak eta egiteko 1054 00:51:25,630 --> 00:51:27,250 datu mota bat eza. 1055 00:51:27,250 --> 00:51:31,720 Hain zuzen ere, begirada bat hartu dugu hemen, ikusiko duzu batetik bestera joateko dugula, honetan 1056 00:51:31,720 --> 00:51:33,730 kasuan, 1etik 7 bidez sortu. 1057 00:51:33,730 --> 00:51:34,910 >> Dugu egin izan du, 0 indizea. 1058 00:51:34,910 --> 00:51:37,320 Baina batzuetan, uste dut besterik ez da adimen errazago gauzak pentsatzen 1059 00:51:37,320 --> 00:51:38,200 1etik 7ra. 1060 00:51:38,200 --> 00:51:40,300 Bloke bat nahi baduzu, ondoren, bi blokeak, gero hiru, gero 1061 00:51:40,300 --> 00:51:41,770 dot, dot, dot zazpi. 1062 00:51:41,770 --> 00:51:45,960 Dugu j ari 1 hasieratu eta ondoren kontatuta i iritsi arte. 1063 00:51:45,960 --> 00:51:48,150 Eta dena da hemen bestela berdin-berdina. 1064 00:51:48,150 --> 00:51:49,790 Baina nabarmendu behar dira gauza pare bat. 1065 00:51:49,790 --> 00:51:53,230 Dituzu bi lerro hauek, lehenengo hau ematen diogu bata, goofily shebang gisa izendatzen 1066 00:51:53,230 --> 00:51:54,560 bang zorrotz. 1067 00:51:54,560 --> 00:51:58,770 Eta hori besterik bidea zehazten da, karpeta, eta bertan programa bat izan daiteke 1068 00:51:58,770 --> 00:52:02,160 aurkitu eta erabili nahi duzun fitxategi hau interpretatzeko. 1069 00:52:02,160 --> 00:52:04,710 >> Eta, ondoren, horren ondoren lerroan, of Jakina, esan nahi sartu PHP modua. 1070 00:52:04,710 --> 00:52:07,740 Eta oso behean lerroan irteera PHP modua esan nahi du. 1071 00:52:07,740 --> 00:52:09,740 Eta obra hau, orokorrean, ekin interpretatu hizkuntzak. 1072 00:52:09,740 --> 00:52:14,370 Mota da gogaikarriak idazten baduzu bat izeneko foo.php fitxategi batean programa. 1073 00:52:14,370 --> 00:52:17,320 Eta gero, zure erabiltzaile izatea besterik gogoratu, OK, programa hau exekutatu, I 1074 00:52:17,320 --> 00:52:22,320 idatzi behar "php espazio foo.php." Nolako gogaikarriak besterik ez bada ere. 1075 00:52:22,320 --> 00:52:25,270 Eta agerian uzten du ere, zure programa da PHP, eta hori ez da guztia idatzita 1076 00:52:25,270 --> 00:52:27,060 duten erabiltzailearentzat argitzen. 1077 00:52:27,060 --> 00:52:30,100 >> Beraz. Php guztiz kendu ditzakezu hitzaldia gogoratzen. 1078 00:52:30,100 --> 00:52:35,690 Eta benetan egin dezakezu. / Foo bada Nik chmodded duzun eginez 1079 00:52:35,690 --> 00:52:36,500 exekutagarria. 1080 00:52:36,500 --> 00:52:39,630 Beraz chmod a + x foo egin zukeen. 1081 00:52:39,630 --> 00:52:41,460 Eta, gainera shebang gehitu baduzu hemen. 1082 00:52:41,460 --> 00:52:45,320 Baina, benetan, arazoa at zen lortzean honen antzeko zerbait inprimatzeko. 1083 00:52:45,320 --> 00:52:51,100 No HTML, ez C-kodea, zalantzarik gabe, besterik PHP batzuk. 1084 00:52:51,100 --> 00:52:54,100 Beraz Milo gero arazoa 25 urtean itzuli. 1085 00:52:54,100 --> 00:52:58,050 Eta 25 in, you ziren honako hauek eman hezurdura kodea; zen bat 1086 00:52:58,050 --> 00:52:59,730 Web orri, nahiko erraza. 1087 00:52:59,730 --> 00:53:04,230 Eta parte mamitsuena HTML-jakintsua jaitsi zen Hemen, non gorputzaren barruan dugu 1088 00:53:04,230 --> 00:53:09,160 duten sarrera-identifikazio berezia du formulario bat horren barruan bi sarrera, bat izan zen 1089 00:53:09,160 --> 00:53:11,950 izena, batek ideia bat botoia ideia batekin. 1090 00:53:11,950 --> 00:53:14,240 >> Lehenengoak testu mota zen, mota bigarren submit. 1091 00:53:14,240 --> 00:53:16,930 Eta horrela eman dugu zuk, egia esan, gehiago , behar duzuna baino besterik ez, beraz, osagai 1092 00:53:16,930 --> 00:53:19,230 you guys aukerak izan dituen arazo hau konpontzeko. 1093 00:53:19,230 --> 00:53:21,130 Ez zorrozki behar duzun identifikazioak horiek guztiak. 1094 00:53:21,130 --> 00:53:23,580 Baina konpontzeko aukera ematen du modutan da. 1095 00:53:23,580 --> 00:53:27,050 Eta goialdean, nabarituko helburuari eragin zen 1096 00:53:27,050 --> 00:53:27,960 Honelako leiho bat - 1097 00:53:27,960 --> 00:53:28,780 Kaixo, Milo - 1098 00:53:28,780 --> 00:53:31,270 gora pop nabigatzailea erabiliz super simple, bada 1099 00:53:31,270 --> 00:53:33,190 Ez itsusi, alerta funtzioa. 1100 00:53:33,190 --> 00:53:37,480 Eta, beraz, azken finean, hau irakiten behera kontzeptualki nolabait entzuten 1101 00:53:37,480 --> 00:53:41,290 inprimaki bezero-aldeko-bidalketak , Ez du zerbitzariaren aldeko, nolabait 1102 00:53:41,290 --> 00:53:45,640 aurkezteko duten erantzuna duten erabiltzaileak idatzitako balioa grabbing 1103 00:53:45,640 --> 00:53:50,120 izenaren eremuan hautatu, eta ondoren hura erakusteak alerta bat gorputzean. 1104 00:53:50,120 --> 00:53:53,460 >> Beraz, hau egin dezakezu modu bat da jQuery, zein itxura apur bat 1105 00:53:53,460 --> 00:53:56,880 sintaktikoki perplexing lehen. 1106 00:53:56,880 --> 00:54:00,760 Hau egin ahal izango duzu puru DOM kodea ekin - izena by document.getelement. 1107 00:54:00,760 --> 00:54:02,530 Baina dezagun bertsio honetan begirada bat. 1108 00:54:02,530 --> 00:54:05,110 Garrantzitsu pare bat daukat lerroak lehen. 1109 00:54:05,110 --> 00:54:09,460 Beraz, bat, lerro hau dugu, hau da, zer ikusi duzu agian berdina 1110 00:54:09,460 --> 00:54:13,830 , in dut uste, form2.html klase aste 9. 1111 00:54:13,830 --> 00:54:16,960 Eta hau da, besterik gabe, esaten exekutatu Ondorengo kodea denean 1112 00:54:16,960 --> 00:54:18,430 Dokumentuaren prest dago. 1113 00:54:18,430 --> 00:54:21,770 Hau garrantzitsua izateaz bakarra delako HTML orrien top irakurtzen ari den 1114 00:54:21,770 --> 00:54:23,280 behean, ezkerretik eskuinera. 1115 00:54:23,280 --> 00:54:27,910 >> Eta, beraz, saiatu egin baduzu hemen kode DOM batzuk zerbait 1116 00:54:27,910 --> 00:54:31,560 elementu, HTML etiketa batzuk, hori behera Hemen, goizegi egiten ari zarenean, 1117 00:54:31,560 --> 00:54:34,220 hau ez baita delako Izan memorian irakurtzen. 1118 00:54:34,220 --> 00:54:37,740 Beraz document.ready hau esanez line, ari, esaten dugu 1119 00:54:37,740 --> 00:54:39,040 Hemen batzuen kodea, nabigatzaileak da. 1120 00:54:39,040 --> 00:54:42,440 Baina ez exekutatu honetan guztian arte dokumentu prest dago, hori DOM da 1121 00:54:42,440 --> 00:54:44,320 Zuhaitz memorian existitzen. 1122 00:54:44,320 --> 00:54:47,110 Hau da, apur bat gehiago erraza, sintaktikoki bat bada 1123 00:54:47,110 --> 00:54:51,890 bit desberdinak, non esaten dut, grab HTML elementu baten berezia 1124 00:54:51,890 --> 00:54:53,560 Identifikatzaile Sarrerek da. 1125 00:54:53,560 --> 00:54:56,220 Hori da, zer hash etiketa denotatzen, ID bakarra. 1126 00:54:56,220 --> 00:54:58,070 Eta gero deitzen naiz. Aurkezteko. 1127 00:54:58,070 --> 00:55:01,660 >> Beraz. Submit hemen funtzio bat da, bestela metodo gisa ezagutzen da, hori da 1128 00:55:01,660 --> 00:55:05,850 ezkerreko eskuko on objektuaren barruan albo han, baina ez dut nabarmendu. 1129 00:55:05,850 --> 00:55:08,990 Uste duzu sarrera-hala bada objektu bat gisa oroimenean - eta halaxe izan da. 1130 00:55:08,990 --> 00:55:10,440 Zuhaitz bat lotune bat da - 1131 00:55:10,440 --> 00:55:16,580 . Aurkezteko bide denean inprimaki honekin identifikazio hori aurkeztu, exekutatu 1132 00:55:16,580 --> 00:55:17,700 Ondorengo kodea. 1133 00:55:17,700 --> 00:55:20,290 Berdin zait zer-izena funtzioa da exekutatzen ari naiz. 1134 00:55:20,290 --> 00:55:23,760 Beraz, hemen, erabiltzen dut lehen bezala, zer the lambda funtzio edo bat deitu 1135 00:55:23,760 --> 00:55:24,720 Funtzio anonimoak. 1136 00:55:24,720 --> 00:55:27,640 Ez da batere intelektualki izena ez du bestea baino interesgarria da, 1137 00:55:27,640 --> 00:55:30,220 hau da, fina Oraindik duzun bakarra bada inoiz behin deituko da joan. 1138 00:55:30,220 --> 00:55:34,490 Eta barrutik han benetan kudeatzeko dut Inprimakia aurkezteko. 1139 00:55:34,490 --> 00:55:36,810 Lehenengo aldagai bat deklaratzen dut balioa deritzo. 1140 00:55:36,810 --> 00:55:40,610 Eta gero, zer honek eragina da nabarmendutako zatia hemen orain? 1141 00:55:40,610 --> 00:55:44,755 Zer duten batean egiten du niretzat maila handia? 1142 00:55:44,755 --> 00:55:48,539 >> AUDIENCE: balioa lortzen duen Erabiltzaileak ez du aurkitu HTML beheko. 1143 00:55:48,539 --> 00:55:50,920 ID hori lortzen da eta, ondoren, duen balioa aurkitzen. 1144 00:55:50,920 --> 00:55:51,590 >> DAVID J. MALAN: Zehazki. 1145 00:55:51,590 --> 00:55:54,300 Nodo hartuko du, zeinen berezia Identifikatzaile izena da. 1146 00:55:54,300 --> 00:55:56,900 Balioa lortzen da bertan, eta horrek da, ustez, zer erabiltzailea 1147 00:55:56,900 --> 00:55:58,190 idatzi bere burua. 1148 00:55:58,190 --> 00:56:01,020 Eta, ondoren, gordetzen duen in Balio izeneko aldagai. 1149 00:56:01,020 --> 00:56:03,720 Bat alde batera utzita, ere izan dezakezu egin hau apur bat ezberdina. 1150 00:56:03,720 --> 00:56:09,250 Erabat zerbait egiten onargarria gezur var balioa lortzen 1151 00:56:09,250 --> 00:56:10,500 document.getElementById. 1152 00:56:10,500 --> 00:56:12,860 1153 00:56:12,860 --> 00:56:15,460 Eta, horregatik, apur bat da lapurtera den jQuery ez erabiltzea. 1154 00:56:15,460 --> 00:56:16,710 "Izena". Balioa. 1155 00:56:16,710 --> 00:56:18,330 1156 00:56:18,330 --> 00:56:19,620 Beraz, erabat onargarria. 1157 00:56:19,620 --> 00:56:22,770 Modu ezberdinetan horretarako. jQuery besterik apur bat gehiago laburra eta izan ohi 1158 00:56:22,770 --> 00:56:25,230 zalantzarik gehiago popular programatzaile artean. 1159 00:56:25,230 --> 00:56:27,590 >> Orain, behatu bat pixka bat egiten ari naiz egiaztatzeko, arazoa delako 1160 00:56:27,590 --> 00:56:30,820 adierazpen esplizituki esan dugu, bada, Erabiltzaileak ez du oraindik idatzitako bere 1161 00:56:30,820 --> 00:56:32,580 izendatzeko, ez alertak bat erakusteko. 1162 00:56:32,580 --> 00:56:35,390 Baina horretarako zuk egiaztatu ahal izango, besterik arabera kate hutsa baten egiaztapena 1163 00:56:35,390 --> 00:56:37,850 aurrekontu-unquote badago ezer ez benetan. 1164 00:56:37,850 --> 00:56:40,880 Baina ez da aurrekontu-unquote berdina bada, Alertak deitu nahi dut. 1165 00:56:40,880 --> 00:56:45,610 Eta zati interesgarri hemen dela plus operadorea erabiltzen ari gara, eta horrek 1166 00:56:45,610 --> 00:56:48,130 zer JavaScript? 1167 00:56:48,130 --> 00:56:48,740 Kateatu. 1168 00:56:48,740 --> 00:56:50,690 Beraz PHPs dot operadorea bezala. 1169 00:56:50,690 --> 00:56:52,820 Ideia bera, sintaxia apur bat desberdinak. 1170 00:56:52,820 --> 00:56:55,280 Eta besterik ez dut katea sortzeko naiz duten ikusi duzu pantaila jaurtiketa on - 1171 00:56:55,280 --> 00:56:57,750 Kaixo, beraz, eta abar. 1172 00:56:57,750 --> 00:56:59,200 >> Eta, ondoren, azken xehetasuna da hau. 1173 00:56:59,200 --> 00:57:04,970 Zergatik barruan faltsua itzuliko dut Funtzio anonimoak honen? 1174 00:57:04,970 --> 00:57:07,420 >> AUDIENCE: Inolako baliorik ez. 1175 00:57:07,420 --> 00:57:09,380 Jarri duzu inprimakia. 1176 00:57:09,380 --> 00:57:12,320 1177 00:57:12,320 --> 00:57:16,730 Besterik ez dio, balioa ez bada hutsik berdina, eta gero egin du. 1178 00:57:16,730 --> 00:57:20,040 1179 00:57:20,040 --> 00:57:20,940 Han aurkezteko horretan huts bat zen. 1180 00:57:20,940 --> 00:57:21,170 >> DAVID J. MALAN: Ados. 1181 00:57:21,170 --> 00:57:21,640 Kontuz ibili arren. 1182 00:57:21,640 --> 00:57:22,830 Ba al dago beste inor hemen. 1183 00:57:22,830 --> 00:57:25,510 Eta bueltan faltsua duten kanpo dago baldintza bada ere. 1184 00:57:25,510 --> 00:57:29,470 Beraz, hau nabarmendutako lerroa, itzultzeko faltsua, exekutatzen axola zer denean 1185 00:57:29,470 --> 00:57:32,310 Inprimakia aurkeztu da. 1186 00:57:32,310 --> 00:57:36,810 Zer esan honen barruan faltsua itzuli Gertaera kudeatzailea da, deitzen baita, 1187 00:57:36,810 --> 00:57:38,450 galdera gertaera aurkezteko izateaz? 1188 00:57:38,450 --> 00:57:42,350 1189 00:57:42,350 --> 00:57:44,470 >> AUDIENCE: delako behin bakarrik gertatzen da. 1190 00:57:44,470 --> 00:57:45,320 >> DAVID J. MALAN: behin bakarrik gertatzen da. 1191 00:57:45,320 --> 00:57:46,821 Ez da nahiko. 1192 00:57:46,821 --> 00:57:47,292 Bai? 1193 00:57:47,292 --> 00:57:50,589 >> AUDIENCE: formularioa eragozten aurrera portaera lehenetsia aurkezteko, 1194 00:57:50,589 --> 00:57:52,480 zein orri berritu egingo luke. 1195 00:57:52,480 --> 00:57:53,110 >> DAVID J. MALAN: Zehazki. 1196 00:57:53,110 --> 00:57:56,490 Beraz, gainkarga naiz epe aurkeztu hemen, dut esaten delako, formularioan da 1197 00:57:56,490 --> 00:57:57,670 aurkeztu diren. 1198 00:57:57,670 --> 00:58:02,240 Baina iradokitzen duzun bezala, benetan ez dira benetako HTTP modu batera aurkeztu. 1199 00:58:02,240 --> 00:58:06,870 Noiz Aurkeztu, delako sakatu duzu gure onSubmit handler, atzematen ari gara 1200 00:58:06,870 --> 00:58:09,040 forman aurkezteko, beraz, hitz egiten. 1201 00:58:09,040 --> 00:58:11,290 Ondoren, gure gauza ari gara egiten Javascript kodearekin. 1202 00:58:11,290 --> 00:58:14,070 Baina nik nahita faltsu itzuli nintzen, zer ez dut gertatuko nahi duelako bat 1203 00:58:14,070 --> 00:58:18,430 split bigarren geroago inprimaki osorako da berez weba aurkeztu behar 1204 00:58:18,430 --> 00:58:22,800 Kode-balio bikoteetan zerbitzari aldatuz URL antzeko zerbait izan nahi du 1205 00:58:22,800 --> 00:58:26,180 q = katuak edo dena delakoa egin genuen, esate baterako, klasean. 1206 00:58:26,180 --> 00:58:29,640 Ez dut nahi hori gertatuko, zeren han zerbitzari no honen entzutea da 1207 00:58:29,640 --> 00:58:30,690 aurkezteko inprimakia. 1208 00:58:30,690 --> 00:58:32,320 Honez hutsa JavaScript kodea egin. 1209 00:58:32,320 --> 00:58:35,760 Eta horregatik ez ere daukat bat Ekintza nire orrian aitortu, dudalako 1210 00:58:35,760 --> 00:58:38,870 ez honen asmoa inoiz zerbitzari joan. 1211 00:58:38,870 --> 00:58:40,780 >> Beraz, aurkeztu diren. 1212 00:58:40,780 --> 00:58:44,340 Baina forma atzematen ari gara aurkezteko eta lehenetsia saihestuz 1213 00:58:44,340 --> 00:58:47,477 jokabidea, hau da, benetan modu guztiak joan zerbitzariari. 1214 00:58:47,477 --> 00:58:48,730 >> AUDIENCE: Beraz mantenduz bezero-aldeko. 1215 00:58:48,730 --> 00:58:49,780 >> DAVID J. MALAN: mantentzea horri esker, bezeroak. 1216 00:58:49,780 --> 00:58:51,030 Zehazki eskubidea. 1217 00:58:51,030 --> 00:58:53,240 1218 00:58:53,240 --> 00:58:55,757 Next up my oh MySQL zen. 1219 00:58:55,757 --> 00:59:00,000 1220 00:59:00,000 --> 00:59:00,430 >> ROB BOWDEN: Ados. 1221 00:59:00,430 --> 00:59:04,990 Beraz, lehen galdera hau izan zen, oro har, pertsonentzat zakarra. 1222 00:59:04,990 --> 00:59:07,270 Geroago, batzuk joan arren hobeto. 1223 00:59:07,270 --> 00:59:12,260 Beraz, datuak zuzenak hautatu behar izan duzu zutabe horietako bi mota. 1224 00:59:12,260 --> 00:59:17,750 Eta horietako bi izan batzuk haiei buruz gauzak 1225 00:59:17,750 --> 00:59:20,620 aukera zaila egin. 1226 00:59:20,620 --> 00:59:24,430 Beraz, int ez zen baliozko zenbakian idatzi. 1227 00:59:24,430 --> 00:59:29,410 Arrazoia, 12 digituko kontu bat izateaz zenbakia, int bat ez da nahikoa handira 1228 00:59:29,410 --> 00:59:31,070 digituak guztira gordetzeko. 1229 00:59:31,070 --> 00:59:36,570 Beraz, baliozko aukera bat izan litzateke handi bat int duten jakin gertatuko baduzu. 1230 00:59:36,570 --> 00:59:42,090 Beste aukera, izan zitekeen char luzera 12 eremu bat. 1231 00:59:42,090 --> 00:59:44,560 Beraz, horiek bai aritu zen. 1232 00:59:44,560 --> 00:59:46,100 Ez litzateke int. 1233 00:59:46,100 --> 00:59:50,170 >> Orain, oreka, uste pset7 itzuli. 1234 00:59:50,170 --> 00:59:59,540 Beraz, berariaz erabili dugu hamartarrekin akzioak edo balioa gordetzeko - 1235 00:59:59,540 --> 01:00:00,550 >> DAVID J. MALAN: Cash. 1236 01:00:00,550 --> 01:00:01,060 >> ROB BOWDEN: Cash. 1237 01:00:01,060 --> 01:00:05,710 Zenbatekoa gordetzeko hamartar erabiltzen dugu cash erabiltzaileari ditu gaur egun duten. 1238 01:00:05,710 --> 01:00:10,950 Beraz, arrazoia ez da egin duguna , izan ere, gogoratu, karroza. 1239 01:00:10,950 --> 01:00:12,480 Han doitasun puntu mugikorreko da. 1240 01:00:12,480 --> 01:00:18,200 Ezin hain zuzen gordetzeko dirua da dugun bezalako baloreak hemen nahi. 1241 01:00:18,200 --> 01:00:23,630 Beraz hamartar ahal izateko, hain zuzen denda da zerbait, esan, bi hamartarrekin. 1242 01:00:23,630 --> 01:00:27,630 Horregatik, oreka, nahi dugu hamartar eta ez flotatzen izan. 1243 01:00:27,630 --> 01:00:30,230 >> DAVID J. MALAN: Eta, gainera, ere, nahiz hura izan zitekeen argia beste in 1244 01:00:30,230 --> 01:00:32,760 testuinguru pentsatzeko, agian hau int aukera bat da. 1245 01:00:32,760 --> 01:00:34,420 Besterik ez dut pista pennies gauzak. 1246 01:00:34,420 --> 01:00:38,670 Esplizituki erakutsi dugu lehenetsia delako izateaz 100.00, balioa duten 1247 01:00:38,670 --> 01:00:40,380 esan nahi du, besterik ez zitekeela int bat izan. 1248 01:00:40,380 --> 01:00:45,310 Eta sotiltasun beste too zenbakiarekin zen zen, ez dela ekarri 1249 01:00:45,310 --> 01:00:46,180 trikimailu galdera bat izan. 1250 01:00:46,180 --> 01:00:49,860 Baina gogoratzen MySQL int bat dela, bezalako C, gutxienez dagoen 1251 01:00:49,860 --> 01:00:51,440 tresnaren, 32-bit dira. 1252 01:00:51,440 --> 01:00:53,960 Eta ez dugun arren, espero duzu dakit zehazki zenbat digituak duen 1253 01:00:53,960 --> 01:00:56,910 bitartez, ez gogoratzen duten kopuru handiena potentzialki irudikatzeko dezakezu 1254 01:00:56,910 --> 01:01:00,710 32 biteko zenbaki batekin gutxi gorabehera zer den? 1255 01:01:00,710 --> 01:01:02,760 >> Zer zenbaki ez beti esaten dugu? 1256 01:01:02,760 --> 01:01:04,530 2 eta 32, hau da, gutxi gorabehera, zer? 1257 01:01:04,530 --> 01:01:07,492 1258 01:01:07,492 --> 01:01:08,780 Ez duzu, hain zuzen ere jakin nahi. 1259 01:01:08,780 --> 01:01:10,580 Baina gutxi gorabehera bizitzan lagungarria da. 1260 01:01:10,580 --> 01:01:12,200 Gutxi gorabehera 4 milioi da. 1261 01:01:12,200 --> 01:01:14,430 Beraz, hainbat aldiz esan dugu. 1262 01:01:14,430 --> 01:01:16,360 Dakit esan dut hori hainbat aldiz. 1263 01:01:16,360 --> 01:01:17,670 Eta gutxi gorabehera 4 milioi da. 1264 01:01:17,670 --> 01:01:19,710 Eta hori arau ona da Thumb jakin. 1265 01:01:19,710 --> 01:01:21,880 8 bit, 256 badaukazu zenbaki magikoa da. 1266 01:01:21,880 --> 01:01:24,160 32 bit, 4 badaukazu milioi eman edo hartu. 1267 01:01:24,160 --> 01:01:27,140 Beraz, zuk idatzi besterik ez bada behera 4 mila milioi, ikusiko duzu baino zifra gutxiago dela 1268 01:01:27,140 --> 01:01:30,970 12, horrek esan nahi du, hori argi eta garbi ez nahikoa adierazkortasuna artera bat 1269 01:01:30,970 --> 01:01:34,220 12 digituko kontu zenbakia. 1270 01:01:34,220 --> 01:01:34,940 >> ROB BOWDEN: Ados. 1271 01:01:34,940 --> 01:01:38,520 Beraz, beste batzuk joan hobeto. 1272 01:01:38,520 --> 01:01:40,900 Beraz suposatzen duten banku $ 20 hileko inposatzen 1273 01:01:40,900 --> 01:01:42,400 mantentze kontu guztietan kuota. 1274 01:01:42,400 --> 01:01:45,506 Zer SQL kontsulta banku Could rekin kendu $ 20 Aldaketa guztietatik, nahiz 1275 01:01:45,506 --> 01:01:47,520 emaitza da saldo negatiboak batzuetan? 1276 01:01:47,520 --> 01:01:50,380 Beraz, funtsean, lau dira kontsultak mota nagusiak - 1277 01:01:50,380 --> 01:01:52,840 txertatzeko, hautatu, eguneratu eta ezabatu. 1278 01:01:52,840 --> 01:01:56,080 Beraz, zer gaude uste dugu Hemen erabili behar da? 1279 01:01:56,080 --> 01:01:57,000 Eguneratzeko. 1280 01:01:57,000 --> 01:01:58,260 >> Beraz dezagun begirada bat. 1281 01:01:58,260 --> 01:02:04,290 1282 01:02:04,290 --> 01:02:05,870 Beraz eguneratzen ari gara hemen. 1283 01:02:05,870 --> 01:02:09,900 Zer mahai daude kontuak eguneratzeko dugu? 1284 01:02:09,900 --> 01:02:11,670 Beraz kontuak eguneratzeko. 1285 01:02:11,670 --> 01:02:15,390 Eta, ondoren sintaxia dio, zer kontuetan ari gara eguneratzen? 1286 01:02:15,390 --> 01:02:19,520 Beno, saldoaren berdina ezartzeko ari gara egungo oreka ken 20 balioa. 1287 01:02:19,520 --> 01:02:22,860 Beraz, hau errenkada guztiak eguneratu egingo kontuak, kenduz 1288 01:02:22,860 --> 01:02:26,250 $ 20 oreka from. 1289 01:02:26,250 --> 01:02:29,260 >> DAVID J. MALAN: akats arrunt bat hemen, batzuetan barkatu dugu, nahiz eta, 1290 01:02:29,260 --> 01:02:32,990 izan zen benetan PHP kodea hemen kontsulta funtzioa deituz edo jarriz 1291 01:02:32,990 --> 01:02:35,460 guztia inguruan komatxo duten ez zuen behar han egon. 1292 01:02:35,460 --> 01:02:39,780 >> ROB BOWDEN: Gogoratu MySQL dela PHP lengoaia bereizi bat. 1293 01:02:39,780 --> 01:02:42,410 Da idazteko MySQL PHP gertatuko dugu. 1294 01:02:42,410 --> 01:02:46,180 Eta PHP gero bidaltzea MySQL zerbitzariarekin baino gehiago. 1295 01:02:46,180 --> 01:02:51,120 Baina ez duzu PHP behar izateko MySQL zerbitzari batekin komunikatzen. 1296 01:02:51,120 --> 01:02:51,730 >> DAVID J. MALAN: Zehazki. 1297 01:02:51,730 --> 01:02:54,240 Beraz dolarraren seinaleak aldagai ez behar testuinguru honetan be. 1298 01:02:54,240 --> 01:02:59,550 Besterik ez da egin ahal izango matematika guztia datu-base barruan. 1299 01:02:59,550 --> 01:03:00,080 >> ROB BOWDEN: Ados. 1300 01:03:00,080 --> 01:03:01,300 Hurrengo bat beraz. 1301 01:03:01,300 --> 01:03:02,731 Hau al da hurrengo bat? 1302 01:03:02,731 --> 01:03:03,210 Bai. 1303 01:03:03,210 --> 01:03:06,570 Beraz, zer SQL kontsulta banku Could rekin Kontu bere zenbakiak berreskuratu 1304 01:03:06,570 --> 01:03:09,300 aberatsena bezeroek, duzuenok saldoak 1.000 baino handiagoa? 1305 01:03:09,300 --> 01:03:13,280 Beraz, lau mota nagusi zein daude hemen nahi dugu? 1306 01:03:13,280 --> 01:03:14,430 Hautatu. 1307 01:03:14,430 --> 01:03:16,650 Beraz hautatu nahi dugu. 1308 01:03:16,650 --> 01:03:17,610 Zer hautatu nahi dugu? 1309 01:03:17,610 --> 01:03:19,380 Zer zutabean zuk hautatu nahi dugu? 1310 01:03:19,380 --> 01:03:20,970 Egingo zehazki nahi dugu kopurua hautatzeko. 1311 01:03:20,970 --> 01:03:23,910 Baina esan duzu izarra, badugu ere onartu. 1312 01:03:23,910 --> 01:03:25,820 >> Beraz hautatu zenbaki zer mahaitik? 1313 01:03:25,820 --> 01:03:26,640 Kontuak. 1314 01:03:26,640 --> 01:03:28,370 Eta gero, baldintza nahi dugu? 1315 01:03:28,370 --> 01:03:30,140 Non oreka 1.000 baino handiagoa. 1316 01:03:30,140 --> 01:03:31,720 Ere handiagoa onartu dugu baino edo berdina. 1317 01:03:31,720 --> 01:03:35,230 1318 01:03:35,230 --> 01:03:36,190 Ko bat. 1319 01:03:36,190 --> 01:03:42,940 Zer SQL kontsulta banku Could rekin hurbil, hau da, Kontu guztietan ezabatu duten 1320 01:03:42,940 --> 01:03:44,480 $ 0 oreka bat du? 1321 01:03:44,480 --> 01:03:47,620 Beraz, lau zein garen erabili nahi dugu? 1322 01:03:47,620 --> 01:03:48,320 Ezabatzeko. 1323 01:03:48,320 --> 01:03:50,180 Beraz, sintaxia? 1324 01:03:50,180 --> 01:03:51,890 Zer taula ezabatu? 1325 01:03:51,890 --> 01:03:53,550 Kontuak. 1326 01:03:53,550 --> 01:03:55,790 Eta ondoren, baldintza horien gainean ezabatu nahi dugu - 1327 01:03:55,790 --> 01:03:57,280 non oreka berdin zero. 1328 01:03:57,280 --> 01:04:03,050 Beraz, lerro guztiak ezabatu kontuetatik non balantza zero da. 1329 01:04:03,050 --> 01:04:04,300 Horietako batean galdera? 1330 01:04:04,300 --> 01:04:08,840 1331 01:04:08,840 --> 01:04:10,260 Ilara nahi duzu? 1332 01:04:10,260 --> 01:04:11,200 >> DAVID J. MALAN: Ilara gida. 1333 01:04:11,200 --> 01:04:17,110 Ko honetan, zuk eman dugu pixka bat egitura ezagutzen duen bat aztertu dugu 1334 01:04:17,110 --> 01:04:20,450 klasean pixka structs ondoan, zein datu bat izan zen 1335 01:04:20,450 --> 01:04:21,910 egitura espirituz zerikusia. 1336 01:04:21,910 --> 01:04:24,670 Nahiz eta aldea ilara batekin nolabait gogoan izan dugun nor 1337 01:04:24,670 --> 01:04:27,900 ilaran aurrean zen, handietan zati da, beraz, gehiago egin ahal izan genuen 1338 01:04:27,900 --> 01:04:30,530 memoriaren erabilera eraginkorra, gutxienez, dugu array bat erabiliz gero. 1339 01:04:30,530 --> 01:04:35,460 >> Delako abisuaren, array bat izan badugu, bada, esate baterako, honen aurrean dago 1340 01:04:35,460 --> 01:04:38,470 ilaran, lortu dut ilaran sartu bada hemen, eta ondoren, norbaitek lortzen lerroan 1341 01:04:38,470 --> 01:04:42,710 Niretzat, nire atzean, nire atzean, eta atzean pertsona bat lerro kanpo egoteagatik, zuk 1342 01:04:42,710 --> 01:04:45,930 Could, gure giza batzuk ikusi dugun bezala klasean boluntarioak, denek dute 1343 01:04:45,930 --> 01:04:47,100 mugitzeko modu honetan. 1344 01:04:47,100 --> 01:04:50,880 Baina, oro har, ondoren denek egin Zerbait ez da denbora erabilera onena 1345 01:04:50,880 --> 01:04:54,600 programa batean, esan nahi duelako zure algoritmoa zer abian dagoenean 1346 01:04:54,600 --> 01:04:56,520 asintotikoak entzierro denbora? 1347 01:04:56,520 --> 01:04:57,420 Da lineala da. 1348 01:04:57,420 --> 01:04:59,600 >> Eta sentitzen dudan bezala, hori da mota ergelak. 1349 01:04:59,600 --> 01:05:02,890 Ildotik hurrengo pertsonaren da ondoan bada nor ustezko sartu pertsona 1350 01:05:02,890 --> 01:05:04,660 denda, ez dute denek dute batera mugitu. 1351 01:05:04,660 --> 01:05:08,200 Besterik gabe utzi pertsona hori izango hari pultsatuzko off Unea iritsita, esate baterako. 1352 01:05:08,200 --> 01:05:09,870 Beraz, denbora pixka bat aurreztu ahal izango dugu han. 1353 01:05:09,870 --> 01:05:14,840 Eta horrela egin duten arren, bide horretan duten ilaran buru edo 1354 01:05:14,840 --> 01:05:18,060 ilaran aurrean joan den pixkanaka gero eta sakonago mugitu 1355 01:05:18,060 --> 01:05:23,340 array sartu eta azkenean agian benetan inguruan biltzea dugu bat erabiltzen ari bazara 1356 01:05:23,340 --> 01:05:25,790 array jendea gordetzeko Ilara honetan. 1357 01:05:25,790 --> 01:05:28,390 Beraz, ezin duzu ia uste array datuak zirkular baten ondorioz 1358 01:05:28,390 --> 01:05:29,880 zentzu horretan egitura. 1359 01:05:29,880 --> 01:05:33,970 >> Beraz, nolabait duzu segimendua egiteko haren tamaina edo benetan amaieran 1360 01:05:33,970 --> 01:05:36,250 eta, ondoren, bertan hasten da. 1361 01:05:36,250 --> 01:05:39,490 Beraz, aldarrikatu duzula proposatzen dugu besteak beste, ilara bat, deituz 1362 01:05:39,490 --> 01:05:41,330 q, eskutitz bat besterik ez. 1363 01:05:41,330 --> 01:05:44,570 Ondoren aurrealdean izango proposatzen dugu zeron, eta hasieratu tamaina 1364 01:05:44,570 --> 01:05:45,470 egon zero hasieratu. 1365 01:05:45,470 --> 01:05:47,770 >> Beraz, oraintxe bertan, ez dago ezer ilara horren barruan. 1366 01:05:47,770 --> 01:05:50,910 Eta duzu osatzeko eskatu dugu enqueue ezartzeko azpitik 1367 01:05:50,910 --> 01:05:55,250 halako eran funtzioa gehitzen n q bukaeran eta ondoren, egia itzultzen. 1368 01:05:55,250 --> 01:05:58,690 Baina q osoa edo negatiboa bada, funtzioaren ordez itzuli behar faltsuak. 1369 01:05:58,690 --> 01:06:01,060 Eta pare bat eman dugu duzu hipotesi. 1370 01:06:01,060 --> 01:06:04,320 Baina ez dira benetan funtzionalki garrantzitsuak, bool hori bakarrik existitzen da, 1371 01:06:04,320 --> 01:06:06,690 teknikoki, boolearra ez du, zeren C existitzen barne hartzen baduzu behintzat bat 1372 01:06:06,690 --> 01:06:07,310 zenbait goiburu fitxategiak. 1373 01:06:07,310 --> 01:06:09,350 Beraz, besterik gabe, egin zen ziur ez ziren ez da hau trick 1374 01:06:09,350 --> 01:06:10,940 Galdera gauza mota. 1375 01:06:10,940 --> 01:06:16,280 >> Beraz enqueue, proposatzen dugu lagineko honela ezartzeko konponbideak. 1376 01:06:16,280 --> 01:06:20,420 Bata, lehen egiaztatu dugu erraztasuna, zintzilik txikiko fruituak. 1377 01:06:20,420 --> 01:06:23,820 Ilara osoa edo kopurua da bada Txertatu saiatzen ari zaren ez da hain 1378 01:06:23,820 --> 01:06:26,380 zero, eta horrek esan genuen baino arazoaren zehaztapen egin beharko lukete 1379 01:06:26,380 --> 01:06:30,320 ez da onartuko, ezin dugu nahi duelako balioak ez negatiboa, orduan, behar duzu 1380 01:06:30,320 --> 01:06:31,640 return berehala faltsua. 1381 01:06:31,640 --> 01:06:33,820 Beraz, batzuk nahiko erraz error egiaztapena. 1382 01:06:33,820 --> 01:06:38,720 Nahiz izanez gero benetako duten gehitu nahi duzun zenbakia, pixka bat egin behar izan duzu 1383 01:06:38,720 --> 01:06:39,440 Hemen pentsatzen. 1384 01:06:39,440 --> 01:06:41,330 Eta hau da, non pixka bat izorratu egiten da adimen, izan delako duzu 1385 01:06:41,330 --> 01:06:43,000 irudikatu wraparound nola kudeatu. 1386 01:06:43,000 --> 01:06:46,870 >> Baina ideia ernamuina hemen hori da guretzat interes wraparound dela 1387 01:06:46,870 --> 01:06:51,480 sarritan aritmetika modularra dakar eta mod eragilea, ehuneko aldean, 1388 01:06:51,480 --> 01:06:55,140 non duzun balioa handiago batetik joan daiteke zero itzuli eta, ondoren, bat eta bi eta 1389 01:06:55,140 --> 01:06:58,650 Hiru eta gero itzuli zero inguruan, Bat eta bi eta hiru eta abar 1390 01:06:58,650 --> 01:06:59,380 behin eta berriro. 1391 01:06:59,380 --> 01:07:02,880 Beraz, modu hau egiteko proposatzen duguna da ez dugu indize nahi sartu 1392 01:07:02,880 --> 01:07:05,850 array zenbakiak non deitzen gure osokoak gezurra. 1393 01:07:05,850 --> 01:07:10,740 Baina iritsi, lehen egin nahi dugun ilaran tamaina da edozein izanda ere, baina 1394 01:07:10,740 --> 01:07:14,080 gero gehitu duen edozein zerrendaren aurrean da. 1395 01:07:14,080 --> 01:07:17,880 Eta horrek eragina da gurekin jarri ziren eskuineko ilaran posizioa eta 1396 01:07:17,880 --> 01:07:20,970 ez du bere gain hartzen duen lerro lehen pertsonan hasieran da, zuen edo 1397 01:07:20,970 --> 01:07:24,130 zuen erabat ezin izan badugu zituzten ere denek aldatzearen. 1398 01:07:24,130 --> 01:07:26,710 Baina besterik lana sortzeko ari gara geure burua hartu genuen bada 1399 01:07:26,710 --> 01:07:27,800 bide jakin horretan. 1400 01:07:27,800 --> 01:07:29,330 >> Beraz, nahiko erraza mantendu ahal izango dugu. 1401 01:07:29,330 --> 01:07:32,180 Izan ez ginen gogoratu besterik ez dugu int erantsia ilaran. 1402 01:07:32,180 --> 01:07:35,850 Eta gero itzuli besterik ez dugu egia. 1403 01:07:35,850 --> 01:07:38,560 Bien bitartean, adierazten du, dugun galdetu honako hau egin behar duzu. 1404 01:07:38,560 --> 01:07:42,260 Ezartzea da horrela dela dequeues, hori kentzen du eta itzultzen da, 1405 01:07:42,260 --> 01:07:44,190 ilara aurrean int. 1406 01:07:44,190 --> 01:07:46,410 Int kentzeko, nahikoa da da ahaztu. 1407 01:07:46,410 --> 01:07:47,650 Ez duzu behar bere pixka gainidazteko. 1408 01:07:47,650 --> 01:07:48,820 Beraz, oraindik ez da benetan. 1409 01:07:48,820 --> 01:07:51,930 Just disko gogorrean datuak bezala, Izan ere ari gara jaramonik 1410 01:07:51,930 --> 01:07:52,970 orain dela han. 1411 01:07:52,970 --> 01:07:55,520 Eta q hutsik badago, hori behar dugu ordez itzultzeko 1 negatiboak. 1412 01:07:55,520 --> 01:07:56,750 Beraz, hau arbitrarioa sentitzen. 1413 01:07:56,750 --> 01:08:01,640 Zergatik itzuli 1 negatiboak faltsua ordez? 1414 01:08:01,640 --> 01:08:02,620 Bai. 1415 01:08:02,620 --> 01:08:05,070 >> AUDIENCE: Q jasoko duen balio positiboak. 1416 01:08:05,070 --> 01:08:10,950 Geroztik balio positiboak bakarrik gordetzen q batean, negatiboa akats bat dela. 1417 01:08:10,950 --> 01:08:11,510 >> DAVID J. MALAN: Ados, egia. 1418 01:08:11,510 --> 01:08:14,850 Positibo bakarra ari gara gordetzeko beraz delako balioak edo zero, gero fina da 1419 01:08:14,850 --> 01:08:18,050 balio negatiboa Sentinel gisa itzultzeko balioa, ikur berezi bat. 1420 01:08:18,050 --> 01:08:21,630 Baina historia berridazten ari zarela han, delako arrazoia bakarra gara 1421 01:08:21,630 --> 01:08:25,890 balioak ez negatiboa itzultzen da nahi dugulako 1422 01:08:25,890 --> 01:08:27,670 Sentinel balio bat eduki. 1423 01:08:27,670 --> 01:08:32,617 Beraz, zehazki, zergatik ez bakarrik itzultzeko faltsua akatsen kasuetan? 1424 01:08:32,617 --> 01:08:33,099 Bai. 1425 01:08:33,099 --> 01:08:35,510 >> AUDIENCE: huts egin duzu osoko bat itzuli. 1426 01:08:35,510 --> 01:08:36,630 >> DAVID J. MALAN: Zehazki. 1427 01:08:36,630 --> 01:08:38,569 Eta hau da, non C lortzen nahiko mugatzen. 1428 01:08:38,569 --> 01:08:40,590 Zoaz zu esaten ari bazara int bat itzuli, baina dituzun 1429 01:08:40,590 --> 01:08:41,279 int bat itzuli. 1430 01:08:41,279 --> 01:08:43,689 Ezin duzu gauza ederrak lor eta hasteko itzuli bool edo mugikor bat edo bat 1431 01:08:43,689 --> 01:08:45,040 katea edo horrelako zerbait. 1432 01:08:45,040 --> 01:08:49,370 Orain, bere aldetik, JavaScript eta PHP eta beste hizkuntzetan ezin, hain zuzen ere, 1433 01:08:49,370 --> 01:08:51,310 dituzun ezberdinak itzuli balio-mota. 1434 01:08:51,310 --> 01:08:54,819 Eta hori benetan baliagarria izan daiteke, non positiboa ints, zero itzuli ahal izango duzu, 1435 01:08:54,819 --> 01:08:59,439 ints negatiboa, edo gezurra edo hutsa are error adierazteko. 1436 01:08:59,439 --> 01:09:01,890 Baina ez dugu horretan C. aldakortasun 1437 01:09:01,890 --> 01:09:04,569 >> Beraz, adierazten dituzten, zer egiten dugun proposatu egiten da - 1438 01:09:04,569 --> 01:09:07,350 1439 01:09:07,350 --> 01:09:09,830 >> ROB BOWDEN: faltsua itzuliko dezakezu. 1440 01:09:09,830 --> 01:09:13,189 Besterik ez da faltsua hash da definitzeko zero faltsua. 1441 01:09:13,189 --> 01:09:16,000 Beraz, faltsua itzuliko baduzu, zero itzultzen ari zaren. 1442 01:09:16,000 --> 01:09:25,470 Eta zero baliozko gauza bat da gure ilaran, 1 negatiboak, berriz, ez da bada 1443 01:09:25,470 --> 01:09:27,000 faltsua gertatu 1 negatiboa da. 1444 01:09:27,000 --> 01:09:29,972 Baina ez behar duzu, nahiz eta duten jakin behar. 1445 01:09:29,972 --> 01:09:32,399 >> DAVID J. MALAN: Hori zergatik ez nuen esan. 1446 01:09:32,399 --> 01:09:36,450 >> ROB BOWDEN: Baina ez zen egia ezin duzula itzultzeko faltsua. 1447 01:09:36,450 --> 01:09:37,700 >> DAVID J. MALAN: Noski. 1448 01:09:37,700 --> 01:09:40,920 1449 01:09:40,920 --> 01:09:44,240 Beraz, adierazten du, konturatu onartzen dugu bere argudio gisa gal. 1450 01:09:44,240 --> 01:09:45,479 Eta hori da, ez gara delako ezer pasatzen sartu 1451 01:09:45,479 --> 01:09:48,359 Besterik osagaia ezabatu nahi dugu ilaran aurrean. 1452 01:09:48,359 --> 01:09:49,819 Beraz, nola liteke hau egiten al dugu? 1453 01:09:49,819 --> 01:09:51,290 Beno, lehenik eta behin, egin dezagun hau behatu check azkar. 1454 01:09:51,290 --> 01:09:53,350 Ilara tamaina 0 bada, ez da gabe lan egin behar da. 1455 01:09:53,350 --> 01:09:54,210 Itzultzeko negatiboak 1. 1456 01:09:54,210 --> 01:09:54,800 Egin. 1457 01:09:54,800 --> 01:09:56,340 Beraz, nire programaren lerro gutxitan da. 1458 01:09:56,340 --> 01:09:58,180 Beraz, lerro lau bakarrik geratzen dira. 1459 01:09:58,180 --> 01:10:01,310 >> Beraz hemen decrement erabakitzen dut tamaina. 1460 01:10:01,310 --> 01:10:04,620 Eta tamaina eraginkortasunez decrementing esan nahi du, ahaztu gabe nago 1461 01:10:04,620 --> 01:10:06,010 Zerbait ez da. 1462 01:10:06,010 --> 01:10:09,910 Baina nik ere eguneratu non zenbakiak, aurrean daude. 1463 01:10:09,910 --> 01:10:11,620 Beraz, hori egin ahal izateko, behar dut bi gauza egin. 1464 01:10:11,620 --> 01:10:16,390 Lehen zer zenbakia gogoratu behar dut ilaran aurrean dago, 1465 01:10:16,390 --> 01:10:17,860 gauza hori itzuli behar dudalako. 1466 01:10:17,860 --> 01:10:20,910 Beraz, ez dut nahi nahi gabe ahaztu horri buruz eta, ondoren, gainidatziko da. 1467 01:10:20,910 --> 01:10:22,840 Besterik ez dut int bat gogoratu du. 1468 01:10:22,840 --> 01:10:27,310 >> Eta orain, eguneratu nahi dut q.front q.front beharreko +1. 1469 01:10:27,310 --> 01:10:30,070 Honetako lehen pertsona izan zen, hala bada lerroa, orain, plus 1 egin nahi dut 1470 01:10:30,070 --> 01:10:31,930 lerroa hurrengo pertsona seinalatu. 1471 01:10:31,930 --> 01:10:33,420 Baina wraparound kudeatzeko behar dut. 1472 01:10:33,420 --> 01:10:37,270 Eta ahalmen etengabea global bat bada, hori ziur me ahalbidetuko joan 1473 01:10:37,270 --> 01:10:41,140 seinalatu gisa oso ko pertsonari dut line, modulo operazioa ekarriko ditu 1474 01:10:41,140 --> 01:10:43,840 me back zero at ilaran aurrean. 1475 01:10:43,840 --> 01:10:46,050 Eta hori hemen wraparound maneiatzen. 1476 01:10:46,050 --> 01:10:48,950 Eta gero itzuli n jarraitu dut. 1477 01:10:48,950 --> 01:10:51,530 >> Orain, zorrozki har, ez nuen deklaratzeko n behar. 1478 01:10:51,530 --> 01:10:53,880 Ez nuen hura hartzen eta gorde aldi batez, zeren balioa da 1479 01:10:53,880 --> 01:10:54,740 oraindik ere ez dago. 1480 01:10:54,740 --> 01:10:57,490 Beraz, besterik gabe, egin izan dut eskuineko aritmetika lehengo burua itzultzeko 1481 01:10:57,490 --> 01:10:58,450 ilara. 1482 01:10:58,450 --> 01:11:01,850 Baina sentitu dut hori izan zela argi benetan hartu, int, jarri 1483 01:11:01,850 --> 01:11:04,320 n, eta ondoren itzultzeko duen argitasuna mesedetan baina 1484 01:11:04,320 --> 01:11:05,735 ez ezinbestekoak. 1485 01:11:05,735 --> 01:11:09,313 1486 01:11:09,313 --> 01:11:12,130 Psst. 1487 01:11:12,130 --> 01:11:13,410 Guztiak nire buruan ahozkagarri ari dira. 1488 01:11:13,410 --> 01:11:15,940 1489 01:11:15,940 --> 01:11:19,110 >> ROB BOWDEN: Beraz, lehen galdera bitar zuhaitz arazoa da. 1490 01:11:19,110 --> 01:11:22,140 Beraz, lehen galdera da, gara Emandako zenbaki horiek. 1491 01:11:22,140 --> 01:11:27,160 Eta nolabait txertatu horretan sartu nahi dugun nodo horiek, hala nola egiten duten bat 1492 01:11:27,160 --> 01:11:30,110 baliozko bitar bilaketa zuhaitza. 1493 01:11:30,110 --> 01:11:36,260 Beraz, gauza bat nahi buruz gogoratu binary bilaketa zuhaitz da ez dela 1494 01:11:36,260 --> 01:11:39,800 Hori besterik ez ezkerrera gauza da gutxiago eta gauza 1495 01:11:39,800 --> 01:11:41,120 eskuinetik handiagoa da. 1496 01:11:41,120 --> 01:11:44,580 Izan behar du hori zuhaitz osoa ezkerretik gutxiago da, eta zuhaitz osoa 1497 01:11:44,580 --> 01:11:45,740 eskuinera handiagoa da. 1498 01:11:45,740 --> 01:11:55,260 >> Jarri beraz badut 34 hemen goialdean, eta, ondoren, Jarri dut 20 hemen, beraz, hori da baliozko beraz 1499 01:11:55,260 --> 01:11:56,970 orain arte, izan ere, 34 hemen sortu. 1500 01:11:56,970 --> 01:11:57,920 20 da ezkerretara joan. 1501 01:11:57,920 --> 01:11:58,950 Beraz, gutxiago. 1502 01:11:58,950 --> 01:12:03,640 Baina ezin dut orduan jarri 59 hemen, zeren nahiz eta 20 eskuinaldean 59 da, 1503 01:12:03,640 --> 01:12:06,140 oraindik da 34 ezkerraldean. 1504 01:12:06,140 --> 01:12:10,760 Beraz, kontuan murriztapen hori, izan Ziurrenik hau konpontzeko modurik errazena 1505 01:12:10,760 --> 01:12:14,330 Arazoa da, besterik moduko zenbaki horiek - 1506 01:12:14,330 --> 01:12:18,720 beraz, 20, 34, 36, 52, 59, 106. 1507 01:12:18,720 --> 01:12:21,640 Eta gero sartu direnen eskuinetik ezkerrera. 1508 01:12:21,640 --> 01:12:23,390 >> Beraz, hemen 20 doa. 1509 01:12:23,390 --> 01:12:24,630 34 hemen doa. 1510 01:12:24,630 --> 01:12:25,830 36 hemen doa. 1511 01:12:25,830 --> 01:12:29,360 52, 59, 106. 1512 01:12:29,360 --> 01:12:34,730 Eta, gainera, hurrena duzula ezin bazterturik non batzuk plugging eta konturatu, 1513 01:12:34,730 --> 01:12:38,830 Oh, itxaron, ez dut zenbakiak nahikoa hori bete ahal izateko, hemen baino gehiago. 1514 01:12:38,830 --> 01:12:42,170 Beraz reshift behar dut zein den nire Ibilbidea nota izango da. 1515 01:12:42,170 --> 01:12:47,490 Baina nabarituko azken hiru dela, bada irakurri duzu ezkerretik eskuinera, ezarriko dio 1516 01:12:47,490 --> 01:12:48,740 ordena handituz. 1517 01:12:48,740 --> 01:12:52,150 1518 01:12:52,150 --> 01:12:56,540 >> Beraz, gaur egun, nahi aldarrikatu nahi dugu zer egiturari dago hemen izango joan 1519 01:12:56,540 --> 01:12:58,300 Zuhaitz honetako nodoak. 1520 01:12:58,300 --> 01:13:02,720 Beraz, zer zuhaitz bitar bat behar dugu? 1521 01:13:02,720 --> 01:13:05,830 Beraz, mota balioa bat dugu int, beraz, int balio batzuk. 1522 01:13:05,830 --> 01:13:07,220 Ez dakit zer deitzen dugun irtenbidearen da - 1523 01:13:07,220 --> 01:13:08,500 int n. 1524 01:13:08,500 --> 01:13:13,570 Ezkerreko seme erakuslea behar dugu eta eskuineko seme erakuslea. 1525 01:13:13,570 --> 01:13:17,540 Beraz, itxura hau du. 1526 01:13:17,540 --> 01:13:20,510 Eta benetan izango aurretik begiratu denean, bi aldiz-lotuta zuen 1527 01:13:20,510 --> 01:13:25,090 zerrenda stuff, beraz oharra - 1528 01:13:25,090 --> 01:13:27,860 Korrituko dute noa guztiak Modu atzera arazoa 11 behera. 1529 01:13:27,860 --> 01:13:30,980 1530 01:13:30,980 --> 01:13:36,390 >> Beraz nabarituko honen berdina ikusten da, ezik gertatuko dugu besterik horiek deitu 1531 01:13:36,390 --> 01:13:38,590 izen desberdinak. 1532 01:13:38,590 --> 01:13:41,440 Oraindik ere, zenbaki oso bat daukagu balioa eta bi erakusleak. 1533 01:13:41,440 --> 01:13:44,850 Besterik ordez tratatzeko da erakusleak hurrengo gauza seinalatuz bezala 1534 01:13:44,850 --> 01:13:47,955 eta aurreko gauza, tratatzeko ari gara erakusleak Gure etxeko haur bat seinalatu 1535 01:13:47,955 --> 01:13:49,205 eta eskuineko ume. 1536 01:13:49,205 --> 01:13:57,372 1537 01:13:57,372 --> 01:13:57,860 Ados. 1538 01:13:57,860 --> 01:13:59,650 Beraz, gure egitura nodo da. 1539 01:13:59,650 --> 01:14:03,920 Eta, orain, funtzio bakarra behar dugu ezartzeko, hau da ibilbidea, eta horrek 1540 01:14:03,920 --> 01:14:08,320 hemen zuhaitza, argitalpena baino gehiago joan nahi dugu Zuhaitzaren balioak ordena itzazu. 1541 01:14:08,320 --> 01:14:15,241 >> Beraz, hemen begira, inprimatu nahi genuke daudelarik 20, 34, 36, 52, 59, eta 106. 1542 01:14:15,241 --> 01:14:17,970 Nola egiten dugu? 1543 01:14:17,970 --> 01:14:18,890 Beraz, nahiko antzekoa da. 1544 01:14:18,890 --> 01:14:22,910 , Azken azterketa-en ikusi baduzu arazoa inprimatu nahi duzula 1545 01:14:22,910 --> 01:14:25,940 koma bitartez zuhaitz osoa tartean dena, izan zen benetan, nahiz 1546 01:14:25,940 --> 01:14:27,320 Hori baino errazagoa. 1547 01:14:27,320 --> 01:14:30,950 Hortaz, hona hemen konponbidea da. 1548 01:14:30,950 --> 01:14:33,110 Hau izan zen nabarmen errazagoa Errekurtsiboki zenuen bada. 1549 01:14:33,110 --> 01:14:36,650 Ez dakit inor saiatu bada iteratively egin. 1550 01:14:36,650 --> 01:14:38,340 >> Baina lehen, gure kasuan ez dugu. 1551 01:14:38,340 --> 01:14:39,660 Zer erro null bada? 1552 01:14:39,660 --> 01:14:40,610 Orduan ari gara itzuli egingo. 1553 01:14:40,610 --> 01:14:42,300 Ez dugu nahi ezer inprimatu. 1554 01:14:42,300 --> 01:14:45,940 Bestela gabiltza zeharkatuko joan errekurtsiboki behera. 1555 01:14:45,940 --> 01:14:48,140 Inprimatu ezkerreko Azpizuhaitza osoa. 1556 01:14:48,140 --> 01:14:51,440 Beraz, dena gutxiago inprimatu nire uneko balioa baino. 1557 01:14:51,440 --> 01:14:53,930 Eta gero, ez dut neure burua inprimatu dute. 1558 01:14:53,930 --> 01:14:57,310 Eta ondoren, naiz behera bitarra joan nire eskubidea Azpizuhaitza osoa, beraz, dena 1559 01:14:57,310 --> 01:14:58,810 nire balioa baino handiagoa. 1560 01:14:58,810 --> 01:15:03,870 Eta hori argitaratzeko ordena guztia daudelarik. 1561 01:15:03,870 --> 01:15:05,860 Hau nola benetan galdera accomplishes hori? 1562 01:15:05,860 --> 01:15:09,892 1563 01:15:09,892 --> 01:15:12,545 >> AUDIENCE: galdera bat daukat [INAUDIBLE] on. 1564 01:15:12,545 --> 01:15:15,090 1565 01:15:15,090 --> 01:15:23,550 >> ROB BOWDEN: Beraz hurbiltzeko modu bat Edozein recursive arazoa da, besterik uste 1566 01:15:23,550 --> 01:15:26,275 buruzko Gustukoa uste duzu izkina kasu guztiei buruz. 1567 01:15:26,275 --> 01:15:32,150 1568 01:15:32,150 --> 01:15:38,110 Beraz, kontuan hartu nahi dugun zuhaitz osoa hau inprimatu. 1569 01:15:38,110 --> 01:15:42,030 Beraz, guztiak zentratu gara nodo jakin hau da - 1570 01:15:42,030 --> 01:15:43,740 36. 1571 01:15:43,740 --> 01:15:47,420 Dei errekurtsiboak ere, asmoa dugu horiek besterik ez du funtzionatzen. 1572 01:15:47,420 --> 01:15:54,000 Beraz, hemen, dei errekurtsiboa honetan ibilbidea, nahiz eta pentsatu gabe dugu 1573 01:15:54,000 --> 01:15:58,640 Horri buruz, besterik ezkerretik traversing hiru, pentsa dagoeneko bistaratzen 20 1574 01:15:58,640 --> 01:16:00,730 eta 34 guretzat. 1575 01:16:00,730 --> 01:16:03,350 Eta orduan, azkenean errekurtsiboki dugu deitu ibilbidea da 1576 01:16:03,350 --> 01:16:07,890 eskubidea, hori izango da behar bezala inprimatu 52, 59, eta 106 guretzat. 1577 01:16:07,890 --> 01:16:13,620 >> Beraz, horiek lehendik ere 20, 34, inprimatu ahal izango da, eta 52, 59, 108 bestelako inprima daiteke, 1578 01:16:13,620 --> 01:16:17,180 egiteko gai izan behar dugu guztia inprimatu da duten erdian ourself. 1579 01:16:17,180 --> 01:16:21,250 Beraz, dena inprimatu gure aurrean. 1580 01:16:21,250 --> 01:16:27,710 Inprimatu ourself, beraz, uneko nodoaren inprimatu 36, erregular printf, eta, ondoren, 1581 01:16:27,710 --> 01:16:31,170 guztia inprimatu digu ondoren. 1582 01:16:31,170 --> 01:16:32,730 >> DAVID J. MALAN: Hau non errekurtsibitate da benetan ederra lortzen. 1583 01:16:32,730 --> 01:16:36,270 Fede-jauzi harrigarria hau da, non lan pixka txikienen egin duzu. 1584 01:16:36,270 --> 01:16:38,460 Eta gero utzi duzu norbait bestela ez gainerakoak. 1585 01:16:38,460 --> 01:16:40,180 Eta beste norbaitek da, ironikoki, duzu. 1586 01:16:40,180 --> 01:16:44,260 1587 01:16:44,260 --> 01:16:48,360 Beraz brownie puntu larriak, bada gora joan galdera da - 1588 01:16:48,360 --> 01:16:50,530 >> ROB BOWDEN: galderak On? 1589 01:16:50,530 --> 01:16:53,490 >> DAVID J. MALAN: Eta pixka bat behera zenbakiak, jakingo du inor non 1590 01:16:53,490 --> 01:16:55,190 zenbaki horiek nondik datozen? 1591 01:16:55,190 --> 01:16:56,610 >> ROB BOWDEN: literalki ideia ez daukat. 1592 01:16:56,610 --> 01:16:59,794 >> DAVID J. MALAN: Agertzen dira Galdetegi osoan zehar. 1593 01:16:59,794 --> 01:17:01,150 >> AUDIENCE: Ba al dute zenbakiek berdinak? 1594 01:17:01,150 --> 01:17:01,910 >> DAVID J. MALAN: Zenbaki horiek. 1595 01:17:01,910 --> 01:17:03,260 Apur bat Pazko arrautza. 1596 01:17:03,260 --> 01:17:08,100 Beraz Duten online behaketa at etxean, zuk kontatu ahal bada posta bidez emateko 1597 01:17:08,100 --> 01:17:12,680 heads@CS50.net zer garrantzia horietan errepikatutako sei zenbakiak dira 1598 01:17:12,680 --> 01:17:18,560 Quiz 1 zehar, dutxa izango dugu final at arreta harrigarria 1599 01:17:18,560 --> 01:17:21,610 hitzaldia eta estresa baloi bat. 1600 01:17:21,610 --> 01:17:25,460 1601 01:17:25,460 --> 01:17:27,790 Nice, sotila. 1602 01:17:27,790 --> 01:17:29,570 >> ROB BOWDEN: Edozein azken galdera ezer galdetegiaren buruz? 1603 01:17:29,570 --> 01:17:32,608