Tag Archives for RubyonRails

Netbeans 6 beta 1 empuja fuerte

Hace días que comenté que utilizo Aptana + RadRails como editor para mi desarrollo en Ruby on Rails. Pues acabo de cambiar de editor tras probar la beta 1 que acaba de salir de Netbeans 6.

Para los que no hayan oido hablar de este editor. Se trata de un editor desarrollado en Java por Sun y que es gratuito. Hasta la versión 5 estaba especializado en el mundo Java y ahora han añadido el soporte de Ruby ( Rails) como opción.

El principal motivo entiendo que es la fuerte apuesta de Sun por JRuby, que es una implementación de Ruby realizada en Java. La extensión de esta permitiria un mayor uso e interoperatividad con Java. Haciendo que fomentase la incorporación de Java en diversos entornos.

Hablando del editor no tengo más que decir que me ha impresionado. Su estabilidad y capacidad de realizar todo tipo de tareas no lo he visto en ninguna otra alternativa. Lo más fácil es que lo compare con el que yo creia que era el mejor hasta el momento, Aptana con el plugin RadRails. Las principales mejoras que he encontrado han sido:

  • Estabilidad
  • Rapidez ( Aptana a veces se queda pensando)
  • El reconocimiento de código funciona muy bien y colorea perfectamente
  • Integración de Rake y ejecución
  • Integración de la cónsola
  • Integración con SVN ( esto aún he de profundizar más)
  • ReFactorización de código
  • Autocompletado de código
  • El navegador de objetos es muy útil

Aún tengo que desarrollar otras funcionalidades que tiene, pero sin duda he cambiado de editor sin pensarlo dos veces. Os recomiendo que lo probéis y os gustará.

Podéis descargarlo y escoger que versión queréis instalar. La versión sólo con Ruby ocupa 19 MB y os tendrés que instalar primero el JAVA SDK.

 

Si queréis ver todas las alternativas ver:

L-exp: Ruby on Rails Editors

descarga las presentaciones de Railsconf 2007

Desde la web de o’reilly podemos descargar las diapositivas de las diversas conferencias que se han hecho en RailsConf 2007 Europe.

 

descarga

 

L-exp list: RailsConf Europe 2007

Rails GIS hacks :: Espectacular

Ha habido una presentación en RailsConf Europe 2007 sobre GIS ( Sistemas de información geográfica) con Rails. Esta conferencia la ha dado Shoalb Burq’s y ha presentado todo sobre esta temática con Rails. Lo mejor es que ha colgado una manual y una presentación con detalle de como integrar una aplicación Ruby on Rails con Google Maps. Tratando todo los temas como Geolocalizacion, iPlocalizacion, YM4R_GM, integración con Google earth, activerecord geospatial, …… Además con ejemplos avanzados. Espectacular…..

El echo es que yo he podido probar la potencia de el plugin YM4R_GM y es facilisimo de utilizar. Aunque echaba a faltar una buena documentación que creo que quedará resuelta con estos documentos.

Podéis bajar la documentación en este enlace. No tiene desperdicio.

Actualización: Corregido el enlace. Gracias Danisev

Notas de Casper Fabriciu’s sobre Rails 2.0

Casper Fabricius nos muestras sus notas sobre la conferencia que ha dado DHH’s en RailsConf Europe 2007.

Comenta que no hay muchas novedades, pero alguna cosilla interesante como:

  • Podremos crear bases de datos desde migraciones
  • La migración será más productiva al cambiar algo la sintaxis
  • Restful Namespaces
  • En Rails 2.0 será muy fácil la implementacion básica de autentificación http
  • Se modifican las vistas rhtml a [nombre].[mime-type].[renderer]
  • Soporte mejorado del los MIMEs

 

Vía

CodeGear presenta 3rdRail un IDE para Rails

Parece que el efecto Ruby on Rails está llegando también a los fabricantes de Software. Este es el caso de CodeGear, una compañía de Borland que se dedica a hacer IDEs para desarrollo de aplicaciones y ha presentado 3rdRAIL. image

Coincidiendo con RailsConf 2007 Europe acaban de presentar este producto que valdrá unos 299$ y es un entorno de desarrollo para el trabajo con nuestra web framework favorita.

Disponen de un vídeo que muestran todas las características de este IDE y sin duda que tiene cosas muy interesantes.

Me ha gustado la cónsola que dispone que completa el código que vamos escribiendo de nuestras tareas Rake. También el factoring que nos permite cambiar una acción en todo el código.

Esta versión es sólo para windows, cosa que sorprende con la cantidad de Maqueros  y Linuxeros que desarrollan en Rails.

Ya tengo localizados 11 IDEs para desarrollo con Ruby on Rails. ¿ cual utilizo yo? Pues yo utilizo Aptana + RadRails y va bastante bien.

Como conclusión yo diría que las funciones que tiene 3rdRail pueden ser suplidas fácilmente con un poco de conocimiento de Rails y la utilización de Aptana por ejemplo. Yo personalmente no invertiría en este software. Pero nunca se sabe….

 

Vía

RailsConf Europa a punto de empezar

Para el mundo del desarrollo con Ruby on Rails es una semana importante ya que en Berlín se realiza la conferencia anual europea de desarrolladores. En esta conferencia se suelen anunciar novedades y se realizan todo tipo de sesiones sobre esta Web Framework.

He creado una lista en la que se pueden seguir los principales blogs, fotos  y lugares web sobre esta conferencia. Además ya está disponible el nuevo sistema de feeds de L-exp que nos permite seguir las novedades de una y de más listas ( para saber más).

Y a lo que iba:

Seguir el evento RailsConf Europe 2007

Podéis también subscribiros a la lista

Mostrando la diferencia entre fechas con texto

En internet uno de los temas que enseguida te das cuenta es que las fechas absolutas no tienen sentido ya que debido al cambio horario poca gente encontrarás que le coincida. Por tanto es muy útil mostrar el tiempo que ha pasado desde que se ha actualizado un determinado elemento. Asi cualquier persona que lo lea si que tendrá una visión relativa y útil de lo que ha pasado.

Os adjunto una función muy casera que he desarrollado por si alguien la quiere utilizar:

def diff_date_to_words(datec,language)
  result=”
  diff=Time.now-datec
  daysc=(diff/(60*60*24)).to_int
  hoursc=((diff/(60*60*24)-daysc)*24).to_int
  minutesc=((((diff/(60*60*24)-daysc)*24)-((diff/(60*60*24)-daysc)*24).to_int)*60).to_int
  secondsc=((((((diff/(60*60*24)-daysc)*24)-((diff/(60*60*24)-daysc)*24).to_int)*60)-((((diff/(60*60*24)-daysc)*24)-((diff/(60*60*24)-daysc)*24).to_int)*60).to_int)*60).to_int
  monthsc=(daysc/30).to_int
  if language==’En’ then
    result = daysc.to_s + ‘ days, ‘+hoursc.to_s+’ hours, ‘+minutesc.to_s+’ minutes and ‘+secondsc.to_s+’ seconds ago’
    if daysc==1 and  hoursc<2 then
      result==’Yesterday’
    end
    if daysc==0 and hoursc<1 and minutesc<1 and secondsc<20 then
      result==’now’
    end
    if daysc==0 then
      result = hoursc.to_s+’ hours, ‘+minutesc.to_s+’ minutes and ‘+secondsc.to_s+’ seconds ago’
    end
    if daysc==0 and hoursc==0 then
      result =minutesc.to_s+’ minutes and ‘+secondsc.to_s+’ seconds ago’
    end
    if daysc==0 and hoursc<1 and minutesc<1 and secondsc>=20 then
      result =secondsc.to_s+’ seconds ago’
    end
    if daysc>7 then
      result = daysc.to_s + ‘ days, ‘+hoursc.to_s+’ hours and ‘+minutesc.to_s+’ minutes ago’
    end
    if daysc>365 then
      result = ‘more than one year ago’
    end
    if monthsc>2 and daysc<365 then
      result=monthsc.to_s+’ months ago’
    end
    result
  end
end

Simplemente poniéndola en vuestro application helper podréis mostrar fechas en formato letras y con tiempo relativo.

p.e:

1 minute and 3 seconds ago

Veréis que hay una variable language pero sólo está implementada en inglés.

Espero que sea de vuestra utilidad.

Gestionando un servidor compartido Linux para mantener nuestra aplicación rails

Para los que venimos del mundo windows uno de los temas que desconocemos  es el de conectar con una terminal SSH a un servidor Linux para gestionar nuestra aplicación en Ruby on Rails.

Escribo este post con la experiencia de utilizar shared hosting, es decir, un servidor en el cual compartes con otros usuarios y que tienes unos permisos determinados.

Debéis tener acceso ssh( shell) a vuestro hosting y podéis acceder con Putty. En el caso de Mac para acceder podéis usar el comando :

ssh [dirección servidor] -u [nombre de usuario]    desde la terminal del sistema

Adjunto algunos comandos de interés que pueden ayudaros.

Gestión de Mongrel ( arranque aplicación)

Estando en el directorio de la aplicación.

Con Cluster:

mongrel_rails cluster::start
mongrel_rails cluster::stop
mongrel_rails cluster::restart

Actualmente es como tengo mi aplicación L-exp configurada y he notado mejorías impresionantes.

Sin cluster:

rm -f log/mongrel.pid   ( Esta función es para matar el fichero mongrel.pid si hemos matado el proceso)
mongrel_rails start -e production -p 4035 -d
mongrel-_rails restart
mongrel_rails stop

fastcgi:

En principio una vez configurado arranca sólo.

killall -9 dispatch.fcgi  ( mata los procesos si necesitamos rearrancar)

Para ver los procesos que tenemos y su carga:

ps ux

top -u [nombre-usuario]

kill -9 pid    (mata el proceso con pid)

 

Para analizar el log de errores:

tail -f log/production.log  ( nos muestra el log continuamente)

tail -n200 log/production.log (nos muestra las últimas 200 líneas de log)

tail -f log/production.log | grep “Completed in ”  ( Nos muestra solo los queries ejecutados)

Aconsejo que os instaléis el plugin Query_analyzer ya que os ayudará a ver los accesos a base de datos como van.

Comandos básicos:

ls  ( dir)

cd / (cambio directorio)

md [nombre directorio] crea directorio

 

Ejecución de Rakes:

Lo más importante es que si estamos en production añadamos el RAILS_ENV

rake db:migrate RAILS_ENV="production"

Creación de Crons:

Ojo con los crons que pueden saturar un servidor si no se configuran bien.

crontab -e

 

Podéis encontrar todos los elementos que he utilizado para desarrollar L-exp en la siguiente lista.

 

Lo más importante es tener un buen hosting y que sean generosos con las respuestas. Como ya he comentado en algún post estoy muy contento con

railsplayground.com

Lanzando Rake desde Cron

Adjunto un pequeño ejemplo de como programar una tarea cron en un servidor Linux para que ejecute una tarea rake en Ruby on Rails.

1.-La tarea Rake ( en el subdirectorio [aplicación rails]/lib/tasks: #*1

require ‘rubygems’

namespace :utils do
  desc “Hacer algo”
  task(:algo=> :environment) do #*2

     for model in Model.find(:all)

        puts model.name

     end

 end

end

#*1 Guardarlo con el nombre que queráis.

#*2 esto permite que podamos acceder a nuestra aplicación y modelos.

2.-Desde el cron del panel de nuestro hosting o usando crontab -e desde la terminal:

[parámetros del cron ] cd /home/[usuario ]/[aplicación rails]/ && /usr/local/bin/ruby /usr/local/bin/rake utils:algo RAILS_ENV=’production’

Comentarios:

 * Poner los paths correctos en cada caso. Podéis usar el comando “which” p.ej “which rake” para saber donde están las cosas.

* Para que la tarea se ejecute la aplicación Rails debe funcionar bien desde la web.

* En este caso la aplicación está en production, por tanto he fijado el RAILS_ENV en este entorno

* todo el comando va en una sola línea

* Los parámetros del cron los podéis buscar por internet.

Con este procedimiento podemos programar todas aquellas tareas que queremos que se ejecuten en background cada determinado tiempo. Sin duda es un recurso imprescindible para cualquier aplicación.

Tracks: Aplicación GNU para la gestión del tiempo desarrollada en Ruby on Rails

Curiosa aplicación que nos podemos descargar y ejecutar en cualquier equipo tras instalar Ruby on Rails. Según dice el creador esta aplicación web está pensada para implementar la metodología del libro de  David Allen’s Getting things done.

No tengo ni idea si la metodología sirve o no, pero en mi caso el disponer de una aplicacion GNU desarrollada en Rails es un gran recurso para seguir de mi aprendizaje de esta web framework.

Para los que les interese tengo recopilados otros ejemplos de aplicaciones pra descargar interesantes en L-exp.