martes, 29 de noviembre de 2011

This para jQuery UI y JavaScript

Buenas. Veréis, llevo ya unos días refactorizando un código javascript de esos infumables a POO para que el código sea muchisimo más mantenible. Hasta aquí ningún problema, pero el problema viene cuando quieres hacer uso de jQuery dentro de tus clases.

El problema es el siguiente: el objeto this cuando estas dentro de una función jQuery no es el mismo que cuando estas dentro de tu función definida para tu clase. Para evitar que uno machaque al otro, deberemos previamente guardar una referencia a dicha variable. Esto se consigue con el metodo data() que llevan muchas funcionalidades de jQuery UI. Para ejemplo un boton:
function MyClass() {
  this.myField = 1;
}

MyClass.prototype.MyMethod = function () {
  $("lista").sortable({
    start: function(event, ui) {
      alert("No es lo mismo this:" + $(this) + " que this:" + self.myField);
    }
  }).data("self", this);
}

viernes, 25 de noviembre de 2011

Caracter copyright en expresión regular

Hoy, he necesitado buscar el símbolo de marras en una expresión regular y he aprendido que este si es algo raro, basta con indicar su equivalente hexadecimal en la expresión regular

En mi caso el código es: \0xA9

Edito: Para javascript hay que quitar el cero.

jueves, 24 de noviembre de 2011

Era de cajón

Ayer me estuve dando de ostias con jQuery e IE y para colmo hoy descubro que si no colocas un DOCTYPE correcto para IE este hace lo que le da la gana. A sido ponerlo y ¡Voilà! de repente la lentitud en los scripts, los bugs de css y alguna cosa más han desaparecido.

En fin niños, ya sabéis, lo primero es poner el DOCTYPE si queréis evitaros dolores de cabeza.

miércoles, 23 de noviembre de 2011

replaceAll en JavaScript

Hoy resulta que he descubierto que la función replace de javascript no funciona como un espera que funciona. Resulta que si la usamos en plan busca esta cadena y reemplaza, solo reemplazará la primera ocurrencia de dicha cadena, pero no las siguientes.

Para evitar esto, tenemos dos formas.
- La cutre: Hacer un bucle hasta que se canse de encontrar ocurriencias y las hayamos sustituido todas.
- La elegante: Usar una expresión regular con el modificador g. Para muestra un ejemplo:
var str_salida = str.replace(/busca_esto/g, "reemplaza_por_esto");

Cada día le cojo más "cariño" a javascript :D

Hola mundo para windows phone 7.1

Hace unas entradas puse un enlace sobre tutoriales para la nueva interfaz del windows 8. Pues ahora es el turno de la versión móvil.

http://www.genbetadev.com/desarrollo-aplicaciones-moviles/un-hola-mundo-en-windows-phone-71-mango

martes, 22 de noviembre de 2011

Nota mental: jQuery + table

No intentar nunca hacer un sortable donde los items son tags table

Os volveréis locos debido al errático comportamiento de jQuery con dicho elemento.

Aun así, si teneis ganas de fliparlo con ese tema os dejo dos webs que quizas os echen un cable:
http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/
http://setiabud.blogspot.com/2009/06/jquery-ui-sortable-with-table.html

Triángulos con CSS

Si alguna vez habeis necesitado pintar un triangulo y no teneis una imagen a mano o simplemente pasais de complicaros la vida, con CSS se puede hacer, ¿no me creeis? pues comprobarlo por vosotros mismos.

http://css-tricks.com/snippets/css/css-triangle/

lunes, 14 de noviembre de 2011

Drivers ATI para tajetas mobility legacy

Ayer me encontré con el problema de instalar los drivers ATI a mi viejo portatil DELL que lleva una gráfica Radeon Mobility X1300.

El problema reside básicamente en que ATI no ofrece soporte oficial a las tarjetas de portatil y que el fabricante solo tenia drivers para windows Vista x32 y yo tengo un Windows 7 x64.

Bueno, la cuestión es que a partir de cierta versión de los drivers Catalyst estos no estan soportados por dichas tarjetas gráficas.

Yo he probado con la versión 9.3 y han funcionado, ignoro si una versión superior funcionarán.

Al lio, te descargas dichos drivers para Vista x64.

Luego, te descargas una aplicación para modificar el instalador y que permita la instalación de drivers para tarjetas Mobility. Dicho programa lo encontraremos en: http://www.hardwareheaven.com/modtool.php

Para usar dicho programa deberemos deshabilitar el UAC y ejecutarlo como administradores.

Una vez tenemos instalado el anterior programa. Primero debemos iniciar la instalación de los drivers para que los descomprima en una carpeta del disco. Luego abortamos la instalación y arrancamos el Mobility Modder. Pulsamos en buscar y buscamos la carpeta con el nombre del driver y la versión. Seguidamente pulsamos modificar.

Si todo ha ido bien, lo cerramos y ejecutamos el setup.exe que hay dentro de la carpeta que le hemos indicado a Mobility Modder previamente.

Windows 7 alertará de que se intenta instalar un driver no firmado/soportado. Le decimos que continúe y reiniciamos.

Listo, ya tenemos los drivers operativos en windows 7.

Desarrollo en Windows 8

Hoy revisando mis blogs de interes he descubierto una web con muy buenos ejemplos de como programar para la nueva interfaz de windows 8

Aqui os dejo el enlace: http://robertoluis.wordpress.com/w8/

jueves, 10 de noviembre de 2011

Como darse de alta en una lista de correo

Hoy, por necesidades laborales e investigadoras he tenido que darme de alta en la lista de correo de tomcat. Como esto es nuevo para mi, dejare un pasito a pasito de como lo he hecho.

Para empezar vamos a la página de Apache Tomcat donde indican la lista de correo.http://tomcat.apache.org/lists.html#tomcat-users

El sistema funciona de la siguiente forma, cada cuenta de correo perteneciente a ese dominio es un comando que interpreta el servidor de la lista de correos. Así que para darnos de alta enviaremos un email en blanco y sin asunto a la siguiente dirección de correo
users-digest-subscribe@tomcat.apache.org
La diferencia entre la suscripción digester de la normal es que la digester te envia un resumen de los mensajes.

Una vez recibamos la respuesta nos pedirá que enviemos un email de confirmacion igual que antes a la una dirección que nos indican. Una vez enviada recibiremos un email de Bienvenida.

Lo primero que haremos será leernos la FAQ y la info enviando sendos emails a:
users-digest-info@tomcat.apache.org
users-digest-faq@tomcat.apache.org

Para terminar, si queremos enviar una consulta la enviaremos a:
users@tomcat.apache.org
Siempre especificando claramente la versión de tomcat y adjuntando los ficheros de configuración si es posible.

miércoles, 9 de noviembre de 2011

Como arreglar el Empathy para que funcione con cuentas hotmail en ubuntu 11.10

A dia de hoy y desde hace un mes, el empathy dejo de funcionar tras actualizar a ubuntu 11.10.

Hoy ya me he cansado esperando el parche y buscando he encontrado con la siguiente solución: http://askubuntu.com/questions/76948/problems-connecting-msn-with-empathy

Los pasos a seguir son sencillos. Abrimos una terminal y tecleamos:
gedit /usr/share/pyshared/papyon/service/description/AB/__init__.py
Y en la linea 23 más o menos pone algo asi:
url = "http://contacts.msn.com/abservice/abservice.asmx"
lo sustituimos por lo siguiente:
url = "http://local-bay.contacts.msn.com/abservice/abservice.asmx"

Guardamos, reiniciamos empathy y listo, a volar!

lunes, 7 de noviembre de 2011

Formulario con nombres de campo idénticos

Cuantas veces nos hemos tropezado con que queremos enviar un array de datos en un formulario al servidor y no sabemos como.

Tenemos dos opciones:

  • Si se tratan de checkbox usar como name del campo "nombre_del_campo[]". Importante los corchetes.
  • Otra forma, valida para JSP/Servlets (no lo he probado con otros lenguajes). Poner el mismo name a todos y luego recoger el valor con request.getParameterValues("nombre_campo").
Si tenéis alguna aportación no dudéis en hacerla