martes, 14 de febrero de 2017


viernes, 2 de diciembre de 2016

TIPOS DE LICENCIAS DE SOFTWARE

"El procedimiento de conceder a otra persona o entidad el derecho de usar un software con fines industriales, comerciales o personales, de acuerdo a las cláusulas que en ella aparecen."
No es más que obtener la determinada licencia o autorización que le permita el uso legal de determinado programa, esta licencia es un documento bien sea electrónico, en papel original o número de serie autorizado por el autor.

DEFINICIONES:
Licencia: contrato entre el desarrollador de un software sometido a propiedad intelectual y a derechos de autor y el usuario, en el cual se definen con precisión los derechos y deberes de ambas partes. Es el desarrollador, o aquél a quien éste haya cedido los derechos de explotación, quien elige la licencia según la cual distribuye el software.
Patente: conjunto de derechos exclusivos garantizados por un gobierno o autoridad al inventor de un nuevo producto (material o inmaterial) susceptible de ser explotado industrialmente para el bien del solicitante por un periodo de tiempo limitado  .
Derecho de autor o copyright: forma de protección proporcionada por las leyes vigentes en la mayoría de los países para los autores de obras originales incluyendo obras literarias, dramáticas, musicales, artísticas e intelectuales, tanto publicadas como pendientes de publicar

Software libre: proporciona la libertad de:
- Ejecutar el programa, para cualquier propósito;
- Estudiar el funcionamiento del programa, y adaptarlo a sus necesidades;
- Redistribuir copias;
- Mejorar el programa, y poner sus mejoras a disposición del público, para beneficio de toda la comunidad.

Software de fuente abierta: Sus términos de distribución cumplen los criterios de distribución libre;
- Inclusión del código fuente;
- Permitir modificaciones y trabajos derivados en las mismas condiciones que el software original;
- Integridad del código fuente del autor, pudiendo requerir que los trabajos derivados tengan distinto nombre o versión;
- No discriminación a personas o grupos;
- Sin uso restringido a campo de actividad;
- Los derechos otorgados a un programa serán válidos para todo el software redistribuido sin imponer condiciones complementarias;
- La licencia no debe ser específica para un producto determinado;
- La licencia no debe poner restricciones a otro producto que se distribuya junto con el software licenciado;
- La licencia debe ser tecnológicamente neutral.

Estándar abierto: según Bruce Perens, el basado en los principios de
- Disponibilidad;
- Maximizar las opciones del usuario final;
- Sin tasas sobre la implementación;
- Sin discriminación de implementador;
- Permiso de extensión o restricción;
. Evitar prácticas predatorias por fabricantes dominantes

LOS DIFERENTES TIPOS LICENCIAS
Entre las diferentes licencias de software libre podemos destacar las siguientes:
Licencias GPL: es una de las más utilizadas y se suele denominar como GNU GPL. Con esta licencia el desarrollador conserva los derechos de autor,  pero permite su libre distribución, modificación y uso siempre y cuando, en el caso de que el software se modifique, el nuevo software que se desarrolle como resultado quede obligatoriamente con la misma licencia.

Licencia AGPL: se engloba dentro de las licencias destinadas a modificar el derecho de autor derivadas de GNU. La novedad de AGPL es que, aparte de las cláusulas propias de una GNU GPL, ésta obliga a que se distribuya el software que se destine a dar servicios a través de una red de ordenadores.

Licencia BSD: es un buen ejemplo de una licencia permisiva que casi no impone condiciones sobre lo que un usuario puede hacer con el software. El software bajo esta licencia es la menos restrictiva para los desarrolladores, ya que, por ejemplo, el software puede ser vendido y no hay obligaciones de incluir el código fuente.

Licencia Apache: el software bajo este tipo de licencia permite al usuario distribuirlo, modificarlo, y distribuir versiones modificadas de ese software pero debe conservar el copyright y el disclaimer. La licencia Apache no exige que las obras derivadas se distribuyan usando la misma licencia, ni siquiera que se tengan que distribuir como software libre, solo exige que se informe a los receptores que en la distribución se ha usado código con la licencia Apache.


Licencias Creative Commons: su definición se basa en cuatro condiciones:

ü  ‘Atribución’, con la cual se puede distribuir, exhibir, representar, se cite  autor
ü  ‘No comercial’, que no permite usar el software con fines comerciales
ü  ‘No derivadas’, con la cual no se puede modificar dicha obra
ü ‘Compartir igual’, que incluye la creación de derivadas siempre que mantengan la licencia original.


WEBGRAFÍA:
Ramón M.  (2005). TIPOS DE LICENCIAS DE SOFTWARE. [En Linea] Recuperado  de: http://www.informatica.us.es/~ramon/articulos/LicenciasSoftware.pdf {Diciembre 02, 2016}

InformaticaHOY   (2016). Tipos de licencia de Software. [En Linea] Recuperado  de: http://www.informatica-hoy.com.ar/software-libre-gnu/Tipos-de-licencia-de-Software.php {Diciembre 02, 2016}

viernes, 11 de noviembre de 2016

PANTALLA INICIO DE SESION

  • Mostrar / Ocultar contraseña
CODIGO:
Codigo para Radio Button
// Mostrar/Ocultar contraseña
        if (jbMostrar.isSelected()) {
            jPassword.setEchoChar((char) 0);

        } else {
            jPassword.setEchoChar('*');
        }

CALCULAR EDAD

  • Calcular edad en base a la fecha actual y la fecha de nacimiento.


CODIGO:
Componentes de inicio
Calendar c2 = new GregorianCalendar();
        jdFechareg.setCalendar(c2);

Metodo para calcular edad
public int obtener(Date registro, Date nacimiento) {
    int edad = 0;
    if (nacimiento == null) {
     JOptionPane.showMessageDialog(null, "DEBE INGRESAR UNA FECHA DE NACIMIENTO         VALIDA");

        }
        if (nacimiento.getYear() >= registro.getYear()) {
          JOptionPane.showMessageDialog(null, "LA FECHA INGRESADA NO ES                      CORRECTA");
        } else {
            edad = registro.getYear() - nacimiento.getYear();

        }
        return edad;

    }
  Boton Calcular


        Date fn = jdFechanac.getCalendar().getTime();
        Date fr = jdFechareg.getCalendar().getTime();
        int Edad1 = obtener(fr, fn);
        JOptionPane.showMessageDialog(null, Edad1);
        txtEdad.setText(String.valueOf(Edad1));
        if (Edad1 < 18) {
            txtMensaje1.setText("Menor de edad");
            txtEdad.setText(" ");
        }
        if (Edad1 >= 65) {
            txtMensaje1.setText("Tercera Edad");

        }
        if (Edad1 <= 0) {
            txtMensaje1.setText("Fecha Incorrecta");

        } else {
            txtMensaje1.setText("Mayor de edad");

        }

        {
        }

CLASES Y EXPRESIONES REGULARES

Clases y Expresiones Regulares
Las expresiones regulares son algo que se usa desde hace años en otros lenguajes de programación como Perl, Sed o Awk. En la versión 1.4 del JDK de Sun se incluye el paquete java.util.regex, que proporciona una serie de clases para poder hacer uso de la potencia de este tipo de expresiones en Java
Las expresiones regulares se rigen por una serie de normas y hay una construcción para cualquier patrón de caracteres.
ü    para comprobar que la fecha leída cumple el patrón dd/mm/aaaa
ü    para comprobar que un NIF está formado por 8 cifras, un guión y una letra
ü    para comprobar que una dirección de correo electrónico es una dirección válida.
ü    para comprobar que una contraseña cumple unas determinadas condiciones.
ü    Para comprobar que una URL es válida.
ü    Para comprobar cuántas veces se repite dentro de la cadena una secuencia de caracteres determinada.

Uso
El paquete java.util.regex esta formado por dos clases, la clase Matcher y la clase Pattern y por una excepción, PatternSyntaxException.

  • La clase Pattern (segun la documentacion del jdk1.4) es la representacion compilada de una expresion regular, o lo que es lo mismo, representa a la expresion regular, que en el paquete java.util.regex necesita estar compilada. En castellano significa patrón.


  • La clase Matcher es un tipo de objeto que se crea a partir de un patrón mediante la invocación del método Pattern.matcher. Este objeto es el que nos permite realizar operaciones sobre la secuencia de caracteres que queremos validar o la en la secuencia de caracteres en la que queremos buscar.

Símbolos comunes en expresiones regulares

Expresión
Descripción
.
Un punto indica cualquier carácter
^expresión
El símbolo ^ indica el principio del String. En este caso el String debe contener la expresión al principio.
expresión$
El símbolo $ indica el final del String. En este caso el String debe contener la expresión al final.
[abc]
Los corchetes representan una definición de conjunto. En este ejemplo el String debe contener las letras a ó b ó c.
[abc][12]
El String debe contener las letras a ó b ó c seguidas de 1 ó 2
[^abc]
El símbolo ^ dentro de los corchetes indica negación. En este caso el String debe contener cualquier carácter excepto a ó b ó c.
[a-z1-9]
Rango. Indica las letras minúsculas desde la a hasta la z (ambas incluidas) y los dígitos desde el 1 hasta el 9 (ambos incluidos)
A|B
El carácter | es un OR.  A ó B
AB
Concatenación. A seguida de B

Meta caracteres
Expresión
Descripción
\d
Dígito. Equivale a [0-9]
\D
No dígito. Equivale a [^0-9]
\s
Espacio en blanco. Equivale a [ \t\n\x0b\r\f]
\S
No espacio en blanco. Equivale a [^\s]
\w
Una letra mayúscula o minúscula, un dígito o el carácter _
Equivale a  [a-zA-Z0-9_]
\W
Equivale a [^\w]
\b
Límite de una palabra.

Cuantificadores
Expresión
Descripción
{X}
Indica que lo que va justo antes de las llaves se repite X veces
{X,Y}
Indica que lo que va justo antes de las llaves se repite mínimo X veces y máximo Y veces. También podemos poner {X,} indicando que se repite un mínimo de X veces sin límite máximo.
*
Indica 0 ó más veces. Equivale a {0,}
+
Indica 1 ó más veces. Equivale a {1,}
?
Indica 0 ó 1 veces. Equivale a {0,1}


Ejemplos de Expresiones Regulares en Java:

1. Comprobar si el String cadena contiene exactamente el patrón (matches) “abc”
        Pattern pat = Pattern.compile("abc");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("SI");
     } else {
         System.out.println("NO");
     }

2. Comprobar si el String cadena contiene “abc”
        Pattern pat = Pattern.compile(".*abc.*");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("SI");
     } else {
         System.out.println("NO");
     }

3. Comprobar si el String cadena empieza por “abc”
     Pattern pat = Pattern.compile("^abc.*");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("Válido");
     } else {
         System.out.println("No Válido");
     }

4. Comprobar si el String cadena empieza por “abc” ó “Abc”
     Pattern pat = Pattern.compile("^[aA]bc.*");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("SI");
     } else {
         System.out.println("NO");
     }

5. Comprobar si el String cadena está formado por un mínimo de 5 letras mayúsculas o minúsculas y un máximo de 10.
      Pattern pat = Pattern.compile("[a-zA-Z]{5,10}");
     Matcher mat = pat.matcher(cadena);
     if (mat.matches()) {
         System.out.println("SI");
     } else {
         System.out.println("NO");
     }

Webgrafía:
Programacion.net http://programacion.net/articulo/expresiones_regulares_en_java_127