Toranks

#38 #35 Eso es por que no habéis visto Érase una vez la vida. Tienen un aire

Joaqui

Soy el unico que se ha acordado de Futurama?

D

#34 esos eran parásitos no virus

Joaqui

#35 Cierto. Fallo mio.

Toranks

#38 #35 Eso es por que no habéis visto Érase una vez la vida. Tienen un aire

Joaqui

#2 Completamente de acuerdo contigo, es más, yo añadiria otro punto más aparte del color. La banda sonora. ¿Por qué decidieron desacerse de John Williams para intentar copiar a John Williams?

Mirad los dos teaser de Star Wars VII, gran culpa de que nos pongan los pelos como escarpias a todos la tiene la banda sonora de Williams, obviamente no lo es todo, pero si que es muy importante.

Mirad este año, Star Wars, Jurassic world y Terminator... a ninguno se les ha ocurrido cambiar la banda sonora. Creo que ese es otro gran fallo de esta pelicula.

Joaqui

Titular real : "Un policia de EEUU apunta con una pistola a dos adolescentes negros porque son negros."

D

#16 Titular real: dos Bad-cops rednecks apuntan con su pipa molona a dos negratas-niggas armados.

Ciertamente pensaba que mucho afroamericano exageraba demasiado el tema del racismo, pero veo que se quedan cortos. Se ve que ni siquiera tener un presidente negro lima asperezas.

Joaqui

#4 Vendiendo miedo, yo lo dijo Michael Moore en Bowling for Columbine.

D

#4 pues lo mismo que Antena3 y sus lacayos con Lourdes Maldonado a la cabeza: miedo y pánico. Tal y como apunta #14 .

Si ya la liaron con la Gripe A, imagínate con el Ébola que es más letal.

#89

Buenísima, como todo lo que sacan Trey Parker y Matt Stone.

D

#4 #12 no, lo dice claramente un comentario.

Esta es la verdad detrás del cráter de siberia

Joaqui

#32 Si los Palestinos tuvieran el mismo poder militar Israel no tendria cojones de hacer lo que esta haciendo.

D

#83 Mas bien como dijo aquel, "si los palestinos quisieran sus hijos tanto como los israelies a los suyos, habria paz".

Joaqui

#11 Antes de sentarse a programar hay que escribir, eso es lo único que digo, ni flujo de ejecución ni nada, las ideas al papel.

ktzar

#13 El papel es tan de los 2000... Ahora, antes de escribir código, deberías empezar por tus tests. Así no se te olvida lo que estás haciendo:

- Test, que falle
- Lo arreglas, commit
- Otro test, que falle
- Lo arreglas, commit

Así, te interrumpan cuando te interrumpan, puedes seguir donde estabas, ya que un test incluye bastante de lo que pensabas hacer en el código y a veces cómo pensabas abordarlo.

Típico test que está sin solucionar:

```js
var popup = popupModule.createPopup('#popup', '#trigger');
$('#trigger').trigger('click');
expect($('#popup').is(':visible').toBeTruthy()
```

Cuando me encuentro ese test que falla, sé perfectamente qué es lo que tengo que implementar.

D

#14
Propones TDD y eso tampoco es amijo. Al final terminas con código orientado a ejecutar bien los tests en vez de orientado a una lógica correcta.

delawen

#14 #15 #20 #25 #27 El TDD sólo sirve cuando la idea ya está avanzada. Si lo que estás haciendo es diseñar un componente desde cero, desde la idea abstracta, es absolutamente inútil.

TDD está bien para los desarrolladores puros, a los que se les dan las estructuras ya pensadas y lo "único" que tienen que hacer es programar (nótense las comillas en "único", no estoy despreciando esta tarea en absoluto). No han sido pocas las veces que he visto usar TDD para sistemas completamente nuevos y al final acabas programando dos veces: primero los tests, luego la implementación inicial, luego rehaces los tests porque te has dado cuenta de que necesitabas otras APIs diferentes y luego, finalmente, la implementación que encaje con los nuevos tests.

drwatson

#29 que es un desarrollador puro??? creo que en cualquier proyecto en el que trabajes todo el mundo es desarrollador.
TDD funciona muy bien para fases iniciales, pero hay que saber escribir tests y saber lo que se quiere conseguir y eso no todo el mundo sabe hacerlo

ktzar

#29 El TDD sirve todo el rato,... TDD no significa que los tests no se puedan cambiar más adelante, borrar, o combinar... La idea del TDD es que no es sólo útil para que tu aplicación esté probada, sino para ayudarte a establecer un ciclo de trabajo y a pensar, antes de picar código, qué demonios es lo que quieres hacer.

Lo que es una tontería es ser super estricto y estar haciendo tests para cada pequeña porción de lógica que añades, pero pensar "outside-in" en lugar de "inside-out" es muy útil a la hora de hacer código que sea cómodo de usar.

Cuántas veces, antes de empezar a programar una clase, hemos hecho un pequeño boceto en código de cómo usaríamos esa clase... Pues bien, una vez esta uno acostumbrado a escribir tests, ese código que uno luego tiraría a la basura, lo hace en formato test, y esto ayuda muchísimo a ir hilando ideas...

Y como dice #30 no todo el mundo sabe hacer tests, y para mucha gente esto es poco productivo. Pero a mi me funciona para el 50-60% de código que hago... El truco es tener 10-15 estrategias distintas a la hora de afrontar algo, de plantearse cómo testearlo. No todo tiene que tener 20 mocks y 200 tests. Y no hay que ser talibán ni de TDD ni de lo contrario (no tener ni un santo test). A veces, con escribir 4 o 5 tests inicialmente para un código en el que trabajarás 4 horas es una aproximación muy válida. No siempre hay que tener esos mini-ciclos de un test, al menos es mi opinión, que eso no funciona para todo tipo de códigos.

Por ejemplo, el otro día programando el código de pathfinding de un juego, pues hacer TDD me ayudó a establecer qué formato iba a dar a los nodos y segmentos, y qué cosas iba a esperar... Fue entonces cuando me fui dando cuenta de cuándo quería ids de nodos, y cuándo píxeles... Si no hubiera hecho los tests primero, me habría dado cuenta a medias y tendría que haberlo cambiado todo 3 ó 4 veces.

delawen

#30 (y #32 y #34) Desde mi punto de vista, un desarrollador puro es alguien a quien le dan las interfaces/objetos/esquemas ya hechos y "sólo" tiene que modelarlo en la tecnología escogida.

No todo el mundo programa ni todo desarrollador hace sólo programación. De ahí lo de "puro". Alguien que sólo desarrolle, o sea, que sólo programe.

Te pongo un ejemplo que he tenido hace poco: estábamos tratando con crowdsourcing y necesitábamos un componente que pudiera verificar cómo de fiables eran los diferentes datos que se estaban subiendo. Todavía es una idea abstracta, no puedes definir ni tests ni interfaces ni nada. Ni siquiera tienes claro qué tipos de entradas y salidas vas a necesitar.

Durante las primeras horas (o días o incluso semanas), lo único que vas a hacer es leer fuentes, pensar, hacer algún esquema no muy concreto y hablar con gente que creas que puede aportarte ideas.

Ahí ni el TDD ni ninguna técnica de programación podrá ayudarte. Estás sólo tú con tus ideas felices.

TDD sólo sirve cuando la idea ya está avanzada, esquematizada y repensada. Que yo no sé vosotros, pero en mi trabajo eso suele ser menos de la mitad del tiempo.

a

#33 TDD sólo sirve cuando sabes lo que quieres hacer, como cualquier otra técnica de programación del mundo. De todos modos en ocasiones una aproximación con BDD y tratando de definir ejemplos de lo que quieres ayuda bastante, y si lo haces bien esos mismos ejemplos posteriormente se convierten en las pruebas de aceptación de tu sistema. Luego, la idea del "programador" como alguien que codifica en base a un diseño entregado por otro, vamos el waterfall de toda la vida, hace siglos que esta desterrada de cualquier equipo de programación medianamente competente, the design is the code decía jack reeves hace muchos, muchos años (dale al google y leete los artículos).

#32 En problemas puramente algoritmicos TDD no ayuda al diseño de algoritmos, para eso existen tecncias de algoritmia, en estos casos puede ser suficiente con tener algunos test iniciales y usarlos simplemente como método de comprobación para saber cuando hemos terminado, pero no como técnica de diseño del propio algoritmo, esto quedo bastante claro con el famoso asunto del sudoku y Ron Jeffries (uno de los integrantes del equipo original del proyecto C3 con Kent Beck donde se empezo a utilizar esto del TDD). Para el resto de problemas la aproximación en baby steps suele dar buenos resultados, tu código crece de manera mucho más sana, sobre todo si haces buen uso de la fase de refactor.

delawen

#36 EFfectivamente, TDD sirve cuando el proyecto ya está avanzado. Luego, volviendo al tema inicial del hilo, ni TDD ni hacer dibujitos ni nada similar te puede ayudar a la hora de simular ante los demás que estás trabajando más que cuando te sientas sencillamente en la silla (o vas andando, a mi me ayuda andar) mirando al infinito.

t

#29 Hombre, si te pones a picar código a lo loco, sin pensar un poco antes lo que quieres hacer y cómo estructurarlo, pues claro que no funciona. Pero es que tampoco te va a funcionar de otra manera, el código va a ser una locura hasta que se estabilice.

Llevamos 50 años de ingeniería del software por algo. Lo de ponerse a picar sobre la marcha puede servir para un script de tres al cuarto, pero para poco más.

ED209

#14 cuando tienes que diseñar algo con cierta estructura el TDD (en el sentido estricto red->green->refactor) no ayuda. Lo que ayuda es el papel y boli.

ktzar

#25 Tienes razón que en el sentido estricto no funciona del todo bien a la hora de diseñar algo. Pero por ejemplo, siempre se dice que diseñar un API es la mejor forma de diseñar un sistema, ya que ayuda a la hora de buscar qué tipo de uso se le va a dar al sistema.

Pues bien, si en lugar de usar papel y boli, se hace una base de datos y se programa un cliente del api en forma de unit tests (o tests de comportamiento), ese cliente (que se podrá ir cambiando, claro) es una documentación, una hoja de ruta perfecta. Y es cierto que en ese caso, lo ideal es ir en grupos de tests, no de uno en uno.

Joaqui

Nada mas fácil que coger papel y boli para evitar esas cosas...

D

#10 Ayuda bastante, sí. Pero no puedes escribir el flujo de ejecución de cualquier cosa.

Joaqui

#11 Antes de sentarse a programar hay que escribir, eso es lo único que digo, ni flujo de ejecución ni nada, las ideas al papel.

ktzar

#13 El papel es tan de los 2000... Ahora, antes de escribir código, deberías empezar por tus tests. Así no se te olvida lo que estás haciendo:

- Test, que falle
- Lo arreglas, commit
- Otro test, que falle
- Lo arreglas, commit

Así, te interrumpan cuando te interrumpan, puedes seguir donde estabas, ya que un test incluye bastante de lo que pensabas hacer en el código y a veces cómo pensabas abordarlo.

Típico test que está sin solucionar:

```js
var popup = popupModule.createPopup('#popup', '#trigger');
$('#trigger').trigger('click');
expect($('#popup').is(':visible').toBeTruthy()
```

Cuando me encuentro ese test que falla, sé perfectamente qué es lo que tengo que implementar.

D

#14
Propones TDD y eso tampoco es amijo. Al final terminas con código orientado a ejecutar bien los tests en vez de orientado a una lógica correcta.

delawen

#14 #15 #20 #25 #27 El TDD sólo sirve cuando la idea ya está avanzada. Si lo que estás haciendo es diseñar un componente desde cero, desde la idea abstracta, es absolutamente inútil.

TDD está bien para los desarrolladores puros, a los que se les dan las estructuras ya pensadas y lo "único" que tienen que hacer es programar (nótense las comillas en "único", no estoy despreciando esta tarea en absoluto). No han sido pocas las veces que he visto usar TDD para sistemas completamente nuevos y al final acabas programando dos veces: primero los tests, luego la implementación inicial, luego rehaces los tests porque te has dado cuenta de que necesitabas otras APIs diferentes y luego, finalmente, la implementación que encaje con los nuevos tests.

drwatson

#29 que es un desarrollador puro??? creo que en cualquier proyecto en el que trabajes todo el mundo es desarrollador.
TDD funciona muy bien para fases iniciales, pero hay que saber escribir tests y saber lo que se quiere conseguir y eso no todo el mundo sabe hacerlo

ktzar

#29 El TDD sirve todo el rato,... TDD no significa que los tests no se puedan cambiar más adelante, borrar, o combinar... La idea del TDD es que no es sólo útil para que tu aplicación esté probada, sino para ayudarte a establecer un ciclo de trabajo y a pensar, antes de picar código, qué demonios es lo que quieres hacer.

Lo que es una tontería es ser super estricto y estar haciendo tests para cada pequeña porción de lógica que añades, pero pensar "outside-in" en lugar de "inside-out" es muy útil a la hora de hacer código que sea cómodo de usar.

Cuántas veces, antes de empezar a programar una clase, hemos hecho un pequeño boceto en código de cómo usaríamos esa clase... Pues bien, una vez esta uno acostumbrado a escribir tests, ese código que uno luego tiraría a la basura, lo hace en formato test, y esto ayuda muchísimo a ir hilando ideas...

Y como dice #30 no todo el mundo sabe hacer tests, y para mucha gente esto es poco productivo. Pero a mi me funciona para el 50-60% de código que hago... El truco es tener 10-15 estrategias distintas a la hora de afrontar algo, de plantearse cómo testearlo. No todo tiene que tener 20 mocks y 200 tests. Y no hay que ser talibán ni de TDD ni de lo contrario (no tener ni un santo test). A veces, con escribir 4 o 5 tests inicialmente para un código en el que trabajarás 4 horas es una aproximación muy válida. No siempre hay que tener esos mini-ciclos de un test, al menos es mi opinión, que eso no funciona para todo tipo de códigos.

Por ejemplo, el otro día programando el código de pathfinding de un juego, pues hacer TDD me ayudó a establecer qué formato iba a dar a los nodos y segmentos, y qué cosas iba a esperar... Fue entonces cuando me fui dando cuenta de cuándo quería ids de nodos, y cuándo píxeles... Si no hubiera hecho los tests primero, me habría dado cuenta a medias y tendría que haberlo cambiado todo 3 ó 4 veces.

delawen

#30 (y #32 y #34) Desde mi punto de vista, un desarrollador puro es alguien a quien le dan las interfaces/objetos/esquemas ya hechos y "sólo" tiene que modelarlo en la tecnología escogida.

No todo el mundo programa ni todo desarrollador hace sólo programación. De ahí lo de "puro". Alguien que sólo desarrolle, o sea, que sólo programe.

Te pongo un ejemplo que he tenido hace poco: estábamos tratando con crowdsourcing y necesitábamos un componente que pudiera verificar cómo de fiables eran los diferentes datos que se estaban subiendo. Todavía es una idea abstracta, no puedes definir ni tests ni interfaces ni nada. Ni siquiera tienes claro qué tipos de entradas y salidas vas a necesitar.

Durante las primeras horas (o días o incluso semanas), lo único que vas a hacer es leer fuentes, pensar, hacer algún esquema no muy concreto y hablar con gente que creas que puede aportarte ideas.

Ahí ni el TDD ni ninguna técnica de programación podrá ayudarte. Estás sólo tú con tus ideas felices.

TDD sólo sirve cuando la idea ya está avanzada, esquematizada y repensada. Que yo no sé vosotros, pero en mi trabajo eso suele ser menos de la mitad del tiempo.

a

#33 TDD sólo sirve cuando sabes lo que quieres hacer, como cualquier otra técnica de programación del mundo. De todos modos en ocasiones una aproximación con BDD y tratando de definir ejemplos de lo que quieres ayuda bastante, y si lo haces bien esos mismos ejemplos posteriormente se convierten en las pruebas de aceptación de tu sistema. Luego, la idea del "programador" como alguien que codifica en base a un diseño entregado por otro, vamos el waterfall de toda la vida, hace siglos que esta desterrada de cualquier equipo de programación medianamente competente, the design is the code decía jack reeves hace muchos, muchos años (dale al google y leete los artículos).

#32 En problemas puramente algoritmicos TDD no ayuda al diseño de algoritmos, para eso existen tecncias de algoritmia, en estos casos puede ser suficiente con tener algunos test iniciales y usarlos simplemente como método de comprobación para saber cuando hemos terminado, pero no como técnica de diseño del propio algoritmo, esto quedo bastante claro con el famoso asunto del sudoku y Ron Jeffries (uno de los integrantes del equipo original del proyecto C3 con Kent Beck donde se empezo a utilizar esto del TDD). Para el resto de problemas la aproximación en baby steps suele dar buenos resultados, tu código crece de manera mucho más sana, sobre todo si haces buen uso de la fase de refactor.

t

#29 Hombre, si te pones a picar código a lo loco, sin pensar un poco antes lo que quieres hacer y cómo estructurarlo, pues claro que no funciona. Pero es que tampoco te va a funcionar de otra manera, el código va a ser una locura hasta que se estabilice.

Llevamos 50 años de ingeniería del software por algo. Lo de ponerse a picar sobre la marcha puede servir para un script de tres al cuarto, pero para poco más.

ED209

#14 cuando tienes que diseñar algo con cierta estructura el TDD (en el sentido estricto red->green->refactor) no ayuda. Lo que ayuda es el papel y boli.

ktzar

#25 Tienes razón que en el sentido estricto no funciona del todo bien a la hora de diseñar algo. Pero por ejemplo, siempre se dice que diseñar un API es la mejor forma de diseñar un sistema, ya que ayuda a la hora de buscar qué tipo de uso se le va a dar al sistema.

Pues bien, si en lugar de usar papel y boli, se hace una base de datos y se programa un cliente del api en forma de unit tests (o tests de comportamiento), ese cliente (que se podrá ir cambiando, claro) es una documentación, una hoja de ruta perfecta. Y es cierto que en ese caso, lo ideal es ir en grupos de tests, no de uno en uno.

Joaqui

Lo raro es que a Antena3 no se le ocurriese antes...

D

#7 Lo raro es que a Antena3 no se le ocurriese antes

D

#7 En antena3 duraría un mes con las repiticiones

D

#11 En A3 en vez de 12 días llevaría 12 años. Cosas de la publicidad.

D

#7 Están ocupados poniendo TODOS los anuncios que tienen seguidos y en bucle.

Joaqui

Traducción: La diputada Milagrosa Martinez no deja su escaño porque no le sale del coño.

Joaqui

#3 Y sin mira telescopica...vaya tela el Simo Häyhä

Joaqui

Podía haberlo resumido en solo una...tener dinero

Joaqui

"Dicho de otra forma: los jóvenes confían más en McDonald's que en la Iglesia" Frase épica donde las haya...

D

#25 Y sensacionalista.

Joaqui

Wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!!!!!!!!!!!!!!!

Joaqui

Al final los Simpsons tendrán razón

Joaqui

#2 Acuerdate que es de "Fucking master of the universe"

Joaqui

#6 Si, seria curioso que te pegaran un tiro para que no bebieras alcohol, que es malo para la salud...