viernes, 12 de octubre de 2018

Tener y elegir entre varias versiones de Java en linux

Primero instalar versión nueva de java

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer


Al instalar la versión nueva de java, hay que revisar cuantas más tenemos instaladas, para eso utilizamos el comando  update-java-alternatives --list como superusuario

xxyyxy:~$ sudo update-java-alternatives --list
java-7-oracle 1        /usr/lib/jvm/java-7-oracle
java-8-oracle 1081  /usr/lib/jvm/java-8-oracle


Teniendo la lista que nos marca las versiones de java correctamente instaladas pasamos al cambio:

Con el comando como superusuario  update-alternatives --config java   podemos cambiar la version de ejecución de java en una lista


xxyyxy:~$ sudo update-alternatives --config java
Existen 3 opciones para la alternativa java (que provee /usr/bin/java).

  Selección   Ruta                                     Prioridad  Estado
------------------------------------------------------------
   0            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      modo automático
* 1            /usr/lib/jvm/java-7-oracle/jre/bin/java   1         modo manual
   2            /usr/lib/jvm/java-8-oracle/bin/java       1         modo manual
   3            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      modo manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección:


Y con el comando update-alternatives --config javapodemos cambiar la versión de compilado de java.

xxyyxy:~$ sudo update-alternatives --config javac
Existen 2 opciones para la alternativa javac (que provee /usr/bin/javac).

  Selección   Ruta                                  Prioridad  Estado
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-oracle/bin/javac   1081      modo automático
* 1            /usr/lib/jvm/java-7-oracle/bin/javac   1         modo manual
  2            /usr/lib/jvm/java-8-oracle/bin/javac   1081      modo manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección:


Este comando me ayuda de momento dado que estoy llevando a cabo un migracion de runtime 7 a 8

lunes, 29 de enero de 2018

Obtener Timestamp (java)

Formatear primero la fecha de la manera en la que se trabaja en el sistema

SimpleDateFormat dateFormat = new SimpleDateFormat("d/M/yyyy");

Seguido se debe de obtener la fecha (en mi caso de un textBox)

Date fecha = dateFormat.parse(tfFecha.getText());

Y al final se obtiene de esta fecha el fastTime

String tsFecha = String.valueOf(fecha.getTime());

getTime retorna un long por si lo quieres poner en una variable numérica, el Int no sera suficiente.

Así de 29/1/2018 obtenemos 1517205600000

lunes, 9 de enero de 2017

Capturar ApiProxy$OverQuotaException en proyecto jsp

Saludos a todos. esta es mi primera entrada del 2017 ya después de mucho tiempo si publicar. 


Este código guía funciona para poder manejar de manera correcta el error en Google App Engine (GAE) al sobrepasar la cuota de envíos de emails, esto en una proyecto java usando jsp.

importar: com.google.apphosting.api.ApiProxy.OverQuotaException;

la excepción se captura al enviar el email:

try {
       mailService.send(msg);
}catch (OverQuotaException ex) {
       //HttpServletResponse resp"
       resp.sendRedirect("/jsp/OverQuotaException.jsp"); 
}

Esta función captura el error del servidor "ApiProxy.OverQuotaException" y maneja la excepción de manera idónea y se hace una re-dirección hacia una pagina jsp para poder avisar al usuario del problema y así no mostrar una pagina genérica de error.


jueves, 28 de julio de 2016

Evitar web crawlers en Koha (CPU 100%)

Soy administrador (sysadmin) de varios sistemas en GC (Google Clould) y uno de los sistemas que administro es una instancia de Koha (Sistema integral de gestión bibliotecaria) en una plataforma GCE (Google Compute Engine).

Al monitorizar el sistema Koha, el uso del CPU de la instancia estaba siempre al 100% de su capacidad, lo cual causaba molestia a los usuarios  debido a que el sistema estaba demasiado lento.



Al revisar las causas, encontré que esto se debe a web crawlers los cuales  hacen búsquedas en el catálogo de Koha para poder indexar resultados, la búsqueda de soluciones me llevo a este wiki de Koha para poder realizarle un tuning (afinamiento) al sistema.

https://wiki.koha-community.org/wiki/Koha_Tuning_Guide


Esta guía ayudo a muchos, pero en mi caso no, los web crawlers seguian accediendo a pesar de agregar el archivo " robots.txt ".

La forma de solucionarlo fue creando (en mi caso) el archivo .htaccess con este archivo de configuraron del servidor Apache  logre detener los web crawlers el uso de este archivo de configuración, puede traer repercusiones a tu servidor, en el caso de eficiencia y tiempo de espera, pero para una instancia pequeña como la que administro es perfecta.

Usando esta lista:

http://www.robotstxt.org/db.html

y este generador de archivo .htaccess en esta página http://incredibill.me/htaccess-block-user-agent

ya con el archivo creado, simplemente resto ponerlo en la carpeta www de apache y reiniciar el servidor, con esto se arreglo el problema de los web crawlers que alentaban el procesador y las búsquedas en mi instancia de Koha.

Espero que esta información les sea de ayuda a quien logre encontrar esta entrada.



martes, 10 de mayo de 2016

Escribir un archivo en Java,

public void archivoSalida(String texto) throws IOException {
        String ruta = "hola.txt";
        File archivo = new File(ruta);
        BufferedWriter bw;
        if(archivo.exists()) {
            bw = new BufferedWriter(new FileWriter(archivo, true));
            bw.write(texto);
        } else {
            bw = new BufferedWriter(new FileWriter(archivo));
            bw.write(texto);
        }
        bw.close();
    }

Este método recibe un String para poder escribirlo en un archivo, sí el archivo existe lo abre y escribe, no borra el contenido del archivo solo escribe la final, esto se logra con el segundo parámetro del constructor del FileWrite al cual se le envía TRUE para escribir y FALSE para sobrescribir 

sí el archivo no existe lo crea y escribe en el.


miércoles, 24 de febrero de 2016

VBox: Kernel driver not installed (rc=-1908)

En linux me dio la casualidad que queria correre una maquina virtual en VBox y resulto el siguiente error

"The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing
'/etc/init.d/vboxdrv setup'
as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary."

Bueno lo que leei  que se usa para arreglarlo, es desintalar el viejo VBox e instlarlo de nuevo

sudo apt-get install linux-headers-generic build-essential dkms
sudo apt-get remove virtualbox-dkms
sudo apt-get install virtualbox-dkms

viernes, 29 de enero de 2016

Vaciar papelera por completo en Linux

Para que este blog no se oxide, aquí el comando que utilice para vaciar la papelera con un archivo que no se dejaba borrar.



$ sudo rm -rf ~/.local/share/Trash/files/*