>> [9] [erosoagoa]
[Rob Bowden] [Harvardeko Unibertsitateko]
[Hau CS50.] [CS50.TV]
>> Guztiak eskubidea. Funtsean, gaur egun guztiak you guys sortu da galdera batzuk eskatu.
Gai batzuekin ibiltzea gai izan daiteke I
inork ez edozein galdera eskatu badu apur bat.
Zorionez, ez duzu. Norbaitek galderaren bat egin nahi?
Agian iragan galdetegiak, gauzak ez zara gaur egun eroso.
>> Bai. >> [Student] Ezin duzu bufferraren gainezkatzea erasoak baino gehiago joan? >> [Rob] Noski.
Adibidez nagusietako benetan hementxe izan daiteke.
Bufferraren gainezkatzea erasoak atzean akordio nagusiak dira
buffer batzuk ditugu, hemen.
Char c - duen tamaina 12 baino ez da -
baina gero zerbait txertatu gara buffer horretan
baina ez zehazki egiaztapena zenbat txertatu ari gara.
Hemen strlen (bar) txertatu gara C sartu, baina, nork daki nola bar luzea da.
12 karaktere baino gehiago bada, orduan hau da Buffer honek gainezka egingo.
Argazki hau begira -
hartu duzu bada 61 askoz gehiago ezagutzen jasoko duzu diseinua moduko honekin
eta gorde marko erakuslea eta itzulera helbidea eta gurasoen errutina pila aurre
eta benetako gauza horiek guztiak.
Baina hemen behar duzun besterik ez dugu izan duten jakin nahi
gure buffer espazio txiki honetan.
Hemen c (0) dugu eta, ondoren, c, 1, 2, 3, 4, 5 eta abar ditugu.
Egoera normalean buffer hori beteko genuke ohiko bakoitzeko.
Dugu sartuta badago 'kaixo' h-e-l-l-o / 0 genuke,
eta, ondoren, espazio huts mordo bat.
Hacker bat - oh, asmatzen dut honen adibidea da.
Hacker bat non honen antzeko zerbait lortuko dugu
zer zehazki egiten saiatzen ari dira da
normalean itzulera helbidea gainidatzi.
Funtzio bat deitzen duzunean eta zure pila markoa lortzen pila gainean bultzatu
pila marko horren beharra jakin nola -
ondo, que ha sido izeneko funtzioa nola duten izeneko funtzioa itzultzeko jakin behar da.
Beraz, nagusia deiak foo bada, foo behar nagusira itzultzeko,
eta, beraz, hori da bueltan helbide honetan du.
Baina zer hacker egin egingo da
baliogabetu egiten da bueltan helbide bat bereziak dituzten
non berriro - Little Indian - ez da erraza baina byte bakoitza atzeraka.
Bueltan helbide honetan neurrian ordenagailua dagokionez
helbide honetara itzuli foo itzuli baliokidea edo nagusia
edo dena funtzioa deitzen da.
Beraz, helbide honetara itzultzeko joan
Horrek Beraz, zerbait gertatzen helbide honetan izango da
eta horrek bai, batzuetan hemen egin dute itzulera helbidea erabili
dakite duten funtzio zehatz bat da dagoeneko.
Ezin dut gogoratu zer funtzioa deitzen.
Nahi izan ezkero beranduago begiratu dut.
>> Hona hemen zer egiten ari dira da itzulera helbidea pasatuz
pila bera, eta hau non zertxobait arraroa da
daude memoria non adibiderik -
memoria zatitu daiteke irakurtzeko soilik, irakurri-idatzi sartu, eta memoria exekutagarria
non memoria irakurtzeko soilik ikusi dugu aurretik non -
char * s esan badut = kaixo ezin dut kaixo aldatu.
Hori irakurtzeko soilik memoria.
Ez da, gainera memoria exekutagarria ideia hau
non memoria exekutagarria testua zure kodea segmentu izango litzateke.
Zure ohiko helbide-espazio diseinua begira -
Uste dut hori irudi ona izango da -
Horrela funtzionatzen - non gure pila dugu hemen. Datuak memoria dugu.
Ignore honetan, funtsean. Hau gure zeure da.
Eta gero behera hemen dugu gure programa kode nagusia.
Honen lekuan char bezala gure kateak jarri genituen * = kaixo antzekoa da
eta hori irakurtzeko soilik.
Baina zuk izan ere programa kode nagusia hau markatu exekutagarri gisa.
Eta zuk egiten badira edo sistema eragilea ez dela behar bezala
ondoren, memoria-leku bakarra izan behar du
kodea duten benetan exekutatu ahal
horrek esan nahi bufferraren gainezkatzea erasoa moduko hori hemen baino gehiago dugu
eraginkorra izango litzateke, hau da, memoria exekutatu hemen gure pila saiatzen delako.
Ohartu pictures lehen dira.
Gure pila hazi behar dugu.
Hemen pila behera hazten ari da.
CS50 helburuetarako pila hazten gora.
>> Posible da bufferraren gainezkatzea mota jakin hori saihesteko
memoria eskualde exekutagarri horiek izatea eskualdeek ez exekutagarrian arabera.
Baina besterik ez da gertatzen gutxitan memorian exekutagarria exekutagarri gisa markatu duten.
Joera besterik ez da irakurtzeko soilik eta berriro idatzi izan direla erabiltzen dira gauza bakarra,
beraz, hau da, oraindik oso eraginkorra.
Eta hemen jarri genezake nahi dugun edozein dela ere.
Ez zen benetan Pset gisa egindako 61 urte honetan,
baina begiratzen baduzu iaz da eskaintza edo edozein aurreko urteko aldi
Pset bat da ari zehazki sartzerakoan hemen kode hori ustezko ustezko duzu
Balio jakin batzuk inprimatu edo dela ezberdina balio bat itzuli
hori inprimatu behar ustezko balioa.
Edo are gehiago cleverly, deitu duzu edo idatzi nahi du -
beraz, hau itzuliko da hemen eta, ondoren, kodetze batzuk hemen exekutatu dituzu,
eta gainezkatzerik of cleverest gero zer izan bueltan helbide honetara itzultzeko.
Honi jaramonik egin behar dugu, beraz, nahiz eta
hona etorri, oraindik ere bueltan helbide hori gogoratzen dugu nonbait
horrela dugu nagusian edo dena itzultzeko,
eta atsegin dugu inoiz ere nabaritu gauzak gaizki joan da.
Baina gauzak egin beraz, hori horrela non agian barruan hemen gelbroke dugu gure iPhone da.
Gauza normal gisa joan - programa batzuk exekutatu dugu eta horrelako gauzak, azkenean itzuli
edozein dela ere, ez da eta itzultzeko ustezko, baina, bien bitartean,
sistema eragilea osoa suntsitzeko kudeatzen duzu.
Zuk ez duzu buffer erremediagune buruzko edo benetan aprobetxatuz haren kodea ezagutzeko.
Behar ez duzu honen oinarrizko ideiak ezagutzeko duten gainez ari bufferraren da,
eta honen arrazoia dela gainez daiteke delako ez gabiltza ala ez egiaztatzen da
benetan gara hura mugen barruan.
>> [Student] besterik ez da mugetatik egiaztapena prebenitzeko Irtenbidea?
[Rob] Bai. Kasu honetan konponbidea litzateke
bai esan ahal izango duzu bar strlen da 12-1 baino handiagoa bada -
/ 0 izan behar duzulako amaieran -
edo eskuz izan duzu loop kopiak lehen 11 karaktere hori bakarrik,
edo ia ezer non benetan ari zaren ziur ez duzu buffer duten gainezka egin den egiaztatzea.
>> Beste galdera? Bai?
[Ikasleak] saiatzen eta, agian programazio (inaudible) buruz zerbait buruz hitz egin duzu.
[Rob] Noski.
Benetako programa -
ez genuke inoiz egin trie baten inplementazio bat egin nahi duzu azterketa
hash taulak egin dutenei desleiala izango litzateke delako.
Eta, era berean, ez genuke inoiz egin azterketa hash taula bat ezartzeko
nor saiatzen zutenak desleiala izango litzateke delako.
Hala ere, jakin behar duzu trie bat edo hash taula baten egitura, edo dena delakoa, eta egitura.
Hori da benetan edozein ikusi dugu datu-egitura moduko egia.
Lotuta zerrendak, pilatuta skews, zuhaitz bitar -
structs horiek definitzeko bihotza gai izan behar duzu.
Trie A - hori egin behar izango duzu gauza bakarra esan nahi du agian ematen dizugu
Hitz batzuk edo zerbait eta esan dugu trie hori eraiki -
agian, hitz multzo bat emango dizugu
eta hori hiztegi honek adierazten trie bat eraikitzea bezala gaude.
>> Egin dezagun gure hiztegi katua eta txakurra.
Trie ideia da hasten gara array honekin -
26 slots -
eta zirrikitua bakoitzean benetako zirrikituaren indizearen hizki horrekin kezkatuta gaude dagokio.
Beraz, hemen, gara katu txertatzeko gure trie sartzen saiatzen ari bazara
lehen karaktere 'c' eta hori izango da, 'a 0 bada orduan b da 1, c 2 da.'
Bigarren indizea sartzen joan goaz,
eta ari gara trie bat sortu nahi duten off joan.
26 slots izan goaz.
Indize katua bigarren pertsonaia eta orduan ditugun.
Duten 'a' zein da 0 spot izango da.
Eta hori 26 lekuak izan.
Ondoren, joan 't' nahi dugu, eta, gainera genuke behera datozen zein mota da, benetan garrantzitsua
delako - ditzagun etorriko da hemen. Hemen gure 't' para trie da.
Demagun honek 't' da indizea da 19.
To saiatzen buruzko Garrantzitsuena gogoratzeko ezin duzu besterik gabe, gorde erakusle horien arrastoa.
Izan ere segimendua egiteko, hau da, benetan ote den hitz baten amaieran.
Beraz, hemen barruan dioen bandera nolabaiteko behar dugu
ados, hau da, benetan hitz baten amaieran.
Arrazoia beranduago saiatu gara hondamendi txertatzeko gure hiztegi sartu bada izatearen
bertan bera hasita 3 karaktereak dauzka
baina urrunago doa hori hitz baten amaiera dela aitortu behar dugu.
Edo, bestela 'ca' bilatzeko saiatzen bagara eta horrek, agian, ez da hitz bat
baina lortuko dugu behera hemen orduan dugu -
edo litzateke c izango da eta ondoren, itxura batean ematen du -
aitortu behar dugu ez dagoela nodo hau irteten da erakuslea da, nahiz
ez du hitza amaieran irudikatzeko.
>> Beraz, zer esan nahi duten - zer zinen esan du?
Zer esan nahi du gure egiturari itxura?
[Ikaslea] erakusleak array bat hori da, 26 luze eta ondoren bool bat izan ziren edo ez ziren da.
[Rob] Bai. Beraz, izan dugu baten egiturari trie * erakusleak - Hemen dugu esan [26] on
eta, ondoren, hemen baino gehiago puntu eta koma.
Baina Pset oinarrituta, halaber, apostrophes kontuan behar dugu,
beharrezko hard-kodea indizea 27 edo zerbait apostrofoa duzula horrek esan.
Baina hemen 26 bakarrik buruz zaintzen dugu.
Eta gero, agian, in char edo bool behar dugu - dezagun deitu hitza da.
Hori da, 2, 3 gauza dela uste dut inoiz litzateke duzu behar saiatzen buruz jakin baten -
horiek eraikitzeko, horietako egiturari, eta azken gauza horietako exekuzio-denbora da.
>> Zer da trie baten exekuzio - edo trie batean lookup du?
Hau da, non esaten dugu o (k) non k hitza dira bilatzen gertatuko dugu luzera da da;
baina aldi berean esaten dugu - gutxienez Pset 5 speller mesedetan - esaten dugu
hiztegian hitzik luzeena 45 karakteretara mugatuta dago, beraz, hau da, funtsean,
45 O zein etengabeko aldia da.
Beraz, ez dago zure hitza luzeena badago goi-muga gero -
edo nahiz ingelesezko hiztegia bezala - ez da zure hitza luzeena buruzko goi-muga.
Edo edozein hiztegi - ez da zure goiko hitza on luzeena lotuak.
Ez dio axola zer egiten ari zaren denbora konstante da,
baina k O da polita delako han benetan exekutatzen arteko aldea da esan
45 karaktereko hitza alfabetoaren horrek hitzak baino ez ditu, 3 karaktere gehienez versus.
Horri buruz beste gauza bat da hori -
oh, delako besterik esaten 45 hori gertatzen gure hitza luzeena izan
mota da silly delako, aldi berean, demagun algoritmo bat N. of O da
Beno ados, memoria bakarrik onartzen da 2 ^ 32 byte behar delako,
Orduz N 4 gehienek mila milioi da eta hori etengabeko denbora da, eta horrek zergatik uneren da
leloa dela gauza horietakoren bat non ez da goi-muga esateko
duten ezin dugu besterik gabe, etengabeko denbora murrizteko guztia etengabeko denbora dagoelako
noiz uste duzu horrela.
Baina seguruenik genuke onartuko horiek bai.
Edonola ere azaldu bai O duten (1) esan nahi du goi-itxitako hitza luzera bat duzu?
O (k) zure hitzaren luzera esan nahi du -
bai, k hitzaren luzera esan nahi du.
>> Bai. >> [Student] bool Does - zeren zure trie egin duzu
katu joan nahi duzun, eta ondoren joan hurrengo erakuslea nahi duzu - zen bezalakoa zirudien
eta, ondoren, esango dizu, berdin egia bada - litzateke egia dela jarri duzu at t duen bezala?
[Rob] Dezagun uste kasu honetan, non adibide asko dezake, besterik gabe, saiatu eta etorri zaren
Adibide sinpleak eta / edo muturreko eta zer izan behar du, beraz, bere uste hitza 'a' of utzi.
Gure jatorrizko trie -
jarri 1 bat hemen nahi genuke, edo litzaidake jarri 1 bat behera hemen nahi dugu.
Esan, azken batean da seguruenik bai / edo nuke.
Ezin dut arrazoia uste - edo benetan wouldn't duzu -
arrazoia ez nuke jarri behera dago, ez duzu, nahiz eta urrun joan behar delako.
Inoiz trie hau esleitu behar dugu.
Jarri besterik ez dugu 1 du han.
Hau da, oraindik ere NULL seinalatuz.
Bada bakarrik ari gara karaktere bakar izan da joan
ez dago arrazoirik behera zabaltzeko trie bestera gutun hori gisa erabiltzen besterik markatu da.
Era berean, 'a' behera han dugu jarri izan balu
gero, nahitaez, hauek guztiak litzateke nahiko luke 0 uneoro.
>> [Student] Baina ez hasita trie bat izango dela 'a' hau seinalatu behar dugu?
[Rob] global batzuk edo zerbait struct trie * t daukagu
hemen adierazi, baina hori erakuslea besterik ez da.
Ez da trie full-pizten duten bitartean seinalatuz.
[Ikaslea] Ongi. Nola letra 'i'esleitzeko genuke - hitza dut honekin?
[Rob] Bere galdera horri liteke erantzunez. Hold on.
- Hori arazo bat non eta bera trie bat da
Ez dakit bidea Pset idatzizko litzateke.
Aurreko struct txarra zen.
Baina, aldi berean egin izan dugu egitura nodo boolearra da - eta erakuslea -
ez da benetan modu bat baino gehiago da idatzi izan duzu.
Bestela trie bat ez da beharrezkoa eta egitura bat izan nahi du.
Typedef nodo * - nahiz zitekeela trie izan -
nodo [26] trie bat da, eta hau ez da jada egiturari.
Diat bidean Pset espero lukeen duzu pentsatzen saiatzen ari da - orain ez da izango.
[Ikaslea] gora bota dut berrikuspena saio hori, eta uste dut joan besterik ez dute -
atsegin duzu baten bat, ondoren, joan hurrengo duzu bada - >> [Rob] Hori nola egiten dute?
[Student] Eta gero, ez bada egia bat dago, ez du lan -
[Rob] Bai. Horretan lan egiten du. Espazioa hondakinak -
zertan izan duzu beste trie maila oso bat duzula ez luke lehenik eta behin behar.
Hona hemen bakoitzean itsusiak lortzean -
funtsean, hemen zer egiten saiatzen naiz elkartua da -
ordez 26 zure saiatzen erakusleak izateaz,
da 26 bool erakuslea, erakuslea bool, boolearra erakuslea, eta abar.
>> [Student] Ezin duzu egin 2 array hori? Bools eta erakusleak array bat array bat?
[Rob] izan duzu baina gero litzaidake behar duzu -
2 booleans eta erakusleak, array-ak.
Behar litzateke duzu gero zure booleans array eraiki -
Zure booleans array behar bezala trie bezain handia izan
ezin duzu besterik ez delako 26 booleans.
Posible bakoitzarekin hazten ditu -
bezala zure trie 26 baino gehiago egia edo gezurra posible hitzak ditu.
Une horretan egin daitezke eta baita besterik egiturari bakar bat zure trie hazten behera egon.
Honek ez dirudi eskubidea delako - zer egin, hemen nahi dut?
Beraz, trie * t -
daiteke typedef (nodo *) [26] trie egin duzu;
duten sintaxia bila nabil izan daiteke.
Eta hau besterik trie erregular bat izan behar du.
Ez nago ziur.
Baina horrela egin dugu balorazioa da, beraz, primeran lan fina, gehiegi.
Kasu horretan, bada besterik bool hitza da eta, ondoren, 26 array
orduan ez duzu hurrengo mailara joateko.
Izango Bide hori egin nahi nuke pentsatu nuen.
>> Beste galdera?
[Ikasleak] dut beste zerbait buruzko galderak? >> [Rob] Bai.
[Ikasleak] duzu aldea zer da gehiago joan eta noiz jQuery erabiltzen duzuna versus Ajax?
[Rob] eta bere burua erabat desberdinak dira.
JQuery egiten gaitu Ajax. Errazagoa Ajax erabilera batzuk ematen dizkigute du.
Baina Ajax dator JavaScript batera datorrena. JavaScript Ajax gaitasunak.
Guztiak Ajax esan nahi liken naiz jada orri batean eta noiz nahi dut -
denean klikatu zerbait dut Ez dut behar informazio berria deskargatzeko orria berriz kargatzea eragingo du.
Informazio berria eskatu besterik ez dut.
Duzu begiratu ahal Facebook edo zerbait.
Ikuskatu sarea.
Txikitu hau.
Behera hemen ari eskaera horiek guztiak lortzeko dugun ikusiko dugu.
Orain, gainean klik egin I - ondo, Ajax Egin aurretik dut, nahiz ezer klikatu da.
Baina sakatu dut honetan bada, ondoren, eskaerak mordo bat egiteko behera hemen
besterik eskaera horiek egiten - oh, orain baino gehiago, hemen da.
Dezagun freskatzeko.
Berriro egin.
Eskaera horiek guztiak lortuko dugula ikusiko dugu, baina hori oraindik ezin orrialdea kargatzeko prozesua izango da.
Nabarituko Facebook da eskaerak konstante horiek egiteko ondoren ere orria kargatu.
Eta klik egiten badut hemen, zenbait datu eskaerak batzuk gehiago egin ahal izango da
hori gauza besterik klik nuen erantzuna da.
Hori da Ajax besterik zer den. Hori ez zen orri batera deskargatuko jatorriz datuetan tira duzun aukera dago.
>> JQuery bereizi da. JQuery liburutegian JavaScript bat besterik ez da gauza asko errazten da.
JQuery rekin da abantaila asko da hau, besterik gabe -
dolarraren ikurra - dolarraren ikurra JavaScript baliozko aldagai bat da.
Beraz, jQuery - guztiak egiten ari den bezala esaten var $ = stuff sorta osoa -
bertan stuff hori guztia funtzio handi batzuk bezala -
eta orduan bezala modutan dolarraren ikurra duten erabiltzen dituzu
$ ("# Oina"). Estiloan ("Testu-lerrokatzea", "zentroa").
JQuery sintaxia non abantaila handi bat sort hau ematen digu -
beste ezaugarri batzuk ditu, baina zer nahi duzu, gehien zentratu nahi dugu
besterik ez da gai honen antzeko elementuak aukeratzeko izatea.
Erregular, Javascript arrunta-zahar bezala gauza egin dezakezu
dokumentu-dot-lortzeko elementua ID Oina-dot by - Ez dakit zer den puntu horretan bertan -
CSS edo estilo edo zerbait buruz zerbait -
baina, gero, bestela, demagun klase arabera hautatu nahi izan dugu.
Orain dena estilismoa ari gara estilo honekin klase Oina batekin.
Edozein paragrafo estilo nahi badugu ere.
Beraz, hautatzaileak hau - gai honen antzeko dom gauzak aukeratzeko izatea oso erosoa da
geroztik arrunta zaharra JavaScript elementu dokumentu-dot-lortu egin klasearen izen by izango litzateke
edo da, edozein dela ere, edo etiketa bat nahi nuen esateko lortzeko elementu etiketa izenez beharko nuke.
Beraz, hori gauza horiek guztiak sartzeko dut modu zehatz jakin behar dut.
Funtzioak ezberdinak izan klase bat edo ID bat erabiltzen nuen ala arabera joan
edo etiketa bat edo zer, berriz jQuery besterik ez dela niretzat.
>> [Student] Is jQuery erabili ahal izateko denean orriaren hasierako estetika egiten ari zaren?
Edo ordena Sorozabal aldatzeko in da ondoren dagoeneko - >> [Rob] hura aldatzeko.
[Ikaslea] After dagoeneko kargatu da. >> [Rob] Bai.
Edozein hasierako Sorozabal - ondo, nahiz eta -
oro har, aldaketa-mota hau erabili nahi duzun.
Ez duzu aldatzeko - hau primeran ondo funtzionatuko luke.
Baina normalean ez zenuke estilo honen antzeko aldatu.
Horren ordez, klase edo zerbait berri bat eman dituzu
berriz CSS du jadanik definitu klase horretarako modu jakin batean.
Elementu horiek emanez klase berri bat hautatzen dut
Duten jadanik deskargatutako estilo aplikatuz naiz.
[Student] Beraz koadrotxo pare bat eta hori hautatu duzula gauzak hautatzean
estilo berri bat aldatu eta hasi ezberdinen bila. >> [Rob] Bai.
Bestelako gauzak buruz gogoratu -
ondo, hainbat funtzio jQuery buruz gogoratu behar duzu.
Demagun duten zerbait aukeratu gaude izena P. ekin
>> [Student] Ez duzu beti kiloko erabili?
[Rob] Horrek esan nahi du izena. Du CSS baliokidea da, beraz CSS selectors - Da horretan inspiratuta.
Non CSS Oina bat estilo nahiko banu in -
edo identifikazio Oina zerbait -
Testu-lerrokatzea bezalakoa izango litzateke: center;
ez duzu azterketa CSS idazteko, baina selectors jakin behar duzu.
Nola irakurri jakin behar duzu - Zer jakin behar duzu.
Baina inoiz ez genuke -
ez duzu behar ezberdinak posible Sorozabal gauza guztiak buruz ikasi ahal izateko. Edo horietako edozein.
>> JQuery gauza gogoratu behar duzu -
gogoratu behar duzu dot-HTML, eta jQuery eredu komun bat - dezagun berriro idatzi hau.
Eredu komuna da $ dugu ("# f"). Html
Parentesi arrunta bakarrik jarri dut bada horrek esan nahi HTML lortzeko;
berriz HTML esan eta jarri nahi dut hemen edozer in badut - zerbait lotura batzuk -
parentesi barruan zerbait jarriz, orain HTML ezartzen du.
Hori nahiko ohikoa funtzio sorta bat artean.
Badira testu akordio bera da.
HTML eta testu arteko aldea da testu hori hau txertatu joan
gutxiago-baino bat literal gisa, handiagoa-baino aingura tag gisa ordez.
Eta testua da berdinak izatea esan, ez dut hau besterik egingo.
Dokumentuaren HTML ez - Honez dokumentuaren Testua eskuratzeko joan
baina besterik elementu honen barruan testua.
Beste bat da 'f' gertatzen bada sarrera bat ID bat izan nahi du,
orduan hash-f-dot-val - sarrera ezartzeko antzeko zerbait nahi badut -
demagun checkbox bat jo dut eta balio lehenetsi bat ezarri nahi dut -
dot-val - ez dakite I - 3 - beraz, automatikoki testuaren 3 kutxa txertatzeko,
baina 3-dot-val esan badut, hori dena delakoa da gaur egun niretzat testu-koadroan errekuperatzeko.
>> Hau da, inprimaki baliozkotzea baliagarria non
Besterik ez dakit benetan bete dute gauza guztiak egin nahi bada.
Bata egiteko modu bada hit I aurkeztu ondoren nik ezinbestean orri batzuk bidaliko zerbitzarian -
bezalako Gurekin PHP litzateke - eta hori datuak tratatzeko, eta saiatu litzateke esatea litzateke
ez zuten zerbait bete eta, beraz, orain birzuzenketak horiek dioen beste orrialdera
Zuk ez dena bete.
Hori egin beharrean, Javascript / jQuery dezakezu besterik ikusten val hutsik badago.
Komatxo hutsik - edo val da.
Orain, horiek ohartaraztea ez duzula bete ezazu eremu hau ezin dugu - hori besterik egingo.
Ezinbestean behar ez duzun PHP zerbitzariaren aldeko egiaztapena egin delako
desgaitu dezakezu JavaScript nabigatzaile guztietan.
Baina JavaScript esker eroso egin duten aktibatzen izan dutenentzat da,
eta ia nabigatzaile ehuneko laurogeita bederatzi puntuko-zerbait izan bertan gaur egun.
Oso jende gutxi piztu JavaScript off.
Erabiltzaileen onerako da. PHP baliozkotzea egin behar duzu.
JavaScript baliozkotzea egin behar duzu.
>> [Student] Zer # m aipatzen du hemen?
[Rob] Zer # f aipatzeko du?
Ez dago nire dokumentuan elementu batzuk ID 'm' da.
Egingo begiratu dugu - seguruenik Facebook adibide ugari ditu non etortzen dut elementu nahi bada
Hemen bilatzen elementuen etiketa azpian Nabarmendu sortu ari hemen div zehatz honetan ikusten dut -
edo orri osoa da - Bai, han da. Honen izena pagelet_bluebar ditu.
Kontsola batean jQuery erabiltzen ari dira bere gain hartzen dut.
Beraz, pagelet_bluebar hautatu izan dut, beraz, hori aukeratzen duten, eta zerbait gaizki egin nuen.
Dezagun saiatu - edo agian, ez dira jQuery eta pertsonaia horren beste zerbait mapatzen erabiliz.
Zerbait dakit adibide hobea jQuery erabiltzen ari da -
oraindik gure elementu hemen begira - hemen dugu klasean, nabigazio-barrako berdin.
Hau klasean, nabigazio-barrako zerbait da,
beraz, gure kontsola barrutik dugu gauza begiratu daiteke klasean, nabigazio-barrako batera.
Hemen hau baino gehiago mugitu ahal izango dugu, eta ikusi hori da hori zer den.
Testu bihurtzeko egin nahi nuen. Hau duten testua da, beraz, ezarpen ikusten dut log daudelarik gainetik txostena
eta diren guztiak hemen azpian, baina hori da, oraindik ere, HTML etiketa duten orrietan testua.
HTML ezarri izan dut besterik link batzuk,
beraz, nire bar dut botatzeko. Orain got osorik besterik ez beraz, YouTube lotuta goiburua kentzeko.
>> Eta hor dago, edozein modutan, adibidez?
Hemen formulario bat da.
Ezin dut eskuin-klik egin eta ikuskatu elementu hementxe da etorri.
Bere izena bilaketa-testua da ikusten dut,
beraz, behera hemen identifikazio testu bilaketa egiten badut.
Pasatuko dut ekarri eta hori gauza zuzena dut bilatzen zen dela ikusten dut.
. Val egin nahi badut niri emateko zer idatzi nuen litzateke.
Egin nahi badut kaixo hemen alda ezazu egingo up kaixo - jQuery.
Jakina barregarria egin izan dut izena by elementu document.get bezala - testu bilaketa -
Dut ez dakite zer den puntu honetan da - dot balioa - ez, lasaia dela ahaztuz.
Beraz, hori da kaixo. Ez dakit nola ezarri nuke zerbait hobetu da.
Bai, horrela aldatu dela.
Baina ez duzu behar horiek eta webgune asko erabiltzeko puntua erabilera jQuery honetan.
Nahiz eta azken proiektu bat bezala - lehenengo gauza - duzun web proiektu bat egiten ari bada
Gomendatzen dut besterik ez da jQuery barne beraz, funtzio horiek guztiak erosotasuna lor dezakezu.
>> [Student] uste dut elementu bat lortzeko dom erabiliz beste modu batean ikusi nuen.
Ez dot erabili eta ondoren mantentzeko behera joan behar duzu?
[Rob] hori egin dezakezu. Ez dakit oso ondo funtzionatuko luke.
Zaila da, era horretan nabigatzeko.
Adibide bat da - I ez dakite formak baldin badaukagu ​​-
baina document.forms da inprimakiak zerrenda hori orri honetan itzuli da,
Orduz document.forms egin dezaket 0 da lehen inprimaki izango.
Dot - Ez dakit zer deitzen dugun hori - beraz, ez du, nahiz eta izen bat dute,
beraz, agian Sarrerek funtzionatuko du. N º
Ez dakite dut nola honetan lor - get elementu-I-izenaren etiketa sarrera.
Bai, hori sarrera eman zidan, eta, orain, 0 sarrera nahi dut
eta bere balioa hautatu nahi dut, beraz, hori da testua izango da.
Amaitzeko get elementu hala egiten etiketa izenaren bidez izan nuen.
Bada, nolabait, zuzenean aukeratu ahal izatea
0 inprimaki, baina honi buruz gauza polita bidez da oraindik bezala ezagutu tags sarrerari izeneko bakarra izan nuen
inprimaki honen ume bat zegoen, bestela, ez dut besterik ez bada zuzen aurrean sortu
hau orri osoa elementu guztiak, dokumentu osoa hautatzen litzateke
ordez inprimaki hori besterik ez du, eta ziur aski, ez are bat, nahi dut izan.
Dut ez dakite zein den. Ez dakit.
Uste dut lehenengo sarrera elementua gure orrialdean checkbox hau txikia da.
>> [Student] Hau da, nahiko zerikusirik
eta, seguru asko, mota horretako leloa, baina erantzuna teklan PHP dela dio -
Ez dakit erantzuna gakoa edo oharrak ote den baina PHP zerbitzariaren aldeko dela dio
Eta Ikusteko Javascript-a bezero-aldeko da. Zein da 2 arteko aldea?
[Rob] Javascript bezero-aldeko eta PHP zerbitzariaren aldeko arteko aldea.
Litzateke Uste aurretik barra / erabiliko nodo js entzun bada
Ikusteko Javascript-a ez da bakarrik bezero-aldeko baina CS50 helburuetarako da -
edo, gutxienez, galdetegi honen helburu den.
PHP izateaz zerbitzariaren aldeko. Javascript ez.
Zure web-orrian idazten duzun PHP idazten dituzu zerbitzarian.
Inoiz egingo idazten duzu Javascript zerbitzarian.
Ikusteko Javascript-a amaitzen ohitu nabigatzailea non JavaScript kodea exekutatzen bidaliko.
Eta Javascript kodearen nabigatzailea bizi bestela delako nahi dut behar
besterik ez edozein Javascript-y gauza sort hori sakatu bezala,
Ez dut orrialde bat birkargatzen. Hau besterik JavaScript berriro formateatzeko niretzat gauza da.
JavaScript zerbitzarian bizi izan bada, orduan nahi ezinbestean zerbait eskatu behar nuke
zerbitzariaren zer egin behar zen jakiteko.
PHP - han PHP gauza, hala nola ez da nabigatzailean.
When I orri bat eskatu - beraz, demagun hemen orri hau bereziki eskatu nuen.
Horrek esan nahi du hau eskatu egingo da -
freskatu - nik orri hau freskatu egingo -
beraz, eskaera hau gure zerbitzarira jokoz kanpo.
Haria zehatz honetan itzultzeko identifikazio zehatz honekin behar dela ikusten da,
beraz, gaur egun hori da PHP batzuk PHP interpretea da orrialde horretan interpretatzen joatea izango da
eta eraldatu besterik HTML, CSS, JavaScript, agian, edozein sartu.
Da eskaera hau prozesatzen eta eskuratzen testua eta stuff guztiak PHP ezazu
duten benetan naiz basetik bila.
Baina zer zerbitzari uzten besterik HTML / JS / CSS da.
Ez dago eta horrek zerbitzari uzten PHP benetan egin bada delako
orduan nabigatzailea ez daki zer da egin, ez du jakin zer PHP dagoelako izango litzateke.
Baina pentsamendu berean Javascript bezero-aldeko delako,
inoiz dezakezu sartzeko MySQL bertatik.
Delako PHP zerbitzariaren aldeko da sartzeko daukazu MySQL bertatik.
>> [Student] Ezin duzu cookieak segurtasun kezkak HTTP in errepasatuko?
[Rob] Horiek ez dira gauza jakin behar dugu.
Cookieak segurtasun kezkak HTTP batzuk.
Galdera hemen big dago hemen ikusten dugu nire cookiea PHP / izena da.
Duen PHP unibertsala zure saioa bezala.
Zure saioa PHP barruan ez da inoiz balioztatu beharreko zerbait da
duten saioan erabateko kontrola du zerbitzariari delako.
Ezin duzu ukitu ere ez.
Baina cookiea hau da - hau -
eta saio hasi ahal izango duzu me gisa oraintxe hori erabili nahi baduzu asmatzen dut -
ezinbestean zerbitzariari eskaera bakar bat egin duzu - baina hori cookie hori da.
Zerbitzariko orri itzultzen. Eskaera egiten da.
Jada ez da nor zaren edozein ideia dauka.
Beraz, egiten dituzun hurrengo eskaera cookiea, besteak beste, beraz, badaki va
hau baino lehen eskaera hau egin zuen pertsona da.
Hau saio datu hori erabiltzaile honi lotuta dago.
Horregatik, ez duzu saioa hasi ahal izateko bakoitza eta erabiltzen duzun orrian.
Segurtasun arazoa honakoa da cookie hori bidaliko da web zehar.
HTTPS hemen erabiltzen ari gara, beraz, kasu honetan esan nahi duen gauza hau enkriptatzeari ari gara.
Norbaitek ezin etorri eta besterik lapurtzen nire cookiea eta orain zerbitzariari niretzat daudela uste izango da.
Baina HTTP zuzen ahal izango dute.
Just Wireshark / Firesheep stuff hau besterik dezakezu entzun airean wi-fis guztiei bezala
eta nahi duzuna atzematen, beraz, bai.
>> [Student] antzeko segurtasun arrisku moduko bat da erabiltzaile ID en gordetzeko post
libreki edita daitezke kontsola eta gauzak erabiliz delako.
[Rob] Bai. Ez dago non like ia ezer Erabiltzaileak dator gai askorekin
balioztatzeko behar duzu.
Badira kasuak non post bat egin beharrean nago bezala baliagarria izango litzateke ugari daude.
Blah, blah, blah, blah, blah. Ondoren erantzuna sakatu dut.
Oso baliagarria izango litzateke post eskaera barne identifikatuta bada delako
Post hau lotzeko nirekin nahi dut.
Baina ezin dut hori egin free post eskaera bat egin nahi dudalako - besterik eskuz bezalako
etorri nire post eskaera -
zure erabiltzaile izena erabiltzen du eta orain egingo duzun bezala argitaratu.
Horregatik zerbitzariaren aldeko Ezin dut zuzena erabiltzaile ID duten post eskaerak oinarritzen.
Horregatik, nire saioan sartzen ditu.
Beraz zure erabiltzaile izena bilatuko dut nire saioan array eta hori txertatu nire datu-basean sartu nintzen
benetan egin duten post honen erabiltzaile moduan.
[Student] Eta hori zure cookie batean oinarritutako?
[Rob] Bai. Cookiea erabiltzen du gora etortzeko gure eskaera hori egin duten erabiltzaile gisa.
Atera da erabiltzaile ID saio horretatik aurrera, eta hori gero datu-basean sartzen du
erabiltzaile ID hori erabilita.
Bezalako botoi honetan - zer esan benetan egiten da -
Ez dut hemen aurkituko du. Honez Ajax funtzio bat izango da
Zer da Ajax funtzioa?
Utzi aurkituko me out nire JavaScript zer den.
CS50 proiektu bat pixka bat lehenago izan zen.
Ezin dut gogoratzen zer den.
Ajax funtzioa - Ajax funtzio guztiak egiten ari da Ajax eskaera bat egitean identifikazio honekin orri batera -
ID 22453 batekin.
Ez da, nahiz post-eskaera bat. Get eskaera bat eta horrek are errazago da.
Zer URL da banekien bada - hau atsegin / izena = 22453 antzeko zerbait da -
edo identifikazio = 22453? -
beraz URL hau bisitatzen duten nahi izango.
Zein ez litzateke gisa arazo bat askoz, baina oso erraza da begizta bat idazteko
hau da, besterik gabe, URL honetan eta gehiagoko bisitatzeko berriro eta horregatik ikusten zoaz,
Isawyouharvard gauzak milaka bidaltzeko.
Eta CS50 oinarritutako Isawyouharvard mezuak izan ohi dituzte.
Nola ez, gehien-gustatu aurkitu dut?
Nahiko azkar ezabatuko joera dute, too.
Hau ez da gehien gustatu. Hor dugu.
Gehien gustatu orrialdean cheaters - hori nahiko honetan garran oraintxe.
Oh wow. Jadanik dute ezabatu direnak edozein aurten bertan izan dira bertatik
cheated on. Horiek ezabatu egin guztiei.
Ez dira inoiz duten goi honetan lortzen post bat izango da.
Ko hau, jakina zen cheated on on lortzeko gehien gustatu orrialdera.
>> Galdera gehiago?
[Ikaslea] Jakin behar dugu XHTML buruz?
[Rob] Ia ezer ez. Besterik zer den.
Da eta HTML XML duten izatearen arteko aldea oso antzekoa da itxuraz
HTMLra HTML ezik besterik ez dugu etiketa multzo aurredefinitutako bat izan.
Baina XML-rekin - XML ​​besterik formatu orokor bat non XML dokumentu bat egin ahal izateko bezalakoa da
edozein dela helburu nahi zuretzat.
Beraz, adibidez, nahiko banu ikastaroak egiteko XML bat eraikitzeko izan dut -
eta benetan uste dut CS50 duten honetarako API bat du.
Nire XML dokumentu izango litzateke -
ikastaroak eta ikastaro amaieran ikastaro batzuk behar dut.
Ikastaro bat izan nuen, eta izen berdinen CS50 izan zitekeen.
Eta gero, nire amaiera ikastaroa eta ni barrutik jartzeko gertu dagoen hemen ikasleek,
eta, ondoren, ikasleek barrutik ikasle batek bere izena da, edozein dela ere zerrenda bat daukat.
Ikasleari amaituko dut eta abar.
Gertatuko dut besterik XML dokumentu arbitrarioa batzuk eraiki dute, baina baliozko XML da.
XML - guztia da egitura-mota hau eta gauza polita da - arrazoia, nahiz eta deitu dugun XML
ez da gauza sort hori oso erraza da analizatu.
Oso erraza da dokumentu hau hartu eta array bat egin daudelarik.
Eta beraz XHTML lortzeko HTML baliozko XML izateko saiakera bat da.
Dagoeneko hau nahiko HTML antzekoa.
Desberdintasunak batzuk erakutsiko dira zaudenean sarrerako bezalako gauzak egiteko gai agian mota testu berdinen
horrek lehenetsia da beraz, ez dut behar duten esateko.
Desgaituta.
>> Badira XHTML baliogabe hau osatzen duten 2 gauzak hemen.
Lehenengo gauza da XML etiketa guztiak duten bukaera etiketa bat behar.
Zein norabide barra da - beraz, sarrera-kasuan egin behar dut?
Norabide horretan? Itxura txarrik.
Beste norabide.
Etiketa auto-itxiz.
Bigarren gauza da XML-rekin horrelako gako bikote-mota horiek behar dituzu.
Lotutako balio bat behar da.
Beraz, nahiz eta bera ezgaitua adierazten zer nahi dut -
sarrera hau desgaitu egin behar -
duten XHTML baliogabea da.
Zer benetan idatzi behar dut is disabled ezgaituta berdin.
Orain baliozko XHTML da.
Eta horien HTML eraldatzeko XML oinarritutako gauza moduko bat alde txiki horiek besterik ez dira.
>> [Student] XML zure X propioen bidez bezala zabaltzen ingurukoa da guztiz bezalakoa zergatik da (inaudible)
[Rob] of Gauza CSV bat bezala - CSV bat besterik baloratzen bereizita duzu -
besterik kalkulu orri bat pentsatzea. CSV bat da, funtsean kalkulu orri bat.
Agian zutabe daukazula eta errenkadak mordo bat duzula
elkartua datuak zutabe horiekin baina hori da.
XML da askoz ere gehiago polifazetikoa ahal duzun hori - datuak hierarkia arbitrarioa duzu.
Dela barruan anitz ikasleak izan anitz ikastaroak izan nezakeen
non zaila izango da kalkulu orri bat dela pentsatzea litzateke -
kalkulu-orria besterik ez da bakar - CSV bereziki kalkulu-orri bakar bat besterik ez bezalakoa da -
beraz, kalkulu-orri bakar CS50 guztiak, 51, eta 61 eta hauetan dagoen guztia beharrik
Garai hartan zerikusia ikasleek, agian bilera aldiz eta gauza sort hori guztia.
Beste gauza da, etiketan izen hori polita izen bat emateko elementu guztiak behar
beraz CSV fitxategi bat irakurtzen saiatu eta analizatu, zer da benetan ikustea zaila izan daiteke.
XML askoz ere gizakiek irakurtzeko erako beraz, horregatik bezala - etorri nork ez du pertsona batzuk
benetan jakin zer CSV fitxategia da edo gustatzen ez da programatzailea edo zerbait -
eman dezakezu txantiloi XML fitxategi bat bezala eta lerro jarraitu ahal izango dute, eta -
oh, nire izena txertatzen hemen suposatzen dut.
Askoz ere erabilgarria formatu bat da.
CSV erabilera ugari ditu baina XML erabilpen ezberdinak ditu.
>> Galdera gehiago?
Beste galdera?
[Ikaslea] aurreko galdetegi From - eskalatze bertikala eskalatzea horizontal versus.
[Rob] Ez duzu behar duten jakin nahi du. Ez dut uste, nahiz eta eztabaidatu dugu.
Dut asmatzen bakar-off iruzkin bat izan zen.
Oh. Horizontal eskalatze bertikala versus ez da zerbait jakin behar duzu.
Uste dut aldea besterik ez bezalakoa da - oh bai, erantzuna gakoa aldea esango du.
Eskalatze bertikala besterik gustatzen zaio oh, nire ordenagailuaren gaizki egiten. Hobeago bat lortuko dut.
Berriz eskalatzea horizontal da oh, nire ordenagailua gaizki egiten ari da -
let me horietako 20 zeregin bera lan guztiei.
>> [Student] Ezin dugu lotutako zerrenda ilarak egiteko modu baino gehiago joan. >> [Rob] Noski.
Array bidea baino errazagoa da.
Zerrenda lotuta ilarak egiteko modu.
Lehenik eta behin, zer da gure lotutako zerrenda bat eta egitura itxura?
[Ikaslea] egiten ari al gara for - yeah - >> [Rob] Egin Dezagun bere.
Int val, gero eta egitura nodo * hurrengo;
beraz, hemen zer dugu erabili dugu adibide honetarako.
Dezagun idatzi benetan stuff honetan.
Egin linked_list utzi.
Gure egiturari -
Ados. Orain gure ilara begira ditugu -
utzi egin besterik en ilaran globala.
Nodo * ilara izango da, eta adierazten du funtzio bat behar dugu.
Uste dut gauza horiek ere egia edo gezurra overturn zitekeen -, utzi egin dela.
Bool adierazten du - eta dequeueing ari gara - oh. Hmm.
Int adierazten du - zer egin honekin dugu aurretik?
Int adierazten eta daukagun bool enqueue eta baliabide batzuk egia Enqueue behar dugu.
Egin enqueue lehen utzi.
Gure ilara daukagu. Zerbait txertatzeko ilaran sartu nahi dugu.
Zer da hori egiteko modurik onena?
Hemen gure ilara gaur egun itxura hasteko batzuk erakuslea global dugu.
Badira gure ilara da.
Adierazten dugun lehen elementu hartuz suposatuz,
non gaude gure nodo sartu, horrela ilarak dute hori behar bezala lan egin nahi du?
[Ikaslea] oso amaieran. >> [Rob] Bai. Ilarak ustezko lehena izateko, lehena inprimatu.
Horrek esan nahi du elementu berriak txertatuko baino gehiago behar da hemen. Ados.
>> Kodea itzuli datozenak,
horrek esan nahi izango dugu nahi gure ilara gorako begizta.
Egin nodo * oraingoa = ilaran bequit oraingoa ez berdinak NULL bitartean.
Egin nahi dut - eskubidea, Egin bereizita utzi.
Lehenik eta behin, egungo = ilaran.
Zer egiten dugu egungo hasten bada off NULL gisa?
Egin dugu hau 2 modutan. Lehen modu honetan.
Zer egiten dugu egungo NULL bada?
Ilaran NULL bada baliokidea da hau?
[Ikaslea] Honez faltsua itzuli egingo da. >> [Rob] faltsua itzuliko dugu?
Zer da zerbait txertatu zerrenda huts bat sartu gaizki?
[Ikaslea] Ezer ez da gaizki da. Barkatu.
[Rob] Bai. Beraz, hemen desberdintasun bakarra da nire ilara global nire nodo berria bidaliko du.
Eta gero nire ilara NULL bada egiaztatuz egin behar dut.
Itzultzeko faltsua.
Eta gero, ilaran val berdin i; hurrengo ilara NULL berdin; egia itzuliko.
Ados. Pistola salto hementxe noa.
Gogoratu zer egin genuen duten azken aldia
non esan dugu askoz errazago nodo batera lan ** gauza sort honekin izan zen.
Beraz, gaur egungo da eta ilara izango da, eta behera datozen hemen -
bitartean oraingoa - bitartean * oraingoa NULL ez berdinak ez -
beraz, utzi egin zidan besterik oraingoa - we'll honen inguruko eztabaida bigarren batean.
Oraingo hurrengoa. Ados.
Begira modu horretan, hau da baino gehiago errepikatzean nire erakusleak guztiak null erakuslea iritsi arte dut.
Null erakuslea da erakuslea nire nodo berri batekin ordezkatu nahi dut izango.
IPad bertsio begira -
nire jatorrizko erakuslea eta lotutako zerrenda hutsik badago, ondoren oraingoa dago hemen seinalatu.
Hau da null seinalatu egingo,
beraz, hau erakuslea amaituko dut, beste nodo batzuk berria seinalatu mugitzen da.
Berriz adibidea kasu honetan bada hemen
messed dut apur bat - gero oraingoa da hemendik zeharkatuko du.
Non egungo ustezko oraingoa hurrengo helbide edo.
Zuk nahi dut? Oraingoa beraz, * egungo nodo bat ematen dit.
Hurrengo hurrengo bat zeharkatzen.
Une dut hemen apuntatzen naiz.
Egin gorri utzi - beraz, gaur egun hemen apuntatzen naiz.
Ondoren * uneko nodoaren honi erreferentzia egiteko va.
Eta * oraingoa hurrengo erreferentziak nodo hau, baina ez da hori nahi dudana.
Nodo hori erakuslea hau nahi dut.
Beraz, nodo hau erakuslea duten ampersand da (* oraingoa) hurrengo.
>> Puntu honetan denbora dut hori ordezkatu nahi dut nodo iritsi ofizialki.
Utzi ordezkatu en ilarak horiek egungo guztia - eta orain egiten ari gara.
Typos egon daitezke, baina ideia hori modu ordenatu honetan txertatze-ekin
errazagoa da hori aldatu nahi dugu erakusleak batera lan
ordez segimendua egiteko beharrik - ados, nire Irteeran NULL da?
Oh da? Gero zerbait zehatza egin Irteeran nodo sortu behar dut
bestela, batetik bestera joateko nahi dut hurrengo gauza seinalatu nahi dudana da NULL arte,
eta, ondoren, ordezkatu dut - hurrengo gauza zer da - nire malloc nodo.
Horren ordez, kasu horietan bereizteko beharrik, hemen dut bakarrik kasuan aurre egiteko
zer erakuslea dela NULL dut jada ez NULL izan nahi da,
eta horri esker, bizitza errazagoa horiek izan ezik guztiak izan behar du * oraingoa orain delako -
[Ikaslea] oraindik dira nodo baten tamaina?
[Rob] Bai. Oraindik ere, nodo bat naiz mallocing.
[Ikaslea] Is nodo * baten tamaina izango du?
[Rob] datozenak hemen atzera, kasua uste hau gure zerrenda lotuta badago.
Tipo hau adierazi off NULL.
Horren ondoren zergatik begizta, egungo hemen puntu
hau erakuslea dela NULL delako.
Orain erakuslea hau aldatzeko nodo berri bat seinalatu nahi dut.
Nodo tamaina beraz malloc - lehen nodo berri duten malloc dut.
Eta hori nodo * bat itzultzen eta orain erakuslea hau aldatzen ari da * oraingoa berdinen eraikitzeko
nodo berri hau esleitu I.
Beraz, egungo nodo bat bada **, ondoren * oraingoa da nodo bat izan nahi *, joan
eta nodo tamaina zerbait dut mallocing naiz bada orduan hau erakuslea da itzuli nodo bat
beraz, hau nodo * da - beraz, bi aldeetan behar bezala mota bera dute.
Eta beraz, zer NULL esleitu besterik ez dut izan zen bada, itzultzeko false;
bestela amaitzeko horiek ezartzeko zer izan nahi dut - horiek izan ezik parentesi behar
hori ez delako gauzen ordena nola funtzionatzen.
Duten bezala interpretatu ari zen parentesi gabe
korronte-gezi-val duten erreferentzia kenduta.
Ordez egungo erreferentzia kenduta eta horrek ekartzen dit nodo bat nahi dut.
Gero nodo lotutako balioa eskuratu nahi dut.
>> [Student] pentsatu dut geziak duten ekidin beharko duzu eta joan zuzenean balioa onartzen.
[Rob] dute egin. Hori dut bada - demagun ilaran adibidea da.
Naiz ilaran-gezi-val berdin i ilaran nodo bat delako * egin onartzen dut.
Han polita bezalako korronte-jada gezi-val edo zerbait sintaxia batzuk balira
horietatik 2 dereferences egin, orduan hau ondo funtzionatuko luke.
[Student] Beraz gezi 1 erreferentzia kenduta bakarrik da. >> [Rob] Bai.
Bestela hau idatzi izan dut gisa (** current.val).
Besterik ere gustatzen zait ilara idatzi izan (* ilaran). Val gisa.
Hargatik txertatzeko. Beno, hori ilaran ekarriko dut asmatzen.
Adierazten da nabarmen laburragoa izango da.
Dezagun jarri void hemen garbitasuna.
Beraz, adierazten du. Zer elementu naiz dequeueing?
[Ikaslea] Lehena? >> [Rob] Bai.
My first one NULL bada - bueltan - ez dakit zer itzuli nahi dugu I - INT_MAX;
eta orduan txeke bat egin behar duzu INT_MAX itzuli zen ikusteko.
Duten gauza sort hori ezagutu inc du, bestela, nahi dugu -
itzuli besterik ezin dugu ilara val? Da, zer egin nahi dugun hori?
Adierazten du, halaber, inplizituki elementua kentzen ilaratik,
beraz, demagun lehen - dezagun gure ilara lehen nodo seinalatu tmp bat lortzeko.
Orain gure ilara aurrera puntua hurrengo gauza ilaran nahi dugu.
Orain tmp ezker dugu. Tmp val gauza itzultzeko nahi dugun da.
Beraz, val = tmp-> val;
baina itzuliko gara aurretik tmp libratzeko behar dugu eta itzultzeko val.
Eragiketak hemen ordena garrantzitsua da horretan tmp bat hartu behar dugu
ilaran mugitzen dugu aurretik hurrengo elementua da.
Balioa lortzeko tmp askatzea dugu aurretik behar dugu,
eta, ondoren, val itzuli ahal izango dugu.
>> [Student] Beharko ilaran ezarri dugu hurrengo ilara?
[Rob] Bai. Begizta txarra zen sortzeko / ez litzateke hala ere libre uzten ondoren lan.
Ilaran = ilara-> hurrengo.
Ilaran aurrera hurrengo elementua sartu nahi dugu ez hurrengo elementua aurrera
zer elementu Unean da.
Pilak nabarmen izango litzateke - are errazagoa adierazten duten bezala da berdin
pilaren aurrean off tiraka ari garelako.
Amaiera ilara oso antzekoa izango litzateke non besterik nodo bat esleitu nahi dugu
eta pila aurrean txertatzeko, beraz ere ez dugu ezer gorako begizta behar.
Txertatu besterik ez dugu zuzenean aurrealdean.
Pertsona orok on da?
>> Ados. Galdera gehiago?
[Student] Zer gauza handiak behar izaten dut gogoan berrienak hitzaldia?
[Rob] berrienak Hitzaldia.
Ez duzu behar edozein kode ezagutzeko.
Globalak ideiak jakin behar duzu.
Nate erdiak ez zuen inolako kode dute eta beraz diapositibak horiek konektatuta.
Oraindik ez dute besterik begirada atsegin eta ideia nagusien dute.
Nire erdia - lehen ezin duzu ezer fidatzen ideia orokorra ezagutzea.
Izan ere, agian konpiladorea prozesua txarra izan daiteke bezala,
baina ez du, nahiz eta axola iturburu kodea, itxura ona du.
Konpiladoreak zehazki aldatu delako liteke iturburu kodea aldatzeko
konpilatzean prozesuan.
Bezala, aldi berean, - uste dut ideia nagusiak bezalakoak dira horiek.
>> [Student] Ba aipatu duzu ez dugun behar Firesheep lotutako ezer jakin -
edo ez dela jakin behar dugu?
[Rob] Nate gauzak erdia, ezer Nate ukitu batekin -
Firesheep, Wireshark bezala - ez ere uste dut Firesheep egin zuen xehetasunez.
Halaber zenuen horrekin zerbait - zen Firesheep - azken astean?
Ba ukitu duzula?
[Ikaslea] Bai, uste dut agian dugu - >> [Rob] Bai.
Ez gabiltza duzu Firesheep irteera emango ditu, eta esan hau interpretatzeko.
Zer da Firesheep bezalako galdera bat izango litzateke - Besterik ez da behar du?
Zer balio du?
[Ikaslea] 4 bertsio Firefox edo zerbait, bakarrik lan uste dut.
[Rob] Agian orain, hautsi egingo.
Ez dut ideiarik ere.
Ez dirudi eskuz ezgaituta izan behar da,
baina agian ez du batera berrienak Firefox funtzionatzen.
[Ikaslea] benetan saiatu naiz bateragarria izango litzatekeela esan delako instalatu.
[Rob] Beraz, uste dut ezin du berarekin berrienak Firefox funtzionatzen.
Baina ideia oraindik ere zer esan nahi zen erakutsiko du standak.
Absurdu zenbat munduaren ez zen HTTPS in garai hartan bizi izan zen.
Are gehiago, azken 2 urteetan, edozein dela ere, edo, oraindik ere, - ez dauden hobekuntza dramatikoa da
HTTPS erabiltzen duten webgune zenbaki.
>> [Student] baino gehiago joan HTTP behar dugu?
[Rob] da protokoloa? >> [Student] gauza jakin behar ditugu batzuk.
[Rob] Ondo da. Oinarrizko gauzak zure sare fitxa ikus dezakezu dena dira.
When I orri bat eskatu - atzera datozen gauza nagusientzako goian.
Ikusten duzu hemen eskaera dudala egin.
Chrome dena formatua emateko nicely Gurekin gertatzen
non eskaera URL hau izan zen, eskaera metodoa GET zen,
eta egoera kodearen 200 OK zen.
Kodea ikusi hit badut, zuzenago ikusten dut -
eta hau da - erakutsiko genezake horiek bai, baina ez da zaila haien artean interpretatzeko.
Hemen zuzeneko eskaera egin nuen da, beraz, horrek esan nahi du joan nahi dut
apps.cs50.net/discuss/threads/inbox/all/HTTP/1.1.
Eta protokoloa egiterako HTTP/1.1 zen hau da, ia - nik beti izango.
Hemen baino gehiago GET erabiltzen dugu, beraz, hau ere izan liteke POST.
Eta gero behera datozen - modu guztiak erantzun goiburu behera - iturri dela ikusi badugu,
non 200 OK ikusiko dugu.
Posible desberdinak status horien kodeak ezagutzen.
Uste dut berrikuspena horiek pare bat esan nahi dugu,
beraz, 403, 404 - amankomunean direnak mota horiek.
Dela ideia nagusietako bat.
HTTP eta HTTPS arteko aldea besterik enkriptatze hau da.
>> [Student] zara egiten? >> [Rob] Baietz uste dut. Beno, bai.
[Ikaslea] Egingo oso orokorrean hitz egin duzu enkriptatze nola obra buruz?
Hitz egin dugu adibidez delako denean Huffman fitxategiak konprimitzea,
nola erauzi benetan hash igorri delako fitxategia barruan badakizu
beraz, nola enkriptatze-lana?
Nola ez, informazioa nola enkriptatzen ez dute egia esan, bezeroari bidaltzen bada badakizu
hemen gakoa - eta benetan har dezakezula gako horretatik aurrera -?
Nola funtzionatzen du prozesu orokorrari?
[Rob] enkriptatze prozesu orokorra -
galdera oso zehatza bat egingo erantzun dut da.
Ez dago gutxian - ondo, Tommy eta biok egindako laburra.
Zoritxarrez 26 minutu bezalakoa da, beraz, ez da labur bat da. Luzea da.
Baina gure labur RSA zen eta horrek horiek adibide bat besterik ez da,
eta RSA hau orokorra HTTPS protokoloaren zati da.
Ideia - RSA gako publikoaren kriptografia adibidea da,
horrek esan nahi du 2 gakoak bereizi egin behar duzu.
1 gako bat erabiltzen duzunean gauzak benetan enkriptatzeko,
eta beste funtsezko erabiltzen duzun gauza desenkriptatzeko.
Gauzak enkriptatzeko erabiltzen duzun gako hau ko duten publikoa da.
Webgunera bidal daitezke enkriptatze gako hau.
Bidaltzen duzun enkriptaketa giltza hori egin dute, eta zerbait bidaltzeko horiek nahi duzun
Enkriptatze gako hori erabili duzu zure datu guztiak zifratu eta bidali zien.
Beraz, gako pribatua duten bakarrak dira.
Gako pribatua duten jakinez gero bihurtu ondoren edonork zure datuak deszifratzeko gai izango litzateke.
Baina gako pribatu hori - eta horrek matematikoki gako publikoa lotuta dago, baina ezin duzu
bat beste batetik irudikatu - horrela gako pribatua datuak desenkriptatzeko erabili ahal izango da.
Gako pribatua duten bakarrak dira geroztik,
duten datuak irakurri ahal bakarrak ari dira.
Gako publikoa publiko Beraz, nahiz eta ez den
Bera erabili dut - joaten denean Google.com edo dena nahi dut,
dute agian bat baino gehiago, ez dakit - baina banoa Google.com nahi izanez gero,
doa Google.com zuen, doa zuen Google.com--
denok gako publiko bera erabil dezakete ordea nahi dugu gure informazio propioa enkriptatzeko.
Baina gurekin ez dira irudikatu ahal izango da - dira deszifratu ahal izango da
gako publikoa ez beren informazio delako da deszifratzeko gai.
Bakarra da enkriptatu ditzaten.
Eta barre / math zehatza da - modulua operadore eta esponentzial eta stuff sorta bat bezala,
da bakarrik lan egiten duten gako pribatua du, ahal duen gauza bakarra dela
desenkriptatzeko gako en publiko enkriptatze stuff.
Bai. Ikusi RSA xehetasun gehiago labur.
[Ikaslea] Dela web orrian?
[Rob] Bai, uste dut puntu honetan ere. Edo, gutxienez, YouTube da lotura bat izan zen argitaratua.
Ikus dezagun. Film laburrak. Uste dut aste 2-zerikusia izan litzateke. Bai. RSA.
Eta da - we're ez honetan play joan - 24 minutu.
Luze bat da.
>> Galdera gehiago?
[Student] Ezin laburki hitz egin duzu bitmasks buruz? >> [Rob] Noski.
Laburki, ideia besterik ez bezalakoa da - >> [Student] Zer duzu, Rob?
[Rob] Bitmasks. Ideia da - utzi, besterik gabe esan batzuk ditugu - osoko zenbaki batzuk erabiliz we're -
int x - beraz, hasteko off gara 0.
Orain, osoko zenbaki hau 32 bit dituenez, edozein bit horietako 1 bakar irudikatzeko erabil daiteke
FLAC zehatz bat.
Hau da, non begiratzen baduzu sistema eragilearen kodeak at, hau erabiltzen dute leku osoko
non agian top up nonbait dute hash-defini -
Ikusi ditzagun adibide batzuk.
Man-2-open --sistema irekia deia hemen ikusten duten bere argumentuak bat int banderak ahal izango dugu -
zer argumentu hori dira banderak horietako batzuk espero da.
Ikusiko dugu O_append, O_ASYNC, O_CLOEXEC,
O_CREAT, eta abar.
O_DIRECT. Banderak mota horiek dira nonbait hash definitutako.
Eta denak dira zehazki 1 bit.
Beraz, O_CREAT hash definitutako 1 bezala, ezker-shift, 4 izan daiteke (1 << 4).
Betiere O_CREAT hori besterik ez izango da erabiltzen dut - hori izan da joan -
binary 1, 0, 0, 0, eta 30-ish zeroen en aurretik.
Bit bakarreko multzo bat besterik ez da, eta bit hori bandera hau adierazten du.
Eta beraz, ez du beste Ez da izango 4 utzitako-desplaza joan.
Gora ordezkatzen 32 zenbaki oso bakar batean banderak egiteko gai naiz -
x = O_CREAT pixka jakintsua edo O_DIRECT.
Besterik edozein banderak horietako 2 biltzen ari zaren.
Orain x da ezarri 2 bit 2 bit dagozkien izan da joan
O_CREAT eta O_DIRECT neurtzen.
Bide horretan eta gero -, beraz, orduan x gainditu dugu irekita funtzioa sartu,
eta premiei irekia zer banderak ziren benetan ezarri ikusteko.
Beraz, hori non nik bezalako gauzak egin da joan
if (x & O_CREAT) zerbait egin,
edo bada (x & O_DIRECT) beste zerbait egin,
eta, ondoren, ez dagoela ez dute ezarri dugu bandera batzuk izan daitezke -
if (x & o_ - ez dut ez dakit zer beste banderak izan ziren -
(X & O_RDONLY) - Baldintza jakin hori behar da, emango du.
Edo kode-bloke hori ez da exekutatu egingo da,
baina 2 hauek dira 2 banderak horiek ezarri ziren delako.
Eta konturatu C, hori ez da 0 edozein balio egiazkoa da.
Beraz, (x & O_CREAT) 0 edo O_CREAT izango da
delako O_CREAT bakarrik bit set bakar bat du.
Bit hori hurrengo ezartzen bada, orduan hau da O_CREAT itzuli egingo da -
bitarra non apurtxo bat ezartzen da.
Bada bit hori hurrengo ezarria ez badago, ondoren, 0 itzultzeko, eta kasu horretan badakigu bandera ez zen ezarri du.
Hori da bitmasks nola erabiltzen duzun.
Uste dut aurreko azterketa bat edo agian klase edo zerbait on -
halaber bitmasks erabili dezakezu aldagai baten bitarra inprimatu.
Beraz, erabili ahal izango dut - begizta - 1, ezker-shift, 0 - eta ondoren inprimatu x & duten bada -
x & 1, ezker shift, 0 bada - ondoren, inprimatu a 0 edo 1. Edo inprimatu 1, bestela bat inprimatu 0 bat.
Eta gero gainetik beste behin joaten naiz - bada x & 1, ezker-shift, 2 - ondoren, horrek esan nahi du bigarren bit
aldagai ezarritakoan, beraz, 1 bestela bat inprimatu dut inprimatu dut 0 da.
Eta uste dut benetan genuke hori egin delako alderantzizko ordenan nahi
normalean ezkerraldean altuena ordena bit izan nahi al duzu
eta eskuinaldean txikiena-ordena bit izan nahi du, beraz, seguruenik begizta 4 int i = 31 hit I 0 arte,
gero ez duen baldintza zehatza - bada x & 1, ezker-shift, i; inprimatu 1, bestela 0.
[Ikaslea] Eskerrik asko.
>> [Rob] uste dut gara denbora daudelarik.
Kanpo-denbora-segundo azken bi urtean galdera gehiago?
Ondo da. Zorte on bihar.
Honen azken atala non hurrengo astean aukerakoa izango da joan zen.
Eman dut atzera ariketak eta haien gainean joan gaitezke eta, agian, beste gauza gehiago joan
interesa, edo final zinen proiektu gauzak, etorkizun CS klaseak gauzak, edo - Ez dakit.
Baina hau azken material betetako atala da.
Bye!
(Txalo)
>> [CS50.TV]