DAVID Malan: zote haki, sisi ni nyuma. Hivyo kwa kusisimua kumalizia, sehemu yetu ya mwisho juu ya programu ya mtandao, ambayo mimi walidhani tunatarajia kutumia kama neno la jumla kukamata wachache mada iliyobaki. Hivyo mwisho wa siku, tutaweza kweli kufanya kidogo ya mikono juu ya programu ya mtandao na lugha inayoitwa JavaScript. Na nadhani tutaweza kuangalia katika kitu kuhusiana na picha na kugundua kitu siri siri katika picha, na pia tuangalie Google Maps API, programu ya maombi interface, kama kitu mwakilishi wa aina ya programu hiyo ni inazidi na uhuru inapatikana leo. Lakini kwa nini sio sisi kuchukua kuangalia katika kingo ya dunia hii kwamba tumekuwa aina ya imekuwa kuchukua kwa nafasi ipo kwa muda fulani, database. Kwa kipindi cha siku na nusu tumekuwa kudhani kwamba tuna upatikanaji wa database, lakini nini tatizo gani database kutatua? Je, ni nini kwa ajili yetu? Ni nini? Watazamaji: [inaudible] DAVID Malan: Ana taarifa zote, OK, na ni aina gani ya habari inaweza kuweka ndani yake? Watazamaji: [inaudible] DAVID Malan: Taarifa yoyote wewe kuweka ndani yake, itabidi kupata nyuma. Hiyo ni kweli. Na juu ya kawaida tovuti ya mtandao msingi au mtandao maombi, ni aina gani ya habari, hasa, inaweza kuweka katika? Watazamaji: [inaudible] DAVID Malan: Watumiaji. Basi nini user? Watazamaji: [inaudible] DAVID Malan: OK, kusajiliwa mtumiaji wa tovuti. Na nini maana ya kuhifadhi watumiaji 'habari? Nini composes user? user ana nini? Watazamaji: [inaudible] DAVID Malan: Yeah, binafsi data, na mimi kama hiyo. Hebu kuwa sahihi zaidi. Hivyo user kawaida ina jina, kile kingine inaweza mtumiaji kuwa? Watazamaji: [inaudible] DAVID Malan: addr-- OK, jina hivyo kwanza, jina la mwisho. Hiyo ni nzuri. Kwa kweli, hebu kurekebisha kwamba, kwa sababu itakuja kufungua fursa kwa majadiliano, bado, zaidi. Jina la kwanza, jina la mwisho, ya kijinsia. ID ya aina fulani. Kipi kingine? Nilisikia kitu kingine kabla, pia. email, anwani ya posta. Basi hebu pause huko na sasa kufikiria si kile sisi ni hifadhi katika database, but-- na si kwa nini, tangu ni labda dhahiri kwamba mara moja kujiandikisha user, unataka kukumbuka kwao kwa muda fulani. Hutaki kwa tu kuhifadhiwa katika RAM na kuwa forgotten-- hivyo hebu kuzingatia namna gani. Ni zinageuka kuwa katika ulimwengu wa database, kuna angalau aina mbili siku hizi. Kitu kinachoitwa SQL database, Uliza muundo lugha, au, cutely jina lake, NoSQL, ambayo si SQL. Na mwisho ni mfano wa nini kinaweza kuitwa kitu-oriented, au kitu kuhifadhi, database kwamba maduka vitu, na si, kisingizio Kwangu mimi, kama hivi karibuni tutaona, safu. Hivyo tutaweza kuzingatia kwa muda tu juu ya ya kwanza ya haya, yaani, SQL Mbegu, kama tu kwa sababu ni hivyo ukoo tayari, kwa mtu yeyote ambaye ametumia Excel au Karatasi Google au Apple Hesabu au kiwango chochote spreadsheet mpango, au, equivalently, au zaidi sophisticatedly, kitu kama Microsoft Upatikanaji au Oracle au MySQL au PostgreSQL, ambayo yote ni majina ya bidhaa kwa ajili ya utekelezaji wazo zifuatazo. database kimahusiano ni tu kitu ambayo ina safu na nguzo. Na kwa safu na nguzo, I literally maana kitu kama hii, hivyo ambapo tupate kuwa jina la uwanja na aina yake hapa. Na kweli, basi mimi sasa kuanza kwa ramani hizo. Hivyo kweli, sijui kwa nini nilitoa chati tofauti. Hebu kuweka rahisi hii. Tuna haki hapa mwanzo wa meza yetu, ambapo hii ni jina la uwanja na hii ni aina data, na kwa aina I mean zifuatazo. Je, ni idadi, je, ni kamba, short kamba kama neno, Ni aya, je, ni data binary, kama picha? Na hebu tu tease hii mbali kwa muda tu. Hivyo jina la kwanza, idadi, kamba, kubwa chunk ya text-- Watazamaji: [inaudible] DAVID Malan: Ndiyo, hivyo kamba. Na katika mazingira ya database, tutaweza kawaida kuwaita uwanja huu char. Mimi itabidi kusema char kwa sasa lakini tuko kwenda kuburudisha hii katika wakati huu. Tabia uwanja. jina la mwisho pengine ni sawa. Kijinsia? Mwanamume au mwanamke, hivyo ni inaweza kuwa char shamba. Ni inaweza kuwa ama quote, unquote "Kiume" au quote, unquote "kike" au inaweza kuwa m au f. Kama unataka kuwa zaidi ya umoja, unaweza haja thamani ya tatu au aina fulani ya uwanja mwingine kabisa. Na hivyo unaweza kutumia uongo kweli. uwanja inaweza kuitwa kiume, na basi unaweza kusema kweli au uongo. Lakini hiyo haina lazima kukamata wote wa habari unaweza kutaka. Hivyo ni zamu huko nje ni aina nyingine ya shamba ambayo inaweza kuwa na manufaa hapa katika database ya kawaida, iitwayo enum, ambapo ni uwanja tabia, lakini wewe, designer, kupata enumerate maadili inawezekana, kama quote, unquote "kiume", kunukuu, unquote "kike" na kadhalika. Ili lo lote thamani ni katika orodha yako, ni kweli tabia-msingi, lakini ina kuwa moja ya maadili hayo. Sisi pengine bila wanataka enum kwa jina la kwanza au jina la mwisho. Vinginevyo tungekuwa na enumerate, kama jina hupata kutoka, literally kila Inawezekana jina la kwanza na jina la mwisho. OK, hivyo ID kile lazima ID kuwa? Ndiyo, hivyo labda idadi. Basi hebu fimbo na kwamba kwa sasa, idadi. Na kwa idadi, idadi ni kidogo pana sana sasa. Kwa maana mwisho wa pili siku, Najisikia kama sisi lazima kidogo sahihi zaidi. Idadi inaweza kuwa na maana kama, inaweza kuwa kitu kama 1.236. Na kwamba pengine si nini maana sisi na ID. Tufanye nini pengine maana na ID? Watazamaji: [inaudible] DAVID Malan: Oh, OK, hivyo labda ni hata idadi. Labda ni kweli kitambulisho kipekee hiyo ni kamba, kama jina la mtumiaji. Hivyo kabisa, inaweza kuwa. Nadhani mtu pengine maana numeric, ingawa. Basi hebu kukaa na kwamba. Ni aina gani ya namba? Nini zaidi precise-- integer. Hivyo idadi kama 0, 1, 2, 3, hivyo tutaweza wito huu integer. Na hata basi, mimi naweza kuwa nitpicking, ni si kweli tu ujumla integer unataka. Pengine hawataki maadili hasi, kwa sababu tu, tu anahisi weird. Pengine wanataka integers chanya. Hivyo unaweza pia kueleza kwamba katika database, lakini kwa sasa, tutaweza kusema integer. Barua pepe? Hii pengine ni just-- nini? Watazamaji: [inaudible] DAVID Malan: Ni email, lakini hiyo ni wahusika, haki? Ni tu ina tabia funky kama "Katika" ishara au kitu kingine, lakini bado ni shamba tabia. Na anwani ya posta? Tabia uwanja. Hivyo hiyo ni mwanzo mzuri, lakini hebu kuwa kidogo zaidi sahihi sasa. Hivyo zinageuka kuwa katika Mbegu, wewe mara nyingi kuwa na uchaguzi juu ya kuandaliwa zaidi matoleo ya mambo haya. Kwa kweli, katika kawaida SQL database, SQL, au zaidi kwa ujumla, kimahusiano database, databaser na safu na nguzo, wewe mara nyingi kupata kutaja si tu ya aina ya shamba lake; basi mimi kufanya baadhi here-- chumba lakini pia urefu. Hivyo kwa muda gani ni jina la kwanza? Nadhani, D-A-V-I-D. Sawa, nimeipata mimi pengine tu mashaka kama nusu ya watu katika chumba, kulia, tangu majina yako ni marefu kuliko tano barua, hivyo tano inaonekana ubinafsi kidogo na wasiojua, hivyo nini thamani bora? 10, sawa, na nadhani tuko OK katika chumba hicho. 13? 30? Kwa nini si mimi kuchukua mbinu ya awali wakati sisi walikuwa wanazungumza juu ya arrays na kumbukumbu? Kwa nini si mimi tu kusema kama 1,000? jina la mtu yeyote ni kwenda kwa kuwa mrefu zaidi ya 1,000. Sukuma nyuma. Watazamaji: [inaudible] DAVID Malan: Yeah, ni fujo, haki, hasa kama majina ya watu watano tu au 10 au wahusika 15, hiyo ni fujo sana. Hivyo unajua nini? Hii ni aina ya swali ngumu. Sasa, tunaweza hakika kuchambua English na majina lugha nyingine yoyote ya na kufikiri, vizuri, ni nini wastani average-- haina kweli kusaidia us-- nini max ni pengine ni nini sisi kweli unataka. Lakini zinageuka sisi hata baadhi uchaguzi juu ya aina hapa. Katika mfano SQL database, wewe kuwa kitu kinachoitwa shamba char na pia varchar, V-A-R, kwa shamba kutofautiana char. Na tofauti ni hii. uwanja char, wewe designer, kuwa na bayana mapema halisi urefu wa shamba. Hivyo labda jina la kwanza kama 20 anahisi aina ya salama. Inaweza kuwa kwa kufanya baadhi googling kwa kuona kama hiyo ni kweli usalama wa kutosha. Kuna pengine jina na 21 wahusika, lakini kwa sasa, tuseme 20 ni salama. uwanja char ingekuwa kuashiria katika database kwamba ni kwa kutumia 20 na siku zote 20 wahusika. Sasa kama ni tu D-A-V-I-D, 15 za wale ni kwenda tu kuwa wahusika tupu, lakini bado uko kutumia ka zote 20. uwanja varchar, kwa kulinganisha, ina maana kamba lazima wahusika hadi 20 lakini kama ni tano tu, wewe tu kwenda kutumia tano, au labda sita kwa ajili ya thamani maalum mwishoni, kama kwamba 0 tulijadili kwamba kunaashiria mwisho wa tabia mlolongo katika kumbukumbu. Hivyo wakati unafikiri unaweza kuchagua char dhidi ya varchar, kutokana na kwamba biashara-off? Char anatumia kwamba wahusika wengi, varchar anatumia hakuna zaidi ya kwamba wahusika wengi. Watazamaji: [inaudible] DAVID Malan: Sawa, wakati unajua urefu wa kamba pretty kulazimisha kutumia tu char, 'kusababisha kama unajua hilo, tu kuiweka chini. Na labda hiyo ni kweli kwa zip kanuni, katika Marekani, angalau, 02138, ni daima kwenda kuwa tano wahusika mpaka kuongeza dash nne. Lakini unaweza kuwa na baadhi maadili kwa ambayo daima kujua urefu. Au labda alama hali, kama NY kwa New York, na MA kwa Massachusetts katika Marekani. Labda huna kuwa na baadhi ya hali ambapo hiyo ni kabisa kuridhisha, lakini kwa mantiki hiyo, kwa nini sisi hata overthinking hili? Mbona sisi tu kutumia varchar na kisha tutaweza tu daima kutumia wahusika wawili anyway, au daima kutumia wahusika tano anyway? Mbona si tu kuokoa varchar kwa kila kitu, kwa mantiki hiyo? Lazima kuna samaki. Watazamaji: [inaudible] DAVID Malan: Je kuandika kitu kibaya. Hivyo kwamba ni kweli. Lakini hata hivyo, hawawezi kutumia zaidi ya kumbukumbu kuliko mimi kutenga. Mimi bado wana fainali kusema juu ya urefu, hivyo hawawezi ajali kufanya kwamba kosa, lakini mawazo mazuri. Ni mwerevu, lakini ni kuhusiana na sana kwa mjadala wetu, kwa kweli, ya arrays na wanaohusishwa orodha mapema. Ni zinageuka kuwa database, ikiwa anajua kwamba wote wa maadili ni ya urefu fasta, hata kama baadhi ya maadili hayo ni tupu, aina ya aesthetically tupu, D-A-V-I-D na kisha 15 blanks, zinageuka kuwa kama kila uwanja ni urefu sawa, kiasi kama safu alikuwa wote wa mambo yake nyuma kwa nyuma kwa nyuma kwa nyuma ili unaweza tu plus 1 kwa kupata ijayo thamani, wazo moja katika meza database. Kama wote wa tabia yako masharti ni urefu sawa, una kile kinachoitwa upatikanaji random. Kama masharti yote ni ya urefu 20, huna tu kufanya plus 1 wewe tu kufanya plus 20, plus 20, plus 20, plus 20, na unaweza kwa haraka sana kitabu kupitia au kutafuta njia yote ya takwimu yako. kutofautiana char shamba, kwa kulinganisha, haina daima kuwa wahusika 20. Ni inaweza kuwa 20 na kisha 15 na kisha 19 na kisha 10, na hivyo kama unataka kutafuta kwa njia hiyo, huwezi tu upofu kuongeza 20 ka kwa kupata moja ijayo. You literally kutafuta njia kwa sababu makali ya muundo data, kama wewe, ni chakavu. Ni aina ya unaendelea ndani na nje msingi juu ya urefu halisi ya kamba. Hivyo wakati wewe kujua urefu, kama Kareem anasema, kutumia uwanja char, kwa sababu unaweza kupata kwamba ufanisi wa kuwa uwezo wa kutafuta njia hiyo kwa kasi wakati wewe ni kuangalia kwa data, vinginevyo kutumia kutofautiana. Kwa bahati mbaya, mimi sina jibu nzuri kwa muda gani jina lazima, lakini kwa kitu kama jina, napenda kusema varchar ni jambo la kawaida kwa sababu si kwenda kuwa urefu fasta kwa kila mtu. 20, sijui, 20 anahisi tight kidogo. Hebu sema tu 50, 50. Ni kweli haina gharama wewe kwamba mengi zaidi ya kusema 50 badala ya 40, lakini wakati fulani, unahitaji kupiga simu hukumu. kawaida sana, kusema ukweli, kwa [? kihistoria?] sababu, ingawa ni nyingi, ni kusema 255, kwa sababu baadhi ya wakati uliopita, katika mifumo maarufu database, kama MySQL, bure wazi chanzo chombo kwamba mengi ya makampuni kama hata Facebook kutumika, hii ilikuwa chaguo-msingi upeo hivyo watu tu akaenda nayo. Hivyo si haina maana, lakini tutaweza kutumia Intuition zaidi kidogo na kusema, hakika 50, hiyo ni pengine kidogo kupita kiasi. Jinsia, sijui kama enum, na hivyo tunaweza hiyo enumerate mwanamume au mwanamke, au labda kwa ufanisi zaidi, m au f au baadhi ya symbology nyingine, lakini enum anahisi kama uchaguzi mzuri huko. Kuwa wazi, jinsia inaweza tu kuwa varchar, na tunaweza tu wote kukubaliana watu kama nzuri, daima kuweka maadili sawa huko. Mwanamume au mwanamke au whatnot. Lakini tatizo basi, ni kwamba tunaweza kufanya makosa, kama [inaudible] mapendekezo mapema katika mazingira tofauti. Kama sisi kufanya makosa, tunaweza kupata maadili sahihi katika database yetu. Hivyo nini ni nzuri kuhusu database kama Oracle na MySQL na wengine, ni kwamba una hii ya mwisho safu ya ulinzi ambapo DBA, Mbegu yako msimamizi, yeyote ni kubuni meza hii kama sisi ni maneno, inaweza kuweka katika nafasi enum kwamba kulinda dhidi ya kwamba na kubainisha wanaume, wanawake, na hivyo hakuna mtu mwingine hakuna programu Unaweza ajali kuingiza thamani yoyote. Hivyo hii itakuwa ni jambo jema. Hii ni hulka. Hivyo ID, kuchukua ID numeric, ni pengine lazima sifuri. Na sisi wakati mwingine kufanya kuwa fursa ya kujadili urefu. Wewe ungekuwa si kawaida kutaja idadi hapa, ungependa badala kutaja hii ni int, au int kubwa, kama wao uko kawaida kuitwa. Lakini kwa kawaida, integer itakuwa, hebu sema, 4 ka. Na kama ni 4 ka, hiyo ni bits ngapi? Watazamaji: [inaudible] DAVID Malan: 32 bits. Hivyo ni jinsi watumiaji wengi tunaweza kuwa katika database yetu kama wote wana ID na ID hii ina kuwa ya kipekee? 32 bits maana tuna chati ya moja, mbili, tatu, nne, five-- chati hivyo ngapi tofauti ya zeros na ndio unaweza kuwa kama kuna 32? Hiyo ni kitu kimoja kama kuuliza nini miwili na 32? Ni idadi kubwa kwamba Siwezi kabisa kupata haki, lakini Mimi najua ni takribani bilioni 4. Hivyo hii ina maana Mbegu yako meza inaweza kuwa na watumiaji bilioni nne na hiyo ni yake. Hivyo hii ni ya kuvutia kubuni maana. idadi ya heshima ya makampuni wameamua, labda si sana kwa watumiaji yao mezani, kwa sababu kuwa na bilioni 4 watumiaji ni tatizo nadra. Hii ni aina ya Facebook-style tatizo, si ya kawaida kampuni tatizo. Lakini labda kama una shughuli magogo au aina fulani ya data kwamba daima anapata kuandikwa katika orodha yako kwamba kabisa inaweza kuwa na mabilioni na mabilioni ya safu, na matumizi integer kwa ajili yake, nini kitatokea kwa haraka kama kupata mstari idadi bilioni 4 na kisha kujaribu kuingiza 4000000000 na 1, hivyo kusema? Mimi nina kurahisisha idadi bit. Unaweza kukata nyuma, I mean wewe na kushughulikia hilo kwa namna fulani. Na nini kompyuta ingekuwa kawaida kufanya, kufikiri juu yake tangu asubuhi hii, kama una thamani 4-bit kama 1, 1, 1, 1, ambayo, tu kufunga asubuhi pamoja ili alasiri, nini haina idadi hii kuwakilisha katika binary? OK, tutaweza kufanya hivyo ni rahisi. Je idadi hii kuwakilisha katika binary? OK, tutaweza kufanya hivyo ni rahisi, nini gani hii kuwakilisha katika binary? Watazamaji: Tatu. DAVID Malan: Tatu, kwa sababu tuna ndio column-- [Kicheko] Whew! Tulikuwa na ndio safu na wawili-wawili safu. Hivyo kudhani kuwa, kwa kweli, yetu [? infield?] hawakuwa 32 bits, lakini walikuwa bits mbili, tunaweza kuhesabu kutoka kwa mtumiaji idadi 0, 1, 2, 3, na kisha sisi ni aina ya nyuma kwa mtumiaji 00 tena. Hivyo hii ni nini kawaida hutokea. Kama wameweza milele kusikia kujieleza pengine sina, lakini kama wewe have-- integer kufurika, ambapo kuweka flipping wote wa bits yako kuwa na maadili kubwa iwezekanavyo, na kisha uko nje ya bits, nini ingekuwa kawaida kutokea? Kwa nini nasema 00? Naam, hii ni tatu. Je, mimi kuwakilisha 4? Je, mimi kuwakilisha kwa namba 4 katika binary? Watazamaji: [inaudible] DAVID Malan: One-- yeah, usiseme 100 per se, kwa sababu ina makosa connotation, lakini 1-0-0. Hivyo idadi hiyo 1-0-0 ni kweli sahihi, lakini kama wewe tu na sarafu mbili, una nini kweli kosa gani? Umefanya akavingirisha juu ya 00. Na hakika, kwamba ni nini kitatokea. Kwa kweli, unaweza kufikiria kuhusu hili familiarly zaidi. Kama unakumbuka, nini, miaka 16 iliyopita, dunia ilitakiwa mwisho wakati tatizo Y2K kilichotokea. Kwa nini? Vizuri zaidi kompyuta, kwa maamuzi ya busara, walikuwa kuhifadhi idadi kama mwaka wa 1975 au mwaka 1999 kwa kutumia tu tarakimu mbili katika kumbukumbu ya kompyuta. Hivyo bila shaka, kile kinachotokea wakati kupata mwaka 2000, wewe kwenda hii, au tuseme, yeah. Hivyo wewe kwenda mwaka 2000, lakini kama wewe ni tu kwa kutumia tarakimu mbili inaonekana kama mwaka 00 na hivyo umefanya akavingirisha juu. Na hii ni kwa nini mengi ya mifumo ya zinahitajika kuwa updated wakati huo. Hivyo kwa kuwa alisema, makampuni kama Picha kukimbia juu ya hili. Hivyo njia pekee ya kushughulikia hali hiyo, kusema ukweli, ni wanatarajia yake. Au njia safi kwa kushughulikia hali hii ni wanatarajia hivyo huna na kufanya mabadiliko baadaye. Hivyo badala ya 8 ka, unajua nini? Mimi nina kwenda kuwa mbele-kufikiri hapa, hata kama ni kidogo matumaini kuwa tunakwenda kuwa na bilioni 4 na 1 watumiaji kwenye tovuti yetu. Lakini hebu tu kutumia 8 ka, au 64 bits, ambayo itakuwa kwa ujumla kuwa aitwaye integer kubwa, kiufundi sana. Na hiyo ina maana tu unaweza kuwa na tarakimu hata zaidi katika idadi yako. Lakini hii ni muhimu uamuzi wa kubuni, kwa sababu kama wewe kuchagua idadi hiyo ina bits wachache mno wa expressiveness unaweza kweli kujenga mdudu katika programu yako. Haki ya wote, hivyo hebu gubika kwa barua pepe na anwani ya posta. Hivyo email, kwa muda gani lazima anwani ya barua pepe kuwa? 50. Mimi kwa kweli sielewi, lakini ni pengine kitu kama hicho, kwa sababu vinginevyo hakuna mtu kwenda kuandika wewe kama anapata muda mrefu sana, hivyo 50, hebu kwenda nayo kwa sasa. Postal mitaani, muda gani lazima kuwa ni nani? Watazamaji: [inaudible] DAVID Malan: Siyo tu zip code, ingawa. Postal mitaani, nikasikia. Hivyo hii ni kama 1 Brattle Square, comma, Cambridge Misa., comma, 02138. Na kwa kweli, napenda tu kuvuta up karatasi kidogo hapa. Hii anahisi kama ni amekosa nafasi. Kama tuna 1 Brattle Square, comma, Cambridge MA 02138, Najisikia kama tunaweza kufanya vizuri kuliko tu anwani ya posta. Mbona sisi kulipuka hii kidogo? Hivi mimi kupata saa? Tufanye badala yake kuwa kwa safu yetu hapa, labda? Watazamaji: [inaudible] DAVID Malan: Yeah, hivyo hebu kuiita street_number, na kusisitiza ni ya kawaida tu njia ya kuwa na kile kinachoonekana kama nafasi, lakini siyo, kwa kweli. Mitaani, na kisha city-- pole? Watazamaji: [inaudible] DAVID Malan: Tunaweza kufanya hivyo. Mstari mmoja, line mbili. Mbona sisi kushika ni rahisi kwa sasa, lakini hiyo ni kabisa uamuzi kukubalika. Na kisha serikali, na kisha hebu kuwa ni kidogo US-centric kwa sasa na tu kufanya zip code, kwa sababu tu kutakuwa na kusababisha makosa ya kuvutia au tatizo hapa. Hivyo kudhani kuwa sasa anwani yetu. Ni kidogo annoying zaidi kwamba tuna mashamba hayo yote zaidi, lakini sasa tunaweza kumtambulisha mambo kidogo bora. idadi Hivyo sasa mitaani pengine haipaswi kuwa char, lazima hilo? Ni lazima kuwa kitu gani? Watazamaji: [inaudible] DAVID Malan: Labda, idadi kama integer tena? integer kubwa? Pengine hawaishi bilioni 4 Main Street au chochote mambo kama hayo. Hivyo integer pengine mzuri, lakini ina mtu yeyote aliyewahi kuishi katika anuani kama 1A Brattle Square, au 1 na 1/2? Haya mambo yapo, kwa bahati mbaya, hata kama wewe si aliishi huko, kuna mapungufu hayo kama ghorofa 1A, 1B, 1C. Hivyo unajua nini, sisi pengine wasiende integer, vinginevyo tunakwenda kupoteza baadhi ya mauzo. Char shamba, labda? Sijui muda gani. Ni pengine si kwenda kuwa kwamba kwa muda mrefu, hivyo 10 au kitu. Hakuna mtu anaenda kuandika idadi tena, labda. Lakini tena, sisi lazima pengine kufikiria zaidi kwamba. Labda google, kufanya baadhi ya utafiti, lakini tutaweza kwenda na guts yetu kwa sasa. Mitaa, char, 50, sijui. Katika hatua nyingine, hakuna mtu kwenda kuandika ni juu ya bahasha, pia, hivyo kuna pengine baadhi ya mipaka ya juu huko. City, sawa, hakika, hivyo Char 50. Hali, inaweza kuwa US-centric kwa sasa. Hivyo inaweza kuwa orodha, hivyo aina ya wito hukumu, serikali. Ni inaweza kuwa kama wahusika wawili. Hivyo kweli, labda, mimi naendelea kusema char. Mimi pengine maana varchar, tu kwa ajili ya baadhi ufanisi, lakini tutaweza kuja nyuma kwa kuwa uamuzi katika wakati huu. Inaweza kuwa char ya urefu 2 kwa serikali. Kama katika Marekani wana, kama MA, Massachusetts, NY, New York, NJ, New Jersey, na kadhalika. Hivyo inaweza kuwa fasta wakati huo. DC kwa Washington DC. Lakini nadhani, Olivier, wewe mapendekezo mbinu nyingine. Watazamaji: [inaudible] DAVID Malan: Yeah, hivyo ni kidogo annoying aina katika, lakini enum inaweza kufanya maana zaidi, kwa sababu kwa njia hii, angalau katika Marekani, unaweza enumerate, kama tediously, lakini wewe kufanya hivyo mara moja tu katika orodha yako na kamwe tena kuwa na kufikiri juu ya hivyo, 50 namba zote mbili tabia. Hivyo mimi kama enum. Hebu fimbo na kwamba kuna sababu ni aina ya utekelezaji ukali zaidi. Na kisha zip code? Nadhani Andrew alikuwa na mawazo juu ya kwamba Watazamaji: [inaudible] DAVID Malan: Yeah, tano au tisa. Hebu tu kushika ni rahisi. Tu kufanya tano kwa sasa. Lakini labda mimi naweza tu kufanya integer, haki? Mimi naweza, lakini unajua nini, nilifanya kosa hili mara moja, katika baadhi ya hisia. Miaka iliyopita, nilikuwa kuhama kutoka Microsoft Outlook na Gmail, na Outlook ina njia ya kusafirisha yote ya mawasiliano yako kama faili Excel, CSV file, comma kutengwa maadili file. Na mimi alifanya makosa, mimi kufikiri, ya kubonyeza mara mbili yake, mara moja mimi kupakuliwa kuuza nje, kwa kuhakikisha inaonekana kama mimi ilivyotarajiwa. Mimi ni lazima kuwa kugonga Ila au basi auto-kuokoa kick katika au kitu. Kwa sababu wakati mimi basi nje ndani Gmail, ni wote kazi. Lakini kwa miaka, hadi leo hii, na Nilifanya hivyo mitano, miaka 10 iliyopita, Mimi bado kutafuta marafiki ambao wana anwani kwamba kuangalia kama hii. Kwa nini? Watazamaji: [inaudible] DAVID Malan: Ni alichukua 0, vizuri, badala yake, alichukua zip code nzima kama idadi, na kwa hiyo ni kuongoza 0 ambayo ina maana haina maana. Na hivyo 2138 inaonekana kuwa zip code yangu. Na hii ni, kusema ukweli, annoying Excel kipengele ambapo nadhani by default, hata kama ni maana ya tu kuwa maandishi, Microsoft Excel anaamua, napenda kuwa na manufaa, na oh, naona namba tu. Hebu kutibu haya kama idadi. Na truncates zeros kuongoza. Naapa kwa Mungu, kila wanandoa cha miezi mimi kupata mitaani, na nje ya aina ya OCD, mimi kurejea katika na kuongeza 0, ingawa mimi kamwe kutuma watu barua au kitu chochote. Lakini mimi bado kutafuta mabaki ya hii. Hivyo hii ni kusema, ni hii ni wazo nzuri? OK, hapana, kwa sababu mtu yeyote katika Massachusetts, katika eneo hili, ni kwenda na o uongozi wao. Basi hebu kwenda kwa kama char, pengine, tano. Na hapa, kutambua sisi inaweza kutumia enum na sisi inaweza enumerate 10,000 codes iwezekanavyo zip, lakini kwamba anahisi kama ni pengine kuvuka mstari wa, kama, faida. Kama una pembejeo kwamba data mengi katika orodha yako kulinda dhidi ya kitu fulani. Hivyo char barabara unaweza aina katika H-E-L-L-O kama zip code yako, ambayo si, ni wazi, nambari. Hivyo hakuna njia, katika kawaida database, kutaja numeric tu na wahusika tano tu kwa muda mrefu, hivyo tunakwenda kuwa na kufanya hivyo katika kanuni. Tunakwenda kufanya hivyo katika PHP au Java au chochote lugha tuko kutumia kwenye server kutekeleza aina hiyo ya kikwazo. Whoo! Haki ya wote, hivyo maswali yoyote bado tu? Hebu kufanya uamuzi mwingine design. Ni zinageuka kuwa wewe pia kupata kuchagua, wakati kubuni SQL database, au kawaida database-- kimahusiano ambapo tena, kimahusiano tu ina maana safu na nguzo, kwamba ni jinsi gani kuandaa data-- yako na kutambua kwamba maana ya maneno haya ni, Nimekuwa kupotosha katika kwamba, mimi nina drawing-- hii ni kile kinachoitwa schema kwa meza database. Hii ni kama specifikationer kwa table-- lakini linapokuja suala la muda kuhifadhi data kwa kweli, na tutaweza kufanya kazi hii tu kwa mfano hapa. Mimi nina kwenda kufungua Excel, kwa sababu Excel nipe safu na nguzo. Na kwamba ni nini hasa Oracle na MySQL na zana nyingine atanipa. Hivyo mimi nina kwenda tu kutumia hivyo kwa ajili ya majadiliano ya. Hebu kwenda mbele na kufungua mwakilishi hati hapa, kuvuta kidogo. Hivyo kwa mfano, headers yetu ni sasa jina la kwanza, jina la mwisho, jinsia, ID, email, mitaani posta, mitaani, whoops. Mitaani, mji, jimbo, tu kuhusu inafaa kwenye screen. Hivyo nini maana ya hii ni kwamba wakati user kwanza madaftari kwa ajili ya tovuti yangu, itakuja kuwa kitu kama David, Malan, m, hebu sema 1, malan@harvard.edu, idadi mitaani mapenzi kuwa kama 1 Brattle Square, Cambridge, MA, 02138, na kisha kadhalika. Hivyo wakati mimi kusema kwamba database kimahusiano au SQL database ni safu na nguzo, I mean hii. Hiyo data halisi ni kuhifadhiwa katika safu na nguzo. Hii ni bahati mbaya tu, kwamba sisi walikuwa wanazungumza, na mimi nilikuwa tu kuchora nje katika safu na nguzo. Hii ni tu schema, kuu ufafanuzi. Hivyo ya mashamba hayo hapa, au equivalently, kuna, ambayo ni mashamba ambayo unafikiri Mimi nina uwezekano wa kutafuta kwenye kama mimi nina user au kama mimi nina msimamizi database? Kama, nini mashamba Mimi kweli kwenda kutafuta kwenye? Watazamaji: [inaudible] DAVID Malan: jina, yeah hivyo Mimi kama ukweli that-- yeah, email inaweza kuwa pretty kawaida. Samahani, alisema jina. Hivyo maybe-- na tena, tuko aina ya kuzungumza katika abstract. Mimi sijui ni kwa nini wewe d kwa ajili ya kutafuta jina, lakini kwamba anahisi busara kama wewe ni kutafuta kwa mtumiaji. Labda unasema, hakika, ID. Na ni slippery mteremko, kwa sababu mimi naweza uliamua mazingira ambapo labda bosi wangu aliniambia, jinsi watu wengi hawana tuna kwenye tovuti yetu? Jinsi wanawake wengi hawana tuna kwenye tovuti yetu? Na hivyo katika hatua hiyo, unaweza kutaka kutafuta kwenye uwanja wa kijinsia, pia, na kitu kingine. Hivyo kuna biashara-off hapa. Tena, hakuna jibu sahihi, lakini kuna ni hulka katika zaidi database SQL inayojulikana kama Indexing, ambapo wewe, designer, msimamizi database, kupata kuamua mapema ambayo mashamba database lazima kuongeza kwa ajili ya utafutaji juu. Unaweza naively sana kusema, optimize huu, kuongeza kwamba, optimize hii, kuongeza kwamba na hii, na database mapenzi kutenda jambo kichawi chini kofia, na kufanya kitu kwa namna kwamba wakati mwingine wewe kutafuta yoyote ya mashamba hayo, itakuwa, kwa kweli, kuwa kasi. Hii inawezekana. Haina kufuta yenyewe nje. Lakini lazima kuna bei ya kulipwa. Kama wewe naively, au juu-shauku kusema, ripoti zote za mashamba hayo, hivyo kusema, kuwafanya wote ufanisi kutafutwa, nini bei ni pengine kulipa? Watazamaji: [inaudible] DAVID Malan: Utendaji. Unamaanisha nini? Naam utendaji, angalau katika mazingira mimi nina kujadili, ni bora sasa. Hiyo ni ufafanuzi wa Indexing. Itakuwa kufanya upekuzi kwa kasi zaidi. Hivyo wakati itapungua, hivyo kusema. Watazamaji: [inaudible] DAVID Malan: Nafasi. Hivyo tena, hizi ni biashara ya kawaida. Siwezi kuharakisha utafutaji wako, lakini ni kwenda gharama ka zaidi ya nafasi. Kwa nini? Naam, by default, kama tuna hakuna hata mmoja nyota hizi nyekundu, hakuna hata mmoja bahati hizi, kama mimi kusema, ni jinsi gani wewe kutafuta kwa jina katika orodha hii? Basi hebu kuteka yetu kipaumbele kwa mfano huu. Kama tuna David na Scully na Kareem na Arwa na wengine katika safu hizo, kwa mfano. Basi hebu kufanya hasa kwamba. Scully ni katika hapa, na kisha tuna Kareem, na Arwa, na kila mtu mwingine, kama huna na index inavyoelezwa, hivyo kusema, bora unaweza kufanya ni linear search. Kama wewe kutafuta kwa Arwa, sisi siyo kwenda kuwa na uwezo wa kuruka haki yake haraka. Tunakwenda kuanza juu na kwenda njia yote hadi chini, si tofauti na awali wetu Mike Smith mfano. Kama, hata hivyo, nasema, hey, database, index jina la kwanza shamba, basi ni kwenda kufanya kitu fancier na kusaidia kitu kama tafuta binary. Ni pengine si binary search per se. Databases huwa na kutumia mwingine data muundo kuitwa b-miti, si kwa kuchanganyikiwa na miti binary, kwamba tu kufanya hivyo kwa kasi ya kutafuta kitu logarithmic katika asili. Lakini bei ya kulipa ili kujenga kwamba kipengele, kwamba muundo data katika kumbukumbu, ni zaidi ka. Hivyo inaweza kuchukua baadhi ya megabytes, baadhi gigabytes, ambaye anajua? Ni inategemea data. Hivyo wakati fulani, una kuamua, pengine si kesi ya kawaida. Kwa hiyo kile ni kawaida halisi kesi, kama kweli alikuwa na kuchagua, nini kinaweza mashamba yako favorite kuwa? Barua pepe. Na mimi kama email kwa sababu email, katika nadharia, lazima ziwe za kipekee. Na hivyo kwa kawaida, wakati unajua mapema kwamba moja ya mashamba yako ni au itakuwa ya kipekee, kwamba inaelekea kuwa uwanja mzuri kutafuta juu, kwa sababu kwa njia hiyo, wakati wewe kutafuta kitu, wewe ni kwenda kupata nyuma moja au sifuri majibu na kisha wewe ni kosa. Huwezi kuwa kuweka kuangalia kwa bado wengine. Na hivyo katika kesi hii hapa, email, hivyo muda mrefu kama huwezi kujiandikisha mara mbili na email huo, ni moja nzuri. ID kwa ufafanuzi, katika sayansi ya kompyuta duniani, kama wewe kuzungumza juu ya ID, kwamba alikuwa bora kuwa ya kipekee. Hiyo ni aina ya connotation ya ID au kitambulisho. Na wengine wa hawa wanaweza kuwa, hebu kuwaita nzuri ya wenye nacho, lakini si kweli inahitajika. Na hivyo katika database, bayana bahati, lakini unaweza kuwa hata zaidi sahihi. Unaweza kusema, hey, database, kuhakikisha kwamba kila ID katika meza hii ni ya kipekee. Je, si hata basi programu ajali kuweka katika email duplicate au kurudia idadi ID. Sana kama enums kutulinda vile vile, wewe unaweza kuwa wale ulinzi ngazi ya chini. Na hivyo database design, katika baadhi ya hisia, ni aina ya furaha, kwa sababu wewe kufanya hivyo kujitetea. You aina ya kudhani kuwa wewe kazi na ya kutisha, programmers kutisha na unataka kuweka katika ulinzi kama wengi kama unaweza kulinda data yako, lakini wakati huo huo unataka kuwasaidia kufanya vizuri kwa kuchagua ambayo mashamba ya kuongeza kwa. Lakini unaweza si lazima kufanya hivyo katika utupu kama sisi aina ya watu hapa. Nimepata kujua nini ni kesi hizo kawaida kuwa. Kama watengenezaji ni utekelezaji wa kitabu cha anwani, unaweza vizuri sana wanataka kuwa na uwezo kutafuta katika karibu kila uwanja, tu kwa asili ya maombi. Hivyo labda wewe kutumia kwamba nafasi ya ziada. Right, maswali yoyote? Yeah. Watazamaji: [inaudible] DAVID Malan: Hapana Watazamaji: [inaudible] DAVID Malan: Sawa. Watazamaji: [inaudible] DAVID Malan: Oh, hivyo sisi ni kuzungumza kwa njia sasa hiyo ni lugha agnostic kabisa. Hivyo sisi ni kuzungumza sasa kuhusu database kimahusiano kwa ujumla zaidi, au SQL database zaidi kwa ujumla. Watazamaji: [inaudible] DAVID Malan: neno bora kutumia ni, inaweza kutumika na lugha yoyote. Hivyo siwezi kuandika JavaScript code, C kanuni, C ++ code, Java code, Ruby code, ambayo yote kuzungumza na database na kutekeleza maswali. Kwa kweli, kwamba si mbaya segue kwa mfano swala. Na tena, sisi siyo kwenda katika Java au C ++ au yoyote ya kwamba tena, lakini katika SQL, lugha ambayo mimi kuendelea akimaanisha, Strukturerad Query Language, hii yenyewe ni lugha ya programu, lakini ni maana ya kutumika kwa ajili ya, hakuna mshangao, muundo maswali swala. Kwa kuwa mimi maana hii. njia wewe kuchagua data kutoka MySQL database ni wewe literally aina katika mpango wako kitu kama kuchagua nyota kutoka kwa watumiaji. Mimi ni kuchukua kwamba meza hii, sasa inaitwa watumiaji. Mimi naweza kuiita kitu chochote tunataka, lakini aina hiyo ya mantiki. Na hivyo kuchagua ni sana kawaida kitenzi, kama wewe mapenzi, katika SQL, kwamba literally anafanya hivyo. Unafikiri nyota ina maana katika mazingira haya? Watazamaji: [inaudible] DAVID Malan: Mimi nasikitika? Watazamaji: [inaudible] DAVID Malan: Si required, ni umoja zaidi ya kwamba, kwa kweli. Ni kadi mwitu tabia. Nyota karibu kila mara ina maana yoyote, hivyo hii ina maana, katika kesi hii, kuchagua kila kitu kutoka database. Hivyo wakati mimi kusema hii, I mean nipe nyuma kila safu kutoka meza yangu aitwaye watumiaji. Basi nipe matokeo ya kuweka, kama ni kuitwa. Kwa maneno mengine, nipe nakala ya spreadsheet, ni nini mimi kupata katika. Lakini kama nilivyosema kuchagua nyota kutoka kwa watumiaji ambapo ID sawa na 1, jinsi kubwa lazima matokeo yangu kuweka kuwa basi? Au equivalently, safu ngapi lazima Mimi kuwa mitupu nyuma kutoka database? Pengine moja tu, kama nina hakika kutibiwa ID kama kitambulisho kipekee, na kama David ina kuwa ID kipekee, I lazima kupata nyuma moja na mstari mmoja tu zenye wote wa habari Daudi. Kama nilivyosema ambapo hii ID sawa na 99, mimi lazima kupata nyuma, kwa mantiki hii, safu sifuri, angalau kwa sasa. Hata hivyo, kama mimi si kweli huduma kuhusu habari kwamba wote, Mimi naweza kusema tu, ambapo gani David kuishi? Select zip code kutoka watumiaji ambapo ID ni 1. Hii kuchagua kwangu tu zip Daudi kanuni na si ukamilifu wa mstari huo. Kwa nini natakiwa kufanya hivyo badala ya nyota swala, kadi ya pori? Watazamaji: [inaudible] DAVID Malan: Yeah, mimi ili tu haja yake. Hivyo utendaji ni tena jibu hapa. Kwa nini kuuliza kwa zaidi Maelezo kuliko unahitaji, kwa sababu hata kama ni haki ya wote kwa pamoja, bado una nakala ya kwamba data, inaweza kuonekana, kutoka database katika mpango wako kwa namna fulani, na kwamba tu silly kama wewe tu haja tano ya tatu hizo, si ukamilifu wa mfululizo. Hivyo ni jinsi gani mimi kuingiza user? Tuseme user ina tu kusajiliwa kwa mara ya kwanza. syntax ingekuwa kawaida kuangalia kama hii. Kuingiza ndani ya watumiaji, na kisha tunataka kusema maadili, na kisha tunataka kusema maadili kama, hebu sema, Lauren Scully, videographer yetu hapa hapa. Na shamba la pili ni jinsia. Hivyo tutaweza kusema quote, unquote "F", basi tuna ID na mimi nina kwenda kwa say-- hebu kujifanya yeye si kweli hapa, hivyo tutaweza rewind katika hadithi. Hivyo 2 itakuwa ID yake. Na kisha shamba ijayo hapa ni email yake. Hivyo ni kwenda kuwa kama Lauren Scully na kadhalika, na tutaweza tu dot dot dot ni mbali na hapa juu. Sasa itakuwa kupata kidogo nyeti, lakini kuingiza swala hatimaye kuangalia kama hiyo. Kama mimi nataka kujikwamua Scully, uh-oh, hebu kufuta usajili yake, yeye deletes akaunti yake, kufuta kutoka kwa watumiaji ambapo ID sawa na 2, itakuwa kujikwamua Scully. Au naweza kusema watumiaji update kuweka, hebu sema, tunaweza kubadili nini? Tuseme yeye hatua. Kuweka zip sawa na 021-- nope, hiyo ni zip yake ya sasa. 90210. tu wengine zip code Najua duniani. Hivyo kwamba bila mabadiliko zip yake code-- kweli, kwamba asingeweza kubadili msimbo yake. Je, mimi tu kufanya? Japokuwa syntax pengine ni mpya. Watazamaji: [inaudible] DAVID Malan: Yeah, mimi wakiongozwa kila mtu Beverly Hills, California. Hivyo mimi lazima kweli kusema ambapo ID sawa na 2. Na kadhalika. Hivyo SQL ni wote kuhusu hizi aina ya maelekezo. Kuchagua, kuingiza, kufuta, update, na predicates hizi mwishoni hizi vifungu wapi, hivyo kusema. Na kuna mengi zaidi unaweza kufanya, lakini ni kweli tu majipu chini tu, kama arcanely, akielezea nini unataka database kufanya. Na kisha database itakuwa kufikiri, wakati kuingiza Lauren Scully katika Mbegu, ambapo kuweka wake katika kumbukumbu ili tuweze haraka sana kupata yake kwa kuzingatia hotuba yake email au kutokana na idadi yake ID au kama. Yeah, Dan. Watazamaji: [inaudible] DAVID Malan: Swali Kweli nzuri. Je, maandiko hayo mabadiliko kutoka Microsoft Access kwa Oracle kwa MySQL kwa PostgreSQL? jibu fupi ni inategemea. Katika nadharia, kuna sana muhimu ya kawaida subset ya SQL hiyo pamoja hela yote ya utekelezaji hizi. Hata hivyo, wazalishaji mbalimbali kuwa na sifa aliongeza kwa database yao kufanya mambo fulani zaidi ya upeo wa makala haya, ambayo inaweza, kwa kweli, kuvunja. Hivyo watengenezaji njia ua dhidi ya hii, ni kwamba badala ya kuandika mbichi SQL code kama mimi nina kuandika hapa, wao badala yake kutumia maktaba, maktaba ya kawaida kwamba yenyewe ni aina ya ngazi ya juu na abstracts mbali ambayo bidhaa unatumia. Na inakupa kazi na taratibu kuwaita ili kamwe kweli kuandika SQL ghafi. Katika nadharia, basi, unaweza kubadilisha bidhaa kutoka Oracle kwa Microsoft au kinyume chake au kitu chochote mwingine, na wewe literally mabadiliko chochote kuhusu kanuni yako. Hata hivyo, ukweli ni, wewe wakati mwingine kutoa juu ya makala kama matokeo. Unaweza wamechagua bidhaa kwa sababu ni got makala haya ongezeko la thamani, na uko tu sasa si kutumia yao kwa uangalifu. Na anecdotally, makampuni ya wengi huwa kamwe kuondokana na orodha yao. Hivyo wakati huu ni nzuri na kuwa kipengele, ukweli ni, kama wewe ni overhauling Mbegu yako, uko pengine kufanya mashada ya mabadiliko mengine anyway, kwamba si lazima haja wanatarajia kwamba. Hivyo ni arguably juu-uhandisi tatizo, lakini kwa kweli inategemea mazingira. Lakini katika nadharia, SQL ni pamoja hela bidhaa hizo mbalimbali. maswali mzuri. Yeah. Watazamaji: [inaudible] DAVID Malan: Yeah, hivyo unaweza kufikiria database ni tu server, mwishoni mwa siku, na ndani ya server kwamba ni rundo zima la meza, safu na nguzo. Na wakati kutuma swala kama hili kutoka mpango wako, tovuti yako, yaliyoandikwa katika Java, Ruby, Python, chochote, server ni kupokea amri hii na kutafsiri katika literally njia hiyo hiyo sisi kujadiliwa mapema na kufasiriwa lugha, na kisha kufanya baadhi ya hatua juu ya sifuri au safu zaidi katika meza zero au zaidi. Watazamaji: [inaudible] DAVID Malan: Hasa, hasa. Hivyo pseudocode kwa ajili ya kitu kama hiyo inaweza kuwa ni hii. Katika PHP faili yako au yako Python faili au Java yako file, ungependa kuwa kificho pseudocode, au Scratch-kama vitalu kama, kama ziara user acme.com/register~~V kwa mara ya kwanza, kisha kuingiza ndani ya watumiaji na kadhalika. Na tunataka kutafsiri huu kwa thabiti zaidi kificho katika mwisho. Lakini kwa kweli, tuna kila matofali ya ujenzi hapa, hata kama sisi ni kuruka baadhi hatua ya utekelezaji. Hivyo basi mimi kupata kosa na nini sisi ajabu alifanya tu wakati iliyopita. Mmetengeneza pretty meza kamili kwa watumiaji. Hakika, tunaweza kutekeleza hivyo kwa njia kadhaa tofauti, lakini una kweli imesababisha sisi chini path-- na mimi kusema wewe, lakini pengine fault-- yangu ya haki ufanisi utekelezaji database. Ni si normalized. Na kwa normalized I mean kuna ni kwenda kuwa, baada ya muda, redundancy muhimu, na kwa hiyo uzembe, kwamba ni kupoteza nafasi. Kulingana na tu nini kuona hapa, Unaweza wewe wanaangalia ambapo hii ni kupoteza nafasi atakuja kutoka, baada ya muda, kama watumiaji zaidi na zaidi kusajili ajili ya tovuti yako? Nini data inaweza kuwa redundant? Watazamaji: [inaudible] DAVID Malan: Kwa nini na maana kwamba? Watazamaji: [inaudible] DAVID Malan: Yeah. Na hebu kudhani kwa madhumuni ya leo kwamba kwamba ni kweli. Zamu nje, na tumejifunza hii njia ngumu, kwamba si kweli. Kwa namna fulani miji mbalimbali kuwa, kwa namna fulani, sawa zip code, ambayo mapumziko Intuition huu wa ajabu. Lakini hebu tuseme kwamba ni kweli, kwa sababu ni karibu kila mara ya kweli. Hivyo kudhani kuwa zip code ni daima ni kuhusishwa na mji huo na hali, ambayo ni aina ya dhana ya kuridhisha, lakini sahihi, ni zamu nje. Lakini dhana busara kwa madhumuni ya leo. Kisha tuseme kwamba mimi kuishi katika Cambridge, MA, kwa mujibu wa meza user huu, na tuseme kwamba Lauren Scully anaishi katika Cambridge, MA, na tuseme kwamba Kareem anaishi katika Cambridge, MA, na Arwa anaishi katika Cambridge, MA, sote katika 02138. Kwa nini sisi kukumbuka Cambridge, MA, 02138 ajili zote nne za yetu? Nini lazima inatosha kukumbuka? Watazamaji: [inaudible] DAVID Malan: Tu zip code. Tu kwamba 02138 ipo, kwa sababu unajua nini tunaweza kufanya? Tunaweza kupata dhana kidogo hapa na zaidi ya hapa, kufafanua meza nyingine ambapo hii ni kwenda kuwa jina, hii ni kwenda kuwa aina, hii ni kwenda kuwa urefu, na sasa, mimi nina kwenda kuwaita hii miji yangu mezani. Hii aliitwa, ya Bila shaka, watumiaji yangu mezani. Na hivyo kile lazima mimi kuweka juu hapa kwa ajili ya miji yangu meza, unafikiri? Watazamaji: [inaudible] DAVID Malan: Yeah. Hivyo zip na hali na mji. Na hivyo aina hapa, tutaweza kusema hii ni kwenda kuwa char 5 tena, chini ya mjadala wa mapema. Hii itakuwa ni enum, labda kama kabla, na mji itakuwa varchar 50. Na hivyo sasa je, mimi kupata kufuta kutoka meza hii kuondokana kwamba uzembe? Watazamaji: [inaudible] DAVID Malan: Nice. Hali na mji kwenda mbali, hivyo nimekuwa sasa kuondolewa uzembe uwezo kwa redundantly kukumbuka, Cambridge, MA, Cambridge, MA, Cambridge, MA, Cambridge, MA, ambayo, hopefully ni kamwe kwenda na mabadiliko. Na hata kama itakuwa hivyo, ni minorly annoying, sasa kwamba mimi kuwa na mabadiliko hivyo katika safu mbalimbali, wakati hapa, mimi naweza tu mabadiliko hayo katika sehemu moja. Sasa nini biashara-off, labda? Hii ilikuwa ni super rahisi. Alikuwa data wangu wote nicely pamoja. Lakini nini wazi kesi sasa? Watazamaji: [inaudible] DAVID Malan: Hasa, na mimi nina furaha wewe alitumia neno kujiunga, kwa sababu hiyo ni kweli keyword, katika ulimwengu wa database kimahusiano katika SQL, ni neno halisi wewe wanaweza aina au angalau kufikisha. Na kwa kweli, nini sisi sasa una kufanya kuchagua taarifa kamili Daudi ni kitu kama kuchagua nyota kutoka watumiaji, kujiunga na miji, on-- na sasa Mimi nina kwenda tu hoja mstari wa pili hivyo kwamba hii users.zip fits-- sawa na cities.zip, ambapo users.ID sawa na 1. Hivyo nini kinaendelea? Ni mbaya kuangalia, lakini unaweza aina ya kusoma kushoto kwenda kulia, juu hadi chini. Select nyota kutoka kwa watumiaji ni sawa mbele, lakini siyo kutoka kwa watumiaji, per se. Ni kutoka kwa watumiaji kujiunga na miji. Hivi mimi kujiunga na meza hizo mbili juu ya? Naam, inaonekana, watumiaji meza zip shamba, na kipindi hiki ni tu maalum syntax ili kueleza wazo kwamba, na hii ni miji meza zip shamba. Nataka hizo mbili kuwa sawa, lakini nataka hatimaye chagua tu safu hizo ambapo ID katika meza watumiaji sawa na 1, ambayo ilitokea kuwa ya mgodi. Na tu kuwa wazi, programu, kwa kawaida wakati Hardcode kitu kama idadi 1, kwa sababu vinginevyo tovuti tu inasaidia David au user kwanza kabisa, wewe badala yake kufanya kitu kama ID, ambapo hii inawakilisha kutofautiana, kitu ambacho Unaweza kubadilisha baada ya muda, sawa katika roho na kile nilivyosema awali na aina hii ya placeholders. Lakini kwa sasa tutaweza tu Hardcode ni kama 1. Na hivyo hii ina maana gani? Naam, njia nzuri ya taswira hii ni kwamba kama hii mkono ni watumiaji meza, na mkono huu ni zips meza, sisi ni aina ya finding-- na ncha za vidole yangu ni zip zaidi ya hapa, na ncha za vidole yangu hapa ni zip, uko aina ya interlocking ni ili kupata nyuma na kusababisha meza ya awali, na kweli kujiunga na mbao mbili kwenye uwanja wa kawaida. Na haina kuwa zip. Ni inaweza kuwa kitu kingine chochote zaidi, lakini zip ni nzuri, kwa sababu moja, ni muda mfupi, mbili, mara nyingi ni urefu sawa, hivyo kuna ufanisi halisi kwa nini Olivier mapendekezo hapa na factoring nje zip, na [Inaudible] kupendekeza kwamba sisi kujikwamua ya mji na majimbo. Hivyo hii ni mchakato inayojulikana kama kuhalalisha. Maswali yoyote juu ya hilo? Naam napenda kumweka nje hii ni aina ya mambo, hata kama ni uungwana ngazi ya chini, huu mjadala, kwamba unaweza kudhani wewe ni aina ya kupata waliopotea katika magugu, hii ni kielelezo cha kutosha fursa kwa watengenezaji kuwa mbaya. Na kwa kweli, hata wakati sisi, katika kozi Nimekuwa kufundisha, wakati tulikuwa na, Kwa mfano, inexperienced programmers shahada ya kwanza kujenga tovuti, katika mtazamo wa kwanza, tovuti ili kuangalia kali. Na wao wana wote wa utendaji sisi ombi, watengenezaji alifanya kazi nzuri. Lakini hawakuwa lazima kujua kutosha kuhusu mpango database au hawakuwa kufikiri kwa bidii kutosha kuhusu aina ya data na aina ya watumiaji tovuti alikuwa anaenda kuwa, na tunaona, basi, miezi sita baadaye, baada ya wameweza kufuzu au wakiongozwa juu, kwamba damn it, tovuti yetu ni kweli, dhati ya polepole. Na mimi nina hata kuzungumza juu ya kuwa mamilioni au maelfu ya watumiaji. I mean watumiaji mia chache juu ya chuo, ambao wote kama, kwa mfano, duka kwa ajili ya kozi katika huo huo, wao uko kutumia kwamba bila shaka catalog maombi nilivyoeleza na jambo ni kupata kweli kupunguza kwa sababu kulikuwa hakuna bahati. Hakukuwa na nyota nyekundu, hivyo kwa kuzungumza, au tulikuwa na si lazima factored nje data kwa kawaida kupata baadhi ya pesa ya nafasi. Na hivyo wakati vetting developer au database mtu au kama, aina ya maswali kufikiri kwa njia ya ni hata, wakati kupitia upya kificho mtu, kusema, siyo lazima kuangalia kwa njia zote za kanuni zao, lakini kusema, hebu angalia kupitia meza database. Je, ni wewe kuhifadhi? Na kisha kusema, vizuri, kusubiri dakika, kwa nini ni wewe kutumia integer? Nini kama tuna bilioni 4 na 1 ya mistari haya? Na aina hii ya maswali ni fursa aina ya kushinikiza nyuma na kupata hisia ya, ambapo kama wewe si vizuri kufanya hivyo, kuwa na mtu zaidi ya kiufundi kuuliza maswali haya, kama au si mtu kweli anajua mambo yao. Na hii ni aina ya mambo, pia kwamba watu kwenye mtandao ambao ni binafsi kufundisha, labda kujifunza kidogo mara kwa mara, kwa sababu wewe si lazima kuja hela yake kama kiasi, kwa sababu unaweza kupata database juu na kukimbia, lakini kama umeisoma juu ya tutorials au wamekuwa aliiambia kuhusu kuhalalisha database na Indexing na utendaji, hizi ni aina ya mambo kwamba ni kwenda kuumiza wewe. Na unaweza kufikiri, au mhandisi mbaya anaweza kusema, oh, vizuri, sisi bora kulipa kwa database kubwa au database kwa kasi au tu kutupa fedha katika hii, wima wadogo, siyo lazima hivyo. Kama kwenda in-- na unaweza kwenda katika baada fact-- na kuongeza bahati, na inaweza kuchukua masaa machache kwa database kujenga kwamba takwimu mpya muundo kwamba mimi alluded mapema, bado unaweza kurekebisha hili baada ya kweli, kwamba hii ni wapi kuanza kutofautisha wabunifu nzuri kutoka mbaya wabunifu, si tu aesthetically, lakini utendaji-busara pia. Maswali yoyote? Hakuna? Hivyo kwa NoSQL, ambayo ilikuwa aina nyingine ya database ambayo mimi alidokeza awali, huna safu na nguzo. Badala yake, ingekuwa kitu kwamba inaonekana kidogo zaidi kama hii. Mimi naenda kutumia syntax kawaida. braces curly kutokea kwa kutumika hapa mengi kabisa. Unaweza kuwa na kitu kama jina la kwanza ni David, unaweza kuwa mwisho jina ni Malan, quotes, unaweza kuwa ID is-- udhuru kwangu, whoops-- ID ni 1, email ni malan@harvard.edu, na sipendi kujisumbua kuandika nje ya mapumziko, na kisha baadhi ya mambo mengine. Kwa maneno mengine, hii ni textual uwakilishi ya nini tunataka ujumla kuwaita kitu katika programu ya kompyuta. Na kitu ni ujumla tu ukusanyaji wa thamani jozi muhimu. Hivyo tena, mada hii mara kwa mara. Tuliona thamani ufunguo jozi katika HTML, tuliona thamani jozi muhimu sasa katika mazingira ya database, na sisi aliona thamani jozi muhimu katika mazingira ya, nadhani, lugha mapema leo. Anaendelea kuja juu. Na hakika, hiyo kwa kweli nini data majipu chini, data na metadata, au maadili na funguo, kwa mtiririko huo. Hivyo mashirika yasiyo ya kimahusiano Mbegu, jambo linalotokana juu ya vitu, ambapo wewe tu chaka kila kitu pamoja na kuiweka katika kumbukumbu, ingekuwa ujumla kuwa picha kama, au mawazo ya, kama hii. Na mimi itabidi kuondoka kwamba sasa kama aina ya mbinu mbadala. Na moja si lazima bora kuliko nyingine. Kwa kweli, sana sana katika Vogue siku hizi ni database mifumo kama MongoDB na Redis na wachache zana nyingine kama hizo, kwa uhuru zaidi, lakini wao wanazidi sw vogue. Sehemu kwa sababu wao kutoa ziada makala juu ya njia hizi tabular, lakini pia kwa sababu wao uko kidogo rahisi kutumia, kwa sababu huna kufikiri kwa bidii kuhusu mengi ya maamuzi haya kubuni. Hivyo pluses na minuses. Hivyo kutambua kuna chaguzi zaidi ya kile sisi tu alitumia muda juu. Basi hebu kufanya hili. Hebu mpito kidogo nyuma sasa kwa programu ya mtandao, ili tuweze aina ya kuhitimisha leo na kitu hiyo ni kidogo mikono juu, kujaza katika baadhi ya mapungufu kuanzia jana. Hebu kwenda kwa hili la kwanza. Hivyo kukumbuka kwamba jana tulikuwa na baadhi ya HTML kisheria kurasa kwamba alikuwa awali, tu HTML, na kisha Pili alikuwa CSS, kuachia style karatasi. Hii ni tag mpya ambayo hatukuwa angalia jana, au kukaa juu, kinachojulikana tag script. Zinageuka unaweza kweli embed lugha inayoitwa JavaScript katika mtandao wako ukurasa na kufanya mtandao wako kurasa kufanya kitu. Basi je, mimi maana na kwamba? Naam, napenda kwenda mbele na tu kukopa kanuni hii kwa sasa. Mimi nina kwenda katika Cloud9, hakuna haja kwenda huko wenyewe bado tu, na mimi nina kwenda kuwaita hii alert.HTML. Mimi nina kwenda kuweka katika faili yangu hapa. Na tu kufafanua kile nimepata kufanyika, basi niende kwa anwani hii na kwenda kwa macho, na unaweza kuona Hello World. Lakini hii ni aina ya aghali. Nataka kufanya kitu tofauti kidogo. Hivyo nina kwenda kwa kweli kufanya hili. Mimi nina kwenda katika hapa e, na katika kati ya vitambulisho yangu script, kusema tahadhari ( 'hello, dunia'); hivyo ilani ni kidogo sloppy, lakini mimi nimepata HTML, ndani ya ambayo ni lugha inayoitwa JavaScript, na hii ni kile kinachoitwa kazi wito au utaratibu simu. Hii ni verb, literally, katika kesi hii, na mimi kutaja kificho utendaji kuwa mtu mwingine ameandika. Hivyo kwamba utendaji ni tahadhari, hivyo hebu kwenda kwa ukurasa huu sasa na click Reload, na sasa wewe angalia kidogo ya interactivity. Ni aina ya shule zamani na mbaya. Hii aina ya kuwakumbusha ninyi ya viibukizi, pengine, ya yesteryear lakini haikuwa kufanya kitu a zaidi kidogo ya programu. Hivyo zaidi ya kwamba, hebu kufanya kitu zaidi ya kuvutia. Hebu kwenda katika hapa na kujikwamua hii. Na mimi nina kwenda mbele na kujenga fomu kama tulivyofanya jana. Kwa kweli, unajua nini? Mimi nina kwenda katika google.html, ambayo sisi ulianza jana, ambayo inaonekana kama huu, kupitia ambayo sisi searched kwa ajili ya paka Lakini taarifa kuna aina ya mdudu katika toleo la sasa. Ni kazi kwa ajili ya paka, lakini tuseme kwamba Sina kushirikiana na mimi aina ya kitu, na mimi tu bonyeza kuwasilisha. Hiyo ni aina ya tabia weird. Alinipeleka halisi Google, hamkunipa ujumbe wa kosa. Ningependa kuwaambia user unahitaji kutupa thamani. Hivyo jinsi gani sisi kufanya hili? Naam napenda kurejea katika Cloud9 na basi mimi kwenda katika juu ya ukurasa wangu na kuongeza tag script kama hii, ambapo Mimi nina kwenda aina baadhi ya kanuni JavaScript. Na mimi nina kwenda kufanya yafuatayo. Kama (document.getelementByID-- na wanakumbuka kwamba kuongelea kwamba awali, kwamba kazi. Nini ID nataka kupata? Nataka kupata q, na mimi nina kwenda kwa kusema ni sawa na kitu, kama hii kweli napenda kutumia quotes mbili tu kwa ajili ya consistency-- ni sawa na kitu, kisha tahadhari ( "Tafadhali aina swala") hapa. Hivyo nina kile kinachoonekana kuwa kitu kama hali hiyo. Tumeona wazo hili kwa ujumla katika Scratch. Ni kama mmoja wa wale puzzle vipande kwamba inaonekana kama hii. Na je, Mimi kusema? Naam, chini hapa, taarifa mimi nina kwenda kufanya yafuatayo. Mimi nina kwenda kutoa fomu hii uwanja si tu jina la q, ambayo ni nini anapata kupita kwa Google, lakini mimi nina kwenda kuwapa kitambulisho mitaa, Pia inaitwa q. Lakini mimi naweza kuita hii kitu mimi wanataka, mimi nina kwenda tu kushika ni rahisi na pia simu yake q, tu kwa unyenyekevu. Na sasa mimi nina kwenda kufanya kitu kidogo zaidi. On mashamba fomu hapa, mimi nina kwenda kwa kuongeza kile kinachoitwa tukio handler. On kuwasilisha, nataka kuita kazi kuitwa validate. Hii haipo bado, hii neno, au hii validate kitenzi, kwa sababu nini mimi kwenda kufanya hapa sasa ni kuongeza baadhi ya kanuni. Mimi nina kwenda kusema kazi validate. Mimi nina kwenda Indent hii na kuongeza mwingine curly brace hapa na mtu mwingine hapa. Fikiria nini hii sasa ni kufanya. Nina now-- kufikiri ya hii kama umba yangu mwenyewe puzzle kipande kwamba alifanya si awali zipo, na Nimekuwa kuitwa huu puzzle kipande validate puzzle kipande. Madhumuni yake katika maisha ni kutekeleza mistari minne ya kificho ndani yake. Kama document.getElementByID hivyo conceptually, kwamba ni kwenda katika kipengele, kipengele HTML ambaye kipekee Wazo ni tu q, na kisha ingawa syntax inaonekana kidogo weird, kwamba sawa sawa na tu ina maana sawa. Hivyo kwamba maana kama kipengele na kipekee kitambulisho cha q, wakati wamezipata, hana thamani, ni tu sawa na quote unquote, hakuna kitu katika huko, kisha je, nataka kufanya? Nataka kelele katika user. Na sisi si kwenda kina kubwa hapa. Mimi nina kwenda na kurudi uongo. Hiyo ni kosa. Kingine chochote, mimi nina kwenda na kurudi kweli. Hivyo aidha ni kazi au haikuwa hivyo. Uongo au kweli. Na sasa kama mimi si kufanya makosa yoyote, napenda kuokoa hii na upya hii. Na napenda tu kuangalia mara mbili kwamba Sikuwa, kwa kweli, kufanya typos yoyote, hivyo mimi si embarrass mwenyewe. Hebu angalia kama hii kazi. Hivyo sasa mimi nina kwenda aina ya paka. Bado kazi, au matendo nusu, angalau. Sasa basi mimi upya yake, na sasa hebu mimi kujaribu kuwasilisha bila kuandika kitu, damn it, ni kuvunja. wakati mmoja. Hebu kufungua console, [Inaudible] kuingia, upya ukurasa. Hebu jaribu hii tena. Oh, damn it. Nilisahau. Mimi alifanya typo. Nakumbuka ni nini. .value. Mimi maana ya kusema kama thamani ya kipengele ambao ID ni q sawa na kwamba, basi kelele katika user. Hivyo sasa napenda kushikilia pumzi yangu tena. Twende sasa. Kuna sisi kwenda. Tafadhali aina swala. Hivyo si kuruhusu mimi kupitia. Mimi inaweza kuwa aina ya playful na hii, na badala ya kuangalia kwa thamani hakuna, Siwezi kusema kitu kama, tena kwa ajili ya kutafuta paka, na sasa tunaweza tu playfully zaidi basi search user kwa ajili ya mbwa kama yeye au yeye anataka, au kama mimi kwenda katika hapa na kutafuta paka, sasa siwezi. Basi nini takeaway hapa? Hivyo moja, tumekuwa kuletwa ndani dunia yetu ya HTML na CSS, Programu utendaji. Kwa kweli mimi sasa kufanya maamuzi katika kanuni. Hapo awali, wote mimi naweza kufanya ni alama juu textual maudhui au maudhui graphical na kuwaambia ni nini kwa kuangalia kama na wapi kuonyesha. Sasa mimi kweli anaweza kuuliza maswali ya ukurasa wa mtandao na kufanya maamuzi ya msingi juu yake, na kuchochea mtumiaji kama mimi haja ya yell saa kwake. Basi hebu jaribu kitu juu yetu wenyewe na hii. Kwenda mbele, basi mimi kufungua slide ijayo hapa, na tu kumweka nje jambo moja. Tu kama na CSS, tunaweza sababu nje JavaScript kanuni zetu ili faili tofauti, unaweza kufanya kitu kimoja na JavaScript kama na CSS. Na matumizi kwamba kwa kutumia chanzo wanampa ya tag script. Lakini sisi si mambo magumu kwa sasa. Badala yake, kama unaweza kwenda si ukurasa huu, but-- napenda kuzunguka hili katika order-- kwenda, kama unaweza, ukurasa hii hapa. URL hii hapa. Ni katika slides leo. Unaweza kuwa na upya kwa sababu Nimekuwa aliongeza michache ya jambo. Lakini kwenda huko ambapo baadhi puzzles wakisubiri. Na hii itatupa nafasi, katika mazingira kidogo zaidi ya kujifurahisha, dabble na baadhi JavaScript. Na wakati kupata huko, Mimi itabidi kueleza nini watapata. Kupata kijani. Kuweka rangi ya bluu. Seti ya kijani, seti nyekundu. Oops. Sorry. Hii ni kiasi cha wetu nyaraka kwa ajili ya changamoto hii. Na hii ni kwenda kufanya kazi kama ifuatavyo. Hivyo nini una juu ya hii ukurasa ni rundo zima ya puzzles picha na buddy Chuo Kikuu cha Stanford. Hivyo nini wewe ni kuona hapa ni karibu aina ya mmoja wa wale puzzles uchawi jicho, lakini kama wewe tu staré saa hiyo, kitu kinaendelea pop nje saa wewe. Badala yake, kuna kitu siri katika picha hii. Na ni siri katika njia zifuatazo. Picha, kama unaweza kujua, inaweza kuwa linajumuisha rangi tatu tu. Baadhi nyekundu, baadhi ya bluu, na baadhi ya kijani. Na tunaweza kufanya kila rangi katika upinde wa mvua kwa kuchanganya rangi hizo tatu kwa namna fulani. Hivyo hii inaonekana zaidi ya kijani na bluu, lakini kama Nick anasema hapa, hii picha chuma puzzle ni puzzle. Ina sura ya kitu maarufu, hata hivyo, picha imekuwa potofu. kitu maarufu ni katika maadili nyekundu. maadili Hata hivyo, nyekundu na wote wamekuwa kugawanywa na 10. Hivyo wao ni ndogo mno kwa sababu ya 10. Hivyo kwa maneno mengine, Nick alichukua picha ya awali, na yeye desaturated zote nyekundu kutoka hayo, kupunguza kiasi cha nyekundu wino, kama wewe, katika hilo. maadili ya bluu na kijani wote ni tu maana, maadili random, aka kelele iliyoundwa Obscure picha halisi. Kwa hiyo kile Nick alifanya alikuwa yeye toned chini nyekundu na kisha yeye tu kurusha random kiasi cha bluu na kijani katika picha ya aina ya wasio na cheo nini ni kweli bado yapo. Lazima tengua uharibifu hizi yatangaza picha. Kwanza, kuweka maadili yote ya bluu na kijani na sifuri ili kupata yao nje ya njia, na kuangalia matokeo. kisha kuzidisha kila thamani nyekundu na 10, kuongeza nyuma hadi takriban thamani yake ya mwisho. Nini ni kitu maarufu? Basi wote wa una Mstatili hii katika browser yako hivi sasa. Na taarifa kuwa kuna baadhi ya starter kificho, hivyo kusema. Hii ni JavaScript kificho kwamba Nick ameandika kwa ajili yenu. Na taarifa kwamba kuna line katikati kwamba huanza na kufyeka kufyeka, hiyo ni nini ujumla aitwaye maoni. Ina maana ni maneno ya programu kwamba haina maana kazi. Ni tu cue Visual binadamu. Hivyo unaweza kwenda mbele na kufuta tu kwamba line, na kuwa super makini kwa kufuta au kubadilisha kitu kingine chochote. Na napenda tu kutembea wewe kupitia nini kanuni hii anafanya na mimi itabidi kuondoka ni na wewe na takwimu nje picha ya siri. Hii mstari wa kwanza hapa kwamba mimi wameweza tu yalionyesha anatoa zifuatazo. Upande wa kushoto, una kile kinachoitwa kutofautiana kwamba Nick ina kiholela, lakini sababu aitwaye im kwa picha. Upande wa kulia ya ishara kwamba sawa, yeye kusema nipe mpya quote, unquote "rahisi picha". Rahisi picha, katika hali hii ni kile kinachoitwa darasani, vizuri, ni aina ya kama class-- kitaalam prototype-- lakini kwa kweli, hii ni kunipa kitu mpya, yaliyomo ambayo ni file, chuma-puzzle.png. Kwa maneno mengine, Nick imeunda wazo hili la mfano rahisi hivyo kwamba tunaweza, kwa ufundishaji madhumuni, kucheza na picha na mabadiliko ya nyekundu wake, kijani, na bluu maadili. Na jinsi sisi kufanya hivyo? Hii syntax kwa kiasi fulani cryptic hapa ni aina ya kama kuzuia kurudia kwamba baadhi ya wewe aliona katika Scratch mapema leo, ambapo unaweza kurudia mara 10. Katika kesi hiyo, Nick ina si hardcoded idadi kama 10. Badala yeye ni kusema, initialize x variable kuitwa kwa 0, kuangalia kama x ni chini ya upana wa picha. Na hivyo kuwa zaidi sahihi, picha ni kutofautiana, dot ina maana kwenda ndani yake na kupata upana wake, na kisha paren wazi, imefungwa paren ni njia tu programu ya ya kusema hii ni kazi. Hii ni utaratibu. Hii ni utendaji mtu mwingine aliandika. Matumizi yake na nipe nyuma jibu. Na kisha x ++ ni njia dhana ya akisema, baada ya umefanya kosa hili mara moja, increment x na 1. Kwa maneno mengine, hii ni njia programu ya ya inducing kitanzi hiyo ni kwenda iterate juu ya wote wa nguzo katika picha. picha ni tu gridi ya dots, safu na nguzo ya dots. Hii ni njia ya iterating juu ya yote ya nguzo hizo. Na juu ya ndani, wakati huo huo, sisi ni iterating zaidi ya urefu, hapa na hapa na hapa. Hivyo hii ni njia tu ya traipsing, karibu kama typewriter shule ya zamani, kwenda zaidi ya picha nzima iteratively. Hata si kwamba kabisa kabisa wazi, tu kuchukua juu ya imani kwa sasa, kwamba wale mistari mitatu wa kanuni pamoja ni kwenda kuruhusu iteratively kuangalia katika kila pixel, kila dot katika picha. Nini pixel? Naam, kuwa wazi, kama sisi kuangalia katika awali na kuvuta, kama kweli kuweka macho yako kwa screen kompyuta, hiyo ni tu rundo zima la dots, kadhaa dots elfu packed pamoja huko. Na hivyo ni nini kuhusu kufanya nini? Kila mmoja dots hizo, ufafanuzi wa mwisho, ni matokeo ya kile kwa ujumla aitwaye RGB, nyekundu, kijani, bluu, ambayo tena, inaweza kuwa pamoja na kukupa idadi yoyote ya rangi. Kwa kweli, kama unakumbuka kutoka kwa watu wengi, miaka mingi iliyopita, skrini projector kama hayo kutumika kwa kuwa si Lens moja lakini tatu. Mmoja wao mate nje taa nyekundu, moja ya yao mate nje mwanga kijani, mmoja wao mate nje mwanga wa bluu. Na kama ungekuwa katika shule ya kati kama nilikuwa ambapo walikuwa kamwe vizuri na kompyuta, ungekuwa daima kuangalia sinema historia waliokuwa kidogo potofu, kwa sababu rangi tatu hawakuwa kuchanganya vizuri. Lakini zinageuka kwamba kila mmoja maadili haya nyekundu, kijani, na bluu, unaweza kuwa na idadi kuhusishwa na wao. Kwa mfano, 0 kwa ajili ya nyekundu ina maana hakuna nyekundu, 0 kwa ajili ya kijani ina maana hakuna kijani, na 0 kwa bluu ina maana hakuna bluu. Hivyo kama wewe huna nyekundu, hakuna kijani, na hakuna bluu, nini rangi gani? Watazamaji: [inaudible] DAVID Malan: ingekuwa matumaini hivyo, ni nyeupe. Kwa bahati mbaya, hii operates-- pole? Watazamaji: [inaudible] DAVID Malan: Hivyo wewe kweli na nyeusi, katika kesi hii. Hivyo kama una hakuna haya rangi akageuka juu, una nyeusi. Hata hivyo, kama una, hebu sema mengi wao, kama mengi ya nyekundu, 255 ya hayo, mengi ya kijani, na mengi ya bluu, kwamba ni nyeupe. Basi hizi ni extremes mbili. Hivyo kwa mantiki hii, kama nina mengi ya nyekundu na hakuna kijani na hakuna bluu, nini rangi ni kwamba? Watazamaji: [inaudible] DAVID Malan: Right, ni wazi. Na kisha hakuna nyekundu, mengi ya kijani, hakuna bluu, na kisha kama wewe have-- vizuri, tutaweza tu kumaliza hivyo, kwa sababu tu, lakini hii, bila shaka, sasa, ni rangi ya bluu. Na sasa unaweza kuchanganya rangi hizi. Sasa kama kando, kama mmoja wenu na milele kufanyika baadhi halisi tovuti ya kubuni, wewe ni wazi kunaweza angalia alama kama hii. FFF-- na kwa kweli, ni pengine hata hiyo. Ni FFFFFF. Mtu yeyote milele kuonekana F na E ya na through-- hivyo ni zamu nje, sisi aliyesema jana kuhusu decimal, na leo, aina ya juu decimal. Leo kuongelea mapacha. Zamu nje, hexadecimal ni sana mfumo wa kawaida msingi kwa kutumia katika kompyuta. Binary ni mbili, decimal ni 10, hex ni 16. Na zinageuka, ni jinsi gani kuhesabu katika hexadecimal? Sifuri, moja, mbili, tatu, nne, tano, sita, saba, nane, tisa, gani unatumia baada ya tisa? Nini idadi ya hapo? Sisi tayari kutumika sifuri. Nahitaji 16 ya hizi. Sifuri, moja, mbili, tatu, nne, tano, sita, saba, nane, tisa, unahitaji baadhi ya mkataba kiholela. Na nini mwanadamu aliamua baadhi ya wakati iliyopita kwamba baada ya tisa huja barua A na kisha B na kisha C. Hivyo njia wewe kuhesabu katika hexadecimal ni sifuri, moja, mbili, tatu, nne, tano, sita, saba, nane, tisa, , B, C, D, E, F, na kwamba itakuwa kuhesabu wewe njia yote, ni zamu nje, na 15. Hivyo zero 15 ni sifuri kupitia F. Sasa kwa nini hilo ni jambo muhimu? Naam, wakati una mbili F ya, kwamba ni jinsi gani kueleza 255. Hivyo muda mrefu hadithi fupi, katika ulimwengu wa Photoshop, kwamba graphic kubuni programu, katika ulimwengu wa maendeleo ya mtandao, ambapo una kura ya rangi, bila shaka, kwa kucheza na, mara nyingi programmers mapenzi kueleza hayo katika hexadecimal, kwa sababu tu inaelekea kuwa kidogo rahisi. Japokuwa katika mtazamo wa kwanza ni ngumu zaidi. Hivyo katika kesi yoyote, hii ni muhimu kwa sababu Nick katika Stanford ametupa vipande sita ya utendaji kwamba, programmers budding, sasa wana uwezo wa kutumia. Kujengwa katika mtandao huu ukurasa ni kazi sita, taratibu sita ambayo Nick aliandika. Watatu kati yao kupata wewe posta, nyekundu, kijani, au thamani ya bluu. Watatu kati yao itaweka thamani hiyo. Na inasisitiza hizi ni placeholders tu, hivyo unahitaji kujua nini wale ni. Hivyo, pamoja na kazi hizi tatu, kwanza ya mambo haya ni kwenda kuwa x-kuratibu, na ya pili ya mambo haya ni kwenda kuwa y-kuratibu. Kwa maneno mengine, ambayo dot, ambayo pixel hawana unataka kupata kijani ya, kupata rangi ya bluu ya, kupata nyekundu ya. Na kisha hapa, hii ni kwenda kuwa x, hii ni kwenda kuwa y thamani, na hii ni kwenda kuwa idadi. Basi hebu kufanya kwanza mstari wa hii pamoja na kisha mimi itabidi kuondoka na wewe kujaribu kuthibitisha mapumziko. Hivyo kwa mujibu wa maelekezo kwenye ukurasa huu, tunahitaji kuongeza nyekundu kwa sababu ya 10, na tunahitaji kuondoa kijani na kuondoa bluu. Hebu kuanza na matukio ya mwisho. Hivyo kama nataka, na mimi nina kwenda Indent kwa kutumia baadhi ya maeneo, kama nataka kuweka nyekundu, kijani, au thamani ya bluu, Mimi nina kwenda kufanya yafuatayo. Image, im.setBlue, na kisha kuzingatia maelekezo yangu hapa, nini mambo matatu lazima mimi aina ndani ya mabano sasa? Nahitaji thamani x, y thamani, na nini idadi lazima mimi kuweka hapa kama nataka kujikwamua ya bluu, msingi hadithi hii hapa? Tu sifuri. Kama mimi nataka hakuna bluu, mimi nina tu kwenda na mabadiliko hayo na sifuri. Sasa hebu tu kurejea nini hii ni kufanya. Nina hapa juu ya haya juu pili na ya tatu mistari, Mimi alidai loops mbili, nested loops, kama wewe itakuwa, kwamba ni kwenda kuwa na athari ya inaendelea kutoka kushoto kwenda kulia, juu hadi chini juu ya yote ya x maadili na wote wa y maadili. Kwa sababu tena, picha ni tu gridi ya safu na nguzo. Hivyo hii ni kwenda kupata kuondoa yote ya bluu. Basi mimi kuondoka katika mstari karibu na wewe. Je, mimi kujikwamua kijani wote? Watazamaji: [inaudible] DAVID Malan: Nice. Watazamaji: [inaudible] DAVID Malan: Nice. Na mimi nina kwenda kuvuta nje, na tu kuchukua huduma ya kwamba umefanya haijafanya typos yoyote. Na kama wewe ni starehe na nini umefanya kosa, kwenda mbele na bonyeza kifungo Kukimbia / Ila na kuona nini kupata. Na tena, tumekuwa alifanya tatu tu mabadiliko. Sisi ilifutwa kwamba kwanza kutoa maoni na nafasi yake kuchukuliwa na mistari hizi mbili za kanuni. Na ni sawa kama wewe haja ya kugonga Run / Save kifungo mara kadhaa kurekebisha kitu. Na napenda pia kuvuta yangu kanuni hivyo unaweza nukulu. Nzuri. Kwa hiyo naona Andrew ana nini inaonekana kuwa ni makosa. Yeye tu got nyeusi kubwa mstatili juu ya screen yake. Je, mtu mwingine na kubwa nyeusi Mstatili? Watazamaji: Ndiyo. DAVID Malan: Big nyeusi Mstatili? OK, hivyo hebu fikiria kuhusu nini maana ya hii. Sisi alisema kuwa sifuri, sifuri, sifuri, hivyo hakuna kijani, hakuna nyekundu, hakuna bluu, ni kwenda kukupa nyeusi. Na zinageuka kuwa zaidi ya Laptops wetu tu hawana uaminifu wa kutosha. Huwezi kabisa kuwaambia kuna ni kweli kitu huko. Na kama wewe aina ya labda konda screen yako mbele na nyuma, labda unaona kitu kidogo huko? Labda, aina ya, aina ya? Siyo kikamilifu nyeusi. Watazamaji: [inaudible] DAVID Malan: Spoiler! Kuna baadhi ya nyekundu pale, lakini kukumbuka kutoka specifikationer cha tatizo, Nick toned chini. Yeye desaturated kiasi fulani, lakini si njia yote ya sifuri. Hivyo kama tunataka ukuu wa kiasi ya nyekundu, napenda kupendekeza mbinu hii. Hebu kuvuta juu ya screen yangu. Na napenda kwenda mbele na kusema Kiasi hicho ni sawa im.getRed (x, y). mstari wa kanuni ni kunipa kitu kinachoitwa kutofautiana. Nina kiholela, lakini, arguably, sababu inaitwa kutofautiana yangu ni nini, inaonekana? Kiasi. Tu kiasi. Mimi nilikuwa ve kuitwa ni kitu chochote nataka, lakini mimi nina kutumia kazi hii nyingine kwamba mimi ilivyoelezwa mapema kupata kiasi cha nyekundu katika x comma y. Kwa nini mimi kufanya hivyo? Unataka nini cha kufanya hapa? Unahitaji add-- Watazamaji: [inaudible] DAVID Malan: Ndiyo, labda kuzidisha ni kwa 10. Na kama huna kujua hii, mimi nina kwenda mbele na kufanya hili. Mimi nina kwenda mbele na kusema, nataka kiasi cha nyekundu Nataka kuwa chochote ni katika nyekundu, mara 10, na nyota, asterisk juu yako keyboard ni the-- hawatumii x. Matumizi nyota. Hiyo ni jinsi gani kuzidisha mambo katika lugha zaidi ya programu. Hivyo kulingana na Intuition Kareem ya, kuhifadhiwa katika hii variable kuitwa kiasi, ni kiasi gani nyekundu nataka katika eneo xy. Jinsi gani, sasa, je, mimi kufanya kwamba Pixel kuwa idadi hiyo? Umefanya tayari amefanya hili kabla. Wewe kuweka kijani na bluu na hakuna thamani, na sifuri. Watazamaji: [inaudible] DAVID Malan: Ndiyo, vizuri huna unataka kwa 10. Tayari alifanya math hapa. Hivyo sisi ni kupata thamani ya nyekundu, ambayo ni idadi ndogo, labda. Sisi ni kuzidisha up na 10. Nini unataka kufanya na kiasi kutofautiana sasa? Watazamaji: [inaudible] DAVID Malan: Nice. Hivyo im.set-- nini? Watazamaji: setRed. DAVID Malan: setRed, katika eneo xy. Yeah. Na tu kiasi. Kwa maneno mengine, kutofautiana ni placeholder muda kuwa unaweza kuweka kitu chochote unataka katika. Sisi kutokea kwa kuwa na kuweka idadi katika hilo, kwa sasa. Tumekuwa kuyagawa hiyo kwa 10 kwa kufanya hivyo kubwa. Na sasa mimi nina kugeuza kwamba kutofautiana kama hoja kwamba tatu, au pembejeo kuweka nyekundu. Na hivyo kwamba mara moja kumaliza kwamba, na kuchukua kumbuka ya nusu colons na mabano. Kwenda mbele na bonyeza kukimbia / kuokoa tena, na wewe unapaswa kuona, magically, nini ilikuwa kweli huko. [? Arwa,?] Nini huko? Mnara wa Eiffel katika full-fledged nyekundu, si kabisa giza. ni lazima kuwa wazi zaidi sasa, ndiyo? SAWA. Na Andrew, hakuna zaidi nyeusi sanduku? Watazamaji: [inaudible] DAVID Malan: zote haki. Hivyo mimi itabidi kuweka hii juu ya screen. Kama unataka kucheza na hii baadaye, mimi itabidi recreate hii kwa ajili yenu. Lakini kanuni hii hapa alifanya hasa kwamba. Mbona sisi kufanya kila mmoja wetu. Hebu kitabu chini kidogo. Hivyo katika kesi hii, projector kweli haina kufanya hivyo haki. Lakini kwenye skrini yako, pengine kuwa na sanduku nyekundu sana na nyeusi sana. Hii pia, ni puzzle kwamba inaonyesha kitu maarufu. Hata hivyo, picha imekuwa potofu. mfano wa kweli, wakati huu, ni katika maadili bluu na kijani. Hata hivyo, wameweza wote wamekuwa kugawanywa kwa asilimia 20 hivyo maadili ni ndogo sana. maadili nyekundu ni tu idadi random, kelele. Tendua kupotosha hizi yatangaza mfano wa kweli. Hivyo Nick kisha atakwambia nini cha kufanya. Kuweka maadili nyekundu na sifuri, na basi si nyara ni nini. Kisha kuzidisha bluu na maadili ya kijani kwa asilimia 20. Hivyo ni karibu mpango sawa mbele, lakini wewe ni kupunguza mchakato. Nami nitatia kanuni yangu kutoka kabla kwenye screen katika kesi unataka rejea nyuma yake au kucheza zaidi na kuwa moja. Hebu kuvuta juu ya hilo. Lakini kutatua shaba sanamu puzzle, namba mbili. Watazamaji: [inaudible] DAVID Malan: OK, hivyo hii moja mimi nina si kwenda kutoa mwanga kama wengi. Hivyo mimi would-- loo, hebu kuona, una typo hapa. Basi kumbuka, hii hapa kweli mahitaji ya kwenda huko. Hivyo nini napenda kupendekeza, kama unataka kuzingatia hili, kuna jibu. Kama unataka nukulu hiyo, lazima kupata kwanza moja ya kazi. Na kisha unaweza kutumia kama msukumo kwa ajili ya moja ya pili. Nice. Nzuri. Na kwa curious, hii ni mfano rahisi ya sayansi au sanaa aitwaye steganography, sanaa ya kuficha habari katika picha. Kwa kawaida, picha inaweza kuwa watermarked blatantly sana na alama katika chini kona, lakini ni wazi, wewe inaweza kuwa kiasi kisasa zaidi kuhusu hilo na kwa kweli kuficha picha nyingine katika Picha namna fulani na mbinu hii. Kuchukua sekunde 30, na kisha tutaweza angalau kutangaza nini unapaswa kuona. Na mimi itabidi kuondoka tatu moja kama at-nyumbani mazoezi, kama Ningependa zaidi ya changamoto mwishoni mwa wiki hii. Na nadhani Andrew nguvu waliopata ni ya kwanza. Nini ni picha ya pili, Andrew? Watazamaji: Sanamu ya Uhuru. DAVID Malan: Sanamu ya Uhuru itakuwa jibu wakati huu. Hivyo tena, baadhi tu rahisi mifano, lengo la ambayo ni kukupa hisia ya jinsi tumekuwa kutafsiriwa mchoro Scratch vitalu annoying zaidi na zaidi kificho ngumu, lakini yote ya mawazo bado ni sawa, angalau kwa kuanzishwa sasa wa dhana ya kutofautiana, kuwa uwezo wa kuhifadhi kitu kwa muda. Hebu kufanya moja zaidi mikono juu, tu kwa sasa kuunganisha dots kwa kitu kidogo zaidi halisi ya dunia. Wakati uko tayari, kama unaweza kwenda URL hii juu ya screen. Hiyo ni pia katika nakala yako ya slides, developers.google.com/maps~~V. Hebu kweli kufanya kitu halisi, hivyo kusema, kwenye mtandao kutumia Google Maps API, au maombi ya programu interface, kwa njia hii. Google, kama makampuni mengi, hutoa mengi ya bure utendaji kwamba unaweza kutumia ili kujenga yako mwenyewe kuvutia maombi. Kwa kweli, kama wameweza milele kutumika Uber kupata teksi au gari, pengine kujua kwamba Uber ina a map na inaonyesha magari juu yake. Hiyo ni, kama bora kama naweza kuwaambia, Google Maps API. Wao ni kweli kwa kutumia ramani ya Google, lakini Uber si ramani kampuni hiyo, wala ingekuwa kwamba kuwa kuvutia hasa tatizo kutatua juu ya zao gari huduma tatizo. Na hivyo wao ni amesimama, tena, juu ya mabega wa wengine, Google katika kesi hii. Hivyo wao kutumia ramani ya Google ila nafsi zao gari huduma na sifa nyingine kama hizo. Hivyo sisi ni kwenda kuchukua faida ya hii kufanya yafuatayo. Na kama nimekuwa wamekwenda kwa haraka sana, tu simu yangu juu ya katika wakati huu. Furaha kwa kurejea baadhi ya mambo ya picha. Unapaswa kuona mwenyewe katika ukurasa kama hii. Hivyo nzuri ya Google, na wao uko kati ya bora la kutoa APIs si tu, lakini bure APIs kwamba Unaweza kucheza na au kutumia kibiashara. Hawana kuanza kumshutumu wewe kama matumizi yako ni ya juu, lakini mimi alikwenda mbele mapema na kutiwa saini us kufungua akaunti ya bure kwamba, hopefully, 10 kompyuta si humkoshwa nasi kwa ghafla. Hivyo hopefully hii maandamano itakuwa kazi. Na taarifa kwamba wana APIs kwa Android, iOS, huduma za mtandao, na mtandao, chochote kile. Hebu kuzingatia kwenye mtandao. Hivyo bonyeza nyekundu sanduku, mtandao, na kwamba itasababisha wewe, hopefully, kwa ukurasa hapa. Na wameweza got rundo zima la APIs. Na inaweza kuwa ni kidogo balaa kwa mara ya kwanza, lakini mimi itabidi Bad nasi kupitia nini tunataka. Juu kushoto ni Maps Google JavaScript API, JavaScript API. Hivyo kwenda mbele na bonyeza kwamba moja. Na kwamba, nitakuongozeni sasa kwa zifuatazo ukurasa, demos na kanuni sampuli. Hebu zoom nje hapa. Na napenda kupata yetu to-- kitabu chini kwa ambapo anasema hatua haraka kuanza. screen yako lazima kuangalia kama yangu. Na kuna hatua mbili, kupata ufunguo na kuanza zinazoendelea. Mimi tayari alifanya hatua moja kwa sisi, kupata kinachojulikana muhimu. Na hii ni wazo la kawaida. ufunguo API kwa ujumla ni tu big idadi random au kamba kwamba wanatakiwa ya kuweka katika kanuni yako, ili Google anajua wewe ni nani wakati unatumia huduma yao, API yao. Haina maana tuko kushitakiwa kitu chochote. Na sasa, click, badala ya moja, bonyeza kuanza zinazoendelea. Kama unaweza tu kukitikisa me zaidi kama uhakika ambapo sisi ni. Hivyo tutaweza tu scratch uso, hapa lakini kile Nilidhani itakuwa nzito ni kweli kuwa sisi sote, kutumia Cloud9 katika dirisha moja na mafunzo haya katika dirisha lingine, lets kweli kupata yetu wenyewe maombi juu na kukimbia kwamba embeds desturi Google map katika tovuti yetu wenyewe, na kisha anaongeza makala moja au mbili. Lakini tutaweza tu scratch uso wa nini tunaweza kufanya. Hivyo tu haraka sanity hundi. Ni kila mmoja katika ukurasa huu, Google Maps API JavaScript? Lazima kusema kupata kuanza. Sisi siyo kwenda kupitia jambo zima kwa njia yoyote. OK, katika tabo nyingine, kama huna kuwa ni wazi, je kwenda katika Cloud9 na kupata mwenyewe kwa tu tabo mpya, hatimaye. Hivyo tena, c9.io kutoka jana, c9.io, na tu kuunda faili mpya. Na kwenda mbele na wito hivyo chochote Ningependa. Mimi kuitwa map.html ya mgodi. Kuiita chochote na kuishia katika html. Na unapaswa kuwa takribani ambapo mimi katika mchakato huu na tu haraka blinking katika tupu tab aitwaye kitu kama map.html. Au faili, faili mpya wakati huu. Na sasa, zaidi ya juu Google Maps API JavaScript, tutaweza ruka kusoma kwa njia zote za fungu hili. Lakini taarifa kwamba hujambo dunia ni Hakika kila mahali, unaweza kuona ni sasa. Jambo dunia ina hii kubwa rangi mfano wa kundi zima la HTML. Kwenda mbele na nakala na kuweka tu kwamba HTML, hivyo kutokana na aina doc utafutaji juu njia yote ya karibu HTML tag, kwenda mbele na nakala zote za that-- tena, hiyo ni chini ya dunia hodi example-- na kuweka kwamba katika tab yako Cloud9, ili sasa screen yako inapaswa kuangalia takribani kama yangu. Na unaweza kuokoa yake, lakini huna mzigo bado tu. Hebu kwanza kuangalia kanuni na kuona kama sisi hawezi kudai au kujifunza kutokana na kile ni Google imekuwa na sisi upofu nakala na kuweka. Wao wanataka tu kusaidia, literally, kupata yetu ilianza, lakini kuna si kwamba kiasi utata kweli huko. Maswali yoyote tu bado? Tuko salama kusonga mbele? SAWA. Kwa hiyo kwa haraka, hebu tu kufanya baadhi ya haraka sanity hundi. Mstari mmoja wa kile kuona, na hopefully, wewe kuona, hiyo ina maana gani, doctype HTML? Kareem, kukumbuka? Watazamaji: [inaudible] DAVID Malan: Ndiyo. Hiyo inakuja HTML 5. Wakati huo huo, kujipanga mbili juu ya screen hapa ina maana hey browser, hiyo inakuja HTML halisi. Mstari tatu ni hey browser, hiyo inakuja kichwa. Mstari nne ni, bila shaka, hey browser, inakuja cheo. Je line tano nini? Kwa kweli, hii haina kweli kufanya kitu chochote kwa ajili yetu. Katika kesi hiyo, ni tu resizes ukurasa wa chaguo-msingi. Mstari sita, sisi si aliongea kuhusu, lakini bayana encoding tabia. Kuna njia tofauti encode files, hasa kwa lugha za kigeni. UTF-8 tu inaelekea kuwa chaguo-msingi. Hivyo sasa tutaweza kuona katika mstari saba hadi 16, baadhi CSS. Na hata kama tumekuwa si kuonekana mambo yote haya kabla, tunaweza aina ya infer. Hivyo kujipanga njia nane, hey browser, kuomba yote ya yafuatayo ambayo vitambulisho mbili, inaonekana? HTML na maandishi mwili. Hivyo comma ni jambo jipya huko. Na kwamba ni njia tu ya kubainisha vitambulisho nyingi kwa mara moja. Kisha sisi tumepewa braces curly. Hivyo inaonekana, hii anaelezea browser, kufanya urefu wa ukurasa 100%. Hivyo hata kama kuna kidogo sana maudhui, kufanya ukurasa mzima, kufanya jambo kujaza ukurasa. Kufanya ramani hatimaye kujaza ukurasa. Margin, hiyo ina maana gani? Hiyo ni kawaida kama holela nafasi nyeupe pembezoni mwa kwamba baadhi designer browser tu aliamua lazima kuna, kwa sababu aina ya hufanya mambo kuangalia safi. Lakini hatutaki hiyo. Tunataka ramani kwenda njia yote ya edges. Padding, sawa katika roho kwa kishindo. Kishindo maana nje, padding njia ndani, lakini ni moja aina ya mpango huo. Ni kidogo ya buffer kati ya wewe na edges. Na kisha line 13 ni nzuri nafasi kwa ajili ya mapitio ya haraka. Je mkali ramani ishara maana, au hashtag ramani ina maana gani? Je, hiyo kutaja, katika kanuni? Watazamaji: [inaudible] DAVID Malan: Hasa. Mali hii, CSS mali hii inatumika kwa jambo moja tu, tag HTML ambayo ina ID ya quote, unquote "ramani". Na sasa hebu kufunga mbele, kitabu chini kwa chini ya faili, ambayo si mbali sana, na taarifa juu ya mstari 19, kama wewe kuweka ni hasa kama mimi, line 19 ina tu div, ambayo ni mgawanyo wa ukurasa, ambayo jana mimi aitwaye rectangular kanda. Ni got kitu ndani yake. Ni tag wazi, karibu tag. Lakini haina kuwa na ID ya kipekee. Hivyo kile inaonekana kuwa kinachotokea hapa ni Google ni readying mtandao wetu ukurasa wa kuwa kamili 100% urefu, na hakuna padding, hakuna kishindo, kwa sababu nini tunakwenda kuweka ndani ya div hii, ambao ID kipekee ni ramani, ni halisi iliyoingia ramani. Na tunataka kujaza ukurasa na si tu kuwa baadhi ya Mstatili ndogo katikati. Hivyo line 14 vile vile inasisitiza, map yenyewe inapaswa kuwa na urefu wa 100%. Hivyo sasa taarifa kati ya mistari 20 na 28, hii ni JavaScript kificho. Na hii ni, hata kama ni syntactically ajabu kidogo, kuna si yote kwamba mengi kinachoendelea hapa. Katika mstari 21, hii ni kutangaza kitu kinachoitwa kutofautiana. Badala ya kuiita sawa, kama tulivyofanya kabla, tuko kwa usahihi kusema var, ambayo ina maana kutofautiana. Tunaweza wametumia kwamba katika kificho Nick, lakini hakufanya hivyo, hivyo mimi haikujali kufanya hivyo aidha. Ni kutofautiana kuitwa map, na kisha kuna kazi hiyo ni inaonekana aitwaye initMap. Hivyo hii ni kama desturi yetu wenyewe puzzle kipande katika Scratch. Tumekuwa umba kipande cha utendaji inaitwa initMap, na unaweza aina ya infer nini kinaendelea hapa. Upande wa kushoto, sisi tumepewa kutofautiana, hivyo tunakwenda kuweka zifuatazo Jambo ndani ya variable kwamba, kutoka kulia kwenda kushoto. mkono wa kulia upande anasema, hey browser, nipe ramani mpya ya Google. Na google.maps.map ni njia tu funky ya kubainisha kwamba utendaji hii ni mali ya Google Maps. Baada ya mabano, tumeona hili kabla, hey browser, kupata me vipengele katika ukurasa, tag katika ukurasa ambao kipekee ID is-- Watazamaji: [inaudible] DAVID Malan: --map. Na kile kinachoendelea, vizuri, mstari huu pamoja, line 23, ni kimsingi akisema, hey browser, kwenda kupata me kwamba div tupu kwenye ukurasa ambao ID kipekee ni ramani, kwa sababu nataka kuingiza katika it-- kuingiza ndani yake, kama wewe will-- rundo zima ya bidhaa za hiyo ikitokea kuwa kuja kutoka mtandao, hatimaye. Na Google kufanya yote ya kwamba kwa ajili yetu. Hivyo tena, katika mwisho wa siku, tuna mfano huu wa kufikirika tu. Mimi sijui nini ramani ni au jinsi ya kutekeleza ramani API. Hatuna haja ya. Sisi tu haja ya kuwaambia ramani ambapo kuweka yenyewe, na kuondoka wale utekelezaji msingi maelezo ya Google. Sasa kuna inaonekana vipande viwili vya data kwamba mfano huu ni kutoa kwa API Google. Inavyoonekana katikati ya ramani, na zoom ngazi, hivyo kusema. Na haina mtu yeyote kutambua haya kuratibu, latitude na longitude? Pengine, lakini tunaweza kurudi nyuma kwa mafunzo, literally kuona. Lakini tutaweza kuona katika muda tu. Zoom ngazi ni thamani kati ya, sijui unajua, mmoja katika 13 au kitu kama hicho. Ni tu ina nini na jinsi mbali wewe ni zoomed ndani au nje, na hiyo ni yake. Na sasa katika mwisho wa ukurasa, taarifa mstari 29-- ni kidogo mbaya kwa sababu ni wraps-- hii mstari wa kanuni ni nini downloads kwa kisakuzi API halisi ya Google. Wote wa kificho kwamba Google wahandisi wameandika kwamba kutekeleza kipengele hiki nzima ya ramani embeddable. Sasa hebu mabadiliko ya kitu chochote. Kama wewe ni kufuatia pamoja, kwenda mbele na tu kuokoa faili kwamba, kama wewe kweli kuwa nini nina. Nenda kwa URL yake. Unaweza bonyeza kifungo kukimbia juu juu na kwamba atakuambia wewe URL ya mtandao wa kompyuta yako tena. Na itasababisha wewe tabo mpya. Kama wewe click Open kwa map.html, na ni tabia mbaya wewe ni kwenda kupata tahadhari, ujumbe wa makosa, ndiyo? Ujumbe wa makosa, makosa ujumbe? Hivyo kwa bahati mbaya, kosa ujumbe si kwamba mwangaza isipokuwa kama kweli kufungua console, kwamba tab maalum sisi naendelea kufungua jana na kidogo mapema leo. Lakini mimi mashaka katika hili mapema, hivyo mimi tayari figured nini ufumbuzi ni. Katika slides leo, au badala yake, katika Cloud9, ilani kwamba sisi hakufanya kitu kwa makusudi. Taarifa kwamba hii tag script katika line 29, kama wewe kusoma kwa njia hiyo, ni kama maps.googleapis.com/ kitu, kitu, kitu, kisha taarifa ya mtu, mmoja wa watengenezaji, aliandika katika mji mkuu zote barua, API yako muhimu. Tunahitaji kuweka kitu katika huko. Na hii ilikuwa ni hatua Mimi alifanya kwa ajili yetu kabla, na tena wapate Svartlistade sisi kama ghafla, 12 au zaidi ya sisi kuanza kutumia ufunguo huo, lakini hebu angalia nini kinatokea. Hivyo kama wewe kwenda katika leo slides, slide moja baadaye, kuna sana funky-kuangalia hii kamba ya maandishi. Kwenda mbele na nakala tu na kuuweka ambapo anasema API yako muhimu. Hiyo ni moja mimi saini kwa ajili ya. Na dhahiri si kujaribu kuandika nje manually, kwa sababu anahisi mkali na typos, uwezekano. Hivyo tu nakala na kuweka hiyo. Na itakuja kufanya mstari tena, lakini sasa, tu kuwa wazi, ni lazima kuangalia zaidi kidogo kama hii, ambapo muhimu ni sawa na si mtaji kunguruma katika wewe. Hifadhi ukurasa wako, kurudi nyuma tab mengine, upya, na matumaini ya kuona ramani ya wapi? Watazamaji: Australia. DAVID Malan: Australia. Hivyo inaonekana wale ni GPS kuratibu ya Australia. Na napenda kutembea kwa muda tu na kusaidia mtu yeyote ambaye si huko kabisa, lakini napenda kupendekeza, kupitia Google, kupata GPS kuratibu ya mji yako mwenyewe au mwenyewe nyumbani nchi yako. Na pengine Google anaweza kurejea huu up, au Wikipedia anaweza kukuambia. Lakini kuchagua maadili mbili tofauti kwa latitude na longitude, kurudi nyuma katika na kuweka yao, na kisha upya ukurasa baada ya kuokoa na kuona kama unaweza kuwa na map kwa ajili ya mji yako mwenyewe. Na wakati wewe ni kosa na kwamba, kufuatilia challenge-- na mimi nitakupa kidogo kidogo mwelekeo, makusudi, ili makusudi kuwa na mapambano kwa wanandoa dakika na nyaraka, mabadiliko ramani kuwa si hii cartoonish default, lakini ramani satellite. Hivyo kweli kuona satellite picha badala ya rangi pretty. Na ladha Mimi nitakupa ni mabadiliko ya aina ya ramani. Kwenda nyuma ya kuwa kupata ilianza ukurasa kwa ajili ya uongozi. Kama unaweza kuwa zilizopatikana, kama wewe ni kuangalia, kuna watu wengi zaidi mambo unaweza kufanya. Baadhi ya una tayari iliyopita aina ramani. Lakini unaweza do-- kwa mfano, napenda kwenda kwa kitu tulivyofanya kwa ajili ya kozi Mimi teach-- maps.cs50.net. Moja ya undergrads yetu alifanya hivyo. Sisi kituo cha ramani yetu juu ya Harvard Yard na overlay wote wa majina haya jengo, na tulikuwa naye kuongeza hii. Hivyo kama nataka kutafuta, Kwa mfano, Matthews Hall, tuna kidogo kushuka chini menu. Na nadhani yeye kutumia Bootstrap, maktaba sisi kujadiliwa mapema kwa hili. Na kama wewe bonyeza Matthews Hall, ni mara moja anaruka ramani ya fulani eneo, na inaonyesha wewe picha katika hii kidogo pop-up. Lakini hata hii kidogo pop-up, sisi haikutekeleza. Kama mimi kitabu chini ya kupata yetu ilianza ukurasa na kuangalia kwa maelezo madirisha, utaona kwamba baadhi ya utendaji wewe mwenyewe Unaweza kuongeza, angalau kwa kidogo zaidi utata, ni kitu kinachoitwa info dirisha. Na kama mimi bonyeza mfano hapa, na hii ni nini furaha, unaweza kufanya mambo kama hii, kubonyeza alama na kisha voila, Maelezo pops up. Hivyo tuna kabisa vishawishi sifa za kutosha za JavaScript rangi picha ya hasa jinsi inaweza waya yote ya mambo haya kwa pamoja, lakini tumekuwa aina ya scratched uso. Kwa kweli, ni nini mimi tu alifanya wakati Mimi clicked juu ya marker kwamba, ilikuwa kuchochea tukio, a kinachojulikana juu ya tukio click. Na sisi kweli waliona tukio mapema leo, kinachojulikana kuwasilisha tukio, tulipokuwa kuzuia user kutoka kwa ajili ya kutafuta paka. Hivyo tumekuwa aina ya ilichukua na choosed kutoka miongoni mwa makala haya yote mbalimbali, kukupa hisia, hopefully, ya nini unaweza kweli kufanya na kidogo zaidi faraja katika programu, na rasilimali bure kabisa. Maswali yoyote? Hakuna? Hii ni nafasi yako ya mwisho, angalau leo, siku ya Ijumaa, kupata kitu chochote mbali kifua yako hivyo kwamba kutembea nje ya hapa hisia za kujiamini na starehe. Ndiyo. Watazamaji: Kwa nini si kuongeza jambo moja zaidi? DAVID Malan: Oh wangu wema. Nahitaji kupumzika mwishoni mwa wiki hii, nadhani. Maswali mengine? Watazamaji: [inaudible] DAVID Malan: can-- katika Internet Explorer, kupumzika kwa amani, wewe kutumika kuwa na uwezo wa kuweka VB script, virtual msingi script, lakini kwa kweli kamwe hawakupata juu. Hivyo jibu fupi ni tu JavaScript. Maswali mengine? Haki ya wote, vizuri, basi mimi kufanya hivyo. Hebu kunyakua wenzetu nje. Wana baadhi tathmini aina kwamba wanataka kila mtu kwa kutumia dakika chache kujaza. Wanataka kukusanya fomu kuwa na yoyote waivers kwamba unaweza kuwa nje. Wao utakuwa pia kuwa na vyeti. Mimi guessing kuna bado baadhi ya vitafunio nje. Nipishe hizi nje, na kama wewe una maswali yoyote wakati huo huo, Mimi itabidi kutembea mmoja mmoja zaidi na tunaweza kupata wewe kuanza. Ndiyo, bila shaka. Watazamaji: [inaudible] DAVID Malan: Hiyo kawaida kweli siku hizi. Hakika kwa mtandao programu, wewe ni leaning juu ya wengine wewe ni ama aesthetically kutumia vitu kama Bootstrap, hivyo huna kuwa na kutekeleza kiwango cha chini maelezo ya menus na vifungo na wote. Wewe ni leaning juu ya mtu kama Google ili uweze hawana kujenga Uber biashara na biashara ya ramani, na idadi yoyote ya sawa maombi pia. Kwa kweli, logins ni maarufu, pia. Ikiwa umetumia Spotify au idadi yoyote ya Nje, wewe utakuwa kuingia kwenye baadhi Nje kutumia Facebook. Kwa hiyo kile ni nzuri, kuna ni APIs kwa logins siku hizi, ili huna kuwa na watumiaji yako mwenyewe meza na wote wa database yako mwenyewe lazima kwa kiwango sawa. Unaweza basi Facebook kufanya yote ya kuwa utata kwa ajili yenu. Hivyo ni wakati wa kusisimua, uaminifu, katika programu, kwa sababu kuna watu wengi chama cha tatu Huduma uweze kujenga juu ya. Na tena, bei ya kulipa ni ama fedha au downtime. Kama Google inakwenda chini, hivyo haina Uber, arguably, lakini labda hiyo ni busara biashara-off. Na tena, kwamba alikuwa mmoja wa mandhari, hopefully, kwa wanandoa wa zamani wa siku, ni hizi biashara awamu ya pili. Na mara chache ni pale kwenda kuwa jibu sahihi. Ni kweli ni bora majibu mawili au zaidi. Kupita hizi kote. Na akaunti hizo Cloud9 itaendelea kufanya kazi, katika nadharia, katika milele. Unaweza kupata kama wewe kusubiri siku chache au wiki moja au zaidi kwa kuingia tena ndani yao, inaweza kuchukua kama moja au dakika tano kufungua nyuma juu, lakini hiyo ni kwa sababu tu wao kuweka ni kulala ili kuokoa juu ya rasilimali.