Burdjia

Categoría Programación, 20 entrada(s)

Feed Rss, Atom

Comienza Ludum Dare #33

De nuevo no he avisado con tiempo, pero aquí estoy para subsanarlo.

Hoy comienza un nuevo Ludum Dare en el que voy a participar.  Para separar las cosas en nuestro nuevo modelo de negocio, esta vez la información sobre la evolución del concurso se dará a través del blog de El Saloncito del Cómic y la cuenta de Piopio Juegos en Twitter.

De todas formas, más adelante publicaré (espero) el post mortem aquí, como he hecho en otras ocasiones.

Ágora 2.2

Después de un tiempo sin noticias, anuncio la publicación de la versión 2.2 del proyecto Ágora.

Como veréis, el nuevo paquete es mucho más pequeño que los anteriores.  Esto es porque, al ya familiar KISS, le he aplicado el YAGNI por lo que ha desaparecido una buena cantidad de morralla.  Además, se han corregido algunos errores.  Espero que sea útil.

Como véis, doy poca guerra pero sigo al pie del cañón.  Si sois pacientes, habrá más.

No lo vas a necesitar

Esto es algo que tengo en mente desde hace tiempo, pero hace poco lo he visto plasmado en un libro sobre programación, concretamente en Game Programming Patterns, que trata el tema de los patrones de programación.  Este es el texto concreto:

Some folks coined the term “YAGNI” — You aren’t gonna need it — as a mantra to use to fight this urge to speculate about what your future self may want.

Game Programming Patterns - Bob Nystrom

La verdad es que es muy simple.  Cuando trabajas en un proyecto, cualquiera, estás solucionando problemas, muchas veces futuros problemas que no te has encontrado.  Es en estos "futuros problemas" donde aparecen los ysis y los porsiacas, así que según vas diseñando y programando pasas una buena parte del tiempo analizándolos y buscando soluciones que no sabes si vas a necesitar algún día, porque no es lo que necesitas ahora.  Y la experiencia, no sólo mía sino la de miles de programadores en todo el Mundo, dicta que estos ysis y porsiacas rara vez se convierten en problemas reales.  Así que al final casi siempre terminas con una obra maestra que está plagada de funciones y estructuras que rara vez, si no nunca, van a ser utilizadas por alguien.

Aquí es donde aparece ese YAGNI (o NLVAN - No lo vas a necesitar).  Este mantra, como lo llama Nystrom, nos recuerda el párrafo anterior, y que por lo tanto la mayoría de las veces no merece la pena perder el tiempo en ello.  Si el problema es real, y lo necesitamos ya, entonces sí hay que programarlo, pero si no, pues no.

Precisamente los proyectos que tenemos ahora en marcha son lo suficientemente complejos como para ser caldo de cultivo ideal para ysis y porsiacas.  Es más, uno de ellos, xMAP, está siendo reescritos porque la complejidad creció más de lo necesario y me vi atrapado en mi propia creación sin poder hacer lo que realmente quería.  Por eso os recomiendo que vosotros también hagáis vuestro el YAGNI, no sólo en programación, sino en cualquier proyecto.

Ingenieros incomprensibles

Hay ocasiones que no entiendo muy bien qué pasa por la mente de los ingenieros informáticos.  A veces hacen cosas rarísimas, subterfugios incomprensibles, complicándose la vida a ellos y a los demás.  Supongo que serán los porsiacas, esos trozos de código que pones por si acaso lo necesitas, pero que en el 99'99% de las ocasiones no hacen otra cosa que ocupar espacio y complicar el código, porque nunca lo necesitas.  O tal vez sea el Si algo funciona, no lo toques aunque haya salido una versión más nueva y más mejor.  O quizá sólo sea que tienen una mente retorcida y aviesa.

Por ejemplo, el otro día estoy leyendo un artículo en una web, el cual tiene un vídeo inclustado.  Sin embargo, resulta que en vez del vídeo se ve un rectángulo negro.  Vaya.  Abro las propiedades de Gnash y me encuentro con esto:

¿Problemas con el vídeo?  No: Problemas con Flash.

Me encuentro con que usa la versión 2 de la máquina virtual de Flash.  Lo curioso del caso es que se trata de un vídeo de YouTube, y esos vídeos he podido verlos sin problemas siempre.  Así que copio el identificador del vídeo, voy a la página de YouTube, busco y encuentro el mismo vídeo, el cual puedo reproducir sin ningún problema.  Así que abro las propiedades para asegurarme de que se trata del mismo vídeo, y ver si existe algún parámetro diferente en ambos casos.  Esto es lo que me encuentro:

¿Problemas con el vídeo? No, ¿y con Flash?  Tampoco

Veamos, una persona ha escrito un programa en Flash para reproducir vídeos, y lo ha hecho de forma que que si se ejecuta dentro de la página de YouTube usa la versión 1 de la máquina virtual, mientras que si lo hace fuera de YouTube usa la versión 2.  ¿Por qué?  ¿Qué objetivo tiene ese comportamiento?  ¿Qué ventajas tiene?

Se me ocurren varias razones por las que suceda esto y ninguna me parece buena.  La más lógica es que haya dos reproductores diferentes, uno para usarlo dentro de YouTube y otro para usarlo fuera.  Esto me parece incluso lógico, para que dentro de YouTube pueda comunicarse con la web, pero aun así, ¿por qué uno usa una versión y el otro otra?

Lo dicho:  no entiendo muy bien lo que pasa dentro del cerebro de los ingenieros informáticos.

GameJam 2014

Voy a ser sincero:  Acabamos de enterarnos.

El fin de semana del 24 al 26 de Enero tendrá lugar el Game Jam 2014.  Se trata de uno de esos concursos que duran un fin de semana.  Aunque en realidad no es tanto un concurso, sino más bien una posibilidad de juntarse, de aprender y de enseñar cómo hacer videojuegos.

Cuando comenzamos con este proyecto (me refiero a Burdjia.com) me había hecho a la idea de organizar una de estas Game Jam en plan iniciación, para aquellos burgaleses que tuvieran curiosidad sobre las interioridades de los videojuegos.  Por desgracia, he llegado tarde así que no puedo participar.  De todas formas, aquí tenéis la lista de todos los Game Jams organizados en España, por si os interesa.

A ver si ando más atento y no se me pasa el próximo evento, me da tiempo a prepararlo y aviso con tiempo.