[Predvaja glasba] DAVID J. Malan: Pozdravljeni. Oglejmo sprehod skozi Problem Set 8 Mashup, kar se dogaja, da vas izziv, da črpati elementov za Google Zemljevide z elementi iz Google News in pretlačimo jih skupaj v spletni programček, ki omogoča uporabniku iskanje Načrt za novice lokalno na posebnih mestih, mesta, in zip kode. To storite tako, da bomo vključiti nekaj HTML, CSS, PHP, SQL, JavaScript in tehnika splošno znana kot AJAX da ustvariti to Čelada uporabniška izkušnja. Poglejmo najprej za sam Google Maps. To je seveda mogoče seznanjeni vmesnik. Vendar se izkaže, da je Google Maps zagotavlja tudi vlogo API-- programiranje interface-- preko katerega si lahko elemente Google Maps in jih vključiti v lastne aplikacije. Dejansko je ves ta Proces, boste da bi našli nekaj spletnih naslovov še posebej koristno, da so navedeni v Specifikacija Problem Set 8, posebej to Getting Started Priročnik ali priročnik za razvijalce za Google Maps API različice 3 kot tudi kot je Google Maps JavaScript API Referenčna v3, ki je nekoliko bolj skrivnostne, da se glasi vendar ima dejansko vse nižji ravni Podrobnosti o tem, kaj funkcije ali metode in predmetov in lastnosti ter dogodki dejansko prihajajo z API, Zelo podobno v duhu na [neslišno] straneh. Zdaj, če pogledamo na Google News, boste morda videli znan vmesnik tukaj. Vendar se izkaže, da lahko tudi iskanje Google News posebnih geografskih preko HTTP parametra imenovano geo. V bistvu, če sem povečavo tu gor, boste videli, da Sem na news.google.com/news/section?geo=02138. In, seveda, če bom povečavo ven, boste videli, da sem videti na strani z cel kup pogledi na Cambridgeu, Massachusetts. Medtem, če sem dejansko spremenijo URL ne sme biti poštna številka, kot je ta, ampak nekaj malo messier kot Cambridgeu, Massachusetts +, kjer je plus način kodiranje presledek v URL in pritisnite tipko Enter, boste videli, da sem dejansko videti skoraj enako novic. Morda je to malo drugače ker Cambridge dejansko ima več zip kode. Zdaj pa, kako naj vem, da je, in v resnici, kako bi nekako tie mestom zip kode v primeru I želijo, da se omogoči uporabniku pogledati niti? No, izkaže se, da obstaja Spletna stran tam imenuje geonames.org ki je Pobuda, da imajo prosto dostopna baza podatkov o vseh vrste geografskih informacij, ne le za ZDA, ampak tudi za druge države, kot dobro. V bistvu, če grem na ta URL tukaj, ki je omenjeno tudi v problemu, določenem specifikacija, boste to videli tri seznam cel kup datotek zip od katerih lahko prenesete s tabo. V bistvu, ta problem določiti boste prenesete us.zip. Zdaj v tej datoteki, je celotna kup podatkov v besedilni obliki. Datoteke je zelo podobna CSV-- vejico ločene vrednosti file-- vendar se dejansko uporablja Zavihki za označevanje polj. Zdaj, medtem, če pogledaš Tukaj je tisto, kar sem poudaril, polja v tej datoteki se dogaja da se stvari, kot oznak držav, poštne številke, imena krajev, in nato, v določeni obliki ali drugih, države in občine, skupnosti, in še več. V bistvu sem že prenesli to datoteko v vnaprej. Dovolite mi, da gredo naprej in jo odprite here-- us.text-- in, seveda, boste vidim, če se pomaknite v vrstico 16792 boste videli nekaj zapisov za Cambridge, Massachusetts in njegovih različnih zip kode. Kaj boste videli tudi, da je okrajno, nekatere številke, ki res ne Razumem, ampak tudi vse način, na desni strani, nekateri GPS coordinates-- širine in dolžine. To je le zaradi enega od značilnosti Google Maps API je sposobnost zaznavanja kje ste geografsko v zvezi z GPS koordinatami. Zdaj pa začnimo, da ugotovimo, kako začetek vezanje te stvari skupaj. Mi smo dal cel kup distribucije kode, kot tudi baze MySQL. V bistvu, če potegnem phpMyAdmin ob že uvožena, kot ste prej bo, pset8.SQL, boste videli MySQL tabelo, ki Izgleda to polje ID, država Koda, poštna številka, ime kraja in še več. Vrste vseh tistih stolpcih I izvira preprosto z branjem readme.text datoteke tukaj, ki je določena ali je polje število, ali varchar ali podobno. Zato smo ustvarili to tabelo vas in vam dal ukaze SQL izvajati ustvariti, da Tabela v vaši zbirki podatkov, vendar pa je dejansko v njem ni podatkov še ni. Namesto tega boste morali prenos us.zip ali zip koli države datoteko iz tega URL tam. In potem boš moral napisati skripta ukazne vrstice v PHP, ki je bomo odprli to besedilo datoteko, ponovitev čez svoje linije, in nato za vsako te vrstice narediti vložek v to postavi mizo V zbirki podatkov MySQL. Torej, na koncu tega procesa, boste so zagnati skript koncu samo enkrat v teoriji. V resnici boste verjetno to teči kup krat medtem ko poskuša popraviti različne žuželke. Konec koncev, boste morali res velika baza podatkov z več tisoč in tisoče geografskih vrstic. Potem boš dal, da uvoza script stran, ko je to delovalo in vaša podatkovna baza je lepo in pravilno, in nato boste, da se premaknete na dejansko izvajanje Mashup sam. Mashup bo pogledati malo kaj takega. Na mashup.cs50.net smo imamo rešitev osebja da izgleda malo kaj takega. Pravzaprav, če kliknem na tem časopisu icon za Cambridgeu, Massachusetts, boste videli predenje kratko in nato icon urejen seznam, označen seznam člankov povezane z Cambridgeu, Massachusetts. Če kliknem na Charlestown, Massachusetts, Bom videla, enaka za to mesto. In če sem kliknite na Watertown, Massachusetts, tam ne bi bilo katero koli novice iz Watertown, tako da boste videli, kaj kot počasno novice dneva. Zdaj, medtem, na zgornjem levem kotu so nekatere znane kontrole Google Zemljevidi da bi vas pomanjšanje, panoramski pregled gor, dol, levo in desno, ampak tudi iskalno polje, ki smo se tam. Torej, če iščem, odkrito povedano, Edina druga poštna številka vem, 90210, bomo dejansko videli Beverly Hills, California. Ob kliku pa me pripelje do Kalifornija in cel kup novice o Beverly Hillsu. Zdaj opazili tudi, kaj se je zgodilo tam. Če bom tokrat Iskanje 02.138 ali celo Cambridge Massachusetts vejica ali nekatere varianta, dobite malo autocomplete dropdown. Zdaj je ta z uporabo plugin za knjižnico, imenovano jQuery, in da je plugin se imenuje typeahead. Mi preprosto prebrati dokumentacija, prenesli js datoteko integrirano v kodo distribucije, tako da vas na koncu lahko napišete kodo, zapolnjuje to spustni meni z auto izbori ali auto predlogi. Sedaj koda distribucija, čeprav je, da ste ga prejeli, ne naredi skoraj toliko. Dobiš Google Map vgrajeni, in dobiš kontrole top levo, in dobiš iskalno polje. Ampak, če sem tip nekaj podobnega 02.138, niso kraji še najti. Tako, da se dogaja, da eden od naših ciljev tukaj. Poleg tega, če naredimo korak nazaj in pogled na zemljevid samega, ni novic whatsoever. Tudi če kliknem in drag, ni označevalci dejansko pojavijo novice, ker to Izziv je ostalo tudi za vas. Oglejmo si oglejte, potem na kodo distribucije. Ko ste prenesli pset8.zip in ga razpakirati v vašem vhost imenik v CS50 Appliance, boste videli to imenikov tu notri. Bin-- ki običajno stoji za binarni izvedljivo programs-- vključuje, kot pset7, nekateri PHP datoteke, ki vsebujejo druge datoteke, nato pa javnost, ki je datoteke, ki jih potrebujejo biti javno dostopen da uporabnik z brskalnikom. Oglejmo si oglejte v bin in bomo videli, da obstaja datoteka je že pozval Import. Če bomo odprli to s gedit, bomo videli da, žal, ni veliko tam. Vse to je tam, čeprav, je shebang na vrh ki določa, katera interpreter-- v tem primeru PHP-- je treba uporabiti za dejansko izvršitev te datoteke. Ampak potem, ko pravi, TODO je, če ste bomo morali napisati nekaj kode ki verjetno zahteva zaupnik Datoteka, ki je v vključuje imenik kot smo storili pred s PHP datotek. In potem boš moral nekako odpreti us.text ki vam verjetno so že razpakirati. Potem boste morali Ponovil preko črt v tej datoteki, morda z uporabo nekaterih funkcij predlagal v specifikaciji. Nato vstavite vsak od teh linije v podatkovne baze MySQL s funkcijo poizvedbe, ki vam že spet, če with-- ali vsaj varianta le-teh v functions.php, kar bomo videli čez nekaj trenutkov. Zdaj pa zaprite uvoz in iti nazaj v naš imenik in tokrat šel v vključuje. In če naredim ls tam, boste videli, Datoteke precej všeč Problem Set 7 trije. In kaj je na hitro pogledamo, na primer, v config.php. Tam je manj linij kot prej, in ga zdi ta datoteka vsebuje constants.php in functions.php. Mi smo z uporabo nekoliko drugačen Tehnika ta čas okrog, da dejansko določajo, da so te datoteke relativna na trenutni imenik __ DIR__ predstavlja karkoli imenik to datoteka config.php, je sama v. Torej je to bolj eksplicitno način določajo katere druge datoteke, ki jih želite zahtevati. Zdaj, če zaprem to datoteko in namesto da bi odprle constants.php, boste videli datoteko zelo spominja da Problem Set 7, kot tudi, čeprav z drugo bazo podatkov, imenovano pset8. Nazadnje, v functions.php, bomo videli le eno funkcijo Tokrat se imenuje poizvedbo. To je skoraj enako, razen ravnamo Napake Tokrat malo drugače, vendar je uporaba je Enako kot v problem določeno sedem. Zdaj pa se vrnimo v naš pset8 imenik, gredo v javnost in tam če naredim ls, boste videli this-- articles.php, index.html, search.php, in update.php-- vse datoteke. In potem css pisave img in Imenik js precej všeč pset7. Oglejmo si na index.html, ki je bo res vstopna točka za smashup. Zdaj v index.html, boste videli celoten kup povezovalnih elementov v glavi, Natančneje, za bootstrap za naše CSS sledi cel kup skript oznake za stvari, kot so zemljevidi, API sam, posebno marker z etiketo pripomoček, ki smo jih omenili v Specifikacija je na voljo za vas, jQuery sama, bootstrap sam, in drugo knjižnica imenovano spodnja ki govorimo o v spec. Underscore.js kot jquery.js je knjižnica JavaScript da ima cel kup funkcionalnosti da je veliko ljudi na svetu želje obstajali v JavaScript sami. Torej, vse to so pravzaprav precej priljubljen. Prav tako smo omenili typeahead ki je knjižnica, ne da autocomplete dropdown in Končno povezava z lastno JavaScript. Medtem, in morda na srečo, to mashup je posledica razmeroma malo HTML dol na dnu. Obvestilo, da smo določeno div v naše telo razreda kontejnerskega tekočine. Ta, na bootstrap je Dokumentacija, samo pomeni, da je ta div se dogaja, da izpolnite polje ali okno brskalnika v celoti. Medtem, spodaj, da imamo div ki je odprt in takoj zapre z edinstveno ID zemljevid platno. To je zdaj od Googla Zemljevidi dokumentacija za svoje API, s katerim sem se preprosto morali imeti prazen div v kateri injicirati, navsezadnje, z dejanskim Google Maps. Vendar več o tem v samo bit. Končno obstaja oblika Notranjost, ki tukaj izvaja polje tekst do zgoraj levo v našem vmesnik za iskanje. Obvestilo, ki smo jih uporablja malo bootstrap Tukaj too-- stvari, kot Obrazec-inline in obliko-skupina. Mi smo dal nekdanji edinstven ID obliki. In potem, na koncu, sem dejansko imajo Tip vhod, ki je precej pozna, katere ID je q. Samo konvencija. Q za query-- bi morali bil imenovan ničesar. In potem ograda, Medtem pa je mesto, državo, in poštna številka, ki jo lahko odpokliče vidim v našem Mashup demo prej. Oglejmo zaprite datoteko. Zdaj pa si oglejte na PHP datotek, čakajo in nato datoteke JavaScript. V naših PHP datotek, ki smo jih že izvaja za vas, za primer, posodobitve. Update.php-- ne bomo porabili ogromno Količina časa na here-- na kratko je datoteka, da je naša Koda JavaScript bo stopiti v stik preko AJAX, ki asinhroni tehnika, ki je vgrajeno v JavaScript v teh dneh, da je dogaja, da nam omogočajo, da vprašati update.php za več informacij. Natančneje, kadarkoli uporabnik vleče zemljevid ali opravlja poizvedbe, ki skače uporabnik na drugo lokacijo, našo kodo JavaScript, kot bomo kmalu videli, je dogaja, da pokličete update.php in prosi za 10 ali tako označevalcev znotraj prikaznega polja temelji o GPS koordinate na vrhu in na dnu vogali tem zemljevidu. Mi lahko potem ponovno naseliti zemljevid zdaj, Uporabnik se je preselil na zaslon, da bi da vidim, 10 verjetno nova označevalci za različne mest. Medtem, ta datoteka je v končni fazi bo izvršitev SQL poizvedbo proti naši podatkovni bazi namizne imenovane kraje, ki se dogaja, da se vrnejo tisti, 10 ali manj lokacije. Medtem, v articles.php, je še ena datoteko, ki smo jih napisal v celoti. To je zelo podoben v duhu Funkcija LOOKUP problema, ki je 7, ki je stopila v stik Yahoo Finance za vas. Ta datoteka stiki Google News za vas, na koncu oprijemalne strojno berljiva version-- v nekaj imenovano RSS format-- novic za Cambridge ali Beverly Hills ali karkoli mesto ste iskali za, ki temelji na tem geoparameter. Mi razčleniti to RSS, ki je pravkar tip označevalni jezik imenuje XML, in potem bomo dejansko da se vrnete v vašem brskalniku in kodo JavaScript, Natančneje, v obliki imenuje JSON, JavaScript Object Notation. Zdaj boste videli v specification-- vam točko kako si lahko dejansko videli nekaj JSON prihajajočem back-- da ta funkcionalnost na koncu vam omogoča, da zapolnijo tiste pojavne menije tako da ko boste kliknili na oznako na zemljevidu boste dejansko videli cel kup krogel, od katerih je vsak povezave do članka. Zdaj pa si oglejte na eni zadnjih PHP datoteke, ki je, na srečo, ne imajo veliko dogaja on-- samo precej velik TODO. Zdaj je ta datoteka izjavi Niz se imenuje kraje. In nato končno tisk da matrika v JSON format-- je precej tiskanje samo zato, da so stvari lažje debug. Žal, v srednji je to TODO, ki zahteva, da poiščete Podatkovna baza za kraje, ki se ujemajo geo HTTP parameter. In, seveda, to se dogaja, da je eden od vaših challenges-- za izvajanje te funkcionalnosti tukaj tako da, ko se obrnete te datoteke z URL kot iskanju. php? geo = nekaj, kodo bo na koncu vrne JSON množica vseh krajev v vaš tabela baze podatkov, ki se ujemajo to vhod. Torej, če uporabnik vnese v Cambridgeu, datoteka tukaj search.php bi morala na koncu vrne JSON niz za vse tekem za Cambridgeu, ki lahko v Massachusetts vendar bi bilo še nikjer drugje. Končno, vzemimo si na dveh datoteke, ki so statični ultimately-- Vaše CSS datoteka in datoteka JavaScript. Če grem v naš CSS imenik, tam je cel kup datotek, tam, vendar je večina od njih so knjižnice. Bom si oglejte, Natančneje, pri styles.css, ki je naša lastna svetovna CSS, ki je bo Stilizovati to celotno Mashup. Bom pustite, da vas, da preberete komentarji tukaj, ampak na kratko, To je CSS, ki zagotavlja, da je naš mashup, privzeto iz škatle, izgleda natanko tako, kot si želimo it-- z zemljevidom, ki polni pogled pristanišče in z iskanjem box up v zgornjem levem kotu. Smo sprejeti tudi svobodo stylizing da typeahead dropdown meni malo, kot dobro. Najpomembnejši datoteka morda za ta problem, določenem je to zadnja, scripts.js. Znotraj vašega imenika JS je tudi več datotek. Vsi izmed njih so knjižnične datoteke razen tega enega, scripts.js. Če bomo to odpirajo, vzemimo naše Končno turnejo po funkcijah, ki Vgrajeni so v tej datoteki za vas in opozarjati na Todos, ki so pred nami. Na vrhu te datoteke, tri globalne spremenljivke. Ena za zemljevid, ki bo na sklicevanje na našem zemljevidu Google. Lahko si o njej mislijo nekako kot kazalec. Medtem, imamo druga globalna spremenljivka imenovane info, kar se zdi, da je shranjevanje vrednosti povratni klic na novo google.maps.InfoWindow. JavaScript podpira predmete, ki so zelo podobni, v duhu Struts. In kaj je to linijo za naš namen je početje ustvarja novo info Okno v spomin in nato Ohranili referenco z njo v spremenljivko imenovano Info. In med tistimi, Medtem pa je tisto, kar se zdi da je prazna JavaScript Niz se imenuje označevalcev. Vseh teh časopisnih ikon, ali pa lahko izbere drugo ikono v celoti, se bodo shranjeni končno v tem polju tako da bomo lahko zelo preprosto dodate map in jih odstranite iz zemljevida. Zdaj pa se pomaknite navzdol malo in čarovnik s kodo, ki se dogaja, da izvrši, kakor hitro DOM ali dokument objektni model ali Sama stran je pripravljena. Spomnimo se, da je to sintakso Tukaj preprosto določa da naslednjo kodo naj se izvede samo ko je končal brskalnik nakladanje vse ostalo. Prvi izjavljamo cel kup stilov, ki končajo stylizing map kot na spec. Potem izjavljamo cel kup možnosti, kar še dodatno prilagodite Google Načrt, da smo o tem, da bi vgradili. Nato bomo uporabili malo jQuery kode, kar je pojasnjeno v nekoliko podrobneje v spec, da zgrabite da je element, map-platno da smo tako enoznačno opredeliti. In potem je ta linija je tu kar se zdi, da nam daje čarobno Google map znotraj naša lastna aplikacija, shranjevanjem sklicevanja na to v tem spremenljivo imenuje zemljevid. Nazadnje je tu dol beležimo kar se imenuje poslušalec. Pomislite back-- pot, pot back-- nič teden v CS50 ko smo pogledal Scratch in njena podpora skozi sprehod skozi stvari, imenovanih dogodki in oddaj. Ki ste jih morda ne uporablja si sam, vendar je mehanizem, s katerim Brskalnik je v tem primeru lahko dobite našo pozornost, ko je to pripravljeni za dejansko izvedbo nekaj kode. V tem primeru, se dogaja, da poslušate na zemljevid za prireditvi v prostem teku. To pomeni, da ima brskalnik končal nalaganju Google zemljevid. Na tej točki funkcija imenuje configure naj bi v končni fazi treba izvršiti. To funkcijo nastavite, bomo videli, je napisal nas. Zdaj tukaj dol je funkcija da, žal, je le TODO add marker. Per spec. boste potrebovali napisati kodo, ki dejansko dodaja marker-- ali izgleda kot časopis ali palec prečenje, ali nekaj else-- na Google zemljevidu. Tu je, da je funkcija imenovano configure. Bom pustite, da vas, da preberete s tem podrobneje toda zavedati, da smo dodali kup več Poslušalci tako da se lahko izvrši kodo, ko uporabnik klikne in vleče karto. Imamo tudi kodo tukaj, da inicializira da typeahead plugin tako da dropdown Meni dejansko deluje. Ampak kaj je osredotočiti na samo Nekaj ​​mest je tu. Natančneje, to storite tukaj. Bom odloži na spletu dokumentacija in specifikacija kako zapolniti to Todo. Ampak na kratko, ta knjižnica typeahead vam omogoča, da prenese v kaj je splošno znano kot predlogo, ki ima nekaj spremenljive ograde Zelo podobno v duhu printf v%. * s. Toda v tem primeru, Predloga za spec vam omogoča, da določite kaj hočeš spremenljivke injicirati iz podatkov, ki je prišel nazaj od nekaj podobnega PHP datoteke, ki ste jih napisal da se oddaja JSON izhod. Zdaj tukaj dol spoznali, da smo posluša typeahead selekcij ko uporabnik dejansko izvaja iskanje in izbere vrednost. To je, kako smo dejansko bo poslušal, da in izvesti nekaj kode, kot rezultat. Potem bomo še naprej, da nastavite Mashup le malo. In, navsezadnje, pravimo ta funkcija posodobitev. Posodablja označevalce na zaslonu. Več o tem pa v samo trenutek. Medtem pa je malo majhne funkcije tukaj. Eden od katerih je hideInfo ki enostavno zapre InfoWindow. Druga funkcija tu, ki v končni fazi ne bo predolgo, odstranite označevalcev. To se dogaja, da razveljavite karkoli vaš oglas funkcija marker počne. In potem sem dol, je iskanje. In to je zanimivo, ker smo so napisali kodo JavaScript, ki je dogaja, da se pogovorite s search.php na strežnik in dobili nazaj nekaj odziva. Vi, seveda, bo še vedno morajo izvajati search.php, ampak smo izvajali JavaScript kode, ki je gre za ravnanje, ki dejansko opravlja išče polju tega besedila. Zlasti, obvestila Ta funkcija tukaj iskanje, ali pokličite search.php z metodo, imenovano dobili JSON, ki smo ga videli v predavanju. In sintaksa tukaj je malo drugačna iz predavanja v tem, da smo s pomočjo jQuery tako imenovani promise vmesnik. Več o tem pa v spec. To preprosto pomeni za naše nameni sedaj, tam sta dve posebni funkciji smo morali poklicati z dot notacije Tukaj takoj po klicu dobili JSON. Ena se imenuje done. Ena se imenuje ne. Lahko si misliš o teh kot uspeh trener in trener neuspeh samo v primeru, gre kaj narobe. Zdaj pa si oglejmo zadnji Nekaj ​​funkcij v tej datoteki. Tukaj je funkcija imenovano showinfo, ki prikazuje informacije v eni od tistih, ki malo okna z informacijami, ki pops up, ko uporabnik klikne oznako. Tukaj je še naprej da je funkcija update ki smo jih izvajali za vas. To določa meje zemljevidu. Katere so GPS koordinate njenih severovzhodno in jugozahodno vogali tukaj. Pripravili smo nekaj HDP parametre tu in jih nato prenesti na koncu da update.php, ki smo jih izvajajo tudi za vas. Da se na koncu vrne nekaj JSON iz datoteke imenovane update.php in nato odstrani katerokoli označevalci na zaslonu in potem ponovi več podatkov, ki je prišel nazaj iz update.php, ki spet je le JSON matrika. In potem na koncu dodaja označevanje vsak od teh krajev, ravnanje neuspeh ali napake, ki bi lahko zelo dobro zgodi. Zdaj pa samo, da vam okus, kako ste bi šel okoli razhroščevanje ta projekt, spoznali, da sem odprl v napreduje ta zavihek tukaj na ta URL, pset8 / articles.php? geo = 02.138. Tudi tokrat člankov o PHP smo izvedli za vas tako da to ni toliko kaj boste uporabljali debug, ampak tehniko. Obvestilo, da sem iskal Cambridge je poštna številka tukaj, in sem prišel nazaj, res, JSON niz JSON predmetov znotraj katerega sta dva keys-- povezavo in naslov. Tako da je ta funkcija deluje že za vami. Toda to tehniko ročno dogaja na URL, kot je ta za nekaj podobnega search.php? geo = cambridge ali 02.138 ali karkoli je uporabnik vtipka morala neprecenljiva, kot ste, sami, poskusite da ugotovimo, točno, ali zakaj search.php deluje ali ne. Konec koncev, potem imate Nekaj ​​Todos pred vami. Boste prvih izvaja da uvoz skript, prebere us.text v vaši zbirki podatkov. Ste potem bo treba izvajati search.php tako, da se obnaša tako, kot je določeno. Si potem želeli osredotočiti na scripts.js in končno izvaja tiste par todos, vključno za konfiguracijo in da predlogo, dodajanje markerjev, odstranite znamenja, Nato trajala, vendar ne najmanj eno osebno noto. Ko imate Mashup delo precej podobne našim, cilj pri roki je za vas, da dodate osebno dotikajte z vašim Mashup, ali je estetska ali funkcionalna. Vzemite Mashup kdaj tako nekoliko na naslednjo stopnjo. Tako dolgo, kot ste sami potisnite dlje vaše poznavanje spec same in dvigni eno tehniko novo, tudi če je to samo nekaj estetskega kot spreminjanje Razporeditev na zemljevidu, ki ga uporabljate, Področje, ki smo pričakovali bodo zadovoljni. To je potem Problem Set 8 Mashup. Ostanite z nami za več specifikacija in veliko sreče reševanju tega tvoj zadnji CS50 problem določiti kdaj. [Predvaja glasba]