Atajos en Eclipse o RAD

Cuando programar se nos vuelve simple y una lata del día a día, es necesario acortar ciertos códigos que usamos con más frecuencia como por  ejemplo escribir el método principal, un ciclo o una condición, y es para eso que existen los IDE’s, para facilitarnos la tarea de escribir tanto código y hacer del desarrollo algo mas manejable.

En las siguientes tablas se presentan algunos atajos de teclado que son usados con mas frecuencia en Eclipse o Rational Application Developer (que es practicamente un clon de eclipse para IBM).

Atajos simplificadores de acciones

Atajo Descripción
CTRL + H Carga la ventana de búsqueda
CTRL + E Acceso a los ficheros que ya están abiertos
CTRL + O Acceso a los atributos y métodos de esa clase
CTRL + O (2 veces) Igual que el anterior pero añadiendo los atributos y métodos de las clases padre
CTRL + L Acceso a la línea indicada
CTRL + K Rastrea la variable seleccionada
CTRL + F Buscar / Reemplazar una palabra
CTRL + D Eliminar la fila
CTRL + SUPR Eliminar la siguiente palabra
CTRL + RETRO Eliminar la anterior palabra
CTRL + MAY + SUPR Eliminar hasta el final
CTRL + Q Volver a la anterior pestaña de edición
CTRL + 3 Cargador de vistas
CTRL + MAY + F Formatea el texto según lo configurado
CTRL + MAY + S Guarda todos los documentos abiertos
CTRL + MAY + O Organizador de imports (añadiéndolos si faltan)
CTRL + MAY + T Buscador de tipos en el workspace
CTRL + MAY + R Acceso a la búsqueda de recursos
CTRL + 7 Comenta el texto seleccionado

Atajos para simplificar escritura de código

Acción Atajo Descripción
Crear metodo main Escribir main,pulsar CTRL + ESPACIO y seleccionar main method Implementa : public static void main (String[] args){ }
Impresion rápida por consola Escribir syso y pulsar CTRL + ESPACIO Implementa : System.out.println();
Sentencia IF Escribir if,pulsar CTRL + ESPACIO y seleccionar la opción statement Implementa : if (condition) {} o con la opción else
Bucle DESDE (for) Escribir for,pulsar CTRL + ESPACIO y seleccionar la opción Implementa : for (int i = 0; i < array.length; i++) {} u otras opciones
Bucle MIENTRAS (while) Escribir while,pulsar CTRL + ESPACIO y seleccionar la opción Implementa : while (condition) {} u otras opciones
Bucle REPETIR HASTA (do..while) Escribir do,pulsar CTRL + ESPACIO y seleccionar la opción Implementa : do {} while (condition);

 

Con esto queda archicomprobado lo excelente que resulta conocer ciertos atajos y el potencial que nos brinda Eclipse a los desarrolladores.

Fuente: www.adictosaltrabajo.com

byangerrising

Stone Sour – House Of Gold & Bones Part 1 (2012)

Stone Sour es una banda de hard rock fundada en 1992 en Iowa, Estados Unidos por el que es actual el vocalista de Slipknot Corey Taylor. En este grupo también se encuentra uno de los guitarristas de Slipknot, James Root. Ambos pertenecieron a Stone Sour y luego pararon el proyecto para unirse a Slipknot. Primero Corey y un año después James.

En el 2012, Stone Sour comenzó a grabar lo que será un nuevo album, este será un album doble conceptual; y Corey Taylor ha confirmado que el album se llamará “House of Gold & Bones”, se dividirá en dos partes: la primera se lanzará el 22 de Octubre del 2012 y la segunda se lanzará en el 2013. Corey Taylor describió al álbum como The Wall de Pink Floyd con Dirt de Alice In Chains

Otra noticia que ya fue confirmada por Corey Taylor es la salida del bajista Shawn Economaki, se desconocen las causas de su salida, solo se sabe que fue expulsado de la banda en Julio del 2011, lo reemplazará en el estudio Rachel Bolan reciente bajista de Skid Row.

01.- Gone Sovereign – 04:03
02.- Absolute Zero – 03:49
03.- A Rumor Skin – 04:11
04.- The Travelers – 02:26
05.- Tired – 04:11
06.- RU486 – 04:22
07.- My Name Is Allen – 04:18
08.- Taciturn – 05:25
09.- Influence Of A Drowsy God – 04:29
10.- The Travelers – 03:01
11.- Last Of The Real – 03:01

Descargar Disco

Fuente: wikipedia

Preguntas para comenzar la toma de requerimientos

Esta semana tras suspender la aplicación que estaba desarrollando enfocada a la formulación de metas para los departamentos de gendarmería, el mismo departamento que solicitó dicho sistema me pidió llevar a cabo, junto a una compañera , un sistema para la elaboración de indicadores que permitan medir la gestión relevante del servicio, es por ello que se llevó a cabo la primera reunión donde extraje una serie de preguntas del libro de “Ingeniería de Software” de “Roger Pressman” para poder llevar un lineamiento en la conversación, en el momento de los que hubo todo comenzó bien, pero la descoordinación por no ponernos de acuerdo junto a mi compañera sobre que listado de preguntas haríamos, nos hizo apuntar hacia diferentes partes, por ello tras la reunión le presenté las preguntas del libro y las respondimos de acuerdo a lo obtenido en dicha reunión donde mañana en la próxima junta corroboraremos que las respuestas estén en el contexto de los intereses de nuestros clientes y así ellos continuar complementándolas.

A continuación les dejo un extracto transcrito desde el libro Ingeniería de software de Roger Pressman correspondientes al capítulo de “Ingeniería de Requisitos”.

Estas preguntas ayudan a identificar a los participantes que tendrían interés en el software construido. Además estas preguntas identifican el beneficio medible de una aplicación exitosa y las alternativas posibles para personalizar el desarrollo del software.

1.- ¿Quién está detrás de este trabajo?
2.- ¿Quién usará la solución?
3.- ¿Cuál será el beneficio de una solución exitosa?
4.- ¿Existe otra fuente para la solución requerida?

La siguiente serie de preguntas permite que el equipo de software comprenda mejor el problema y deja que el cliente exprese sus percepciones acerca de una solución.

5.- ¿Cómo podría caracterizarse un buen resultado generado por la solución?
6.- ¿Cuáles problemas debería atacar esta solución?
7.- ¿Podría usted describir o mostrar el ambiente de negocios en el que se utilizará la solución?
8.- ¿Los aspectos especiales del desempeño o las restricciones afectarán la forma en que se busque la solución?

La serie final de preguntas se enfoca en la efectividad de la actividad de comunicación en si misma . Gause y Weinberg las llaman las “metapreguntas” y proponen la siguiente lista abreviada.

9.- ¿Es usted la persona adecuada para contestar esta pregunta? ¿sus respuestas son oficiales?
10.- ¿Mis preguntas son relevantes para su problema?
11.- ¿Estoy haciendo demasiadas preguntas?
12.- ¿Alguien más puede proporcionar información adicional?
13.- ¿Debería preguntarle otra cosa?

Estas preguntas (y otras) ayudarán a “romper el hielo” y a iniciar la conversación esencial para la obtención exitosa. Pero un formato de reunión de pregunta y respuesta no es un enfoque que haya sido exitoso de manera contundente. De hecho, la sesión de preguntas y respuestas debe usar solo para el primer encuentro, y después se debe reemplazar por un formato de obtención de requisitos que combine elementos de resolución de problemas, negociación y especificación.

Fuente: Ingería de Software
Autor: Rogger Perssman


Sting – Ten Summoners Tales (1993)

Ten Summoner’s Tales es el cuarto album de estudio del rockero Sting, El título es un juego de palabras combinado de su nombre, Gordon Sumner, y un personaje de Los Cuentos de Canterbury de Geoffrey Chaucer, The Summoner. Lanzado en 1993, explora los temas del amor y de la moral en un estado de ánimo optimista notablemente en comparación con su versión anterior, los introspectivos The Soul Cages.

Tales Ten Summoner fue nominado para el Mercury Prize en 1993. En 1994, fue nominado para cinco premios Grammy, ganando Mejor Ingeniería, No Clásica, Mejor Interpretación Vocal Pop Masculino (“If I Ever Lose My Faith in You”) y Mejor Video Musical Versión Larga. No ganó Álbum del Año, Grabación del Año y Canción del Año.

Un vídeo en formato de larga duración con actuaciones musicales alternativas y versiones en directo de todas las pistas fue filmada en Lake House y publicado en conjunto con el álbum. El video ganó un premio Grammy por Mejor Video de su tipo en 1994 y fue dirigida por Doug Nichol y producido por Julie Fong.

La carátula del álbum fue fotografiada en el Castillo de Wardour Old en Wiltshire, Inglaterra, con Hrímnir, un caballo islandés propietario de Sting por un periodo. El álbum fue grabado en Lake House, en Wiltshire, mezclado en el Studio Townhouse, Londres y masterizado en Masterdisk, Nueva York.

Canciones

01.- If I Ever Lose My Faith in You (Prologue) – 4:30
02.- Love Is Stronger Than Justice (The Munificent Seven) – 5:11
03.- Fields of Gold – 3:42
04.- Heavy Cloud No Rain – 3:39
05.- She’s Too Good for Me – 2:30
06.- Seven Days – 4:40
07.- Saint Augustine in Hell – 5:05
08.- It’s Probably Me – 4:57
09.- Everybody Laughed But You – 3:53
10.- Shape of My Heart – 4:38
11.- Something the Boy Said – 5:13
12.- Nothing ‘Bout Me (Epilogue) – 3:39

Descargar Disco

Hash criptográfico para contraseñas

Bueno bueno, como siempre con falta de tiempo para poder siquiera escribir unas cuantas líneas en mi querido blog, quien me viene ayudando desde ya hace un buen tiempo, esta vez les traigo unos cuantos tips para la ocultación de contraseñas tanto por el lado del cliente como del servidor, por ello veremos ambas formas:

CLIENTE

Por el lado de cliente tenemos el lenguaje javascript como lenguaje de interacción con los usuarios y por ende es la única forma de encriptar los datos que deseemos, en paj’s home han creado unos scripts que nos hacen la vida mas fácil como programadores al momento de aplicar MD4, MD5 o SHA-1 como medio de encriptación  por ello debemos descargar el documento js que deseemos ocupar, donde en mi caso prefiero SHA-1 por ser mas difícil de corromper que MD5, la lista de archivos es la siguiente:

y para implementarlo debemos hacer lo siguiente:

dentro de los tag <head> y </head> importamos primero las librerías correspondientes

<script type="text/javascript" src="md4.js"></script>
<script type="text/javascript" src="md5.js"></script>
<script type="text/javascript" src="sha1.js"></script>

y luego aplicamos la función de la siguiente manera

 <script type="text/javascript">
   hash = hex_md4("hola mundo"); /* MD4 */
   alert("MD4");
   alert(hash);
   hash = hex_md5("hola mundo"); /* MD5 */
   alert("MD5");
   alert(hash);
   hash = hex_sha1("hola mundo"); /* SHA-1 */
   alert("SHA-1");
   alert(hash);
 </script>

SERVIDOR

Y en cuanto a la encriptación por el lado del servidor encontré una clase bien buena para java que permite encriptar un String en diversos formatos como MD2, MD5, SHA-1, SHA-256, SHA-384 y SHA-512 la cual podemos descargar desde aquí para hacer uso de esta clase debemos hacer lo siguiente:

importamos la clase desde donde llamaremos

import gob.sgip.comunes.StringMD;

y luego desde algún método llaman a la clase directamente sin necesidad de instanciarla debido a que el método es estático donde por parámetro le mandamos dos valores, el primero correspondiente a la cadena que deseamos encriptar y el segundo correspondiente al método de encriptación de los antes mencionados, donde esto se haría así

StringMD.getStringMessageDigest("Cadena a encriptar", "SHA-1");

bueno espero que les sirva y cualquier comentario es bienvenido

saludos

Fuente: anieto2k

Hibernate – parte II

Bueno, anteriormente vimos como poder realizar la conexión desde Netbeans a la base de datos, pues esta vez veremos cómo configurar Hibernate dentro de un proyecto web gracias a este potentísimo IDE, así que no más palabras y manos a la obra.

1.- Lo primero que debemos hacer es crear un nuevo proyecto del tipo web aplication, al cual le pondremos como nombre aplicacionHibernate , en la configuracion del servidor usaremos GalssFish v3  y por ultimo seleccionamos el framework que deseamos integrar a nuestro proyecto, en este caso utilizaremos solamente Hibernate 3.2.5 donde al seleccionarlo nos mostrará un listado de conexiones a base de datos de Netbeans, escogemos la que creamos anteriormente llamada prueba (ver figura 1.1) y finalizamos.

Fig. 1.1 – Selección de framework Hibernate.

2.- la jerarquía generada por netbeans es como lo muestra la figura 2.1 y como podemos apreciar, en la carpeta de “source Packages” tenemos un package por defecto que contiene un archivo de configuración llamado “hibernate.cfg.xml” el cual contiene todos los parámetros de conexión de con la base de datos, lamentablemente este archivo de configuración al ser generado automáticamente por nuestro IDE no está del todo bien, por lo que debemos añadir la siguiente sentencia dentro del nodo <session-factory>:

<property name=”hibernate.current_session_context_class”>thread</property>

Fig. 2.1 – Jerarquía de la aplicación generada por Netbeans.

3.- Una vez que ya tenemos la base del proyecto se debe crear un archivo de ingeniería reversa para permitir a hibernate poder acceder a la base de datos, para ello hacemos clic derecho sobre la carpeta “Source Packages” y seguimos la siguiente ruta dentro del menú “New/Other…”; nos aparecerá una nueva ventana donde seleccionamos la categoría “Hibernate” y nos aparecerá en el otro modulo un listado de opciones, seleccionamos la de ingeniería reversa o también llamado como “Hibernate Reverse Engineering Wizard” hacemos clic en siguiente; escogemos un nombre para el archivo, yo por lo menos lo dejaré tal cual y le damos en siguiente; esta vez nos aparecerá una ventana que se conecta a la base de datos mostrando las tablas disponibles del esquema al cual estamos conectados como muestra la figura 3.1, las agregamos todas y finalizamos.

Fig. 3.1 – asistente de creación de archivo de ingeniería reversa.

Esta configuración realizará un mapeo de la base de datos a la que accederemos, donde en el archivo podremos ver datos como el esquema al que estamos conectados y las tablas que posee este.

4.- a continuación debemos crear los POJOS de las tablas de nuestra base de datos, por cada una que haya en ella, estos nos permitirán recrear cada tabla del esquema de base de datos en forma de clases, para ello crearemos primero un nuevo package donde guardaremos las clases de mapeo y le llamaremos  “test.hibernate.mapping”, una vez creado el package  hacemos clic derecho sobre él y seguimos la siguiente ruta en el menú “new/Other…” luego aparecerá una nueva ventana y seleccionamos la categoría “Hibernate” y luego el tipo de archivo de POJOs o “Hibernate Mapping Files and POJOs from Database” hacemos clic en siguiente y dejamos la configuración como podemos apreciar en la siguiente figura:

Fig 4.1 – Asistente de configuración para POJOs.

Luego simplemente finalizamos y podremos ver como aparecieron clases con el mismo nombre de las tablas y además unos archivos con extensión hbm.xml los cuales realizan el mapeo entre la clase y la tabla de la base de datos.

5.- Finalmente crearemos un archivo HibernateUtil para ello hacemos click derecho sobre la carpeta “Source Packages” y nos vamos a “new/Other…” seleccionamos la categoría Hibernate y escogemos crear una clase de tipo HibernateUtil, hacemos click en siguiente y lo configuramos como se ve en la siguiente imagen:

Fig 5.1 – Asistente de configuración para HibernateUtil.

la jerarquía de clases nos debería quedar de la siguiente forma:

Fig 5.2 – Jerarquía del proyecto al implementar Hibernate.

Bueno hasta el momento ya hemos creado la conexión a la base de datos y ahora con estos pasos ya tenemos la base para poder realizar transacciones con nuestra base de datos, en el próximo tutorial veremos como poder.

Como nombrar packages en tu aplicación java

Como recién egresado e insertándome al mundo laboral me he visto con la necesidad de desarrollar un sistema web para los departamentos de Gendarmería de Chile, siempre necesité saber cómo organizar los packages de forma que al ir agregando clases y luego al recurrir a ellas me fuese fácil poder reconocer el package al que pertenecen, no fue hasta ahora que me vi obligado a averiguar sobre este tema cuando por fin he pillado un post de un colega Argentino que nos explica claramente cómo debemos organizarlos de forma eficiente, a quien se le agradece enormemente la publicación de este.

Los modismos en Java existen como en cualquier otro lenguaje de programación. Estos hacen claramente más fácil la vida de todos los programadores en particular aquellos que mantienen las aplicaciones y tienen que lidiar con el código escrito por otros. Usar convenciones de un lenguaje en particular es mostrar compasión por aquellos mantenedores que en el futuro cercano van a tocar y retocar el código escrito originalmente.

En este artículo vamos a ver como nombrar packages en java.

Primero vamos a mostrar los 2 tipos de agrupaciones de clases que creo son más comunes.

Package by Layer (por capas)

* com.wow.dao
* com.wow.util
* com.wow.file

Package by Feature (por categoria)

* com.wow.customer
* com.wow.seller
* com.wow.product

¿Ahora… qué diferencia hay entre estas dos clasificaciones? Básicamente si tu cerebro está poblado por más de una neurona, este va a darse cuenta que toda aplicación hace cosas básicas, lo cual va a requerir que tengas un set de funciones base para quizá todas ellas. Que es esto? un framework, si, un set de funciones básicas las cuales pueden ser portadas a través de varias aplicaciones sin ser modificado ni adaptado para cada una de ellas.

En tu framework vas a tener que hacer clases reusables y agruparlas por Layer ya que no vas a tener ningún código específico de alguna aplicación en específico. Tus clases ahí serán DatabasePool, StringUtil, FileWriter, etc. Nada que tenga que ver con la aplicación en sí.

Ahora, imagínate que estás haciendo una aplicación de Stock, entonces vamos a usar aquí, con las clases especificas de tu app la clasificación segunda, package by Feature. Porque? porque desde estos packages específicos vas a llamar y utilizar el framework, pero es altamente probable que estas clases no sean reutilizadas ni extensibles para otros desarrollos.

“Todo conocimiento tiene por sí mismo algún valor, no hay nada tan pequeño e insignificante que yo no prefiera conocer a ignorar.”
Ben Jonson

Fuente: rodrigo asensio