JASON Hirschhorn: Bonvenon, al ĉiuj, al semajno 10. Ĉi tio estas ekscita semajno ĉar morgaŭ estas Kvizo 1, kion ni ricevos al en sekundo. Hodiaŭ en sekcio, ni tuj iru super iuj rimedoj por la kvizo, kaj tiam mi respondu al ĉiuj demandojn vi uloj havas. Kaj ni estos fine fini kun iuj praktiko problemoj. Ni povas pasi la tutan sekcion respondante demandojn. Ni povas pasi la tutan sekcion irante sur praktiko problemoj. Ni nur pligrandigi plenigi la spaco kaj tempo ni havas. Do mi metis ĉi tiu listo ĝis ĉiu semajno, sed ĝi estas aparte grava ĉi tiu semajno. Por studi, se vi ne havas komenciĝis jam, ho knabo. Sed espereble vi jam komenciĝis jam. Kaj vi iros tra la materialoj kaj rimedojn listigitaj tie. Mi forte rekomendas nombro de tiuj. En aparta, prelego notoj estas nekredeble grava kaj utila. La study.cs50.net provizas grandan imprimación sur tereno de la temoj ni kovris. Ĝi ankaŭ havas kelkajn grandajn ekzerci problemojn. Kaj tiam, Google estas granda, tro. Mi ne scias, kion vi volas uzi gxin por. Sed uzi Google, tiel. Etendu al mi se vi havas ajnan demandojn, komentojn, aŭ zorgojn. Serĉu super la recenzo kunsido diapozitivoj de lasta nokto. Aŭ, se vi havos iom da tempo, spekti la video. Ili havigas multajn helpemaj materialo kaj informa. Kaj provi kaj kovri, se ne ĉiuj, multaj el la temoj jam kovrita kaj ke vi povus vidi sur la kvizo. Parolante pri la kvizo, ke estos morgaŭ. Ĝi estas 75 minutojn longa. Multaj el vi prenas ŝin je 1 horo, kaj iujn el vi estas portante ĝin je 5:30. Cxar la tempo vi prenas ĝin kaj la situo vi prenas ĝin, certigi Vi kontrolu la dokumenton sur la CS50.net hejmpaĝo. Memoru, ke vi povas ricevi unu 8 1/2 por 11 folio kunpreni vin. Ofte, homoj ne uzas ĉi folio ĉe ĉiuj dum la kvizo. Sed vere, ĝi estas nekredeble helpema studo ilo. Do kunmetado tiu folio estas kion Mi pasigis eble tri aŭ kvar horoj faris kiam mi studis por CS50, kaj kiu estis facile la plej helpemaj Tiel mi povus studi por la kvizo. Do eĉ se vi havas iun fremdan studo gvidas rigardi kaj uzi kiel referencoj, mi tre rekomendas fari vian propran studo gvidas, metante Okaze kune. Tio vere helpas vin lerni ĉiuj de la materialo. Laste sed ne malpleje en ĉi tiu sekcio, post la kvizo morgaŭ ekzistas unu pli prelego - venonta lundo. Tie estas unu pli sekcio, ne apud Mardo antaux Thanksgiving, sed la Mardo post tio. Ni kunvenos kune por fina adiaŭ partio kaj ankaŭ faras iuj malvarmeta aferojn get you guys ekscitita pri pliaj studoj en komputiko. Tie estas unu pli projekto, unu pli justa, pli hackathon. Ni proksima al la fino de CS50, kio estas ekscita - sed ankaŭ, se vi estas kiel Mi, iom malgaja. Antaŭ mi movi plu, ĉu iu havas demandojn pri kio ni kovris ĝis nun? Okej, bone ni transiru iuj demandoj ke vi havas pro la kvizo kaj temoj ni povus kovri. Do tiu estas listo por ke mi metu kune. Ĝi estas neniel kompleta, sed espereble estos jog via memoro, se vi havas iujn demandojn pri iu el tiuj temoj, aux se vi havas demandojn pri praktiko problemoj de kvizojn en jaroj pasintaj. Mi havis kelkajn demandojn, kiuj estis retpoŝtis al mi, sed mi volas teni ekstere pri tiuj por sekundo. Ĉu iu havas iun demandon, problemojn ili ne komprenis, respondojn ili ne komprenis al get ni komenciĝis? Avi. Spektantaro: Ĉu vi ĝuste iros DOM kaj Ajax vere rapide? Kiel, kion ni bezonas scii aux devus kompreni pri ili? JASON Hirschhorn: Mi tuj respondi ĝenerale ĉi demando, kion do mi bezonas scii pri donita temo x? Ĉar mi havas senton al multaj el vi tuj demandas min, ke aŭ estas scivolema pri tio. Do al la punkto, ke la temo estis kovrita per prelego aŭ sekcion, aŭ sur study.cs50.net, problemo metita, vi devus esti familiara kun ĝi. Do vi ne bezonas scii ĉiu tipo de etikedo kiu estas havebla en HTML aŭ ĉiu tipo de atributo aŭ proprieto vi povas doni ion en CSS. Sed se vi vidus gxin en prelego ekzemplo, se vi vidis ĝin en problemo aro, vi probable devus esti familiara kun ĝi, aparte aferoj kiujn vi vidis, en prelego. Do ni diskutis la dokumenton kontesti modelo iom en sekcio, plie en prelego. Vi devus esti familiara kun tiu parto de ĝi. Kaj vi devus koni Ajax al la sama punkto. Ni neniam vidis nekredeble antaŭita aŭ komplikaj ekzemploj de Ajax, tiel vi ne tuj estos petita fari io nekredeble komplika. Sed vi eble demandos, kiom mi fari Ajax alvoko uzante jQuery? Kio estas io, kion vi vidis kelkaj da fojoj antaŭ, ambaŭ en la revizii kunsido kaj en lekcio, kaj ĝi estas nur du-ish linioj de kodo. Do tio estas io, kion vi devus esti familiara kun. Sed denove, por ĉiuj tiuj temoj, se vi jam vidis ĝin antaŭe, ĝi estas bela ludo. Kaj ni povus demandi vin - evidente, ni estas tuj demandos vi tion vi ne vidis antaŭe. Kodiga ion vi havas ne antaŭe vidis. Kiu ne volas diri ke vi ne havas vidis la ilojn por solvi ke problemo antaŭe. Vi vidis tiujn ilojn. Ekzemple, sur Kvizo 1, se vi devas kodigi strlen. Ni ne coded strlen antaŭe. Sed vi jam scias kiel uzi por buklo, vi scias kiel uzi se kondiĉoj. Vi scias kiel skribi variabloj en C. Ĝi tuj estos la sama afero ĉi tie. Vi ne tuj estos petita fari ion vi ne vidis antaŭe, sed eble vi demandos al, kiel, meti io kune en nova maniero, aŭ solvi malsama tipo de problemo. Pardonu, ke ne estis specifa al via demando, sed mi ne povas respondi pri ĉiu sola temo kion vi fari aŭ ne bezonas scii. Sed ankaŭ, sorry, lasta afero pri tio. Ni pasigis konsiderinde pli da tempo link lertaj ol ni havas sur la Ajax. Vi ne uzis Ajax en problemo aro. Unu el la centraj karakterizaĵoj de tiu problemo starigis kiu estis ligilo listoj. Kaj ni pasigis multan tempon en lekcio kaj sekcio uzante gxin. Do, probabloj estas ligilo listo levigxos pli Ofte en la kvizo ol Ajax volo. Aŭ la demandoj devi fari kun ligilo listo valoros pli da poentoj. Do vi certe povas enfokusigi kaj mallarĝa en la aferoj kiuj estas pli verŝajne li supreniru ĉar ni havas pasigis pli da tempo pri ili. OK aliajn demandojn? Jes. Spektantaro: Cxu ni transiru al la uzo de anonima funkcioj en JavaScript? Mi a estas iom konfuzita pri tio. JASON Hirschhorn: Do en JavaScript - Mi provas pensi kiel mi povus skribi tion en - do ni efektive malfermu tiun kodon. Do tiu estas kodo kiu ni faris lastan semajnon. Kaj vi jam vidis ĉi tion antaŭe, se vi estis tie en la sekcio pasintsemajne. Aŭ vi vidis ion simila al tiu antaŭe. Sed vi povas rigardi tiun unuan linion. Jen kiel vi starti - ĉies vidis tiun antaŭe. Se vi volas enmeti iujn kodo JavaScript, vi metis gxin interne de tiu, supozante vi uzas jQuery. Tio estas diranta, ne faru ion ĝis la dokumento ŝarĝita. Kaj tiam, Curt, vi vidas ĉi tie ni faras ion kiel tiu - funkcio malferma paren, fermita paren. Do ni ne donante ĉi funkcii kiel nomo. Ni ne tuj difini ĉi funkcio supozas kuri kaj poste nomas ĝin faskon da fojoj. Ni nur diras ĉi dokumento jam prenas funkcio. Paro de aferoj por fari. Kaj ni ne volas pasigi la tempon donante al ĝi nomon aŭ savi ĝin pro cxiam. Ni nur volis kuri kelkajn aferojn. Do anonima funkcio speco el utilas tiu celo. Kiam vi ne iras uzi ion foje kaj refoje, do vi ne bezonas doni al li nomon - vi nur ĉu vi uzas ĝin unufoje - vi estus ĝuste diri funkcio, por Ekzemple, en tiu kazo, kaj vi estas nur difinanta io ke vi povus doni nomon. Kiel ni povus tiri tiun funkcion el kaj donu al li nomon kaj tiam nomas tiun funkcii tie. Sed ni ne bezonas, ĉar ni ne volas malŝpari tempon doni al li nomon aŭ disperdas ion en nia nomo spaco. Kaj vi vidos, ke multo. Ekzemple, ni vidas, ke multon en tiu kodo, sed vi jam vidis tiun antaŭe kiam vi premas ion - kuros ĉi tipo de kodo. Ni povis difini la kodon, kiun ni volas kuri kiam ni klaku, en ĉi tiu kazo, ĉi ID: kiel aparta funkcio kaj poste ekzekuti tiu funkcio. Sed en tiu kazo, ni simple saltante ke paŝo kaj movante ĝin en ĉi tie kaj nur por difini ĉiun ke ni volas okazi kaj ne donante al ĝi nomon. Tio ankoraŭ ne havu respondis vian demandon. Spektantaro: Ne, gxi faras. Mi volas diri, mi supozas ke mi simple ne vere get kial estus funkcii tute ne, kvankam. Ĉar ĝi ne estas vere esti nomata. Ĝi vere ne havas nomon. JASON Hirschhorn: Estas funkcio en la senco, ke ĝi estas de serio de paŝoj, kiel vi metus en funkcio. Kaj poste jen kial ni nomas ĝi anonima funkcio. Ni ne donos al li nomon. Ni ne tuj malŝpari klopodi nomumi ĝin, sed ni povus. Anonima funkcioj, vi povas ĉiam doni nomon. Do, ekzemple, tiun kodon ĝuste ĉi tie, ni povus meti tiun kodon ene funkcio kaj tiam nomita tiu funkcio ĉi tie. Anstataŭe, ni diri, ni ne tuj tedi kun tio. Ni nur verkos ĉion ĝuste ĉi tie. Estas kiel kelkfoje kiam vi skribas kvar buklo en C - you guys vidis tion antaŭ - eble vi estas ripetanta tra forloop en i egalas 0. Mi estas malpli ol strlen. Aŭ vi iras tra kelkaj tabelo, vi povas savi tabelo indekso i en iu variablo. Kaj vi uzas tiun variablon. Do vi ne bezonas reskribi tabelo krampo i super kaj super kaj trans. Kaj tio estas speco de kiel suĉilo variablo. Tio ne utilas multe celo alia ol fari vian kodo iom purigisto kaj pli facile legebla. Similaj funkcio ĉi tie. Nur faras ĝin iom pli facile, sed funkcie ne estas diferenco. Ĉu tio respondas vian demandon? Spektantaro: Jes. JASON Hirschhorn: OK .. Mario? Spektantaro: Hieraŭ oni ofte metas funkcio parentezoj okazaĵo. Ĉu tio signifas ion? Aŭ ĉu por aĵoj kiel ke oni faru document.ready funkcio okazaĵo. JASON Hirschhorn: Ni vidis tion, kaj denove, ĉi tiuj estas malgrandaj aferoj probable mi ne volas pasigi tro da tempo plu. Ĉar kelkfoje mi ne volas ke oni get freaked ke ili ne aŭdis pri tiuj aferoj multe. Sed ni parolis iomete pri okazaĵo kodogrupo except. Do io okazas, kaj poste tiu funkcio estas ekzekutitaj. Kaj tiam ni ankaŭ volas scii kelkaj detaloj pri kio okazis en tiu evento. Do pensu reen al problemo starigis 4. Tio estas verŝajne la plej facila maniero kompreni, ke en break out. Estis iu kodo - kiel evento okazus, sed okazaĵo povas signifi multajn aferojn. Se povus signifi la muso klakis, ĝi povus signifi vi trafis sago klavo, et plu, kaj tiel plu. Sed estas tute savis en tiu ĝenerala afero nomita eventoj. Kaj tiam ni povas diri, estas tiu evento tiun aferon? Aŭ ĉu tio okazaĵo ĉi tiu aĵo? Aŭ, kiaj okazis kun tiu evento? Do jen kial vi kredas, ke variablo tie, por savi tion superflua informo pri kio ĝuste okazis ke vi tuj volas utiligi en la funkcio. Sed denove, tio verŝajne unu el la malpli gravajn aferojn esti super familiara kun. OK, kion aliaj demandoj havas homoj havis, aŭ delogilojn ili jam renkontita dum la revizii? Ni Reen al tiu listo. Kio pri dum praktiko kvizojn, se homoj prenis tiujn jam? Kio estis kelkaj problemoj kiuj stumbligis you guys supren? Mi scias por fakto ke pasintjara kvizo estis vere malfacila. Spektantaro: Cxu vi povas klarigi, kio an SQL injekto atako estas? JASON Hirschhorn: OK, grandaj. Do ni parolis pri tiu iom. Estas prelego pri sekureco. Kaj denove, kiel mi menciis pli frue, tio estas flanken. Sed vi estos frustrita pri la kvizo kiam vi legas iun malgrandan du punktaj demando, kaj vi estas kiel, kiam ĉu mi iam lernas tion? Ĉiuj el tiuj aferoj en tiuj prelegoj ke vi ne opinias ke vi bezonis koni, aŭ vi povus gloso super ĉar ili ne devis fari kun la problemo aro, tiuj volas verŝajna Kaj suprenirinte sur la kvizo. Do, cool, amuzaj aferoj kiujn vi ĵus pensis Davido estis rakontanta al vi ĝui, li estis rakontanta al vi por vi ĝui kaj fari al vi nur estu super ekscitita pri lernado de ĉiu tie estas lerni pri komputiko. Tiuj aferoj ankaŭ supreniru sur kvizojn. Do, eĉ tiujn malgrandajn aĵojn kiuj ne rekte rilatas al via problemo aro, kiel vi uloj estas familiara kun el Kvizo 0, versxajne venas supren. Kaj ĉi tiu estas bona ekzemplo de io. Do SQL injekto atakoj estas kiam vi akiri iun informon de la uzanto kaj vi volas enmeti ĝin en tabelo uzante SQL insert aserto, sed vi ne sanitize la enigo antaŭ tempo. Do, evidente ni vidis SQL-deklaroj. Mi simple malfermi - ni iru - ni iros al la recenzo - Mi opinias, kiuj kovris ĝin? Mi kredas Samala faris. Do ni povas akiri - Spektantaro: Kie vi trovis ĉi tion? JASON Hirschhorn: Do, se vi iros al CS50.net, kvizojn, kaj tiam vi povas rulumu superfluaj get diapozitivoj de la recenzo kunsido. Sed vi povas vidi ĉi estas bona ekzemplo de SQL injekto atako. Ni prenu kelkajn informojn de la uzanto kaj oni donu al ni ŝnuro, kaj poste ni volas enŝovu ke kordo en datumbazo. Ĝenerale ni tuj sanitize ke enigo, kio signifas, ke estas iuj karakteroj kiu estas danĝeraj. Ekzemple, en SQL kordoj, tiuj citaĵoj - citiloj aux citiloj - signifi ion. Ili signifas fini ĉi kordo tie. Kaj do, se la uzanto donas vin sola aŭ citilon, ili povus esti provas malhelpi vian SQL query kaj enŝovu iujn malbonajn aferojn en ĝi. Kaj se ili faros tion, ili povis gajni kontrolo de via datumbazo aŭ fari iun aferoj kiujn vi ne deziras ilin fari. Do jen kial kiam ni prenas la SQL pridemandojn, ni sanitize enmeta antaŭe metante gxin en la datenbazo, kiu signifas ke ni eskapi tiujn literojn. Ni parolos pri tio en sekundo. Sed longan rakonton mallonga, SQL injekto atako estas se vi ne faras tion - se vi ne atentas la enigo ili donis al vi antaux metante vian datenbazo, oni povas, kiel vi vidas suben ĉi tie, kuri konsulto ke, fakte - ili metis en sian kodon malsupren tie kaj ĉi unuaranga linio suben ĉi tien, vi elektos ĉio de la tablo sendistinge de kio la pasvorto estas donita. Ĉar vi havas la aŭ 1 estas 1. Do ĝi estas esence, longan rakonton, maniero transpreni la datumbazo. La demando, do, por vi, knaboj, estas kie en p aroj 7 did you sanitize ĉiuj la enigoj por via SQL pridemandojn? Kien tiu paŝo okazos? Kie vi preventi SQL injekto atakoj okazas en p starigis 7? Jes. Spektantaro: Kripto? JASON Hirschhorn: Do ĝi ne estis kripto. Ni ne faru al vi tion fari por tio aparta problemo metita, sed ĝi okazas en la informpeto funkcio. Ni efektive skribis ĝin por vi, kaj ni zorgis pri la sanitizing enigoj por vi. Sed en jaroj pasintaj, studentoj havis tajpi la enigoj arope. En p aro 7, multa de vi - lasu min malfermi unu alia dosiero. Do vi rimarkos tien multajn homoj, en problemo metita 7, ne vokas ĉi funkcio sur kordoj. Ĉi tiu funkcio, htmlspecialchars, denove - tiun ĉenon havu iom da aferoj ke en HTML signifi ion alian. Kiel streĉa, kvadrata, aŭ angulo krampo signifas ion en HTML. Kaj do, se vi presas ke el la ekrano aux se vi nur prenu ke kaj presi, ke el via HTML, ke potenco faru ion vi ne atendas. Do htmlspecialchars iras super ĉiuj tiuj karakterojn kiuj havas specialan kunveno kaj eskapas ilin. Do ĝi gets presita kiel eliras la teksto vi volas vidi, prefere ol screwing vian HTML. Ni nomas tiun funkcion en la kaplinio. Kaj multaj homoj forgesis nomas tiun funkcion en la kodon, kiun vi skribis. Do, ekzemple, se stokon nomon havis angulo krampo en ĝin kaj vi forgesis nomi tiun funkcion, kiuj angulo krampo povus esti ĵetitaj sur kio via HTML aspektis. Sed nomi ĉi funkcio estos eskapi ke tia ĝi efektive presas ekster kiel angulo krampo kaj ne ĵetas sur via HTML-kodo. La sama kialo, ni jam vidis, kelkfoje, slashes antaŭ duoblaj citiloj en printf linio, ĉar ni ne volas ke la duoblaj citiloj malsupren la kordo. Ni volas presi ilin eliru al la ekrano. Do ĉio ĉi estas la sama ideo. Ĉu tio respondas vian demandon? Spektantaro: Speco de. JASON Hirschhorn: Do vi havi follow-up? Spektantaro: Mi supozas ke la SQL injekto atako devas fari kun tio? Mi ne komprenas kiel La du estas rilataj. Kial vi farus la specialchars? JASON Hirschhorn: Bone, do la SQL injekto atako estas kiam vi injekti iuj malicaj kordoj en ies programo, kaj ili simple prenas ĝin kaj kuris la SQL query kun ŝnureto Vi donis al ili. Kiel vi povas vidi cxi tie, ke povus esti problema. Do la vojo vi preventi kontraŭ tiu estas vi prenos iliajn kordoj, ke ili donu vi - tial ĉi kordo ĝuste ĉi tie - kaj vi sanitize ĝin. Vi eskapi la konsekritajxojn kashite problema. Do vi ne interpretu ilin kiel ion tio signifas ion. Kaj ekzemplo de tiu kun HTML estas tiu funkcio. Do ĝi estas la sama ideo tie. Kaj mi ĝuste montrante vi aliaj ekzemplojn pri kiam vi havas vidis tiun ideon antaŭ. Eskapi uzanto enigo antaŭ presado gxin al ekranon aŭ metante gxin interne SQL aserto. Spektantaro: Do, en tiu kazo, la uzanto Estas konfuzigante la programisto. JASON Hirschhorn: Jes. Kun ĉiuj tiuj sekureco atakoj, tio estas ĉiam ĝenerale la uzanto, aŭ iu, provas salato kun vi, la programisto. Kaj jen estas manieroj vi povas malhelpi kontraŭ ili. Spektantaro: Do ​​mi havas demandon pri kradaj funkcioj. En Kvizo 1 de 2011, estas du demandoj pri unuflanka hashes. Kaj mi nur scivolas kion tio signifas. JASON Hirschhorn: OK, kiu kvizo? 2011? Spektantaro: Jes. Spektantaro: Kvizo 1? Spektantaro: [inaudibles]. Tio estas kvazaŭ hashing pasvorton. Tio ne metante aĵoj - JASON Hirschhorn: Kio paĝo estis tio? Spektantaro: Mi pensas ke estis 9 aŭ 10, aŭ ambaŭ. JASON Hirschhorn: Enorde, iru antaŭen, Curt. Vi povas respondi dum ni rigardu. Spektantaro: Mi pensas, ke tio parolas pri hashing pasvorton. Kiel, kiam iu eniras pasvorto: vi turni ĝi enen ĉifritajn afero. Tio estas la pasvorton hash, kiu estas malsimilas hash funkcio kiu metas ion en hash tablo. JASON Hirschhorn: Ni vidu. Lasu min eltiri supren, kion ili doni la respondon. Kaj tiam ni devos marŝi tra ĝi. Do Curt donis grandan ekzemplo de unu-formo hash. Kiam ni vidis tion antaŭ ol ni preni la pasvorton kaj turni - memoras, en p aro 7, iu povus havas pasvorton tio estas nur pasvorton, sed poste gxi gets ĉifrita en iuj vere longa afero. La unu-formo hash signifas tio estas tre facila iri de unu formo al alia, sed ĝi estas tre malfacila por foriri de la alia vojo reen. Kaj tial vi scias, kiam vi estis kontrol popola pasvortojn en problemo aro 7, vi prenus iliajn - tial, ekzemple, oni diras, volis ŝanĝi sian pasvorton, vi petas ilin cxar iliaj malnovan pasvorton. Vi prenis sian malnovan pasvorton. Vi ĉifrita ĝin. Kaj tiam komparis la du encryptions anstataŭ unencrypting la originalo unu, ĉar ĝi estas vere Malfacile iri tiun vojon. Jes. Spektantaro: Kiel en profundo faras nia komprenon de telnet devas esti? JASON Hirschhorn: Se ĝi estis menciita mallonge en prelego, nur mallongan kompreno. Denove, reen al la respondo al Avi demando - des pli tion supreniru, des pli verŝajna ĝi devas esti super familiara kun ili. Se ili estas ja nur venu supren en prelego, ke nur unu loko. Sed se ili venas en prelego, sekcio, kaj problemo starigis, tiam vi verŝajne devas esti super familiara kun ili. Do mi havis demandon de pli frue pri - estas Estis aŭtuno 2010 - Kvizo 1, ni tiris supren - tiu demando en stakoj kaj vostoj, kiun ni faris pasigi belan iom da tempo parolas en prelego, eĉ kvankam ni ne vere iam batis ĝin en sekcio. Do tiu demando donas al vi serion de komandoj kaj demandante al vi, kion gets presita en tiu kazo. Do tio estas tute racia demando kiu povus esti petis de vi knaboj, kaj tiam vi uloj devus esti kapabla respondi ĝin. Do kial vi ne rigardu ĝin dum 30 sekundoj, kaj poste, se iu volas proponi respondojn al mi, kaj tiam ni devos marŝi tra ĝi. Enorde, kiu havas respondon pridubi 27? Jes. Spektantaro: Ĉu estas 1, 2, 3, 3? JASON Hirschhorn: Tio pravas. 27 estas 1, 2, 3, 3. Do ni rigardu kiom ni akiris tion. Unue, ni diras, se s estas vosto, kio gets presita? Do q estas la unua en, unua el. Ni jam vidis, ke antaŭe. Ni vidis la bildon de la popolo atendi ĉe la Apple Stoki aĉeti iun produkton. La unuaj homoj en estas la unuaj homoj eksteren. La unuaj aferoj en atendovico estas la unuaj aferoj ekstere. Do, se ni puŝi ion en atendovico, vi kornobatos la 1, tiam ni pop la 1. Popo simple signifas preni eksteren. En ĉi tiu kazo, nur prenu ion el. Ni prenu el la unuaj afero, tio estas 1. Do ni metos tion ni presi malsupren super tie. Tiu ne plu estas en nia vico. Tiam ni puŝi sur 2 kaj 3, kaj Ni pop for la unua afero. Denove, ĉar ĝi estas vico. Do ni ricevas a 2, tiam ni metis sur la alian 3 kaj nomas popo denove. Nia 3 estas unua. Kaj tiam ni havis tutan faskon da aliaj aĵoj kaj alvoko popo. Sed denove, ĉar tio estas vosto, unua en, unua el. Ni prenu el la unua afero kiu estis iam enmetita tien Tio estas nia 3. Kaj, en tiu kazo, ni ne maltrankviliĝu Pri ĉiuj tiuj aliaj aferoj. Do tio estas, se tiu estas vico. Demandojn pri atendovico? Stako de malsamaj. Kio estas la akronimo ni havas por kompreni la pilo? Spektantaro: lasta en, unua el. JASON Hirschhorn: LIFO, mi pensas. Lasta en, unua el. Do ni vidis ekzemplon de stako de pletoj en manĝejo. Kion ajn pleto estas supre sur gets reprenita. Kaj tiam se novaj pletoj venis en, ili get surmetis supro. Kaj tiam tiu, kiu estas ĉe supro gets reprenita. Do tiuj cindrujoj sur la fundo forteco resti tie dum kelka tempo. En tiu kazo, denove, ni cxerpi ĉi eksteren. Ni puŝas sur unu, tial oni Estas unue en linion. Kaj ni pop ion. Kaj tie estas nur unu afero en tie, do ni movos 1 suben ĉi tien. Poste ni metas la 2 kaj 3 kaj Ni pop ion. Sed denove, ĉar tio estas queue - aŭ ĉi estas stako, prefere - oni prenas kion ajn estis en lasta. Kio ajn estas en lasta devenas el la komenco. Kaj 3 estas en lasta. Do ni metas la 3 tie malsupre, tiam ni metas sur alian 3 kaj ni pop io denove. Fine, ni metis sur la 4, 5, 6, kaj 7, kaj tie ni pop. Kaj ĉar ĝi estas pilo, ni preni kiom estis metita en lasta kaj skribi ke cxi tie. Do ni finu kun 1, 3, 3, 7. Ĉu iu havas demandojn pri stakoj aŭ vostoj, aŭ tiun ekzemplon? OK. Ni reiru al la listo de temoj. Ne tiel, tiamaniere. Kiuj aliaj demandoj budhanoj havas? Spektantaro: mi ne scias kiom grava ĉi tio estas, sed mi estis konfuzita per la diferenco inter diversaj tipoj de lingvoj kiel markado, kompilitaj, interpretitaj. JASON Hirschhorn: Tio estas bona demando. Mi kredas ke estas io grava, do ni iros trans gxin rapide. La grandaj lingvoj ni vidis ĝis nun estas C, PHP kaj Javascript, en terminoj de programlingvoj. HTML, kiel vi menciis, estas ne programlingvo. Ĝi estas markado lingvo. Kaj tiam ni havos CSS, kiu estas ankaŭ ne estas programlingvo. Ni ankaŭ vidis SQL, kiu estas ne programlingvo ĉu. Do SQL permesas al vi skribi pridemandojn por datumbazo. HTML estas markado lingvo. Ĝi difinas kiel aferoj estas strukturitaj. Kaj CSS permesas vin stiligi aferojn. Tio estas verŝajne la mezuro por tio, kion vi bezonas scii pri tiuj tri. Sed estas pli interesa al figuro el la diferencoj inter C, PHP, kaj Javascript. Do unu el la plej grandaj diferencoj, kiel vi menciis, estas kiel ili estas kompilita, aŭ kion ajn la ekvivalento estas. Do C estas kompilitaj. Ni devus ĉiam rulas tradukilo. Kaj tiam kie estas viaj eraroj kiam vi kuros la C-tradukilo? De kie ĝi montris al vi la eraroj en via kodo? Kiel vi scias ke estas kun eraro en via kodo en C? Spektantaro: Ĝi montras al vi, en la terminalo. JASON Hirschhorn: Ĝi montras al vi, en la fina stacio kiel vi kompili. Kaj se estas eraroj, ĝi Mi ne reale kompili ĝin. Do vi scias, ke estas eraroj dekstra for, antaŭ tempo, antaŭ ol vi eĉ kuri vian kodon. Kompreneble, vi kuru via kodo kaj akiri segmentación kulpo, sed tio estis probable ĉar vi faris iu stulta logiko afero. Sed via kodo kun teknike ĉiuj ĝentilaj kaj povis kuri. Do C kodo gets kompilis antaŭ tempo. Kio pri PHP-kodo? Kie estis eraroj en via PHP-kodo? Kiel vi scias ke vi havis eraroj en via PHP-kodo? Spektantaro: Kuru tempo? JASON Hirschhorn: Jes, kiam vi kurus, vi kurus la PHP-kodo en la dorso. Kaj tiam vi devus elmeti ekrano. Vi povus vidi iujn aferojn ĉe la supro, sed tiam vi vidus, kiel, iom oranĝa, malbela tablo. Kaj gxi donos al vi linion nombro kaj diru, bla, bla, bla, tiun materialon ne funkciis. Do PHP interpretas linion por linio kaj ekzekutitaj sur la servilo. Kaj tiam la rezulto estas transigis al vi. Granda. Ekzekutitaj en la servilo linion por linio kaj poste transigis al vi. Kaj se estas eraro, ĝi sendos vi estas la eraro, sed vi eble havas alveninta iuj aĵoj antaŭ tempo. Do iuj el ili povus esti laborinta, sed poste, iuj aĵoj ne havu ne laboris. Kio pri JavaScript? Kie vi vidis JavaScript eraroj? En p starigis 8, kiam vi instigis eraro, kiel vi scias? Kie ĝi montras supren? Spektantaro: En la konzolo, ĉe la malsupro. JASON Hirschhorn: En la konzolo, en la fundo. Estus ankaŭ donos al vi la numero de linio, kaj tio donus aperos sur la fundo. Kaj JavaScript ne estis ekzekutita sur la servilo. Javascript estis sendita al via komputilo, kaj poste kiam estis tempo por kuri la Javascript, la Javascript estis kuri linion por linio sur la kliento, sur via flanko. Ne la servilo, la kliento flanko. Kaj simile, estis kuri linio por linio. Kaj poste, kiam vi ricevas eraron, ĝi montrus supren ĉe la malsupro. Simile al PHP, kelkaj eble ekzekuti, kaj tiam vi povus akiri eraro poste. Ankaŭ, iom kontraste de PHP, se you got JavaScript eraro - diras, ke vi ne faru la dekstra kodo por garde skatolo - vi povus teni kurante via programo. La garde skatolo ne volas labori, sed via programo estus bone. Nur eble tio funkcio malsukcesus. Do tie estas kelkaj el la plej grandaj diferenco en terminoj de kiel tiuj lingvoj, aŭ kiom la programado de kodo vi skribas estas vere taksis. Ekzistas ankaŭ aliaj diferencoj en terminoj de - la plej granda diferenco Ni vidis en terminoj de variabloj en la diversaj lingvoj. Do povas iu donus al mi la diferencon inter variabloj en la tri lingvoj? Jes. Spektantaro: En C, ili estas strikte tajpita. En la aliaj du, ili estas malstrikte tajpita. JASON Hirschhorn: Kaj kion tio signifas? Spektantaro: Tio en C, oni devas deklari la tipon de la variablo kiam vi deklaras la variablo, kiel interbool aŭ character. JASON Hirschhorn: Bonege. En C, ni ĉiam devis meti tipo de variablo. Kaj ni ne povis vere miksi tipojn. Vi ne povus fari entjero plus kordo. Sed kiel ni jam vidis en tiuj aliaj lingvoj, vi vere povas miksi tipojn, kaj vi neniam vere devas doni io tipo, neniam. Do kiel ni sciu tion, estas variabloj en PHP kaj Javascript? Spektantaro: en PHP, ili komencos per unu dolaro signo. En JavaScript, kiam vi deklarus ili, vi devos havi trinkejo. JASON Hirschhorn: Ĝuste. Do en PHP, ili komencos per unu dolaro signo. En JavaScript, ili devas havi trinkejo, kvankam kelkfoje ili ne reale havi trinkejo. Sed tio estas korekta. Do tio estas granda diferenco inter variabloj. Mi kredas ke tiuj estas probable, sur la supro de mia kapo, la du plej grandaj diferencoj inter tiuj tri lingvoj. Sed, jes. Spektantaro: Kaj la medio de C variabloj estas limigita al la frizita krampoj, kie la aliaj, ĝi estas nur volas, mortas, se ĝi estas en funkcio nur, sed alie, it's - JASON Hirschhorn: Ĝuste. Do medio estas iomete malsama en C. Kiam Vi memoros, krispa krampoj difini la medio de variabloj. Do, se ĝi estis difinitaj ene de se kondiĉo, kiu estas interne de unu buklo, La variablo nur ekzistas tie. En JavaScript, se variablo estas difinita interno de se kondiĉo - ene de buklo - ĝi devos ekzisti por tiu funkcio, sed ne ekzistas ekster tiu funkcio. Do medio estas iom pli fleksebla en JavaScript kaj PHP. Tio respondi la demandon? OK, aliajn demandojn? Ni povas fari kvar minutojn pli demandojn, tiam ni devos salti en kodigo. Spektantaro: Ĉu ni povas iri en Ajax kaj paroli pri tio, kio tio estas? JASON Hirschhorn: Talk to Avi poste. Li demandis tiun demandon antaŭe. Spektantaro: Mia malbona. JASON Hirschhorn: No worries. Spektantaro: Kio ekzakte estas JSON? JASON Hirschhorn: Kio estas JSON? Kio estas via demando? Spektantaro: Just vere rapide, la diferenco inter print kaj eĥo en PHP. JASON Hirschhorn: Kial vi ne google la diferenco inter presitaj kaj eĥo? Malpezaj diferencon. Ne tio, granda el traktadon. Sed vi devas certe google ĝi, kaj tio donos al vi bonan respondon. JSON, probable pli granda el traktadon. Staras por JavaScript Objekto Skribmaniero. Kaj kiam ni vidis JSON uzata? Kiam vi vidis - kial vi eĉ konas la vorton JSON? Kiam vi vidis ĝin? Spektantaro: Kiam ni fartas stock citas por financoj. JASON Hirschhorn: Do vi vidis ĝin kiam vi fartas stock citas por financoj. Kaj kial vi ĝin vidas? Spektantaro: Kiam ni estis traserĉas ĉiuj informoj venis en tiu formato. JASON Hirschhorn: Do vi akirus - yeah. Antaŭen. Spektantaro: [inaudibles] informo ekstere de objekto? JASON Hirschhorn: Ambaŭ el tiuj kunmetitaj estas la respondo ni serĉas. Vi deziras informon de tiu alia retpaĝo. Kaj vi atendus, ke kiam vi estas atingi, ke la informo, ke estus prezentis al vi en iu tipo de normigita formato. Ĉiuj estas probable familiara kun komo-disigita valoroj. Vi povas eksporti Excel tabelon aŭ ajna tipo de kalkultabelo kiel listo de komo-disigita valoroj. Kaj la komoj dividu ĉiuj la malsamaj kampoj. Javascript Objekto Skribmaniero - JSON - Estas alia tipo de normigitaj aranĝo de la aferoj. Kaj tio estas ofte kiel ni elsxuti informoj el niaj Ajax mendoj. Do, en tiu kazo, ni akiris ĝin de la Yahoo-ejo. Ili revenas aferoj nin en JSON objekto. Kaj tiam ni scios, ĉar estas norma, kia ĝi estas tuj aspekti. Do ni povas persisti tra la tabelo tio estas revenis al ni, la tabelo de objektoj kiuj revenis al ni. Ni probable bezonas scii la klavoj, sed ĝenerale ili donos al vi dokumentaron en la retejo, kiam vi ricevado iuj JSON skribmaniero por ili. Tiel same, vi povas JSON kodi objekto. Do tie estas funkcio JSON substreko kodas. Kaj tiel vi povas preni objekton, kiu vi jam kreis, JSON kodi ĝi, kaj fordoni ilin al io alie, se vi volas. Kaj JSON decode ankaŭ ekzistas por simila celo, aŭ por la malo celo. Spektantaro: Cxu ni bezonas scii kodigo por hash tabloj kaj provas? Aux cxu ni nur bezonas kompreni kiel ili estas uzataj, koncepte? JASON Hirschhorn: Do, levi vian manon se vi faris hash tablo por p starigis 4 kun ligo-listo. Aŭ p starigis 5. Por ke estis vasta plimulto de la personoj. P agordi 5, 6, kiu scias. Antaŭ longa tempo. Do la granda plimulto el vi faris hash tabloj kun ligilo listoj. Kaj ĉar tio estas probable la plej komuna alproksimiĝon, kaj ĉar ni pasigis multan tempon farante ligilo lertaj kaj hash tabloj, vi probable devus esti bela familiara kun kiel kodigi kradon tablon kaj ligilo listo. Kaj se vi opinias reen al tiu problemo aro, tio ne estis vere tiel forta kiel vi atendas. Kaj estis multe malpli kodo ol vi atendas. Mi dirus al vi povosciu Kodo hash tablo aŭ ligon listo. Ne tio, oni kredus esti petis ke, nepre, sed vi devus certe scias tion. Ankaŭ, se vi rigardas tra pasinteco kvizojn, tie estis multe da demandoj pri skribado funkcioj sur ligilo lertaj aŭ duoble-ligita listoj. Tio ŝajnas veni supren ĉiu simpla jaro. Ĝuste enmeti en ligo listo, dekstra forviŝi el ligilon listo, rajto enmeti por duoble-ligillisto, ktp. Tial, mi sentas min sufiĉe komforta jene vi devus scii tion. Por provi, mi dirus al vi devus certe scias kiel ĝi funkcias, kaj eble doni iom _pseudocode_ dum kiom kodigi ĝin kaj starigis gxin. Sed tio ne estus la plej malbona afero en la mondo, se vi ne scias kiel programi gxin en C. Estus tre bone, se vi sciis kiel kodigi en C, sed mi kredas verŝajne _pseudocode_ di try farus esti la plej vi bezonus scii por provo. Spektantaro: Ekstra kredito? JASON Hirschhorn: Kaj sama, se ni iru en duuma serĉo arboj, vi eble bezonas - kaj vi vidis en la pasinteco, ni faris multajn - vi scias kiel duuma serĉarbo funkcias. Vi devus probable povos starigis unu en pseŭda-kodo. Sed ĉar la vasta plimulto de la personoj ne fari tion sur la problemo aro, mi dirus ke ĝi estas probable malpli Gravas ke vi scipovas programi kaj starigis arbo tia. Ajna alia demandojn? Ankaŭ, oni povas demandi ilin laŭlonge kiel ni iru tra iuj problemoj. OK, ni tuj pluiri. Rekte ke slide ĝis nun. Parolante pri la arboj, kiuj estas la unua demandon mi havas por vi uloj. Pro tio estas problemo. Mi dirus ke estas tre verŝajna vi get a problemo kiel tion en via testeto petante vin kodigi iun tipon de insert, forigi, search, por unu tipo de datumstrukturo ni vidis. Tio venas ĉiun jaron kaj ni pasigis multa tempo la dua duono de tiu semestro irante trans tiuj datumtipoj. Do nun, mi jam difinita nodon en duuma serĉarbo. Kaj kion mi volus, ke vi faru estas donita duuma serĉarbo kiu komenciĝas en ĉi tiu nodo stelo radiko, kompletigi la efektivigo de la funkcio malsupre, kio okazas al esti trovaĵo funkcio. Kaj faru gxin kun kaj sen recursions. Do mi volas skribi du funkcioj. Oni faras ĉi tion kun rekursio, unu fari ĉi tion sen rekursio. Kaj ne supozu, ke la radiko estos ne-nula. Do ni serĉas la entjera i en la arbo komencante ĉe radiko, kaj ni bezonas skribi ĉi rekursie kaj ripete. Jes. Spektantaro: Do ​​vi volas, ke ni revenu vera se ni trovos ĝin, kaj malvera se ni ne trovi ĝin. JASON Hirschhorn: Kiel vi sciis? Kiel vi scias tion? Spektantaro: mi petas unue, sed mi estis supozante, ĉar ĝi diras bool en la komenco de la funkcio. JASON Hirschhorn: Ĝuste. Ĝi diras bool, do mi eĉ ne bezonas diri al vi kion mi atendas vian revenon ĉar ĝi diras rajton tie. Sed tio estas prava. Reiru, vera aŭ malvera. Do antaŭ ol vi komencas, mi devus rekomendi, se vi ne kutimas duuma serĉo arboj, rapide desegni bildon de ĝi akiri vian kompreno, dekstra. Tio ankaŭ helpos vin kiam skribante via kodo kaj kontrolanta ĝi. Denove, vi ankaŭ ne havas tiom da tempo sur la kvizo por fari cxion, ke ni petas al vi fari. Do skribi pseŭdo kodo estas tre helpema. Kaj ni ĝenerale doni pri - se la _pseudocode_ estas perfekte korekta, ke estas ĝenerale 50% je demando. Do ĝi ne estas malmola kaj rapida regulo, sed se vi simple skribos _pseudocode_ kaj ĝi estas korekta, ĝi estas ĝenerale 50%. Do mi dirus ĉiam rekomendas - se vi premis por tempo, aŭ eĉ se vi nur provas kompreni ĝin - komencante per la _pseudocode_. Kaj fine, se vi povus skribi ĉi ĉiuj en C, tio estus mirinda. Do ni prenu tri minutoj labori pri tiu programo. Kaj tiam ni tuj skribos _pseudocode_ por ĝi nur unufoje, kaj tiam ni iras al la kodo ĝi rekursie kaj do ripete. Se vi havas demandojn, bonvolu libera levi vian manon. Feliĉa promenadi kaj respondos ilin antaŭ ol ni komencos kiel grupo. Ni rekomencu, kaj ni iras al _pseudocode_ la rekursiaj versio tiu, kaj tiam ni estos programi ĝin. Do rekursia funkcio bezonas du aferojn. Tio povas esti demando kiu vi povus demandis. Bezonas du aferojn. Kiu povas levi siajn manojn, kaj diru al mi, kion la du aferoj rekursia funkcio bezonas? Per difino ĝi havas du aĵojn. Kio estas tiuj du aferoj? Novaj manoj. Jes, Alden. Spektantaro: Do ​​mi ne estas ekzakte certas se tio estas la terminologio, sed - JASON Hirschhorn: Mi ĝojas vi levante vian manon. Spektantaro: Ĝi bezonas bazon kazo, kaj gxi bezonas rekursia paŝo. JASON Hirschhorn: Perfekta. Ĝi bezonas bazon kazo kaj rekursia paŝo. Do kio estas nia baza kazo ĉi tie? Spektantaro: F radiko egalas egalas nula. Pardonu, nur en _pseudocode_, se ĝi estas nula. Se radiko estas nula. JASON Hirschhorn: Se radiko estas nula. Tio estas bonega. Tio estas nia bazo kazo. Tio estas kion ni iras kontroli ĉiufoje. Kaj la malnoblajn kazo estas la unua afero kiun vi faros. Se vi batas la baza kazo, vi faris. Nun ni bezonas nian rekursia alvoko, kaj mi volonte esti preta veti ni bezonas paron rekursia nomas ĉi tie. Ĉar ĝi estas arbo, kaj ni povis iri plurajn manierojn. Do, se la radiko estas nulaj, ni estas bonaj. Kion vi proponas? Kaj nun mi iras al starti vokante en vi uloj, ĉar mi konas vin infanoj ĉiuj scias tion. Sed Annie, kio devus La sekva linio estas? Kio, se ni trovis gxin? Kion ni faru? Spektantaro: Se ni trovis gxin? JASON Hirschhorn: Aŭ kio devus esti tiu - donu al mi la _pseudocode_ por la linio, kie ni trovis ĝin. Spektantaro: Se i egalas radiko i? JASON Hirschhorn: Kaj do kion ni faru? Spektantaro: Reiru vera. JASON Hirschhorn: Granda. Do, se i estas mi - ho, ili estas tiel nomata i. Tio gets konfuza. Sed se i estas i revenos vera. Tio estas verŝajne la venonta afero, kiun ni devas fari. Sencas. OK, nun ni ne faris nian rekursiaj voki tamen, kvankam, ĉar rekursia alvoko titolus ĉi funkcio denove. Do kion devus la venonta linio de _pseudocode_ esti? Anna. Spektantaro: La maldekstra flanko. JASON Hirschhorn: Be specifaj, tamen. Tio ĉi estas duuma serĉarbo, do kio ne kontrolinte la maldekstra flanko kunporti? Spektantaro: Do ​​nodo - Mi bedaŭras, radiko. Kaj tiam arrow maldekstren. Nodo, nodo, pardonon. Mi ne legis gxin konvene. Ĝi nomiĝas nodo, ĉu ne? JASON Hirschhorn: ĝi estos nomita radiko en tiu funkcio, sed ĉiaokaze. La maldekstra flanko - yeah? Spektantaro: Se tio ne egala i, tiam ni tuj voki la funkcio denove? JASON Hirschhorn: Tio pravas. Se ĝi ne egalas i, ni iras nomi la funkcion denove. Sed kion flanko de la arbo ni iras nomi la funkcion denove? Spektantaro: Sur la maldekstra flanko. JASON Hirschhorn: ni ne estas ĉiam tuj nomas ĝin maldekstre, se ĝi ne egalas. Spektantaro: Ho, pardonon. Voku dekstre. JASON Hirschhorn: Ni volas scii specife, kvankam - memoru, en duuma serĉarbo, ĉiu al la maldekstra flanko estas pli malgranda. Ĉio dekstren mana flanko estas granda. Do estas ĝuste ne estas - jes, iru antaŭen. Spektantaro: Se temas pri malpli ol i, tiam - se ĝi estas ĉe la maldekstra - JASON Hirschhorn: Do, se ri estas malpli ol - do se nia nombro estas malpli ol mi, kio flankon ni volas iri al? Spektantaro: Ni volas iri al la dekstra flanko. JASON Hirschhorn: Ni volas iri - lasu min tiros rapidan arbo. Se tio estas 5, tiu estos 3. Do, se ri estas malpli ol kvin, kion flankon ni volas iri? Spektantaro: Pardonu, kio? JASON Hirschhorn: Nia nombro estas malpli ol la nombro ni estas rigardante nun. Spektantaro: Ho, tiam ni volas iri al la maldekstra flanko. Jes. Pardonon. JASON Hirschhorn: Ekzakte. Neniu zorgojn. En la duuma serĉarbo, ĉio malsupra estas maldekstre, pli granda estas la dekstra. Do, se nia nombro estas malpli ol la i ni kontrolanta - ĉar vi vidas en la nodo, ĝi havas i - tiam vi volas iri al la maldekstra. Kaj tio estas facila. Kio estas la alia linio de _pseudocode_ ni bezonas por skribi? Karolo? Spektantaro: Sama afero, kiun vi ĵus ŝanĝi tio al pli granda ol signo kaj iru dekstren. JASON Hirschhorn: Can vin diru al ĝi pli da tempo? Spektantaro: Se nia nombro estas pli granda ol i, iru dekstren. JASON Hirschhorn: Bonega laboro sur la _pseudocode_. Ni faru tion en reala kodo. Kaj denove, ĉi _pseudocode_ volo verŝajne ekiru, ĉar estas korekta, 50% en tiu demando. Sed ĉi _pseudocode_ ankaŭ tradukas unu al unu, esence, en kodo. Do ni faru tion en C. Kiu povas doni mi la unuan linion de kodo? Efektive, unue, antaŭ ol mi faros tio, lasu min eltiri super - Spektantaro: Mi havas demandon. Kial vi krommargxenu la linio Mi donis al vi? JASON Hirschhorn: Pro Mi ne povis skribi. Mi ne scias. Vi pravas. Tiu linio devus esti tie. OK, tie estas nia funkcio. Kaj lasu min eltiri super, ankaŭ, nia difino de nodo. Kio okazas se ni ne skribi typedef? Ĉu iu ajn scias? Spektantaro: Ĝi ne kompili. JASON Hirschhorn: estus kompili, jes. Spektantaro: Ĉu simple deklaras unu Ekzemple anstataŭ fari gxin nova tajpi vi povus deklari multnombra petskribojn de? JASON Hirschhorn: Do ĝi ne volis scias - ĝi ne estus simple deklaras unu tipo. Vi povus ankoraŭ faras multajn nodoj. Spektantaro: Sed ĉu ni ne devas skribi struct nodo ĉiu tempo? JASON Hirschhorn: Tio pravas. Vi devus skribi struct nodo ĉiufoje, anstataŭ simple nodo. Sed kun typedef, vi povas simple skribi nodo ĉiun solan fojon. OK, kiuj ne donis - yeah, Avica. Spektantaro: Se radiko egalas egaluloj nula, revenu falsaj. JASON Hirschhorn: Granda, kaj tio estas nia bazo kazo. Sekvanta linio de kodo. Iu kiu ne donis Min linion de kodo ankoraŭ? Jes. Spektantaro: Radiko sago i estas egala egala al mi. Poste revenu vera. JASON Hirschhorn: Granda. Sekva linio? Jes. Iu alia? Kaj tiam vi povas iri tuj. Spektantaro: Else se radiko sago i estas malpli ol i revenos funkcio nomita trovaĵo radiko - JASON Hirschhorn: Pardonu. Spektantaro: Return trovaĵo radiko antaŭ al maldekstra komo i. JASON Hirschhorn: Do se ri estas granda ol la aferon en la arbo, ni volas iru maldekstren? Spektantaro: Ne, mi havis tiun ŝanĝis. JASON Hirschhorn: Kiun? Spektantaro: Ne, yeah. Mi havas malpli ol subskribi tie. JASON Hirschhorn: dekstra, se ri estas malpli ol kio estas en la radiko - nia nuna radiko - tiam ni ĉu vi iros maldekstren. Kaj kio estas la lasta linio, ĝi al vi? Spektantaro: Esence la samon, krom ŝanĝi la granda ol aŭ egalas al malpli ol kaj maldekstre dekstren. JASON Hirschhorn: Bonege. Ĉu iu havas demandojn pri tio? Do iuj aliaj aferoj, kiuj volas estis korekta estas ke povus esti la-ltiff. Divenu, teknike, neniu el tiuj vere ankaŭ bezonos esti-ltiff. Ankaŭ, estas verŝajne nur unu kazo ĉi tie. Do tio estas probable via lasta kazo. Vi eĉ ne bezonas tiun-ltiff. Sed probable bona por skribi tio, esti klara. Jes. Spektantaro: Do ​​vi ne kredas la kvizo - se ni faras erarojn, ekzemple, en sintakso - iom sintaksaj eraroj - kiom tio kiujn get prenita en la kvizo? JASON Hirschhorn: Ĝenerale en la kvizo, malgranda sintaksaj eraroj aŭ malgranda stilo eraroj ne perdos vi punktoj. Do se vi forgesis punktokomo ĉi tie, ĝi estus en ordo. Se vi forgesis fermi ĉi parentezo, tio estus en ordo. Grandegaj sintaksaj eraroj kiuj ŝanĝas la funkcian signifon de via kodo drame, vi povus preni forlevata punktoj por. Aŭ ĝenerale, simple grading vin sur ĉu ĉu ne estas via kodo funkcioj, eĉ - ne lia dezajnon tiel multe, kaj ne lia stilo. Ni nun kodigi ripeta versio de trovaĵo. Do ĝi tuj estos bela similaj, sed tie certe tuj estos iuj ŝlosilaj diferencoj. Tamen, niaj _pseudocode_ versxajne povas iri - Ni povas ankoraŭ prenu unu linion de la _pseudocode_ kaj figuro el kio la linio estas en ĉi tiu kazo. Do en ripeta versio, kio ĉu vi pensas, Julia, devus esti la unua linio? Spektantaro: Denove, en ripeta bulea, vi devas starigi por buklo, right? JASON Hirschhorn: okej. Spektantaro: Do ​​pro kiel, k, por x egalas 0, x estas malpli ol mi. Aŭ ne, x estas malpli ol la grandeco de la arbo. JASON Hirschhorn: La arbo. Do ni ne vere konas la grandeco de la arbo, kaj ni ne vere scias kiom da fojoj ni povos iri, do kion estas malsama tipo de iteracio, kiuj povus esti bona en tiu kazo? Spektantaro: Se alia? JASON Hirschhorn: Se alia ne povas esti banton. Do kio estas tipo de buklo ni povas nur iri ĝis iu okazo oni renkontis? Kio estas la sola alia tipo de buklo en C krom por buklo? Spektantaro: Dum. JASON Hirschhorn: Dum, ekzakte. En momento buklo, ne faru bezonas scii - momenton loop kaj por buklo povas fari la ĝusta sama afero, sed la agrabla afero pri momenton buklo estas ke ni ne bezonas scii kiom granda nia arbo estas. Do ni tuj iru ĝis kion? Spektantaro: Ĝis ĝi egalas la grandeco de - JASON Hirschhorn: Nu, ĝi estas tre simila al nia rekursie kazo. Do - Spektantaro: Dum radiko i ne egala i. JASON Hirschhorn: Tio estas vere proksima. Dum radikon i - ni provu ĝin. Mi ne kredas [inaudibles] kie radiko i ne egala i. Ni eble bezonos ŝanĝi ĝin en iom iom, sed tio sonas kiel ĝi estas bela bono, por nun. Do ni devos fari tion. Ankaŭ, memoru, ni ne povas supozi po la demandon. Vi ne supozas, ke la radiko estos ne-nula. Do, kion vi opinias la tre unua afero, kiun ni devas fari estas? Spektantaro: Just fari same aĵo kiel antaŭe. Se la radiko egalas egaluloj nula, revenu falsaj. JASON Hirschhorn: Granda. Do ĝi povus esti nula. Do ni volas liveri De tio tuj. Kaj poste ni iras ĉekon se radiko i ne egala i. Do, diru ni serĉas en ĉi tiu arbo por 3, radiko i ne egalas i, nun ni estas en nia tempo buklo. Kion ni volas fari? Kaj denove, ĝi tuj estos bela simila al nia rekursie versio. Jes. Spektantaro: Do ​​vi volus persisti, aŭ teni mallevigxo la arbo tiel longe kiel la radiko ne estas egala al nula. JASON Hirschhorn: Tiel longe kiel la radiko estas ne egala al nula? Spektantaro: La radiko haltostreko i estas ne egala al nula. Nur la radiko, jes. Kiel longe, kiel la radiko estas Ne egala al nula. JASON Hirschhorn: Do vi volas Por ŝanĝi tion en radiko ne egala nula? Spektantaro: Jes. Spektantaro: Ni povus kombini ĉi tiuj, ĉu ne? Ni ne bezonas la se, komence. JASON Hirschhorn: Bone, do se ni ne batu - se ni kombinas ilin, do ni tuj faros dum radiko ne egala nula, kaj se la radiko okazas al esti nula ĉe la komencante, kion ni faros ĉi tie? Spektantaro: Reiru falsaj. JASON Hirschhorn: Granda. Do ambaŭ manieroj verŝajne estus laborinta. Tiu estas malsama vojo, kaj ĉi kombinas ĝin. Sed denove, se vi faris ĉiaokaze, ni estas Ne tuj demetu dezajno antaŭ la kvizo. Sed tio aspektas bona. Do dum radiko ne egala nula, kio estas la unua afero, kiun ni volas kontroli? Iu alia? Nula, kio estas la unua aĵo? Spektantaro: Se ri estas malpli ol - ho, mi supozas, se ni jam trovis ĝin en la radiko. Do, se la radiko sago i estas egala al mi - JASON Hirschhorn: Pardonu? Spektantaro: Se radiko sago i egalas egalas i - JASON Hirschhorn: Kion ni faru? Spektantaro: Reiru vera. JASON Hirschhorn: Granda. Kaj kio estas proksima? Jeff, kio estas la sekvanta linio de kodo? Spektantaro: Se i estas malpli ol radiko sago i, tiam radiko egalas radiko sago maldekstren. JASON Hirschhorn: Radiko egaluloj radiko sago restis. Do tio estas probable la plej grandaj malsamojn tie en ĉi ripeta Versio kiel kontraŭa al la rekursia versio. La rekursiaj versio, ni vokas la funkcion denove. Ni estos ĝisdatigi radiko kiam ni nomos la novan funkcion. Ĉi tie ni ne nomante nova funkcio. Ni simple nur ĝisdatigas radiko en tiu funkcio. Tio estas bonega. Kaj kio estas la lasta linio de kodo? Yeah, Mario? Spektantaro: Else radiko egaluloj radiko sago dekstre. JASON Hirschhorn: Pardonu? Spektantaro: Radiko egaluloj radiko sago dekstre. JASON Hirschhorn: Ĉu vi ankaŭ skribi ion similan? Spektantaro: Mi havas nenian ideon. JASON Hirschhorn: Vi ne povas. Vi ne povas fari pli egalaj. OK, tiel ĉi aspektas bona. Kial ni ne simple fari tion purigi ĝin. Tio aspektas granda, kaj tiu laborus. Kaj ni rompus eksteren. Se radiko maldekstran estis nula aŭ radiko dekstra estis nula, ni venus tien. Radiko estus egala al nula. Ni volonte rompos el niaj buklo, kaj ni volonte revenos falsaj. Do kiam ni rompas el la buklo, ni revenos falsaj. Kaj denove, la momenton buklo estis perfekta ĉi tie, ĉar ni ne scias kiel big niaj arbo estas. Ni provis verki la buklo, sed ni rimarkis vi mem havigis al elkompreni kiel granda estas antaŭ tempo. Jes. Spektantaro: Se tio ne estus duuma search arbo, ĝi estus vera math-y skribi ĝin ripete, right? Kiel, se ĝi estis arbo, sed ne nepre - do ĝi ne estis tiom pli malgrandaj ĉe la maldekstra, kaj ĉiuj pli grandaj en la dekstra. Estus vere malfacile persisti super ĝin, ĉu ne? Ni devus savi kio estis pli frue sur la arbo, kaj iru reen, kaj da tio. JASON Hirschhorn: Se ĝi ne estis duuma search arbo, se ĝi estis nur arbo kaj aĵoj ne estis ordo kiel tiu - kaj ni rimarkis pli frue kiam Anna helpis al ni ke farante ĝin ordo helpas nin multe - ni bezonus, jes, ĉiam helpos kie oni estis antaŭe. Sed povus esti tre kie ni estis previouslys. Tie povus esti multe patro nodoj. Probable la plej bona maniero por fari tion farus esti teni puŝante aferojn sur iun tipo de stako aŭ vosto. Vi neniam bezonas programi ĉi ĉar ĝi estas malfacila problemo. Sed vi kornobatos iuj aĵoj sur stako aŭ enviciĝi kaj tiam pop ilin ekstermos, kaj tiam taksi ilin. Kaj tiam havi iun alian aferon kie vi efektive metante la nodojn, kaj tiam krei tiun, kaj poste serĉu per tio. Tio eble estus la plej bona maniero fari ĝin. OK, ajnajn demandojn pri tio problemo? Spektantaro: tio estas sur rilatajn noto. Ĉu ni devas kompari run fojoj por hash tabloj, duuma search arboj, kaj tiel plu? JASON Hirschhorn: Probably. Do ni faru ke vere rapide. Kuru tempon por hash tablo - kiuj estas la aliaj? Duuma arbo? Spektantaro: Ligilo listoj. JASON Hirschhorn: Bone, ni faru insert. Kio estas la granda O de insert sur hash tablo? Kio estas la supozoj vi faras? Spektantaro: Vi enmeto en la komencante de la ligo-listo. JASON Hirschhorn: Probable la unua supozo estas ne ekzistas kolizioj. Se ne estas kolizioj, tiam la inserción tempo estas unu. Se tie estas koliziojn, kaj vi estas fari apartan sinsekvon kaj enmeto de komence de la ligilo listo, tiam inserción estas ankaŭ konstanta. Se vi faras kradon tablo sed vi havi malsaman metodon de kontraktanta kun kolizioj, kio estas malsama metodo? Kio estas malsama metodo pritrakti kolizio en hash tablo? Spektantaro: Lineara programado. JASON Hirschhorn: Lineara programado. Do ni tuj teni rigardis por la proksima malfermita makulon. Tio ne estas konstanta inserción tempo. Vi povus devas iri tra la tutan tablon, tiel ke povus esti granda O de n. Jes. Spektantaro: Alie simple ĉeni? JASON Hirschhorn: Ni faris apartan sinsekvon. Tio estis la unua. Pri tio temas la ligilo-listo. La fantazio nomo estas apartaj sinsekvon. Povus esti ia tipo de listo strukturo ni okazi fari en ligilo-listo. Do denove, inserción sur hash tablo povus esti konstanta tempo. Kio pri inserción sur Stacker vosto? Spektantaro: Ĉu tio ne konstanto? JASON Hirschhorn: Ĝi estas konstanta tempo. Vi simple puŝante lin plu. OK. Insertion, kio estis la aliaj aĵoj? On a try? Kio estas granda O de inserción sur try? Spektantaro: Longitudo estas konstanta. Daŭro de la plej longa - la longo de la vorto vi enmeto. JASON Hirschhorn: Pardonu? Atendu, do kion mi auxdas? Vi diris, - kion vi diras? Kio estis via respondo, Marcus? Spektantaro: La longeco de la vorto vi enmeto en karakteroj, alprenanta ĝi estas karaktero try. JASON Hirschhorn: OK, tiel la longo de la vorto. Ni faros supozo ke ĝi estas ĉeno de signoj. Vi diris io malsama, kvankam. Vi diris, longeco de plej longa vorto. Spektantaro: Tio estas nur konstanta, ĉu ne? JASON Hirschhorn: Kial gxi estu konstanto? Spektantaro: Kiel, se vi uzas granda O notacio, tiam ĝi ne varias Based je la nombro de aĵoj kiuj estas jam en la provo. JASON Hirschhorn: Do ni volus diras ke estas konstanta tempo. Ĝi estas konstanta inserción, kaj tio estas ĉar tiu ideo - diras ni havi vorton, kiu estas 45, aux vorto, kiu estas 60, kiuj havas konstantan numeron. Kaj tio estus nur esti enigita en konstanta tempo. En la praktiko tamen, ĝi ne estus, evidente, ili okazas en unu milisegundo, ekzemple. Sed ni dirus granda O estas konstanto por provo. Kaj tio estas unu el liaj grandaj avantaĝoj. Kio pri inserción enen ligilo listo? Just a ĝenerala, ordigitaj ligilo listo? Jes. Spektantaro: mi havis demandon. Sur la provon, ĉu ili iam demandi al ni la inserción tempo tio estas kvar paŝoj, aŭ ion? Aŭ ĉu nur - kiam vi diras inserción tempo estas unu, ke ĝuste signifas konstantan tempon? JASON Hirschhorn: Jes, ili deziris ĉiam demandas, ĉu granda O de n? Granda O de log n? N kvadrato konstanto. Tiuj estas vere la sola tiuj kiujn vi bezonas scii. Kio pri inserción sur ordo ligilo listo? Spektantaro: mi havis demandon - demando - JASON Hirschhorn: Kio estas la respondo al tiu demando, kvankam? Spektantaro: Atendu, pri kio vi demandas? JASON Hirschhorn: Kio estas granda O de inserción en ordo ligo listo? Spektantaro: Unu? Neniu atendas, Neniu atendas, n. JASON Hirschhorn: N. Krom la ligilo-listo. Kaj kia estis via demando? Spektantaro: Do ​​ĉu vi skribos o de k aŭ o de 1 por la - JASON Hirschhorn: Ho. Mi skribus o de 1, verŝajne. Tie estis unu alia datumstrukturo kiu estus estinta bona. Arbo, duuma serĉarbo. Kio inserción sur duuma serĉarbo? Spektantaro: Ensalutado. JASON Hirschhorn: Do, kio estas la plej malbona kazo en duuma serĉarbo? Do, se ni hazarde starti je 5, kaj ĉiu nombro estas pli granda ol 5, tiam ni havas 5, 7, 9, 11, kaj tiel plu. En ĉi tiu kazo, ĝi estas esence nur ligon listo, kaj ni devas enmeti la tutan la vojo al la fino. Do estas granda O de n. Tio povus esti nia plej malbona kazo en duuma serĉarbo. Evidente, vi neniam konstrui duuma serĉarbo per 5 en la mezo, sciante 5 estus esti la plej malalta nombro. Sed ĝi povus esti, se vi estas startanta de nulo. Demandojn en ĉi antaux mi movi al alia demando? Tio estis bona demando. Mi scius granda O de - Spektantaro: Kio priserĉi por tiuj kvar? JASON Hirschhorn: Definitive ni cxu serĉado kaj ordig. Ni faris cxiujn tiujn algoritmoj, dekstra. Atendu, estis, ke por Kvizo 1? Estis kiu kovris - cxu vi jam havas tiun demando pri Kvizo 1? La granda O runtime de duuma serĉo, inserción varon, bobelo speco? Spektantaro: Jes. JASON Hirschhorn: Se vi havis tiun demando pri Kvizo 0, probabloj estas vi ne faros preni la sama ĝusta demando sur Kvizo 1. Eble ankoraŭ bone scii tiujn. Vi devus espereble scias gh jam. Sed aliaj logaritma runtimes estas probable bona scii. Aĵoj kiuj ne estis kovritaj je Kvizo 0. Kiel ĉiuj tiuj operatoroj sur ĉi tiuj abstraktaj datumtipoj. OK, ni pluiru. Ĉi tiu devus esti bela rapida. Kaj tio estas nova lingvo kiun ni havas ne efektive kodita en antaŭe. Tio estas demando demandante kodigi en PHP. Do konsideru la PHP-tabelo pli sube. Skribu PHP kaj / aŭ HTML kodojn tiaj ke eligas du-kolumna tabelo kun TFS nomoj kaj domoj. Vi neniam faris tiun antaŭe, tiu ĉi problemo. Sed ĉi tiu devus esti tre familiaraj al kion vi faris en problemo metita 7. Do mi pretus veti vi estos demandis kodigi io en PHP, ke estas tre simila al tio, kion vi faris en problemo metita 7. Unue, tabelo ne estas tiu specifa. Kio tipo de tabelo estas tio? Spektantaro: Asocia. JASON Hirschhorn: Estas asocieca tabelo. Kaj kio estas la diferenco inter asocieca tabelo kaj objekton? Spektantaro: Objekto tabelo havas indicon de entjeroj, kaj asocieca tabelo estas indekso de kordo, aŭ io kiel tio. JASON Hirschhorn: Do tabelo de celoj havus indeksoj de entjeroj, sed objekto havas kampojn. Ĝi havas tiujn kampojn nomoj kiel enoficigi, domo, studento. Ĉu vi havas ideon? Spektantaro: Nu, asocieca tabelo estas en PHP, right? Kaj objekto estas en JavaScript? JASON Hirschhorn: Honeste, ne estas reala diferenco inter la du. Ambaŭ havas kordojn kiel la ŝlosilojn, kaj povas havas esence io kiel la valoro. Malsamaj lingvoj nomas unu afero asocieca tabelo, unu aferon objekto. Do honeste, ne estas reala diferenco, sed estas certe kelkaj sintaksa diferencoj inter la du. Jes. Spektantaro: Tiel estas objekto ankaŭ coded sub la kapuĉo kiel hash tablo, do? JASON Hirschhorn: Kion do vi signifas, coded sub la kapuĉo? Spektantaro: Oni diris ke asocieca tabelo estis teknike hash tablo. Do estas objekto ankaŭ teknike kradon tablo? JASON Hirschhorn: Mi ne tuj respondi al tiu demando. Mi reiros al vi pri tio. Sed mi ne pensas de ĉu de tiuj tiel. Sed, iamaniere, asocieca tabelo kaj objekto, ĝenerale, la homoj uzas tiujn terminoj interŝanĝeble. En ĉi tiu kazo, la malvarmetajn parto Estas vi povas uzi ŝlosilojn. Kordoj kiel ŝlosilojn, prefere ol nur simplajn numerojn. Do mi parolis pri tio dum kelka tempo. Espereble, kelkaj homoj havas alveninta komencis cxi tiun. Ni tuj skribos kelkajn PHP kaj HTML kodo, tiel ke ni ricevos du-kolumna tablo kun TFS nomojn kaj domoj. OK, mi ankaŭ ŝatus a header remi sur tiun tablon. Do mi iros akiri rektajn en ĉi tiun. Ni iras al dosiero, nova, kaj ni tuj - OK. Kjel mi komencas tablo? Kio estas la etikedo, Michael, komenci tablo? Spektantaro: Tabelo. JASON Hirschhorn: Tabelo. Kaj se mi malfermos etikedo, kion alie mi bezonas? Spektantaro: A kapo? Aŭ, mi supozas, klaso. JASON Hirschhorn: Do, pardonon. Supozu, ke ni jam skribis doctab, HTML, cxiuj havajxoj. Sed se mi malfermos ĉi tablo etikedo, kion alie mi ne bezonas skribi? por validigi HTML? Spektantaro: Fermu ĝin. JASON Hirschhorn: Fermu la etikedo. Kjel mi skribas proksiman-tabelo etikedon? Spektantaro: Dot oblikvo tablo. JASON Hirschhorn: Slash tablo, grandaj. Probable havas sencon skribi ambaŭ de tiuj, kune ĉar vi devas fari gxin. Okej, se mi volas kaplinio vico, kiel fari Mi skribos kaplinio vico kun titoloj? Spektantaro: Ĉu estas malpli ol 10 hr proksime - TR, jes. JASON Hirschhorn: Tr? Spektantaro: Tiam samon, la oblikvo, jes. JASON Hirschhorn: OK, kaj donu al mi du kolumnoj. Spektantaro: T D? JASON Hirschhorn: okej. Mi volas du kolumnoj. Ĉu ĉi tio donas al mi du kolumnoj? Kiom da kolumnoj estas tio? Unu. Do ni kopii kaj almeti ĉi. Do efektive, en la kvizo, ĉiuj ĉi kodo kiuj ni skribis tiel multe estis efektive donis al vi. Sed vi devus probable ankoraŭ scias kiel skribi ĝin. Jes. Spektantaro: Via domo estas inter la du. JASON Hirschhorn: Eksplodo. Ĝi devus iri ĝuste tie, ĉu ne? Bonan alvokon. Do denove, ĉiu tiu kodo estas reale donita al vi en la reala kvizo. Sed ĝi estas amuza skribi ĝin, kaj vi devus scii kiel skribi ĝin. Do tiu estas kie vi bezonas komenci vian kodon. Kion ni bezonas por skribi ĉi tie? Pardonu, mi devas ŝanĝi la nomo de la dosiero. Do ni savis ĝin en. HTML-dosiero, ne en. PHP-dosiero. Tion signifus nenion en al. PHP-dosiero. Do ni estas en. HTML-dosiero. Kio estas la unua aĵo Mi bezonas skribi? Mi volas enmeti iujn PHP kodo en HTML. Spektantaro: PHP, kiel alia karoto kaj demandosigno PHP, ĉu ne? JASON Hirschhorn: Granda. Kiel do mi finas tion? Spektantaro: Kun demandosigno. JASON Hirschhorn: Tio estas granda. Tio estas la unua afero, kiun mi bezonas, se mi volas meti iun PHP-kodo en ĉi tie. Spektantaro: Mi pensis. PHP dosiero povus preni HTML. JASON Hirschhorn: Jes. A. PHP-dosiero povas preni iun HTML kaj montriĝas. Tio estis mia malbona. Ĵus mi provas imiti kio ĝi estas en la kvizo. OK, sorry konfuzi vin. Jes, practice.HTML. Nun ni iras meti iuj PHP kodo in Kio estas la unua linio de PHP-kodo mi devus skribi? Mi tuj iros tra ĉi tiu tabelo kaj faru ĝin en tabelo. Jes. Spektantaro: Vi povas ĉu uzi a por H maŝo aŭ por buklo. JASON Hirschhorn: OK, kion ĉu vi volas uzi? Spektantaro: mi uzus por buklo. Ĉar, kaj tiam vi faras dolaro signo i egalas 0 punktokomo dolaro subskribi i malpli ol 2. Kaj tiam punktokomo i dolar subskribi i plus plus. JASON Hirschhorn: Kiel fari vi scias uzi 2? Spektantaro: Ĉar tie estis du asocieca arrays ene de la granda asocieca tabelo. JASON Hirschhorn: Do la granda afero de Ne asociano tabelo. La granda afero estas nur normala tabelo. Sed vi pravas, ekzistas du asociaj arrays ene de nia granda tabelo. Tio estas kial vi uzas du. Mi sentas min malkomforta supozante ke ili estas 2, do kio estas maniero skribi ĉi sen supozi, ke ili estas 2? Spektantaro: [inaudibles]? JASON Hirschhorn: OK, kiom ĉu vi skribas tion? Spektantaro: foreach dolaro signo TFS aŭ kiel dolaro signo tf. JASON Hirschhorn: OK, do por ĉiu TFS kiel TFS, mi deziras, nun denove, havos mian tablon. Do kiu povas doni al mi la sekvanta linio de kodo? Spektantaro: Presi, kaj poste en citaĵoj, krampo tr fino krampo, pinto citaĵo. Fino parentezoj, punktokomo. JASON Hirschhorn: OK, kaj Kio estas tio faros? Spektantaro: Ĝi estas dironta, novaj vico. Ĝi tuj metis la etikedon por nova linio. JASON Hirschhorn: dekstra, ĉi PHP, kiel Ni parolis pri pli frua - tio PHP tuj estos taksitaj, kaj poste ĝi tuj presi al ĉi tiu dosiero oni tablo stupo, kaj tiam tiu HTML estos taksitaj. Ni simple kopiado de cxi tiu HTML-ni havis ĝis ĉi tie. Jes. Spektantaro: [inaudibles]? JASON Hirschhorn: Pardonu? Ĝi estas korekta ĉi tie. Aŭtuno 2012. Ne rigardu la respondojn, ni solvi ĝin kune. Do ni presi tablo vico. Do vi estas probable en la balancilo de aferoj. Kio estas la sekvanta linio de kodo necesas skribi? Asamo, donu al mi la sekvantan linion de kodo. Spektantaro: Vi bezonas la tf nomo. Tf malferma krampoj Citilo nomumi fermita krampoj. JASON Hirschhorn: Donu al mi sian nomon. Spektantaro: Vi devas presi tiun. [Intermetante Voĉoj] JASON Hirschhorn: OK, how do I presi ĝin? [Intermetante Voĉoj] JASON Hirschhorn: Mi mankas ion nun. Kion mi mankas? Spektantaro: You need a dollar sign. JASON Hirschhorn: Kio alie mi mankas? Ĉiuj ni presita ĝis nun estas la tr. Spektantaro: Fermu la tr post tio. JASON Hirschhorn: Do ni bezonas fermi la tr poste. Kiuj vidas kion ni mankas on line 16? Jes, Anna. Spektantaro: Vi bezonas malfermi oni td kaj frizita krampoj. JASON Hirschhorn: Kaj kie cxu ni metu krispa krampoj? Spektantaro: Ĉirkaŭ la tf nomo. JASON Hirschhorn: Kiel ĉi tiu? Spektantaro: Jes. Kaj poste fermi la td. JASON Hirschhorn: Kiel tio? Spektantaro: Ĉu vi bezonas duoblan citaĵo markoj apud la krispa krampoj? JASON Hirschhorn: Ĝuste ĉi tie? Ne, vi ne faras. Do tio estas ĝuste pravas. Jes. Spektantaro: Do ​​la diferenco inter tiu kaj encatenating kun punktoj estas, se vi uzas dots, vi devus havi la duoblaj citiloj, tiam unu streketo tiam la skalara - JASON Hirschhorn: Korekte. Do vi diras tie estas plejeble manieron de skribado ĉi tiel. Kion la kunmeto operatoro en JavaScript? Spektantaro: A plus signo. Vi forgesis meti la krispa prepari dorso. JASON Hirschhorn: Granda. Kaj estas pli linio de kodo mankas. Kiu povas doni al mi la lastan linion de kodo ni mankas? Spektantaro: Nur la ĝusta samon, nur kun domo anstataŭ de nomo. Granda JASON Hirschhorn: Granda. Kaj via sintakso estas ekzakte rajton por atingi aĵojn en asociano tabelo. Do en la fakta kvizo, vi estas fakte transdonita ĝis ĉi tie. Do tiu kodo estis donita al vi. Ĉiuj vi devis skribi estis tiuj kvar linioj kaj memori fermi la tablo etikedo. You guys efektive faris cxio, kio kaj pli. Jes. Spektantaro: Do ​​estus funkcie la sama, se vi nur devis ke ĉiuj en unu grandan print alvoko, ĉu ne? Kaj tiam nur concatenados ĝin, kaj tiel plu? JASON Hirschhorn: Kiel tio? Spektantaro: Jes. Tio simple ne rigardu bone se vi estis rigardas ĝin kiam vi inspekti la elemento en via TTT-ejo, ĉu ne? JASON Hirschhorn: Mi konsentas. Se mi ŝarĝis ĉi retpaĝo, mi volis esti povis vidi ĉi PHP-kodo, iam? Spektantaro: N-ro JASON Hirschhorn: N-ro Kaj vere, mi ne volis. Spektantaro: GXi estas ne HTML, right? Do eble vi povos - JASON Hirschhorn: Do tiu PHP farus esti pritaksita servilo flanko. PHP estas ĉiam taksis servilo flanko, tiel vi neniam povos vidi PHP-kodo. Spektantaro: Sed vi ŝatus esti kapabla vidi la rezulton de la impresoj. JASON Hirschhorn: Ĝuste. Kaj tio honeste ne fariĝu metu ĉion sur la linio. Eble formati gxin bele por vi, aux gxi povus meti ĝin sur unu linio. Klara. Sed jes, bona punkto. Spektantaro: Kiamaniere venos tien'S neniu teksto kolorigo por iu el la PHP-komandoj? Ĉar mi memoras vidi tion. JASON Hirschhorn: Ĉar ĝi estas . HTML dosieron ĉi tie ĉe la supro. Tie vi iros. Spektantaro: Se ni faris la komencan metodo kun la por masxojn, dekstra, se ni volis konsenti TFS, ĉu ni fari TFS krampo 0 krampo, tiam [Inaudibles]? JASON Hirschhorn: Vi havus - tial vi diras por la buklo, vi farus en dolaro signo TFS krampo 1 aŭ i, dekstra. Aŭ dolaro signo i fermi krampo kaj tiam kvadrata krampo duoblaj citiloj, jes. OK, bonega. Ni havas unu pli rapidan tiu. Sep minutojn, do mi volas iri super ĉi tiu. Tio estas alia ekzemplo. Ni estas nun tute alia lingvo. Ni havas kelkajn HTML-kodo. Ĝi estas speco de malgranda sur la ekrano, sed Mi volas ke vi rigardas tra ĝi vere rapide, kaj povas iu diri al mi, se mi estus ŝargi ĉi retpaĝo, kion mi vidas? Ekverku ĉion pri tiu retpaĝo. Noa? Kion mi vidas? Spektantaro: Kodo ĉe la fronto finon de Google kun emo al teksto kaj submeto-butonon. JASON Hirschhorn: Kaj kion estus la butono diras? Spektantaro: Proponu. Ho, serĉo. Mi bedaŭras. JASON Hirschhorn: Ĝi dirus serĉo. Memoru, nomo. Kion ni uzas la nomon por? Tiu nomo atributo, kio estas kiun uzis por? [Intermetante Voĉoj] Spektantaro: Tio estas lia nomo cxar kiam ĝi estas klakis? JASON Hirschhorn: Tio povus esti. Sed kion fari ni ĝenerale vidas - kial ni donas ĉi tiu nomo vosto? Kial ni vidas, ke? Jes. Spektantaro: Ĉu tio ne farigxu indekso de la super malloka variablo? JASON Hirschhorn: Jes, ĝenerale kiam tiu formo estus submetiĝi, poste kie estus ĉi submit to? Kio paĝo? Noa, kion paĝo estus ĉi submit to? Spektantaro: Mi ne certas. JASON Hirschhorn: Kie povus ni povas trovi ĝin? Kie vi trovos kion paĝo submetas al? Kio linio de kodo? Spektantaro: Formo agado. JASON Hirschhorn: Ekzakte. Agado. Do ĝi submetas al la serĉo-paĝon. Backslash serĉo. Do tio estas ĝuste pravas. Kio metodo? Spektantaro: Get. JASON Hirschhorn: Get. Ekzakte. Do ni legas ĉi. Ĉi tuj estos formo. Vi estas ekzakte pravas. Du aferoj pri la formo, la titolo de la paĝo kaj la supro estus Google. Do jen estas du demandoj vi devus povos respondi pri tiu ĉi paĝo. Se ĉi HTML vivas ĉe tiu retejo kaj la uzulo enigas cimon en ĉi tiu teksto kampo ĝuste ĉi tie, kion URL volo la uzanton trovi sin sur Sendante la formo? Do ni havas tiun rajton tie. Mi tuj iros reen al ĉi tiun paĝon, kvankam. Mi skribos tiun ĉi unuan parton. Ĉu ĉiuj vidi ĉi tie? OK, Mario, vi opinias ke vi scias? Kio paĝo? Spektantaro: Deklivo serĉo. JASON Hirschhorn: Mi iras movi suben ĉi tien. OK, backslash serĉo demando markon q egalas cimon. Iu ajn havas alian sugeston? Jes. Do kiel fari ni havas tian? Bone, ni jam vidis ĉi tion antaŭe. Kaj vi venis supren kun tiu pli frua. Vi pravis, Noa, ke la ago estas diranta al ni kion paĝo ni tuj. Ni ankaŭ scias, kio metodo. Ni faras akiras. Kaj la diferenco inter get kaj post estas ke get pruvoj en la URL- kaj post ne. Do, se mi skribis post dekstra tie en la metodo, kio estus malsama? Spektantaro: estus simple esti oblikvo serĉo. JASON Hirschhorn: estus apenaŭ trovus oblikvo serĉo. Superflue tie okazus. Sed ĉar ĝi estas bonstato-URL estas montrata kiel sekvas. Unue ni vidas demando markon kaj ni vidas la nomon kaj la valoro. Diru tie estis unu alia teksto kampo kaj Mi donis al li nomon de r kaj mi input a valoro, raŭpo. Kion cxi tio nun aspektas kiel? Mi havas unu tekston kampo, mi donos nomo de r kaj valoro de raŭpo. Spektantaro: Post trinkejo vi havus la ampersand raŭpo. JASON Hirschhorn: Tio estas Ne ampersand. Spektantaro: Aŭ simple ajn la kaj simbolo. JASON Hirschhorn: Jes, ne. Vi pravis, mi eraris. Tio estas kiel g. Spektantaro: Raŭpo. r egalas raŭpon, pardonon. JASON Hirschhorn: Ĉu ekzistas neniu r en tie? Spektantaro: Ne, ne estas. JASON Hirschhorn: Ni parolos pri kiuj post klaso. Tio estas ekzakte pravas. Do la kaj estas korekta. Kaj tiam vi povus havi multajn el tiuj, kaj ili ĉiuj estus concatenadas kune kun tio kaj. Do tio estas ĝuste pravas. Tie estas unu plian demandon. Skizi ĉi HTML de DOM, startanta kun dokumento. Ni povus fari tion en du minutoj. Ni tion faros ĉi tie. Mi reiros al tiu retpaĝo. OK, ni starti kun dokumento. Kio estas sekvanta? Do, kiam vi legas tra - Spektantaro: HTML. JASON Hirschhorn: HTML estas proksima. Ni tuj iras etikedon per etikedo. Kio post la HTML? Spektantaro: Kapo. JASON Hirschhorn: Kapo. Kio estas post kapo? Spektantaro: Titolo. JASON Hirschhorn: Titolo. Kaj titolo havas valoro de Google, sed mi ne tuj skribi ke en ĝis nun. OK, kie tio korpo iri? Spektantaro: Ankaŭ elspezi el la HTML. JASON Hirschhorn: Ekzakte. Korpo devenas for de ĉi tie. Ĉu ĉiuj komprenas kial tio estas la kazo? Vi devus probable povos kompreni ĉi eksteren, tro, eĉ se mi ne havas tiu bela deŝovon. La deŝovon ian donas ĝin for, sed vi povas vidi, ke la kapo tag havas estis fermitaj, kio signifas ke ni verŝajne ne povas iri tien. Ni devas iri reen ĝis ajn Estis ĝuste antaŭ la kapon etikedo, aŭ sub tiu. Ni estas ankoraŭ kun la kapo etikedo. Kaj sub korpo iras formo. Sub formo, esas du enigoj. OK. Jen ĉio mi atingis. Kvizo 1 estas morgaŭ. Mi tiom ekscitita por vi guys. Ĝi okazas esti kolera. Se vi havas - Spektantaro: [aplaŭdo] JASON Hirschhorn: Ho halti, haltigi. Sed ne, mi ŝercis. Se vi havas ajnajn demandojn, dekstra post sekcio, mi estos ekstere. Se vi havas demandojn ĉinokte, bonvolu voki, retpoŝto, gchat, portanto kolombon mi. Bonŝancon morgaŭ. Havu mirindan Thanksgiving ripozon, se mi ne vidas vin antaux tiam. Mi vidos vin post Thanksgiving mardon por nia fina sekcio partion eterna. Spektantaro: [inaudibles]. JASON Hirschhorn: Granda. OK, mi vidos vin knaboj apud semajno, aŭ en du semajnoj. Kaj bonŝancon morgaŭ.