martes, 18 de marzo de 2014

Instalación Django y Configuración (Python)

Django es un Framework de desarrollo de aplicaciones rápido, pragmático y con un diseño limpio basado en Modelo-Vista-Template.

Existe abundante información en la web acerca de lo que es Django Framework y por tal razón no profundizaré en eso.


Aquí les enseñare como instalar y configurar Django para poder comenzar a trabajar con nuestros proyectos: 


PASO 1. Instalar Python Descargar Python
   - Luego comprobamos que se haya instalado correctamente:

 
PASO 2. Instalamos Django. 
Lo descargamos *.zip Descargar Django y lo compilamos con el CMD:
- Extraemos Django en alguna unidad  y con el cmd ubicamos el archivo y escribimos
       C:/Django-1.4.1/ python setup.py install

- Comprobamos que todo este correcto
       C:\>python
       >>>import django
       >>>django.VERSION
       (1, 4, 1, 'final', 0)

PASO 3. Instalación de APPS. 
- Hasta aquí ya tienes Django instalado en tu PC. Ahora es muy necesario instalar algunas APPS Django que son paquetes Python diseñados específicamente para usarse en un proyecto Django y que nos ayudaran en la migración, sincronización de BD, reportes pdf, etc. Los mas usados son:
  • django-debug-toolbar-0.9.4
  • django-extensions-1.0.3
  • django-mptt-master
  • django-registration-0.8
  • easy-thumbnails-1.2
  • setuptools-2.1
  • sorl-thumbnail-master
  • South-0.7.6
  • thumbs-v0.4
  • virtualenv-1.11
  • xhtml2pdf-0.0.5
Aquí les dejos todas estas apps comprimidas Descargar APPS
Para instalarlas es igual como instalamos Django, descomprimimos y vamos accediendo a las carpetas y hacemos
                C:/carpeta app/ python setup.py install

Todo esto se instalara en C:\Python27\Lib\site-packages
Debes tener en cuenta que algunas APPs dependen de otras y si durante la instalación te arroja algún error debe de ser porque ducha APP aun no ha sido instalada.

PASO 4. Base de Datos y Configuración del PATH
-Primero tienes que instalar con normalidad tu Motor MySQL
-Luego necesitamos instalar dos aplicativos extras(MySQL-python-1.2.3.win32-py2.7) Descargar AQUI e instalarlas.

-Luego que instalamos las APPs necesitamos configurar el PATH del sistema para que python pueda reconocerlas y hacer uso de ellas; nos vamos a la carpeta donde se instalo python y copiamos la dirección y lo pegamos en el path.

              C:\Python27\Lib\site-packages



Listo con esto ya tendríamos Instalado Python con Django y las principales apps. Luego ya podríamos comenzar a crear nuestros proyectos, correr nuestro servidor, sincronizar nuestros modelos, hacer migraciones etc, sin ningún problema.

En el siguiente post comenzaremos a desarrollar un proyecto desde cero.



lunes, 10 de marzo de 2014

Generación de Backup en Java

Hola, quiero compartir un ejemplo que permite generar Backup ó copias de respaldo de una BD y que me ha sido de gran ayuda al usarlo en aplicaciones que he desarrollado. Bueno Comencemos:

En el ejemplo muestro un ComboBox donde se listan todas las BD que tiene el motor de base de datos, en este ejemplo estamos trabajando con MySQL.

   private void ListaBD(){
      Connection con;
      PreparedStatement ps;
      ResultSet rs;
      try{
          //Preparamos la coneccion a la BD
         Class.forName("com.mysql.jdbc.Driver");
         con = DriverManager.getConnection("jdbc:mysql://localhost:3306","root","");
         //Preparamos consulta
         ps = con.prepareStatement("SHOW DATABASES");
         rs = ps.executeQuery();
         while(rs.next()){
             //Llenamos la lista 
            comboLista.addItem(rs.getObject(1));   
         }
      }
      catch(Exception e){
         JOptionPane.showMessageDialog(null, e.getMessage());
      }        
   }

Luego se crea el método para evento del boton "Backup", estamos usando un JFileChooser para especificar la ruta donde deseamos guardar nuestro backup.

   private void GenerarBackup(String bd){    
      //Creamos la ruta para guadar el backup
      int resp = FileChooser.showSaveDialog(this);   
      if(resp==JFileChooser.APPROVE_OPTION){
         //le añadimos la extencion *.sql
         dir=String.valueOf(FileChooser.getSelectedFile().toString())+".sql";      
         try{
            Runtime runtime = Runtime.getRuntime();
            File fichero = new File(dir);
            FileWriter fw = new FileWriter(fichero); 
            Process child = runtime.exec("C:/Archivos de programa/MySQL/MySQL Server 5.1/bin/mysqldump --opt --password= --user=root --databases "+bd+" -R");
         
            //Process es el que ejecuta el comando para buscar el mysqldump.exe
            InputStreamReader irs = new InputStreamReader(child.getInputStream());
            BufferedReader br = new BufferedReader(irs);

             //Aquí espesamos a sobrescribir el archivo *.sql

            String line;
            while( (line=br.readLine()) != null){
               fw.write(line + "\n");
               System.out.println(""+ line);
            }
            msg.setText("Se ha creador un archivo *sql en la ruta: \n"+dir);
            fw.close();
            irs.close();
            br.close();
            JOptionPane.showMessageDialog(null, "Backup generado correctamente", "Operacion completada",JOptionPane.INFORMATION_MESSAGE);
         }
         catch(Exception e){
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, "Error no se genero el backup por el siguiente motivo: " + e.getMessage(), "Verificar",JOptionPane.ERROR_MESSAGE);
         }
      }      

   }  

Nota: 
 Process child = runtime.exec("C:/Archivos de programa/MySQL/MySQL Server 5.1/bin/mysqldump --opt --password= --user=root --databases "+bd+" -R");
Es el que crea el proceso para ejecutar la consulta con el mysqldump, mi MySQL no tiene password pero si tuviera hay que ponerlo así: 

 Process child = runtime.exec("C:/Archivos de programa/MySQL/MySQL Server 5.1/bin/mysqldump --opt --password=tu_pass --user=user_bd --databases "+tu_bd+" -R");

Eso es todo y espero les ayude este post, aqui les dejo el ejemplo completo.
Descargar codigo fuente completo

lunes, 3 de marzo de 2014

Los 5 Mejores LookAndFeel para Java

Para los que hemos desarrollado aplicaciones en java para escritorio, siempre nos hemos encontrado con la inquietud  de querer cambiar el aspecto de nuestra aplicacion y por ende usabamos imagenes,  texturas de fondo, pero el aspecto de las ventanas siempre eran la misma.

Quisas algunos han usado Metal, CDE/Motif, Windows Windows Classic, que son muy conocidos y que tambien viene por defecto con algunos IDE (yo uso JGrasp); la cuestion es que estos no son tan llamativos a la vista.
Por tal motivo quisiera compartir algunos LookAndFeel que considero son mejores y elegantes.

Al final voy a colgar un pequeo ejemplo, es un codigo que obtiene datos desde una BD en MySQL. Para hacer todas las pruebas de LookAndFeel solo tienes que remplazar  la clase Void main por la de este post.

NOTA: Algunos LookAndFeel  necesitan de algun archivo *.jar. Lo descargas y pegas en la carpeta donde se encuentra tu proyecto o en donde esta instalado tu Java JDK.(C:\ProgramFiles\Java\jdk1.7.0_06\jre\lib\ext).
Descargar archivos jar

Comencemos: Despues de pegar los archivos JAR, Lo nico que hay que modificar es la clase: Public static void main()...

  1. JTattoo LookAndFeel  http://www.jtattoo.net/

   //jtattoo
            public static void main(String args[]){        
               try{            
                    UIManager.setLookAndFeel("com.jtattoo.plaf.acryl.AcrylLookAndFeel");   
                    FrmANALISIS form=new FrmANALISIS();
                    form.setVisible(true);         
             }
             catch (Exception e) {
            }         
}

    2.  LiquidLookAndFeel  http://www.docjar.com/jar_detail/LiquidLnF.jar.html

        Aqui es necesario importar el paquete:  import com.birosoft.liquid.LiquidLookAndFeel;

           public static void main(String args[]){      
                try{
                     javax.swing.UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");                                    FrmANALISIS form=new FrmANALISIS();
                     form.setVisible(true);      
                } catch (Exception e) {
                 }      
           }

   3. QuaquaLookAndFeel http://www.randelshofer.ch/quaqua/









  /*QuaquaLookAndFeel*/
     public static void main(String args[]){    
      System.setProperty("Quaqua.tabLayoutPolicy","wrap");
      try{
         UIManager.setLookAndFeel("ch.randelshofer.quaqua.QuaquaLookAndFeel");
         JFrame.setDefaultLookAndFeelDecorated(true);      
         FrmANALISIS frame=new FrmANALISIS();    
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.show();      
      }
      catch (Exception e){
      }  
   }


4.  NimbusLookAndFeel http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html


/*NimbusLookAndFeel*/
  public static void main(String args[]){           
    try{
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");      
        FrmANALISIS frame=new FrmANALISIS();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.show(); 
      }
      catch (Exception event){
        System.out.print("No se puede mostrar Look");
      }
   }

5. NimRODLookAndFeel http://nilogonzalez.es/nimrodlf/faq.html

 Aqui es necesario importar el paquete: import com.nilo.plaf.nimrod.*;

  //NimRODLookAndFeel//
   //   import com.nilo.plaf.nimrod.*;
    public static void main(String args[]){
      try{         
         NimRODLookAndFeel nf = new NimRODLookAndFeel();
         UIManager.setLookAndFeel( nf);      
         FrmANALISIS frame=new FrmANALISIS();
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.show(); 
      }
      catch (Exception event){
         System.out.print("No se puede mostrar Look");
      }
   } 

Nota: La ventaja de NimRODLookAndFeel es que podemos personalizar nuestro propio estilo de manera muy facil y practico http://nilogonzalez.es/nimrodlf/screenshots.html. Como hacerlo? Aqu te va:
  - Abre el archivo nimrodlf-1.2a.jar (Click derecho abrir con Java(ME))

  - Aqui puedes modificar los colores, fondo, bordes, estilo de tablas, InternalFrame, etc. y para ir viendo el resultado de prueba le das click en Test.
 - Luego que hayas personalizado tu tema a tu preferencia tienes que guardarlo. Para ello le das click en en boton Save en Config. Guardar en (C:\ProgramFiles\Java\jdk1.7.0_06\jre\lib\ext).
 - Al guardar se guardara como *.theme. Ejemplo: "Copia de ThemeAzul.theme"  que es el archivo que usaras en tu proyecto para obtener un aspecto muy diferente al original de  NimRODLookAndFeel.
Por ejemplo



*Para poder usar tu nuevo tema haces lo siguiente, remplazas nuevamnete tu Void main asi:

  public static void main(String args[]){
      try{
         NimRODTheme nt = new NimRODTheme( "Copia de ThemeAzul.theme");
         NimRODLookAndFeel nf = new NimRODLookAndFeel();
         nf.setCurrentTheme(nt);
         UIManager.setLookAndFeel(nf);
 
         FrmANALISIS frame=new FrmANALISIS();
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.show(); 
      }
      catch (Exception event){
         System.out.print("No se puede mostrar Look");
      }  
   }

 - Eso es todo, espero les aya sido de ayuda este material y aqui les dejo el codigo java completo. Compilarlo en JGrasp y restaurar la BD.

DESCARGAR CODIGO COMPLETO


jueves, 5 de julio de 2012

Manejo de algunos eventos AWT(JAVA )

Los eventos de los JButton, al igual que la creación del mismo, son sacados del paquete import java.awt.event (manual de referencia AWT) que viene por defecto cuando se instala Java y son muy fáciles de utilizar.


Aquí le dejo algunos ejemplos que unos amigos me pidieron.  Son 2 ejemplos, donde aprenderán a:
1. El manejo y creación de eventos de los JButton y JMenuItem
2. El manejo y creación de eventos de los JComboBox al seleccionar una items( también  la dependencia de un combo del otro).
3. Invocar o llamar a una ventana JInternalFrame desde un JFrame y asociarlo a un JDesktopPane.

Descargar manejo de JComboBox
Descargar manejo de JButton y JMenuItem

Espero que les se de mucha ayuda.
Cualquier sugerencia, pregunta o comentario, déjenlo acá.



lunes, 28 de noviembre de 2011

EnterpriseDB Company Apuesta a lo grande

Nuevo access2pgsql 1.0.1

Me es grato anunciar que por fin existe un software que nos solucionara muchos dolores de cabeza; el lanzamiento de access2pgsql, una herramienta de conversin de bases de datos  Access (MDB) a PostgreSQL (software libre, cdigo abierto), escrita en Visual Basic (Windows), que usa ActiveX Data Objects (ADO 2.8) y PsqlODBC.



Soporta la generacin de tablas, secuencias, ndices, restricciones (claves primarias y forneas) y migracin de datos.
Probado con Jet OLEDB 4.0 (archivos MDB) y posiblemente funciona para otras bases de datos de entrada.

Ms informacin, descargas de cdigo fuente y binarios de:
http://pgfoundry.org/projects/access2pgsql

domingo, 20 de noviembre de 2011

Creación de Login de Usuario en Java

Hoy vamos a ver un ejemplo de como hacer un logeo en un java. Este ejemplo esta programado en java código puro con el ID JGrasp( descargar JGrasp).

Para la demostración, primero espesaremos mencionar lo que utilizaremos:
  1. Las librerias(
                          import javax.swing.event.*;  
                          import javax.swing.*;
                          import java.awt.*;
                          import java.awt.event.*;
                       )
  2. Un "extends JDialog"
  3. JPasswordField y JTextFieldD
  4. Dos JButton
  5. Un método para un  evento---> Entrar_logeo(ActionEvent e)
  6. Las claves de acceso son usuario=admin y contraseña=123
Nota: La validación de usuarios esta definida a nivel de código java, pero lo ideal es que esté validando de alguna base de datos. Lo cual lo publicare en en otra publicación.
  • En la ventana, si iniciamos correctamente mostrará un mensaje así:

    if(password.equals("123")&&(usser.equals("admin")))   {                                                         JOptionPane.showMessageDialog(null, "Bienvenido al Sistema");
          }

miércoles, 16 de noviembre de 2011

La domótica beneficia a pacientes con daño cerebral

La vivienda domótica, en la que la tecnología nos hace la vida más fácil adaptándose a nuestras necesidades, es aún más útil para los enfermos crónicos, por ejemplo, los pacientes con daño cerebral.

Para ellos, el Servicio de Daño Cerebral del Hospital Aita Mennide Mondragón ha estrenado una vivienda tecnológica y arquitectónicamente adaptada para facilitar las acciones cotidianas de los pacientes con daño cerebral que presentan secuelas físicas como movilidad reducida y discapacidades cognitivas, entre otras.

El piso se compone de dormitorio, baño, cocina, y salón de estar. En él, mediante las más modernas soluciones de control de entorno, apoyo, y las últimas tecnologías domóticas, los pacientes podrán desarrollar las tareas más cotidianas de su vida con un alto grado de autonomía ya que aprenderán a iniciar las actividades básicas de la vida cotidiana tales como comer, desplazarse o realizar su aseo diario.

Sin pasillos y con pocos tabiques

La casa cuenta con puertas (motorizadas y correderas) de 90 centímetros para permitir el paso de sillas de ruedas,iluminación por detección de presencia en los lugares de paso y sistemas de llamada con manos libres. 

En el inmueble no existen pasillos ni hall de entrada; los tabiques y las puertas se han reducido a los mínimos indispensables y de esa manera se ha ganado espacio para la movilidad de personas con bastones o sillas de ruedas.
Para permitir el acceso a la vivienda, la persona con discapacidad puede utilizar el habitual interfono, su teléfono junto a la cama, un ordenador adaptado a la silla de ruedas o un tablet PC instalado junto a la cama.

Estos ordenadores incorporan el software “The Grid” con el que pueden controlar la iluminación, apertura y cierre de persianas, la cama motorizada, puertas, la TV o secuencias integradas con todos estos elementos.

Uso en el Dormitorio, baño y cocina


El dormitorio incorpora una cama con funciones poco habituales como la función “latera” que facilita los cambios posturales, inclinando lateralmente la propia cama.

El baño concentra el mayor número de elementos adaptados: lavabo sin pie, espejo inclinado, grifo monomando con sensor de presencia de las manos, inodoro sin pie a una altura de 47 cm que permite llegar a él con una grúa de pie, y barras laterales abatibles de largo especial ajustables en altura y anchura, entre otros.

La cocina prescinde de armarios altos, sitúa los enchufes y los interruptores en el borde externo de la encimera y utiliza cajoneras con ruedas y sistemas antivuelco.