Archive

Archive for the ‘Artículos’ Category

Atajos de teclado en Eclipse

February 24th, 2010

Estos son algunos de los atajos de teclado que me facilitan un poquito más el día a día cuando utilizo Eclipse para escribir código Java. No he querido abusar por que los considero bastante engorrosos de aprender pero si te interesa esto siempre puedes pulsar Ctrl+Shift+L e indicarme tus preferidos ;-)

Ctrl+Alt+H – Mostrar la jerarquía de llamadas de un método

Si presionamos esta combinación de teclas se nos mostrará una pantalla donde, a modo de árbol, podremos inspeccionar toda la jerarquía de llamadas de un método, esto es, qué otros métodos le llaman, que otros métodos llaman a estos últimos y así sucesivamente. Haciendo click en cualquiera de los resultados, abriremos un editor directamente en el código.

Alt+Shift+P – Abrir fichero Maven pom.xml

Esta combinación de teclas sirve para buscar el fichero pom.xml de cualquier artefacto tanto en el workspace como en cualquiera de los repositorios maven2 que tengamos definidos.

Nota: Si no me equivoco, esta combinación sólo está disponible si utilizas el plug-in de integración de Apache Maven 2 m2eclipse.

Ctrl+Shift+G – Buscar texto en workspace

La siguiente combinación de teclas permite buscar rápidamente el texto seleccionado en todo el workspace. La ventana de resultados sería similar a esta.

Ctrl+Shift+R / Ctrl+Shift+T – Abrir recurso / Abrir tipo

En el caso de Ctrl+Shift+R Muestra un cuadro de dialogo donde podemos teclear un texto y que permite filtrar rápidamente un fichero de los proyectos que tengamos abiertos en ese momento en el workspace. El funcionamiento de Ctrl+Shift+T es similar al de Ctrl+Shif+R sólo que en este caso podemos abrir tipos de Java únicamente.


Nota: Abrir tipo funciona únicamente, al menos a mi, en la perspectiva Java o J2EE

F4 – Mostrar la jerarquía de un tipo

Sitúa el cursor sobre un tipo en un código Java, pulsa F4 y te aparecerá una pantalla (en mi configuración de Eclipse la de más a la izquierda). Esta pantalla permite ver la jerarquía de herencia de una clase Java (parte superior) así como la lista de propiedades y métodos de la misma clase (parte inferior).

Artículos, Best-Practices, Eclipse, Java, Tools , , , ,

Control de versiones con Git

February 10th, 2010

Últimamente ando bastante engorilado con Git, por lo que este post pretende ser una introducción muy rápida de las cuatro cosillas que estoy aprendiendo sobre este VCS estos días. En siguientes entradas, o lo que es lo mismo sólo $DEITY sabe cuando, muy probablemente escribiré como montar un repositorio Git utilizando el servicio gratuito ofrecido por github.com.

En primer lugar indicar que Git es un sistema distribuido, a diferencia de por ejemplo Subversion o CVS que son centralizados. Esto para nosotros qué quiere decir? Básicamente que no trabajamos con una copia local del código fuente sino con una copia local o clon del repositorio original, más conocido como “master”.
Las ventajas más importante de trabajar de esta forma, siempre bajo mi punto de vista, son que disponemos de todas las utilidades propias del VCS sin ni siquiera tener que estar conectado a una red. Muy útil para acceder al historico de modificaciones de un fichero, comparar versiones, hacer un commit o cualquier cosa que hagas normalmente con tu VCS desde un sitio donde no dispongas de conexión.

Git define también 5 tipos de objetos alguno de los cuales nos serán familiares si hemos trabajado con un VCS antes:

  • Blob: El contenido de un fichero gestionado por Git e identificable por el Hash SHA1 que se obtiene del dicho contenido.
  • Tree: La estructura del repositorio en un momento determinado (normalmente un commit). Un objeto de tipo Tree tiene N objetos de tipo Blob asociados.
  • Commit: Una “foto” del repositorio una vez se han introducido una serie de cambios. Un objeto de tipo commit tiene 1 objeto de tipo Tree asociado.
  • Tag: Una etiqueta, normalmente sirve para marcar objetos de tipo commit.
  • Índice: Imagen de los cambios que se aplicarán al repositorio en el siguiente commit. En Git, por defecto sólo aplican aquellos cambios que se encuentran reflejados en este índice (están STAGED).

Git a diferencia que otros VCS como Subversion no almacena únicamente los cambios de un fichero sino que almacena el contenido completo de cada revisión. Esto sumado a la forma de trabajar que tiene con los objetos que indiqué antes hacen que en general el funcionamiento de Git sea muy ágil y, bajo mi punto de vista, mucho menos susceptible a error (piensa que cada vez que le pides una revisión en concreto, Git no debe “montarla” sólo “localizarla”).

Sólo por estas cosillas, ya comienzo a estar tentado de cambiar. ¿Habeis trabajado con Git o similar? ¿Qué os parece? ¿Cambiaríais vuestro Subversion/CVS?

Por cierto el libro que estoy leyendo es “Version Control with Git” de la editorial O’Reilly Media por si alguien quiere echarle una leída.

Artículos, Code, Git, VCS , , ,

Debian/Java. Parte IV: Instalando y configurando MySQL

January 25th, 2009

Instalación de MySQL server.

su -c apt-get install mysql-server-5.0

Lo primero que debemos hacer es configurarle una contraseña al usuario root. Esto lo haremos con el comando mysqladmin, que viene incluido en la distribucion de MySQL.

mysqladmin -h localhost -u root password contraseña_nueva_de_root

Como de costumbre, instalaremos las utilidades gráficas.

Instalación de MySQL Administrator.

su -c ‘apt-get install mysql-admin’

MySQL Administrator es una interfaz gráfica para administrar diferentes aspectos de la base de datos MySQL, como por ejemplo la seguridad o las cuentas de usuario.

debian_java_parteiv_mysql_administrator

Primera ejecución de MySQL Administrator

Creación de un nuevo esquema de base de datos: A continuación definiremos un nuevo esquema o base de datos llamado test, sobre el que ejecutaremos algunas pruebas más adelante. Para ello, haremos click en la opción Catalogs del menú de la izquierda. Veremos que en la parte inferior izquierda nos aparece un apartado con los diferentes esquemas de base de datos que hay creados (normalmente information_schema y mysql para una instalación “limpia”), haremos click en una zona libre de ese apartado con el botón derecho y seleccionaremos la opción Create schema tal y como se puede ver en la siguiente captura.

debian_java_parteiv_mysql_administrator_create_schema

A continuación, se nos solicitará el nombre del nuevo esquema, en nuestro ejemplo hemos asignado el nombre test, ya que este esquema lo utilizaremos más adelante en diferentes pruebas.

Definición de un nuevo usuario con permisos sobre el nuevo esquema creado: Seleccionamos la opción New User del menú, tal y como se ve en la imagen.

debian_java_parteiv_mysql_administrator_user1

A continuación introduciremos el nombre de usuario y la contraseña, y haremos click en el botón Apply Changes en la parte inferior derecha.

debian_java_parteiv_mysql_administrator_user21

En la pestaña Schema Privileges seleccionaremos el esquema test del panel de la izquierda y a continuación seleccionaremos todos los permisos del panel de la derecha y haremos click en el botón flecha izquierda para asignar todos los privilegios seleccionados al usuario test. Con esto lo que haremos será darle acceso desde cualquier host de la red.

debian_java_parteiv_mysql_administrator_user3

El siguiente paso sería probar el usuario pero eso lo haremos más adelante con el programa MySQL Query Browser.

Instalación de MySQL Query Browser

su -c ‘apt-get install mysql-query-browser’

MySQL Query Browser es una interfaz gráfica para ejecutar sentencias o scripts SQL.

debian_java_parteiv_mysql_query_browser

Primera ejecución de MySQL Query Browser

Conexiones remotas a la base de datos MySQL: Suponiendo que queramos que alguna máquina de la red pueda conectar con nuestro servidor MySQL utilizando uno de los múltiples clientes que existen deberemos indicarlo a MySQL editando para ello el fichero de configuración /etc/mysql/my.cnf.

Localizaremos el apartado:

[mysqld]

Cambiaremos el valor del parámetro bind-address por la dirección IP pública de la máquina.

bind-address = IP_de_tu_servidor

Reiniciaremos el servidor MySQL

su -c ‘/etc/init.d/mysql stop’

su -c ‘/etc/init.d/mysql start’

Con esto ya tenemos la base de datos funcionando así como un esquema y un usuario para hacer pruebas más adelante.

Artículos , , , , ,