Día internacional de los zurdos!
Publicado por blaxter - 13 Ago 2006 a las 18:07Hoy, 13 de agosto, es el día internacional de los zurdos (entre los cuales me incluyo :D).

En este post hay mucha información, aunque algunos datos chocantes podrían ser estos:
- Los zurdos somos entre el 10%-13% de la población
- Siempre se ha considerado ser zurdo como algo malo, en la edad media eran perseguidos y en España, hasta hace pocas decadas, no permitían a los niños escribir con la izquierda
- Personas zurdas famosas: Benjamin Franklin, Napoleon Bonaparte, Leonardo da Vinci, Douglas Adams (autor de Guia del autoestopista galáctico), Woody Allen, Robert DeNiro, Pelé o Shigeru Miyamoto.
- Personas zurdas feas: George Bush, Osama bin Laden, Jack el destripador
Una lista personajes famosos zurdos en wikipedia
Ración de tests inutiles
Publicado por blaxter - 13 Ago 2006 a las 13:26No me gustan los test estos cutres, pero a la vez está chulo hacerlos xD, es una relación amor-odio. Así que como los he visto aquí, los he hecho a ver que salía (también hay que decir que el ingles de las preguntas es un poco raro...).

Which File Extension are You?

Which OS are You?
jaja, soy un rpm! dios! yo quería que me saliese un deb, unfair!. Curiosa la última respuesta del test de OS, que claramente marcas, "como me salga winME alguien saldrá herido", o algo así xD. Y tu que eres? Windows XP y .doc?
Piratas del caribe 2
Publicado por blaxter - 12 Ago 2006 a las 15:29La primera película no fue una obra de arte, pero si fue una película que recuerdas como divertida, entretenida y original. Quizás porque, extrañamente, el tema de los piratas no ha sido un tema muy tratado en el cine, y la actuación de Johnny Deep fue explendida, interpretando a Jack Sparrow, sumado a la aportación de sensualidad de Keira :D.
Tres años despues se estrena esta segunda parte, en la cual se pone de manifiesto la famosa afirmación de "segundas partes, nunca fueron buenas". Una película con un hilo argumental patético, donde en el primer tercio de la película parece que estás frente a un "peliculon" y luego debates entre dormir un poco o suplicar para que llegue el final de la intragable película, la cual dura casi dos horas y media, para que al final, no se resuelva nada del pobre hilo argumental creado por guionistas, que posiblemente les falte parte del cerebro lo cual derive en estos argumentos incompletos y vacios, donde ves como van pasando sucesos, así como por casualidad, y no paran de salir escenas del cansino del Orlando Bloom, aunque al menos los efectos especiales están bastante logrados.
En defintiva una pelicula realmente floja, donde lo único que se salva son algunas gracias de Jack Sparrow (Johnny Deep), efectos especiales muy buenos y la fabulosa Keira (aunque sale muy poco :().
¿Mi consejo?, no gastes dinero en ver está película, y si tienes mucho tiempo libre y/o adoras a Keira como la mitad de los humanos (es decir, eres tio), te la ves en screener como mucho. (Un 5 le he puesto en filmaffinity y porque sale Keria, que sino...).
Por cierto, habrá tercera parte para el próximo año, aunque la peli sea mala, si da ganancias, hay que hacer más partes, no? Sino que se lo pregunten a Destino final.
Entrevista a Mark Shuttleworth
Publicado por blaxter - 10 Ago 2006 a las 16:27Mark Shuttleworth, multimillonario creado de ubuntu. En este video emitido en la cadena británica Channel 4 se hace un entrevista a Mark y se describe un poco el proyecto Ubuntu. Son solo 4 minutos, y describe todo sin entrar en aspectos técnicos, veelo hombre!
Sonido de videos flash en Ubuntu Dapper
Publicado por blaxter - 09 Ago 2006 a las 23:32Despues de actualizar hoy algunos paquetes (de los cuales diría que ninguno era relacionado con el sonido, pero no estoy seguro...) en mi Ubuntu Dapper, el sonido de los videos flash en Firefox ha dejado de funcionar O_O, en verdad funcionaba, pero cuando ponías un mp3 u otra cosa ya moría para siempre. Buscando un poco he encontrado en este blog la solución :), simplemente:
$ sudo aptitude install alsa-oss
$ sudo gedit /etc/firefox/firefoxrc
En ese fichero modificamos la linea:
FIREFOX_DSP="none"
convirtiendola en esta:
FIREFOX_DSP="aoss"
Alsa-oss es un wrapper (envoltorio) del sistema de sonido oss (que será el usado por flash supongo) para que funcione bajo el sistema de sonido Alsa (que es el que usa ubuntu dapper por defecto). Gracias a esto se permite sonido en los videos de flash aunque estés escuchando mp3 u otros sonidos. El porqué iba anteriormente? Ni puta idea xD.
Capas con imagen de fondo en Java
Publicado por blaxter - 09 Ago 2006 a las 14:42Java es un lenguaje muy potente, pero hacer interfaces es algo que puede llegar a ser tan divertido como una patada en los cojones xD. El editor de Netbeans es muy potente, pero como usa un layout propio (auque puedes usar otros, los estandar de la API de Java) luego para exportarlo y empaquetarlo todo en un jar, debo de ser muy tonto que no se hacerlo, luego tenemos Eclipse, un IDE que es el puro desorden personificado, por mucho que intento ponerme con él, pierdo más tiempo mirando donde están las cosas que trabajando, es decir, toca hacerse las GUI's a mano.
Una de las cosas que más he hecho y más veces he perdido el tiempo, es crear una capa/ventana/cuadrado/ComoQuierasLlamarlo con una imagen de fondo. Para hacer esta trivialidad, en Java tenemos que hacer la de dios para lograrlo, lo que viene a ser usar un JPanel y sobrecargar el método de pintado en el cual pintaremos toda la superficie con una textura creada de la imagen. Vamos que es una puta mierda. Este post me lo escribo para mi mismo :P, para que otras veces venga aquí y haga copy paste y deje de tener que estar siempre mirando código viejo. Let's go!
Demo 1 - Ventanita simple con un fondo:
- Recursos:
- -GUI.java: la "aplicación" verdadera
- -images.java: Clase estática para crear texturas de una imagen
- -fondo.png: Fondo, puede ser más pequeño que la ventana y de esa forma se repetirá. Acabo de hacer una imagén de 300x10px donde la mitad superior es negra y la mitad inferior es blanca. Adivinas el efecto que surgirá?, yeah, una cebra xD.
GUI.java
import javax.swing.*;
import java.net.URL;
public class GUI extends JFrame
{
private static GUI ventanaPrincipal; // Ventana principal
private JPanel panel; // Capa sobre la que se trabajará
private final URL imgFondo = this.getClass().getResource("fondo.png");
private static TexturePaint fondo; // Textura con la que se pintará el fondo
public static void main(String [] arg)
{ // lanzamos aplicación
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run()
{
lanzarAplicacion();
}
});
}
/**
* construye los objetos requeridos para el funcionamiento de la aplicacion
*/
private static void lanzarAplicacion()
{
// se crea la ventana
ventanaPrincipal = new GUI("Demo guays");
// y la mostramos!
ventanaPrincipal.setVisible(true);
}
private GUI(String Titulo)
{
super(Titulo);
panel = new JPanel()
{
private TexturePaint fondo = images.carga(imgFondo, this);
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
Dimension d = getSize();
g2d.setPaint(fondo);
g2d.fill(new Rectangle(0,0,d.width,d.height));
}
};
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(300, 300));
setSize(300,300);
getContentPane().add(panel);
}
}
Images.java: Es un clase estática de la cual nos interesa el método carga(nombre_imagen, componente), el cual nos dará el tan preciado TexturePaint, la textura con la cual pintaremos felizmente. (nota: par de funciones no son mias, las saqué de un tutorial de java2d)
import javax.swing.ImageIcon;
import java.awt.image.*;
import java.net.URL;
public class images
{
private static TexturePaint cargaTextura(URL imageFile, Component c)
{
TexturePaint imageDev;
try
{
Image img = (new ImageIcon(imageFile)).getImage();
BufferedImage image = getBufferedImage(img , c);
imageDev = new TexturePaint(image,
new Rectangle(0, 0, image.getWidth(), image.getHeight())
);
}catch(Exception e){
imageDev = null;
System.out.println(e.getMessage());
}
return imageDev;
}
private static BufferedImage getBufferedImage(Image image, Component c)
{
waitForImage(image, c);
BufferedImage bufferedImage = new BufferedImage(
image.getWidth(c), image.getHeight(c), BufferedImage.TYPE_INT_RGB
);
Graphics2D g2d = bufferedImage.createGraphics();
g2d.drawImage(image, 0, 0, c);
return(bufferedImage);
}
private static boolean waitForImage(Image image, Component c)
{
MediaTracker tracker = new MediaTracker(c);
tracker.addImage(image, 0);
try{
tracker.waitForAll();
}catch(InterruptedException ie){}
return(!tracker.isErrorAny());
}
/**
* Crea un textura de una imagen para un componente concreto
* @param s imagen a cargar
* @param c componente sobre el cual pintaremos
*/
public static TexturePaint carga(URL s, Component c)
{
TexturePaint image;
image = cargaTextura(s, c);
if (image == null)
System.err.println("OMG! No puedo leer la imagen " + s);
return image;
}
}
Con esto obtenemos:

Demo 2 - JPanelBackground: ya que estamos, hacemos un nuevo JPanel nuevo, no?
JPanelBackground
import java.awt.*;
import java.net.URL;
public class JPanelBackground extends JPanel
{
private TexturePaint fondo;
public JPanelBackground(URL imgFondo)
{
fondo = images.carga(imgFondo, this);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
Dimension d = getSize();
g2d.setPaint(fondo);
g2d.fill(new Rectangle(0,0,d.width,d.height));
}
}
Con esto GUI.java cambiará a ser más simple y limpio, concretamente los cambios serían:
public class GUI extends JFrame
{
(...)
private JPanelBackground panel; // Capa sobre la que se trabajará
(...)
private GUI(String Titulo)
{
super(Titulo);
panel = new JPanelBackground(imgFondo);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
(...)
}
}
Todos los códigos fuentes están en este archivo
Unos comentarios finales, todo esto nos permite, posteriormente, crear nuevos elementos sobre este JPanel que estarán por encima de la imagen que hemos pintado, si nos da igual esto (es decir, que no vamos a poner más cosas por encima), se podría hacer con un JLabel usando su método setIcon(new ImageIcon("imagen.png")), otra forma que muchos dirán sería usar un Canvas y su método setBackground, el cual es una ponzoña, pues al usarlo, el Canvas estará disparando eventos de repintado aparte de los usuales de su método Paint(), es decir, que con un Canvas habría que hacer lo que hemos hecho arriba con JPanel.
Esta obra está bajo una
licencia de Creative Commons.
Este blog funciona gracias a WordPress
con el theme GimpStyle
diseñado por Horacio Bella y adaptado por un servidor.
Feed entradas