1 00:00:00,000 --> 00:00:39,630 2 00:00:39,630 --> 00:00:41,880 DAVID J. MALAN: Va bene, quindi questo qui è il braccio Myo 3 00:00:41,880 --> 00:00:44,450 banda, un paio di cui avere per progetti finali CS50. 4 00:00:44,450 --> 00:00:47,533 E questo è stato una dimostrazione siamo in coda in su in anticipo dove essenzialmente 5 00:00:47,533 --> 00:00:51,120 questo braccio abbastanza stretta banda inizia qui ascolta i vostri movimenti muscolari 6 00:00:51,120 --> 00:00:54,280 che sono poi mappati nel software al computer portatile di Colton qui che 7 00:00:54,280 --> 00:00:57,230 aveva iTunes e che canzone già in coda. 8 00:00:57,230 --> 00:01:00,270 Piuttosto che provare le canzoni di me questo, Colton è stato in laboratorio 9 00:01:00,270 --> 00:01:04,129 chiaramente tutta la settimana ottenendo una dimostrazione pronto per un volontario coraggioso. 10 00:01:04,129 --> 00:01:07,430 Se qualcuno vuole venire sul up-- ha visto la mano prima. 11 00:01:07,430 --> 00:01:09,540 Andiamo su. 12 00:01:09,540 --> 00:01:12,530 >> Bene. 13 00:01:12,530 --> 00:01:13,886 E qual è il tuo nome? 14 00:01:13,886 --> 00:01:14,800 >> PUBBLICO: Uh, Maria. 15 00:01:14,800 --> 00:01:16,550 >> DAVID J. MALAN: Maria, piacere di vederti. 16 00:01:16,550 --> 00:01:17,310 Vieni qui. 17 00:01:17,310 --> 00:01:19,550 Permettetemi di presentarvi a Colton. 18 00:01:19,550 --> 00:01:21,290 Colton, questo è Maria. 19 00:01:21,290 --> 00:01:23,050 >> COLTON: Ciao, piacere di conoscerti. 20 00:01:23,050 --> 00:01:24,330 >> DAVID J. MALAN: Tutti a destra, così passo uno, siamo 21 00:01:24,330 --> 00:01:26,204 andando a mettere questo al vostro avambraccio 22 00:01:26,204 --> 00:01:29,280 in modo che sia abbastanza stretta su vicino il gomito. 23 00:01:29,280 --> 00:01:31,940 E nel frattempo, diamo mettere sul nostro Google Glass 24 00:01:31,940 --> 00:01:33,720 e ci mescoleremo tecnologie oggi. 25 00:01:33,720 --> 00:01:36,340 >> COLTON: In primo luogo dovremo agganciare questo nelle cose. 26 00:01:36,340 --> 00:01:37,170 >> DAVID J. MALAN: OK. 27 00:01:37,170 --> 00:01:39,795 In realtà, mettiamo il braccio come vicino a questo cavo possibile 28 00:01:39,795 --> 00:01:41,160 in modo da poter prima sincronizzazione in su. 29 00:01:41,160 --> 00:01:42,740 >> COLTON: Cerchiamo di fare questo. 30 00:01:42,740 --> 00:01:46,500 >> DAVID J. MALAN: E nel frattempo, in modo da che tutti possono ottenere uno sguardo più da vicino, 31 00:01:46,500 --> 00:01:50,290 ci lanciamo macchina fotografica di Andrew sullo schermo lì. 32 00:01:50,290 --> 00:01:54,460 Quindi abbiamo un cavo USB che è di essere inserito nella fascia di Maria. 33 00:01:54,460 --> 00:02:00,230 E mi permetta di buttare schermo di Colton sul successivo proiettore. 34 00:02:00,230 --> 00:02:06,000 >> Così Colton sta registrando il dispositivo Ora come Myo collegato a questo cavo. 35 00:02:06,000 --> 00:02:08,060 E ora che Maria di intenzione di fare momentaneamente 36 00:02:08,060 --> 00:02:10,120 è in realtà a piedi attraverso la procedura di calibrazione 37 00:02:10,120 --> 00:02:12,830 e insegnare il software come i suoi muscoli rispondono 38 00:02:12,830 --> 00:02:16,070 quando accertarsi predefinito gesti che il software capisce. 39 00:02:16,070 --> 00:02:17,910 Se vuoi andare a fronte allo schermo. 40 00:02:17,910 --> 00:02:26,840 41 00:02:26,840 --> 00:02:30,090 OK, continuare a provare. 42 00:02:30,090 --> 00:02:31,860 >> COLTON: Vai così. 43 00:02:31,860 --> 00:02:32,970 E in quel modo. 44 00:02:32,970 --> 00:02:34,563 E completamente verso destra. 45 00:02:34,563 --> 00:02:35,922 Torna indietro. 46 00:02:35,922 --> 00:02:37,740 >> DAVID J. MALAN: OK. 47 00:02:37,740 --> 00:02:38,960 Prospettiva diversa. 48 00:02:38,960 --> 00:02:39,620 Non sei tu. 49 00:02:39,620 --> 00:02:40,350 Siamo noi. 50 00:02:40,350 --> 00:02:41,749 >> MARIA: OK. 51 00:02:41,749 --> 00:02:42,540 DAVID J. MALAN: No. 52 00:02:42,540 --> 00:02:46,720 53 00:02:46,720 --> 00:02:51,540 Andiamo più in alto in modo che sia più vicino al gomito, o ancora più stretto. 54 00:02:51,540 --> 00:02:52,680 Bene. 55 00:02:52,680 --> 00:02:53,270 >> Eccoci qui. 56 00:02:53,270 --> 00:02:56,780 Questo sarebbe un buon momento per CS52X. 57 00:02:56,780 --> 00:02:57,670 Ci andiamo. 58 00:02:57,670 --> 00:02:58,760 >> Molto bello. 59 00:02:58,760 --> 00:03:01,170 Ok. 60 00:03:01,170 --> 00:03:02,790 Pollice a Pinky. 61 00:03:02,790 --> 00:03:03,380 >> Molto bello. 62 00:03:03,380 --> 00:03:05,140 Stendere le dita. 63 00:03:05,140 --> 00:03:06,240 Buona. 64 00:03:06,240 --> 00:03:06,910 Onda giusta. 65 00:03:06,910 --> 00:03:15,052 66 00:03:15,052 --> 00:03:17,010 E 'curioso che mostra con il mano-- sinistro 67 00:03:17,010 --> 00:03:19,665 >> COLTON: Sì, questo è strano. 68 00:03:19,665 --> 00:03:21,790 DAVID J. MALAN: Wave la destra e andare avanti. 69 00:03:21,790 --> 00:03:22,998 Avanti veloce per saltare o successiva. 70 00:03:22,998 --> 00:03:25,020 Questo è OK Wave destra. 71 00:03:25,020 --> 00:03:26,650 >> MARIA: Io don't-- aspettare. 72 00:03:26,650 --> 00:03:28,430 >> DAVID J. MALAN: Hai bisogno di aiuto? 73 00:03:28,430 --> 00:03:30,027 >> COLTON: Così si sta andando in questo modo. 74 00:03:30,027 --> 00:03:31,860 MARIA: Sta girando il altra cosa, però. 75 00:03:31,860 --> 00:03:32,390 COLTON: E '. 76 00:03:32,390 --> 00:03:34,250 DAVID J. MALAN: Sì, non lo so il motivo per cui si sta mostrando un leftie. 77 00:03:34,250 --> 00:03:36,458 COLTON: Perché non try-- basta provare ad andare in questo modo. 78 00:03:36,458 --> 00:03:38,910 79 00:03:38,910 --> 00:03:40,090 >> DAVID J. MALAN: No? 80 00:03:40,090 --> 00:03:42,580 Raggiungere Forse il braccio un po 'più dritto 81 00:03:42,580 --> 00:03:46,070 e rendere più brusco simili. 82 00:03:46,070 --> 00:03:48,176 Sì, OK, andiamo. 83 00:03:48,176 --> 00:03:49,670 >> MARIA: Mi dispiace. 84 00:03:49,670 --> 00:03:51,170 DAVID J. MALAN: Non è colpa tua. 85 00:03:51,170 --> 00:03:53,018 COLTON: Va bene. 86 00:03:53,018 --> 00:03:55,430 DAVID J. MALAN: Va bene. 87 00:03:55,430 --> 00:03:56,220 Well-- 88 00:03:56,220 --> 00:03:57,620 >> MARIA: Dovremmo ignorare questo, allora? 89 00:03:57,620 --> 00:03:59,620 DAVID J. MALAN: Sì, facciamo si lascia fuori dai guai. 90 00:03:59,620 --> 00:04:03,130 Quindi, se qualcuno volesse fare un progetto definitivo di utilizzare questo filo di lama 91 00:04:03,130 --> 00:04:07,707 hardware, realizzarlo potrebbe solo prendere un po 'per abituarsi. 92 00:04:07,707 --> 00:04:10,290 Questa poi la realtà è questa è in realtà molto bleeding edge. 93 00:04:10,290 --> 00:04:12,040 >> Questo è ciò che si chiama il kit di sviluppo, che 94 00:04:12,040 --> 00:04:14,956 vuole essere essenzialmente una pre-release in modo che le persone possono fare esattamente 95 00:04:14,956 --> 00:04:18,690 Questa poi combattere con essa, la figura come corpi delle persone lavorano 96 00:04:18,690 --> 00:04:19,980 con la tecnologia. 97 00:04:19,980 --> 00:04:21,750 Quindi, se volete in seguito, dopo la lezione, 98 00:04:21,750 --> 00:04:23,750 siamo in grado di farvi venire a fare un altro tentativo. 99 00:04:23,750 --> 00:04:26,970 Ma per il resto, un applauso, se Potremmo, per Maria per venire in su. 100 00:04:26,970 --> 00:04:28,770 >> MARIA: Grazie. 101 00:04:28,770 --> 00:04:30,390 >> DAVID J. MALAN: Grazie. 102 00:04:30,390 --> 00:04:34,945 Ci aggrappiamo a questo, ma daremo you-- come su una palla antistress qui? 103 00:04:34,945 --> 00:04:38,620 Oh, e- if-- sì, grazie. 104 00:04:38,620 --> 00:04:39,715 Bene. 105 00:04:39,715 --> 00:04:45,750 Così, per i curiosi, se tu fossi familiarità con la scelta del suono 106 00:04:45,750 --> 00:04:47,670 che abbiamo fatto lì in precedenza, di una TV straordinaria 107 00:04:47,670 --> 00:04:50,210 dimostrare che si deve assolutamente essere-binge guardare su Netflix 108 00:04:50,210 --> 00:04:51,110 è questo qui. 109 00:04:51,110 --> 00:04:54,472 >> SPEAKER 1: Signore e signori, un mago di nome Josh. 110 00:04:54,472 --> 00:05:04,710 111 00:05:04,710 --> 00:05:08,050 >> DAVID J. MALAN: E a quanto pare, è una cosa per me testo durante la lezione ora. 112 00:05:08,050 --> 00:05:11,190 Mi viene detto che Maria ha avuto un compleanno ieri. 113 00:05:11,190 --> 00:05:14,095 Quindi, buon compleanno da CS50 di Maria pure. 114 00:05:14,095 --> 00:05:18,720 115 00:05:18,720 --> 00:05:22,090 >> Così si può aver letto nel recente mese che questo signori qui, Steve 116 00:05:22,090 --> 00:05:25,260 Ballmer, che in realtà era Classe del 1977 nel collegio, 117 00:05:25,260 --> 00:05:27,170 da poco in pensione per Microsoft. 118 00:05:27,170 --> 00:05:29,620 Era uno studente qui, poi un paio di anni più tardi 119 00:05:29,620 --> 00:05:31,910 si è trovato a Stanford Business School 120 00:05:31,910 --> 00:05:34,160 quando ha ricevuto un telefono chiamare da un suo amico che 121 00:05:34,160 --> 00:05:36,516 aveva vissuto in fondo al corridoio da lui qui a Harvard. 122 00:05:36,516 --> 00:05:38,640 Il nome di quell'amico era Bill Cancelli, e, al momento, 123 00:05:38,640 --> 00:05:42,700 stava cercando di reclutare Steve per essere il primo uomo d'affari, in realtà, 124 00:05:42,700 --> 00:05:45,720 in una piccola azienda il nome di Microsoft. 125 00:05:45,720 --> 00:05:48,960 >> Una breve storia lunga, Steve infine è stato conquistato, 126 00:05:48,960 --> 00:05:52,130 unito Microsoft quando aveva solo 30 dipendenti. 127 00:05:52,130 --> 00:05:54,300 E dal momento che in pensione a poco tempo fa, 128 00:05:54,300 --> 00:05:58,100 l'azienda ha 100.000 dipendenti negli ultimi anni. 129 00:05:58,100 --> 00:06:01,171 E così un sito web conosciuto come The Verge preparato questo omaggio in video 130 00:06:01,171 --> 00:06:02,920 che abbiamo pensato di condivisa che si dà 131 00:06:02,920 --> 00:06:08,380 un senso di quanta energia Steve porta a qualsiasi presentazione dà. 132 00:06:08,380 --> 00:06:11,884 133 00:06:11,884 --> 00:06:12,550 [RIPRODUZIONE VIDEO] 134 00:06:12,550 --> 00:06:16,220 -Microsoft È come un quarto figlio. 135 00:06:16,220 --> 00:06:18,260 I bambini fanno uscire di casa. 136 00:06:18,260 --> 00:06:21,875 In questo caso, credo che Lascio la casa. 137 00:06:21,875 --> 00:06:23,270 Ehi Bill, whazzap? 138 00:06:23,270 --> 00:06:24,200 >> -Wazzap? 139 00:06:24,200 --> 00:06:25,320 >> -Ehi, Wazzap? 140 00:06:25,320 --> 00:06:28,590 Ci è stata data una enormi opportunità. 141 00:06:28,590 --> 00:06:30,210 E Bill ci ha dato questa opportunità. 142 00:06:30,210 --> 00:06:35,520 143 00:06:35,520 --> 00:06:36,770 Voglio ringraziare Bill per questo. 144 00:06:36,770 --> 00:06:39,630 Voglio che tu troppo. 145 00:06:39,630 --> 00:06:42,500 Il ritmo dell'innovazione non ha intenzione di rallentare. 146 00:06:42,500 --> 00:06:45,140 >> E 'intenzione di ottenere più velocemente e più velocemente. 147 00:06:45,140 --> 00:06:50,165 Ci potrebbe essere un paio di concorrenti che sono purtroppo eliminati! 148 00:06:50,165 --> 00:06:54,337 149 00:06:54,337 --> 00:06:59,564 >> Io amo questa azienda. 150 00:06:59,564 --> 00:07:00,064 Sì! 151 00:07:00,064 --> 00:07:03,452 152 00:07:03,452 --> 00:07:08,250 Io sono un PC, e mi piace questa azienda! 153 00:07:08,250 --> 00:07:13,090 >> Gli sviluppatori, sviluppatori, sviluppatori, sviluppatori, sviluppatori, sviluppatori, 154 00:07:13,090 --> 00:07:14,560 sviluppatori, sviluppatori. 155 00:07:14,560 --> 00:07:17,500 156 00:07:17,500 --> 00:07:18,970 Sì! 157 00:07:18,970 --> 00:07:19,950 Gli sviluppatori Web! 158 00:07:19,950 --> 00:07:21,420 >> Gli sviluppatori Web! 159 00:07:21,420 --> 00:07:22,890 Gli sviluppatori Web! 160 00:07:22,890 --> 00:07:25,830 161 00:07:25,830 --> 00:07:28,770 Ascolta quello che altro si ottenere senza alcun costo aggiuntivo! 162 00:07:28,770 --> 00:07:31,960 >> L'esecutivo di MS-DOS, un appuntamento calendario, un mazzo di carte, un blocco note, 163 00:07:31,960 --> 00:07:33,750 un orologio, un pannello di controllo. 164 00:07:33,750 --> 00:07:35,461 E, ci credi? 165 00:07:35,461 --> 00:07:35,960 Reversie! 166 00:07:35,960 --> 00:07:37,270 >> Masterizzarli su CD! 167 00:07:37,270 --> 00:07:38,660 Pubblicarli su MSN! 168 00:07:38,660 --> 00:07:40,422 Li mail ad un amico! 169 00:07:40,422 --> 00:07:41,790 >> Tutto con un solo clic! 170 00:07:41,790 --> 00:07:48,670 One Microsoft, una strategia, un team-- concentrato, disciplinato, professionale, 171 00:07:48,670 --> 00:07:50,610 ed esperto in tutto ciò che facciamo. 172 00:07:50,610 --> 00:07:52,670 Permettetemi di usare una linea da un vecchio film. 173 00:07:52,670 --> 00:07:54,810 >> Le relazioni sono come gli squali. 174 00:07:54,810 --> 00:07:57,480 Si muovono in avanti o muoiono. 175 00:07:57,480 --> 00:08:01,470 Io in realtà penso tecnologia aziende sono uguali. 176 00:08:01,470 --> 00:08:04,801 >> [FINE RIPRODUZIONE VIDEO] 177 00:08:04,801 --> 00:08:08,050 DAVID J. MALAN: quindi siamo molto contenti di annunciare che Steve si unirà a noi 178 00:08:08,050 --> 00:08:13,320 qui in CS50 Mercoledì prossimo a il solito posto e il tempo qui. 179 00:08:13,320 --> 00:08:14,750 Lo spazio sarà probabilmente limitata. 180 00:08:14,750 --> 00:08:19,650 E così di unirsi a noi in persona, si prega di testa oggi o poco dopo 181 00:08:19,650 --> 00:08:22,600 a cs50.harvard.edu/register. 182 00:08:22,600 --> 00:08:25,780 >> E noi seguiremo da Martedì conferma macchie. 183 00:08:25,780 --> 00:08:29,900 Attendo con ansia che il prossimo Mercoledì durante la lezione in CS50. 184 00:08:29,900 --> 00:08:33,706 Ora, in altre notizie, mi è capitato di incontrato questo in The Crimson solo 185 00:08:33,706 --> 00:08:34,289 l'altro giorno. 186 00:08:34,289 --> 00:08:37,370 >> Si scopre che uno dello staff di CS50 e almeno uno degli studenti di CS50 187 00:08:37,370 --> 00:08:40,299 è attualmente in corsa per UC presidente e vice presidente, 188 00:08:40,299 --> 00:08:42,950 che mi ha portato indietro ai miei giorni indietro 189 00:08:42,950 --> 00:08:45,920 quando ho perso le elezioni UC miseramente. 190 00:08:45,920 --> 00:08:48,210 Ma il lato positivo in questo è sempre 191 00:08:48,210 --> 00:08:50,604 raccontare la storia è che uno dei più sono sicuro 192 00:08:50,604 --> 00:08:52,770 molte ragioni per cui ho perso la elezione è stata una mancanza completa 193 00:08:52,770 --> 00:08:54,103 di un talento per parlare in pubblico. 194 00:08:54,103 --> 00:08:56,950 E così in tutta onestà, che mi ha spinto, che l'esperienza 195 00:08:56,950 --> 00:09:02,235 Penso che il mio primo anno, a firmare in realtà per Harvard Computer Society, che 196 00:09:02,235 --> 00:09:04,610 è il gruppo nel campus che detiene vari colloqui tecnici 197 00:09:04,610 --> 00:09:05,318 e altre cose. 198 00:09:05,318 --> 00:09:08,117 E ho assunto il loro insegnamento seminari e quindi, 199 00:09:08,117 --> 00:09:09,950 avuto la possibilità, una meravigliosa opportunità, 200 00:09:09,950 --> 00:09:12,620 per iniziare a lavorare proprio su questo. 201 00:09:12,620 --> 00:09:15,000 Ma anche, ho avuto l'opportunità durante questa esperienza 202 00:09:15,000 --> 00:09:16,930 per insegnare a me stesso tanto più HTML. 203 00:09:16,930 --> 00:09:21,080 E così ho procrastinato la scorsa notte da guardando attraverso il sito web basato su HTML 204 00:09:21,080 --> 00:09:28,066 Ho fatto come nel 1997, '98, per la mia campagna che assomiglia a questo qui. 205 00:09:28,066 --> 00:09:29,920 Lo so. 206 00:09:29,920 --> 00:09:33,340 >> Perchè-- e, naturalmente, avviso questa decisione di progettazione incredibile nel 1998 207 00:09:33,340 --> 00:09:33,850 o roba del genere. 208 00:09:33,850 --> 00:09:36,475 La prima cosa che si desidera che gli utenti di fare nel visitare il tuo sito 209 00:09:36,475 --> 00:09:39,860 è quello di avere a cliccare un altro link solo per inserire il tuo sito qui con il monaco 210 00:09:39,860 --> 00:09:43,940 dietro come una tenda avvolta in cui a quanto pare la mia piattaforma di campagna era. 211 00:09:43,940 --> 00:09:46,330 E questo è tutto quello che otterrete oggi è solo uno screenshot. 212 00:09:46,330 --> 00:09:49,500 Ma stavo leggendo, come, i miei manifesti elettorali di ieri sera 213 00:09:49,500 --> 00:09:50,490 e la mia piattaforma. 214 00:09:50,490 --> 00:09:52,960 >> E io ero così arrabbiato al momento. 215 00:09:52,960 --> 00:09:55,380 La mia piattaforma era-- è stato interessante. 216 00:09:55,380 --> 00:09:57,730 Così mi sono calmata da allora. 217 00:09:57,730 --> 00:10:03,550 Ma un giorno, correrò di nuovo e speriamo meglio questa volta. 218 00:10:03,550 --> 00:10:07,265 >> Così HTML, che il linguaggio in cui ho fatto che dentro-- Presto rendono molto more-- 219 00:10:07,265 --> 00:10:09,140 è qualcosa che siamo stati parlando di ritardo 220 00:10:09,140 --> 00:10:12,460 e in gran parte dando per scontato ora che ci siamo spostati ad altre lingue. 221 00:10:12,460 --> 00:10:15,650 Ma facciamo una pausa per un momento e mettere un po 'di queste cose in un contesto. 222 00:10:15,650 --> 00:10:18,040 Quindi, in una frase, che cosa è l'HTML? 223 00:10:18,040 --> 00:10:19,370 >> Oppure, ciò che viene utilizzato per? 224 00:10:19,370 --> 00:10:20,208 Chiunque? 225 00:10:20,208 --> 00:10:20,708 Sì. 226 00:10:20,708 --> 00:10:22,002 >> PUBBLICO: Markup per i siti web. 227 00:10:22,002 --> 00:10:23,460 DAVID J. MALAN: Markup per il sito web. 228 00:10:23,460 --> 00:10:27,100 Quindi è un linguaggio di markup che consente di strutturare una pagina web. 229 00:10:27,100 --> 00:10:30,040 Intestazione sale qui, titolo va qui, il corpo va qui. 230 00:10:30,040 --> 00:10:33,280 Questo è grassetto, questo è italics-- quel tipo di dettagli. 231 00:10:33,280 --> 00:10:33,830 >> OK, bene. 232 00:10:33,830 --> 00:10:37,620 Così CSS consente you-- e io ha preso qualche libertà ci 233 00:10:37,620 --> 00:10:40,990 con il grassetto, corsivo e rivestimento in quanto che è meglio implementato con questo. 234 00:10:40,990 --> 00:10:42,096 CSS è-- cosa? 235 00:10:42,096 --> 00:10:42,845 Dire in una frase. 236 00:10:42,845 --> 00:10:46,000 237 00:10:46,000 --> 00:10:46,720 Chiunque a tutti. 238 00:10:46,720 --> 00:10:46,870 Sì. 239 00:10:46,870 --> 00:10:49,286 >> Pubblico: abbellimenti e roba, come il modo di progettare. 240 00:10:49,286 --> 00:10:51,769 241 00:10:51,769 --> 00:10:52,810 DAVID J. MALAN: OK, bene. 242 00:10:52,810 --> 00:10:55,420 Abbellimenti che consentono per la progettazione o stilizzare esso 243 00:10:55,420 --> 00:10:59,540 con cose come grassetto e corsivo e colori e anche più fine 244 00:10:59,540 --> 00:11:01,330 posizionamento grani di elementi. 245 00:11:01,330 --> 00:11:04,520 E 'sorta di permette di prendere le cose ultimo miglio modo che se, per esempio, 246 00:11:04,520 --> 00:11:08,130 in Pset7, potreste aver notato sul vostro Pagina Portfolio se siete a questo punto 247 00:11:08,130 --> 00:11:12,270 già che una tabella di default che si fare per mostrare partecipazioni azionarie dell'utente 248 00:11:12,270 --> 00:11:15,740 e contanti probabilmente sembra piuttosto orribile Per impostazione predefinita, senza spazi. 249 00:11:15,740 --> 00:11:18,420 Tipo di Tutto di piena zeppa insieme in righe e colonne. 250 00:11:18,420 --> 00:11:20,662 >> Beh, con un po 'di CSS, come si può capire, 251 00:11:20,662 --> 00:11:23,870 si può effettivamente modificare questo e renderlo qualcosa di molto più familiare e molto 252 00:11:23,870 --> 00:11:24,870 più bello da guardare. 253 00:11:24,870 --> 00:11:27,730 Così CSS è di circa il stilizzazione di siti web. 254 00:11:27,730 --> 00:11:31,970 Ma poi abbiamo introdotto un altro il linguaggio, PHP, che ci permette di fare quello che? 255 00:11:31,970 --> 00:11:36,400 256 00:11:36,400 --> 00:11:37,590 >> Diciamo solo che cosa fare? 257 00:11:37,590 --> 00:11:38,177 Chiunque. 258 00:11:38,177 --> 00:11:40,010 Avuto modo di avventurarsi al di là i primi due righe. 259 00:11:40,010 --> 00:11:40,260 Sì. 260 00:11:40,260 --> 00:11:41,719 >> PUBBLICO: Generare contenuti dinamici. 261 00:11:41,719 --> 00:11:42,718 DAVID J. MALAN: Perfect. 262 00:11:42,718 --> 00:11:43,850 Generare contenuti dinamici. 263 00:11:43,850 --> 00:11:45,808 E si può farlo in qualsiasi numero di lingue. 264 00:11:45,808 --> 00:11:50,120 Ci capita di usare PHP perché è in parte, in modo simile alla sintassi C. 265 00:11:50,120 --> 00:11:52,000 >> Ma PHP fa esattamente questo. 266 00:11:52,000 --> 00:11:54,620 Esso consente di generare in modo dinamico in uscita. 267 00:11:54,620 --> 00:11:57,890 E alcuni di che la produzione potrebbe essere HTML, come abbiamo fatto in genere. 268 00:11:57,890 --> 00:12:00,160 Ed è anche, perché è un linguaggio di programmazione, è 269 00:12:00,160 --> 00:12:03,240 il meccanismo attraverso il quale possiamo parlare di basi di dati. 270 00:12:03,240 --> 00:12:05,730 >> E possiamo fare le query al altri server come yahoo 271 00:12:05,730 --> 00:12:08,660 e programmaticamente fare nulla davvero che si potrebbe altrimenti 272 00:12:08,660 --> 00:12:10,400 vuole costringere un computer per fare. 273 00:12:10,400 --> 00:12:13,580 Così PHP ci permette di iniziare l'output di contenuti generati dinamicamente. 274 00:12:13,580 --> 00:12:16,900 Così da questa logica, non ho avuto un sito web dinamico nel 1998. 275 00:12:16,900 --> 00:12:18,460 >> Era solo una pagina web statica. 276 00:12:18,460 --> 00:12:22,250 Il mio contenuto doveva essere cambiato da manualmente con gedit o qualche equivalente. 277 00:12:22,250 --> 00:12:25,290 Ma PHP è quello che abbiamo usato o avrebbe potuto essere utilizzato, piuttosto, 278 00:12:25,290 --> 00:12:27,260 per qualcosa di simile al Sito Frosh IM, che 279 00:12:27,260 --> 00:12:31,160 avrebbe dovuto prendere le registrazioni e gestire un elenco di cose che users-- 280 00:12:31,160 --> 00:12:33,550 sono in realtà commutazione tempo, anche se ci capita 281 00:12:33,550 --> 00:12:35,990 utilizzare Perl, un diverso lingua al momento. 282 00:12:35,990 --> 00:12:40,350 >> E poi, infine, abbiamo introdotto SQL-- Structured Query Language. 283 00:12:40,350 --> 00:12:43,845 Così ancora un'altra lingua che viene utilizzato per che cosa? 284 00:12:43,845 --> 00:12:46,660 285 00:12:46,660 --> 00:12:47,639 Utilizzato per che cosa? 286 00:12:47,639 --> 00:12:49,430 Possiamo azzardare slight-- OK, non stiamo andando 287 00:12:49,430 --> 00:12:51,263 per arrivare molto più lontano che l'orchestra qui. 288 00:12:51,263 --> 00:12:53,432 PUBBLICO: E 'un protocollo utilizzato per parlare con i database. 289 00:12:53,432 --> 00:12:55,640 DAVID J. MALAN: Un protocollo utilizzato per parlare con i database. 290 00:12:55,640 --> 00:12:56,181 Lasciatemi da ritoccare. 291 00:12:56,181 --> 00:12:59,280 Si tratta di un linguaggio naturale utilizzato parlare con databases-- seleziona 292 00:12:59,280 --> 00:13:01,280 e inserti ed eliminazioni e aggiornamenti e realtà 293 00:13:01,280 --> 00:13:03,840 anche altre caratteristiche che non abbiamo ancora fatto immersioni 294 00:13:03,840 --> 00:13:07,920 in ma si consiglia di avere explore-- esplorare per, diciamo, un progetto finale. 295 00:13:07,920 --> 00:13:09,560 Quindi ci sono questi vari pezzi. 296 00:13:09,560 --> 00:13:13,100 >> E si spera Pset7, anche se la sua specifica è piuttosto lungo, 297 00:13:13,100 --> 00:13:15,990 è volutamente lungo per camminare attraverso come queste cose possono tutti 298 00:13:15,990 --> 00:13:17,210 essere digitato insieme. 299 00:13:17,210 --> 00:13:20,300 Ora, il Lunedi, abbiamo presentato il nostro ultimo lingua 300 00:13:20,300 --> 00:13:23,430 che ci introduce formalmente in il naturalmente-- che è, JavaScript. 301 00:13:23,430 --> 00:13:25,720 Questo, come PHP, è un linguaggio interpretato. 302 00:13:25,720 --> 00:13:28,110 >> Ma una distinzione fondamentale Ho proposto il Lunedi 303 00:13:28,110 --> 00:13:32,730 è che, mentre PHP è in esecuzione o essere interpretato sul server, che 304 00:13:32,730 --> 00:13:35,990 in questo caso è l'apparecchio CS50, o potrebbe essere un po 'di web commerciale 305 00:13:35,990 --> 00:13:39,370 server su Internet, JavaScript generale 306 00:13:39,370 --> 00:13:43,650 è un linguaggio che viene eseguito lato client non del server side-- così nel browser. 307 00:13:43,650 --> 00:13:46,970 Vale a dire, proprio come quando ho aperto su Facebook il codice sorgente ed è risultato tutto 308 00:13:46,970 --> 00:13:51,510 di questi file .js, l'implicazione era che quando si visita Facebook o più 309 00:13:51,510 --> 00:13:54,810 siti web in questi giorni, si ottiene non solo HTML, non solo CSS, 310 00:13:54,810 --> 00:13:59,370 ma un intero gruppo di JavaScript codice spesso sotto forma di file .js. 311 00:13:59,370 --> 00:14:03,970 E poi è il browser-- tuo Mac o PC-- che esegue il codice. 312 00:14:03,970 --> 00:14:05,990 >> Ma il tuo browser lo esegue. 313 00:14:05,990 --> 00:14:08,070 Si può pensare a una sorta di sandbox. 314 00:14:08,070 --> 00:14:12,420 In modo che il codice JavaScript non dovrebbe essere in grado di eliminare i file sul computer. 315 00:14:12,420 --> 00:14:14,730 Non dovrebbe essere in grado di inviare e-mail a vostro nome. 316 00:14:14,730 --> 00:14:17,760 Il tuo browser tipo di limita cosa si può fare con esso. 317 00:14:17,760 --> 00:14:20,630 >> Quindi, in questo senso, è un po ' meno potente, forse, di C. 318 00:14:20,630 --> 00:14:24,030 Ma JavaScript può, come a parte, da utilizzare sul server, 319 00:14:24,030 --> 00:14:27,740 se ci tendiamo a non parlare su di esso in questo contesto. 320 00:14:27,740 --> 00:14:29,740 Così ora cerchiamo di legare questi insieme. 321 00:14:29,740 --> 00:14:34,000 Una settimana più fa, abbiamo presentato alcuni HTML sulla pagina web super-noioso sinistra- sotto. 322 00:14:34,000 --> 00:14:35,000 >> Dice solo ciao mondo. 323 00:14:35,000 --> 00:14:38,110 E poi ho proposto sul a destra possiamo tipo di rubare idee 324 00:14:38,110 --> 00:14:41,470 dalla nostra discussione di strutture dati in C 325 00:14:41,470 --> 00:14:45,270 e pensare a come questo gerarchica linguaggio di marcatura a sinistra 326 00:14:45,270 --> 00:14:49,720 potrebbe essere disegnato o attuate in memoria come una struttura ad albero reale con nodi 327 00:14:49,720 --> 00:14:51,400 e puntatori e questo tipo di informazioni. 328 00:14:51,400 --> 00:14:53,820 Sulla destra, che noi chiamiamo che un documento DOM-- 329 00:14:53,820 --> 00:14:56,800 Oggetto modello-- che è solo un modo elegante per dire albero. 330 00:14:56,800 --> 00:14:59,520 >> Ora, perché questo è utile per pensare in questo modo? 331 00:14:59,520 --> 00:15:01,680 Perché ora con JavaScript, perché abbiamo 332 00:15:01,680 --> 00:15:05,810 codice che arriva a giocare in questo l'ambiente, il codice HTML effettivo che è 333 00:15:05,810 --> 00:15:08,360 stato inviato al browser già e ha già 334 00:15:08,360 --> 00:15:12,690 stato caricato in memoria dal il browser in un albero nel vostro computer 335 00:15:12,690 --> 00:15:18,270 RAM in questo modo, siamo in grado di utilizzare JavaScript effettivamente attraversare o camminare o di ricerca 336 00:15:18,270 --> 00:15:21,800 o modificare l'albero DOM però vogliamo. 337 00:15:21,800 --> 00:15:24,040 Quindi, in realtà, se si pensa su facebook.com, 338 00:15:24,040 --> 00:15:27,660 se si utilizza la funzione di chat, se si uso Gmail e la funzione Gchat, 339 00:15:27,660 --> 00:15:30,540 tutto ciò in cui si ha messaggi provenienti ancora e ancora 340 00:15:30,540 --> 00:15:35,880 e ancora, quei messaggi sono probabilmente, come, tag LI, modifiche all'elenco delle voci, forse. 341 00:15:35,880 --> 00:15:37,940 >> O forse sono solo div che continuano a comparire 342 00:15:37,940 --> 00:15:39,770 ogni volta che si ottiene un messaggio istantaneo. 343 00:15:39,770 --> 00:15:42,960 E perché così, cosa significa Facebook o Google sta facendo 344 00:15:42,960 --> 00:15:45,200 è ogni volta che si ottiene un messaggio dal server, 345 00:15:45,200 --> 00:15:48,740 sono probabilmente utilizzando JavaScript per aggiungere un altro nodo 346 00:15:48,740 --> 00:15:52,700 a questo tree-- un altro nodo a questo albero che poi visivamente sembra proprio 347 00:15:52,700 --> 00:15:54,570 come una nuova riga di testo sullo schermo. 348 00:15:54,570 --> 00:15:57,100 Ma sono l'inserimento di in questa struttura dati. 349 00:15:57,100 --> 00:15:59,742 >> Quindi, in classi come CS124 e altri, ti 350 00:15:59,742 --> 00:16:02,200 effettivamente scrivere più codice contro strutture di dati come questo. 351 00:16:02,200 --> 00:16:04,310 Ma per ora in JavaScript, ci limiteremo a supporre 352 00:16:04,310 --> 00:16:07,920 otteniamo tutte queste funzionalità gratuitamente dal linguaggio stesso. 353 00:16:07,920 --> 00:16:09,210 Quindi, diamo un'occhiata a un esempio. 354 00:16:09,210 --> 00:16:13,120 >> Permettetemi di aprire un file chiamato form.html. 355 00:16:13,120 --> 00:16:14,601 E 'super semplice. 356 00:16:14,601 --> 00:16:15,600 Sembra proprio come questo. 357 00:16:15,600 --> 00:16:17,860 >> No CSS, senza pensare all'estetica. 358 00:16:17,860 --> 00:16:19,810 E 'puramente funzionale ea quanto pare sono 359 00:16:19,810 --> 00:16:24,000 chiedendo una e-mail, una password, di nuovo la password, e poi un assegno 360 00:16:24,000 --> 00:16:26,150 di accettare alcuni termini e condizioni. 361 00:16:26,150 --> 00:16:28,740 Quello che il codice sorgente di questo sembra che è probabilmente qualcosa 362 00:16:28,740 --> 00:16:31,030 si può immaginare con un po 'di pensiero ora. 363 00:16:31,030 --> 00:16:32,840 Ho un tag form qui. 364 00:16:32,840 --> 00:16:36,190 >> L'azione è a quanto pare sta per andare in un file chiamato register.php. 365 00:16:36,190 --> 00:16:37,870 Il metodo che ho intenzione di utilizzare è ottenere. 366 00:16:37,870 --> 00:16:40,880 E poi ho un testo campo che si chiama e-mail. 367 00:16:40,880 --> 00:16:43,340 >> Ho un campo password il cui nome è password. 368 00:16:43,340 --> 00:16:45,420 Ho un altro campo password il cui nome 369 00:16:45,420 --> 00:16:47,342 è la conferma un po 'arbitrario. 370 00:16:47,342 --> 00:16:49,690 E 'solo un altro parametro HTTP. 371 00:16:49,690 --> 00:16:54,430 >> E poi noi non abbiamo usato questi tranne dal momento che i GI Frosh demo in class-- 372 00:16:54,430 --> 00:16:56,692 una casella di controllo che è solo tipo di controllo è uguale a. 373 00:16:56,692 --> 00:16:57,900 E io chiamerò tale accordo. 374 00:16:57,900 --> 00:17:00,700 Così ho sorta di arbitrario, ma nome convenientemente questi campi. 375 00:17:00,700 --> 00:17:03,450 In modo che ora, quando questa forma si presentato, vediamo cosa succede. 376 00:17:03,450 --> 00:17:07,290 Se faccio malan@harvard.edu, Farò una password di cremisi. 377 00:17:07,290 --> 00:17:09,530 Farò una password di nulla. 378 00:17:09,530 --> 00:17:10,910 Cerchiamo di non cooperare. 379 00:17:10,910 --> 00:17:12,280 >> E non selezionare la casella. 380 00:17:12,280 --> 00:17:13,940 Permettetemi di fare clic su Registra. 381 00:17:13,940 --> 00:17:15,420 E dice, hm, sei iscritto. 382 00:17:15,420 --> 00:17:16,069 Non proprio. 383 00:17:16,069 --> 00:17:17,450 >> Ma l'URL è cambiato. 384 00:17:17,450 --> 00:17:22,280 Quindi questo modulo è stato chiaramente ammesso a presentare al register.php. 385 00:17:22,280 --> 00:17:25,160 Ma presumibilmente, dovrei essere la cattura di alcuni di questi errori. 386 00:17:25,160 --> 00:17:27,569 Ora, in Pset7 e alcuni dei nostri esempi di lezione, 387 00:17:27,569 --> 00:17:30,130 noi generalmente stampare un grande messaggio di errore rosso qui 388 00:17:30,130 --> 00:17:33,760 dicendo: manca il nome, o mancante password. 389 00:17:33,760 --> 00:17:37,680 Abbiamo fatto prima e che abbiamo fatto il rilevamento degli errori lato server. 390 00:17:37,680 --> 00:17:41,580 >> Ma molti siti web in questi giorni fare il rilevamento degli errori lato client 391 00:17:41,580 --> 00:17:42,810 in cui l'URL non cambia. 392 00:17:42,810 --> 00:17:44,101 Tutta la pagina non si aggiorna. 393 00:17:44,101 --> 00:17:46,940 È possibile ottenere un feedback immediato dal browser. 394 00:17:46,940 --> 00:17:48,070 Forse qualcosa va rosso. 395 00:17:48,070 --> 00:17:49,190 >> Forse si ottiene un pop up. 396 00:17:49,190 --> 00:17:53,240 Ma non perdere tempo per l'invio i dati del server che è incompleto. 397 00:17:53,240 --> 00:17:56,050 Così vediamo come potremmo il raggiungimento di tale caratteristica pure. 398 00:17:56,050 --> 00:17:59,660 >> Lasciami andare a form1.html, che sembra lo stesso. 399 00:17:59,660 --> 00:18:03,530 Ma se questa volta lo faccio malan@harvard.edu e digito cremisi 400 00:18:03,530 --> 00:18:07,350 e io non collaboro più ma fare clic su Registra, notare ora. 401 00:18:07,350 --> 00:18:08,940 Non è la soluzione più sexy. 402 00:18:08,940 --> 00:18:10,900 Ho almeno preso questo errore. 403 00:18:10,900 --> 00:18:12,900 E ho usato l'avviso funzione in Javascript-- 404 00:18:12,900 --> 00:18:14,090 che stiamo usando solo in classe. 405 00:18:14,090 --> 00:18:16,430 In generale, non si dovrebbe usare questo perché può molto rapidamente uscire 406 00:18:16,430 --> 00:18:17,160 di controllo. 407 00:18:17,160 --> 00:18:19,180 Ma le password non corrispondono è l'errore. 408 00:18:19,180 --> 00:18:21,120 >> Lasciami andare avanti e fare clic su OK. 409 00:18:21,120 --> 00:18:25,040 Ma ciò che il takeaway chiave qui è che l'URL non è cambiata. 410 00:18:25,040 --> 00:18:27,960 Deperimento Quindi non ho disturbato l'ora del server chiedendogli 411 00:18:27,960 --> 00:18:30,750 una domanda che avrei potuto avere capito la risposta a me stesso. 412 00:18:30,750 --> 00:18:33,210 >> E l'utente, pur state parlando di questo 413 00:18:33,210 --> 00:18:35,264 più a lungo l'utente del andare a pensare a questo, 414 00:18:35,264 --> 00:18:36,680 sta per avere un feedback immediato. 415 00:18:36,680 --> 00:18:39,044 Non c'è latenza con la connettività di rete. 416 00:18:39,044 --> 00:18:40,460 Quindi diamo un'occhiata a questo codice sorgente. 417 00:18:40,460 --> 00:18:45,600 >> Sguardi form1.html strutturalmente simile qui. 418 00:18:45,600 --> 00:18:46,810 La forma è infatti la stessa. 419 00:18:46,810 --> 00:18:48,330 Ma vediamo quello che ho fatto qui. 420 00:18:48,330 --> 00:18:49,913 E ci sono diversi modi per fare questo. 421 00:18:49,913 --> 00:18:53,690 E ho fatto il più dritto seguace ma non modo più elegante ancora. 422 00:18:53,690 --> 00:18:54,869 Ho un tag script. 423 00:18:54,869 --> 00:18:57,035 Ho poi chiamo document.getElementById ('registrazione'). 424 00:18:57,035 --> 00:19:00,090 425 00:19:00,090 --> 00:19:04,420 E devo conservare quel valore nella forma, una variabile. 426 00:19:04,420 --> 00:19:05,520 >> Che cosa ho fatto? 427 00:19:05,520 --> 00:19:08,960 Si può pensare di document.getElementById come 428 00:19:08,960 --> 00:19:11,200 una funzione speciale che JavaScript fornisce 429 00:19:11,200 --> 00:19:14,400 che le mani letteralmente un puntatore a uno dei nodi 430 00:19:14,400 --> 00:19:16,520 o rettangoli in questo albero. 431 00:19:16,520 --> 00:19:21,470 Quindi, ora che è quello che la nostra variabile forma in JavaScript è in realtà punta a. 432 00:19:21,470 --> 00:19:25,120 >> Così ora la sintassi è diversa da C. Ma noi stanno facendo un paio di cose qui. 433 00:19:25,120 --> 00:19:30,360 Si, questo è un po 'strano cercando, di certo contro C. 434 00:19:30,360 --> 00:19:32,180 Ma guardate linea 35. 435 00:19:32,180 --> 00:19:35,130 Così il form.onsubmit sinistro. 436 00:19:35,130 --> 00:19:38,060 Ricordiamo che è onSubmit come un campo in una struct. 437 00:19:38,060 --> 00:19:41,480 Se pensate della variabile modulo è solo di essere una struct C, 438 00:19:41,480 --> 00:19:42,600 potrebbe avere alcuni campi. 439 00:19:42,600 --> 00:19:46,410 >> Back in the day, abbiamo avuto i nomi degli studenti, ID, case, questo tipo di campi. 440 00:19:46,410 --> 00:19:48,520 Basti pensare onsubmit come un altro campo. 441 00:19:48,520 --> 00:19:53,380 Ma è un campo speciale, perché il il browser è preprogrammato aspettarsi 442 00:19:53,380 --> 00:19:57,530 .onsubmit di non essere un valore come un numero o una stringa, 443 00:19:57,530 --> 00:20:01,180 ma per essere effettivamente una funzione o l'indirizzo di una funzione 444 00:20:01,180 --> 00:20:02,570 nella memoria del computer. 445 00:20:02,570 --> 00:20:04,740 >> E in effetti, questo è ciò che questa parola chiave qui fa. 446 00:20:04,740 --> 00:20:06,710 Questo dice, dammi una nuova funzione. 447 00:20:06,710 --> 00:20:09,390 Ma ciò che è il suo nome andando essere, apparentemente? 448 00:20:09,390 --> 00:20:10,800 >> Ripensando a Lunedi. 449 00:20:10,800 --> 00:20:13,430 450 00:20:13,430 --> 00:20:17,170 Qual è il nome di questa funzione sulla base di questa sintassi? 451 00:20:17,170 --> 00:20:19,784 No, voglio dire, c'è chiaramente nessun nome associated-- certamente 452 00:20:19,784 --> 00:20:21,200 non in quello che ho evidenziato qui. 453 00:20:21,200 --> 00:20:22,560 >> Ma che in realtà è OK. 454 00:20:22,560 --> 00:20:25,840 Questa è una funzione anonima, o funzione lambda come qualcuno potrebbe chiamarlo. 455 00:20:25,840 --> 00:20:27,589 E questo significa solo è ancora una funzione. 456 00:20:27,589 --> 00:20:29,400 E 'solo, non si può chiamare per nome. 457 00:20:29,400 --> 00:20:30,057 Ma va bene così. 458 00:20:30,057 --> 00:20:33,140 Perché ancora, il browser è stata programmato da aziende come Google 459 00:20:33,140 --> 00:20:38,540 o Microsoft o Mozilla o altri a è sufficiente sapere che se il campo .onsubmit 460 00:20:38,540 --> 00:20:43,400 all'interno di un elemento del modulo ha la valore, lo trattano come un function-- 461 00:20:43,400 --> 00:20:44,750 un puntatore a funzione, se si vuole. 462 00:20:44,750 --> 00:20:46,910 E lo chiamano quando il modulo viene inviato. 463 00:20:46,910 --> 00:20:50,350 >> Quindi, quale codice deve essere eseguito quando il modulo viene inviato? 464 00:20:50,350 --> 00:20:52,526 A quanto pare, tutto all'interno della parentesi graffa. 465 00:20:52,526 --> 00:20:53,650 E questo è solo stilistica. 466 00:20:53,650 --> 00:20:55,626 >> Si potrebbe fare questo come si tende a fare in CS50. 467 00:20:55,626 --> 00:20:58,250 Ma in JavaScript, la maggior parte delle persone tendono a mantenerlo sulla stessa linea 468 00:20:58,250 --> 00:21:01,960 solo perchè è più chiaramente associata a tale funzione parola. 469 00:21:01,960 --> 00:21:03,240 Così ora che cosa sto facendo? 470 00:21:03,240 --> 00:21:08,616 >> Se form.email.value uguale uguale la stringa vuota o nulla, ecco 471 00:21:08,616 --> 00:21:11,490 un avviso in cui ho intenzione di dire, è necessario fornire il proprio indirizzo e-mail, 472 00:21:11,490 --> 00:21:12,690 e poi tornare falso. 473 00:21:12,690 --> 00:21:15,720 Ed è che il ritorno falso che impedisce il modulo venga inviato. 474 00:21:15,720 --> 00:21:19,480 Nel frattempo, se il valore password è vuoto, ho intenzione di urlare l'utente 475 00:21:19,480 --> 00:21:21,150 e dire, è necessario fornire una password. 476 00:21:21,150 --> 00:21:23,700 >> Nel frattempo le cose sono sempre un po 'di fantasia qui. 477 00:21:23,700 --> 00:21:29,160 Se non lo fa form.password.value pari form.confirmation.value, 478 00:21:29,160 --> 00:21:31,680 l'altro campo, urlare a l'utente che la password 479 00:21:31,680 --> 00:21:33,860 non corrispondono in quanto non ha fatto un momento fa. 480 00:21:33,860 --> 00:21:35,780 E poi questo è un po 'più sexy perché mi 481 00:21:35,780 --> 00:21:40,470 So Sapevo che concettualmente controllato è il nome di una casella di controllo. 482 00:21:40,470 --> 00:21:45,680 >> Quindi posso solo usare un'esclamazione punto di dire se il controllo non è 483 00:21:45,680 --> 00:21:48,040 checked-- è il booleano valore, vero o false-- 484 00:21:48,040 --> 00:21:49,700 Io urlo contro l'operatore per questo motivo. 485 00:21:49,700 --> 00:21:52,300 In caso contrario, se si ottiene attraverso tutte queste condizioni, 486 00:21:52,300 --> 00:21:53,270 facciamo solo tornare vero. 487 00:21:53,270 --> 00:21:54,700 Lasciate che essere presentato il modulo. 488 00:21:54,700 --> 00:21:56,560 E questo poi accadrà. 489 00:21:56,560 --> 00:21:57,740 >> Proviamo quindi a digitare in cremisi. 490 00:21:57,740 --> 00:22:00,230 Andiamo a controllare la casella, fare clic su Registra. 491 00:22:00,230 --> 00:22:01,979 E ora vado fino alla destinazione. 492 00:22:01,979 --> 00:22:03,270 Ora, non c'è nessun database lì. 493 00:22:03,270 --> 00:22:05,370 Non c'è niente di interessante in register.php. 494 00:22:05,370 --> 00:22:07,980 Ho solo bisogno di qualcosa per parlare effettivamente. 495 00:22:07,980 --> 00:22:09,140 Permettetemi quindi di pausa, qui. 496 00:22:09,140 --> 00:22:16,270 Tutte le domande su quello che abbiamo appena fatto o quello che alcuni di questa nuova sintassi è? 497 00:22:16,270 --> 00:22:17,640 OK, sì? 498 00:22:17,640 --> 00:22:20,025 >> PUBBLICO: Quindi, qualsiasi casella di controllo è automaticamente un valore booleano. 499 00:22:20,025 --> 00:22:21,650 Non è necessario dichiarare in quel modo. 500 00:22:21,650 --> 00:22:22,649 >> DAVID J. MALAN: Corretto. 501 00:22:22,649 --> 00:22:29,340 Ogni casella di controllo che viene inviato da un modulo HTML per il vostro codice JavaScript 502 00:22:29,340 --> 00:22:31,760 saranno trattati, sì, come Booleano value-- vero o falso. 503 00:22:31,760 --> 00:22:32,635 E 'una buona domanda. 504 00:22:32,635 --> 00:22:36,080 Considerando gli altri valori, di Naturalmente, sono state di testo, stringhe di AKA. 505 00:22:36,080 --> 00:22:38,500 >> Va bene, così mi lascia riavvolgere un po 'oltre. 506 00:22:38,500 --> 00:22:39,900 Qual è stato il punto centrale di questo? 507 00:22:39,900 --> 00:22:41,400 Giusto per essere chiari. 508 00:22:41,400 --> 00:22:44,940 Come, già sappiamo, anche da Pset7 e anche dalla conferenza della scorsa settimana 509 00:22:44,940 --> 00:22:51,120 esempi, che siamo in grado di controllare, ovviamente, $ _GET $ _POST Se l'utente ci dia 510 00:22:51,120 --> 00:22:52,200 un valore vuoto. 511 00:22:52,200 --> 00:22:54,400 Ricordate la funzione di vuoto in PHP. 512 00:22:54,400 --> 00:22:58,040 >> Quindi, tanto per essere chiari, ciò che è uno dei motivi che potrebbe anche 513 00:22:58,040 --> 00:23:00,535 voglio fare questo controllo degli errori all'interno del browser? 514 00:23:00,535 --> 00:23:03,350 515 00:23:03,350 --> 00:23:06,080 Qual è la motivazione qui? 516 00:23:06,080 --> 00:23:06,580 Sì. 517 00:23:06,580 --> 00:23:09,735 >> PUBBLICO: più veloce, e non lo fai inviare i dati inutili al server. 518 00:23:09,735 --> 00:23:10,610 DAVID J. MALAN: Good. 519 00:23:10,610 --> 00:23:11,170 E 'più veloce. 520 00:23:11,170 --> 00:23:12,920 Non inviare inutile dati al server. 521 00:23:12,920 --> 00:23:14,670 >> Così si torna più risposta immediata. 522 00:23:14,670 --> 00:23:16,560 E soprattutto, l'utente esperienza è meglio. 523 00:23:16,560 --> 00:23:17,900 Pensate l'alternativa. 524 00:23:17,900 --> 00:23:21,160 >> Se per Gmail-- ed è stato il caso molti anni fa. 525 00:23:21,160 --> 00:23:24,160 Supponiamo che hai un nuovo messaggio Gmail conto, ma l'unico modo attraverso 526 00:23:24,160 --> 00:23:26,510 vedere che è quello, come, ricaricare l'intera pagina. 527 00:23:26,510 --> 00:23:29,030 Oppure supponiamo che si fa clic su un link per leggere una e-mail. 528 00:23:29,030 --> 00:23:31,600 >> Tutto deve ricaricare in modo che si può vedere l'e-mail. 529 00:23:31,600 --> 00:23:33,380 Oppure Facebook-- si ottiene un messaggio di chat. 530 00:23:33,380 --> 00:23:36,000 Non si vede fino a quando si ricarica la pagina o fare clic su qualche link. 531 00:23:36,000 --> 00:23:38,380 >> Come, questo sarebbe un terribilmente l'esperienza degli utenti fastidioso. 532 00:23:38,380 --> 00:23:41,300 E questo è ciò che è stato come, chiaramente, indietro quando mi sono imbattuto per UC 533 00:23:41,300 --> 00:23:44,760 e il web era molto meno dinamica e JavaScript non era così popolare 534 00:23:44,760 --> 00:23:45,601 come è ora. 535 00:23:45,601 --> 00:23:47,850 E le cose sono sempre molto più dinamico e più 536 00:23:47,850 --> 00:23:49,900 lato client in questo senso. 537 00:23:49,900 --> 00:23:54,370 >> Ma c'è un fermo qui, e questo è una specie di Gotcha fastidioso. 538 00:23:54,370 --> 00:23:58,720 Solo perché si aggiunge lato client rilevazione come questo non significa 539 00:23:58,720 --> 00:24:01,430 si può o si dovrebbe abbandonare rilevamento lato server. 540 00:24:01,430 --> 00:24:04,080 Si vuole in sostanza, mettere il vostro Controllo errori in entrambi i luoghi. 541 00:24:04,080 --> 00:24:05,830 Perché quello che è stato uno della lezione appresa 542 00:24:05,830 --> 00:24:10,270 dal articolo che ho letto alcuni brani da questo stupido CMS system-- 543 00:24:10,270 --> 00:24:14,410 Content Management System-- che era attuare il suo sistema di autenticazione, 544 00:24:14,410 --> 00:24:16,790 il suo accesso tramite quale meccanismo? 545 00:24:16,790 --> 00:24:19,515 546 00:24:19,515 --> 00:24:20,469 Javascript. 547 00:24:20,469 --> 00:24:21,499 >> PUBBLICO: JavaScript. 548 00:24:21,499 --> 00:24:23,290 DAVID J. MALAN: JavaScript, esattamente, giusto? 549 00:24:23,290 --> 00:24:24,610 Si stava usando JavaScript. 550 00:24:24,610 --> 00:24:27,120 E letteralmente, voi ragazzi avete giocato un po ', probabilmente 551 00:24:27,120 --> 00:24:28,700 con l'ispettore di Chrome. 552 00:24:28,700 --> 00:24:30,890 E se riesco a trovarlo, ispezionare elemento. 553 00:24:30,890 --> 00:24:33,670 >> Lascia che io vada a fare tutte le opzioni di Chrome. 554 00:24:33,670 --> 00:24:37,080 Ed è così che sia facile disattivare JavaScript in un browser. 555 00:24:37,080 --> 00:24:38,950 Controllare, non di più JavaScript. 556 00:24:38,950 --> 00:24:41,070 >> Quindi, in tutta onestà, un sacco del web in questi giorni 557 00:24:41,070 --> 00:24:43,430 sta solo andando a rompere perché Gmail e altri Sites-- 558 00:24:43,430 --> 00:24:46,140 Facebook-- supporre che JavaScript è abilitato. 559 00:24:46,140 --> 00:24:50,180 Ma se si sta facendo qualcosa di stupido come solo la convalida dell'input utenti 560 00:24:50,180 --> 00:24:52,520 e verifica che non presenti errori sul lato client, 561 00:24:52,520 --> 00:24:54,940 un avversario potrebbe facilmente fare questo. 562 00:24:54,940 --> 00:24:57,180 E poi ancora più intelligente avversario come voi ragazzi 563 00:24:57,180 --> 00:25:01,120 ora potrebbe utilizzare Telnet o Curl o comandi della riga di comando solo 564 00:25:01,120 --> 00:25:05,300 ed effettivamente inviare messaggi al server che allo stesso modo non esenti da errori controllati. 565 00:25:05,300 --> 00:25:08,380 >> Quindi questo è più di un decisione interfaccia utente 566 00:25:08,380 --> 00:25:13,060 quello che è un vero tecnico improvement-- attuazione 567 00:25:13,060 --> 00:25:14,410 lato client qualcosa di simile. 568 00:25:14,410 --> 00:25:16,800 Così ora un rapido sguardo, ma poi Mi rimetto alla passeggiata on-line 569 00:25:16,800 --> 00:25:17,674 grazie per questo. 570 00:25:17,674 --> 00:25:21,480 In forma di due, ci siamo andati attraverso e ripulito il codice un po '. 571 00:25:21,480 --> 00:25:23,650 Ma lasciatemi sottomessi gli uni agli dei video faremo probabile 572 00:25:23,650 --> 00:25:27,970 Incorpora in Pset8 che mostra solo una sintassi simile utilizzando una libreria chiamata 573 00:25:27,970 --> 00:25:32,320 jQuery, che è un super, super biblioteca popolare in JavaScript 574 00:25:32,320 --> 00:25:34,510 che francamente la maggior parte delle persone basta usare questi giorni 575 00:25:34,510 --> 00:25:37,070 e anche confondere come essere se stessa JavaScript. 576 00:25:37,070 --> 00:25:38,950 >> E tende a coinvolgere qualche segno del dollaro 577 00:25:38,950 --> 00:25:41,350 e parole chiave come documento tra parentesi qui. 578 00:25:41,350 --> 00:25:44,480 Ma ancora una volta, lasciate che rimetto a alcuni tutorial più lenti on-line 579 00:25:44,480 --> 00:25:46,750 piuttosto che ottenere legato in un solo sintassi. 580 00:25:46,750 --> 00:25:48,630 Passiamo a qualcosa di un po 'più fresco 581 00:25:48,630 --> 00:25:50,520 in termini di applicazioni di questo. 582 00:25:50,520 --> 00:25:57,730 >> Quindi, in particolare, lasciarmi andare avanti e di aprire questo qui. 583 00:25:57,730 --> 00:25:58,340 Dai. 584 00:25:58,340 --> 00:25:59,380 Ci andiamo. 585 00:25:59,380 --> 00:26:01,500 >> Lasciate che apro questa immagine qui. 586 00:26:01,500 --> 00:26:03,450 Inutilmente complicato cercando, ma 587 00:26:03,450 --> 00:26:07,880 descrive una tecnica chiamata AJAX-- Asynchronous JavaScript and XML, dove 588 00:26:07,880 --> 00:26:10,530 la X per XML è in realtà non è più realmente utilizzato. 589 00:26:10,530 --> 00:26:13,430 Esso tende a usare qualcosa altro chiamato JSON. 590 00:26:13,430 --> 00:26:16,560 >> Ma ecco come qualcosa di simile Google Maps o Google Earth funziona. 591 00:26:16,560 --> 00:26:18,060 Proviamo questo al volo, in realtà. 592 00:26:18,060 --> 00:26:21,590 Lasciami andare avanti e aprire up Chrome con il mio browser. 593 00:26:21,590 --> 00:26:26,236 >> E mi permetta di andare in, dire, maps.google.com. 594 00:26:26,236 --> 00:26:29,260 595 00:26:29,260 --> 00:26:31,930 E in realtà, se sei vecchio Basti ricordare ciò che, 596 00:26:31,930 --> 00:26:35,600 come, MapQuest era come back in the day, e forse si lavora ancora in questo modo. 597 00:26:35,600 --> 00:26:38,870 Quando si è utilizzato per la ricerca di something-- 33 Oxford Street, Cambridge, Mass, 598 00:26:38,870 --> 00:26:40,650 facciamo questo-- voi sarebbe in realtà, se si 599 00:26:40,650 --> 00:26:43,000 voluto panoramica verso l'alto e verso il basso, a sinistra ea destra, 600 00:26:43,000 --> 00:26:44,920 si dovrebbe guardare come un grande freccia in alto, e 601 00:26:44,920 --> 00:26:46,921 avrebbe mostrato un altro telaio della mappa qui. 602 00:26:46,921 --> 00:26:49,753 Oppure si dovrebbe aver fatto clic a sinistra e sarebbe andato qui, o un altro clic 603 00:26:49,753 --> 00:26:51,000 e si dovrebbe andare qui. 604 00:26:51,000 --> 00:26:53,000 Ma invece questi giorni, abbiamo naturalmente solo 605 00:26:53,000 --> 00:26:55,970 dare per scontato che possiamo andare intorno Cambridge abbastanza rapidamente 606 00:26:55,970 --> 00:26:57,550 semplicemente facendo clic e trascinando. 607 00:26:57,550 --> 00:26:59,130 Ma bando ci sono alcuni difetti. 608 00:26:59,130 --> 00:27:02,160 >> Se faccio questo abbastanza veloce, ciò che sembra accadere 609 00:27:02,160 --> 00:27:05,960 come mi trascino un po 'troppo veloce per il computer per tenere il passo? 610 00:27:05,960 --> 00:27:07,160 Che cosa vedi? 611 00:27:07,160 --> 00:27:07,660 Sì. 612 00:27:07,660 --> 00:27:09,232 >> PUBBLICO: I pixel non si aggiornano. 613 00:27:09,232 --> 00:27:10,940 DAVID J. MALAN: Il i pixel non si aggiornano. 614 00:27:10,940 --> 00:27:12,870 C'è actually-- e poteva vedere questo, in realtà, 615 00:27:12,870 --> 00:27:15,360 se stai guardando on-line e di pausa questo o in realtà rallenta le cose 616 00:27:15,360 --> 00:27:18,600 per once-- vedrai che ci sono piastrelle, quadrati o rettangoli che 617 00:27:18,600 --> 00:27:22,040 mancano dalla mappa fino una frazione di secondo più tardi, più dati, 618 00:27:22,040 --> 00:27:24,390 altre immagini in realtà appare sullo schermo. 619 00:27:24,390 --> 00:27:29,810 E infatti, se lo facciamo, cercando up Chrome's-- diciamo, Chrome-- 620 00:27:29,810 --> 00:27:30,310 vediamo. 621 00:27:30,310 --> 00:27:31,090 Non possiamo farlo. 622 00:27:31,090 --> 00:27:31,860 >> Oh, urla. 623 00:27:31,860 --> 00:27:34,761 Apriamo su maps.google.com. 624 00:27:34,761 --> 00:27:36,660 Permettetemi di fare la finestra più grande di nuovo. 625 00:27:36,660 --> 00:27:38,836 >> Torna 33 Oxford Street. 626 00:27:38,836 --> 00:27:42,010 627 00:27:42,010 --> 00:27:43,760 Qual è stato il sito ero su di recente? 628 00:27:43,760 --> 00:27:46,440 Ho avuto questo, come, rant privato a me stesso che avevo messaggio poi immediato 629 00:27:46,440 --> 00:27:48,470 ogni amico che era in linea che voleva sentire. 630 00:27:48,470 --> 00:27:49,345 C'è qualche sito. 631 00:27:49,345 --> 00:27:52,680 Penso che sia così Comcast-- un grande ISP americano. 632 00:27:52,680 --> 00:27:56,355 È possibile, al momento della firma per il nuovo cavo servizio di modem o di un servizio di TV via cavo, 633 00:27:56,355 --> 00:27:59,230 hanno una forma molto ragionevolmente dove ti chiedono per il vostro indirizzo. 634 00:27:59,230 --> 00:28:01,450 E avere questo incredibile funzione chiamata completamento automatico, 635 00:28:01,450 --> 00:28:04,600 come Google, che inizia a riempire in risposta alla tua domanda. 636 00:28:04,600 --> 00:28:08,090 >> Il problema è, che fanno di completamento automatico sulle prime cose che vengono digitate. 637 00:28:08,090 --> 00:28:12,890 Quindi, se si inizia a digitare nel 33 esso, vi mostrerà letteralmente ogni casa 638 00:28:12,890 --> 00:28:15,790 in America che inizia con il numero 33 639 00:28:15,790 --> 00:28:17,920 prima di continuare a aspetta di digitare più. 640 00:28:17,920 --> 00:28:20,660 Quindi, se si digita 33 Oxford, allora vi mostra tutte le strade 641 00:28:20,660 --> 00:28:24,726 in America, che ha 33 Oxford in il suo nome, indipendentemente città 642 00:28:24,726 --> 00:28:25,350 che sei in. 643 00:28:25,350 --> 00:28:26,320 >> E poi si continua a digitare. 644 00:28:26,320 --> 00:28:28,930 Infine, si rende conto che non lo fanno offerta di servizi per la vostra casa a Cambridge 645 00:28:28,930 --> 00:28:29,920 o qualcosa del genere. 646 00:28:29,920 --> 00:28:33,410 Ma il punto è, questo è il più implementazione asinine di auto 647 00:28:33,410 --> 00:28:34,140 completare mai. 648 00:28:34,140 --> 00:28:36,400 >> E sto solo andando fuori su questa tangente nuovo. 649 00:28:36,400 --> 00:28:39,040 Ma ci sono buoni modi per utilizzare JavaScript e le cattive maniere. 650 00:28:39,040 --> 00:28:40,750 E questo non è necessariamente il migliore. 651 00:28:40,750 --> 00:28:46,360 >> Ma il punto qui, prima di questa tirata, è stato quello di aprire gli strumenti qui 652 00:28:46,360 --> 00:28:49,480 e di aprire gli strumenti di sviluppo, come abbiamo incoraggiato prima, 653 00:28:49,480 --> 00:28:52,840 e per vedere il Network scheda come clicco veramente veloce. 654 00:28:52,840 --> 00:28:55,400 E notare un sacco di ottenere le richieste accaduto. 655 00:28:55,400 --> 00:28:57,310 Tutto questo è successo da quando ho trascinato. 656 00:28:57,310 --> 00:29:00,170 >> E molto probabilmente, anzi molte di queste righe 657 00:29:00,170 --> 00:29:04,060 ora sono immagine barra JPEG Tipi MIME o tipi di contenuto. 658 00:29:04,060 --> 00:29:07,750 Questo perché ciò che sta facendo cromo ogni volta che fare clic e trascinare, fare clic su 659 00:29:07,750 --> 00:29:11,650 e trascinare, è la sua realizzazione, oh, io bisogno di andare chiedere a Google per la tessera 660 00:29:11,650 --> 00:29:15,080 sulla mappa che è qui, scaricare velocemente tramite HTTP, 661 00:29:15,080 --> 00:29:19,550 e poi aggiungerlo alla cosiddetta DOM per i browser web in albero della memoria 662 00:29:19,550 --> 00:29:24,430 rappresentazione in modo che l'utente, me, vede che tegola aggiornato. 663 00:29:24,430 --> 00:29:26,795 E questo è dovuto al fatto di una tecnica chiamata AJAX. 664 00:29:26,795 --> 00:29:28,920 Back in the day, davvero era il caso che se si 665 00:29:28,920 --> 00:29:33,050 voluto cambiare ciò che è sullo schermo, si dovrà fare clic su, giù, sinistra, 666 00:29:33,050 --> 00:29:33,550 destra. 667 00:29:33,550 --> 00:29:34,740 E poi una nuova pagina si aprirà. 668 00:29:34,740 --> 00:29:36,531 Ma in questi giorni, tutto è più dinamico. 669 00:29:36,531 --> 00:29:40,490 Succede nel modo in cui noi esseri umani sarebbe spero che in realtà avrebbe fatto in modo interattivo. 670 00:29:40,490 --> 00:29:43,210 E si ottiene questo modo di una tecnica chiamata 671 00:29:43,210 --> 00:29:46,170 AJAX, che è forse meglio spiegato con un esempio. 672 00:29:46,170 --> 00:29:49,730 In primo luogo, mi permetta di andare avanti e di aprire un file 673 00:29:49,730 --> 00:29:53,540 chiamato quote.php in codice di distribuzione di oggi. 674 00:29:53,540 --> 00:29:56,200 >> E poi lascia fare a me urla symbol--. 675 00:29:56,200 --> 00:30:02,399 Lasciami fare simbolo = GOOG per il solo brodo. 676 00:30:02,399 --> 00:30:04,440 O in realtà, facciamo la uno dal Pset GRATIS. 677 00:30:04,440 --> 00:30:05,270 Invio. 678 00:30:05,270 --> 00:30:06,580 >> E ora accorgo che cosa torno. 679 00:30:06,580 --> 00:30:09,210 Quindi questo è davvero un file PHP breve che ho 680 00:30:09,210 --> 00:30:13,210 ha scritto che prende in prestito semplicemente il codice dalla funzione di ricerca di Pset7 681 00:30:13,210 --> 00:30:17,830 e sputa fuori con questa parentesi graffa e citazioni e la notazione due punti, a quanto pare, 682 00:30:17,830 --> 00:30:22,747 prezzo del titolo corrente per il società che si passa in via get. 683 00:30:22,747 --> 00:30:24,580 Quindi questo è diverso dalla maggior parte di ciò che abbiamo 684 00:30:24,580 --> 00:30:26,496 fatto in tale comunicazione sono letteralmente sputare 685 00:30:26,496 --> 00:30:27,870 quella che appare come codice JavaScript. 686 00:30:27,870 --> 00:30:30,020 >> In realtà, questo è un oggetto JavaScript. 687 00:30:30,020 --> 00:30:34,130 Infatti, proprio per essere più chiari, JavaScript Object Notation-- JSON-- 688 00:30:34,130 --> 00:30:38,330 è solo un modo elegante per dire che si in grado di rappresentare i dati in JavaScript molto 689 00:30:38,330 --> 00:30:41,660 come è possibile in PHP utilizzando coppie di valori chiave. 690 00:30:41,660 --> 00:30:44,270 Quindi, se ho voluto dichiarare una variabile in JavaScript 691 00:30:44,270 --> 00:30:47,872 a rappresenta Zamyla, per instance-- una struct per Zamyla-- 692 00:30:47,872 --> 00:30:49,580 e che chiameremo studente, questa variabile. 693 00:30:49,580 --> 00:30:53,060 Il suo ID è uno, la casa dista Winthrop, e il nome è Zamyla. 694 00:30:53,060 --> 00:30:55,490 >> Ma posso anche avere un array di oggetti. 695 00:30:55,490 --> 00:30:58,710 Quindi, se ho davvero voluto avere un array in JavaScript che contiene 696 00:30:58,710 --> 00:31:01,740 più oggetti, questo tempo di rappresentanza dei lavoratori, 697 00:31:01,740 --> 00:31:04,910 Potrei avere questi tre pezzi di codice Indietro 698 00:31:04,910 --> 00:31:08,560 to back to back per queste tre ex membri del personale. 699 00:31:08,560 --> 00:31:12,201 Così la sintassi, piuttosto simile a both-- a PHP. 700 00:31:12,201 --> 00:31:13,700 Ma questo è particolarmente JavaScript. 701 00:31:13,700 --> 00:31:15,940 E 'Object Notation. 702 00:31:15,940 --> 00:31:17,240 Così che cosa è utile per questo? 703 00:31:17,240 --> 00:31:21,580 >> Se scrivo il codice che sputa fuori JSON-- JavaScript Object Notation-- roba che 704 00:31:21,580 --> 00:31:24,670 sembra che questo o roba che si presenta come la struttura di Zamyla, 705 00:31:24,670 --> 00:31:27,730 Posso effettivamente usare questo nei programmi scrivo. 706 00:31:27,730 --> 00:31:30,660 Lasciami andare a ajax0.html. 707 00:31:30,660 --> 00:31:33,310 E questo too-- non molto pensiero data all'estetica. 708 00:31:33,310 --> 00:31:34,660 Ma guarda cosa succede. 709 00:31:34,660 --> 00:31:37,050 >> Lasciami andare avanti e inserite gratuitamente da qui. 710 00:31:37,050 --> 00:31:38,490 Fare clic su Preventivo. 711 00:31:38,490 --> 00:31:41,060 E si noti l'URL non è cambiata. 712 00:31:41,060 --> 00:31:47,250 Ma ho avuto un pop-up con a quanto pare centesimo prezzo delle azioni di oggi di 0,15 dollari. 713 00:31:47,250 --> 00:31:49,062 Quindi non è affatto male. 714 00:31:49,062 --> 00:31:52,020 Ma la differenza è che in qualche modo, questo dato è tornato a me direttamente. 715 00:31:52,020 --> 00:31:54,250 Ma facciamo un passo verso qualcosa di più familiare. 716 00:31:54,250 --> 00:31:58,900 Nella versione uno di questo, mi permetta tipo libero di nuovo, fare clic su Preventivo, 717 00:31:58,900 --> 00:32:01,146 e now-- oh, questo è stato in realtà la versione jQuery. 718 00:32:01,146 --> 00:32:03,270 Quindi cerchiamo me-- non l'ho fatto fast-forward abbastanza lontano. 719 00:32:03,270 --> 00:32:05,830 Lasciami andare alla versione a due, che è dove volevo. 720 00:32:05,830 --> 00:32:07,260 Notate quello che ho fatto qui. 721 00:32:07,260 --> 00:32:10,370 Ho un web page-- un super versione semplice di qualsiasi pagina web 722 00:32:10,370 --> 00:32:14,260 è possibile utilizzare oggi con un campo di testo qui gratuitamente e poi a quanto pare solo 723 00:32:14,260 --> 00:32:14,880 testo. 724 00:32:14,880 --> 00:32:16,860 >> Questo non è un form, apparentemente. 725 00:32:16,860 --> 00:32:19,360 Ma se clicco ottengo preventivo, notare la mia pagina web 726 00:32:19,360 --> 00:32:22,760 è destinato a cambiare, come se io appena ricevuto un nuovo messaggio istantaneo 727 00:32:22,760 --> 00:32:25,360 o come se ho appena spostato il mappa e necessario per ottenere più dati 728 00:32:25,360 --> 00:32:29,220 aggiunto dinamicamente alla pagina web senza cambiare URL e l'utente 729 00:32:29,220 --> 00:32:30,980 esperienza sempre interrotta. 730 00:32:30,980 --> 00:32:35,750 Anzi, io sono ancora in esattamente lo stesso ajax2.html posto--. 731 00:32:35,750 --> 00:32:39,080 >> Quindi cerchiamo di guardare solo a questo esempio e vedere come questo sta accadendo. 732 00:32:39,080 --> 00:32:42,490 Lasciami andare in ajax2.html. 733 00:32:42,490 --> 00:32:44,770 E notare la forma prima. 734 00:32:44,770 --> 00:32:47,092 >> Quaggiù, sto girando via di completamento automatico. 735 00:32:47,092 --> 00:32:48,800 A volte si arriva fastidioso se il browser 736 00:32:48,800 --> 00:32:50,508 sta cercando di mostrare tutta la vostra storia. 737 00:32:50,508 --> 00:32:53,450 Così si può fare in HTML solo dicendo completamento automatico off. 738 00:32:53,450 --> 00:32:57,290 >> Ho dato questo campo di testo un symbol-- piuttosto, un ID di simbolo. 739 00:32:57,290 --> 00:32:58,977 E ora, questa è una caratteristica interessante. 740 00:32:58,977 --> 00:33:01,310 Non abbiamo parlato di arco, ma si può pensare a questo proposito 741 00:33:01,310 --> 00:33:03,177 come un tag di paragrafo o tag div. 742 00:33:03,177 --> 00:33:05,010 E 'quello che si chiama un in linea elemento, 743 00:33:05,010 --> 00:33:07,415 significa che non sarà possibile ottenere un paragrafo rompere al di sopra e al di sotto di esso. 744 00:33:07,415 --> 00:33:11,530 E 'solo andando a stare in linea, senza colpire l'equivalente di entrare. 745 00:33:11,530 --> 00:33:17,980 Così ho dato questo pezzo di HTML da determinare un identificatore univoco 746 00:33:17,980 --> 00:33:20,130 che ho arbitrariamente chiamato prezzo. 747 00:33:20,130 --> 00:33:21,560 E ho un pulsante Invia. 748 00:33:21,560 --> 00:33:25,420 >> Perché ora fino qui-- e questo è in realtà super-sorprendente quanto poco codice 749 00:33:25,420 --> 00:33:27,660 è possibile scrivere a fare relativamente pulito things-- 750 00:33:27,660 --> 00:33:31,800 notare quello che ho fatto qui, se io scorrere fino alla testa di questa pagina. 751 00:33:31,800 --> 00:33:34,970 Ho incluso la prima volta nel la mia testa un tag script 752 00:33:34,970 --> 00:33:37,410 che in realtà fa riferimento a un JavaScript file altrove. 753 00:33:37,410 --> 00:33:39,702 Questo è dall'organizzazione che scrive jQuery, 754 00:33:39,702 --> 00:33:42,660 e questo è solo dare le ultime versione del loro libreria jQuery. 755 00:33:42,660 --> 00:33:46,305 >> Quindi questo è un po 'come forte includere in C o richiedere in PHP. 756 00:33:46,305 --> 00:33:48,900 Si utilizza il tag script con un attributo di origine. 757 00:33:48,900 --> 00:33:52,030 Ma ora il mio codice è sta per essere proprio qui. 758 00:33:52,030 --> 00:33:54,170 >> Avviso Ho una funzione chiamata Quotes. 759 00:33:54,170 --> 00:33:56,180 E sembra un po ' criptico a prima vista. 760 00:33:56,180 --> 00:33:57,305 Ma facciamo prendere in giro questa parte. 761 00:33:57,305 --> 00:33:59,090 Dammi un URL variabile chiamata. 762 00:33:59,090 --> 00:34:01,390 Assegnare alla lettera questa stringa. 763 00:34:01,390 --> 00:34:04,530 Così, apici singoli, doppi apici in JavaScript mi ​​dà solo una stringa. 764 00:34:04,530 --> 00:34:06,900 Che cosa fa il più fare? 765 00:34:06,900 --> 00:34:08,199 Concatenazione. 766 00:34:08,199 --> 00:34:12,610 >> Quindi questa è ora la sintassi jQuery che prende un po 'per abituarsi. 767 00:34:12,610 --> 00:34:18,310 Ma questo significa solo andare a prendermi il DOM nodo il cui identificatore univoco è simbolo. 768 00:34:18,310 --> 00:34:21,929 L'hashtag non significa simbolo identificativo univoco. 769 00:34:21,929 --> 00:34:24,929 >> Il simbolo del dollaro in Parentesi solo significare, avvolgere questo 770 00:34:24,929 --> 00:34:28,510 jQuery in una sorta di salsa segreta così si ottiene funzionalità aggiuntive. 771 00:34:28,510 --> 00:34:31,880 E poi .VAL è apparentemente una funzione, o come si dice oggi, 772 00:34:31,880 --> 00:34:35,219 un metodo all'interno di questo nodo che ti dà solo il valore. 773 00:34:35,219 --> 00:34:38,896 Così, in breve, brutto e confuso come questo appare a prima vista, 774 00:34:38,896 --> 00:34:42,020 questo significa solo ottenere con l'utente ha digitato in, messo alla fine della stringa 775 00:34:42,020 --> 00:34:42,880 concatenando esso. 776 00:34:42,880 --> 00:34:43,739 Questo è tutto. 777 00:34:43,739 --> 00:34:46,070 >> Così ora, ultime tre righe. 778 00:34:46,070 --> 00:34:48,690 Si può spremere un sacco di funzionalità su tre linee. 779 00:34:48,690 --> 00:34:52,199 Questo simbolo del dollaro, come a parte, è solo un soprannome 780 00:34:52,199 --> 00:34:55,800 per una speciale variabile globale chiamata letteralmente jQuery. 781 00:34:55,800 --> 00:34:57,060 >> Segno del dollaro solo sembra freddo. 782 00:34:57,060 --> 00:35:00,080 Così la comunità jQuery solo tipo di usato come loro simbolo speciale. 783 00:35:00,080 --> 00:35:02,470 Ciò non significa che cosa significa in PHP. 784 00:35:02,470 --> 00:35:06,356 In JavaScript, è il simbolo del dollaro proprio come una lettera dell'alfabeto 785 00:35:06,356 --> 00:35:07,480 o un numero per una variabile. 786 00:35:07,480 --> 00:35:09,000 >> Si può solo avere come nome. 787 00:35:09,000 --> 00:35:09,770 Basta sembra freddo. 788 00:35:09,770 --> 00:35:11,890 Così la comunità adottato come nickname 789 00:35:11,890 --> 00:35:13,390 per la propria libreria chiamata jQuery. 790 00:35:13,390 --> 00:35:15,060 >> Ed è super popolare. 791 00:35:15,060 --> 00:35:17,620 Quindi, ottenere JSON è esattamente questo. 792 00:35:17,620 --> 00:35:19,920 Si tratta di una funzione che il gente di jQuery ha scritto 793 00:35:19,920 --> 00:35:23,340 che ottiene JSON da un server-- JavaScript Object Notation. 794 00:35:23,340 --> 00:35:25,680 Da quanto URL sta andando per ottenere queste informazioni? 795 00:35:25,680 --> 00:35:27,790 A quanto pare da questo URL qui. 796 00:35:27,790 --> 00:35:31,180 >> E cosa dovrebbe fare come il browser appena torna questa risposta? 797 00:35:31,180 --> 00:35:36,500 E questa è la magia di AJAX, in modo da speak-- Asynchronous JavaScript XML. 798 00:35:36,500 --> 00:35:41,320 E 'difficile vedere con tale semplice esempio come abbiamo avuto qui. 799 00:35:41,320 --> 00:35:44,730 >> Ma questo era asincrono in il senso che il mio codice quando 800 00:35:44,730 --> 00:35:48,530 eseguito inviato un messaggio al server per andare a prendermi un po 'di JSON. 801 00:35:48,530 --> 00:35:51,340 Ed è successo super veloce che ho ricevuto una risposta. 802 00:35:51,340 --> 00:35:55,130 Ma ciò che è interessante è che questo riga di codice non appendere il mio computer. 803 00:35:55,130 --> 00:35:56,550 >> Non ho visto l'icona di filatura. 804 00:35:56,550 --> 00:35:59,200 Non ho perso il capacità di muovere il mouse. 805 00:35:59,200 --> 00:36:01,340 Il mio browser era in realtà perfettamente bene. 806 00:36:01,340 --> 00:36:06,290 >> Perché il modo in cui gestisce il Javascript risposta dal server è il seguente. 807 00:36:06,290 --> 00:36:09,740 Si registra quello che si dice una funzione di callback, che 808 00:36:09,740 --> 00:36:12,830 significa semplicemente, hey, JavaScript. 809 00:36:12,830 --> 00:36:16,100 Non appena il server risponde con JSON, 810 00:36:16,100 --> 00:36:18,750 si prega di chiamare questa funzione anonima. 811 00:36:18,750 --> 00:36:23,910 >> E per favore passate in questa funzione qualunque stringa il server sputare 812 00:36:23,910 --> 00:36:26,080 come un argomento chiamato dati. 813 00:36:26,080 --> 00:36:28,360 Quindi, in altre parole, se Sto assemblando in modo dinamico 814 00:36:28,360 --> 00:36:33,370 quote.php un URL che passa in questo simbolo come LIBERO o GOOG o roba del genere, 815 00:36:33,370 --> 00:36:36,830 Sto quindi dicendo JavaScript andare a prendere tale URL. 816 00:36:36,830 --> 00:36:39,080 Ricordate che il browser sta per restituire qualcosa 817 00:36:39,080 --> 00:36:42,680 che si presenta come abbiamo visto earlier-- questo. 818 00:36:42,680 --> 00:36:45,940 >> E che il secondo argomento qui per ottenere JSON sta dicendo 819 00:36:45,940 --> 00:36:48,450 è chiamare questa funzione quando il server torna 820 00:36:48,450 --> 00:36:52,440 che si tratti di 10 millisecondi d'ora o 10 secondi da adesso. 821 00:36:52,440 --> 00:36:55,840 E non appena si fa, aggiungere il prezzo alla pagina. 822 00:36:55,840 --> 00:36:58,030 Questa sintassi qui solo significa andare a prendere il nodo 823 00:36:58,030 --> 00:37:01,940 da un albero il cui unico identificatore è prezzo-- quel periodo abbiamo visto in precedenza. 824 00:37:01,940 --> 00:37:04,320 >> Questo metodo chiamato HTML dice solo, andare sostituire 825 00:37:04,320 --> 00:37:08,770 il codice HTML che è lì con data.price. 826 00:37:08,770 --> 00:37:10,200 Cos'è data.price? 827 00:37:10,200 --> 00:37:12,850 Beh, il browser, ricordare, mi ha fatto vedere questo ritorno. 828 00:37:12,850 --> 00:37:14,540 Quindi si tratta di dati. 829 00:37:14,540 --> 00:37:18,100 >> E quindi è un po 'criptico per vedere le virgole qui. 830 00:37:18,100 --> 00:37:19,350 Ma in realtà, mi permetta di fare questo. 831 00:37:19,350 --> 00:37:22,890 Vorrei solo incolla questo veloce reale in gedit 832 00:37:22,890 --> 00:37:27,240 e mostrargli il come abbiamo dimostrato La struttura di Zamyla in precedenza. 833 00:37:27,240 --> 00:37:31,610 >> Quello che il server invia indietro è un piccolo oggetto che assomiglia a questo. 834 00:37:31,610 --> 00:37:37,140 E così è data.price appena mi dà 0,1515. 835 00:37:37,140 --> 00:37:39,310 Così un sacco di movimento parti qui tutto in una volta. 836 00:37:39,310 --> 00:37:41,860 >> Ma i punti salienti è che noi abbiamo questa capacità 837 00:37:41,860 --> 00:37:44,600 per rendere HTTP aggiuntiva richieste utilizzando JavaScript 838 00:37:44,600 --> 00:37:46,090 senza dover ricaricare la pagina. 839 00:37:46,090 --> 00:37:49,580 E allora possiamo davvero cambiare la pagina web al volo. 840 00:37:49,580 --> 00:37:51,850 E si scopre che JavaScript e altri linguaggi 841 00:37:51,850 --> 00:37:54,510 può essere utilizzato ora non solo di mutare le pagine web, 842 00:37:54,510 --> 00:37:57,960 ma di scrivere in realtà software in un computer vero, 843 00:37:57,960 --> 00:38:00,240 non solo confinato Chrome o simili. 844 00:38:00,240 --> 00:38:03,530 >> In realtà, if-- Colton, vuoi unirvi a noi di nuovo qui 845 00:38:03,530 --> 00:38:06,100 con il codice di laboratorio, e Chang così? 846 00:38:06,100 --> 00:38:09,140 Andiamo avanti, dopo aver parlato funzioni anonime e di callback 847 00:38:09,140 --> 00:38:13,090 e davvero tentare la sorte qui con una demo live con sanguinamento 848 00:38:13,090 --> 00:38:16,480 tecnologia, uno dei questi dispositivi Elite di movimento. 849 00:38:16,480 --> 00:38:18,940 Ora, questo dispositivo, richiamo, è un piccolo dispositivo USB 850 00:38:18,940 --> 00:38:25,620 nonché che-- che è beautiful-- che si collega al tuo porte USB. 851 00:38:25,620 --> 00:38:29,120 >> E poi fornisce l'input in forma di gesti umani 852 00:38:29,120 --> 00:38:32,560 rilevando utilizzando raggi infrarossi, in sostanza, i movimenti del tuo braccio. 853 00:38:32,560 --> 00:38:35,150 Quindi, mentre ciò che Maria ha provato sulla prima era muscoloso, 854 00:38:35,150 --> 00:38:39,000 in realtà sentire che cosa sta cambiando il braccio, questo è basato infrarossi. 855 00:38:39,000 --> 00:38:44,390 Quindi è alla ricerca di movimenti all'interno il tipo di sfera di un piede o così 856 00:38:44,390 --> 00:38:46,190 del dispositivo stesso. 857 00:38:46,190 --> 00:38:48,950 >> Allora, perché non devo prendere una pugnalata a questa prima? 858 00:38:48,950 --> 00:38:53,100 E andiamo avanti e gettare si sulla testa qui. 859 00:38:53,100 --> 00:38:56,250 Quindi cerchiamo di mettere il portatile di Colton qui. 860 00:38:56,250 --> 00:38:58,360 Abbiamo Andrew sul televisore. 861 00:38:58,360 --> 00:39:00,160 E cosa vuoi che io faccia per primo? 862 00:39:00,160 --> 00:39:02,409 >> COLTON: Vai avanti e basta mettere le mani su questo tipo 863 00:39:02,409 --> 00:39:04,430 e vedrete un po 'favoloso glitter. 864 00:39:04,430 --> 00:39:07,230 >> DAVID J. MALAN: Very nice. 865 00:39:07,230 --> 00:39:11,110 Questo è tutto accade in tempo reale. 866 00:39:11,110 --> 00:39:11,889 Ok. 867 00:39:11,889 --> 00:39:12,680 Va bene, e sì. 868 00:39:12,680 --> 00:39:14,119 Così bello. 869 00:39:14,119 --> 00:39:15,410 Va bene, che altro possiamo fare? 870 00:39:15,410 --> 00:39:17,900 >> COLTON: Vai alla schermata successiva e vedere. 871 00:39:17,900 --> 00:39:19,136 >> DAVID J. MALAN: Va bene. 872 00:39:19,136 --> 00:39:21,780 >> COLTON: Un divertente piccolo gioco dove si arriva a fare i robot. 873 00:39:21,780 --> 00:39:24,738 >> DAVID J. MALAN: Va bene, quindi questo è mani finte che mostrano cosa fare. 874 00:39:24,738 --> 00:39:27,920 COLTON: Sì Quindi, andare avanti e afferrare uno dei blocchi 875 00:39:27,920 --> 00:39:30,637 e metterlo in cima a corpo del robot. 876 00:39:30,637 --> 00:39:32,137 DAVID J. MALAN: Oh, c'è la mia mano. 877 00:39:32,137 --> 00:39:34,000 Oh. 878 00:39:34,000 --> 00:39:34,780 OK, adorabile. 879 00:39:34,780 --> 00:39:37,500 880 00:39:37,500 --> 00:39:38,650 Aspetta un minuto, OK. 881 00:39:38,650 --> 00:39:41,320 Ci andiamo. 882 00:39:41,320 --> 00:39:43,590 >> COLTON: ho fatto uno su incidente. 883 00:39:43,590 --> 00:39:45,423 >> DAVID J. MALAN: OK, vado a prendere questo ragazzo. 884 00:39:45,423 --> 00:39:45,923 Accidenti! 885 00:39:45,923 --> 00:39:48,467 886 00:39:48,467 --> 00:39:51,550 Quando stavamo praticando questo ultimo la notte, si sa che cosa questo devoluto in? 887 00:39:51,550 --> 00:39:54,285 >> Come questo. 888 00:39:54,285 --> 00:39:55,490 Ok. 889 00:39:55,490 --> 00:39:55,990 Il prossimo? 890 00:39:55,990 --> 00:39:56,860 >> COLTON: Certo. 891 00:39:56,860 --> 00:39:58,818 >> DAVID J. MALAN: Va bene, e c'è un terzo. 892 00:39:58,818 --> 00:40:01,130 893 00:40:01,130 --> 00:40:01,674 Bene. 894 00:40:01,674 --> 00:40:03,215 COLTON: E in questo, si ottiene a-- 895 00:40:03,215 --> 00:40:04,923 DAVID J. MALAN: Oh, di bello questo. 896 00:40:04,923 --> 00:40:06,650 COLTON: --yeah, prendere a parte questo fiore. 897 00:40:06,650 --> 00:40:07,441 DAVID J. MALAN: OK. 898 00:40:07,441 --> 00:40:11,170 899 00:40:11,170 --> 00:40:11,670 No? 900 00:40:11,670 --> 00:40:14,515 Perse. 901 00:40:14,515 --> 00:40:15,570 >> COLTON: Oh, ci si va. 902 00:40:15,570 --> 00:40:18,680 >> DAVID J. MALAN: Ah, guarda che. 903 00:40:18,680 --> 00:40:19,830 Molto bello. 904 00:40:19,830 --> 00:40:22,470 Beh, perchè non 'prendiamo fuori un volontario qui 905 00:40:22,470 --> 00:40:24,180 che vorrebbe venire in su. 906 00:40:24,180 --> 00:40:27,500 Che ne dite di destra nel verde, è vero? 907 00:40:27,500 --> 00:40:30,540 >> Va bene, e cerchiamo di have-- invece di fare questo, alcuni di voi 908 00:40:30,540 --> 00:40:34,590 potrebbe sapere questo gioco qui-- tagliare la corda, forse? 909 00:40:34,590 --> 00:40:35,100 Vediamo. 910 00:40:35,100 --> 00:40:37,320 Abbiamo i nostri bicchieri su qui? 911 00:40:37,320 --> 00:40:38,625 >> Ok. 912 00:40:38,625 --> 00:40:39,270 Grazie. 913 00:40:39,270 --> 00:40:39,380 Come ti chiami? 914 00:40:39,380 --> 00:40:40,350 >> PUBBLICO: Laura. 915 00:40:40,350 --> 00:40:41,266 >> DAVID J. MALAN: Laura? 916 00:40:41,266 --> 00:40:42,120 Bello da vedere. 917 00:40:42,120 --> 00:40:45,600 Se non ti dispiace mettere Google Glass su occhiali. 918 00:40:45,600 --> 00:40:46,970 Si tratta di Colton. 919 00:40:46,970 --> 00:40:47,650 >> COLTON: Ciao. 920 00:40:47,650 --> 00:40:48,140 Piacere di conoscerti. 921 00:40:48,140 --> 00:40:49,600 >> DAVID J. MALAN: OK, andiamo in giro. 922 00:40:49,600 --> 00:40:52,516 Va bene, allora che cosa si sta andando a fare qui, dopo aver giocato questo prima, 923 00:40:52,516 --> 00:40:55,650 è mettere la mano sul il Leap Motion qui. 924 00:40:55,650 --> 00:40:57,210 E ora la freccia dovrebbe muoversi. 925 00:40:57,210 --> 00:40:57,710 Oh, no. 926 00:40:57,710 --> 00:40:58,066 >> PUBBLICO: No. 927 00:40:58,066 --> 00:40:58,780 >> DAVID J. MALAN: Noi non vogliono uscire ancora. 928 00:40:58,780 --> 00:40:59,280 OK, attendere. 929 00:40:59,280 --> 00:41:01,200 Da questa parte. 930 00:41:01,200 --> 00:41:03,530 Così notare come tenete il vostro dito su qualcosa, 931 00:41:03,530 --> 00:41:06,750 il mouse inizia ad andare verde, che è come si fa clic su. 932 00:41:06,750 --> 00:41:08,980 >> Così passa il mouse sopra Play. 933 00:41:08,980 --> 00:41:10,970 E un solo dito va bene. 934 00:41:10,970 --> 00:41:13,869 E ora cliccate sulla piccola tizio verde sulla sinistra. 935 00:41:13,869 --> 00:41:15,410 E ora tenere premuto fino a quando si riempie verde. 936 00:41:15,410 --> 00:41:15,640 Buona. 937 00:41:15,640 --> 00:41:16,990 Ora, come, livello uno sulla parte superiore. 938 00:41:16,990 --> 00:41:20,190 >> PUBBLICO: Sì, vogliamo livello uno, qui. 939 00:41:20,190 --> 00:41:21,660 >> DAVID J. MALAN: Good. 940 00:41:21,660 --> 00:41:25,500 OK, quindi tutto quello che dovete fare è tagliare la corda. 941 00:41:25,500 --> 00:41:28,240 Il cursore è quella bianca laggiù. 942 00:41:28,240 --> 00:41:28,880 >> Molto bello. 943 00:41:28,880 --> 00:41:31,290 944 00:41:31,290 --> 00:41:32,790 D'accordo, si tratta di ottenere di più. 945 00:41:32,790 --> 00:41:34,800 Quindi, tenere premuto il dito nei prossimi ora. 946 00:41:34,800 --> 00:41:37,370 947 00:41:37,370 --> 00:41:39,030 Buona. 948 00:41:39,030 --> 00:41:39,999 Questo è difficile. 949 00:41:39,999 --> 00:41:40,966 >> PUBBLICO: Oh merda. 950 00:41:40,966 --> 00:41:41,466 Ok. 951 00:41:41,466 --> 00:41:42,466 Vuole andare in quel modo. 952 00:41:42,466 --> 00:41:44,890 Oh merda, che-- 953 00:41:44,890 --> 00:41:47,120 >> DAVID J. MALAN: Sì. 954 00:41:47,120 --> 00:41:50,700 Obiettivo secondario è quello di ottenere tutte le stelle. 955 00:41:50,700 --> 00:41:53,920 Va bene, la prossima. 956 00:41:53,920 --> 00:41:57,504 >> Vediamo se è possibile ottenere questo terzo. 957 00:41:57,504 --> 00:41:58,004 Buona. 958 00:41:58,004 --> 00:42:05,980 959 00:42:05,980 --> 00:42:06,840 OK, andare laggiù. 960 00:42:06,840 --> 00:42:08,850 >> Certo. 961 00:42:08,850 --> 00:42:11,230 Oh, molto bello. 962 00:42:11,230 --> 00:42:11,930 Bene. 963 00:42:11,930 --> 00:42:13,534 >> Allora perché non aggiornare qui oggi? 964 00:42:13,534 --> 00:42:15,200 Lasciato a nessuno su un massimo che vuole giocare. 965 00:42:15,200 --> 00:42:16,880 Grazie mille a Laura nostro volontario. 966 00:42:16,880 --> 00:42:18,730 E ci vedremo il Lunedi. 967 00:42:18,730 --> 00:42:21,190 >> PUBBLICO: Probabilmente si desidera queste indietro. 968 00:42:21,190 --> 00:42:23,640 >> SPEAKER 2: Alla prossima CS50-- 969 00:42:23,640 --> 00:42:35,222