<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8304374638405283496</id><updated>2011-11-28T01:08:34.414+01:00</updated><category term='mobile'/><category term='win32ole'/><category term='openid'/><category term='observe_field'/><category term='acts_as_list'/><category term='web'/><category term='safavi'/><category term='validations'/><category term='simo'/><category term='tortoise'/><category term='railsconference'/><category term='date'/><category term='odbc'/><category term='active_scaffold'/><category term='rubyonrails'/><category term='dynarch_calendar'/><category term='chrome'/><category term='firefox'/><category term='opinión'/><category term='sqlserver'/><category term='time format'/><category term='pda'/><category term='popup'/><category term='css'/><category term='conferencia rails madrid'/><category term='rails'/><category term='migrations'/><category term='web service'/><category term='ajax_scaffold'/><category term='útil'/><category term='rmagick'/><category term='rutas'/><category term='mechanize'/><category term='open-uri'/><category term='sites'/><category term='wysiwyg'/><category term='extension de clases'/><category term='facebook'/><category term='mysql'/><category term='xsd'/><category term='coordenada'/><category term='ratón'/><category term='rails3'/><category term='aplicación'/><category term='putty'/><category term='gems'/><category term='ie8'/><category term='rest'/><category term='pair programming'/><category term='actionmailer'/><category term='proyectos'/><category term='devkit'/><category term='ie6'/><category term='html'/><category term='combo dependiente'/><category term='mongrel'/><category term='button_to'/><category term='ie7'/><category term='soap4r'/><category term='design'/><category term='analítica web'/><category term='plugins'/><category term='coffeescript'/><category term='prototype'/><category term='subversion'/><category term='google'/><category term='xhr'/><category term='trabajo'/><category term='ruby'/><category term='mail'/><category term='activerecord'/><category term='attachment_fu'/><category term='conceptos'/><category term='navegadores'/><category term='javascript'/><category term='cache'/><category term='rails  conferencia rails madrid'/><category term='gadget'/><category term='dynarch_date_select'/><category term='factura'/><category term='youtube'/><category term='wsdl'/><category term='curl'/><category term='sql injection'/><category term='html injection'/><category term='openoffice'/><category term='restful_authentication'/><category term='ado'/><category term='string'/><category term='console'/><category term='publicidad'/><category term='opensource'/><category term='mongrel_service'/><category term='inflections'/><category term='polymorphic'/><category term='análisis web'/><category term='gráficos'/><category term='error messages'/><category term='windows'/><category term='oauth'/><category term='memory leak'/><category term='deploy'/><category term='debug'/><category term='amigos'/><category term='util'/><category term='cycle'/><category term='sass'/><category term='cookies'/><category term='ajax'/><category term='red social'/><category term='texthelper'/><category term='rest-open-uri'/><category term='firewatir'/><category term='time'/><category term='SOAP'/><category term='translate_columns'/><category term='SEO'/><category term='buscadores'/><category term='upload'/><category term='twitter'/><category term='noticias'/><category term='aspgems'/><category term='gruff'/><category term='image_science'/><category term='rescue'/><category term='rjs'/><title type='text'>DanimataOnRails</title><subtitle type='html'>rock &amp;amp; rails</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default?start-index=101&amp;max-results=100'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>117</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6850709540449680727</id><published>2011-11-02T23:12:00.001+01:00</published><updated>2011-11-02T23:14:13.351+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='devkit'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='rmagick'/><title type='text'>Rmagick en windows</title><summary type='text'>Qué gusto da trabajar en Ruby sobre Windows desde que existen Pik y DevKit. Aún así, todavía se me resisten algunas gemas y utilidades, como el puñetero SystemTimer, que sinceramente, me da lo mismo.

Ayer instalé la última versión de Rmagick y tuvo tela. Primero instalé la versión 2.12.0 de Rmagick que viene con Imagemagick 6.5.6. Antes esto era lo más seguro pero con bundler no funciona. </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6850709540449680727/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6850709540449680727' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6850709540449680727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6850709540449680727'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/11/rmagick-en-windows.html' title='Rmagick en windows'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5258330214761882373</id><published>2011-10-08T01:01:00.002+02:00</published><updated>2011-10-08T17:02:45.704+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='coffeescript'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='sass'/><category scheme='http://www.blogger.com/atom/ns#' term='opinión'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>SaSS sí. CoffeeScript no.</title><summary type='text'>Después de asistir al FOWA y ver al propio Hampton Catlin hablar de su SaSS, creo que me voy a convertir a SaSSero en breve.

SaSS es simplemente una forma de escribir CSS de manera más elegante y sencilla, eliminando muuuuuuucho contenido que no tiene sentido repetir. Sin saber CSS no se puede codificar SaSS.

Sin embargo, no puedo decir lo mismo de CoffeeScript. Escribir algo parecido a Ruby </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5258330214761882373/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5258330214761882373' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5258330214761882373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5258330214761882373'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/10/sass-si-coffeescript-no.html' title='SaSS sí. CoffeeScript no.'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1897534747785351041</id><published>2011-07-08T11:49:00.002+02:00</published><updated>2011-07-08T11:52:15.545+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='ie8'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='safavi'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='ie7'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><title type='text'>¿Oculto suena? (Aprendiendo de los errores III)</title><summary type='text'>¡Atención, pregunta! Si en una div oculto embebo (y cigala) un vídeo de Youtube... ¿sonará y no se verá? ¿se quedará sin voz hasta mostrarlo? ¿hará otra cosa totalmente distinta?

La respuesta es la de siempre: depende del navegador. Según mis pruebas, en Firefox, Safari e Internet Explorer 7 no suena y no se ve, mientras que en Chrome e Intenet Exlorer 8 suena y no se ve. Seguro que hay una </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1897534747785351041/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1897534747785351041' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1897534747785351041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1897534747785351041'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/07/oculto-suena-aprendiendo-de-los-errores.html' title='¿Oculto suena? (Aprendiendo de los errores III)'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8969452256477715062</id><published>2011-07-03T02:15:00.002+02:00</published><updated>2011-07-03T02:18:35.282+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ie8'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='ie6'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='ie7'/><title type='text'>¡Qué gracia tiene!</title><summary type='text'>¡Qué arte! ¡Qué duende! ¡Qué tronío tiene Internet Explorer! Pero no sólo el 6, ¡todos! Y yo sin enterarme... de nuevo me caigo del guindo.
Resulta que si capturas el evento resize del objeto window del navegador, todo va bien mientras no se te ocurra recolocar y/o cambiar de tamaño cualquier elemento de la página. Es entonces cuando Internet Explorer decide que lo vuelve a lanzar y lanzar y </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8969452256477715062/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8969452256477715062' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8969452256477715062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8969452256477715062'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/07/que-gracia-tiene.html' title='¡Qué gracia tiene!'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6364530918728719475</id><published>2011-06-23T00:43:00.001+02:00</published><updated>2011-06-23T00:44:05.150+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><title type='text'>Un par de librerías javascript interesantes</title><summary type='text'>Jopelines, qué poco tiempo tengo para escribir! Bueno, sólo voy a apuntar un par de librerías javascript que me han resultado útiles recientemente.
JQuery Rotate sirve para rotar imágenes. Me ha resultado muy útil para hacer una especie de potenciómetro, como una rueda de búsqueda de emisoras en las radios antiguas. En breve estará en vivo para que podáis ver cómo funciona.
JQuery Masonry sirve </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6364530918728719475/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6364530918728719475' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6364530918728719475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6364530918728719475'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/06/un-par-de-librerias-javascript.html' title='Un par de librerías javascript interesantes'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6593882147548125986</id><published>2011-03-30T00:31:00.002+02:00</published><updated>2011-03-30T00:55:30.493+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proyectos'/><category scheme='http://www.blogger.com/atom/ns#' term='conceptos'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>El arte de medir</title><summary type='text'>Este es un post especial. No va de rails, ni de html, ni de javascript... ni si quiera es técnico. ¡Mi chica ha escrito un libro! Pero no un libro cualquiera... Ha escrito el mejor libro de analítica web en castellano (al menos a mí me lo parece).
 
Comparte autoría con Tristán Elósegui, experto en marketing online.
 
El nombre del libro es El Arte de Medir y tiene página web. Si os apetece, </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6593882147548125986/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6593882147548125986' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6593882147548125986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6593882147548125986'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/03/el-arte-de-medir.html' title='El arte de medir'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7957408320818432522</id><published>2011-03-19T23:12:00.008+01:00</published><updated>2011-03-20T01:24:47.432+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Una mañana en Mountain View, CA</title><summary type='text'>





En Mountain View hay un montón de de cosas: hayyyyyyyyyy... mmmmmmmmm... estoooooooo... tienennnnnnnnn... y también están las oficinas de Google. Que no digo yo que no haya otras cosas interesantes, ni otras empresas que molen, pero el martes pasado mi chica y yo estuvimos en Google y nos convertimos al instante al Googlismo.

Para empezar, no tienes que pasar superfiltros de seguridad, ni </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7957408320818432522/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7957408320818432522' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7957408320818432522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7957408320818432522'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/03/una-manana-en-mountain-view-ca.html' title='Una mañana en Mountain View, CA'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-WkT-aMxTlSQ/TYVC7GnZZgI/AAAAAAAAABo/iexlzNCBt9U/s72-c/IMG_0191%255B1%255D.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5377681510665158200</id><published>2011-02-21T14:58:00.003+01:00</published><updated>2011-02-21T15:26:55.895+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Twitter updates</title><summary type='text'>He perdido ya la cuenta de en cuantos sites/aplicaciones/páginas/blogs he tenido que poner una caja con los últimos twitts de un usuario X. A veces he tenido que ir guardando los mensajes en BD para luego mostrarlos; otras veces he tenido que hacerlo con javascript, leyendo directamente el feed que twitter proporciona.

Lo más cómodo, si sólo necesitas mostrar los mensajes y no almacenarlos, es </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5377681510665158200/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5377681510665158200' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5377681510665158200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5377681510665158200'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/02/twitter-updates.html' title='Twitter updates'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3712535324151472063</id><published>2011-01-18T10:34:00.005+01:00</published><updated>2011-01-18T11:01:20.522+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='activerecord'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Soy un incompetente</title><summary type='text'>Para variar, me pasan cosas. Cosas rarunas. Os cuento.

Trabajando con Ruby 1.8.7 y Rails 2.3.8 y un código como este presente en un observer...


game = Game.find(some_id)
tmp_letters = cositas_varias(game.letters)
game.letters = String.new(tmp_letters)
game.save


me encuento con que no se genera un UPDATE sobre el registro correspondiente de la tabla GAMES. De hecho, ese código está tan </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3712535324151472063/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3712535324151472063' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3712535324151472063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3712535324151472063'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/01/soy-un-incompetente.html' title='Soy un incompetente'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7827135639750105333</id><published>2011-01-17T00:08:00.005+01:00</published><updated>2011-01-18T11:31:54.487+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proyectos'/><category scheme='http://www.blogger.com/atom/ns#' term='amigos'/><category scheme='http://www.blogger.com/atom/ns#' term='análisis web'/><title type='text'>Como broma ya está bien</title><summary type='text'>Hace casi tres semanas que Gemma lanzó su nueva web. En ella ofrece sus servicios como consultora y analista web.

Puedo decir tantas cosas buenas de ella, que no sé por dónde empezar, y aunque no sé si es la mejor puedo asegurar que le pone toda su energía a lo que hace, que es una apasionada de su trabajo y que una vez que has trabajado con ella, no te deja indiferente: o la quieres o la adoras</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7827135639750105333/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7827135639750105333' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7827135639750105333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7827135639750105333'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2011/01/como-broma-ya-esta-bien.html' title='Como broma ya está bien'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7283986070329169490</id><published>2010-12-30T23:50:00.003+01:00</published><updated>2010-12-31T00:01:05.154+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='date'/><title type='text'>Reinventar la rueda</title><summary type='text'>Esta última parte del año estoy muy poco rails y, sin embargo, muy javascript. Y, como no podía ser de otra forma, mi último post del año es de javascript. Corto, sencillo, conciso y útil, como debe ser nuestro javascript.

El caso es que andaba parseando fechas y viendo cómo podía sacarlas en una página en castellano viejo y me he encontrado el método toLocaleDateString() del objeto Date. </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7283986070329169490/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7283986070329169490' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7283986070329169490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7283986070329169490'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/12/reinventar-la-rueda.html' title='Reinventar la rueda'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7781790056845379903</id><published>2010-12-15T01:04:00.005+01:00</published><updated>2010-12-15T01:29:43.290+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Alinear imágenes y textos</title><summary type='text'>Lo típico que tienes una imagen en medio de una frase y no eres capaz de alinearla ni a la de trés. Pues bien, en el sitio de siempre está la solución: la propiedad vertical-align, que entre otros, puede tener los siguientes valores...


topalineada por arriba con el elemento más alto de la línea
text-topalineada por arriba con el top de la fuente la línea
middlealineada al centro
bottomalineada </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7781790056845379903/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7781790056845379903' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7781790056845379903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7781790056845379903'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/12/alinear-imagenes-y-textos.html' title='Alinear imágenes y textos'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-4292796374534268602</id><published>2010-12-04T01:37:00.004+01:00</published><updated>2010-12-04T01:49:10.021+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Deploy error I</title><summary type='text'>Pasando una aplicación a producción me he encontrado con que el siguiente código me casca:


1.upto(10).map{|i| [i, i]}


Como ya nos las hemos visto con estas, con aquellas e incluso con otras más feas, lo primero es ver qué versiones tenemos de las cositas básicas, y ha cantado la gallina a la primera. En desarrollo ruby 1.8.7; en producción ruby 1.8.6 enterprise edition. 

Resulta que en esa </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/4292796374534268602/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=4292796374534268602' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4292796374534268602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4292796374534268602'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/12/deploy-error-i.html' title='Deploy error I'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3093097623773883782</id><published>2010-12-01T22:39:00.003+01:00</published><updated>2010-12-01T23:02:19.958+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='util'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Bordes, que sois unos bordes</title><summary type='text'>
Hoy, nuevamente, me he caído de un guindo. Esta vez, trasteando con html, su hoja de estilo, una tabla y su borde.

El problema a resolver era el siguiente: dada una tabla, con su thead, su tbody, sus tr's, sus th's y sus td's, poner con css un borde de 1px a todas sus celdas.

Inmediatamente piensas en algo como

table, th, td{border: 1px solid black;}

Y claro, no cuentas con que unos bordes </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3093097623773883782/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3093097623773883782' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3093097623773883782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3093097623773883782'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/12/bordes-que-sos-unos-bordes.html' title='Bordes, que sois unos bordes'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7813097417828344906</id><published>2010-11-17T21:51:00.004+01:00</published><updated>2010-11-17T22:20:08.021+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='oauth'/><title type='text'>Facebook es tu amigo</title><summary type='text'>Después de renegar de la integración de Facebook en mis aplicaciones por el hecho de que te obligaba a utilizar su código, he redescubierto su nuevo api REST (o cuasi-REST) y me mola.

Por ejemplo, he podido enlazar a mis amigos en Facebook desde una página cualquiera. Para ello hay que seguir los siguientes pasos:

Dar de alta una aplicación en Facebook: se hace aquí. Se obtiene un CLIENT_ID, un</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7813097417828344906/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7813097417828344906' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7813097417828344906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7813097417828344906'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/11/facebook-es-tu-amigo.html' title='Facebook es tu amigo'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7912183728298619345</id><published>2010-09-24T19:20:00.004+02:00</published><updated>2010-09-24T19:56:02.629+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='texthelper'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='ie7'/><title type='text'>El detalle es el detalle</title><summary type='text'>De esto que pruebas tu aplicación sobre Internet Explorer 7 y, ¡oh, tristeza!, ¡oh, dolor! se te ha escojonao el menú.

Primero juras en arameo. Luego te cagas en todo lo cagable. Mencionas a todas las deidades y santidades que se pasan por la cabeza, a la familia Gates, y a todos sus antepasados. Y terminas por echarte un cubata y ponerte a ver qué pasa.

Y te das cuenta de que donde debería </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7912183728298619345/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7912183728298619345' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7912183728298619345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7912183728298619345'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/09/el-detalle-es-el-detalle.html' title='El detalle es el detalle'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5351176281797065007</id><published>2010-09-19T18:55:00.003+02:00</published><updated>2010-09-19T19:14:18.157+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='aplicación'/><category scheme='http://www.blogger.com/atom/ns#' term='putty'/><title type='text'>Cómo utilizar Putty en Windows para acceder por OpenSSH</title><summary type='text'>
Después de dar mil vueltas, por fin he conseguido configurar mi acceso a servidores Lynux con mi clave pública. Y todo lo he encontrado aquí. 

En resumen:

generar un par de claves (pública y privada)
poner la clave pública entre las claves aceptadas en el servidor
generar una clave privada manejable por putty a través de puttyGen
configurar un acceso seguro

Et voilà! Salud y rocanrol.


If </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5351176281797065007/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5351176281797065007' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5351176281797065007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5351176281797065007'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/09/como-utilizar-putty-en-windows-para.html' title='Cómo utilizar Putty en Windows para acceder por OpenSSH'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5296532325686433652</id><published>2010-08-05T20:00:00.003+02:00</published><updated>2010-08-05T20:09:47.953+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='tortoise'/><title type='text'>Subversión, TortoiseSVN y Windows Vista</title><summary type='text'>
Una recomendación de última hora antes de irnos de vacaciones. Si tienes que actualizar Tortoise para Subversión en Windows Vista, OJITO con la versión 1.6.10. Al instalarla desaparecen los menús contextuales. Con la versión 1.6.9 se arregla el estropicio.

Y ¡ya! Salud y rocanrol.


Entre mis recuerdos no puedo encontrarte
Y ando perdido en mi soledad
Y voy por las calles contando los días
Y se</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5296532325686433652/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5296532325686433652' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5296532325686433652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5296532325686433652'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/08/subversion-tortoisesvn-y-windows-vista.html' title='Subversión, TortoiseSVN y Windows Vista'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6975803716895065216</id><published>2010-07-07T02:58:00.003+02:00</published><updated>2010-07-07T03:06:35.137+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rutas'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='rails3'/><title type='text'>Rails 3: rutas</title><summary type='text'>En ASPgems hemos hecho una presentación conjunta sobre Rails 3 para, entre todos, conocer un poco mejor todos los cambios que trae. Mi trocito habla de rutas. Toda la información se puede encontrar en las Rails Guides.

Mi presentación:

Salud y rocanrol


Cogieron a la Jacinta, la moza de mejor pinta,
y en la misma plazoleta la pusieron en porretas 
y la echaron al pilón sin mayor vacilación. 
</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6975803716895065216/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6975803716895065216' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6975803716895065216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6975803716895065216'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/07/rails-3-rutas.html' title='Rails 3: rutas'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2823857515377653439</id><published>2010-05-31T20:41:00.003+02:00</published><updated>2010-05-31T21:55:01.595+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><category scheme='http://www.blogger.com/atom/ns#' term='extension de clases'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Time, time, time</title><summary type='text'>Las extensiones a la clase Time que se añaden en ActiveSupport me parecen geniales.

Por una parte tenemos las extensiones propias de Time::Calculations donde se añaden todo tipo de métodos de manejo y comparación de fechas. Mi favorita es advance que permite moverse a partir de una fecha dada en cualquier dirección. Recibe como parámetros una hash con las posibles claves :years, :months, :weeks,</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2823857515377653439/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2823857515377653439' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2823857515377653439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2823857515377653439'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/05/time-time-time.html' title='Time, time, time'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7846744692577206073</id><published>2010-04-15T00:11:00.006+02:00</published><updated>2010-04-15T00:35:31.485+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='attachment_fu'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='translate_columns'/><title type='text'>agua + aceite = colacao</title><summary type='text'>Por ir al grano, que dijo un dermatólogo, estaba yo con un modelo que soportase archivos anexos y traducciones y decidí tirar de attachment_fu y translate_columns. Para que los archivos anexos fueran traducibles también fue necesario incluir los campos que utiliza attachment_fu y sobreescribir el método public_filename. La cosa quedó más o menos así:


class Attachment &lt; ActiveRecord::Base
 </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7846744692577206073/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7846744692577206073' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7846744692577206073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7846744692577206073'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/04/agua-aceite-colacao.html' title='agua + aceite = colacao'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7513629499561663506</id><published>2010-03-26T00:49:00.005+01:00</published><updated>2010-03-26T01:50:00.399+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='actionmailer'/><title type='text'>Engañando al ojo</title><summary type='text'>Enunciado: Dado un formulario Ajax con los campos Asunto y Contenido cuyo resultado es el envío de su contenido en un email, añadir un campo de tipo archivo para poder adjuntar documentos al mismo.

Bueno, pues lo primero es cambiar el formulario. Primero, reemplazamos la helper que lo genera de form_remote_tag a form_tag. Segundo, hacemos que su enctype sea "multipart/form-data". De esta forma </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7513629499561663506/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7513629499561663506' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7513629499561663506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7513629499561663506'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/03/enganando-al-ojo.html' title='Engañando al ojo'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8770970490654132418</id><published>2010-02-25T01:09:00.003+01:00</published><updated>2010-02-25T01:48:44.828+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='inflections'/><category scheme='http://www.blogger.com/atom/ns#' term='util'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='string'/><title type='text'>Stringando que es gerundio</title><summary type='text'>Una de enlaces útiles: inflections.

Me encantan la extensiones de la clase String para darles forma según su contenido. Resumiendo:

camelize convierte a camel case.
constantize busca una constante con el nombre especificado en el string.
dasherize sólo cambia underscores por guiones(dashes).
demodulize de un string que contiene un nombre de clase, elimina la parte referente a módulos.
</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8770970490654132418/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8770970490654132418' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8770970490654132418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8770970490654132418'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/02/stringando-que-es-gerundio.html' title='Stringando que es gerundio'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7459602755711025281</id><published>2010-01-13T17:06:00.005+01:00</published><updated>2010-01-14T01:32:11.095+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='polymorphic'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='migrations'/><title type='text'>Pinceladas sobre migrations</title><summary type='text'>Ayer le di una vuelta a las rails guides para refrescar la memoria acerca de las relaciones polimórficas y siguiendo un par de enlaces llegué a la guía sobre migrations. Y encontré que hay una helper para crear campos con foreign keys.

Los ejemplos de la guía son estupendos:


create_table :products do |t| 
  ...
  t.references :category 
  ...
end


creará una tabla products con un campo </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7459602755711025281/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7459602755711025281' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7459602755711025281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7459602755711025281'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2010/01/pinceladas-sobre-migrations.html' title='Pinceladas sobre migrations'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-784244788270665796</id><published>2009-12-10T14:20:00.005+01:00</published><updated>2009-12-10T14:47:29.567+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>No hablo de la Conferencial Rails 09 porque no estuve</title><summary type='text'>Por motivos personales, este año me he perdido más de la mitad de los contenidos de la Conferencia Rails. Como casi todos los años el balance cosas positivas vs cosas negativas es bastante favorable.

De lo que vi, lo que más me gustó fueron las charlas pseudofilosóficas de Javi Ramírez, Sergio Gil y Aitor Garcia Rey porque, a pesar de que no estoy del todo de acuerdo con ellos, sí que creo que </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/784244788270665796/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=784244788270665796' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/784244788270665796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/784244788270665796'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/12/no-hablo-de-la-conferencial-rails-09.html' title='No hablo de la Conferencial Rails 09 porque no estuve'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3784352951644121981</id><published>2009-12-01T18:06:00.004+01:00</published><updated>2009-12-01T18:19:32.487+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='util'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='gems'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='aplicación'/><category scheme='http://www.blogger.com/atom/ns#' term='console'/><title type='text'>Templates en Windows</title><summary type='text'>Hello!

Acabo de crear un proyecto basado en un template de rails, como siempre, en entorno windows. La sitaxis es la conocida

rails nombre_de_proyecto --template=ruta_del_template

La ruta puede ser un path físico en la máquina o una url. He tenido que hacer un par de apaños muy fáciles sobre el template original para que todo funcione debidos, en su mayoría, a que ruby no es capaz de ejecutar </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3784352951644121981/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3784352951644121981' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3784352951644121981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3784352951644121981'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/12/templates-en-windows.html' title='Templates en Windows'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6389809254144140111</id><published>2009-11-21T23:52:00.004+01:00</published><updated>2009-11-22T00:19:50.888+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails  conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Conferencia Rails 2009</title><summary type='text'>El próximo miércoles 25 comienza la Conferencia Rails 2009. Este año me han colocado las cosas como a mí me gustan, casi sin colisiones entre temas interesantes. Además hay mucha presencia internacional, tanto en ponentes como en asistentes: Obie Fernández, Yehuda Katz, David Black, Scott Chacon... Aquí podéis ver la nota de prensa oficial.

En CameraWC he subido un vídeo para saludar tanto a los</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6389809254144140111/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6389809254144140111' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6389809254144140111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6389809254144140111'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/11/conferencia-rails-2009.html' title='Conferencia Rails 2009'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-9140906479222882228</id><published>2009-11-12T00:45:00.005+01:00</published><updated>2009-11-12T01:18:32.177+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='image_science'/><category scheme='http://www.blogger.com/atom/ns#' term='rmagick'/><title type='text'>Generando un avatar</title><summary type='text'>Inventemos una palabra en castellano para traducir avatar. Podemos castellanizarla directamente, avatario o ávatar, porque parece que no podemos traducirla y, algo como, imagencilla, imagen de usuario o imagen en twitter, no me convence del todo.

Y dicha la tontería, vamos a lío. Supongamos que tenemos una imagen cuya ruta es 
C:/Users/danimata/full_body.jpg.
Vamos a recortar un trozo de la </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/9140906479222882228/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=9140906479222882228' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/9140906479222882228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/9140906479222882228'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/11/generando-un-avatar.html' title='Generando un avatar'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2073945749756716255</id><published>2009-10-28T13:22:00.002+01:00</published><updated>2009-10-28T13:26:59.992+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='openid'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='oauth'/><title type='text'>Presentación sobre OpenID y OAuth</title><summary type='text'>He creado una presentación para contar a unos amigos lo más básico sobre OpenID y OAuth.


Salud y rocanrol


¿Quién tiró la piedra? ¿Quién escondió la mano?
¡Quién le puso el pie al gordo del "Gran Hermano"?
Quien sabe lo que sabe, sabe que no sabe nada.
El que nada no se ahoga o le dan por la almorrana
¡O le dan por la almorrana!

Y si tiene almorranas es que sufre en silencio.
El silencio pa' </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2073945749756716255/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2073945749756716255' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2073945749756716255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2073945749756716255'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/10/presentacion-sobre-openid-y-oauth.html' title='Presentación sobre OpenID y OAuth'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1794952321279434215</id><published>2009-10-25T23:11:00.004+01:00</published><updated>2009-10-25T23:23:19.805+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='util'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='validations'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>La absurdez hecha duda</title><summary type='text'>Hoy me ha surgido la duda de cómo hacer una validación de unicidad sobre dos atributos de un modelo. Nunca había tenido que hacer algo similar en Rails.

La mejor opción que he encontrado ha sido

validates_uniqueness_of :family_id, :scope =&gt; :user_id

Esto validará que para cada valor de user_id el valor de family_id es único. Seguro que hay una solución mejor y más estándar, pero yo no me la sé</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1794952321279434215/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1794952321279434215' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1794952321279434215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1794952321279434215'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/10/la-absurdez-hecha-duda.html' title='La absurdez hecha duda'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-156735386417547023</id><published>2009-10-05T22:54:00.003+02:00</published><updated>2009-10-05T23:10:12.232+02:00</updated><title type='text'>Git en Windows Vista</title><summary type='text'>Por fin he puesto a funcionar un proyecto que tira de un repositorio git. Para ello he tenido que hacer tres cosas:

instalar git para windows desde aquí
confgurar la variable de entorno GIT_SSH para que apunte al ejecutable ssh que viene con el instalador de git, típicamente en C:\Program Files\Git\bin\ssh.exe
clonar el repositorio y empezar a trabajar

Ya sólo me queda familiarizarme con la </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/156735386417547023/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=156735386417547023' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/156735386417547023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/156735386417547023'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/10/git-en-windows-vista.html' title='Git en Windows Vista'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8819496286650566394</id><published>2009-09-29T09:15:00.002+02:00</published><updated>2009-09-29T09:31:10.383+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>FasterCSV y Rails 2.3</title><summary type='text'>Pues parece FasterCSV y Rails 2.3 no terminan de llevarse bien. De hecho, en las aplicaciones rails que he migrado a la versión 2.3.2, cualquier exportación de datos a formato CSV ha dejado de funcionar. Lo extraño es que no falla nada salvo que los archivos resultantes están vacíos.

Menos mal que San Google siempre está ahí, cuando se le necesita. Buscando buscando llego aquí donde explican que</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8819496286650566394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8819496286650566394' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8819496286650566394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8819496286650566394'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/09/fastercsv-y-rails-23.html' title='FasterCSV y Rails 2.3'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7415249699091463276</id><published>2009-09-09T12:36:00.003+02:00</published><updated>2009-09-09T12:50:51.559+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='util'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Nota mental</title><summary type='text'>Hay cosas que por más que las leas, las veas y las intentes retener, son imposibles de memorizar. Hay otras, sin embargo, que se quedan ahí contigo para el resto de tu vida, y que no sirven para nada. Como la típica cancioncilla que oyes a alguien y no se te va de la cabeza en todo el día. Probemos con 'dragones y mazmorras, un mundo infernal, se esconde entre las sombras, la fuerza del mal'.

En</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7415249699091463276/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7415249699091463276' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7415249699091463276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7415249699091463276'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/09/nota-mental.html' title='Nota mental'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1686900897486498383</id><published>2009-07-17T12:27:00.004+02:00</published><updated>2009-07-17T12:53:10.863+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='combo dependiente'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Combos dependientes re-visited</title><summary type='text'>Hace tiempo ya conté cómo hacer combos dependientes con observe_field pero debe ser que me hago viejo y que me gusta hacer las cosas cada vez más pedrestres. En fin, que tirando a pelo de prototype, un poco de javascript y adaptando un controlador, conseguimos lo mismo de forma muy sencilla.

Supongamos dos modelos dependientes


class Country &lt; ActiveRecord::Base
 has_many :provinces
end

class </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1686900897486498383/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1686900897486498383' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1686900897486498383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1686900897486498383'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/07/combos-dependientes-re-visited.html' title='Combos dependientes re-visited'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7087396093978447899</id><published>2009-06-16T14:25:00.010+02:00</published><updated>2009-06-16T22:09:19.937+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='openid'/><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='gems'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Quiero logarme usando open ID</title><summary type='text'>Lo primero es instalar la gema ruby-openid y el plugin open_id_authentication. Intenté usar directamente el plugin restful_open_id_authentication pero ya tenía montada una autenticación de tó la vida y preferí añadir únicamente la parte de open ID.

Ahora sólo queda seguir las instrucciones que encontramos en los links, pero con un par de matices:

 Generamos las tablas que necesita el plugin
</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7087396093978447899/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7087396093978447899' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7087396093978447899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7087396093978447899'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/06/quiero-logarme-usando-open-id.html' title='Quiero logarme usando open ID'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2527179070271973208</id><published>2009-06-07T00:00:00.002+02:00</published><updated>2009-06-07T00:09:58.483+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mail'/><category scheme='http://www.blogger.com/atom/ns#' term='error messages'/><title type='text'>Mensajes de error enviando mails</title><summary type='text'>He encontrado este artículo que explica bastante bien los mensjaes de error más comunes que recibimos al enviar un email de forma errónea.

Divide los mensajes en tres grupos: provocados por errores en el dominio, por errores en el mailbox o por filtros antispam. Para más detalles lo mejor es leer el artículo.

Ha sido corto, pero intenso. Salud y rocanrol!


I've got friends in low places
Where </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2527179070271973208/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2527179070271973208' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2527179070271973208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2527179070271973208'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/06/mensajes-de-error-enviando-mails.html' title='Mensajes de error enviando mails'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-39802976297141340</id><published>2009-05-12T23:36:00.003+02:00</published><updated>2009-05-12T23:43:00.911+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Un nuevo site</title><summary type='text'>La semana pasada puse en producción el site del restaurante de unos amigos: La Lumbre del Cacique. Es mi segunda experiencia con el diseño y cualquier feedback es bienvenido.

Ha sido breve, pero intenso. Salud y rocanrol.


Sea tan amable y diga qué le debo.
Yo suelo pagar lo que como y lo que bebo.
He comido un pincho de tortilla,
dos bocadillos de morcilla.
He acabado un queso de tetilla
y me </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/39802976297141340/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=39802976297141340' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/39802976297141340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/39802976297141340'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/05/un-nuevo-site.html' title='Un nuevo site'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3041857176455857191</id><published>2009-05-11T13:43:00.002+02:00</published><updated>2009-05-11T14:31:00.293+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Estar actualizado</title><summary type='text'>El viernes pasado, camino de la Euruko2009, iba en el AVE intentando ver porqué no me funcionaban unos modelos que unas horas antes sí lo hacían. Era obvio que habían dejado de funcionar al añadirles el comportamiento acts_as_versioned que en otros proyectos me había funcionado la mar de bien.

Ahí estaba mi error. Mi profesor de carpintería en Estados Unidos me lo advirtió hace 22 años:
there's </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3041857176455857191/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3041857176455857191' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3041857176455857191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3041857176455857191'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/05/estar-actualizado.html' title='Estar actualizado'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2169777317184555908</id><published>2009-04-20T15:19:00.006+02:00</published><updated>2009-04-20T15:35:25.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sites'/><category scheme='http://www.blogger.com/atom/ns#' term='buscadores'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Cuatro URLs donde enviar sitemaps</title><summary type='text'>A estas URLs se puede enviar el sitemap de cualquier site para que los buscadores te incluyan en su índice:


ASK:
http://submissions.ask.com/ping?sitemap=http://www.danimata.com/sitemap.xml
YAHOO:
http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=http://www.danimata.com/sitemap.xml
MSN:
http://api.moreover.com/ping?u=http://www.danimata.com/sitemap.xml
GOOGLE
http://www.google.com/</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2169777317184555908/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2169777317184555908' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2169777317184555908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2169777317184555908'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/04/cuatro-urls-donde-enviar-sitemaps.html' title='Cuatro URLs donde enviar sitemaps'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2731687578636305114</id><published>2009-04-11T22:48:00.003+02:00</published><updated>2009-04-12T00:05:28.185+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Una razón más para cambiar</title><summary type='text'>Llevo una temporada leyendo The Railsway de Obie Fernández y estoy interiorizando muchas cosas que antes me costaba bastante aceptar incluso entender. Creo que es por el enfoque directo que le da al libro, el punto de vista práctico del que parte y el lenguaje humano que utiliza. También porque es mucho más fácil entender cosas que ya has puesto en práctica y con las que has luchado a vida o </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2731687578636305114/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2731687578636305114' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2731687578636305114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2731687578636305114'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/04/una-razon-mas-para-cambiar.html' title='Una razón más para cambiar'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5680516385606810367</id><published>2009-03-17T22:24:00.002+01:00</published><updated>2009-03-17T23:01:50.223+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aspgems'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='aplicación'/><title type='text'>Apoyando a  los colegas</title><summary type='text'>Mi compi, Dani Cabrera, presenta Freelancit en el BBVA Open Talent. Desde aquí le apoyo e invito a los que leáis esto a que también lo hagáis. Sin duda, el proyecto lo merece.

Freelancit es una comunidad online para profesionales freelance y está, cómo no, desarrollada en Ruby on Rails por ASPgems

 

Salud y rocanrol¡


Carry on, my sons forever
Carry on, when I am gone
Carry on, when the day </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5680516385606810367/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5680516385606810367' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5680516385606810367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5680516385606810367'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/03/apoyando-los-colegas.html' title='Apoyando a  los colegas'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8040674602735341514</id><published>2009-03-09T23:06:00.003+01:00</published><updated>2009-03-09T23:15:50.068+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>No es lo mío , pero bueno...</title><summary type='text'>Ayer desplegué www.procesosmadrid.es, el site de la empresa de mi amiga Julia. Se dedican a control de plagas y ahora también a evitar que los rayos te caigan encima.

Yo no soy diseñador, pero bueno, algo ha mejorado el site. Hemos aprovechado para darlo de alta en Google Analytics para aprender un poco de analítica web.

Visitas, visitas, queremos visitas¡¡¡

Salud y rocanrol


Porque sé que es</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8040674602735341514/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8040674602735341514' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8040674602735341514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8040674602735341514'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/03/no-es-lo-mio-pero-bueno.html' title='No es lo mío , pero bueno...'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8385398766645102895</id><published>2009-03-05T21:18:00.002+01:00</published><updated>2009-03-05T21:48:47.631+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='open-uri'/><title type='text'>El principio de la mínima sorpresa</title><summary type='text'>Me dice un amigo que tiene un problema con el plugin acts_as_feeder. Tiene un modelo en el que ha incluido ese comportamiento y a la hora de lanzar la carga sobre una de sus instancias el sistema canta por soleares.

Escarbando, escarbando llegamos a que el casque ocurre al ejecutar el método open pasándole como parámetro un StringIO. Ese parámetro es el resultado de ejecutar también open </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8385398766645102895/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8385398766645102895' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8385398766645102895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8385398766645102895'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/03/el-principio-de-la-minima-sorpresa.html' title='El principio de la mínima sorpresa'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7844660034304993264</id><published>2009-02-19T23:21:00.004+01:00</published><updated>2009-02-20T00:14:16.711+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analítica web'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Analytics: la polémica</title><summary type='text'>Sólo quiero dejar clara mi postura en este tema.

Todo viene de un post del CEO de toprural acerca de cómo Google Analytics recoje sus datos y de cómo un parámetro de configuración que muy poca gente conoce puede alterar sensiblemente los resultados que se obtienen.

Las opiniones que se han dejado ver en la red son de todo tipo y color, pero se pueden agrupar en dos, como bien se explica en </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7844660034304993264/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7844660034304993264' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7844660034304993264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7844660034304993264'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/02/google-analytics-la-polemica.html' title='Google Analytics: la polémica'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1896222479102632114</id><published>2009-01-15T23:00:00.004+01:00</published><updated>2009-01-15T23:52:04.059+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conceptos'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Concepto interensante: La Jerarquía de Optimización</title><summary type='text'>Este es una artículo de hace casi dos años al que hoy he accedido a través del blog de Gemma. En él se desarrolla el concepto de la jerarquía de optimización.

De manera similar a cómo la Pirámide de Maslow trata de explicar el orden de importancia que los humanos le damos a nuestras necesidades como una pirámide, Brian Eisenberg explica el orden de importancia que un cliente potencial de una </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1896222479102632114/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1896222479102632114' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1896222479102632114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1896222479102632114'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/01/concepto-interensante-la-jerarqua-de.html' title='Concepto interensante: La Jerarquía de Optimización'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1350457403659402059</id><published>2009-01-14T21:46:00.006+01:00</published><updated>2009-01-14T22:28:34.114+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='pair programming'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Comenzamos 2009 con pair programming</title><summary type='text'>Feliz 2009.

Últimamente no pasan cosas interesantes entre Rails y yo. No sé si, como cantaba Medina Azahara 'se perdió el amor' o la cosa va más por 'la vida sigue igual' de Julio Iglesias.

Sin embargo, hoy, por primera vez y después de mucho escuchar cómo otros hablaban de ello, he perdido la virginidad en el pair programming. Y lo he hecho con una persona tan escéptica o más que yo acerca de </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1350457403659402059/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1350457403659402059' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1350457403659402059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1350457403659402059'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2009/01/comenzamos-2009-con-pair-programming.html' title='Comenzamos 2009 con pair programming'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2915330064766623074</id><published>2008-12-10T23:45:00.003+01:00</published><updated>2008-12-11T00:03:19.007+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><title type='text'>Mi última adquisición</title><summary type='text'>Como últimamente no estoy muy inspirado para escribir sobre código, os voy a enseñar mi última adquisición.

'Y qué coj@#€¬~@ es eso', os preguntaréis?
Pues resulta que, si te sientas en el sofá, le das la vuelta al asunto y apoyas la parte acolchada en tus rodillas, puedes poner el portátil encima y picar cómodamente.
Si acaso, le veo una mejora: dos soportes laterales, uno para una cervecita y </summary><link rel='related' href='http://www.ikea.com/es/es/catalog/products/40115103' title='Mi última adquisición'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2915330064766623074/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2915330064766623074' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2915330064766623074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2915330064766623074'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/12/mi-ltima-adquisicin.html' title='Mi última adquisición'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2977471157280390378</id><published>2008-11-20T10:55:00.005+01:00</published><updated>2008-11-20T11:39:05.593+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Conferencia Rails 2008  re-visited</title><summary type='text'>He tardado varios días en pensar qué escribir acerca de la conferencia porque el viernes, cuando terminó y me fui a casa, estaba muy enfadado. Estaba menos enfadado que  el jueves, pero enfadado al fin y al cabo. Mi pensamiento principal era me han tanga'o. Tal cual.

Está claro que me equivoqué en mis deseos para este año. Estuve conectado la mitad del tiempo que pasé en las conferencias, las </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2977471157280390378/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2977471157280390378' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2977471157280390378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2977471157280390378'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/11/conferencia-rails-2008-re-visited.html' title='Conferencia Rails 2008  re-visited'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1909819767250500154</id><published>2008-11-11T23:16:00.006+01:00</published><updated>2008-11-11T23:40:24.946+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='railsconference'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Are you ready to rock?</title><summary type='text'>La Conferencia Rails 2008 está al caer. Veremos qué se cuentan Javi en Rails Hot or Not, Jacobo en Harder, Better, Faster, Stronger y Obi &amp; Xavi en sus keynotes.

Este año espero tres cosas de la conferencia:

Espero que los casos de éxito no se conviertan en charlas de venta de producto. Este año abundan y se haría demasiado pesado.
Espero que se metan menos cuñitas personales de los </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1909819767250500154/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1909819767250500154' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1909819767250500154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1909819767250500154'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/11/are-you-ready-to-rock.html' title='Are you ready to rock?'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1155834424208863062</id><published>2008-10-09T10:53:00.004+02:00</published><updated>2008-10-09T11:22:55.146+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Esas pequeñas cosas</title><summary type='text'>Ayer fue un día muy muy triste. Murió un amigo de mi hermano con sólo 29 años. Aunque  no estaba muy muy unido a él, era una persona a la que apreciaba. Solíamos vernos en las fiestas de sanse, en los encierros que se organizan para niños cuando llevo a mi pequeño. Él empujaba un carretón. A pesar de ser un punky, moderado por la edad y por su chica, un encanto como pocos, el Buty era apreciado </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1155834424208863062/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1155834424208863062' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1155834424208863062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1155834424208863062'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/10/esas-pequeas-cosas.html' title='Esas pequeñas cosas'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2603240975088573</id><published>2008-09-18T18:46:00.003+02:00</published><updated>2008-09-18T18:58:00.980+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='cookies'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='restful_authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='ie6'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='ie7'/><title type='text'>La madre de todos los corderos no es una oveja, es un 'underscore'</title><summary type='text'>Lo que me ha ocurrido hoy es, como diría mi abuela, pa ' mear y no echar gota.

Resulta que hemos terminado de desarrollar una una aplicación y la hemos instalado en una máquina compartiendo IP con otras aplicaciones. En local, todo funcionaba de lujo pero en producción el login funcionaba bien en Firefox pero en Internet Explorer no. Y como las trazas en producción son tan significativas...

En </summary><link rel='related' href='https://www.google.com/groups/signin?login_required=1&amp;passive=true&amp;_done=http://groups.google.com/group/phusion-passenger/browse_thread/thread/24ce04b289d6c890&amp;cd=US&amp;hl=es' title='La madre de todos los corderos no es una oveja, es un &apos;underscore&apos;'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2603240975088573/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2603240975088573' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2603240975088573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2603240975088573'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/09/la-madre-de-todos-los-corderos-no-es.html' title='La madre de todos los corderos no es una oveja, es un &apos;underscore&apos;'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3670326980759429446</id><published>2008-09-11T11:15:00.003+02:00</published><updated>2008-09-11T11:25:14.042+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='trabajo'/><title type='text'>ASPGems y Gemma</title><summary type='text'>En ASPGems necesitamos incorporar un par de personas que nos echen una mano. Aquí lo publica Agustín. Si el post no os convence, yo lo haré.

Por otra parte, Avinash Kaushik, el master of the wrold de la analítica web, publica una foto de mis peques y mi chica con su libro 'Web analytics - An hour a day'.

Salud y rocanrol!


If I get stoned and sing all night long, it's a family tradition!
</summary><link rel='related' href='http://blog.aspgems.com/2008/09/10/buscamos-desarrolladores-rails/' title='ASPGems y Gemma'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3670326980759429446/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3670326980759429446' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3670326980759429446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3670326980759429446'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/09/aspgems-y-gemma.html' title='ASPGems y Gemma'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6843868178776754504</id><published>2008-09-04T23:00:00.004+02:00</published><updated>2008-09-04T23:14:28.981+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='mongrel'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>OCUPADO</title><summary type='text'>Hoy, al arrancar una aplicación en mi máquina (sí, sobre Windows XP), he obtenido la siguiente traza de error:

C:\rails_apps\danimata&gt;ruby script/server
=&gt; Booting Mongrel (use 'script/server webrick' to force WEBrick)
=&gt; Rails application starting on http://0.0.0.0:3000
=&gt; Call with -d to detach
=&gt; Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
Exiting
c:/ruby/lib/ruby/</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6843868178776754504/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6843868178776754504' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6843868178776754504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6843868178776754504'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/09/ocupado.html' title='OCUPADO'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3492146629289643825</id><published>2008-08-05T15:49:00.002+02:00</published><updated>2008-08-05T16:08:08.858+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>A tiro hecho (III)</title><summary type='text'>Hoy he utilizado render para pintar N partials a partir de los elemntos de un Array. Lo típico:

&lt;%= render :partial =&gt; 'user', :collection =&gt; @users, :locals =&gt; {:my_local_var =&gt; 'xxx'} %&gt;

Y he tenido que buscar cómo se llama la variable mágica que se genera dentro del partial en cada iteración y que contiene el índice del elemento al que se aplica el partial en cada momento: [</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3492146629289643825/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3492146629289643825' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3492146629289643825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3492146629289643825'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/08/tiro-hecho-iii.html' title='A tiro hecho (III)'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3118252125133523856</id><published>2008-08-04T15:22:00.002+02:00</published><updated>2008-08-04T15:30:31.905+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='red social'/><title type='text'>TOG news</title><summary type='text'>Acaban de publicar en el blog de Linked lo bien que llevan el desarrollo de su plataforma para redes sociales: TOG. Creo que hay que tenerla en el radar porque pinta muy bien.

Recientemente he estado evaluando el plugin community_engine también diseñado para la creación de redes sociales y recomendado por mi amigo Javi. Como punto de partida me ha parecido bastante razonable, sobre todo porque </summary><link rel='related' href='http://weblog.linkingpaths.com/2008/08/01/mas-informacion-sobre-tog/' title='TOG news'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3118252125133523856/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3118252125133523856' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3118252125133523856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3118252125133523856'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/08/tog-news.html' title='TOG news'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5653669366366818272</id><published>2008-07-22T23:52:00.002+02:00</published><updated>2008-07-23T00:13:35.407+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Lección magistral</title><summary type='text'>Chisthophe Porteneuve en A List Apart le da ésta vuelta de tuerca a los problemas de binding (enlace?, enlazamiento?) en javascript.

El artículo merece ser leído al completo y me permito traducir el resumen final a mi castellano:


Los accesos a miembros(atributos, métodos) deben de hacerse siempre a través del objeto al que pertenecen, aún cuando éste sea this.
Las referencias a cualquier </summary><link rel='related' href='http://www.alistapart.com/articles/getoutbindingsituations' title='Lección magistral'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5653669366366818272/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5653669366366818272' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5653669366366818272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5653669366366818272'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/07/leccin-magistral.html' title='Lección magistral'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-4978931207688275886</id><published>2008-07-16T11:07:00.003+02:00</published><updated>2008-07-16T11:29:06.567+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Diseño para dispositivos móviles</title><summary type='text'>Mare mía qué abandonado tengo esto!!!

En fin, en este post
del blog de design-logix comentan algunos factores a tener en cuenta a la hora de diseñar para dispositivos móviles y tres posibles manears de enfocar la implementación.

Entre los factores importantes hablan de

el tiempo de carga, muy mejorado en los dispositivos 3G
la gran variedad de dispositivos y de browsers
las limitaciones del </summary><link rel='related' href='http://www.design-logix.co.uk/blog/2008/07/designing-for-mobile-interfaces/' title='Diseño para dispositivos móviles'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/4978931207688275886/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=4978931207688275886' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4978931207688275886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4978931207688275886'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/07/diseo-para-dispositivos-mviles.html' title='Diseño para dispositivos móviles'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7809644944027291966</id><published>2008-06-04T10:59:00.002+02:00</published><updated>2008-06-04T11:41:29.490+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='navegadores'/><category scheme='http://www.blogger.com/atom/ns#' term='ie6'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Plugin para IE</title><summary type='text'>Le leído en este post que existe un plugin para IE parecido a Firebug.

Me lo he instalado y mejora en Web Developer Toolbar, sobre todo por la consola javascript. Pero le falta poder ver todo el árbol de atributos css de cada elemento que, para mí, es lo mejor de Firebug.

Si lo queréis probar, podéis descargarlo de aquí.

Salud y rocanrol!


Run, live to fly, fly to live, do or die
Run, live to</summary><link rel='related' href='http://www.maestrosdelweb.com/actualidad/web-development-helper-plugin-para-internet-explorer/' title='Plugin para IE'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7809644944027291966/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7809644944027291966' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7809644944027291966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7809644944027291966'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/06/plugin-para-ie.html' title='Plugin para IE'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-749309427876527215</id><published>2008-05-31T10:23:00.005+02:00</published><updated>2008-05-31T10:38:53.033+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='gems'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Ruby-debug wn Windows</title><summary type='text'>Ayer, para echar una mano con una aplicación RoR, me tuve que instalar la gema ruby-debug. Una vez instalada junto con linecache y alguna otra, al arrancar el serviddor obtenía el siguiente mensaje.


c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- c:/ruby/
lib/ruby/gems/1.8/gems/linecache-0.42-x86-mswin32/lib/../ext/trace_nums (</summary><link rel='related' href='http://www.mattrobinson.net/2008/5/24/ruby-debug-0-10-1-broken-on-windows' title='Ruby-debug wn Windows'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/749309427876527215/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=749309427876527215' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/749309427876527215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/749309427876527215'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/05/ruby-debug-wn-windows.html' title='Ruby-debug wn Windows'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-762271819315721905</id><published>2008-05-26T23:02:00.005+02:00</published><updated>2008-05-26T23:13:33.608+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><title type='text'>MySQL cambiando el nombre a una tabla</title><summary type='text'>Acabo de cambiar el nombre a una tabla en una base de datos MySQL. El caso es que lo he intentado hacer de memoria y no he sido capaz. Gañanismo congénito.

Weno, pues aquí dejo apuntadas un par de posibilidades que he encontrado:

ALTER TABLE &lt;tbl_name&gt; RENAME TO &lt;new_tbl_name&gt;

y

RENAME TABLE &lt;tbl_name&gt; TO &lt;new_tbl_name&gt;

Me pongo una tira negra en los ojos y reconozco que ignoraba la </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/762271819315721905/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=762271819315721905' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/762271819315721905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/762271819315721905'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/05/mysql-cambiando-el-nombre-una-tabla.html' title='MySQL cambiando el nombre a una tabla'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2737924940182725841</id><published>2008-05-20T23:38:00.003+02:00</published><updated>2008-05-20T23:48:27.286+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='web service'/><category scheme='http://www.blogger.com/atom/ns#' term='wsdl'/><title type='text'>Web Services: mensaje con formato</title><summary type='text'>N veces he tenido que desarrollar conectores contra un web service utilizando las clases SOAP de Ruby y las N he necesitado ver los mensajes que se envían con un formato decente. Lo mejor que se me ha ocurrido ha sido sacar una traza desde soap/rpc/proxy.rb.

En envío lo realiza el método route

conn_data = @streamhandler.send(@endpoint_url, conn_data, reqopt[:soapaction])

Justo antes pondremos </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2737924940182725841/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2737924940182725841' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2737924940182725841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2737924940182725841'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/05/web-services-mensaje-con-formato.html' title='Web Services: mensaje con formato'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2230131612436113276</id><published>2008-05-15T00:15:00.003+02:00</published><updated>2008-05-15T00:25:17.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='navegadores'/><category scheme='http://www.blogger.com/atom/ns#' term='ie6'/><category scheme='http://www.blogger.com/atom/ns#' term='ie7'/><title type='text'>Internet Explorer: versiones viejunas</title><summary type='text'>En este post se comentan posibles formas de probar las versiones antiguas de Internet Explorer. Yo he optado por la tercera: actualizar a Internet Explorer 7 e instalar Multiple IE.

Al arrancar las versiones antiguas de Internet Explorer se produce algún que otro error y también casca espúreamente el javascript de las páginas, pero para ver cómo se comportan es más que sufuciente.

He dicho </summary><link rel='related' href='http://www.incubaweb.com/4557/navegadores/ejecutar-internet-explorer-6-y-7-en-el-mismo-ordenador/' title='Internet Explorer: versiones viejunas'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2230131612436113276/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2230131612436113276' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2230131612436113276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2230131612436113276'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/05/internet-explorer-versiones-viejunas.html' title='Internet Explorer: versiones viejunas'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5916818705053660132</id><published>2008-05-07T23:30:00.003+02:00</published><updated>2008-05-08T00:15:09.735+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='prototype'/><title type='text'>La caché (I) - revisited</title><summary type='text'>Comenta mi amigo Xavi a mi anterior post que las peticiones Ajax, como cualquier otra petición http realizada desde un navegador pueden ser tanto POST como GET. Y no le falta razón.


Tirando del hilo llegamos a prototype.js donde el objeto básico para las peticiones Ajax tiene un parámetro de configuración donde indicarle con qué método se hace la petición (por defecto, POST):



Ajax.Base = </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5916818705053660132/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5916818705053660132' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5916818705053660132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5916818705053660132'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/05/la-cach-i-revisited.html' title='La caché (I) - revisited'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-17802814325977690</id><published>2008-05-06T00:17:00.005+02:00</published><updated>2008-05-07T23:30:44.436+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='rjs'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><title type='text'>La caché (I)</title><summary type='text'>Llevo algunos días viendo cosillas básicas de la caché de Rails. En concreto, he estado intentando cachear el resultado de una acción solicitada por Ajax cuyo resultado es renderizado por un archivo rjs. Y no ha habido manera. Hasta que recordando los tiempos en los que el 90% de mi tiempo lo dedicaba a depurar código Java sobre la plataforma Banksphere (todos tenemos un pasado oscuro) me metí un</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/17802814325977690/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=17802814325977690' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/17802814325977690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/17802814325977690'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/05/la-cach-i.html' title='La caché (I)'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7463029099102252584</id><published>2008-04-29T22:48:00.002+02:00</published><updated>2008-04-29T22:53:29.600+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='active_scaffold'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>A tiro hecho (II)</title><summary type='text'>Hoy he tenido que trastear un poquito con active_scaffold después de algún tiempo y he comprobado lo volátil que se ha vuelto mi memoria. Así que he decidido dejarme aquí la url de los parámetros de configuración de los listados.

Hoy buscaba el parámetro para cambiar el número de registros mostrados en un listado:

config.list.per_page

Salud y rocanrol!
</summary><link rel='related' href='http://activescaffold.com/docs/api-list' title='A tiro hecho (II)'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7463029099102252584/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7463029099102252584' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7463029099102252584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7463029099102252584'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/04/tiro-hecho-ii.html' title='A tiro hecho (II)'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3268111415217939730</id><published>2008-04-23T01:17:00.003+02:00</published><updated>2008-04-23T01:32:49.267+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory leak'/><category scheme='http://www.blogger.com/atom/ns#' term='ie6'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>IE6 y sus pérdidas</title><summary type='text'>Una de mis aplicaciones Rails va lenta. Pero no siempre; sólo cuando navegas un buen rato. Revisé los procesos y ví que los navegadores pierden memoria. En Firefox el problema es bastante conocido. En IE6 también, pero menos.

Sin embargo, mi amiga Ana ha encontrado un par de links interesantes en la web de Microsoft:


En http://support.microsoft.com/kb/309170/es recomiendan modificar el </summary><link rel='related' href='http://support.microsoft.com/kb/942840' title='IE6 y sus pérdidas'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3268111415217939730/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3268111415217939730' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3268111415217939730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3268111415217939730'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/04/ie6-y-sus-prdidas.html' title='IE6 y sus pérdidas'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-4752770651524018563</id><published>2008-04-08T15:53:00.003+02:00</published><updated>2008-04-08T16:08:50.321+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Formularios de registro? No, gracias.</title><summary type='text'>En este artículo publicado en A list apart se comenta la estrategia de intentar atraer usuarios a un servicio web dejando que éstos utilicen plenamente su funcionalidad como primera experiencia de uso y dejando el registro como algo posterior e incluso opcional. Se muestran tres ejemplos, Jumpcut, Geni y Tripit. Finalmente, el autor del artículo da cuatro recomendaciones para acercarnos a esta </summary><link rel='related' href='http://www.alistapart.com/articles/signupforms' title='Formularios de registro? No, gracias.'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/4752770651524018563/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=4752770651524018563' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4752770651524018563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4752770651524018563'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/04/formularios-de-registro-no-gracias.html' title='Formularios de registro? No, gracias.'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7858930013829559337</id><published>2008-04-07T22:23:00.002+02:00</published><updated>2008-04-07T22:38:17.660+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='html injection'/><category scheme='http://www.blogger.com/atom/ns#' term='sql injection'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Protección contra los gérmenes</title><summary type='text'>Me preguntaba hoy un amigo qué trae Rails de serie que proteja las aplicaciones contra algún mamonazo que intente enviar código malintencionado, sobre todo sql injection y html injection. Es de estas preguntas que sabes que tiene respuesta fácil, que la usas y que te deja balbuceando, pidiendo tiempo muerto para contestarla.


Contra sql injection, acceder por Active Record, como mandan los </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7858930013829559337/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7858930013829559337' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7858930013829559337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7858930013829559337'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/04/proteccin-contra-los-grmenes.html' title='Protección contra los gérmenes'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-680042739901101646</id><published>2008-04-02T22:56:00.003+02:00</published><updated>2008-04-02T23:13:36.674+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='aplicación'/><title type='text'>Rails es perfecto para esto</title><summary type='text'>Hace un mes, un amigo me pidió ayuda para montar una web lo más rápidamente posible para gestionar los vídeos de un certámen de videoclips y sacarlos a intenet para que pudieran ser votados. El resultado es éste.

Creo que en total hemos echado menos de 30 horas de desarrollo. Hemos tirado de lo conocido: Rails 1.2.3, acts_as_autheticated, simple_captcha, control_tabs y poco más.

Por detrás hay </summary><link rel='related' href='http://medina2008.servehttp.com/' title='Rails es perfecto para esto'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/680042739901101646/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=680042739901101646' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/680042739901101646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/680042739901101646'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/04/rails-es-perfecto-para-esto.html' title='Rails es perfecto para esto'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2658593464781378686</id><published>2008-04-02T14:03:00.003+02:00</published><updated>2008-04-02T14:29:54.059+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='mongrel_service'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='mongrel'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Rotar logs en Windows</title><summary type='text'>En Windows, rotar los logs de una aplicación Rails que corre bajo mongrel y mongrel_service no es trivial. Mongrel bloquea el archivo por lo que una rotación por código, asignando a RAILS_DEFAULT_LOGGER una rotación por espacio o por tiempo desemboca en un error de sistema.

La mejor opción que he encontrado ha sido la fuerza bruta, el viejo método PRR: Parar, Rotar, Rearrancar. Para parar los </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2658593464781378686/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2658593464781378686' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2658593464781378686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2658593464781378686'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/04/rotar-logs-en-windows.html' title='Rotar logs en Windows'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8968640133488135389</id><published>2008-03-15T00:21:00.001+01:00</published><updated>2008-03-15T00:23:44.747+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='publicidad'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Cómo mola</title><summary type='text'>El iJam, que mola bastante más que el iPhone. No os perdáis la visita guiada porque es de lo mejor que he visto en mucho tiempo.

Salud y rocanrol¡
</summary><link rel='related' href='http://www.ijam.es/' title='Cómo mola'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8968640133488135389/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8968640133488135389' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8968640133488135389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8968640133488135389'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/03/cmo-mola.html' title='Cómo mola'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-4687242469982915953</id><published>2008-03-14T18:07:00.002+01:00</published><updated>2008-03-14T18:10:16.341+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Más hacks CSS</title><summary type='text'>He encontrado este articulillo que cuenta algunos hacks para que las CSS funcionen mejor en todos los navegadores. Son todos más o menos conocidos pero vienen bien explicados y con algún matiz interesante.

Salud y rocanrol¡
</summary><link rel='related' href='http://www.maestrosdelweb.com/editorial/hacks-en-css-que-te-evitaran-dolores-de-cabeza-en-internet-explorer/' title='Más hacks CSS'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/4687242469982915953/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=4687242469982915953' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4687242469982915953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4687242469982915953'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/03/ms-hacks-css.html' title='Más hacks CSS'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5816098783937510393</id><published>2008-03-11T23:56:00.005+01:00</published><updated>2008-04-29T22:55:32.217+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlserver'/><title type='text'>SQLServer</title><summary type='text'>Un par de cosillas para trabajar con Rails y SQLServer:


Como ya comenté en posts anteriores, lo mejor es utilizar conexión ODBC.
En las migrations, la creación de tablas no debe tener referencias típicas de MySQL como :options =&gt; 'ENGINE=InnoDB DEFAULT CHARSET=UTF8'
SQLServer no habla UTF-8 lo que hace que una migración de datos de MySQL a SQLServer pueda convertirse en un dolor si no se tiene </summary><link rel='related' href='http://www.sqlteam.com/article/indexed-views-in-sql-server-2000' title='SQLServer'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5816098783937510393/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5816098783937510393' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5816098783937510393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5816098783937510393'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/03/sqlserver.html' title='SQLServer'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6743200848725698415</id><published>2008-03-11T23:44:00.006+01:00</published><updated>2008-03-11T23:54:43.803+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='gems'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Me vuelvo a caer del guindo</title><summary type='text'>Estaba trabajando con Rails 1.2.3 bajo Windows y actualizé mis gemas con

gem update --system

Lo primero que ocurrió es que Mongrel dejó de funcionar y tuve que actualizarlo también.

Hoy me encuentro con que no puedo congelar Rails. Si yo digo...

rake rails:freeze:gems

El sistema dice...

uninitialized constant Gem::GemRunner

Menos mal que Google es un campeón y me ha dejado la solución a un</summary><link rel='related' href='http://soyunperdedor.com/node/13' title='Me vuelvo a caer del guindo'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6743200848725698415/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6743200848725698415' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6743200848725698415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6743200848725698415'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/03/me-vuelvo-caer-del-guindo.html' title='Me vuelvo a caer del guindo'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-9094821620551284283</id><published>2008-03-01T22:47:00.004+01:00</published><updated>2008-03-02T01:19:08.780+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Control Tabs</title><summary type='text'>Control Tabs es una librería javascript basada en Prototype.js que permite crear de forma sencilla navegación con solapas. Sólo es necesaria una lista de enlaces que apunten a cualquier elemento de la página que tenga id, típicamente un elemento div.

En mi opinión, es perfecta para dividir formularios grandes en otros más pequeños o para separar funcionalidades que actúan sobre un mismo elemento</summary><link rel='related' href='http://livepipe.net/projects/control_tabs/' title='Control Tabs'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/9094821620551284283/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=9094821620551284283' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/9094821620551284283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/9094821620551284283'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/03/control-tabs.html' title='Control Tabs'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8266616685258243270</id><published>2008-02-22T12:13:00.003+01:00</published><updated>2008-02-22T12:45:13.400+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Assume vs Assure</title><summary type='text'>En ocasiones nos encontramos con que te instalas algo que siempre ha funcionado bien pero que cuando le cambias un poco el entorno, le tiemblan las canillas.

Por ejemplo, para una nueva aplicación instalamos l10n-simplified para menejar los mensajes de la aplicación porque siempre ha funcionado. Y todo va bien, correcto, sin complicacines. Pero me llevo la aplicación a su entorno real, corriendo</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8266616685258243270/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8266616685258243270' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8266616685258243270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8266616685258243270'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/assume-vs-assure.html' title='Assume vs Assure'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-4531586847839471000</id><published>2008-02-21T11:28:00.004+01:00</published><updated>2008-02-21T11:36:33.811+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CSS en Sitepoint</title><summary type='text'>En Sitepoint acaban de sacar esta referencia que parece bastante completa. Hay un listado alfabético de propiedades para ir a tiro hecho y hasta una página de hacks que nostá mal como comienzo.

En otro orden de cosas y perdón por la expresión, me cago aquí y ahora en los puñeteros charsets. Luego mexplico.

Salud¡</summary><link rel='related' href='http://reference.sitepoint.com/css' title='CSS en Sitepoint'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/4531586847839471000/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=4531586847839471000' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4531586847839471000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4531586847839471000'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/css-en-sitepoint.html' title='CSS en Sitepoint'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1706082244768350779</id><published>2008-02-14T11:58:00.003+01:00</published><updated>2008-02-14T12:35:18.826+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><title type='text'>Más SEO</title><summary type='text'>En su newsletter para empresas, Microsoft también ofrece una serie de indicaciones para que tu site le guste más a los buscadores. Más de lo mismo, explicado en detalle: que si enlaces bien puestos, que si urls únicas, que nada de popups ni frames... en fin, un poquito de sentido común más una pizca de conocimiento.

Salud¡
</summary><link rel='related' href='http://www.microsoft.com/spain/empresas/internet/gustar_buscadores.mspx' title='Más SEO'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1706082244768350779/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1706082244768350779' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1706082244768350779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1706082244768350779'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/ms-seo.html' title='Más SEO'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-907866986861176999</id><published>2008-02-13T15:07:00.005+01:00</published><updated>2008-02-13T15:42:26.894+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='mongrel_service'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='mongrel'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Mongrel service</title><summary type='text'>Levantar un servidor mongrel como servicio de Windows es un dolor hasta que leyendo leyendo... llegamos aquí. Con mongrel_service es prácticamente trivial:

instalamos la gema (que por cierto depende de win32-service)
gem install mongrel_service
y creamos el servicio
mongrel_rails service::install -N app3000 -c c:\rails_apps\app -p 3000 -e production

En la URL original se indica cómo arrancarlo,</summary><link rel='related' href='http://mongrel.rubyforge.org/docs/win32.html' title='Mongrel service'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/907866986861176999/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=907866986861176999' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/907866986861176999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/907866986861176999'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/mongrel-service.html' title='Mongrel service'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5740774075593608248</id><published>2008-02-13T14:59:00.003+01:00</published><updated>2008-02-14T11:48:16.900+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><title type='text'>SEO - resumen</title><summary type='text'>Antier (que diría mi abuela) publicaron en este blog un resumen de cosillas a tener en cuenta para que tu web se posicione razonablemente en los buscadores más usados. Lo de siempre: sitemap.xml, herramientas propias de cada buscador para dar a conocer tus páginas y, sobre todo, sentido común.

Salud¡</summary><link rel='related' href='http://www.webhostingshow.com/2008/02/12/10-seo-tips-for-anybody-to-use/' title='SEO - resumen'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5740774075593608248/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5740774075593608248' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5740774075593608248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5740774075593608248'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/seo-resumen.html' title='SEO - resumen'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6618477191749889725</id><published>2008-02-09T22:40:00.000+01:00</published><updated>2008-02-09T22:53:15.394+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aplicación'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Otro lapsus: Güindous Libre¡</title><summary type='text'>Está disponible hace años pero desconocía WinLibre. Es una aplicación libre para descargar todo tipo de programas libres para güindous(que no es libre).

Vale, la mayor parte de las aplicaciones que ofrece son las que todos conocemos, pero está bien tenerlas todas a mano y que te puedas olvidar de estar pendiente de actualizaciones. Habrá que echarle un ojo, no?

Salud¡</summary><link rel='related' href='http://www.incubaweb.com/3620/descargas/winlibre-actualiza-tus-programas-favoritos/' title='Otro lapsus: Güindous Libre¡'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6618477191749889725/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6618477191749889725' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6618477191749889725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6618477191749889725'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/otro-lapsus-gindous-libre.html' title='Otro lapsus: Güindous Libre¡'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1306812879497067504</id><published>2008-02-07T00:22:00.000+01:00</published><updated>2008-02-07T00:30:39.365+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Lapsus</title><summary type='text'>No entiendo como en 12 años no he visto esto en ningún sitio. Primero picaba una css por cada navegador y por javascript cargábamos la que se ajustase mejor. Luego decidí que eso de ajustar al pixel las páginas para todos los navegadores es una idiotez y que basta con que su aspecto sea razonable (mi listón está bastante alto, aviso). Y ahora veo esto.

Con estos estilos


.ie .example {</summary><link rel='related' href='http://rpheath.com/posts/303-css-browser-selectors' title='Lapsus'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1306812879497067504/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1306812879497067504' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1306812879497067504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1306812879497067504'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/lapsus.html' title='Lapsus'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3415623975451680898</id><published>2008-02-06T12:00:00.000+01:00</published><updated>2008-02-06T12:29:11.794+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sites'/><title type='text'>Tócala otra vez, Sam</title><summary type='text'>... y va Sam (songerize.com) y la toca.

Con un campo para meter cuatro palabras de la letra que te suenan de la canción que no te acuerdas, sería la booooooomba¡
</summary><link rel='related' href='http://songerize.com/' title='Tócala otra vez, Sam'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3415623975451680898/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3415623975451680898' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3415623975451680898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3415623975451680898'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/tcala-otra-vez-sam.html' title='Tócala otra vez, Sam'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8288682478342658135</id><published>2008-02-04T21:42:00.000+01:00</published><updated>2008-02-04T21:55:36.404+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='gráficos'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='gruff'/><title type='text'>GRUFF: una pega</title><summary type='text'>Trasteando con GRUFF me he encontrado pintando 4 ó 5 gráficas y teniendo que acortar las leyendas de cada una de ellas para que no se me salieran de la imagen. Y es que no está muy bien resuelto este tema.

Como solución intermedia e inmediata, por una parte le he pasado las leyendas con saltos de línea '\n' y por otra he cambiado un par de líneas de la librería, para que se dé cuenta que a un </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8288682478342658135/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8288682478342658135' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8288682478342658135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8288682478342658135'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/02/gruff-una-pega.html' title='GRUFF: una pega'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7891260495452908241</id><published>2008-01-25T22:37:00.000+01:00</published><updated>2008-01-25T22:46:51.951+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curl'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><title type='text'>CURL</title><summary type='text'>A un ventanero como yo, siempre le cuesta un poquito más terminar de instalar todo este tipo de aplicaciones, librerías y programas opensource. Claro que... igual soy yo¡


Hoy he tenido que instalarme CURL para poder probar una aplicación que ofrece servicios al estilo REST vía HTTP. Y, no es que haya sido difícil, pero sí que es cierto que no se hace en un paso, si no en dos.


Lo primero es </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7891260495452908241/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7891260495452908241' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7891260495452908241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7891260495452908241'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/01/curl.html' title='CURL'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-9094129833872853394</id><published>2008-01-07T23:15:00.000+01:00</published><updated>2008-01-07T23:36:26.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='gráficos'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='gruff'/><title type='text'>De momento, GRUFF</title><summary type='text'>He estado mirando por ahí con qué pintar las gráficas de una de mis aplicaciones y no he enconrado nada que mejore GRUFF.


Es fácil de instalar puesto que sólo necesita RMagick (también ImageMagick si eres ventanero como yo (sí, ventanero, que pasa?))
Es fácil de usar, como se ve en el ejemplo original


require 'rubygems'
require 'gruff'

g = Gruff::Line.new
g.title = "My Graph"
g.data("Apples"</summary><link rel='related' href='http://www.igvita.com/2007/01/05/dynamic-stat-graphs-in-rails/' title='De momento, GRUFF'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/9094129833872853394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=9094129833872853394' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/9094129833872853394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/9094129833872853394'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2008/01/de-momento-gruff.html' title='De momento, GRUFF'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5426122748349047387</id><published>2007-12-14T10:52:00.001+01:00</published><updated>2007-12-14T11:05:18.636+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><title type='text'>IE no cachea los background-image's</title><summary type='text'>He desarrollado dos widgets a partir de datepicker: un menu contextual y un tooltip. No han costado demasiado pero, como siempre, ejecutando las aplicaciones contra localhost todo es simple y bonito y al llevarlo a un servidor de verdad te das cuenta de cosillas.

En este caso, volviendo a caer de mi propio guindo, las imágenes declaradas como background-image en una CSS no son cacheadas por IE. </summary><link rel='related' href='http://erik.eae.net/archives/2007/02/26/13.13.48/' title='IE no cachea los background-image&apos;s'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5426122748349047387/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5426122748349047387' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5426122748349047387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5426122748349047387'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/12/ie-no-cachea-los-background-images.html' title='IE no cachea los background-image&apos;s'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6687002073951522500</id><published>2007-12-13T01:39:00.000+01:00</published><updated>2007-12-13T02:05:24.370+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='acts_as_list'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Tuneando acts_as_list</title><summary type='text'>Tengo un modelo de datos con dos tablas as y bs. Por tanto, tengo los modelos a.rb y b.rb donde


class A &lt; ActiveRecord::Base
 has_many :bs, :dependent =&gt; :destroy
end

class B &lt; ActiveRecord::Base
 belongs_to :a
 acts_as_tree :order =&gt; 'position'
 acts_as_list :scope =&gt; a
end


Es decir, la tabla bs contiene los campos a_id, position y parent_id de forma que los registros de bs relacionados con</summary><link rel='related' href='http://macdiggs.com/index.php/2007/08/27/customizing-scope-in-acts_as_list/' title='Tuneando acts_as_list'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6687002073951522500/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6687002073951522500' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6687002073951522500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6687002073951522500'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/12/tuneando-actsaslist.html' title='Tuneando acts_as_list'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5475138949042683615</id><published>2007-11-29T02:38:00.001+01:00</published><updated>2007-11-29T02:56:26.238+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Curiosidad javascript o de cómo darte cuenta de que no lo haces bien</title><summary type='text'>Dos de la mañana y descubro que mi script, en determinadas ocasiones no va. Manejando strings con fechas y parseando el año, el mes y el día. Por alguna razón cuando mezclo el 8 con números inferiores la cosa no va. DEF CON DOS¡¡ Forro mi script de alerts y descubro que lo que yo creía que era un 8 en realidad no lo es. 
parseInt('01') =  1parseInt('02') = 2... parseInt('07') = 7parseInt('08') = </summary><link rel='related' href='http://darkavngr.blogspot.com/2007/07/problemas-con-parseint08-parseint09-de.html' title='Curiosidad javascript o de cómo darte cuenta de que no lo haces bien'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5475138949042683615/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5475138949042683615' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5475138949042683615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5475138949042683615'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/11/curiosidad-javascript-o-de-cmo-darte.html' title='Curiosidad javascript o de cómo darte cuenta de que no lo haces bien'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-3579599785161564714</id><published>2007-11-24T11:37:00.000+01:00</published><updated>2007-11-28T22:40:43.245+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='railsconference'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='opinión'/><title type='text'>Conferencia Rails II: reacciones</title><summary type='text'>Me pareció bastante infantil la reacción que algunas personas tuvieron ante las palabras de los representantes de SUN y Microsoft tanto en el debate sobre frameworks como en la mesa de empresas.

El mensaje principal de ambas empresas fue bastante claro: estamos haciendo esfuerzos porque las aplicaciones Ruby corran en nuestros entornos. Es cierto que cuando los ejecutivos de estas empresas </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/3579599785161564714/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=3579599785161564714' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3579599785161564714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/3579599785161564714'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/11/conferencia-rails-ii-reacciones.html' title='Conferencia Rails II: reacciones'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-5892674388769312011</id><published>2007-11-24T11:36:00.000+01:00</published><updated>2007-11-26T09:14:28.353+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='railsconference'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='opinión'/><title type='text'>Conferencia Rails I: tengo una noticia buena y otra mala</title><summary type='text'>El viernes pasado, según llegué a casa de la Conferencia Rails 2007, me preguntó mi chica que cómo había ido la cosa. Al mismo tiempo me pasó a mi hijo pequeño con un pañal limpio y un biberón para que me reincorporase a mis labores de hogar, con lo que intenté resumir.

'Ha habido cosas buenas y cosas no tan buenas', le dije. 'Primero las no tan buenas', dijo ella.

Las menos buenas fueron, en </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/5892674388769312011/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=5892674388769312011' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5892674388769312011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/5892674388769312011'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/11/conferencia-rails-i-tengo-una-noticia.html' title='Conferencia Rails I: tengo una noticia buena y otra mala'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6251322859176123174</id><published>2007-11-13T15:03:00.000+01:00</published><updated>2007-11-13T17:44:36.712+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='texthelper'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='cycle'/><title type='text'>Cycle</title><summary type='text'>Hasta ayer, sólo había visto la llamada a cycle que hace ajax-scaffold para alternar el color de las filas de una tabla. Sin embargo, cuando necesité alternar dos tipos de elementos y resetear los dos ciclos independientemente, tuve que leer la documentación de TextHelper

En resumen: podemos llamar a la helper pasando como último parámetro una Hash donde damos un nombre al objeto Cycle que </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6251322859176123174/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6251322859176123174' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6251322859176123174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6251322859176123174'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/11/cycle.html' title='Cycle'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-4241321902939994831</id><published>2007-11-08T00:44:00.000+01:00</published><updated>2007-11-08T00:59:05.962+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simo'/><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Ruby on Rails en el SIMO?</title><summary type='text'>Ayer me comentó mi amigo Javi que había participado en esta conferencia dentro de las conferencias del SIMO 2007. En ella se habló de distintos frameworks de desarrollo sobre distintos lenguajes y entornos (Drupal, Zend, RoR, .NET...). Por lo que me ha contado, poca chicha y poca limoná.

También ayer hubo un monográfico sobre Ruby on Rails en el que participó Agustín. Veremos qué cuenta al </summary><link rel='related' href='http://formatinternet.wordpress.com/' title='Ruby on Rails en el SIMO?'/><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/4241321902939994831/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=4241321902939994831' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4241321902939994831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/4241321902939994831'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/11/ruby-on-rails-en-el-simo.html' title='Ruby on Rails en el SIMO?'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1721814588789878703</id><published>2007-11-02T09:20:00.000+01:00</published><updated>2007-11-02T09:51:08.791+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='soap4r'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Un poco más de SOAP - cabecera de seguridad</title><summary type='text'>En un acceso por Web Service he tenido que utilizar una cabecera de seguridad. Para crear los nodos previstos por el estándar WSSE he tenido que hacer lo siguiente:


driver = ClassThatXtendsSOAPRPCDriver.new
sh = SOAP::SOAPHeader.new
sec = SOAP::SOAPElement.new('wsse:Security')
sec.add(SOAP::SOAPElement.new('wsse:UsernameToken'))
sec['wsse:UsernameToken'].add(SOAP::SOAPElement.new('wsse:Username</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1721814588789878703/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1721814588789878703' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1721814588789878703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1721814588789878703'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/11/un-poco-ms-de-soap-cabecera-de.html' title='Un poco más de SOAP - cabecera de seguridad'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-1427430395649002725</id><published>2007-10-26T15:39:00.000+02:00</published><updated>2007-10-26T15:52:10.939+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firewatir'/><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='railsconference'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='rest-open-uri'/><category scheme='http://www.blogger.com/atom/ns#' term='mechanize'/><title type='text'>Que viene, que viene.. uh¡ uh¡</title><summary type='text'>Queda menos de un mes para la Conferencia Rails 2007 de Madrid y hace ya una semana que se ha cerrado la lista de ponencias. Voy a tener problemas para elegir en algunos casos.

Voy a tener que ir afeitado porque veo amigos y conocidos entre los ponentes: Javier Ramírez, Xavi Noria, Alberto Romero y Agustín Cuenca compartirán sus cositas con todos nosotros.

Suerte para todos¡

Esta semana hemos </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/1427430395649002725/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=1427430395649002725' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1427430395649002725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/1427430395649002725'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/10/que-viene-que-viene-uh-uh.html' title='Que viene, que viene.. uh¡ uh¡'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2637126733525105594</id><published>2007-10-17T10:39:00.000+02:00</published><updated>2007-10-17T11:01:59.482+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='firewatir'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Firewatir revisited (y lo que te rondaré morena)</title><summary type='text'>Algunos detalles interesantes sobre el uso de Firewatir:

Con la última versión de la gema y de la extensión de Firefox no es necesario arrancar éste con firefox.exe -jssh.No he conseguido que funcione en oculto. Watir es, en general, mucho más rápido en modo oculto y pensé que Firewatir también lo sería. Por tanto, hasta ahora su ejecución me resulta lenta. Lo que sí se puede hacer es minimizar </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2637126733525105594/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2637126733525105594' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2637126733525105594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2637126733525105594'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/10/firewatir-revisited-y-lo-que-te-rondar.html' title='Firewatir revisited (y lo que te rondaré morena)'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-6447665951385687460</id><published>2007-10-16T12:38:00.000+02:00</published><updated>2007-10-17T17:12:13.851+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='conferencia rails madrid'/><category scheme='http://www.blogger.com/atom/ns#' term='time format'/><category scheme='http://www.blogger.com/atom/ns#' term='railsconference'/><category scheme='http://www.blogger.com/atom/ns#' term='útil'/><title type='text'>A tiro hecho (I)</title><summary type='text'>La mitad de las veces que busco en google información sobre ruby busco las mismas cosas, las que soy incapaz de memorizar dado mi estado neuronal. Una de ellas es ésta: el formateo de Time, Date y DateTime.

Los que más uso, extaído del link...

%d - Day of the month (01..31)
%H - Hour of the day, 24-hour clock (00..23)
%m - Month of the year (01..12)
%M - Minute of the hour (00..59)
%S - Second </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/6447665951385687460/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=6447665951385687460' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6447665951385687460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/6447665951385687460'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/10/tiro-hecho-i.html' title='A tiro hecho (I)'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-2845610724045438578</id><published>2007-10-14T23:14:00.000+02:00</published><updated>2007-10-14T23:32:15.904+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='firewatir'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><title type='text'>Firewatir sobre Windows</title><summary type='text'>Después de darme de cabezazos contra un servidor y no poder terminar un crawler ni con rest-open-uri ni con mechanize, he terminado por programarlo sobre firewatir.

El punto de mayor información sobre fire watir es éste.

Y después de instalar la extensión de Firefox, instalar la gema FireWatir, lo y arrancar firefox con firefox.exe -jssh el código es muy sencillo:


require 'firewatir'
include </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/2845610724045438578/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=2845610724045438578' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2845610724045438578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/2845610724045438578'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/10/firewatir-sobre-windows.html' title='Firewatir sobre Windows'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-7995215096412269523</id><published>2007-10-04T16:15:00.000+02:00</published><updated>2007-11-02T11:10:39.870+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='xsd'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='soap4r'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='wsdl'/><title type='text'>SOAP hasta en la SOPA</title><summary type='text'>Madre del amor¡

Llevo tres días intentando desentrañar cómo acceder a un Web Service que no tiene descubrimiento por wsdl. Lo único que tenía era unos xsd medio decentes (y digo medio decentes porque xsd2ruby cascaba al ejecutarlo contra ellos) y unos fuentes java que se supone que funcionan. Además, el acceso se realiza sin SOAP action.

Después de intentar emular al script wsdl2ruby y generar </summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/7995215096412269523/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=7995215096412269523' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7995215096412269523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/7995215096412269523'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/10/soap-hasta-en-la-sopa.html' title='SOAP hasta en la SOPA'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8304374638405283496.post-8303638069477939268</id><published>2007-09-14T16:43:00.000+02:00</published><updated>2007-09-14T16:47:54.829+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='ado'/><category scheme='http://www.blogger.com/atom/ns#' term='odbc'/><category scheme='http://www.blogger.com/atom/ns#' term='extension de clases'/><category scheme='http://www.blogger.com/atom/ns#' term='rubyonrails'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlserver'/><title type='text'>Memory leaks re-revisited</title><summary type='text'>De nuevo, mejorando lo que hay.

La extensión de Time mucho mejor así:

class Time
  def method_missing(method_name, *args)
    cadena = self.strftime('%Y/%m/%d')
    return cadena.send(method_name, *args)
  end
end

Gracias Javi por tu ayuda.

Salud¡</summary><link rel='replies' type='application/atom+xml' href='http://danimataonrails.blogspot.com/feeds/8303638069477939268/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8304374638405283496&amp;postID=8303638069477939268' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8303638069477939268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8304374638405283496/posts/default/8303638069477939268'/><link rel='alternate' type='text/html' href='http://danimataonrails.blogspot.com/2007/09/memory-leaks-re-revisited.html' title='Memory leaks re-revisited'/><author><name>danimataonrails</name><uri>http://www.blogger.com/profile/01415384092221844817</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
