Edge

Obie F. dice en The Rails Way que ellos siempre usan edge rails
en
sus proyectos. Yo no lo hago pero creo que sí me voy a pasar a edge
porque
me parece que el coste de mantener las aplicaciones actualizadas a la
última
versión de rails es menor así.

¿Cuántos de vosotros usais edge en los proyectos?

Yo suelo empezar con edge, si durante lo que dura el desarrollo sale
versión
estable, actualizo a ella(no suele haber mucho problema) y ahí me quedo
hasta que se acabe el proyecto (o se lance la primera versión).

Además de esta manera si durante el desarrollo aparece alguna
funcionalidad
especialmente útil (como ahora la internacionalización por ejemplo) se
puede
intentar actualizar al nuevo edge sin que pete casi nada.

Pues nosotros intentamos trabajar siempre en la última versión estable
(Ya hemos pasado a 2.1.1)

Trabajar con la edge lo hemos hecho (Antes de que saliera la 2.0),
pero actualmente y con el tamaño del proyecto preferimos currar sobre
la última estable e ir actualizando versión a versión (pasamos de 2.0
a 2.0.1, 2.0.2, 2.1 y ahora 2.1.1).

Y ya que hablamos de Edge… que os parece el tema del thread safe de
la 2.2? Podremos por fin dejar de tener 50 mongrels + nginx/apache +
HaProxy?? Servirá con tener 2 o 3 mongrels y listos? Que opinais?
Alguien lo ha probado?

Salutaciones,

Isaac Feliu

2008/9/6 Isaac Feliu Pérez [email protected]:

Y ya que hablamos de Edge… que os parece el tema del thread safe de la
2.2? Podremos por fin dejar de tener 50 mongrels + nginx/apache + HaProxy??
Servirá con tener 2 o 3 mongrels y listos? Que opinais? Alguien lo ha
probado?

Este tema hay que seguirlo de cerca. El que ha hecho AR thread-safe es
un tipo del equipo de JRuby y es que ellos son los primeros que estan
listos para aprovecharlo.

Estuve en la charla de Thomas E. en Berlin y dijo que la diferencia
de coste de lanzar thread/proceso no la considera significativa, pero
si que lo es el consumo de memoria. Dijo que una aplicacion hello
world en glassfish, 1000 peticiones, 10 usuarios concurrentes,
consumia del orden de 200 MB actualmente, y rondando los 50 MB con la
2.2.

Yo creo que en general JRuby se percibe como algo un poco “foraneo”,
pero estan haciendo meritos la verdad que si.

Lo que no tengo clara aun es la implicacion para las aplicaciones
Rails en termindos generales. Si uno programa multi-proceso esta la
mar de tranquilo, si uno programa en multi-thread entonces tu propia
aplicacion
ha de ser thread-safe. No se si JRuby sigue emulando la
separacion de interpretes de algun modo, pero si nos vamos a
thread-safe eso eventualmente cambiara. Alguien se lo ha mirado con
mas detalle?

Por cierto que hay una entrada de blog reciente de Charles quejandose
un poco de las ampollas que ve que levanta una “J” en el nombre:
http://blog.headius.com/2008/09/elephant.html.

2008/9/6 Jaime I. [email protected]

Obie F. dice en The Rails Way que ellos siempre usan edge rails en
sus proyectos. Yo no lo hago pero creo que sí me voy a pasar a edge porque
me parece que el coste de mantener las aplicaciones actualizadas a la última
versión de rails es menor así.

¿Cuántos de vosotros usais edge en los proyectos?

DHH alguna vez comentó que el utilizar edge trae consigo bastantes
beneficios, las últimas mejoras y técnicas que van emergiendo, comentó
que
RJS estaba disponible meses antes de liberar Rails 1.1 de igual manera
las
interfaces RESTful estaban meses antes de liberar la versión 1.2. Además
comentó que se deberán considerar los posibles bugs y decremento en la
velocidad de partes que no están lo suficientemente depuradas. No lo
recomienda para los que están comenzando con Rails ya que dada su
inexperiencia se pueden topar con errores inexplicables que no puedan
manejar y generarles ataques de pánico. Pero si decides dar el salto
trata
de estar todo tiempo al pendiente por ejemplo en las listas de emails y
principales blogs.

Regresando al libro de Obie “The Rails Way” además se comenta que edge
cuenta un buen grado de estabilidad y realiza la observación que decidir
por
cuál revisión es más arte que ciencia :wink: y que depende del proyecto que
estamos desarrollando; comienza con la última revisión disponible y
actualiza siempre y cuando lo necesite.

Actualmente utilizo edge en mis proyectos. IMHO tiene más pros, si
tienes
una revisión mala, siempre tienes otra a tu disposición, ó bien puedes
ir a
la comunidad principal [1] y con suerte convertirnos de usuarios a
contribuidores.

[1] http://groups.google.com/group/rubyonrails-core

Un saludo.

2008/9/6 Juanjo Bazán [email protected]

Yo suelo empezar con edge, si durante lo que dura el desarrollo sale
versión estable, actualizo a ella(no suele haber mucho problema) y ahí me
quedo hasta que se acabe el proyecto (o se lance la primera versión).

O sea que crees que mejor usar edge durante el desarrollo pero quedarse
en
la última estable una vez se sale a producción?

Pero un proyecto no muere cuando se sale a producción… habrá que irlo
manteniendo porque si no pasar de rails 2 a rails 5 años más tarde puede
ser
bastante doloroso, no? No crees que es mejor mantenerse siempre en la
última? O quizá prefieres estar a la última pero actualizar cada vez que
sale otra estable…

Además de esta manera si durante el desarrollo aparece alguna funcionalidad
especialmente útil (como ahora la internacionalización por ejemplo) se puede
intentar actualizar al nuevo edge sin que pete casi nada.

Sobre todo lo importante es tenerlo todo bien cubierto de tests para
saber
si algo peta con el nuevo edge…

2008/9/6 Raul M. [email protected]

Durante el desarrollo suelo usar la última versión estable, a no ser
que edge incorpore alguna mejora que me corra prisa aprovechar.

O sea Raúl que tú no eres partidario en principio de usar edge y haces
como
yo, la última estable y después se piensa si actualizar el proyecto a la
siguiente estable para mantenerlo al día si sigue habiendo inversión…
y si
no se deja en la que se quedó.

Creo que usaré edge sólo en proyectos propios; en proyectos para
clientes
mejor la última estable y actualizar cuando salgan las siguientes
releases
estables.

El día 6 de septiembre de 2008 21:52, Jaime I.
[email protected]
escribió:> O quizá prefieres estar a la última pero actualizar cada vez que

sale otra estable…

Yo soy de esa opinión: si un proyecto sigue abierto creo que merece la
pena esforzarse por, como mínimo, mantener su compatibilidad con la
última versión estable. Pero claro, eso puede suponer una inversión y
la última decisión no siempre está en nuestras manos :slight_smile:

Durante el desarrollo suelo usar la última versión estable, a no ser
que edge incorpore alguna mejora que me corra prisa aprovechar.

El 6 de septiembre de 2008 15:28, Jaime I.
[email protected]escribió:

Creo que usaré edge sólo en proyectos propios; en proyectos para clientes
mejor la última estable y actualizar cuando salgan las siguientes releases
estables.

Concluyo lo mismo. Ahora bien si el proyecto es a un largo plazo,
digamos 8
meses ó un año valdría la pena esforzarse con Edge y estar a la
expectativa
del útimo release estable para la puesta en producción de nuestro
proyecto,
pero como comentaba Raúl Murciano siempre y cuando tengamos la decisión
en
nuestras manos.

Un saludo.

Pero si el desarollos es corto, hablo de 4 a 6 semanas por ejemplo,
vale realmente la pena trabajar con edge y despues usar la última
estable? Puede pasar que durante esas semanas no haya salido ninguna
version estable i tengamos nuestra aplicación en edge usando nuevas
funcionalidades de Rails. Entonces que version estable se utiliza?

Yo por norma general utilizo la última estable, y sí durante esas
semanas de desarrollo aparece una estable actualizo y punto.

Aunque Rails tiene una colección de tests bastante extensa puede que
haya implemetaciones que cambien. Sino, se llamaría estable no?

Eso si, yo creo que es importante que nuestro proyecto si que tenga
una buena colección de tests porque así actualizar entre versiones es
menos doloroso.

2008/9/6 Jaime Mora R. [email protected]

del útimo release estable para la puesta en producción de nuestro proyecto,
pero como comentaba Raúl Murciano siempre y cuando tengamos la decisión en
nuestras manos.

Vamos, como hace Juanjo: edge para desarrollo y después última estable
para
producción.

En el caso de Rails puede ser interesante usar edge porque es estable,
pero en el desarrollo de software esto no es siempre verdad. No me
refiero unicamente a si el código es estable o no, si no a la API en
si. Ejemplos? Merb y Datamapper. Estar en edge en esos proyectos puede
ser un gran problema.

Pero si el desarollos es corto, hablo de 4 a 6 semanas por ejemplo, vale
realmente la pena trabajar con edge y despues usar la última estable?
Puede pasar que durante esas semanas no haya salido ninguna version estable
i tengamos nuestra aplicación en edge usando nuevas funcionalidades de
Rails. Entonces que version estable se utiliza?

Yo me refiero a actualizar a versión ‘estable’ en el caso de que haya
salido
una durante el desarrollo claro, si no, se queda en edge y listo.
Lo de actualizar después de producción, como dice Raul aunque a veces es
deseable no siempre está en nuestras manos.

Yo por norma general utilizo la última estable, y sí durante esas semanas
de desarrollo aparece una estable actualizo y punto.

Aunque Rails tiene una colección de tests bastante extensa puede que haya
implemetaciones que cambien. Sino, se llamaría estable no?

En realidad las versiones estables de Rails difieren muy poco en esencia
respecto a edge, casi se podría decir que cada x tiempo se pone una
etiqueta
a edge para que vaya habiendo puntos de referencia, pero poco más. Es
decir,
edge es generalmente igual de ‘estable’ que cualquier release con tag
propia.

Hay un articulo del año pasado en el que DHH anima a sacar partido a
edge y
no esperar a la siguiente versión:
http://www.loudthinking.com/posts/20-dont-overestimate-the-power-of-versions

El 7 de septiembre de 2008 6:48, Juanjo Bazán [email protected]
escribió:

Hay un articulo del año pasado en el que DHH anima a sacar partido a edge y
no esperar a la siguiente versión:

http://www.loudthinking.com/posts/20-dont-overestimate-the-power-of-versions

Gracias Juanjo por el link. Edge puede llegar a ser más estable que
incluso
la última versión liberada, no lo digo yo sino DHH :

" So please do take control of your own release schedule. It’s perfectly
fine to start off with a released version, but don’t dream up dragons
and
demons lurking in a newer version of edge. Most of the time, edge is of
considerably higher quality than the last released version because we’ve
been committing loads of bug fixes since then. Take advantage of that
when
you can. "

Tener esto en mente es importante.

Un saludo.

2008/9/7 Francesc E. [email protected]

En el caso de Rails puede ser interesante usar edge porque es estable, pero
en el desarrollo de software esto no es siempre verdad. No me refiero
unicamente a si el código es estable o no, si no a la API en si. Ejemplos?

Esta claro. Siempre que haya compatibilidad en la API, y el software
disponga de tests, la mejor opción es usar el último snapshot que pase
los
tests.

Ahora bien… creo que todo lo que estáis hablando depende del proyecto.
Qué
realmente usar una versión u otra no es tan relevante.

Merb y Datamapper. Estar en edge en esos proyectos puede ser un gran

problema.

Un gran problema no… ¡¡ Un gran coñazo !!