Muy bien. Bienvenidos a la Informática 164. Así que antes de sumergirse con una visión general de lo que será el curso acerca de este semestre y un poco de material contenido en este primer día, Pensé que te daría un sentido de la forma en que pasamos la noche anterior. No es tanto como desafío del lado del servidor que enfrentamos pero uno del lado del cliente. Así que ¿Alguno de ustedes descubierto Este sitio web en particular por el momento o lienzo que algunos de Harvard cursos se están desplazando a? Así iSites está a punto de morir de una lenta muerte si usted ha conseguido adjunto a ella, es probable que ser reemplazado con lienzo. Y por lo que pensamos saltar a bordo y ser parte de esta prueba beta usando Canvas que es una herramienta de código abierto. Está patrocinado por una compañía llamada Instructure. Así que hay una empresa respaldo detrás de él. Pero en su mayor parte lo estamos utilizando de esta manera. Pero anoche, cuando estábamos tratando para obtener el sitio web de los cursos finalizado, nos encontramos con una gran cantidad de frustraciones porque este es un sistema de gestión del aprendizaje lo que significa que es un pieza de software con el que puede administrar el contenido mediante el uso de la interfaz basada en web. Usted no tiene que usar archivos de configuración arcanos. Usted no tiene que saber nada acerca de las bases de datos, es casi punto y haga clic en una forma sitios de Google o algo así podría ser. Pero como resultado que era muy duro para hacer algo tan simple como - vamos a ir a la página web de los cursos. Ahora, sólo hay que poner las opciones de menú en este lado de la izquierda. El caso en cuestión, no hay nada hay en realidad en este momento porque la forma el software está diseñado es que si quieres para instalar cosas en el menú de la izquierda, usted tiene que realmente instalar estos módulos o aplicaciones en el software. Y nosotros no queremos hacer esto. Nosotros sólo queríamos un enlace que como el plan de estudios. Queríamos un enlace para el personal. Queríamos un enlace a vídeos y similares. Así que si te enfrentaras con los sitios web, es desde el sitio web de terceros pero usted no tiene control sobre el código fuente. Usted no tiene acceso a la servidor, no se puede SSH, puedes SFTP, lo único que puedes utilizar es la interfaz web local y quiere empezar a cambiar o alterando el usuario interconectar a través de otros medios. ¿Cómo sería su primera instinto no? ¿Qué preguntas puede pedir de Instructure en este caso, la empresa para que usted puede tipo de trabajo alrededor de estas limitaciones como lo hicimos? Queremos añadir opciones de menú pero no podemos cambiar su código de servidor. Entonces, ¿qué solución puede que insinuar que? Sí. [Inaudible Observación] Aceptar. [Inaudible Observación] Sí. Así que pudimos considerar algo como una extensión de Chrome. Si no está familiarizado, un Chrome extensión es esencialmente una pieza de software desde el Chrome navegador generalmente por escrito en JavaScript. Y es sólo una manera de inyectar Código típicamente JavaScript quizá un poco de CSS en un elemento laminar página que usted visita. Por lo cual la extensión Chrome es simplemente un seguimiento constante de lo que sitios web que visitas y tratando de detectar. Oh si eres facebook.com hacer esto. Oh si estás en isites.harvard.edu hacer esto. Así que aquellos de ustedes que podría han utilizado enchufe 2x del CS50 en que le permite acelerar vídeos Up es exactamente eso. Así que eso es interesante y es tipo de en el camino correcto. Porque si usted no tiene acceso en el servidor, lo que desea cambiar de alguna manera el DOM del árbol que el usuario está viendo, usted puede casi sólo lo hacen en el cliente. Ahora, por supuesto, una captura obvia de la utilización de un cromo extensión es qué? Derecha. Así que no todo el mundo está utilizando Chrome y si se siente un poco cojo si tienes suerte de para exigir que todos los sus usuarios pueden sólo utilizar el sitio web y ver las opciones de menú si tienen Chrome. Entonces, ¿qué más podría podríamos queremos pedir Instructure? Así que una cosa es que supongo Probablemente usted puede añadir un texto en el sitio web, ¿no? Aceptar. Para saber si puedes realmente poner HTML en el texto. Aceptar. Bueno. Así que podríamos preguntarles si podíamos poner HTML en el texto mismo. Así que en lugar de escribir un texto anuncio, podemos añadir enlaces? Podemos añadir imágenes? Podemos agregar viñetas? Todo lo que podríamos querer hacer estéticamente. Y la respuesta corta es sí. En efecto, existe una tipo de WYSIWYG, Lo que usted ve es lo que Obtenga editor que viene con este particular, pieza de software que le permite editar. Cosas como la página de inicio con mi nombre y el de Rob y Tim y así sucesivamente. Eso nos metió parte del camino. Por desgracia, eso no lo hace vamos a poner nada aquí por ejemplo. Eso no vamos a poner nada aquí porque estamos obligados por lo que el original autores querían que hiciéramos. Así que estamos un paso más cerca. ¿Qué más podríamos pedir a la empresa? ¿Cuáles son los otros correcciones temporales, tal vez? Tiene que ser solucionable. ¿Qué otra cosa podría hacer? Así que usted estaba en la derecha seguimiento con esta noción del lado del cliente JavaScript inyección. ¿Cómo si no podríamos conseguir JavaScript en el sitio tal vez, ¿verdad? Porque una vez que tienes JavaScript usted puede hacer casi cualquier cosa incluso si su experimentaron con el lenguaje Java se limita a 50 o alguna otra experiencia previa, ya sabes, que puede recorrer el árbol es una página web, el DOM. Es probable que recordar que puede agregar o quitar nodos linfáticos. Usted puede inyectar cosas en una página web. De hecho, eso es exactamente lo que los 2x CS50 enchufan hace. Se arranca los iSites ' reproductor de vídeo y puts en una diferente todos juntos. ¿Y qué si la empresa Instructure le permitió para inyectar el código JavaScript en su página web del curso? En otras palabras, lo que si se Ha permitido a través de su interfaz gráfica de usuario, su interfaz WYSIWYG para pegue la URL de un archivo JS y tal vez incluso un archivo css. y luego que se hizo cargo del proceso de inserción se en la parte superior de cada página. Así que, efectivamente, se trataba de la única manera que pudimos para lograr esto. Si veo la fuente de la página aquí - y permítanme ampliar y reducir busco para cs164.net que es un dominio que el curso dueños. Tenga en cuenta que a través de algunas series de pasos, se tomó un tiempo para averiguar con su documentación. Nosotros estamos en condiciones de decir, encima de cada la página web lo que las salidas de la lona para este curso, salida. css. Y si hacemos otro comando f y buscar un poco más lejos, verás que aquí abajo, anidado con alguna JavaScript código no mencionar también de esta URL aquí. Así, en otras palabras, nos tipo de haberlos engañado en la inyección de cualquier CSS, lo que sea que JavaScript quiere en el sitio web. Para que luego nos lleva a la pregunta, ¿qué hace? Bueno, vamos a seguir adelante y sólo tienes que tomar esta fuente, pega este aquí. Está prohibido porque para simular este, Me chmod [fonético] todo. Así que te voy a dar esa vuelta. Acceso de lectura y ahora volver a cargar. Entonces, ¿qué hicimos? Por lo tanto, vas a mejorar en este particularmente a mitad del semestre cuando nos pasamos mucho nuestro tiempo en JavaScript. Pero lo que hace este parecen estar haciendo? Así que uno en la parte superior de esta Archivo JS que a su vez se incluye en cada página web que el Claro que ahora se ejecuta en el sitio web. Verificamos para ver si el tipo de de jQuery no está definido. Así que en términos sencillos ¿Qué significa eso? ¿Qué significaría si jQuery es indefinido? Bueno, usted tiene JavaScript cargado. Usted no tiene jQuery cargado. Así que estamos esperando que Instructure, la empresa es en realidad usando jQuery mismos. De lo contrario, tendríamos que pegue la biblioteca jQuery en la parte superior de este archivo con el fin de para tener acceso a ella. Y esto no es porque simplemente quieren tener acceso a las cosas como el signo del dólar notación y otra funcionalmente que viene con jQuery. Si usted recuerda esta biblioteca y si no familiar o si ha pasado un tiempo, descansar seguros vamos a venir a este con en unas pocas semanas. Entonces, ¿qué son las cosas que estamos haciendo aquí? Así que para aquellos que puedan recordar, ¿qué significa esta sintaxis aquí? Cuando usted acaba de pasar un anónimo función o función lambda? En CS51 hablar con el función jQuery así. ¿Cuándo es el código va a conseguir ejecutado? Sí. [Inaudible Observación] Exactamente. Así que este código, por naturaleza, de esta función de llamada predeterminado sólo se va a poner ejecutado cuando el DOM por así hablar está totalmente cargado. Todos los de la parte superior a la inferior HTML, izquierda o derecha que se ha leído en la memoria y hay un poco de estructura de árbol en el interior de la memoria. Ahora bien, esto es bueno porque si quiero empezar a jugar un rato con él y cambiar el Las opciones de menú, la eliminación de las cosas, añadiendo cosas, será mejor esperar hasta por lo menos el default DOM está en su lugar. Así que esto es sólo estándar sintaxis jQuery. Es equivalente a decir cuando el DOM está listo. Y ahora que es realmente sólo una combinación de jQuery sintaxis y algo de HTML. Así, por ejemplo, he decidido que esto me estaba molestando. Nadie en el campus, dice, oh, llevas Comp Ciencia 164, o Compensación de ciencia lo que sea, decir CS164 CS o lo que sea. Pequeña molestia Así menor, queremos cambiar eso, así que ¿cómo podemos hacer eso con algo como JavaScript? Bueno, fíjense, si ir a la página de aquí y en lo alto de la página, anteriormente era CS164. Si abro Chrome, que es un navegador útil para hacer inspecciones de DOM y te acerques aquí. Dese cuenta que dentro de este HTML era un elemento que tenía una identificación de pan rallado y que el DI hace qué? Se identifica de manera única una de los nodos en el árbol y tan pronto como llegue el identificador único para algunos trozo de HTML en el DOM, ahora Puedo hacer lo que quiera con esta página web. Yo podría eliminar todos los nodos DOM. Cada etiqueta HTML de la página y poner todo lo que quiero pero las necesidades que son bastante humildes. Simplemente quería para el fragmento de código aquí. Quería encontrar primero el encabezado de la sección de pestañas que fue uno de los padres elementos justo por encima de eso. Y yo quería ir por delante y el cambio - Quería más bien el cambio los contenidos de que a través de este HMTL funcionar con un enlace para CS164 y luego quería modificar las reglas CSS en él tener un peso de la fuente de negrita. Y no vamos a entrar en gran detalle en el resto de este aquí. Pero fíjate en esta línea aquí. Yo sustituyo un mundial en todas partes. Esencialmente diciendo: cualquier lugar donde vea un lapso que tiene una clase llamado ellipsible, eso no es una cosa normal, eso es justo lo que el lienzo software requiere ciertas clases. Si contiene la tecla frase COMPSCI164 seguir adelante y sustituir el HTML dentro de cualquier lapso con sólo CS164. Y el resto de esto es bastante bien comentado. Pero el resultado final, lo que estoy haciendo es manualmente con Chrome o cualquier navegador averiguar lo que los identificadores únicos son varios nodos DOM en el árbol y mutaciones en los mismos de la manera que yo quería. Y el resultado final, que ahora que se efectuó chmod cosas correctamente es que ahora puedo poner arbitraria trozo de HTML aquí. Puedo arrancar cosas como el pie de página. Puedo arrancar HTML aquí y Debo agitar una gran renuncia. Este es un truco completo a la aplicación de un sitio web como este. Pero que tipo de habla para el proceso de pensamiento que debe hacia el mitad del semestre, especialmente cuando pasamos tiempo en JavaScript empezar a pensar acerca de cómo se puede solucionar varios problemas con suerte mejor que en esta forma. Pero los ingredientes para la solución de un problema como esto realmente sólo reducido a algunos conceptos básicos. La apertura a algo como Inspector de Chrome y la comprensión lo que el árbol DOM es. Saber lo que el Selectores CSS son para los ID únicos o de nombres de clase. Conocer algunos de sintaxis si es en JavaScript puro o en la biblioteca de jQuery para cambiar realmente el DOM. Y al final del día, estamos más o menos capaces para doblar el software a nuestra voluntad. Pero es probable que haya un buen partido. ¿Cuál es el precio que estamos probablemente pagar por este hack completo? ¿Qué es el riesgo? Sí. [Inaudible Observación] Exactamente. Si Instructure cambia el nombre de una de sus clases o cambia el nombre de uno de sus documentos de identidad o simplemente reorganiza su HTML que es totalmente su prerrogativa, todo esto podría romperse y entonces uno de nosotros va a tener notarlo o uno de ustedes chicos se van a tener que informar y vamos a tener para pensar en eso otra vez. Así que tal vez no es un gran tratar pero sigue siendo una amenaza. ¿Qué más puede pasar? ¿Qué otra cosa es malo acerca de este enfoque? Es menos común en estos días. Sí. Es un poco más lento en que - en lugar de simplemente obtener el fuente original desde el servidor. Ahora estás haciendo adicional del lado del cliente cambios. Y de hecho si tuviéramos una manera conexión a Internet mucho más lento, usted realmente ver muy probablemente algunos destellos en la pantalla como DOM nodos están cambiando. Sucede que tener una conexión, un equipo bastante rápido y por lo que es bastante difícil de alcanzar para el usuario. Pero lo que si tienen Deshabilitado Javascript? Ahora bien, este es un extremo caso esquina en estos días. La mayoría de las personas son - la mayoría cuando salen de JavaScript en. Pero si es fuera de lo que sucede? No vemos ninguna de que sea. Así que en resumen, basándose en JavaScript para algo como esto hace el trabajo pero la comida para llevar es cómo nos fuimos sobre dong esto. Y usted puede ver por sí mismo sólo mediante la visualización de la fuente y luego hurgar en cualquier de los dos URLs en cs164.net. ¿Cómo realmente nos hicieron esto? Pero su ilustrativo de cómo usted puede empezar a construir más DOM interesantes e incluso en el caso sitios web de forma dinámica impulsada como la aplicación de Facebook, o Gchat o similares que son constantemente tirando de más datos, cómo se puede realmente cambiar esa interfaz. Pero ahora, echemos un vistazo a la forma correcta de empezar a hacer cosas. Así que este año, el curso, a diferencia de hace dos años cuando ustedes principalmente en PHP para el primer semestre y JavaScript para la última media, mientras que hace dos años, nos hemos centrado más en el móvil con un poco de PHP, este año, decidimos cambiar cosas que se centran más en las aplicaciones basadas en web. Implementado no en pares de personas pero en equipos específicamente equipos de cuatro y las motivaciones eran varios. Pero entre ellos eran que, con un equipo de cuatro personas sólo hay muchas más piezas que puede morder fuera como un grupo. Hacer desarrollos web tiende a aterrizar a diferentes aspectos del proyecto que pueda entonces delegar entre su equipo. Por ejemplo, es probable que vamos a tener uno o dos de ustedes en un determinado equipo de trabajo en la parte delantera, el código JavaScript el CSS, la estética. En ese mismo proyecto otra uno o dos de ustedes se centrará en la parte final, la base de datos el diseño del esquema, la validación de los datos, la redacción del API que el pueblo de front-end funcionarán. Y así acabamos de recibir una gran cantidad más aliento de oportunidades para que la gente colabore. Y por lo que encontrarás si que has hecho proyectos con un solo compañero en el pasado, que con cuatro que será un poco más difícil, más interesante, pero mucho más potente para tener toda de ustedes colaborar juntos. En cuanto a los requisitos previos, que probablemente se quede con ellos para el catálogo cuatro cursos anteriores de CS. Y esto se basa en la experiencia. Un par de años atrás como aludió a que antes, prácticamente nos permitió cualquier persona que tomó sólo 50 o tal vez un poco de clase en la escuela la escuela para tomar el curso pero no era más que una extensión tal de habilidades y niveles de confort. Se hizo difícil tener ciertas conversaciones y mucho de los estudiantes en el clase luchó. Así que pensamos de esta manera, podemos hacer todo tipo de un favor colectivamente. Así que tenlo en cuenta. En términos del tamaño del equipo, cuatro serán por defecto si tiene tres amigos con los que había como a la pareja, eso es totalmente bien. No vamos a exigir equipos particulares para usted. Si no tiene amigos o socios en la mente de la clase, no es gran cosa, vamos a seguir que la mente también y tratar para facilitar los tipos de asociaciones. En términos de la estructura de la clase, esto es muy anómala. El curso no será estructurado en su mayor parte alrededor de conferencias y no será estructurado alrededor de ustedes se sienta allí mirando esta manera y me habla de esta manera. Más bien la mayor parte de la sesiones de clase serán en forma de reuniones de equipo. Puede ser que su equipo se reunirán aquí o en otro lugar en el campus durante un par de horas el lunes tardes o para una pareja de horas del miércoles tardes. En las próximas semanas, vamos a averiguar qué día y el tiempo que cada uno la gente va a ser. Si necesidad de ser, podemos ajustar el veces, pero veremos Based en una encuesta que ustedes todos en última instancia llenar. ¿Qué sucede en estas reuniones? Así que las reuniones semanales se donde ustedes, principalmente presentar los avances en varios proyectos, más en los que en un momento. Así que en estas reuniones de equipo, uno de los profesores y o yo mismo estarán presentes y la meta será para cada una de las cuatro personas en el equipo para informar sobre los hitos que tiene o no han logrado. Cuando el hito se definirá como la investigación de algo, implementar algo, diseñar algo, pensando acerca de algo o similares, la defensa de las decisiones de diseño. Así es - que significaba esta clase a particularmente crítico o desafiante. Así que no sólo va a puede hablar acerca de su día y cómo en realidad se decide implementar esto, pero yo y Rob y Tim, que reunirá en un poco estará allí para desafiarte. Así que si usted tomó la decisión y no es necesariamente lo mejor que bien. Si usted realmente tiene un fuerte opinión de por qué lo hiciste. Y en respuesta de la forma, bueno, funciona pero no estoy muy seguro es no lo que realmente se espera en esas reuniones. Por lo que es realmente la intención de ser una conversación bidireccional en la que usted defiende a su decisiones y también convencernos que el camino que has tomado es idealmente mejor o que es una oportunidad para usted para solicitar la opinión de nosotros e incluso a sus socios en cuanto a lo que podría estar haciendo de manera diferente. Y entonces, en particular, éstas serán las oportunidades para la revisión de código. Así que ustedes van a escribir El código JavaScript y PHP de código y otra técnica aspectos de cada proyecto y la meta estará en delante de una gran pantalla de televisión, alrededor de la mesa como ésta para uno de vosotros para que estéis en una época en el que tiene estado haciendo la mayor parte del trabajo sobre algún aspecto de el proyecto se han establecido y para presentar el código. Y nos dan un recorrido verbal de la código y nos da una oportunidad decir ¿por qué tienes seis bucles anidados de ejecución algo así? O ¿por qué no tiene índices en la tabla de base de datos diferentes temas que exploraremos en el transcurso del semestre. Así que de vez en cuando lo haremos tener charlas técnicas, ya sea en la forma de éstos en reuniones de estilo persona donde todos nos reunimos juntos o por video para hacer las cosas un poco asíncrono por el bien de la conveniencia temas especialmente técnicos y las herramientas que utilizaremos durante este semestre. Algunos JavaScript populares bibliotecas por ejemplo, son Backbone.js y Bookshelf.js y Express.js. Estas son todas las herramientas con que usted puede hacer basado en la web aplicaciones utilizando JavaScript. No en el lado del cliente, aunque pero en el lado del servidor utilizando un marco llamado Node.js que es una alternativa a los usando algo como Apache o Microsoft IIS u otro software de servidor web. Así que vamos a escribir programas en el código JavaScript de clase, tanto en el lado del cliente como así como en el lado del servidor. Vamos a hablar de herramientas con las que algunos de ustedes ya están familiarizados. Cosas como Git. Nos sumergiremos en el más profundo de las cosas como SQL y restricciones y transacciones, y mucho de los detalles que sin duda en una clase como 50, que tipo de agitar las manos en alto para los tiempos de amor pero son cada vez más importante cuando en realidad la implementación de un proyecto que va a ser utilizado por real y es de esperar un gran número de usuarios que los resultados se va a empezar a hacer una diferencia. En el mundo de PHP, utilizaremos un marco llamado Laravel. Se trata de una arquitectura MVC. Si saber o recordar esa sigla. Y es sólo un montón de Código PHP para hacer un montón de puestos de trabajo sea más fácil y para que sea más fácil escribir más compleja de software en particular proyectos que se implementan por varias personas. Para las pruebas, vamos a utilizar herramientas como burla en unidades de PHP y vamos a entrar en el hábito de no sólo la escritura de código y tipo de golpear en ella y anecdóticamente tratar de tratar de averiguar, Funciona como usted desea. Sino más bien lo hace pasar ciertas pruebas. Así que, especialmente si un amigo tuyo en los cambios de grupo algo de código, usted puede estar seguro que aquí no tiene roto nada, simplemente al volver a ejecutar las pruebas que ya ha escrito para ese código. Así que no tienen regresiones Buggy estados de software. Además, los proyectos es donde pasaremos la mayor parte de nuestro tiempo. Así que no hay exámenes. Todo se debe a proyectos de esta clase y en realidad ser sólo dos equipos por. En esencia, el primer semestre del semestre se centrará en uno los sitios web basados ​​en PHP que tendrá el usuario final frente las interfaces tanto para escritorio y opcionalmente móvil. Así que esta será una oportunidad, aunque tangencial a la clase hacer realidad algo así como una interfaz móvil basado en la web o si usted es realmente determinado, Android o iOS sería perfectamente bien. Sólo se dan cuenta de que la la curva de aprendizaje no Si no está familiarizado haría ser poco más alto. Pero sería jugar muy muy bien con la visión de tener también cada proyecto tener algo de vuelta API fin. Así que usted puede tener una separación, abstracción entre lo que están haciendo y lo que Alice y Bob y Charlie en su grupo son también así. Así que cada uno de sus extremos delanteros o la espalda extremos puede de alguna manera intercomunicarse. En cuanto a los detalles, para el marco, vamos a confiar en Laravel y Elocuente, que es un ORM, un asignador de objeto-relación que es sólo una capa de software que se ocupa de la M en MVC, el modelo. Esto hace que sea un poco más fácil especialmente para grandes proyectos para consultar los datos de bases de datos y escribir datos y representar el mundo real entidades sin tener escribir código SQL crudo. En el mundo de JavaScript vamos otra vez utilizamos expreso Biblioteca y que son análogos en el mundo de JavaScript. Pero el uso en lugar de Apache utilizando Node.js que es cada vez más popular y permite en particular para aplicaciones que implican interacciones en tiempo real, habitaciones gráfico y similares. Nodo es mucho mejor de Apache cuando se usa - en la aplicación de proyectos como el ya que puede enviar mensajes utilizando modelos como pub y sub, publicación y suscripción, si familiarizados con esas frases. Así que más de eso hacia el mitad del semestre. En cuanto a las expectativas, estos son ellos para el curso. Asistir o ver estos ocasionales conversaciones, charlas técnicas. El horario para el que en última instancia, poner en el sitio web de golf. Participar en todas las de las reuniones. Así que se requiere la asistencia a cada una de las reuniones del equipo de la causa ' después de todo, ahí es donde la mayor parte la instrucción del curso y la retroalimentación y interacciones sucederán. Hitos semanales, usaremos una herramienta que voy a hacer mención de un momento a general asignarle a partir de uno o dos de los miembros del personal a cada uno de las cuatro personas en el grupo. Cosas que hacer y las que las cosas van a venir en la forma de por qué no lo haces tú veterinario ir esta opción. ¿Por qué no vas a este veterinario opción y averiguar qué de los dos implementación posibilidades son mejores de aquí a decir la próxima semana. ¿Por qué no vas a poner en práctica esto? O a diseñar estos tablas de bases de datos. Y así, en breve el calendario en el curso que está pasando a ser bastante orgánica en función de los proyectos que cada equipo dependiendo tackles en lo que sus resultados son cuando vetar alguna aplicación opción y dependiendo potencialmente en lo que los usuarios finales en última instancia, quiere que el proyecto de hacer. Y así, con ese fin, hay hay plazos fijos por ejemplo. Habrá más o menos ser en una asignación de laminación de los plazos de cada pocos día, basado cada semana en las conversaciones que que tiene con uno o dos de los miembros del personal en su mesa. En última instancia, sin embargo lo que es vencimiento es la presentación de estos dos proyectos finales. En términos de lo que el proyectos serán, Los proyectos ser propuesto y seleccionados por ustedes. De hecho, en el formulario de la lotería por ejemplo, se le pedirá en lo que son uno o más proyectos particularmente que de alguna manera se relacionan a la escuela que usted piensa que ser convincente para poner en práctica. Desde una de las esperanzas para el curso es que cualesquiera proyectos hacen venir fuera de este supuesto sobrevivir Al final del semestre. Y así, sobre todo si son temas del campus, si si eso es otra catálogo de cursos, herramienta de compra o eventos de calendario o servicio de transporte o cualquier número de proyectos fin de carrera populares. La esperanza después del final de este semestre es que cualquier proyecto de vivir. Y, en efecto hacia ese fin, lo que pensamos que hacemos es hacer un poco más interesante. Y también una especie de oportunidades insight para el debate por el cual para la mayoría de cualquier proyecto que como una clase frente a este semestre, habrá dos equipos asignado a ese mismo proyecto. La idea general es que en realidad no están supone para hablar de su varias decisiones de diseño, más bien, su intención de ser más de un concurso para que en última instancia puede producir el mejor diseño, puesta en práctica. Así que, al final de la semestre, vamos mayo, enviamos una y no tanto de esas soluciones. Y nosotros, como un curso a tomar cuidar de la celebración y así sucesivamente para que sus vidas heredados en al final de la primavera. ¿Qué hacen estas aplicaciones? Puede ser cualquier cosa, algo para un departamento, algo para un grupo de alumnos, algo para los estudiantes más en general, que será parte de la conversación la semana que viene hasta que la cabeza de buceo primero después de recoger un puñado de este tipo de proyectos. En términos del personal, y mucho Me presento Tim y Rob que le gustaría decir hola. Y es que estos chicos que por uno de los proyectos será - tanto de los proyectos será su asesor principal. Esencialmente para uno de los proyectos, Rob se reunirán con usted la semana durante estas charlas. Para uno de los proyectos, Tim se reunirán con usted para los chats y vamos a cambiar más o menos la mitad del semestre mientras hacemos la transición proyectos. Si te gusta simplemente hablar cerca de este micrófono. Hola, soy Rob. Me gradué en mayo pasado de [inaudible]. Estoy preceptor en CS aquí ahora. Entusiasmado por el curso. Y estoy Tim y yo soy en realidad completamente nuevo en la zona. Soy originaria de Filadelfia, así que acabo de empezar aquí un par de semanas hace y estoy muy en el software de código abierto. Ayudo con el mantenimiento de la Proyecto Backbone.js donde algunos de que podría estar familiarizado con y también creé el Bookshelf.js proyecto que David estaba mencionando. Así que estoy emocionado de ver los proyectos. En efecto. Para obtener más información sobre Tim, al menos, si vas a la página principal del curso y haga clic en su nombre que dará lugar a su repositorio de GitHub si desea ver algunas de su código abierto herramientas y proyectos. Así que en términos de grados, sólo Porque esto es un FAQ incluso Si especie de tangencial a la visión más amplia de una clase, ¿Cómo van las calificaciones finales determinarse? Así que lo que en última instancia va ser bastante subjetiva basada en las interacciones que que en el curso - con su sobre el curso del semestre en base en sus contribuciones tanto a los repositorios de código y para conversaciones que tenemos. Y en una cáscara de nuez, se basará en sus contribuciones a los proyectos. La delta entre la primera semana y la última semana. Así que no se preocupe si usted tener solamente cuatro cursos bajo su cinturón, mientras que algunos otros estudiantes en la clase puede tener ocho, que sin duda seguiremos eso en mente. El ámbito de aplicación, corrección, diseño y el estilo de su proyecto, por lo que los ejes familiares. El grado en el que usted prepararse para la reunión. Así que esto realmente tiene la intención de será una oportunidad para nosotros reunir semanalmente y tienen inteligente y divertido y clase debates del idealmente emocionales. En momentos en que ustedes hacen propone cómo se puede resolver algo y luego defender lo usted puede hacer y el papel de Tim y mi papel y el papel de Rob se ser desafiarte esperanzado. Así que, o bien se puede ser persuadido para irse en alguna otra aplicación dirección o pueden estar seguros y se siente bastante bien sobre el hecho de que, sí, cree que tiene la mejor aplicación posible para este. Particularmente y la medida en que habrá otro equipo de trabajo en ese mismo proyecto de su propio ángulo individuo. En cuanto a las herramientas, por lo que este será tal vez de todas las horas extraordinarias y le invitamos a utilizar todo lo que sea de interés en busca de su propio equipo interno. Pero en su mayor parte, vamos a hacer uso de una herramienta gratuita llamada Asana para la gestión de tareas. Verá más en esta vía correo electrónico en los próximos días y es esencialmente una herramienta a través del cual se puede trabajar espacios y proyectos de equipo. Así que si su proyecto es implementar completos [fonética]. Sus cuatro miembros del equipo estar dentro de ese proyecto, en esa carpeta por así decirlo. Y usted y nosotros será capaz de asignar hitos y hacer de y las fechas y comentarios. Y es bueno porque es integrado con el correo electrónico. Así que usted puede o no puede visitar la sitio web que es totalmente de usted. Y también se puede obtener un sentido agregado de lo que la gente está de trabajo y tener una idea de lo que pasa más allá de su propia burbuja particular, si su cabeza se cae después de un tiempo de enfoque en una cosa particular. Para GitHub también, si desconocido, GitHub es uno de los más populares, si no el repositorio más popular por ahí para la fuente codificar estos días. Vamos a utilizar eso como un centro de repositorio para cada equipo de cuatro para que cuatro y luego nosotros tres tenemos acceso a y puedo opinar en forma de las revisiones de código que utilizan La interfaz de GitHub. Pero te voy a presentar a la si cuando no familiar que llegue el momento. Y eso es sólo un rápido una visión de Asana. Vistazo rápido a GitHub y ahora permítanme hacer una pausa para cualquier pregunta. Sí. [Inaudible pregunta] Buena pregunta ¿qué pensamos de los marcos de Python o Ruby? Podían alcanzar el mismos objetivos, en particular. Nos pasó a usar PHP en el 164, porque muchas de banda antes de la gente experiencias que sale de 50 que utiliza PHP en estos momentos. Pero absolutamente, ¿podría alguno de estos proyectos se realizan en Ruby, Python, incluso de Java u otro marcos, Node.js duda. Pero nos toca usar PHP y nos toca usar Node.js y queremos estandarizar aquellos para ambos de los proyectos de modo que es mucho fácil como clase tener muy similar conversaciones y no tener demasiadas manzanas y naranjas en la clase. A pesar de que no habrá cuando se trata de la discreción a los complementos específicos en las bibliotecas que se pueden utilizar para cualquiera de los entornos. Por lo tanto, ninguna afirmación de que uno es particularmente mejor que la otra. Y PHP tiene una especie de un feo la historia, pero se ha vuelto mucho más, mucho mejor en los últimos años. Entonces, ¿qué nos depara el futuro? No hay tarea o cualquier cosas esta noche otra de visitar esta URL si es de su interés. Vamos a publicar el enlace en el sitio web si se olvida de dónde es. La fecha límite para que esto va a ser de 6 de la tarde del Miércoles por lo que Rob y Tim y yo puede sentarse esa noche y revisar las presentaciones y encontrar la mejor forma para optimizar grupos y así sucesivamente. Nosotros lo haremos saber por Jueves si o no hemos tenido a la lotería y si tenemos un punto de manera que ustedes pueden obtener tarjetas de estudio firmaron con la figura qué es lo que quieres hacer. Y mientras tanto, si usted tiene alguna pregunta, ir a la página web del curso. Personal de correo electrónico en cs164.net. Cuando volvamos el miércoles, aún así será este formato. Pero probablemente a partir a mediados de la próxima semana o la semana después de donde nos dividimos en grupos mucho más pequeños con sólo cuatro de ustedes reunidos en un tiempo conmigo y o Tim y o Rob. Muchas gracias a el equipo en volver hoy. Nos vemos el miércoles.