lunes, agosto 07, 2006

Las dos caras del PFC

Este no es el típico post que podría llevar por título "Algún día desearás estar programando la gestión de una lavandería". No voy a hablar de que a veces es maravilloso y a veces estás tan cansado que desearías meterte una palanca de metal por un oido solo para sacar al responsable de que estés haciendo algo complicado.

El PFC conjunto de un buen amigo y un servidor pretende ser algo así como un juego multijugador online en el que "diseñes" tu especie y vayas sobreviviendo en tu lucha diaria por la superviviencia.

Puede parecer algo totalmente trivial y estúpido, pero es un tema con bastante jugo que da para que los dos nos podamos dedicar más a la parte que más nos puede llamar (o eso creo).

En mi caso, los temas a tratar (programar) son dos, y ambos me interesan, pero por distintas razones.

Creo haber dicho ya anteriormente aquí que la informática no me interesa per se (como un fin en si misma) sino por su relación con innumerables áreas. Es por ésto que mi PFC no podía ser algo cerradamente informático, a pesar de que me ofrecieron algo así, y tenía que implicar algún otro área. Por eso, mi PFC tiene esos dos temas bastante bien diferenciados.

El primero de los temas es puramente informático y lo sugirió el director de mi PFC, al que enmarroné con un Proyecto del que sabe bastante poco (por temática) y en el que le agradezco que no haya interferido más de lo necesario.

Quizás por ese marrón acepté su sugerencia sin pensarlo demasiado, la búsqueda de información y posterior implementación del proyecto sobre una red P2P totalmente dstribuida.

Ya escribí en su momento sobre el proceso de investigación sobre el tema de P2P y he de confesar que me gustó mucho la investigación. Ya anteriormente me había puesto a investigar sobre ciertos emas, relacionados casi siempre con mi trabajo de becario, pero nunca me había dedicado durante un mes a buscar por Google y libros información sobre distintos sistemas de P2P y a valorar las ventajas e inconvenientes de cada uno para luego decidir qué sistema usar para el Proyecto.

Ahí me sentí como un pequeño científico con bata blanca investigando en su laboratorio. Realmente disfruté. Había investigado sobre un tema totalmente informático, pero creo que la razón de mi interés eran las aplicaciones que observaba en el tema en cuestión.

La creación de una red de ordenadores que procesen y compartan datos en paralelo a través de la red me parece algo bastante potente y muy interesante para miles de aplicaciones.

La otra cara del PFC es la aparentemente menos informática, el estudio de la evolución y su modelización. Este punto me atraía por dos cuestiones.

En primer lugar, la Biología me gusta mucho, y la evolución me parece un tema de lo más interesante y bastante ignorado por todos (las lecturas que hice no hacen más que demostrármelo). Me interesa mucho todo el tema de la complejidad de los sistemas y los comportamientos emergentes, que creo que pueblan el panorama evolutivo.

Las lecturas que llevo realizadas me han hecho descubrir una nueva disciplina, conocida como "Vida Artificial" que se ocupa de asuntos como éste y que parece bastante interesante, aunque algo marginal, en la que me gustaría profundizar en un futuro, como en muchas otras.

En segundo lugar, quería demostrarme que la carrera me había enseñado a plantearme problemas complejos, modelarlos e implementarlos. Quería hacer algo lo suficientemente bueno, pero que no se alejara demasiado de algo corriente.

Lamentablemente creo que no alcanzaba a ver la complejidad de este asunto, ni de lejos, y ésto se aleja bastante de algo corriente. No me refiero ni a un número de líneas de código exacerbado, ni a millones y millones de clases y diagramas.

De hecho, en tamaño, mi proyecto es más bien normalito y he tenido prácticas más grandes. Sin embargo, hay momentos en que me lleva horas escribir una sola línea de código y días en que me tengo que detener por mera frustración, de manera que la codificación de un método puede llevarme lo que me llevaría configurar la base de datos de mi aplicación para una lavandería.

Y no es porque haya leido/pensado poco precisamente. Parece ser que los biólogos tampoco están muy de acuerdo en todos los puntos concernientes a la evolución, incluso entre aquellos que la defienden.

Ésto no ayuda en nada al intento de modelar la evolución, complejo ya de por sí. Así que la segunda parte, el "modelar algo" se va a convertir en un experimento informático en toda regla.

No puedo estar seguro de que mi idea de la evolución, que intento plasmar en líneas de código sea ni mucho menos la correcta, y Dios sabe que ya he luchado para que todo quede en manos de alguien que sepa más del tema que yo, permitiéndole definir características y los intercambios de energía.

Sin embargo, hay ciertos asuntos que no se me ocurre como dejar en manos de otros y yo tengo que tomar la decisión. Eso forma parte de mi experimento informático.

Quizás esa parte no vaya a revolucionar nada, ni suponga un avance dentro de mi campo (la Informática), sin embargo es mi propio experimento informático, algo nada rutinario que estoy desarrollando a un coste bastante grande de energía y tiempo.

8 comentarios:

El Hombre del Traje Blanco dijo...

Tienes la beta para ayer? Si la respuesta es no, me vale para dentro de dos semanas.

Ahora en serio, vuestro proyecto es algo aberrantemente complicado, pero nadie esperaba menos de vosotros. Animo :)

PD. Puedo dar nombre a algun componente del juego? Puedo? Puedo?

WaaghMan dijo...

Tal como yo lo veo, puede que te enfrentes a un problema con este proyecto en el futuro.

Teniendo en cuenta la temática del proyecto, has hecho bien en planteártelo como PFC, ya que te "obliga" a trabajar en él de forma continuada, para obtener resultados.

El problema que decía antes, no obstante, podría surgirte precisamente por el mismo motivo. Si se acercase una fecha de presentación y tuvieses el proyecto más o menos terminado, pero no del todo, ¿Estarías dispuesto a presentarlo, aunque no terminado al 100%?. Y, lo que es más importante, ¿Te verías con ganas de continuar más tarde con él?

No me malinterpretes, no estoy diciendo, en absoluto, que no vayas a ser capaz de terminarlo, o de que vayas a tardar en hacerlo. Pero con una cosa tan alejada de lo habitual en la informática, hay posibilidades de que, simplemente, el problema que pretendes resolver no sea fácilmente resoluble, y tengas que tomar decisiones "chapuceras" con tal de acabar a tiempo el proyecto.

Y no digo que eso sea malo, reducir la complejidad de las especificaciones iniciales es algo muy habitual. A lo que me refiero es a que, en ese caso, puede que después perdieses el interés en el proyecto...

Pero todo esto es una mera posibilidad. Cambiando de tema, ardo en deseos de ver lo que lleváis hecho en acción :D.

El Aprendiz dijo...

Soy consciente de lo que me planteas Waaghman. Si he llegado tan lejos es porque estoy "obligado".

¿Estaré dispuesto a presentar un Proyecto que no haga todo lo que realmente quiero que haga?

Pues no creo que me quede mucho más remedio. Dudo poder darle una solución cerrada (hoy llevo 3 horas aqui sentado mirando para mi libretita del Proyecto y pensando, he tenido que hacer una traza imaginaria de un codigo y una situacion imaginarios para poder llegar a la conclusion de que no hacia falta lo que pensaba que sí).

¿Seguiré con ello después? No sé. Me mola mucho, pero hay muchos otros temas que me molan también, ya sabes. Supongo que lucharé por mantener el equilibrio entre todos mis gustos, como de costumbre :P

Rochgs dijo...

Enhorabuena. No hay mucha gente que consiga que sus obligaciones coincidan con algunos de sus placeres :)

Anónimo dijo...

A cuento de lo que dice Waaghman, creo que el mero hecho del aprendizaje justificará que el proyecto final se "simplifique".

¿Alguien ha visto algo del proyecto? Porque mirá que le he dado la turra a Brenes y jamás me ha enseñado nada.

Tensión hasta el final.

Guti dijo...

Cuando empecé a mirar lo de mi tesis doctoral (1995) quería hacer algo que podía tener que ver con... termitas y comportamiento emergente, entre otras cosas. Yo tenía una serie de ideas variopintas que pretendía combinar, y meses después me enteré de que aquella disciplina ya existía y venía a llamarse "sistemas complejos". Me parece que es más o menos en lo que vosotros andáis metidos.

Yo abandoné la idea por diversas razones prácticas, pero me parece un tema apasionante, aunque pueda ser difícil. El riesgo de "cansarse" es evidente, pero eso puede pasarte igual con la lavandería, te lo garantizo.

Aunque no soy tutor del proyecto, y no quiero meterme donde nadie me llama, sí quiero apuntar que lo de "hacer una chapuza para terminarlo" está fuera de lugar; no es necesario. El tiempo delante de la libreta pensando ES tiempo del PFC, son créditos, y cuentan. Es *trabajo*. Nuestro trabajo no es mecanografiar código.

Quiero decir que hecho un esfuerzo suficiente y obtenidas algunas conclusiones, el PFC incluirá hasta donde hayas llegado. Todo este estudio, esta evaluación de opciones, este planteamiento de caminos, es trabajo válido para un PFC "de tipo científico". Es más, un PFC en el que alguien estudie a fondo un problema dificilísimo y discuta por qué no funcionan diversas "soluciones" (aunque no dé definitiva) no sería un PFC "de segunda", sino "de divisón de honor". Sin ninguna duda.

Así que trabajad sin comeduras de tarro, disfrutad del problema, y pensad en terminarlo antes o después por satisfacción personal o para haceros ricos, pero el PFC de la EUITIO yo creo que está a salvo. Basta organizar y presentar adecuadamente el material que se haya generado hasta el momento.

Es mi sugerencia, con toda humildad (y mis disculpas para el director del proyecto por meterme).

El Aprendiz dijo...

Bueno Guti, mi fe en la humanidad se ha visto resentida desde hace unos meses para aquí y en el caso de la Universidad se ha visto especialmente agravado, así que no tengo mucha esperanza acerca de cuantos han abandonado el LOC (Líneas de Código) como medida de calidad.

Que nadie se me pique, supongo que algún día, cuando pase algo bueno, recuperaré la fe.

Ahora mismo hay bastante presión para acabar el PFC en Septiembre (y aunque a mis padres podría esquivarles, quiero entrar en un Máster en el que parece haber bastante competencia), así que mi PFC consistirá en las conclusiones que haya sacado para el día 1 y que documentaré como pueda (no soy muy bueno documentando).

Con respecto a las betas... bueno... Podría decir que la otra parte ya tiene algo que se ve, pero que no hace demasiado. De la parte de evolución, estoy terminando la primera versión, porque ésto es 0 (no tienes nada) o 1 (lo tienes hecho). Lo que pasa que después del 1 vendrá el 1.1 y demás :P

Anónimo dijo...

Yo he visto algo en movimiento!! :-P.

Vuestro proyecto está genial, de hecho os odio por hacer un juego tan molón jejeje. Si grabais un vídeo y se lo pasais a los de Vidaextra seguro que lo ve Will Wright y se tira de los pelos por haber tardado tanto en sacar el spore xD.

Yo también he pasado tiempo pensando cómo hacer las cosas (yo más por temas de eficiencia y control de ventanas que por diseñar la evolución 8-)) pero al final al menos a mí me entra una sensación de superación que creo que será comparable a la de cuando acabemos de presentar el PFC :-P. Es distinto a cuando te tiras 4 días sin avanzar para al final encontrar una solución que no comprendes (pero que funciona...).

Ánimo ;-).

P.D. Al final sí que nos liamos un poquito por ahí...