1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> ANDI Peng: Vi är nästan genom alla psets. 3 00:00:08,770 --> 00:00:12,080 I själva verket är vi igenom de flesta av de svåraste psets. 4 00:00:12,080 --> 00:00:14,350 Så vi är faktiskt bara gå till typ av vinden 5 00:00:14,350 --> 00:00:16,050 genom nästa par veckor. 6 00:00:16,050 --> 00:00:19,520 >> Vi kommer att börja prata om vår examensarbeten, händelserna kommer upp 7 00:00:19,520 --> 00:00:21,320 under de närmaste veckorna. 8 00:00:21,320 --> 00:00:23,825 Och livet kommer att bli en lätt match. 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 Så inte alltför mycket i dag. 11 00:00:27,680 --> 00:00:30,280 >> Förhoppningsvis kommer faktiskt vind genom dagordningen för idag, 12 00:00:30,280 --> 00:00:33,400 och sedan vara out of here med lite tid över. 13 00:00:33,400 --> 00:00:36,210 Dessutom vill jag be om ursäkt för bristen av godis idag. 14 00:00:36,210 --> 00:00:37,030 Jag vet inte varför. 15 00:00:37,030 --> 00:00:40,520 Men i veckan fram Halloween, skulle jag glömma godis. 16 00:00:40,520 --> 00:00:43,290 >> Så jag är faktiskt bara en stor besvikelse för dig just nu. 17 00:00:43,290 --> 00:00:47,050 Eftersom jag minns bokstavligen godis för varje enskild klass, men Halloween. 18 00:00:47,050 --> 00:00:49,345 Men nästa vecka kommer jag ta dubbelt så mycket godis 19 00:00:49,345 --> 00:00:50,720 för att kompensera för det, allt för dig. 20 00:00:50,720 --> 00:00:53,260 Det kommer att vara bra. 21 00:00:53,260 --> 00:00:56,690 >> Så jag har ett par meddelanden om någon schemaläggning. 22 00:00:56,690 --> 00:00:59,520 Jag har några schemaläggning frågor. 23 00:00:59,520 --> 00:01:02,150 Sedan ska vi gå vidare till prata om vad som kallas chmod. 24 00:01:02,150 --> 00:01:05,980 Vi kommer att prata om snabbt TCP / IP HTTP. 25 00:01:05,980 --> 00:01:09,770 >> Och sedan ska vi koda vår egen webbplats med hjälp av HTML och CSS. 26 00:01:09,770 --> 00:01:13,030 Och då jag faktiskt lämnar kanske som 20 minuter att prata om pset6. 27 00:01:13,030 --> 00:01:16,550 Eftersom pset6 är faktiskt en hel del saker som vi redan har sett förut, 28 00:01:16,550 --> 00:01:19,090 men jag ville uppdatera några av dessa begrepp 29 00:01:19,090 --> 00:01:22,140 samt lära ett par nya funktioner. 30 00:01:22,140 --> 00:01:23,110 >> Häftigt. 31 00:01:23,110 --> 00:01:25,440 Så först av allt, välkommen tillbaka från paus. 32 00:01:25,440 --> 00:01:27,410 Jag hoppas att du paus var trevlig. 33 00:01:27,410 --> 00:01:29,695 Skulle gjorde du för paus? 34 00:01:29,695 --> 00:01:30,820 PUBLIK: Gick till New York. 35 00:01:30,820 --> 00:01:32,030 ANDI PENG: Du gick till New York? 36 00:01:32,030 --> 00:01:33,738 Jag tror halva vår skola åkte till New York. 37 00:01:33,738 --> 00:01:34,740 Det är okej. 38 00:01:34,740 --> 00:01:38,250 Jag tillbringade större delen av min paus stillasittande i sängen Netflixing. 39 00:01:38,250 --> 00:01:39,760 Och det var en bra tid. 40 00:01:39,760 --> 00:01:43,450 >> Men vi är nu tillbaka, tillbaka i session, tillbaka i gång saker. 41 00:01:43,450 --> 00:01:47,900 Vi har en pset grund denna fredag ​​kl. 42 00:01:47,900 --> 00:01:50,240 >> Jag tror att du har redan plockade upp din frågesport, ja? 43 00:01:50,240 --> 00:01:52,140 Så någon annan som har inte hade sina frågesporter, 44 00:01:52,140 --> 00:01:55,416 Kom och få dina frågesporter från mig i slutet av avsnittet. 45 00:01:55,416 --> 00:01:56,540 Eller spåra mig på campus. 46 00:01:56,540 --> 00:01:59,310 Jag har det med mig någonstans. 47 00:01:59,310 --> 00:02:02,120 >> Vår sista projekt pre-förslag också. 48 00:02:02,120 --> 00:02:06,380 Så för dem av oss som aldrig har tagit denna klass innan, en hörnsten i CS50 49 00:02:06,380 --> 00:02:11,150 är mycket kulminerade i detta slagna projekt som eleverna föreslår. 50 00:02:11,150 --> 00:02:14,300 Och det preliminära projektförslaget, bara en allmän idé 51 00:02:14,300 --> 00:02:18,500 vad man kanske vill göra för deras projekt, är den tanken beror måndag, 52 00:02:18,500 --> 00:02:20,780 nästa måndag kl. 53 00:02:20,780 --> 00:02:23,800 >> Så ganska mycket, David tror jag kommer prata mer om detta i föreläsning 54 00:02:23,800 --> 00:02:25,390 om han inte redan har. 55 00:02:25,390 --> 00:02:28,710 Och det finns en fast sida på vår hemsida förklarar 56 00:02:28,710 --> 00:02:31,610 alla krav i projektet. 57 00:02:31,610 --> 00:02:34,082 Men i huvudsak, plocka något ämne som du har 58 00:02:34,082 --> 00:02:35,915 varit intresserad av hela din tid här 59 00:02:35,915 --> 00:02:41,760 på CS, oavsett om det är spel eller design eller video eller något. 60 00:02:41,760 --> 00:02:44,920 >> Och du kan verkligen slags nu tillämpa några av de lärdomar 61 00:02:44,920 --> 00:02:52,470 att vi har lärt oss här i CS50-- hej, welcome-- till ganska mycket genomför 62 00:02:52,470 --> 00:02:56,320 ett lärdomsprov som du väljer. 63 00:02:56,320 --> 00:02:59,570 Allt som är på grund måndag är bara en kort blurb via e-post 64 00:02:59,570 --> 00:03:02,010 för mig, en snabb mening, liknande, hey, Andi, 65 00:03:02,010 --> 00:03:06,490 Jag är verkligen intresserad av design ett spel som gör detta för iOS. 66 00:03:06,490 --> 00:03:07,420 Häftigt. 67 00:03:07,420 --> 00:03:10,767 Låt mig bara din korta inledande idéer för dina sista projekt. 68 00:03:10,767 --> 00:03:13,850 Och vi kommer att prata igenom huruvida det är faktiskt en bra idé eller inte, 69 00:03:13,850 --> 00:03:15,590 om det är en genomförbar idé eller inte. 70 00:03:15,590 --> 00:03:20,760 Men bara pre-förslag beror nästa måndag. 71 00:03:20,760 --> 00:03:24,190 pset6, vår fina web-- det är fel. 72 00:03:24,190 --> 00:03:25,060 Pset7? 73 00:03:25,060 --> 00:03:25,560 pset6? 74 00:03:25,560 --> 00:03:26,680 Det är pset6, eller hur? 75 00:03:26,680 --> 00:03:32,690 >> pset6, vår webbserver, beror Fredag ​​vid lunchtid med den sena dagen. 76 00:03:32,690 --> 00:03:37,660 Kontorstider återuppta normalt från måndag till torsdag 8:00 till 11:00 den här veckan. 77 00:03:37,660 --> 00:03:39,710 Jag tror Commons för de kommande tre nätterna. 78 00:03:39,710 --> 00:03:40,310 Häftigt. 79 00:03:40,310 --> 00:03:44,260 Innan vi hade i material, inte någon har några frågor, skämt, berättelser? 80 00:03:44,260 --> 00:03:46,662 Vad gjorde du för hösten paus? 81 00:03:46,662 --> 00:03:48,640 >> PUBLIK: Vad jag gör? 82 00:03:48,640 --> 00:03:52,834 >> ANDI PENG: Already Det är länge sedan faktiskt. 83 00:03:52,834 --> 00:03:54,000 Christabel åkte till New York. 84 00:03:54,000 --> 00:03:55,614 Jag stannade här och Netflixed. 85 00:03:55,614 --> 00:03:56,864 Målgrupp: Oh, ja jag var här. 86 00:03:56,864 --> 00:03:57,614 ANDI PENG: Åh, OK. 87 00:03:57,614 --> 00:03:59,792 PUBLIK: Jag minns inte vad specifikt. 88 00:03:59,792 --> 00:04:00,710 ANDI PENG: Det är OK. 89 00:04:00,710 --> 00:04:01,960 PUBLIK: Netflixing förmodligen. 90 00:04:01,960 --> 00:04:02,990 ANDI Peng: Netflixing. 91 00:04:02,990 --> 00:04:04,710 Ja, det är en bra tid. 92 00:04:04,710 --> 00:04:05,780 OK. 93 00:04:05,780 --> 00:04:06,340 Okej. 94 00:04:06,340 --> 00:04:08,877 Eventuella frågor innan Vi hoppar in material? 95 00:04:08,877 --> 00:04:11,210 Dessutom kommer vi att försöka fart genom avsnitt i dag, 96 00:04:11,210 --> 00:04:12,504 inte för mycket för att täcka. 97 00:04:12,504 --> 00:04:14,420 Och förhoppningsvis får vi här ute lite tidigt. 98 00:04:14,420 --> 00:04:15,580 Ledsen för att inte godis, också. 99 00:04:15,580 --> 00:04:20,310 Jag är en besvikelse, särskilt under Halloween. 100 00:04:20,310 --> 00:04:21,110 >> Okej. 101 00:04:21,110 --> 00:04:21,810 Häftigt. 102 00:04:21,810 --> 00:04:28,370 Så vi kommer att börja prata om en kommandorad argument som heter chmod. 103 00:04:28,370 --> 00:04:32,850 chmod, är allt det är bara ett Unix-system kallar leds från kommandoraden 104 00:04:32,850 --> 00:04:34,700 att ändra filrättigheter. 105 00:04:34,700 --> 00:04:37,790 Så till exempel, vi har alla stött på en sida 106 00:04:37,790 --> 00:04:40,550 så här förmodligen någon gång i vår livstid att vara en internet 107 00:04:40,550 --> 00:04:45,110 användare, där vår webbserver har gett oss felet av Förbjudna. 108 00:04:45,110 --> 00:04:49,086 Du har inte behörighet att komma åt, yadda, yadda, yadda, på den här servern. 109 00:04:49,086 --> 00:04:50,960 Allt som verkligen betyder är att behörigheterna 110 00:04:50,960 --> 00:04:53,920 som fästes till vad Sidan du försökte komma åt 111 00:04:53,920 --> 00:04:55,840 inte var öppna för dig. 112 00:04:55,840 --> 00:04:57,870 Så ganska mycket, chmod är det sätt på vilket 113 00:04:57,870 --> 00:05:02,140 Vi kan ändra dessa-tillstånd att ge alla, användaren, gruppen, 114 00:05:02,140 --> 00:05:04,975 eller världen, eller någon kombination av dessa tillgång 115 00:05:04,975 --> 00:05:07,900 till vissa filer, kataloger, något verkligen, 116 00:05:07,900 --> 00:05:11,720 någon typ av system på ett operativsystem. 117 00:05:11,720 --> 00:05:14,039 Så om någon av killarna har datorer om du känner 118 00:05:14,039 --> 00:05:17,080 gilla att följa med mig i dag, helt gärna bara skriva saker 119 00:05:17,080 --> 00:05:17,580 i. 120 00:05:17,580 --> 00:05:19,790 Om inte, kan du bara umgås. 121 00:05:19,790 --> 00:05:23,170 Så jag kommer att faktiskt dra upp min terminal just nu. 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> Så kommandot för att köra chmod, eller åtminstone bara 124 00:05:32,310 --> 00:05:37,840 att lista behörigheterna för din filkatalogen är bara ls-l. 125 00:05:37,840 --> 00:05:42,270 Som ni kan se, ett gäng grejer dyker upp varav de flesta 126 00:05:42,270 --> 00:05:45,390 är viktigt för oss på vänster sida här. 127 00:05:45,390 --> 00:05:48,710 Ni ser ett gäng rs, ws, 1 /. 128 00:05:48,710 --> 00:05:49,210 Ja. 129 00:05:49,210 --> 00:05:51,400 >> De är i huvudsak bara alla filrättigheter 130 00:05:51,400 --> 00:05:55,960 att förklara vad vissa kataloger och filer i ditt system har. 131 00:05:55,960 --> 00:05:58,150 Så låt oss gå tillbaka till power point här. 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 Så utöver filnamnen som ni kan se på den högra, 134 00:06:06,500 --> 00:06:10,312 vi vill se i huvudsak bara kolumnen till vänster. 135 00:06:10,312 --> 00:06:12,020 Så förutom att bara filnamnen, vi 136 00:06:12,020 --> 00:06:16,240 kan se behörigheter av filer, deras ägargrupp, gruppens namn, datum 137 00:06:16,240 --> 00:06:18,460 att filen senast modifierade, et cetera. 138 00:06:18,460 --> 00:06:20,640 Du kan se en hel del saker med chmod. 139 00:06:20,640 --> 00:06:26,037 Så det sätt som vi läser chmod är att den första bokstaven vi ganska mycket ignorera 140 00:06:26,037 --> 00:06:27,370 när det gäller läsning behörigheter. 141 00:06:27,370 --> 00:06:31,460 >> Den första bokstaven bara berättar vad typ av system som vi går in. 142 00:06:31,460 --> 00:06:34,240 d, i detta fall, är en mapp eller katalog. 143 00:06:34,240 --> 00:06:38,430 Så vi vet att närvarande mitt arbetsyta avsnitt sju var en katalog. 144 00:06:38,430 --> 00:06:41,530 Och då ser du tre triader, i huvudsak bara 145 00:06:41,530 --> 00:06:43,490 tre uppsättningar av tre tecken. 146 00:06:43,490 --> 00:06:45,680 Och du kan tänka på varje som en bit. 147 00:06:45,680 --> 00:06:49,260 >> Så du bara har tre uppsättningar tre bitar, nio bitar totalt. 148 00:06:49,260 --> 00:06:51,420 Du behandlar dem i grupper om tre. 149 00:06:51,420 --> 00:06:56,230 Så den första gruppen av tre är alltid din användarbehörighet. 150 00:06:56,230 --> 00:07:00,557 >> Din andra grupp av tre är alltid dina grupprättigheter. 151 00:07:00,557 --> 00:07:02,765 Och din tredje uppsättning av tre är alltid som världen, 152 00:07:02,765 --> 00:07:04,380 de överallt behörigheter. 153 00:07:04,380 --> 00:07:06,320 Så jag antar att det enkla fråga att ställa är vad som är 154 00:07:06,320 --> 00:07:08,051 skillnaden mellan användare och grupp. 155 00:07:08,051 --> 00:07:09,800 Den största skillnaden mellan användare och grupp 156 00:07:09,800 --> 00:07:13,180 är att en användare bara dig personligen tillgång till vad det är just nu. 157 00:07:13,180 --> 00:07:18,070 En grupp kan vara om du har flera användare på en dator, till exempel. 158 00:07:18,070 --> 00:07:20,280 Alla av dem kan betraktas som en grupp. 159 00:07:20,280 --> 00:07:23,220 >> Och då världen är bara världen, alla. 160 00:07:23,220 --> 00:07:31,010 Så att vi kan se senare hur vi kan modifiera dem i olika behörigheter. 161 00:07:31,010 --> 00:07:33,080 Så ganska mycket, vi är kommer fortfarande att fokusera 162 00:07:33,080 --> 00:07:38,450 på delen till vänster, där för katalog CS50 vi ser drwx, 163 00:07:38,450 --> 00:07:40,970 där r bara innebär att det är läsbar. 164 00:07:40,970 --> 00:07:42,620 >> W betyder bara att det är skrivbar. 165 00:07:42,620 --> 00:07:45,470 Och sedan x bara betyder att det är körbar. 166 00:07:45,470 --> 00:07:47,220 Man skulle kunna tro det slag av inte vettigt. 167 00:07:47,220 --> 00:07:47,993 Det bör vara e. 168 00:07:47,993 --> 00:07:50,150 Men x faktiskt typ av fungerar lite bättre, 169 00:07:50,150 --> 00:07:51,690 eftersom du kan komma ihåg det bättre. 170 00:07:51,690 --> 00:07:56,406 >> Så de tre typer av saker du kan göra, kan du antingen läsa en fil, 171 00:07:56,406 --> 00:07:59,280 Du kan ha behörighet att skriva en fil, eller du kan ha behörighet 172 00:07:59,280 --> 00:08:00,780 att exekvera en fil. 173 00:08:00,780 --> 00:08:04,580 Och så sätt som vi faktiskt representera dem i bitar 174 00:08:04,580 --> 00:08:06,940 är talen 4, 2 och 1. 175 00:08:06,940 --> 00:08:12,870 Så allt som är läsbar är representerad av antalet fyra. 176 00:08:12,870 --> 00:08:15,150 >> Allt som är skrivbar representeras av två. 177 00:08:15,150 --> 00:08:18,880 Och allt som är körbar såsom representeras av en. 178 00:08:18,880 --> 00:08:22,860 Så i den meningen kan vi också representera dessa numbers-- 179 00:08:22,860 --> 00:08:25,281 hej, välkommen, på ett annat sätt. 180 00:08:25,281 --> 00:08:25,780 Förlåt. 181 00:08:25,780 --> 00:08:28,510 Innan alla, kommer jag att be om ursäkt å allas vägnar 182 00:08:28,510 --> 00:08:29,468 kommer in i klass nu. 183 00:08:29,468 --> 00:08:30,810 Jag glömde godis idag. 184 00:08:30,810 --> 00:08:33,640 Jag är ledsen att jag är ett misslyckande denna vecka av Halloween. 185 00:08:33,640 --> 00:08:37,070 Jag kommer att ta dubbelt så mycket godis nästa gång för att kompensera för det. 186 00:08:37,070 --> 00:08:42,360 Men ändå, sorry om att killar, sorry. 187 00:08:42,360 --> 00:08:46,640 >> Så det sätt som vi kan faktiskt ingång på vår kommando argumentet är vi 188 00:08:46,640 --> 00:08:51,760 kan göra chmod grupp snedstreck behörigheter, där gruppen är precis vad 189 00:08:51,760 --> 00:08:54,130 grupp vi försöker ändra. 190 00:08:54,130 --> 00:08:56,600 Och behörigheter är vad vi vill lägga till den. 191 00:08:56,600 --> 00:08:58,860 Så till exempel, den plus lägger behörigheter, 192 00:08:58,860 --> 00:09:01,590 och subtrahera tar bort behörigheter. 193 00:09:01,590 --> 00:09:07,060 >> Och vilken typ av grupp som vi har vår en för alla, u för användarna, g för grupper, 194 00:09:07,060 --> 00:09:09,050 eller o för andra. 195 00:09:09,050 --> 00:09:10,300 Det är lite abstrakt just nu. 196 00:09:10,300 --> 00:09:13,550 Men vi kommer att gå över ett par exempel bara för att visa detta riktigt snabbt. 197 00:09:13,550 --> 00:09:16,960 Alla bra på detta bild, så jag kan gå vidare? 198 00:09:16,960 --> 00:09:18,280 Häftigt. 199 00:09:18,280 --> 00:09:21,290 >> Så till exempel, rwx. 200 00:09:21,290 --> 00:09:26,720 Innan vi talar om vad den representerar, först och främst vad rwx detta? 201 00:09:26,720 --> 00:09:31,450 Om du ser att denna viss filen har behörigheterna rwx, 202 00:09:31,450 --> 00:09:34,270 vad betyder det person kunde kunna göra? 203 00:09:34,270 --> 00:09:35,740 >> Målgrupp: läsa, skriva och köra. 204 00:09:35,740 --> 00:09:36,420 >> ANDI PENG: Ja, exakt. 205 00:09:36,420 --> 00:09:37,840 Du kan läsa skriva och köra. 206 00:09:37,840 --> 00:09:40,790 Eftersom alla tre av dem tecken är närvarande. 207 00:09:40,790 --> 00:09:44,370 Så om vi går vidare och prata om detta i termer av bitar, 208 00:09:44,370 --> 00:09:48,490 den rwx kan också betecknas som 700. 209 00:09:48,490 --> 00:09:53,370 För som ni kan se i alla sorts filkatalogen tillstånd, 210 00:09:53,370 --> 00:09:54,320 det finns tre triader. 211 00:09:54,320 --> 00:09:58,060 >> I det här fallet, bara den första triad har något där. 212 00:09:58,060 --> 00:10:04,050 Så i detta fall är R 4, w är 2, och x är ett. 213 00:10:04,050 --> 00:10:05,860 Om du lägga till dem tillsammans, det är 7. 214 00:10:05,860 --> 00:10:08,730 >> Och så om du konverterar det till binära, det är 700. 215 00:10:08,730 --> 00:10:10,310 Eftersom 7 är förstatriaden. 216 00:10:10,310 --> 00:10:12,760 0, det finns inget före i andratriaden. 217 00:10:12,760 --> 00:10:15,850 Och så finns det inget som finns i tredjetriaden, så det är en annan 0. 218 00:10:15,850 --> 00:10:22,520 >> Så i samma mening, ett gäng triader kan representeras bara bitar, precis 219 00:10:22,520 --> 00:10:23,600 i binärt samt. 220 00:10:23,600 --> 00:10:29,920 Så 700 betyder exakt samma sak som rwx ------ när det gäller behörighet. 221 00:10:29,920 --> 00:10:32,590 Alla tydliga på den punkten? 222 00:10:32,590 --> 00:10:33,090 Häftigt. 223 00:10:33,090 --> 00:10:40,290 Och så chmod 111 skulle ge vilka behörigheter till filen? 224 00:10:40,290 --> 00:10:42,600 Ge er ett par sekunder för att omvandla denna. 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 Kom ihåg att den första triaden är för användaren. 227 00:10:53,250 --> 00:10:56,320 Den andra triaden är för gruppen. 228 00:10:56,320 --> 00:10:59,450 Och tredjetriaden är för alla. 229 00:10:59,450 --> 00:11:03,680 >> Och så chmod 111 skulle ge vilken typ av tillstånd och till vem? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 Ta ett par sekunder tänka på det och komma tillbaka. 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 Ja. 234 00:11:20,910 --> 00:11:22,920 >> PUBLIK: Så alla kan köra den. 235 00:11:22,920 --> 00:11:23,920 ANDI PENG: Japp, exakt. 236 00:11:23,920 --> 00:11:25,544 PUBLIK: Men ingen kan läsa eller skriva. 237 00:11:25,544 --> 00:11:27,910 ANDI PENG: Och gärna att förklara för alla 238 00:11:27,910 --> 00:11:29,860 hur du kom till denna slutsats. 239 00:11:29,860 --> 00:11:34,290 >> Målgrupp: Tja, för användaren, grupp, och världen, det är allt en, 240 00:11:34,290 --> 00:11:35,700 vilket är koden för körbar. 241 00:11:35,700 --> 00:11:37,070 >> ANDI PENG: Ja, exakt. 242 00:11:37,070 --> 00:11:42,320 So 1, i det här fallet, är allt vi vet att detta är den exekverbara koden. 243 00:11:42,320 --> 00:11:45,280 Eftersom behandlingen är 4. 244 00:11:45,280 --> 00:11:45,990 Att skriva är 2. 245 00:11:45,990 --> 00:11:47,230 Och den körbara är en. 246 00:11:47,230 --> 00:11:51,580 Så är alla tre triaderna är 1, att innebär att till världen, till användaren, 247 00:11:51,580 --> 00:11:54,680 och till gruppen, de är alla körbara. 248 00:11:54,680 --> 00:11:56,170 >> Alla bra med det? 249 00:11:56,170 --> 00:11:56,940 OK. 250 00:11:56,940 --> 00:11:59,180 Och så den andra vägen att vi kan faktiskt 251 00:11:59,180 --> 00:12:01,220 skriver detta också är dig kunde bara göra chmod 252 00:12:01,220 --> 00:12:05,050 ett plus x. en: allt eller alla. 253 00:12:05,050 --> 00:12:07,060 Plus innebär att ge tillstånd till. 254 00:12:07,060 --> 00:12:09,112 Och sedan på x betyder körbar. 255 00:12:09,112 --> 00:12:11,070 Så det finns två kommandon är faktiskt identiska. 256 00:12:11,070 --> 00:12:12,903 Så om du vill köra detta i din terminal, 257 00:12:12,903 --> 00:12:15,830 du gör chmod 111, namn din katalog eller filen. 258 00:12:15,830 --> 00:12:18,520 Eller så kan du göra chmod ett plus x, namn på din katalogfilen. 259 00:12:18,520 --> 00:12:22,150 Samma sak, bara ett enklare sätt, kanske för vissa att representera eller förändring 260 00:12:22,150 --> 00:12:24,280 filrättigheter. 261 00:12:24,280 --> 00:12:28,806 >> Var och en OK med chmod innan vi går vidare? 262 00:12:28,806 --> 00:12:31,700 Häftigt. 263 00:12:31,700 --> 00:12:35,336 Så nu ska vi gå in i en några bilder av mycket abstrakta begrepp 264 00:12:35,336 --> 00:12:37,210 att jag är ganska mycket kommer att vind genom. 265 00:12:37,210 --> 00:12:39,530 Och det är helt OK om du förstår inte allt. 266 00:12:39,530 --> 00:12:42,330 >> Redan nu gör jag fortfarande inte riktigt förstå allt helt. 267 00:12:42,330 --> 00:12:44,640 Men det är mer för att få den översta nivån förståelse 268 00:12:44,640 --> 00:12:47,280 av hur vissa av dessa saker fungerar. 269 00:12:47,280 --> 00:12:50,490 Så vi kommer att prata snabbt om TCP / IP, 270 00:12:50,490 --> 00:12:54,880 som är bara Transmission Control Protokoll snedstreck Internet Protocol. 271 00:12:54,880 --> 00:12:57,135 >> Minns från föreläsning, David, han lär dig 272 00:12:57,135 --> 00:13:00,700 exemplet där han skulle passera noterna i ett kuvert 273 00:13:00,700 --> 00:13:02,790 upp att gilla toppen av föreläsningssalen? 274 00:13:02,790 --> 00:13:06,990 Så i lagen skolans aula David visade väsentligen 275 00:13:06,990 --> 00:13:10,370 hur TCP / IP fungerar i den meningen att allt 276 00:13:10,370 --> 00:13:14,300 är är ett sätt att säkerställa att data har levererats över en server 277 00:13:14,300 --> 00:13:15,870 eller på Internet. 278 00:13:15,870 --> 00:13:22,270 Så i exemplet av kuvertet och meddelandet, användaren i slutet 279 00:13:22,270 --> 00:13:26,410 kunde se att, åh, jag behövde får fyra informationspaket. 280 00:13:26,410 --> 00:13:28,096 >> Men jag faktiskt bara fått tre. 281 00:13:28,096 --> 00:13:29,470 Det betyder att jag måste saknas en. 282 00:13:29,470 --> 00:13:30,760 Och en inte levererades. 283 00:13:30,760 --> 00:13:33,990 Och så TCP / IP på internet, via din dator och servern, 284 00:13:33,990 --> 00:13:35,500 gör exakt samma sak. 285 00:13:35,500 --> 00:13:38,900 Allt det gör är att ange en ram inom vilken en förlorad uppgifter 286 00:13:38,900 --> 00:13:41,100 paket kan ogillar och tas emot. 287 00:13:41,100 --> 00:13:44,760 >> Liksom på internet när du försöker att komma åt filer på nätet eller skicka filer 288 00:13:44,760 --> 00:13:48,210 till din vän eller titta på webb webbläsare, tusen och åter tusen 289 00:13:48,210 --> 00:13:50,440 miljarder och åter miljarder bitgrupper informationen 290 00:13:50,440 --> 00:13:52,840 överförs per millisekund. 291 00:13:52,840 --> 00:13:54,560 Och det är riktigt, riktigt förvirrande. 292 00:13:54,560 --> 00:13:57,110 Och det är verkligen svårt att faktiskt vet vad som har skickats 293 00:13:57,110 --> 00:13:58,270 och vad som inte har skickats. 294 00:13:58,270 --> 00:14:02,210 >> Och så TCP / IP bara specificerar en sammanhängande ram 295 00:14:02,210 --> 00:14:04,115 där din webb webbläsare och servern 296 00:14:04,115 --> 00:14:05,990 kan typ av kommunikation med varandra, precis 297 00:14:05,990 --> 00:14:08,550 se till att paket är alla här och ingenting är förlorat 298 00:14:08,550 --> 00:14:12,700 och alla data som du begärt faktiskt visas korrekt. 299 00:14:12,700 --> 00:14:16,350 Alla OK på just detta mycket kort hög nivå förstå? 300 00:14:16,350 --> 00:14:18,510 Häftigt. 301 00:14:18,510 --> 00:14:21,550 >> Så då vi ska flytta till att prata om HTTP, som 302 00:14:21,550 --> 00:14:24,610 är bara Hypertext Transfer Protocol. 303 00:14:24,610 --> 00:14:32,550 HTTP, är allt det är vad varje sida eller filen öppnas på din webbplats, 304 00:14:32,550 --> 00:14:35,810 servern returnerar ett HTTP statuskod som svar 305 00:14:35,810 --> 00:14:39,869 begäran att se till att antingen, oh, gick denna begäran igenom. 306 00:14:39,869 --> 00:14:41,410 Och allting visas korrekt. 307 00:14:41,410 --> 00:14:43,500 Eller, åh, nej, 404. 308 00:14:43,500 --> 00:14:44,730 Något gick snett. 309 00:14:44,730 --> 00:14:45,940 Åh, jag kan inte visas. 310 00:14:45,940 --> 00:14:50,370 >> Allt som är är att oavsett du försöker att komma åt, 311 00:14:50,370 --> 00:14:55,160 använda som användaren försöker komma åt, på internet-- bara att se 312 00:14:55,160 --> 00:15:00,080 att du antingen har lyckats nås vad det var eller inte 313 00:15:00,080 --> 00:15:02,080 framgångsrikt nås vad det var. 314 00:15:02,080 --> 00:15:05,120 Och så HTTP status kod bara ger dig 315 00:15:05,120 --> 00:15:09,910 ett medel för att kunna veta om eller det var inte lyckat eller inte. 316 00:15:09,910 --> 00:15:13,440 Så till exempel, ett exempel begäran. 317 00:15:13,440 --> 00:15:16,050 >> Du kan se här är det vanligtvis typiskt fyra rader. 318 00:15:16,050 --> 00:15:22,530 Vi har en GET HTTP 1.1, vilket är bara metoden URL-begäran, protokollet 319 00:15:22,530 --> 00:15:24,490 version, fältnamn, och fältvärdet. 320 00:15:24,490 --> 00:15:26,810 Så ingen anledning att helt memorera något här. 321 00:15:26,810 --> 00:15:29,960 Bara typ av bekanta dig med hur dessa ser ut. 322 00:15:29,960 --> 00:15:34,060 >> I detta exempel, den förfrågningsmetoden Webbadressen är bara vad begäran 323 00:15:34,060 --> 00:15:35,620 du skickar servern. 324 00:15:35,620 --> 00:15:40,710 Liksom, hey, server, jag verkligen vill tillgång yadda, yadda, yadda, HTTP-sidan. 325 00:15:40,710 --> 00:15:43,785 Protokollet versionen är precis vad version din värd eller servern 326 00:15:43,785 --> 00:15:45,490 använder för att få tillgång till information. 327 00:15:45,490 --> 00:15:49,510 >> Fältnamnet är webbplatsen eller URL som du försöker att komma åt, 328 00:15:49,510 --> 00:15:52,610 i det här fallet, www.apple.com. 329 00:15:52,610 --> 00:15:56,110 Och fältvärdet är bara typiskt namn, värde. 330 00:15:56,110 --> 00:15:59,540 Och det kan vara någon form av kombination bokstäver eller siffror eller vad som helst. 331 00:15:59,540 --> 00:16:02,890 >> Så en typisk begäran, så vad datorn faktiskt 332 00:16:02,890 --> 00:16:08,400 skickar till servern som säger, hey, du vet vad jag behöver det här visas 333 00:16:08,400 --> 00:16:13,000 det är den typ av förfrågan att de faktiskt får. 334 00:16:13,000 --> 00:16:16,760 Ett exempel svar på vad server skulle skicka tillbaka till dig 335 00:16:16,760 --> 00:16:20,320 skulle vara ganska mycket samma sak, förutom med en statuskod på toppen. 336 00:16:20,320 --> 00:16:24,550 Så 200, 2 0 0 är alltid statuskoden för OK. 337 00:16:24,550 --> 00:16:26,050 Liksom, OK, gick denna begäran igenom. 338 00:16:26,050 --> 00:16:27,980 Du skulle kunna få tillgång allt korrekt. 339 00:16:27,980 --> 00:16:28,810 Livet är bra. 340 00:16:28,810 --> 00:16:29,990 Livet är bra. 341 00:16:29,990 --> 00:16:32,150 Allt är helt bra. 342 00:16:32,150 --> 00:16:36,050 >> Och så detta bara berättar webbläsaren och servern, hey, allt är bra. 343 00:16:36,050 --> 00:16:37,470 Jag fick all information jag behöver. 344 00:16:37,470 --> 00:16:39,160 Häftigt. 345 00:16:39,160 --> 00:16:41,790 Men problemet är ibland problem kommer upp 346 00:16:41,790 --> 00:16:46,850 när du have-- pågå Jag tror Jag talade om dubbletter. 347 00:16:46,850 --> 00:16:48,870 Du har mindre bra svar. 348 00:16:48,870 --> 00:16:52,660 >> Så till exempel, 404 är Page Not Found. 349 00:16:52,660 --> 00:16:54,897 Du har ibland en Forbidden tillgång. 350 00:16:54,897 --> 00:16:56,730 Du har olika andra statuskoder som jag är 351 00:16:56,730 --> 00:16:59,688 säker på att du har alla sett när du är försöker göra efterforskningar på internet. 352 00:16:59,688 --> 00:17:02,300 Och din webbläsare ger dig den, nej, inte kan komma åt. 353 00:17:02,300 --> 00:17:04,190 Och du är som, ja, skit. 354 00:17:04,190 --> 00:17:09,260 >> Så bara ganska mycket, det finns några ganska vanliga statuskoder. 355 00:17:09,260 --> 00:17:14,109 Kanske bekanta dig med vilka som de är. 356 00:17:14,109 --> 00:17:16,000 Det roligaste en som Jag tror att jag någonsin har hört 357 00:17:16,000 --> 00:17:18,040 of-- om du råkar leta upp dem alla 358 00:17:18,040 --> 00:17:21,490 på nätet, av någon anledning finns det faktiskt en verklig statuskod 359 00:17:21,490 --> 00:17:26,619 ringde 418 Jag är en tekanna. 360 00:17:26,619 --> 00:17:29,610 >> Jag googled där ursprunget till denna var från. 361 00:17:29,610 --> 00:17:33,150 Och tydligen en April Fools ' Dag ett par decennier sedan, 362 00:17:33,150 --> 00:17:36,415 någon trodde det skulle vara lustiga att skapa en ny kod status kallas 418 363 00:17:36,415 --> 00:17:37,380 Jag är en tekanna. 364 00:17:37,380 --> 00:17:40,760 Legitimt, namnet på denna kod kallas jag en tekanna. 365 00:17:40,760 --> 00:17:43,670 >> Jag har glömt vilken sida du måste gå att faktiskt göra denna display. 366 00:17:43,670 --> 00:17:47,955 Men tydligen, kan du faktiskt erhålla en statuskoden jag 367 00:17:47,955 --> 00:17:51,400 en tekanna på något sätt genom att göra något. 368 00:17:51,400 --> 00:17:54,480 Så det finns hundratals och hundratals statuskoder. 369 00:17:54,480 --> 00:17:56,730 >> Några av dem gör mer känsla än andra. 370 00:17:56,730 --> 00:18:01,430 Men ganska mycket bara bekanta dig med de vanligaste. 371 00:18:01,430 --> 00:18:04,090 Den begärda enhet kroppen kort och stout, tydligen. 372 00:18:04,090 --> 00:18:07,990 >> Så ibland finns det mer skrämmande fel än jag är en tekanna. 373 00:18:07,990 --> 00:18:11,210 Men detta är något som jag antar du typ av hoppas att slå. 374 00:18:11,210 --> 00:18:14,130 Men jag tror inte att du kommer. 375 00:18:14,130 --> 00:18:17,260 Alla bra på just status koder, önskemål, processer, tillverkning 376 00:18:17,260 --> 00:18:19,155 säker information levereras på rätt sätt? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> Så nu ska vi övergång i en rolig del av avsnitt idag, 379 00:18:26,120 --> 00:18:28,500 där vi prata lite om HTML. 380 00:18:28,500 --> 00:18:32,580 HTML, det är allt Hyper Markup Language. 381 00:18:32,580 --> 00:18:35,160 Det är bara standardspråk du använder för att skapa alla web 382 00:18:35,160 --> 00:18:36,690 sidor på internet. 383 00:18:36,690 --> 00:18:39,560 >> Så någon webbsida, vad är din favorit webbsida? 384 00:18:39,560 --> 00:18:40,855 Vad är din favorit webbsida? 385 00:18:40,855 --> 00:18:41,771 >> PUBLIK: [OHÖRBAR]. 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 ANDI PENG: Förlåt? 388 00:18:43,090 --> 00:18:43,980 >> PUBLIK: Tumblr. 389 00:18:43,980 --> 00:18:44,730 >> ANDI PENG: Tumblr. 390 00:18:44,730 --> 00:18:46,800 Så Tumblr är skriven i HTML. 391 00:18:46,800 --> 00:18:50,700 Och så vi ska faktiskt gå igenom och leka med några av dessa saker 392 00:18:50,700 --> 00:18:51,980 senare. 393 00:18:51,980 --> 00:18:54,980 Ganska mycket allt du behöver lära sig, att veta, 394 00:18:54,980 --> 00:18:58,540 att skriva HTML kan du förmodligen bara Google på internet. 395 00:18:58,540 --> 00:19:04,490 >> HTML, det är inte ett program som C där du kan skapa variabler och göra 396 00:19:04,490 --> 00:19:05,600 häftiga saker med det. 397 00:19:05,600 --> 00:19:08,747 Det är mer av bara, åh, det är så jag vill att det ska synas på min hemsida. 398 00:19:08,747 --> 00:19:10,080 Och jag ska bara lägga den i. 399 00:19:10,080 --> 00:19:12,160 Och det kommer att styla det. 400 00:19:12,160 --> 00:19:15,650 >> Så HTML, på sätt och vis, det är precis som en formatering eller mall språk. 401 00:19:15,650 --> 00:19:16,680 Det är mycket enklare. 402 00:19:16,680 --> 00:19:19,030 Det är mycket lättare att lära sig, mycket lättare att skriva på 403 00:19:19,030 --> 00:19:21,450 än din vanliga programmering språk, mycket lätt, 404 00:19:21,450 --> 00:19:24,310 mycket användartillgänglig och vänlig. 405 00:19:24,310 --> 00:19:29,040 >> Så vi faktiskt kommer att spela runt, skriver våra egna sidor idag. 406 00:19:29,040 --> 00:19:32,900 Men innan vi börjar, jag vill bara gå igenom några korta bästa praxis. 407 00:19:32,900 --> 00:19:35,660 Eftersom HTML är så lätt språk och eftersom även 408 00:19:35,660 --> 00:19:39,012 om du gör ett par saker fel, det ibland kanske inte märker, 409 00:19:39,012 --> 00:19:41,970 Vi vill se till att vi är faktiskt följa våra bästa praxis 410 00:19:41,970 --> 00:19:44,490 att se till att saker som skulle kunna gå runt men 411 00:19:44,490 --> 00:19:49,660 inte alltid kommer att inte gå rätt se till att de är minimeras. 412 00:19:49,660 --> 00:19:53,570 >> Så ganska mycket, se till att dina avslutande alla dina taggar 413 00:19:53,570 --> 00:19:54,737 när du skriver i HTML. 414 00:19:54,737 --> 00:19:56,486 Om du öppnar en kropp, se till att du är 415 00:19:56,486 --> 00:19:58,015 stänga det med en kropp någonstans. 416 00:19:58,015 --> 00:20:00,720 Du vill vara säker på att din webbsida validerar med hjälp av 417 00:20:00,720 --> 00:20:02,070 vad som kallas W3 Validator. 418 00:20:02,070 --> 00:20:05,460 Du kan bara Google som på nätet, och det finns en länk till det. 419 00:20:05,460 --> 00:20:07,820 >> Och då du vill separat HTML, som 420 00:20:07,820 --> 00:20:13,060 är ditt märkningsspråk från din stil, vilket är CSS språk som David 421 00:20:13,060 --> 00:20:17,510 visade att vi är också kommer att spela lite med föreläsning. 422 00:20:17,510 --> 00:20:19,120 Häftigt. 423 00:20:19,120 --> 00:20:23,500 Så när du vill köra HTML på CS50 apparaten, 424 00:20:23,500 --> 00:20:26,240 vi kommer att köra en program som heter apache, 425 00:20:26,240 --> 00:20:29,810 som allt är bara en inbyggd webbserver som alla i CS50 426 00:20:29,810 --> 00:20:31,410 har tillgång till. 427 00:20:31,410 --> 00:20:35,700 Vi kallar det apache50 bara för att vi vilja kalla allt 50 i CS50. 428 00:20:35,700 --> 00:20:39,610 >> Så det sätt som du startar CS50 webben server är genom att skriva på ditt kommando 429 00:20:39,610 --> 00:20:42,860 line apache50 starta prick. 430 00:20:42,860 --> 00:20:46,665 Och om du vill avsluta det när som helst tid, du apache50 avslutas prick. 431 00:20:46,665 --> 00:20:47,910 Och du bara trycka Enter. 432 00:20:47,910 --> 00:20:50,810 Och det bör vara på väg upp här snart. 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 Japp. 435 00:20:54,130 --> 00:20:58,110 Så jag ska bara snabbt gå över ett exempel på ett riktigt kort webbsida. 436 00:20:58,110 --> 00:21:00,280 Och vi kommer att spendera som 10, 15 minuter spelar 437 00:21:00,280 --> 00:21:04,008 runt skriver våra egna webbsidor. 438 00:21:04,008 --> 00:21:05,320 OK. 439 00:21:05,320 --> 00:21:07,841 Så här i IDE-- kan alla se det? 440 00:21:07,841 --> 00:21:08,340 Inte riktigt. 441 00:21:08,340 --> 00:21:11,400 Här kommer jag zooma in. 442 00:21:11,400 --> 00:21:15,850 >> Jag har precis fått denna korta mall här med ingenting faktiskt i det. 443 00:21:15,850 --> 00:21:20,660 Vi ska bara snabbt skriva en HTML-program som vi just 444 00:21:20,660 --> 00:21:22,050 säga hej till världen. 445 00:21:22,050 --> 00:21:24,970 Så samma sak som i C, nu är vi bara kommer att göra det i HTML. 446 00:21:24,970 --> 00:21:28,250 Finns det någon som vill faktiskt bara försöka ge mig det första du 447 00:21:28,250 --> 00:21:31,870 skulle behöva sätta i ett HTML-dokument? 448 00:21:31,870 --> 00:21:32,850 Ja. 449 00:21:32,850 --> 00:21:35,965 >> PUBLIK: Konsolerna, det [ohörbart]. 450 00:21:35,965 --> 00:21:36,590 ANDI PENG: Japp. 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 Så något som är mycket unikt för HTML som vi normalt traditionellt 453 00:21:50,930 --> 00:21:56,080 inte stöta på i andra kommandot linjenivå programmeringsspråk 454 00:21:56,080 --> 00:21:59,890 är att vi faktiskt ange vilken typ av fil 455 00:21:59,890 --> 00:22:01,987 att detta kommer att bli på toppen av vår kod. 456 00:22:01,987 --> 00:22:04,570 Så i detta instance-- tror jag det är rätt kommando, eller hur? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 Japp. 459 00:22:10,550 --> 00:22:14,860 På toppen, du bara vill inkludera bang DOCTYPE html inom parentes bara 460 00:22:14,860 --> 00:22:17,670 att berätta för din dator, hej, titta ut. 461 00:22:17,670 --> 00:22:20,050 Och HTML-dokument kommer. 462 00:22:20,050 --> 00:22:22,250 Och sedan hur vi vill att börja vår fil? 463 00:22:22,250 --> 00:22:25,540 Om vi ​​vill bara säga hej, har en webbsida som säger hej till världen, 464 00:22:25,540 --> 00:22:26,915 hur ska vi gå om att bygga det här? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> Faktiskt, låt oss vända sig till Google. 467 00:22:35,300 --> 00:22:36,910 Och vi kan faktiskt göra detta. 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 Japp. 470 00:22:43,670 --> 00:22:44,840 Det går vi. 471 00:22:44,840 --> 00:22:47,630 Så HTML. 472 00:22:47,630 --> 00:22:52,390 Som ni kan se, är min webbläsare faktiskt automatiskt styling detta för mig. 473 00:22:52,390 --> 00:22:56,010 >> Samma sak som i C, när du skapa en öppen klammerparentes, 474 00:22:56,010 --> 00:22:59,020 webbläsaren automatiskt lägger i en nära klammerparentes. 475 00:22:59,020 --> 00:23:02,210 Lyckligtvis älskar vår IDE till gör detta för oss också. 476 00:23:02,210 --> 00:23:05,490 Så nu kan vi typ av typ början av en etikett, 477 00:23:05,490 --> 00:23:09,139 och det kommer att alltid berätta för oss att kom ihåg att skriva i slutet av etiketten. 478 00:23:09,139 --> 00:23:10,680 Jag tror att detta måste aktiveras. 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 Och sedan vill vi lägga till, alltid, ett huvud där är titeln. 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 Vi vill bara kanske ringa det här inlägget hello, och sedan kroppen. 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> Och där du går. 485 00:23:36,310 --> 00:23:39,650 Det är faktiskt vår HTML-dokument. 486 00:23:39,650 --> 00:23:45,030 Så sätt att varje HTML-dokument är alltid utformade in-- samma sak 487 00:23:45,030 --> 00:23:46,720 med int main tomrum. 488 00:23:46,720 --> 00:23:49,600 Du vill alltid ha HTML en öppen och tagg 489 00:23:49,600 --> 00:23:52,100 upptill och botten av din kod. 490 00:23:52,100 --> 00:23:56,900 >> Du vill ha ett huvud inne i som innehåller titeln, precis vad 491 00:23:56,900 --> 00:24:01,430 kommer att visa fliken för din webbplats sidan, och sedan en kropp inuti vilken 492 00:24:01,430 --> 00:24:04,120 kommer faktiskt visa innehållet av vad du vill göra. 493 00:24:04,120 --> 00:24:08,220 Så om du ville verkligen köra detta, jag kommer att zooma ut. 494 00:24:08,220 --> 00:24:12,740 Du kan faktiskt börja apache50 starta prick. 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 Häftigt. 497 00:24:16,150 --> 00:24:18,980 Och så som ni kan se, nu denna länk har dykt upp. 498 00:24:18,980 --> 00:24:21,940 Det står din webbplats är nu finns någon länk nedan. 499 00:24:21,940 --> 00:24:25,910 Så alla våra IDE har done-- inte IDE, sorry-- yeah, 500 00:24:25,910 --> 00:24:33,280 vår IDE har gjort är att skapa en webbsida länken på vilken alla våra webbsidor 501 00:24:33,280 --> 00:24:35,407 kan nås på servern. 502 00:24:35,407 --> 00:24:36,490 Så låt oss ta en titt här. 503 00:24:36,490 --> 00:24:40,240 >> Låt oss titta på detta, gå till hello.html. 504 00:24:40,240 --> 00:24:42,895 Och du ser en mycket enkel webbsidan för hallå världen. 505 00:24:42,895 --> 00:24:46,477 506 00:24:46,477 --> 00:24:47,420 OK. 507 00:24:47,420 --> 00:24:50,513 Vi faktiskt kommer att bara har everyone-- ja, vad är det? 508 00:24:50,513 --> 00:24:52,353 >> PUBLIK: Jag har en grundläggande fråga. 509 00:24:52,353 --> 00:24:52,978 ANDI PENG: Japp. 510 00:24:52,978 --> 00:24:58,064 PUBLIK: Hur sparar du filen som en HTML? 511 00:24:58,064 --> 00:24:58,730 ANDI PENG: Ja. 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 Så om jag skulle skapa en ny fil, om jag gör ny fil, Untittle, om jag gör, 514 00:25:10,820 --> 00:25:14,390 section.html, bom, det är allt jag har att göra. 515 00:25:14,390 --> 00:25:15,363 >> PUBLIK: [OHÖRBAR]? 516 00:25:15,363 --> 00:25:15,946 ANDI PENG: Nej 517 00:25:15,946 --> 00:25:16,660 PUBLIK: [OHÖRBAR]. 518 00:25:16,660 --> 00:25:17,240 ANDI PENG: Nej 519 00:25:17,240 --> 00:25:18,156 PUBLIK: [OHÖRBAR]. 520 00:25:18,156 --> 00:25:19,110 ANDI PENG: Ja. 521 00:25:19,110 --> 00:25:24,300 Ganska mycket, förlängningen på filen som finns inuti din IDE, 522 00:25:24,300 --> 00:25:27,840 som talar om för datorn att talar om för webbläsaren, hej, titta ut. 523 00:25:27,840 --> 00:25:30,480 Detta kommer att bli koden skrivet på detta språk. 524 00:25:30,480 --> 00:25:34,240 Så till exempel, i Microsoft Word, vad gör alla Word-dokument 525 00:25:34,240 --> 00:25:37,070 sluta med vad förlängning? 526 00:25:37,070 --> 00:25:39,830 .doc eller .docx, eller hur? 527 00:25:39,830 --> 00:25:42,299 >> Allt det gör är specificerar till ditt operativsystem, hej, 528 00:25:42,299 --> 00:25:43,840 du har ett Word-dokument som kommer upp. 529 00:25:43,840 --> 00:25:44,940 Öppna den med Word. 530 00:25:44,940 --> 00:25:46,955 Samma sak med PDF-filer. 531 00:25:46,955 --> 00:25:49,650 Det vet, åh, jag behöver att öppna upp den här filen 532 00:25:49,650 --> 00:25:52,020 med Adobe Reader eller Adobe Acrobat. 533 00:25:52,020 --> 00:25:56,130 >> Och så förlängningar driva samma sätt som i din dator. 534 00:25:56,130 --> 00:26:00,750 Om du anger din kod sida som ska namnges HTML, då vet, 535 00:26:00,750 --> 00:26:01,880 Åh, du har HTML-kod. 536 00:26:01,880 --> 00:26:04,890 Jag kommer att behandla det som html-kod. 537 00:26:04,890 --> 00:26:06,600 Så det är super smarta i det avseendet. 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> Så alla, låt oss ta ut 10 minuter och bara skapar våra egna webbplatser. 540 00:26:18,730 --> 00:26:21,020 Låt oss lägga i den vackra saker. 541 00:26:21,020 --> 00:26:23,440 Känn dig fri att säga vad du vill. 542 00:26:23,440 --> 00:26:27,890 Jag vill bara vara säker på att allas servrar kör korrekt 543 00:26:27,890 --> 00:26:31,220 innan vi befria dig i pset. 544 00:26:31,220 --> 00:26:33,490 För om dina servrar inte köra för pset, 545 00:26:33,490 --> 00:26:34,847 som kommer att bli riktigt, riktigt illa. 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> Jag ska bara flyta runt och se vad alla arbetar med. 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 Hur går det? 550 00:27:27,590 --> 00:27:29,048 >> PUBLIK: Jag vände bara på min dator. 551 00:27:29,048 --> 00:27:29,923 >> ANDI PENG: Det är OK. 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> PUBLIK: [OHÖRBAR]. 554 00:27:42,390 --> 00:27:44,284 >> ANDI PENG: Bara din IDE. 555 00:27:44,284 --> 00:27:44,784 Ja. 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> PUBLIK: [OHÖRBAR]. 558 00:27:55,910 --> 00:27:57,590 >> ANDI PENG: Det är OK. 559 00:27:57,590 --> 00:27:59,491 >> PUBLIK: [OHÖRBAR]. 560 00:27:59,491 --> 00:28:00,490 ANDI PENG: Helt bra. 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 Är alla åtkomst deras webbserver OK? 563 00:28:51,530 --> 00:28:52,970 Är apache50 kör OK? 564 00:28:52,970 --> 00:28:54,700 Jag tror att en del av de andra sektionerna, vi 565 00:28:54,700 --> 00:28:58,790 hade problem med människor som inte att kunna komma åt servern. 566 00:28:58,790 --> 00:28:59,290 Ja. 567 00:28:59,290 --> 00:29:05,764 Så du bara köra apache50 utrymme börjar rymdperioden. 568 00:29:05,764 --> 00:29:06,680 PUBLIK: [OHÖRBAR]. 569 00:29:06,680 --> 00:29:07,610 ANDI PENG: Japp. 570 00:29:07,610 --> 00:29:08,294 Bra? 571 00:29:08,294 --> 00:29:09,210 >> PUBLIK: [OHÖRBAR]. 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> ANDI PENG: Åh, OK. 574 00:29:13,350 --> 00:29:14,808 Så du är tänkt för att ha en plats. 575 00:29:14,808 --> 00:29:15,425 Så apache50-- 576 00:29:15,425 --> 00:29:16,115 >> PUBLIK: Jag gjorde. 577 00:29:16,115 --> 00:29:17,661 >> ANDI Peng: --start utrymme. 578 00:29:17,661 --> 00:29:18,660 Målgrupp: Åh, utrymme prick. 579 00:29:18,660 --> 00:29:20,110 ANDI PENG: Japp, utrymme prick. 580 00:29:20,110 --> 00:29:23,230 Här har du. 581 00:29:23,230 --> 00:29:25,490 Alltså om du har en HTML-sida skapas, 582 00:29:25,490 --> 00:29:28,560 då kan du bara gå direkt till länken som fastställs av domstolen. 583 00:29:28,560 --> 00:29:30,539 Och du ska kunna komma åt den. 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> Alla kunnat åt sina webbsidor OK? 586 00:29:37,876 --> 00:29:39,339 >> PUBLIK: [OHÖRBAR]. 587 00:29:39,339 --> 00:29:40,380 ANDI PENG: Åh, det är OK. 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> PUBLIK: [OHÖRBAR]. 590 00:29:44,964 --> 00:29:45,630 ANDI PENG: Ja. 591 00:29:45,630 --> 00:29:48,171 Jag tror att du kan faktiskt öppna det i din webbläsare, webbläsare 592 00:29:48,171 --> 00:29:49,955 och inte bara din IDE webbläsare. 593 00:29:49,955 --> 00:29:51,580 Ja, jag tror att om du kopiera och klistra in. 594 00:29:51,580 --> 00:29:53,920 >> PUBLIK: Och sedan hur ska vi stänga av den? 595 00:29:53,920 --> 00:29:54,590 [OHÖRBAR] 596 00:29:54,590 --> 00:29:58,720 >> ANDI PENG: Ja, gör du apache50 sluta med någon period. 597 00:29:58,720 --> 00:29:59,220 Japp. 598 00:29:59,220 --> 00:30:01,180 >> PUBLIK: [OHÖRBAR]. 599 00:30:01,180 --> 00:30:02,768 >> ANDI PENG: Utan period. 600 00:30:02,768 --> 00:30:04,051 Ja. 601 00:30:04,051 --> 00:30:04,550 Det går vi. 602 00:30:04,550 --> 00:30:05,050 Japp. 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 Vi skapar våra egna webbsidor. 605 00:30:09,855 --> 00:30:10,646 >> Målgrupp: Åh, cool. 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 ANDI PENG: Ja. 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> PUBLIK: Jag har en fråga. 610 00:30:22,420 --> 00:30:25,294 Så apache 50-- 611 00:30:25,294 --> 00:30:26,731 >> ANDI Peng: 50, ja. 612 00:30:26,731 --> 00:30:28,168 >> PUBLIK: [OHÖRBAR]. 613 00:30:28,168 --> 00:30:29,130 >> ANDI PENG: Vad? 614 00:30:29,130 --> 00:30:29,750 Det är konstigt. 615 00:30:29,750 --> 00:30:32,244 Se, det var typ av frågan som hände tidigare. 616 00:30:32,244 --> 00:30:37,820 617 00:30:37,820 --> 00:30:38,730 OK. 618 00:30:38,730 --> 00:30:39,800 Se mig efter avsnitt. 619 00:30:39,800 --> 00:30:42,320 Eftersom vi har en del problem med servern. 620 00:30:42,320 --> 00:30:44,325 >> Och du vill göra Se till att din server är 621 00:30:44,325 --> 00:30:45,700 kör innan pset. 622 00:30:45,700 --> 00:30:47,800 Eftersom du kommer att behöva det. 623 00:30:47,800 --> 00:30:48,300 Ja. 624 00:30:48,300 --> 00:30:51,299 Finns det någon annan som inte har varit kunna få sin server för att börja? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> För dig som vill lägga till extra stil till dina webbsidor, 627 00:31:17,840 --> 00:31:20,450 vi faktiskt kan göra det David gjorde föreläsning samt, 628 00:31:20,450 --> 00:31:24,070 vilket är att skapa en ytterligare stil ark, som är ett punkt CSS, Cascading 629 00:31:24,070 --> 00:31:30,080 Style Sheet och faktiskt bara lägga in den. 630 00:31:30,080 --> 00:31:33,550 Så till exempel, har jag just skapat ganska mycket nästan exakt samma en 631 00:31:33,550 --> 00:31:37,180 David gjorde i föreläsning. 632 00:31:37,180 --> 00:31:39,220 Du kan ganska mycket bara göra kroppen. 633 00:31:39,220 --> 00:31:45,980 >> Du har så kallade taggar i vilka Du kan ansöka om att IDE oavsett avdelning 634 00:31:45,980 --> 00:31:48,650 du vill ha i din faktiska HTML-sidan. 635 00:31:48,650 --> 00:31:54,890 Så att kroppen på sidan, du kan göra text align center. 636 00:31:54,890 --> 00:31:58,110 Och sedan ska jag kreativ en tagg som kallas topp inne 637 00:31:58,110 --> 00:32:01,860 som jag vill ha dessa saker till hända, tilldela en större pixelstorlek 638 00:32:01,860 --> 00:32:03,104 för teckensnittet. 639 00:32:03,104 --> 00:32:04,520 Jag vill att textvikt till vara djärv. 640 00:32:04,520 --> 00:32:06,478 Och jag vill att färgen vara blå, bara godtyckliga 641 00:32:06,478 --> 00:32:08,570 värderingar som jag bestämde mig för att välja. 642 00:32:08,570 --> 00:32:10,870 Jag kan skapa en annan tagg som kallas mitten. 643 00:32:10,870 --> 00:32:12,640 Teckenstorlek, gör det lite mindre. 644 00:32:12,640 --> 00:32:17,730 Och då kan jag skapa en annan tagg kallas botten där jag vill teckenstorlek 645 00:32:17,730 --> 00:32:20,900 att vara ännu mindre fortfarande. 646 00:32:20,900 --> 00:32:25,630 >> Och så ganska mycket detta är bara exempel av källkod eller källformatmallar 647 00:32:25,630 --> 00:32:27,400 att det är mycket lätt att bara Google. 648 00:32:27,400 --> 00:32:31,560 Om du säger, åh, jag vill ha min typsnitt att kursiv och mörkgröna, 649 00:32:31,560 --> 00:32:33,980 Du kan förmodligen Google, och så kommer det att berätta för dig 650 00:32:33,980 --> 00:32:37,590 lämpliga taggar eller ID för att skapa. 651 00:32:37,590 --> 00:32:41,670 Och så det sätt som du skulle faktiskt typ av har detta i ett HTML-dokument 652 00:32:41,670 --> 00:32:45,660 eller använd det är allt du har att göra här är i spetsen 653 00:32:45,660 --> 00:32:48,560 lägga till en länk till formatmallen. 654 00:32:48,560 --> 00:32:53,600 >> Så du kan bara koppla href jämlikar oavsett namnet på din formatmall 655 00:32:53,600 --> 00:32:54,590 är. 656 00:32:54,590 --> 00:32:56,740 Och då förhållandet är en formatmall. 657 00:32:56,740 --> 00:33:00,700 Så inom någon HTML-dokument, så länge du inkludera denna punkt CSS blad, 658 00:33:00,700 --> 00:33:07,140 bör du kunna komma åt och har de egenskaper där. 659 00:33:07,140 --> 00:33:10,370 >> Så till exempel, här har jag bara skapa ett annat exempel webbsida. 660 00:33:10,370 --> 00:33:15,680 Detta är välkommet att CS50 sektion Tisdagar från 02:00 till 03:30 med mig. 661 00:33:15,680 --> 00:33:20,300 Och då har jag lagt till en härlig bild som vi potentiellt skulle kunna se. 662 00:33:20,300 --> 00:33:24,620 >> Så om du tar en titt här, om du går till style.html, 663 00:33:24,620 --> 00:33:26,310 vi skapat en webbsida med kattungar. 664 00:33:26,310 --> 00:33:29,420 Eftersom kattungen är fantastisk. 665 00:33:29,420 --> 00:33:33,570 Så att lägga till en bild bara img src länk. 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> Ganska mycket, om det finns någon form av funktion 668 00:33:38,310 --> 00:33:40,268 du vill lägga till din website-- så låt oss säga, 669 00:33:40,268 --> 00:33:43,290 du vill lägga till en meny eller ett sökfält eller liknande 670 00:33:43,290 --> 00:33:46,450 en image-- bara Google hur man gör det. 671 00:33:46,450 --> 00:33:48,277 Och du bara plopp i det formatet. 672 00:33:48,277 --> 00:33:50,110 Och du kan bara ganska mycket bara lägga in den. 673 00:33:50,110 --> 00:33:52,670 Det är riktigt, riktigt enkelt. 674 00:33:52,670 --> 00:33:55,014 >> Vi skapar vår egen webbsidor just nu. 675 00:33:55,014 --> 00:33:55,680 Om du vill-- 676 00:33:55,680 --> 00:33:56,580 >> PUBLIK: [OHÖRBAR] 677 00:33:56,580 --> 00:33:57,470 >> ANDI PENG: Förlåt? 678 00:33:57,470 --> 00:33:59,310 >> PUBLIK: [OHÖRBAR]. 679 00:33:59,310 --> 00:34:01,340 >> ANDI PENG: Åh, div är bara en division 680 00:34:01,340 --> 00:34:04,370 talar om för mig att, åh, jag har en viss del som kallas 681 00:34:04,370 --> 00:34:07,480 mitten där jag ansöker min CSS tag, och sedan 682 00:34:07,480 --> 00:34:09,619 min andra division med bottnen. 683 00:34:09,619 --> 00:34:10,785 Det är allt det som talar om. 684 00:34:10,785 --> 00:34:12,743 Eftersom det är skönt att hålla saker snyggt i ordning, 685 00:34:12,743 --> 00:34:16,304 så att programmet vet hur exakt för att köra. 686 00:34:16,304 --> 00:34:18,929 Och tror att jag kan kopiera klistra in den här i min faktiska webbläsare också. 687 00:34:18,929 --> 00:34:21,110 Det ska vara bra. 688 00:34:21,110 --> 00:34:21,610 Ja. 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 Jippie. 691 00:34:25,989 --> 00:34:29,380 Så om alla vill bara försöka skapa en webbsida, 692 00:34:29,380 --> 00:34:32,169 vi tar ytterligare två till tre minuter. 693 00:34:32,169 --> 00:34:34,460 Jag vill bara se till att allas servrar kör 694 00:34:34,460 --> 00:34:36,941 och alla har en idé om hur man gör det. 695 00:34:36,941 --> 00:34:38,774 Om ni vill ta ut dina datorer. 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 Fortfarande inte fungerar? 698 00:34:45,635 --> 00:34:47,420 >> PUBLIK: Jag är bara [OHÖRBAR]. 699 00:34:47,420 --> 00:34:49,838 >> ANDI PENG: Kanske prova uppdatera 50 också. 700 00:34:49,838 --> 00:34:51,392 Ja. 701 00:34:51,392 --> 00:34:52,308 PUBLIK: [OHÖRBAR]. 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> ANDI PENG: Ja. 704 00:35:18,990 --> 00:35:23,750 Så sätt som du startar en ny webbserver på IDE är bara 705 00:35:23,750 --> 00:35:27,889 gör apache50 utrymme start utrymme prick. 706 00:35:27,889 --> 00:35:30,430 Jag ville bara se till att allas servrar kör OK. 707 00:35:30,430 --> 00:35:31,763 >> ÅHÖRARNA: Här, på terminalen? 708 00:35:31,763 --> 00:35:33,334 ANDI PENG: Ja. 709 00:35:33,334 --> 00:35:34,250 PUBLIK: [OHÖRBAR]. 710 00:35:34,250 --> 00:35:38,000 711 00:35:38,000 --> 00:35:38,985 >> ANDI PENG: Apache. 712 00:35:38,985 --> 00:35:42,010 Faktiskt, jag tror att du är kör redan något. 713 00:35:42,010 --> 00:35:43,145 Ja, du är faktiskt kör en annan server. 714 00:35:43,145 --> 00:35:43,830 Ja, du är bra. 715 00:35:43,830 --> 00:35:45,085 Så länge det fungerar, du är OK. 716 00:35:45,085 --> 00:35:45,626 >> PUBLIK: OK. 717 00:35:45,626 --> 00:35:47,615 ANDI PENG: Det finns två sätt att köra servrar. 718 00:35:47,615 --> 00:35:49,990 Så länge en av de sätt fungerar, det är okej. 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 Vi tar en minut bara typ av avsluta 721 00:36:21,680 --> 00:36:25,280 finputsning av något webbsida ni ville göra. 722 00:36:25,280 --> 00:36:26,830 >> Är alla som arbetar förresten? 723 00:36:26,830 --> 00:36:30,910 Allas servrar är kör förutom för er? 724 00:36:30,910 --> 00:36:32,210 Vi ska räkna ut. 725 00:36:32,210 --> 00:36:34,137 Och HTML är ganska enkel. 726 00:36:34,137 --> 00:36:35,220 Så jag tror att vi är alla bra. 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 Ja. 729 00:36:38,760 --> 00:36:41,070 Jag kommer tillbaka. 730 00:36:41,070 --> 00:36:42,797 >> PUBLIK: [OHÖRBAR]. 731 00:36:42,797 --> 00:36:43,380 ANDI PENG: OK. 732 00:36:43,380 --> 00:36:44,770 PUBLIK: Så det är bara börjat ladda upp. 733 00:36:44,770 --> 00:36:45,686 ANDI PENG: Inga bekymmer. 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 Så HTML, det finns källkod som kommer att vara online efter avsnitt. 736 00:36:52,680 --> 00:36:54,810 Dessutom har David en helhet gäng på nätet också. 737 00:36:54,810 --> 00:36:58,190 Bara typ av blick över det till se hur HTML-sidor skrivs. 738 00:36:58,190 --> 00:36:59,920 Det är ganska lätt. 739 00:36:59,920 --> 00:37:03,979 Allt du inte vet, du ganska mycket bara Google och du är bra. 740 00:37:03,979 --> 00:37:06,270 Jag vill bara vara säker på att dina servrar körs. 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> PUBLIK: Är det gör det ofta? 743 00:37:14,880 --> 00:37:16,421 >> ANDI PENG: Det har aldrig hänt mig. 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 Jag visste inte att det kan även övervintra. 746 00:37:20,782 --> 00:37:22,516 >> PUBLIK: [OHÖRBAR]. 747 00:37:22,516 --> 00:37:25,140 ANDI PENG: Jag tror everyone-- Gruvan har aldrig övervintrat förut. 748 00:37:25,140 --> 00:37:26,860 Och jag vet inte varför. 749 00:37:26,860 --> 00:37:27,566 Det är konstigt. 750 00:37:27,566 --> 00:37:29,310 >> PUBLIK: [OHÖRBAR]. 751 00:37:29,310 --> 00:37:30,643 >> ANDI PENG: Är din ide? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> PUBLIK: [OHÖRBAR]. 754 00:37:33,669 --> 00:37:34,335 ANDI PENG: Ja. 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 PUBLIK: Det är OK. 757 00:37:39,872 --> 00:37:40,622 Så när det är öppet. 758 00:37:40,622 --> 00:37:41,760 ANDI PENG: OK. 759 00:37:41,760 --> 00:37:43,940 Vi kommer att ta itu med några server problem efter avsnitt. 760 00:37:43,940 --> 00:37:44,860 Du ska vara bra. 761 00:37:44,860 --> 00:37:47,950 Även vill du se till att du få dem lösas innan du lämnar. 762 00:37:47,950 --> 00:37:49,380 För om serverns inte körs, då är du 763 00:37:49,380 --> 00:37:52,004 inte kommer att kunna göra pset, liksom någon del av pset. 764 00:37:52,004 --> 00:37:54,200 Så du vill vara säker på att det fungerar. 765 00:37:54,200 --> 00:37:54,831 Häftigt. 766 00:37:54,831 --> 00:37:55,330 Okej. 767 00:37:55,330 --> 00:37:56,490 Säg adjö kattungar. 768 00:37:56,490 --> 00:37:59,670 Jag tillbringade en lång tid söker som kattunge bild att sätta på. 769 00:37:59,670 --> 00:38:02,272 Så, ändå. 770 00:38:02,272 --> 00:38:04,950 >> PUBLIK: [OHÖRBAR]. 771 00:38:04,950 --> 00:38:05,770 >> ANDI PENG: Förlåt? 772 00:38:05,770 --> 00:38:07,345 >> PUBLIK: [OHÖRBAR]. 773 00:38:07,345 --> 00:38:08,970 ANDI PENG: Jag tror att det är på webbplatsen. 774 00:38:08,970 --> 00:38:11,064 Liksom spec? 775 00:38:11,064 --> 00:38:12,020 >> PUBLIK: [OHÖRBAR]. 776 00:38:12,020 --> 00:38:16,080 Jag tror att spec är bara nätet i vecka sju. 777 00:38:16,080 --> 00:38:18,850 Jag tror det kallas pset6, även även om vi är på vecka sju, som 778 00:38:18,850 --> 00:38:19,641 är lite computing. 779 00:38:19,641 --> 00:38:23,130 PUBLIK: Men jag menar om du vill titta at-- om du 780 00:38:23,130 --> 00:38:28,666 vill dra upp vår version av webbplatsen från vår sever? 781 00:38:28,666 --> 00:38:31,820 Så som server.c är pset, eller hur? 782 00:38:31,820 --> 00:38:36,514 Om du vill titta på detta, som hur det checkar ut? 783 00:38:36,514 --> 00:38:38,680 ANDI PENG: Åh, så faktiskt den pset, är allt vi gör 784 00:38:38,680 --> 00:38:41,405 här är implementing-- här, Jag ska gå igenom det här en kort stund. 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 Så för alla som bara har blivit avsnitt, ni är i tur. 787 00:38:47,020 --> 00:38:49,340 Det finns mycket lite material att faktiskt täcka idag. 788 00:38:49,340 --> 00:38:52,585 >> Jag ska bara tillbringa nästa 20 minuter gå över pset hjälp. 789 00:38:52,585 --> 00:38:55,210 Eftersom det finns några användbara funktioner som kommer att hjälpa ditt liv. 790 00:38:55,210 --> 00:38:57,501 Och förhoppningsvis kommer vi vara ute härifrån i likhet med 20 minuter. 791 00:38:57,501 --> 00:38:58,360 OK. 792 00:38:58,360 --> 00:39:00,252 >> Så pset7 är fel. 793 00:39:00,252 --> 00:39:02,460 Även om vi är på vecka sju, det är faktiskt pset6. 794 00:39:02,460 --> 00:39:04,220 Jag ska ändra på det. 795 00:39:04,220 --> 00:39:07,550 Allt vi gör i pset6 skapar en webbserver. 796 00:39:07,550 --> 00:39:09,010 Det låter super skrämmande. 797 00:39:09,010 --> 00:39:11,010 >> Och särskilt för dem av er som redan har 798 00:39:11,010 --> 00:39:14,530 tittat på distributionskoden, det finns en hel del kod, en hel del kod. 799 00:39:14,530 --> 00:39:15,570 Men är helt OK. 800 00:39:15,570 --> 00:39:17,750 Eftersom nitty gritty del av att faktiskt skapa 801 00:39:17,750 --> 00:39:20,140 servern görs av oss. 802 00:39:20,140 --> 00:39:22,090 Allt du verkligen frågat att göra i denna pset 803 00:39:22,090 --> 00:39:25,350 bara för att göra några strängmanipulationer i fil-I / O. Det är faktiskt 804 00:39:25,350 --> 00:39:27,570 liknande ganska enkel. 805 00:39:27,570 --> 00:39:30,830 >> Så när du först ladda ner that-- som Här har faktiskt redan hämtat 806 00:39:30,830 --> 00:39:32,540 den pset och tagit en titt? 807 00:39:32,540 --> 00:39:33,040 Okej. 808 00:39:33,040 --> 00:39:33,540 Ja. 809 00:39:33,540 --> 00:39:36,042 Det är som 500 rader kod att du kommer att se ut, 810 00:39:36,042 --> 00:39:36,750 vad händer? 811 00:39:36,750 --> 00:39:38,177 Och det är helt bra. 812 00:39:38,177 --> 00:39:39,760 Se till att du titta på genomgångar. 813 00:39:39,760 --> 00:39:41,610 Eftersom David och-- Jag vet inte. 814 00:39:41,610 --> 00:39:43,870 Jag tror inte att det är Zamyla s, här. 815 00:39:43,870 --> 00:39:47,040 Men jag tror att någon annan genomgångar är ganska 816 00:39:47,040 --> 00:39:49,510 användbart i termer av bara så att du vet 817 00:39:49,510 --> 00:39:51,780 vad som händer på insidan av din kod. 818 00:39:51,780 --> 00:39:53,330 >> Och det är helt OK. 819 00:39:53,330 --> 00:39:57,860 Eftersom de fyra funktioner som du är ombedd att genomföra har faktiskt 820 00:39:57,860 --> 00:39:59,720 noll att göra med själva servern. 821 00:39:59,720 --> 00:40:02,590 Allt de behöver göra är att bara analysera olika strängar, 822 00:40:02,590 --> 00:40:05,780 söka igenom strängar, att se till att saker och ting gör 823 00:40:05,780 --> 00:40:07,750 vad de ska göra. 824 00:40:07,750 --> 00:40:11,200 >> Så för ett liknande resonemang, det finns några mycket, mycket användbara funktioner, 825 00:40:11,200 --> 00:40:13,630 särskilt för stråk manipulation, att vi bör alla 826 00:40:13,630 --> 00:40:15,879 gå över att jag trodde jag skulle vara mycket användbart för er 827 00:40:15,879 --> 00:40:19,130 att lära sig innan du försöker pset. 828 00:40:19,130 --> 00:40:23,350 Och de är alla ingår inom din string.h bibliotek. 829 00:40:23,350 --> 00:40:25,980 Det finns förmodligen mer användbar funktioner Jag har inte ingår här, 830 00:40:25,980 --> 00:40:30,740 eftersom jag antingen aldrig använda dem eller kanske jag bara inte vet att de existerar. 831 00:40:30,740 --> 00:40:32,440 >> Känn dig fri att titta igenom student.h. 832 00:40:32,440 --> 00:40:36,460 Eftersom det kommer att bli en hel del funktioner som är mycket användbara. 833 00:40:36,460 --> 00:40:43,050 Så sex som jag använder mest i mitt pset när jag gjorde det här senaste veckan 834 00:40:43,050 --> 00:40:49,620 var strtok, strchr, strrcher, strstr, strcasecmp och strcpy. 835 00:40:49,620 --> 00:40:53,060 Och så de två sista kan tyckas ganska bekant för de flesta av er. 836 00:40:53,060 --> 00:40:56,910 Str fall jämföra, allt det gör är att jämföra strängar att kontrollera dem för jämställdhet, 837 00:40:56,910 --> 00:40:58,110 inklusive fall. 838 00:40:58,110 --> 00:41:01,430 Och strcpy kopierar bara en sträng till en buffert. 839 00:41:01,430 --> 00:41:04,430 >> Och så de två ska verka mycket bekant för er på denna punkt. 840 00:41:04,430 --> 00:41:07,100 Eftersom vi har använt dem en hel del, särskilt för de senaste psets. 841 00:41:07,100 --> 00:41:10,734 Men de fyra första kanske du inte har sett hittills. 842 00:41:10,734 --> 00:41:12,400 Men jag ska bara gå igenom dem. 843 00:41:12,400 --> 00:41:15,620 Eftersom de kommer att göra ditt liv verkligen, verkligen lätt for-- inte lätt, 844 00:41:15,620 --> 00:41:19,830 men mycket lättare för den kommande pset. 845 00:41:19,830 --> 00:41:20,420 >> OK. 846 00:41:20,420 --> 00:41:27,720 Så char * strtok, är detta funktionen definition för denna funktion finns 847 00:41:27,720 --> 00:41:31,050 i strängen, h bibliotek. 848 00:41:31,050 --> 00:41:34,340 Om du får en ingång till char * sträng, som ligger bara en sträng, 849 00:41:34,340 --> 00:41:38,220 eller en konstant char * deliminator, AVSKILJ för korta, 850 00:41:38,220 --> 00:41:42,410 allt den gör är att bryta den större sträng i en serie av vad vi kallar 851 00:41:42,410 --> 00:41:45,730 token åtskilda av ett visst värde. 852 00:41:45,730 --> 00:42:03,340 Så på sätt och vis, om jag skulle ge du section.7.php, detta är en sträng. 853 00:42:03,340 --> 00:42:09,520 >> Så det skulle vara om jag skulle passera i detta som min str, min char * str, 854 00:42:09,520 --> 00:42:18,870 om mitt deliminator var prick, allt detta skulle göra är att söka genom sträng. 855 00:42:18,870 --> 00:42:22,790 Och första gången ser en prick, det skulle bara återgå till pekaren 856 00:42:22,790 --> 00:42:25,830 till den sista symbolen hittas i strängen innan. 857 00:42:25,830 --> 00:42:27,230 Så det skulle gå här. 858 00:42:27,230 --> 00:42:30,580 >> Och det skulle bara ge mig 7.php. 859 00:42:30,580 --> 00:42:34,070 Och om jag skulle ringa fungera en gång, 860 00:42:34,070 --> 00:42:37,580 det skulle ge mig bara .php. 861 00:42:37,580 --> 00:42:41,540 Och så allt här funktionen gör bryter ner större strängen 862 00:42:41,540 --> 00:42:44,620 i mindre strängar beroende på vad du letar efter. 863 00:42:44,620 --> 00:42:46,670 >> Och så till exempel i ditt utseende up funktion 864 00:42:46,670 --> 00:42:49,895 Om du vill titta på vad vissa tecken kommer om 865 00:42:49,895 --> 00:42:54,280 eller om punkter hända eller förlängningar hända, denna funktion skulle vara ganska användbart. 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 Ja. 868 00:42:59,010 --> 00:42:59,510 Inga problem. 869 00:42:59,510 --> 00:43:01,339 Detta kommer alla be-- ja, vad är det? 870 00:43:01,339 --> 00:43:07,087 >> PUBLIK: Så i den första raden, om vi använde detta exempel, 871 00:43:07,087 --> 00:43:09,504 vad skulle vi sätta in det? 872 00:43:09,504 --> 00:43:10,170 ANDI PENG: Ja. 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 Du skulle bara ringa ett strtok sträng kommatecken AVSKILJ. 875 00:43:25,640 --> 00:43:30,260 Och strängen är lika med section.7.php. 876 00:43:30,260 --> 00:43:35,244 Och då är du AVSKILJ kan vara lika med bara dot. 877 00:43:35,244 --> 00:43:36,654 >> PUBLIK: OK. 878 00:43:36,654 --> 00:43:39,010 >> ANDI PENG: Ja. 879 00:43:39,010 --> 00:43:41,266 Bara sådär. 880 00:43:41,266 --> 00:43:43,890 Alla dessa funktioner är ganska liknande när vi går igenom dem. 881 00:43:43,890 --> 00:43:45,514 De gör bara lite olika saker. 882 00:43:45,514 --> 00:43:49,530 Men de är alla kommer att göra ditt liv mycket enklare. 883 00:43:49,530 --> 00:43:53,940 Andra funktion, detta är som super, super, super viktigt, 884 00:43:53,940 --> 00:43:58,254 är the-- hålla upp. 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> Hoppsan. 887 00:44:08,730 --> 00:44:13,810 Strchr söker efter den första occurrence-- faktiskt, ja. 888 00:44:13,810 --> 00:44:16,385 Strchr är den funktion som Jag definitivt bara gick över. 889 00:44:16,385 --> 00:44:18,260 Så ignorera vad jag sa för den första funktionen. 890 00:44:18,260 --> 00:44:20,980 Det är faktiskt kallas strchr. 891 00:44:20,980 --> 00:44:24,840 >> Så vad skulle hänt här är om du fick en sträng i en char c, 892 00:44:24,840 --> 00:44:28,660 Det skulle bara ge du vad det var. 893 00:44:28,660 --> 00:44:29,230 Ja. 894 00:44:29,230 --> 00:44:33,700 Så tänk på det som str, vilket är en sträng och chr som röding. 895 00:44:33,700 --> 00:44:38,621 Så allt du försöker göra är att söka för var en röding ligger inom en sträng. 896 00:44:38,621 --> 00:44:41,120 Och så den söker efter den första förekomst av tecknet 897 00:44:41,120 --> 00:44:43,601 c i strängen str. 898 00:44:43,601 --> 00:44:46,463 >> PUBLIK: [OHÖRBAR]. 899 00:44:46,463 --> 00:44:48,380 >> ANDI PENG: Japp. 900 00:44:48,380 --> 00:44:51,230 Och sedan om det inte hittar det, det kommer att återvända NULL. 901 00:44:51,230 --> 00:44:54,313 Så något som kommer att bli mycket användbart för er i att göra pset 902 00:44:54,313 --> 00:44:59,030 om, säger, du letar efter en förlängning som en Docx för Word 903 00:44:59,030 --> 00:45:04,740 dokument eller en PDF för ett PDF-dokument, du kan sorts använda den för att se 904 00:45:04,740 --> 00:45:08,720 för allt som är efteråt varje gång du ser en prick, eller hur? 905 00:45:08,720 --> 00:45:11,880 Och så ganska mycket, om du kör den genom funktionen, 906 00:45:11,880 --> 00:45:13,610 om den returnerar NOLL, då vet du att det 907 00:45:13,610 --> 00:45:17,292 hittade inte det prick, vilket innebär detta uppenbarligen inte är ett giltigt filnamnstillägg. 908 00:45:17,292 --> 00:45:19,000 Eller om den återvänder något, då vet du 909 00:45:19,000 --> 00:45:21,940 det kommer att återvända oavsett s faktiskt efter förlängning. 910 00:45:21,940 --> 00:45:24,190 Så de av er som hade började leta igenom lookup 911 00:45:24,190 --> 00:45:28,640 och tolka denna funktion är kommer att bli super bra. 912 00:45:28,640 --> 00:45:32,010 Så vi faktiskt kommer att demonstrera att använda denna. 913 00:45:32,010 --> 00:45:36,670 >> Varför inte ni försöker skriva en funktionen bool meningen char * s som 914 00:45:36,670 --> 00:45:39,610 bara returnerar true om s är en mening och i annat fall false. 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 Så antyder, du kommer att förmodligen använda strchr. 917 00:45:46,830 --> 00:45:50,420 Eller om du bara söka i sträng för en viss karaktär. 918 00:45:50,420 --> 00:45:54,950 Och så i en mening, vad som skiljer en mening 919 00:45:54,950 --> 00:45:57,510 från en icke-mening, vilka specifika karaktär? 920 00:45:57,510 --> 00:45:58,260 PUBLIK: Ett utrymme. 921 00:45:58,260 --> 00:45:59,343 ANDI PENG: Ett utrymme, eller hur? 922 00:45:59,343 --> 00:46:03,354 Och så vad vi förmodligen kommer att vill göra inom denna funktion här? 923 00:46:03,354 --> 00:46:04,290 >> PUBLIK: [OHÖRBAR]. 924 00:46:04,290 --> 00:46:07,623 >> ANDI PENG: Vi kommer att vilja strchr sträng för uppkomsten av utrymmet. 925 00:46:07,623 --> 00:46:11,330 För om det återvänder något, då Vi vet att detta måste vara en mening. 926 00:46:11,330 --> 00:46:14,510 Det innebär att vi måste har ett utrymme i denna sträng. 927 00:46:14,510 --> 00:46:17,660 >> Om det inte finns något utrymme, då vet vi att hej, antar att det inte är en sträng. 928 00:46:17,660 --> 00:46:20,060 Det är nog bara en riktigt långt ord. 929 00:46:20,060 --> 00:46:23,242 Så jag ska ge er ett par minuter att skriva den här funktionen. 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 Ja. 932 00:46:45,874 --> 00:46:47,970 >> PUBLIK: Fick du denna sträng från användaren? 933 00:46:47,970 --> 00:46:48,440 >> ANDI PENG: Ja. 934 00:46:48,440 --> 00:46:49,565 Så det här är bara en funktion. 935 00:46:49,565 --> 00:46:54,586 Så tänk i din huvuduppgift du redan have-- låt oss gå hit. 936 00:46:54,586 --> 00:47:00,040 937 00:47:00,040 --> 00:47:00,540 OK. 938 00:47:00,540 --> 00:47:05,270 Så jag har skrivit programmet om Jag har min huvudsakliga funktion där 939 00:47:05,270 --> 00:47:07,432 Jag har just skapat två strängar. 940 00:47:07,432 --> 00:47:09,890 Den första är Hej, mitt namn är Andi-- klart, en mening. 941 00:47:09,890 --> 00:47:13,240 Min andra är bara Andi, uppenbarligen inte meningen. 942 00:47:13,240 --> 00:47:18,390 >> Och så jag kör båda dessa strängar genom denna funktion. 943 00:47:18,390 --> 00:47:20,540 Jag vill att ni ska skriva kall mening. 944 00:47:20,540 --> 00:47:23,380 Och jag lagra dessa värden, och sedan bara skriva ut dem. 945 00:47:23,380 --> 00:47:26,549 Så tänk att användaren är kommer att passera i en sträng. 946 00:47:26,549 --> 00:47:29,590 Och då du kommer att väsentligen ta reda på om det är en mening eller inte 947 00:47:29,590 --> 00:47:31,131 och returnera sant eller falskt i enlighet därmed. 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> Om ni vill ge en tummen upp eller heads up, huvud nicka, 950 00:48:45,200 --> 00:48:49,080 är någon är redo att börja detta skulle det vara bra. 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 Kanske som 30 sekunder? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 Okej. 955 00:50:50,070 --> 00:50:52,870 Låt oss se om du kan prova skriver denna funktion. 956 00:50:52,870 --> 00:50:57,480 >> Så pseudo coding-- jag ska bara typ av gå igenom detta just nu. 957 00:50:57,480 --> 00:51:00,570 Ganska mycket, vi vet funktion som vi måste använda. 958 00:51:00,570 --> 00:51:04,390 Vi kommer att kalla denna funktion på vår sträng och sökandet efter en plats. 959 00:51:04,390 --> 00:51:08,682 Om den returnerar något, då måste vi vet att, uppenbarligen är detta en mening. 960 00:51:08,682 --> 00:51:09,640 Eftersom det finns utrymmen. 961 00:51:09,640 --> 00:51:10,930 Då vi kommer att återvända sant. 962 00:51:10,930 --> 00:51:12,310 Annars kommer vi att returnera false. 963 00:51:12,310 --> 00:51:14,393 Finns det någon som vill ge mig den första raden kod 964 00:51:14,393 --> 00:51:16,890 att vi faktiskt tänker att använda för att skriva detta? 965 00:51:16,890 --> 00:51:19,680 Det är faktiskt den svåraste kodrad samt. 966 00:51:19,680 --> 00:51:21,026 Ja. 967 00:51:21,026 --> 00:51:28,942 >> PUBLIK: Om strtok s-- 968 00:51:28,942 --> 00:51:29,900 ANDI PENG: Bara strchr. 969 00:51:29,900 --> 00:51:35,354 PUBLIK: [inplacering RÖSTER] utrymmet inte är lika med noll. 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> ANDI PENG: Cool. 972 00:51:40,710 --> 00:51:41,470 Exakt rätt. 973 00:51:41,470 --> 00:51:43,200 Alla förstår att första raden? 974 00:51:43,200 --> 00:51:46,110 Vi kommer att kalla strstr, som är en funktion som söker 975 00:51:46,110 --> 00:51:51,830 strängen ar för det förkolnade materialet i rymden. 976 00:51:51,830 --> 00:51:56,010 Och om den finner det, det kommer att returnera en pekare till var det är. 977 00:51:56,010 --> 00:51:58,500 >> Om den inte hittar det, det kommer att återvända NULL. 978 00:51:58,500 --> 00:52:02,530 Så om det returnerar något annat än NULL, så vet vi att det har funnit en plats. 979 00:52:02,530 --> 00:52:03,553 Betyder det vettigt? 980 00:52:03,553 --> 00:52:04,090 Häftigt. 981 00:52:04,090 --> 00:52:04,590 Okej. 982 00:52:04,590 --> 00:52:08,246 Så om vi vet att det hittat en utrymme, vad vi vill göra? 983 00:52:08,246 --> 00:52:09,162 PUBLIK: Återgå sant. 984 00:52:09,162 --> 00:52:09,787 ANDI PENG: Japp. 985 00:52:09,787 --> 00:52:11,940 Return true. 986 00:52:11,940 --> 00:52:15,034 Och sedan, någon vill avsluta funktionen för mig? 987 00:52:15,034 --> 00:52:16,300 Ja. 988 00:52:16,300 --> 00:52:19,720 Annat, bara sådär. 989 00:52:19,720 --> 00:52:20,780 Och försök att sammanställa detta. 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> Japp. 992 00:52:28,000 --> 00:52:33,099 Så när ni kan se från utgångar, minns Booleans i C 993 00:52:33,099 --> 00:52:34,390 är alltid uttrycks i binär. 994 00:52:34,390 --> 00:52:35,100 1 är sant. 995 00:52:35,100 --> 00:52:36,350 0 är falsk. 996 00:52:36,350 --> 00:52:39,720 >> Om vi ​​skulle köra funktionen snöre en, som 997 00:52:39,720 --> 00:52:42,900 är Hej, mitt namn är Andi-- klart, en sentence-- resultatet 998 00:52:42,900 --> 00:52:45,700 skrivas ut till en som är sann. 999 00:52:45,700 --> 00:52:48,420 Den andra, som är bara ett ord, resultat skrivas ut 1000 00:52:48,420 --> 00:52:50,630 till 0, vilket är falskt. 1001 00:52:50,630 --> 00:52:54,820 Alla tydlig typ av hur denna funktion är skriven? 1002 00:52:54,820 --> 00:52:55,800 Ja. 1003 00:52:55,800 --> 00:52:59,770 >> Publik: Kan vi också göra, i stället för inte lika nej, lika lika med 0, 1004 00:52:59,770 --> 00:53:03,677 så att det är lika med? 1005 00:53:03,677 --> 00:53:04,260 ANDI PENG: Nej 1006 00:53:04,260 --> 00:53:07,480 Eftersom strchr är en funktion. 1007 00:53:07,480 --> 00:53:09,940 Jag kommer tillbaka till detta. 1008 00:53:09,940 --> 00:53:14,624 Så vad är returtypen av vår strchr funktion? 1009 00:53:14,624 --> 00:53:15,332 Målgrupp: Åh, OK. 1010 00:53:15,332 --> 00:53:15,800 Eller null. 1011 00:53:15,800 --> 00:53:16,466 >> ANDI PENG: Ja. 1012 00:53:16,466 --> 00:53:20,890 Det är en char * som säger mig att allt denna funktion kommer att återvända, 1013 00:53:20,890 --> 00:53:22,090 det kommer att vara en pekare. 1014 00:53:22,090 --> 00:53:24,860 Antingen pekaren kommer att bli som pekar på där det har hittat det, 1015 00:53:24,860 --> 00:53:27,550 eller det kommer att återvända en pekare till null. 1016 00:53:27,550 --> 00:53:30,930 I båda omständigheter, det kommer att returnera en pekare till något. 1017 00:53:30,930 --> 00:53:34,354 >> Och så om du skulle jämställa detta är lika, lika, 0, 1018 00:53:34,354 --> 00:53:36,020 du kommer att få en sammanställning fel. 1019 00:53:36,020 --> 00:53:37,645 Eftersom det kommer att returnera en pekare. 1020 00:53:37,645 --> 00:53:40,240 Och du kommer att försöka jämföra en pekare till ett heltal. 1021 00:53:40,240 --> 00:53:42,515 Och datorn är inte kommer att gilla det. 1022 00:53:42,515 --> 00:53:45,630 Ja, exakt. 1023 00:53:45,630 --> 00:53:46,540 Häftigt. 1024 00:53:46,540 --> 00:53:47,525 Alla bra? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> Och för det andra, vi kommer att gå över en funktion som kallas strstr. 1027 00:53:59,770 --> 00:54:02,020 Inga bekymmer om dessa funktioner är förvirrande dig. 1028 00:54:02,020 --> 00:54:03,750 De förvirrande mig. 1029 00:54:03,750 --> 00:54:07,250 Som sådan, skulle ni ha sett, de alla låter ganska mycket samma. 1030 00:54:07,250 --> 00:54:10,400 Just när du är förvirrad, dra upp string.h biblioteket. 1031 00:54:10,400 --> 00:54:13,290 Och ni kan sortera genom vilken man är där. 1032 00:54:13,290 --> 00:54:18,910 >> Så strstr, är allt som gör sökningar en sträng för en helt annan sträng. 1033 00:54:18,910 --> 00:54:21,980 Så var strchr bara sökningar för ett enda tecken, 1034 00:54:21,980 --> 00:54:24,090 strstr söker efter en hel sträng. 1035 00:54:24,090 --> 00:54:30,440 Så jag ville titta i, det gör jag inte vet, Hej, mitt namn är Andi. 1036 00:54:30,440 --> 00:54:32,490 Och min bästa väns namn är också Andi. 1037 00:54:32,490 --> 00:54:37,180 >> Om jag ville se i denna straff för hela ord Andi, 1038 00:54:37,180 --> 00:54:39,930 min nål skulle ha varit vad du letar efter. 1039 00:54:39,930 --> 00:54:43,440 Och din höstack är vad du letar efter det. 1040 00:54:43,440 --> 00:54:47,050 Så om du letar efter en specifikt ord i en mening, 1041 00:54:47,050 --> 00:54:48,800 det ordet kommer att bli din nål. 1042 00:54:48,800 --> 00:54:51,397 Och sedan meningen själv kommer att vara din höstack. 1043 00:54:51,397 --> 00:54:53,230 Och så bara söker den första förekomsten 1044 00:54:53,230 --> 00:54:55,063 av strängen nålen i strängen höstack. 1045 00:54:55,063 --> 00:54:57,140 Den returnerar pekaren till den första förekomsten. 1046 00:54:57,140 --> 00:55:00,510 Utom, minns i det här fallet, är det första förekomsten av hela strängen 1047 00:55:00,510 --> 00:55:02,510 att du söker för, inte bara ett tecken. 1048 00:55:02,510 --> 00:55:04,676 >> Och så detta är nästan samma sak som den funktion 1049 00:55:04,676 --> 00:55:09,100 vi gjorde bara, bara med lite mer specificitet. 1050 00:55:09,100 --> 00:55:12,730 Eftersom du söker efter mer än bara ett tecken. 1051 00:55:12,730 --> 00:55:16,310 Och användningen är exakt samma som den som vi just gjorde. 1052 00:55:16,310 --> 00:55:18,070 Alla OK med detta? 1053 00:55:18,070 --> 00:55:20,250 OK. 1054 00:55:20,250 --> 00:55:23,560 >> Förra vi ska gå över är strrchr, som inte är 1055 00:55:23,560 --> 00:55:26,320 förväxlas med strstr eller med strchr. 1056 00:55:26,320 --> 00:55:27,890 strrchr har en extra r där. 1057 00:55:27,890 --> 00:55:29,140 Var försiktig när du skriver. 1058 00:55:29,140 --> 00:55:33,851 Du kan hitta dig själv inklusive en extra r eller ej ett r, 1059 00:55:33,851 --> 00:55:35,850 och sedan din funktion är jag inte kommer att fungera. 1060 00:55:35,850 --> 00:55:37,183 Och du kommer att bli förvirrad. 1061 00:55:37,183 --> 00:55:40,150 Var försiktig så att du stava alla dessa funktioner till höger. 1062 00:55:40,150 --> 00:55:43,770 >> Så strrchr är den exakta Samma sak som strchr 1063 00:55:43,770 --> 00:55:47,480 förutom att det söker efter inte den första förekomsten av en specifik karaktär, 1064 00:55:47,480 --> 00:55:49,350 utan snarare den sista förekomsten. 1065 00:55:49,350 --> 00:55:52,800 Och så, i den meningen, Det är nästan exakt samma. 1066 00:55:52,800 --> 00:55:54,620 Men istället för att flytta framåt i en sträng, 1067 00:55:54,620 --> 00:55:57,230 du kommer att vara på väg bakåt i ett snöre. 1068 00:55:57,230 --> 00:56:00,510 Exakt samma sak, du är bara söka i en annan ordning. 1069 00:56:00,510 --> 00:56:04,690 >> Och så det kan vara super, super bra för din sökning 1070 00:56:04,690 --> 00:56:07,490 funktion, varvid den första funktionen på din pset. 1071 00:56:07,490 --> 00:56:12,710 Låt oss låtsas att vi behövde för att skriva en funktion av tomrums utsträckning i vilken vi 1072 00:56:12,710 --> 00:56:17,850 passera en konstant char * filnamn, bara en sträng, ett filnamn, 1073 00:56:17,850 --> 00:56:21,370 som tar i det namnet och skriver ut förlängningen av den filen. 1074 00:56:21,370 --> 00:56:26,520 Så till exempel, om jag skulle passera i rad pset7.zip, 1075 00:56:26,520 --> 00:56:30,004 det kommer att skriva ut bara förlängningen, vilket är Zip. 1076 00:56:30,004 --> 00:56:31,920 Och detta skulle fungera för någon form av förlängning, 1077 00:56:31,920 --> 00:56:38,290 .docx för Word eller .pdf för en PDF fil eller .html för en HTML-fil. 1078 00:56:38,290 --> 00:56:40,425 Ganska mycket, skriva ett funktion som kan göra det. 1079 00:56:40,425 --> 00:56:42,300 Jag faktiskt kommer att växla över till IDE. 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 Det är inte load-- där vi går. 1082 00:56:56,740 --> 00:57:00,990 >> Så allt jag har gjort här är skapade en char *, en första sträng, 1083 00:57:00,990 --> 00:57:01,930 kallas pset7.zip. 1084 00:57:01,930 --> 00:57:04,530 Jag kommer att zooma in. 1085 00:57:04,530 --> 00:57:08,520 Jag har skapat en andra strängen kallas finalpaper.docx. 1086 00:57:08,520 --> 00:57:12,649 Och skriva mig en funktion som när kallas kommer att bara skriva ut 1087 00:57:12,649 --> 00:57:13,690 filnamnstilläggen. 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 Kanske ta ett par minuter att tänka om hur du ska göra detta. 1090 00:57:19,660 --> 00:57:22,510 Något mer utmanande än den förra, 1091 00:57:22,510 --> 00:57:24,770 men användningen är nästan exakt samma. 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 Ja. 1094 00:57:30,170 --> 00:57:37,540 Så skriver en funktion som kallas förlängning att om jag ger dig namnet på en fil, 1095 00:57:37,540 --> 00:57:41,340 om jag skulle ge dig pset7.zip-- jag vill att du ska skriva ut bara .zip. 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 Om jag ger du finalpaper.docx, bara skriva ut .docx, 1098 00:57:49,890 --> 00:57:51,538 bara en förlängning av vad fil. 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> Detta egentligen bara tar två rader kod. 1101 00:59:07,790 --> 00:59:10,692 Så försök att se om du kan kanske göra det i det. 1102 00:59:10,692 --> 00:59:12,400 Faktiskt, det bara tar en kodrad. 1103 00:59:12,400 --> 00:59:14,074 Men två linjer är förmodligen mer standard. 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 Vilken funktion är vi förmodligen kommer att vilja ringa? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> PUBLIK: strrchr. 1108 00:59:26,260 --> 00:59:27,343 >> ANDI PENG: strrchr, höger. 1109 00:59:27,343 --> 00:59:29,570 Eftersom vi letar från höger till vänster. 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 Jag ville inte ge er ett exempel som detta, 1112 00:59:33,940 --> 00:59:38,870 men om jag gav er ett exempel som www.apple.com och jag ville bara 1113 00:59:38,870 --> 00:59:43,005 .com, skulle det vara en exempel där du vill ringa sista instans 1114 00:59:43,005 --> 00:59:44,630 av perioden och inte den första, eller hur? 1115 00:59:44,630 --> 00:59:47,470 Om du var samtals strchr, det skulle ha gett dig apple.com. 1116 00:59:47,470 --> 00:59:49,966 >> Om du ringde strrchr, det skulle ha gett dig .com. 1117 00:59:49,966 --> 00:59:53,062 Och så var försiktig på vilken ways-- i mitt exempel, 1118 00:59:53,062 --> 00:59:55,520 kan du förmodligen skulle ha just skrivit den med strchr, 1119 00:59:55,520 --> 00:59:57,130 eftersom det finns bara en prick. 1120 00:59:57,130 --> 00:59:59,790 Men i andra fall, som kanske inte är fallet. 1121 00:59:59,790 --> 01:00:04,960 Och så försöker alltid att utforma koden väl, så that-- ja? 1122 01:00:04,960 --> 01:00:07,365 >> PUBLIK: Så i exempel du sa, 1123 01:00:07,365 --> 01:00:11,760 när du strrchr det skulle ge dig .com eller bara komma? 1124 01:00:11,760 --> 01:00:13,960 >> ANDI PENG: Det skulle ge dig .com. 1125 01:00:13,960 --> 01:00:14,794 >> PUBLIK: OK. 1126 01:00:14,794 --> 01:00:15,460 ANDI PENG: Ja. 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 Det pekar på där den fann den. 1129 01:00:19,744 --> 01:00:20,244 Ja. 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30 sekunder kanske? 1132 01:00:25,188 --> 01:00:25,688 Ja. 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 Alla bra eller kanske lite mer tid? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 Handuppräckning? 1137 01:01:01,640 --> 01:01:02,320 Visa huvuden? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 Häftigt. 1140 01:01:05,300 --> 01:01:07,924 Någon som vill ge mig den första kodrad för det här programmet? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 PUBLIK: [OHÖRBAR]. 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> ANDI Peng: Så först av allt, låt oss kanske bryta ner det. 1145 01:01:20,160 --> 01:01:24,370 Så vad är avkastningen typ av strrchr? 1146 01:01:24,370 --> 01:01:26,150 Låt oss gå tillbaka. 1147 01:01:26,150 --> 01:01:29,015 strrchr, vad är returtypen? 1148 01:01:29,015 --> 01:01:29,640 PUBLIK: Char * 1149 01:01:29,640 --> 01:01:31,270 ANDI PENG: Det är en char *, eller hur? 1150 01:01:31,270 --> 01:01:35,760 Vilket betyder att du antagligen kommer att vilja skapa en annan char * att typ 1151 01:01:35,760 --> 01:01:40,400 av butik närhelst det är återvända till, eller hur? 1152 01:01:40,400 --> 01:01:43,200 För om du ringer funktionen strrchr, 1153 01:01:43,200 --> 01:01:47,030 det kommer att ge dig en pekare till varhelst det sig att sista perioden, 1154 01:01:47,030 --> 01:01:47,580 höger? 1155 01:01:47,580 --> 01:01:49,913 >> Men du kommer att vilja lagra den någonstans, eller hur? 1156 01:01:49,913 --> 01:01:52,612 Och så hur vi koda detta i vårt program? 1157 01:01:52,612 --> 01:01:54,320 PUBLIK: Du gör char * [OHÖRBAR]. 1158 01:01:54,320 --> 01:01:55,240 ANDI PENG: Japp. 1159 01:01:55,240 --> 01:01:57,120 PUBLIK: [OHÖRBAR]. 1160 01:01:57,120 --> 01:01:58,000 ANDI Peng: strrchr. 1161 01:01:58,000 --> 01:01:58,390 Ja. 1162 01:01:58,390 --> 01:01:59,306 Åh, missade ett r där. 1163 01:01:59,306 --> 01:02:02,877 PUBLIK: Filnamn [OHÖRBAR]. 1164 01:02:02,877 --> 01:02:03,376 Vad är det? 1165 01:02:03,376 --> 01:02:04,420 Åh, det är bara är. 1166 01:02:04,420 --> 01:02:04,940 >> ANDI PENG: Åh, det är bara är. 1167 01:02:04,940 --> 01:02:05,610 Japp, sorry. 1168 01:02:05,610 --> 01:02:06,330 Mitt fel. 1169 01:02:06,330 --> 01:02:08,370 Exempel matchade inte. 1170 01:02:08,370 --> 01:02:12,130 >> PUBLIK: Och sedan dot. 1171 01:02:12,130 --> 01:02:13,970 >> ANDI PENG: Japp. 1172 01:02:13,970 --> 01:02:16,570 Var försiktig när ni är-- här, låt mig zooma in. 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 Det går vi. 1175 01:02:24,400 --> 01:02:26,770 Var försiktig när ni skriver, särskilt när 1176 01:02:26,770 --> 01:02:27,920 du gör bara en röding. 1177 01:02:27,920 --> 01:02:32,480 Det är verkligen lätt att av misstag bara gör dubbla citattecken i stället för singel. 1178 01:02:32,480 --> 01:02:35,212 >> Det kommer inte att fungera. 1179 01:02:35,212 --> 01:02:36,670 Din kompilator kommer att klaga. 1180 01:02:36,670 --> 01:02:38,790 Och din funktion är bara inte kommer att köra. 1181 01:02:38,790 --> 01:02:40,540 Och så var försiktig när du gör saker 1182 01:02:40,540 --> 01:02:42,622 med tecken att det är enkla citattecken. 1183 01:02:42,622 --> 01:02:44,830 Och det gör den här raden av kod vettigt för alla? 1184 01:02:44,830 --> 01:02:46,810 Vi skapar en char * pekare. 1185 01:02:46,810 --> 01:02:50,310 Eftersom strrchr återgår något av typen pekare. 1186 01:02:50,310 --> 01:02:53,440 >> Och så vi kommer att kalla strchr på s, som är strängen filen 1187 01:02:53,440 --> 01:02:55,140 namn, som vi passerar. 1188 01:02:55,140 --> 01:02:59,750 Och vi letar efter den sista instans av en period, som är 1189 01:02:59,750 --> 01:03:02,200 bara enstaka citat dot enda anbud. 1190 01:03:02,200 --> 01:03:02,700 Ja. 1191 01:03:02,700 --> 01:03:05,180 >> PUBLIK: När vi använder dubbla citat och när vi använder apostrof? 1192 01:03:05,180 --> 01:03:05,320 >> ANDI PENG: Ja. 1193 01:03:05,320 --> 01:03:07,180 Så citationstecken är alltid används när du 1194 01:03:07,180 --> 01:03:10,120 har en rad mer än bara en. 1195 01:03:10,120 --> 01:03:13,070 Så om du gör strstr, vilket är det som du 1196 01:03:13,070 --> 01:03:16,320 söka efter en sträng för sträng, du skulle låta det gå i dubbla citattecken. 1197 01:03:16,320 --> 01:03:18,070 Men helst är det bara ett enda tecken, 1198 01:03:18,070 --> 01:03:19,870 du vill göra enkla citattecken. 1199 01:03:19,870 --> 01:03:22,880 >> Det är en bra sak att ha i åtanke. 1200 01:03:22,880 --> 01:03:25,864 Så nu när vi har vår pekare, vad gör vi med det? 1201 01:03:25,864 --> 01:03:27,780 Jag ber er att skriva ut det, eller hur? 1202 01:03:27,780 --> 01:03:30,940 Så [OHÖRBAR], du vill ge mig kodraden? 1203 01:03:30,940 --> 01:03:31,780 >> PUBLIK: printf-- 1204 01:03:31,780 --> 01:03:32,446 >> ANDI PENG: Ja. 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 PUBLIK: --you behöver en platshållare. 1207 01:03:36,843 --> 01:03:37,340 ANDI PENG: Japp. 1208 01:03:37,340 --> 01:03:38,334 PUBLIK: Skriv ut platshållare. 1209 01:03:38,334 --> 01:03:40,322 Jag vet inte vad platsen innehavaren men pekar på den. 1210 01:03:40,322 --> 01:03:40,819 >> OK. 1211 01:03:40,819 --> 01:03:42,027 Låt oss hoppa över den nu då. 1212 01:03:42,027 --> 01:03:44,556 PUBLIK: Och sedan comma-- 1213 01:03:44,556 --> 01:03:45,720 >> ANDI PENG: Pointer, eller hur? 1214 01:03:45,720 --> 01:03:47,970 >> Målgrupp: Pointer, Japp. 1215 01:03:47,970 --> 01:03:51,140 >> ANDI PENG: Så typ av en kuggfråga, har att göra med pekare och strängar 1216 01:03:51,140 --> 01:03:53,130 att vi har sådan talat om redan. 1217 01:03:53,130 --> 01:03:57,766 Vilken typ av platshållare gör vi behov av en pekare för en char *? 1218 01:03:57,766 --> 01:03:59,574 >> PUBLIK: [OHÖRBAR]. 1219 01:03:59,574 --> 01:04:00,240 ANDI PENG: Ja. 1220 01:04:00,240 --> 01:04:02,522 Det är enklare än ni tror. 1221 01:04:02,522 --> 01:04:03,230 PUBLIK: String? 1222 01:04:03,230 --> 01:04:04,730 ANDI PENG: Det är bara en sträng, exakt. 1223 01:04:04,730 --> 01:04:06,595 Eftersom ihåg strängar inte verkligen existerar. 1224 01:04:06,595 --> 01:04:09,430 En char * är den exakta samma sak som en sträng. 1225 01:04:09,430 --> 01:04:14,461 Och så egentligen detta är är vad borde ha använts hela tiden. 1226 01:04:14,461 --> 01:04:14,960 OK. 1227 01:04:14,960 --> 01:04:17,810 >> Låt oss se om vi kan försöka köra detta. 1228 01:04:17,810 --> 01:04:19,450 Låt oss göra en make förlängning. 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 Häftigt. 1231 01:04:23,396 --> 01:04:28,830 Ni ser hur jag passerade i psset7.zip och finalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 och det bara skrivs ut .zip och .docx? 1233 01:04:32,500 --> 01:04:34,150 Vettigt? 1234 01:04:34,150 --> 01:04:36,660 >> OK, så jag tror på ditt utseende upp funktion i din pset du är 1235 01:04:36,660 --> 01:04:41,050 kommer att bli tillfrågad om sträng har en viss slut, 1236 01:04:41,050 --> 01:04:42,800 du måste ge en viss felkod. 1237 01:04:42,800 --> 01:04:44,820 Och så det blir ganska hemskt. 1238 01:04:44,820 --> 01:04:47,350 För om du kan räkna reda på vad förlängningen är, 1239 01:04:47,350 --> 01:04:49,810 Du kan sedan jämföra det förlängning för att se om det matchar upp 1240 01:04:49,810 --> 01:04:51,251 med en viss utsträckning. 1241 01:04:51,251 --> 01:04:53,250 Och då kan du återvända ett felmeddelande, eller hur? 1242 01:04:53,250 --> 01:04:53,860 Ja. 1243 01:04:53,860 --> 01:04:55,370 >> PUBLIK: Så vi inte måste lägga 1 eller något? 1244 01:04:55,370 --> 01:04:56,530 Pekaren kommer att gå till the-- 1245 01:04:56,530 --> 01:04:56,660 >> ANDI PENG: Nope. 1246 01:04:56,660 --> 01:04:57,530 >> Publik: --point efter den. 1247 01:04:57,530 --> 01:04:58,196 >> ANDI PENG: Ja. 1248 01:04:58,196 --> 01:05:00,650 Det pekar exakt där händelsen var. 1249 01:05:00,650 --> 01:05:04,010 Så till exempel här, vi är söka efter perioden. 1250 01:05:04,010 --> 01:05:06,597 Så det kommer att återvända en pekare till perioden. 1251 01:05:06,597 --> 01:05:08,930 Och då det kommer att skriva ut ut med början på perioden. 1252 01:05:08,930 --> 01:05:10,260 >> Så du inte behöver lägga till en. 1253 01:05:10,260 --> 01:05:15,000 Även det är helt bra att, om du någonsin osäker, bara slag 1254 01:05:15,000 --> 01:05:16,070 av testa det själv. 1255 01:05:16,070 --> 01:05:17,590 Bygg ett provprogram. 1256 01:05:17,590 --> 01:05:20,240 Testa det själv och se där det är utskrift. 1257 01:05:20,240 --> 01:05:23,380 Det är inte heller ett dåligt sätt att göra det. 1258 01:05:23,380 --> 01:05:26,040 >> Häftigt. 1259 01:05:26,040 --> 01:05:28,880 Och det är ganska mycket alla Jag hade för er i dag. 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 Vi gjorde en hel del pset saker idag. 1262 01:05:33,300 --> 01:05:35,720 Så när du är osäker, liksom Jag sa, alltid leta upp 1263 01:05:35,720 --> 01:05:37,620 den string.h bibliotek för denna pset. 1264 01:05:37,620 --> 01:05:40,370 Det kommer att bli en hel del funktion i det som kan vara användbar. 1265 01:05:40,370 --> 01:05:41,300 Vissa kanske inte är användbar. 1266 01:05:41,300 --> 01:05:42,133 Jag vet inte riktigt. 1267 01:05:42,133 --> 01:05:44,370 Vada igenom det, det finns en hel massa av dem. 1268 01:05:44,370 --> 01:05:49,100 strstr, strchr, strrchr finns super, super bra, liksom 1269 01:05:49,100 --> 01:05:52,080 de strcpys och strcasecmps att vi redan har använt. 1270 01:05:52,080 --> 01:05:56,510 >> Det är bara mycket messing med strängar, bestämma om de är lika, 1271 01:05:56,510 --> 01:05:59,960 få saker ur strängar, och att kunna öppna filer på rätt sätt. 1272 01:05:59,960 --> 01:06:02,252 Det är en hel del av fil I / O. pset är verkligen inte så illa. 1273 01:06:02,252 --> 01:06:04,210 Du kommer att ta en titta på det, ladda ner den, 1274 01:06:04,210 --> 01:06:05,590 och se en hel del kod. 1275 01:06:05,590 --> 01:06:09,220 Inga bekymmer, koden du faktiskt skriver är inte dåligt alls. 1276 01:06:09,220 --> 01:06:12,870 Om någon har problem med sina server, kom se mig efter avsnitt. 1277 01:06:12,870 --> 01:06:16,040 >> Apologize återigen för att inte vilket godis till Halloween. 1278 01:06:16,040 --> 01:06:18,790 Jag vet inte vad som var fel med mig. 1279 01:06:18,790 --> 01:06:20,800 Men vi kommer att ha dubbel godis nästa gång. 1280 01:06:20,800 --> 01:06:25,620 Och lycka till i din pset denna vecka. 1281 01:06:25,620 --> 01:06:27,170 Japp. 1282 01:06:27,170 --> 01:06:28,722