10.08.10

Diario de guerra: Illegal mix of collations

Posted in Diario de guerra at 10:53 am by mawi

Haciendo una query tal que así en navicat me encontre con un error de lo mas irritante

select j.nombre,j.apellidos,u.name from datos_usuario j join usuarios s u on u.name=concat(j.nombre,” ” ,j.apellidos)

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_spanish_ci,IMPLICIT) for operation ‘=’

Parece que al concatenar con el espacio vacío se cambia el encoding o yo que se que paja mental de mysql. Solucion: forzar el encoding del espacio

select j.nombre,j.apellidos,u.name from datos_usuario j join usuarios s u on u.name=concat(j.nombre,” ” COLLATE utf8_general_ci ,j.apellidos)

Migra que te migra!

09.21.10

Diario de guerra: Normalizar cadenas en ruby

Posted in Diario de guerra at 11:58 am by mawi

Me acabo de encontrar que un webmaster gracioso le dio por añadir tildes en las urls de una web que ando scrapeando y son del rollo http://dominio/index.php?cadena=COPÓN. Al hacer un

Nokogiri::HTML(open(url))

me salta un pedazo de invalid url.

Solucion:

Googleando me encontre en http://stackoverflow.com/questions/522715/removing-accents-diacritics-from-string-while-preserving-other-special-chars-tri y di con la solución

url.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n, ”).to_s

Que te pilla todos los caracteres y sustituye por su version “buena”. No entiendo mucho de expresiones regulares, pero funciona y tiene style :D

09.20.10

Diario de guerra: exception_notification en rails 2.3

Posted in Diario de guerra at 10:08 am by mawi

Como no me quedé muy agusto con lo del caché, empiezo por esto ^^

Exception Notification (http://github.com/rails/exception_notification) es una gema que te manda al correo los errores que de la aplicación. Muy útil a la vez que puñetera. La rama master esta preparada para rails 3 así que podía instalarlo con el metodo normal. Rebuscando por la ayuda me encontre el modo de instalar un rama especifica como plugin, en este caso:

./script/plugin install http://github.com/rails/exception_notification.git -r 2-3-stable

Lo siguiente es seguir la documentación y añadir al application_controller.rb

class ApplicationController < ActionController::Base
include ExceptionNotification::Notifiable

end

Y en el enviroment.rb

ExceptionNotification::Notifier.exception_recipients = %w(joe@schmoe.com bill@schmoe.com)

Done! Ya tenemos el plugin puteandonos avisandonos cada vez que pasa algo

Happy coding!

09.15.10

Nueva sección “Diario de guerra”

Posted in Diario de guerra at 11:33 pm by mawi

Ale, pues me decidí a darle una continuidad a esto con algo que hago todos los días, enfrentarme a marrones :) . Invariablemente aparecen problemas, cosas que nunca viste, fantasmas, … y hay que lidiar con ello. Pues de eso se trata, dar notas de como se solucionó un problema determinado. Sin pretensiones de ser algo muy técnico y extenso. Solo problema+causa+solución. Y por supuesto, en Rails :P

Mañana… cachear una determinada zona de una página (a ver si lo dejo fino ya)