<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jm2dev &#187; josemiguel</title>
	<atom:link href="http://www.jm2dev.com/author/josemiguel/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jm2dev.com</link>
	<description>desarrollo software en el siglo XXI</description>
	<lastBuildDate>Sun, 28 Aug 2011 16:09:44 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Scalatra on OSX Lion</title>
		<link>http://www.jm2dev.com/2011/08/scalatra-on-osx-lion/</link>
		<comments>http://www.jm2dev.com/2011/08/scalatra-on-osx-lion/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 16:09:44 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[conscript]]></category>
		<category><![CDATA[giter8]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[sbt]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[scalatra]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=179</guid>
		<description><![CDATA[Set up a scalatra project with sbt on OSX Lion.]]></description>
			<content:encoded><![CDATA[<p>This post aims to describe my first steps with scalatra and sbt on a macbook running OSX Lion.</p>
<p>I installed <a href="http://scala-lang.org">scala</a> using <a href="http://www.macports.org">macports</a></p>
<p><code>$ sudo port install scala29</code></p>
<p>As macport provides different scala versions, I use scala-select to set up my scala default version: 2.9.0</p>
<p><code>$ sudo port select scala scala29</code></p>
<p>Unfortunately macport provides an old sbt version, so I proceed with a manual installation. Just copy to jar file to the desired location, I chose /usr/share/sbt, and create a shell script to launch it:</p>
<p><code>/usr/share/sbt<br />
├── bin<br />
│      └── sbt<br />
└── lib<br />
│      └── sbt-launch.jar<br />
</code></p>
<p>And the sbt script content:</p>
<p><code>java -Dfile.encoding=UTF8<br />
     -Xmx1536M<br />
     -Xss1M<br />
     -XX:+CMSClassUnloadingEnabled<br />
     -XX:MaxPermSize=256m<br />
     -jar /usr/share/sbt/lib/sbt-launch.jar "$@"<br />
</code></p>
<p>Finally I created a symlink to the sbt script</p>
<p><code>$ ln -s /usr/share/bin/sbt /usr/bin/sbt<br />
</code></p>
<p>You can find a very basic project in my <a href="https://github.com/jm2dev/jm-scala">github account</a> to test it:</p>
<p>As the scalatra website recommends, I installed giter8 via conscript.</p>
<p><code>$ cd<br />
$ curl https://raw.github.com/n8han/conscript/master/setup.sh | sh<br />
$ ~/bin/cs n8han/giter8<br />
</code></p>
<p>At this point the installation failed because it couldn&#8217;t find commons-logging dependency, so I added that dependency to my basic sbt project and it was available next time I rerun the giter8 installation. Now you can create a scalatra template running:</p>
<p><code>$ ~/bin/g8 scalatra/scalatra-sbt</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2011/08/scalatra-on-osx-lion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My experience with Intellij idea on FreeBSD</title>
		<link>http://www.jm2dev.com/2011/07/my-experience-with-intellij-idea-on-freebsd/</link>
		<comments>http://www.jm2dev.com/2011/07/my-experience-with-intellij-idea-on-freebsd/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 21:35:21 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[freebsd]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[xmonad freebsd intellij idea java openjdk]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=171</guid>
		<description><![CDATA[Intellij Idea Community Edition on FreeBSD with OpenJDK 7.]]></description>
			<content:encoded><![CDATA[<p>I want to try <a href="http://www.jetbrains.com/idea/">Intellij Idea Community Edition</a> for their groovy support. Although it is not officially support, I downloaded the linux binary and uncompressed it to /usr/local/share/java. I used <a href="http://www.freshports.org/java/openjdk7/">openjdk 7</a> and I decided to export JDK_HOME environmental variable pointing to my JAVA_HOME location, as it seems Idea tries to guess that value unsuccessfully.</p>
<p>I experienced problems with my favourite window manager, <a href="http://www.xmonad.org">XMonad</a>, and because I was unable to fix it, incapacity to enter text, I moved temporary to <a href="http://www.enlightenment.org">Enlightenment</a> which does not show that disgusting behaviour. It seems that issue can be solved using xmonad module <a href="http://www.eng.uwaterloo.ca/~aavogt/xmonad/docs/xmonad-contrib/src/XMonad-Hooks-ICCCMFocus.html">ICCCMFocus</a>, but it isn&#8217;t packaged for FreeBSD yet.</p>
<p>UPDATE: Swing Java reported issue with Xmonad <a href="http://code.google.com/p/xmonad/issues/detail?id=177&#038;q=swing">here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2011/07/my-experience-with-intellij-idea-on-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracking FreeBSD 8 STABLE</title>
		<link>http://www.jm2dev.com/2011/04/tracking-freebsd-8-stable/</link>
		<comments>http://www.jm2dev.com/2011/04/tracking-freebsd-8-stable/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 11:08:38 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[freebsd]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[stable]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=164</guid>
		<description><![CDATA[The procedure I followed to track FreeBSD 8 stable.]]></description>
			<content:encoded><![CDATA[<p>Here I describe the instructions I run to trac FreeBSD 8 stable, which is a bit similar to debian testing for linux users.</p>
<p><a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html">FreeBSD documentation is the best resource</a>, and this post doesn&#8217;t intend to be a replacement, just a quickguide. I strongly recommend read it for further clarifications and to get a proper understanding of what you&#8217;re doing.</p>
<p>Basically I reboot my Thinkpad X60s with the minimum services, no tomcat, no database, no X system. You can see my rc.conf <a href="https://github.com/jm2dev/jm-workstation/blob/master/FreeBSD-stable/rc.conf">here</a>.</p>
<p>OK, so now we are in front a nice old school terminal, log in as root, sync code for the base system (here you can find my supfile for csup utility), build the kernel, reboot in single user mode and install the new built base system.</p>
<p>FreeBSD can be seen as two different parts: the operating system, what I called base system, and the third party applications. We finished with the first part, the second one is quite similar as we get the code (sync ports) and upgrade the applications using packages when they are available.</p>
<p>Again I used csup and my ports supfile can be found <a href="https://github.com/jm2dev/jm-workstation/blob/master/FreeBSD-stable/portupgrade-UK-stable-supfile">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2011/04/tracking-freebsd-8-stable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando FreeBSD 8 STABLE</title>
		<link>http://www.jm2dev.com/2011/04/usando-freebsd-8-stable/</link>
		<comments>http://www.jm2dev.com/2011/04/usando-freebsd-8-stable/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 11:03:25 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[stable]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=160</guid>
		<description><![CDATA[Instrucciones y ficheros de configuración que he usado para sincronizar con la versión estable de FreeBSD 8.]]></description>
			<content:encoded><![CDATA[<p>Sincronizar tu FreeBSD con la rama estable, viene a ser lo mismo que seguir la rama testing de debian. Es la versión usable donde tienes disponible las ultimas versiones de aplicaciones que se van añadiendo.</p>
<p>La documentación de FreeBSD al respecto es muy buena, y aconsejo su lectura.</p>
<p>Esta ha sido mi experiencia, que se resume en reiniciar con los servicios mínimos, recompilar el kernel con la ultima versión del código disponible, y actualizar mis aplicaciones mediante el sistema de ports.</p>
<p>Primero desactivo servicios innecesarios, mi /etc/rc.conf puedes verlo  <a href="https://github.com/jm2dev/jm-workstation/blob/master/FreeBSD-stable/rc.conf">aquí</a>.</p>
<p>Tras reiniciar, en modo texto, pues una terminal es lo único que necesitamos, adapto el supfile de ejemplo (/usr/share/example/supfile) que usare para sincronizar con csup quedando <a href="https://github.com/jm2dev/jm-workstation/blob/master/FreeBSD-stable/csup-UK-stable-supfile">así</a>.</p>
<p>A continuación como se describe en la forma canónica para <a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html">recompilar el núcleo</a>. Donde la diferencia es que he ejecutado make con la opción j8 porque tengo un core 2 duo y de esta forma reduzco considerablemente el tiempo necesario para las compilaciones.</p>
<p>Si todo ha ido bien tenemos la ultima versión del núcleo, y procedemos a actualizar las aplicaciones en este caso con portupgrade y usando paquetes precompilados siempre que sea posible. También he creado un <a href="https://github.com/jm2dev/jm-workstation/blob/master/FreeBSD-stable/portupgrade-UK-stable-supfile">supfile</a> que se ajusta a mis necesidades.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2011/04/usando-freebsd-8-stable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD 8 + debian con grub2</title>
		<link>http://www.jm2dev.com/2010/03/freebsd-8-debian-con-grub2/</link>
		<comments>http://www.jm2dev.com/2010/03/freebsd-8-debian-con-grub2/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 21:12:16 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[grub2]]></category>
		<category><![CDATA[lvm]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=157</guid>
		<description><![CDATA[Entrada en grub2 para arrancar FreeBSD 8 desde debian testing.]]></description>
			<content:encoded><![CDATA[<p>He decidido montar un servidor con arranque dual: debian linux y FreeBSD 8. He realizado la instalación básica de FreeBSD, sin gestor de arranque, y a continuacion la instalación de debian lenny, usando LVM para todas las particiones menos boot y swap. La instalación de debian tambien ha sido básica porque he migrado a testing inmediatamente. Tras instalar todo lo que necesito e actualizado a grub2 y he ahí la razón de esta entrada: no reconoce FreeBSD.</p>
<p>Para ello se edita el fichero <strong>/etc/grub.d/40_custom</strong>:</p>
<p><code><br />
#!/bin/sh<br />
exec tail -n +3 $0<br />
# This file provides an easy way to add custom menu entries.  Simply type the<br />
# menu entries you want to add after this comment.  Be careful not to change<br />
# the 'exec tail' line above.<br />
menuentry "FreeBSD 8.0-RELEASE AMD64" {<br />
set root=(hd0,0)<br />
chainloader +1<br />
}<br />
</code></p>
<p>Una vez terminado se actualiza grub con el comando <strong>update-grub</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/03/freebsd-8-debian-con-grub2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse STS + maven2 no embebido</title>
		<link>http://www.jm2dev.com/2010/03/eclipse-sts-maven2-no-embebido/</link>
		<comments>http://www.jm2dev.com/2010/03/eclipse-sts-maven2-no-embebido/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 11:11:43 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[maven2]]></category>
		<category><![CDATA[springsource]]></category>
		<category><![CDATA[squeeze]]></category>
		<category><![CDATA[sts]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=154</guid>
		<description><![CDATA[Recientemente he comenzado a utilizar la versión de Eclipse desarrollada por Spring Source, y me he encontrado con una serie de inconvenientes a la hora de usar maven2, como no poder añadir dependencias o plugins porque no se encuentran.
La solución que he encontrado consiste en dejar de usar la versión de maven embebida, y reemplazarla [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente he comenzado a utilizar la versión de <a href="http://www.eclipse.org">Eclipse</a> desarrollada por <a href="http://www.grails.org/STS+Integration">Spring Source</a>, y me he encontrado con una serie de <a href="http://stackoverflow.com/questions/2341004/eclipse-sts-maven">inconvenientes</a> a la hora de usar <a href="http://maven.apache.org">maven2</a>, como no poder añadir dependencias o plugins porque no se encuentran.</p>
<p>La solución que he encontrado consiste en dejar de usar la versión de maven embebida, y reemplazarla por la instalada en mi sistema. Para ello se accede al menú <em>Window/Preferences/Maven/Installations</em> y se añade el maven2 resisdente en mi sistema (en mi caso un debian squeeze):</p>
<p><code>/usr/share/maven2</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/03/eclipse-sts-maven2-no-embebido/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gesti&#243;n de entornos con usepackage en debian</title>
		<link>http://www.jm2dev.com/2010/03/gestin-de-entornos-con-usepackage-en-debian/</link>
		<comments>http://www.jm2dev.com/2010/03/gestin-de-entornos-con-usepackage-en-debian/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 17:57:43 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[use]]></category>
		<category><![CDATA[usepackage]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=149</guid>
		<description><![CDATA[Gesti&#243;n sencilla de varios entornos de desarrollo grails con el comando use en debian linux.]]></description>
			<content:encoded><![CDATA[<p>Los que nos dedicamos al desarrollo software a veces necesitamos trabajar con diferentes entornos, i.e. diferentes versiones de Java, y la gestión asociada puede ser bastante engorrosa. Tradicionalmente se recomienda usar un enlace genérico que apunte al entorno específico.</p>
<p>El paquete <a href="http://usepackage.sourceforge.net/">usepackage</a> viene en nuestra ayuda. En debian podemos instalarlo como</p>
<p><code>apt-get install usepackage</code></p>
<p>A continuación se escribe en los ficheros de configuración las variables de entorno a cargar según el entorno deseado. Va a usarse como caso práctico diferentes versiones de <a href="http://www.grails.org">grails</a>.</p>
<p>Editamos <em>.bashrc</em> para cargar <em>use</em> al inicio de sesión:</p>
<p><code>. /usr/share/usepackage/use.bsh</code></p>
<p>Se crea el fichero <em>/etc/usepackage/grails.conf</em> con el siguiente contenido:<br />
<code><br />
# GRails 1.1.1<br />
&gt;&gt; grails1.1.1: "Grails 1.1.1" &lt;&lt;<br />
grails1.1.1 * * * * : GRAILS_HOME = /usr/local/grails-1.1.1,<br />
PATH+= /usr/local/grails-1.1.1/bin;</code></p>
<p><code> </code></p>
<p><code># GRails 1.2.1<br />
&gt;&gt; grails1.2.1: "Grails 1.2.1" &lt;&lt;<br />
grails1.1.2 * * * * : GRAILS_HOME = /usr/local/grails-1.2.1,<br />
PATH+= /usr/local/grails-1.2.1/bin;<br />
</code><br />
Y finalmente creamos <em>~/.packages</em> para insertar:</p>
<p><code>(include /etc/usepackage/grails.conf)</code></p>
<p>Refrescando la configuración (<strong>source .bashrc</strong>) y ejecutando <strong>use -l</strong> podremos ver los diferentes entornos disponibles, de los que nos interesan:<br />
<code><br />
grails1.1.1 - Grails 1.1.1<br />
grails1.2.1 - Grails 1.2.1<br />
</code><br />
Y cargamos el deseado con <strong>use grails1.2.1</strong> por ejemplo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/03/gestin-de-entornos-con-usepackage-en-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importar un proyecto java en Eclipse</title>
		<link>http://www.jm2dev.com/2010/03/importar-un-proyecto-java-en-eclipse/</link>
		<comments>http://www.jm2dev.com/2010/03/importar-un-proyecto-java-en-eclipse/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 14:02:51 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[importar]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=146</guid>
		<description><![CDATA[Importaci&#243;n de un proyecto Java en Eclipse.]]></description>
			<content:encoded><![CDATA[<p>Puede parecer una entrada un poco tonta, pero lo cierto es que hay programadores que no lo tienen claro: el IDE es sólo una ayuda en el ciclo de desarrollo y no un fin en si mismo. Esto es, lo realmente importante es el código.</p>
<p>Me he decidido por esta entrada porque trabajo en un proyecto consistente en bastantes módulos, y como muchos desarrolladores han pasado por ahí, todos y cada uno ha dejado su granito de arena y un poco más (típicamente mierda). El caso es que desde la línea de comandos se puede compilar todo sin problemas, pero no todo el mundo quiere trabajar así.</p>
<p>El procedimiento es sencillo, se crea un nuevo proyecto Java (<strong>New Java Project</strong>) y se selecciona la opción <strong>Create project from existing source</strong>, apuntando al directorio que contiene todo el código, y que por buenas practicas hemos dejado en el <strong>workspace</strong>, no es plan de hacer copias innecesarias.</p>
<p>Comprobamos el entorno de ejecución, versión Java a usar, pulsamos <strong>siguiente</strong> o <strong>next</strong> para comprobar que se incluyen los directorios con los diferentes módulos y pinchamos sobre la <strong>pestaña de librerías</strong> para verificar que se han incluido. Si el proyecto tiene una estructura que se ajusta a las convenciones (<em>src/main/java</em> para el código, <em>src/test/java</em> para las pruebas, <em>lib</em> para las librerías y <em>conf</em> o <em>src/resources</em> para los ficheros de configuración) todo debería cargarse automáticamente, si no es así tocará añadirlo a mano y aprenderemos el valor de las convenciones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/03/importar-un-proyecto-java-en-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TestNG con maven</title>
		<link>http://www.jm2dev.com/2010/02/testng-con-maven/</link>
		<comments>http://www.jm2dev.com/2010/02/testng-con-maven/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:44:24 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[pruebas]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[testng]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=140</guid>
		<description><![CDATA[TestNG como dependencia en un proyecto Maven.]]></description>
			<content:encoded><![CDATA[<p>Para la realización de pruebas unitarias en Java el framework más utilizado es sin duda <a href="http://www.junit.org">JUnit</a>, que está soportado por maven, de hecho el arquetipo para una aplicación sencilla lo incluye como dependencia aunque sea como una versión antigua y siempre lo sustituya. Pero ha ganado popularidad <a href="http://www.testng.org">TestNG</a>, con lo que puestos a editar el fichero POM podemos sustituir JUnit por TestNG con el siguiente fragmento de código.</p>
<pre>
&lt;dependency&gt;
    &lt;groupId&gt;org.testng&lt;/groupId&gt;
    &lt;artifactId&gt;testng&lt;/artifactId&gt;
    &lt;version&gt;5.11&lt;/version&gt;
    &lt;classifier&gt;jdk15&lt;/classifier&gt;
    &lt;scope&gt;test&lt;/scope&gt;
&lt;/dependency&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/02/testng-con-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim como IDE</title>
		<link>http://www.jm2dev.com/2010/02/vim-como-ide/</link>
		<comments>http://www.jm2dev.com/2010/02/vim-como-ide/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 11:14:21 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[vimrc]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=131</guid>
		<description><![CDATA[Vim como un r&#225;pido y sencillo IDE para Java.]]></description>
			<content:encoded><![CDATA[<p>Aunque vim, un clónico del clásico editor vi, no puede compararse a la funcionalidad que proveen populares IDEs como <a href="www.eclipse.org">Eclipse</a> o <a href="www.netbeans.org">Netbeans</a>, 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.</p>
<p>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&aacute;xis.</p>
<p><code> set nu<br />
set tabstop=4<br />
syntax on<br />
</code></p>
<p>La anterior configuraci&oacute;n debe a&ntilde;adirse al fichero <code>.vimrc</code> en nuestro directorio HOME de usuario. Los leguajes más populares est&aacute;n soportados, y de no ser así en la web de <a href="http://www.vim.org/"vim</a> podemos encontrar los ficheros necesarios para otros lenguajes.</p>
<p>A pesar de que Vim es muy ligero, no es necesario editar, grabar y salir para compilar el código, con la secuencia &#8220;<code>ESC + : +  ! + comando</code>&#8221; podemos invocar cualquier aplicación disponible:</p>
<p><code><br />
:!ls<br />
</code></p>
<p>Recordamos que con &#8220;<code>ESC</code>&#8221; accedemos al modo comando de vi, mientras que pulsando la tecla &#8220;<code>i</code>&#8221; lo hacemos al de edici&oacute;n.</p>
<p>Para muestra un botón, el clásico Hola Mundo.</p>
<p><code><br />
vi Hello.java<br />
</code></p>
<pre>
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
</pre>
<p>Que puede compilarse y ejecutarse con los siguientes comandos.</p>
<p><code><br />
:!javac Hello.java<br />
:!java Hello<br />
</code></p>
<p>Con las anteriores instrucciones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/02/vim-como-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

