jueves, 28 de abril de 2016

ABC en base de datos Postgresql desde Java


La versión anterior de este programa 1.0.0, aun utilizaba la decoración de ventanas por default de Java o el que nos da Netbeans, en este caso lo actualizé y ahora se adapta a la interfaz que se utiliza en el SO en el que se ejecute, por ejemplo, toda la interfaz que ahora ven en las imágenes, es de gtk, si lo ejecutan en windows, automáticamente utilizará se adaptará al gui de la interfaz de windows.

Lo pueden descargar desde mi sitio de GItHub, desde ahora lo subiré a ese sitio, ya que mega al parecer está por ser cerrado, y si eso pasa realmente, pues los archivos alojados ahí, se perderán.





Algunas capturas de pantalla:

Caulquier duda o sugerencia en los comentarios por favor.

Descargar desde máquinas virtuales


Uno de los problemas más comunes al estar descargando o buscando contenido en la red, es la fácil infección del equipo por virus, sobre todo si se trata de Windows. En lo personal me preocupaba por los virus, ya que como suele ser, instalar o probar los programas descargados de la red, suelen traer sus pequeñas graciosadas.

Incluso aunque uso una distro con GNU/linux, aún así me daba paranoía descargar desde mi usuario directo, por lo tanto lo que hice fue, instalar en una máquina virtual con virtual box, windows 7. Desde esta máquina descargo todo el software, peliculas, probar los programar, subirlos a la red, utilizo los proxys necesarios, probar antivirus, etc.

Una vez instalada esa máquina virtual, instalar todo el software necesario, jdowloader, megasyn, office, winrar, etc. Lo más divertido de esto, es que no tienes que instalar un antivirus, ni siquiera preocuparte por si se infecta o no. Si se llegara a infectar, solo la eliminas y ya.

Todos los archivos que se descarguen, se pueden guardar en una carpeta compartida entre la máquina anfitrión (máquina real) y la máquina virtual, o pasarlos a una memoria usb y luego copiarlos a la máquina anfitrión.



Para este tipo de virtualizaciones existen muchas opciones: la que más utilizo es virtual box, sobre todo porque es compatible con linux, windows y mac, está uno nativo de fedora que es box (cajas), pero tiene ciertas deficiencias, y luego está vmware, sin embargo es de paga.

Así que por ahora, me enfocaré en VirtualBox:

Descargar desde aquí:

Debo mencionar, que este programa lo pueden instalarlo, en windows, y en windows crear su propia máquina virtual con windows (es un poco redundante, pero lo pueden hacer.), no lo recomiendo mucho, ya que windows por sí solo consume muchos recursos, lo ideal sería instalarlo sobre algún linux (Ubuntu, Fedora, LinuxMint, Centos, OpenSuse, ect).

Por el momento no mostraré el proceso de instalación, ya que sería muy largo el post, además difiere un poco en instalación dependiendo del  Sistema Operativo elegido, por mientras les dejo unas capturas.
 




 
 
VMware información aquí:
www.vmware.com/products/workstation
 

miércoles, 27 de abril de 2016

Altas, Bajas y Consultas base de datos PostgreSQL desde Java


Para los que ya ejecutaron y probaron mi software de gestión de base de datos mysql desde java, ahora les presento la versión para postgresql, en su versión 9.5 de postgresql.

Incluye:
  1. Guardado de fechas en mysql
  2. Recuperación de las fechas y colocadas en una tabla
  3. Colocado de fechas en un JDateChooser
  4. Guardado de contraseñas encriptadas en md5 en mysql
  5. Validación de usuarios a través de la contraseña encriptadas
  6. SplashScreen con barra de progreso modificable.
  7. Modificar la información del usuario en configuración de la cuenta.
  8. Login.
  9. Creación de usuarios.
  10. Detección al presionar enter: es decir, que cuando se presiona enter en un cuadro de texto automáticamente se ejecuta la acción correspondiente.
  11. Altas, bajas, modificaciones, busquedas en la BD.
  12. Uso de JDialog.
  13. Búsqueda datos mientras se escribe: es decir, se van filtrando los registros al escribir.
  14. Detección de la tecla scape: es decir, en algunas ventanas, se detecta la tecla scape, para indicar que se cancela la edición o modificación.
  15. Uso de ícono para la aplicación.
  16. Deshabilitar la opción del botón cerrar.
  17. Uso de abrir y regresar a otro jframe.
  18. Uso de clases.
  19. Uso de objetos completos.
  20. Manipulación de objetos como registros.
  21. Incluye Script de la BD, para ser ejecutado desde pgAdmin o psql.

Lo pueden descargar desde mi sition de github: https://github.com/jesusferm/gestionbasedatospostgresql/

Este programa no incluye lo siguiente:
  1. Módulo de respaldo de la BD.
  2. Restauración de la BD.
En las actualizaciones siguientes subiré esa parte.

lunes, 25 de abril de 2016

Validar JTextField que acepte números decimales


A veces es necesario validar campos de texto de tal modo que el usuario cometa el mínimo error posible, ya que siempre es posible que lo haga.

Recientemente necesité validar unos jtextfield, en donde soloa aceptaban números decimales, pero no reduje el código siguiente:
Si alguien conoce algún métod mucho menor, favor de comentar:
if(jtxtPeso.getText().length() >= 8){
        evt.consume();
}
 char car = evt.getKeyChar();
 char text[];
 int count = 0;
 text = jtxtPeso.getText().toCharArray();
 for(int i = 0 ; i< text.length; i++){
        if(text[i] == '.'){
                count++;
       }
 }
 if(count>=1 && evt.getKeyChar() == '.'){
       evt.consume();
 }
  if((car!='0' && car!='1' && car!='2' && car!='3' && car!='4' && car!='5'
                && car!='6' && car!='7' && car!='8' && car!='9' && car!='.')){
            getToolkit().beep();
            evt.consume();
 }
Este código se agrega en el evento siguiente del jtextfield:

private void jtxtPesoKeyTyped(java.awt.event.KeyEvent evt) {

}


Y espero sus comentarios

miércoles, 20 de abril de 2016

Reconocer dispositivos con Formato NTFS en Centos.

NTFS (del inglés New Technology File System) es un sistema de archivos de Windows NT incluido en las versiones de Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, Windows 7, Windows 8 y Windows 10. Está basado en el sistema de archivos HPFS de IBM/Microsoft usado en el sistema operativo OS/2, y también tiene ciertas influencias del formato de archivos HFS diseñado por Apple.

NTFS permite definir el tamaño del clúster a partir de 512 bytes (tamaño mínimo de un sector) de forma independiente al tamaño de la partición.

Pero en Centos este formato no se reconoce de manera automática, es necesario instalar alguns librerías.

Primero descargar el archivo desde aquí:
wget http://mirrors.rit.edu/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
O buscarlo manualmente, ya que cada vez que se actualiza quitan la versión anterior, para esto solo hay que visitar:
http://mirrors.rit.edu/fedora/epel/6/x86_64/

Ahora a instalarlo:
sudo rpm -ivh epel-release-6-5.noarch.rpm
Instalar también:
sudo yum install fuse fuse-ntfs-3g 

Y listo, con eso ya se pueden montar particiones NTFS en centos.

jueves, 14 de abril de 2016

Guardar fecha Date en MySQL desde JAVA

Les presento ahora la versión 2.1.2 de mi proyecto de ejemplo que realizo en java. Debo aclarar que este proyecto únicamente lo desarrollo para todos aquellos que se estén iniciando en java. Está por demás decir, que existen muchas maneras que programar los métodos que yo utilizo, algunos nos complicamos más, otros lo simplifican, así que las ideas presentadas aquí, son simplemente, una manera más de cómo realizar dichos métodos.

En ésta versión se tiene:
[v2.1.2]
  1. Guardado de fechas en mysql
  2. Recuperación de las fechas y colocadas en una tabla
  3. Colocado de fechas en un JDateChooser
[v2.0.1]
  1. Guardado de contraseñas encriptadas en md5 en mysql
  2. Validación de usuarios a través de la contraseña encriptadas
[v2.0.0]
  1. SplashScreen con barra de progreso modificable.
  2. Respaldar la base de datos
  3. Restaurar la base de datos
  4. Modificar la información del usuario en configuración de la cuenta.
[v1.0.0]
  1. Login.
  2. Creación de usuarios.
  3. Detección al presionar enter: es decir, que cuando se presiona enter en un cuadro de texto automáticamente se ejecuta la acción correspondiente.
  4. Altas, bajas, modificaciones, busquedas en la BD.
  5. Uso de JDialog.
  6. Búsqueda datos mientras se escribe: es decir, se van filtrando los registros al escribir.
  7. Detección de la tecla scape: es decir, en algunas ventanas, se detecta la tecla scape, para indicar que se cancela la edición o modificación.
  8. Uso de ícono para la aplicación.
  9. Deshabilitar la opción del botón cerrar.
  10. Uso de abrir y regresar a otro jframe..
  11. Uso de clases.
  12. Uso de objetos completos.
  13. Manipulación de objetos como registros.
  14. Incluye Script de la BD. 

 Descripción de los cambios principales:

Las fechas en java, de un jdate chooser, se pueden obtener en formato long, es decir, en dígitos númericos muy largos.
Algo así: 1460696400000, esto a su vez, se puede convertir a texto y guardarlo como una cadena en la base de datos. Al momento de extraerlo de nuevo, se convierte a long y se le envía como parámetro al método settime de un objeto date.

La verdad, no sé si sea esta la manera correcta de guardar la fecha en mysql, sin embargo me pareció muy fácil de utilizarlo de esta forma.

Además, en este mismo formato, también se le puede asignar a un JDateChooser.

Métodos principales:

Para obtener la fecha en formato cadena de un obejto JDateChooser, se hace lo siguiente:

String fecha:
fecha= Long.toString(jdateFechaEvento.getDate().getTime());

Ahora que ya se tiene la fecha en un formato de texto, ésta, ya se puede enviar a un método que la guarde en mysql.

Obtener la fecha de mysql y pasarla a un formato de fecha, por ejemplo a este "2/4/2016", el proceso es el siguiente:

Date fechaEvento = new Date(); //se crea e inicializa un objeto de tipo Date
Calendar c; //Se crea un objeto de tipo calendar
String fecha; //la cadena en la que se guardará la fecha
/*Este proceso, es en realidad el while de la consulta que se realiza a la base de datos, para entenderlo mejor, descargar el ejemplo completo. Pero básicamente lo que se hace es, obtener la fecha en formato String, convertirla a long y asignarla al objeto tipo Date, usando el método setTime, el cual recibe un long*/
fechaEvento.setTime(Long.parseLong(temp.getFecha_evento()));
c = Calendar.getInstance(); //se obtiene una instancia de calendar, con la fecha actual.
c.setTime(fechaEvento); //se le asigna a calendar la fecha obtenida de la base de datos.
/*Se asigna a la cadena el formato deseado manualmente, este formato también se puede obtener de manaera más fácil con getdateformat, pero quise hacerlo de este modo*/
fecha = Integer.toString(c.get(Calendar.DATE))+"/"+
Integer.toString(c.get(Calendar.MONTH))+ "/"+Integer.toString(c.get(Calendar.YEAR));

Bueno, sin más, pueden descargarlo desde aquí:


Gracias por visitar.

jueves, 7 de abril de 2016

Instalar Postgresql 9.5 y pgAdmin3 en Fedora 23

Instalación de Postgresql 9.5 y pgAdmin en Fedora 23.

1.- Es la más reciente actualización del gestor de base de datos postgresql. Si ya tienes instalado postgresql, es necesario desinstalarlo:

En caso de tener instalado la versión 9.4, se desinstala así,
sudo dnf remove postgresql-server pgadmin3

Al desinstarlo, quedaran las configuraciones anteriores, pero no hay problema con eso.

2.- Abrir la terminal con root:
su -
3.-  Instalar el respositorio oficial para la nueva versión:
#Fedora 23:
rpm -Uvh http://yum.postgresql.org/9.5/fedora/fedora-23-x86_64/pgdg-fedora95-9.5-3.noarch.rpm

#Fedora 22
rpm -Uvh http://yum.postgresql.org/9.5/fedora/fedora-22-x86_64/pgdg-fedora95-9.5-3.noarch.rpm

#Fedora 21
rpm -Uvh http://yum.postgresql.org/9.5/fedora/fedora-21-x86_64/pgdg-fedora95-9.5-2.noarch.rpm
4.-  Instalar los paquetes:
sudo  dnf install postgresql95-server postgresql95 pgadmin3
5.- Iniciar initdb.
/usr/pgsql-9.5/bin/postgresql95-setup initdb
6.- Iniciar postgresql
#Iniciar postgresql
systemctl start postgresql-9.5
#Indicar que inicie postgresql con el SOsystemctl enable postgresql-9.5
7.- Una vez terminado ingresamos:
su - postgres
#Teclear lo siguiente:
$ psql
psql (9.5.0)
Type "help" for help.
#Y mostrará la siguiente línea
postgres=#
8.- Crear una contraseña para el usuario de postgresql:
postgres=# \password postgres

9.- Configurar archivo:
a) en caso de ser una instalación límpia utilizar:
gedit  /var/lib/pgsql/data/postgresql.conf

#Descomentar las siguiente líneas, tienen que quedar así.
listen_addresses = '*'  # what IP address(es) to listen on;
port = 5432    # (change requires restart)
b) en caso de que sea una actualización de cualquier otra versión la versión 9.5:
gedit /var/lib/pgsql/9.5/data/postgresql.conf

#Descomentar las siguiente líneas, tienen que quedar así.
listen_addresses = '*'  # what IP address(es) to listen on;
port = 5432    # (change requires restart)
10.- Agregar la siguiente línea en este archivo:, para la modificación de estos archivos, hay dos opciones.
a) en caso de ser una instalación límpia utilizar:
gedit  /var/lib/pgsql/data/pg_hba.conf

#AGregar la siguiente línea debajo de las que se parezcan a esta:
host    all             all             127.0.0.0/24            md5
b) En caso de que ya hayamos instalado la versión anterior y la desinstalamos:
gedit /var/lib/pgsql/9.5/data/pg_hba.conf

#AGregar la siguiente línea debajo de las que se parezcan a esta:
host    all             all             127.0.0.0/24            md5

11.- Ahora ejecutamos:
#Iniciar postgresql
systemctl start postgresql-9.5

Y listo, tienes instalado postgresql 9.5.

miércoles, 6 de abril de 2016

Restaurar HDD desde imagen creada con Clonezilla


Como ya he explicado en la entrada anterior http://linuxgx.blogspot.mx/2016/04/crear-una-imagen-clonada-de-un-hdd-con.html, lo que es clonezilla, en cómo se respalda en imagen todo un hdd.

Bueno, ahora lo que mostraré cómo restaurar un hdd a partir de esta imagen creada previavente.

Iniciar el equipo con el iso  de clonezilla, seleccionar el idioma.

El teclado lo dejamos tal cual.

Iniciar Clonezilla, presionando enter.

Seleccionar la primera opción, ya que usaremos una imagen para restaurar el SO.

Indicar que la imagen está almacenada localmente.

En este punto, es donde conectan la usb o disco duro donde esté almacenada la imagen. Una vez que hayas insertado la usb, presionar enter. Ojo, es muuy necesario conectar el dispositivo antes de proseguir, ya que si no se hace, Clonezilla no detectará que ya hay una imagen y que se restaurará.

Seleccionar el disco en donde está almacenada la imagen.

En caso de que hayan guardado la imagen en el directorio raiz, solo basta con presionar enter.

Iniciará el proceso y presionamos enter de nuevo.

Seleccionar el modo Beginner.

Seleccionar la opción restoredisk y automáticamente buscará una imagen, obviamente es necesario establecer el directorio donde esté almacenada la imagen.

Seleccionar la imagen y presionamoe enter.

Seleccionar el disco duro en el que se instalará la imagen.

Seleccionar la primera opción en caso de querer verificar la imagen antes de proseguir.

 Una vez seleccionado la opción, presionamos enter y nos preguntará dos veces, para ya iniciar el proceso de restauración.


Esperar a que termine el proceso y listo.

Una vez que termine, nos mostrará los resultados de sucess, o en caso contrario mostrará los errores, basta reiniciarlo y listo. (Quitar el DVD o USV de clonezilla)

martes, 5 de abril de 2016

Crear una imagen clonada de un HDD con Clonezilla


Una de las tareas más importantes al administrar un servidor, sea cual sea, son los "backups" y que estos estén disponibles en cualquier momento por si se cae el principal. A veces no solo es necesario que estén disponibles los archivos, si en sí todo el sistema completo para montarlo en caliente. Claro, que las empresas grandes, no solo tienen un servidor en línea por si se cae uno, sin embargo, cuando hablamos se servidores a pequeña escala, o un servidor casero, cualquier medida de seguridad para respaldar información, es poca.

Hoy les quiero platicar sobre Clonezilla, es un software especializado en la clonación perfecta de discos duros o particiones del mismo, es un software libre, gratuito y se maneja principalmente en consola, a pesar de esto es relativamente sencillo de usar.

Descargar de aquí

Este LiveCD viene integrado en parted magic o en su propio live cd, esto es bastante útil porque puedes copiar discos completos y sus particiones, incluido el de tu sistema operativo principal.

Explicare como clonar una partición entera usando este software, trataré de hacerlo lo más resumido posible, utilizaremos la versión "novato". Posteriormente, escribiré un nuevo post, donde restauraré un disco duro utilizando la imagen creada en este blog.

Para ésto necesitarás:
  • Paciencia y ganas de hacerlo.
  • LiveCD de clonezilla.
  • Dejar el miedo a la consola ya que la clonación es muy sencilla además en consola es mucho más rápido que si lo trabajamos de manera gráfica.
  • Leer muy bien todas las indicaciones.
  • Recomiendo probar este proceso en virtualbox o en vmware antes de hacerlo en una maquina real para evitar pérdida de datos accidental.
En este ejemplo usaré el cd de clonezilla:

1.- Inicias tu equipo con el LiveCD de Clonezilla:
Te aparecerá esto, seleccionar el tamaño de la pantalla que desees, o que soporte tu equipo. Esto está realizado sobre VirtualBox.

Seleccionar el idioma de tu preferencia, en este caso seleccioné el español. Para bajar o subir, utilizar las flechitas del teclado, para seleccionar presionar enter, para saltar a otro botón presionar tab.

Aquí, puedes configurar el teclado, pero es recomendable dejarlo tal cual está configurado.
 Una vez, seleccionado la configuración del teclado, iniciar Clonezilla.

Tienes dos opciones, una: crear una imagen del disco duro y sus particiones para restauararlo en otro disco que no está conectado a la pc; o clonarlo directamente al otro disco, en este ejemplo, primero creamos la imagen del disco, es decir, seleccionamos la primera opción.

Indicamos que la imagen será guardada en un dispositivo local conectado al equipo que estemos usando.

Al presionar enter en esta sección, nos mostrará un mensaje en color amarillo, lo cual indica, que si queremos guardar la imagen en un dispositivo externo usb/hdd, externo que se conecte justo en este paso. Y así lo hacemos, lo conectamos y a continuación presionar enter.  Ojo, no le pasará nada al disco duro en el que lo guardemos, recordar que solo es la imagen, no es que se esté clonando.

A continuación seleccionar el dispositivo en donde se quiera guardar dicha imagen, en micaso guardé la imagen en una USB de 32GB, ojo, si el disco que quieren clonar es muy grande o tienen mucha información, así mismo tendrá que ser el dispositivo en el que se guarde. Clonezilla, reduce a 4gb cada 100GB, pero en ocaciones no es posible, por lo tanto considerar esa parte.

Si el sipositivo seleccionado en donde se va a guardar la imagen clonada, tiene subcarpetas, les presentará una opción para que seleccionen en qué directorio la quieren guardar, de preferencia seleccionar la raíz, de todos modos se crea una carpeta automáticamente.

Una vez seleccionada la imagen, presenta la siguiente información, presionar enter para proseguir el proceso.

Aquí, seleccionamos el modo "Beginner" , a menos que ya utilicen la consola de manera experta, seleccionar el modo "Expert".

Seleccionar, la primera opción, ya que lo haremos es, Guardar la clonación del disco como imagen.

Ahora, escribir el nombre de la imagen a guardar, de preferencia dejarlo como está.

Seleccionar el disco a clonar; aquí puedes seleccionar el disco, si hubiera más discos aquí lo puedes seleccionar. Con las flechitas se desplaza arriba y abajo, con la barra se marca el disco a continuación presionar enter.

Si requieres comprobar el sistema antes de clonarlo, aquí lo puedes seleccionar.

Si deseas comprobar la imagen grabada después de terminado el proceso, entonces activar dicha opción aquí.

Además, puedes cifrar la imagen, ojo, aquí pedirá más información para cifrar.

Una vez terminado, entonces damos enter para continuar con el proceso.

Nos preguntará dos veces si estamos seguros con la información especificada, de ser así, presionamos los enter necesarios para terminar con el proceso.

 Finalmente, esperamos a que termine el proceso de clonación.


Por el momento, solo expliqué el proceso de clonar el disco, pronto pondré la otra parte que es restaurar el sistema a partir de la imagen creada.