Ads 468x60px

Perfil

sábado, 16 de marzo de 2013

Calidad del Software (Niveles de Calidad)


Niveles de calidad


La calidad del software puede gestionarse a distintos niveles:
  • nivel de producto: cuando nos centramos en el proceso de desarrollo de software y hacemos una serie de pruebas en paralelo con cada etapa, para detectar y corregir los posibles defectos que puedan surgir.
  • nivel de proyecto: cuando nos centramos en controlar todas las fases y áreas de gestión de proyecto, implantando metodologías y mejores prácticas que aseguren la correcta gestión de las mismas.
  • nivel de proceso: cuando nos centramos en gestionar todas las áreas de proceso de una organización, mediante la implantación de una metodología. De esta forma se consigue tener mayor información de los procesos de modo que puedan controlarse y mejorarse, y produzcan así, un aumento de la calidad de los productos y servicios relacionados con ellos.
Mejorar en algunos de los niveles implica la mejora en el resto, dado que en la realidad los niveles de producto, proyecto y proceso están interrelacionados, no siendo posible la mejora independiente de uno de ellos.

viernes, 15 de marzo de 2013

Empaquetar una aplicación Java para distribuir, desde NetBeans


Uno de los tantos motivos por lo que utilizo NetBeans en lugar de otro IDE, es que utiliza la Apache Ant para compilar, crear .jar .war .ear, javadoc, etc.. prácticamente para todo, y solo usando un archivo .xml. Y lo mejor es que se puede personalizar el .xml a nuestro antojo.

En este post se va a explicar cómo empaquetar una aplicación Swing en un archivo .zip para ser distribuido a los usuarios finales.



¿Qué hace NetBeans?

Si al hacer una aplicación Swing con NetBeans utilizamos diversas bibliotecas adicionales, el IDE nos puede crear una carpeta lista para distribuir a los usuarios incluyendo todas los .jars necesarios. Para ello hacemos clic derecho sobre el ícono del proyecto y seleccionamos "Build" (o Clean and Build)

 Al hacer esto, el NetBeans compila, y construye la carpeta "dist" para distribuir. Esta carpeta se encuentra en la misma carpeta del proyecto. Podemos verla en el panel "Files" del NetBeans (Teclas Ctrl+2)
Ahora bien ¿qué hacemos con ese .jar? En el README.TXT lo explica. Pero NetBeans también lo dice en el panel "Output" (Ctrl+4) después de construir la aplicación.

"Para ejecutar esta aplicación desde la línea de comandos sin usar Ant, intente:..." y luego dice cuál es el comando que se tiene que hacer.

Si copiamos esa línea, abrimos la ventana del Símbolo del Sistema, y pegamos esa instrucción para ejecutarlo, pues nos ejecutará la aplicación sin problemas. Es más, se podría copiar a los usuarios finales este directorio "dist" y decirles que si quieren ejecutarlo hagan esto: abrir una ventana del Símbolo del Sistema, escribir esa instrucción  y listo.........creo que al usuario no le va a gustar hacer esto ¿Por qué no mejor hacer un programa que al hacer doble clic ya se ejecuté? Buena idea.


Creando un .bat

De por sí, se puede hacer doble clic al archivo .jar para ejecutar la aplicación, pero funciona si es que en el computador del usuario no tiene algún descompresor de archivos asociado a los archivos .jar. Por ejemplo, si se tiene instalado el WinRAR, al hacer doble clic sobre el archivo .jar, en lugar de que se ejecute, se abrirá el WinRAR y mostrará el contenido del .jar... esto no es lo que queremos. La mejor manera es crear un archivo .bat que haga la llamada al comando java -jar bla bla

Esto le podemos decir al NetBeans que lo haga. Para ello, entramos al panel "Files" (Ctrl+2) y buscamos el archivobuild.xml. Este es una extensión al .xml que utiliza el NetBeans para construir la aplicación.

 Abrimos este archivo, lo revisamos un poco (todo está comentado y hay algunas instrucciones) y pondremos el tag<target name='-post-jar'/> que nos permitirá realizar una tarea después de que el NetBeans haya creado el .jar
    <target name="-post-jar">        <echo file="${dist.dir}/run.bat">java -jar ${application.title}.jar</echo>    </target> 

El tag de la tarea <echo /> crea una salida a la consola, pero con el atributo file le estamos diciendo que la salida lo haga a un archivo. Para saber cuáles son los valores de las variables utilizadas en la construcción del proyecto, podemos revisar el archivo nbproject/project.properties.

Por ello utilicé las variables dist.dir, application.title.

Ahora bien, hagamos un "Build" al proyecto y veamos lo que hizo en la carpeta dist.

 Y si vemos el contenido será justamente lo que hemos pensado. Abrimos una ventana del explorador de windows, y le damos doble clic al .bat. Listo, usuario satisfecho.

Pero.. sale una ventana negra fea con el comando de ejecución de la aplicación. Bueno, esto se puede solucionar. Podemos reemplazar la instrucción
<echo file="${dist.dir}/run.bat">java -jar ${application.title}.jar</echo>
Por
<echo file="${dist.dir}/run.bat">start javaw -jar ${application.title}.jar</echo>
El comando de Windows start permite ejecutar una aplicación y "soltarlo" para que se ejecute como un proceso más del Sistema Operativo. Y el comando javaw es un comando adicional al JRE que permite ejecutar una aplicación java sin mostrar una ventana del Símbolo del Sistema.

Bien, ahora solo nos bastaría con copiar a los usuarios finales el .bat, el .jar y las bibliotecas adicionales so hubiera. Lo empaquetamos y se lo enviamos.

¿Hay un poco de flojera para comprimir los archivos? ¿y si me falta uno?

Creando un .zip

El Ant también permite comprimir archivos usando la tarea <zip />. Es realmente fácil.

Creamos el siguiente tag después del <echo />.
        <zip destfile="${dist.dir}/${application.title}.zip" basedir="${dist.dir}" />

Hagamos "Clean and Build" al proyecto, y listo, ya tenemos nuestro archivo .zip para enviar a los usuarios finales.


Y les decimos "Estimados bla bla bla, descompriman el achivo .zip para ejecutar la aplicación".
¿También tenemos flojera de enviar el mail a los usuarios? :)

Documentación

Si deseas conocer más tareas que vienen incluidas en el ANT, revisa la siguiente página.
Ahí está la tarea mail

Proyecto

Y como de costumbre, aquí está el proyecto utilizado en este ejemplo:

jueves, 14 de marzo de 2013

¿Por qué no debemos usar la misma contraseña en todos los servicios que usamos?


El pasado fin de semana, Evernote vio comprometida la seguridad del servicio tras detectar una intrusión que habría tenido acceso a nuestros nombres de usuario, correos electrónicos y también a las contraseñas aunque, afortunadamente, éstas estaban cifradas. Como medida cautelar, Evernote decidió forzar el reseteo de las contraseñas de todos los usuarios del servicio y, entre las recomendaciones que hicieron, comentaron la importancia de no usar la misma clave en todos los servicios en los que nos registremos. Para muchos usuarios, no tener que recordar un amplio número de contraseñas es importante, máxime cuando cada vez son más los servicios disponibles en la red; sin embargo, a pesar de que nos facilitaría mucho las cosas ¿por qué no debemos usar la misma contraseña en todos los servicios que usamos?
contraseñas
Para muchos usuarios, seguramente, la respuesta a esta pregunta es más que evidente y no necesiten ningún tipo de explicación; sin embargo, existe un buen número de usuarios que repiten y repiten la misma contraseña en Facebook, Twitter, Evernote, Gmail y cualquier servicio disponible en la red que se nos ocurra. De hecho, para complicar aún más el escenario, tampoco es raro que la misma dirección de correo personal que usamos sea el login para muchos de estos servicios; un panorama que es mucho más habitual que lo que podríamos llegar a imaginar y que nos pone en riesgo, por ejemplo, ante un posible robo de identidad o la usurpación de nuestra cuenta.
No es la primera vez que hablamos de seguridad en Bitelia y, en alguna que otra ocasión, hemos hablado de consejos para generar contraseñas seguras o, directamente, crearlas a partir de servicios disponibles en la red. Sin embargo, de poco nos sirve una contraseña segura si es la misma que usamos en todos los servicios en los que estamos registrados porque la probabilidad de ser víctimas de cualquier tipo de ataque es mucho mayor.
Quizás pueda parece que estoy exagerando pero, si tomamos como referencia el caso de Evernote, en el hipotético caso que alguien lograse descifrar las contraseñas tendría un listado de pares cuenta de correo-contraseña con la que probar, por ejemplo, en Facebook, Twitter, LinkedIn, Gmail y cualquier servicio que se nos ocurra. Si la contraseña es la misma en todos ellos, un atacante con no muy buenas intenciones tendría "barra libre" para acceder a toda nuestra información personal o realizar publicaciones en nuestro nombre.
A lo mejor el caso de Evernote es demasiado rebuscado pero hace algo más de seis meses que robaron un buen número de contraseñas de LinkedIn y, de camino, también podrían haber tenido acceso a las cuentas de otros servicios. Otro escenario que podemos encontrar es el uso de aplicaciones que usan conexiones no cifradas (el correo, por ejemplo) en redes Wi-Fi abiertas y enviar, por dicho canal, nuestro usuario y contraseña para que un tercero con malas intenciones lo intercepte e intente usarlo en otros servicios o, incluso, que alguien intercepte lo que escribimos en un ordenador de uso público (con un keylogger) y pruebe la contraseña interceptada en otros servicios.
Hacking password
Como podemos observar, los escenarios en los que nuestros datos se pueden ver comprometidos están ahí y en nuestra mano está evitar que se hagan una realidad que nos haga pasar un mal rato. ¿Y qué debemos hacer? ¿Cómo podemos adoptar prácticas seguras sin tener que recurrir a una libreta en la que apuntar todas las contraseñas? ¿Tenemos que depender de nuestra memoria?
Lo ideal sería recordar las contraseñas, no tenerlas que apuntar en ninguna parte y que siguieran patrones seguros pero, si no tenemos buena memoria, siempre podemos recurrir a algunas reglas que nos ayuden a llegar a un equilibrio entre nuestra memoria y algo seguro; por ejemplo, podemos usar patrón y, sobre éste, introducir variaciones.
Cada vez son más habituales los intentos de robo de información y suplantación de identidad, un hecho para el que la mejor defensa somos nosotros mismos y la adopción de buenas prácticas de uso.

Especial San Valentin - Crea Tu Propia Postal de San Valentin (Parte 2)


a capa de parámetros: Llene el 34%, modo de fusión-Soft Light
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Crear una nueva capa para el siguiente camino. Aplicar las mismas operaciones descritas a continuaciónsubtrazado Stroke con el color # E5331E
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
La capa de parámetros: Llene el 42%, modo de fusión-Color
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
En la nueva capa siguiente vamos Stroke subPath otro camino, eligiendo los mismos pasos que hicimos antes con las líneas anteriores. El cepillo con el color # EC008C
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
La capa de parámetros: Llene el 30%, modo de fusión Superposición-
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga una copia de la última capa hecha línea que contiene el adorno, sin ningún efecto y elegir para esta capaFiltro> Blur> Motion Blur ( 0 Ángulo, Distancia 25px )
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga una copia con la línea ornamento primera, la que lo resucite en el panel de las capas y cambiar el color en el negro.
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
La capa de parámetros: Llene el 20%
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
A continuación vamos a representar un pequeño corazón, la aplicación de la herramienta Forma personalizada (U)
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
La capa de parámetros: Llene 0%, mezcla Opciones> Resplandor interior
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4Haga una copia de la capa que contiene el elemento de corazón y seleccione Transformación libre opción para ampliar la copia un poco (presiona MAYÚS botón para realizar esta operación). Luego se coloca de la misma manera se demuestra en la foto.
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Selección por una copia de las capas de cada corazón. Set para cada capa copia de los mismos parámetros deOpciones de fusión> Resplandor interior
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
A continuación vamos a combinar en un grupo de todas las capas que componen el corazón (pulse Ctrl botón para marcar las capas correspondientes y mantenga el botón izquierdo del ratón mientras mueve las capas marcadas en Crear un nuevo grupo de selección). Ajuste los siguientes parámetros demostrados por el grupo hizo.Opacidad 74%
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Crear un nuevo archivo ( Archivo> Nuevo ) de 70 × 70 px y 72 dpi (borrar apagado el fondo) y elige para ello la herramienta Forma personalizada (U) para representar un pequeño corazón.
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
La capa de parámetros: Llene 0% Opciones de fusión> Resplandor interior
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Rasterizar la capa mediante la creación de una nueva capa por encima de la original, marque los dos presionandoCtrl y pulse finalmente CTRL + E.
Seleccionar del menú Edición> Definir pinceles 
Crear una nueva capa y aplicar aquí el cepillo elegido de la opción Pinceles (F5) , situado en el panel lateral, en el lado derecho. Necesitamos el pincel para representar a una gran cantidad de pequeños corazones por encima y alrededor de los anteriores hechos.
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga una copia de la capa que contiene un montón de corazones. Elija para la capa superior de la siguiente opción - Modo de fusión Overlay-
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
... Y para la capa más baja de la selección de aquí - Filtro> Blur> Gaussian Blur
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Crear un nuevo archivo ( Archivo> Nuevo ) de 10 × 10 px y 72 dpi y moverse fuera de su fondo. Uso de laherramienta Lápiz (B) ( pincel de 1 px ), trata de representar una línea diagonal de color blanco.
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Edición> Definir motivo 
Crear una nueva capa y seleccione para ello Editar> Rellenar , aplicando aquí el patrón anterior salvo.
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
La capa de parámetros: Llene el 58%, mezcla de modo de superposición-
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Crear una nueva capa y utilizar aquí un cepillo estándar con la opacidad de 10% y el color naranja para delinear la zona de los lados izquierdo y superior - la zona que está reservado para el texto.
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4Introduzca el texto que ahora (he usado esta fuente de dafont.com):
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
La capa de parámetros: Opciones de fusión> Sombra
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Combinando Opciones> Trazo
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Parámetros de Gradient:
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Inserte ahora la capa que contiene el texto ¡Feliz Día de debajo de la capa con el texto de San Valentín (he usado esta fuente de dafont.com):
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Día
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Feliz
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Crear una nueva capa y representan aquí un montón de pequeños puntos con un cepillo estándar de color rojo y amarillo.
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
La capa de parámetros: Opciones de fusión> Sombra
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
Haga su propia tarjeta del día de San Valentín en Photoshop CS4
¡Ya está!