Selección de texto en bloques o columnas

Hay varios programas que nos permiten alternar entre el tradicional modo de selección por líneas y el modo de selección por bloques o columnas.

Intentaré ir completando este post con los programas que me parezcan relevante destacar, y la forma que utilizarlo.

Eclipse

Desde la versión 3.5 de Eclipse (Galileo) y en la 3.6 (Helios), 3.7 (Indigo) y posteriores contamos con la posibilidad de cambiar el modo de selección, de líneas a bloques.

Para activarlo, podemos utilizar el botón de modo de selección, o utilizar la combinación de teclas Alt + Shift + A Eclipse.

Eclipse - selección por bloques

Eclipse – selección por bloques

Me resultó curioso que el tipo de letra utilizado cambia cuando habilitamos este modo de selección, pasando a Courier New a pesar que el tipo de letra que estaba utlizando era monoespaciado. En Linux no pasó.

Notepad++

Notepad++ es un editor de texto simple y poderoso. Podemos seleccionar bloques en lugar de líneas apretando la tecla Shift junto al botón izquierdo del mouse. Si estamos utilizando el teclado, apretando juntas las teclas Alt + Shift y las teclas de cursor.

Notepad++ - selección por bloques

Notepad++ – selección por bloques

Otros

Si algún lector sabe de algún editor que valga la pena agregar algún otro editor, ¡que agregue un comentario! 🙂

Cambiar la JVM utilizada por Eclipse

En algunos casos es necesario iniciar el IDE Eclipse utilizando una JDK en lugar de la JRE por defecto. Un caso es, por ejemplo, para poder utilizar todas las funcionalidades del plugin m2eclipse. Veremos cómo cambiar la configuración para usar otra máquina virtual.

Para ello, debemos editar el archivo eclipse.ini que está en el directorio de instalación de Eclipse (bah, en el directorio en donde lo descomprimimos), y agregar el parámetro -vm indicando el ejecutable de la JDK que usará el IDE. Hay algunas cosas a tener en cuenta:

  1. El parámetro -vm debe ir solo en una línea, con su valor en la línea siguiente.
  2. El valor del parámetro -vm es la ruta hasta el ejecutable (por ejemplo javaw.exe),
    no es la ruta del directorio que lo contiene.
  3. Es importante la ubicación del parámetro -vm. Debe estar ubicado antes del parámetro -vmargs. Todos los parámetros luego de -vmargs serán pasados directamente a la JVM

Yo tengo una JDK en Windows instalada en el directorio D:Javajdk1.6.0_17, y éste es mi eclipse.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
org.eclipse.epp.package.jee.product
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
D:/Java/jdk1.6.0_17/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

Como último punto a destacar, quisiera comentar que toda esta configuración se puede verificar en About Eclipse, en el menú de Help.

http://wiki.eclipse.org/Eclipse.ini
http://tech.karolzielinski.com/m2eclipse-eclipse-is-running-in-a-jre-but-a-jdk-is-required

m2eclipse: un plugin de Eclipse para proyectos de Maven

m2eclipse es un plugin de Eclipse para la integración con Maven. Permite usarlo para manejar, proyectos simples, multi-módulo, ejecutar builds de Maven utilizando la interfaz de Eclipse e interactuar con repositorios de Maven. El plugin ya está bastante maduro, y resulta muy cómodo para trabajar con este tipo de proyectos.

La instalación es bastante simple. Tenemos que agregar el update site, que es http://m2eclipse.sonatype.org/sites/m2e. Hay una única opción para instalar, llamada “Maven Integration for Eclipse (Required)“. Se instalará el core, el editor de POMs y la integración al repositorio de Maven.

En el sitio oficial hay links a videos bastante descriptivos acerca del proceso de instalación, creación de proyectos, etc.

m2eclipse trae un Maven embebido. Si ya tenemos una instalación de Maven configurada y un repositorio local con artefactos descargados podemos aprovecharla, configurando m2eclipse para que haga uso de ella. Para agregar instalaciones de Maven a m2clipse, debemos acceder al menú de preferencias de Eclipse, agregar la instalación seleccionando el directorio en el cual está ubicado y marcarla como la instalación activa:
Configurar instalaciones de maven

El plugin cuenta con bastante documentación. Es posible descargar la referencia de m2eclipse en PDF desde éste link (es necesario llenar algunos datos) o leer la documentación on-line aquí. Tiene una FAQ bastante completa, y el blog de m2eclipse es éste.

La página principal del plug-in es http://m2eclipse.sonatype.org/index.html

Problemas en Eclipse de proyectos Maven con dependencias a AspectJ

Hace unos días un compañero de trabajo yo nos encontramos con una situación un poco extraña utilizando Maven y AspectJ, digna de comaprtirla. En un proyecto Java en el que utilizamos Maven, algunas de las dependencias en el pom.xml eran las siguientes:

<dependency>
    <groupId>aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.5.3</version>
</dependency>
<dependency>
    <groupId>aspectj</groupId>
    <artifactId>aspectjtools</artifactId>
    <version>1.5.3</version>
</dependency>
<dependency>
    <groupId>aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.5.3</version>
</dependency>

Sin embargo, al hacer un mvn eclipse:eclipse en la PC de mi compañero, esas dependencias no se veían reflejadas en el proyecto de Eclipse. La salida del comando de
Maven no mostraba errores, e inclusive bajaba los JARs de AspectJ al repositorio local, y sin embargo, no había rastros de esas dependencias en el Build path del proyecto. En mi PC no había problemas, las dependencias se bajaban y referenciaban de forma correcta.

Probamos diferentes versiones de Maven (2.1.0 y 2.2.0), pero no se solucionó. Probamos diferentes versiones de las dependencias de AspectJ, y tampoco tuvimos suerte. Después de buscar un poco encontramos un par de bugs reportados, en este link, este link y este otro, y comprendimos que el problema venía por el lado del plugin maven-eclipse-plugin de Maven, y no por el lado de nuestro proyecto. Comprobamos que este error se da utlizando las versiones posteriores a la 2.5.1 del plugin (2.6 en adelante), y que las diferencias en nuestros ambientes de
desarrollo se daban porque yo tenía configurado un proxy HTTP, que me retornaba una versión vieja del maven-metadata-central.xml del plugin. En cuanto saqué la configuración del proxy del settings.xml de Maven, Maven actualizó los JARs del plugin en mi PC, y ambos ambientes reflejaron el mismo problema.

El problema se da cuando el soporte para AJDT está activado. Para solucionarlo, debemos agregar la línea <ajdtVersion>none</ajdtVersion> a la configuración de maven-eclipse-plugin en el pom.xml de nuestro proyecto:

<project ...>
	...
	<build>
		<plugins>
			...
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<configuration>
					...
					<ajdtVersion>none</ajdtVersion>
					...
				</configuration>
			</plugin>
			...
		</plugins>
	</build>
	...
</project>

Referencias

https://fisheye.codehaus.org/browse/MECLIPSE-544
https://fisheye.codehaus.org/browse/MECLIPSE-558
https://bugs.eclipse.org/bugs/show_bug.cgi?id=270554
http://dev.eclipse.org/newslists/news.eclipse.technology.ajdt/msg01933.html

http://maven.apache.org/plugins/maven-eclipse-plugin/examples/ajdt-projects.html

Cheat sheets

En http://www.cheat-sheets.org/ tenemos una colección de hojas de referencia sobre un montón de tecnologías, sistemas operativos, bases de datos, entre otros. Están buenas para tener alguna impresa para pegarle un vistazo si no queremos “googlear” algún detalle particular.

Listo algunas de las más interesantes:

.NET

.NET Format String Quick Referencee
Core C# and .NET Quick Reference by Stephen C. Perry [pdf] (digilife.be)
C# and VB.NET Comparison Cheat Sheet by Steven Swafford [pdf] (aspalliance.com)

CVS

CVS Quick Reference Card Andrew Ford [pdf] (refcards.com)

Design patterns

Design Patterns Quick Reference by Jason S. McDonald [pdf] (mcdonaldland.info)

Eclipse

Eclipse Keyboard Shortcuts by Jesper Kamstrup Linnet [pdf, rtf] (eclipse-tools.sourceforge.net)

FTP

List of FTP commands for the Microsoft command-line FTP client (nsftools.com)

Linux

Unix/Linux Command Cheat Sheet by Jacob [pdf] (fosswire.net)
Linux Administrator’s Quick Reference by Jialong He [pdf] (tiger.la.asu.edu)
The One Page Linux Manual by Squadron [pdf] (homepage.powerup.com.au/~squadron/, digilife.be)

MySQL

MySQL Cheat Sheet by Dave Child [png, pdf] (addedbytes.com)
MySQL cheatsheets by Bob Stein, VisiBone [two wall posters 43cmx61cm or 61cmx87cm, jpg] (visibone.com)
MySQL Cheat Sheet (nparikh.org)
MySQL Database Quick Reference by DeepX [pdf] (tiger.la.asu.edu)

OpenSSH

OpenSSH Configuration Quick Reference by Jialong He [pdf] (tiger.la.asu.edu)

Firefox

Keyboard Shortcuts (mozilla.org)

SQL

SQL in one page (sql.su)

SQL Server

SQL Server Cheat Sheet by Dave Child [png, pdf] (addedbytes.com)

Subversion

Subversion Cheat Sheet by Dave Child [pdf] (addedbytes.com)
Subversion Quick Reference Card by Cezary Sobaniec [pdf] (cs.put.poznan.pl)

UNIX

UNIX BASH shell Quick Reference by Arnold Robbins [pdf] (tiger.la.asu.edu)

XML

XML 1.0 Syntax Quick Reference by Mulberry Technologies, Inc. [pdf] (mulberrytech.com)

XPath y XSLT

XSLT 1.0 and XPath 1.0 Quick Reference [pdf] (mulberrytech.com)
XPath by DeepX Ltd [pdf] (refcards.com)

Actualización 24-Nov-2009

Agrego una colección de 25 cheat sheets de diseño web, PHP, WordPress, Photoshop, etc. que me pareció interesante: 34 cheat sheets for web designers and developers