<?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>cablop.net - Software Tips &#187; Desarrollo</title>
	<atom:link href="http://sw.cablop.net/tips/category/desarrollo/feed/" rel="self" type="application/rss+xml" />
	<link>http://sw.cablop.net/tips</link>
	<description>Tips de software, hardware... y algo más</description>
	<lastBuildDate>Fri, 05 Feb 2010 16:50:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cambiar el nombre del autor en Eclipse</title>
		<link>http://sw.cablop.net/tips/2010/02/05/cambiar-el-nombre-del-autor-en-eclipse/</link>
		<comments>http://sw.cablop.net/tips/2010/02/05/cambiar-el-nombre-del-autor-en-eclipse/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 16:50:02 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[nombre]]></category>
		<category><![CDATA[usuario]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=156</guid>
		<description><![CDATA[Para cambiar el nombre de usuario con el que Eclipse trabaja, usualmente en de la sesión de usuario se deben seguir solo dos pasos:
1- editar el archivo eclipse.ini en el directorio de eclipse.
2- agregar la siguiente línea (después de -vmargs):
-Duser.name=&#8220;nombre deseado&#8221;
Referencias:
http://dev.eclipse.org/newslists/news.eclipse.newcomer/msg07148.html
]]></description>
			<content:encoded><![CDATA[<p>Para cambiar el nombre de usuario con el que Eclipse trabaja, usualmente en de la sesión de usuario se deben seguir solo dos pasos:</p>
<p>1- editar el archivo <span style="color: #339966">eclipse.ini</span> en el directorio de eclipse.</p>
<p>2- agregar la siguiente línea (después de -vmargs):</p>
<p style="padding-left: 30px"><span style="color: #0000ff">-Duser.name=<strong>&#8220;nombre deseado&#8221;</strong></span></p>
<p><strong>Referencias:</strong></p>
<p><a href="http://dev.eclipse.org/newslists/news.eclipse.newcomer/msg07148.html" target="_self">http://dev.eclipse.org/newslists/news.eclipse.newcomer/msg07148.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2010/02/05/cambiar-el-nombre-del-autor-en-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Habilitar un repositorio SVN para que permita modificar un log anterior</title>
		<link>http://sw.cablop.net/tips/2009/10/27/habilitar-un-repositorio-svn-para-que-permita-modificar-un-log-anterior/</link>
		<comments>http://sw.cablop.net/tips/2009/10/27/habilitar-un-repositorio-svn-para-que-permita-modificar-un-log-anterior/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 01:15:54 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[SVN]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[TortoiseSVN]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=135</guid>
		<description><![CDATA[Para los que les ha salido el siguiente error al tratar de cambiar un log viejo (a mí me salió desde el TortoiseSVN)
DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
Hasta donde tengo entendido, por el artículo que consulte, no es posible cambiar los logs porque éstos no están [...]]]></description>
			<content:encoded><![CDATA[<p>Para los que les ha salido el siguiente error al tratar de cambiar un log viejo (a mí me salió desde el TortoiseSVN)</p>
<p style="padding-left: 30px"><span style="color: #808080"><code>DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent</code></span></p>
<p>Hasta donde tengo entendido, por el artículo que consulte, no es posible cambiar los logs porque éstos no están siendo controlados por el sistema de control de versiones.</p>
<p>Toca habilitar un script que permita hacer esto sin que arruinemos el repositorio.</p>
<p>Los pasos para que podamos editar los logs viejos son:</p>
<ol>
<li>Vamos al directorio hooks de nuestro repositorio en el servidor.</li>
<li>Renombramos el nombre del archivo <span style="color: #339966">pre-revprop-change.tmpl</span> por <span style="color: #339966">pre-revprop-change</span>.</li>
<li>Luego al archivo que tenemos le damos permisos de ejecución, 755.</li>
</ol>
<p>Con esto debe bastar para poder modificar logs viejos en el SVN.</p>
<p><strong>Fuente:</strong></p>
<p><a href="http://jacqueschirag.wordpress.com/2007/07/22/changing-revision-property-in-subversion-with-tortoisesvn/" target="_blank">Changing a revision property in Subversion</a></p>
<div id="_mcePaste" style="overflow: hidden;width: 1px;height: 1px"><code>pre-revprop-change.tmpl pre-revprop-change</code></div>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/10/27/habilitar-un-repositorio-svn-para-que-permita-modificar-un-log-anterior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Warning:  URL file-access is disabled in the server configuration</title>
		<link>http://sw.cablop.net/tips/2009/08/29/warning-url-file-access-is-disabled-in-the-server-configuration/</link>
		<comments>http://sw.cablop.net/tips/2009/08/29/warning-url-file-access-is-disabled-in-the-server-configuration/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 16:44:59 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cURL]]></category>
		<category><![CDATA[file-access]]></category>
		<category><![CDATA[php.ini]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=86</guid>
		<description><![CDATA[Este caso se me presentó con un línea del siguiente estilo:
$response=file_get_contents("http://web.com/contenido.xml");
Y no se podía solucionar con el archivo php.ini ni con la variable allow_url_fopen = On ni con allow_url_include = On.
Entonces, ¿cómo se soluciona?
Sí se tiene cURL en el servidor pues lo podemos solucionar de la siguiente manera:
$fileURL = "http://pagina.web/.../archivo";
		$ch = curl_init($fileURL);
		$file = "/ruta/a/temporales/temporal" . [...]]]></description>
			<content:encoded><![CDATA[<p>Este caso se me presentó con un línea del siguiente estilo:</p>
<p style="padding-left: 30px"><code><span style="color: #000080">$response=file_get_contents("http://web.com/contenido.xml");</span></code></p>
<p>Y no se podía solucionar con el archivo <em><span style="color: #339966">php.ini</span></em> ni con la variable <em><span style="color: #000080">allow_url_fopen = On</span></em> ni con <span style="color: #000080"><em>allow_url_include = On</em></span>.</p>
<p>Entonces, ¿cómo se soluciona?</p>
<p>Sí se tiene cURL en el servidor pues lo podemos solucionar de la siguiente manera:</p>
<p style="padding-left: 30px"><code><span style="color: #000080">$fileURL = "http://pagina.web/.../archivo";<br />
		$ch = curl_init($fileURL);<br />
		$file = "/ruta/a/temporales/temporal" . time();<br />
		$fp = @fopen($file, "w");<br />
		curl_setopt($ch, CURLOPT_FILE, $fp);<br />
		curl_setopt($ch, CURLOPT_HEADER, 0);<br />
		curl_exec($ch);<br />
		curl_close($ch);<br />
		fclose($fp);<br />
		$response = file_get_contents($file);<br />
		unlink($file);</span></code></p>
<p>Naturalmente tenemos que contar con que cURL esté correctamente configurado y que tengamos permiso de escritura del archivo &#8220;temporal&#8221; (o el nombre que le hayamos querido dar).</p>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/08/29/warning-url-file-access-is-disabled-in-the-server-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bazaar via ftp o de como crear un repositorio de control de versiones en un hosting compartido, sin acceso ssh&#8230;</title>
		<link>http://sw.cablop.net/tips/2009/08/29/bazaar-via-ftp-o-de-como-crear-un-repositorio-de-control-de-versiones-en-un-hosting-compartido-sin-acceso-ssh/</link>
		<comments>http://sw.cablop.net/tips/2009/08/29/bazaar-via-ftp-o-de-como-crear-un-repositorio-de-control-de-versiones-en-un-hosting-compartido-sin-acceso-ssh/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 16:39:09 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[Bazaar]]></category>
		<category><![CDATA[Control de Versiones]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[hosting compartido]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=81</guid>
		<description><![CDATA[Ni es tan complicado como montar un subversion compilandolo del lado del servidor, vaya uno a saber como si no tenemos ssh, ni tan fácil como crearlo localmente. Pero posible.
Esto es particularmente útil cuando queremos instalar un repositorio en nuestro sitio web pero no tenemos acceso por telnet ni ssh ni nada por el estilo.
El [...]]]></description>
			<content:encoded><![CDATA[<p>Ni es tan complicado como montar un subversion compilandolo del lado del servidor, vaya uno a saber como si no tenemos ssh, ni tan fácil como crearlo localmente. Pero posible.</p>
<p>Esto es particularmente útil cuando queremos instalar un repositorio en nuestro sitio web pero no tenemos acceso por telnet ni ssh ni nada por el estilo.</p>
<p><strong>El método</strong></p>
<p><span style="text-decoration: underline">¿Qué necesitamos?</span></p>
<ul>
<li>Bueno, dos equipos, el local &#8211; nuestra estación de trabajo &#8211; y el servidor compartido &#8211; donde está nuestro sitio web -.</li>
<li>Acceso ftp al servidor.</li>
<li>Instalador de <em>Bazaar</em> para nuestro sistema operativo local.</li>
<li>Plugin <em>push_and_update</em> para <em>Bazaar</em>.</li>
<li><em>Python</em> 2.4 o superior, por supuesto, es requerimiento de <em>Bazaar</em>.</li>
</ul>
<p><span style="text-decoration: underline">Creación de la cuenta de ftp en el servidor</span></p>
<p>Comenzaremos por el servidor, algunas indicaciones serán algo generales, deben realizarse de acuerdo a las herramientas que su proveedor de hosting disponga.</p>
<p>1. Primero crearemos la cuenta de usuario de ftp remoto, en este artículo será <em>bzr_usuario</em>.</p>
<p>2. Luego, crearemos la carpeta donde queremos que nuestro repositorio resida. Yo he creado una carpeta que no tiene acceso por http (no todo lo que estoy desarrollando es de dominio público). En este artículo la ruta será <em>ftp://dominio.com/bazaar/repositorio</em>.</p>
<p>3. Asignamos la carpeta al usuario ftp que hemos creado. En algunos casos esto nos simplifica la vida, ya que el usuario verá esa carpeta como la raíz del sitio ftp y no puede acceder a otras ubicaciones (en el caso en que trabajemos con más personas en el mismo proyecto, por ejemplo, nos ahorrará dolores de cabeza).</p>
<p>4. Verificamos que la conexión con el servidor pueda establecerse y que podamos manipular el contenido de la carpeta vía ftp.</p>
<p><span style="text-decoration: underline">Instalación de <em>Bazaar</em> y plugin <em>push_and_update</em></span></p>
<p>Ahora vamos a nuestro equipo cliente, la estación de trabajo.</p>
<p>1. Aquí el primer paso consiste en instalar <em>Bazaar</em>, no entraré en detalles de como realizar esta instalación, cada sistema operativo tiene su propio método.</p>
<p>2. Luego instalamos el plugin <em>push_and_update</em>. Nos ubicamos en el directorio de <em>Bazaar</em>, y ahí en el directorio <em>plugins</em>. Si el directorio <em>plugins</em> no existe procederemos a crearlo. Por consola y empleando el mismo <em>Bazaar</em> podemos instalar el plugin con el siguiente comando:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr branch lp:bzr-push-and-update push_and_update</span></p>
<p>Hay alternativas a este comando, por ejemplo:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr branch <span class="https">https://launchpad.net/bzr-push-and-update</span> push_and_update </span></p>
<p>O bajarlo e instalarlo manualmente.</p>
<p>Este plugin es muy importante, ya que nos mantendrá nuestro repositorio en el servidor al día.</p>
<p><span style="text-decoration: underline">Creación del repositorio y publicación en el servidor<br />
</span></p>
<p>Esta parte consiste en la creación de un repositorio local en la estación de trabajo para luego subirlo a nuestro servidor.</p>
<p>1. Creamos una carpeta para el repositorio. La dejamos vacía, nuestro proposito en este momento es solo crear la estructura del repositorio.</p>
<p>2. Nos ubicamos por consola dentro de la carpeta creada e iniciamos el repositorio, el comando es:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr init</span></p>
<p>3. Procedemos a crear la estructura del repositorio en nuestro servidor:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr push &#45;&#45;create-prefix ftp://bzr_usuario<span class="mailto">@dominio.com/bazaar/repositorio</span></span></p>
<p>El directorio no debería existir en el servidor ya que se va a crear uno nuevo. Sin embargo, si tenemos un directorio existente y vacío podemos añadir la opción <em>&#45;&#45;use-existing-dir</em> a este comando.</p>
<p>4. Realizamos el primer envío de contenido al repositorio en el servidor con prácticamente el mismo comando:</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr push ftp://bzr_usuario<span class="mailto">@dominio.com/bazaar/repositorio</span></span></p>
<p>Aunque ya podemos omitir la ruta a nuestro directorio ftp, <em>Bazaar</em> la recordará por nosotros, aunque siempre nos preguntará por la contraseña.</p>
<p>5. Para traer la información desde el servidor a nustros equipos podemos usar el comando <em>merge</em> o el comando <em>pull</em>.</p>
<p style="padding-left: 30px"><span style="color: #993300">bzr merge ftp://bzr_usuario<span class="mailto">@dominio.com/bazaar/repositorio</span></span></p>
<p><strong>Fuentes:</strong></p>
<ul>
<li><a href="http://stackoverflow.com/questions/460632/bazaar-bound-branch-commit-and-update" target="_blank">Bazaar bound branch commit-and-update</a></li>
<li><a href="http://dentharg.wordpress.com/2007/02/14/bazaar-ng-private-repositories-on-shared-hosting/" target="_blank">Bazaar-NG: private repositories on shared hosting</a></li>
<li><a href="https://code.launchpad.net/bzr-push-and-update" target="_blank">Bazaar plugin to update remote trees</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/08/29/bazaar-via-ftp-o-de-como-crear-un-repositorio-de-control-de-versiones-en-un-hosting-compartido-sin-acceso-ssh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como cambiar el orden de las columnas en PostgreSQL</title>
		<link>http://sw.cablop.net/tips/2009/08/29/como-cambiar-el-orden-de-las-columnas-en-postgresql/</link>
		<comments>http://sw.cablop.net/tips/2009/08/29/como-cambiar-el-orden-de-las-columnas-en-postgresql/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 16:10:19 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[PostgreSQL 8.3]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[columna]]></category>
		<category><![CDATA[orden]]></category>
		<category><![CDATA[PostgreSQL 8.x]]></category>
		<category><![CDATA[tabla]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=58</guid>
		<description><![CDATA[Este está tomado de la siguiente pregunta en stackoverflow.com: Is it possible to change the natural order of columns in Postgres?.
El procedimiento es simple, aunque no lo recomiendan para usuarios inexpertos o poco cuidadosos. Incluso, debería omitirse esto si no es estrictamente necesario el cambio (las posibilidades de arruinar el sistema son altas). en Eo [...]]]></description>
			<content:encoded><![CDATA[<p>Este está tomado de la siguiente pregunta en <em>stackoverflow.com</em>: <a href="http://stackoverflow.com/questions/126430/is-it-possible-to-change-the-natural-order-of-columns-in-postgres" target="_blank">Is it possible to change the natural order of columns in Postgres?</a>.</p>
<p>El procedimiento es simple, aunque no lo recomiendan para usuarios inexpertos o poco cuidadosos. Incluso, debería omitirse esto si no es estrictamente necesario el cambio (las posibilidades de arruinar el sistema son altas). en Eo personal también lo recomiendo solo si es obligatorio.</p>
<div class="post-text">
<p><strong>Como cambiar el orden de las columnas de una tabla en PostgreSQL</strong></p>
<p><strong>0.</strong> Como base, tenemos una tabla de ejemplo</p>
<pre style="padding-left: 30px"><span style="color: #993300"># CREATE TABLE test (a int, b int, c int);
# INSERT INTO test VALUES (1,2,3);
# SELECT * FROM test;</span>
<span style="color: #808080"> a | b | c
---+---+---
 1 | 2 | 3
(1 row)</span></pre>
<p>Queremos que la columna <em>b</em> quede antes que la columna <em>a</em>.</p>
<p><strong>1.</strong> Nos logeamos en la base de datos con el usuario <em>postgres</em> para poder editar las tablas de sistema.</p>
<p><strong>2.</strong> Buscamos el valor <em>attrelid</em> de la tabla que queremos modificar en la tabla <em>pg_class</em>:</p>
<pre style="padding-left: 30px"><span style="color: #993300"># SELECT relname, relfilenode FROM pg_class WHERE relname='test';</span>
<span style="color: #808080"> relname | relfilenode
---------+-------------
 test_t  |       27666
(1 row)</span></pre>
<p>Luego consultamos la tabla <em>pg_attribute</em> para encontrar la tabla, las columnas y la posición de las columnas, con el valor que nos retornó la búsqueda anterior.</p>
<pre style="padding-left: 30px"><span style="color: #993300"># SELECT attrelid, attname, attnum FROM pg_attribute WHERE attrelid=27666;</span>
<span style="color: #808080"> attrelid | attname  | attnum
----------+----------+--------
    27666 | tableoid |     -7
    27666 | cmax     |     -6
    27666 | xmax     |     -5
    27666 | cmin     |     -4
    27666 | xmin     |     -3
    27666 | ctid     |     -1
    27666 | a        |      1
    27666 | b        |      2
    27666 | c        |      3
(9 rows)</span></pre>
<p>Aquí podemos tener un problema y es que puede que el primer comando no nos retorne nada o nos retorne un valor diferente al que buscamos. De no encontrar la tabla con el primer comando, podemos buscar directamente en la tabla <em>pg_attribute</em> por el nombre de nuestra columna, si este no es común a otras tablas y verificando cuidadosamente que la tabla que buscamos es la que nos interesa.</p>
<pre style="padding-left: 30px"><span style="color: #993300"># SELECT attrelid, attname, attnum FROM pg_attribute WHERE attname=a;
</span><span style="color: #808080"> attrelid | attname  | attnum
----------+----------+--------
    27666 | a        |      1
(1 rows)</span></pre>
<p><strong>3.</strong> Modificamos el valor de attnum de las columnas.</p>
<p>Ya que attnum es una columna de valores únicos (en realidad yo creo que se trata de un constraint compuesto), tenemos que usar un valor temporal mientras modificamos el valor.</p>
<pre style="padding-left: 30px"><span style="color: #993300"># UPDATE pg_attribute SET attnum=4 WHERE attname='a' AND attrelid=27666;</span>
<span style="color: #808080">UPDATE 1</span>
<span style="color: #993300"># UPDATE pg_attribute SET attnum=1 WHERE attname='b' AND attrelid=27666;</span>
<span style="color: #808080">UPDATE 1</span>
<span style="color: #993300"># UPDATE pg_attribute SET attnum=2 WHERE attname='a' AND attrelid=27666;</span>
<span style="color: #808080">UPDATE 1</span></pre>
<p>Luego consultamos la tabla para saber que hicimos las cosas bien</p>
<pre style="padding-left: 30px"><span style="color: #993300"># SELECT * FROM test;</span>
<span style="color: #808080"> b | a | c
---+---+---
 1 | 2 | 3
(1 row)</span></pre>
<p>No sobra recordar que estamos modificando las tablas de sistema, entonces debemos ser muy cuidadosos.</p>
<p>Esto funciona muy bien para PostgreSQL 8.3 (lo tuve que utilizar una sola vez). No sé si para otras versiones, sobre todo las anteriores, el truco también funcione.</p>
<p><strong>Nota.-</strong> El contenido de la página original esta bajo una licencia <a href="http://creativecommons.org/licenses/by-sa/2.5/" target="_blank">Creative Commons Atribución, Compartir Igual</a> y este artículo se ofrece bajo la misma licencia.</div>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/08/29/como-cambiar-el-orden-de-las-columnas-en-postgresql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>pgAdminIII, PostGIS, PostgreSQL 8.x, SQL, template_postgis</title>
		<link>http://sw.cablop.net/tips/2009/08/29/pgadminiii-postgis-postgresql-8-x-sql-template_postgis/</link>
		<comments>http://sw.cablop.net/tips/2009/08/29/pgadminiii-postgis-postgresql-8-x-sql-template_postgis/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 16:07:42 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[PostGIS]]></category>
		<category><![CDATA[PostgreSQL 8.3]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[pgAdminIII]]></category>
		<category><![CDATA[PostgreSQL 8.x]]></category>
		<category><![CDATA[template_postgis]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=54</guid>
		<description><![CDATA[Lo intenté, busque en la red, que le añadiera un sleep a la funcion antes del createdb&#8230; no, no lo añadí, ya era ir demasiado lejos&#8230; con el pgAdminIII&#8230; tampoco&#8230;
¿De que habló?
Al ejecutar el comando:
createdb -T template_postgis my_spatial_db
la base de datos no se crea y si usamos pgAdminIII nos devuelve el siguiente error:
database "template_postgis" is [...]]]></description>
			<content:encoded><![CDATA[<p>Lo intenté, busque en la red, que le añadiera un sleep a la funcion antes del createdb&#8230; no, no lo añadí, ya era ir demasiado lejos&#8230; con el pgAdminIII&#8230; tampoco&#8230;</p>
<p>¿De que habló?</p>
<p>Al ejecutar el comando:</p>
<p style="padding-left: 30px"><code><span style="color: #993300">createdb -T template_postgis my_spatial_db</span></code></p>
<p>la base de datos no se crea y si usamos pgAdminIII nos devuelve el siguiente error:</p>
<p style="padding-left: 30px"><code><span style="color: #333333">database "template_postgis" is being accessed by other users</span></code></p>
<p>Después de googlear un rato y de buscar solucionar el comando se me ocurrió hacerlo vía sql y si funcionó.</p>
<p>Este es el comando:</p>
<p style="padding-left: 30px"><code><span style="color: #993300">CREATE DATABASE </span><span style="color: #993300">my_spatial_db</span><span style="color: #993300"> WITH TEMPLATE=template_postgis;</span></code></p>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/08/29/pgadminiii-postgis-postgresql-8-x-sql-template_postgis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como configurar Subversion (SVN) en Apache 2 sobre Ubuntu</title>
		<link>http://sw.cablop.net/tips/2009/08/29/como-configurar-subversion-svn-en-apache-2-sobre-ubuntu/</link>
		<comments>http://sw.cablop.net/tips/2009/08/29/como-configurar-subversion-svn-en-apache-2-sobre-ubuntu/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 15:42:01 +0000</pubDate>
		<dc:creator>天龙</dc:creator>
				<category><![CDATA[Apache 2]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://sw.cablop.net/tips/?p=34</guid>
		<description><![CDATA[Este post esta basado en este Subversion over Apache 2 on Ubuntu, en inglés.
Subversion o (SVN) es una poderosa herramienta de control de versiones (para desarrollo, diseño e incluso documentos) que puede instalarse sobre el servidor Apache 2 y esto en Ubuntu se logra con unos sencillos pasos.
Primero, el trasfondo.
Asumiremos que se tiene instalado Apache [...]]]></description>
			<content:encoded><![CDATA[<p>Este post esta basado en este <a href="http://davidwinter.me.uk/articles/2006/02/16/subversion-over-apache-2-on-ubuntu/" target="_blank">Subversion over Apache 2 on Ubuntu</a>, en inglés.</p>
<p>Subversion o (SVN) es una poderosa herramienta de control de versiones (para desarrollo, diseño e incluso documentos) que puede instalarse sobre el servidor Apache 2 y esto en Ubuntu se logra con unos sencillos pasos.</p>
<p><strong>Primero, el trasfondo.</strong></p>
<p>Asumiremos que se tiene instalado Apache 2 en el sistema Ubuntu entonces procederemos paso a paso a ir instalando y configurando lo demás.</p>
<p><strong>Instalación de Subversion y mod para Apache</strong></p>
<p>Esto lo logramos con la línea:</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo apt-get install subversion libapache2-svn</span></code></p>
<p>El módulo emplea WebDAV para trasmitir los archivos a Subversion, esto nos facilitará mucho las cosas ya que emplearemos el mismo puerto 80 empleado por Apache 2.</p>
<p>Ahora procedemos a habilitar el módulo (aunque esto teóricamente se hace por defecto al instalarlo).</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo a2enmod dav_svn</span></code></p>
<p><strong>Creación de un repositotio SVN</strong></p>
<p>Crearemos el repositorio y su estructura.</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo mkdir /ruta/local/al/repositorio<br />
sudo svnadmin create /ruta/local/al/repositorio</span></code></p>
<p>Haremos que Apache 2 sea el propietario (owner) del repositorio recién creado</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo chown -R www-data /home/svn</span></code></p>
<p>Y crearemos un archivo de contraseñas que emplearemos para restringir el acceso al repositorio</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo htpasswd -cm /ruta/al/archivo_de_contraseñas.passwd nombre_del_usuario</span></code></p>
<p>La consola preguntará por la contraseña que desearemos asignar al usuario.</p>
<p>Si ya disponemos de un archivo existente y solo queremos agregar un nuevo usuario entonces el comando que necesitaremos es:</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo htpasswd -m /ruta/al/archivo_de_contraseñas.passwd nombre_del_nuevo_usuario</span></code></p>
<p>Ahora, editaremos el archivo <span style="color: #008000">/etc/apache2/mods-enabled/dav_svn.conf</span></p>
<p>En la consola lo consegumos mediante</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo nano /etc/apache2/mods-enabled/dav_svn.conf</span></code></p>
<p>Y en el entorno gráfico mediante:</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo -b gedit /etc/apache2/mods-enabled/dav_svn.conf</span></code></p>
<p>Tendremos que añadir las siguientes líneas al archivo por cada repositorio que deseemos instalar:</p>
<p style="padding-left: 30px"><code><span style="color: #000080">&lt;Location /ruta/en/url/al/repositorio&gt;<br />
    DAV svn<br />
    SVNPath /ruta/local/al/repositorio<br />
&nbsp;<br />
    AuthType Basic<br />
    AuthName "Subversion Repository"<br />
    AuthUserFile /ruta/al/archivo_de_contraseñas.passwd<br />
    Require valid-user<br />
&lt;/Location&gt;</span></code></p>
<p>Naturalmente debemos remplazar /ruta/en/url/al/repositorio, /ruta/local/al/repositorio y /ruta/al/archivo_de_contraseñas.passwd por las ubicaciones y archivos reales que vamos a emplear.</p>
<p>Y por último debemos reiniciar el servidor Apache 2</p>
<p style="padding-left: 30px"><code><span style="color: #800000">sudo /etc/init.d/apache2 restart</span></code><code></p>
<p><strong>Hemos terminado</strong></p>
<p>Podemos comprobar que el repositorio está funcionando en nuestro navegador web:</p>
<p>http://nuestro.servidor/ruta/en/url/al/repositorio</p>
<p>Y el navegador nos preguntará por nuestras credenciales de acceso (el nombre que dimos anteriormente y la contraseña que le asignamos).</code></p>
]]></content:encoded>
			<wfw:commentRss>http://sw.cablop.net/tips/2009/08/29/como-configurar-subversion-svn-en-apache-2-sobre-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
