a ver cuanto dura xD
una pasada xD

Hoy verás este texto en decenas de blogs. Si estás de acuerdo con él, reprodúcelo donde consideres oportuno.
Ante la previsible aprobación de la polémica “Ley Sinde”, los periodistas, bloggers, usuarios, profesionales y creadores de Internet seguimos manifestando –como hicimos en el Manifiesto de 2 de Diciembre de 2009- nuestra firme oposición a una norma que incluye modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet.
En principio no parece de recibo que un Gobierno en funciones adopte esta decisión en su último o uno de sus últimos Consejos de Ministros. Sería doblemente grave que se confirmaran las presiones ejercidas por EEUU, a través de su embajada en Madrid, como revelaron los cables de Wikileaks.
En todo caso insistimos en estos razonamientos:
Seguro que hace años, cuando las cadenas por mail eran lo más, recibisteis alguna con un nombre parecido. Era esa que decía que en tu casa marcabas el 0 antes de llamar a los móviles y cosas normales de la oficina que quedaban raras en casa. Yo me reí, pensando que jamás me podría pasar eso porque separo muy bien trabajo de ocio…
Pero hoy… Os pongo en antecedentes primero.
En mi despacho, la luz va por sensor de presencia (una idea muy buena del que lo pensó… grrrr) y lo que suele pasar a menudo es que me pongo a hacer cosas en el pc y como no me muevo se apaga la luz. En ese preciso instante empieza el ritual de encendido de luces:
Paso 1, Movimiento silleril: Provocar el movimiento de la silla con un insinuante y atractivo movimiento pélvico, consiguiendo que la silla rote unos 127º sobre su eje vertical. Dicho movimiento se repite pero cambiando el sentido de la rotación para lograr un movimiento hipnótico, y porque no? simpático, repitiendo el proceso hasta que uno se canse o ya crea que es ridículo (suele pasar lo segundo antes). Este paso no suele funcionar siempre, su efectividad es de un escaso 3%, pero te permite no desconectar de la faena.
Paso 2, Alzamiento de extremidades y saludo emotivo: Este paso goza efectividad superior a su predecesor (75%) pero aun así no es infalible. El procedimiento es sencillo, se alza una extremidad (se recomienda un brazo) y se saluda a lo “el amor de mi vida esta yéndose en ese tren”
Paso 3.1, Movimiento silleril (Parte 2 – variante 1): Consta simplemente de lanzar la silla de tu compañero, es muy recomendable que sea de ruedas y que te pille lo suficientemente cerca como para que no tengas que moverte de tu sitio (rompería la magia). Que tu compañero esté sentado es un punto que da lo mismo, si está son risas, si no, menos fuerza que haces.
Paso 3.2, Movimiento silleril (Parte 2 – variante 2): Si por alguna de aquellas no puedes lanzar la silla de tu compañero tienes que lanzar la tuya, puedes probar a intentar el paso 1 pero, en vez de rotar en la vertical, hay que realizar un movimiento de traslación sobre la perpendicular de tu monitor, consiguiendo así que la silla se aleje de la mesa. El punto máximo al que hay que llegar con la silla viene dado de una forma experimental, en mi caso es agarrado a la mesa y con mis brazos extendidos al máximo (agarrarse a la mesa luego hace más sencillo el retorno a la posición inicial). También puedes lanzarte al grito de “Wiiiiiiiiiiiiiiiii”.
Paso 4, Mirada y amenaza: se han dado casos (0.33% de las veces) en los que ni aun realizando los 3 pasos anteriores se ha encendido la luz. Algo que nunca falla, es girar bruscamente hacia el detector, apuntarle con el dedo y mirarle desafiantemente proyectándole todo tu odio.
Una vez explicado… A que no adivináis lo que he hecho en el “despacho/trastero/donde tengo el pc” hasta que me he dado cuenta de que no estaba en mi despacho y me he levantado a encender la luz.
Ayer en el curro me encontré con este error de mysql:
#1093 - You can't specify target table 'categories' for update in FROM clause
Estaba trabajando con la base de datos del oscommerce, quería borrar las categorías que no tuvieran ni categorías ni productos en su interior.
La sql es algo asi:
Delete from categories where
(categories_id not in (select distinct(categories_id) from products_to_categories)
and (categories_id not in (select distinct(parent_id) from categories)
Se que seria mas efectivo con EXISTS pero ese no es el tema ahora.
Es una condición simple, la primera parte evalúa si tiene algún producto y la segunda si tiene algún hijo (mas bien si alguna la tiene como padre), si la conviertes en select aparecen todos los productos que no tienen ni categorias hijas ni productos en su interior.
Pero MySql devuelve el error #1093.
Y que significa ese error?
Ese error significa que, en MySql, no puedes borrar ni editar una tabla si en las subconsultas consultas esa tabla. En la última linea de la documentación de MySql sobre el update dice:
Currently, you cannot update a table and select from the same table in a subquery.
En mi consulta para consultar si tiene categorias hijas consulto la misma tabla que quiero borrar, y como se comprenderá, no quiero borrar sólo las categorías sin productos porque tengo categorías contenedor que solo tienen categorías hijas…
La solución más elegante que encontré fue crearme una tabla auxiliar:
CREATE TABLE categorias_a_borrar (
id INT
);
y rellenarla con los ids de las categorias que queria borrar:
Insert into categorias_a_borrar
select categories_id from categories where
(categories_id not in
(select distinct(categories_id) from products_to_categories)
and (categories_id not in (select distinct(parent_id) from categories)
y después borrar las categorías:
Delete from categories where
categories_id in (select id from categories_a_borrar)
Espero que le ahorre algo de tiempo a alguien :D