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.
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.
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:
- El parámetro
-vmdebe ir solo en una línea, con su valor en la línea siguiente. - El valor del parámetro
-vmes la ruta hasta el ejecutable (por ejemplojavaw.exe), no es la ruta del directorio que lo contiene. - Es importante la ubicación del parámetro
-vm. Debe estar ubicado antes del parámetro-vmargs. Todos los parámetros luego de-vmargsserá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:

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 Injection Cheat Sheet (ferruh.mavituna.com)
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

