Vim como IDE

Aunque vim, un clónico del clásico editor vi, no puede compararse a la funcionalidad que proveen populares IDEs como Eclipse o Netbeans, tiene una serie de ventajas como su ligereza y el estar disponible en casi todos las distribuciones Linux o UNIX, y es este punto el que justifica esta entrada.

En determinados entornos no tenemos disponible un IDE o ni siquiera un entorno de ventanas, pero aún así se puede editar código Java. Primero hablemos de la configuración de Vim para numeración de líneas, identación de código con cuatro espacios y resalte la sintáxis.

set nu
set tabstop=4
syntax on

La anterior configuración debe añadirse al fichero .vimrc en nuestro directorio HOME de usuario. Los leguajes más populares están soportados, y de no ser así en la web de podemos encontrar los ficheros necesarios para otros lenguajes.

A pesar de que Vim es muy ligero, no es necesario editar, grabar y salir para compilar el código, con la secuencia “ESC + : + ! + comando” podemos invocar cualquier aplicación disponible:


:!ls

Recordamos que con “ESC” accedemos al modo comando de vi, mientras que pulsando la tecla “i” lo hacemos al de edición.

Para muestra un botón, el clásico Hola Mundo.


vi Hello.java

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Que puede compilarse y ejecutarse con los siguientes comandos.


:!javac Hello.java
:!java Hello

Con las anteriores instrucciones.

Publicada en Linux, java | Etiquetas , , , , , | Dejar un comentario

Maven plugins

Los plugins son los elementos que realmente hacen el trabajo en maven, típicamente las fases. El más importante: el compilador , que es el más usado, y que yo configuro para que trabaje con una determinada versión de java. Ver fragmento de pom.xml aquí.

Y otro que acabo de descubrir, el de recursos, que configuro para indicar la codificación por defecto y que la salida no sea dependiente de la plataforma donde se compila. Pero este plugin es interesante porque permite indicar la ubicación de recursos diferentes a la ruta por defecto (main/resources) lo que hace adecuado para portar proyectos existentes.

<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<encoding>utf-8</encoding>
</configuration>
</plugin>

Publicada en java | Etiquetas , , , | Dejar un comentario

grub2 in a partition

I enjoy using debian on my second generation macbook, and everything was working fine until my last system update, because I was unable to boot linux. I followed this guide to install it, and I use rEFIt to boot OS X and grub which boots linux. So grub is installed in a partition, /dev/sda3 in my case.

With previous updates grub2 was ready to replace grub in my current installation so I was surprised to see it was falling, till now :)

It seems when I tried to install it on the desired partition grub reported and error, but with the force option I succeed and now everything works.

grub-install --force /dev/sda3

Publicada en Linux | Etiquetas , , , , , | Dejar un comentario

Añadir repositorios para maven

Se debe añadir los repositorios a nuestro fichero de configuración, .m2/settings.xml, con el siguiente contenido:

<settings>
    <profiles>
        <profile>
            <id>standard-extra-repos</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <id>jboss</id>
                    <url>http://repository.jboss.com/maven2</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>jboss-snapshot</id>
                    <url>http://snapshots.jboss.org/maven2</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>jboss-plugins</id>
                    <url>http://repository.jboss.com/maven2</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>jboss-snapshot-plugins</id>
                    <url>http://snapshots.jboss.org/maven2</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
</settings>

Como bien comentan en el post que he seguido, a mayor numero de repositorios más lento funcionará maven.

The developer corner

Publicada en java | Etiquetas , , , | Dejar un comentario

Proyecto simple de Java con maven2, junit 4 y log4j en Eclipse

Para crear un proyecto java sencillo con maven2 podemos hacer uso del arquetipo quickstart, pero tiene el problema de que no se ajusta exactamente a mi configuración: pues me gusta ya configurar desde el principio las pruebas con junit 4 y usar log4j en lugar de imprimir por pantalla.

Creado el proyecto editamos el fichero pom.xml para añadir las dependencias a junit 4, y no 3 como hace por defecto, y log4j. Tambien aprovecharemos para añadir el plugin de compilación y establecer la compatibilidad con java 1.6.

Para el plugin se inserta el siguiente fragmento.

<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>

Mientras que para las dependencias será:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.8</version>
</dependency>
</dependencies>

Luego se crea el directorio src/main/resources que contendra el fichero de propiedades para log4j.properties.


log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=App.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

# set root log level
log4j.rootLogger=debug, stdout

La mayor parte de la configuración se puede hacer gráficamente, click derecho y seleccionando add dependency o add plugin sobre el proyecto de trabajo.

Publicada en java | Etiquetas , , , , | 1 Comentar

Arreglando problemas con subversion

Últimamente vuelvo a trabajar mucho con la línea de comandos, no en vano el teclado te permite trabajar mas rápido. Lo que puede crearte problemas cuando no puedes deshacer acciones, y a veces, trabajando con un módulo de codigo versionado la he cagado y no sabía salir al paso si no era capaz de resolver mi embrollo el IDE de turno.

Subversion guarda la información de archivos versionados dentro de un directorio oculto con nombre svn, por lo tanto si se te presentan problemas, puedes borrarlo y añadir los nuevos directorios al repositorio de código, y digo nuevos, porque al borrar el registro subversion no sabrá que ya estaban ahí.

Para no ir uno a uno, porque se alcena uno por directorio, realizaremos una búsqueda que se usará como entrada para el comando de borrado recursivo:

find . -name .svn | xargs rm -fr

Publicada en General, Linux, subversion | Etiquetas , , , | Dejar un comentario

Subversion en debian rápido

Una guía rápida para versionar código en Debian con subversion.

Instalamos subversion:

apt-get install subversion

Se crea el repositorio

svnadmin create /usr/local/src/jmdocbook

se crea el directorio /tmp/jmdocbook/trunk que alojará los módulos y se hace la primera importación.

svn import /tmp/jmdocbook file:///usr/local/src/jmdocbook -m "Initial import."

Comandos útiles para ver los proyectos versionados y descargarlos:

svn list file:///usr/local/src/jmdocbook/trunk

svn co file:///usr/local/src/jmdocbook/trunk/modulo

cd modulo
svn status // para ver los cambios
svn add directorio // para versionar un directorio y su contenido
svn del directorio // para eliminarlo
svn commit -m "Mensaje explicativo."

Para mas información visitar la wiki de debian sobre subversion.

Publicada en General, Linux | Etiquetas , , | Dejar un comentario

Pasando a la accion

Leo via meneame.net que David Bravo y Javier de la Cueva, siguiendo sus convicciones de defensa de las libertades digitales de los ciudadanos, han decidido una vez pasar a la accion.

Os dejo el enlace:

http://www.filmica.com/david_bravo/archivos/010338.html

P.D.: Pido disculpas por la ortografia, lo he escrito rapido en un teclado ingles.

Publicada en General | Etiquetas , , , | Dejar un comentario

En defensa de los derechos fundamentales

Desde este blog nos sumamos a los esfuerzos para preservar los derechos fundamentales adquiridos de los ciudadanos en la red.

Ciberderechos Barrapunto.com

Applesfera

Publicada en General | Etiquetas , , , , | Dejar un comentario

Contra el tijeretazo en I+D

La ciencia española no necesita tijeras.

La ciencia española no necesita tijeras.

He decidido unirme a la iniciativa lanzada por aldea irreductible protestando contra el recorte en investigación y desarrollo planteado en los presupuestos generales del estado por el actual gobierno.

Es una realidad que aquellos países que invierten en capital humano son los que se encuentran en la vanguardia del desarrollo. Si se propone cambiar el modelo productivo de este país, para volver a tiempos prehistóricos, no se me ocurre mejor manera que la propuesta. Si ya había fuga de cerebros españoles, ahora tendrán otro incentivo más.

En estos momentos me viene a la cabeza la propuesta de un portátil por estudiante. Es realmente necesaria en estos momentos? Por qué esa inversión no se prioriza para I+D, y que nuestros científicos e investigadores no tengan que huir de España? Máxime cuando los más beneficiados con aquella idea son empresas extranjeras con mínima inversión en España.

En definitiva, la mayoría somos conscientes de los difíciles momentos que todavían nos quedan, pero creemos que la actual propuesta del gobierno es totalmente desacertada y puede tener consecuencias catastróficas.

Publicada en General | Dejar un comentario