HERRAMIENTAS UTILIES PARA JAVA

Posted: miércoles, 16 de julio de 2014 by Skuarch in Etiquetas: , , , , ,
0


Siempre es bueno usar herramientas para checar la calidad de nuestro codigo, algunas de estas herramientas deben de ser impresindibles para todo desarrollador java

Eclipse Memory Analize
Este es un plug in de eclipse que nos ayuda a saber que puntos de nuetro programa pueden estar causando leaks, se nececita que configures la JVM para que trabaje correctamente

Proguard
El proposito general de proguard es ofuscar el codigo, como ya sabes decompilar el codigo en java es muy facil asi es que nunca esta de mas usar algun ofiscador, tambien tienen algunas otras cosas para mejorar el codigo


Dependometer

Analisis estatico o fisco de dependencias con dependometer, esta genial herramienta valida dependencias contra arquitecturas logicas estructurando esl sistema entro de clases, paquetes, subsistemas entre otras cosas.


DoctorJ

Es una aplication que analiza el codigo de java y la documentacion buscando errores comunes que javadoc no hace

MEJORAR EL PERFORMANCE DE JAVA

Posted: viernes, 11 de julio de 2014 by Skuarch in Etiquetas: , , ,
0


Siempres es bueno no gastar todos los recursos del procesador para poder correr mas aplicaciones, en este post voy a poner algunas de las mejores practicas para que tu codigo no influya tomando mas recursos de los que necesita, a claro que esta fue tomado de la guia de Glassfish oficial

Evitar serializacion y deserializacion

Serializacion y deszerializacion de objectos is proceso intensivo para el CPU y puede crear retrasos en tu aplicacion, Usa transient para reducir el monto de datos serializados

StringBuilder para concatenar Strings

Para mejorar el performance al menos al usar concatenacion de Strings, usa
StringBuilder.append();

Asignar null a las variables ya no se nececita

Esta practica ya no se nececita para ayudar al garbage collector identificando partes de memoria que pueden ser limpiadas

Declara metodos con final solo si es necesario

Modernos compiladores y otros procesos internos pueden hacer en linea  la optimizacion incluso si los metodos de java no son declarados como final

Solo usa final si tu estas absolutamente seguro de que el metodo no debe de ser sobreescrito.

Declara constantes como static y final

 El compilador dinamico puede hacer algunas optimizaciones facilmente cuando tu declaras constantes como static final

Evita Finalizers

Agregar finalizers al codigo hace que el garbage collector esa caro e impredecible, la maquina virtual no garantiza el tiempo que correran los finalizers; Finalizers no siempre son ejecutados antes de que el programa termine, evita usarlos para no crear una aplicacion impredecible.

Declarar los argumentos de un metodo como finales

Si estos no son modificados en el metodo, en general declara todas las variables final si no van a ser modificadas

Synchronize solo cuando sea necesario

Manten los bloques de sincronizacion lo mas corto posible y si es posible evita la sincronizacion.

INSTALACION DE VIRTUALBOX EN UBUNTU

Posted: sábado, 26 de abril de 2014 by Skuarch in Etiquetas: , , ,
0


Para poder instalar virtualbox sin problemas instala las siguiente librerias
sudo apt-get install build-essentials
sudo apt-get install linux-kernel-headers
sudo apt-get install dkms

ya solo queda bajar virtualbox del sitio oficial

CAMBIAR EL BRILLO DE LA PANTALLA EN UBUNTU

Posted: sábado, 19 de abril de 2014 by Skuarch in Etiquetas: ,
0


En ocaciones los botones para controlar el brillo de la pantalla no funcionan correctamente, esto lo puedes solucionar con este sencillo comando

xrandr --output eDP1 --brightness 0.7

solo cambia eDPI por el tipo de monitor que tienes, en mi caso lo observo en kscreen por que tengo kubuntu

SOBRE CARGAR LOS NUCLEOS EN LINUX

Posted: jueves, 17 de abril de 2014 by Skuarch in Etiquetas: ,
0


con este simple comando puedes hacer que tu procesador se ponga a trabajar y medir cuestiones de rendimiento

while :; do :; done

Simple y sencillo

CONCEPTOS BASICOS DE JAVA

Posted: sábado, 1 de febrero de 2014 by Skuarch in Etiquetas: ,
0


Esta es una pequeña guia para sobre los conceptos basicos de java

Interfaces
una interfaz es similar a una clase abstracta, esta se declara usando la palabra reservada interface y consiste en que solo contenga metodos abstractos y variables finales.

Constructores
Estos son usados para inicializar un objeto, cuando un objeto es construido el constructor es ejecutado, un constructor por default es uno que no tiene argumentos

Metodos
los metodos siempre estan dentro de una clase y la visibilidad del metodo es controlada por los modificadores de acesso

Signature del metodo
the signature of method consiste en
nombre del metodo
numero de argumentos
tipo de argumentos
orden de los argumentos

Static
metodo que puede invocarse sin crear un objeto

Modificadores de acesso
public: todo el mundo puede verlo
private: solo los miebros de la clase pueden verlo
protected: los miembros de la clase y las clases que la heredan pueden verlo
ninguno: solo lo pueden ver los miembros del paquete

LEER DATOS CRUDOS EN UN SERVLET

Posted: martes, 28 de enero de 2014 by Skuarch in Etiquetas: , , , ,
0


En ocaciones los datos que llegan a un servlet no estan dentro de una variable, los datos estan con el cuerpo de peticion, para poder obtener ese tipo de dato es necesario abrir un input y convertirlos a string, en el siguiente codigo muestro como hacer esto en un servlet

Primero checar si el contentLength tiene algo

int contentLenght = request.getContentLength();

Con la clase ServletInputStream se leeran los datos

ServletInputStream sis = request.getInputStream();

Ahora solo queda consumir los datos

byte[] buffer = new byte[contentLenght];
int len = sis.readLine(buffer, 0, buffer.length);
String data = new String(buffer, 0, len);

Nunca esta de mas hacer una verification del contentLenght que sea mayor a 0 al inicio de tu codigo.

Finalmente cierra todos los inputs para que no existan problemas despues.



JAVA ASINCRONO

Posted: martes, 24 de diciembre de 2013 by Skuarch in Etiquetas: , , , , ,
0


En ocaciones es necesario realizar ciertas tareas en hilos, pero los hilos son void entonces como puedes hacer que una tarea regrese algo y que corra en un hilo, voy a explicar como hacer esto con las clases de java Callable y Future en el codigo se puede entender mejor


import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
public class TestCallable {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        final StringBuilder stringBuilder = new StringBuilder();
     
        ExecutorService executorService = Executors.newFixedThreadPool(1);
     
        FutureTask future = new FutureTask(new Callable() {
         
            @Override
            public String call() throws InterruptedException {
                Thread.sleep(1000);
                System.out.println("inside of call");
                stringBuilder.append("something");
                return "hello";
            }
         
        });
        executorService.execute(future);
        executorService.shutdown();
        System.out.println("continue");      
    }
}
cuando corrar este programa te podras dar cuenta que aparece primero el texto continue y despues aparece inside of call, esto es por que se realizo un trozo de codigo asincrono

INSTALAR GITHUB UBUNTU

Posted: lunes, 2 de diciembre de 2013 by Skuarch in Etiquetas: , , ,
0


Con estos sencillos pasos podemos intalar GIT y usarlo con GITHUB, obviamente tienes que tener una cuenta en github y saber como agregar keys.

1.- cd ~/.ssh (si te aparece alguna advertencia pasa al siguiete paso)
2.- ssh-keygen -t rsa -C "your_email@youremail.com"
3.- nano (o tu editor favorito) id_rsa.pub
4.- copiar el contenido y darlo de alta en github
5.- sudo apt-get install git-core git-gui git-doc
6.- git config --global user.name "Your Name"
7.- git config --global user.email "your@email.com"

Ahora disfruta de github

INSTALAR MAVEN EN LINUX

Posted: miércoles, 27 de noviembre de 2013 by Skuarch in Etiquetas: , , , ,
0


Instalar maven en linux es muy sencillo solo tienes que exportar algunas variables al PATH de linux, asegurate tener instalado java anteriormente.

1.- Descargar maven de la pagina oficial
2.- Descomprimir y ponerlo donde gustes yo lo puse en /usr/local/
3.- Abrir el archivo .bashrc que se encuentra en /home/usuario/
4.- Agregarle al final las siguientes lineas
M2_HOME=/usr/local/apache-maven-x.x.x
M2=$M2_HOME/bin
MAVEN_OPTS="-Xms256m -Xmx512m"
PATH=$M2:$PATH
JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45 (cambia esta ruta)
export M2_HOME
export M2
export MAVEN_OPTS
export JAVA_HOME
por ultimo crear un enlace a mvn

sudo ln -s /usr/local/apache-maven-x.x.x/bin/mvn /usr/bin/mvn

La ruta del java la tienes que modificar, ahora solo cierra tu terminal, abre otra y ya podras usar maven

mvn --version