Link Log

Una manera de perder el tiempo…

Reloj en Java

with 13 comments

Actualización: http://www.israelsc.mx/programacion/java/reloj-en-java/

Bueno, después de mucho mucho tiempo, aquí traigo de nuevo otro programa en Java, este programa solo es un simple reloj analógico (ya saben, esos que tienen manecillas).

Bueno, acá el reloj resultante:

Reloj en Java

Reloj en Java

Acá el código:

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;

public class RelojProyecto extends JFrame{
    public static void main(String[] args) {
        RelojProyecto app = new RelojProyecto();
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    Reloj Cara;

    public RelojProyecto() {
	super( "Reloj Proyecto" );
	setVisible( true );
	setResizable( false );
        Container content = this.getContentPane();
        content.setLayout(new BorderLayout());
        Cara = new Reloj();
        content.add(Cara, BorderLayout.CENTER);
        this.pack();

        Cara.start();
    }
}

class Reloj extends JPanel {

    private int horas;
    private int minutos;
    private int segundos;

    private static final int   espacio = 10;
    private static final float dosPi = (float)(2.0 * Math.PI);
    private static final float tresPi = (float)(3.0 * Math.PI);
    private static final float rad = (float)(Math.PI / 30.0);

    private int tamano;
    private int xCentro;
    private int yCentro;
    private BufferedImage muestra;
    private javax.swing.Timer t;

    public Reloj() {
        this.setPreferredSize(new Dimension(300,300));
        t = new javax.swing.Timer(1000,
              new ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                      update();
                  }
              });
    }

    public void update() {
        this.repaint();
    }

    public void start() {
        t.start();
    }
    public void stop() {
        t.stop();
    }
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        int ancho = getWidth();
        int alto = getHeight();
        tamano = ((ancho < alto) ? ancho : alto) - 2*espacio;
        xCentro = tamano/2 + espacio;
        yCentro = tamano/2 + espacio;

        if (muestra == null
                || muestra.getWidth() != ancho
                || muestra.getHeight() != alto) {

            muestra = (BufferedImage)(this.createImage(ancho, alto));
            Graphics2D gc = muestra.createGraphics();
            gc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
            caraReloj(gc);
        }

        Calendar now = Calendar.getInstance();
        horas   = now.get(Calendar.HOUR);
        minutos = now.get(Calendar.MINUTE);
        segundos = now.get(Calendar.SECOND); 

        g2.drawImage(muestra, null, 0, 0);

        Manecillas(g);
    }

    private void caraReloj(Graphics g) {

        g.setColor(new Color(209, 234, 255));
        g.fillOval(espacio, espacio, tamano, tamano);
        g.setColor(Color.black);
        g.drawOval(espacio, espacio, tamano, tamano);

        for (int seg = 0; seg<60; seg++) {
            int inicio;
            if (seg%5 == 0) {
                inicio = tamano/2-10;
            } else {
                inicio = tamano/2-5;
            }
            diseno(g, xCentro, yCentro, rad*seg, inicio , tamano/2);
        }
    }

        private void Manecillas(Graphics g) {
        int radioSegundero = tamano/2;
        int radioMinutero = radioSegundero * 3/4;
        int radioHora   = radioSegundero/2;

        float fsegundos = segundos;
        float anguloSegundero = tresPi - (rad * fsegundos);
        diseno(g, xCentro, yCentro, anguloSegundero, 0, radioSegundero);

        float fminutos = (float)(minutos + fsegundos/60.0);
        float anguloMinutero = tresPi - (rad * fminutos);
        diseno(g, xCentro, yCentro, anguloMinutero, 0, radioMinutero);

        float fhours = (float)(horas + fminutos/60.0);
        float anguloHora = tresPi - (5 * rad * fhours);
        diseno(g, xCentro, yCentro, anguloHora, 0, radioHora);

	Font font = new Font("Arial", Font.BOLD, 16);
	g.setFont(font);
	g.drawString( "12", 140, 40 );
	g.drawString( "1", 205, 55 );
	g.drawString( "2", 245, 100 );
	g.drawString( "3", 265, 155 );
	g.drawString( "4", 245, 210 );
	g.drawString( "5", 205, 255 );
	g.drawString( "6", 145, 270 );
	g.drawString( "7", 90, 255 );
	g.drawString( "8", 45, 210 );
	g.drawString( "9", 25, 155 );
	g.drawString( "10", 45, 100 );
	g.drawString( "11", 80, 55 );
	Font font1 = new Font("Arial", Font.BOLD, 12);
	g.setFont(font1);
	g.drawString( "RELOJ", 130, 80 );
	g.drawString( "QUARTZ", 125, 220 );
    }

    private void diseno(Graphics g, int x, int y, double angulo, int minRadius, int maxRadius) {
        float sine   = (float)Math.sin(angulo);
        float cosine = (float)Math.cos(angulo);

        int dxmin = (int)(minRadius * sine);
        int dymin = (int)(minRadius * cosine);

        int dxmax = (int)(maxRadius * sine);
        int dymax = (int)(maxRadius * cosine);
        g.drawLine( x+dxmin, y+dymin, x+dxmax, y+dymax);
    }
}
Advertisements

Written by Link X

May 18, 2009 at 9:09 pm

Posted in Java

Tagged with ,

Escritorio KDE 4

with one comment

En estos días que estoy de vacaciones y que no tengo nada que hacer… y no hay nada que hacer…
Me propuse probar dos distribuciones con la ultima tecnología. OpenSUSE 11.1 y Mandriva 2009.

En ambas el escritorio era KDE 4.1.3 (creo que openSUSE incluía cosas del 4.2), pues bien, ambas traen un muy buen aspecto visual, así que por eso no hay ningún problema.

Los problemas en ambas eran similares, ya que son por KDE 4.

Dolphin
Bueno, este se cae a cada rato y además es lento, sobretodo cuando se da click en algún icono y este se queda unos segundos pausado.

Amarok 2
Bueno, este se entiende que no sea igual que la versión 1.4.x, pero no trae soporte para reproductores (por lo menos no lo traían esas distribuciones), no me gusta la manera en que ahora se muestra la colección y faltan muchas cosas, aunque de seguro se agregaran poco a poco.

Gwenview
Es cierto que se ve mejor, pero la barra de miniaturas que aparece cuando se pone en pantalla completa debería de poder quitarse.
Además no se ven las animaciones de los gif.

K3B
La versión para KDE 4 aun no esta disponible.

Network Manager KDE
En openSUSE trae la de KDE 3, pero también esta disponible el de KDE 4, aunque este ultimo no conecta con las redes wifi.

Es cierto que KDE 4 es un escritorio prometedor y es de lo mejor gráficamente hablando, pero se debería de hacer mas revisiones para optimizar el código y resolver los problemas y ya después agregar innovaciones.

En este momento si se hablara de rivales, el principal rival de KDE 4 es KDE 3, ya que este ofrece un escritorio estable, altamente configurable pero sobretodo ya sumamente probado.

Written by Link X

December 27, 2008 at 4:33 am

Posted in Kde, Mandriva, openSuse

Código

with one comment

Para las personas que llegan aquí buscando código de algún tema en especifico (sobretodo código de Java), les informo que el código publicado en este blog funciona, solo que si lo copian directamente del navegador al editor puede tener problemas al copiarse, sobretodo con las comillas(“” ya que se copian como ¨¨), por lo que es recomendable escribir el código directamente al editor y después compilarlo, así no habrá problemas.

No creo que haya problemas, después de todo ya esta todo resuelto y solo es necesario que lo copien.

Aunque si hay algún problema o duda me lo pueden decir.

Written by Link X

November 27, 2008 at 1:14 am

Posted in General

Tagged with , , ,

Sony MemoryStick en Linux

leave a comment »

Desde que tengo la VAIO nunca pude hacer funcionar el lector de memory stick que viene, por lo que simplemente me limite a pasarle las cosas al teléfono por medio de USB, pero la espina quedo ahí, por ser lo primero que Linux no me reconoce…

Ya sabia que se estaba desarrollando para que sea compatible en Linux, pero nunca funciono, hasta hoy.

Para empezar, al insertar la tarjeta no pasa nada, pero ya es reconocida, en terminal como root se escribe:

fdisk -l

Y saldrá un dispositivo como /dev/mspblk0p1, con esto ya puede ser montado como root, pero solo el mismo root podrá modificar los archivos.

En fstab agregar la linea

/dev/mspblk0p1 /media/stick vfat rw,user,noauto 0 0

Se crea la carpeta /media/stick (o donde se quiera montar), y ya se podrá montar con cualquier usuario normal del sistema con:


mount /dev/mspblk0p1

Ya solo falta que se pueda hacer automount con KDE o Gnome para facilitar mas las cosas, pero lo bueno es que ya se puede utilizar las Memory Stick.

Por cierto, esto lo hice con Debian Lenny con el kernel 2.6.26-1-686

Written by Link X

November 8, 2008 at 7:35 pm

Posted in Linux

Tagged with , , ,

Screenshot

leave a comment »

Bueno, se que no he escrito en mucho tiempo (demasiado…), pero bueno…

El otro día navegando por ahí (sin albur), me encontré con una captura de pantalla de mi entonces sistema actual Debian Sarge, no recuerdo la fecha, pero sabiendo que ya es la old-stable y que también Etch sera old-stable en poco tiempo (eso espero), debe de tener ya su buenos años.

Debian Sarge con Fluxbox

Debian Sarge con Fluxbox

Written by Link X

October 25, 2008 at 4:54 pm

Aumentando el volumen de las películas en Linux

with 5 comments

En ocasiones las películas que bajo de internet o me pasan otras personas (di no a la piratería…), tienen el sonido muy bajo, ya ni siquiera con VLC o con el SMPlayer (usando el control de volumen por Software) se escucha mas fuerte.

Primero me había resignado a escuchar de esa manera el sonido, pero ahora que tuve un poco de tiempo me puse a investigar para ver como solucionar esto.

Para empezar, se necesita tener instalados los siguientes paquetes:

Avidemux (yo uso la versión hecha con QT para KDE)
mp3gain

Bueno, para empezar, la película debe de estar en avi o mpg, ya con todo lo necesario abrir el Avidemux y ya después abrir la película (File -> Open).

Si el audio ya esta en mp3, solo bastaría con grabar el audio para después aumentar el volumen (Audio -> Save…).

Si no esta en mp3, en la parte izquierda esta para pasarlo a mp3

Bueno, ya que se configura para pasarlo a mp3, entonces ya se puede grabar el audio (File -> Save…).

Bueno, ya esta el audio separado y en mp3, ahora lo que se necesita es aumentar el volumen. Para esta mp3gain.

Abrir terminal y colocarse en la carpeta donde esta el audio.

mp3gain -g 9 audio.mp3

También sirve para aumentar el volumen de cualquier canción en mp3, por si no se te había ocurrido…

Ya con eso el audio aumenta y no se distorsiona tanto, pero si aun no te convence, puedes moverle a las opciones de mp3gain.

Ahora solo queda unir el audio modificado con el vídeo, volver al Avidemux y en Audio -> Main Track… hacer lo siguiente:

Ya solo queda grabar el vídeo. En la parte izquierda de Avidemux debe de estar en copy en audio y video:

Después dar click en Save Video, colocar el nombre y esperar un rato a que este listo.

Y ya esta, la película con la misma calidad de vídeo y con mas volumen en el audio. Si se quiere modificar el video, pues es ya depende de cada quien.

Written by Link X

October 11, 2008 at 6:42 pm

Posted in Linux

Tagged with , , , ,

Un breve análisis del Hentai

with 3 comments

Si llegaste aquí pensando que abra Hentai en descarga, pues tendré que decir que no es así, lo que publico es un breve punto de viste del Hentai.

Aún recuerdo la primera ves que vi Hentai. No Recuerdo si fue cuando aun asistía a la secundaria, pero yo en esos momentos no sabia nada de eso, es mas, ni las computadoras conocía…

Bueno, el caso fue que un primo me paso unas hojas impresas, yo al verlas realmente me impresione… eran imágenes Hentai de Dragon Ball Z. Mas específicamente cuando Gohan entreno a Videl para que pudiera volar, tomaron un “descanso” un poco distinto al acostumbrado…

Y como todo buen puberto que era (nel, no me hice eso…), me lleve las imágenes a la escuela para que toda la bola de pubertos las vieran, recuerdo que ni las revistas porno causaron gran impacto como esto, me convertí en su Dios…

Después de un tiempo, yo ya contaba con unos 16 o 17 años, y del Hentai ya no había vuelto a saber, hasta que una conocida (si, una mujer), me hablo de los vídeos Hentai y me paso unos… Fue todo un shock, ver caricaturas haciendo ese tipo de cosas…

Y pues bueno, después de eso vi unas series con buena trama y que ya no solo se limitaba en la típica serie japonesa donde el principal jamas le da un beso a la protagonista, ya ni hablar de tocarle algo.

Pero desde hace un tiempo, cuando veo algún vídeo Hentai, realmente se me hacen asquerosos, no por que tengan trama de adultos, si no por que realmente considero que son enfermizos, como meter violaciones, monstruos o mujeres que de repente les sale un pene, digo, no creo que sea muy normal que a las mujeres les salga eso, o que las viole algún extraterrestre con tentáculos.

Si hicieran series como los demás animes pero que incluyeran escenas para adultos, de seguro tuvieran mas publico y no causaría tanta repugnancia al ver semejantes perversiones.

Por cierto, esto es sin animo de insultar a los pervertidos que se emocionan viendo esta clase de escenas…

Written by Link X

September 8, 2008 at 2:13 am

Posted in General, Personal

Tagged with ,