Thinking on hiring me?

Please read

Fernando Guillén

a Freelance Web Developer

cabecera decorativa

software development as an artistic expression

Archive for Diciembre, 2008

Sábado, Diciembre 27th, 2008

Shell: script para borrar todos los delete pendientes con GIT

Tengo la mala costumbre de borrar los ficheros desde mi editor de texto así que cuando vuelvo a consola y hago un ‘git status‘ me salen un montón de ficheros borrados y no encuentro el comando de ‘git‘ para decirle: cárgatelos todos en el próximo commit.

Así que me he hecho este script para decirle exactamente eso:

$ git rm `git status | grep "deleted" | cut -f 2 -d ":" | cut -d " " -f 5`

Cuidadín con él eh :).. a ver si no va a estar bien..

Actualización: como dice Juanma en los comentarios podemos hacerlo mucho más elegantemente con:

git add -u
Domingo, Diciembre 21st, 2008

Ruby on Rails: script para volver a la anterior sintaxis de tests

El nuevo generador de scaffold de RoR 2.2 no se lleva bien con Texmate, la nueva sintaxis para tests impide que usemos el utilísimo atajo de teclado ‘ctrl + shift + R‘ para ejecutar solamente uno de los tests de todo el fichero.

Este script convierte las líneas tipo:

test "should get new" do

en:

def test_should_get_new

Seguro que esto le espanta a más de uno, pero mientras Texmate no soporte la nueva sintaxis yo tampoco la soporto :). El script es la primera versión que me ha salido, se aceptan mejoras.

El script:

if ARGV[0].nil?
  puts "Indica la ruta al fichero" 
  exit
end
 
if not File.exists?(ARGV[0])
  puts "Fichero no encontrado: #{ARGV[0]}" 
  exit
end
 
result = ""
 
File.open(ARGV[0]).read.each do |line|
  if line =~ /^\s*test ".*" do$/
    line.gsub!( /\"\sdo\s*/, "" )
    line.gsub!( /"/, "" )
    line.gsub!( /^\s*/, "" )
    line.gsub!( /\s/, "_" )
    line.gsub!( /^/, "def ")
 
    line = "  " + line + "\n"
  end
 
  result << line
end
 
File.new( ARGV[0], "w+" ).puts( result )
Lunes, Diciembre 15th, 2008

Yo escribo porque me da la gana…

Yo escribo porque me da la gana, pero publico por dinero.

Nabokov, que no tengo ni idea de quién es pero lo que dice es una gran doctrina que se puede extrapolar a un buen número de profesiones que parten de la vocación y el entusiasmo, como es algunas veces el desarrollo web, dónde como resultado de que nos gusta lo que hacemos parece ser que no deberíamos cobrar por hacerlo.

Lunes, Diciembre 15th, 2008

Ruby on Rails: sin olvidarse de las foreign keys

Esto de Ruby on Rails es tan agradable y ligero que se nos olvidan hasta las buenas costrumbres en la mesa.

¿Cuántas veces te has ocupado de la intregridad referencial desde que trabajas con Rails?, si eres como yo, hasta ahora ninguna. Y es que Rails ofrece un potente sistema de validación que impide que llegue a la base de datos ningún modelo que no cumpla las reglas que has definido.

Pero aún así, es muy peligroso no indicarle a la BD unas mínimas normas de estructura para que no empecemos a tener registros huérfanos o que hagan referencia a otros registros no existentes.

Hoy comenzaba un nuevo proyecto y cuando he acabado las migraciones me he puesto a investigar a ver que encontraba para poder crear claves foráneas en mis tablas, y he encontrado a la gente de RedHill que tienen bastantes plugins interesantes, y entre ellos el RedHillonRails Core, que permite lo que estamos buscando y alguna cosilla más. También tienen el Foreign Key Migrations que extiende del core pero que lo que aporta no me gustaba ya que obliga (permite) indicar los índices directamente donde declaras el campo. Yo prefiero indicar todos los índices en una migración todos juntos.

El plugin es muy sencillo, lo instalas y ya puedes hacer cosas como esta:

add_foreign_key( :payments, :user_id, :users, :id, :name => :fk_payment_user )

Funciona a la perfección.

Viernes, Diciembre 12th, 2008

Fichado por LaCoctelera

Hace ya bastantes meses que debería haber escrito este post pero la entrada ha sido tan suave que casi no encuentro el punto de inflexión, cuando verdaderamente ya podía decir que estaba dentro.

Creo que el día D fué cuando Blat me dió acceso a la rama master de la LaCoctelera y me dijo “¡commitea sin miedo!“.

Hace ya como 7 u 8 meses desde aquella reunión de primer contacto en los vagones de la línea 1 del metro de Madrid entre Álvaro, Blat y un servidor. Los inicios fueron lentos, limitados por mi inexperiencia y por mi preferencia a no tener mucha responsabilidad, acordamos que le dedicaría un día a la semana a la implementación de módulos cercanos a LaCoctelera pero que no formaban parte del core. Incluso manejaba mi propio repositorio.

Hace ya tres meses que hemos ampliado mi participación en este equipo, ahora sí que hay cachitos en el corazón de este magnífico proyecto Ruby on Rails que han sido desarrollados con estos deditos.

Desde que me llegó el flechazo con Rails hace ya exactamente un año uno de mis objetivos profesionales era formar parte del equipo de LaCoctelera, para mí el buque insignea de la flota Rails hispana, ahora ese sueño se ha cumplido, mi agradecimiento a Álvaro por la confianza que ha depositado en mí y a Blat por convertirse en mi mentor :).

a Freelance Web Developer is proudly powered by WordPress
Entries (RSS) and Comments (RSS).

Creative Commons License
Fernando Guillen's blog by Fernando Guillen is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.