Between parentheses Between parentheses, improving the world with Lisp

June 15th, 2010 No comments

Llevo unos días escribiendo en Between parentheses, el blog oficial de Gacela, en el que voy publicando explicaciones del diseño interno, ejemplos de uso, etc.

Está escrito en inglés (sed benévolos).

Tags:

Editar ficheros PDF en GNU/Linux

June 15th, 2010 No comments

El otro día necesitaba editar un fichero PDF y me puse a buscar por Internet cómo podría hacerlo. Existe un programa, PDFedit, que permite editar texto, añadir texto, etc, pero no tiene ninguna opción para añadir gráficos, que era lo que yo necesitaba.

Pero descubrí que es posible abrir PDFs usando GIMP. Cada una de las hojas del documento se convierte en una capa del nuevo gráfico creado al importar el fichero PDF, en las que podemos hacer lo que haríamos con cualquier gráfico, es decir, añadir texto, fotos, girar, cambiar de tamaño, etc.

Despues podemos guardar las modificaciones como ficheros PDF, uno por cada hoja, usando la impresión a PDF de GIMP. Despues, volviendo a PDFedit, podemos eliminar las hojas que hemos modificado e insertar las nuevas desde los ficheros que hemos creado desde GIMP… y ya tenemos nuestro PDF modificado.

Tags:

Estoy en la iParty 11… ¡y estoy descansando!

April 10th, 2010 No comments

Despues de seis meses de trabajo, dos de ellos casi sin descanso, y una última semana de locos, por fin he tenido tiempo de comprobar todo el correo (tenía correos pendientes de contestar desde hacía una semana) y ahora por fin tengo tiempo de volver a pensar en mis frikadas, proyectos, etc.

Aunque ha sido agotador da gusto comprobar que aunque algunas cosas se podrían haber mejorado, en general el resultado es bastante aceptable y creo que la gente lo está pasando bien, que es lo que importa.

¿Y ahora qué? Pues un sábado noche que promete y un domingo de relax por la mañana, con entrega de premios y recogida de cables por la tarde… y despues volver a mi vida tranquila y familiar, y coger la mochila y volver a la montaña, que ya va siendo hora de desconectar un poco… árboles, pajaros, naturaleza, mmmmmmm :-)

Tags:

iParty 11, la fiesta del software libre en Castellón

April 1st, 2010 No comments

Cartel iParty 11Este año me encargo de la organización de la iParty 11, como muchos ya sabeis, y aunque está resultando una tarea ardua en extremo en algunas ocasiones, he de reconocer que resulta gratificante comprobar como día tras día crece el número de inscritos, incluso con gente que viene desde Zamora o desde Vigo.

Este año el nivel de los conferenciantes es muy bueno, con profesores de la UJI de reconocido prestigio, profesionales del software libre que nos demuestran con su ejemplo que es posible ganar dinero sin cercenar libertades y hackers que desean enseñar al mundo sus ocultos poderes ;-) Muchos de ellos son anteriores organizadores de la iParty, que vuelven a Castellón con una gran experiencia acumulada.

Desde aquí invito a todo el que quiera a inscribirse en la iParty 11 y disfrutar de la fiesta del software libre.

P.D.: El martes 6 a las 9:00 empezaremos el montaje y todo el que quiera ayudar será bienvenido.

Tags:

Gacela en la web con canvas

February 13th, 2010 No comments

Estos últimos días estoy trabajando en un compilador sencillo de Gacela a Javascript para poder desarrollar juegos para la web usando canvas. Aunque ando muy ocupado entre el trabajo y otros proyectos, intentaré tener disponible una primera versión lo más pronto posible. De esta forma la gente podrá porbar Gacela sin necesidad de instalar nada en sus ordenadores.

También estoy rumiando cómo hacer para usar en Gacela modelos desarrollados con Blender, pero para eso aún falta un poco.

Tags:

Primera versión de Gacela

January 24th, 2010 No comments

Por fin paso a publicar la primera versión de Gacela. Faltan muchas cosas y hay mucho trabajo que hacer, pero mis labores en la organización de la iParty 11 están empezando a quitarme demasiado tiempo y no quería esperar más.

En la web de Gacela he puesto enlaces a dos vídeos de demostración y al código del proyecto. Son dos ficheros: en uno se encuentra el código del intérprete de Gacela y en otro se encuentra el editor (en los vídeos lo vereis un poco mejor).

Las dependencias para compilar el intérprete son las siguientes:

  • gcl
  • libsdl1.2-dev
  • libsdl-image1.2-dev
  • libsdl-mixer1.2-dev
  • libftgl-dev
  • libsm-dev
  • libxmu-dev
  • libxaw7-dev
  • libgmp3-dev
  • libreadline5-dev

Y para compilar el editor también necesitareis libgtk2.0-dev

Como la documentación es casi inexistente responderé a cualquier pregunta desde los comentarios.

Tags:

Gacela

September 20th, 2009 4 comments

Gacela es una extensión del lenguaje de programación Lisp para desarrollar juegos de forma rápida y fiable. Llevo trabajando en esto durante un año aproximadamente (no de forma continuada) y aunque aún falta mucho por hacer no tardaré demasiado en publicar las fuentes, por lo que voy a hacer una pequeña introducción.

El nombre Gacela viene de GCL (GNU Common Lisp), que es la implementación oficial Lisp del proyecto GNU que uso para el proyecto. Con esto no quiero decir solamente que Gacela se basa en GCL, sino que el proyecto se encuentra identificado plenamente con las ideas del proyecto GNU. Y al mismo tiempo, intento transmitir la idea de que Gacela puede servir para programar juegos de una forma rápida e intuitiva.

Gacela funciona internamente con SDL y OpenGL. La versión actual sólo permite programación gráfica (sin sonidos) y de una forma algo elemental, pero de momento la gestión de memoria funciona bastante bien. Con Gacela el programador no se preocupa de reservar y liberar memoria; el lenguaje se encarga de reservarla cuando es necesario y de liberarla cuando ya no se necesita. Lisp es muy bueno en eso.

De momento uso el intérprete de Lisp para ejecutar los programas, pero tengo intención de desarrollar una interfaz gráfica que permita programar de forma más efectiva. Al redirigir la entrada y la salida del intérprete a otro programa es posible inyectar código en tiempo de ejecución, y es muy divertido. Lo he hecho de forma artesanal, redirigiendo la entrada y la salida a una terminal y programando un juego en tiempo de ejecución, con lo que no sabes si estas jugando o estas programando (¿hay alguna diferencia?).

También estoy trabajando en un módulo para exportar los juegos de Lisp/Gacela a C, para que puedan ejecutarse sin el intérprete, empaquetarlos, etc… esto aún lo tengo en la cabeza y en papel, pero es algo que tendré que hacer antes o después.

La única pega para muchos supongo que será el hecho de que Gacela es Lisp. Para mi es genial ;-)

Y para los impacientes ahí va el primer tutorial:

(run-game “Mi primer juego” (render-text “Hola mundo”))

Tags:

Infor&Games Festival

September 7th, 2009 3 comments

Para los despistados que aún no lo sepan, y es raro porque los organizadores del evento están removiendo cielo y tierra, del 17 al 20 de septiembre se celebra en Castellón el Infor&Games Festival, una especie de lan party mezclada con conciertos, zonas chill-out, paint-ball, dardos, etc.

Servidor acudirá a predicar en el desierto, me temo, con la típica charla sobre el software libre que la mayoría de mis lectores conocen de sobra. Personalmente, recomiendo acudir a la charla “Cómo montar una empresa de videojuegos y morir en el intento y tener que volver a jugar la fase con una vida menos” o a la charla sobre Bennu GD o a otras sobre seguridad o sobre montar máquinas recreativas, que parecen bastante más amenas, aunque si eres de esos que usa gNewSense, Trisquel o Ututo XS es posible que te interese pasar por allí el sábado 19 a las 17:00 y descubrir que somos muchos más de lo que creías.

Tags:

The Ad Bard Network

July 9th, 2009 No comments

¿Pongo publicidad en el blog? Es una pregunta que me he hecho a veces. La idea de ganar algo de dinerillo con algo que haces por diversión, aunque hablemos de unos pocos céntimos al mes, siempre es sugerente, pero siempre me han asaltado las dudas. Si pongo publicidad, ¿me estoy vendiendo de alguna forma? Y lo peor, ¿qué ocurre si los anuncios que aparecen son de software privativo o de empresas que desarrollan o apoyan el software privativo? El riesgo a que aparezcan anuncios que vayan en contra de las normas éticas del software libre es demasiado alto como para arriesgarse.

Por otro lado, las empresas que se dedican al mundo de la publicidad online suelen mantener sus algoritmos cerrados. Como no se puede consultar el código no hay forma de saber de qué forma se reparten los ingresos, cómo se decide qué anuncios son mostrados, qué palabras tienen más peso en esa elección, etc, etc… Es más, trabajar con esas empresas supone insertar trozos de código privativo o llamadas a código privativo desde un blog que defiende el software libre y que está desarrollado con software libre.

Evidentemente, la conclusión final es publicidad no.

AdBard Logo Pero hace algunos días me llego un correo sobre The Ad Bard Network, una red de publicidad online creada por la comunidad para la comunidad. Bajo la atenta mirada de la FSF, que es una muy buena garantía, tenemos la seguridad de que sus anuncios son únicamente de proyectos libres o de empresas involucradas con el movimiento del software libre. También los miembros de esta red, los que muestran los anuncios, tienen que estar involucrados en cierta medida, por lo que no veremos anuncios de Ad Bard en páginas de software privativo, o en contra del libre intercambio de ficheros, etc.

Los algoritmos, por supuesto, son libres y los desarrolladores del proyecto están abiertos a sugerencias y mejoras como en todo buen proyecto libre. Así que es posible saber de qué forma se calculan las ganancias o en qué se basa para mostrar un anuncio en concreto.

En estos momentos el proyecto está buscando beta testers, así que quizás me una. ¿Publicidad si o no? Quién sabe, pero al menos ahora tengo la certeza de que los anuncios no irán en contra de mis ideas.

Tags:

Chipmunk Game Dynamics

March 7th, 2009 1 comment

Chipmunk es una librería en C para simular espacios físicos en dos dimensiones con gravedad, colisiones, rebotes y más cosas. Es muy rápida en sus cálculos y la última versión es bastante estable, con lo que se convierte en una librería a tener en cuenta para el desarrollo de videjuegos. Se encuentra liberada bajo licencia MIT.

En la web de Chipmunk pueden verse vídeos que muestran lo que se puede hacer con esta librería, aunque el más sorpredente es sin duda el de Sketches.

Para instalar Chipmunk tenemos que descargar la última versión y descomprimirla en nuestro sistema. El fichero incluye, además de la última versión de la librería, unas demos que nos sirven como ejemplos para comprender el funcionamiento.

Una vez descargado y descomprimido, vamos al directorio src y ejecutamos

cmake .

para crear los ficheros Makefile necesarios para compilar e instalar la librería. Como Chipmunk está escrito en C99 tendremos que hacer una pequeña modificación en los ficheros generados por cmake antes de poder compilar. En el fichero CMakeCache.txt buscaremos la línea en la que se declara la variable CMAKE_C_FLAGS:STRING, que es donde se indican las opciones que se le pasarán a gcc y le asignamos -std=c99 -D_GNU_SOURCE para indicarle que compile siguiendo el estándar C99 e incluyendo las extensiones GNU.

Ahora ya podemos compilar con make e instalar con make install de la forma habitual. Veremos que despues de la instalación las librerías se han quedado en /usr/local/lib y los ficheros de cabecera en /usr/local/include, pero si usamos un sistema Debian o basado en Debian es preferible tenerlos en /usr/lib y en /usr/include. En cmake_install.cmake, si sustituimos:

SET(CMAKE_INSTALL_PREFIX “/usr/local”)

por

SET(CMAKE_INSTALL_PREFIX “/usr”)

tendremos el problema resuelto y podremos empezar a usar esta magnífica librería en nuestros programas.

E incluso podremos usarla en nuestros programas Lisp ;-)

Tags:
-->