Evaluar extensión de archivo con java

Una forma simple de poder hacer esta validación es implementando el método accept de la clase FilenameFilter, entonces imaginemos que queremos saber si tenemos uno o mas archivos “zip” en el directorio “/home/nachxs/Documentos/ClasesPrueba”, para esto solo haremos lo siguiente:

package evalextension;

import java.io.File;
import java.io.FilenameFilter;

/**
*
* @author nachxs
*/
public class Main {

  public static void main(String[] args) {
    String path = "/home/nachxs/Documentos/ClasesPrueba";
    File fi = new File(path);
    File[] listaObjetos = fi.listFiles();
    for (int i = 0; i < listaObjetos.length; i++) {
        if (new EvaluaExtension().accept(listaObjetos[i], ".zip")) {
           System.out.println("Se encontro archivos zip: " + listaObjetos[i].getPath());
        }
    }
  }
}

class EvaluaExtension implements FilenameFilter {

    public boolean accept(File dir, String extension) {
        return dir.getName().endsWith(extension);
    }
}

Este es el directorio en donde realizmos la busqueda:

Básico para muchos, pero para otros espero les sirva.

TIP: Añadiendo subtitulos a un video avi

Existen muchas herramientas para realizar este tipo de proceso, pero si gustas real izarlo de manera rápida y simple, basta con instalar Mencoder, que nos es mas que un codificador de video libre. Entonces sin mas vuelta que darle supongamos que tenemos el video “MiVideo.avi” y los subtitulos “subtitulos_es.srt”, haremos lo siguiente:

$ mencoder MiVideo.avi -sub subtitulos_es.srt -oac copy -ovc lavc -o MiVideo_SubES.avi -subcp latin1 -subfont-text-scale 2.8

Y ya esta, eso seria lo mas rapido y accesible con lo cual podrias realizar este proceso. Cabe aclarar que en -subcp he colocado latin1 porque al colocar utf-8 tuve algunos inconveniente con algunos caracteres, pero eso dependera de como tu lo dispongas

Mi Escritorio: Fedora 15 y Gnome3

Hace unos días decidí probar Fedora 15, ya que es una distro que suelo usar junto a ArchLinux, para ver como se comportaba la nueva versión de Gnome, y la verdad que siendo un producto que recién esta en pañales me ha parecido en cierta forma estable, salvo algunos inconveniente que he tenido básicamente al querer cambiar los temas y cosas de este tipo, pero son cosas que en el camino se irán corrigiendo definitivamente. Es interesante ver como Gnome ha optado por una nueva forma de integrar las aplicaciones, que en lo particular a mi me gusta mucho, se ve que esta mas trabajado y definitivamente ya no esta la sensación algo “sosa” que dejaba la versión anterior de Gnome al terminar de instalar un distro cualquiera que sea. A primera impresión con lo que se instala inicialmente ya se muestra con una apariencia mas que aceptable. Definitivamente este proyecto seguirá mejorando varios puntos y espero de aquí a un tiempo tener un Gnome que compita ya con KDE.

Luego de algunas customizaciones a mi escritorio aquí les muestro una imágenes:

Postfix Recipient BCC Maps

Hace poco revisando y retomando algo de configuración de un servidor de correo (con postfix), estaba probando la forma de poder realizar un forward de un correo pero dejado una copia del correo al usuario origen.  Todos sabemos que para realizar este proceso se necesita de un usuario origen y un destino básicamente. Actualmente se trabaja con mysql para almacenar a los usuarios y dominios; ademas de una tabla en donde se configura el forward, pero resulta que cuando se realiza este proceso (forward) nunca queda el correo para el usuario origen o por lo menos no he logrado configurar eso hasta el día de hoy en donde estuve revisando información acerca de la propiedad recipient_bcc_maps que provee postfix.

Básicamente tiene la misma estructura que para un forward; para eso crearemos un archivo al cual llamaremos recipient_bcc dentro de la ruta /etc/postfix (esto dependera de casa uno) y dentro de este colocaremos lo siguiente:

# recipient_bcc - nachxs
usuario_01@dominio01.com  usuario_02@dominio02.com
...

En donde usuario_01 seria el origen y usuario_02 el destino, es decir que cada vez que le llegue un correo al usuario usuario_01, automáticamente se enviara un copia al usuario usuario_02.

Una vez creado el archivo con el contenido que ustedes definan utilizaremos el siguiente comando para poder generar un archivo que pueda ser leido por postfix:

postmap /etc/postfix/recipient_bcc

Este comando debería devolver el archivo recipient_bcc.db, entonces ahora solo nos quedaria leerlo desde postfix y para esto agregaremos lo siguiente en el archivo de configuración main.cf, en mi caso en la ruta /etc/postfix/main.cf

...
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
...

y listo, ahora solo nos quedaría reiniciar el servicio y probar. Si alguien puede compartir alguna otra manera de poder realizar un forward dejando una copia en el origen seria genial.

Actualizar certificados de Glassfish V2

Hace poco revisando información con respecto a los certificados que utiliza Glassfish para el tema de seguridad, me entero que los mecanismos de seguridad para la transmisión de mensajes requieren de los certificados con el estándar X.509 en su versión 3 y Glassfish trae por defecto dichos certificados pero en su versión 1, hago la aclaración que estoy trabajando con Glassfish V2. Entonces veremos una forma rápida y práctica de actualizar dichos certificados; para esto descargaremos este paquete que contiene dichos certificados y el script correspondiente para su actualización.

Entonces desempaquetamos el archivo y nos ubicamos dentro de ese directorio, en este caso tiene por nombre copyv3 y luego debemos tener en cuenta que si nosotros hemos cambiado la clave del keyStore anteriormente en algun momento configurando Glassfish, debemos modificar el archivo build.xml en la opción AS_KEYSTORE_PASSWORD y colocar dicha clave, si no en todo caso dejar todo por defecto (clave por defecto: changeit). Y luego hacemos lo siguiente tal como se muestra en la imagen:

Como pueden observar el primer comando que utilizo es export AS_HOME=/opt/glassfish esto por que el script busca esa variable de entorno seteada con la ruta de instalación de Glassfish, como pueden observar en mi caso yo lo tengo en /opt/glassfish. Luego el comando /opt/glassfish/lib/ant/bin/ant, esperamos unos segundos mientras se configura, luego lo que tenemos que hacer es iniciar el servicio y listo. Lo que ahora queda es verificar si se actualizo correctamente, para esto haremos lo siguiente:

Y listo eso seria todo. Espero les sea de utilidad, por el momento estoy trabajando esto como paso inicial para poder configurar webservices seguros.

Instalando Nessus en Fedora 12

Ya hace unos días que me estoy adentrando a este mundo de la seguridad de la información y como todo buen principiante siempre debe de empaparse de toda la información necesaria y sobre todo de las herramientas que nos puedan proporcionar dicha información. Nessus es una de estas herramientas, ya que nos provee mediante un escaneo a una red o redes  especificas un reporte de todos los puertos abiertos relacionados a servicios específicos, las posibles vulnerabilidades que estas puedan presentar, etc. Entonces debido a la gran importancia de este aplicativo decidí instalarlo para comenzar a realizar mis primeras pruebas. Manos a la obra

Lo primero que tenemos que hacer es descargar el paquete respectivo desde la pagina de Nessus, en este caso como estamos usando Fedora 12, lo descargamos desde aqui. Una vez descargado procedemos a instalarlo, bien haciendo doble click sobre el paquete o también rpm -Uvh Nessus-4.2.0-fc12.i386.rpm.

Terminada la instalación todo el aplicativo se ubicara dentro del directorio “/opt/nessus” y entonces procedemos a realizar la configuración. Lo primero que haremos sera crear un usuario con el que trabajaremos una vez configurado todo y para eso hacemos lo siguiente tal como se muestra en la imagen:

Como verán de esa manera agregamos en primera instancia un usuario que tendrá el rol de “admin”, solo es seguir las instrucciones. Una vez terminado este proceso, entonces tendremos que registrarnos y para esto nos dirigimos aquí y seleccionamos el tipo HomeFeed, ya que de esta forma podríamos registrarnos gratuitamente, aceptamos las condiciones y nos pedira una cuenta de correo al cual se enviara el código de registro, entonces una obtenido el código lo que haremos sera lo siguiente:

Y de esta manera ya tendremos nuestro Nessus registrado debidamente, esto nos permitirá tener lo plugins necesarios para los trabajos que haremos de aquí en adelante. Ahora solo nos queda iniciar el servicio para que los plugins se descarguen y podamos trabajar conectándonos mediante el cliente web. Para esto hacemos lo siguiente:

Y listo, se comenzara a descargar los plugins y el servicio se iniciara. Ahora como podrias comprobarlo, seria haciendo los siguiente:

Entonces de esta manera vemos que el puerto 8834 esta en escucha lo cual nos indica que ya podemos conectarnos a través del navegador, para esto solo escribimos https://127.0.0.1:8834 y nos mostrara la pantalla de logueo en donde colocaremos el usuario y password que habíamos registrado inicialmente tal como se muestra en la imagen:

Y eso seria todo. Mas adelante publicare un tutorial de como usarlo en base a experiencias propias y no propias, por el momento solo nos queda ir explorando. Espero les sea de utilidad.

Turpial: nuevo cliente twitter

Revisando por la web algunos clientes para twittear, encontre uno muy simpatico, se llama Turpial, esta escrito en python y la verdad he quedado satisfecho con este, anteriormente usaba gwibber pero la verdad desde que cambio su apariencia y al notar que parecia consumir mas recursos, decidi cambiarlo. Actualmente el proyecto Turpial sigue en desarrollo y para lo que lo quieran probarlo, hay un paquete listo para instalar en Fedora y un manual de instalación para Ubuntu.