Rspec – Cucumber ¿cuando usar uno o el otro?

Quizás muchos conocen Behaviour Driven Development (BDD) ha sido una evolución fantástica al desarrollo de software guiado por pruebas.

Dentro de esta evolución pasan cosas interesante porque son guiadas por mentes humanas :-) , hay varias gemas para practicar BDD dentro de Ruby, solo me enfocare en las menos peores o conocidas como populares, me refiero a Rspec y Cucumber.

Cuando estaba empezando con BDD me surgió una duda y fue básicamente la que inspiro escribir este post ¿cuando y donde usar Rspec y Cucumber? sí, puede ser punto de confusión, a mí me paso. Esto porque note que ambas podían hacer los mismo y técnicamente es así, Rspec es capaz de hacer lo que hace con Cucumber, no tan así Cucumber.

Para quienes tienen experiencia haciendo pruebas unitarias (TDD) lo que se busca con esta técnica es hacer pruebas isoladas, es decir probamos pequeños fragmentos de código separados del contexto de la aplicación ya que solo queremos probar el orden lógico de éste.

Con BDD pasa lo contrario esta describe el uso de la aplicación, por ejemplo “haciendo click aquí, espero que pase esto o aquello”, queremos probar el comportamiento. Lo que mas me gusta de Cucumber es que este sirve para recolectar las historias de usuarios.

Entonces, mi verdad la que vengo usando (espero que alguien pueda comentar alguna otra alternativa) Rspec lo uso para hacer TDD, aquí pruebo a nivel de Model y Controller (View no testeo) apuntando hacia a Rails y Cucumber para BDD básicamente comportamiento.

Para quienes esten interesado en explorar mas sobre este tema, puedo recomendar leer The RSpec Book: Behaviour-Driven Development with RSpec, Cucumber, and Friends es un muy buen libro para arrancar usando BDD.

Desarrollo , , , ,
Deja un comentario

Autocomplete de Git en Mac OSX

Me gusta mucho la instalación de Git en ambientes Unix y Linux, esto porque viene con el script git-completion.bash activado o bien es muy simple de activar (en mi experiencia siempre viene activo). No pasa lo mismo en Mac si usas los paquetes pre-instalado como XCode, es decir solo tendrás disponible en tu path el comando git.

Solo tener ese comando a mi me aburre, porque no dejo nada a mi memoria, por otra parte soy bastante vago y me resulta bastante cómodo usar tab y que sugiera el comando o bien lo autocomplete.

Bien, la forma de hacer funcionar el git-completion.bash en Mac es bastante simple, basta con seguir los siguientes pasos.

Primero: descargar el archivo git-completion.bash.

curl https://github.com/git/git/raw/master/contrib/completion/git-completion.bash -OL

Segundo: ubicar ese archivo donde mas te guste, en mi caso lo ubique en el home y le agregue un punto al principio del archivo para que este oculto y así no moleste, el archivo lo llame .git-completion.bash.

Tercero: Anadir al ~/.profile or ~/.bash_profile lo siguiente.

source ~/.git-completion.bash

Por ultimo solo queda reiniciar la consola y veremos que nuestro git puede autocompletar.

Desarrollo , , , , ,
Deja un comentario

Cambiar el nombre de una aplicación en Ruby on Rails

Me ha pasado que a veces quiero cambiar el nombre de una aplicación que ya tiene unas cuantas líneas de código, hay quieren prefieren crear una nueva y hacer un copy&paste de lo que tenían hecho, yo busque con mi amigo incondicional google y di con una solución, imagine que no era el único que le había pasado esto por la mente.

Es un hack bastante simple en bash que nos ayuda a realizar esta tarea y en un par de pasos tenemos aplicación con nuevo nombre.

Paso 1: vemos cuales son los archivos que tienen el nombre de la aplicación que deseamos cambiar.

$ grep -ir old_name *

La salida del comando anterior nos muestra todos los archivos que están ligado con el nombre de la aplicación, este paso es solo para estar seguro de lo que vamos hacer siempre es bueno verificar cambios de este tipo antes de ejecutarlos de manera irreversible.

Paso 2: aplicamos el nuevo nombre a nuestra aplicación

$ replace old_app new_app — `grep -r old_app * | cut -d ‘:’ -f 1`

Al ejecutar la anterior línea desde la consola se aplican los cambios en los archivos que se mostraron en el paso 1.

Bastante simple y puede ser útil en alguna ocasión.

Desarrollo , , , ,
Deja un comentario

¿Hacker que hackean o una confusión con los crackers?

imagen de blackfeathers

Desde hace unos días en Venezuela se esta dando una especie de debate acerca de los hackers generada a raíz de una cuentas de twitter de varias personalidades del ambiente político y periodístico del país.

Este tema se ha vuelto recurrente entre amigos que conocen poco del tema y ahora asocian todo aquel informático como un hacker, esto sin duda es gracias a la mala información que promueven los medios de comunicación, donde invitan a un “experto” del área  y comete errores graves de comunicación que dan pena ajena.

Esta controversia es histórica, no es algo que se haya descubierto en Venezuela, solo que en este momento esta sobre la discusión diaria del país y según conociendo los medios de comunicación seguirán desinformando acerca del tema.

Para los encargados de comunicar un hacker es aquella persona super dotada, sobre natural, babalao, con amigos en otras galaxias capaz de «romper sistemas de seguridad».

El tema fundamental de todo esto es que se confunde Hacker con Craker, seguro dirán ¿cual es la diferencia?

De las pocas cosas que puedo citar de RMS es «On Hacking 2002» en la cual deja muy claro la definición de hacker y cracker.

Resulta difícil dar con una definición sencilla de algo tan variado como es el hacking, pero creo que o que la mayor parte de los hackers tienen en común es la pasión lúdica, la inteligencia y la voluntad e exploración. Podemos decir que el hacking significa explorar los límites de lo posible con un espíritu e sagacidad imaginativa. Cualquier actividad en la que se despliegue esta sagacidad tiene «valor» para el hacker. Puedes ayudar a subsanar este malentendido haciendo una simple distinción entre la intromisión en la seguridad de un sistema y las actividades de hacking, empleando el término cracking para la primera. Quienes se dedican a esto se denominan crackers. Es posible que un cracker sea también hacker, ajedrecista, o golfista; pero la mayoría no lo son

Hacker como me dijo una vez Eduardo Mendez (@tarantindigital) es cuestión de actitud, todos somos hacker :-)

La imagen es de el DefCon uno de los eventos mas grandes de hacking a nivel mundial.

Opinión , ,
Deja un comentario

Fulcrum para mentes ágiles

Para nadie es un secreto la cantidad de recursos que se encuentran en la web para promover equipos de trabajos ágiles, refiriéndome mas hacia la administración de proyectos pensando en la filosofía ágil, pasa que muchas de esas opciones tienen un costo de membrecía asociado cosa que me parece muy lógica. Sin embargo aún hay otras opciones que nos permiten tener en nuestros servidores esas aplicaciones que nos hacen ágiles al momento de llevar un proyecto, me refiero específicamente a Fulscrum una aplicación que me entere gracias @zeitan y la cual luego de mirar sus características no dude en hacer un git clone para probarla desde mi ambiente de trabajo. Sigue leyendo

aplicaciones, Desarrollo , , , , , ,
Deja un comentario