Showing posts with label Tip. Show all posts
Showing posts with label Tip. Show all posts

Correr Archivos Jar en Vista

Si algún programa que instalamos como puede ser Winrar u otro compresor de datos se “adueño” de la asociación de los archivos jar podemos regresar esta asociación con la JVM para que al dar doble click en un archivo jar lo abra.

Para poder hacer esto solo es necesario bajar y correr el programa JarFix.

http://www.jonelo.de/java/jarfix/

XNA usando fuentes personalizadas

Cuando creamos un juego una de las partes importantes es el texto a desplegar, pero no siempre queremos usar las fuentes que tenemos instaladas en el sistema. Para poder usar otras fuentes debemos seguir los siguientes pasos.

  1. Bajar la Fuente
  2. Installarla en el Sistema 
    1. EN Windows XP: Copiar la fuente y pegarla en /Windows/Fonts
  3. Crear o Abrir el proyecto
  4. Click derecho en directorio Content
    1. Add new Item
    2. Crear un SpriteFont
      1. Cambiar en <FontName> el nombre de la fuente que bajamos
      2. Cambiar las caracteristicas de la fuente (Optional)
  5. Ahora ya podemos usar la fuente en el juego

Nota: Si le enviamos a alguna persona el proyecto de xna, tmb se tiene que instalar la fuente en la otra computadora, pero para la distribución del juego no es necesaria.

Blogger nube de Etiquetas

Si nosotros quisieramos agregar a nuestro blog una nube de etiquetas como la que tenemos en este blog podemos hacer uso de este tutorial.

http://phy3blog.googlepages.com/Beta-Blogger-Label-Cloud.html [En inglés]

Este tutorial es para Blogger y debemos de tener habilitado los “Labels” en las sección Widgets.

Classpath en Java

Bueno, cuando estamos empezando a programar en Java, siempre existe la pregunta ¿Qué es el Classpath? Bueno, pues es muy simple, como lo dice su nombre es la ruta de clases que serán usadas para compilar y/o ejecutar un programa. Y su función es poder acceder a clases que están fuera del proyecto, cómo alguna librería externa, existen dos principales formas de configurar un Classpath, la 1era es configurar una variable de entorno del sistema de nombre CLASSPATH, y ahi ir colocando cada una de las carpetas o archivos *.jar que tenemos. La 2da es Compilar escribiendo directamente el Classpath como un parámetro al compilador de está forma:


javac -cp "RUTA" HolaMundo.java


Bueno ahora, para encontrar un uso, imaginemos que tenemos una libería de clases en la carpeta C:/lib, y ahí se encuentra la clase "Libreria"


public class Libreria {


public static void imprimir(String mensaje) {
System.out.println(mensaje);
}

}


Ahora imagina que la quieres usar en otro programa :

public class HolaMundo {

public static void main(String[] args) {

Libreria l = new Libreria();
l.imprimir("Hola Mundo");
}

}


Para poder compilar esto, tenemos que indicarle al compilador el CLASSPATH, que va a usar para compilar la clases y para eso hacemos esto:


javac -cp "C:\lib" HolaMundo.java


Y también para correr el programa se requiere especificar el classpath de la misma manera ya que de lo contrario obtendremos NoClassDefFoundError, porque no va a encontrar todas las clases necesarias. Entonces lo que hacemos es algo muy similar, excepto que está vez tenemos que indicar también la ruta en la que estamos y eso se hace con un "punto":


java -cp "C:\lib;." HolaMundo


Y con eso ya podemos corre nuestra clase.


Saludos!

Usar cuentas de correo como Live ID

Si tenemos alguna cuenta que no sea "@msn, @hotmail, @live" aún podemos tener acceso a los servicios que ahora todo el suite de Live nos proporciona. Para poder realizar esto tenemos que entrar a:

http://www.passport.net

Le damos click al link donde podemos agregar una cuenta existente, nos pedirá nuestros datos, los agregamos y LISTO! podemos empezar a usar nuestra cuenta de correo (ej. Gmail) para servicios Live.

NOTA: En la parte de la contraseña no es necesaria que sea la misma contraseña que usamos para accesar a nuestro mail, y recordemos que por lo mismo cambios a la contraseña del mail no harán cambios a la contraseña del Live ID

Compilar todo un paquete java

Cuando compilamos un archivo java tenemos que usar la herramienta "javac"

javac Archivo.java

El problema lo tenemos cuando tenemos los archivos en paquetes y tenemos que compilar estos paquetes. Podriamos compiilar archivo por archivo pero tendriamos problema si estos archivos tienen referencias entre ellos por lo que habría compilar en un orden especifico los archivos. Para solucionar esto nos tenemos que poner en el directorio "root" del proyecto y aplicar la herramienta javac:

javac paquete/subpaquete/*.java

Esto nos compilará todo los archivos en ese paquete sin problemas, sin tener que estar compilando uno por uno.

Singleton: Mejorado

El Singleton, que presenté en mi entrada anterior es la implementación más común de un Singleton, sin embargo aun tiene algunos defectos, entre ellos está es que si esa clase la hacemos serializable, en cada ejecución se crearían diferentes instancias del singleton y tendríamos que crear un método para proteger esto. Y también tenemos el problema de que se puede accesar al constructor privado utilizando el API Reflection. Entonces aquí tenemos una forma más elegante de crear un Singleton:







public enum Singleton {

INSTANCE;

public void doSomething() {

}

}





Y luego cuando lo quisieramos usar, lo único que tendríamos que hacer sería esto:




public class Principal {

public static void main(String[] args) {
Singleton.INSTANCE.doSomething();
}

}




Y con eso tenemos una mejor y más sencilla implementación de un Singleton que nos garantiza que siempre será una única instancia.
SaludoSS!



Referencias:

Blooch, J. Effective Java 2nd Edition

Borrar Archivos con Java

Para poder borrar archivos del disco duro, primero tenemos que realizar una clase File

java.io.File file = java.oi.File("String con la ruta");
file.delete();



Este método nos regresa un boolean si es que lo pudo borrar.

En caso de que necesitemos crear archivos temporales y que se borren cuando terminemos el programa, podemos hacer uso de otro método de la clase file.


java.io.File file = java.oi.File("String con la ruta");
file.deleteOnExit();



Este metodo es void, pues como no es instantaneo no puede garantizar el borrado del archivo. Los archivos se borraran cuando el programa que los llamó se cierre.

Apagar la computadora automáticamente (XP)

A veces nosotros necesitamos dejar la computadora prendida bajando algo o realizando alguna tarea, si nos tuvieramos que ir, nos gustaría poder apagarla automáticamente. Para realizar esto haremos uso de un commando que nos proporciona el sistema operativo.

Para usarlo tenemos que entrar a INICIO -> Ejecutar...

shutdown -s -f - t [tiempoEnSegundos]

Con este comando le decimos que apague la computadora y que si alguna aplicación no responde la finalice, además de asignar el tiempo en que queremos que se apague.