Archive for the ‘Tips’ Category

Autotest, RSpec y Leopard

Domingo, Febrero 8th, 2009

Ligero apunte para los que arrancado autotest, en Leopard, y no hacen más que ver test/unit y no sus preciados test conrSpec, esto tienen que añadir a sus .bashrc o .bash_profile:

export RSPEC=true
export AUTOTEST=true

sudo -u y du

Lunes, Septiembre 29th, 2008

Notas para no olvidar:

  • Con sudo -u usuario puedo hacer la acción como dicho usuario. Antés creaba una carpeta con sudo y luego cambiaba con chown el owner (root) de la carpeta. Rollo.
  • Con du podemos saber cuando ocupa un directorio y con for i in *; do du -sh $i; done el espacio que ocupan todas las directorios de mi situación actual.

Gracias Edu.

Actualización: Parece que existe una forma más elegante de hacer esto último:

du -hc --max-depth=1

Muchas gracias nordri, cosas como estas hacen que merezcan dedicar tiempo al blog : -)

Rails & Breadcrumbs

Sábado, Agosto 9th, 2008

Después de muchos proyectos y aplicar muchas formas para resolver el asunto del Breadcrumb (las “migas de pan” que suele aparecer en la parte superior para facilitar la navegación), me decidí en busca de alguna alma gemela – no voy muy sobrado de tiempo – que hubiese dado una solución óptima.

Y vaya que si lo encontre: http://szeryf.wordpress.com/2008/06/13/easy-and-flexible-breadcrumbs-for-rails/

Aún no la he llevado al límite pero me está pareciendo de lo más práctico y sencillo. Gracias szery.

Pequeño hack traductor

Lunes, Diciembre 31st, 2007

Como buen programador vago™ y lector, que remedio, de la buena y extensa documentación shakesperiana, me dió, después de unas cuantas consultas al pasable traductor de Google, por hacerme un pequeño hack para disponer de dicha funcionalidad un poco más “a mano”.

require 'rubygems'
require 'mechanize'

unless ARGV.length > 0
  puts "Usage: #{$0} word"
  exit
end

agent = WWW::Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get('http://www.google.com/language_tools?hl=es')

translator = page.forms[1]
translator.text = "#{ARGV[0]}"
result = agent.submit(translator)
puts result.search("//input[@name='gtrans']").first.attributes["value"]

No es más que una pequeña adaptación de otro código que busca definiciones de palabras, con el que he descubierto el brutal potencial que tiene la gema WWW::Mechanize junto HPricot.

¡ Feliz año nuevo !

Metodos más “legibles” con NOT

Lunes, Octubre 8th, 2007

Esta mañana, poniendome al día con la blogesfera, dí con este pequeño y genial hack para hacer nuestros metodos algo más semanticos:

class Object
  define_method :not do
    Not.new(self)
  end

  class Not
    private *instance_methods.select { |m| m !~ /(^__|^\W|^binding$)/ }

    def initialize(subject)
      @subject = subject
    end

    def method_missing(sym, *args, &blk)
      !@subject.send(sym,*args,&blk)
    end
  end
end

Y bueno, los ejemplos más sencillos no pueden ser:

  usuario.not.visible?
  usuario.not.admin?

Me encanta ^_^!

Fuente: http://blog.jayfields.com/2007/08/ruby-adding-not-method-for-readability.html