<?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>Franchu's Lair &#187; linux</title>
	<atom:link href="http://franchu.net/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://franchu.net</link>
	<description>Random musings about nothing</description>
	<lastBuildDate>Tue, 10 Aug 2010 16:37:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)</title>
		<link>http://franchu.net/2009/11/12/upgrade-problems-from-ubuntu-6-10-edgy-to-ubuntu-9-10-intrepid/</link>
		<comments>http://franchu.net/2009/11/12/upgrade-problems-from-ubuntu-6-10-edgy-to-ubuntu-9-10-intrepid/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 10:34:10 +0000</pubDate>
		<dc:creator>Franchu</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://franchu.net/?p=485</guid>
		<description><![CDATA[These days I had to perform an upgrade of a server that had been forgotten running Ubuntu 6.10 Edgy, and as it was to be expected it didn&#8217;t go as smoothly as I would have like it.
In this post you will probably not find anything you couldn&#8217;t find anywhere else, as we did, but having [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>These days I had to perform an upgrade of a server that had been forgotten running Ubuntu 6.10 Edgy, and as it was to be expected it didn&#8217;t go as smoothly as I would have like it.</p>
<p>In this post you will probably not find anything you couldn&#8217;t find anywhere else, as we did, but having it all in one place might prove useful and save you some time.</p>
<p>During the upgrade the mdam.conf file was overwritten with a default version of it, and the array was not automatically mounted anymore after reboot. The solution was found in a thread in the <a href="http://ubuntuforums.org/showthread.php?t=1134706&#038;page=3">Ubuntu forums</a>.<br />
<code>mdadm --examine --scan --config=mdadm.conf >> /etc/mdadm/mdadm.conf</code></p>
<p>The locale files got changed and we started to see lots of messages like:</p>
<blockquote><p>perl: warning: Setting locale failed.perl: warning: Please check that your locale settings:<br />
LANGUAGE = &#8220;es_ES.ISO-8859-15@euro&#8221;,<br />
LC_ALL = (unset),<br />
LANG = &#8220;es_ES.ISO-8859-15@euro&#8221;<br />
are supported and installed on your system. perl: warning: Falling back to the standard locale (&#8220;C&#8221;). </p></blockquote>
<p>The solution was found again in the <a href="http://ubuntuforums.org/archive/index.php/t-319397.html ">Ubuntu forums</a>. You have to edit /var/lib/locales/supported.d/es and make it look like:</p>
<blockquote><p>es_EC.UTF-8 UTF-8<br />
es_CL.UTF-8 UTF-8<br />
es_DO.UTF-8 UTF-8<br />
es_HN.UTF-8 UTF-8<br />
es_PY.UTF-8 UTF-8<br />
es_PR.UTF-8 UTF-8<br />
es_NI.UTF-8 UTF-8<br />
es_ES.UTF-8 UTF-8<br />
es_PE.UTF-8 UTF-8<br />
es_VE.UTF-8 UTF-8<br />
es_GT.UTF-8 UTF-8<br />
es_CR.UTF-8 UTF-8<br />
es_BO.UTF-8 UTF-8<br />
es_US.UTF-8 UTF-8<br />
es_AR.UTF-8 UTF-8<br />
es_PA.UTF-8 UTF-8<br />
es_SV.UTF-8 UTF-8<br />
es_UY.UTF-8 UTF-8<br />
es_MX.UTF-8 UTF-8<br />
es_CO.UTF-8 UTF-8<br />
es_ES.ISO-8859-15@euro ISO-8859-15
</p></blockquote>
<p>Finally you have to rebuild the locales:</p>
<blockquote><p>sudo dpgk-reconfigure locales</p></blockquote>
<p>And last but not least, after the upgrades we were getting thrown into the busybox initramfs prompt. Apparently there is a problem with the evms and ACPI support, so we just disabled it, until we have further time to investigate the issue. The solution was found <a href=http://linux.derkeiler.com/Mailing-Lists/Ubuntu/2008-10/msg01297.html">here</a>.</p>
<p>Add into /boot/grub/menu.lst in the line that begins with #kopts</p>
<p><code>acpi=noacpi irqpoll</code></p>
<p>and then:</p>
<blockquote><p>sudo update-grub<br />
sudo aptitude remove evms
</p></blockquote>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://franchu.net/2009/11/12/upgrade-problems-from-ubuntu-6-10-edgy-to-ubuntu-9-10-intrepid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Añadiendo su, vim y un servidor tftp al AppleTV</title>
		<link>http://franchu.net/2008/09/21/anadiendo-su-vim-y-un-servidor-tftp-al-appletv/</link>
		<comments>http://franchu.net/2008/09/21/anadiendo-su-vim-y-un-servidor-tftp-al-appletv/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 09:01:38 +0000</pubDate>
		<dc:creator>Franchu</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[spanish]]></category>

		<guid isPermaLink="false">http://franchu.net/?p=185</guid>
		<description><![CDATA[Hoy he estado trasteando con el AppleTV y me he dado cuenta de lo mucho que hecho en falta un editor de texto en él cuando quiero hacer cambios en algún fichero. Así que me he decidido a instalar vi  y su   Para ello he seguido los pasos indicados en esta guía. [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Hoy he estado trasteando con el AppleTV y me he dado cuenta de lo mucho que hecho en falta un editor de texto en él cuando quiero hacer cambios en algún fichero. Así que me he decidido a instalar <a href="http://en.wikipedia.org/wiki/Vim_(text_editor)">vi</a>  y <a href="http://en.wikipedia.org/wiki/Su_(Unix)">su</a> <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Para ello he seguido los pasos indicados en <a href="http://wiki.awkwardtv.org/wiki/Install_SU_and_VI">esta guía</a>. Ya que estaba también he instalado un servidor <a href="http://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol">TFTP</a> para almacenar la información de aprovisionamiento de un par de teléfonos IP&#8230; pero eso es otra historia.</p>
<p>Desde nuestra máquina con MacOS X transferimos los ejecutables de estos tres programas al AppleTV via <a href="http://en.wikipedia.org/wiki/Secure_copy">scp</a></p>
<blockquote><p>
$ scp -1 -r /usr/bin/su frontrow@&lt;AppleTVIPAddress&gt;:~/<br />
$ scp -1 -r /usr/bin/vim frontrow@&lt;AppleTVIPAddress&gt;:~/<br />
$ scp -1 -r /usr/libexec/tftpd frontrow@&lt;AppleTVIPAddress&gt;:~/
</p></blockquote>
<p>Una vez que los ficheros están en el AppleTV nos conectamos por SSH al equipo para colocarlos en su sitio correcto.</p>
<blockquote><p>
$ ssh -1 frontrow@&lt;AppleTVIPAddress&gt;
</p></blockquote>
<p>Montamos el sistema de ficheros con permisos de escritura tras conseguir permisos de root y ponemos el grupo y propietario correcto a cada uno de los ficheros.</p>
<blockquote><p>
bash-2.05b$ sudo -s<br />
bash-2.05b# mount -uw /<br />
bash-2.05b# chown root su<br />
bash-2.05b# chgrp wheel su<br />
bash-2.05b# chown root vim<br />
bash-2.05b# chgrp wheel vim<br />
bash-2.05b# chown root tftpd<br />
bash-2.05b# chgrp wheel tftpd
</p></blockquote>
<p>A continuación movemos los ficheros a sus directorios finales dónde espera encontrarlos el sistema.</p>
<blockquote><p>
bash-2.05b# mv su /usr/bin/su<br />
bash-2.05b# mv vim /usr/bin/vim<br />
bash-2.05b# mv tftpd /usr/libexec/tftpd
</p></blockquote>
<p>Por último solo nos queda configurar el servidor de TFTP para decirle dónde tenemos el directorio que tiene que servir. En caso de que no lo tengamos creado, lo hacemos antes de editar el fichero. Afortunadamente, vim ya está instalado y podemos editar el fichero directamente en nuestro AppleTV <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>
bash-2.05b# mkdir /Users/frontrow/tftp<br />
bash-2.05b# chmod 777 /Users/frontrow/tftp</p>
<p>bash-2.05b# vim /System/Library/LaunchDaemons/tftp.plist</p>
<p>&lt;array><br />
                &lt;string&gt;/usr/libexec/tftpd&lt;/string&gt;<br />
                &lt;string&gt;-i&lt;/string><br />
                &lt;string&gt;/Users/frontrow/tftp</string&gt;<br />
&lt;/array&gt;
</p></blockquote>
<p>Por último, iniciamos el servicio de TFTP <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>
bash-2.05b# /sbin/service tftp stop<br />
bash-2.05b# /sbin/service tftp start
</p></blockquote>
<p>Ahora ya solo queda probarlo, ver que todo funciona correctamente y a disfrutarlo! <img src='http://franchu.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://franchu.net/2008/09/21/anadiendo-su-vim-y-un-servidor-tftp-al-appletv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gigabit Ethernet network card setup in Ubuntu 8.04 Server</title>
		<link>http://franchu.net/2008/09/20/gigabit-ethernet-network-card-setup-in-ubuntu-804/</link>
		<comments>http://franchu.net/2008/09/20/gigabit-ethernet-network-card-setup-in-ubuntu-804/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 18:35:18 +0000</pubDate>
		<dc:creator>Franchu</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://franchu.net/?p=189</guid>
		<description><![CDATA[Today I bought a new network interface for my new server: Conceptronic Gigabit Ethernet card (10€) that has a Realtek RTL8169SC chipset.
I knew that it was compatible with the Ubuntu 8.04 Server that I had installed, so I was a little bit surprised when I plugged it in and it didn&#8217;t work  
First I [...]


Related posts:<ol><li><a href='http://franchu.net/2009/11/12/upgrade-problems-from-ubuntu-6-10-edgy-to-ubuntu-9-10-intrepid/' rel='bookmark' title='Permanent Link: Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)'>Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)</a> <small>These days I had to perform an upgrade of a...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Today I bought a new network interface for my new server: Conceptronic Gigabit Ethernet card (10€) that has a Realtek RTL8169SC chipset.</p>
<p>I knew that it was compatible with the Ubuntu 8.04 Server that I had installed, so I was a little bit surprised when I plugged it in and it didn&#8217;t work <img src='http://franchu.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>First I checked and saw that I only had the old card (I knew that by the MAC address <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>
$ ifconfig<br />
eth1      Link encap:Ethernet  HWaddr 00:80:5a:69:b2:d2<br />
          inet addr:192.168.0.23  Bcast:192.168.0.255  Mask:255.255.255.0<br />
          inet6 addr: fe80::250:fcff:fe2d:d7ba/64 Scope:Link<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:119 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:110 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 txqueuelen:1000<br />
          RX bytes:15165 (14.8 KB)  TX bytes:16769 (16.3 KB)<br />
          Interrupt:11 Base address:0&#215;4000</p>
<p>lo        Link encap:Local Loopback<br />
          inet addr:127.0.0.1  Mask:255.0.0.0<br />
          inet6 addr: ::1/128 Scope:Host<br />
          UP LOOPBACK RUNNING  MTU:16436  Metric:1<br />
          RX packets:30 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 txqueuelen:0<br />
          RX bytes:14345 (14.0 KB)  TX bytes:14345 (14.0 KB)
</p></blockquote>
<p>Next I wanted to see if the system had recognised the card or not so I ran..</p>
<blockquote><p>
$ sudo lshw -C network<br />
  *-network:0  DISABLED<br />
       description: Ethernet interface<br />
       product: RTL-8169 Gigabit Ethernet<br />
       vendor: Realtek Semiconductor Co., Ltd.<br />
       physical id: b<br />
       bus info: pci@0000:00:0b.0<br />
       logical name: eth0<br />
       version: 10<br />
       serial: 00:80:5a:69:b2:d2<br />
       size: 1GB/s<br />
       capacity: 1GB/s<br />
       width: 32 bits<br />
       clock: 66MHz<br />
       capabilities: pm bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation<br />
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.2LK duplex=full ip=192.168.0.250 latency=64 link=yes maxlatency=64 mingnt=32 module=r8169 multicast=yes port=twisted pair speed=1GB/s<br />
  *-network:1<br />
       description: Ethernet interface<br />
       product: RTL-8139/8139C/8139C+<br />
       vendor: Realtek Semiconductor Co., Ltd.<br />
       physical id: 11<br />
       bus info: pci@0000:00:11.0<br />
       logical name: eth1<br />
       version: 10<br />
       serial: 00:50:fc:2d:d7:ba<br />
       size: 100MB/s<br />
       capacity: 100MB/s<br />
       width: 32 bits<br />
       clock: 33MHz<br />
       capabilities: bus_master ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation<br />
       configuration: autonegotiation=on broadcast=yes driver=8139too driverversion=0.9.28 duplex=full latency=32 link=yes maxlatency=64 mingnt=32 module=8139too multicast=yes port=MII speed=100MB/s
</p></blockquote>
<p>Good news! the system recognizes the card but somehow has not managed to bring it up. Let&#8217;s help it to know what module to load and under which device name. For that we assign to each network MAC address the module to be loaded in the DRIVERS attribute and assign it a device name in the NAME attribute <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>
$ sudo vim /etc/udev/rules.d/70-persistent-net.rules</p>
<p>SUBSYSTEM==&#8221;net&#8221;, ACTION==&#8221;add&#8221;, DRIVERS==&#8221;r8169&#8243;, ATTR{address}==&#8221;00:80:5a:69:b2:d2&#8243;, ATTR{type}==&#8221;1&#8243;, KERNEL==&#8221;eth*&#8221;, NAME=&#8221;eth0&#8243;<br />
SUBSYSTEM==&#8221;net&#8221;, ACTION==&#8221;add&#8221;, DRIVERS==&#8221;8139too&#8221;, ATTR{address}==&#8221;00:50:fc:2d:d7:ba&#8221;, ATTR{type}==&#8221;1&#8243;, KERNEL==&#8221;eth*&#8221;, NAME=&#8221;eth1&#8243;
</p></blockquote>
<p>I also updated the configuration for the interfaces in the /etc/network/interfaces file:</p>
<blockquote><p>
$ sudo vim /etc/network/interfaces<br />
# This file describes the network interfaces available on your system<br />
# and how to activate them. For more information, see interfaces(5).</p>
<p># The loopback network interface<br />
auto lo<br />
iface lo inet loopback</p>
<p># The primary network interface<br />
auto eth0<br />
iface eth0 inet static<br />
address 192.168.0.250<br />
netmask 255.255.255.0<br />
network 192.168.0.0<br />
broadcast 192.168.0.255<br />
gateway 192.168.0.1</p>
<p>auto eth1<br />
iface eth1 inet dhcp
</p></blockquote>
<p>Now we restart the system to get the changes reloaded&#8230; I guess there is a less dramatic way to bring the changes life but didn&#8217;t feel like thinking much about it and anyway, I&#8217;m the only one in the server without anything critical running on it&#8230; yet <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>
$ sudo shutdown -r now
</p></blockquote>
<p>And when the system goes back online&#8230; </p>
<blockquote><p>
$ ifconfig<br />
eth0      Link encap:Ethernet  HWaddr 00:80:5a:69:b2:d2<br />
          inet addr:192.168.0.250  Bcast:192.168.0.255  Mask:255.255.255.0<br />
          inet6 addr: fe80::280:5aff:fe69:b2d2/64 Scope:Link<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:185 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:175 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 txqueuelen:1000<br />
          RX bytes:19020 (18.5 KB)  TX bytes:24911 (24.3 KB)<br />
          Interrupt:11 Base address:0&#215;4000</p>
<p>eth1      Link encap:Ethernet  HWaddr 00:50:fc:2d:d7:ba<br />
          inet addr:192.168.0.23  Bcast:192.168.0.255  Mask:255.255.255.0<br />
          inet6 addr: fe80::250:fcff:fe2d:d7ba/64 Scope:Link<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:49 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 txqueuelen:1000<br />
          RX bytes:6220 (6.0 KB)  TX bytes:1494 (1.4 KB)<br />
          Interrupt:10 Base address:0xc400</p>
<p>lo        Link encap:Local Loopback<br />
          inet addr:127.0.0.1  Mask:255.0.0.0<br />
          inet6 addr: ::1/128 Scope:Host<br />
          UP LOOPBACK RUNNING  MTU:16436  Metric:1<br />
          RX packets:30 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 txqueuelen:0<br />
          RX bytes:14345 (14.0 KB)  TX bytes:14345 (14.0 KB)</p>
</blockquote>
<p>Everything looks great! <img src='http://franchu.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  and finally the server is ready to use the new Gigabit Ethernet connection <img src='http://franchu.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://franchu.net/2009/11/12/upgrade-problems-from-ubuntu-6-10-edgy-to-ubuntu-9-10-intrepid/' rel='bookmark' title='Permanent Link: Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)'>Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)</a> <small>These days I had to perform an upgrade of a...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://franchu.net/2008/09/20/gigabit-ethernet-network-card-setup-in-ubuntu-804/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Instalación de un servidor LDAP</title>
		<link>http://franchu.net/2007/06/22/instalacion-de-un-servidor-ldap/</link>
		<comments>http://franchu.net/2007/06/22/instalacion-de-un-servidor-ldap/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 13:00:47 +0000</pubDate>
		<dc:creator>Franchu</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[spanish]]></category>

		<guid isPermaLink="false">http://franchu.net/2007/06/22/instalacion-de-un-servidor-ldap/</guid>
		<description><![CDATA[Hace un tiempo me propuse instalar un servidor LDAP para dar acceso estandar a la información contenida en una base de datos y permitir la autenticación de los usuarios almacenados en ella.
A priori puede parecer que esta solución trata de matar moscas a cañonazos, pero cobra sentido cuando se tiene en cuenta que la estructura [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo me propuse instalar un servidor LDAP para dar acceso estandar a la información contenida en una base de datos y permitir la autenticación de los usuarios almacenados en ella.</p>
<p>A priori puede parecer que esta solución trata de matar moscas a cañonazos, pero cobra sentido cuando se tiene en cuenta que la estructura de la base de datos a nivel de tablas de MySQL roza la calificación de infernal y que hay cerca de 5000 usuarios a los que dar acceso. Hacer una restructuración de la base de datos no es factible, ya que está generada dinámicamente con por un framework de desarrollo web llamado <a href="http://www.makumba.org">Makumba</a>.</p>
<p>Entre las características de Makumba, están la facilidad y rapidez de desarrollo de aplicaciones web con funcionalidad <a href="http://en.wikipedia.org/wiki/CRUD_(acronym)">CRUD</a> permitiendo la definición de la estructura de la base de datos en un simple fichero de texto, y mostrar listas y formularios autoformateados por medio de unos tags dentro del código JSP de la página. Esto que ahora parece totalmente normal y lo proporcionan muchos otros frameworks como puede ser <a href="http://en.wikipedia.org/wiki/Ruby_on_Rails">RoR (Ruby on Rails)</a> que tan de moda está últimamente; era totalmente innovador en el año 2000 cuando se empezó a desarrollar.</p>
<p>Una vez explicada la necesidad de implementar un servicio LDAP para facilitar la autenticación de los usuarios en distintos servidores y servicios, era necesario elegir un servidor LDAP. La opción clara era <a href="http://www.openldap.org">OpenLDAP</a> por poder ejecutarse sobre linux, tener una larga historia de desarrollo, una comunidad activa y un gran número de instalaciones con éxito.</p>
<p>Llegados a este punto, en el que tenemos datos en una base de datos MySQL y un servidor OpenLDAP, es necesario plantearse cómo mantener sincronizadas las bases de datos de ambos servicios. La solución lógica y natural sería emplear la base de datos de MySQL sobre la que Makumba trabaja como backend para el servidor LDAP, así que me lancé a implementar esa solución gracias al backend SQL que incorpora OpenLDAP.</p>
<p>Tras varios intentos, noches en vela y muchas horas mirando a ver cómo lo habían hecho otros, llegué a la conclusión de que se necesita una estructura de tablas muy estricta para hacerlo funcionar y la necesidad de crear un índice en una tabla especial para el servidor OpenLDAP, lo que lo hace dificil de mantener cuando los datos de los usuarios cambian con cierta frecuencia. La solución era pues, totalmente inviable sin el uso de vistas que por entonces MySQL no soportaba (version < 5.0). Luego apareció el soporte para vistas, pero como no existía un paquete estable de debian, por política de empresa no se podía instalar... había pues que esperar para poder seguir investigando esta solución para un entorno de producción.</p>
<p>Entonces, me encontré con una solución Java para un servidor LDAP con un backend MySQL de forma nativa. Esta "solución" se llama <a href="http://docs.safehaus.org/display/PENROSE/Home">Penrose</a> y tras intentarlo con ello, descubrí una vez más que de lo que pone en la página web a lo que realmente funciona va un trecho. Mi problema era que a la hora de hacer la query para obtener la información, en vez de realizar las uniones de tablas en la base de datos, obtenían todos los datos de la tabla y realizaban las uniones y aplicaban las condiciones en Java, con lo cual cada solicitud al servidor Java se eternizaba. Una vez más con una estructura de tablas favorable, la solución funciona, pero como interfaz para enmascarar la complejidad de la base de datos falla estrepitosamente. Solicité a los chicos de Safehaus que mejorasen la política de queries para que se ejecuten en la base de datos en vez de en la parte Java, pero el bug sigue estando ahí en el sistema <a href="http://jira.safehaus.org/browse/PENROSE-108">Jira</a> que utilizan y lo van pasando de versión&#8230; desde el 2005 creo que ya está bien!</p>
<p>Cuando por fin salió Debian Etch, y ya tuvimos un paquete de MySQL 5.0 disponible, volví a intentarlo con el backend SQL de OpenLDAP. Tras crear las vistas para que fuesen como una tabla simple y tener el sistema más o menos funcional, los tiempos de acceso a los datos eran muy malos (aproximadamente 30 segundos para recuperar un registro) lo que lo hacía totalmente inviable para operaciones de autenticación.</p>
<p>Así pues, una vez descartadas las soluciones disponibles para usar la misma base de datos, decidí exportar la información que me interesaba de la base de datos de MySQL a formato LDIF e importarlo en el servidor LDAP. Repitiendo este procedimiento periodicamente, mantengo las bases de datos sincronizadas la mayoría del tiempo. Sin embargo esto no es lo suficientemente bueno para alguna información que depende de forma crítica con el tiempo (eg. passwords). En el caso de que un usuario cambie su contraseña, no va a entender que se cambie en algunos servicios de forma instantánea y en otros tenga que esperar.</p>
<p>Para resolver esto, he añadido unos triggers en la base de datos de MySQL (ahora que tenemos una versión 5.0 <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) que llaman a un script en python que actualiza la información modificada en el servidor LDAP.</p>
<p>Ahora con el LDAP funcionando, ya se puede pensar en montar más servicios&#8230; servidor Jabber con provisión de cuentas contra el LDAP, ACL en webs contra el LDAP, etc&#8230;</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://franchu.net/2007/06/22/instalacion-de-un-servidor-ldap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris 10 on a MacBook Pro</title>
		<link>http://franchu.net/2007/04/11/solaris-10-on-a-macbook-pro/</link>
		<comments>http://franchu.net/2007/04/11/solaris-10-on-a-macbook-pro/#comments</comments>
		<pubDate>Wed, 11 Apr 2007 01:39:26 +0000</pubDate>
		<dc:creator>Franchu</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://franchu.net/2007/04/11/solaris-10-on-a-macbook-pro/</guid>
		<description><![CDATA[Today I received the free CDs of the Solaris 10 OS by Sun Microsystems that I had ordered on 22/01/07. That same day I got in my e-mail a confirmation that said:
We have received your request for a free Solaris 10 and Developer Tools DVD Software Kit. Please allow at least 10 business days for [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Today I received the <a href="http://www2.sun.de/dc/forms/reg_us_2211_391.jsp">free CDs of the Solaris 10 OS</a> by Sun Microsystems that I had ordered on 22/01/07. That same day I got in my e-mail a confirmation that said:</p>
<blockquote><p>We have received your request for a free Solaris 10 and Developer Tools DVD Software Kit. Please allow at least 10 business days for your kit to arrive to the mailing address you provided. Please also note there are some countries Sun cannot ship media to.</p></blockquote>
<p>Well&#8230; it seems it took a bit longer <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, now I have at home a wonderful box with three original Solaris 10 DVDs:</p>
<ul>
<li>Solaris 10 Operating System &#8211; SPARC DVD</li>
<li>Solaris 10 Operating System &#8211; x86 DVD</li>
<li>Developer Tools &#8211; Sun Studio 11, Sun Java Studio Creator 2 Update 1, Sun Java Studio Enterprise 8, NetBeans 5.0</li>
</ul>
<p>In order to try it, I have installed it as a virtual machine in Parallels in my MacBook Pro. The installation was very easy and straightforward: New VM &#8211;&gt; OS Type: Solaris 10 &#8211;&gt; You set up the drive size and memory allocated to the VM, and then the installation starts from the DVD <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Then the installation is menu based, and by leaving the default options the installations proceeds flawlessly <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>After the installation finishes, if you want to enable the X11 server, just follow the instructions that I found in <a href="http://forum.parallels.com/showthread.php?t=276&amp;highlight=solaris+xorg">one of the Parallels forums</a>:</p>
<blockquote><p>/usr/X11/bin/xorgconfig<br />
and then the following entries (the &#8211;&gt; denotes my comments &#8211; don&#8217;t type these<br />
[ENTER]<br />
5 &#8211;&gt; PS/2 Mouse<br />
Y &#8211;&gt; emulate 3 button mouse<br />
[ENTER] &#8211;&gt; default for /dev/kdmouse<br />
7 &#8211;&gt; Generic 104-Key PC<br />
87 &#8211;&gt; UK Keyboard<br />
[ENTER] &#8211;&gt; for keyboard variant<br />
n &#8211;&gt; additional XKB options<br />
[ENTER]<br />
6 &#8211;&gt; Non-interlaced SVGA 1024&#215;768<br />
2 &#8211;&gt; 50-90 vertical sync rate<br />
apple20 &#8211;&gt; identifier for your monitor<br />
y &#8211;&gt; yes, you would like to look at the card database<br />
0 &#8211;&gt; Generic Vesa compatible option<br />
[ENTER] &#8211;&gt; to continue<br />
5 &#8211;&gt; 4096K of memory<br />
ati1600 &#8211;&gt; identifier for you graphics card<br />
4 &#8211;&gt; the modes are ok<br />
4 &#8211;&gt; 16 bits<br />
then say Y to write to /etc/X11.conf</p></blockquote>
<p>Afterwards you just need to reboot, and you have a fully operation Solaris10 VM <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You can see two screenshots I have taken, one of the login window, and another one of the desktop.</p>
<p align="center"><img src="http://best.eis.uva.es/franchu/solaris10/solaris_login.png"></p>
<p align="center"><img src="http://best.eis.uva.es/franchu/solaris10/solaris_desktop.png"></p>
<p>I will keep writing about it when I&#8217;ll discover more interesting things <img src='http://franchu.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://franchu.net/2007/04/11/solaris-10-on-a-macbook-pro/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Recovering GRUB in Ubuntu</title>
		<link>http://franchu.net/2006/11/05/recovering-grub-in-ubuntu/</link>
		<comments>http://franchu.net/2006/11/05/recovering-grub-in-ubuntu/#comments</comments>
		<pubDate>Sun, 05 Nov 2006 18:13:47 +0000</pubDate>
		<dc:creator>Franchu</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://franchu.net/wordpress/2006/11/05/recovering-grub-in-ubuntu/</guid>
		<description><![CDATA[I have already found myself twice in the situation that after having to re-install Windows in a machine that had dual-boot with Ubuntu, the windows installer messes up with the MBR and it is not possible to access Ubuntu anymore.
As I always spend quite a lot of time remembering where I saw the easy solution, [...]


Related posts:<ol><li><a href='http://franchu.net/2009/11/12/upgrade-problems-from-ubuntu-6-10-edgy-to-ubuntu-9-10-intrepid/' rel='bookmark' title='Permanent Link: Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)'>Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)</a> <small>These days I had to perform an upgrade of a...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I have already found myself twice in the situation that after having to re-install Windows in a machine that had dual-boot with Ubuntu, the windows installer messes up with the MBR and it is not possible to access Ubuntu anymore.<br />
As I always spend quite a lot of time remembering where I saw the easy solution, I decided to write it down myself in a place I would have always at hand.<br />
The instructions should work in other linux flavors and specially in any Debian based distro.<br />
<span id="more-8"></span><br />
We boot up with a linux live-cd and as soon as we are allowed we open a root terminal in which we will be working.</p>
<p>First we create a folder where we will mount our main partition:<br />
<span style="color: #000000; background-color: #ffffff"><br />
mkdir /ubuntu</span></p>
<p>Now that we have a mounting point we mount the main partition of our hard drive:</p>
<p>mount -t ext3 /dev/hda1 /ubuntu</p>
<p>Now we mount the /proc and /dev in our /ubuntu partition in order to be sure that our hard drive is able to see the hardware to reinstall grub:</p>
<p>mount -t proc none /ubuntu/proc<br />
mount -o bind /dev /ubuntu/dev</p>
<p>Now we get into our hard drive partition and forget about the rest of the world:</p>
<p>chroot /ubuntu /bin/bash</p>
<p>Now we can execute grub as if we had booted with our real hard drive and get everything properly configured:</p>
<p>grub</p>
<p>And now inside of grub we reset the booting partition and the MBR:</p>
<p>root (hd0,0)<br />
setup (hd0)</p>
<p>That&#8217;s it&#8230; we now have the MBR properly configured and we just have to boot up our machine. First we quit grub:</p>
<p>quit</p>
<p>And then we can reboot the machine and we will get the grub dialog that will allow us to choose which OS we want to use.<span style="color: #000000; background-color: #ffffff"><br />
</span></p>


<p>Related posts:<ol><li><a href='http://franchu.net/2009/11/12/upgrade-problems-from-ubuntu-6-10-edgy-to-ubuntu-9-10-intrepid/' rel='bookmark' title='Permanent Link: Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)'>Upgrade problems from Ubuntu 6.10 (Edgy) to Ubuntu 9.10 (Intrepid)</a> <small>These days I had to perform an upgrade of a...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://franchu.net/2006/11/05/recovering-grub-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
