[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,ayudenme a recibir al tio bob al escenario Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,una de las ventajas de aparecer último Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es que puedes corregir a los que estubieron antes Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡cucumber no es lento! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,a quien haya dicho eso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,probando a travez de la UI es lento Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,levantar rails cada ves que ejecutas un test es lento (y también estúpido) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,eso es lo lento, cucumber es un pequeño paquete muy liviano Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que hace una pasada con expresiones regulares, llama una función y entra y sale rápido Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cucumber no es lento Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,alguien dijo que sería bueno que nuestra comunidad fuera diversa Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,miremos al rededor de nosotros, ¿Cuál parece ser la característica que se expresa de manera más frecuente que otras? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si, bello facial ... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bueno, déjenme explicarlo de esta manera Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si quicieras atraer específicamente a una audiencia más diversa dentro de los desarrolladores Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,algo que quicieras evitar es decir grocerías durante una presentación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,público: ¡totalmente en desacuerdo! (usando grocerías) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no voy a entrar en esa competencia Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,yo sé lo que se debe hacer con los desarrolladores de mala calidad Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,público: ¿lo mismo que con los jefes de proyecto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Bob: no, no lo mismo que con los jefes de proyecto Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿y qué es todo eso sobre VIM? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,quién usa VIM por aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡¿Qué mierda les pasa a ustedes gente?! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Yo quería dejar de usar ese editor hace años atrás y ahora todo el mundo quiere empezar ausarlo... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,o bueno... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,un último comentario sobre eso. ¿Quién ve House? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿A quién le gusta ese programa? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,ok, ¿Quién de ustedes se identifica con el personaje de House? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,House es un doctor que es la misma escencia de un imbécil. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,solo imagínense que es la persona más iracible, negativa, horible y suertuda que puedan imagninar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,explicó su comportamiento un par de años atrás en uno de los episodios Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,dijo: "soy tan bueno que no pueden desaserce de mi así que soy libre de actuar como me plazca" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,de hecho es como él mide que tan valioso es Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,prueba su valía haciéndose tan repugnante y luego observando como no lo despiden. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,porque es simplemente tan bueno. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,House es un perdedor... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tengan esto en mente los que piensen "¡Ah, puedo romer todas las reglas que quiera!" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡Puedo llegar a la hora que quiera e irme a casa a la hora que me plazca! ¡Puedo programar borracho! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pues lo siento, House es un perdedor. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,a propósito, se me ocurrió una regla hace harto tiempo atrás sobre alcohol y programación: "lo mismo que a pilotos" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,El nombre de esta presentación ... Oh a propósito darles una lección sobre ciencia primero.. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Alguien sigue esto de E-Cat? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Bueno, es facinante, ¿si? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,público: he leído al respecto. \NBob: Has leído al respecto! ok, bueno Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,esto es probablemente un Hoax. Probablemente. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Bueno si tubiera que darle una probabilidad, sería como 9/10 para Hoax y 1/10 para verdad, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero el 1/10 me tiene inquieto, por cierto esa no es una de las 7 palabras de las que habla George Carling Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,la idea aqui es hay una persona en Italia cuyo nombre es Andrea Rossi Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y por varios años ha estado diciendo que puede generar energía Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,mediante hacer pasar hidrógeno calentado sobre Niquel Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y que los átomos de hidrógeno se fusionan con los de niquel para producir cobre y liberar energía. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,esta energía se libera en forma de rayos gamma y calor y los rayos gamma pueden ser absorbidos y producir más calor Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero no hay otra forma de radiación que sea emitida, aparte de protones, neutrones o electrónes. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no es radioactiva, es solo esta reacción nuclear muy interesante. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Por supuesto que la mayoría de los científicos recuerda el horrible fiasco de la fusión en frío en 1989 Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,todos muy escepticos, pero el dice "no, lo puedo hacer y puedo probarlo". Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,El 28 de octubre juntó a un grupo de profesores, a alguien que comparía su generador de 1Mw Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,juntó a un montón de reporteros e inició este generador y logró hacer hervir muchos litros de agua Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,400kw o 400kw hora de energía, no recuerdo, un montón de agua que hirvió Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y luego apagó la máquina y el cliente inmediatamente pagó por el generador Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y aun todo esto está rodeado de un montón de secreto ... hay un catalizador Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,del que el no habla al respecto, no nos cuenta que es... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Probablemente una mentira (Hoax), probablemente muy bueno para ser verdad. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Pero, alomejor no... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Investiguen sobre esto, es interesante. Quizás sea mentira ... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,sea muy bueno para ser verdad... yo miro muchas cosas que parecen ser muy buenas para ser verdad Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y digo "bueno, parecen muy buenas para ser vedad", pero luego veo a mi señora ... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡Así es como obtienes diversidad en un grupo! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Lo que miran en pantalla es la estructura de alto nivel Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,de una aplicación Rails que hace algún tiempo atrás escribí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,denle una mirada a los directorios ¿Qué es lo que ven? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bueno, ven controllers y esperan ver controllers en una aplicación Rails cierto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y ven models y ven views y algunas otras cosas como helpers y util Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bueno pueden ir al spec de por aquí porque por supuesto es dirigida por tests Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Quién hace desarrollo guiado por pruebas? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hmmm vamos a tener que conversar... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pueden ver que también hay pruebas de controllers, models, bla bla bla, ok Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que es lo que ven? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si fuera a mostrarles esto y no les digiera que es una aplicación Rails Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Podrían reconocer que de hecho es una aplicación Rails? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,oh, si, se ve como una aplicación Rails. Bueno, quizás haya otros tipos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,de aplicaciones que tengan esta estructura de directorios Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero es una aplicación Rails, así que ahora mi pregunta a Uds. es: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Porqué la estructura de alto nivel en la aplicación debiera comunicarte esto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué es lo que la aplicación hace? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No hay ninguna pista aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"Substitute" es el nombre del proyecto Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bueno, eso no es muy útil Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,aparentemente el nombre del cliente es "Angela", quizás... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero nada en el alto nivel de la aplicación, el nivel más visible, al cual todos van primero Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,nada aquí habla sobre lo que la aplicación hace. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Es inmediatamente reconocible como una aplicación rails Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que quizás lo más importante sobre esta aplicación es el framework sobre el que está construido. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Y sobre el resto no nos preocupamos mucho. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Rails es un framework Web, ¿Qué es la web? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡Gracias! ¡Si! es un mecanismo de entrega (es lo que dice en el slide) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,La web es un detalle, la web no es particularmente importante para tu aplicación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,la web es simplemente la forma en la que tu aplicación obtiene información del usuario Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y devuelve información hacia el usuario. La web es una tubería. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No es nada más que una tubería. No es la estructura central de tu aplicación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No es la gran estructura que define tu aplicación y la convierte en lo que es. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,La web es solo un tonto detalle. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y aún así, domina nuestro código. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Podemos observar una aplicación web y saber que es una aplicación web Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,a causa de ese directorio de controllers. No otro tipo de aplicación tendría Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,un directorio controllers en el nivel superior, especialmente si hay modelos y views al rededor Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,vamos a hablar sobre Model View Controller (MVC) y la horrible bastardización que ha ocurrido con él Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,vean este dibujo de alto nivel de una librería (de libros) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si no tubiera la palabra "librería" en el título podrías mirar esto y decir Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,," hay una gran entrada por acá, hay unas oficinas, eso parece un escritorio, donde la gente podría llegar y registrar cosas" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"parece que allí hay algunas estanterías, oh, parece que eso es una librería" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,La estructura de alto nivel en una librería te mostraría que es una librería. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,o ¿Qué tal una iglesia? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Hay siquiera una tenue duda de que eso es una iglesia? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tienes una gran entrada, puedes ver el altar, puedes ver los confesionarios. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡Esta es una iglesia! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,La estructura de alto nivel de este edificio grita su propósito a quien lo mira, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero la estructura de alto nivel de mi aplicación Rails no grita su propósito. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,grita cuál es el framework con el que fue contruído. grita Rails. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Esto es muy bueno para DHH no tan bueno para ti. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Por qué esto sucede? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Por qué creamos arquitecturas que reflejan el framework que a su vez reflejan el mecanismo de entrega Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y no reflejan la aplicación? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Acaso no estamos construyendo una aplicación que tiene un propósito? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿No es la arquitectura acerca del propósito? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Ciértamente lo es desde el punto de vista de la construcción. No es también cierto del ... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,oh, es mi señora que me llama ... disculpen, aparé mi teléfono. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿En qué estaba? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡Graciás! ¿Acaso no es la arquitectura de la aplicación completamente sobre el propósito de ésta ? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Porqué no debiéramos ver ese propósito al nivel más alto del código? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,El año era 1993 Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Esta persona, llamada Ivar Jacobson escribió un libro: "Ingeniería de software orientada al objeto" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"Una aproximación desde los casos de uso" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué estaba sucediendo en 1993? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡No había web! la web aun no había nacido o quizás lo había hecho, quizás, no recuerdo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,una persona escribió una página web y luego se expandió como fuego Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero no había web en el momento todos estábamos haciendo C++ o C o alguna cosa horrenda como esas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,haciendo aplicaciones de clientes pesados Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Y aquí llega este sujeto y escribe este libro y es un libro facinante Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y resuelve el problema de la arquitectura Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no es el primero en hacerlo, no será el último, pero en este libro Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,habla sobre como obtener el propósito de la aplicación en el nivel superior Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que sea la abstracción principal sobre la que construímos. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,El lo llamó "una aproximación dirigida por los casos de uso" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué es un caso de uso? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bueno eso es un caso de uso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,nada muy espectacular sobre ellos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es decir, le das un nombre, hablas un poco sobre los datos que es pasada Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hacia el caso de uso "crear orden", el id de cliente, alguna info de contacto del cliente Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y algunas otras cosas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hablas un poco sobre como el sistema va a responder cuando obtenga esta solicitud Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"el operador ejecuta un comando "Crear Orden" con los datos anteriores" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"el sistema valida todos los datos" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bla bla bla, es solo un conjunto de frases simples Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que describen cómo el sistema responde cuando el usuario hace esta pequeña acción Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y tiene unos comportamientos alternativos en casos excepcionales Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,solo formas de controlar errores y otras cosas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y Jacobson utiliza varias páginas de su libro solo para describir lo que esto es Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Quién ha hecho casos de usos antes? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Alguien recuerda esto? wow varios de ustedes. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cuál es la diferencia entre un caso de uso y una historia de usuario? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si, el nombre. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Son básicamente lo mismo solo que la historia de uso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,comienza como algo muy pequeño y evoluciona en un caso de uso. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,gradualmente tomamos la historia de usuario que comienza como una frase Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y durante el curso del proyecto agregamos un par de frases a el y lo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,convertimos en algo que se ve como esto típicamente a través pruebas de aceptación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y luego implementamos el caso de uso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Lo que Jacobson dijo fue "miren, esta es la abstracción central de su aplicación, así que eso podría ser un objeto" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,El lo llamó un controller, yo lo llamaría un objeto interactor. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Lo llamaría así para que no se confundieran con MVC Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que sus objetos controller son mis interactors Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,son objetos que implementan un caso de uso. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,los interactors tienen reglas específicas de negocio para la aplicación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué significa tener reglas específicas de negocio para la aplicación? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡No pueden estar en un framework! ¡Claramente! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,van a ser reglas de negocio que estás colocando por el propósito de la aplicación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que sería una regla de negocio no específica de la aplicación? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Una regla que no fuera específica a la aplicación. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Bueno, puedes tenerlas, puedes tener... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Perdón! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Entidades Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Entidades que representan objetos de negocio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que pueden pertenecer a más de una aplicación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y en cada aplicación en la que la entidad apareciera podría Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,encapsular las mismas reglas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que colocas lógica de negocio agnóstica de la aplicación en tus entidades Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y colocas reglas de negocio específicas de la aplicación en interactors Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y noten que hay una dependencia entre ellos. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,El interactor sabe sobre la entidad. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Bueno, que sería una entidad, algo como una orden, o un cliente. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,o, programadores Rails, ¿Qué harían con algo como esto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cómo lo llamarían? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿En qué directorio tendría que colocarse? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,En el directorio de modelos... no no iría ah! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡No iría en el directorio de modelos! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué es lo que va en el directorio de modelos? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cosas que derivan de ... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no importa... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que cosas derivarían de ActiveRecord? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Los modelos? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Los modelos derivan desde ActiveRecord? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Bueno, ¡Estas entidades no las quiero derivando de ActiveRecord! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Estas entidades están desacopladas de la base de datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,también los interactors, no saben nada de la base de datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no saben nada sobre mecanismos de entrega Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,son agnósticos a todas esas cosas, estas son reglas de negocio. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,reglas de negocio específicas de la aplicación en interactors y agnósticas en entities. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bien aisladas del resto de la aplicación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cómo obtenemos la data dentro y fuera de los interactors y las entities? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y Jacobson tenía una respuesta para esto también, decía: Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"usaremos fronteras" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,son esencialmente interfaces, son protocolos o interfaces. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,en Java los haríamos interfaces, en .Net serían interfaces Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,en Ruby no serían nada Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero aún estarían allí, conceptualmente, escondiéndose tras bambalinas. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,un conjunto de métodos invocados por interactors o por componentes Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,del otro lado de la frontera con el propósito de lograr algo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y con esto establecido tenemos los tres objetos en el modelo de Jacobson Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y escribió un libro completo de esto un libro facinante. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero esos son las tres partes centrales del modelo Jacobson Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tenemos un montón de interactors Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,donde cada uno representa un caso de uso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tenemos un montón de entities Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cada una representando un objeto de negocio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,todas las reglas de negocios van aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que pasa con validación? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cosas que tienen que ejecutarse en el navegador Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cosas en javascript, ¿No son esas reglas de negocio? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Pueden ejecutarse en estos objetos? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no lo harán, van a ejecutarse en un computador distinto... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,probablemente en el computador del usuario Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,van a ejecutarse en un lenguaje distinto: javascript Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,van a estar a un lado, ¿Significa que no son parte de este modelo? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Aun son parte de este modelo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,solo que están ejecutandose en otra máquina y escritos en otro lenguaje Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero están tan desacopladas como el resto de las partes, ya que tratamos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,de tener todas las reglas de negocios desacopladas. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,aquí está el diagrama completo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tenemos algún mecanismo de entrega, que habla con el usuario. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,por cierto, tengo lásers aquí. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tienes que tener lásers. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No dejen que llegue a sus ojos! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es uno bastante brillante Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y tengo uno rojo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y tengo este otro Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no lo puedes ver, oh ahi casi se puede ver Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que tal ahí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,nahh, no se ve bien Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,virtualmente desaparece Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,ehh, uno de estos va a servir Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,uh, este es brillante Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que tal ese Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,ese es aun más brillante! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que tal este, algo brillante.. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que tal este Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,miren son todos brillantes Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que color es este láser? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,puedes verlo un poco en mi reloj Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Pueden ver eso? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿No es cool? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué color es este láser? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Es un láser ultra violeta Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,un poco de tinte aun está en el violeta pero la mayoría de la energía Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que sale es ultra violeta Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que tan cool es eso? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tengo un láser UV Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No se que hará por mí, todo lo que puedo hacer es Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hacer que mis lentes queden negros Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero ... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que tal el rojo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tenemos un usuario aquí que va a interactuar con la aplicación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,a travez del mecanismo de entrega Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cuál es el mecanismo de entrega? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡No me importa! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡No me importa cual es el mecanismo de entrega! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,puede ser la web, puede ser clientes pesados, puede ser una aplicación de consola Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,puede ser un conjunto de servicios web Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡No me importa! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y quiero que se mantenga así Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no me interesa cual sea el mecanismo de entrega, voy a tener el mecanismo de entrega Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hablando conmigo a través de una interface desde la cual mis interactors van a derivar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,mis interactors luego van a cachear la data que viene desde el usuario a través del Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,mecanismo de entrega. Mi interactor impondrá lógica de negocio específica Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,irá a mis entidades que encapsulan lógica no específica Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y tendrémos harto trabajo interesante hecho, luego juntará harta data de vuelta Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,enviandola de vuelta por las fronteras hacia el mecanismo de entrega llegandole al final al usuario Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,noten la dirección de las dependencias justo aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,el mecanismo de entrega depende de la frontera Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,nada hacia la derecha del mecanismo de entrega depende de él. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no hay ninguna dependencia terminando en el mecanismo de entrega Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,lo que significa que puedo tomar toda esta parte Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y colcarla en una gema (gem) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,o una dll si son programadores .Net Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,o un .jar si son programadores Java Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,puedo tomar eso y colocarlo en un lugar completamente desacoplado de todo lo demás Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y puedo hacer que el mecanismo de entrega sea un plug-in para mi aplicación. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,imagínense lo que eso significa para ustedes Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si el mecanismo de entrega fuera un plug-in para sus aplicaciones. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,eso implicaría que ustedes no tendrían que incorporarlo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cuándo no quicieras incorporar el mecanismo de entrega? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cuando estás ejecutando test! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡digamos que es cucumber! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Este mecanismo de entrega de ahí, ¡Digamos que es cucumber! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que tan rápido dirías que eso se ejecuta? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bueno va tan rápido como puede, ya que no hay ningún sistema web Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no hay web servers, no HTML, todo el javascript sucede en otra parte Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no hay web server o parecido aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,ahí está cucumber Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,puedes hacer que tus tests ejecuten muy muy rápido Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que sigamos el camino Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,un usuario decide que necesita interactuar con el sistema Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que el usuario tiene una buena idea, llega al sistema Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,escribe un montón de cosas en el teclado, este es un ambiente web, quizás Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no importa Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,el mecanismo de entrega de alguna manera captura lo que el usuario quiere Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,quizás en un formulario, quizás en alguna ventana, a quien le importa Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,quizás en la linea de comando, no me importa Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,el mecanismo de entrega eventualmente obtiene todos los datos que requirere Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y crea un modelo de solicitud. (Request Model) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que es esto, es una estructura de datos, no tiene métodos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es solo un conjunto de datos simples Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,nada dentro de esta estructura de datos parece que siquiera viene de la web Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no puedes ver esta estructura y decir "oh esto debe venir de la web" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no hay ids de sesión, nada de todo lo otro Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,solo un conjunto de datos que representan la solicitud Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,eso va a través de la frontera Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hacia el iteractor Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,ahora el interactor la tiene y es aun una tonta estructura de datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero el interactor sabe que hacer con ella Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,obtiene toda la información interesante del request model Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y luego va a tener que ejecutar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué es lo que hace? habla con los objetos de entidad Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hay una bonita interacción, a todo esto por eso lo llamamos un interactor Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,porque interactúa con las entidades Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,también interactúa con el usuario Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es lo que como se diría, une todas las piezas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que el interactor le indica a las entidades "haz esto, lo otro , aquello" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,finalmente el interactor termina Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y ha creado un modelo de resultado (Result Model) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué es un result model? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Una estructura de datos! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no tiene nada más dentro, no hay métodos, nada Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,solo un montón de tontos datos, nada dentro podría indicar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que es para la web, solo un montón de tontos datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que luego envía a través de la frontera y le permite al mecanismo de entrega Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,como presentar este resultado el usuario Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que cuando ejecutas un test con cucumber aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,el test de cucumber está creando la estructura de datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,está invocando en interactor correspondiente llendo a través de la frontera Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,toda la magia pasa en este lado, las reglas de negocio son invocadas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,un modelo de respuesta es creado y se devuelve mediante el Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,mecanismo de entrega hacia cucumber y ahora puedes probar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,todas las reglas de negocio y todos los casos de uso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,de tu aplicación, y todo lo que tu aplicación hace Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,en el lado derecho del mecanismo de entrega, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,sin tener el mecanismo de entrega presente Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Por qué es esto importante? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Porqué querríamos hacer esto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Bueno, primero que todo, si fueras a mirar esta parte del código Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Qué crees que verías? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cuáles serían los nombres de estos directorios Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,interactors, boundaries (fronteras) y entidades Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,alguien tiene cerebro aquí .. bien Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y si fueras dentro de los interactors Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que crees que verías dentro? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Como estarían nombrados? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"crear orden", eso es interesante no? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"crear orden", "agregar item a una orden" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"enviar orden", "eliminar orden" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"entregar orden", tendrían los nombres de los casos de uso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que al nivel más alto de la aplicación verían una estructura Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que se vería como el propósito de la aplicación Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,(diapositiva: ¿Que pasa con MVC?) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Que pasa con Model View Controller Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿No es esta la arquitectura de la web? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Desde donde sale esto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,oh, necesito cambiar la diapositiva Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,denme un segundo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Esta persona ¿Quién sabe como se llama? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,oh, no era mi intensión poner el puntero entre sus ojos! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Quién es este tipo? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡es Trygve! ¿Cuál es su apellido? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡Reenskaug! tampoco lo puedo pronunciar, ¡Pero probablemente tu puedes! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Trygve Reenskaug Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Que es el inventor de Model View Controller Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,lo inventó en 1979 Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si recuerdo correctamente Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Probablemente sea el primer patrón de diseño al que se le puso nombre Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Model View Controller Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y fue una idea muy interesante y una idea muy simple Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,vamos a tener un modelo, que sería un modelo de alguna entidad de negocio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es donde colocamos las reglas de negocio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y el controller obtiene datos del usuario y la vista despliega información al usuario Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,esas son las bases de model view controller Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Hay aquí una relación "observer" que es el motivo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,por lo que lo dibujé con doble flecha Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que View observa el Model Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y cuando el model cambia la vista Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,automáticamente representa este cambio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Esto fue escrito ... ¿En que lenguaje? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Smalltalk Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Si hubiera una pantalla en smalltalk Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que tubiera un montón de cosas en ella Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cuántas Views creen que habría? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cientos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Si tubieras cien cosas en pantalla, habrían cien Views Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Porque este patrón de diseño fue pensado para ser usado en pequeño Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cada pequeña widget en la pantalla tenía un controller, un model y una view Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cada rectángulo, cada círculo, cada pequeña cosa en la pantalla Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tenía sus propios model, controller y view Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,era un mecanismo pensado para ser usado en lo pequeño Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y se replicacía una y otra vez Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hemos cambiado eso de manera significativa Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,en el mundo Web hemos decidido que la pantalla entera es un View Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,bueno, esa no era la intención aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y ¿Cuántos modelos una vista conoce? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cientos! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Hemos mantenido la idea de los modelos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,pero la View .. eh, tengo una imágen, la voy mostrar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Alguien reconoce esta imagen? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,oh, nuestros objetos de negocio están por aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,en los modelos, tenemos un conjunto de controllers Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,los controllers vailan tratando de controlar todos los modelos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"oh tengo toda esta data desde la web" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"voy a desempacar todo esto de la web" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"voy a decirle a esos objetos de negocio que hacer" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y los objetos de negocio hacen cosas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y luego en controller debe decir Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"ok, que es lo que hicieron" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y debe recolectar toda la información Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y pasarla a la View Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y la View está esperando, escrita en un Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,horrible y bastardizado lenguaje Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no puedes saber si es HTML o Ruby o quién sabe que cosa Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y ¡Está accediendo a los objetos de negocio! Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Tu View Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Tus Views no debieran saber nada Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,sobre los objetos de negocio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tus Views debieran estar completamente divorciada de los objetos de negocio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No debieran siquiera saber que los objetos de negocio existen Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tus controllers no debieran saber sobre los objetos de negocio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,debieran estar completamente divorciados de eso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,la comunicación entre los controllers y los views Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,son esas interesantes estructuras de datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,imaginen un controller Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que obtiene un request HTTP Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Aquí está nuestro request HTTP Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cargado de datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,a todo esto, tengo que decir esto... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,la web es probablemente la peor idea que ha sucedido Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,a nuestra industria en los últimos 40 años Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,(dificultades técnicas) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,.... para entregar datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Puede ser lo mejor que tengamos, pero está bastante podrida Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,debe haber un patrón en el que podamos hacer esto Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,la web... Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Alguien ha hecho algo de programación para el 3270? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Reconoces esto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Esto no es nada más que programación para 3270 Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y no voy a decir que en esteroides Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es más como en estricnina (pesticida) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es programacíon para el 3270 envenenada con Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cantidades de basura Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cuántos lenguajes debes saber para escribir una aplicación web? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tienes que saber, bueno, algún lenguaje de programación, pero es incidental Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Ruby, Java, como séa Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Luego debes saber HTML, CSS, Javascript, esto, lo otro Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y esta persona de aquí dice "Creemos comunidades nivelando hacia arriba" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿¡Nivelando hacia arriba!? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,(ndt: no se entiende esta broma, está en un acento muy local) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,No estamos ayudando a nuesta causa con este verdaderamente terrible Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,mecanismo que hemos adoptado Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,en todo caso, este es el request HTTP Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,llega al servidor web, pasa por un mecanismo enrutador que no importa, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es solo decodificar un monton de slashes y nombres Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,uh, podemos llamarlo REST supongo, como sea Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,aquí llega el controller y el controller es ejecutado por algo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,en el servidor web que hace todo eso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y el controller maneja todos los datos del formulario o como sea Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y lo coloca en el request model Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no habla con ningún objeto de negocio Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,solo es una pequeña estructura de datos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y listo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no tiene nada más que hacer Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,cómo una última acción lo empuja por una interface Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,hacia un interactor Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y el interactor hace lo que tenga que hacer Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,crea un response model Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y el response model finalmente es pasado a través de un boundary Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,a un presentador Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,ahora, el trabajo de un presentador Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,ahora el trabajo del presentador, a todo esto Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,alguno de ustedes quizás conozca este patrón de diseño Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Model View Presenter Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,El trabajo del presentador es tomar este modelo agnóstico Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,este modelo de todos los resultados del que no tiene idea como representar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y su objetivo es convertirlo en otra estructura de datos llamado ViewModel Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que ha sido preparado para la web Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cómo preparas algo para la web? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,lo llenas de basura Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,como por ejemplo si vas a desplegar la vista en una grilla Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,organizas los datos en una estructura tabular Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no una que sepa sobre la web, solo una que sepa que es una grilla Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,en la pantalla quizás haya menúes algunos que estén deshabilitados Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,debieran haber booleanos aquí que digan si esos menús están deshabilitados o no Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,quizás hayan botones en la pantalla que tienen nombres Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y estos puedan cambiar dependiendo del estado el sistema Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,esos nombres debieran estar en el ViewModel Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que en el final la View es este realmente estúpido pedazo de código Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,le pasas el ViewModel Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y todo lo que la View hace es "coloca eso ahi, eso allá, eso otro acá, ok listo" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tan estúpido que no necesitas probarlo con pruebas unitarias Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no necesitas escribir pruebas unitarias para esas cosillas tontas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,que la View debe hacer Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Así es como me gusta lidear con probar vistas Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no lo hago Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,me aseguro de que no hay necesidad Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,simplemente no hay necesidad de probar esto de por aquí Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,o bueno, si hay algún test de aceptación que dependa de la interactividad de la View Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,realizo un par de test de aquellos y si, van a través de la interfaz de usuario Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,o quizas hago muchos de esos, pero en todo caso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no voy a probar todo esto otro, entrando de por aquí abajo (apuntando al View) Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,Si estoy probando reglas de negocio voy a escojer la interfaz más rápida que tenga Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,aquí está toda la enchilada Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,sin las entidades, me gusta dejarlas aparte Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tenemos los interactors Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,estos hablan con las entidades Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,tenemos nuestras interfaces de frontera Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,los iteractors usan el request model y crean el response model Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,el presenter usa el response model y crea un ViewModel Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,el controller crea el request model Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y toda esta cosa a la derecha de la línea Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,puede ser puesta en un .jar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y lo que está a la izquierda de la línea Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,puede ser puesto en otro .jar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y los puedes interconectar Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si quieres Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,no tienes para qué Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,yo sé que estás pensando "ah pero tengo que hacer mi trabajo" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y si, tienes que hacer tu trabajo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,así que dime cómo es tu día Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,primero, ¿Cuánto toma ejecutar tus test? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡Demasiado! buena respuesta Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que tanto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¡4 minutos y medio! ¿De inicio a término? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es bueno, ¿Cuantos test hay? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,miles, wow, 4 minutos y miles de tests Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,es un buen tiempo Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,si es 4 minutos y medio estoy contento con eso Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Quien tiene algo más largo? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Hora y media? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,eso no está bien Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿atrás? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,28 minutos Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Cuántos tests? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Demasiados? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Demasiados? bueno, esa es una respuesta psicológica interesante Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,28 minutos, ¿Por qué?, porque hay muchos tests, hummm Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,y si hay muchos tests, ¿Que tendrías que hacer? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"necesitamos deshacernos de los test" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"toman mucho en ejecutar", este es el síntoma que ocurre, ¿Cierto? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"Saben, esta cosa de hacer pruebas no funciona" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"osa, con todo que toma ejecutar los tests, solo nos demora más" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,"si solo pudiéramos programar y entregar" Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,¿Que pasa con la base de datos? Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,