<?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>Berriart &#187; Recursos</title>
	<atom:link href="http://www.berriart.com/category/recursos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.berriart.com</link>
	<description>Un programador hablando de diseño............</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:54:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Instalar Trac en Ubuntu</title>
		<link>http://www.berriart.com/2010/07/24/instalar-trac-ubuntu/</link>
		<comments>http://www.berriart.com/2010/07/24/instalar-trac-ubuntu/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 12:15:50 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[trac]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=582</guid>
		<description><![CDATA[Trac es un wiki mejorado y un sistema de &#8216;tickets&#8217; para la gestión de proyectos de software basado en web. Creo que es una de las mejores maneras de mantener un proyecto de software libre, aunque es perfectamente útil para un proyecto &#8216;privado&#8217;. Se integra perfectamente con el sistema de control de versiones Subversion, y [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://trac.edgewall.org/">Trac</a> es un wiki mejorado y un sistema de &#8216;tickets&#8217; para la gestión de proyectos de software basado en web. Creo que es una de las mejores maneras de mantener un proyecto de software libre, aunque es perfectamente útil para un proyecto &#8216;privado&#8217;. Se integra perfectamente con el sistema de control de versiones <a href="http://subversion.tigris.org/">Subversion</a>, y es una manera de tener centralizada toda la documentación de un proyecto teniendo incluso la posibilidad de poder relacionar incidencias con sus respectivos arreglos en el código. Si no lo conoces y quieres ver un ejemplo, puedes acceder al <a href="http://trac.symfony-project.org/">Trac de Symfony</a>, ya que los desarrolladores de este Framework utilizan esta herramienta.</p>
<p>Si tienes un servidor Ubuntu con Apache y quieres instalarlo a continuación te describo los pasos que he seguido yo para hacerlo (recuerda que si no estás como usuario &#8216;root&#8217; tendrás que hacer <em>sudo</em>):</p>
<p>Instalar suvbersion:<br />
<code>apt-get install subversion libapache2-svn</code></p>
<p>Instalar Trac y el módulo de Python para Apache:<br />
<code>apt-get install libapache2-mod-python libapache2-mod-python-doc trac </code></p>
<p>Crear la carpeta que hará de &#8216;Document Root&#8217; para poder acceder al trac via web, por ejemplo:<br />
<code>mkdir /var/www/trac</code></p>
<p>Si lo quieres proteger, como es mi caso, crea un fichero .htpasswd:<br />
<code>htpasswd -c /var/www/trac/.htpasswd admin</code></p>
<p>Preparar el Virtual Host:<br />
<code>vi /etc/apache2/sites-available/trac</code></p>
<p>Y escribir:</p>
<pre>&lt;VirtualHost *&gt;
ServerAdmin mymail@domain.com
ServerName trac.domain.com

&lt;Location /projects&gt; #set up Trac handling
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/www/trac
PythonOption TracUriRoot /projects

#authentication scheme
AuthType Basic
AuthName "My Tracker"
AuthUserFile /var/www/trac/.htpasswd
Require valid-user

&lt;/Location&gt;

ErrorLog /var/log/apache2/trac_error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/trac_access.log combined

&lt;/VirtualHost&gt;</pre>
<p>Vamos a crear un repositorio SVN para el código:<br />
<code>mkdir /var/lib/svn<br />
mkdir /var/lib/svn/myproject<br />
svnadmin create /var/lib/svn/myproject</code></p>
<p>Yo lo he preparado para poder tener diferentes <em>tracs</em>, así que estos pasos se pueden repetir:<br />
<code>mkdir /var/www/trac/myproject<br />
trac-admin /var/www/trac/myproject initenv<br />
sudo chown -R www-data:www-data /var/www/trac/myproject</code></p>
<p>Finalmente reiniciamos Apache:<br />
<code>/etc/init.d/apache2 restart</code></p>
<p>Y ya podríamos acceder a nuestro trac en este ejemplo en: http://trac.domain.com/projects</p>
<p>Espero que os sirva de ayuda.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2010/07/24/instalar-trac-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Addons de Firefox para un desarrollador web</title>
		<link>http://www.berriart.com/2010/07/10/addons-firefox-desarrollador-web/</link>
		<comments>http://www.berriart.com/2010/07/10/addons-firefox-desarrollador-web/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 10:56:03 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[addons]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[navegador]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=518</guid>
		<description><![CDATA[Os voy a recomendar 10 plugins para Firefox que utilizo como desarrollador web. La verdad es que es increible lo que estas herramientas que se pueden agregar al navegador pueden ofrecernos. Por supuesto, si vosotros utilizáis otras o tenéis alguna buena recomendación solo tenéis que decirlo dejando un comentario. Firebug: Para mi es hoy en [...]]]></description>
			<content:encoded><![CDATA[<p>Os voy a recomendar 10 <em>plugins</em> para Firefox que utilizo como desarrollador web. La verdad es que es increible lo que estas herramientas que se pueden agregar al navegador pueden ofrecernos. Por supuesto, si vosotros utilizáis otras o tenéis alguna buena recomendación solo tenéis que decirlo dejando un comentario.</p>
<ul>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/1843">Firebug</a>: Para mi es hoy en día una herramienta indispensable que me ayuda a depurar mi código Javascript  y a solicionar problemas con el CSS entre otras cosas.</li>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/5369">YSlow</a> y <a href="http://code.google.com/speed/page-speed/">Google Page Speed</a> son dos Addons que necesitan del Firebug para funcionar y que te ayudarán a <a href="http://www.berriart.com/2010/07/08/mejora-el-tiempo-de-carga-de-tu-web-ii/">mejorar la velocidad de carga de tu web</a>.</li>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/60">Web Developer</a>: Una barra de herramientas que tiene multiples utilidades. Desde una regla para medir píxeles sobre el navegador hasta validadores o la posibilidad de desactivar el Javascript o las hojas de estilo.</li>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/321">Search Status</a>: Herramienta que ofrece información <a href="http://www.berriart.com/category/seo/">SEO</a> sobre tu web y que prácticamente la uso para poder ver de forma clara los enlaces con &#8216;nofollow&#8217;.</li>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/271">ColorZilla</a>: Es solo un <em>color picker</em>, un cuenta gotas para poder conocer el valor en código CSS de cualquier color que estés viendo en una web.</li>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/1146">Screengrab</a>: Es una herramienta para hacer capturas de páginas web, ya sean completas o selecciones. Muy útil para hacer documentación o reportar bugs.</li>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/2064">Dummy Lipsum</a>: El nombre lo dice todo, simplemente un generador de &#8216;Lorem Ipsum&#8217; para cuando necesitemos unos textos de prueba.</li>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/6455">IE NetRenderer</a>: Una manera sencilla de poder ver lo que estamos haciendo en diferentes versiones del <em>Fucking Internet Explorer</em>. Sí, ya sé que hay más maneras de hacer eso incluso usando linux, pero ésta es rápida y en algunos casos no necesito más.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/57795/">HostAdmin</a>: Creo que ha sido mi último descubrimiento y ahora no paro de usarlo. Me sirve para cambiar mi fichero /etc/hosts dónde fuerzo los dominios desde el propio Firefox, útil para cambiar entre <em>dev</em>, <em>testing</em> y producción.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2010/07/10/addons-firefox-desarrollador-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mejora el tiempo de carga de tu web (II)</title>
		<link>http://www.berriart.com/2010/07/08/mejora-el-tiempo-de-carga-de-tu-web-ii/</link>
		<comments>http://www.berriart.com/2010/07/08/mejora-el-tiempo-de-carga-de-tu-web-ii/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 23:28:31 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[carga]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[Page Speed]]></category>
		<category><![CDATA[velocidad]]></category>
		<category><![CDATA[YSLOW]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=550</guid>
		<description><![CDATA[El tiempo de carga es un factor muy importante para diferentes aspectos de una web. Por ejemplo, desde un punto de vista SEO está confirmado que es un algo que hay que tener en cuenta, también es importante ser rápidos para una mejor experiencia del usuario y hasta para la carga de tu servidor. Por [...]]]></description>
			<content:encoded><![CDATA[<p>El tiempo de carga es un factor muy importante para diferentes aspectos de una web. Por ejemplo, desde un punto de vista <a href="http://www.berriart.com/category/seo/">SEO</a> <a href="http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html">está confirmado</a> que es un algo que hay que tener en cuenta, también es importante ser rápidos para una mejor experiencia del usuario y hasta para la carga de tu servidor. Por eso es necesario revisar de vez en cuando como mejorar esa carga, y aunque el problema puede estar dentro de las tripas de tu software, es posible que además estés obviando algunos sencillos pasos que pueden ahorrarte varios segundos y hay utilidades que te pueden ayudar a descubrirlos.</p>
<p>Una de las mejores y más conocidas herramientas para diagnosticar problemas y encontrar soluciones al excesivo tiempo de carga de una web es <a href="http://developer.yahoo.com/yslow/">YSLOW</a>. Se trata de una herramienta adicional que se añade al <a href="https://addons.mozilla.org/es-ES/firefox/addon/1843/">Firebug</a> de Firefox (creada por Yahoo) y que te advierte sobre incumplimientos de sus &#8216;<a href="http://developer.yahoo.com/performance/rules.html">Buenas prácticas para acelerar la carga de una web</a>&#8216;. Google enseguida recomendó utilizar esa herramienta a los webmasters, pero como tampoco quería ser menos y aunque también <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=es&#038;answer=35769">sigue recomendando YSLOW</a>, decidió que tenían que hacer la suya propia (<a href="http://code.google.com/intl/es-ES/speed/page-speed/">Page Speed</a>) y redactar sus propias <a href="http://code.google.com/intl/es-ES/speed/page-speed/docs/rules_intro.html">prácticas recomendadas</a>.</p>
<p>Así que ahora tenemos dos buenas herramientas y dos buenas guías (coinciden en muchos puntos) a utilizar para mejorar la carga de nuestra web. Aquí os pongo algunos de esos consejos que creo que son bastante fáciles de aplicar, pero lo mejor es que leáis las guías con detenimiento:</p>
<ul>
<li>Hacer las menos peticiones HTTP posibles. Para ellos se puede por ejemplo unificar diferentes javascripts u hojas de estilo en una sola, o también <a href="http://alistapart.com/articles/sprites">unificar las imágenes utilizadas en el CSS</a> en una y mostrar la que necesites utilizando la propiedad &#8216;background&#8217;.</li>
<li>Minimizar los Javascript y CSS. Si utilizas alguna librería externa seguro que tiene su versión minimizada, y si no lo puedes hacer tu mismo usando herramientas como <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> (también de Yahoo por cierto)</li>
<li><a href="http://www.berriart.com/2008/05/13/mejora-tiempo-carga-web/">Añadir una cabecera de control de caché desde tu .htaccess</a>, para que los navegadores de los usuarios nos echen una mano.</li>
<li>Comprimir con Gzip. Algunos navegadores aceptan el contenido comprimido y los que usamos Apache2 solo tenemos que habilitar el módulo &#8216;deflate&#8217; y añadir lo siguiente a nuestro .htaccess para conseguirlo.
<pre># Hacer GZIP de los JS CSS textos
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript</pre>
</li>
<li>Poner todo el CSS lo más comprimido posible y a poder ser en un solo fichero en la parte superior de la página, en el <em>head</em>. En cambio el Javascript es mejor ponerlo en el fondo, justo antes de cerrar la etiqueta &lt;/body&gt;</li>
<li>Reducir el número de <em>DNS Lookups</em>. Es decir, el número de dominios que se tienen que resolver al cargar una página. Aunque a veces cuando hay por ejemplo muchas imágenes se recomienda que se carguen desde diferentes dominios para poder descargarlas en paralelo.</li>
<li>Usar dominios libres de cookies, y servidores ligeros y a ser posible <a href="http://en.wikipedia.org/wiki/Content_delivery_network"><acronym title="Content delivery network">CDN</acronym>s</a> para servir el contenido estático.</li>
<li>&#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2010/07/08/mejora-el-tiempo-de-carga-de-tu-web-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;Tunear&#8217; Gedit y convertirlo en un IDE</title>
		<link>http://www.berriart.com/2009/08/28/tunear-gedit-y-convertirlo-en-un-ide/</link>
		<comments>http://www.berriart.com/2009/08/28/tunear-gedit-y-convertirlo-en-un-ide/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 15:02:48 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[programar]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=503</guid>
		<description><![CDATA[No sé si os lo he comentado alguna vez, pero Gedit es mi editor preferido y la herramienta que más utilizo para programar. He probado, e incluso alguna vez utilizo, algun IDE auténtico (según para que) Eclipse, Aptana o NetBeans; pero por lo general mi IDE es Gedit. Algunos dirán que lo que digo es [...]]]></description>
			<content:encoded><![CDATA[<p>No sé si os lo he comentado alguna vez, pero <a href="http://projects.gnome.org/gedit/">Gedit</a> es mi editor preferido y la herramienta que más utilizo para programar. He probado, e incluso alguna vez utilizo, algun IDE <em>auténtico</em> (según para que) Eclipse, Aptana o NetBeans; pero por lo general mi IDE es Gedit.</p>
<p>Algunos dirán que lo que digo es una barbaridad, pero me parece una de las mejores herramientas y sobre todo la más ligera. Porque aunque en un principio parezca que es muy <em>light</em>, si sabemos cómo, podemos personalizarla y convertirla en una gran herramienta. Hace tiempo <a href="http://www.viciao2k3.net/blog/linux/haciendo-gedit-mas-sociable-para-el-programador/">Miquel ya nos dió unos consejitos</a>, pero como se nos ha pasado a Mac, ahora me tengo que buscar la vida :p</p>
<p><strong>Os explico mi configuración y ya me diréis que opináis:</strong></p>
<p>Lo primero es ir a las preferencias <em>(Editar->Preferencias)</em>, y adecuaremos unas cuantas cositas:</p>
<p><u>- Pestaña &#8216;Ver&#8217;:</u></p>
<ul>
<li>Mostrar números de línea</li>
<li>Resaltar línea actual</li>
<li>Resaltar pareja del corchete</li>
</ul>
<p><img src="http://www.berriart.com/wp-content/uploads/2009/08/gedit-preferences-1.png" alt="gedit preferences" title="gedit preferences cap" width="450" height="444" class="aligncenter size-full wp-image-505" /></p>
<p><u>- Pestaña &#8216;Editor&#8217;:</u></p>
<ul>
<li>Insertar 4 espacios en lugar de tabulaciones</li>
<li>Activar sangría automática</li>
<li>Desactivar copia de seguridad, ya que crea archivos con el mismo nombre con el caracter &#8216;~&#8217; al final, que hace que linux los trate como ocultos y que si los subimos al servidor nos traeran graves problemas de seguridad</li>
</ul>
<p><img src="http://www.berriart.com/wp-content/uploads/2009/08/gedit-preferences-2.png" alt="gedit preferences " title="gedit preferences " width="450" height="444" class="aligncenter size-full wp-image-506" /></p>
<p><strong>Los colores</strong> que vienen por defecto para resaltar el código, no me gustan. Yo prefiero el fondo negro, ahorro energia y descanso la vista :p Así que nos vamos a la siguiente pestaña &#8216;Tipografías y colores&#8217;. De los esquemas existentes, tampoco me convencen ninguno, así que lo que hice fue descargarme otro. <a href="http://120linux.com/6-estilos-de-colores-para-gedit/">Aquí podéis descargar colores para Gedit</a>, a mi el esquema que más me gusta y el que uso es el Darkwin. Para instalarlo, descargalo y luego en la pestaña pulsa en el botón &#8216;Añadir&#8217; y agregalo.</p>
<p>Ahora llega el turno de instalar <strong>plugins o complementos</strong> para el Gedit. Por defecto trae algunos preinstalados que solo necesitamos activar desde la cuarta pestaña del panel de preferencias. Activaremos los siguientes:</p>
<ul>
<li>Herramientas externas &#8211; Permite ejecutar comandos o programas externos a Gedit para facilitarnos el trabajo. Más adelante explicaré como configurarlo.</li>
<li>Panel de examinador de Archivos &#8211; Pone a nuestra disposición un panel lateral para examinar y acceder a los archivos de nuestro proyecto (Tecla rápida F9).</li>
<li>Recortes &#8211; Permite insertar &#8216;recortes&#8217; de código, o estructuras muy utilizadas (loops, ifs,&#8230;). Escribe la palabra clave y luego pulsa tabulador, el resto se escribirá solo.</li>
<li>Sangrar líneas &#8211; Permite el sangrado de líneas de manera rápida mediante Ctrl+T.</li>
</ul>
<p>Además de estos, creo que es una buena opción instalar otro plugin más, pero este no viene por defecto, se llama <a href="http://sourceforge.net/projects/symbol-browser/">Symbol Browser</a>. Se trata de un panel lateral que permite la exploración de objetos, funciones, <em>defines</em>,&#8230; </p>
<p><img src="http://www.berriart.com/wp-content/uploads/2009/08/screenshot.jpg" alt="Symbol Browser" title="Symbol Browser" width="400" height="419" class="aligncenter size-full wp-image-512" /></p>
<p>Yo os explico como le he instalado en Ubuntu 9.04, pero si necesitáis más información <a href="http://www.micahcarrick.com/11-14-2007/gedit-symbol-browser-plugin.html">podéis ver este artículo</a> que fue como lo descubrí. Lo primero que hay que hacer es instalar Exuberant Ctags, que es la herramienta ne la que se basa este plugin, luego descargamos el plugin y lo instalamos. No olvides después de instalarlo activarlo en la pestaña &#8216;Complementos&#8217; como hemos hecho con los anteriores.</p>
<pre>sudo apt-get install ctags
cd ~/.gnome2/gedit/
wget http://sourceforge.net/projects/symbol-browser/files/symbol-browser-bin/gedit-symbol-browser-plugin-bin-ubuntu-i386-0.1/gedit-symbol-browser-plugin-bin-ubuntu-i386-0.1.tar.gz/download #La URL puede cambiar al cambiar de versión
tar -xzf gedit-symbol-browser-plugin-bin-ubuntu-i386-0.1.tar.gz
</pre>
<p>Eso sería todo. Bueno, más bien casi todo. Por último habría que configurar el plugin &#8216;Herramientas externas&#8217; para poder realizar diferentes tareas, como comprobar la syntaxis de nuestro código, consultar la documentación de PHP, &#8216;standarizar&#8217; nuestro código con el programa PHP-Beautifer,&#8230; Para ver como hacerlo creo que lo mejor es que os paséis por la web de la que he recogido la mayor parte de la info que he puesto en este post, ya que mejor que él seguro que no lo explico: <a href="http://www.micahcarrick.com/09-29-2007/gedit-html-editor.html">Micah Carrick</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2009/08/28/tunear-gedit-y-convertirlo-en-un-ide/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Clase PHP para la nueva API de Minube</title>
		<link>http://www.berriart.com/2009/06/17/clase-php-api-minube/</link>
		<comments>http://www.berriart.com/2009/06/17/clase-php-api-minube/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 08:26:54 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Aplicaciones web]]></category>
		<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[clase]]></category>
		<category><![CDATA[minube]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=483</guid>
		<description><![CDATA[Últimamente a las startups españolas les ha dado por crear APIs para que todos podamos utilizar sus datos, crear mashups,&#8230; Ya lo hicieron 11870, nvivo, bitacoras,&#8230; y ahora le ha tocado el turno a Minube. Personalmente me parece estupendo, ya sabemos todos lo que nos enseñaron de pequeñitos, compartir es bueno. Pues aprovechando esta salida, [...]]]></description>
			<content:encoded><![CDATA[<p>Últimamente a las <em>startups</em> españolas les ha dado por crear APIs para que todos podamos utilizar sus datos, crear mashups,&#8230; Ya lo hicieron <a href="http://11870.com">11870</a>, <a href="http://www.nvivo.es/">nvivo</a>, <a href="http://bitacoras.com">bitacoras</a>,&#8230; y ahora le ha tocado el turno a <a href="http://www.minube.com">Minube</a>. Personalmente me parece estupendo, ya sabemos todos lo que nos enseñaron de pequeñitos, compartir es bueno.</p>
<p><a style="float:left; margin:0 5px 5px 0;" href="http://www.minube.com/api/"><img src="http://1.images.minube.com/minube_api_01.png" alt="Powered by Minube" title="Powered by Minube"  style="border:0px;vertical-align:bottom;" /></a>Pues aprovechando esta salida, y teniendo en cuenta que se me ha ocurrido una semi-idea para la que tal vez pueda usar esta API, he creado una clase en PHP para facilitar su manejo, <a href="http://www.berriart.com/minube-php/">Minube PHP</a>. Teniendo en cuenta que la idea puede no llegar  nada o quedarse aparcada como tantas otras cosas, he creido conveniente publicar la clase para que otros que si vayan a llevar a cabo las suyas se ahorren el trabajo.</p>
<p>Minube PHP: <a href="http://www.berriart.com/minube-php/">http://www.berriart.com/minube-php/</a></p>
<p>(Hace más de un mes que no escribía en el blog, soy un poco vago ¿verdad?)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2009/06/17/clase-php-api-minube/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dos maneras de crear esquinas redondeadas con CSS sin imágenes</title>
		<link>http://www.berriart.com/2009/03/31/esquinas-redondeadas-css-sin-imagenes/</link>
		<comments>http://www.berriart.com/2009/03/31/esquinas-redondeadas-css-sin-imagenes/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 17:37:23 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[esquinas]]></category>
		<category><![CDATA[redondeado]]></category>
		<category><![CDATA[trucos]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=179</guid>
		<description><![CDATA[Hay muchas maneras de crear esquinas redondeadas con CSS, lo de usar tablas para crear este efecto quedó obsoleto hace ya bastante tiempo. Pero además de utilizar CSS la mayoría de las veces también se usan imágenes para lograr las esquinas redondas. Personalmente prefiero no utilizarlas y ahorrarme ese momentito de carga de las imágenes. [...]]]></description>
			<content:encoded><![CDATA[<p>Hay muchas maneras de crear esquinas redondeadas con CSS, lo de usar tablas para crear este efecto quedó obsoleto hace ya bastante tiempo. Pero además de utilizar CSS la mayoría de las veces también se usan imágenes para lograr las esquinas redondas. Personalmente prefiero no utilizarlas y ahorrarme ese momentito de carga de las imágenes.</p>
<p>Os voy a contar los dos métodos que conozco y que he utilizado para hacerlo cuando lo he necesitado. El primero lo copié de un widget de <a href="http://bitacoras.com">bitacoras.com</a> (no me acuerdo cual) hace bastante tiempo. Es digamos bastante bruto, pero valida CSS, HTML y es compatible en casi cualquier navegador. </p>
<p><strong>Código:</strong></p>
<pre name="code" class="css">
&lt;style type=&quot;text/css&quot;&gt;
div#rounded-box1 {background:transparent;margin:2em auto;padding:0;width:400px;}
.rb4 {background:#d40000;margin:0 auto;padding:0;width:398px;height:3px;}
.rb3 {background:#d40000;margin:0 auto;padding:0;width:396px;height:2px;}
.rb2 {background:#d40000;margin:0 auto;padding:0;width:392px;height:1px;}
.rb1 {background:#d40000;margin:0 auto;padding:0;width:388px;height:1px;}
.rb-content {background:#d40000;margin:0 auto;padding:0;width:400px;}
.rb-content p {color:#fff;margin:0 10px;padding:0;}
&lt;/style&gt;
&lt;div id=&quot;rounded-box1&quot;&gt;
&lt;div class=&quot;rb1&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;rb2&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;rb3&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;rb4&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;rb-content&quot;&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam pede. Nulla eu
arcu sit amet neque ornare scelerisque. Nulla facilisi. Nam nunc lorem, bibendum ut,
volutpat quis, suscipit in, risus. Donec eget elit hendrerit erat commodo aliquam. Nulla
lacus tellus, accumsan vitae, condimentum non, fermentum eu, ligula.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;rb4&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;rb3&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;rb2&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;rb1&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
</pre>
<p><strong>Demo:</strong></p>
<style type="text/css">
div#rounded-box1 {background:transparent;margin:2em auto;padding:0;width:400px;}
.rb4 {background:#d40000;margin:0 auto;padding:0;width:398px;height:3px;}
.rb3 {background:#d40000;margin:0 auto;padding:0;width:396px;height:2px;}
.rb2 {background:#d40000;margin:0 auto;padding:0;width:392px;height:1px;}
.rb1 {background:#d40000;margin:0 auto;padding:0;width:388px;height:1px;}
.rb-content {background:#d40000;margin:0 auto;padding:0;width:400px;}
.rb-content p {color:#fff;margin:0 10px;padding:0;}
</style>
<div id="rounded-box1">
<div class="rb1"></div>
<div class="rb2"></div>
<div class="rb3"></div>
<div class="rb4"></div>
<div class="rb-content">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam pede. Nulla eu arcu sit amet neque ornare scelerisque. Nulla facilisi. Nam nunc lorem, bibendum ut, volutpat quis, suscipit in, risus. Donec eget elit hendrerit erat commodo aliquam. Nulla lacus tellus, accumsan vitae, condimentum non, fermentum eu, ligula.</p>
</div>
<div class="rb4"></div>
<div class="rb3"></div>
<div class="rb2"></div>
<div class="rb1"></div>
</div>
<p>La segunda opción es la que utilizo para los enlaces del menú superior del blog, está copiada del menú de <a href="http://www.smashingmagazine.com/">Smashing Magazine</a>, y es sin duda la opción que más me gusta. No es compatible con Internet Explorer 6, pero que queréis que os diga, ¡qué actualicen!</p>
<p><strong>Código:</strong></p>
<pre name="code" class="css">
&lt;style type=&quot;text/css&quot;&gt;
div#rounded-box2 {background:#d40000;margin:0 auto;padding:0;width:400px;border-radius:7px;-moz-border-radius: 7px; -webkit-border-radius : 7px;}
div#rounded-box2 p {margin:0;padding:10px;color:#fff;}
&lt;/style&gt;
&lt;div id=&quot;rounded-box2&quot;&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam pede. Nulla eu arcu
 sit amet neque ornare scelerisque. Nulla facilisi. Nam nunc lorem, bibendum ut, volutpat
quis, suscipit in, risus. Donec eget elit hendrerit erat commodo aliquam. Nulla lacus tellus,
accumsan vitae, condimentum non, fermentum eu, ligula.&lt;/p&gt;
&lt;/div&gt;
</pre>
<p><strong>Demo:</strong></p>
<style type="text/css">
div#rounded-box2 {background:#d40000;margin:0 auto;padding:0;width:400px;border-radius:7px;-moz-border-radius: 7px; -webkit-border-radius : 7px;}
div#rounded-box2 p {margin:0;padding:10px;color:#fff;}
</style>
<div id="rounded-box2">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam pede. Nulla eu arcu sit amet neque ornare scelerisque. Nulla facilisi. Nam nunc lorem, bibendum ut, volutpat quis, suscipit in, risus. Donec eget elit hendrerit erat commodo aliquam. Nulla lacus tellus, accumsan vitae, condimentum non, fermentum eu, ligula.</p>
</div>
<p>Como <em>bonus track</em>, os dejo <a href="http://www.fireandknowledge.org/archives/2004/05/22/rounded-corners-without-images-part-1/">esta otra manera</a>, que como poco resulta muy curiosa, en la que consiguen la redondez utilizando un <em>&amp;bull;</em> (&bull;) muy grande.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2009/03/31/esquinas-redondeadas-css-sin-imagenes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Usar funciones de WordPress externamente</title>
		<link>http://www.berriart.com/2009/02/11/usar-funciones-wordpress-externamente/</link>
		<comments>http://www.berriart.com/2009/02/11/usar-funciones-wordpress-externamente/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 23:47:57 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[funciones]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=416</guid>
		<description><![CDATA[En algún momento dado, tal vez hayáis querido crear una página para vuestro blog fuera de wordpress, pero pudiendo utilizar todas las funciones y funcionalidades del wordpress. Un ejemplo de ello podría ser crear un cron para que publique ciertos posts recogidos de un feed, o de una base de datos externa. Hacerlo es bastante [...]]]></description>
			<content:encoded><![CDATA[<p>En algún momento dado, tal vez hayáis querido crear una página para vuestro blog fuera de wordpress, pero pudiendo utilizar todas las funciones y funcionalidades del wordpress. Un ejemplo de ello podría ser crear un cron para que publique ciertos posts recogidos de un feed, o de una base de datos externa.</p>
<p>Hacerlo es bastante sencillo, solo tendréis que escribir las siguientes líneas al comienzo del script:</p>
<pre name="code" class="php">
&lt;?php

define('WP_USE_THEMES', false);	// A menos que vayas a usar el sistema de themes de wordpress
				// debes definir WP_USE_THEMES antes de hacer el require

// Al incluir este archivo, creamos la conexión a la BD y podremos hacer uso de las funciones
require('/ruta-al-directorio-del-wordpress/wp-blog-header.php');  

?&gt;
</pre>
<p>Hay que tener en cuenta que si vas a utlizarlo por consola o utilizando un cron, Apache no mandará las variables de servidor, así que seguramente tengas que forzarlas tú mismo antes de hacer el &#8216;require&#8217;, si usas WordPress MU tendrás que hacerlo sí o sí. Ej:</p>
<pre>$_SERVER['HTTP_HOST'] = 'www.berriart.com';
$_SERVER['REQUEST_URI'] = '/';</pre>
<p>Puede que algunas funciones no estén disponibles porque necesiten de algún archivo que no se incluya de manera normal en el WordPress. Por ejemplo si se quiere usar &#8216;fetch_rss&#8217; para parsear feeds, seguramente tengamos que incluir el archivo &#8216;rss.php&#8217; de la carpeta &#8216;wp-includes&#8217; porque éste solo se incluye por defecto en algunas páginas del administrador.</p>
<pre>include_once(ABSPATH . WPINC . '/rss.php');</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2009/02/11/usar-funciones-wordpress-externamente/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Crear un widget para el administrador de WordPress</title>
		<link>http://www.berriart.com/2009/02/01/crear-widget-administrador-wordpress/</link>
		<comments>http://www.berriart.com/2009/02/01/crear-widget-administrador-wordpress/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 20:13:55 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=406</guid>
		<description><![CDATA[Hace poco he actualizado los dos widgets para el panel de administración -o dashboard- de WordPress que he creado (Meet your commenters y Berri Technorati Reactions on Dashboard), y lo he hecho más que nada porque la forma de añadir estos widgets cambió en WordPress 2.7 y el método que usaba yo ya no valía. [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco he actualizado los dos widgets para el panel de administración -o <em>dashboard</em>- de WordPress que he creado (<a href="http://www.berriart.com/meet-your-commenters/">Meet your commenters</a> y <a href="http://www.berriart.com/technorati-reactions-dashboard-plugin/">Berri Technorati Reactions on Dashboard</a>), y lo he hecho más que nada porque la forma de añadir estos widgets cambió en WordPress 2.7 y el método que usaba yo ya no valía. Así que aprovecho y os cuento como se hace.</p>
<p>Realmente esos widgets, al igual que los de las barras laterales, son plugins de wordpress  por lo tanto lo que tenemos que hacer es un plugin que luego subiremos a su correspondiente carpeta y activaremos en el panel de administración. Además, podremos activar, desactivar o mover ese panel que crearemos para el dashboard, tal como se puede hacer con los que vienen por defecto. Nada mejor que un ejemplo y un poco de código para explicar como hacerlo:</p>
<pre name="code" class="php">
&lt;?php
/*

Plugin Name: Sample Dashboard Widget

Plugin URI: http://www.berriart.com/

Description: Sample code for creating a dashboard widget 

Author: Alberto Varela

Version: 1.0

Author URI: http://www.berriart.com
*/

// Función para mostrar el contenido del widget
function sampledashboardwidget_main_function() {
	echo "Hello World";
}

// Utilizamos la función wp_add_dashboard_widget para añadir el
// widget al panel
function sampledashboardwidget_register_dashboard_widget() {
	wp_add_dashboard_widget('sampledashboardwidget', // ID único del widget
	'Sample Dashboard Widget', // Título para el widget
	'sampledashboardwidget_main_function', // Función principal del wiget
	'sampledashboardwidget_setup');	// Este último parámetro es opcional y solo lo usaremos
					// en caso de necesitar una página de opciones, en ese
					// caso pondremos la función que corresponda
}

// Añadir finalmente el widget mediante el sistema 'hooks' de WordPress
add_action('wp_dashboard_setup', 'sampledashboardwidget_register_dashboard_widget');

// Si se quiere hacer por ejemplo una página de administración, al estilo del widget 'stats',
// podemos añadirla mediante el cuarto parametro de la función 'wp_add_dashboard_widget'
function sampledashboardwidget_setup() {
	if( isset($_POST['sdw_option']) ) do_something();
	echo '&lt;form&gt;&lt;input type="text" name="sdw_option" /&gt;&lt;input type="submit" /&gt;&lt;/form&gt;';
}

?&gt;
</pre>
<p>Creo que no hace falta dar muchas más explicaciones y con esto como inicio cualquiera que se anime y tenga una idea puede crear un nuevo widget para el dashboard. Por cierto, yo no sabía que se podía agregar una página de opciones al widget, pero <a href="http://rick.jinlabs.com/2009/02/01/how-add-options-to-your-wordpress-27-dashboard-widgets/">el otro día Rick me iluminó</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2009/02/01/crear-widget-administrador-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Otro widget compatible con WordPress 2.7</title>
		<link>http://www.berriart.com/2009/01/30/otro-widget-compatible-con-wordpress-27/</link>
		<comments>http://www.berriart.com/2009/01/30/otro-widget-compatible-con-wordpress-27/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 00:25:45 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[incoming links]]></category>
		<category><![CDATA[technorati]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[wordpress 2.7]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=404</guid>
		<description><![CDATA[Siguiendo con lo prometido, voy actualizando mis plugins y adecuándolos al nuevo WordPress 2.7. La siguiente víctima ha sido el widget Berri Technorati Reactions on Dashboard -menudo nombre largo que le puse- que ahora ya se puede usar sin problemas en WordPress 2.7. Le he agregado el texto con el que nos enlazan, los favicons [...]]]></description>
			<content:encoded><![CDATA[<p>Siguiendo con <a href="http://www.berriart.com/2008/12/31/mis-objetivos-para-el-2009/">lo prometido</a>, voy actualizando mis plugins y adecuándolos al nuevo WordPress 2.7. La siguiente víctima ha sido el widget <a href="http://www.berriart.com/technorati-reactions-dashboard-plugin/">Berri Technorati Reactions on Dashboard</a> -menudo nombre largo que le puse- que ahora ya se puede usar sin problemas en WordPress 2.7. Le he agregado el texto con el que nos enlazan, los favicons de los blogs y el total de &#8216;blog reactions&#8217; que tenemos. Tres tonterías, pero ya que estaba y como no me constaba mucho, se lo he puesto.</p>
<p><img style="margin:auto;display:block;" src="http://www.berriart.com/imagenes/berri-technorati-reactions.png" alt="Screenshot" /></p>
<p>Así es como quedará en el panel de tu WordPress y podrás ver quienes son los últimos que te han enlazado. Como ya dije en su día, prefiero las &#8216;technorati reactions&#8217; a los &#8216;incoming links&#8217; de Google que vienen por defecto desde la versión 2.3, hay muchos enlaces que Google no ve o no muestra.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2009/01/30/otro-widget-compatible-con-wordpress-27/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Meet Your Commenters compatible con WordPress 2.7</title>
		<link>http://www.berriart.com/2009/01/22/meet-your-commenters-compatible-con-wordpress-27/</link>
		<comments>http://www.berriart.com/2009/01/22/meet-your-commenters-compatible-con-wordpress-27/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 00:21:25 +0000</pubDate>
		<dc:creator>artberri</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[actualización]]></category>
		<category><![CDATA[comentarios]]></category>
		<category><![CDATA[perfiles]]></category>

		<guid isPermaLink="false">http://www.berriart.com/?p=383</guid>
		<description><![CDATA[Intentando empezar a cumplir mis objetivos para 2009 he actualizado el plugin Meet Your Commenters para que lo podáis usar también con el WordPress 2.7. La verdad que debería haberlo hecho antes porque es una de las páginas más visitadas de este blog y uno de los plugins que más se descargan de los que [...]]]></description>
			<content:encoded><![CDATA[<p>Intentando empezar a cumplir<a href="http://www.berriart.com/2008/12/31/mis-objetivos-para-el-2009/"> mis objetivos para 2009</a> he actualizado el plugin <a href="http://www.berriart.com/meet-your-commenters/">Meet Your Commenters</a> para que lo podáis usar también con el WordPress 2.7. </p>
<p>La verdad que debería haberlo hecho antes porque es una de las páginas más visitadas de este blog y uno de los plugins que más se descargan de los que he hecho. Por sino sabéis de que va, se trata de un <em>widget</em> para el panel de administración que te muestra los perfiles en redes sociales y las webs de la gente que te comenta. Sino lo habéis usado nunca os recomiendo que al menos lo probéis, es una buena manera de conocer a la gente que comenta en tu blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.berriart.com/2009/01/22/meet-your-commenters-compatible-con-wordpress-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
