lunes, 27 de diciembre de 2010

Cuidado con el Wii Party

Pues sí, el juego en cuestión actualiza la versión de la Wii sin previo aviso de manera que te la deja en la versión 4.3E (para el continente europeo) y hace que sea más complicado instalar el HomeBrew para poderle instalar nuestras propias aplicaciones.

No es imposible pero actualmente, la única manera posible de instalarlo es con un juego original (el LEGO Indiana Jones por ejemplo) que si no tenemos, tendremos que conseguir, bien comprándolo o mejor pidiéndolo a algún amigo / conocido o alquilándolo en una tienda de videojuegos.

Pues sólo dejo esto como aviso a navegantes que a mi ya me ha pasado al no tener ni idea del WiiMundo

lunes, 20 de diciembre de 2010

Deshabilitar Foreign Key Checks en MySQL

En algunas ocasiones las foreign keys de nuestras tablas nos pueden dar mucho la lata cuando estamos en un entorno de desarrollo, borrando y añadiendo filas constantemente, restaurando tablas... ya que nos saltará error al incumplirse las restricciones que estos índices imponen.

Bien, pues en MySQL es fácil deshabilitar este chequeo y que no nos de error, para ello:

set foreign_key_checks = 0; 
 
Realizamos nuestras acciones
 
set foreign_key_checks = 1; 

Métodos para el Drag and Drop en Java

Una de las cosas que se ha cambiado en la implementación de Java 6 es la manera en que se realizan los drag and drops (DnD) entre los componentes. No tengo ni idea de como funcionaba antes, pero por lo que he leído y me han contado, era bastante más complicado que como se puede hacer ahora.

Lo primero que se debe saber es que todo gira en torno a la clase TransferHandler. Muchos de los componentes de Swing ya vienen con un "Transfer Handler" por defecto, que en muchos casos será suficiente para nuestros propósitos.

Para comenzar a utilizar un TransferHandler en nuestro componente, existen tres métodos que deberemos emplear:

A continuación, existen dos tipos de métodos: los métodos para exportar datos y los métodos para importar datos.

Los primeros se utilizan para exportar los datos desde un componente cuando se comienza un gesto de arrastrar (drag) o cuando se copia o corta desde el componente con el que estamos trabajando. Estos métodos son:
  • getSourceActions(JComponent) - indicará qué acciones se permiten con los elementos del componente: copiar, mover o ambos. Este método se llamará automáticamente al comienzo del drag o arrastre.
  • createTransferable(JComponent) - este es el método más importante de todos ya que es el encargado de preparar los datos que se desean exportar: todo un objeto propio, sólo un String con el nombre, el id... Devuelve un objeto de tipo Transferable
  • exportDone(JComponent, Transferable, int) - este método se llama una vez que se ha terminado el drag and drop y en él se deben implementar las acciones necesarias después de la exportación (por ejemplo, después de mover un elemento, se debe eliminar de su ubicación original).

A continuación, los métodos empleados para importar datos cuando se suelta un objeto sobre un componente o cuando se pega desde el portapapeles:
  • canImport(TransferHandler.TransferSupport) - este método se llama de manera constante mientras se está haciendo un drag and drop y nos indica si el componente que se encuentra debajo del cursor del ratón aceptará los datos (return true) o si de lo contrario los rechazará (return false).
  • importData(TransferHandler.TransferSupport) - este método se invoca en el momento que se suelta sobre un componente terminando el drag and drop. Realiza las acciones necesarias para insertar los datos desde el origen hasta este punto y devuelve true en caso de una importación satisfactoria y false en caso contrario.

Por último, es necesario indicar la función de la clase TransferSupport, una clase interna de TransferHandler y que permite que se realice la transferencia de los datos entre el origen y el destino.Esta clase nos ofrece información acerca de la transferencia como el componente destino, la acción que se va a realizar (copiar o mover), los datos que se están transfiriendo, si se soporta ciertos tipos de datos, la localización exacta del componente destino...

Con estos métodos se puede realizar drag and drop en java, la lógica a aplicar en cada uno de ellos depende de nuestra aplicación en cuestión.

Tutorial completo

jueves, 9 de diciembre de 2010

Instalar Java de Sun en Ubuntu 10.04

Siguiendo con el tema del servidor, al que tengo un poco abandonado, hoy me ha tocado instalar el JRE de java para poder ejecutar aplicaciones en él. Cómo otras veces ya había tenido problemas con los paquetes open que vienen en los repositorios por defecto de Ubuntu, he decidido no jugarmela e instalar directamente los paquetes de Sun.

Para ello, desde la consola ejecutamos:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"

Para a continuación, actualizar e instalar java:
sudo apt-get update
sudo apt-get install sun-java6-jre

y LISTO!

Visualmente también lo podemos hacer abriendo Synaptic: System-> Administration-> Synaptic Package Manager
Una vez dentro, en Settings-> Repositories-> Other Software, activamos el repositorio arriba indicado (http://archive.canonical.com/ lucid partner) y si no está, lo añadimos. Salimos de esta ventana y hacemos un "Reload" del Synaptic y buscamos el paquete que queremos instalar. Igual de sencillo: el JRE de java instalado en nuestro servidor para poder ejecutar otras aplicaciones.

Espero sea útil.

viernes, 3 de diciembre de 2010

Ya tengo cable para el iPhone

Por fin llegó ayer ya el cable del iPhone que compré por internet. Aunque pensaba que también vendría en el paquete el adaptador para poder enchufar el iPhone a la corriente, no ha sido así y tan solo viene el cable de datos... el artículo tiene una descripción un tanto confusa no? He pensado en llamarles para quejarme, porque por ese precio bien te podrían traer lo otro, más cuando en DealExtreme lo venden por $1,60 sin gastos de envío...

Pero bueno, al fin lo tengo que es lo que importa... si escribo o no a los de la tienda ya lo veré, pero ahora lo que interesa es comenzar con la liberación del cacharro para poder cambiarle la SIM... a ver qué tal se da, seguiré contando

miércoles, 1 de diciembre de 2010

Tiempo de ejecucion en PHP

Para saber el tiempo que tarda en ejecutar una función / script / tarea en PHP y ver dónde se produce el mayor gasto de tiempo, se puede usar:

<!-- put this at the top of the page -->
<?php
   $mtime = microtime();
   $mtime = explode(" ",$mtime);
   $mtime = $mtime[1] + $mtime[0];
   $starttime = $mtime;
;?>

<!-- put other code and html in here -->


<!-- put this code at the bottom of the page -->
<?php
   $mtime = microtime();
   $mtime = explode(" ",$mtime);
   $mtime = $mtime[1] + $mtime[0];
   $endtime = $mtime;
   $totaltime = ($endtime - $starttime);
   echo "This page was created in ".$totaltime." seconds";
;?>



Sacado de http://www.developerfusion.com/code/2058/determine-execution-time-in-php/