>> [Music kucheza]
>> DAVID Malan: Hii ni CS 50, na huu ni mwanzo wa wiki tisa.
Na nini sisi mawazo tunatarajia kufanya leo siyo tu karibu sura juu ya wiki iliyopita
nyenzo ambapo sisi ililenga server upande mtandao programu kwa PHP na SQL,
baadhi ya mambo database.
Tutaweza majadiliano juu ya kidogo ya usalama leo na kisha
mpito kwa programu upande wa mteja Lugha inayojulikana kama JavaScript.
Lakini kwanza, baadhi ya ukombozi.
>> Unaweza kukumbuka kuwa juu ya Jumatano, mimi yaliyowekwa
kuandika tovuti ya kwamba alichukua katika pembejeo mtumiaji
na HTML fomu kwamba kisha kuhifadhiwa kwamba majina pembejeo user, simu
namba, na simu ya mkononi flygbolag katika database.
Na kisha mimi alikuwa na amri kidogo line script imeandikwa katika PHP
kwamba ilitakiwa iterate juu ya safu katika database
na kutuma nje ujumbe wa maandishi.
Licha kadhaa, majaribio kadhaa, sisi hakuwa na kupata kwamba kazi na mwisho.
>> Hivyo mimi alitumia wiki hii nzima kazi juu ya kwamba kanuni kupata yetu nyuma hatua
ambapo sisi kushoto mbali, ambapo yote I got na mwisho wa Jumatano
ilikuwa ujumbe huu wa maandishi kutoka Margo kama mimi Jihadi,
ikifuatiwa na ujumbe wa maandishi kutoka mwingine classmate, Nimepata hii Daudi.
Ikifuatiwa na hii moja, ajabu kutia moyo.
Agizo juu ya kwenda, kutia moyo sana.
Mimi karibu got ni mpaka then-- na hiyo ni kumbuka sisi kumalizika siku ya Jumatano.
Na kisha kweli labda favorite yangu, wakati baadaye, hii alikuja katika.
Damn kuishi mkondo.
>> Hivyo leo, sisi kurekebisha hili na haraka kuangalia nini mimi tumefanya tangu.
Basi wote wa hii kanuni ya inapatikana online kutoka wiki iliyopita, wiki nane,
chanzo code.
Na utaona kwamba nilikwenda kupitia, na mimi kwa kweli kusafishwa up mambo kidogo.
Mimi ilianzisha wanandoa nyingine makala ya SQL database.
Kwa mfano, badala ya tu kufanya carrier ya var Char
kama Nadhani alifanya juu ya kuruka wiki iliyopita.
Mimi badala defined kama kile kinachoitwa enum.
>> Na baadhi ya unaweza kuwa na kuonekana hii kama sisi Kugundua C. Enum ni kweli
hulka ya C ambapo unaweza enumerate rundo zima la constants
na hawawajui yao maadili moja kwa moja, kama moja, mbili, tatu, nne
bila ya kuwa na namba ngumu kificho.
Hivyo SQL inasaidia huo, ambapo kama una uwanja database kwamba tu
wanataka kuchukua moja ya finite maadili, unaweza literally bayana ni
kama nimefanya huko kwa wanne maarufu Marekani Mkono flygbolag.
>> Hivyo mimi alifanya hivyo.
Na mimi alifanya idadi ya mabadiliko kama vizuri, muhimu zaidi ya ambayo
ilikuwa kupata email kufanya kazi kwa sababu wanakumbuka, kwamba mpango huu kutegemewa ambayo
ujumla aitwaye email SMS gateway, ambayo ni tu
njia dhana ya kusema kwamba Verizon, na AT & T, na folks nyingine kusaidia server,
ambapo kama inayopata email, ni waongofu kwa SMS
na kuzituma nje Nakala ujumbe kwa simu ya mtu.
Hivyo kama mimi alifanya hivyo kwa usahihi, hapa ni mpya na kuboresha fomu
kwamba ni kwenda kuzungumza na mpya na kuboreshwa code, ambayo
unaweza kucheza na online.
Na itakuwa hopefully kufanya yangu simu beep katika muda tu.
>> Hivyo kwanza, mimi nina kwenda aina katika jina langu.
Pili, mimi si kwenda kufanya hili wakati huu.
Mimi nina kwenda kufanya Kukagua kipengele.
Na hii ni kitu kidogo ili mimi si
kujenga masaa ya uzalishaji baada kazi kama mimi mara ya mwisho.
Sasa kuna simu yangu ya simu.
>> Mimi itabidi kuchagua Verizon.
Na hapa, hebu kurejea kwenye kipaza sauti hii hapa, na lengo hili katika simu yangu hapa.
Mimi nina kwenda bonyeza Daftari, ambayo lazima hopefully
kuiweka katika database.
Sasa mimi nina kwenda kwa mstari amri mpango, ambayo
wanakumbuka aliitwa dot slash maandishi, na kuvuka vidole.
Hapa sisi kwenda.
>> [PHONE dings]
>> [Makofi]
DAVID Malan: Hivyo furaha zaidi kuliko this-- ni furaha, bila shaka, kama mimi kupata ndani yake.
Lakini ni furaha zaidi, mimi mawazo, kama sisi kuundwa mmoja wa wale wakati movie
ambapo kama kitu kweli mbaya imetokea katika dunia,
na kama wote NSA watu simu za mikononi kuanza beeping
na ujumbe wa maandishi kuwatahadharisha kwao ukweli huu.
Hivyo nimeona tunataka kujaribu recreate sawa hapa,
ambapo si kutumia database, Mimi badala mapema
aliandika mpango kwamba inaonekana kama hii.
>> Hii ni index.php-- na mimi kuweka kanuni hii online
kama well-- kwamba inaonekana tu mithili form.php,
kutumia MVC style dhana kwamba sisi majadiliano juu ya undani zaidi katika tatizo kuweka
saba.
Fomu kuwa ni pretty rahisi.
Ni kwenda kuwasilisha kwa faili inayoitwa here.php kupitia post.
Na ni inaonekana kwenda kuuliza kwa jina, na namba ya simu,
na kisha kupitia kinachojulikana Kuchagua menu, ni
kwenda kukupa angalau nne maarufu Marekani Mkono flygbolag,
na kisha kuruhusu ufanisi kuchukua mahudhurio kwa kubonyeza hapa.
>> Na hapa, wakati huo huo, ni kwenda kukopa baadhi ya kanuni kutoka wakati wa mwisho.
Na kama wewe tu skim hii, utaona kwamba kuna
rundo zima la kuangalia makosa.
Lakini uzuri mwishoni ni kwamba sisi siyo kuandika database leo.
Sisi ni kuweka rahisi na kutuma tu nje hopefully
ujumbe wa maandishi kupitia kazi mimi aliandika juu ya siku chache zilizopita wito
Nakala, ambayo ni katika Kazi. php, ambayo ni tena inapatikana online.
>> Hivyo kama ungependa kushiriki katika hili.
Sisi siyo kwenda kuwa hifadhi ya kitu chochote.
Kwenda URL hii hapa katika muda halisi.
Je, si kuwasilisha bado tu, lakini hebu kuona kama tunaweza kuwa mmoja wa haya movie
wakati ambapo India ya kila mtu kuanza beeping, hopefully tu
mara moja mwaka huu tofauti mwaka 2011 ambapo alikwenda horribly awry.
Na mara moja kwenda kwa anwani hiyo, unapaswa kuona aina super rahisi
kwamba kama una jina, simu ya mkononi idadi, na simu ya mkononi carrier kwamba
mechi orodha huko, kwenda mbele na kujaza fomu.
Lakini si hit kuwasilisha bado tu.
>> aina kinaendelea kuangalia kama hii.
Kwenda mbele na aina katika jina lako, namba ya simu.
OOP, mtu kinaendelea mbele ya Curve.
Ni sawa.
OK, kila mtu kujazwa fomu.
Hii lazima kazi juu ya simu, pia, kama unataka.
Haki zote, juu ya alama yako, kupata kuweka, kwenda.
Kugonga Hapa.
Nini?
Hakuna
Naapa kwa Mungu, mimi kupimwa mara nyingi hii leo.
Wewe got it?
>> [INTERPOSING VOICES]
>> DAVID Malan: Sawa, kosa user labda.
Hiyo ni mbili.
Ni kazi kwa mbili nje ya mia chache, tatu, nne.
OK, hiyo ni nzuri.
Wanne kati ya watano kwa usahihi jinsi kuhusu.
>> Hivyo kile kilichotokea tu?
Hivyo labda, bila kuona yako skrini, kwa nini kinaweza kuwa errored?
Pengine ni kwamba sisi walikuwa tu kujaribu kufanya uhusiano wengi mno
Harvard ya server mail wote katika mara moja kutoka anwani ya IP huo.
Mimi tu guessing tangu sikuwa anasa ya kupima
kanuni hii na baadhi ya Watu 300 katika mapema
lakini kwa sasa kutambua kwamba kwamba angalau lazima
waliopata kazi kufanyika wakati huu.
>> Haki wote, hivyo kwa nini ni hii yote zaidi germane na nini kinaendelea?
Vizuri kwanza, haraka michache ya matangazo.
Hivyo moja, kama Ningependa kujiunga Chang, na Nick, na wengine katika chakula cha mchana Ijumaa hii,
kufanya RSVP katika URL kawaida huko.
Kama wewe ni kufikiri ya kuzingatia katika au kufanya sekondari katika CS,
kama wewe ni sophomore, au Freshman, au hata junior au mwandamizi katika hatua hii
na bado unaweza itapunguza katika kozi, kutambua kwamba uhandisi shule
ni kukusanya kwa ajili ya bure Ben na Jerry ya cream barafu na ushauri
Jumatano hii muda mfupi baada ya darasa katika 04:00 katika jengo CS
katika Maxwell Dworkin.
Kama hii ni haraka sana juu ya screen, tu kwenda
kwa cs50.harvard.edu kwa kiungo kwa tukio Facebook
ambapo unaweza kuona maelezo zaidi.
>> Wakati huo huo, nilidhani kusahihisha Kitu nyingine moja mimi goofed juu ya Jumatano.
Zinageuka kuwa ID Marko kwenye Facebook hakuwa tatu.
Ilikuwa nne.
Zinageuka alikuwa mtihani zaidi akaunti kuliko mimi kukumbuka.
Lakini nini hii inaonekana kama fursa kufanya ni kuvuta up URL kama hii.
>> Hivyo ni zamu nje kwamba Facebook ana API, Maombi Programming Interface,
ambayo ni utaratibu ambapo wewe Unaweza kuomba data programmatically
katika Facebook na kupata nyuma mashine habari someka, si kurasa za mtandao
lakini Nakala tu mbichi, kitu aitwaye JavaScript Object nukuu.
Na kwa kweli, kama mimi kutembelea hii URL, na kuvuta, kwa default,
hii ni ya Marko hadharani kupatikana habari.
>> Na undani kuvutia hapa ni kwamba tu ID wake
ni kweli, idadi ya nne, ambayo mimi barabara haraka kama mimi alifanya hivyo.
Unaweza kufanya hivyo mwenyewe kama unajua yako Facebook username kama una moja.
Aina tu juu juu huko.
Na hakuna wa hii ni binafsi.
Mimi nina kufanya tu hii hata katika mode fiche.
Hivyo mimi si hata watumiaji katika.
Na wewe ni kuona kwamba mimi inaonekana alikuwa mtumiaji idadi 6454
kwenye Facebook, ambayo si mbaya sana siku hizi.
Hivyo anyhow, utapata pia kuona maelezo ya ziada huko.
>> Na kipengele muhimu ya kwamba ni kwamba
kuandika programu yako mwenyewe kwamba namna fulani samlar data kama hii
ndani ya maombi yako mwenyewe.
Unaweza kuwawezesha watumiaji kuingia katika tovuti yako,
si kwa kutumia yao wenyewe desturi jina la mtumiaji na password lakini labda Facebook yao ya kuingia
na kupata taarifa hata kuhusu marafiki zao,
kama kupitisha hizo, au sawa.
Hivyo kumbuka kwamba CS50, pia, ina baadhi ya APIs yake mwenyewe,
moja kwa data shaka catalog, baadhi kwa hugs menus katika dining
kumbi, yote ya majengo na maeneo
juu ya chuo tuna API kwa pamoja kwamba unaweza swala vile vile na kupata
nyuma textual data kwamba unaweza kuunganisha ndani ya PHP, au JavaScript, au hata,
ingawa chini ya kawaida, C msingi mradi wa mwisho.
>> Hakika mbele kwa fainali mradi ni milstenarna wachache.
Wewe got email kutoka kwetu siku nyingine.
Kutambua kwamba pendekezo ni kutokana hii kuja Jumatatu.
Ni si lazima kisheria, lakini huna haja ya kupokea wenzake mafundisho yako
kibali kabla ya kufanya mabadiliko yoyote baada ya hapo.
Na kisha mbele ni idadi ya milstenarna nyingine.
>> Hivyo kwa tease wewe, pia, pamoja na baadhi ya uwezekano,
tuna rundo la haya hue balbu mwanga.
Na baadhi ya guys sasa kuwa na baadhi ya haya katika Dorm chumba yako pia.
Na wao pia wana API.
Hivyo kukumbuka wale wiki binary balbu iliyopita kwamba Dan Bradley na Ansel
Duff kuundwa kwa ajili yetu.
Walitumia programu interface kwa bulb hii mwanga, ambayo kwa wakati
ni plugged katika umeme na kisha kupitia wireless
ni kushikamana na kitu kidogo aitwaye Bridge chini hapa,
kama kidogo router wamiliki kifaa fulani.
>> Lakini zinageuka kama mimi kujua jinsi ya kutuma ujumbe HTTP, kama sisi wote sasa kufanya,
Siwezi kutuma ujumbe kama hii kwa bulb hii mwanga kugeuka juu au mbali
au kufanya idadi yoyote ya shughuli nyingine juu yake.
Taarifa kwamba ni kupata, siyo baada.
Kuna mwingine mmoja aitwaye kuweka.
Kweli kuna nyingine chache verbs hiyo.
Lakini kuna taarifa ya njia pale, kufyeka API, kufyeka developer mpya,
kufyeka mwanga, kufyeka moja, kufyeka hali.
>> Hiyo inaonekana tu njia kwamba kampuni, Philips,
aliamua una hit na ombi HTTP
kama unataka kubadilisha hali ya bulb kutumia HTTP 1.1.
Basi taarifa line tupu.
Na kisha mwisho kile kinachoonekana kama aina ya safu ya aina fulani,
hii tena ni kwenda kuitwa JavaScript Object nukuu, au Jason.
Na nini unaweza kuona hapa ni kwamba kuna tatu thamani jozi muhimu.
>> Ufunguo moja inaitwa juu.
Na thamani yake inaonekana ni kwenda kuwa kweli.
Mwangaza ni 128, ambayo ni baadhi ya aina ya int.
Na kisha mpito wakati ni sifuri, ambayo inaonekana
muda gani kinaendelea kuchukua kugeuka jambo hili juu.
>> Hivyo sasa hivi bulb hii mwanga ni mbali.
Lakini kama mimi kufanya hasa this-- basi mimi kwenda kidogo kudanganya karatasi
kwamba Dan kuanzisha katika advance-- na mimi nina kwenda
kwenda mbele na nakala amri zifuatazo.
Curl, kama baadhi ya wewe anaweza kuwa zilizopatikana juu ya CS50
Kujadili ni shirika kama Telnet kama kwamba unaweza kuiga maombi HTTP,
hasa unaweka.
Siwezi kutuma data hii, hasa nini sisi tu
aliona wakati iliyopita hasa URL hii zaidi ya hapa.
Na kisha Curl ni kwenda kushughulikia yote ya headers zinazohitajika
na parsing kuna ya.
>> Hivyo wote mimi kufanya ni nakala hii katika dirisha terminal na kisha hit Enter.
Na balbu ya mwanga unaendelea.
Na hii yote ni kwenda kupitia kompyuta yangu wirelessly
namna fulani chini ya daraja, ambayo kisha kuzungumza na bulb hii mwanga.
Mimi siwezi kufanya kitu kingine.
Siwezi kufanya jambo hili kwenda nyekundu kwa mfano.
Siwezi kwa mfano kufanya jambo hili kwenda kijani.
Siwezi kufanya ni kwenda bluu.
>> Na taarifa katika kila moja ya haya matukio, wote kwamba mimi nina kubadilisha
ni kinachojulikana hue thamani kwa kweli kuwapa baadhi ya rangi.
Hivyo basi mimi kuweka hii moja katika pia.
Sasa ni bluu.
>> Na unaweza kufanya hata fancier mambo where-- hebu kwenda kijani.
Na mimi naweza kufanya hii ya Bila shaka kwa kificho yangu mwenyewe.
Lakini hata API yenyewe inasaidia shughuli funky
kama hii, ambayo sasa kujisumbua sisi kwa ijayo sekunde 30.
>> Hivyo hiyo ni moja ya ladha ya nini wapate kufanya na API, hii moja kuwashirikisha
balbu mwanga.
Kumbuka kwamba CS50 ina michache jozi ya Google kioo kama wewe d
kama kukabiliana na kitu pamoja wale mistari, Arduino Unos, ambayo
ni vidogo kompyuta kidogo, kimsingi, juu ya kidogo mzunguko wa bodi
kwamba unaweza kuunganisha waya na mambo mengine
kwa kweli na kudhibiti halisi ya mazingira ya dunia yako.
Na kisha kuna wanandoa toys mpya kwamba tuna.
Hii moja halisi tu waliowasili siku nyingine kwa njia ya barua, Myo uzinge.
Na nilifikiri ni njia ya kupata msisimko juu ya miradi
kwamba unaweza kutumia na vifaa hii ingekuwa
kuwa kucheza video hii fupi kwamba wao kutumia tease folks
kwamba sisi ni sasa wanaishi katika siku zijazo.
>> [Music kucheza]
>> DAVID Malan: Hivyo katika wiki chache tu, unaweza pia unaweza kuwa kwamba baridi katika CS50 haki.
Kifaa kingine kwamba sisi kuwa na rundo la kwamba sisi ni
furaha mkopo nje kwa ajili ya miradi inaitwa mwendo mtawala.
Hii ni kifaa USB kidogo kuungana kwa kompyuta kwamba
utapata kuingiliana na Laptop yako, Mac au PC,
kana kwamba alikuwa kama Xbox Kinect na kwa kweli kufanya mwendo kimwili sana
kama sisi kuona katika hii maono ya baadaye.
>> [Music kucheza]
>> DAVID Malan: Hivyo hata kama una wazo jinsi kitu kama hicho
inaweza uwezekano kuwa zuliwa au kazi juu ya ngazi ya vifaa, hakuna jambo.
Hata baada ya miezi michache tu ya CS50, na uelewa wa programu
ujumla zaidi, na programu ya mtandao zaidi hivi karibuni, na kisha pia APIs, na HTTP,
itabidi upatikanaji kupitia APIs programu kama wewe
je wanataka kukopa mmoja wa haya vifaa kwa kweli kuzungumza na yake
na si kuwa na wasiwasi kuhusu utekelezaji msingi
maelezo, ambayo ni kabisa sambamba na wazo hili la layering
kufikirika kwamba tumekuwa kuonekana katika muhula.
>> Hivyo pia mwishoni mwa wiki, aliona vipande michache ya habari.
Kwenda kwanza, kwenda semina kama wewe wangependa kujifunza kitu
zaidi juu ya idadi yoyote ya mada.
Angalia URL huko.
Na hii moja alitumwa mimi na Chang, ambao unajua,
ambaye ni uchapishaji wa jeshi letu la tembo.
Na ilikuwa kichwa cha habari kama ifuatavyo.
Mimi nina hofu ya TV yangu mpya.
Nini mimi nina hofu ya kurejea hii Jambo juu na wewe d kuwa pia.
Hivyo sisi ni sasa katika kumweka katika muhula,
pia, ambapo hata kama una kidogo ya ufahamu
ya jinsi ya mtandao matendo, na HTTP, na usalama, mambo kama haya
lazima kuanza kupata jicho lako.
Lakini pia, itabidi kuelewa kama mambo haya ni au si
halisi vitisho.
>> Hivyo mimi alichukua Sammandrag chache kutoka makala hii hapa.
Na hadithi ni kama ifuatavyo.
Mimi nina sasa mmiliki wa mpya smart TV, ambayo
ahadi ya kutoa Streaming maudhui multimedia, michezo, programu,
kijamii vyombo vya habari, na biashara ya kuvinjari, oh na TV pia.
Tatizo tu ni kwamba mimi nina sasa hofu ya kutumia hiyo, anasema mwandishi.
Ungekuwa pia, kama kusoma kwa njia Sera 46 ukurasa wa faragha kwa TV yako.
kiasi cha data hii inakusanya jambo ni kubwa.
Ni kumbukumbu wapi, lini, jinsi, na kwa muda gani kutumia TV.
Ni seti kufuatilia biskuti, kama tumekuwa kujadiliwa,
na beacons iliyoundwa kuchunguza wakati una
kutazamwa bidhaa fulani au ujumbe fulani email
kama unataka kuangalia barua pepe juu ya TV yako.
Ni kumbukumbu ya programu unaweza kutumia, tovuti ya kutembelea,
na jinsi ya kiutendaji na maudhui, kufanya yote ya kwamba kupitia TV yako smart.
Pia, creepier yet-- hiyo ni addition-- yangu
imejenga katika kamera na kutambua usoni.
>> lengo ni kutoa ishara ya kudhibiti kwa TV
na kukuwezesha kuingia kwenye Msako akaunti kwa kutumia uso wako.
Katika suala la mafanikio, picha ni kuokolewa kwenye TV badala ya kupakiwa
server ushirika.
On negativa, biashara uhusiano hufanya TV nzima
mazingira magumu na Hackare ambaye wameonyesha uwezo
kuchukua udhibiti kamili ya mashine.
>> Zaidi kumsumbua, kama kwamba hakuwa smart kutosha, ni kipaza sauti.
TV boasts sauti utambuzi kipengele
ambayo inaruhusu watazamaji kudhibiti screen na amri ya sauti.
Lakini huduma kuja na onyo badala ominous.
Tafadhali kuwa na ufahamu kwamba kama maneno yako amesema ni pamoja na
binafsi au nyingine nyeti habari, kwamba habari
atakuwa miongoni mwa data alitekwa na kupitishwa kwa chama cha tatu.
Got kwamba?
Je, si kusema binafsi au nyeti mambo mbele ya TV yako.
>> Hivyo hii ni kweli kwa kweli.
Na ni vigumu si kwa kuona kama wewe kwenda Best Buy au kama kwa TV
siku hizi.
Wao ni wote smart katika baadhi ya njia.
Na wao ni kupata nadhifu na creepier.
Na wao ni tu kukusanya data katika njia ambazo tumekuwa aliyesema kuhusu
na kisha kuweka kupitia HTTP au baadhi ya itifaki nyingine kwa baadhi ya server.
>> Hivyo hii ilikuwa ya makala ya kujifurahisha katika tovuti hii online
hapa, ambayo kuongelea mdudu fulani au makosa kificho
kwamba tunaweza kweli kufunga katika majadiliano ya wiki iliyopita.
Hivyo kichwa cha habari hii ilikuwa kama ifuatavyo, hadithi inakwenda hapa,
Josh Breckman kazi kwa kampuni hiyo ilitua mkataba
kuendeleza usimamizi wa maudhui mfumo, au CMS kama wao ni kuitwa,
kwa ajili ya tovuti ya haki kubwa ya serikali.
Mengi ya mradi wanaohusika kuendeleza mfumo wa usimamizi wa maudhui
hivyo kwamba wafanyakazi itakuwa uwezo wa kujenga na kudumisha
milele kubadilisha bidhaa kwa ajili ya tovuti yao.
Mambo akaenda pretty vizuri kwa Siku chache baada ya kwenda kuishi.
Lakini siku ya sita, mambo yalikwenda si hivyo vizuri.
Yote ya yaliyomo kwenye Tovuti alikuwa kabisa kutoweka.
Na kurasa zote imesababisha default, tafadhali kuingia maudhui ya mtandao ukurasa.
Whoops.
Josh aliitwa katika kuchunguza na niliona
kwamba moja hasa matatizo nje IP alikuwa
wamekwenda katika na ilifutwa yote ya yaliyomo kwenye mfumo.
>> IP hawakuwa kwa baadhi ya nje ya nchi hacker bent
juu ya kuharibu manufaa habari za serikali.
Ni kutatuliwa kwa googlebot.com, Google ya mwenyewe sana mtandao kutambaa buibui.
Whoops.
Baada ya kidogo ya utafiti na scrambling kuzunguka kutafuta Backup noncorrupt,
Josh kupatikana tatizo.
>> user alikuwa kunakiliwa na pasted baadhi ya maudhui kutoka kwa mmoja
ukurasa mwingine, ikiwa ni pamoja na Hariri Hyperlink
kuhariri maudhui juu ya ukurasa.
Kwa kawaida hii bila kuwa na Suala tangu user nje ingekuwa
haja ya kuingia jina na password, lakini mfumo wa uthibitishaji CMS,
mfumo kuingia, hakuwa na kuchukua katika akaunti
kisasa Hacking mbinu ya Google Spider.
Whoops.
>> Kama ni zamu nje, Google Buibui haina kutumia
biskuti, ambayo ina maana kwamba unaweza urahisi bypass kuangalia kwa
ni watumiaji juu ya kuweka kuki kuwa uongo.
Ni pia haina makini na JavaScript, ambayo kwa kawaida
kuchochea na kuelekeza watumiaji ambao si watumiaji katika.
Haina hata hivyo kufuata kila hyperlink juu ya kila ukurasa anaona,
ikiwa ni pamoja na wale walio na Kufuta Ukurasa katika cheo.
Whoops.
>> Hivyo hii ina maana gani katika zaidi kiufundi lakini uungwana kupatikana masharti?
Ni tu ina maana kwamba katika tovuti yao,
walikuwa URLs si tofauti hii moja kwamba unaweza kuona katika tatizo kuweka saba.
Kumbuka katika tatizo kuweka saba au kujua katika tatizo kuweka saba
kuwa wewe ni changamoto, miongoni mwa mambo mengine,
kuuza hifadhi kwa niaba ya watumiaji.
Lakini utekelezaji kwamba kipengele kwa njia ya kupata kupitia viungo katika user yako
interface, pengine si wazo smartest
kwa sababu kama tovuti yako ni namna fulani kupatikana ama kwa binadamu
ambaye kubonyeza kuzunguka au kununua bot kama Google au Spider
kama wao ni kuitwa tu kwamba kutambaa mtandao kujaribu index
mtandao kama search injini, hawakuweza urahisi sana
kugonga kupitia kupata aina hii ya URL.
Na kwamba ni functionally sawa na, katika kesi hii,
kuuza hisa zote za Google.
>> Sasa kusema ukweli, ni kabisa asinine kwamba CMS
kutumika JavaScript na kuki kutekeleza kuingia mfumo wake
na si kufanya kwamba upande server, kama nyie kufanya mapenzi na katika pset 7--
kuna login.php file-- daima, daima,
daima usalama lazima kufanyika katika upande server,
si upande wa mteja kwa sababu, kama hii Makala unaonyesha na wewe mwenyewe nguvu
kuona katika baadhi ya uhakika, ni dogo kwa mtumiaji, nzuri au mbaya,
tu kugeuka mbali JavaScript sembuse biskuti.
Hivyo kwamba ni WTF yako ya kila siku.
>> Kuna moja zaidi, ambayo ni aina tu ya inatisha,
hivyo mimi itabidi kutaja kama tu kama maisha ya somo.
Kila wewe kutumia maombi aitwaye kama Snapchat au kama
kwamba anasema picha hizi mwisho tu kwa sekunde tano, sekunde kumi, au whatnot.
Wao ni ephemeral Hiyo ni kabisa si kesi.
Kama hakuna njia, digital, kutekeleza baadhi ya fomu ya video,
au picha, au textual kugawana kama kwamba mpokeaji mwisho mwingine
hawezi namna fulani kuokoa data.
>> Katika njia nyingi wasiojua, mtu inaweza kuchukua simu zao.
Na wao wana 10 wa pili dirisha wakati kuangalia baadhi snap
tu kuchukua baadhi ya simu nyingine na kupiga picha hiyo, ni wazi.
Hivyo unaweza kuhifadhi kitu digital njia hiyo.
Baadhi ya wewe kujua jinsi ya kuchukua viwambo kwenye simu yako.
Kwa kweli, kama wewe sijui huu, kutambua kwamba angalau Snapchat,
na nadhani wengine maombi ya siku hizi,
angalau kukuambia kama mpokeaji ana kweli
kuchukuliwa screenshot ya picha yako.
>> Lakini bado mbaya, hii ilikuwa snappening, kama mtu aliunda hivi karibuni,
ambapo baadhi 100,000 snaps alikuwa iliyotolewa
katika kile kinachoitwa torrent faili kwenye tovuti mbalimbali hatimaye.
Na hizi zilizomo rundo zima ya ujumbe binafsi na posts.
Ni zinageuka wengi wao benign, hivyo si nini unaweza kutarajia.
Lakini kwa sababu watu walikuwa kutumika tovuti ya tatu chama,
magogo katika na Snapchat yao username na password na kisha
kuokoa wote wa snaps yao katika tovuti hii ya tatu ya chama.
Na ilikuwa kwamba chama cha tatu tovuti ya kwamba ilikuwa hacked,
ambayo tu maana mtu figured nje ya jinsi kupata yote pamoja 100,000 ya taswira hizo
ndani ya gari ngumu yao wenyewe kwa kushirikiana na baadae.
Kusema ukweli, hapa pia, ni aina ya asinine kwamba Snapchat
unatekelezwa kwa namna ambayo chama cha tatu unaweza aina ya kukatiza
data na kwamba si amefungwa kwa yako maombi mwenyewe mbio juu ya simu.
Lakini hapa, pia, kutambua kwamba hizi mambo lazima si kukamata wewe kwa mshangao,
au angalau kuna lazima kuwa somo maisha katika hapa.
Kama Ningependa kiufundi maelezo, kwenda URL kuna
hiyo ni katika slides leo.
Haki zote, maswali yoyote juu ya leo maisha masomo katika CS?
Kugeuka kuwa mbali.
Chochote wakati wote?
Mimi nimepata mengi ya watu kuangalia Snapchat yao au kitu sasa.
>> Haki wote, hivyo SQL, Uliza muundo lugha.
Hebu wrap hii.
Na pia, ingawa sisi ni scratching tu
uso wa hii lugha, tutaweza kukupa
kutosha wa lugha katika fomu ya pset 7
ili uweze kukabiliana na baadhi utendaji haki ya kawaida.
Lakini kutambua kuna wanandoa mambo ya sisi hawahitaji wewe,
lakini wao wanaenda kuwa muhimu kuja miradi ya mwisho
na kwa hakika kuja kufanya halisi Nje na watumiaji halisi
ni uamuzi huu design.
>> Ni zinageuka kuwa katika Mbegu MySQL, wewe
kuwa mashada ya uchaguzi kama aina ya data kwa nguzo yako
na mambo mengine, lakini pia una uchaguzi wa kinachojulikana kuhifadhi
injini kwa ajili ya yote ya data yako, aina ya faili mfumo,
kama wewe ni ukoo, kwa wote wa data zako.
Nini format ni hatimaye kuhifadhiwa katika?
Na kawaida, pengine, imekuwa MyiSAM na InnoDB, suala kiufundi
kwamba tutaweza tu huduma kuhusu kiasi kwamba mtu ana
na moja haina Kipengele zifuatazo.
>> Tuseme kwamba una kidogo Dorm friji.
Na kudhani kuwa wewe na yako roommate, ambao kushiriki friji huu,
ni kweli uzoefu wa kusema maziwa.
Na hii ni, kwa kweli, jinsi hadithi aliambiwa kwangu njia ya nyuma
katika siku wakati mimi alichukua kozi aitwaye CS 161 Uendeshaji Systems, ambayo
vile vile inahusu mada hii.
Hivyo nimepata friji hii.
Uko nje ya maziwa.
Na wewe kuja nyumbani, roommate yako bado katika darasa au chochote,
na kuamua mimi nina kwenda kwenda nje na kupata baadhi ya maziwa.
Hivyo wewe karibu fridge, lockup chumba Dorm, kwenda katika barabara ya
kwa CVS au popote, na kupata katika mstari wa kununua baadhi ya maziwa.
>> Wakati huo huo, roommate yako anapata nyumbani kutoka darasani, anapata katika chumba Dorm,
kuufungua fridge, pia anatambua ooph, tuko nje ya maziwa.
Hivyo yeye au yeye anafunga friji na kisha ikitokea
kwenda CVS mengine, ambayo hufanyika kuwa
kuzuia moja mbali kutoka CVS nyingine katika mraba, na anapata katika mstari
kuna kupata baadhi ya maziwa.
Dakika sasa, bila shaka, chache baadaye, wote wawili kupata nyuma,
na mbaya zaidi ya yote iwezekanavyo matokeo kilichotokea.
Wote wawili wa una maziwa.
Na wewe si kweli kama maziwa kiasi hicho.
Hivyo mmoja wao ni tu kwenda sour katika baadhi ya uhakika.
Hivyo sasa una unywaji maziwa katika friji wote kwa sababu kwa nini?
>> [Inaudible]
DAVID Malan: Yeah, hakuwa namna fulani kuwasiliana na kila mmoja
kwamba walikuwa kupata maziwa.
Hivyo katika rahisi ya njia katika ulimwengu wa binadamu,
jinsi gani unaweza kuepuka hili silly mazingira kutoka kinachotokea kama
kwamba tu kuishia na moja.
Nakala wao, ndiyo nzuri.
Lakini jinsi mwingine?
Baada ya inabainisha.
DAVID Malan: Post-ni kumbuka.
Aina yoyote ya mawasiliano kwamba anaelezea roommate yako
hawaendi katika friji kwa maziwa.
Mimi nina kwenda kuliweka sawa juu yangu mwenyewe.
Hivyo kwa namna fulani haja kwa kufuli rasilimali hii.
Hivyo tunaweza kufanya this-- tunaweza aina ya uharibifu hadithi na kurejea katika hadithi CS
ambapo kufikiria hili kama tu kama kutofautiana, ambayo ni hifadhi ya baadhi ya thamani.
Na hivi sasa, thamani ya maziwa ni sifuri,
ambayo hawataki yako roommate kukagua kwamba kutofautiana
na kisha kufanya uamuzi naye au mwenyewe kulingana na hali ya kuwa kutofautiana
kama wewe ni katika mchakato wa kubadilisha hali ya kuwa kutofautiana.
>> Hivyo moja ya mistari ya SQL kwamba sisi kukupa katika pset 7 vipimo
ni moja hii hapa.
Na hatuwezi kutumia mkubwa kiasi cha muda kuzungumza kuhusu suala hilo.
Lakini zinageuka, kama wewe ni kujaribu kununua baadhi ya hisa katika CS50 fedha
kwamba tayari kuwa baadhi ya hisa ya, wewe
wanataka kuwa na uwezo wa kufanya idadi mambo papo kwa pamoja.
Unataka kuwa na uwezo wa ufanisi, juu ya kiwango cha juu,
kuangalia yote ya haki, kama nataka kununua hisa zaidi ya Free,
senti hisa sisi majadiliano juu katika spec,
Nataka kuangalia kwanza hisa ngapi mimi.
Na kudhani ni watano.
Na nadhani wanataka kununua 10 zaidi, mimi hatimaye
wanataka kuwa 15 hisa za hisa.
Hivyo nina kuuliza maswali mawili.
Nini hali ya kutofautiana ni?
Nini hali ya mstari ni?
Hisa ngapi mimi sasa kuwa?
Kisha unataka kwenda mbele na update.
Hivyo hiyo ni Analog na maziwa katika kuwa wewe kuangalia mstari,
na kisha unataka update kwa sababu kama unataka kununua 10 ya hisa,
wewe hawataki kubadili mstari wa 10,
wanataka mabadiliko hayo kwa 5 plus 10 au, bila shaka, 15.
>> Mstari wa kificho kuhakikisha kwamba wale mawazo mawili dhana
kutokea kwa pamoja au si wakati wote.
Hakuna mtu, ikiwa ni pamoja na baadhi ya mtumiaji nyingine ambaye ni watumiaji katika tovuti hiyo,
unaweza namna fulani kupinga kuangalia ya mstari
na uppdatering ya mstari, kuchagua na update kama wewe.
Na syntax ni si super dhahiri, lakini mstari huu moja, kwa muda mrefu ni ni,
kuhakikisha kwamba wale shughuli mbili kuangalia kutofautiana au kuangalia mstari
na update mstari kutokea atomically.
>> Oh hapa sisi kwenda tena.
Ujumbe wa maandishi kwenye simu yangu.
Basi hebu kufanya a hii zaidi kidogo ya saruji.
Tuseme kwamba wewe si kutekeleza jokofu,
na wewe si kutekeleza Pset 7, lakini benki halisi,
au ATM, kujiendesha Teller Mashine, ambapo wewe kwa namna fulani
wanataka kuwa na uwezo wa kuwawezesha watumiaji kuhamisha fedha
kutoka akaunti moja hadi nyingine.
OK, hutegemea.
Mimi nina kwenda bubu hii sasa, asante.
Hivyo tunataka hoja fedha kutoka kwa mmoja akaunti namba
katika akaunti tofauti idadi, hasa $ 100.
Hivyo hii ni aina ya holela mfano, ambapo wewe, ATM,
kutaka kutekeleza mbili SQL maswali, Ondoa kutoka akaunti moja,
na kuongeza akaunti nyingine.
Lakini unataka kuhakikisha kwamba hizi mistari miwili wote wawili kutokea au si wakati wote.
Wewe hawataki kitu kupata kuingiliwa.
Huna baadhi smart guy mbaya namna fulani amesimama Benki Kuu ya Marekani
na ATM mbili mbele yake na kwa namna fulani
aina ya kuandika katika amri wakati huo huo,
hopefully kujaribu dra $ 200 badala ya $ 100 na tu baada ya $ 100 sifa.
Kwa kifupi, unataka hii kuishi hasa kama wewe kutarajia.
>> Na njia ya kufanya hii katika SQL database ni
wewe wrap ni katika nini aitwaye manunuzi.
Halisi katika SQL, unaweza kupiga CS50 ya swala kazi pamoja na kunukuu unquote kuanza
manunuzi.
Basi unaweza nitafanya idadi yoyote ya maswali baadae SQL,
lakini hakuna hata mmoja wao kuchukua athari juu ya database
mpaka wewe piga swala kunukuu unquote kufanya, kama tena kwa kutumia PHP.
Na kwa njia hii, unaweza kuhakikisha kwamba watumiaji hata kama una 1,000 wote
kupiga Mbegu yako wakati huo huo, SQL
ahadi kwamba hizi maswali mawili itakuwa
kutekelezwa haki moja baada ya nyingine.
Hivyo huna kuishia na ziada ya maziwa au kiasi vibaya, hatimaye,
ya fedha.
>> Hivyo kuweka hii katika akili, si sana kwa pset 7
lakini kwa ajili ya miradi ya mwisho kama wewe ni kweli
kujaribu hoja data kuzunguka hela meza kama wewe huenda hapa.
Lakini labda hata rahisi na zaidi dhahiri kuelewa na mfano
ni moja hii hapa.
Na mtu Emailed sisi kuhusu hii tu siku nyingine
alipoona kitu sawa online.
>> Hivyo kwa ufahamu wangu, mfumo siri si katika mazingira magumu na shambulio hilo.
Na mimi sina wazo kama hata matumizi Mbegu SQL chini ya kofia.
Lakini hebu kuitumia kwa ajili ya majadiliano.
Hapa ni screen kwamba Harvard folks huwa
kuona wakati magogo katika na wao Harvard ID simu na siri zao.
Na tuseme kwamba mfumo siri walikuwa kutekelezwa katika PHP na MySQL na
Mbegu, kanuni kwamba mtu Miaka anaweza kuwa imeandikwa iliyopita
ili kuangalia kama hii.
Kwanza, kutangaza kutofautiana aitwaye jina la mtumiaji.
Na tu kupata kwamba kutoka POST superglobal.
Kisha kupata mwingine kutofautiana aitwaye password na kufanya hivyo.
Na kisha tu nitafanya hii swala muda mrefu hapa,
kuchagua nyota kutoka kwa watumiaji ambapo jina la mtumiaji sawa vile na vile
na password sawa vile na vile.
>> Taarifa kwamba curly braces nimekuwa kutumika hapa
tu maana kwa PHP, kwenda mbele na badala
thamani ya hizo mbili vigezo haki pale.
Wao siyo madhubuti muhimu, lakini wao huwa na kuepuka makosa hila syntax.
Hivyo hii inaonekana kabisa sahihi katika mtazamo wa kwanza.
Na ni.
Unaweza kutekeleza mfumo siri kwa njia hii.
>> Lakini tuseme kwamba super smart na malicious mwanafunzi
pembejeo kama hii siri yake.
Hivyo nimekuwa kuondolewa risasi ishara hapa katika maskhara juu,
na nimekuwa kweli umebaini nini yeye au anaweza kuwa kuandika.
Na ni ajabu kidogo.
Lakini anaruka nini nje saa wewe katika uwezekano inatia mashaka kuhusu pembejeo mtumiaji,
hata kama wewe hawana wazo nini Mashambulizi SQL sindano ina maana.
Kwa nini hii kuangalia fishy kidogo?
Nini hiyo?
[Inaudible]
DAVID Malan: au ni kidogo tuhuma.
Kwa kweli, kwamba ni Keyword kutoka SQL.
Ili hakuendani.
ukweli kwamba kuna quotes haya yote moja
there-- kwa kweli, moja ya njia rahisi njia ya kuvunja baadhi databaser
ni kwa kuandika katika jina kama O'Reilly ambayo ina apostrophe ndani yake
kwa sababu kama binadamu ambaye aliandika kificho nyuma ya pazia
haina kuchukua katika akaunti ya kwamba kuna inaweza kuwa quotes moja katika mtumiaji
pembejeo, na yeye au yeye ni kutumia quotes moja katika kanuni zao,
mambo mabaya yanaweza kutokea.
>> Kwa kweli, bado mbaya, fikiria hili.
Kama hii ilikuwa tena kificho kwamba mtu katika miaka Harvard
iliyopita aliandika kwa siri mfumo, taarifa nini
kuhusu kupata kubadilishwa kwa username na password
kama aina ya mtumiaji katika tena skroob kama jina la mtumiaji yao
na kisha moja, mbili, tatu, nne, tano, quote au kunukuu unquote moja sawa
kunukuu moja.
Na taarifa nini msingi hapa ni user hana
kuanza password yao au siri zao kwa kunukuu.
Na wao si kumalizika ni kwa kunukuu kwa sababu yeye au yeye
ni kuchukua kwamba kama programu haikuwa hivyo mkali,
wao ni kwenda na wale quotes moja katika kanuni zao.
>> Hivyo hapa ni kificho.
Na badala ya kuwa ili sasa kutokea ni hii.
Na nimekuwa alisisitiza kile user ina typed katika.
Hivyo kabla, baada ya.
Na taarifa nini upole inatia mashaka sasa kuhusu nusu haki ya kificho hii SQL?
Ni kidogo ngumu zaidi, admittedly, kuliko maswali tumeona.
Lakini hii haiwezi uwezekano kuwa ni jambo jema kama wewe ni
akisema kuchagua nyota, ambayo ni kuchagua kila kitu kutoka mtumiaji meza
ambapo jina la mtumiaji sawa skroob na password sawa moja, mbili, tatu, nne,
tano au moja sawa na moja.
Nini maana mantiki ya kwamba kifungu mwisho labda?
Ni tu kweli daima.
>> Na kwa sababu tuna aina ya guessed au figured nje kwa majaribio na makosa
kwamba programu ambaye aliandika kificho hakufanya hivyo
wanatarajia binadamu au mbaya kuandika katika quotes moja kama vile,
tunaweza syntactically kukamilisha SQL query
na kitu nonsensical lakini kitu ambacho
ni syntactically sahihi kwamba daima kutathmini kwa kweli.
Hivyo kama kanuni hii ni kuwa kutumika kujibu swali kweli au uongo lazima
user hii kuruhusiwa kupita, Jibu ni daima inaonekana kwenda
kuwa ni kweli kwa sababu hii ni daima kwenda kuchagua kitu kutoka orodha
kwa sababu moja ya shaka daima ni sawa na moja.
>> Basi nini ufumbuzi?
Vizuri katika pset 7, sisi kweli kuepuka hili wote pamoja.
Sisi kukupa kazi swala, na sisi kuhimiza wewe kutumia alama swali
kama placeholders, sawa katika roho kwa printf ya% s,
lakini nini muhimu kuhusu alama swali hapa ni kweli kama kusoma kwa njia
functions.php, ambapo wetu swala kazi ni kutekelezwa,
alama ya wale swali ni alitoroka, ambapo kitu chochote uwezekano wa hatari
kama quote moja ni akageuka ndani ya alitoroka moja kunukuu.
>> Hivyo hii ni nini kweli yanatokea kama wewe
kutumia CS50 ya swala kazi au idadi yoyote ya chama cha tatu maktaba bure kwamba
kufanya hivyo.
Haijalishi katika kesi hii, kijani, kama mtumiaji ina typed katika kunukuu moja
kwa sababu ya swala kazi ambayo sisi aliandika ni
kwenda kuongeza backslashes kabla yoyote vile hatari kunukuu.
Hivyo hii si, katika kweli, itakuwa legit.
Hii ni kama kuandika katika mambo kuangalia password kwamba, bila shaka, si kwenda
kuwa password skroob ya halisi.
>> Hivyo takeaway kwa CS50 ni mmoja, kabisa daima kutumia kitu
kama CS50 ya swala kazi au maktaba ya msingi,
ambayo hufanyika kuitwa PDO.
Lakini kamwe, kamwe, kamwe kufanya kificho kama hii
bila ya kukimbia au scrubbing kama wanasema pembejeo yako.
Na wewe wakati fulani pengine kuja katika baadhi ya tovuti kama hii.
Kwa kweli, inaonekana kuwa kesi kama katika viwanja vya ndege na hoteli katika maeneo
ambapo wana bure Wi-Fi upatikanaji kwamba una kuingia kwa,
tovuti hizi ni daima horribly kutekelezwa.
Na hivyo aina ya furaha nyumbani mazoezi, si kwa madhumuni ya malicious au zaidi
ya furaha juu ya barabara zoezi, ni aina tu
apostrophe, quote moja, katika fomu juu ya baadhi ya tovuti
na kuona nini kinatokea.
Na kama server shambulio au anatoa you baadhi ya aina ya ujumbe wa makosa,
inaweza vizuri sana kuwa mtu hana hamu hii.
Na kisha lazima tahadhari sahihi mamlaka na kuendelea zaidi.
>> Hivyo sasa nyie lazima hopefully kuelewa kidogo zaidi geek ucheshi hapa.
>> [Kicheko]
DAVID Malan: Unajua wewe ni geek.
Kwa ajili ya pili kadhaa miaka, utakuwa kukumbuka
ambao kidogo Bobby Meza ni sababu ya hii cartoon hapa.
Hivyo kuendelea kuwa katika akili kama sisi kubadili mazingira mara moja ya mwisho
leo JavaScript.
Tumekuwa alitumia kiasi kidogo wakati juu ya syntax ya PHP
kwa sababu ni kweli super sawa na C.
Na nicely kutosha, JavaScript pia ni super sawa na C ya syntax
vile vile tutaweza kuona katika muda tu na kama tutaweza
kuona baadaye wiki hii hasa.
Nini unaweza kufanya na lugha hii, ingawa, ni nguvu zote zaidi,
hasa kwa APIs.
>> Lakini kwanza ya ziara ya haraka.
Hivyo moja, katika JavaScript, kuna hakuna kazi kubwa, ambayo ni nzuri.
Kama na PHP, unaweza tu kuandika code.
Masharti kuangalia kama hii.
Na maneno Boolean nguvu kuangalia kama hii au kama hii.
Swichi zipo, na wao ili kuangalia kama hii.
Wanne loops kuangalia kama hii.
Wakati loops kuangalia kama hii.
Kufanya whiles kuangalia kama hii.
Na kisha kuangalia kama arrays hii, ni sawa na PHP.
Lakini taarifa kwamba, katika JavaScript unaweza kutangaza variable si kwa dola
ishara, si kwa aina data halisi lakini kwa kusema var kwa kutofautiana mbele yake.
Ni pia ni loosely typed kwa kuwa ina aina,
lakini huna waziwazi kutangaza yao.
Na kisha kamba, kwa mfano, ili kuangalia
kama hii, kwamba kamba kuitwa s katika kesi hii.
Na kisha kitu.
Na hawa tutaweza kuona zaidi kabla ya muda mrefu.
Na kitu labda ni moja ya kawaida kuonekana miundo data
katika JavaScript msingi mpango kwa sababu inaruhusu
wewe kujiunga holela thamani jozi ufunguo tu
kama PHP ya arrays associative na kama tu hash yako mwenyewe meza
au kujaribu kama sisi kutekelezwa wiki chache nyuma.
Basi hebu kweli kuona nini tunaweza kufanya na JavaScript.
Na hasa, hii ni kufulia orodha ya makala
kwamba browsers na kwamba kuruhusu sisi kunasa JavaScript
ndani ya tovuti kwa njia zifuatazo.
JavaScript ni mara nyingi hutumika kama mteja upande lugha scripting.
Ni si ulioandaliwa.
Ni pia ni kufasiriwa.
Lakini tofauti PHP, ambayo imekuwa mbio juu ya server, katika mtandao wa kompyuta,
au ndani ya kina ya wateja, JavaScript
ni tofauti katika kwamba kawaida anaendesha katika browser.
>> Hivyo yoyote kificho JavaScript kuanza kuandika kwa pset 8, au mradi wako wa mwisho,
au katika ulimwengu wa kweli kwa ujumla kwenda kuokolewa kwenye kompyuta, kabisa
katika HTML dot dot au JS kwa JavaScript faili.
Lakini browser ni kwenda kwa kushusha kwamba JavaScript
kificho kwa mfano yako mwenyewe ya Chrome, au IE, Firefox au, au chochote.
Na kanuni ni kweli kwenda kupata kunyongwa ndani ya browser yako mwenyewe.
Tu kufanya hili zaidi ya kweli, hebu angalia hii katika fomu halisi.
>> Sisi hatuna wazo nini kificho hii haina bila kweli kusoma kwa njia hiyo.
Lakini ngoja kwenda Facebook.com bila magogo katika.
Napenda kwenda Kukagua kipengele na kwenda, hebu sema, Mtandao na Reload this Page.
Na tutaweza see-- napenda kuhama Reload Ukurasa kupata yote ya maombi kwa mwezi.
Na ya kwanza kabisa faili naona ni CSS, CSS.
Hapa ni ya kwanza JavaScript faili, na mimi kuwa
sijui nini anafanya hivyo, lakini hapa ni baadhi ya JavaScript kificho
kwamba anatoa Facebook.
Ni kweli hata kwamba akifafanua kwa kuvuta.
Ni bado tu kama nonsensical.
>> Lakini utaona hata chini chini, kuna hata zaidi ya haya files JavaScript.
Whoops.
Hiyo ni Ping.
Hebu kwenda chini kidogo zaidi, zaidi, zaidi.
Kuna moja.
>> Hivyo hata kama Facebook, nyuma ya pazia, imeandikwa katika sehemu katika PHP
na Facebook mwenyewe toleo yake, kuna kiasi kubwa ya JavaScript.
Kwa kweli, yoyote ya kuzungumza kufanya kwenye Facebook,
yoyote ya updates inline ratiba ya kwamba kutokea katika muda halisi, yote ya kwamba
inaendeshwa na JavaScript.
Yeah?
>> Watazamaji: Mimi nina uhakika kama hii ni Facebook,
lakini nilifikiri kwamba Facebook maendeleo mwenyewe katika nyumba kificho lugha yao?
DAVID Malan: Wao alifanya.
Hivyo kwamba ni kwa nini nasema ugomvi wa PHP aitwaye Hip Hop kwamba kweli
aliongeza makala kwa vile kwamba wakati Mark kwanza kutekelezwa Facebook,
hiyo ilikuwa imeandikwa kwa PHP.
Na kwamba aina ya imebakia aina ya mbele Lugha mwisho
kwamba wao kutumia kwa kiasi ya coding zao, lakini ni
haijawahi lugha hiyo mizani hasa vizuri kwa mabilioni
ya watu.
Na hivyo aliongeza kuwa wao wenyewe maboresho nyuma ya pazia.
Na wao kutumia idadi yoyote ya lugha nyingine
kwa vipande mbalimbali ya miundombinu yao.
Hivyo ndiyo, ni ugomvi wa nini sisi sasa kujua kama PHP.
>> Basi hebu kuchukua kuangalia katika mifano michache
ya jinsi sisi wanaweza kutumia JavaScript hapa.
Katika kanuni chanzo leo, tuna rundo la files, ya kwanza ambayo,
hebu aitwaye DOM sifuri.
Hivyo DOM sifuri inaonekana kama ifuatavyo.
Napenda kwenda katika saraka hii na kufungua domzero.html,
juu ya ambayo ina aina doc tamko, akisema inakuja HTML 5.
Na sasa hapa ni HTML tag.
Hapa ni tag kichwa.
Na hapa ni nini mpya leo.
>> Sasa tuna tag script ndani ya kichwa ya ukurasa.
Na hii inaonekana gani kidogo sana, lakini taarifa
kwamba nimepata defined script, JavaScript.
Na kama kando, tangu hii ni kawaida mbaya,
JavaScript ina kitu kabisa kufanya na Java, lugha
kwamba baadhi yenu nguvu wamejifunza katika APCS.
Ilikuwa ni zaidi ya masoko Jambo kuliko kitu chochote,
wanaoendesha coattails ya miaka Java iliyopita.
Lakini JavaScript, kitu cha kufanya na Java, tu vile vile, na annoyingly,
confusingly jina.
>> Hivyo hapa ni jinsi gani ya kutangaza kazi katika JavaScript, literally kusema kazi,
basi jina la kazi, basi yoyote hoja inaweza kuchukua,
tu kama katika PHP.
Zamu nje katika JavaScript, mmoja wa watu wengi kazi annoying kwamba kuwepo ni Alert.
Hii ni dirisha kidogo kwamba mapenzi pop up na macho yenu
kwa baadhi kipande cha habari.
Ni kwa ujumla juu ya kipaji.
Lakini tutaweza kutumia kama yetu zoezi kwanza hapa.
>> Taarifa makala chache ya JavaScript.
Single quotes na quotes mbili si kweli jambo tena.
Single quotes na mbili quotes inaweza kuwa interchanged,
ambapo katika C, una kutumia mara mbili quotes kwa masharti,
na una mbili moja ananukuu kwa chars.
Katika dunia JavaScript, watu wengi, watu wengi
kutumia moja quotes karibu masharti tu kwa sababu ni jambo Stylistic.
Lakini nini pamoja operator hapa, ambayo hatujaona kabla?
>> Watazamaji: concatenation.
DAVID Malan: concatenation.
Hivyo C haina hata hii.
PHP ina dot operator, ambayo haina hii.
JavaScript ina pamoja operator, ambayo confusingly ni kama Java.
Sasa nini kinaendelea hapa?
>> Hivyo hapa ni ambapo msingi uelewa wa picha kwamba
sisi akatupa juu ya wanandoa siku iliyopita anakuja katika kucheza.
Kumbuka wakati tulikuwa rahisi toleo la HTML page--
ni tu alisema, hello dunia.
Na kisha sisi waliochota mti na haki, ambayo
rundo la mistatili na mistari kuunganisha yao kama mti familia.
Hivyo hiyo ni kinachojulikana DOM au Document Object Model.
Na zinageuka kuwa unaweza kupata mistatili katika mti na syntax
kama yafuatayo.
Wewe literally kusema hati, ambayo ni maalum variable kimataifa katika JavaScript
mpango kwamba ina kazi yanayohusiana na hayo kwamba unaweza kupata
sawa na struct, lakini wewe tu kusema dot na kisha jina kazi ya,
kupata kipengele kwa ID.
>> kipengele Nataka kupata ni inaonekana kunukuu jina unquote.
Na kisha nataka kupata thamani yake.
Sasa sisi ni kupata mbele ya sisi wenyewe.
Mimi nina uhakika hata kile yote hii ni kuhusu.
Hebu mbele haraka kwa HTML juu ya ukurasa, ambayo ni super rahisi.
>> Taarifa kwamba nimepata defined a kuunda chini hapa.
Ilani nimekuwa kupewa ni ya kipekee ID, ingawa tumekuwa si kutumika
sifa hii kabla.
Lakini hii ipo katika HTML.
Unaweza kipekee kutambua baadhi chunk ya HTML na kitambulisho kama hii.
>> Ilani sasa this-- zamu nje HTML inasaidia, kwa kuwa orodha ya kufulia
wakati iliyopita, zima rundo la tukio handlers.
Na hii handler tukio anasema juu ya kuwasilisha.
User kuwasilisha hii fomu, piga kificho zifuatazo.
Na kificho kwamba kinaendelea kuitwa au kunyongwa
ni hasa hii, Kigiriki kazi na kufuatiwa na kurudi uongo.
Kila kitu kingine lazima kuwa pretty ukoo.
>> Hapa ni pembejeo ya aina ya maandishi, ambaye ID, katika kesi hii, ni kwenda kuwa na jina.
Hatuna jina halisi sifa time-- hii na kuwasilisha kifungo.
Hivyo kusababisha ukurasa inaonekana kama hii.
Na tabia kusababisha, utaona, inaonekana kama hii.
ukurasa ni mitaa majeshi anasema, hello David, vigumu aesthetically kupendeza
njia ya kusalimiana mtumiaji.
Lakini nini hasa kinachoendelea?
>> Naam, kufikiria nini hii ni.
Hii ni uwanja maandishi.
Na kwa mujibu wa HTML hapa, nimekuwa kupewa ni
kitambulisho kipekee aitwaye kunukuu jina unquote.
Wakati huo huo, nimekuwa alisema wakati user ananyenyekea fomu hii
kwa kupiga kuingia au kubonyeza Kuwasilisha kifungo, piga kazi kuitwa Nisalimieni
na kisha kurudi wa uongo.
Hebu fikiria wale walio katika reverse.
Taarifa wakati mimi click Kuwasilisha, URL ya ukurasa huu haina mabadiliko.
icon browser hakuwa na kuanza inazunguka.
Mimi si kwenda popote, na kwamba halisi kwa sababu mimi alisema kurudi wa uongo.
Kurudi Uongo short nyaya au vituo tabia default wa fomu.
Hivyo kwamba basi zinatuacha na swali hili moja ya mwisho.
Nini Nisalimieni nini?
Naam, inaonekana Nisalimieni wito kazi kuitwa
Tahadhari, hupita katika moja muda mrefu hoja kwamba
matokeo ya concatenating pamoja rundo la substrings, hello comma nafasi,
basi chochote hii anarudi.
Hivyo hati ni kama kimataifa kutofautiana kwa kuwa mizizi ya mti huo,
wito kazi maalum, vinginevyo sasa inajulikana kama mbinu.
kazi hiyo ni ndani ya kutofautiana ni
aitwaye njia badala ya kazi.
>> Hivyo kupata kipengele kwa ID.
Nini kipengele kufanya wewe wanataka kupata na ID yake?
Kunukuu jina unquote na kisha hasa thamani.
Hivyo kwa maneno mengine, kwamba kanuni tu hupata uwanja maandishi ambao ID ni jina
na kisha anapata thamani yake.
Hivyo kama mimi walikuwa na mabadiliko ya hii na kusema Davin badala ya Daudi,
na click Kuwasilisha, sasa sisi kuwa salamu kwa Davin.
>> Haki wote, hivyo wote faini na nzuri.
Lakini hebu angalia kama tunaweza kufanya hii kidogo safi tangu tu
kuandika code kama hii ni ujumla kwenda kuwa juu ya kipaji.
Hii ni kwenda kuangalia scarier.
Lakini nini kwanza tofauti kwamba wewe kumbuka hapa
katika toleo hili badala jina kubadilisha kwa DOM moja?
Nini kimuundo inaonekana tofauti kuhusu hili dhidi ya wengine?
Yeah?
Watazamaji: Je fomu juu ya juu ya script sasa?
DAVID Malan: Yeah, fomu ni juu ya script kwa sababu baadhi curious.
Hivyo kwamba ni jambo la kwanza kwamba anaruka nje saa yangu, pia.
Na nashiriki angalau, sehemu hii ni kufanana.
Hivyo kitu pekee ambayo inaonekana kuwa tofauti ni hii.
>> Hivyo hapa ni nini nadhifu kuhusu JavaScript 2.
Na inafanya ni vigumu kuelewa katika mtazamo wa kwanza,
hasa kwa ajili ya miradi ya mwisho kama wewe ni kuangalia sampuli kificho online,
lakini majipu chini baadhi msingi kisintaksia makala.
Hapa tena ni kwamba kimataifa variable hati.
Hapa tena ni kwamba njia au kazi kwamba anasema kupata kipengele kwa ID.
Wakati huu nataka kupata ID aitwaye demo.
Ambapo ni kwamba?
Hiyo inaonekana haki hapa, aina yenyewe.
>> Na sasa taarifa kwamba inaonekana kama mimi kupata nyuma kwamba nodi ya mti
inawakilisha aina yenyewe, si uwanja wa maandishi,
zinageuka aina hiyo, nodi au mstatili kutoka mti,
ina nini tutaweza kuwaita mali, sana, sana, sawa sana
katika roho kwa struct katika C. Ni tu mwanachama data ndani ya pembenne hii.
>> Hivyo mimi nimepata aina hapa, na mimi nina attaching,
au mimi nina kumshirikisha, On wake Kuwasilisha handler au tuseme On Kuwasilisha mali
kazi zifuatazo.
Na hii ni, kwa mbali, craziest Jambo hivi sasa syntactically.
Ni zinageuka katika JavaScript na katika PHP, na kusema ukweli kwa jambo hilo katika C,
ingawa sisi si kufanya hivyo, unaweza kuongeza Nameless, majina, au AKA lambda
kazi kwamba hawana jina lakini anaweza kuitwa hata hivyo.
>> Hivyo nini mimi kufanya hapa ni mimi nina kumshirikisha On hii Kuwasilisha mali hiyo, ambayo
ni ndani ya nodi hii ya DOM yangu mti, kazi, kazi pointer kama wewe.
Kazi ambayo hana jina, lakini kwamba hana
jambo kwa sababu tutaweza kuona katika wakati jinsi ya simu yake.
Wakati kazi hii ni wito, kanuni hii anapata kunyongwa, basi
uongo ni kurudi tu kama kabla.
>> Lakini tazama kile mimi tumefanya.
Katika hatua hii katika hadithi, nina fomu.
Ni got ID kipekee aitwaye demo.
Chini hapa, nina tag script kwamba executes kificho zifuatazo.
Ni inaona kwamba nodi katika mti ni On Kuwasilisha
mali kazi hii hapa.
Na tu na asili ya jinsi browsers kazi, wakati mimi sasa bonyeza Kuwasilisha au hit Enter,
kazi ambayo ni kwenda kupata kuitwa.
Haina haja jina kwa sababu ambaye heck anayejali nini ni kuitwa.
wakati tu ni milele kwenda kupata aitwaye ni wakati mimi kuwasilisha fomu.
Hakuna haja kwa ajili yangu, developer binadamu,
kwa kweli kuiita mahali popote.
>> Sasa tu kama teaser, kama kwamba walikuwa si nia kupiga kutosha,
tunaweza hata kufanya hii kuangalia zaidi cryptic kutumia
maktaba super maarufu aitwaye jQuery.
Kwa kweli jQuery na JavaScript mara nyingi alikataa.
Na nini tutaweza kufanya juu ya Jumatano ni mwanzo kutumia lugha hii na maktaba hizi
kujenga inazidi Asynchronous na maombi ya nguvu
kama ramani ya kupata maombi, maombi
kwamba update tovuti katika mali wakati, kiasi kama Facebook au Gchat
kufanya, na hakuna tena tunajikita katika kupiga Kuwasilisha na kupata au baada tu
peke yake.
Hivyo mimi kuona juu ya Jumatano.
>> [Music kucheza]