1 00:00:00,000 --> 00:00:39,630 2 00:00:39,630 --> 00:00:41,880 DAVID J. MALAN: Muy bien, por lo que esta aquí es el brazo Myo 3 00:00:41,880 --> 00:00:44,450 banda, un par de los cuales tener para los proyectos finales CS50. 4 00:00:44,450 --> 00:00:47,533 Y eso era una demostración que hizo cola que de antemano donde esencialmente 5 00:00:47,533 --> 00:00:51,120 este brazo bastante fuerte banda de hasta aquí escucha a sus movimientos musculares 6 00:00:51,120 --> 00:00:54,280 que luego son mapeados en software para el ordenador portátil de Colton por aquí que 7 00:00:54,280 --> 00:00:57,230 tenía iTunes y que canción ya en cola. 8 00:00:57,230 --> 00:01:00,270 En lugar de esto me demos, Colton ha estado en el laboratorio 9 00:01:00,270 --> 00:01:04,129 claramente toda la semana para conseguir una demostración listo para un valiente voluntario. 10 00:01:04,129 --> 00:01:07,430 Si alguien quiere venir en up-- vio primero la mano. 11 00:01:07,430 --> 00:01:09,540 Vamos arriba. 12 00:01:09,540 --> 00:01:12,530 >> Bien. 13 00:01:12,530 --> 00:01:13,886 ¿Y cuál es su nombre? 14 00:01:13,886 --> 00:01:14,800 >> AUDIENCIA: Uh, María. 15 00:01:14,800 --> 00:01:16,550 >> DAVID J. MALAN: María, me alegro de verte. 16 00:01:16,550 --> 00:01:17,310 Vamos por aquí. 17 00:01:17,310 --> 00:01:19,550 Permítanme presentarles a Colton. 18 00:01:19,550 --> 00:01:21,290 Colton, esta es María. 19 00:01:21,290 --> 00:01:23,050 >> COLTON: Hola, encantado de conocerte. 20 00:01:23,050 --> 00:01:24,330 >> DAVID J. MALAN: Todos derecho, por lo que el primer paso, estamos 21 00:01:24,330 --> 00:01:26,204 va a tener que poner esto a su antebrazo 22 00:01:26,204 --> 00:01:29,280 por lo que es bastante apretado hasta cerca de su codo. 23 00:01:29,280 --> 00:01:31,940 Y mientras tanto, vamos a tener poner en nuestro Google Glass 24 00:01:31,940 --> 00:01:33,720 y vamos a mezclar las tecnologías de hoy. 25 00:01:33,720 --> 00:01:36,340 >> COLTON: En primer lugar tendremos que conectar esto en las cosas. 26 00:01:36,340 --> 00:01:37,170 >> DAVID J. MALAN: OK. 27 00:01:37,170 --> 00:01:39,795 En realidad, vamos a poner el brazo como cerca de este cable como sea posible 28 00:01:39,795 --> 00:01:41,160 para que podamos sincronizar primero para arriba. 29 00:01:41,160 --> 00:01:42,740 >> COLTON: Vamos a hacer esto. 30 00:01:42,740 --> 00:01:46,500 >> DAVID J. MALAN: Y mientras tanto, por lo que que todo el mundo puede conseguir una mirada más de cerca, 31 00:01:46,500 --> 00:01:50,290 vamos echamos cámara de Andrew en la pantalla allí. 32 00:01:50,290 --> 00:01:54,460 Así que tenemos un cable USB que es está conectado a la banda de María. 33 00:01:54,460 --> 00:02:00,230 Y permítanme lanzo pantalla de Colton arriba en el proyector siguiente. 34 00:02:00,230 --> 00:02:06,000 >> Así Colton es el registro del dispositivo ahora como un Myo conectado a este cable. 35 00:02:06,000 --> 00:02:08,060 Y ahora lo que María de va a hacer momentáneamente 36 00:02:08,060 --> 00:02:10,120 en realidad es caminar a través de los pasos de calibración 37 00:02:10,120 --> 00:02:12,830 y enseñar el software cómo sus músculos responden 38 00:02:12,830 --> 00:02:16,070 cuando se hacen ciertos predefinido gestos que el software entiende. 39 00:02:16,070 --> 00:02:17,910 Si desea ir en delante de la pantalla. 40 00:02:17,910 --> 00:02:26,840 41 00:02:26,840 --> 00:02:30,090 Aceptar, seguir intentándolo. 42 00:02:30,090 --> 00:02:31,860 >> COLTON: Ir como este. 43 00:02:31,860 --> 00:02:32,970 Y así. 44 00:02:32,970 --> 00:02:34,563 Y todo el camino a la derecha. 45 00:02:34,563 --> 00:02:35,922 Volver. 46 00:02:35,922 --> 00:02:37,740 >> DAVID J. MALAN: OK. 47 00:02:37,740 --> 00:02:38,960 Perspectiva diferente. 48 00:02:38,960 --> 00:02:39,620 No es usted. 49 00:02:39,620 --> 00:02:40,350 Somos nosotros. 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 Vamos a pasar lo más arriba por lo que es más cerca de su codo, o incluso con más fuerza. 54 00:02:51,540 --> 00:02:52,680 Bien. 55 00:02:52,680 --> 00:02:53,270 >> Aquí vamos. 56 00:02:53,270 --> 00:02:56,780 Este sería un buen momento para CS52X. 57 00:02:56,780 --> 00:02:57,670 Hay que ir. 58 00:02:57,670 --> 00:02:58,760 >> Muy agradable. 59 00:02:58,760 --> 00:03:01,170 Okay. 60 00:03:01,170 --> 00:03:02,790 Pulgar para meñique. 61 00:03:02,790 --> 00:03:03,380 >> Muy agradable. 62 00:03:03,380 --> 00:03:05,140 Extiende tus dedos. 63 00:03:05,140 --> 00:03:06,240 Bueno. 64 00:03:06,240 --> 00:03:06,910 Ola derecha. 65 00:03:06,910 --> 00:03:15,052 66 00:03:15,052 --> 00:03:17,010 Se está mostrando curiosidad que con la mano-- izquierda 67 00:03:17,010 --> 00:03:19,665 >> COLTON: Sí, eso es extraño. 68 00:03:19,665 --> 00:03:21,790 DAVID J. MALAN: Saludo a la derecha y seguir adelante. 69 00:03:21,790 --> 00:03:22,998 Un avance rápido para saltar o siguiente. 70 00:03:22,998 --> 00:03:25,020 Eso está bien derecho Wave. 71 00:03:25,020 --> 00:03:26,650 >> MARIA: Yo no-- esperar. 72 00:03:26,650 --> 00:03:28,430 >> DAVID J. MALAN: ¿Necesita ayuda? 73 00:03:28,430 --> 00:03:30,027 >> COLTON: Así que te vas de esta manera. 74 00:03:30,027 --> 00:03:31,860 MARIA: Se está convirtiendo la otra cosa, sin embargo. 75 00:03:31,860 --> 00:03:32,390 COLTON: Es. 76 00:03:32,390 --> 00:03:34,250 DAVID J. MALAN: Sí No sé razón por la que usted está mostrando un zurdo. 77 00:03:34,250 --> 00:03:36,458 COLTON: ¿Por qué no try-- sólo tratar de ir así. 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 Tal vez llegar a su brazo un poco más recto 81 00:03:42,580 --> 00:03:46,070 y que sea más abrupto como este. 82 00:03:46,070 --> 00:03:48,176 Sí, está bien, vamos. 83 00:03:48,176 --> 00:03:49,670 >> MARIA: Lo siento. 84 00:03:49,670 --> 00:03:51,170 DAVID J. MALAN: No es tu culpa. 85 00:03:51,170 --> 00:03:53,018 COLTON: Está bien. 86 00:03:53,018 --> 00:03:55,430 DAVID J. MALAN: De acuerdo. 87 00:03:55,430 --> 00:03:56,220 Bueno-- 88 00:03:56,220 --> 00:03:57,620 >> MARIA: ¿Debemos omitir esto, entonces? 89 00:03:57,620 --> 00:03:59,620 DAVID J. MALAN: Sí, vamos a te deje fuera del gancho. 90 00:03:59,620 --> 00:04:03,130 Así que si alguien quiere hacer un proyecto final utilizando esta vanguardia 91 00:04:03,130 --> 00:04:07,707 hardware, darse cuenta de que sólo podría tomar un poco de tiempo para acostumbrarse. 92 00:04:07,707 --> 00:04:10,290 Y esto-- la realidad es esta en realidad es muy sangrado borde. 93 00:04:10,290 --> 00:04:12,040 >> Esto es lo que se llama el kit de desarrollo, que 94 00:04:12,040 --> 00:04:14,956 está destinado a ser esencialmente un pre-lanzamiento de modo que la gente puede hacer exactamente 95 00:04:14,956 --> 00:04:18,690 esto-- luchar con él, la figura cómo los cuerpos de las personas trabajan 96 00:04:18,690 --> 00:04:19,980 con la tecnología. 97 00:04:19,980 --> 00:04:21,750 Así que si quieres luego, después de la conferencia, 98 00:04:21,750 --> 00:04:23,750 podemos dejar que usted viene y tomar otra puñalada en ella. 99 00:04:23,750 --> 00:04:26,970 Pero por lo demás, una ronda de aplausos, si que pudimos, para Maria por venir en adelante. 100 00:04:26,970 --> 00:04:28,770 >> MARIA: Gracias. 101 00:04:28,770 --> 00:04:30,390 >> DAVID J. MALAN: Gracias. 102 00:04:30,390 --> 00:04:34,945 Nos aferramos a esto, pero vamos a dar usted-- ¿qué tal una bola de la tensión aquí? 103 00:04:34,945 --> 00:04:38,620 Oh, y- si: sí, gracias. 104 00:04:38,620 --> 00:04:39,715 Bien. 105 00:04:39,715 --> 00:04:45,750 Así que para los curiosos, si usted fuera familiarizado con la elección de sonido 106 00:04:45,750 --> 00:04:47,670 que hicimos allí antes, una televisión increíble 107 00:04:47,670 --> 00:04:50,210 demostrar que usted debe absolutamente ser atracón-viendo en Netflix 108 00:04:50,210 --> 00:04:51,110 es este de aquí. 109 00:04:51,110 --> 00:04:54,472 >> ALTAVOZ 1: Señoras y señores, un mago llamado Josh. 110 00:04:54,472 --> 00:05:04,710 111 00:05:04,710 --> 00:05:08,050 >> DAVID J. MALAN: Y por lo visto, es una cosa que me de texto durante la conferencia ahora. 112 00:05:08,050 --> 00:05:11,190 Estoy siendo dije que María tenía un cumpleaños ayer. 113 00:05:11,190 --> 00:05:14,095 Así que feliz cumpleaños de CS50 a María también. 114 00:05:14,095 --> 00:05:18,720 115 00:05:18,720 --> 00:05:22,090 >> Así que usted puede haber leído en el mes reciente que este caballeros aquí, Steve 116 00:05:22,090 --> 00:05:25,260 Ballmer, quien era en realidad clase de 1977 en la universidad, 117 00:05:25,260 --> 00:05:27,170 recientemente retirado por Microsoft. 118 00:05:27,170 --> 00:05:29,620 Él era estudiante aquí, a continuación, un par de años más tarde 119 00:05:29,620 --> 00:05:31,910 se encontró en Stanford Business School 120 00:05:31,910 --> 00:05:34,160 cuando recibió un teléfono llamada de un amigo suyo que 121 00:05:34,160 --> 00:05:36,516 había vivido en el pasillo de él aquí en Harvard. 122 00:05:36,516 --> 00:05:38,640 El nombre de ese amigo era Bill Gates, y en el momento, 123 00:05:38,640 --> 00:05:42,700 él estaba tratando de reclutar a Steve para ser la primera persona de negocios, realmente, 124 00:05:42,700 --> 00:05:45,720 en una pequeña empresa de nombre de Microsoft. 125 00:05:45,720 --> 00:05:48,960 >> Una breve historia larga, Steve fue finalmente conquistado, 126 00:05:48,960 --> 00:05:52,130 unido a Microsoft cuando tenía sólo 30 empleados. 127 00:05:52,130 --> 00:05:54,300 Y para el momento en que se retiró hace poco, 128 00:05:54,300 --> 00:05:58,100 la compañía tenía 100.000 empleados en los últimos años. 129 00:05:58,100 --> 00:06:01,171 Y por lo que un sitio web conocido como The Verge preparado este homenaje en video 130 00:06:01,171 --> 00:06:02,920 que pensamos que sería mejor compartido que le da 131 00:06:02,920 --> 00:06:08,380 un sentido de lo mucho que la energía de Steve trae a cualquier presentación que da. 132 00:06:08,380 --> 00:06:11,884 133 00:06:11,884 --> 00:06:12,550 [REPRODUCCIÓN DE VÍDEO] 134 00:06:12,550 --> 00:06:16,220 -Microsoft Es como un cuarto hijo. 135 00:06:16,220 --> 00:06:18,260 Los niños hacen salir de la casa. 136 00:06:18,260 --> 00:06:21,875 En este caso, supongo Me voy de la casa. 137 00:06:21,875 --> 00:06:23,270 Hey Bill, whazzap? 138 00:06:23,270 --> 00:06:24,200 >> -Wazzap? 139 00:06:24,200 --> 00:06:25,320 >> -Oye, Wazzap? 140 00:06:25,320 --> 00:06:28,590 Se nos ha dado un enorme oportunidad. 141 00:06:28,590 --> 00:06:30,210 Y Bill nos dio esa oportunidad. 142 00:06:30,210 --> 00:06:35,520 143 00:06:35,520 --> 00:06:36,770 Quiero dar las gracias a Bill para que. 144 00:06:36,770 --> 00:06:39,630 Quiero que también. 145 00:06:39,630 --> 00:06:42,500 El ritmo de la innovación no va a reducir la velocidad. 146 00:06:42,500 --> 00:06:45,140 >> Se va a llegar más rápido y más rápido. 147 00:06:45,140 --> 00:06:50,165 Puede haber unos pocos competidores que por desgracia están eliminados! 148 00:06:50,165 --> 00:06:54,337 149 00:06:54,337 --> 00:06:59,564 >> Me encanta esta empresa. 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 Soy un PC, y me encanta esta empresa! 153 00:07:08,250 --> 00:07:13,090 >> Desarrolladores, desarrolladores, desarrolladores, desarrolladores, desarrolladores, desarrolladores, 154 00:07:13,090 --> 00:07:14,560 desarrolladores, desarrolladores. 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 Los desarrolladores web! 158 00:07:19,950 --> 00:07:21,420 >> Los desarrolladores web! 159 00:07:21,420 --> 00:07:22,890 Los desarrolladores web! 160 00:07:22,890 --> 00:07:25,830 161 00:07:25,830 --> 00:07:28,770 Escuche lo demás que usted obtener sin costo adicional! 162 00:07:28,770 --> 00:07:31,960 >> El ejecutivo de MS-DOS, una cita calendario, una pila de tarjetas, un bloc de notas, 163 00:07:31,960 --> 00:07:33,750 un reloj, un panel de control. 164 00:07:33,750 --> 00:07:35,461 Y, ¿puedes creerlo? 165 00:07:35,461 --> 00:07:35,960 Reversie! 166 00:07:35,960 --> 00:07:37,270 >> Grabarlos en un CD! 167 00:07:37,270 --> 00:07:38,660 Póngalas a MSN! 168 00:07:38,660 --> 00:07:40,422 Usted les envía por correo a los amigos! 169 00:07:40,422 --> 00:07:41,790 >> Todo con un solo clic! 170 00:07:41,790 --> 00:07:48,670 Uno Microsoft, una estrategia, una team-- centrado, disciplinado, profesional, 171 00:07:48,670 --> 00:07:50,610 y experto en todo lo que hacemos. 172 00:07:50,610 --> 00:07:52,670 Permítanme utilizar una línea de una vieja película. 173 00:07:52,670 --> 00:07:54,810 >> Las relaciones son como los tiburones. 174 00:07:54,810 --> 00:07:57,480 Se mueven hacia adelante o se mueren. 175 00:07:57,480 --> 00:08:01,470 De hecho, creo tecnología empresas son los mismos. 176 00:08:01,470 --> 00:08:04,801 >> [FIN REPRODUCCIÓN DE VÍDEO] 177 00:08:04,801 --> 00:08:08,050 DAVID J. MALAN: Así que estamos muy contentos de anunciar que Steve se unirá a nosotros 178 00:08:08,050 --> 00:08:13,320 aquí en CS50 próximo miércoles a las el lugar y la hora de costumbre aquí. 179 00:08:13,320 --> 00:08:14,750 Espacio probable será limitado. 180 00:08:14,750 --> 00:08:19,650 Y así, a unirse a nosotros en persona, por favor dirigirse hoy o poco después 181 00:08:19,650 --> 00:08:22,600 a cs50.harvard.edu/register. 182 00:08:22,600 --> 00:08:25,780 >> Y vamos a seguir por Martes confirmando manchas. 183 00:08:25,780 --> 00:08:29,900 Tenemos ganas de que el próximo Miércoles durante conferencia en CS50. 184 00:08:29,900 --> 00:08:33,706 Ahora, en otras noticias, se me ocurrió venir a través de este en The Crimson sólo 185 00:08:33,706 --> 00:08:34,289 el otro día. 186 00:08:34,289 --> 00:08:37,370 >> Resulta que uno de personal de CS50 y al menos uno de los estudiantes del CS50 187 00:08:37,370 --> 00:08:40,299 Actualmente se está ejecutando para UC presidente y vicepresidente, 188 00:08:40,299 --> 00:08:42,950 que me trajo de vuelta a mis propios días atrás 189 00:08:42,950 --> 00:08:45,920 cuando perdí la elección UC miserablemente. 190 00:08:45,920 --> 00:08:48,210 Pero el lado positivo en eso es que siempre 191 00:08:48,210 --> 00:08:50,604 contar la historia es que una de la que estoy seguro 192 00:08:50,604 --> 00:08:52,770 muchas razones por las que perdieron la elección era una falta completa 193 00:08:52,770 --> 00:08:54,103 de un talento para hablar en público. 194 00:08:54,103 --> 00:08:56,950 Y así, con toda sinceridad, que me llevó, que la experiencia 195 00:08:56,950 --> 00:09:02,235 Creo que mi primer año, para firmar en realidad para Harvard Computer Society, que 196 00:09:02,235 --> 00:09:04,610 es el grupo en el campus que ejerce en diversas charlas técnicas 197 00:09:04,610 --> 00:09:05,318 y otras cosas. 198 00:09:05,318 --> 00:09:08,117 Y me hice cargo de su enseñanza seminarios y, por tanto, 199 00:09:08,117 --> 00:09:09,950 tenido una oportunidad, un maravillosa oportunidad, 200 00:09:09,950 --> 00:09:12,620 para empezar a trabajar en exactamente esto. 201 00:09:12,620 --> 00:09:15,000 Pero también, tuve la oportunidad durante esta experiencia 202 00:09:15,000 --> 00:09:16,930 para enseñar a mí mismo tanto más HTML. 203 00:09:16,930 --> 00:09:21,080 Y así me demorado anoche por mirando a través de la página web basada en HTML 204 00:09:21,080 --> 00:09:28,066 Hice como en 1997, el 98, para mi campaña que se parece a esto aquí. 205 00:09:28,066 --> 00:09:29,920 Lo sé. 206 00:09:29,920 --> 00:09:33,340 >> Porque-- y, por supuesto, previo aviso esta increíble decisión de diseño en 1998 207 00:09:33,340 --> 00:09:33,850 o lo que sea. 208 00:09:33,850 --> 00:09:36,475 La primera cosa que usted desea que los usuarios hacer al visitar su sitio web 209 00:09:36,475 --> 00:09:39,860 es tener que hacer clic en otro enlace sólo para entrar en su página web con el monje 210 00:09:39,860 --> 00:09:43,940 detrás de una cortina cubierto donde al parecer, mi plataforma de campaña era. 211 00:09:43,940 --> 00:09:46,330 Y esto es todo lo que obtendrá hoy es sólo una captura de pantalla. 212 00:09:46,330 --> 00:09:49,500 Pero yo estaba leyendo a través de, como, mis carteles de la campaña pasada noche 213 00:09:49,500 --> 00:09:50,490 y mi plataforma. 214 00:09:50,490 --> 00:09:52,960 >> Y yo estaba tan enojado con el tiempo. 215 00:09:52,960 --> 00:09:55,380 Mi plataforma era-- fue interesante. 216 00:09:55,380 --> 00:09:57,730 Así que me he calmado desde entonces. 217 00:09:57,730 --> 00:10:03,550 Pero algún día, voy a correr de nuevo y esperemos mejor esta vez. 218 00:10:03,550 --> 00:10:07,265 >> Así HTML, que el lenguaje en el que hice que en-- pronto tiene mucho más-- 219 00:10:07,265 --> 00:10:09,140 es algo que hemos estado hablando de los últimos tiempos 220 00:10:09,140 --> 00:10:12,460 y en gran medida dando por sentado ahora que nos hemos movido a otras lenguas. 221 00:10:12,460 --> 00:10:15,650 Pero vamos a hacer una pausa por un momento y poner un poco de estas cosas en su contexto. 222 00:10:15,650 --> 00:10:18,040 Así que en una frase, ¿qué es HTML? 223 00:10:18,040 --> 00:10:19,370 >> O, lo que se utiliza? 224 00:10:19,370 --> 00:10:20,208 Cualquier persona? 225 00:10:20,208 --> 00:10:20,708 Sí. 226 00:10:20,708 --> 00:10:22,002 >> AUDIENCIA: marcado para los sitios web. 227 00:10:22,002 --> 00:10:23,460 DAVID J. MALAN: marcado para el sitio web. 228 00:10:23,460 --> 00:10:27,100 Así que es un lenguaje de marcado que le permite estructurar una página web. 229 00:10:27,100 --> 00:10:30,040 Encabezado sube aquí, título va aquí, el cuerpo va aquí. 230 00:10:30,040 --> 00:10:33,280 Esto está en negrita, esto es italics-- ese tipo de detalle. 231 00:10:33,280 --> 00:10:33,830 >> Bueno, bueno. 232 00:10:33,830 --> 00:10:37,620 Así CSS permite usted-- y yo tomó algunas libertades allí 233 00:10:37,620 --> 00:10:40,990 con la negrita y cursiva orientada al debido Eso es mejor implementados con este. 234 00:10:40,990 --> 00:10:42,096 CSS es-- qué? 235 00:10:42,096 --> 00:10:42,845 Diga en una frase. 236 00:10:42,845 --> 00:10:46,000 237 00:10:46,000 --> 00:10:46,720 Cualquier persona en absoluto. 238 00:10:46,720 --> 00:10:46,870 Sí. 239 00:10:46,870 --> 00:10:49,286 >> Audiencia: Adornos y cosas, como la forma de diseñarlo. 240 00:10:49,286 --> 00:10:51,769 241 00:10:51,769 --> 00:10:52,810 DAVID J. MALAN: OK, bueno. 242 00:10:52,810 --> 00:10:55,420 Los adornos que le permiten diseñarlo o estilizar que 243 00:10:55,420 --> 00:10:59,540 con cosas como negrita y cursiva y colores y también más fino 244 00:10:59,540 --> 00:11:01,330 posicionamiento de grano de elementos. 245 00:11:01,330 --> 00:11:04,520 De alguna manera le permite tomar las cosas última milla de modo que si, por ejemplo, 246 00:11:04,520 --> 00:11:08,130 en Pset7, te habrás dado cuenta de su La página de la cartera si estás en este momento 247 00:11:08,130 --> 00:11:12,270 ya que una tabla por defecto que usted hacer para mostrar las tenencias de valores del usuario 248 00:11:12,270 --> 00:11:15,740 y dinero en efectivo, probablemente, se ve bastante horrible de forma predeterminada, sin espacios en blanco. 249 00:11:15,740 --> 00:11:18,420 Todo tipo de atestado de juntos en filas y columnas. 250 00:11:18,420 --> 00:11:20,662 >> Bueno, con un poco de CSS, como usted puede darse cuenta, 251 00:11:20,662 --> 00:11:23,870 en realidad se puede modificar eso y hacer que sea algo mucho más familiar y mucho más 252 00:11:23,870 --> 00:11:24,870 más bonito de ver. 253 00:11:24,870 --> 00:11:27,730 Así que se trata de la CSS estilización de sitios web. 254 00:11:27,730 --> 00:11:31,970 Pero entonces, hemos introducido una nueva lenguaje, PHP, lo que nos permite hacer lo que? 255 00:11:31,970 --> 00:11:36,400 256 00:11:36,400 --> 00:11:37,590 >> Vamos a hacer qué? 257 00:11:37,590 --> 00:11:38,177 Cualquier persona. 258 00:11:38,177 --> 00:11:40,010 Tengo que aventurarse más allá el primer par de filas. 259 00:11:40,010 --> 00:11:40,260 Sí. 260 00:11:40,260 --> 00:11:41,719 >> AUDIENCIA: Generar contenido dinámico. 261 00:11:41,719 --> 00:11:42,718 DAVID J. MALAN: Perfecto. 262 00:11:42,718 --> 00:11:43,850 Generar contenido dinámico. 263 00:11:43,850 --> 00:11:45,808 Y usted puede hacer esto en cualquier número de idiomas. 264 00:11:45,808 --> 00:11:50,120 Nos pasó a usar PHP porque es en parte, tan similar a la sintaxis de C. 265 00:11:50,120 --> 00:11:52,000 >> Pero PHP hace exactamente eso. 266 00:11:52,000 --> 00:11:54,620 Se le permite generar dinámicamente la salida. 267 00:11:54,620 --> 00:11:57,890 Y algunos de los que la producción podría ser HTML, como lo hemos estado haciendo normalmente. 268 00:11:57,890 --> 00:12:00,160 Y también, porque es un lenguaje de programación, es 269 00:12:00,160 --> 00:12:03,240 el mecanismo a través del cual podemos hablar con las bases de datos. 270 00:12:03,240 --> 00:12:05,730 >> Y podemos hacer consultas a otros servidores como yahoos 271 00:12:05,730 --> 00:12:08,660 y programáticamente hacer nada realmente que te pueden de otro modo 272 00:12:08,660 --> 00:12:10,400 quieren obligar a un equipo a hacer. 273 00:12:10,400 --> 00:12:13,580 Así que PHP permite a empezar dar salida de forma dinámica el contenido. 274 00:12:13,580 --> 00:12:16,900 Así por esta lógica, yo no tenía un sitio web dinámico en 1998. 275 00:12:16,900 --> 00:12:18,460 >> Era sólo una página web estática. 276 00:12:18,460 --> 00:12:22,250 Mi contenido tenía que ser cambiado por manualmente con gedit o algún equivalente. 277 00:12:22,250 --> 00:12:25,290 Pero PHP es lo que solíamos o podría haber utilizado, más bien, 278 00:12:25,290 --> 00:12:27,260 para algo como la Sitio web Frosh mensajes instantáneos, que 279 00:12:27,260 --> 00:12:31,160 se suponía que iba a tomar registros y administrar una lista de cosas que users-- 280 00:12:31,160 --> 00:12:33,550 en realidad están cambiando más tiempo, a pesar de que nos ha tocado 281 00:12:33,550 --> 00:12:35,990 utilizar Perl, una diferente el lenguaje de la época. 282 00:12:35,990 --> 00:12:40,350 >> Y luego, por último, hemos introducido SQL-- Structured Query Language. 283 00:12:40,350 --> 00:12:43,845 Así que todavía otro idioma que se usa para qué? 284 00:12:43,845 --> 00:12:46,660 285 00:12:46,660 --> 00:12:47,639 Se utiliza para qué? 286 00:12:47,639 --> 00:12:49,430 ¿Podemos aventurar slight-- Bueno, no vamos 287 00:12:49,430 --> 00:12:51,263 para llegar mucho más lejos de la orquesta aquí. 288 00:12:51,263 --> 00:12:53,432 AUDIENCIA: Es un protocolo utilizado para hablar con las bases de datos. 289 00:12:53,432 --> 00:12:55,640 DAVID J. MALAN: Un protocolo utilizado para hablar con las bases de datos. 290 00:12:55,640 --> 00:12:56,181 Permítanme modifico. 291 00:12:56,181 --> 00:12:59,280 Es un lenguaje natural utilizado hablar con databases-- selecciona 292 00:12:59,280 --> 00:13:01,280 y las inserciones y eliminaciones y actualizaciones y realidad 293 00:13:01,280 --> 00:13:03,840 incluso más características que que ni siquiera hemos buceado 294 00:13:03,840 --> 00:13:07,920 en pero es posible que desee tener explore-- explorar para, por ejemplo, un proyecto final. 295 00:13:07,920 --> 00:13:09,560 Así que hay estas diversas piezas. 296 00:13:09,560 --> 00:13:13,100 >> Y es de esperar Pset7, a pesar de que su especificación es bastante largo, 297 00:13:13,100 --> 00:13:15,990 es deliberadamente largo caminar que a través de cómo estas cosas pueden todos 298 00:13:15,990 --> 00:13:17,210 ser escrito juntos. 299 00:13:17,210 --> 00:13:20,300 Ahora, el lunes, que introducido nuestro último idioma 300 00:13:20,300 --> 00:13:23,430 que vamos a introducir formalmente en la supuesto-- que es, JavaScript. 301 00:13:23,430 --> 00:13:25,720 Esto, como PHP, es un lenguaje interpretado. 302 00:13:25,720 --> 00:13:28,110 >> Sin embargo, una distinción clave Yo propuse el lunes 303 00:13:28,110 --> 00:13:32,730 es que mientras que PHP se está ejecutando o siendo interpretado en el servidor, lo que 304 00:13:32,730 --> 00:13:35,990 en este caso es el aparato CS50, o podría haber alguna web comercial 305 00:13:35,990 --> 00:13:39,370 servidor en Internet, JavaScript general 306 00:13:39,370 --> 00:13:43,650 es un lenguaje que se ejecuta el lado del cliente no servidor side-- así en el navegador. 307 00:13:43,650 --> 00:13:46,970 Es decir, al igual que cuando abrí Facebook hasta el código fuente y encontró todo 308 00:13:46,970 --> 00:13:51,510 de esos archivos .js, la implicación era que cuando usted visita Facebook o más 309 00:13:51,510 --> 00:13:54,810 Sitios web en estos días, se obtiene no sólo HTML, no sólo CSS, 310 00:13:54,810 --> 00:13:59,370 pero un montón de JavaScript código a menudo en la forma de archivos .js. 311 00:13:59,370 --> 00:14:03,970 Y entonces es el browser-- su propio Mac o PC-- que ejecuta ese código. 312 00:14:03,970 --> 00:14:05,990 >> Pero el navegador ejecuta. 313 00:14:05,990 --> 00:14:08,070 Se puede pensar en una especie de caja de arena. 314 00:14:08,070 --> 00:14:12,420 Así que el código JavaScript no debería ser capaz de borrar archivos en su computadora. 315 00:14:12,420 --> 00:14:14,730 No debería ser capaz de enviar mensajes de correo electrónico en su nombre. 316 00:14:14,730 --> 00:14:17,760 Su tipo de navegador restringe lo que puede hacer con ella. 317 00:14:17,760 --> 00:14:20,630 >> Así que en ese sentido, que es un poco menos potente, tal vez, que C. 318 00:14:20,630 --> 00:14:24,030 Pero JavaScript puede, como un a un lado, ser utilizado en el servidor, 319 00:14:24,030 --> 00:14:27,740 aunque vamos tendemos a no hablar al respecto en ese contexto. 320 00:14:27,740 --> 00:14:29,740 Así que ahora vamos a atar éstos juntos. 321 00:14:29,740 --> 00:14:34,000 Una semana más atrás, presentamos algo de HTML en la página web súper aburrido izquierda-. 322 00:14:34,000 --> 00:14:35,000 >> Sólo dice hola mundo. 323 00:14:35,000 --> 00:14:38,110 Y entonces me propuse en la derecha podemos tipo de robar las ideas 324 00:14:38,110 --> 00:14:41,470 a partir de la discusión de estructuras de datos en C 325 00:14:41,470 --> 00:14:45,270 y pensar en cómo este jerárquica lenguaje de marcado de la izquierda 326 00:14:45,270 --> 00:14:49,720 podría ser elaborado o aplicado en la memoria como una estructura de árbol real con nodos 327 00:14:49,720 --> 00:14:51,400 y punteros y ese tipo de detalles. 328 00:14:51,400 --> 00:14:53,820 A la derecha, que llamamos que un documento DOM-- 329 00:14:53,820 --> 00:14:56,800 Objeto Model-- que es justo una forma elegante de decir árbol. 330 00:14:56,800 --> 00:14:59,520 >> Ahora, ¿por qué es esto útil para pensar en ello de esta manera? 331 00:14:59,520 --> 00:15:01,680 Porque ahora con JavaScript, porque tenemos 332 00:15:01,680 --> 00:15:05,810 código que llega a jugar en este medio ambiente, el HTML real que es 333 00:15:05,810 --> 00:15:08,360 sido enviado al navegador ya y ya tiene 334 00:15:08,360 --> 00:15:12,690 ha cargado en la memoria por el navegador en un árbol en su equipo de 335 00:15:12,690 --> 00:15:18,270 RAM como éste, podemos utilizar JavaScript para realmente recorrer o caminar o búsqueda 336 00:15:18,270 --> 00:15:21,800 o cambiar ese árbol DOM sin embargo queremos. 337 00:15:21,800 --> 00:15:24,040 Así que, de hecho, si usted piensa sobre facebook.com, 338 00:15:24,040 --> 00:15:27,660 si se utiliza la función de chat, si uso Gmail y la característica Gchat, 339 00:15:27,660 --> 00:15:30,540 nada donde tienes mensajes que vienen una y otra vez 340 00:15:30,540 --> 00:15:35,880 y de nuevo, esos mensajes son probablemente, como, etiqueta LI, etiquetas lista de elementos, tal vez. 341 00:15:35,880 --> 00:15:37,940 >> O tal vez son sólo divs que mantienen apareciendo 342 00:15:37,940 --> 00:15:39,770 cada vez que reciba un mensaje instantáneo. 343 00:15:39,770 --> 00:15:42,960 Y por lo que sólo significa lo que Facebook o Google está haciendo 344 00:15:42,960 --> 00:15:45,200 está cada vez que conseguir un mensaje desde el servidor, 345 00:15:45,200 --> 00:15:48,740 probablemente están utilizando JavaScript que sólo tiene que añadir otro nodo 346 00:15:48,740 --> 00:15:52,700 a este tree-- otro nodo a esta árbol que entonces sólo se ve visualmente 347 00:15:52,700 --> 00:15:54,570 como una nueva línea de texto en la pantalla. 348 00:15:54,570 --> 00:15:57,100 Pero están insertando en esta estructura de datos. 349 00:15:57,100 --> 00:15:59,742 >> Así que en las clases como CS124 y otros, podrás 350 00:15:59,742 --> 00:16:02,200 en realidad escribir más código contra estructuras de datos como este. 351 00:16:02,200 --> 00:16:04,310 Pero por ahora en JavaScript, sólo tendremos que asumir 352 00:16:04,310 --> 00:16:07,920 tenemos toda esta funcionalidad de forma gratuita desde el lenguaje mismo. 353 00:16:07,920 --> 00:16:09,210 Así que echemos un vistazo a un ejemplo. 354 00:16:09,210 --> 00:16:13,120 >> Permítanme abrir un archivo llamado form.html. 355 00:16:13,120 --> 00:16:14,601 Es súper simple. 356 00:16:14,601 --> 00:16:15,600 Sólo se ve como este. 357 00:16:15,600 --> 00:16:17,860 >> No CSS, sin pensar en la estética. 358 00:16:17,860 --> 00:16:19,810 Es puramente funcional y al parecer estoy 359 00:16:19,810 --> 00:16:24,000 pidiendo un correo electrónico, una contraseña, contraseña de nuevo, y luego un cheque 360 00:16:24,000 --> 00:16:26,150 estar de acuerdo con algunos de los términos y condiciones. 361 00:16:26,150 --> 00:16:28,740 Lo que el código fuente de este parece que es probablemente algo 362 00:16:28,740 --> 00:16:31,030 se puede adivinar con una poco de pensamiento ahora. 363 00:16:31,030 --> 00:16:32,840 Tengo una etiqueta de formulario aquí. 364 00:16:32,840 --> 00:16:36,190 >> Una acción aparentemente se va a ir a un archivo llamado register.php. 365 00:16:36,190 --> 00:16:37,870 El método que voy a utilizar es llegar. 366 00:16:37,870 --> 00:16:40,880 Y luego tengo un texto campo cuyo nombre es de correo electrónico. 367 00:16:40,880 --> 00:16:43,340 >> Tengo un campo de contraseña cuyo nombre es la contraseña. 368 00:16:43,340 --> 00:16:45,420 Tengo otra campo de contraseña cuyo nombre 369 00:16:45,420 --> 00:16:47,342 es la confirmación de algo arbitrariamente. 370 00:16:47,342 --> 00:16:49,690 Es sólo otro parámetro HTTP. 371 00:16:49,690 --> 00:16:54,430 >> Y entonces nosotros no hemos utilizado estos excepción desde los mensajes instantáneos Frosh Demo en class-- 372 00:16:54,430 --> 00:16:56,692 una casilla de verificación que está sólo tipo es igual a cheque. 373 00:16:56,692 --> 00:16:57,900 Y voy a llamar a ese acuerdo. 374 00:16:57,900 --> 00:17:00,700 Así que he tipo de forma arbitraria, sino convenientemente llamado estos campos. 375 00:17:00,700 --> 00:17:03,450 Así que ahora, cuando esta forma consigue presentado, vamos a ver qué pasa. 376 00:17:03,450 --> 00:17:07,290 Si lo hago malan@harvard.edu, Voy a hacer una contraseña de carmesí. 377 00:17:07,290 --> 00:17:09,530 Voy a hacer una contraseña de nada. 378 00:17:09,530 --> 00:17:10,910 No vamos a cooperar. 379 00:17:10,910 --> 00:17:12,280 >> Y no voy a marcar la casilla. 380 00:17:12,280 --> 00:17:13,940 Permítanme haga clic en Registrar. 381 00:17:13,940 --> 00:17:15,420 Y dice, hm, que estés registrado. 382 00:17:15,420 --> 00:17:16,069 En realidad no. 383 00:17:16,069 --> 00:17:17,450 >> Pero el URL cambió. 384 00:17:17,450 --> 00:17:22,280 Así que esta forma fue claramente permitido a someterse a register.php. 385 00:17:22,280 --> 00:17:25,160 Pero es de suponer, que debería ser la captura de algunos de estos errores. 386 00:17:25,160 --> 00:17:27,569 Ahora, en Pset7 y algunos de nuestros ejemplos de conferencias, 387 00:17:27,569 --> 00:17:30,130 tendríamos generalmente imprimir un gran mensaje de error rojo aquí 388 00:17:30,130 --> 00:17:33,760 diciendo, el nombre que falta, o desaparecidos contraseña. 389 00:17:33,760 --> 00:17:37,680 Lo hemos hecho antes y que hemos detección de errores del lado del servidor se haga. 390 00:17:37,680 --> 00:17:41,580 >> Sin embargo, muchos sitios web en estos días hacer la detección de errores en el cliente 391 00:17:41,580 --> 00:17:42,810 donde el URL no cambia. 392 00:17:42,810 --> 00:17:44,101 Toda la página no se actualiza. 393 00:17:44,101 --> 00:17:46,940 Usted obtiene una respuesta instantánea desde el navegador. 394 00:17:46,940 --> 00:17:48,070 Tal vez algo sale rojo. 395 00:17:48,070 --> 00:17:49,190 >> Tal vez usted consigue un pop-up. 396 00:17:49,190 --> 00:17:53,240 Pero no pierdas tiempo enviando a el servidor de datos que es incompleta. 397 00:17:53,240 --> 00:17:56,050 Así que vamos a ver cómo podemos lograr esa característica también. 398 00:17:56,050 --> 00:17:59,660 >> Déjame ir a form1.html, que tiene el mismo aspecto. 399 00:17:59,660 --> 00:18:03,530 Pero si esta vez lo hago malan@harvard.edu y escribo carmesí 400 00:18:03,530 --> 00:18:07,350 y yo no coopero más pero haga clic en Registro, cuenta ahora. 401 00:18:07,350 --> 00:18:08,940 No es la solución más sexy. 402 00:18:08,940 --> 00:18:10,900 Por lo menos yo he cogido este error. 403 00:18:10,900 --> 00:18:12,900 Y yo he usado la alerta función en JavaScript-- 404 00:18:12,900 --> 00:18:14,090 que sólo estamos usando en clase. 405 00:18:14,090 --> 00:18:16,430 En general, usted no debe utilizar este ya que puede llegar muy rápidamente 406 00:18:16,430 --> 00:18:17,160 de control. 407 00:18:17,160 --> 00:18:19,180 Pero contraseñas no coinciden es el error. 408 00:18:19,180 --> 00:18:21,120 >> Déjame ir adelante y haga clic en Aceptar. 409 00:18:21,120 --> 00:18:25,040 Pero lo que el punto clave aquí es que la URL no cambió. 410 00:18:25,040 --> 00:18:27,960 Emaciación Así que no he molestado hora del servidor pidiéndole que 411 00:18:27,960 --> 00:18:30,750 una pregunta que yo pudiera tener descubierto la respuesta a mí mismo. 412 00:18:30,750 --> 00:18:33,210 >> Y el usuario, aunque estado hablando de esto 413 00:18:33,210 --> 00:18:35,264 más largo que el usuario de va a pensar en esto, 414 00:18:35,264 --> 00:18:36,680 va a tener una respuesta instantánea. 415 00:18:36,680 --> 00:18:39,044 No hay latencia con la conectividad de red. 416 00:18:39,044 --> 00:18:40,460 Así que echemos un vistazo a este código fuente. 417 00:18:40,460 --> 00:18:45,600 >> Miradas form1.html estructuralmente similar aquí. 418 00:18:45,600 --> 00:18:46,810 La forma es, de hecho el mismo. 419 00:18:46,810 --> 00:18:48,330 Pero vamos a ver lo que hice aquí. 420 00:18:48,330 --> 00:18:49,913 Y hay diferentes maneras de hacer esto. 421 00:18:49,913 --> 00:18:53,690 Y yo he hecho el más recto seguidor, pero no forma más elegante aún. 422 00:18:53,690 --> 00:18:54,869 Tengo una etiqueta de script. 423 00:18:54,869 --> 00:18:57,035 Entonces yo llamo document.getElementById ("registro"). 424 00:18:57,035 --> 00:19:00,090 425 00:19:00,090 --> 00:19:04,420 Y guardo ese valor en la forma, una variable. 426 00:19:04,420 --> 00:19:05,520 >> Entonces, ¿qué he hecho? 427 00:19:05,520 --> 00:19:08,960 Usted puede pensar en document.getElementById como 428 00:19:08,960 --> 00:19:11,200 una función especial que JavaScript le da 429 00:19:11,200 --> 00:19:14,400 que las manos, literalmente, que una puntero a uno de los nodos 430 00:19:14,400 --> 00:19:16,520 o rectángulos en este árbol. 431 00:19:16,520 --> 00:19:21,470 Así que ahora que es lo que nuestra variable de formulario en JavaScript que realmente está apuntando a. 432 00:19:21,470 --> 00:19:25,120 >> Así que ahora la sintaxis es diferente de C. Pero nos están haciendo algunas cosas aquí. 433 00:19:25,120 --> 00:19:30,360 Uno de ellos, éste es un poco extraño buscando, sin duda frente a C. 434 00:19:30,360 --> 00:19:32,180 Pero mira a la línea 35. 435 00:19:32,180 --> 00:19:35,130 Así que en el form.onsubmit izquierda. 436 00:19:35,130 --> 00:19:38,060 Recordemos que es onsubmit como un campo de una estructura. 437 00:19:38,060 --> 00:19:41,480 Si usted piensa en la variable de formulario es simplemente ser una estructura C, 438 00:19:41,480 --> 00:19:42,600 que podría tener algunos campos. 439 00:19:42,600 --> 00:19:46,410 >> De vuelta en el día, teníamos nombres de los estudiantes, IDs, casas, ese tipo de campos. 440 00:19:46,410 --> 00:19:48,520 Basta pensar en onsubmit como otro campo. 441 00:19:48,520 --> 00:19:53,380 Pero es un campo especial porque el navegador está preprogramado para esperar 442 00:19:53,380 --> 00:19:57,530 .onsubmit a no ser un valor como un número o una cadena, 443 00:19:57,530 --> 00:20:01,180 pero para ser realmente una función o la dirección de una función 444 00:20:01,180 --> 00:20:02,570 en la memoria del ordenador. 445 00:20:02,570 --> 00:20:04,740 >> Y, en efecto, eso es lo que esta palabra clave aquí es así. 446 00:20:04,740 --> 00:20:06,710 Esto dice, dame una nueva función. 447 00:20:06,710 --> 00:20:09,390 Pero lo que es su nombre va a ser, por lo visto? 448 00:20:09,390 --> 00:20:10,800 >> Pensando en el lunes. 449 00:20:10,800 --> 00:20:13,430 450 00:20:13,430 --> 00:20:17,170 ¿Cuál es el nombre de esta función basada en esta sintaxis? 451 00:20:17,170 --> 00:20:19,784 No, quiero decir, no hay claridad sin nombre associated-- duda 452 00:20:19,784 --> 00:20:21,200 no en lo que yo he destacado aquí. 453 00:20:21,200 --> 00:20:22,560 >> Pero eso es en realidad en Aceptar. 454 00:20:22,560 --> 00:20:25,840 Esta es una función anónima, o una función lambda como algunos podrían llamarlo. 455 00:20:25,840 --> 00:20:27,589 Y eso sólo significa sigue siendo una función. 456 00:20:27,589 --> 00:20:29,400 Es sólo que, no se puede llamar por su nombre. 457 00:20:29,400 --> 00:20:30,057 Pero eso está bien. 458 00:20:30,057 --> 00:20:33,140 Porque de nuevo, el navegador ha sido preprogramada por empresas como Google 459 00:20:33,140 --> 00:20:38,540 o Microsoft o Mozilla u otras personas a sólo sé que si el campo .onsubmit 460 00:20:38,540 --> 00:20:43,400 dentro de un elemento de formulario tiene el valor, lo tratan como un function-- 461 00:20:43,400 --> 00:20:44,750 un puntero a función, si se quiere. 462 00:20:44,750 --> 00:20:46,910 Y llamarlo cuando se envía el formulario. 463 00:20:46,910 --> 00:20:50,350 >> Entonces, ¿qué código debe ser ejecutado cuando se envía el formulario? 464 00:20:50,350 --> 00:20:52,526 Al parecer, todo dentro del corchete. 465 00:20:52,526 --> 00:20:53,650 Y esto es sólo estilística. 466 00:20:53,650 --> 00:20:55,626 >> Usted podría hacer esto como tendemos a hacer en CS50. 467 00:20:55,626 --> 00:20:58,250 Pero en JavaScript, la mayoría de personas tienden a mantenerlo en la misma línea 468 00:20:58,250 --> 00:21:01,960 sólo porque es más claramente es asociada con la función de palabras clave. 469 00:21:01,960 --> 00:21:03,240 Así que ahora lo que estoy haciendo? 470 00:21:03,240 --> 00:21:08,616 >> Si es igual a los iguales form.email.value la cadena vacía o nada, aquí está 471 00:21:08,616 --> 00:21:11,490 una alerta en la que voy a decir, usted debe proporcionar su dirección de correo electrónico, 472 00:21:11,490 --> 00:21:12,690 y luego regresar falsa. 473 00:21:12,690 --> 00:21:15,720 Y es que la falsa retorno que impide que la forma de ser presentado. 474 00:21:15,720 --> 00:21:19,480 Mientras tanto, si el valor de la contraseña es en blanco, voy a gritar en el usuario 475 00:21:19,480 --> 00:21:21,150 y decir, debe proporcionar una contraseña. 476 00:21:21,150 --> 00:21:23,700 >> Mientras tanto, las cosas son cada vez un poco más de lujo aquí. 477 00:21:23,700 --> 00:21:29,160 Si no lo hace form.password.value igual form.confirmation.value, 478 00:21:29,160 --> 00:21:31,680 el otro campo, gritarle a el usuario que las contraseñas 479 00:21:31,680 --> 00:21:33,860 no coinciden ya que no lo hizo hace un momento. 480 00:21:33,860 --> 00:21:35,780 Y entonces éste es un poco más sexy porque 481 00:21:35,780 --> 00:21:40,470 Sé que sabía que conceptualmente comprobado es el nombre de una caja de cheque. 482 00:21:40,470 --> 00:21:45,680 >> Así que sólo puedo utilizar una exclamación punto de decir si el cheque no es 483 00:21:45,680 --> 00:21:48,040 checked-- es la booleana valor, verdadero o false-- 484 00:21:48,040 --> 00:21:49,700 Voy a gritar al usuario por este motivo. 485 00:21:49,700 --> 00:21:52,300 De lo contrario, si conseguimos a través de todas estas condiciones, 486 00:21:52,300 --> 00:21:53,270 vamos a volver realidad. 487 00:21:53,270 --> 00:21:54,700 Deje que se envía el formulario. 488 00:21:54,700 --> 00:21:56,560 Y esto va a ocurrir a continuación. 489 00:21:56,560 --> 00:21:57,740 >> Vamos a escribir en carmesí. 490 00:21:57,740 --> 00:22:00,230 Vamos cheque de la caja de texto, haga clic en Registro. 491 00:22:00,230 --> 00:22:01,979 Y ahora me voy hasta el destino. 492 00:22:01,979 --> 00:22:03,270 Ahora, no hay ninguna base de datos allí. 493 00:22:03,270 --> 00:22:05,370 No hay nada interesante en register.php. 494 00:22:05,370 --> 00:22:07,980 Sólo necesitaba algo que hablar con. 495 00:22:07,980 --> 00:22:09,140 Así que permítanme hacer una pausa, aquí. 496 00:22:09,140 --> 00:22:16,270 Para cualquier duda sobre lo que acabamos de hacer o lo que algunos de esta nueva sintaxis es? 497 00:22:16,270 --> 00:22:17,640 Aceptar, sí? 498 00:22:17,640 --> 00:22:20,025 >> AUDIENCIA: Así que cualquier casilla es automáticamente un booleano. 499 00:22:20,025 --> 00:22:21,650 Usted no tiene que declararlo así. 500 00:22:21,650 --> 00:22:22,649 >> DAVID J. MALAN: Correcto. 501 00:22:22,649 --> 00:22:29,340 Cualquier casilla de verificación que se envía a usted de un formulario HTML con el código JavaScript 502 00:22:29,340 --> 00:22:31,760 serán tratados, sí, como una Boole value-- verdadero o falso. 503 00:22:31,760 --> 00:22:32,635 Es una buena pregunta. 504 00:22:32,635 --> 00:22:36,080 Considerando que los otros valores, de Por supuesto, han sido el texto, cadenas AKA. 505 00:22:36,080 --> 00:22:38,500 >> Muy bien, así que me dejó rebobinar un poco más lejos. 506 00:22:38,500 --> 00:22:39,900 ¿Cuál era el punto entero de esto? 507 00:22:39,900 --> 00:22:41,400 Para que quede claro. 508 00:22:41,400 --> 00:22:44,940 Al igual, que ya sabemos, incluso desde Pset7 e incluso de la conferencia de la semana pasada 509 00:22:44,940 --> 00:22:51,120 ejemplos, que, obviamente, podemos comprobar $ _GET $ _POST Ver si el usuario nos dan 510 00:22:51,120 --> 00:22:52,200 un valor vacío. 511 00:22:52,200 --> 00:22:54,400 Recuerde que la función de vacío en PHP. 512 00:22:54,400 --> 00:22:58,040 >> Así que para ser claros, lo que es una razón por la que también podría 513 00:22:58,040 --> 00:23:00,535 querer hacer este chequeo de errores dentro del navegador? 514 00:23:00,535 --> 00:23:03,350 515 00:23:03,350 --> 00:23:06,080 ¿Cuál es la motivación aquí? 516 00:23:06,080 --> 00:23:06,580 Sí. 517 00:23:06,580 --> 00:23:09,735 >> AUDIENCIA: más rápido, y no lo hace enviar datos inútiles para el servidor. 518 00:23:09,735 --> 00:23:10,610 DAVID J. MALAN: Good. 519 00:23:10,610 --> 00:23:11,170 Es más rápido. 520 00:23:11,170 --> 00:23:12,920 Usted no envía inútil datos al servidor. 521 00:23:12,920 --> 00:23:14,670 >> Para que pueda obtener de nuevo una más respuesta inmediata. 522 00:23:14,670 --> 00:23:16,560 Y, en general, el usuario experiencia es mejor. 523 00:23:16,560 --> 00:23:17,900 Piense en la alternativa. 524 00:23:17,900 --> 00:23:21,160 >> Si por Gmail-- y estaba el caso hace muchos años. 525 00:23:21,160 --> 00:23:24,160 Supongamos que usted tiene un nuevo correo electrónico de Gmail cuenta, pero la única manera a través 526 00:23:24,160 --> 00:23:26,510 a ver que es, al igual que, recargar toda la página. 527 00:23:26,510 --> 00:23:29,030 O supongamos que haga clic en un enlace para leer un correo electrónico. 528 00:23:29,030 --> 00:23:31,600 >> Todo tiene que recargar tan que se puede ver la dirección de correo electrónico. 529 00:23:31,600 --> 00:23:33,380 O Facebook-- se obtiene un mensaje de chat. 530 00:23:33,380 --> 00:23:36,000 Usted no lo ve hasta que se vuelva a cargar la página o haga clic en algún enlace. 531 00:23:36,000 --> 00:23:38,380 >> Al igual, esto sería una muy experiencia del usuario molesto. 532 00:23:38,380 --> 00:23:41,300 Y esto es lo que era, claramente, la espalda cuando me postulé para la UC 533 00:23:41,300 --> 00:23:44,760 y la banda era mucho menos dinámico y JavaScript no era tan popularizado 534 00:23:44,760 --> 00:23:45,601 como lo es ahora. 535 00:23:45,601 --> 00:23:47,850 Y las cosas están mucho más dinámico y mucho más 536 00:23:47,850 --> 00:23:49,900 lado del cliente en ese sentido. 537 00:23:49,900 --> 00:23:54,370 >> Pero hay una trampa aquí, y esta es una especie de Gotcha molesto. 538 00:23:54,370 --> 00:23:58,720 El hecho de que se agrega en el cliente detección como esto no significa 539 00:23:58,720 --> 00:24:01,430 puede o debe abandonar detección del lado del servidor. 540 00:24:01,430 --> 00:24:04,080 Usted esencialmente quiere poner su error comprobando en ambos lugares. 541 00:24:04,080 --> 00:24:05,830 Porque lo que fue uno de la lección aprendida 542 00:24:05,830 --> 00:24:10,270 del artículo que leí algunos extractos de con este estúpido system-- CMS 543 00:24:10,270 --> 00:24:14,410 Content Management System-- que era la implementación de su sistema de autenticación, 544 00:24:14,410 --> 00:24:16,790 su entrada a través de qué mecanismo? 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 >> AUDIENCIA: JavaScript. 548 00:24:21,499 --> 00:24:23,290 DAVID J. MALAN: JavaScript, exactamente, ¿verdad? 549 00:24:23,290 --> 00:24:24,610 Se estaba usando JavaScript. 550 00:24:24,610 --> 00:24:27,120 Y, literalmente, ustedes tienen jugado un poco, probablemente, 551 00:24:27,120 --> 00:24:28,700 con el inspector de Chrome. 552 00:24:28,700 --> 00:24:30,890 Y si me lo encuentro, inspeccionar elemento. 553 00:24:30,890 --> 00:24:33,670 >> Déjame ir a hacer todas las opciones de Chrome. 554 00:24:33,670 --> 00:24:37,080 Y esto es lo fácil que es desactivar JavaScript en un navegador. 555 00:24:37,080 --> 00:24:38,950 Compruebe, no más de JavaScript. 556 00:24:38,950 --> 00:24:41,070 >> Así que para ser justos, muchos de la web en estos días 557 00:24:41,070 --> 00:24:43,430 sólo va a romper, porque Gmail y otra sites-- 558 00:24:43,430 --> 00:24:46,140 Facebook-- asumir que JavaScript está habilitado. 559 00:24:46,140 --> 00:24:50,180 Pero si usted está haciendo algo estúpido como sólo la validación de entrada de los usuarios 560 00:24:50,180 --> 00:24:52,520 y comprueba si existe errores en el lado del cliente, 561 00:24:52,520 --> 00:24:54,940 un adversario podría fácilmente hacer esto. 562 00:24:54,940 --> 00:24:57,180 Y luego aún más inteligente adversario como ustedes 563 00:24:57,180 --> 00:25:01,120 ahora podría utilizar Telnet o Curl o comandos de línea de comandos sólo 564 00:25:01,120 --> 00:25:05,300 y en realidad enviar mensajes al servidor que de igual forma no exentos de errores facturado. 565 00:25:05,300 --> 00:25:08,380 >> Así que esto es más de un decisión interfaz de usuario 566 00:25:08,380 --> 00:25:13,060 de lo que es una técnica real improvement-- implementación 567 00:25:13,060 --> 00:25:14,410 lado cliente algo como esto. 568 00:25:14,410 --> 00:25:16,800 Así que ahora una rápida mirada, pero luego Te remito a la caminata en línea 569 00:25:16,800 --> 00:25:17,674 a través de éste. 570 00:25:17,674 --> 00:25:21,480 En forma de dos, de hecho fuimos a través de y limpiar el código un poco. 571 00:25:21,480 --> 00:25:23,650 Pero permítanme remito a uno de los videos probable que vamos a 572 00:25:23,650 --> 00:25:27,970 Insertar en Pset8 que sólo muestra una sintaxis similar usando una biblioteca llamada 573 00:25:27,970 --> 00:25:32,320 jQuery, que es un super, super biblioteca popular en JavaScript 574 00:25:32,320 --> 00:25:34,510 que francamente la mayoría de la gente sólo tiene que utilizar en estos días 575 00:25:34,510 --> 00:25:37,070 e incluso confundir como propio bienestar JavaScript. 576 00:25:37,070 --> 00:25:38,950 >> Y tiende a involucrar algunos signos de dólar 577 00:25:38,950 --> 00:25:41,350 y palabras clave como documento en paréntesis aquí. 578 00:25:41,350 --> 00:25:44,480 Pero, de nuevo, déjame remito a algunos tutoriales más lentas en línea 579 00:25:44,480 --> 00:25:46,750 en lugar de verse obligados a realizar sólo la sintaxis. 580 00:25:46,750 --> 00:25:48,630 Vamos a pasar a algo un poco más fresco 581 00:25:48,630 --> 00:25:50,520 en cuanto a las aplicaciones de este. 582 00:25:50,520 --> 00:25:57,730 >> Así, en particular, que me deje ir por delante y abrir esta aquí. 583 00:25:57,730 --> 00:25:58,340 Venga. 584 00:25:58,340 --> 00:25:59,380 Hay que ir. 585 00:25:59,380 --> 00:26:01,500 >> Permítanme abrir este cuadro aquí. 586 00:26:01,500 --> 00:26:03,450 Innecesariamente complicado mirando, pero 587 00:26:03,450 --> 00:26:07,880 describe una técnica llamada AJAX-- Asynchronous JavaScript y XML, donde 588 00:26:07,880 --> 00:26:10,530 X para el XML es en realidad ya no se utiliza realmente. 589 00:26:10,530 --> 00:26:13,430 Tiende a usar algo otro llamado JSON. 590 00:26:13,430 --> 00:26:16,560 >> Pero aquí es cómo algo así como Google Maps o Google Earth funciona. 591 00:26:16,560 --> 00:26:18,060 Vamos a probar esto sobre la marcha, en realidad. 592 00:26:18,060 --> 00:26:21,590 Déjame ir por delante y abro Chrome en mi navegador. 593 00:26:21,590 --> 00:26:26,236 >> Y déjame ir en, decir, maps.google.com. 594 00:26:26,236 --> 00:26:29,260 595 00:26:29,260 --> 00:26:31,930 Y, de hecho, si usted es viejo Basta recordar lo que, 596 00:26:31,930 --> 00:26:35,600 como, MapQuest era como volver en el día, y tal vez todavía funcionan así. 597 00:26:35,600 --> 00:26:38,870 Cuando te acostumbras a buscar algo-- 33 Oxford Street, Cambridge, Massachusetts, 598 00:26:38,870 --> 00:26:40,650 vamos a hacer esto-- usted haría realidad, si usted 599 00:26:40,650 --> 00:26:43,000 quería a la sartén y abajo, izquierda y derecha, 600 00:26:43,000 --> 00:26:44,920 que se vería como un gran flecha en la parte superior, y 601 00:26:44,920 --> 00:26:46,921 se le mostrará otro marco del mapa aquí. 602 00:26:46,921 --> 00:26:49,753 ¿O tendría que hacer clic a la izquierda y usted iría por aquí, o otro clic 603 00:26:49,753 --> 00:26:51,000 y va a ir por aquí. 604 00:26:51,000 --> 00:26:53,000 Pero en vez éstos días, por supuesto, sólo 605 00:26:53,000 --> 00:26:55,970 dan por sentado que podemos ir alrededor de Cambridge con bastante rapidez 606 00:26:55,970 --> 00:26:57,550 simplemente haciendo clic y arrastrando. 607 00:26:57,550 --> 00:26:59,130 Pero Tenga en cuenta que hay algunos problemas técnicos. 608 00:26:59,130 --> 00:27:02,160 >> Si hago esto lo suficientemente rápido, lo que parece estar sucediendo 609 00:27:02,160 --> 00:27:05,960 como arrastro un poco demasiado rápido para el equipo para mantenerse al día? 610 00:27:05,960 --> 00:27:07,160 ¿Qué es lo que ves? 611 00:27:07,160 --> 00:27:07,660 Sí. 612 00:27:07,660 --> 00:27:09,232 >> AUDIENCIA: Los píxeles no se actualizan. 613 00:27:09,232 --> 00:27:10,940 DAVID J. MALAN: La píxeles no se actualizan. 614 00:27:10,940 --> 00:27:12,870 Hay actually-- y usted podría ver esto, en realidad, 615 00:27:12,870 --> 00:27:15,360 si estás viendo en línea y pausa este o en realidad ralentiza las cosas 616 00:27:15,360 --> 00:27:18,600 para vez-- verás que hay azulejos, cuadrados, o rectángulos que 617 00:27:18,600 --> 00:27:22,040 faltan en el mapa hasta una fracción de segundo más tarde, más datos, 618 00:27:22,040 --> 00:27:24,390 más imágenes de realidad aparecerá en la pantalla. 619 00:27:24,390 --> 00:27:29,810 Y de hecho, si hacemos esto mirando hasta Chrome's-- digamos, Chrome-- 620 00:27:29,810 --> 00:27:30,310 vamos a ver. 621 00:27:30,310 --> 00:27:31,090 No podemos hacer eso. 622 00:27:31,090 --> 00:27:31,860 >> Oh, gritos. 623 00:27:31,860 --> 00:27:34,761 Vamos a abrir maps.google.com. 624 00:27:34,761 --> 00:27:36,660 Permítanme hacer la ventana más grande de nuevo. 625 00:27:36,660 --> 00:27:38,836 >> Volver a los 33 Oxford Street. 626 00:27:38,836 --> 00:27:42,010 627 00:27:42,010 --> 00:27:43,760 ¿Cuál fue el sitio web estaba en recientemente? 628 00:27:43,760 --> 00:27:46,440 Tuve esta, como, diatriba privado a a mí mismo que yo había mensaje instantáneo a continuación 629 00:27:46,440 --> 00:27:48,470 cualquier amigo que estaba en línea quien quería oírlo. 630 00:27:48,470 --> 00:27:49,345 Hay un poco de sitio web. 631 00:27:49,345 --> 00:27:52,680 Creo que es tan Comcast-- un ISP americano muy grande. 632 00:27:52,680 --> 00:27:56,355 Puede, al registrarse en nuevo cable servicio de módem o el servicio de TV por cable, 633 00:27:56,355 --> 00:27:59,230 que tienen una forma muy razonable donde se le preguntará su dirección. 634 00:27:59,230 --> 00:28:01,450 Y tener esta increíble característica llamada completa de automóviles, 635 00:28:01,450 --> 00:28:04,600 como Google, que comienza a llenar en la respuesta a su pregunta. 636 00:28:04,600 --> 00:28:08,090 >> El problema es, que hacen de autocompletado sobre las primeras cosas que usted escribe. 637 00:28:08,090 --> 00:28:12,890 Así que si usted comienza a escribir en el 33, que le mostrará literalmente cada casa 638 00:28:12,890 --> 00:28:15,790 en Estados Unidos que comienza con el número 33 639 00:28:15,790 --> 00:28:17,920 antes de continuar esperas que escriba más. 640 00:28:17,920 --> 00:28:20,660 Así que si escribe 33 Oxford, a continuación te muestra todas las calles 641 00:28:20,660 --> 00:28:24,726 en Estados Unidos que tiene 33 en Oxford su nombre, con independencia de la ciudad 642 00:28:24,726 --> 00:28:25,350 que usted está en. 643 00:28:25,350 --> 00:28:26,320 >> Y luego continúa escribiendo. 644 00:28:26,320 --> 00:28:28,930 Y, por último, se da cuenta de que no lo hacen oferta de servicio a su casa en Cambridge 645 00:28:28,930 --> 00:28:29,920 o algo por el estilo. 646 00:28:29,920 --> 00:28:33,410 Pero el punto es, esta es la más aplicación asnal de auto 647 00:28:33,410 --> 00:28:34,140 completar nunca. 648 00:28:34,140 --> 00:28:36,400 >> Y yo sólo voy fuera en esta tangente de nuevo. 649 00:28:36,400 --> 00:28:39,040 Pero hay buenas maneras a utilizar JavaScript y malas maneras. 650 00:28:39,040 --> 00:28:40,750 Y eso no es necesariamente la mejor. 651 00:28:40,750 --> 00:28:46,360 >> Pero el punto aquí, antes de que esta diatriba, fue a abrir las herramientas aquí 652 00:28:46,360 --> 00:28:49,480 y abrir las herramientas de desarrollo, como hemos alentados antes, 653 00:28:49,480 --> 00:28:52,840 y para ver la Red ficha como hago clic muy rápido. 654 00:28:52,840 --> 00:28:55,400 Y notar un montón de obtener solicitudes sucedieron. 655 00:28:55,400 --> 00:28:57,310 Todo esto sucedió desde que me arrastré. 656 00:28:57,310 --> 00:29:00,170 >> Y lo más probable, de hecho, una gran cantidad de estas filas 657 00:29:00,170 --> 00:29:04,060 ahora son la imagen de roza JPEG Tipos MIME o tipos de contenido. 658 00:29:04,060 --> 00:29:07,750 Esto se debe a lo que está haciendo cromo cada vez que haga clic y arrastre, haga clic en 659 00:29:07,750 --> 00:29:11,650 y arrastre, es Es darse cuenta, oh, que ir pedir a Google para el azulejo 660 00:29:11,650 --> 00:29:15,080 en el mapa que ha terminado aquí, descargar rápidamente a través de HTTP, 661 00:29:15,080 --> 00:29:19,550 y luego añadirlo a la llamada DOM a los navegadores web en el árbol de memoria 662 00:29:19,550 --> 00:29:24,430 la representación de manera que el usuario, mí, ve que azulejo actualizado. 663 00:29:24,430 --> 00:29:26,795 Y esto se debe a una técnica llamada AJAX. 664 00:29:26,795 --> 00:29:28,920 De vuelta en el día, lo que realmente era el caso de que si 665 00:29:28,920 --> 00:29:33,050 quería cambiar lo que está en la pantalla, usted tendría que hacer clic arriba, abajo, izquierda, 666 00:29:33,050 --> 00:29:33,550 derecha. 667 00:29:33,550 --> 00:29:34,740 Y a continuación, una nueva página se abriría. 668 00:29:34,740 --> 00:29:36,531 Pero en estos días, todo es más dinámico. 669 00:29:36,531 --> 00:29:40,490 Sucede en la forma en que los seres humanos lo haría espero que realmente lo haría de forma interactiva. 670 00:29:40,490 --> 00:29:43,210 Y lo consigue mediante la medio de una técnica llamada 671 00:29:43,210 --> 00:29:46,170 AJAX, que es quizás el más explicado con un ejemplo. 672 00:29:46,170 --> 00:29:49,730 En primer lugar, déjame ir por delante y abrir un archivo 673 00:29:49,730 --> 00:29:53,540 llamado quote.php en código de distribución de hoy. 674 00:29:53,540 --> 00:29:56,200 >> Y entonces déjame hacer gritos symbol--. 675 00:29:56,200 --> 00:30:02,399 Déjame hacer símbolo = GOOG por sólo un poco de caldo. 676 00:30:02,399 --> 00:30:04,440 O en realidad, vamos a hacer la una del juego de parámetros GRATIS. 677 00:30:04,440 --> 00:30:05,270 Intro. 678 00:30:05,270 --> 00:30:06,580 >> Y ahora noto lo que yo vuelva. 679 00:30:06,580 --> 00:30:09,210 Así que esto es realmente un archivo PHP corto que yo 680 00:30:09,210 --> 00:30:13,210 escribió que simplemente toma prestado código de la función de búsqueda de Pset7 681 00:30:13,210 --> 00:30:17,830 y escupe el uso de esta llave de y citas y notación de colon, al parecer, 682 00:30:17,830 --> 00:30:22,747 precio de la acción actual de la empresa que se pasa en medio de get. 683 00:30:22,747 --> 00:30:24,580 Así que esto es diferente de la mayor parte de lo que hemos 684 00:30:24,580 --> 00:30:26,496 hecho en esa nota de que soy literalmente escupiendo 685 00:30:26,496 --> 00:30:27,870 lo que parece ser el código JavaScript. 686 00:30:27,870 --> 00:30:30,020 >> De hecho, este es un objeto de JavaScript. 687 00:30:30,020 --> 00:30:34,130 De hecho, sólo para ser más claro, JavaScript Object Notation-- JSON-- 688 00:30:34,130 --> 00:30:38,330 es sólo una forma elegante de decir que pueden representar datos en JavaScript mucho 689 00:30:38,330 --> 00:30:41,660 como se hace en PHP utilizando pares de valores clave. 690 00:30:41,660 --> 00:30:44,270 Así que si quería declarar una variable en JavaScript 691 00:30:44,270 --> 00:30:47,872 a representa Zamyla, por instance-- una estructura para Zamyla-- 692 00:30:47,872 --> 00:30:49,580 y lo vamos a llamar estudiante, esta variable. 693 00:30:49,580 --> 00:30:53,060 Su identificación es uno, la casa está Winthrop, y el nombre es Zamyla. 694 00:30:53,060 --> 00:30:55,490 >> Pero también puedo tener una matriz de objetos. 695 00:30:55,490 --> 00:30:58,710 Así que si yo realmente quería tener un array en JavaScript que contiene 696 00:30:58,710 --> 00:31:01,740 múltiples tales objetos, esta tiempo que representa al personal, 697 00:31:01,740 --> 00:31:04,910 Yo podría tener estos tres trozos de código de espalda 698 00:31:04,910 --> 00:31:08,560 de nuevo a la espalda de éstos tres ex funcionarios. 699 00:31:08,560 --> 00:31:12,201 Así que la sintaxis, bastante similar a ambos-- a PHP. 700 00:31:12,201 --> 00:31:13,700 Pero esto es particularmente JavaScript. 701 00:31:13,700 --> 00:31:15,940 Es notación objeto. 702 00:31:15,940 --> 00:31:17,240 Entonces, ¿qué es esto útil para? 703 00:31:17,240 --> 00:31:21,580 >> Si escribo código que escupe hacia fuera JSON-- JavaScript Object Notation-- cosas que 704 00:31:21,580 --> 00:31:24,670 se parece a esto o cosas que se parece a la estructura de Zamyla, 705 00:31:24,670 --> 00:31:27,730 De hecho, me puedo usar esta en los programas que escribo. 706 00:31:27,730 --> 00:31:30,660 Déjame ir a ajax0.html. 707 00:31:30,660 --> 00:31:33,310 Y esto también-- no mucho pensamiento dado a la estética. 708 00:31:33,310 --> 00:31:34,660 Pero observen lo que sucede. 709 00:31:34,660 --> 00:31:37,050 >> Déjame ir adelante y escribo gratis aquí. 710 00:31:37,050 --> 00:31:38,490 Haga clic en Obtener cotización. 711 00:31:38,490 --> 00:31:41,060 Y note la URL no ha cambiado. 712 00:31:41,060 --> 00:31:47,250 Pero me hizo llegar un pop-up con aparentemente de hoy centavo precio de la acción de US $ 0,15. 713 00:31:47,250 --> 00:31:49,062 Así que no todo es tan malo. 714 00:31:49,062 --> 00:31:52,020 Pero la diferencia es que de alguna manera, estos datos volvió a mí directamente. 715 00:31:52,020 --> 00:31:54,250 Pero vamos a dar un paso hacia algo más familiar. 716 00:31:54,250 --> 00:31:58,900 En la versión uno de esto, permítanme escriba libre de nuevo, haga clic en Obtener presupuesto, 717 00:31:58,900 --> 00:32:01,146 y ahora-- oh, esto era en realidad la versión de jQuery. 718 00:32:01,146 --> 00:32:03,270 Así que no lo hice me-- avance rápido bastante lo suficientemente lejos. 719 00:32:03,270 --> 00:32:05,830 Déjame ir a la versión dos, que es donde yo quería. 720 00:32:05,830 --> 00:32:07,260 Note lo que he hecho aquí. 721 00:32:07,260 --> 00:32:10,370 Tengo una web page-- un super versión simple de cualquier página web 722 00:32:10,370 --> 00:32:14,260 usted puede utilizar hoy en día con un campo de texto aquí de forma gratuita y luego al parecer sólo 723 00:32:14,260 --> 00:32:14,880 texto. 724 00:32:14,880 --> 00:32:16,860 >> Esto no es una forma aquí, aparentemente. 725 00:32:16,860 --> 00:32:19,360 Pero si hago clic obtengo presupuesto, cuenta de mi página web 726 00:32:19,360 --> 00:32:22,760 está a punto de cambiar, como si yo acaba de recibir un nuevo mensaje instantáneo 727 00:32:22,760 --> 00:32:25,360 o como si me acabo de mudar la el mapa y la necesaria para obtener más datos 728 00:32:25,360 --> 00:32:29,220 añadido de forma dinámica a la página web sin el cambio de URL y el usuario 729 00:32:29,220 --> 00:32:30,980 experiencia siendo interrumpido. 730 00:32:30,980 --> 00:32:35,750 De hecho, todavía estoy en el exactamente el mismo ajax2.html lugar--. 731 00:32:35,750 --> 00:32:39,080 >> Así que vamos a ver sólo en este ejemplo y ver cómo esto está sucediendo. 732 00:32:39,080 --> 00:32:42,490 Déjame ir a ajax2.html. 733 00:32:42,490 --> 00:32:44,770 Y note la forma en primer lugar. 734 00:32:44,770 --> 00:32:47,092 >> Aquí abajo, me estoy convirtiendo fuera de autocompletado. 735 00:32:47,092 --> 00:32:48,800 A veces se pone molesto si el navegador 736 00:32:48,800 --> 00:32:50,508 está tratando de mostrar toda su historia. 737 00:32:50,508 --> 00:32:53,450 Así que usted puede hacerlo en HTML sólo decir autocompletado apagado. 738 00:32:53,450 --> 00:32:57,290 >> He dado este campo de texto un symbol-- más bien, un ID de símbolo. 739 00:32:57,290 --> 00:32:58,977 Y ahora, esta es una característica interesante. 740 00:32:58,977 --> 00:33:01,310 No hemos hablado acerca de lapso, pero se puede pensar en ello 741 00:33:01,310 --> 00:33:03,177 como una etiqueta de párrafo o etiqueta div. 742 00:33:03,177 --> 00:33:05,010 Es lo que se llama un elemento en línea, que 743 00:33:05,010 --> 00:33:07,415 significa que no obtendrá un párrafo romper por encima y por debajo de ella. 744 00:33:07,415 --> 00:33:11,530 Es sólo va a permanecer en línea sin golpear el equivalente a entrar. 745 00:33:11,530 --> 00:33:17,980 Así que me he dado a este trozo de HTML debe determinarse un identificador único 746 00:33:17,980 --> 00:33:20,130 que arbitrariamente llamé precio. 747 00:33:20,130 --> 00:33:21,560 Y tengo un botón Enviar. 748 00:33:21,560 --> 00:33:25,420 >> Porque ahora hasta aquí-- y esto es realmente súper increíble lo poco código 749 00:33:25,420 --> 00:33:27,660 usted puede escribir que hacer relativamente limpio cosas-- 750 00:33:27,660 --> 00:33:31,800 darse cuenta de lo que he hecho hasta aquí si desplácese hasta la cabeza de esta página. 751 00:33:31,800 --> 00:33:34,970 He incluido por primera vez en mi cabeza una etiqueta de script 752 00:33:34,970 --> 00:33:37,410 que hace referencia a una realidad Archivo JavaScript en otras partes. 753 00:33:37,410 --> 00:33:39,702 Esto es de la organización que escribe jQuery, 754 00:33:39,702 --> 00:33:42,660 Y esto es sólo que le da la última versión de su librería jQuery. 755 00:33:42,660 --> 00:33:46,305 >> Así que esto es algo así como agudo incluir en C o requerir en PHP. 756 00:33:46,305 --> 00:33:48,900 Se utiliza la etiqueta script con un atributo de origen. 757 00:33:48,900 --> 00:33:52,030 Pero ahora mi propio código es va a estar bien aquí. 758 00:33:52,030 --> 00:33:54,170 >> Note que tengo una función llamada Cotizaciones. 759 00:33:54,170 --> 00:33:56,180 Y parece un poco críptica a primera vista. 760 00:33:56,180 --> 00:33:57,305 Pero vamos a burlan de esta separación. 761 00:33:57,305 --> 00:33:59,090 Dame una variable llamada URL. 762 00:33:59,090 --> 00:34:01,390 Asignar literalmente esta cadena. 763 00:34:01,390 --> 00:34:04,530 Así, citas individuales, dobles comillas en JavaScript sólo me da una cadena. 764 00:34:04,530 --> 00:34:06,900 ¿Qué hace el plus? 765 00:34:06,900 --> 00:34:08,199 La concatenación. 766 00:34:08,199 --> 00:34:12,610 >> Así que esto ahora es la sintaxis de jQuery que toma un poco de tiempo para acostumbrarse. 767 00:34:12,610 --> 00:34:18,310 Pero esto sólo significa ir a buscarme el DOM nodo cuyo identificador único es símbolo. 768 00:34:18,310 --> 00:34:21,929 El hashtag no significa símbolo identificador único. 769 00:34:21,929 --> 00:34:24,929 >> El signo de dólar en el Los paréntesis sólo significa, terminar con esto 770 00:34:24,929 --> 00:34:28,510 jQuery en una especie de salsa secreta de modo usted consigue una funcionalidad adicional. 771 00:34:28,510 --> 00:34:31,880 Y luego .val es aparentemente una función, o como se dice ahora, 772 00:34:31,880 --> 00:34:35,219 un método en el interior de este nodo que sólo le da el valor. 773 00:34:35,219 --> 00:34:38,896 Así que en resumen, feo y confuso ya que esto se ve a primera vista, 774 00:34:38,896 --> 00:34:42,020 esto sólo significa llegar con el usuario escribió en, lo puso al final de la cadena 775 00:34:42,020 --> 00:34:42,880 mediante la concatenación de ella. 776 00:34:42,880 --> 00:34:43,739 Eso es todo. 777 00:34:43,739 --> 00:34:46,070 >> Así que ahora, tres últimas líneas. 778 00:34:46,070 --> 00:34:48,690 Usted puede exprimir una gran cantidad de funcionalidad de cada tres líneas. 779 00:34:48,690 --> 00:34:52,199 Este signo de dólar, como una a un lado, es sólo un apodo 780 00:34:52,199 --> 00:34:55,800 para una variable global especial llamado literalmente jQuery. 781 00:34:55,800 --> 00:34:57,060 >> Signo de dólar sólo se ve bien. 782 00:34:57,060 --> 00:35:00,080 Así que la comunidad jQuery sólo tipo de lo usó como su símbolo especial. 783 00:35:00,080 --> 00:35:02,470 No significa lo que significa en PHP. 784 00:35:02,470 --> 00:35:06,356 En JavaScript, muestra de dólar es al igual que una letra del alfabeto 785 00:35:06,356 --> 00:35:07,480 o un número para una variable. 786 00:35:07,480 --> 00:35:09,000 >> Usted sólo puede tener como el nombre. 787 00:35:09,000 --> 00:35:09,770 Sólo se ve bien. 788 00:35:09,770 --> 00:35:11,890 Así la comunidad adoptado como un apodo 789 00:35:11,890 --> 00:35:13,390 por su propia biblioteca llamada jQuery. 790 00:35:13,390 --> 00:35:15,060 >> Y es súper popular. 791 00:35:15,060 --> 00:35:17,620 Así que conseguir JSON es exactamente eso. 792 00:35:17,620 --> 00:35:19,920 Es una función que la gente de jQuery escribieron 793 00:35:19,920 --> 00:35:23,340 que sufre es JSON de un server-- JavaScript Object Notation. 794 00:35:23,340 --> 00:35:25,680 Por lo que el URL es que va para obtener esa información? 795 00:35:25,680 --> 00:35:27,790 Al parecer, desde este URL aquí. 796 00:35:27,790 --> 00:35:31,180 >> ¿Y qué debe hacer el navegador como pronto como se pone de nuevo esta respuesta? 797 00:35:31,180 --> 00:35:36,500 Y esta es la magia de AJAX, por lo que speak-- Asynchronous JavaScript en XML. 798 00:35:36,500 --> 00:35:41,320 Es difícil ver con tal ejemplo sencillo, ya que teníamos aquí. 799 00:35:41,320 --> 00:35:44,730 >> Pero esto fue asincrónica en el sentido de que mi código cuando 800 00:35:44,730 --> 00:35:48,530 ejecutado enviado un mensaje al servidor para ir a buscarme un poco de JSON. 801 00:35:48,530 --> 00:35:51,340 Y sucedió muy rápido que me dieron una respuesta. 802 00:35:51,340 --> 00:35:55,130 Pero lo que es interesante es que este línea de código no cuelgue mi equipo. 803 00:35:55,130 --> 00:35:56,550 >> Yo no veo un icono de la hilatura. 804 00:35:56,550 --> 00:35:59,200 No perdí el capacidad de mover el ratón. 805 00:35:59,200 --> 00:36:01,340 Mi navegador realidad era perfectamente bien. 806 00:36:01,340 --> 00:36:06,290 >> Debido a la manera maneja el JavaScript respuesta del servidor es como sigue. 807 00:36:06,290 --> 00:36:09,740 Usted se registra lo que se dice una función de devolución de llamada, que 808 00:36:09,740 --> 00:36:12,830 sólo significa, bueno, JavaScript. 809 00:36:12,830 --> 00:36:16,100 Tan pronto como el servidor responde con JSON, 810 00:36:16,100 --> 00:36:18,750 por favor llamar a esta función anónima. 811 00:36:18,750 --> 00:36:23,910 >> Y por favor, pasó a esta función cualquiera que sea la cadena de servidor escupir 812 00:36:23,910 --> 00:36:26,080 como un argumento llamado datos. 813 00:36:26,080 --> 00:36:28,360 En otras, palabras, si Estoy ensamblar dinámicamente 814 00:36:28,360 --> 00:36:33,370 quote.php un URL que pasa en este símbolo como GRATIS o GOOG o lo que sea, 815 00:36:33,370 --> 00:36:36,830 Entonces yo digo JavaScript ir a buscar esa URL. 816 00:36:36,830 --> 00:36:39,080 Recuerde que el navegador va a devolver algo 817 00:36:39,080 --> 00:36:42,680 que se ve como vimos antes les hablé de esto. 818 00:36:42,680 --> 00:36:45,940 >> Y lo que el segundo argumento aquí para conseguir JSON está diciendo 819 00:36:45,940 --> 00:36:48,450 se llame a esta función cuando el servidor vuelva 820 00:36:48,450 --> 00:36:52,440 si se trata de 10 milisegundos a partir de ahora ó 10 segundos a partir de ahora. 821 00:36:52,440 --> 00:36:55,840 Y tan pronto como usted lo hace, agregar el precio a la página. 822 00:36:55,840 --> 00:36:58,030 Esta sintaxis aquí sólo significa ir a buscar el nodo 823 00:36:58,030 --> 00:37:01,940 del árbol cuyo único identificador es precio-- ese lapso hemos visto anteriormente. 824 00:37:01,940 --> 00:37:04,320 >> Este método llamado HTML sólo dice, vaya reemplazar 825 00:37:04,320 --> 00:37:08,770 el código HTML que está ahí con data.price. 826 00:37:08,770 --> 00:37:10,200 ¿Qué hay data.price? 827 00:37:10,200 --> 00:37:12,850 Bueno, el navegador, recordar, me mostró esta regresando. 828 00:37:12,850 --> 00:37:14,540 Así que estos son los datos. 829 00:37:14,540 --> 00:37:18,100 >> Y lo que es un poco críptico para ver las comas aquí. 830 00:37:18,100 --> 00:37:19,350 Pero, de hecho, déjame hacer esto. 831 00:37:19,350 --> 00:37:22,890 Permítanme pega este muy rápido en gedit 832 00:37:22,890 --> 00:37:27,240 y mostrar esto como demostramos La estructura de Zamyla antes. 833 00:37:27,240 --> 00:37:31,610 >> Lo que el servidor envía de vuelta es una pequeño objeto que se parece a esto. 834 00:37:31,610 --> 00:37:37,140 Y así es data.price me acaba de dar a 0,1515. 835 00:37:37,140 --> 00:37:39,310 Así que una gran cantidad de movimiento partes aquí todos a la vez. 836 00:37:39,310 --> 00:37:41,860 >> Pero los robos de balón clave es que tenemos esta capacidad 837 00:37:41,860 --> 00:37:44,600 para hacer HTTP adicional peticiones utilizando JavaScript 838 00:37:44,600 --> 00:37:46,090 sin tener que recargar la página. 839 00:37:46,090 --> 00:37:49,580 Y entonces podemos realmente cambiar la página web sobre la marcha. 840 00:37:49,580 --> 00:37:51,850 Y resulta que JavaScript y otros lenguajes 841 00:37:51,850 --> 00:37:54,510 se puede utilizar ahora no sólo mutar páginas web, 842 00:37:54,510 --> 00:37:57,960 pero en realidad para escribir software en un equipo real, 843 00:37:57,960 --> 00:38:00,240 no sólo se limita a Chrome o similares. 844 00:38:00,240 --> 00:38:03,530 >> De hecho, si: Colton, ¿verdad gustaría unirse a nosotros de nuevo por aquí 845 00:38:03,530 --> 00:38:06,100 con su código de laboratorio, y Chang también? 846 00:38:06,100 --> 00:38:09,140 Vamos a seguir adelante, después de haber hablado de funciones anónimas y devoluciones de llamada 847 00:38:09,140 --> 00:38:13,090 y realmente tentar a la suerte aquí con una demostración en vivo con sangrado 848 00:38:13,090 --> 00:38:16,480 tecnología de punta, una de estos dispositivos Elite movimiento. 849 00:38:16,480 --> 00:38:18,940 Ahora, este dispositivo, el recuerdo, es un pequeño dispositivo USB 850 00:38:18,940 --> 00:38:25,620 así que-- eso es beautiful-- que se conecta a los puertos USB. 851 00:38:25,620 --> 00:38:29,120 >> Y entonces se proporciona la entrada en forma de gestos humanos 852 00:38:29,120 --> 00:38:32,560 mediante la detección de rayos infrarrojos utilizando, esencialmente, los movimientos de su brazo. 853 00:38:32,560 --> 00:38:35,150 Así que mientras que lo que María intentó antes era muscular, 854 00:38:35,150 --> 00:38:39,000 realmente sentir lo que está cambiando el brazo, esto es infrarrojo basado. 855 00:38:39,000 --> 00:38:44,390 Por lo tanto, está buscando a los movimientos dentro de la especie de esfera de un pie más o menos 856 00:38:44,390 --> 00:38:46,190 del propio dispositivo. 857 00:38:46,190 --> 00:38:48,950 >> Entonces, ¿por qué no me tomo una puñalada en esta primera? 858 00:38:48,950 --> 00:38:53,100 Y vamos a seguir adelante y tirar para arriba en la sobrecarga aquí. 859 00:38:53,100 --> 00:38:56,250 Así que vamos a poner el portátil de Colton hasta aquí. 860 00:38:56,250 --> 00:38:58,360 Tenemos Andrew en el televisor. 861 00:38:58,360 --> 00:39:00,160 Y ¿qué le gustaría que hiciera primero? 862 00:39:00,160 --> 00:39:02,409 >> COLTON: Vaya por delante y justo poner sus manos sobre este hombre 863 00:39:02,409 --> 00:39:04,430 y usted verá un cierto brillo fabuloso. 864 00:39:04,430 --> 00:39:07,230 >> DAVID J. MALAN: Very nice. 865 00:39:07,230 --> 00:39:11,110 Todo esto sucede en tiempo real. 866 00:39:11,110 --> 00:39:11,889 Okay. 867 00:39:11,889 --> 00:39:12,680 Muy bien, y sí. 868 00:39:12,680 --> 00:39:14,119 Tan agradable. 869 00:39:14,119 --> 00:39:15,410 Muy bien, ¿qué otra cosa podemos hacer? 870 00:39:15,410 --> 00:39:17,900 >> COLTON: Ir a la siguiente pantalla y ver. 871 00:39:17,900 --> 00:39:19,136 >> DAVID J. MALAN: De acuerdo. 872 00:39:19,136 --> 00:39:21,780 >> COLTON: Un pequeño juego donde se llega a hacer robots. 873 00:39:21,780 --> 00:39:24,738 >> DAVID J. MALAN: Muy bien, por lo que este es falso manos me muestran lo que debe hacer. 874 00:39:24,738 --> 00:39:27,920 COLTON: Sí Así que adelante y apoderarse de uno de los bloques 875 00:39:27,920 --> 00:39:30,637 y lo puso en la parte superior del cuerpo de ese robot. 876 00:39:30,637 --> 00:39:32,137 DAVID J. MALAN: Oh, ahí está mi mano. 877 00:39:32,137 --> 00:39:34,000 Oh. 878 00:39:34,000 --> 00:39:34,780 Aceptar, adorable. 879 00:39:34,780 --> 00:39:37,500 880 00:39:37,500 --> 00:39:38,650 Espera un minuto, en Aceptar. 881 00:39:38,650 --> 00:39:41,320 Hay que ir. 882 00:39:41,320 --> 00:39:43,590 >> COLTON: Hice uno en accidente. 883 00:39:43,590 --> 00:39:45,423 >> DAVID J. MALAN: OK, voy a conseguir este tipo. 884 00:39:45,423 --> 00:39:45,923 Maldita sea! 885 00:39:45,923 --> 00:39:48,467 886 00:39:48,467 --> 00:39:51,550 Cuando estábamos practicando esta última noche, ya sabes lo que esto degeneró en? 887 00:39:51,550 --> 00:39:54,285 >> Como este. 888 00:39:54,285 --> 00:39:55,490 Okay. 889 00:39:55,490 --> 00:39:55,990 Siguiente uno? 890 00:39:55,990 --> 00:39:56,860 >> COLTON: Claro. 891 00:39:56,860 --> 00:39:58,818 >> DAVID J. MALAN: Muy bien, y hay una tercera. 892 00:39:58,818 --> 00:40:01,130 893 00:40:01,130 --> 00:40:01,674 Bien. 894 00:40:01,674 --> 00:40:03,215 COLTON: Y en éste, se obtiene a-- 895 00:40:03,215 --> 00:40:04,923 DAVID J. MALAN: ¡Oh, de hermosa éste. 896 00:40:04,923 --> 00:40:06,650 COLTON: --yeah, desmenuzar esta flor. 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 Perdidas. 901 00:40:14,515 --> 00:40:15,570 >> COLTON: Oh, ahí lo tienes. 902 00:40:15,570 --> 00:40:18,680 >> DAVID J. MALAN: Ah, mira eso. 903 00:40:18,680 --> 00:40:19,830 Muy agradable. 904 00:40:19,830 --> 00:40:22,470 Bueno, ¿por qué no 'tomamos a cabo un voluntario aquí 905 00:40:22,470 --> 00:40:24,180 que le gustaría venir en adelante. 906 00:40:24,180 --> 00:40:27,500 ¿Qué hay allí mismo en el verde, ¿no? 907 00:40:27,500 --> 00:40:30,540 >> Muy bien, y vamos a tener-- en lugar de hacer eso, algunos de ustedes 908 00:40:30,540 --> 00:40:34,590 podrían saber este juego aquí-- cortar la cuerda, tal vez? 909 00:40:34,590 --> 00:40:35,100 Vamos a ver. 910 00:40:35,100 --> 00:40:37,320 Tenemos nuestras copas por aquí? 911 00:40:37,320 --> 00:40:38,625 >> Okay. 912 00:40:38,625 --> 00:40:39,270 Gracias. 913 00:40:39,270 --> 00:40:39,380 Cuál es tu nombre? 914 00:40:39,380 --> 00:40:40,350 >> AUDIENCIA: Laura. 915 00:40:40,350 --> 00:40:41,266 >> DAVID J. MALAN: Laura? 916 00:40:41,266 --> 00:40:42,120 Es bueno ver. 917 00:40:42,120 --> 00:40:45,600 Si no te importa poner Google Glass sobre sus lentes. 918 00:40:45,600 --> 00:40:46,970 Esto es Colton. 919 00:40:46,970 --> 00:40:47,650 >> COLTON: Hola. 920 00:40:47,650 --> 00:40:48,140 Encantada de conocerte. 921 00:40:48,140 --> 00:40:49,600 >> DAVID J. MALAN: OK, vamos alrededor. 922 00:40:49,600 --> 00:40:52,516 Muy bien, así que lo que vas a hacer aquí, después de haber jugado esto antes, 923 00:40:52,516 --> 00:40:55,650 se pone la mano sobre el Leap Motion aquí. 924 00:40:55,650 --> 00:40:57,210 Y ahora su flecha debe moverse. 925 00:40:57,210 --> 00:40:57,710 Ah, pues no. 926 00:40:57,710 --> 00:40:58,066 >> AUDIENCIA: No. 927 00:40:58,066 --> 00:40:58,780 >> DAVID J. MALAN: Nosotros no quieren dejar de fumar todavía. 928 00:40:58,780 --> 00:40:59,280 Aceptar, espere. 929 00:40:59,280 --> 00:41:01,200 Por aquí. 930 00:41:01,200 --> 00:41:03,530 Así cuenta como usted sostiene su dedo sobre algo, 931 00:41:03,530 --> 00:41:06,750 el ratón comienza a ir verde, que es como se hace clic. 932 00:41:06,750 --> 00:41:08,980 >> Así que se ciernen sobre Play. 933 00:41:08,980 --> 00:41:10,970 Y sólo un dedo está muy bien. 934 00:41:10,970 --> 00:41:13,869 Y ahora, haga clic en la pequeña hombre verde de la izquierda. 935 00:41:13,869 --> 00:41:15,410 Y ahora tienen hasta que se llena de verde. 936 00:41:15,410 --> 00:41:15,640 Bueno. 937 00:41:15,640 --> 00:41:16,990 Ahora, al igual que, el nivel uno en la superior. 938 00:41:16,990 --> 00:41:20,190 >> AUDIENCIA: Sí, queremos que el nivel uno, aquí. 939 00:41:20,190 --> 00:41:21,660 >> DAVID J. MALAN: Good. 940 00:41:21,660 --> 00:41:25,500 OK, así que todo lo que tienes que hacer es cortar la cuerda. 941 00:41:25,500 --> 00:41:28,240 El cursor es la blanca ahí abajo. 942 00:41:28,240 --> 00:41:28,880 >> Muy agradable. 943 00:41:28,880 --> 00:41:31,290 944 00:41:31,290 --> 00:41:32,790 Muy bien, se trata de conseguir más difícil. 945 00:41:32,790 --> 00:41:34,800 Así que mantener el dedo sobre el próximo ahora. 946 00:41:34,800 --> 00:41:37,370 947 00:41:37,370 --> 00:41:39,030 Bueno. 948 00:41:39,030 --> 00:41:39,999 Éste es difícil. 949 00:41:39,999 --> 00:41:40,966 >> AUDIENCIA: Oh mierda. 950 00:41:40,966 --> 00:41:41,466 Okay. 951 00:41:41,466 --> 00:41:42,466 Se quiere ir de esa manera. 952 00:41:42,466 --> 00:41:44,890 Oh mierda, que-- 953 00:41:44,890 --> 00:41:47,120 >> DAVID J. MALAN: Sí. 954 00:41:47,120 --> 00:41:50,700 Meta secundaria es conseguir todas las estrellas. 955 00:41:50,700 --> 00:41:53,920 De acuerdo, siguiente. 956 00:41:53,920 --> 00:41:57,504 >> Vamos a ver si usted puede conseguir este tercero. 957 00:41:57,504 --> 00:41:58,004 Bueno. 958 00:41:58,004 --> 00:42:05,980 959 00:42:05,980 --> 00:42:06,840 Aceptar, ir allí. 960 00:42:06,840 --> 00:42:08,850 >> Claro. 961 00:42:08,850 --> 00:42:11,230 Oh, muy agradable. 962 00:42:11,230 --> 00:42:11,930 Bien. 963 00:42:11,930 --> 00:42:13,534 >> Entonces, ¿por qué no levantar la sesión aquí hoy? 964 00:42:13,534 --> 00:42:15,200 Que nadie venga a quién quiere jugar. 965 00:42:15,200 --> 00:42:16,880 Muchas gracias a Laura nuestra voluntaria. 966 00:42:16,880 --> 00:42:18,730 Y nos veremos el lunes. 967 00:42:18,730 --> 00:42:21,190 >> AUDIENCIA: Usted probablemente querrá éstos espalda. 968 00:42:21,190 --> 00:42:23,640 >> ALTAVOZ 2: En el siguiente CS50-- 969 00:42:23,640 --> 00:42:35,222