viernes, 20 de abril de 2012

Nginx y passenger para rails en ubuntu

La siguiente guía asume que tenemos una instalación funcional de rvm.
Instalamos passenger, con el comando:
gem install passenger

Una vez satisfechas las dependencias de las que nos ha avisado el instalador, instalamos, nginx con:
passenger-install-nginx-module
Llegados aquí, comenzará el proceso pero llegado el momento tendremos un error por no tener privilegios de instalación.

En ningún caso, intentar sudo passenger-install-nginx-module, nginx nos dará problemas, passenger también e intentar deshacerlo es muy engorroso.

La opción correcta es a través del propio rvm con el siguiente comando:            
rvmsudo passenger-install-nginx-module
             
 Si estamos en un una distribución tipo server lo mas probable es que nuestro usuario ssh, no este en la lista de sudoers. Esto es, no podemos hacer rvmsudo, ni sudo gedit, ... Si intentamos completar la instalación a través de su, no encontrará passenger, ni a rvm.

  Esto se soluciona editando como su el archivo /etc/sudoers y añadiendo la siguiente línea:
miUsuario ALL=(ALL) ALL

Ahora al hacer   rvmsudo passenger-install-nginx-module   la instalación se realiza correctamente.
Si no indicamos lo contrario durante la instalación, nginx se instala en /opt/nginx. El archivo de configuración se encuentra en /opt/nginx/conf/nginx.conf. Añadir una aplicación rails es tan simple como añadir:
Nos interesa añadir nginx como un servicio del sistema, para poder hacer llamadas del tipo
sudo service nginx start | restart | stop
Para ello creamos un archivo llamado nginx en /etc/ini.d/nginx, con el comando:
sudo nano /etc/init.d/nginx
*Sustituyase nano por el editor preferido
En este archivo pegar el siguiente script:

A continuación le damos permisos de ejecución con 
sudo chmod +x /etc/init.d/nginx
La aplicación que hayamos configurada debería estar en marcha tras hacer
sudo service nginx start     

jueves, 29 de marzo de 2012

Heroku y rails

Heroku es una plataforma que permite el despliegue de nuestra aplicación en la red.Actualmente soporta Ruby, Rails, Python y de reciente incoporación tenemos Java.

Proporciona una base de datos compartida de 5MB , que para pequeñas aplicaciones o para pruebas suele ser más que suficiente.El espacio de alojamiento una vez desplegado es de sólo lectura, por lo que si nuestra aplicación carga imágenes estas no se podrán almacenar.

Heroku usa PosgtreSQL como base de datos, detalle a tener en cuenta al desplegar una aplicación en rails.  Si lanzamos nuestra aplicación a heroku sin la gema 'pg' no funcionará. El tutorial para rails que ofrecen es bastante claro, pero el tema de la base de datos puede marearnos, porque no se deja lo bastante claro.

Para un despliegue sin incidentes raros:
  • Instalar la gema pg en nuestro equipo. Probablemente nos dará algun fallo. En ubuntu para poder instalarla basta con hacer:
sudo apt-get install postgresql-server postgresql-client
sudo apt-get install libpq-dev
  • Instalar la gema 'pg' y añadirla al gemfile
gem install pg
En el gemfile: gem 'pg'
bundle install


No deberíamos tener ningún problema, y nuestra aplicación debería ponerse en funcionamiento sin problemas.

Proyecto Autogalería
La imagen es un ejemplo de una aplicación web desplegada en heroku.

Galería: http://smooth-mist-6554.herokuapp.com/

lunes, 19 de marzo de 2012

Space invader 2

Ya he montado el armazón, de la aplicación con processing, en principio lo que faltaría sería el sistema de disparos.

En el vídeo se ve el desplazamiento de dos de los invasores. La nave defensora ya responde a las teclas para desplazarse.

Intento ponerle algún efecto chulo al láser. Si queda bien la pasamos a aplicación para android y la ponemos en el android market.

Processing


Al hilo de la entrada Space invaders, introducimos la api processing.
Processing es una api java desarrollada por el MIT, que ofrece una manera fácil de generar animaciones con java.
En el vídeo de la derecha "Magnetosphere" tenemos un ejemplo de lo que se puede hacer con processing.
Las entradas a los portales de quartiersdumonde hacen uso de processing ,en concreto de processingjs que es la versión javascript.

Desde la página principal de processing podemos descargar el IDE que nos permitira desarrollar aplicaciones con processing.
Para usarlo integrado en eclipse, basta seguir el siguiente tutorial.

Las siguientes son dos imágenes de animaciones de entrada, hechas con processingjs, para el proyecto "Quartiers du monde":

Entrada QDM
Entrada FDM


Space invaders

http://www.freespaceinvaders.org/ 
        Práctica de la Universidad Nacional de Educación a Distancia (UNED) para la asignatura programación orientada a objeto.

Se trata en desarrollar un juego como el clásico de los 80 "Space invaders". EN la práctica se pide swing, pero con processingjs se pueden obtener buenos resultados.

   Una versión del juego en space invaders y de extra un fragmento de la serie futurama que hace referencia al juego:

jueves, 23 de febrero de 2012

Google application engine

Realizando algunas pruebas con google application engine.
El kit de desarrollo se añade como plugin a eclipse.

Para empezar tenemos un error al lanzar la aplicación de demo. (relacionado con el jdk 1.7)
java.lang.VerifyError: Expecting a stackmap frame ...

La solución pasa por en eclipse: window->preferences->  jre -> elegir el actual y edit
Añadir el siguiente argumento, tal como se muestra en la imagen:

 -XX:-UseSplitVerifier
Ejemplo


Al volver a lanzar la aplicación ya no nos aparece más.
El espacio y el tráfico que nos ofrece google es más que de sobra para proyectos pequeños, por lo que es una opción a considerar.