<?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>JorgeTome.info &#187; Tecnología</title>
	<atom:link href="http://www.jorgetome.info/category/tecnologia/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jorgetome.info</link>
	<description>Un diario web de Jorge Tomé Hernando</description>
	<lastBuildDate>Fri, 03 Feb 2012 08:27:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Bash script to create a full software development environment</title>
		<link>http://www.jorgetome.info/bash-script-to-create-a-full-software-development-environment.html</link>
		<comments>http://www.jorgetome.info/bash-script-to-create-a-full-software-development-environment.html#comments</comments>
		<pubDate>Wed, 17 Aug 2011 18:02:56 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/?p=275</guid>
		<description><![CDATA[I have create this (first version) script to automatize the creation of all the services related with a new software development project. The script creates&#8230; A new Subversion repository to host the source code of the project. A new MySQL database to store the data of the Trac instance. A new instance of Trac, linked [...]]]></description>
			<content:encoded><![CDATA[<p>I have create this (first version) script to automatize the creation of all the services related with a new software development project.</p>
<p>The script creates&#8230;</p>
<ul>
<li>A new Subversion repository to host the source code of the project.</li>
<li>A new MySQL database to store the data of the Trac instance.</li>
<li>A new instance of Trac, linked to the just created Subversion repository, to be used like the project’s portal.</li>
<li>A configuration file for Apache2 in order to made accesible the Trac repository.</li>
</ul>
<p>The structure of the new Subversion repository is as follows:</p>
<pre>-&gt; branches
-&gt; tags
-&gt; trunk
   -&gt; docs
   -&gt; src</pre>
<p>The environment used was the following</p>
<ul>
<li>Ubuntu Server 11.04 64 bits</li>
<li>Apache/2.2.17 (installed from the Ubuntu repositories)</li>
<li>MySQL Server 5.1.541ub (installed from the Ubuntu repositories)</li>
<li>Subversion 1.6.12 (installed from the Ubuntu repositories)</li>
<li>Python 2.7.1+ (installed from the Ubuntu repositories)</li>
<li>Trac 0.12</li>
</ul>
<p><strong>TODO</strong></p>
<ul>
<li>Implement checking to ensure that the different elements do not exists before trying to create them (for example the Subversion repository, or the MySQL database).</li>
<li>Implement the installation of the Subversion hooks that ensure that the Trac instance keeps in sync with the Subversion repository</li>
</ul>
<pre class="brush:shell">#!/bin/bash

# Author: Jorge Tomé Hernando &lt;jorge@jorgetome.info&gt;
# Date: August 2011
# Version: 1.0
#
# Description
# -----------
# This scripts creates all the environment needed to support
# a new software development project.
#
# It creates a new Subversion repository, a new Trac instance
# (and the associated MySQL database) and a configuration file
# for the Apache2 web server.
#
# It also restart the Apache2 server in order to apply the new
# configuration.
#
# It has been developed and tested in an Ubuntu 11.04 environment.

usage()
{
    cat&lt;&lt;EOF
usage:$0 options

This script creates a new support environment for a software
development project including: Subversion repository and
Trac instance.

Options:
-h Shows this message
-p Name of the project
-u User name of the project's administrator
EOF
}

if [[ $EUID -ne 0 ]]; then
    echo "This script must be run as root" 1&gt;&amp;2
    exit 1
fi

PROJECT_NAME=
PROJECT_ADMIN=

while getopts ":hp:u:" opt; do
    case $opt in
        h)
            usage
            exit 1
            ;;
        p)
            PROJECT_NAME=$OPTARG
            ;;
        u)
            PROJECT_ADMIN=$OPTARG
            ;;
        ?)
            usage
            exit
        ;;
    esac
done

if [ -z $PROJECT_NAME ] || [ -z $PROJECT_ADMIN ]
then
    usage
    exit 1
fi

# Configuration variables
SVN_HOME=/srv/svn
TRAC_HOME=/srv/trac
DB_PREFIX=trac_
DB_USR=MyUserForTrac
DB_PWD=MyPasswordForTheUserForTrac
DB_HOST=localhost
DB_PORT=3306
APACHE_USR=www-data
APACHE_CONF_DIR=/etc/apache2/projects.d

# Utility variables
PROJECT_DIR=`echo ${PROJECT_NAME,,}`
DB_NAME=${DB_PREFIX}${PROJECT_DIR}
SVN_DIR=${SVN_HOME}/${PROJECT_DIR}
TRAC_DIR=${TRAC_HOME}/${PROJECT_DIR}

# First we create the Subversion repository
svnadmin create --fs-type fsfs ${SVN_DIR}
svn mkdir -m "Initialization of the repository" \
--parents \
file://${SVN_DIR}/trunk/docs \
file://${SVN_DIR}/trunk/src \
file://${SVN_DIR}/branches \
file://${SVN_DIR}/tags

# Second we have to create the MySQL database to support Trac
mysql -u root -p &lt;&lt;QUERY_INPUT
CREATE DATABASE ${DB_NAME};
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO ${DB_USR}@${DB_HOST} IDENTIFIED BY '${DB_PWD}';
QUERY_INPUT

# Third we have to create the Trac instance
trac-admin ${TRAC_DIR} initenv ${PROJECT_NAME} mysql://${DB_USR}:${DB_PWD}@${DB_HOST}:${DB_PORT}/${DB_NAME}
trac-admin ${TRAC_DIR} repository add ${PROJECT_DIR} ${SVN_DIR} svn
trac-admin ${TRAC_DIR} repository resync ${PROJECT_DIR}
trac-admin ${TRAC_DIR} permission add ${PROJECT_ADMIN} TRAC_ADMIN
trac-admin ${TRAC_DIR} deploy ${TRAC_DIR}/deploy

# Fourth we have to create the Apache2 configuration file
cat &gt; ${APACHE_CONF_DIR}/${PROJECT_DIR}.conf &lt;&lt;EOF
WSGIScriptAlias /trac/${PROJECT_DIR} ${TRAC_DIR}/deploy/cgi-bin/trac.wsgi

&lt;Directory ${TRAC_DIR}/deploy/cgi-bin&gt;
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
&lt;/Directory&gt;http://www.jorgetome.info/bash-script-to-create-a-full-software-development-environment.html  

&lt;Location "/trac/${PROJECT_DIR}/login"&gt;
    AuthType Basic
    AuthName "Trac"
    AuthUserFile /srv/trac/.htpasswd
    Require valid-user
&lt;/Location&gt;
EOF

# Last we have to adjust the permissions on the directories and
# restart the web server
chown -R ${APACHE_USR}:${APACHE_USR} ${SVN_DIR} ${TRAC_DIR}
apache2ctl restart</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/bash-script-to-create-a-full-software-development-environment.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resumiendo los principios de diseño de la construcción de software</title>
		<link>http://www.jorgetome.info/resumiendo-principios.html</link>
		<comments>http://www.jorgetome.info/resumiendo-principios.html#comments</comments>
		<pubDate>Mon, 10 Jan 2011 11:20:36 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Arquitectura SI]]></category>
		<category><![CDATA[Opinión]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/?p=261</guid>
		<description><![CDATA[Hoy he tenido que hacer el ejercicio de resumir los principios de diseño que yo creo que deben dirigir un proceso de construcción de software. Después de bastante reflexión me he quedado sólo con cuatro. Los siguientes: KISS (Keep it simple, stupid). Creo que nunca valoraremos lo suficiente el valor de simplificar todo lo posible [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy he tenido que hacer el ejercicio de resumir los principios de diseño que <strong>yo</strong> creo que deben dirigir un proceso de construcción de software. Después de bastante reflexión me he quedado sólo con cuatro. Los siguientes:</p>
<ol>
<li>KISS (<em>Keep it simple, stupid</em>). Creo que nunca valoraremos lo suficiente el valor de simplificar todo lo posible los sistemas que construimos.</li>
<li>No construyas si puedes usar algo que ya existe.</li>
<li>Entrega (parte de) el producto cuanto antes a sus usuarios, sigue construyéndolo apoyándote en los comentarios de los usuarios.</li>
<li>La interfase del usuario debe ser web, siempre.</li>
<li>La interfase del usuario es un animal totalmente distinto. Debe diseñarla y construirla un equipo de especialistas en interfases de usuario y debe estar totalmente desacoplada de la lógica de la aplicación.</li>
</ol>
<p>¿Qué opináis?.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/resumiendo-principios.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>VMware Converter 4, pesadillas.</title>
		<link>http://www.jorgetome.info/vmware-converter-4-pesadillas.html</link>
		<comments>http://www.jorgetome.info/vmware-converter-4-pesadillas.html#comments</comments>
		<pubDate>Wed, 14 Jul 2010 10:03:52 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Virtualización]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[VMware Converter]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/?p=247</guid>
		<description><![CDATA[Solo una nota rápida acerca de VMware Converter 4. VMware Converter es una herramienta gratuita de VMware que nos permite convertir máquinas virtuales de unos formatos a otros. Es muy útil en entornos mixtos en los que tienes máquinas en distintos formatos: VMware Server 1.x, VMware Server 2.x, VMware ESX, etc.. Yo ya lo había [...]]]></description>
			<content:encoded><![CDATA[<p>Solo una nota rápida acerca de VMware Converter 4.</p>
<p>VMware Converter es una herramienta gratuita de VMware que nos permite convertir máquinas virtuales de unos formatos a otros. Es muy útil en entornos mixtos en los que tienes máquinas en distintos formatos: VMware Server 1.x, VMware Server 2.x, VMware ESX, etc..</p>
<p>Yo ya lo había utilizado en alguna ocasión y había funcionado sin problemas, ahora viene la pesadilla&#8230;</p>
<p>Hace unas semanas recibí un disco duro externo que contenía unas máquinas virtuales en formato <a href="http://www.vmware.com/appliances/getting-started/learn/ovf.html">OVF</a>, después de descubrir qué era el dichoso formato me bajé la última versión del VMware Converter, la 4.0.1, para convertir las máquinas en cuestión a formato VMware Server 1.x, que es el  que utilizamos en nuestros servidores.</p>
<p>Las máquinas eran grandes (relativamente), desde los 40 GB a los 150 GB. No disponía de dicho espacio libre en ninguno de mis ordenadores así que pensé convertir las máquinas desde el disco duro externo en las que las tenía (de 2 TB de tamaño) hacia el mismo disco duro externo ya que tenía más de 1 TB de espacio disponible, vamos, que por espacio no será <img src='http://www.jorgetome.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Bueno, pues el amigo VMware Converter se empeñaba en decirme que no disponía de espacio suficiente para realizar la conversión. Probé todo lo que se me ocurrió, incluso a cambiar el punto de montaje del disco duro externo ya que contenía un espacio en el nombre y pensé que sería la típica situación en la que el software no &#8220;digiere&#8221; correctamente ubicaciones con espacios en el nombre. No funcionó.</p>
<p>Lo probé en distintos ordenadores, en distintos sistemas operativos (MS Windows XP Profesional, Ubuntu), con distintas combinaciones de discos (por si acaso al VMware Converter no le gustaba que el origen y el destino estuviesen en un disco externo). No funcionó nada.</p>
<p>En una de las muchas búsquedas  que hice en Google al respecto llegué al blog de <a href="http://wildermuth.com">Shan Wildermuth</a> en el que hay un <a href="http://wildermuth.com/2007/11/08/VMWare_Converter_Annoyances">artículo</a> comentando distintos problemas que él también ha sufrido con VMware Converter y uno de  ellos el mismo que estaba sufriendo yo. ¡¡Aleluya!!, ¡¡también explicaba el motivo y la solución!!</p>
<p>Bueno, pues en un alarde de calidad en la programación, resulta que el VMware Converter utiliza como directorio temporal para las tareas de conversión, no el directorio temporal que todos los sistemas operativos asignan a los usuarios, sino el <strong>directorio desde el que arrancas el puñetero VMware Converter</strong>.</p>
<p>Claro, en todas mis pruebas había lanzado el VMware Converter desde el menú, es decir, desde el directorio en el que está instalado el programa, que, para más INRI, en todos los equipos en los que había hecho pruebas no disponía del espacio suficiente (más de 30 GB) para que el VMware Converter pudiera realizar la conversión.</p>
<p>Solución, abrir una consola de comandos, situarse en un disco/directorio en el que haya suficiente espacio libre (yo me ubiqué en el disco duro externo) y desde ahí lanzar el programa. Problema resuelto.</p>
<p>Si a alguno le pilla cerca el programador responsable de tal desaguisado que le de un cate de mi parte <img src='http://www.jorgetome.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>O a su superior que no le dio el tiempo suficiente para probar en condiciones el programa <img src='http://www.jorgetome.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/vmware-converter-4-pesadillas.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 8.10 y los efectos de escritorio. Quebraderos de cabeza.</title>
		<link>http://www.jorgetome.info/ubuntu810ylosefectosdeescritorio.html</link>
		<comments>http://www.jorgetome.info/ubuntu810ylosefectosdeescritorio.html#comments</comments>
		<pubDate>Thu, 02 Apr 2009 06:42:29 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/?p=212</guid>
		<description><![CDATA[Desde que actualicé a la versión 8.10 Intrepid Ibex de Ubuntu he venido disfrutando de los efectos de escritorio de Compiz algo que siempre me había dado bastantes quebraderos de cabeza en todos los portátiles que han pasado por mis manos en este periodo (HP y Dell, distintos modelos). Una de las cosas que más [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que actualicé a la versión 8.10 Intrepid Ibex de Ubuntu he venido disfrutando de los efectos de escritorio de Compiz algo que siempre me había dado bastantes quebraderos de cabeza en todos los portátiles que han pasado por mis manos en este periodo (HP y Dell, distintos modelos).</p>
<p>Una de las cosas que más he apreciado de esta versión 8.10 es la enorme mejora en la gestión de configuraciones con múltiples pantallas. Cuando estoy en la oficina conecto el portátil, que tiene una pantalla que admite una resolución de 1280&#215;600 a un monitor externo de 17 pulgadas que admite una resolución de 1280&#215;1024. Nunca antes de la versión 8.10 había conseguido hacer funcionar esta configuración y ahora lo he podido hacer utilizando la herramienta de &#8220;Configuración de los ajustes de la pantalla&#8221; que simplemente hay que añadir a alguno de los paneles.</p>
<p>Total, que estoy muy contento con mi actual configuración. Pero el problema es que, de vez en cuando, ocurre algo que estropea esta idílica situación. No sé qué puede ser, pero creo que no está relacionado con ninguna actualización de software. El caso es que ya me ha pasado más de una vez que, de repente, pierdo los efectos de escritorio y al intentar volver a activarlos Ubuntu me informa de que no es posible hacerlo.</p>
<p>Estaba acostumbrado, ante problemas relacionados con la configuración de las X, a acudir a la edición del fichero <code>xorg.conf</code> para revisar a mano la configuración. Pero en la actual versión de Ubuntu/Xorg este fichero apenas contiene lo siguiente:<br />
<code><br />
Section "Device"<br />
  Identifier	"Configured Video Device"<br />
EndSection<br />
Section "Monitor"<br />
  Identifier	"Configured Monitor"<br />
EndSection<br />
Section "Screen"<br />
  Identifier	"Default Screen"<br />
  Monitor		"Configured Monitor"<br />
  Device		"Configured Video Device"<br />
  SubSection "Display"<br />
    Virtual	2560 1031<br />
  EndSubSection<br />
EndSection<br />
</code><br />
Como veis, apenas nada que tocar. Lo único que he podido comprobar es que es la inclusión de la subsección&#8230;<br />
<code><br />
  SubSection "Display"<br />
    Virtual	2560 1031<br />
  EndSubSection<br />
</code><br />
&#8230;la que provoca que Ubuntu empiece a decirme que no puede activar los efectos de escritorio. Pero el caso es que es necesaria para soportar el escritorio virtual que forman los dos monitores conectados.</p>
<p>Hoy, después de que esto me haya pasado varias veces y después de haber buscado por Internet toda información relacionada (mucha gente con el mismo problema) he encontrado <a href="http://www.ubuntu-es.org/index.php?q=node/66405">esta página</a> en la que se describe una sencilla y curiosa solución.</p>
<p>La solución consiste en añadir (o crear el fichero, ya que en mi caso no existía) al fichero <code>~/.config/compiz/compiz-manager</code> una línea con el contenido <code>SKIP_CHECKS=yes</code>.</p>
<p>Mano de santo, ha sido crear el fichero con dicha línea, reiniciar las X y de vuelta los efectos con ambos monitores conectados a mi Dell Latitude E5400.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/ubuntu810ylosefectosdeescritorio.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Rajoy, Ruiz-Gallardón, Sun Microsystems, MySQL AB, Oracle y BEA</title>
		<link>http://www.jorgetome.info/rajoy-ruiz-gallardon-sun-microsystems-mysql-ab-oracle-y-bea.html</link>
		<comments>http://www.jorgetome.info/rajoy-ruiz-gallardon-sun-microsystems-mysql-ab-oracle-y-bea.html#comments</comments>
		<pubDate>Wed, 16 Jan 2008 23:17:19 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/rajoy-ruiz-gallardon-sun-microsystems-mysql-ab-oracle-y-bea.html</guid>
		<description><![CDATA[En el planeta Tierra, en el país España, estoy seguro que en los próximos días el asunto de la no inclusión del alcalde de Madrid, Alberto Ruiz-Gallardón en las listas del Partido Popular al congreso va a generar verdaderos ríos de tinta (vaya expresión más bonita y al mismo tiempo cada vez más obsoleta). Al [...]]]></description>
			<content:encoded><![CDATA[<p>En el planeta Tierra, en el país España, estoy seguro que en los próximos días el asunto de la no inclusión del alcalde de Madrid, Alberto Ruiz-Gallardón en las listas del Partido Popular al congreso va a generar verdaderos ríos de tinta (vaya expresión más bonita y al mismo tiempo cada vez más obsoleta). Al fin y al cabo los españoles somos adictos a la truculencia, a la contemplación del sufrimiento.</p>
<p>Pero en el planeta en el que vivo, el planeta Internet, en el que, por cierto, no existen los países; se producen noticias de mucho mayor calado, mucho más interesantes sin necesidad de que nadie sufra. Y hoy es uno de esos días en los que se produce no una gran bomba informativa, sino dos.</p>
<p>Sun Microsystems ha <a href="http://blogs.sun.com/jonathan/entry/winds_of_change_are_blowing">anunciado</a> la adquisición de MySQL por mil millones de dólares y Oracle ha <a href="http://www.oracle.com/bea/index.html">anunciado</a> la adquisición de BEA Systems por <strike>7.500</strike> 8.500 millones de dólares.</p>
<p>Me enteré primero de la adquisición de MySQL por Sun Microsystems. Me lo comentó mi compañero de trabajo <a href="http://felix.serveblog.net/">Félix Velasco</a> (saluda Félix, <strike>a ver cuando creas tu propio blog para que pueda enlazarte</strike>). La noticia es importante y habrá mucho debate acerca del impacto que en el mundo Open Source va a tener esta adquisición. ¿Es buena o es mala para el mundo Open Source?. Yo ahora mismo me inclino a pensar que es buena. Las acciones de Sun Microsystems en los últimos meses, la más importante liberando el código de Java con una licencia Open Source, me hacen pensar que esta adquisición podría permitir eliminar algunas sombras que siempre han acompañado a MySQL (léase licenciamiento dual) y convertir realmente MySQL en un proyecto gestionado y construido por una comunidad abierta y no por una empresa privada como hasta ahora. Ya se verá.</p>
<p>Pero hete ahí que cuando en casa me pongo a leer los <em>feeds</em> para terminar de enterarme de la noticia me encuentro en <a href="http://barrapunto.com/article.pl?sid=08/01/16/1322208">Barrapunto</a> con el otro bombazo. Oracle <a href="http://www.oracle.com/corporate/press/2008_jan/bea.html">anuncia</a> hoy mismo la adquisición de BEA Systems por 7.500 millones de dólares. Ésto si que tiene tela y requerirá mucha reflexión para ir vislumbrando el impacto que puede llegar a tener, esta vez no en el mundo Open Source, sino en la Industria (escrito así, con mayúscula) de las Tecnologías de la Información.</p>
<p>Oracle lleva muchos años intentando posicionarse en segmentos distintos al de puro proveedor de un motor de base de datos. No es el primer intento (ni el segundo) que hace de incorporar a su catálogo de productos un servidor de aplicaciones J2EE competitivo, hasta ahora nunca lo había conseguido y el resultado ha sido que, dejando de lado las alternativas Open Source, el mercado se había decantado por la dualidad IBM WebSphere versus BEA WebLogic.</p>
<p>Esta será la tercera vez que Oracle adquiere un servidor de aplicaciones J2EE. En las dos ocasiones anteriores los servidores adquiridos eran buenos productos con mucho potencial pero la, a mi juicio, equivocada estrategia de Oracle los hundió. A lo mejor a la tercera va la vencida.</p>
<p>Tengo la impresión de que los empleados de BEA Systems no deben de estar dando saltos de alegría con la noticia. No creo tampoco que los clientes de BEA Systems estén contentos con las perspectivas. Sinceramente creo que los únicos que posiblemente estén emborrachándose con champán ahora mismo sean los chicos del <a href="http://www.ibm.com">gigante azul</a> y los del <a href="http://www.redhat.com/jboss">sombrero rojo</a>. Los <a href="http://tomcat.apache.org/">apaches</a> lo estarán celebrando bebiendo agua de fuego y fumando alucinógenos en las pipas de la paz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/rajoy-ruiz-gallardon-sun-microsystems-mysql-ab-oracle-y-bea.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Otro script para cacti. Contando el número de conexiones CVS</title>
		<link>http://www.jorgetome.info/otro-script-para-cacti-contando-el-numero-de-conexiones-cvs.html</link>
		<comments>http://www.jorgetome.info/otro-script-para-cacti-contando-el-numero-de-conexiones-cvs.html#comments</comments>
		<pubDate>Thu, 22 Nov 2007 16:14:32 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[cacti]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/otro-script-para-cacti-contando-el-numero-de-conexiones-cvs.html</guid>
		<description><![CDATA[Acabo de crearme un pequeño script para Cacti para contar el número de sesiones CVS establecidas en un momento determinado. El script es muy simplón y realmente habría mejores formas de hacerlo, pero el caso es que necesitaba contar el número de sesiones CVS y hacerlo con un shell script no me ha llevado más [...]]]></description>
			<content:encoded><![CDATA[<p>Acabo de crearme un pequeño <em>script</em> para Cacti para contar el número de sesiones CVS establecidas en un momento determinado.</p>
<p>El script es muy simplón y realmente habría mejores formas de hacerlo, pero el caso es que necesitaba contar el número de sesiones CVS y hacerlo con un shell script no me ha llevado más de 2 minutos.</p>
<pre class="brush:shell">#!/bin/sh
#
# File     : CountCVSConnections.sh
# Version  : 1.0
# Date     : November 22th 2007
# Author   : Jorge Tomé Hernando &amp;lt;jorge@jorgetome.info&amp;gt;
#
# Description
# ===========
#
# Connect to a host via SNMP and count the number
# of TCP sessions in state "established" over the
# 2401 port.
#
# Usage
# =====
# CountCVSConnections [COMMUNITY] [HOST]&lt;/pre&gt;
&lt;pre&gt;snmpwalk -Os -c $1 -v 1 $2 .1.3.6.1.2.1.6.13.1.1 | \\  # Get the full list of TCP connections
grep -e ".2401..*established" | \\      # Filter the established connections over 2401 port (CVS)
wc -l | \\      # Count the number of connections
awk '{printf "Active CVS connections: " int($1)}'     # Print the result</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/otro-script-para-cacti-contando-el-numero-de-conexiones-cvs.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>eBay procesa 5.700 millones de invocaciones al mes a su API</title>
		<link>http://www.jorgetome.info/ebay-procesa-5700-millones-de-invocaciones-al-mes-a-su-api.html</link>
		<comments>http://www.jorgetome.info/ebay-procesa-5700-millones-de-invocaciones-al-mes-a-su-api.html#comments</comments>
		<pubDate>Mon, 19 Nov 2007 19:54:24 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Arquitectura SI]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/ebay-procesa-5700-millones-de-invocaciones-al-mes-a-su-api.html</guid>
		<description><![CDATA[Últimamente ando involucrado en varios proyectos en los que debo analizar la arquitectura de sistemas de información de grandes multinacionales. Un denominador común de estos proyectos es que tarde o temprano recibo la tópica respuesta &#8220;con nuestros inmensos volúmenes eso no es posible&#8221;. Siempre reacciono de la misma forma, preguntando cuáles son (cifras) esos enormes [...]]]></description>
			<content:encoded><![CDATA[<p>Últimamente ando involucrado en varios proyectos en los que debo analizar la arquitectura de sistemas de información de grandes multinacionales. Un denominador común de estos proyectos es que tarde o temprano recibo la tópica respuesta &#8220;con nuestros inmensos volúmenes eso no es posible&#8221;.</p>
<p>Siempre reacciono de la misma forma, preguntando cuáles son (cifras) esos enormes volúmenes y muy a menudo resulta que la respuesta no está muy a mano. La enormidad es una sensación que no se concreta en cifras.</p>
<p>Y entonces llego a artículos como <a href="http://blog.programmableweb.com/2007/11/19/ebay-serves-5-billion-api-calls-each-month/">éste</a> (la fuente original es <a href="http://developer.ebay.com/community/blog/article/?category=Blog.Developer&amp;name=http%3a%2f%2febaydeveloper.typepad.com%2fdev%2f2007%2f11%2febay-developers.html">ésta</a>) en el que se informa de que eBay atiende mas de  5.700 millones de invocaciones mensuales a su <a href="http://www.programmableweb.com/api/ebay">API</a> y pienso &#8211; esto si que es volumen y no los que gastamos por aquí &#8211; <img src='http://www.jorgetome.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>En <a href="http://highscalability.com/ebay-architecture">este otro artículo</a>  podéis encontrar información acerca de cómo eBay es capaz de hacer esto. Para los impacientes, el <em>stack</em> tecnológico es Java, IBM WebSphere Application Server y Oracle Enterprise Server; nada demasiado <em>cool <img src='http://www.jorgetome.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </em>. Lo <em>cool</em> está en la  forma de usarlo, lo estrictos que son en el cumplimiento de los principios de diseño. Algunas pinceladas:</p>
<ul>
<li>La base de datos es el cuello de botella, hay que llevarse todo el proceso posible a las capas superiores (incluso <em>joins</em>).</li>
<li>La estrategia de escalado es horizontal.</li>
<li>El desacoplamiento es vital. Integración asíncrona entre los componentes.</li>
<li>Hay que virtualizar todos los componentes posibles. Reduce las dependencias de los elementos físicos y facilita el despliegue y la evolución de la plataforma.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/ebay-procesa-5700-millones-de-invocaciones-al-mes-a-su-api.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RAIDb</title>
		<link>http://www.jorgetome.info/raidb.html</link>
		<comments>http://www.jorgetome.info/raidb.html#comments</comments>
		<pubDate>Mon, 19 Nov 2007 19:00:00 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Arquitectura SI]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/raidb.html</guid>
		<description><![CDATA[RAIDb (Redundant Array of Inexpensive Databases) es un concepto propuesto en Septiembre de 2003, por Emmanuel Cecchet, Julie Marguerite y Willy Zwaenepoel y recogido en un documento de 27 páginas de lectura obligada. En este documento los autores definen el concepto de RAIDb como una extensión del concepto de RAID (Redundant Array of Inexpensive Disks) [...]]]></description>
			<content:encoded><![CDATA[<p>RAIDb (<strong>R</strong>edundant <strong>A</strong>rray of <strong>I</strong>nexpensive <strong>D</strong>atabases) es un concepto propuesto en Septiembre de 2003, por Emmanuel Cecchet, Julie Marguerite y Willy Zwaenepoel y recogido en un <a href="http://www.inria.fr/rrrt/rr-4921.html">documento</a> de 27 páginas de lectura obligada.</p>
<p>En este documento los autores definen el concepto de RAIDb como una extensión del concepto de RAID (Redundant Array of Inexpensive Disks) aplicado a los repositorios de datos y presentan la implementación que han realizado de su concepto bajo el nombre de C-JDBC.</p>
<p>El problema a resolver es la escalabilidad de las bases de datos y la propuesta es hacerlo de forma horizontal utilizando hardware (y software) de bajo coste.</p>
<p>Tradicionalmente se ha avanzado mucho en la escalabilidad de las capas superiores de una arquitectura de sistemas de información moderna (multi-capa). Así el escalado de la capa de presentación (servidores web) y de la capa de aplicaciones/procesos (servidores de aplicaciones) está bastante bien resuelta. Mientras que la escalabilidad de la capa de datos normalmente se aborda mediante el escalado vertical (agrupaciones con un número de nodos pequeño, típicamente 2, y muy potentes).</p>
<p>Así es &#8220;fácil&#8221; encontrar instalaciones en las que existen centenares de servidores web atendiendo la presentación, decenas de servidores de aplicaciones ejecutando la aplicación/los procesos y un macro-cluster de base de datos soportando todo eso.</p>
<p>Ese macro-cluster acaba siendo la hardware más potente del fabricante de turno (IBM pSeries, Sun Fire Enterprise Server 25K, HP Superdome, etc.) con decenas de procesadores (sino cientos), cantidades ingentes de memoria  y de almacenamiento. En estos clusters casi siempre y por definición, la mitad de la capacidad de proceso está desperdiciada. En un cluster de 2 nodos cada uno de los nodos tiene que ser capaz de asumir la carga completa del cluster ante la caída del otro nodo. Esto significa que se intenta mantener la carga del cluster de forma que ninguno de sus nodos supere el 50% de carga y, por lo tanto, el otro 50% de su capacidad no se usa en condiciones normales.</p>
<p>El planteamiento de RAIDb es llevar el concepto de escalabilidad horizontal a la capa de datos. Permitir el escalado horizontal (añadir más servidores, más pequeños, más baratos) de una forma sencilla, eficaz y económica. RAIDb viene a cubrir las necesidades de escalabilidad y de tolerancia a fallos de la capa de datos.</p>
<p>Al igual que en el caso de RAID, los creadores de RAIDb identifican tres tipos de agrupamiento: RAIDb-0, RAIDb-1 y RAIDb-2. RAIDb-0 es un modelo en el que las bases de datos se particionan pero no se distribuyen (no hay redundancia), RAIDb-1 implica un <em>mirrorring</em> completo de las bases de datos (redundancia completa); mientras que RAIDb-2 define un escenario de replicación incompleta de las bases de datos.</p>
<p>Adicionalmente los autores identifican distintos subtipos: RAIDb-1ec, RAIDb-2ec</p>
<p style="text-align: center"><img src="http://www.jorgetome.info/wp-content/uploads/2007/11/raidb-01.gif" alt="Relación rendimiento/tolerancia a fallos de las distintas variedades de RAIDb" /></p>
<p style="text-align: left">En el documento mencionado no solo se explica y define todo lo dicho hasta ahora, sino que también recoge información acerca de un conjunto de <em>benchmarks</em> realizados por los autores (concretamente han utilizado el <em>benchmark</em> TCP-W) y que ilustran las capacidades de escalado de las distintas alternativas dependiendo del número de nodos en el cluster.</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: center"><img src="http://www.jorgetome.info/wp-content/uploads/2007/11/raidb-02.gif" alt="raidb-02.gif" /></p>
<p style="text-align: left">Como os decía antes os recomiendo la lectura del documento original.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/raidb.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Desktop disponible para Linux</title>
		<link>http://www.jorgetome.info/google-desktop-disponible-para-linux.html</link>
		<comments>http://www.jorgetome.info/google-desktop-disponible-para-linux.html#comments</comments>
		<pubDate>Fri, 29 Jun 2007 10:56:40 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/google-desktop-disponible-para-linux.html</guid>
		<description><![CDATA[Acabo de leer en Lifehacker que Google Desktop está disponible para Linux. Google Desktop es una aplicación que he echado de menos desde que hace ya más de 6 meses me pasé definitivamente en el trabajo a Ubuntu. Desde entonces solo he arrancado MS Windows XP en una o dos ocasiones. Ubuntu incluye Beagle al [...]]]></description>
			<content:encoded><![CDATA[<p>Acabo de leer en <a href="http://lifehacker.com/software/featured-linux-download/google-desktop-now-available-for-linux-273133.php">Lifehacker</a> que Google Desktop está disponible para Linux.</p>
<p>Google Desktop es una aplicación que he echado de menos desde que hace ya más de 6 meses me pasé definitivamente en el trabajo a Ubuntu. Desde entonces solo he arrancado MS Windows XP en una o dos ocasiones.</p>
<p>Ubuntu incluye Beagle al que, he de ser sincero, no he dado muchas oportunidades. No recuerdo haberlo usado nunca y cuando he visto cómo se usa no me parece tan sencillo y potente como Google Desktop. Además cuando monitorizo cómo se está utilizando la CPU de mi portátil Beagle siempre aparece muy arriba en la lista.</p>
<p>Voy a bajarme <a href="http://desktop.google.com/linux/">Google Desktop para Linux</a> y darle una oportunidad, a poco bien que lo haga sustituirá a Beagle en mi escritorio.  Ya os contaré.</p>
<p><strong>Actualización</strong>. Ya me lo he bajado e instalado y ya está funcionando en mi escritorio. La instalación (me he bajado el deb) no ha supuesto ningún problema e inmediatamente tenía disponible en la barra de menú el icono de Google Desktop. Igual que en MS Windows pulsando dos veces la tecla Ctrl aparece el cuadro de búsqueda.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/google-desktop-disponible-para-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InfoQ publica una entrevista con Javier Paniza, desarrollador de OpenXava</title>
		<link>http://www.jorgetome.info/infoq-publica-una-entrevista-con-javier-paniza-desarrollador-de-openxava.html</link>
		<comments>http://www.jorgetome.info/infoq-publica-una-entrevista-con-javier-paniza-desarrollador-de-openxava.html#comments</comments>
		<pubDate>Tue, 20 Feb 2007 17:01:17 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jorgetome.info/infoq-publica-una-entrevista-con-javier-paniza-desarrollador-de-openxava.html</guid>
		<description><![CDATA[InfoQ publica hoy una entrevista con Javier Paniza, uno de los desarrolladores del proyecto OpenXava. Literalmente extraido de la página web de OpenXava&#8230; OpenXava es un marco de trabajo para desarrollar aplicaciones web basadas en bases de datos, como Ruby on Rails, pero OpenXava produce aplicaciones J2EE / JavaEE estándars que pueden ser desplegadas en [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.infoq.com">InfoQ</a> publica hoy una <a href="http://www.infoq.com/news/2007/02/openxava-release">entrevista</a> con Javier Paniza, uno de los desarrolladores del proyecto <a href="http://www.openxava.org/">OpenXava</a>.</p>
<p>Literalmente extraido de la página web de OpenXava&#8230;</p>
<blockquote><p>OpenXava es un marco de trabajo para desarrollar aplicaciones web basadas en bases de datos, como <span style="font-style: italic">Ruby on Rails</span>, pero OpenXava produce aplicaciones J2EE / JavaEE estándars que pueden ser desplegadas en cualquier servidor de aplicaciones Java estándar (o portal Java estándar)<em><br />
</em></p></blockquote>
<p>OpenXava es una iniciativa ¿española? (no estoy seguro de que esta afirmación tenga ningún sentido en el mundo Internet) por lo que toda la información al respecto está disponible en castellano, además de en inglés.</p>
<p>Es muy refrescante ver que proyectos iniciados en nuestro país crecen y llegan a tener un impacto importante en los medios internacionales de peso en el mundo Java.</p>
<p>Todavía no he tenido oportunidad de echar un vistazo al producto, pero si acerca algo el desarrollo de aplicaciones Java 2 EE a la facilidad de Ruby On Rails seguro que me gusta. También tengo en mi lista de tareas pendientes revisar <a href="http://groovy.codehaus.org/">Groovy</a>, que también pretente el mismo objetivo: simplificar (enormemente) la construcción de aplicaciones Java.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jorgetome.info/infoq-publica-una-entrevista-con-javier-paniza-desarrollador-de-openxava.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

