Publicidad:
Terra
La Coctelera

jQuery in Action terminado, ¿Ahora qué?

Durante las últimas tres semanas estuve leyendo el libro jQuery In Action de la editorial Manning durante esos maravillosos remansos de paz que son los trenes de cercanias. Aunque este libro esta basado en la versión 1.2 y actualmente jQuery se encuentra en su version 1.3.2 considero que es un muy buen punto de partida para empezar a trabajar con jQuery, ya que durante el libro se exponen multitud de ejemplos e incluso una introducción a JavaScript que también me ha enseñado multitud de cosas.

¿Por qué jQuery? Vale no es que yo tenga una gran experiencia con otros frameworks como pudiera ser Prototype, ni tampoco con el mismo lenguaje JavaScript; así esta atracción por jQuery se resume por lo que vi en los screencasts sobre paginación de Ryan Bates y también por el hecho de que un tal Yehuda Katz halla escrito este libro.

A partir de ahora siempre que me sea posible utilizare jQuery en las aplicaciones Rails que desarrolle, y sino pues a tirar de la siguiente estructura que evita que jQuery entre en conflicto con otras librerias que estemos usando:

 (function($){
     cualquier cotenido javascript cuyo scope queremos protejer
 })(jQuery);
 

La ventaja de lo anterior es que dentro de dicha declaración podemos seguir utilizando el caracter $, caracter que identifica al framework jQuery en este caso. Y ahora un primer ejemplito que nos sirve para hacer submit por ajax de los campos del formulario que no esten en blanco:

 (function($){
    $("form").submit(function(event){
        var FormValues = {};
        $("form input[value]").each(function(){
             FormValues[$(this).attr("name")] = $(this).val();
        });
        $.post($("form").attr("action"), FormValues);
    });
 })(jQuery);
 

Y con esto hasta mañana a las ocho

Círculos con número de orden en la web

Bueno me ha tocado crear unos bullets circulares con número de orden para incrustar en una página web y he comprado lo realmente sencillo que es llevarlo acabo con css3 a través del siguiente artículo "How to Make Circles in CSS".

Mi impletación final fue con el siguiente código css:

 div.search-circle {
   float:left;
   height: 2em;
   width: 2em;
   -webkit-border-radius: 1em;
   -moz-border-radius: 1em;
   background-color: #FF7900; margin: auto; 
   margin-right:1em;
 }
 div.search-circle p{
 color:#FFF;
 text-align: center;
 margin-bottom: .1em;
 font-weight:bold;
 font-size:1.5em;
 }
 

Y el siguiente fragmento de HTML:

<div class="search-circle"><p>1</p></div>  

Moraleja al querer contentar a los usuarios de IE nos toca crear una imagen con GIMP (por ejemplo) del tamaño y color que necesitemos y utilizar el siguiente código css:

 div.search-ballon {
   float:left;
   background:url(/images/layout/ballon.gif) no-repeat;
   width:26px;
   height:26px;
   margin-right:1em;
 }
 div.search-ballon p{
   color:#FFF;
   text-align: center;
   margin-bottom: .1em;
   font-weight:bold;
   font-size:1.5em;
 }
 

Y el código html en este caso sería el siguiente:

Al final nos vemos obligados a aprender a utilizar un editor de imágenes, que seguro que mal no nos viene.

Git Stash

Actualmente estoy repasando un nuevo libro sobre Git, el Git Community Book. De momento lo que he leído me parece bien planteado y ayuda mucho a introducirnos en el uso de git.

Yo llevo un tiempo utilizando Git, pero nunca había leído nada sobre git-stash y me parece que este comando tiene una gran utilidad. El workflow en el que he visto que es de gran utilidad este comando sería el siguiente:

Creamos una nueva rama para añadir nueva funcionalidad:

git checkout -b new_feature

Trabajamos en esta rama, añadiendo la nueva funcionalidad y en un momento dado nos damos cuenta de algo que debemos arreglar en la rama estable. Pero aún no queremos hacer un commit en la rama ni perder los cambios que llevamos hechos para la nueva funcionalidad. Aquí entra git-stash

git stash "trabajando en new_feature"

Esto almacenará los cambios realizados para la nueva funcionalidad y nos permitirá entrar en la rama estable, realizar los cambios que detectamos y aplicarlos. Para regresar al estado anterior de la rama anterior simplemente hacemos lo siguiente:

git stash apply

Y podemos seguir trabajando para completar nuestra nueva funcionalidad.

Algunos enlaces sobre git-stash:

Notificaciones en Ubuntu con Mumbles: Autotest

Siguiendo con mi adaptación completa a Ubuntu y con la búsqueda de las herramientas útiles para el desarrollo en Rails, me he encontrado con los dos siguientes post:

En el primero de ellos se habla de la instalación de Mumbles, herramienta de envio de notificaciones al escritorio similar a Growl y que se puede descargar aquí. Orientado al uso del sistema de notificaciones con Autotest. Esto permite que mientras desarrollamos, los test se ejecuten de forma automática y así se nos notificará si hemos roto algo o todo los tests siguen pasando.

En el segundo post se comenta el sistema de notificaciones para utilizarlo en Ubuntu para tareas comunes.

PD: Comenzando a utilizar Vim más seriamente

Mi Portátil Dell Studio 15" con remolinos rubiriscentes, eing

Han pasado ya bastantes días y no había contado algo que no será de utilidad a nadie, pero espero que puede ser de interes a alguna persona.

Hace un par de semanas recibí mi nuevo portátil, concretamente un Dell Studio 15" con Blue Ray. Estuve barajando alguna otra opción un Mac Book Pro 15" pero su coste echa para atrás, prácticamente el doble de lo que me ha costado el Dell Studio, aunque realmente chulo. No opté por un Mac Book de 13" bastante más asequible de precio, porque quería un portátil lo suficientemente grande para trabajar con el a diario con Rails y no necesitaba transportarlo conmigo diariamente. Bueno de momento no a salido de mi casa desde que llegó de Polonia.

¿Por qué Dell en lugar de otras marcas como HP, Sony, Samsung, Toshiba?, principalmente por el hecho de que mi antiguo PC un Dell Dimension 8600, no me ha causado ningún problema relevante y puedo asegurar que le he dado mucho uso durante prácticamente 7 años. Tuve problemas con el lector de DVD y la grabadora de DVD, pero al estar en garantía no hubo problemas para el cambio de cada dispositivo por otro nuevo. El servicio técnico fue a mi casa a recoger el dispositivo estropeado y a llevarme el nuevo dispositivo. Supongo que habrá gente que reproche el hecho de que un producto falle en el período de garantía, pero no volvieron a fallar.

Después de las tan sabidas malas opiniones sobre Windows Vista, tenía claro que trabajaría con Ubuntu. Mantengo Vista y Media Direct y la partición del Recovery de Vista por si me hacen falta, en 85 GB del total de 320 GB del portátil. El resto esta dividido en una partición de intercambio (swap), la instalación de ubuntu, y una partición para la home y por último aproximadamente 100 GB en una partición de Datos, fundamentalmente para el contenido multimedia en NTFS y que será accesible también desde Ubuntu. Creo que espacio de sobra, sino para eso están los discos duros externos.

Cómo a partir de ahora dejaré de trabajar con una máquina virtual Ubuntu sobre un Windows XP para desarrollar en Rails, para pasar a trabajar directamente sobre Ubuntu he decidido añadir en Ubuntu el software equivalente o el mismo en algunos casos de los que venía utilizando en Windows XP, como Picassa, VLC, Songbird, etc... y estoy seguro que descubriré nuevo software que será de mucha utilizada. En Vista solo realizare las instalaciones necesarias o que no tengan su equivalente en Ubuntu, que no creo que sean muchas, aunque siempre podré utilizar Wine. También espero que el rendimiento mejore, ya que mi antiguo PC andaba algo justo al ejecutar una máquina virtual.

En cuanto al rendimiento del portátil por ahora estoy completamente satisfecho, sobre todo con el rendimiento de Ubuntu. Como nota decir que la instalación original de Vista empleaba 1:28 segundos en arrancar hasta que mostraba la pantalla de logon, por solo 28 segundos para el caso de Ubuntu.

Ahora para mejorar mi productividad con Rails, me queda pasarme a utilizar Vim y dejar de lado el ratón y mi buen amigo NetBeans con el que empece mi andadura con Rails.

Adios a mi antiguo PC

Hola a mi nuevo portátil

PD: hay que hacerle unas fotillos al cacharrito y explicar los remolinos rubiriscentes

He aquí los remolinos rubiriscentes

Comparte tu escritorio en http://www.deskography.org

MTBROUTly - Red Social de Bikers con Tog

Durante los últimos meses he estado desarrollando lo que pretende ser una red social para bikers, muy al estilo de la web moterus.

Esta red social la estoy desarrollando con Rails, valiendome de Tog. Tog es una plataforma open source que permite añadir características de las redes sociales mediante diferentes módulos (plugins) a una aplicación Rails.

Sin embargo, dado el gran interés que ha surgido en mi interior hacia una metodología BDD, he decido empezar de cero el desarrollo. Mi interes comercial es prácticamente nulo, más sabiendo el poco tiempo que puedo dedicar al desarrollo orientandome hacia un interés puramente didáctico y disfrutar durante el mismo.

Para resumir, los conocimientos que pretendo adquirir con este desarrollo son:

  • Metodología BDD. Fundamentada en la utilización de Rspec con un mixin de Shoulda (framework que venía utilizando ligeramente) para los test de modelos y de controladores. Y por otro lado la utilización de Cucumber+Webrat+(Selenium)? para los tests de aceptación que pretendo que guien el desarrollo. En lo que se describe como un Outside-In y con Red-Green-Refactor iterativo. Utilización de mocks y stubs (rspec) y Factory_girl como sustitución de las fixtures.
  • Utilización de jQuery o Prototype. La integración con GoogleMaps que tenía desarrollada se fundamentaba en Prototype, daré una oportunidad a la convivencia de ambos frameworks para orientarme espero que con fortuna a jQuery.

El comenzar el desarrollo de nuevo me sirve sobre todo para definir unos requisitos de aceptación (stories, features) que he descubierto con el anterior desarrollo y que me permitan la creación de una aplicación orientada solo y exclusivamente a lo que quiero de ella, orientando todos mis esfuerzos a causas bien definidas y que me ahorren quebraderos de cabeza.

GMail con nuevo upload de ficheros

Bueno parece mentira pero las pequeñas cosas siempre ayudan. GMail ha incorporado una barra de progreso para los ficheros adjuntos. Ahora ya dejamos de ver el still working para tener más información del progresso a la hora de adjuntar ficheros.

NOTA: De nuevo en otro monólogo vuelvo a salir al escenario, cosa que ya se va convirtiendo en algo habitual. Ayer con el "Cómico Suicida", dentro de poco contaré más detalles

Factory_Girl 1.2

Nueva release de esta librería para la creación de Factorías en Rails. Voy a tener que poner en práctica los añadidos que ha incorporado como: en la creación de secuencias, la herencia de factorías, creación de stubs. Todo esto ayudará a tener un código de test más DRY.

Por otro lado me parece muy curioso que hallan incluido sabores en la sintaxis a la hora de utilizarlo, así se acercan a un mayor número de personas acostumbras a dichas sintaxis.

Para más informacion: