¡¡Cambio de Hospedaje!!
Asuntos Varrojeros se muda!!
Gracias todos quienes se toman el tiempo de pasar cada tanto a revisar que hay de nuevo y esperamos segurlos viendo en nuesto nuevo local.
Saludos,
Varrojo.-
Un sitio de Noticias, Discusiones, Software y miscelánea. ;-) enjoy.-
Asuntos Varrojeros se muda!!
Poetry and Buddha: Diez Analogías entre el Budismo y el Software Libre
Este Post se relaciona mucho con el anterior, si bien no es necesario leerlo para comprender los conceptos relacionados con el presente.
Resulta que para una materia del semestre anterior (7mo) se nos pidió trabajar sobre un simulador de robots llamado Yaks. A modo rápido, lo bueno de Yaks es que permite desarrollar y ejecutar agentes para el robot Khepera, en forma completamente gratuita, pero presenta dos limitaciones bastante importantes: 1) únicamente puede ser programado en C/C++ y 2) el código del simulador es mucho menos que prolijo.
Los principales problemas de estas limitaciones son:
El imponer el lenguaje fuerza a que los alumnos deban tener algún primer contacto con él, lo cual es bueno, pero en general esto no es bueno, especialmente tratándose de C/C++. Por desgracia me llevo el concepto de que mucha gente sintió que el lenguaje causaba más problemas de los que solucionaba.
Los problemas relacionados con tener que lidiar con código escrito por otra persona del otro lado del mundo, el cual es especialmente embrollado y prácticamente no tiene documentación alguna.
Fue a raíz de estos motivos que varias veces comentamos lo bueno que estaría desarrollar un tipo de interfaz que permitiera ocultar los detalles del simulador a los desarrolladores.
El resultado de esto es en lo que he estado trabajando en los últimos días: Yaks Server, básicamente una API desarrollada en C++ que permite abstraer los detalles del simulador a través de una interfaz de BSD Sockets. Yaks Server crea una capa de que “cubre” el simulador, simplificando la tarea de desarrollo.
La interfaz presenta 3 primitivas:
Desde el punto de vista de los clientes, la situación es muy similar, únicamente que el flujo de información es al revés, enviando velocidades y recibiendo percepciones.
Las grandes ventajas que el agregar esta capa de abstracción nos proveen se basan en que los desarrolladores no deberán previamente estudiar el código del simulador para poder trabajar con él y, además, la API del lado del cliente puede ser desarrollada en cualquier lenguaje (que sea capaz de hacer uso de las funciones de red), por lo cual los clientes pueden ser desarrollados en una gran variedad de lenguajes.
Si bien se podría alegar que esto es perjudicial, yo creo que a la larga termina siendo beneficioso. Pienso que los malos hábitos que uno genera cuando aprende a las apuradas son, en general, los más difíciles de corregir. En la línea del Post anterior: C/C++ no es un lenguaje que pueda aprenderse bien a las apuradas.
Navegando por el Teatro Mágico me encontré con un nuevo jueguito!!