-
Not Synced
Elixir debería dominar al mundo
-
Not Synced
Gracias por venir a Elixir Conf
-
Not Synced
Creo que es algo alocado, para
muchos de nosotros, estar aquí
-
Not Synced
¿porqué tomar vacaciones?
-
Not Synced
¿ir sin paga?
-
Not Synced
¿Por qué vinieron personas, con sus
propios medios desde Europa?
-
Not Synced
¿Por qué?
-
Not Synced
No es como si alguien nos fuera a pagar
por escribir Elixir
-
Not Synced
en los próximos años
-
Not Synced
Muy probablemente no
-
Not Synced
Pero estamos aquí de todas formas
-
Not Synced
Porque nos importa
-
Not Synced
Porque estamos emocionados
-
Not Synced
Por que vimos algo
-
Not Synced
que puede hacer avanzar el estado
del arte en nuestro campo
-
Not Synced
pero también en nuestras mentes
-
Not Synced
y al parecer nos gustó
-
Not Synced
al parecer somos suficientemente bananas
-
Not Synced
para venir a esta conferencia
de todas formas
-
Not Synced
solo a hablar y aprender de una
tecnología que nos parece interesante
-
Not Synced
E importante para el futuro
-
Not Synced
de la programación
-
Not Synced
y por lo tanto para el mundo
-
Not Synced
Me recuerda mucho a la ciencia
-
Not Synced
Obtuve una especialidad en
física de la escuela
-
Not Synced
Y luego, tan pronto me gradué
-
Not Synced
Irracionalmente me moví a programación
-
Not Synced
fue en 1999
-
Not Synced
el año perfecto
para entrar a la programación
-
Not Synced
todo mundo estaba contratando
sin necesidad de un título
-
Not Synced
Y yo pensé: Wow! puedo obtener un
trabajo en cualquier ciudad
-
Not Synced
Obteniendo una mejor paga que la que
podría obtener un físico con doctorado
-
Not Synced
Y también es estimulante y divertido
y a las 5:30 puedo irme a casa
-
Not Synced
sin tarea
-
Not Synced
De maravilla!
-
Not Synced
Eso era excelente para mi!
-
Not Synced
Ahora me voy a casa y programo desde ahí
-
Not Synced
pero al menos escojo que
es lo que quiero programar
-
Not Synced
Pero muchas personas se quedaron en física
-
Not Synced
al menos un número
-
Not Synced
Y lo que hicieron fue
-
Not Synced
mantenerse en las ciencias,
obtener un doctorado
-
Not Synced
y luego posdoctorados
-
Not Synced
se dedicaron a la investigación
-
Not Synced
Tienen pasión por expandir
el conocimiento humano
-
Not Synced
Pasaron todos estos años
expandiendo su propio conocimento
-
Not Synced
para expandir solo un poquito
sus invertigaciones
-
Not Synced
con la esperanza de expandir
el conocimento humano
-
Not Synced
Hay un libro acerca de este proceso
-
Not Synced
fue publicado en 1962
-
Not Synced
La estructura de las
revoluciones científicas
-
Not Synced
por Thomas Kuhn
-
Not Synced
No lo recomiendo como material
para estimular la lectura
-
Not Synced
Pero me emocionó mucho
-
Not Synced
Aquí está mi segunda copia
-
Not Synced
y pueden ver que tuvo mucho amor
-
Not Synced
Pero es por supuesto que yo aplico todo
lo que dice directamente al software
-
Not Synced
Lo leí en el 2012
-
Not Synced
Me habría gustado leerlo cuando
estaba estudiando física
-
Not Synced
Habría hecho que la actitud
de mis profesores tuviese más sentido
-
Not Synced
Hay algo que aprendí de este libro
-
Not Synced
Les voy a dar el resumen
-
Not Synced
La tésis es
-
Not Synced
la historia de la ciencia se
cuenta de esta forma
-
Not Synced
Kuhn fue un Doctor en física
-
Not Synced
quien después se movió a
la historia de las ciencias
-
Not Synced
y revolucionó ese campo
-
Not Synced
porque dijo: esta es la forma en que
contamos la historia
-
Not Synced
La ciencia progresa gradualmente
hacia la verdad
-
Not Synced
Lidereados por grandes hombres
-
Not Synced
(siempre son hombres en estas historias)
-
Not Synced
Uno después del otro y
Franklin descubrió la electricidad
-
Not Synced
y Ampere encontró las dinámicas electricas
-
Not Synced
Y Maxwell unificó el
electromagnetismo y la luz
-
Not Synced
¿No es asombroso?
-
Not Synced
Y es lo que obtienes al leer la Wikipedia
-
Not Synced
pero Kuhn dijo:
-
Not Synced
Si revisamos los registros
-
Not Synced
y las cartas y la historia real
-
Not Synced
esto se ve mucho más complicado
-
Not Synced
El progreso en realidad pasa con ajustes
-
Not Synced
y comienzos
-
Not Synced
Puede haber una nueva teoría
que es super productiva
-
Not Synced
y luego
-
Not Synced
las personas van a trabajar con ella
por un tiempo
-
Not Synced
y mejorarla
-
Not Synced
y de repente algo
mucho mejor aparece
-
Not Synced
Y es mucho más complicada en
terminos de personas
-
Not Synced
Hay muchas personas
involucradas en este punto
-
Not Synced
Entonces, cuando Franklin estaba
estableciendo la electricidad
-
Not Synced
Muchos otros eléctricos
(como se decían a sí mismos)
-
Not Synced
Hacían muchas observaciones
-
Not Synced
Solo por hacer observaciones de cualquier
cosa que pudiese estar relacionada
-
Not Synced
con la electricidad
-
Not Synced
Por ejemplo, tenían una hoja de oro y
algunas plumas y vieron como
-
Not Synced
se atraían o repelían
-
Not Synced
Franklin vio el relámpago y notó
que era electricidad
-
Not Synced
Y había un dispositivo llamado "botella
de Leyden" básicamente el primer capacitor
-
Not Synced
Y fue inventado simultanea e
independientemente por
-
Not Synced
alguien en países bajos
y alguien en alemania
-
Not Synced
Y Franklin tuvo la suerte suficiente de
vivir en un momento donde había muchas
-
Not Synced
observaciones y fue capaz de relacionarlas
-
Not Synced
en una especie de teoría
-
Not Synced
e inventó una teoría de fluidos
de la electricidad
-
Not Synced
Que era que la electricidad era un fluido
-
Not Synced
y los objetos con mucho de este fluido
y los objetos con poco de este fluido
-
Not Synced
se atraen unos a otros
-
Not Synced
pero al mismo tiempo
-
Not Synced
En Francia
-
Not Synced
Du Fay estudiaba la atracción y repulsión
-
Not Synced
e inventó la
(ahora parece similar para nosotros)
-
Not Synced
Teoría de los dos fluidos
de la electricidad
-
Not Synced
Y hay un fluido positivo y otro negativo
-
Not Synced
Y funcionó
-
Not Synced
Hay aislamiento en las
moleculas y el ether
-
Not Synced
pero eran teorías donde las
personas se tenían que basar
-
Not Synced
y venir con más experimentos por hacer
-
Not Synced
porque el modelo conductor
detrás de cualquier
-
Not Synced
campo científico determina que
experimentos hará a continuación la gente
-
Not Synced
Qué pruebas verán relevantes de hacer
-
Not Synced
Eso es interesante
-
Not Synced
y funcionó en 1750
-
Not Synced
hasta que en 1820
-
Not Synced
Ørsted (Ilsted, era danés)
se dio cuenta que
-
Not Synced
una aguja de compás, que se
sabía tenía un fenómeno magnético
-
Not Synced
en ese tiempo eran dos fenómenos separados
-
Not Synced
reaccionaría a una corriente eléctrica
-
Not Synced
y esto fue una anomalía
-
Not Synced
esto no encajaba en ninguna
otra teoría del magnetismo
-
Not Synced
Una anomalía, cuando es reconocida y
aceptada como realidad, provoca una crisis
-
Not Synced
Una crisis es cuando el modelo
dominante deja de ser suficiente
-
Not Synced
y todo el mundo se da cuenta
-
Not Synced
y de repente todos dicen:
Oh pero estoy haciendo estos experimentos!
-
Not Synced
Y las personas es ponen a ver que pasa con
la corriente electrica todo el tiempo
-
Not Synced
Escuchamos de Ampere, vivía en Francia
-
Not Synced
Él hizo muy buenas matemáticas
-
Not Synced
Pero el no estaba solo
-
Not Synced
Trabajó con Laplace y Saberi y un montón de
personas que no se mencionan en Wikipedia
-
Not Synced
Y al mismo tiempo que él estaba trabajando
-
Not Synced
Estaba Fiat y Poisson y otro amigo cuyo
nombre no recuerdo y no puedo pronunciar
-
Not Synced
trabando en teorías competitivas,
que eran similares a las de Ampere
-
Not Synced
Y los llevó a hacer mejor ciencia de un
lado y a hacer mejor ciencia del otro
-
Not Synced
Y todas estas personas juntas
-
Not Synced
discutieron por un tiempo
-
Not Synced
hasta que finalmente, por ahí de 1827
-
Not Synced
Ampere publicó su libro de Electrodinámica
donde se acuñó el término
-
Not Synced
Y eventualmente ese se volvió el
texto aceptado
-
Not Synced
Y las personas trabajaron basadas
en su teoría
-
Not Synced
Donde la electricidad todavía era un
fluido y había moléculas aisladas
-
Not Synced
Ampere estaba muy apegado a
esa teoría
-
Not Synced
Eventualmente llegamos a Maxwell
-
Not Synced
Y pasó algo muy parecido
-
Not Synced
Pero esto se relaciona con la programación
en muchos sentidos por que
-
Not Synced
este libro
-
Not Synced
por cierto he hablado de modelos y teorías
-
Not Synced
cuando la palabra que uso Kuhn es
paradigma
-
Not Synced
Y se que todos dirán: AGH BUZZWORD AGH AGH
-
Not Synced
Este libro introduce esa palabra en
habla comun
-
Not Synced
Entonces cuando Kuhn usa la palabra
paradigma
-
Not Synced
Una y otra vez
-
Not Synced
Está siendo original
-
Not Synced
La palabra existía pero era rara vez usada
-
Not Synced
Y no significaba exactamente la
cosa que ahora significa
-
Not Synced
en este libro era
-
Not Synced
un modelo del mundo que nos conduce
-
Not Synced
a una forma de vivir o hacer
ciencias en este caso
-
Not Synced
y qué preguntas hacer
-
Not Synced
y porqué importa pensar en ello
-
Not Synced
La primer cosa que aprendí es que
las ideas se comparten
-
Not Synced
La segunda cosa fue que las ideas
siguen llegando
-
Not Synced
Puedes pensar que en algún momento
tenemos la verdad absoluta
-
Not Synced
como que Newton tenía una muy buena teoría
-
Not Synced
del movimiento, pero WOW no
consideró el espacio exterior
-
Not Synced
La velocidad de la luz y las super
duper nano partículas
-
Not Synced
Por supuesto que no
-
Not Synced
Incluso cuando pensamos que alcanzamos
la cosa perfecta
-
Not Synced
para el mundo como lo conocemos
-
Not Synced
hay algo más allá afuera
-
Not Synced
Y finalmente, las ideas se comparten
-
Not Synced
Esto regresa
-
Not Synced
Primero, Denise Jacobs, en Øredev
en 2013
-
Not Synced
habló de la creatividad
-
Not Synced
y una de las cosas que dijo
que se me quedó grabada
-
Not Synced
fue que cuando el mundo está
listo para una idea
-
Not Synced
cuando todas las bases están puestas
para una idea
-
Not Synced
No se le ocurre a una sola persona
-
Not Synced
Se le ocurre a varias personas
-
Not Synced
Dos personas inventaron la botella
de Leyden
-
Not Synced
Franklin y du Fay
-
Not Synced
Ampere y uno de sus compatriotas
-
Not Synced
No se le ocurre a una sola persona
-
Not Synced
Newton y Leibnitz inventaron
el cálculo al mismo tiempo
-
Not Synced
Porque todas las ideas se montan
sobre otras ideas
-
Not Synced
Y cuando todas esas otras
ideas están presentes
-
Not Synced
La misma idea se compartirá
por muchas personas
-
Not Synced
esto es muy tranquilizado para mi
-
Not Synced
Cuando estoy pensando
-
Not Synced
Oh tengo algo
-
Not Synced
es brillante y es importante
-
Not Synced
Y acabo de hacer esta conexión
-
Not Synced
y realmente necesito conectarla
-
Not Synced
porque puede afectar a todas las personas
programando alrededor del mundo
-
Not Synced
Y mis hijos tienen que ir a dormir
-
Not Synced
y uno de ellos se pegó en el dedo del pie
y hay muerte y perdición
-
Not Synced
Y yo pienso: A alguién más se le ocurrirá
-
Not Synced
está bien
-
Not Synced
Lo opuesto de esto es
-
Not Synced
si una idea viene a nosotros
de múltiples fuentes
-
Not Synced
si multiples personas piensan
en grupo acerca de la misma cosa
-
Not Synced
tal vez esa idea es importante
-
Not Synced
El modelo de actores
-
Not Synced
Ha estado en erlang por un tiempo
-
Not Synced
Pero ahora es más accesible con elixir
-
Not Synced
Y yo trabajé en akka con scala
que corre en la JVM
-
Not Synced
Y Orleans es el modelo de actores para C#
-
Not Synced
Y todos estos son sistemas útiles
a los que las personas están
-
Not Synced
siendo atraidas
-
Not Synced
Debe haber algo diferente
-
Not Synced
Tal vez hay una especie de crisis
en nuestro campo
-
Not Synced
que nos provoca buscar nuevos modelos
-
Not Synced
Ella es Camile Fournier en StrangeLoop
apenas la semana pasada
-
Not Synced
La que considero la mejor
plática de la conferencia
-
Not Synced
Y ella expresó el tema, en StrangeLoop,
como un todo
-
Not Synced
cuando dijo: Los sistemas distribuidos
-
Not Synced
son feos, son difíciles
-
Not Synced
y llegaron para quedarse
-
Not Synced
esto es muy cierto
-
Not Synced
y es una excelente plática, la recomiendo
-
Not Synced
pero el hecho es que hemos estado
trabajando en sistemas distribuidos
-
Not Synced
desde siempre
-
Not Synced
porque tienes cliente y servidor
-
Not Synced
cuando empecé a programar era la
arquitectura de todas las aplicaciones
-
Not Synced
caja - flechas - caja - flechas - cilindro
-
Not Synced
Oh sí, esas es cada una de
ellas, tienes razón
-
Not Synced
Ahora tratamos de ir más allá de
caja - flechas - caja - flechas - cilindro
-
Not Synced
porque esto no escala
-
Not Synced
por supuesto Bruce habló de esto
-
Not Synced
de una forma hermosa, esta mañana
-
Not Synced
y una cosa que mencionó
-
Not Synced
que creo que es un punto
importante para pensar
-
Not Synced
incluso si una aplicación sencilla
de cliente - servidor - base de datos
-
Not Synced
te está funcionando
-
Not Synced
puede manejar la capacidad de tus clientes
-
Not Synced
y tu base de datos es lo
suficientemente grande
-
Not Synced
y no tienes problemas para escalar
-
Not Synced
de la forma que los tiene Netflix
-
Not Synced
todos tenemos problemas para
escalar en nuestras cabezas
-
Not Synced
en un punto alcanzamos
nuestra capacidad intelectual
-
Not Synced
de las características que nuestra
aplicación puede tener
-
Not Synced
porque cada característica genera
una carga intelectual
-
Not Synced
cliente y el servidor y la base de datos
-
Not Synced
cada vez más grande
-
Not Synced
hasta que no podemos mantenerlo
en nuestras cabezas
-
Not Synced
este es el problema de escalar
software en todos lados
-
Not Synced
Incluso si piensas que no tienes
problemas de escalamiento
-
Not Synced
¿Cómo lo manejamos?
-
Not Synced
Hablamos hace rato, Bruce habló hace rato de
-
Not Synced
Servicios sin estado y las
limitaciones que hay
-
Not Synced
porque si queremos escalar horizontalmente
-
Not Synced
nuestro servidor
-
Not Synced
está bien
-
Not Synced
luego podemos empezar a
separarlo en microservicios
-
Not Synced
y ahora eso es convencional
-
Not Synced
Pero queremos un poco más que eso
-
Not Synced
Queremos una de esas conversaciones
ricas de la que habló Bruce
-
Not Synced
Ella es Caitie McCaffrey
-
Not Synced
También en StrangeLoop la semana pasada
-
Not Synced
Y ella dió una plática completa
acerca de servicios con estado
-
Not Synced
Y tres diferentes arquitecturas
para servicios con estado
-
Not Synced
Y las peleas en los sistemas distribuidos
-
Not Synced
Y lo difícil que fue ganarlas
-
Not Synced
Acabando, por cierto, con
Orleans y el modelo de actores
-
Not Synced
Que básicamente llegas a
-
Not Synced
está bien, no es suficiente tener ciclos
de petición y respuesta sin estado
-
Not Synced
No es lo suficientemente interesante
-
Not Synced
necesitamos tener un estado del otro lado
-
Not Synced
porque es más rápido, porque no
tenemos que consultar la base datos
-
Not Synced
todo el tiempo
-
Not Synced
Y es más rico, podemos hacer más
cosas con el cliente
-
Not Synced
de hecho puedes agregar muchos clientes
-
Not Synced
trabajando con el mismo servidor
de chat o cuarto de chat
-
Not Synced
o editanto un documento mutuamente
-
Not Synced
puedes tener multiples vistas con
el mismo modelo
-
Not Synced
cuando el modelo está en el
estado de tu aplicación
-
Not Synced
para el cual, por supuesto,
elixir está hecho a la medida
-
Not Synced
y movimos la base de datos por completo a
otra aplicación a donde pertenece
-
Not Synced
y puedes tener escalamiento horizontal
en esos servicios
-
Not Synced
y hacer la separación
-
Not Synced
y puedes tener más de esos
si usas microservicios
-
Not Synced
Estos son problemas difíciles de resolver
-
Not Synced
y me encantaría que pudiesemos resolverlos
todos con programación funcional
-
Not Synced
Porque la programación funcional
es el paradigma del momento
-
Not Synced
es la nueva moda
-
Not Synced
No tan nueva como elixir
-
Not Synced
pero sigue siendo asombrosa
y todo, ¿cierto?
-
Not Synced
y es asombrosa
-
Not Synced
En mi opinión la escencia de la
programación funcional es
-
Not Synced
el flujo de datos
-
Not Synced
tienes datos de entrada, que
pueden ser del mundo real
-
Not Synced
y haces transformaciones, tomas desiciones
y luego tienes datos a la salida
-
Not Synced
esto es hermoso para petición - respuesta
-
Not Synced
puedes tener una petición http de entrada
-
Not Synced
hacer algunas transformaciones y
producir una respuesta de http
-
Not Synced
y esto es adorable porque
-
Not Synced
manejas datos inmutables,
no tienes efectos secundarios
-
Not Synced
puedes tenerlos por fuera
-
Not Synced
pero no en tu transformación
-
Not Synced
lo que sea que entra
-
Not Synced
dada una entrada siempre tienes
la misma salida
-
Not Synced
y eso lo vuelve extremadamente
fácil de probar
-
Not Synced
y predecible y maravilloso
-
Not Synced
y no hay dependencias circulares
-
Not Synced
no hay nada brincando del exterior
-
Not Synced
desafortunadamente
-
Not Synced
la programación funcional no es suficiente
-
Not Synced
para resolver nuestros problemas
de sistemas distribuidos
-
Not Synced
El cálculo lambda no soporta concurrencia
-
Not Synced
Y el mantener estado
-
Not Synced
No es una de las fortalezas de
la programación funcional
-
Not Synced
¿Qué tal OO?
-
Not Synced
bueno, la programación orientada a objetos
definitivamente no es suficiente
-
Not Synced
Y eso es porque
-
Not Synced
La programación orientada a objetos
-
Not Synced
en su estado actual
-
Not Synced
en Java y Ruby
-
Not Synced
es una maraña desastrosa
-
Not Synced
que nunca cabe en nuestras cabezas
-
Not Synced
Siempre que tienes estados mutables
-
Not Synced
en particular tienes una
dependencia circular
-
Not Synced
que no puedes ver
-
Not Synced
cualquier cosa que pueda tener
una referencia al estado
-
Not Synced
del que tu también tienes una referencia
-
Not Synced
si ese estado es mutable, hay
una dependencia circular
-
Not Synced
y lo mismo pasa cuando accedes al mundo
-
Not Synced
Hay un montón de
dependencias circulares invisibles
-
Not Synced
que no sabes donde están
-
Not Synced
Oh, ¿estás leyendo de esta tabla?
-
Not Synced
¿Qué pasa si actualizas la tabla?
FFFFFF
-
Not Synced
Cualquier cosa, entonces todas
estas dependencias invisibles
-
Not Synced
y sus conexiones que ni
siquiera puedes ver
-
Not Synced
están mal
-
Not Synced
Y además, en Java y Scala no hay
nada que me detenga
-
Not Synced
de hacer que todas mis clases dependan de
-
Not Synced
cualquier otra clase en el paquete
-
Not Synced
oh y cualquier otro paquete
en mi aplicación
-
Not Synced
está todo ahí
-
Not Synced
Una cosa que empecé a hacer que
aprendí de clojure y elm
-
Not Synced
es, está bien, no voy a
tener dependencias circulares
-
Not Synced
las reconozco como una debilidad
-
Not Synced
Voy a dibujar mi pequeño
grafo dirigido sin ciclos
-
Not Synced
para las dependencias de mis paquetes
-
Not Synced
y las dependencias de mis clases
-
Not Synced
Una vez que haces esto
-
Not Synced
puedes reconocer que hay una fortaleza
de la programacion OO
-
Not Synced
y es la organización de código
-
Not Synced
es muy buena para los espacios de nombres
-
Not Synced
te da formas muy buenas de
agrupar código relacionado
-
Not Synced
y podemos usar eso una vez que hayamos
decidido no manejar estados mutables
-
Not Synced
Elixir tiene esa ventaja
-
Not Synced
Elixir tiene otra ventaja
-
Not Synced
Si vas al principio de OO
-
Not Synced
Cuando Alan Kay enunció el
concepto por primera vez
-
Not Synced
el principio que guío no tiene nada que
ver con lo que hoy hablamos en Java o Ruby
-
Not Synced
Es "dile no preguntes"
-
Not Synced
es mensajería asíncrona
-
Not Synced
no llamo getters para sacarte los datos
-
Not Synced
Solo te digo qué es lo que
se necesita hacer
-
Not Synced
y tu sabes como hacerlo
-
Not Synced
Qué es exactamente lo que
hace el modelo de actores
-
Not Synced
Me confunde un poco cuando las personas
hablande Elixir y Erlang
-
Not Synced
como lenguajes funcionales
-
Not Synced
porque, bueno, dentro de un
actor tienes inmutabilidad
-
Not Synced
y puedes hacer transformaciones de datos
-
Not Synced
y puedes tener programación funcional
dentro del proceso de un mensaje
-
Not Synced
pero los actores por si mismos y
sus interconexiones
-
Not Synced
son la escencia de la
programación orientada a objetos
-
Not Synced
es como la programación
orientada a objetos siempre debió ser
-
Not Synced
Entonces, podemos tener las
fortalezas de ambos
-
Not Synced
y además
-
Not Synced
la cosa que hizo a la
programación imperativa
-
Not Synced
y por lo tanto útil a la
programación orientada a objetos
-
Not Synced
útil
-
Not Synced
es que podemos acceder al mundo
-
Not Synced
podemos tener efectos secundarios
-
Not Synced
porque aunque nuestras transformaciones
de datos son adorables
-
Not Synced
quiero que mi programa haga algo
-
Not Synced
y en el modelo de actores tenemos
oportunidades de hacer algo
-
Not Synced
sin meternos el pie a nosotros mismos
-
Not Synced
porque tenemos ese aislamiento de fallas
-
Not Synced
Me encantó como lo expresó
Bruce esta mañana
-
Not Synced
Concurrencia sin aislamiento es solo ruido
-
Not Synced
Aquí tenemos la oportunidad de responder
-
Not Synced
porque en el peor de los casos
-
Not Synced
el mundo explota y mata a mi actor
-
Not Synced
solo necesito iniciar a un nuevo actor
-
Not Synced
y lo conecto a un mundo nuevo
-
Not Synced
donde sea que exista un mundo nuevo
dos segundos después
-
Not Synced
Y seguramente ese nuevo mundo
será más amigable
-
Not Synced
Tenemos aislamiento y eso
es crucialmente importante
-
Not Synced
Tan crucialmente importante como
-
Not Synced
que Elixir y Erlang reconocen las fallas
como un ciudadano de primera clase
-
Not Synced
No es algo de lo que no querramos hablar
-
Not Synced
No es algo que tratamos de evitar
haciendo código
-
Not Synced
Atrapa una excepción
abró llave cierro llave
-
Not Synced
uh
-
Not Synced
pero de hecho hacer algo con ello
-
Not Synced
lo cual es crucial
-
Not Synced
hay un paradigma que existe
-
Not Synced
en nuestra cultura
-
Not Synced
y también existe en un montón de lugares
-
Not Synced
que la forma de alcanzar el éxito
-
Not Synced
es evitando las fallas
-
Not Synced
pero lo que he visto en nuestra industria
-
Not Synced
en los últimos cuatro años
-
Not Synced
es mucho más útil
-
Not Synced
la forma de llegar al éxito
-
Not Synced
es a través de muchas fallas
-
Not Synced
es darle a una falla, reconocerla
-
Not Synced
aprender de ella, restablecerce
-
Not Synced
pegarle a otra falla, restablecerse
-
Not Synced
pegarle a otra falla, reconocerla,
aprender de ella restablecerce
-
Not Synced
es fallar rápido, y aprender de ello
-
Not Synced
y ese es el camino al éxito
-
Not Synced
esto es genial
-
Not Synced
porque nos deja ver que tan
importante es fallar
-
Not Synced
en nuestro código, tradicionalmente
-
Not Synced
amamos escribir la historia
del camino feliz
-
Not Synced
como se supone que nuestros usuarios
deben navegar a través de nuestro sistema
-
Not Synced
y tenemos este camino verde en nuestra mente
-
Not Synced
con florecitas a los lados
-
Not Synced
y está bien
-
Not Synced
tal vez un 98 % de las interacciones con
nuestro código se van por ese camino
-
Not Synced
pero el detalle con el código es
-
Not Synced
si corre 98 % de las veces o corre
solo una vez, es el mismo código
-
Not Synced
no contemos el número de interacciones,
contemos el número de caminos posibles
-
Not Synced
Hay uno o unos pocos caminos felices
-
Not Synced
que ojalá tomane los usuarios
-
Not Synced
pero hay una infinidad de caminos de falla
-
Not Synced
cada cosa que puede fallar es un caso independiente
-
Not Synced
y cualquier combinación cobinatoria
de todos esos caminos
-
Not Synced
tiene su propio caso
-
Not Synced
Entonces los caminos de fallo son
infinitos,
-
Not Synced
si contamos los caminos en lugar de
contar por donde pasan los usuarios
-
Not Synced
nos daremos cuenta que
la falla es el caso común
-
Not Synced
en el código
-
Not Synced
Y por eso es perfectamente natural
-
Not Synced
que la mayor parte de nuestro código
-
Not Synced
sea código para manejar errores
-
Not Synced
Si tratamos que un proceso
-
Not Synced
sea legible de una forma
que se cubran todos los casos
-
Not Synced
no solo los que queremos pensar
-
Not Synced
Me encanta como Elixir nos
permite hacer esto
-
Not Synced
con árboles de supervisión
-
Not Synced
y dejando fallar a los actores
-
Not Synced
También hay que considerar
esto en las pruebas
-
Not Synced
las fallas es el caso común también
-
Not Synced
porque cuando quiero depurar algo
-
Not Synced
escribo una prueba unitaria fallida
-
Not Synced
y falla, hago algo de trabajo, y falla
-
Not Synced
y hago algo de trabajo y falla
-
Not Synced
y hago algo de trabajo y
ahora pasa y ahí paro!
-
Not Synced
o tal vez refactorizo un poco y paró!
-
Not Synced
las fallas también es el caso
común en las pruebas
-
Not Synced
y es genial, porque tratamos
de aprender de esto
-
Not Synced
en la BEAM la máquina virtual de Erlang
-
Not Synced
tienes acceso a algunas de las
mejores herramientas de prueba
-
Not Synced
en el mundo
-
Not Synced
tienes acceso a Quick check
-
Not Synced
desarrollada por John Hughes
-
Not Synced
la herramienta original para hacer
chequeo de propiedades
-
Not Synced
y las pruebas por chequeo de
propiedades te pueden ayudar
-
Not Synced
a encontrar a la falla amigable
en el bosque del éxito
-
Not Synced
lo cual es realmente difícil
-
Not Synced
porque es miucho más sencillo para nosotros
-
Not Synced
escribir casos de prueba exitosos
que escribir casos de prueba de fallo
-
Not Synced
Es difícil para nosotros encontrar
el caso extremo que va a fallar
-
Not Synced
En las pruebas basadas en propiedades
-
Not Synced
no tienes que escribir cientos
de millones de pruebas
-
Not Synced
Me encanta esa parte
-
Not Synced
Escribes un poco de código
-
Not Synced
que genera las entradas para las pruebas
-
Not Synced
y casi podemos automatizar la escritura
de las pruebas que automatizamos
-
Not Synced
para correr
-
Not Synced
y eso es fantástico porque
-
Not Synced
te hace escribir menos pruebas
-
Not Synced
y es por lo que me interesa
-
Not Synced
pero también te ayuda a encontrar
los casos de prueba extremos
-
Not Synced
les recominedo que revisen QuickCheck CI
-
Not Synced
probablemente tengan que escribir
las pruebas en Erlang por ahora
-
Not Synced
pero es algo que podemos ver
-
Not Synced
por que sería asombroso
escribir pruebas de propiedades
-
Not Synced
QuickCheck CI es la herramienta
que creo John Hughes
-
Not Synced
que te permite correr Integración Continua
y correr tus pruebas
-
Not Synced
en una forma consciente de las propiedades
-
Not Synced
El detalle con estas pruebas generadas
es que no siempre genera las mismas
-
Not Synced
Cada vez que corres las pruebas
tienes pruebas diferentes
-
Not Synced
Lo cual es realmente genial
-
Not Synced
porque la cobertura de pruebas
-
Not Synced
constantemente está creciendo
-
Not Synced
pero es realmente molesto, porque si
en un parpadeo tienes una falla
-
Not Synced
no pasa la siguiente vez que la corras
-
Not Synced
pero Quick Check CI recuerda eso
-
Not Synced
y dice: Uh! la próxima vez que
corra las pruebas
-
Not Synced
voy a correr primero esa que falló
-
Not Synced
lo cual es super asombroso
-
Not Synced
y desesperadamente quiero algo así
en una herramienta de CI
-
Not Synced
Incluso hay más formas en las que
podemos aceptar las fallas
-
Not Synced
como ciudadanos de primera clase, nuestras
amigas, y podemos aprender de ellas
-
Not Synced
Aquí
-
Not Synced
Si tu objetivo es ir por el camino
de la ciencia
-
Not Synced
para aparecer en wikipedia como "el
físico más grande de todos los tiempos"
-
Not Synced
(ese es Maxwell)
-
Not Synced
Entonces, fallar es el
caso común aquí también
-
Not Synced
Pero si reconocemos
que las ideas se comparten
-
Not Synced
Y sí, Ampere obtuvo los créditos, pero
todos los que trabajaron con él
-
Not Synced
o contra él y lo guiaron
a hacer un mejor trabajo
-
Not Synced
contribuyeron a la electrodinámica
-
Not Synced
si lo vemos
-
Not Synced
y también todos los que
también escribieron libros
-
Not Synced
y artículos y notas
-
Not Synced
e hicieron la electrodinámica accesible
-
Not Synced
para todos aquellos que no sabían de ella
-
Not Synced
todas esas personas contribuyeron
-
Not Synced
y si defines eso como un éxito
-
Not Synced
entonces el éxito se convierte
en el caso común aquí
-
Not Synced
pero cada éxito es diferente
-
Not Synced
En Elixir, tenemos lo mejor
de la programación funcional
-
Not Synced
porque tenemos inmutabilidad
-
Not Synced
y flujo de datos
-
Not Synced
dentro de los actores
-
Not Synced
con toda la arquitectura de plug
-
Not Synced
es un flujo hermoso de datos
-
Not Synced
También tenemos lo mejor de la
programación orientada a objetos
-
Not Synced
tenemos independencia
-
Not Synced
en nuestros procesos de actores
-
Not Synced
y podemos ocupar el esquema
de organización de OO
-
Not Synced
porque tenemos "dile no preguntes"
-
Not Synced
tenemos lo mejor de eso
-
Not Synced
también tenemos aislamiento, que no
pertenece a ningno de esos paradigmas
-
Not Synced
el modelo de actores lo hace por nosotros
-
Not Synced
Maravilloso, tenemos esta idea grandiosa
-
Not Synced
y ahora podemos trabajar en este paradigma
-
Not Synced
y el cielo es el límite
-
Not Synced
¿verdad?
-
Not Synced
el cielo es el límite y ese es el problema
-
Not Synced
porque hay algo acerca del cielo
-
Not Synced
las ideas siguen llegando
-
Not Synced
y lo que pensamos que es la
mejor solución posible por ahora
-
Not Synced
es solo la mejor solución posible que
hemos visto en el mundo que vivimos
-
Not Synced
por ahora
-
Not Synced
y nos debemos seguir preguntando
-
Not Synced
¿Qué es lo que viene después?
-
Not Synced
¿Qué es lo que viene después?
Voy a hacer muchas predicciones
-
Not Synced
Que son por completo mi opinión
-
Not Synced
Pero será entretenido
-
Not Synced
¿Qué viene después de Ágil?
-
Not Synced
La respuesta a esto en mi opinión es Lean
-
Not Synced
No es nada nuevo pero todavía
no lo hacemos
-
Not Synced
Tomamos la escencia de Ágil
-
Not Synced
escribes un poco de código, se lo
muestras a las personas
-
Not Synced
y recibes algo de retroalimentación
para decidir que código escribir
-
Not Synced
Pero al mismo tiempo también estás
escribiendo código
-
Not Synced
tienes una retrospectiva donde ves
como le fue a ese código
-
Not Synced
y decides escribir código un
poco diferente
-
Not Synced
escribes mejor, casi el código correcto
-
Not Synced
y casi de la forma correcta
-
Not Synced
puedes hacer un poco de experimentos
-
Not Synced
porque no es tan amenazante
-
Not Synced
decir cambiemos algo en
las siguientes dos semanas
-
Not Synced
y veremos como funciona
-
Not Synced
y si no lo podemos regresar
-
Not Synced
si es necesario
-
Not Synced
eso es genial
-
Not Synced
estos ciclos de retroalimentación
realmente promueven el aprendizaje
-
Not Synced
y nos lleva a lugares que ni
siquiera sabíamos que existían
-
Not Synced
es difícil predecir resultados
-
Not Synced
pero podemos decir que los
resultados probablemente sean mejores
-
Not Synced
lo que es fantástico
-
Not Synced
El es Marty Caghan en la conferencia
Craft en Budapest, este año
-
Not Synced
Él habló de cómo solo el desarrollo ágil
es genial, pero es sólo
-
Not Synced
genial para los desarrolladores
-
Not Synced
pero no es suficiente hacer
nuestros negocios productivos
-
Not Synced
porque hay una probabilidad muy grande de
que estemos escribiendo el código erroneo
-
Not Synced
y puedes escribir el código erróneo
de la manera perfecta
-
Not Synced
todo el día, y no te va a llevar muy lejos
-
Not Synced
Para poder escribir el código correcto
-
Not Synced
necesitamos llevar estos ciclos de
retroalimentación al negocio completo
-
Not Synced
y Lean es este ciclo de
construir - medir - aprender
-
Not Synced
puse "aprender" hasta arriba porque
creo que es lo más importante
-
Not Synced
Requiere de todo el equipo
-
Not Synced
cómo un tipo de micro negocio
-
Not Synced
y la creación de la idea
-
Not Synced
la generación de la idea
-
Not Synced
y la validación de esa idea
-
Not Synced
tan rápido como sea posible
-
Not Synced
haciendo encuestas
-
Not Synced
o pequeños prototipos de papel
-
Not Synced
podemos validar o rechazar esta idea
-
Not Synced
en horas en lugar de meses o semanas
-
Not Synced
que tardaría escribir el software
para ella
-
Not Synced
descartar un grupo de ella y solo
mantener a las que parecen prometedoras
-
Not Synced
basado en mediciones
-
Not Synced
para entrar en el proceso de
producción de software
-
Not Synced
y el ciclo Ágil
-
Not Synced
esto es en realidad increible
-
Not Synced
pero vayamos un poco más lejos
y preguntemos
-
Not Synced
qué viene depués de "No estimaciones"
-
Not Synced
Porque tenemos estimaciones
-
Not Synced
Muchos de nosotros todavía
hacemos estimaciones
-
Not Synced
desafortunadamente
-
Not Synced
pero sabemos que son porquería
-
Not Synced
Entonces tenemos "no estimaciones"
-
Not Synced
que es el movimiento que dice
-
Not Synced
oh como las estimaciones son
porquería no deberíamos hacer estimaciones
-
Not Synced
porque de otra forma solo nos
llenamos de porquería
-
Not Synced
bueno, ese es un paso
-
Not Synced
pero podemos balancear el
péndulo de regreso un poquito
-
Not Synced
porque la realidad es que
necesitamos tomar decisiones
-
Not Synced
acerca de qué construir
-
Not Synced
y si no tenemos nada de estimados,
será muy difícil
-
Not Synced
basada en
-
Not Synced
esto viene de Dan North
-
Not Synced
lo que viene son estimados por rangos
-
Not Synced
porque si dices
-
Not Synced
¿Cuanto tiempo va a tomar esto?
-
Not Synced
WOAA veinte días
-
Not Synced
porquería
-
Not Synced
no lo sabes
-
Not Synced
pero lo que puedes decir es
que no lo sabes completamente
-
Not Synced
pero cuando alguién te presenta una idea
-
Not Synced
puedes decir definitivamente tomará
al menos dos semanas
-
Not Synced
tomará al menos un mes y medio
-
Not Synced
pero estaría avergonzada de admitir
que tomará más de dos meses
-
Not Synced
puedes ponerle ese tipo de rangos
-
Not Synced
y eso es más información de la que la
persona de negocios tenía antes
-
Not Synced
y si tu estimado termina siendo
algo entre uno y doce meses
-
Not Synced
ellos dirán : ¿QUÉ?
-
Not Synced
puedes decir: ok si quieres que invierta
un poco de tiempo en investigar esto
-
Not Synced
y en las cosas que encuentro altamente
inciertas y peligrosas
-
Not Synced
que me preocupan acerca de esto, bueno
-
Not Synced
puedo acerlo y venir después
de una iteración de trabajar
-
Not Synced
en no la parte más valiosa del software
no el retorno rápido
-
Not Synced
pero la más riesgosa
-
Not Synced
y la parte incierta del software
-
Not Synced
la parte que no piensas
-
Not Synced
que generalmente dejas al final
-
Not Synced
y tu último 20%
se convierte en tu siguiente 80%
-
Not Synced
si haces eso primero
-
Not Synced
entonces puedes acotar tu estimado
-
Not Synced
y en este punto hay una decisión y la
persona de negocios puede decir
-
Not Synced
está bien, basado en esta
nueva información
-
Not Synced
¿queremos continuar o no?
-
Not Synced
es algo que se pierde en
muchos procesos de negocios
-
Not Synced
cada iteración
-
Not Synced
del desarrollo de software debería
terminar con un punto de decisión
-
Not Synced
¿todavía vale la pena esto?
-
Not Synced
¿trabajar más en esto?
-
Not Synced
¿o hay una mejor oportunidad en otro lado?
-
Not Synced
también pueden decidir
-
Not Synced
¿cuál es el valor de esta información?
-
Not Synced
y ¿Qué tanto queremos
trabajar en las partes más riesgosas?
-
Not Synced
en lugar de la parte de
has un pequeño prototipo
-
Not Synced
Una información valiosa y medidas
de este tipo de cosas
-
Not Synced
si sonó útil para ustedes, entonces
les recomiendo este libro
-
Not Synced
¿Cómo medir cualquier cosa?
-
Not Synced
Es un poco aburrido también, pero
-
Not Synced
Oh fue escrito en el 2007
-
Not Synced
Es mucho más reciente
-
Not Synced
Y está en formato de audio libro
-
Not Synced
pero no podrás ver las hojas de cálculo
de ejemplo en la versión audible
-
Not Synced
No lo experimenté mucho
-
Not Synced
Este libro habla totalmente de
aceptar la incertidumbre
-
Not Synced
ya hablamos de las fallas siendo
ciudadanos de primera clase
-
Not Synced
haz la incertidumbre un ciudadano
de primera clase en tus estimados
-
Not Synced
y después podrás lidiar con ella
-
Not Synced
en lugar de ocultarla o correr
-
Not Synced
Alguien me hizo notar ayer
-
Not Synced
que este círculo se parece mucho
al método científico
-
Not Synced
Es como si hicieras una hipótesis
-
Not Synced
haces un experimento
-
Not Synced
analizas los resultados y vienes
con la siguiente hipótesis
-
Not Synced
Kuhn probablemente te diría: HAHA
no funciona de esa forma
-
Not Synced
Ampere, cuando estaba haciendo sus
experimentos sobre corrientes eléctricas
-
Not Synced
para encontrar la electrodinámica
-
Not Synced
y la relación con el magnetismo
-
Not Synced
y tratando de unificar ambas
-
Not Synced
Hizo experimentos donde
descubrío la inducción eléctrica
-
Not Synced
Pero la inducción eléctrica no
le ayudó a mejorar su teoría
-
Not Synced
no tenía un nombre en ese entonces
-
Not Synced
entonces, solo la ignoró
-
Not Synced
dijo algo como: mhn estó no es importante
-
Not Synced
debo encontrar algo relevante
que pruebe mi teoría
-
Not Synced
Mucha de la ciencia de hoy en día
está basada en su borrador
-
Not Synced
En ese tiempo, afortunadamente,
Faraday exploraba más
-
Not Synced
y reconocío la inducción eléctrica
-
Not Synced
y obtuvo el crédito por ello
-
Not Synced
y es mencionado en wikipedia
-
Not Synced
Hipoteticamente esto corresponde
al método científico
-
Not Synced
Pero si nada más confunde
su cabeza el día de hoy
-
Not Synced
El método científico no puede
-
Not Synced
aunque puede ayudar en
las ciencias naturales
-
Not Synced
¿no ayuda en nuestros equipos?
-
Not Synced
puedes hacer Test A/B
-
Not Synced
y tener grupos de control
-
Not Synced
y tener una especie de experimento
reproducible con tus clientes
-
Not Synced
pero no lo puedes hacer en tu equipo
-
Not Synced
¿Trabajará mejor mi
equipo si adoptamos elixir?
-
Not Synced
No puedes probar eso!
-
Not Synced
Porque solo tienes un equipo
-
Not Synced
con esos individuos
-
Not Synced
y su contexto
-
Not Synced
y el problema en el que
están trabajando particularmente
-
Not Synced
No puedes controlar los experimentos
-
Not Synced
El método científico no nos ayuda con
-
Not Synced
ciclos ágiles de aprendizaje y retroalimentación
-
Not Synced
¿Qué viene después del método científico?
-
Not Synced
No es una pregunta que
nos hagamos muy seguido
-
Not Synced
Tengo una idea
-
Not Synced
es solo una idea en este punto
-
Not Synced
La doctora Brené Brownes
una científica social
-
Not Synced
y estudia el entusiasmo, y la vergüenza
y las vulnerabilidades
-
Not Synced
Ella tiene una asombrosa charla en TEDx
que puede cambiar tu vida
-
Not Synced
dura 20 minutos, es muy buena
-
Not Synced
Y leí más de sus libros y el capítulo
más interesante para mi
-
Not Synced
por MUCHO
-
Not Synced
es el apéndice
-
Not Synced
Porque en el apéndice ella habla de
los métodos que ocupa para hacer
-
Not Synced
sus investigaciones
-
Not Synced
Y esto es estudiar un sistema desde dentro
-
Not Synced
porque cuando estamos en un equipo
estamos en un sistema humano
-
Not Synced
y podemos ejercer experimentos
objetivos y repetibles
-
Not Synced
bueno, estamos lejos de ello
-
Not Synced
Pero eso no se significa que no podamos
recolectar datos
-
Not Synced
no significa que no podamos elaborar
teorías
-
Not Synced
en nuestras retrospectivas
-
Not Synced
y aprender acerca de como funciona
-
Not Synced
las ciencias sociales incluso tienen
técnicas para esto
-
Not Synced
Particularmente René Brown ocupa
una teoría fundamentada
-
Not Synced
que dice: puedes empezar con una pregunta
-
Not Synced
¿Qué es el entusiasmo y como lo obtengo?
-
Not Synced
Y empiezas a recolectar datos
-
Not Synced
escuchando a las personas, principalmente
-
Not Synced
y haces una categorización que ellos
llaman 'coding' lo que lo hace confuso
-
Not Synced
pero es la categorización de
todas las historias
-
Not Synced
y las declaraciones de las personas
y las entrevistas
-
Not Synced
y luego eso encaja en una
nueva teoría
-
Not Synced
A lo mejor el entusiasmo tiene que ver
con, ella dice, las vulnerabilidades
-
Not Synced
Pero luego tomas eso, y eso
tal como cualquier otro paradigma
-
Not Synced
te lleva a las siguientes preguntas
-
Not Synced
donde tienes más datos que recolectar
-
Not Synced
y el ciclo de aprendizaje continua
-
Not Synced
y esto se puede hacer desde
dentro del sistema
-
Not Synced
estoy realmente fascinada con esto
-
Not Synced
todos estos círculos de
aprendizaje e innovación
-
Not Synced
y encontrar que es lo que
viene a continuación
-
Not Synced
son super fascinantes en las personas
-
Not Synced
y estoy totalmente de acuerdo que
pase con las personas en mi equipo
-
Not Synced
pero se mantengan fuera de mi código
-
Not Synced
no quiero que mi código sea salvaje y tome
direcciones que nunca podría predecir
-
Not Synced
Es ahí donde entran las dependencias
circulares o aun peor
-
Not Synced
Oh dios
enlace de datos bidireccional
-
Not Synced
UGH
-
Not Synced
Entonces les tengo que preguntar
¿Qué viene después de MVC?
-
Not Synced
No soy la primera que pregunta acerca
de esto el día de hoy
-
Not Synced
lo cual me hace realmente feliz
-
Not Synced
Chris habló de ello
-
Not Synced
Y mi respuesta acerca de qué
viene después de MVC
-
Not Synced
es la arquitectura de Elm
-
Not Synced
más o menos
-
Not Synced
Y ha habido mucha charla acerca de elm
-
Not Synced
lo que es asombroso
-
Not Synced
Y voy a hablar de él otra vez
-
Not Synced
En la arquitectura de Elm empiezas
con un modelo inmutable
-
Not Synced
entonces hay datos
y son immutables
-
Not Synced
y entonces un modelo encaja
en todas las partes de la vista
-
Not Synced
entonces produces HTML
-
Not Synced
de hecho estás produciendo
HTML en el tiempo y eso
-
Not Synced
pero hay un solo modelo immutable
que encaja en todas las funciones de vista
-
Not Synced
y tiene como resultado un tipo
que representa HTML
-
Not Synced
y luego esto funciona como React
donde tienes un DOM virtual
-
Not Synced
donde revisa las diferencias y
mágicamente actualiza la página rápido
-
Not Synced
pero la función de vista es
datos de entrada y datos de salida
-
Not Synced
un bonito flujo de datos
-
Not Synced
y luego llega al usuario
-
Not Synced