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

HABILITAR ACCESO REMOTA GLASSFISH

Posted: lunes, 25 de noviembre de 2013 by Skuarch in Etiquetas: ,
0


Para poder accesar remotamente a glassfish usa estos dos comandos

asadmin change-admin-password --domain_name [DOMAIN_NAME]

asadmin enable-secure-admin --port [PORT_NAME]

COMPILAR EL KERNEL EN UBUNTU

Posted: by Skuarch in Etiquetas: , , ,
1


Para poder compilar nuestro kernel tenemos que tener encuenta varios aspectos y tener un respaldo de nuestros datos, las principales razones para compilar un kernel son los drivers pero yo compilo mi kernel para terner un poco de rendimiento, es rendimiento es minimo pero aprendes muchas cosas, estos son los pasos para compilarlo

1.- Setear algunas variables en el sistema, en mi caso yo tengo un cpu con 6 nucleos entonces el nivel de concurrencia es el numero de cpu + 1 entonces quedaria asi
CONCURRENCY_LEVEL=7
Lo siguiente que se realiza es establecer algunas banderas para que al configurar el kernel tome estas banderas y le configure algunas opciones
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-02 -march=native -mtune=native -mcx16 -mpopcnt -pipe"
CXXFLAGS="${CFLAGS}"
estas flags son para una computadora con cpu AMD tu puedes buscar otras flags aqui ---> FLAG para compilar el kernel si deseas saber mas dobre que opciones tienes al establecer estas banderas puede consultar esta guia ---> Intel 386 and AMD x86-64 Options

2.- Obtener el kernel de la pagina oficial del kernel ---> descargar kernel
3.- Descomprimirlo con tar -xjvf linux.x.x
4.- Entrar a la carpeta que se acaba de descomprimir cd linux
5.- Instalar unas librerias para poder compilarlo sudo apt-get install ncurses-dev
6.- Teclear el siguiente comando make menuconfig
7.- Checar las siguientes opciones
Processor type and features ---> Processor family ---> (X) Core 2/newer Xeon
Processor type and features ---> Timer Frequency ---> (X) 1000 HZ
Processor type and features ---> Preemption Model ---> (X) Preemptible Kernel (Low-Latency Desktop)
Device Drivers ---> Graphics support ---> < > Support for frame buffer devices
Device Drivers ---> Virtualization  --->  Kernel-based Virtual Machine (KVM) support
Estas opciones varian dependiendo del tiempo de cpu y si estas usando una laptop o una maquina de escritorio, asegurate configurarlas correctamente

8.- Ahora si ya estamos listos para compilar el kernel make -j7 "-j7" es el numero de procesadores que quiero que use + 1 para asegurarse que use todos
9.- Instalamos los modulos sudo make -j7 modules_install
10- Instalamos el kernel nuevo sudo make -j7 install
11.- reiniciar la computadora y si todo es correcto ya tienes nuevo kernel

Existe la probabilidad de que los drivers de video los tengas que volver a instalar


ENCAPSULACION EN JAVA

Posted: jueves, 21 de noviembre de 2013 by Skuarch in Etiquetas: ,
0



La encapsulacion en java trata de mostrar las cosas relevantes y ocultar las cosas irrelevantes, esto hace que la complejidad disminuya, escondiendo los detalles de implemetacion permite hacer cambios sin afectar otras partes del programa.

El principal proposito de la encapsulacion de datos es reducir la complejidad al desarrollar software, a continuacion muestro un pequeño ejemplo que como hacer una encapsulacion en java

public class Employee{

 public String name;
 private int age;

...

public int getAge(){
}

private void setAge(int age){
 this.age = age;
}

}

El modificador de acceso de name se cambio a public y el modificador de acceso del metodo setAge se cambio a privado. Esto significa que cualquier usuario de la clase puede accesar al campo name pero solo puede leer age, la encapsulacion se aplica cuando decidimos que es lo que deberia y que es lo que no deberia ser expuesta de la clase.

BUENAS PRACTICAS PHP

Posted: martes, 12 de noviembre de 2013 by Skuarch in Etiquetas: ,
0


1 ) echo es más rápido que print.

2 ) Envuelve tus strings en comillas simples (‘) en lugar de comillas dobles (“) ya que es más rápido, debido a que PHP busca variables dentro de “…” y no en ‘…’. Utiliza esto cuando no estés usando variables dentro del string.

3 ) Usa sprintf en lugar de variables contenidas en comillas dobles, es como 10 veces más rápido.

4 ) Utiliza múltiples parametros (o apilados) con echo en lugar de concatenar strings.

5 ) Usa precálculos, fija el valor máximo para los bucles for antes y no en el bucle. En este ejemplo…: for ($x=0; $x < count($array); $x)
…se llama a la función count() cada vez. En su lugar, utiliza $max=count($array) antes de que empiece el bucle for.

6 ) “Desdefine” (unset) o pon a null las variables para liberar memoria, especialmente los arrays grandes.

7 ) Evita las funciones mágicas como __get, __set o __autoload.

8 ) Utiliza require() en lugar de require_once() cuando sea posible.

9 ) Utiliza rutas completas en includes y requires, se invierte menos tiempo resolviendo las rutas del Sistema Operativo.

10 ) require() e include() son completamente idénticos, excepto que require() paraliza la aplicación si no encuentra el fichero. En cuanto a rendimiento, hay muy poca diferencia.

ACCESO REMOTA A MYSQL

Posted: martes, 17 de septiembre de 2013 by Skuarch in Etiquetas: , ,
0


Para poder entrar a mysql desde cualquier computadora como root tenemos que seguir estos pasos.

1.- entrar a la base de datos podria ser de esta forma
mysql -uroot -p
2.- usar la base de datos mysql
use mysql 
3.- borrar los usuarios que no tengan nada
delete from user where user='';
4.- actualizar los host con un "%"  a los usuario que tengan localhost
update user set host='%' where host='localhost';
5.- actualizamos el password al usuario root
update user set password=PASSWORD('myPassword') where user='root';
6.- reiniciamos los privilegios
flush privileges;
7.- editar el archivo que esta en /etc/mysql/my.cnf con tu editor favorito y buscar la linea bind-address            = 127.0.0.1 y cambiarel 127.0.0.1 por 0.0.0.0

[opcional]
Poner el password con la encriptacion anterior de mysql, algunos clientes de mysql siguen usando la encriptacion antigua de mysql
update user set password=old_password('myPassword') where user='root';
y despues reiniciar los privilegios
flush privileges;

Un nivel bajo de seguridad es cambiar el puerto de mysql que por default es el 3306, como abrimos el acceso al usuario root desde cualquier maquina es recomendable hacer esto pero solo es un nivel basico de seguridad.

Para cambiar el puerto de mysql solo se edita el archivo my.cnf que esta en /etc/mysql y se cambia la linea port = 3306 por el puerto que quieras.

INSTALAR JAVA EN UBUNTU

Posted: martes, 2 de abril de 2013 by Skuarch in Etiquetas: , ,
0




Con estos simples pasos se instala java sin que tengas que agregar algun repositorio.

1.- Descargar el tar.gz de la pagina de oracle
2.- Yo lo voy a descomprimir en /usr/lib/jvm/ (tienes que crear la carpeta de jvm) o lo puedes descomprimir donde quieras
3.- ejecuta el siguiente comando update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_17/bin/java" 1
4.- cambia el comando a la ruta que tengas y el jdk que descargaste
5.- fin