<?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; Linux</title>
	<atom:link href="http://www.jm2dev.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jm2dev.com</link>
	<description>desarrollo software en el siglo XXI</description>
	<lastBuildDate>Thu, 25 Mar 2010 21:12:16 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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>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>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>
		<item>
		<title>grub2 in a partition</title>
		<link>http://www.jm2dev.com/2010/02/grub2-in-a-partition/</link>
		<comments>http://www.jm2dev.com/2010/02/grub2-in-a-partition/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 17:52:04 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[grub2]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[squeeze]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=118</guid>
		<description><![CDATA[grub2 working in a partition, non MBR.]]></description>
			<content:encoded><![CDATA[<p>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 <a href="http://wiki.debian.org/MacBook">guide</a> 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.</p>
<p>With previous updates grub2 was ready to replace grub in my current installation so I was surprised to see it was falling, till now <img src='http://www.jm2dev.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>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.</p>
<p><code>grub-install --force /dev/sda3</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/02/grub2-in-a-partition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arreglando problemas con subversion</title>
		<link>http://www.jm2dev.com/2010/01/arreglando-problemas-con-subversion/</link>
		<comments>http://www.jm2dev.com/2010/01/arreglando-problemas-con-subversion/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 14:48:56 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[xargs]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=96</guid>
		<description><![CDATA[Ú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 [...]]]></description>
			<content:encoded><![CDATA[<p>Ú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.</p>
<p>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í.</p>
<p>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:</p>
<p><code>find . -name .svn | xargs rm -fr</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/01/arreglando-problemas-con-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion en debian r&#225;pido</title>
		<link>http://www.jm2dev.com/2010/01/subversion-en-debian-rapido/</link>
		<comments>http://www.jm2dev.com/2010/01/subversion-en-debian-rapido/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 23:32:27 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=85</guid>
		<description><![CDATA[Gu&#237;a r&#225;pida para versionar c&#243;digo con subversion en debian.]]></description>
			<content:encoded><![CDATA[<p>Una guía rápida para versionar código en Debian con subversion.</p>
<p>Instalamos subversion:</p>
<p><code>apt-get install subversion</code></p>
<p>Se crea el repositorio</p>
<p><code>svnadmin create /usr/local/src/jmdocbook</code></p>
<p>se crea el directorio /tmp/jmdocbook/trunk que alojará los módulos y se hace la primera importación.</p>
<p><code>svn import /tmp/jmdocbook file:///usr/local/src/jmdocbook -m "Initial import."</code></p>
<p>Comandos útiles para ver los proyectos versionados y descargarlos:</p>
<p><code>svn list file:///usr/local/src/jmdocbook/trunk</code></p>
<p>svn co file:///usr/local/src/jmdocbook/trunk/modulo</p>
<p><code>cd modulo<br />
svn status // para ver los cambios<br />
svn add directorio // para versionar un directorio y su contenido<br />
svn del directorio // para eliminarlo<br />
svn commit -m "Mensaje explicativo."</code></p>
<p>Para mas información visitar la wiki de debian sobre <a href="http://wiki.debian.org/SmallSVNTutorial" target="_blank">subversion</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/01/subversion-en-debian-rapido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PC-BSD</title>
		<link>http://www.jm2dev.com/2009/10/pc-bsd/</link>
		<comments>http://www.jm2dev.com/2009/10/pc-bsd/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 13:22:12 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[acer]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[pcbsd]]></category>
		<category><![CDATA[travelmate]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=70</guid>
		<description><![CDATA[Debido a que el portátil de mi hermana se estropeó y no queria comprar un nuevo, al fin y al cabo estamos en crisis, decidí desempolvar mi viejo portátil, un acer travelmate de la serie 4100, y con la idea de que ella trabajara con un sistema operativo abierto, me decidi por instalar un Linux, [...]]]></description>
			<content:encoded><![CDATA[<p>Debido a que el portátil de mi hermana se estropeó y no queria comprar un nuevo, al fin y al cabo estamos en crisis, decidí desempolvar mi viejo portátil, un acer travelmate de la serie 4100, y con la idea de que ella trabajara con un sistema operativo abierto, me decidi por instalar un Linux, concretamente un ubuntu, pero desistí porque no conseguí que se conectara via inalámbrica al router casero. Lo curioso es que la tarjeta wireless funcionaba correctamente, y otras redes eran visibles menos la de interés. Debo reconocer que ese router y mi portátil siempre se llevaron mal.</p>
<p>Como siempre he tirado más para UNIX decidí darle una oportunidad a FreeBSD, pero como el usuario final iba a ser mi hermana y no yo, opté por buscar una variante mas amigable. Y encontré <a href="http://pcbsd.org/">PC-BSD</a>.</p>
<p>Grabé el CD para una instalación mínima y completarla por Internet, y debo decir que fue muy satisfactoria: el instalador es totalmente gráfico y detectó y configuró todo sin problemas. No en vano el portatil tiene ya sus años y daba por hecho que estaría soportado.</p>
<p>El interfaz gráfico es <a href="http://www.kde.org">KDE</a> en su versión 4.2 con un acabado muy agradable, y donde la instalación de nuevos programas se ha simplificado mucho comparado con la compilación vía ports tradicional de <a href="http://www.freebsd.org">FreeBSD</a>. El sistema de paquetes que propone esta distribución se base en incluir todo en el binario, sin presuponer la existencia de librerías en el sistema, de una forma similar a como opera <a href="http://www.apple.com">OS X</a>. Seguramente no es la solución óptima, pero funciona y sin quebraderos de cabeza. Instalé <a href="http://www.mozilla.com/en-US/firefox/personal.html">Mozilla Firefox</a> como navegador predeterminado y tras comprobar que visualizaba correctamente webs de correo electrónico y de redes sociales, lo dí por finiquitado y se lo cedí a mi hermana que se ha mostrado encantada.</p>
<p>Finalmente, aunque recomendaba Ubuntu Linux a los amigos que se querían iniciar o deseaban alargar la vida útil de su computadora, esta variación BSD me parece que ha hecho un excelente trabajo simplificando la instalación del sistema operativo y la gestión del software mediante su sistema <a href="http://www.pbidir.com/">PBI</a>. KDE como interfaz gráfico me parece correcto, porque a pesar de ser una aplicación pesada corre fluidamente en un hardware de hace casi cinco años.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2009/10/pc-bsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La importancia de la documentación</title>
		<link>http://www.jm2dev.com/2009/02/la-importancia-de-la-documentacion/</link>
		<comments>http://www.jm2dev.com/2009/02/la-importancia-de-la-documentacion/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 23:05:41 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[archivo]]></category>
		<category><![CDATA[documentación]]></category>
		<category><![CDATA[fichero]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[TeX]]></category>
		<category><![CDATA[texto]]></category>
		<category><![CDATA[texto plano]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[word]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=53</guid>
		<description><![CDATA[Cualquier proyecto de ingeniería por la complejidad que acarrea requiere de un esfuerzo especial para plasmar las idea principal y cómo desarrollarla de principio a fin. En el caso de los proyectos de software no nos encontramos en una situación muy diferente.
Pero cómo se puede documentar un proyecto software de forma sencilla y satisfactoria? En [...]]]></description>
			<content:encoded><![CDATA[<p>Cualquier proyecto de ingeniería por la complejidad que acarrea requiere de un esfuerzo especial para plasmar las idea principal y cómo desarrollarla de principio a fin. En el caso de los proyectos de software no nos encontramos en una situación muy diferente.</p>
<p>Pero cómo se puede documentar un proyecto software de forma sencilla y satisfactoria? En los tiempos en que UNIX era practicamente el único sistema operativo se usaban ficheros de texto plano, de hecho muchos de las guías rápidas de Linux o <em><a href="http://tldp.org/">howtos</a></em> también.</p>
<p>Si a estas alturas eso no nos parece una barbaridad debe faltar poco. Y por supuesto sustituir los ficheros de texto plano por archivos de Word no me parece una solución aceptable. Al fin y al cabo el hecho de tener que cambiar de aplicación para realizar una consulta es de todo menos eficiente, máxime cuando a pesar de las mejoras en potencia de cálculo sigue tardando una eternidad en abrir un simple fichero más o menos formateado.</p>
<p>Y si además se considera que los diferentes desarrolladores pueden no estar geográficamente (ni temporalmente seamos <a href="http://es.wikipedia.org/wiki/Curvatura_del_espacio-tiempo">relativistas</a>) en el mismo lugar. Se puede argüir que el correo electrónico salva este inconveniente. Pero en este caso hay que utilizar una segunda aplicación: el cliente de correo electrónico, para descargar el fichero y abrirlo con otra aplicación.</p>
<p>Sin duda alguna los proyectos de software libre, que adoro, han resuelto de forma satisfactoria este problema  porque su propia supervivencia dependía de ello. Al ser proyectos colaborativos internacionales, y donde principalmente los desarrolladores aportan su conocimiento, ganas y tiempo libre, es de vital importancia que cada miembro sepa lo que debe hacer, para averiguar cómo hacerlo, y todo ello en el menor tiempo posible.</p>
<p>Es aquí donde el hipertexto o HTML demuestra sus virtudes:</p>
<ul>
<li>Información accesible en línea</li>
<li>Referencias enlazadas en el documento principal gracias a los hiperenlaces</li>
<li>Estándar</li>
</ul>
<p>A día de hoy donde muchas de las aplicaciones software a desarrollar hacen uso del navegador, tiene sentido usar esa misma herramienta para presentar la documentación. Al hilo de esta idea han surgido diferentes propuestas como wikis y blogs que además permiten la edición colaborativa.</p>
<p>Pero a todo esto le veo un problema. Por ser un aficionado a la lectura aprecio una correcta impresión, y se debe reconocer que un fichero HTML impreso es de una calidad inferior a un libro barato. De hecho durante bastante tiempo he usado <a href="http://www.tug.org/">LaTeX</a> para generar documentación impresa de calidad como es costumbre entre científicos e ingenieros (de verdad).</p>
<p>Y aunque LaTeX está bien, por sus muchas virtudes, alguno de sus inconvenientes es aprender un lenguaje de macros (es anterior a la popularización de HTML) y que fue concebido como generador de documentos a imprimir.</p>
<p>Existe algo a día de hoy omnipresente en la sociedad de la información, que estructure correctamente la información, independiente de plataforma, a ser posible un estándar, donde prime el contenido, relevándonos de los detalles de composición y que permita un procesado ágil? Sí, <a href="http://www.xml.org/">XML</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2009/02/la-importancia-de-la-documentacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
