Atoms working class today

3 febrero 2010

Construir un proyecto EAR EJB J2EE 1.4 con Maven 2 para WebSphere

Filed under: Uncategorized — atoms @ 16:51

Proyecto de ejemplo que demuestra la construccion de un EAR 1.4 con EJB 2.1

El ejemplo listo para probar: MavenEE42

Yo lo he probado en Websphere, GlassFish, en WebSphere hay que especificar a mano las rutas donde estan los ejb.

Este proyecto esta divido en modulos:

  • EAR
  • EJB
  • WEB

Cada modulo tiene su propio descriptor de proyecto (POM), y en la raiz existe un POM padre que es el que se encarga de compilar todo el proyecto.

La estructura del proyecto es la siguiente.

├── ear
│   ├── pom.xml
│   └── src
│       ├── main
│       │   ├── application
│       │   │   └── META-INF
│       │   │       └── MANIFEST.MF
│       │   └── java
│       └── test
│           └── java
├── ejb
│   ├── pom.xml
│   └── src
│       ├── main
│       │   ├── java
│       │   │   └── org
│       │   │       └── atoms
│       │   │           ├── Hola.java
│       │   │           ├── HolaLocalHome.java
│       │   │           └── HolaLocal.java
│       │   └── resources
│       │       ├── log4j.properties
│       │       └── META-INF
│       │           ├── ejb-jar.xml
│       │           ├── ibm-ejb-jar-bnd.xmi
│       │           └── MANIFEST.MF
│       └── test
│           └── java
│               └── org
│                   └── atoms
├── java
├── pom.xml
└── web
    ├── pom.xml
    └── src
        ├── main
        │   ├── java
        │   │   └── org
        │   │       └── atoms
        │   │           └── HolaEJB.java
        │   └── webapp
        │       ├── index.jsp
        │       └── WEB-INF
        │           └── web.xml
        └── test
            └── java
                └── org
                    └── atoms

POM Padre: construye todos los modulos

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>mavenproject1</artifactId>
    <groupId>org.atoms</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <groupId>org.atoms</groupId>
  <artifactId>mavenproject2</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>mavenproject2 Maven Enterprise Application</name>
  <url>http://maven.apache.org</url>
  <modules>
    <module>ear</module>
    <module>web</module>
    <module>ejb</module>
  </modules>

    <build>
    <defaultGoal>package</defaultGoal>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <!-- 3. Specify used Java version. -->
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>

    </plugins>
  </build>

</project>

POM ear: Ensambla el EAR, genera el Aplication.xml, pone todos las librerias en el directorio lib, para que puedan ser usadas por los proyectos de ejb, y web.

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>

        <artifactId>mavenproject2</artifactId>

        <groupId>org.atoms</groupId>

        <version>1.0-SNAPSHOT</version>

    </parent>

    <groupId>org.atoms</groupId>

    <artifactId>ear</artifactId>

    <packaging>ear</packaging>

    <version>1.0-SNAPSHOT</version>

    <name>mavenproject2-ear J2EE 1.4 Assembly</name>

    <url>http://maven.apache.org</url>

    <build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <version>2.0.2</version>

                <configuration>

                    <source>1.4</source>

                    <target>1.4</target>

                </configuration>

            </plugin>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-ear-plugin</artifactId>

                <version>2.3.2</version>

                <configuration>

                    <version>1.4</version>

                    <defaultJavaBundleDir>lib/</defaultJavaBundleDir>

                </configuration>

            </plugin>

        </plugins>

        <finalName>mavenproject2-ear</finalName>

    </build>

    <dependencies>

        <dependency>

            <groupId>org.atoms</groupId>

            <artifactId>mavenproject2-ejb</artifactId>

            <version>1.0-SNAPSHOT</version>

            <type>ejb</type>

        </dependency>

        <dependency>

            <groupId>org.atoms</groupId>

            <artifactId>mavenproject2-web</artifactId>

            <version>1.0-SNAPSHOT</version>

            <type>war</type>

        </dependency>

        <dependency>

            <groupId>commons-lang</groupId>

            <artifactId>commons-lang</artifactId>

            <version>2.4</version>

        </dependency>

    </dependencies>

</project>

POM ejb: genera el descriptor de despliege de los ejb.

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>

        <artifactId>mavenproject2</artifactId>

        <groupId>org.atoms</groupId>

        <version>1.0-SNAPSHOT</version>

    </parent>

    <groupId>org.atoms</groupId>

    <artifactId>ejb</artifactId>

    <packaging>ejb</packaging>

    <version>1.0-SNAPSHOT</version>

    <name>mavenproject2-ejb J2EE 1.4 EJB</name>

    <url>http://maven.apache.org</url>

    <dependencies>

        <dependency>

            <groupId>org.apache.geronimo.specs</groupId>

            <artifactId>geronimo-j2ee_1.4_spec</artifactId>

            <version>1.0</version>

            <scope>provided</scope>

        </dependency>

        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>3.8.1</version>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>commons-lang</groupId>

            <artifactId>commons-lang</artifactId>

            <version>2.4</version>

        </dependency>

  <!-- Logging -->

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-api</artifactId>

            <version>1.5.8</version>

        </dependency>

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-log4j12</artifactId>

            <version>1.5.8</version>

        </dependency>

    </dependencies>

    <build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <version>2.0.2</version>

                <configuration>

                    <source>1.4</source>

                    <target>1.4</target>

                </configuration>

            </plugin>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-ejb-plugin</artifactId>

                <version>2.1</version>

                <configuration>

                    <ejbVersion>2.1</ejbVersion>

                    <archive>

                        <manifest>

                            <addClasspath>true</addClasspath>

                             <classpathPrefix>lib/</classpathPrefix>

                        </manifest>

                    </archive>

                </configuration>

            </plugin>

        </plugins>

        <finalName>mavenproject2-ejb</finalName>

    </build>

</project>

POM web: en modulo de web no es necesario incluir ninguna libreria pero si es necesario generar el manifest, esto ya se hace en automatico, esto se llama Skinny WARs.

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>

        <artifactId>mavenproject2</artifactId>

        <groupId>org.atoms</groupId>

        <version>1.0-SNAPSHOT</version>

    </parent>

  <groupId>org.atoms</groupId>

  <artifactId>web</artifactId>

  <packaging>war</packaging>

  <version>1.0-SNAPSHOT</version>

  <name>mavenproject2-web J2EE 1.4 Webapp</name>

  <url>http://maven.apache.org</url>

  <dependencies>

    <dependency>

      <groupId>javax.servlet</groupId>

      <artifactId>servlet-api</artifactId>

      <version>2.4</version>

      <scope>provided</scope>

    </dependency>

    <dependency>

      <groupId>javax.servlet.jsp</groupId>

      <artifactId>jsp-api</artifactId>

      <version>2.1</version>

      <scope>provided</scope>

    </dependency>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

    <dependency>

      <groupId>org.apache.geronimo.specs</groupId>

      <artifactId>geronimo-ejb_2.1_spec</artifactId>

      <version>1.1</version>

      <scope>provided</scope>

    </dependency>

    <dependency>

      <groupId>org.atoms</groupId>

      <artifactId>mavenproject2-ejb</artifactId>

      <version>1.0-SNAPSHOT</version>

    </dependency>

  </dependencies>

  <build>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>2.0.2</version>

        <configuration>

          <source>1.4</source>

          <target>1.4</target>

        </configuration>

      </plugin>

    </plugins>

    <finalName>mavenproject2-web</finalName>

  </build>

</project>

10 mayo 2009

Instalar Java JDK 1.6.0 (latest Update x) in Linux ubuntu-debian

Filed under: Uncategorized — atoms @ 17:55

First create a directory to intall it

cd /opt
sudo mkdir java

then download the latest JDK from sun


http://java.sun.com/javase/downloads/index.jsp

Download the latest bin file to your desktop, then move to the directory that you have already created.

sudo mv ~/Desktop/jdk-6u13-linux-i586.bin /opt/java

Assign permissions :

sudo chmod 755 /opt/java/32/jre-6u13-linux-i586.bin

Run the installation:

cd /opt/java/32
sudo ./jre-6u13-linux-i586.bin

Setting JDK 1.6.0 u13 as Default

The process simply involves telling the system that there is an alternative Java binary available, and to use this binary to execute an “java” commands:

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.6.0_13/bin/java" 1
sudo update-alternatives --set java /opt/java/jdk1.6.0_13/bin/java

sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/java/jdk1.6.0_13/bin/javac" 1
sudo update-alternatives --set javac /opt/java/jdk1.6.0_13/bin/javac

sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/java/jdk1.6.0_13/bin/javaws" 1
sudo update-alternatives --set javaws /opt/java/jdk1.6.0_13/bin/javaws	

sudo update-alternatives --install "/usr/bin/jcontrol" "jcontrol" "/opt/java/jdk1.6.0_13/bin/jcontrol" 1
sudo update-alternatives --set jcontrol /opt/java/jdk1.6.0_13/bin/jcontrol	

sudo update-alternatives --install "/usr/bin/jar" "jar" "/opt/java/jdk1.6.0_13/bin/jar" 1
sudo update-alternatives --set jar /opt/java/jdk1.6.0_13/bin/jar

sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/opt/java/jdk1.6.0_13/bin/javadoc" 1
sudo update-alternatives --set javadoc /opt/java/jdk1.6.0_13/bin/javadoc

To double check everything is as it should be, in a Terminal run:

java -version

You should get and output like this:

java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)

Note:

For the time you read this probably there will be and new version of java just change the name of the bin archive and the paths.

This post was based from this:
http://www.64bitjungle.com/ubuntu/install-java-jre-160-update-x-on-hardy-as-the-default-java-runtime

24 marzo 2009

Servet Zip al vuelo

Filed under: Uncategorized — atoms @ 10:34

Un Servlet que crea un archivo zip al vuelo

The source is here: simple-zip.

Se utilizo maven para contruirlo.

Para probarlo :

Instala maven aqui esta como, desde la consola adentro del folder del proyecto
corre:

mvn clean
mvn package
mvn jetty:run

Si lo quiere editar usando eclipse.
mvn eclipse:eclipse
Y configura una variable dento de eclipse como esta:
M2_HOME to <YourUser>/.M2/REPO

package org.atoms.zip.web;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.util.zip.ZipOutputStream;

import java.util.zip.ZipEntry;

public class SimpleServletZip extends HttpServlet {

    public void doGet(HttpServletRequest request,

                      HttpServletResponse response)

        throws ServletException, IOException {

        ByteArrayOutputStream bin=new ByteArrayOutputStream();

        ByteArrayOutputStream bout=new ByteArrayOutputStream();

        ZipOutputStream zout=new ZipOutputStream(bout);

        ServletOutputStream outs = response.getOutputStream();

        PrintWriter pout = new PrintWriter(bin);

        pout.println("Hello Zip");

        pout.println("Hola Zip");

        pout.println("Please visit atoms.net84.net for futher information");

        pout.flush();

        pout.close();

         zout.putNextEntry(new ZipEntry("text.txt" ));

	              zout.write(bin.toByteArray());

                  zout.closeEntry();

                  zout.flush();

                  zout.finish();

                  response.setContentType("application/zip");

                  response.setHeader("Content-Disposition","inline; filename=output.zip;");

                  outs.write(bout.toByteArray());

                  outs.flush();

    }

}

28 febrero 2009

Como descargar mp3 de Mypace

Filed under: Uncategorized — atoms @ 11:45

Que necesitas:

Y sigue los pasos del video que cree

26 diciembre 2008

Ride over Proxies (sshproxy) ubuntu

Filed under: Uncategorized — atoms @ 12:50

Los adminstradores de red siempre ponen restricciones sobre la paginas que podemos ver desde la escuela o el trabajo,  tambien puenden monitorear las paginas que visitamos, una solucion es montar un servidor proxy en nuestra casa y conectarnos a el para poder navegar libres, anonimamente y sin restriciones.

La idea la he sacado de este sitio.

http://daniel.haxx.se/docs/sshproxy.html

El procedimiento esta escrito para Ubuntu aun asi es posible instalar apache en diferentes distribuciones y tambien en windows.

Primero necesitaremos instalar apache.

sudo apt-get install apache2

Para detener

sudo /etc/init.d/apache2 stop

Para iniciar

sudo /etc/init.d/apache2 start

Para reiniciar.

sudo /etc/init.d/apache2 restart

Una vez que este instalado apache ve al explorador ingresa localhost como direccion y da enter. Debesde ver algo como It works !!! o una pagina que confirme que apache esta funcionando.

El segundo paso sera instalar el modulo proxy para apache.

sudo apt-get install libapache2-mod-proxy-html

Luego hay que editar la configuracion del apache para que utilize el modulo que acabamos de instalar.
En mi caso voy a utilizar el puerto 8888 para proxear por lo que tengo que decirle al apache que escuche en este puerto, y deshabilitar las escuchas al puerto 443, por que este puerto lo voy a usar para el ssh.

sudo gedit /etc/apache2/ports

Y agrego listen 8888 y comento el 443, el arhivo me queda asi:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

NameVirtualHost *:80
Listen 80
Listen 8888

    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to 
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    # Listen 443



   #  Listen 443

luego creamos un nuevo documento vacio en la siguiete ruta con el nombre “proxy”

/etc/apache2/sites-available

Y ponemos lo siguiente


        ServerAdmin webmaster@localhost

        ProxyRequests On
        ProxyVia On

        #Add ports you want to be able to connect to through your proxy here
        AllowCONNECT 443 554
        #563 1863 10000
        #443   = SSL
        #563   = TLS
        #1863  = MSN Messenger
        #10000 = Webmin

        DocumentRoot /var/www/
        
                Options FollowSymLinks
                AllowOverride None
        

        ErrorLog /var/log/apache2/proxy-error.log
        TransferLog /var/log/apache2/proxy-transfer.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel debug

Con lo que le estamos creando un nuevo sitio proxy que va a forwadear el puerto 80, 443, 544, es importante que el virtual host *: 8888 sea igual al puerto que esta escuchando apache.

Configuramos el mod_proxy en el siguiente archivo:

sudo gedit /etc/apache2/mods-available/proxy.conf

Que queda de esta forma


        #turning ProxyRequests on and allowing proxying from all may allow
        #spammers to use your proxy to send email.

        ProxyRequests On

        
                AddDefaultCharset off
                Order deny,allow
                Deny from all

                Allow from 127.0.0.1
        

        # Enable/disable the handling of HTTP/1.1 "Via:" headers.
        # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
        # Set to one of: Off | On | Full | Block

        ProxyVia On

Con lo que configuramos que solo se pueda usar el proxy desde el localhost.
Activamos el mod_proxy con esta linea.

sudo a2enmod proxy proxy_connect proxy_html  proxy_ftp

en ubuntu es necesario cambiar en el ultimo comando

proxy_html

por

proxy_http

Activamos el site proxy

sudo a2ensite proxy

Y reinciamos el rervidor:

 sudo /etc/init.d/apache2 restart

Ya tenemos la segunda parte parte.
Nota si tenemos algun problema sera necesario modificar el site, y la configurcion, para esto es necesario deshabilitar tanto el site con el mod_proxy.
Para deshabilitar el site:

sudo a2dissite proxy

para deshabilitar el mod_proxy:

sudo a2dismod  proxy_connect proxy_html  proxy_ftp proxy

Si se deshabilita el mod_proxy es necesario deshabilitar el site proxy, por que este depende del mod_proxy, y el apache no arrancarria.

Para averiguar si funciona puedes hacer un telnet

telnet localhost 8888

Si no responde codifo de error es por que esta bien, si ves simbolos raros esta bien.

El tercer paso es instalar ssh server para que te puedas conectar desde tu computadora del trabajo o de la escuela.

sudo apt-get install openssh-server

Como es un hecho que este bloqueado el puerto 22 que es que utiliza por default el ssh debemos configurarlo para que utilize el puerto 443 que es el generalmente se usa para https.

Para hacer esto hay que modificar el siguiente archivo.

sudo gedit /etc/ssh/sshd_config

Cambia esta linea

Port 22

por

Port 443

Ahora reinicia el servidor ssh.

sudo /etc/init.d/ssh restart

He intenta conectarte a tu maquina

ssh 'user'@localhost -p 443

Donde user es tu nombre de usuario, si es la primera vez que te conectas te va a pedir una confirmacion di le que si, ingresa tu contraseña, y el sisteme te va a dar la bienvenida. Si no revisa que este configurado correctamente el puerto y que el servido ssh esta corriendo.

Ahora si no cuentas con ip estatica, sera necesario que instalar algun servicio como no-ip.org

Para instalarlo dirigite a la siguiente pagina no-ip.org y create una cuenta. Luego instala el cliente en tu maquina para que se actulize tu ip automaticamente.

sudo apt-get install no-ip

Sigue la instrucciones si utilizas los parametros por default esta bien.

Ahora comprueba si esta funcionando correctamente.

Abre un explorador y he ingresa la direccion que registraste por ejemplo itworks.no-ip.org si ves el mismo mensje que cuando utilizas localhost es que esta funcionando correctamete, si no es posible que el cliente de no-ip no haya actuilizado la ip todavia. Para averiguarlo ejecuta lo siguiente,

sudo noip2 -S

Si el cliente de no-ip no esta corriendo utiliza.

sudo noip2

Bien haste este punto tu maquina ya esta lista.

Ahora en la maquina desde la que te quieres conectar necesitaras utilizar si utilizas alguna distribuccion de linux.

ssh -L 8888:localhost:8888 user@server.at.home -p 443

Si te vas a conenctar desde una maquina con Windows utiliza putty a mi gusta utilizar extra-putty.

Necesitas configurar tu explorador para que utilize localhost:8080 como proxy, para todos los protocolos , si estas utilizando windows no recomiendo utilizar internet explorer ni chrome, utiliza firefox o opera, por que la configuracion del proxy es mas facil.

Mas informacion:

http://famvdploeg.com/blog/2008/01/setting-up-an-apache2-proxy-server/l

7 diciembre 2008

Activar USB en Virtual Box 2.6 y Ubuntu 8.10

Filed under: Uncategorized — atoms @ 11:29

En inteprid Ibex se necesita agregar las siguiente lineas de codigo al fichero mountdevsubfs.sh.

        #
        # Magic to make /proc/bus/usb work in virtualbox version < 2.0.6
        #
        mkdir -p /dev/bus/usb/.usbfs
        domount usbfs "" /dev/bus/usb/.usbfs usbfs -obusmode=0700,devmode=0600,listmode=0644
        ln -s .usbfs/devices /dev/bus/usb/devices
        mount --rbind /dev/bus/usb /proc/bus/usb

Debe de agregarse en la funcion dostart despues de:
domount devpts “” /dev/pts devpts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE
y antes del ultimo corchete –> } .
Se pede hacer utilizado:

gksudo gedit /etc/init.d/mountdevsubfs.sh

una ves que lo modificaste lo ejecutas.

sudo /etc/init.d/mountdevsubfs.sh start

Editas el siguiente fichero de permisos /etc/udev/rules.d.

gksudo gedit edit /etc/udev/rules.d/40-basic-permissions.rules

cambias usb devices por lo siguiente (Solo Hardy Heron o Inteprid Ibex)

# USB devices (usbfs replacement)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664", GROUP="vboxusers"
SUBSYSTEM=="usb_device",                MODE="0664", GROUP="vboxusers"

Reinicias el servicio.

sudo /etc/init.d/udev restart

Si no eres miembro del grupo de vboxusers ejecutas el siguiente comando:

sudo usermod -G vboxusers -a `whoami`

Listo ya puedes utilizar USB en virtual box 2.6.
Tomado de https://help.ubuntu.com/community/VirtualBox

2 diciembre 2008

Los siete pecados capitales de Fernando Savater.

Filed under: Uncategorized — atoms @ 11:22

En las entrevistas de trabajo es muy comun que te pregunten sobre 5 virtudes y 5 defectos que tengas.

Por supuesto que no vas a decir que eres colerico,  avaro, codicioso,  envidioso, perezoso,  que comes en exceso o mucho menos lujorioso, no vaya a pensar el entrevestidor que eres Satanas y no te de el empleo.

Pero algún defecto has de tener.

Fernando Savater es su libro Los siete pecado capitales sostiene una charla con Satanas en donde cada uno discuten acerca de los pros y contras de los pecados capitales.

Por ejemplo la próxima vez que te pregunten puedes decir que eres iracundo, pero que no te enojes cuando el mesero te ha traído arroz y tu has pedido sopa, por que sabes que ha sido un descuido. Pero en cambio  estallas en colera cuado ves que estas golpeado a una mujer o sobajando a una persona.

Este libro te permite reflexionar y ver los pecados desde una perpectiva diferente a la que generalmente se nos ha educado.

LOS SIETE PECADOS CAPITALES

  • Autor: Fernando Savater
  • Editorial: GPO ED RANDOM HOUSE MONDADORI
  • Año de Edic: 2008
  • ISBN: 607-429-064-6

Tutorial JSTL tomado de 1×4x9.info

Filed under: Uncategorized — atoms @ 09:36

Un tutorail de JSTL realizado por Alejandro Ramírez.  jstl

11 noviembre 2008

Java Decompiler

Filed under: Uncategorized — atoms @ 12:06

Un decompilador es una herramienta muy util cuando necesitas modificar una clase y no cuentas con el codigo fuente.

Nota: Si no quieres que decompilen tus clases utiliza un obfuscador como ProGuard del post pasado.

De los decompiladores que utilizo para Java son:

JAD con el GUI Fron End

Jad is a Java decompiler, i.e. program that reads one or more Java class files and converts them into Java source files which can be compiled again.

Jad is a 100% pure C++ program and it generally works several times faster than decompilers written in Java.
Jad doesn’t use the Java runtime for its functioning, therefore no special setup is required (like changes to the CLASSPATH variable). 

FrontEnd Plus (v.1.04)

FrontEnd Plus (v.2.0.3)

 

Java Decompiler   

The aim of “Java Decompiler” project is to develop tools to decompile and analyze Java 5, and upper, “.class” files.

Este esta disponible para windows, mac y linux.

 

¿Conoces otros comenta ?

Java Obfuscator

Filed under: Uncategorized — atoms @ 11:39

Uno de los mejores obfuscadores que he utilizado es Proguard:

ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for Java 6 or for Java Micro Edition.

Descargalo desde aqui: proguard

Para ejecutarlo utiliza:

java -jar proguardgui.jar

Older Posts »

Powered by WordPress