Return to Video

Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin

  • 0:16 - 0:23
    ayudenme a recibir al tio bob al escenario
  • 0:37 - 0:41
    una de las ventajas de aparecer último
  • 0:41 - 0:43
    es que puedes corregir a los que estubieron antes
  • 0:45 - 0:47
    ¡cucumber no es lento!
  • 0:47 - 0:50
    a quien haya dicho eso
  • 0:50 - 0:53
    probando a travez de la UI es lento
  • 0:53 - 0:56
    levantar rails cada ves que ejecutas un test es lento (y también estúpido)
  • 0:56 - 1:02
    eso es lo lento, cucumber es un pequeño paquete muy liviano
  • 1:02 - 1:06
    que hace una pasada con expresiones regulares, llama una función y entra y sale rápido
  • 1:06 - 1:07
    cucumber no es lento
  • 1:07 - 1:11
    alguien dijo que sería bueno que nuestra comunidad fuera diversa
  • 1:11 - 1:17
    miremos al rededor de nosotros, ¿Cuál parece ser la característica que se expresa de manera más frecuente que otras?
  • 1:17 - 1:24
    si, bello facial ...
  • 1:24 - 1:27
    bueno, déjenme explicarlo de esta manera
  • 1:27 - 1:28
    si quicieras atraer específicamente a una audiencia más diversa dentro de los desarrolladores
  • 1:28 - 1:29
    algo que quicieras evitar es decir grocerías durante una presentación
  • 1:29 - 1:33
    público: ¡totalmente en desacuerdo! (usando grocerías)
  • 1:33 - 1:34
    no voy a entrar en esa competencia
  • 1:34 - 1:40
    yo sé lo que se debe hacer con los desarrolladores de mala calidad
  • 1:40 - 1:42
    público: ¿lo mismo que con los jefes de proyecto?
  • 1:42 - 1:45
    Bob: no, no lo mismo que con los jefes de proyecto
  • 1:45 - 1:48
    ¿y qué es todo eso sobre VIM?
  • 1:48 - 1:50
    quién usa VIM por aquí
  • 1:50 - 1:57
    ¡¿Qué mierda les pasa a ustedes gente?!
  • 1:59 - 2:01
    Yo quería dejar de usar ese editor hace años atrás y ahora todo el mundo quiere empezar ausarlo...
  • 2:01 - 2:08
    o bueno...
  • 2:11 - 2:14
    un último comentario sobre eso. ¿Quién ve House?
  • 2:14 - 2:16
    ¿A quién le gusta ese programa?
  • 2:16 - 2:17
    ok, ¿Quién de ustedes se identifica con el personaje de House?
  • 2:17 - 2:19
    House es un doctor que es la misma escencia de un imbécil.
  • 2:19 - 2:21
    solo imagínense que es la persona más iracible, negativa, horible y suertuda que puedan imagninar
  • 2:21 - 2:26
    explicó su comportamiento un par de años atrás en uno de los episodios
  • 2:26 - 2:28
    dijo: "soy tan bueno que no pueden desaserce de mi así que soy libre de actuar como me plazca"
  • 2:28 - 2:29
    de hecho es como él mide que tan valioso es
  • 2:29 - 2:31
    prueba su valía haciéndose tan repugnante y luego observando como no lo despiden.
  • 2:31 - 2:34
    porque es simplemente tan bueno.
  • 2:34 - 2:40
    House es un perdedor...
  • 2:40 - 2:47
    tengan esto en mente los que piensen "¡Ah, puedo romer todas las reglas que quiera!"
  • 2:47 - 2:49
    ¡Puedo llegar a la hora que quiera e irme a casa a la hora que me plazca! ¡Puedo programar borracho!
  • 2:49 - 2:52
    pues lo siento, House es un perdedor.
  • 2:52 - 2:54
    a propósito, se me ocurrió una regla hace harto tiempo atrás sobre alcohol y programación: "lo mismo que a pilotos"
  • 2:54 - 2:55
    El nombre de esta presentación ... Oh a propósito darles una lección sobre ciencia primero..
  • 2:55 - 2:57
    ¿Alguien sigue esto de E-Cat?
  • 2:57 - 3:03
    Bueno, es facinante, ¿si?
  • 3:03 - 3:06
    público: he leído al respecto.
    Bob: Has leído al respecto! ok, bueno
  • 3:06 - 3:07
    esto es probablemente un Hoax. Probablemente.
  • 3:07 - 3:10
    Bueno si tubiera que darle una probabilidad, sería como 9/10 para Hoax y 1/10 para verdad,
  • 3:10 - 3:13
    pero el 1/10 me tiene inquieto, por cierto esa no es una de las 7 palabras de las que habla George Carling
  • 3:13 - 3:17
    la idea aqui es hay una persona en Italia cuyo nombre es Andrea Rossi
  • 3:17 - 3:20
    y por varios años ha estado diciendo que puede generar energía
  • 3:20 - 3:25
    mediante hacer pasar hidrógeno calentado sobre Niquel
  • 3:25 - 3:28
    y que los átomos de hidrógeno se fusionan con los de niquel para producir cobre y liberar energía.
  • 3:28 - 3:30
    esta energía se libera en forma de rayos gamma y calor y los rayos gamma pueden ser absorbidos y producir más calor
  • 3:30 - 3:32
    pero no hay otra forma de radiación que sea emitida, aparte de protones, neutrones o electrónes.
  • 3:32 - 3:35
    no es radioactiva, es solo esta reacción nuclear muy interesante.
  • 3:35 - 3:37
    Por supuesto que la mayoría de los científicos recuerda el horrible fiasco de la fusión en frío en 1989
  • 3:37 - 3:38
    todos muy escepticos, pero el dice "no, lo puedo hacer y puedo probarlo".
  • 3:38 - 3:41
    El 28 de octubre juntó a un grupo de profesores, a alguien que comparía su generador de 1Mw
  • 3:41 - 3:43
    juntó a un montón de reporteros e inició este generador y logró hacer hervir muchos litros de agua
  • 3:43 - 3:48
    400kw o 400kw hora de energía, no recuerdo, un montón de agua que hirvió
  • 3:48 - 3:51
    y luego apagó la máquina y el cliente inmediatamente pagó por el generador
  • 3:51 - 3:53
    y aun todo esto está rodeado de un montón de secreto ... hay un catalizador
  • 3:53 - 3:55
    del que el no habla al respecto, no nos cuenta que es...
  • 3:55 - 3:57
    Probablemente una mentira (Hoax), probablemente muy bueno para ser verdad.
  • 3:57 - 4:02
    Pero, alomejor no...
  • 4:02 - 4:05
    Investiguen sobre esto, es interesante. Quizás sea mentira ...
  • 4:05 - 4:08
    sea muy bueno para ser verdad... yo miro muchas cosas que parecen ser muy buenas para ser verdad
  • 4:08 - 4:12
    y digo "bueno, parecen muy buenas para ser vedad", pero luego veo a mi señora ...
  • 4:12 - 4:19
    ¡Así es como obtienes diversidad en un grupo!
  • 4:20 - 4:22
    Lo que miran en pantalla es la estructura de alto nivel
  • 4:22 - 4:25
    de una aplicación Rails que hace algún tiempo atrás escribí
  • 4:25 - 4:27
    denle una mirada a los directorios ¿Qué es lo que ven?
  • 4:27 - 4:32
    bueno, ven controllers y esperan ver controllers en una aplicación Rails cierto?
  • 4:32 - 4:39
    y ven models y ven views y algunas otras cosas como helpers y util
  • 4:39 - 4:42
    bueno pueden ir al spec de por aquí porque por supuesto es dirigida por tests
  • 4:42 - 4:45
    ¿Quién hace desarrollo guiado por pruebas?
  • 4:45 - 4:47
    hmmm vamos a tener que conversar...
  • 4:47 - 4:54
    pueden ver que también hay pruebas de controllers, models, bla bla bla, ok
  • 4:54 - 4:58
    ¿Que es lo que ven?
  • 4:58 - 5:02
    si fuera a mostrarles esto y no les digiera que es una aplicación Rails
  • 5:02 - 5:04
    ¿Podrían reconocer que de hecho es una aplicación Rails?
  • 5:04 - 5:06
    oh, si, se ve como una aplicación Rails. Bueno, quizás haya otros tipos
  • 5:06 - 5:07
    de aplicaciones que tengan esta estructura de directorios
  • 5:07 - 5:10
    pero es una aplicación Rails, así que ahora mi pregunta a Uds. es:
  • 5:10 - 5:15
    ¿Porqué la estructura de alto nivel en la aplicación debiera comunicarte esto?
  • 5:15 - 5:17
    ¿Qué es lo que la aplicación hace?
  • 5:17 - 5:20
    No hay ninguna pista aquí
  • 5:20 - 5:23
    "Substitute" es el nombre del proyecto
  • 5:23 - 5:25
    bueno, eso no es muy útil
  • 5:25 - 5:29
    aparentemente el nombre del cliente es "Angela", quizás...
  • 5:29 - 5:32
    pero nada en el alto nivel de la aplicación, el nivel más visible, al cual todos van primero
  • 5:32 - 5:36
    nada aquí habla sobre lo que la aplicación hace.
  • 5:36 - 5:37
    Es inmediatamente reconocible como una aplicación rails
  • 5:37 - 5:41
    así que quizás lo más importante sobre esta aplicación es el framework sobre el que está construido.
  • 5:41 - 5:43
    Y sobre el resto no nos preocupamos mucho.
  • 5:43 - 5:47
    Rails es un framework Web, ¿Qué es la web?
  • 5:47 - 5:53
    ¡Gracias! ¡Si! es un mecanismo de entrega (es lo que dice en el slide)
  • 5:53 - 5:58
    La web es un detalle, la web no es particularmente importante para tu aplicación
  • 5:58 - 6:02
    la web es simplemente la forma en la que tu aplicación obtiene información del usuario
  • 6:02 - 6:08
    y devuelve información hacia el usuario. La web es una tubería.
  • 6:08 - 6:10
    No es nada más que una tubería. No es la estructura central de tu aplicación
  • 6:10 - 6:14
    No es la gran estructura que define tu aplicación y la convierte en lo que es.
  • 6:14 - 6:19
    La web es solo un tonto detalle.
  • 6:19 - 6:20
    y aún así, domina nuestro código.
  • 6:20 - 6:24
    Podemos observar una aplicación web y saber que es una aplicación web
  • 6:24 - 6:27
    a causa de ese directorio de controllers. No otro tipo de aplicación tendría
  • 6:27 - 6:30
    un directorio controllers en el nivel superior, especialmente si hay modelos y views al rededor
  • 6:30 - 6:33
    vamos a hablar sobre Model View Controller (MVC) y la horrible bastardización que ha ocurrido con él
  • 6:33 - 6:40
    vean este dibujo de alto nivel de una librería (de libros)
  • 6:41 - 6:44
    si no tubiera la palabra "librería" en el título podrías mirar esto y decir
  • 6:44 - 6:47
    " hay una gran entrada por acá, hay unas oficinas, eso parece un escritorio, donde la gente podría llegar y registrar cosas"
  • 6:47 - 6:51
    "parece que allí hay algunas estanterías, oh, parece que eso es una librería"
  • 6:51 - 6:54
    La estructura de alto nivel en una librería te mostraría que es una librería.
  • 6:54 - 6:55
    o ¿Qué tal una iglesia?
  • 6:55 - 7:01
    ¿Hay siquiera una tenue duda de que eso es una iglesia?
  • 7:01 - 7:05
    tienes una gran entrada, puedes ver el altar, puedes ver los confesionarios.
  • 7:05 - 7:09
    ¡Esta es una iglesia!
  • 7:09 - 7:11
    La estructura de alto nivel de este edificio grita su propósito a quien lo mira,
  • 7:11 - 7:15
    pero la estructura de alto nivel de mi aplicación Rails no grita su propósito.
  • 7:15 - 7:21
    grita cuál es el framework con el que fue contruído. grita Rails.
  • 7:21 - 7:23
    Esto es muy bueno para DHH no tan bueno para ti.
  • 7:23 - 7:26
    ¿Por qué esto sucede?
  • 7:26 - 7:30
    ¿Por qué creamos arquitecturas que reflejan el framework que a su vez reflejan el mecanismo de entrega
  • 7:30 - 7:33
    y no reflejan la aplicación?
  • 7:33 - 7:36
    ¿Acaso no estamos construyendo una aplicación que tiene un propósito?
  • 7:36 - 7:43
    ¿No es la arquitectura acerca del propósito?
  • 7:44 - 7:45
    Ciértamente lo es desde el punto de vista de la construcción. No es también cierto del ...
  • 7:45 - 7:51
    oh, es mi señora que me llama ... disculpen, aparé mi teléfono.
  • 7:51 - 7:57
    ¿En qué estaba?
  • 7:57 - 8:02
    ¡Graciás! ¿Acaso no es la arquitectura de la aplicación completamente sobre el propósito de ésta ?
  • 8:02 - 8:04
    ¿Porqué no debiéramos ver ese propósito al nivel más alto del código?
  • 8:04 - 8:08
    El año era 1993
  • 8:08 - 8:14
    Esta persona, llamada Ivar Jacobson escribió un libro: "Ingeniería de software orientada al objeto"
  • 8:14 - 8:20
    "Una aproximación desde los casos de uso"
  • 8:20 - 8:22
    ¿Qué estaba sucediendo en 1993?
  • 8:22 - 8:25
    ¡No había web! la web aun no había nacido o quizás lo había hecho, quizás, no recuerdo
  • 8:25 - 8:27
    una persona escribió una página web y luego se expandió como fuego
  • 8:27 - 8:30
    pero no había web en el momento todos estábamos haciendo C++ o C o alguna cosa horrenda como esas
  • 8:30 - 8:32
    haciendo aplicaciones de clientes pesados
  • 8:32 - 8:35
    Y aquí llega este sujeto y escribe este libro y es un libro facinante
  • 8:35 - 8:37
    y resuelve el problema de la arquitectura
  • 8:37 - 8:40
    no es el primero en hacerlo, no será el último, pero en este libro
  • 8:40 - 8:41
    habla sobre como obtener el propósito de la aplicación en el nivel superior
  • 8:41 - 8:42
    que sea la estructura central sobre la que construimos.
  • 8:42 - 8:47
    El lo llamó "una aproximación dirigida por los casos de uso"
  • 8:47 - 8:49
    ¿Qué es un caso de uso?
  • 8:49 - 8:52
    bueno eso es un caso de uso
  • 8:52 - 8:56
    nada muy espectacular sobre ellos
  • 8:56 - 8:58
    es decir, le das un nombre, hablas un poco sobre los datos que es pasada
  • 8:58 - 9:00
    hacia el caso de uso "crear orden", el id de cliente, alguna info de contacto del cliente
  • 9:00 - 9:04
    y algunas otras cosas
  • 9:04 - 9:10
    hablas un poco sobre como el sistema va a responder cuando obtenga esta solicitud
  • 9:10 - 9:14
  • 9:14 - 9:18
  • 9:18 - 9:21
  • 9:21 - 9:24
  • 9:24 - 9:27
  • 9:27 - 9:31
  • 9:31 - 9:33
  • 9:33 - 9:37
  • 9:37 - 9:39
  • 9:39 - 9:42
  • 9:42 - 9:48
  • 9:48 - 9:50
  • 9:50 - 9:52
  • 9:52 - 9:54
  • 9:54 - 9:58
  • 9:58 - 10:00
  • 10:00 - 10:01
  • 10:01 - 10:03
  • 10:03 - 10:08
  • 10:08 - 10:11
  • 10:11 - 10:14
  • 10:14 - 10:16
  • 10:16 - 10:18
  • 10:18 - 10:19
  • 10:19 - 10:23
  • 10:23 - 10:29
  • 10:29 - 10:32
  • 10:32 - 10:34
  • 10:34 - 10:36
  • 10:36 - 10:38
  • 10:38 - 10:40
  • 10:40 - 10:42
  • 10:42 - 10:46
  • 10:46 - 10:51
  • 10:51 - 10:52
  • 10:52 - 10:54
  • 10:54 - 10:55
  • 10:55 - 10:57
  • 10:57 - 11:03
  • 11:03 - 11:07
  • 11:07 - 11:10
  • 11:10 - 11:13
  • 11:13 - 11:15
  • 11:15 - 11:22
  • 11:25 - 11:26
  • 11:26 - 11:28
  • 11:28 - 11:29
  • 11:29 - 11:31
  • 11:31 - 11:36
  • 11:36 - 11:37
  • 11:37 - 11:42
  • 11:42 - 11:46
  • 11:46 - 11:53
  • 11:56 - 12:02
  • 12:02 - 12:05
  • 12:05 - 12:07
  • 12:07 - 12:09
  • 12:09 - 12:10
  • 12:10 - 12:13
  • 12:13 - 12:19
  • 12:19 - 12:22
  • 12:22 - 12:24
  • 12:24 - 12:26
  • 12:26 - 12:27
  • 12:27 - 12:30
  • 12:30 - 12:32
  • 12:32 - 12:36
  • 12:36 - 12:38
  • 12:38 - 12:41
  • 12:41 - 12:43
  • 12:43 - 12:47
  • 12:47 - 12:50
  • 12:50 - 12:55
  • 12:55 - 12:56
  • 12:56 - 13:01
  • 13:01 - 13:03
  • 13:03 - 13:08
  • 13:08 - 13:09
  • 13:09 - 13:11
  • 13:11 - 13:13
  • 13:13 - 13:14
  • 13:14 - 13:16
  • 13:16 - 13:19
  • 13:19 - 13:26
  • 13:26 - 13:29
  • 13:29 - 13:32
  • 13:32 - 13:37
  • 13:37 - 13:42
  • 13:42 - 13:44
  • 13:44 - 13:49
  • 13:49 - 13:54
  • 13:54 - 13:55
  • 13:55 - 14:01
  • 14:01 - 14:01
  • 14:01 - 14:04
  • 14:04 - 14:06
  • 14:06 - 14:07
  • 14:07 - 14:11
  • 14:11 - 14:13
  • 14:13 - 14:15
  • 14:15 - 14:19
  • 14:19 - 14:22
  • 14:22 - 14:25
  • 14:25 - 14:27
  • 14:27 - 14:29
  • 14:29 - 14:30
  • 14:30 - 14:33
  • 14:33 - 14:40
  • 14:40 - 14:44
  • 14:44 - 14:46
  • 14:46 - 14:50
  • 14:50 - 14:52
  • 14:52 - 14:53
  • 14:53 - 14:58
  • 14:58 - 15:02
  • 15:02 - 15:04
  • 15:04 - 15:05
  • 15:05 - 15:09
  • 15:09 - 15:10
  • 15:10 - 15:13
  • 15:13 - 15:16
  • 15:16 - 15:17
  • 15:17 - 15:20
  • 15:20 - 15:23
  • 15:23 - 15:25
  • 15:25 - 15:28
  • 15:28 - 15:29
  • 15:29 - 15:35
  • 15:35 - 15:38
  • 15:38 - 15:41
  • 15:41 - 15:44
  • 15:44 - 15:47
  • 15:47 - 15:49
  • 15:49 - 15:51
  • 15:51 - 15:52
  • 15:52 - 15:56
  • 15:56 - 15:57
  • 15:57 - 16:01
  • 16:01 - 16:04
  • 16:04 - 16:06
  • 16:06 - 16:12
  • 16:12 - 16:13
  • 16:13 - 16:18
  • 16:18 - 16:20
  • 16:20 - 16:23
  • 16:23 - 16:25
  • 16:25 - 16:27
  • 16:27 - 16:29
  • 16:29 - 16:33
  • 16:33 - 16:36
  • 16:36 - 16:37
  • 16:37 - 16:39
  • 16:39 - 16:39
  • 16:39 - 16:43
  • 16:43 - 16:46
  • 16:46 - 16:48
  • 16:48 - 16:51
  • 16:51 - 16:54
  • 16:54 - 16:56
  • 16:56 - 17:00
  • 17:00 - 17:02
  • 17:02 - 17:03
  • 17:03 - 17:05
  • 17:05 - 17:06
  • 17:06 - 17:08
  • 17:08 - 17:09
  • 17:09 - 17:11
  • 17:11 - 17:14
  • 17:14 - 17:17
  • 17:17 - 17:22
  • 17:22 - 17:25
  • 17:25 - 17:32
  • 17:38 - 17:44
  • 17:44 - 17:46
  • 17:46 - 17:49
  • 17:49 - 17:54
  • 17:54 - 17:58
  • 17:58 - 18:02
  • 18:02 - 18:03
  • 18:03 - 18:05
  • 18:05 - 18:10
  • 18:10 - 18:12
  • 18:12 - 18:17
  • 18:17 - 18:22
  • 18:22 - 18:24
  • 18:24 - 18:26
  • 18:26 - 18:29
  • 18:29 - 18:32
  • 18:32 - 18:35
  • 18:35 - 18:41
  • 18:41 - 18:45
  • 18:45 - 18:51
  • 18:51 - 18:54
  • 18:54 - 18:56
  • 18:56 - 18:58
  • 18:58 - 19:02
  • 19:02 - 19:03
  • 19:03 - 19:04
  • 19:04 - 19:07
  • 19:07 - 19:08
  • 19:08 - 19:12
  • 19:12 - 19:14
  • 19:14 - 19:18
  • 19:18 - 19:21
  • 19:21 - 19:25
  • 19:25 - 19:27
  • 19:27 - 19:29
  • 19:29 - 19:30
  • 19:30 - 19:32
  • 19:32 - 19:34
  • 19:34 - 19:40
  • 19:40 - 19:44
  • 19:44 - 19:45
  • 19:45 - 19:48
  • 19:48 - 19:51
  • 19:51 - 19:55
  • 19:55 - 19:57
  • 19:57 - 20:00
  • 20:00 - 20:03
  • 20:03 - 20:05
  • 20:05 - 20:12
  • 20:14 - 20:16
  • 20:16 - 20:19
  • 20:19 - 20:21
  • 20:21 - 20:25
  • 20:25 - 20:28
  • 20:28 - 20:33
  • 20:33 - 20:35
  • 20:35 - 20:39
  • 20:39 - 20:40
  • 20:40 - 20:47
  • 20:50 - 20:53
  • 20:53 - 20:55
  • 20:55 - 20:59
  • 20:59 - 21:01
  • 21:01 - 21:07
  • 21:07 - 21:11
  • 21:11 - 21:18
  • 21:23 - 21:25
  • 21:25 - 21:32
  • 21:40 - 21:42
  • 21:42 - 21:48
  • 21:48 - 21:49
  • 21:49 - 21:51
  • 21:51 - 21:53
  • 21:53 - 21:56
  • 21:56 - 22:01
  • 22:01 - 22:06
  • 22:06 - 22:10
  • 22:10 - 22:12
  • 22:12 - 22:19
  • 22:19 - 22:23
  • 22:23 - 22:25
  • 22:25 - 22:28
  • 22:28 - 22:30
  • 22:30 - 22:34
  • 22:34 - 22:35
  • 22:35 - 22:37
  • 22:37 - 22:41
  • 22:41 - 22:44
  • 22:44 - 22:46
  • 22:46 - 22:48
  • 22:48 - 22:52
  • 22:52 - 22:55
  • 22:55 - 22:57
  • 22:57 - 23:01
  • 23:01 - 23:03
  • 23:03 - 23:06
  • 23:06 - 23:08
  • 23:08 - 23:09
  • 23:09 - 23:13
  • 23:13 - 23:16
  • 23:16 - 23:22
  • 23:22 - 23:26
  • 23:26 - 23:28
  • 23:28 - 23:30
  • 23:30 - 23:32
  • 23:32 - 23:36
  • 23:36 - 23:40
  • 23:40 - 23:43
  • 23:43 - 23:47
  • 23:47 - 23:48
  • 23:48 - 23:54
  • 23:54 - 23:57
  • 23:57 - 24:01
  • 24:01 - 24:03
  • 24:03 - 24:04
  • 24:04 - 24:07
  • 24:07 - 24:09
  • 24:09 - 24:12
  • 24:12 - 24:14
  • 24:14 - 24:16
  • 24:16 - 24:18
  • 24:18 - 24:22
  • 24:22 - 24:26
  • 24:26 - 24:33
  • 24:34 - 24:38
  • 24:38 - 24:44
  • 24:44 - 24:45
  • 24:45 - 24:50
  • 24:50 - 24:53
  • 24:53 - 24:54
  • 24:54 - 24:59
  • 24:59 - 25:03
  • 25:03 - 25:06
  • 25:06 - 25:11
  • 25:11 - 25:12
  • 25:12 - 25:17
  • 25:17 - 25:18
  • 25:18 - 25:22
  • 25:22 - 25:26
  • 25:26 - 25:32
  • 25:32 - 25:33
  • 25:33 - 25:35
  • 25:35 - 25:36
  • 25:36 - 25:41
  • 25:41 - 25:44
  • 25:44 - 25:46
  • 25:46 - 25:49
  • 25:49 - 25:53
  • 25:53 - 25:55
  • 25:55 - 25:57
  • 25:57 - 26:01
  • 26:01 - 26:06
  • 26:06 - 26:07
  • 26:07 - 26:09
  • 26:09 - 26:12
  • 26:12 - 26:15
  • 26:15 - 26:18
  • 26:18 - 26:20
  • 26:20 - 26:24
  • 26:24 - 26:28
  • 26:28 - 26:29
  • 26:29 - 26:33
  • 26:33 - 26:35
  • 26:35 - 26:38
  • 26:38 - 26:42
  • 26:42 - 26:45
  • 26:45 - 26:47
  • 26:47 - 26:51
  • 26:51 - 26:53
  • 26:53 - 26:57
  • 26:57 - 27:00
  • 27:00 - 27:05
  • 27:05 - 27:09
  • 27:09 - 27:12
  • 27:12 - 27:16
  • 27:16 - 27:19
  • 27:19 - 27:20
  • 27:20 - 27:24
  • 27:24 - 27:25
  • 27:25 - 27:27
  • 27:27 - 27:30
  • 27:30 - 27:31
  • 27:31 - 27:34
  • 27:34 - 27:38
  • 27:38 - 27:40
  • 27:40 - 27:44
  • 27:44 - 27:46
  • 27:46 - 27:51
  • 27:51 - 27:53
  • 27:53 - 27:56
  • 27:56 - 27:59
  • 27:59 - 28:05
  • 28:05 - 28:07
  • 28:07 - 28:14
  • 28:15 - 28:20
  • 28:20 - 28:24
  • 28:24 - 28:27
  • 28:27 - 28:30
  • 28:30 - 28:31
  • 28:31 - 28:34
  • 28:34 - 28:36
  • 28:36 - 28:38
  • 28:38 - 28:41
  • 28:41 - 28:44
  • 28:44 - 28:49
  • 28:49 - 28:56
  • 28:59 - 29:03
  • 29:03 - 29:07
  • 29:07 - 29:10
  • 29:10 - 29:11
  • 29:11 - 29:15
  • 29:15 - 29:16
  • 29:16 - 29:20
  • 29:20 - 29:23
  • 29:23 - 29:25
  • 29:25 - 29:27
  • 29:27 - 29:32
  • 29:32 - 29:36
  • 29:36 - 29:37
  • 29:37 - 29:39
  • 29:39 - 29:41
  • 29:41 - 29:45
  • 29:45 - 29:46
  • 29:46 - 29:49
  • 29:49 - 29:51
  • 29:51 - 29:53
  • 29:53 - 29:57
  • 29:57 - 29:58
  • 29:58 - 30:01
  • 30:01 - 30:04
  • 30:04 - 30:06
  • 30:06 - 30:11
  • 30:11 - 30:13
  • 30:13 - 30:18
  • 30:18 - 30:22
  • 30:22 - 30:24
  • 30:24 - 30:25
  • 30:25 - 30:27
  • 30:27 - 30:29
  • 30:29 - 30:32
  • 30:32 - 30:34
  • 30:34 - 30:37
  • 30:37 - 30:43
  • 30:43 - 30:47
  • 30:47 - 30:48
  • 30:48 - 30:50
  • 30:50 - 30:52
  • 30:52 - 30:56
  • 30:56 - 31:00
  • 31:00 - 31:03
  • 31:03 - 31:04
  • 31:04 - 31:06
  • 31:06 - 31:08
  • 31:08 - 31:10
  • 31:10 - 31:15
  • 31:15 - 31:18
  • 31:18 - 31:19
  • 31:19 - 31:22
  • 31:22 - 31:22
  • 31:22 - 31:28
  • 31:28 - 31:29
  • 31:29 - 31:33
  • 31:33 - 31:37
  • 31:37 - 31:40
  • 31:40 - 31:45
  • 31:45 - 31:49
  • 31:49 - 31:54
  • 31:54 - 31:59
  • 31:59 - 32:00
  • 32:00 - 32:02
  • 32:02 - 32:05
  • 32:05 - 32:12
  • 32:12 - 32:13
  • 32:13 - 32:16
  • 32:16 - 32:17
  • 32:17 - 32:19
  • 32:19 - 32:20
  • 32:20 - 32:23
  • 32:23 - 32:26
  • 32:26 - 32:29
  • 32:29 - 32:31
  • 32:31 - 32:35
  • 32:35 - 32:38
  • 32:38 - 32:43
  • 32:43 - 32:50
  • 32:50 - 32:52
  • 32:52 - 32:57
  • 32:57 - 32:59
  • 32:59 - 33:01
  • 33:01 - 33:05
  • 33:05 - 33:10
  • 33:10 - 33:14
  • 33:14 - 33:17
  • 33:17 - 33:24
  • 33:26 - 33:30
  • 33:30 - 33:34
  • 33:34 - 33:35
  • 33:35 - 33:41
  • 33:41 - 33:45
  • 33:45 - 33:48
  • 33:48 - 33:52
  • 33:52 - 33:55
  • 33:55 - 33:59
  • 33:59 - 34:06
  • 34:08 - 34:12
  • 34:12 - 34:15
  • 34:15 - 34:18
  • 34:18 - 34:19
  • 34:19 - 34:20
  • 34:20 - 34:26
  • 34:26 - 34:30
  • 34:30 - 34:36
  • 34:36 - 34:37
  • 34:37 - 34:40
  • 34:40 - 34:41
  • 34:41 - 34:44
  • 34:44 - 34:48
  • 34:48 - 34:49
  • 34:49 - 34:49
  • 34:49 - 34:53
  • 34:53 - 34:54
  • 34:54 - 34:59
  • 34:59 - 35:01
  • 35:01 - 35:04
  • 35:04 - 35:07
  • 35:07 - 35:10
  • 35:10 - 35:11
  • 35:11 - 35:15
  • 35:15 - 35:16
  • 35:16 - 35:21
  • 35:21 - 35:24
  • 35:24 - 35:27
  • 35:27 - 35:32
  • 35:32 - 35:34
  • 35:34 - 35:37
  • 35:37 - 35:38
  • 35:38 - 35:40
  • 35:40 - 35:43
  • 35:43 - 35:45
  • 35:45 - 35:49
  • 35:49 - 35:51
  • 35:51 - 35:55
  • 35:55 - 35:58
  • 35:58 - 35:59
  • 35:59 - 36:01
  • 36:01 - 36:03
  • 36:03 - 36:05
  • 36:05 - 36:09
  • 36:09 - 36:13
  • 36:13 - 36:16
  • 36:16 - 36:19
  • 36:19 - 36:22
  • 36:22 - 36:26
  • 36:26 - 36:27
  • 36:27 - 36:30
  • 36:30 - 36:33
  • 36:33 - 36:36
  • 36:36 - 36:41
  • 36:41 - 36:43
  • 36:43 - 36:45
  • 36:45 - 36:46
  • 36:46 - 36:49
  • 36:49 - 36:51
  • 36:51 - 36:55
  • 36:55 - 36:59
  • 36:59 - 37:01
  • 37:01 - 37:04
  • 37:04 - 37:06
  • 37:06 - 37:09
  • 37:09 - 37:11
  • 37:11 - 37:15
  • 37:15 - 37:16
  • 37:16 - 37:17
  • 37:17 - 37:19
  • 37:19 - 37:23
  • 37:23 - 37:25
  • 37:25 - 37:29
  • 37:29 - 37:34
  • 37:34 - 37:36
  • 37:36 - 37:37
  • 37:37 - 37:38
  • 37:38 - 37:39
  • 37:39 - 37:41
  • 37:41 - 37:44
  • 37:44 - 37:51
  • 37:51 - 37:54
  • 37:54 - 37:57
  • 37:57 - 38:00
  • 38:00 - 38:02
  • 38:02 - 38:03
  • 38:03 - 38:08
  • 38:08 - 38:13
  • 38:13 - 38:18
  • 38:18 - 38:24
  • 38:24 - 38:26
  • 38:26 - 38:29
  • 38:29 - 38:32
  • 38:32 - 38:39
  • 38:42 - 38:48
  • 38:48 - 38:51
  • 38:51 - 38:55
  • 38:55 - 38:58
  • 38:58 - 38:59
  • 38:59 - 39:02
  • 39:02 - 39:07
  • 39:07 - 39:12
  • 39:12 - 39:16
  • 39:16 - 39:18
  • 39:18 - 39:19
  • 39:19 - 39:21
  • 39:21 - 39:24
  • 39:24 - 39:28
  • 39:28 - 39:31
  • 39:31 - 39:34
  • 39:34 - 39:41
  • 39:43 - 39:48
  • 39:48 - 39:53
  • 39:53 - 39:57
  • 39:57 - 40:00
  • 40:00 - 40:04
  • 40:04 - 40:06
  • 40:06 - 40:08
  • 40:08 - 40:12
  • 40:12 - 40:14
  • 40:14 - 40:16
  • 40:16 - 40:23
  • 40:25 - 40:29
  • 40:29 - 40:33
  • 40:33 - 40:39
  • 40:39 - 40:42
  • 40:42 - 40:44
  • 40:44 - 40:47
  • 40:47 - 40:49
  • 40:49 - 40:52
  • 40:52 - 40:54
  • 40:54 - 40:58
  • 40:58 - 41:00
  • 41:00 - 41:04
  • 41:04 - 41:05
  • 41:05 - 41:10
  • 41:10 - 41:13
  • 41:13 - 41:18
  • 41:18 - 41:19
  • 41:19 - 41:22
  • 41:22 - 41:26
  • 41:26 - 41:29
  • 41:29 - 41:33
  • 41:33 - 41:37
  • 41:37 - 41:40
  • 41:40 - 41:43
  • 41:43 - 41:47
  • 41:47 - 41:49
  • 41:49 - 41:55
  • 41:55 - 42:01
  • 42:01 - 42:02
  • 42:02 - 42:05
  • 42:05 - 42:09
  • 42:09 - 42:13
  • 42:13 - 42:18
  • 42:18 - 42:20
  • 42:20 - 42:23
  • 42:23 - 42:25
  • 42:25 - 42:26
  • 42:26 - 42:30
  • 42:30 - 42:36
  • 42:36 - 42:40
  • 42:40 - 42:43
  • 42:43 - 42:47
  • 42:47 - 42:49
  • 42:49 - 42:53
  • 42:53 - 42:58
  • 42:58 - 43:00
  • 43:00 - 43:01
  • 43:01 - 43:04
  • 43:04 - 43:09
  • 43:09 - 43:09
  • 43:09 - 43:11
  • 43:11 - 43:15
  • 43:15 - 43:18
  • 43:18 - 43:21
  • 43:21 - 43:24
  • 43:24 - 43:27
  • 43:27 - 43:28
  • 43:28 - 43:29
  • 43:29 - 43:32
  • 43:32 - 43:36
  • 43:36 - 43:40
  • 43:40 - 43:43
  • 43:43 - 43:46
  • 43:46 - 43:50
  • 43:50 - 43:52
  • 43:52 - 43:56
  • 43:56 - 43:57
  • 43:57 - 43:59
  • 43:59 - 44:01
  • 44:01 - 44:03
  • 44:03 - 44:06
  • 44:06 - 44:08
  • 44:08 - 44:10
  • 44:10 - 44:11
  • 44:11 - 44:14
  • 44:14 - 44:17
  • 44:17 - 44:19
  • 44:19 - 44:23
  • 44:23 - 44:30
  • 44:30 - 44:35
  • 44:35 - 44:39
  • 44:39 - 44:42
  • 44:42 - 44:43
  • 44:43 - 44:45
  • 44:45 - 44:47
  • 44:47 - 44:52
  • 44:52 - 44:57
  • 44:57 - 45:04
  • 45:07 - 45:12
  • 45:12 - 45:18
  • 45:18 - 45:20
  • 45:20 - 45:25
  • 45:25 - 45:29
  • 45:29 - 45:32
  • 45:32 - 45:35
  • 45:35 - 45:39
  • 45:39 - 45:41
  • 45:41 - 45:44
  • 45:44 - 45:49
  • 45:49 - 45:53
  • 45:53 - 45:59
  • 45:59 - 46:04
  • 46:04 - 46:05
  • 46:05 - 46:11
  • 46:11 - 46:13
  • 46:13 - 46:14
  • 46:14 - 46:17
  • 46:17 - 46:17
  • 46:17 - 46:21
  • 46:21 - 46:24
  • 46:24 - 46:27
  • 46:27 - 46:30
  • 46:30 - 46:35
  • 46:35 - 46:38
  • 46:38 - 46:42
  • 46:42 - 46:45
  • 46:45 - 46:49
  • 46:49 - 46:51
  • 46:51 - 46:55
  • 46:55 - 46:57
  • 46:57 - 47:00
  • 47:00 - 47:03
  • 47:03 - 47:07
  • 47:07 - 47:09
  • 47:09 - 47:10
  • 47:10 - 47:13
  • 47:13 - 47:17
  • 47:17 - 47:23
  • 47:23 - 47:27
  • 47:27 - 47:29
  • 47:29 - 47:29
  • 47:29 - 47:31
  • 47:31 - 47:35
  • 47:35 - 47:38
  • 47:38 - 47:40
  • 47:40 - 47:46
  • 47:46 - 47:50
  • 47:50 - 47:54
  • 47:54 - 47:55
  • 47:55 - 47:58
  • 47:58 - 48:00
  • 48:00 - 48:02
  • 48:02 - 48:03
  • 48:03 - 48:05
  • 48:05 - 48:06
  • 48:06 - 48:09
  • 48:09 - 48:13
  • 48:13 - 48:17
  • 48:17 - 48:19
  • 48:19 - 48:21
  • 48:21 - 48:23
  • 48:23 - 48:25
  • 48:25 - 48:30
  • 48:30 - 48:33
  • 48:33 - 48:36
  • 48:36 - 48:40
  • 48:40 - 48:41
  • 48:41 - 48:43
  • 48:43 - 48:46
  • 48:46 - 48:49
  • 48:49 - 48:51
  • 48:51 - 48:54
  • 48:54 - 48:55
  • 48:55 - 48:58
  • 48:58 - 49:02
  • 49:02 - 49:06
  • 49:06 - 49:08
  • 49:08 - 49:11
  • 49:11 - 49:16
  • 49:16 - 49:19
  • 49:19 - 49:22
  • 49:22 - 49:24
  • 49:24 - 49:29
  • 49:29 - 49:32
  • 49:32 - 49:34
  • 49:34 - 49:37
  • 49:37 - 49:40
  • 49:40 - 49:42
  • 49:42 - 49:44
  • 49:44 - 49:46
  • 49:46 - 49:48
  • 49:48 - 49:50
  • 49:50 - 49:52
  • 49:52 - 49:57
  • 49:57 - 49:58
  • 49:58 - 50:01
  • 50:01 - 50:03
  • 50:03 - 50:05
  • 50:05 - 50:07
  • 50:07 - 50:13
  • 50:13 - 50:15
  • 50:15 - 50:17
  • 50:17 - 50:21
  • 50:21 - 50:22
  • 50:22 - 50:27
  • 50:27 - 50:28
  • 50:28 - 50:30
  • 50:30 - 50:33
  • 50:33 - 50:36
  • 50:36 - 50:40
  • 50:40 - 50:42
  • 50:42 - 50:45
  • 50:45 - 50:49
  • 50:49 - 50:50
  • 50:50 - 50:52
  • 50:52 - 50:54
  • 50:54 - 50:57
  • 50:57 - 50:59
  • 50:59 - 51:03
  • 51:03 - 51:04
  • 51:04 - 51:05
  • 51:05 - 51:07
  • 51:07 - 51:10
  • 51:10 - 51:12
  • 51:12 - 51:15
  • 51:15 - 51:17
  • 51:17 - 51:18
  • 51:18 - 51:20
  • 51:20 - 51:22
  • 51:22 - 51:25
  • 51:25 - 51:29
  • 51:29 - 51:32
  • 51:32 - 51:36
  • 51:36 - 51:40
  • 51:40 - 51:42
  • 51:42 - 51:45
  • 51:45 - 51:49
  • 51:49 - 51:53
  • 51:53 - 51:54
  • 51:54 - 51:57
  • 51:57 - 51:58
  • 51:58 - 52:00
  • 52:00 - 52:02
  • 52:02 - 52:05
  • 52:05 - 52:07
  • 52:07 - 52:09
  • 52:09 - 52:13
  • 52:13 - 52:15
  • 52:15 - 52:20
  • 52:20 - 52:21
  • 52:21 - 52:24
  • 52:24 - 52:26
  • 52:26 - 52:30
  • 52:30 - 52:32
  • 52:32 - 52:35
  • 52:35 - 52:39
  • 52:39 - 52:40
  • 52:40 - 52:42
  • 52:42 - 52:45
  • 52:45 - 52:52
  • 52:52 - 52:54
  • 52:54 - 52:58
  • 52:58 - 53:01
  • 53:01 - 53:06
  • 53:06 - 53:11
  • 53:11 - 53:13
  • 53:13 - 53:18
  • 53:18 - 53:20
  • 53:20 - 53:22
  • 53:22 - 53:24
  • 53:24 - 53:27
  • 53:27 - 53:28
  • 53:28 - 53:30
  • 53:30 - 53:34
  • 53:34 - 53:35
  • 53:35 - 53:38
  • 53:38 - 53:40
  • 53:40 - 53:42
  • 53:42 - 53:46
  • 53:46 - 53:48
  • 53:48 - 53:51
  • 53:51 - 53:54
  • 53:54 - 53:58
  • 53:58 - 54:00
  • 54:00 - 54:03
  • 54:03 - 54:06
  • 54:06 - 54:11
  • 54:11 - 54:15
  • 54:15 - 54:17
  • 54:17 - 54:18
  • 54:18 - 54:19
  • 54:19 - 54:22
  • 54:22 - 54:25
  • 54:25 - 54:26
  • 54:26 - 54:31
  • 54:31 - 54:35
  • 54:35 - 54:37
  • 54:37 - 54:42
  • 54:42 - 54:43
  • 54:43 - 54:47
  • 54:47 - 54:49
  • 54:49 - 54:53
  • 54:53 - 54:55
  • 54:55 - 54:58
  • 54:58 - 55:02
  • 55:02 - 55:08
  • 55:08 - 55:14
  • 55:14 - 55:18
  • 55:18 - 55:20
  • 55:20 - 55:21
  • 55:21 - 55:22
  • 55:22 - 55:24
  • 55:24 - 55:27
  • 55:27 - 55:28
  • 55:28 - 55:31
  • 55:31 - 55:34
  • 55:34 - 55:38
  • 55:38 - 55:45
  • 55:47 - 55:51
  • 55:51 - 55:53
  • 55:53 - 55:55
  • 55:55 - 55:57
  • 55:57 - 56:01
  • 56:01 - 56:06
  • 56:06 - 56:07
  • 56:07 - 56:11
  • 56:11 - 56:12
  • 56:12 - 56:13
  • 56:13 - 56:16
  • 56:16 - 56:21
  • 56:21 - 56:24
  • 56:24 - 56:26
  • 56:26 - 56:29
  • 56:29 - 56:32
  • 56:32 - 56:38
  • 56:38 - 56:39
  • 56:39 - 56:43
  • 56:43 - 56:47
  • 56:47 - 56:49
  • 56:49 - 56:50
  • 56:50 - 56:52
  • 56:52 - 56:54
  • 56:54 - 56:58
  • 56:58 - 57:00
  • 57:00 - 57:02
  • 57:02 - 57:06
  • 57:06 - 57:08
  • 57:08 - 57:09
  • 57:09 - 57:13
  • 57:13 - 57:14
  • 57:14 - 57:18
  • 57:18 - 57:20
  • 57:20 - 57:22
  • 57:22 - 57:25
  • 57:25 - 57:27
  • 57:27 - 57:29
  • 57:29 - 57:30
  • 57:30 - 57:31
  • 57:31 - 57:36
  • 57:36 - 57:40
  • 57:40 - 57:47
  • 57:51 - 57:53
  • 57:53 - 57:57
  • 57:57 - 58:00
  • 58:00 - 58:05
  • 58:05 - 58:09
  • 58:09 - 58:11
  • 58:11 - 58:15
  • 58:15 - 58:18
  • 58:18 - 58:21
  • 58:21 - 58:24
  • 58:24 - 58:27
  • 58:27 - 58:28
  • 58:28 - 58:32
  • 58:32 - 58:36
  • 58:36 - 58:41
  • 58:41 - 58:45
  • 58:45 - 58:45
  • 58:45 - 58:51
  • 58:51 - 58:53
  • 58:53 - 58:56
  • 58:56 - 58:59
  • 58:59 - 59:03
  • 59:03 - 59:05
  • 59:05 - 59:09
  • 59:09 - 59:12
  • 59:12 - 59:16
  • 59:16 - 59:20
  • 59:20 - 59:25
  • 59:25 - 59:29
  • 59:29 - 59:31
  • 59:31 - 59:36
  • 59:36 - 59:41
  • 59:41 - 59:45
  • 59:45 - 59:52
  • 59:52 - 59:55
  • 59:55 - 59:57
  • 59:57 - 59:58
  • 59:58 - 60:01
  • 60:01 - 60:04
  • 60:04 - 60:05
  • 60:05 - 60:09
  • 60:09 - 60:10
  • 60:10 - 60:12
  • 60:12 - 60:15
  • 60:15 - 60:19
  • 60:19 - 60:22
  • 60:22 - 60:25
  • 60:25 - 60:29
  • 60:29 - 60:31
  • 60:31 - 60:34
  • 60:34 - 60:39
  • 60:39 - 60:42
  • 60:42 - 60:46
  • 60:46 - 60:49
  • 60:49 - 60:53
  • 60:53 - 60:56
  • 60:56 - 61:00
  • 61:00 - 61:04
  • 61:04 - 61:09
  • 61:09 - 61:13
  • 61:13 - 61:15
  • 61:15 - 61:17
  • 61:17 - 61:19
  • 61:19 - 61:22
  • 61:22 - 61:25
  • 61:25 - 61:29
  • 61:29 - 61:33
  • 61:33 - 61:37
  • 61:37 - 61:41
  • 61:41 - 61:44
  • 61:44 - 61:47
  • 61:47 - 61:50
  • 61:50 - 61:55
  • 61:55 - 61:58
  • 61:58 - 62:02
  • 62:02 - 62:05
  • 62:05 - 62:07
  • 62:07 - 62:10
  • 62:10 - 62:12
  • 62:12 - 62:17
  • 62:17 - 62:24
  • 62:24 - 62:28
  • 62:28 - 62:32
  • 62:32 - 62:34
  • 62:34 - 62:40
  • 62:40 - 62:44
  • 62:44 - 62:49
  • 62:49 - 62:53
  • 62:53 - 63:00
  • 63:01 - 63:06
  • 63:06 - 63:08
  • 63:08 - 63:11
  • 63:11 - 63:13
  • 63:13 - 63:17
  • 63:17 - 63:19
  • 63:19 - 63:21
  • 63:21 - 63:25
  • 63:25 - 63:26
  • 63:26 - 63:29
  • 63:29 - 63:34
  • 63:34 - 63:40
  • 63:40 - 63:44
  • 63:44 - 63:47
  • 63:47 - 63:51
  • 63:51 - 63:52
  • 63:52 - 63:56
  • 63:56 - 63:58
  • 63:58 - 63:59
  • 63:59 - 64:03
  • 64:03 - 64:05
  • 64:05 - 64:07
  • 64:07 - 64:13
  • 64:13 - 64:15
  • 64:15 - 64:17
  • 64:17 - 64:19
  • 64:19 - 64:22
  • 64:22 - 64:25
  • 64:25 - 64:27
  • 64:27 - 64:31
  • 64:31 - 64:34
  • 64:34 - 64:39
  • 64:39 - 64:43
  • 64:43 - 64:44
  • 64:44 - 64:45
  • 64:45 - 64:49
  • 64:49 - 64:53
  • 64:53 - 64:58
  • 64:58 - 65:00
  • 65:00 - 65:00
  • 65:00 - 65:02
  • 65:02 - 65:05
  • 65:05 - 65:08
  • 65:08 - 65:10
  • 65:10 - 65:13
  • 65:13 - 65:13
  • 65:13 - 65:15
  • 65:15 - 65:20
  • 65:20 - 65:25
  • 65:25 - 65:29
  • 65:29 - 65:33
  • 65:33 - 65:35
  • 65:35 - 65:39
  • 65:39 - 65:46
  • 65:46 - 65:48
  • 65:48 - 65:52
  • 65:52 - 65:55
  • 65:55 - 65:58
  • 65:58 - 65:59
  • 65:59 - 66:05
  • 66:05 - 66:06
  • 66:06 - 66:13
  • 66:13 - 66:15
  • 66:15 - 66:16
  • 66:16 - 66:20
  • 66:20 - 66:25
  • 66:25 - 66:27
  • 66:27 - 66:27
Title:
Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin
Description:

more » « less
Video Language:
English
Team:
Captions Requested
Duration:
01:06:39

Spanish subtitles

Incomplete

Revisions Compare revisions