<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:series="http://unfoldingneurons.com/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>yukei.net</title>
	
	<link>http://www.yukei.net</link>
	<description>técnica y análisis para un mundo digital</description>
	<lastBuildDate>Thu, 31 May 2012 02:58:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/yukei/articulos-mas-links" /><feedburner:info uri="yukei/articulos-mas-links" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://creativecommons.org/licenses/by-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><item>
		<title>Entregar el control de Internet a la ONU no es tan buena idea</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/aK-G5UI4pJQ/</link>
		<comments>http://www.yukei.net/2012/05/control-internet-onu-mala-idea/#comments</comments>
		<pubDate>Thu, 31 May 2012 02:58:19 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[Estrategia]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[política]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1775</guid>
		<description>A todos nos ha pasado: una idea que por un momento suena brillante, pero que al pensarlo más detenidamente empieza a revelar que no es simplemente inadecuada, sino simplemente mala&amp;#8230; eso sucede con la idea de que un organismo de la ONU se haga cargo del gobierno de Internet, la que ya ha sido criticada [...]</description>
			<content:encoded><![CDATA[<p>A todos nos ha pasado: una idea que por un momento suena brillante, pero que al pensarlo más detenidamente empieza a revelar que no es simplemente inadecuada, sino simplemente mala&#8230; eso sucede con la idea de <a href="http://thehill.com/blogs/hillicon-valley/technology/229653-house-to-examine-plan-to-let-un-regulate-internet" title="House to examine plan for United Nations to regulate the Internet">que un organismo de la ONU se haga cargo del gobierno de Internet</a>, la que <a href="http://www.nytimes.com/2012/05/25/opinion/keep-the-internet-open.html?_r=1" title="Keep the Internet Open - NYTimes">ya ha sido criticada por Vinton Cerf</a> (uno de los padres de la red) y hasta <a href="http://www.zdnet.com/blog/btl/putting-the-united-nations-in-charge-of-the-internet-is-the-best-idea-ever/78380" title="Putting the United Nations in charge of the Internet is the best idea ever | ZDNet">ironizada</a>&#8230; aunque lamentablemente, tampoco hay nadie que de una alternativa seria al control que EEUU mantiene sobre la red.</p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/internet/" title="Internet" rel="tag">Internet</a>, <a href="http://www.yukei.net/tag/politica/" title="política" rel="tag">política</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2011/03/la-desilusion-de-la-red/" title="La des/ilusión de la red (12 marzo, 2011)">La des/ilusión de la red</a> (0)</li>
	<li><a href="http://www.yukei.net/2010/07/evgeny-morozov-como-la-red-ayuda-a-las-dictaduras/" title="Evgeny Morozov: Cómo la red ayuda a las dictaduras (1 julio, 2010)">Evgeny Morozov: Cómo la red ayuda a las dictaduras</a> (2)</li>
	<li><a href="http://www.yukei.net/2008/02/analisis-patrocinado-tiendas-virtuales-de-laprimeranet/" title="[Análisis patrocinado] Tiendas Virtuales de laprimera.net (11 febrero, 2008)">[Análisis patrocinado] Tiendas Virtuales de laprimera.net</a> (0)</li>
	<li><a href="http://www.yukei.net/2006/05/youtube-al-limite/" title="YouTube al límite (4 mayo, 2006)">YouTube al límite</a> (0)</li>
	<li><a href="http://www.yukei.net/2006/07/xubuntu-iv-compartir-internet/" title="Xubuntu (IV): Compartir Internet (25 julio, 2006)">Xubuntu (IV): Compartir Internet</a> (2)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=aK-G5UI4pJQ:3stXqZ6x5ss:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=aK-G5UI4pJQ:3stXqZ6x5ss:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=aK-G5UI4pJQ:3stXqZ6x5ss:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2012/05/control-internet-onu-mala-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2012/05/control-internet-onu-mala-idea/</feedburner:origLink></item>
		<item>
		<title>Snippet: generar fácilmente un archivo CSV con PHP</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/MxOBVykhVvQ/</link>
		<comments>http://www.yukei.net/2012/05/generar-csv-php-facilmente/#comments</comments>
		<pubDate>Wed, 30 May 2012 02:37:00 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1770</guid>
		<description>Generar un archivo CSV es una de esas tareas que probablemente a todos nos ha tocado hacer, y aun más probable es que nos terminemos ahogando en un vaso de agua cuando en realidad es algo bastante simple. No es necesario preocuparnos por tener que escapar caracteres ni escribir demasiado código, ya que a partir [...]</description>
			<content:encoded><![CDATA[<p>Generar un archivo CSV es una de esas tareas que probablemente a todos nos ha tocado hacer, y aun más probable es que nos terminemos ahogando en un vaso de agua cuando en realidad es algo bastante simple.</p>
<p>No es necesario preocuparnos por tener que escapar caracteres ni escribir demasiado código, ya que a partir de PHP 5.1.0 contamos con la función <code>fputcsv()</code> que se ocupa de prácticamente todo. Un ejemplo sencillo para generar un archivo descargable a partir de una consulta cualquiera a una base de datos:</p>
<p><script src="https://gist.github.com/2789263.js?file=csv_export.php"></script></p>
<p>La función recibe dos parámetros: un archivo (abierto con <code>fopen()</code>) y un array de valores. En el ejemplo, se muestra una forma de generar un archivo CSV descargable a partir de una consulta a la base de datos (utilizando la clase <code>wpdb</code> de WordPress, aunque obviamente podría aplicar para cualquier otro caso).</p>
<p>Por supuesto, también existe la función complementaria para <em>leer</em> un archivo CSV, <code>fgetcsv()</code>.</p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/csv/" title="csv" rel="tag">csv</a>, <a href="http://www.yukei.net/tag/php/" title="php" rel="tag">php</a>, <a href="http://www.yukei.net/tag/programacion/" title="programación" rel="tag">programación</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2011/04/wordpress-tips-utiliza-el-parametro-action-para-determinar-la-accion-que-estas-realizando/" title="WordPress Tips: Utiliza el parámetro action para determinar la acción que estás realizando (25 abril, 2011)">WordPress Tips: Utiliza el parámetro action para determinar la acción que estás realizando</a> (1)</li>
	<li><a href="http://www.yukei.net/2011/06/parametros-variables-en-funciones-wordpress-con-wp_parse_args/" title="Usa parámetros variables en tus funciones con wp_parse_args (WordPress Tips) (1 junio, 2011)">Usa parámetros variables en tus funciones con wp_parse_args (WordPress Tips)</a> (0)</li>
	<li><a href="http://www.yukei.net/2011/08/trabajando-con-datos-serializados-en-wordpress/" title="Trabajando con datos serializados en WordPress (23 agosto, 2011)">Trabajando con datos serializados en WordPress</a> (3)</li>
	<li><a href="http://www.yukei.net/2007/10/php-te-facilita-la-vida/" title="PHP te facilita la vida (25 octubre, 2007)">PHP te facilita la vida</a> (6)</li>
	<li><a href="http://www.yukei.net/2007/09/manuales-de-php/" title="Manuales de PHP (19 septiembre, 2007)">Manuales de PHP</a> (7)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=MxOBVykhVvQ:tFwiBXr5oeg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=MxOBVykhVvQ:tFwiBXr5oeg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=MxOBVykhVvQ:tFwiBXr5oeg:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2012/05/generar-csv-php-facilmente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2012/05/generar-csv-php-facilmente/</feedburner:origLink></item>
		<item><title>Links for 2012-05-22 [del.icio.us]</title><link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/_Z_gYN5PLVA/felipelavinz</link><pubDate>Wed, 23 May 2012 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/felipelavinz#2012-05-22</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://lostechies.com/derickbailey/2012/05/22/function%E2%80%A6-vs-function%E2%80%A6-or-domready-vs-the-module-pattern/"&gt;$(function(){&amp;hellip;}) vs (function($){&amp;hellip;})($) or DOMReady vs The Module Pattern | ThoughtStream.new :derick_bailey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/felipelavinz#2012-05-22</feedburner:origLink></item><item><title>Links for 2012-05-11 [del.icio.us]</title><link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/dYyFIzaHzpE/felipelavinz</link><pubDate>Sat, 12 May 2012 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/felipelavinz#2012-05-11</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.tsunanet.net/2007/07/learning-git-svn-in-5min.html"&gt;Tsuna's blog: Learning git-svn in 5min&lt;/a&gt;&lt;br/&gt;
You are a SVN user and you don't have time to learn new things, here is a 5min course to get started with Git and git-svn.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.tsunanet.net/2007/07/learning-git-svn-in-5min.html"&gt;Tsuna's blog: Learning git-svn in 5min&lt;/a&gt;&lt;br/&gt;
You are a SVN user and you don't have time to learn new things, here is a 5min course to get started with Git and git-svn.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://javisantana.github.com/slides/git-svn/#1"&gt;Git SVN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/felipelavinz#2012-05-11</feedburner:origLink></item><item><title>Links for 2012-04-25 [del.icio.us]</title><link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/93pxNFM3ios/felipelavinz</link><pubDate>Thu, 26 Apr 2012 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/felipelavinz#2012-04-25</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.webupd8.org/2012/02/android-x86-40-rc1-released-android-ice.html"&gt;Android-x86 4.0 RC1 Released (Android Ice Cream Sandwich Optimized For Netbooks / Laptops) ~ Web Upd8: Ubuntu / Linux blog&lt;/a&gt;&lt;br/&gt;
Android-x86 is a project that provides Android support for x86, making it easy to install it on netbooks or laptops. You can use it like any other Android 4.0 Ice Cream Sandwich device: install applications from the Android Market, add widgets and so on.&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/felipelavinz#2012-04-25</feedburner:origLink></item><item>
		<title>Por qué y cómo implementar un nombre de dominio canónico</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/l7Q8VDXKaJg/</link>
		<comments>http://www.yukei.net/2012/04/por-que-como-nombre-dominio-canonico/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 11:30:49 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1731</guid>
		<description>Es bastante frecuente que un cliente tenga el registro de más de un nombre de dominio para su sitio web, así como también que desee que su sitio esté accesible a través de cualquiera de sus dominios&amp;#8230; sin embargo, disponibilizar el mismo contenido a través de distintas URL no es una buena idea, sino que [...]</description>
			<content:encoded><![CDATA[<p>Es bastante frecuente que un cliente tenga el registro de más de un nombre de dominio para su sitio web, así como también que desee que su sitio esté accesible a través de cualquiera de sus dominios&#8230; sin embargo, disponibilizar el mismo contenido a través de distintas URL <em>no es una buena idea</em>, sino que siempre debemos preferir <strong>configurar un dominio como el principal.</strong></p>
<p>A continuación, por qué es preferible utilizar solamente un dominio para tu sitio, y cómo configurarlo en distintos servidores web.</p>
<p><span id="more-1731"></span></p>
<h3>¿Por qué se debe utilizar <em>un</em> dominio como el principal?</h3>
<h4>Porque a Google no le gusta ver el mismo contenido en dos direcciones distintas</h4>
<p>La razón que probablemente resulta más convincente a estas alturas es simplemente que utilizar más de una URL para mostrar el mismo contenido significa una penalización en los resultados de buscadores&#8230; sí, por supuesto eso significa que tu sitio va a salir más abajo si puedes ver lo mismo en <code>http://www.dominio.com/noticia/</code> que en <code>http://www.otro-dominio.com/noticia</code>. En otras palabras: mantener tu sitio con más de un dominio es pésimo para tu SEO.</p>
<p>Hasta han inventado un nombre para convencerte de que uses sólo <strong>una URL</strong> para tus contenidos: la dirección &#8220;principal&#8221; es llamada <strong>URL canónica</strong>&#8230; ésa es la que importa y el resto ¡meh!</p>
<p>Por cierto, esto no aplica solamente cuando los dominios son radicalmente distintos, sino también cuando una opción es <code>www.dominio.com</code> y la otra <code>dominio.com</code>&#8230; <strong>con www, o sin www, debes elegir una</strong>.</p>
<h4>Porque las peticiones AJAX entre distintos dominios no funcionan</h4>
<p>&#8230; o al menos habría que decir &#8220;no funcionan del mismo modo que una petición AJAX hecha en el mismo dominio&#8221;. </p>
<p>Esto sucede ya que por seguridad los navegadores restringen las peticiones AJAX a un mismo dominio, y aunque existen formas de saltarse esta medida (en particular, <a href="http://www.funcion13.com/2012/04/12/como-realizar-peticiones-ajax-cross-domain-jsonp-jquery/" title="Cómo realizar peticiones AJAX cross-domain usando JSONP y jQuery">implementar llamadas JSONP</a>), considerarla dentro del desarrollo del proyecto va a agregar una complejidad que de otro modo es innecesaria&#8230; por supuesto que se puede considerar, pero agrega tiempo y ya se sabe, tiempo es dinero</p>
<h4>Porque algunas de las fuentes utilizadas con font-face se restringen a un dominio</h4>
<p>Esto también tiene sus grises: no son todas las fuentes, ni es en todos los navegadores.</p>
<p>Si utilizas solamente las <a href="http://www.google.com/webfonts" title="Google Web Fonts">fuentes disponibilizadas por Google</a>, no tendrás problema pues sus fuentes no tienen restricciones por dominios.</p>
<p>Sin embargo, si tu diseño considera la utilización de otras tipografías como <code>font-face</code> y debes servirlas desde tu propio servicio, lo más probable es que el archivo de la fuente incorpore una protección (para evitar el hot-linking de fuentes sin autorización), que causará que en algunos navegadores la tipografía se muestre correctamente y en otros no:</p>
<p><a href="http://static.yukei.net/wp-content/uploads/2012/04/yukei-restriccion-font-face.opt_.png"><img src="http://static.yukei.net/wp-content/uploads/2012/04/yukei-restriccion-font-face.opt_-500x172.png" alt="" title="Restricción de font-face" width="500" height="172" class="alignnone size-medium wp-image-1740" /></a></p>
<p>&#8230; y cuando digo &#8220;algunos navegadores&#8221;, me refiero a&#8230; ¡no, no es Explorer! En realidad, el único que incorpora esta restricción es Firefox&#8230; pero claro, a estas alturas no lo usan sólo un par de geeks, por lo que no es muy sabio no considerarlo.</p>
<h3>¿Cómo implementar redirecciones para usar dominios canónicos?</h3>
<p>Afortunadamente, implementar la configuración necesaria para utiliza un dominio canónico es relativamente sencillo de ejecutar en los servidores web más usados. Debemos considerar lo siguiente:</p>
<ul>
<li>La redirección debe ser <strong>transparente al usuario</strong>: si intenta acceder a <code>dominio.com/noticias/lorem-ipsum-dolor-sit-amet/</code> y has preferido la versión &#8220;con www&#8221; de tu dominio, le debe llevar automáticamente a <code>www.dominio.com/noticias/lorem-ipsum-dolor-sit-amet/</code> (¡no redirigir todas las direcciones bajo los dominios alternativos a la raíz del sitio!)</li>
<li>La redirección debe ser <strong>clara para los buscadores</strong>, lo que conseguimos enviando una respuesta HTTP con código <code>301 Permanent Redirect</code>, es decir, indicando la URL canónica como definitiva</li>
</ul>
<p>Veamos algunos ejemplos, considerando que nuestra URL canónica será <strong>www.domain.com</strong>:</p>
<p><script src="https://gist.github.com/1780150.js"> </script></p>
<p>&#8230; por supuesto, en cada caso debemos cerciorarnos que los módulos necesarios estén activados.</p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/apache/" title="apache" rel="tag">apache</a>, <a href="http://www.yukei.net/tag/lighttpd/" title="lighttpd" rel="tag">lighttpd</a>, <a href="http://www.yukei.net/tag/nginx/" title="nginx" rel="tag">nginx</a>, <a href="http://www.yukei.net/tag/seo/" title="seo" rel="tag">seo</a>, <a href="http://www.yukei.net/tag/servidores/" title="servidores" rel="tag">servidores</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2009/04/vps-local-con-ubuntu-y-virtualbox/" title="VPS local con Ubuntu y VirtualBox (12 abril, 2009)">VPS local con Ubuntu y VirtualBox</a> (6)</li>
	<li><a href="http://www.yukei.net/2008/11/tres-trucos-para-ojs/" title="Tres trucos para OJS (9 noviembre, 2008)">Tres trucos para OJS</a> (5)</li>
	<li><a href="http://www.yukei.net/2010/02/soporte-para-imagemagick-en-php-con-lampp/" title="Soporte para ImageMagick en PHP con LAMPP (9 febrero, 2010)">Soporte para ImageMagick en PHP con LAMPP</a> (1)</li>
	<li><a href="http://www.yukei.net/2007/05/proximamente-en-wordpress-numeracion-inversa-de-paginas/" title="Próximamente en WordPress: numeración inversa de páginas (30 mayo, 2007)">Próximamente en WordPress: numeración inversa de páginas</a> (1)</li>
	<li><a href="http://www.yukei.net/2008/09/intentando-montar-un-vps/" title="Intentando montar un VPS (16 septiembre, 2008)">Intentando montar un VPS</a> (4)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=l7Q8VDXKaJg:bQWen6yrukY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=l7Q8VDXKaJg:bQWen6yrukY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=l7Q8VDXKaJg:bQWen6yrukY:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2012/04/por-que-como-nombre-dominio-canonico/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2012/04/por-que-como-nombre-dominio-canonico/</feedburner:origLink></item>
		<item><title>Links for 2012-04-11 [del.icio.us]</title><link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/GqxUclHcHk4/felipelavinz</link><pubDate>Thu, 12 Apr 2012 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/felipelavinz#2012-04-11</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.metaltoad.com/blog/simple-device-diagram-responsive-design-planning"&gt;A Simple Device Diagram for Responsive Design Planning | Metal Toad Media&lt;/a&gt;&lt;br/&gt;
There are an ever-increasing number of devices with different screen resolutions to take into account with a responsive design, so we put together a simple but handy diagram that lists the most common device widths as of the present, along with overlays for potential device width ranges. A big shout out to creative partner Sisu for the inspiration to put this together.&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/felipelavinz#2012-04-11</feedburner:origLink></item><item><title>Links for 2012-04-05 [del.icio.us]</title><link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/m5RHvhJcnmQ/felipelavinz</link><pubDate>Fri, 06 Apr 2012 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/felipelavinz#2012-04-05</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://thejit.org/"&gt;JavaScript InfoVis Toolkit&lt;/a&gt;&lt;br/&gt;
" The JavaScript InfoVis Toolkit provides tools for creating Interactive Data Visualizations for the Web. "&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/felipelavinz#2012-04-05</feedburner:origLink></item><item><title>Links for 2012-04-04 [del.icio.us]</title><link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/C6zRA2cibnk/felipelavinz</link><pubDate>Thu, 05 Apr 2012 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/felipelavinz#2012-04-04</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.gov.uk/designprinciples"&gt;GDS design principles&lt;/a&gt;&lt;br/&gt;
Government Digital Service
Design Principles
Listed below are our design principles and examples of how we've used them so far. These build on, and add to, our original 7 digital principles.
1Start with needs*
2Do less
3Design with data
4Do the hard work to make it simple
5Iterate. Then iterate again.
6Build for inclusion
7Understand context
8Build digital services, not websites
9Be consistent, not uniform
10Make things open: it makes things better&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/felipelavinz#2012-04-04</feedburner:origLink></item><item><title>Links for 2012-03-28 [del.icio.us]</title><link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/opLB7iNiu0U/felipelavinz</link><pubDate>Thu, 29 Mar 2012 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/felipelavinz#2012-03-28</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://tst.udd.cl/wp-admin/edit-tags.php?action=edit"&gt;Editar Categor&amp;iacute;a &amp;lsaquo; Universidad del Desarrollo &amp;mdash; WordPress&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/felipelavinz#2012-03-28</feedburner:origLink></item><item>
		<title>E-book gratuito sobre WordPress y AJAX</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/jewDdZUQfz8/</link>
		<comments>http://www.yukei.net/2012/03/bajar-ebook-gratis-wordpress-ajax/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 23:49:23 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[descargas]]></category>
		<category><![CDATA[e-book]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1720</guid>
		<description>Hace algunos días me tropecé con un e-book que ofrece una introducción bastante completa al trabajo con AJAX sobre WordPress, adecuadamente titulado WordPress &amp;#38; AJAX. An in-depth guide on using Ajax with WordPress, que se puede descargar gratuitamente en su totalidad, junto con sus ejemplos de código. El libro se enfoca en lograr una buena [...]</description>
			<content:encoded><![CDATA[<p>Hace algunos días me tropecé con un e-book que ofrece una introducción bastante completa al trabajo con AJAX sobre WordPress, adecuadamente titulado <a hreflang="en" href="http://wpajax.com/" title="WordPress &amp; AJAX. An in-depth guide on using Ajax with WordPress">WordPress &amp; AJAX. An in-depth guide on using Ajax with WordPress</a>, que se puede <a href="http://wpajax.com/download" title="Descarga gratuita del libro">descargar gratuitamente en su totalidad</a>, junto con sus ejemplos de código.</p>
<p>El libro se enfoca en lograr una buena base y fomentar buenas prácticas en el desarrollo plugins o funcionalidades con AJAX, y a partir de eso plantea el análisis de tres plugins. Si bien sus explicaciones son bastante detalladas, es necesario tener un conocimiento básico de javascript y WordPress, y algo más acabado de PHP.</p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://www.yukei.net/tag/descargas/" title="descargas" rel="tag">descargas</a>, <a href="http://www.yukei.net/tag/e-book/" title="e-book" rel="tag">e-book</a>, <a href="http://www.yukei.net/tag/javascript/" title="javascript" rel="tag">javascript</a>, <a href="http://www.yukei.net/tag/programacion/" title="programación" rel="tag">programación</a>, <a href="http://www.yukei.net/tag/wordpress/" title="WordPress" rel="tag">WordPress</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2011/04/wordpress-tips-utiliza-el-parametro-action-para-determinar-la-accion-que-estas-realizando/" title="WordPress Tips: Utiliza el parámetro action para determinar la acción que estás realizando (25 abril, 2011)">WordPress Tips: Utiliza el parámetro action para determinar la acción que estás realizando</a> (1)</li>
	<li><a href="http://www.yukei.net/2011/06/parametros-variables-en-funciones-wordpress-con-wp_parse_args/" title="Usa parámetros variables en tus funciones con wp_parse_args (WordPress Tips) (1 junio, 2011)">Usa parámetros variables en tus funciones con wp_parse_args (WordPress Tips)</a> (0)</li>
	<li><a href="http://www.yukei.net/2010/05/tres-usos-para-jquery-extend/" title="Tres usos para jQuery.extend() (18 mayo, 2010)">Tres usos para jQuery.extend()</a> (1)</li>
	<li><a href="http://www.yukei.net/2010/06/trabajar-con-fechas-en-javascript/" title="Trabajar con fechas en Javascript (12 junio, 2010)">Trabajar con fechas en Javascript</a> (2)</li>
	<li><a href="http://www.yukei.net/2011/08/trabajando-con-datos-serializados-en-wordpress/" title="Trabajando con datos serializados en WordPress (23 agosto, 2011)">Trabajando con datos serializados en WordPress</a> (3)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=jewDdZUQfz8:354NQczKGBU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=jewDdZUQfz8:354NQczKGBU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=jewDdZUQfz8:354NQczKGBU:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2012/03/bajar-ebook-gratis-wordpress-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2012/03/bajar-ebook-gratis-wordpress-ajax/</feedburner:origLink></item>
		<item>
		<title>De políticas de privacidad y burbujas de búsqueda</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/SI1hCezIbk4/</link>
		<comments>http://www.yukei.net/2012/03/de-politicas-de-privacidad-y-burbujas-de-busqueda/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 11:31:31 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[Estrategia]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[cultura digital]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[privacidad]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1706</guid>
		<description>A una semana desde que Google comenzara a aplicar su nueva política de privacidad, y aunque a primera vista pareciera que estos cambios no alteran fundamentalmente nuestro trato con el buscador, probablemente recién estamos en la víspera de las transformaciones más profundas. Al respecto, la semana pasada comentaban en TheNextWeb sobre las implicancias que estos [...]</description>
			<content:encoded><![CDATA[<p><img src="http://static.yukei.net/wp-content/uploads/2012/03/bubble-filter.png" alt="" title="Filter Bubble" width="529" height="282" class="aligncenter size-full wp-image-1716" /></p>
<p>A una semana desde que Google comenzara a aplicar su <a href="http://www.google.com/intl/es-419/policies/" title="Google Policies &amp; Principles">nueva política de privacidad</a>, y aunque a primera vista pareciera que <a href="http://www.google.com/intl/es-419/policies/faq/" title="Preguntas Frecuentes sobre la política de privacidad en Google">estos cambios</a> no alteran fundamentalmente nuestro trato con el buscador, probablemente recién estamos en la víspera de las transformaciones más profundas.</p>
<p>Al respecto, la semana pasada comentaban en TheNextWeb sobre las implicancias que estos cambios tendrían en nuestros procesos de búsqueda: <a href="http://thenextweb.com/google/2012/03/01/an-information-paradox-how-googles-new-privacy-policy-may-harm-our-discovery-process/" title="An information paradox: How Google’s new privacy policy may harm our discovery process">An information paradox: How Google’s new privacy policy may harm our discovery process</a>.</p>
<blockquote><p>There’s really nothing we can do. Google is going to change its privacy policy and we’re going to keep using its products. Simply because it’s incredible and addicting to have so much information pouring out of a screen. Google has us by the proverbial (digital) balls. But in a very short while it’s going to be essential we become more responsible searchers, more savvy web surfers. Interneters that actively search for things they disagree with and Googlers that get to the fifth page of their search results. Because soon the world’s information will be filtered through the habits and dependencies of the most biased, unforgiving and scary editor of all: ourselves.</p></blockquote>
<p>Y en el mismo tema, vale la pena recordar la presentación que <cite>Eli Pariser</cite> dio en TED en marzo pasado: <a href="http://www.ted.com/talks/lang/es/eli_pariser_beware_online_filter_bubbles.html" title="Eli Pariser: cuidado con la "burbuja de filtros" en la red | Video en TED.com">cuidado con la &#8220;burbuja de filtros&#8221; en la red</a></p>
<p><object width="526" height="374"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talk/stream/2011/Blank/EliPariser_2011-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/EliPariser-2011.embed_thumbnail.jpg&#038;vw=512&#038;vh=288&#038;ap=0&#038;ti=1091&#038;lang=es&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=eli_pariser_beware_online_filter_bubbles;year=2011;theme=what_s_next_in_tech;theme=bold_predictions_stern_warnings;event=TED2011;tag=culture;tag=global+issues;tag=journalism;tag=politics;tag=technology;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="526" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2011/Blank/EliPariser_2011-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/EliPariser-2011.embed_thumbnail.jpg&#038;vw=512&#038;vh=288&#038;ap=0&#038;ti=1091&#038;lang=es&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=eli_pariser_beware_online_filter_bubbles;year=2011;theme=what_s_next_in_tech;theme=bold_predictions_stern_warnings;event=TED2011;tag=culture;tag=global+issues;tag=journalism;tag=politics;tag=technology;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></embed></object></p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/cultura-digital/" title="cultura digital" rel="tag">cultura digital</a>, <a href="http://www.yukei.net/tag/google/" title="Google" rel="tag">Google</a>, <a href="http://www.yukei.net/tag/privacidad/" title="privacidad" rel="tag">privacidad</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2007/09/wordpress-23-y-las-preocupaciones-por-la-privacidad/" title="WordPress 2.3 y las preocupaciones por la privacidad (25 septiembre, 2007)">WordPress 2.3 y las preocupaciones por la privacidad</a> (3)</li>
	<li><a href="http://www.yukei.net/2008/12/tareas/" title="Tareas (10 diciembre, 2008)">Tareas</a> (1)</li>
	<li><a href="http://www.yukei.net/2004/02/sin-querer-queriendo/" title="Sin querer queriendo (23 febrero, 2004)">Sin querer queriendo</a> (0)</li>
	<li><a href="http://www.yukei.net/2012/01/mejorando-la-privacidad-en-bittorrent/" title="Mejorando la privacidad en BitTorrent (31 enero, 2012)">Mejorando la privacidad en BitTorrent</a> (1)</li>
	<li><a href="http://www.yukei.net/2010/05/jeff-jarvis-en-tedx/" title="Jeff Jarvis en TEDx (3 mayo, 2010)">Jeff Jarvis en TEDx</a> (1)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=SI1hCezIbk4:3oz2IaDRdNs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=SI1hCezIbk4:3oz2IaDRdNs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=SI1hCezIbk4:3oz2IaDRdNs:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2012/03/de-politicas-de-privacidad-y-burbujas-de-busqueda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2012/03/de-politicas-de-privacidad-y-burbujas-de-busqueda/</feedburner:origLink></item>
		<item>
		<title>Detectar dispositivos móviles fácilmente con PHP</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/PkMN0j0f5iI/</link>
		<comments>http://www.yukei.net/2012/02/detectar-dispositivos-moviles-facilmente-con-php/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 11:15:33 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[móviles]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1692</guid>
		<description>Si bien existen mil formas de detectar dispositivos móviles, a veces necesitamos algo más sencillo y rápido de implementar, que nos permita diferenciar fácilmente entre las plataformas móviles más populares.. php-mobile-detect es una clase en PHP para detectar las plataformas móviles más importantes: Android, iOS, BlackBerry, Opera Mini, Palm, Windows Mobile y móviles genéricos. Además, [...]</description>
			<content:encoded><![CDATA[<p>Si bien existen mil formas de detectar dispositivos móviles, a veces necesitamos algo más sencillo y rápido de implementar, que nos permita <strong>diferenciar fácilmente entre las plataformas móviles más populares.</strong>.</p>
<p><a href="http://code.google.com/p/php-mobile-detect/" title="php-mobile-detect - PHP class for mobile device detection">php-mobile-detect</a> es una clase en PHP para detectar las plataformas móviles más importantes: Android, iOS, BlackBerry, Opera Mini, Palm, Windows Mobile y móviles genéricos. Además, permite diferenciar entre móviles y tablets.</p>
<p>Su forma de funcionamiento es muy sencilla:</p>
<p><span id="more-1692"></span></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

include('Mobile_Detect.php');
$detect = new Mobile_Detect();

if ( $detect-&gt;isAndroidtablet() || $detect-&gt;isIpad() || $detect-&gt;isBlackberrytablet() ) {
	// mostar versión para tablets
} elseif( $detect-&gt;isAndroid() ) {
	// versión Android
} elseif ( $detect-&gt;isIphone() ) {
	// versión iPhone
} elseif ( $detect-&gt;isMobile() ) {
	// versión para otros móviles
} else{
	// versión &quot;normal&quot;
}

?&gt;
</pre>
<p>La lista completa de métodos es: <code>isAndroid(), isAndroidtablet(), isIphone(), isIpad(), isBlackberry(), isBlackberrytablet(), isPalm(), isWindowsphone(), isWindows(), isGeneric(), isMobile()</code></p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/moviles/" title="móviles" rel="tag">móviles</a>, <a href="http://www.yukei.net/tag/php/" title="php" rel="tag">php</a>, <a href="http://www.yukei.net/tag/programacion/" title="programación" rel="tag">programación</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2011/04/wordpress-tips-utiliza-el-parametro-action-para-determinar-la-accion-que-estas-realizando/" title="WordPress Tips: Utiliza el parámetro action para determinar la acción que estás realizando (25 abril, 2011)">WordPress Tips: Utiliza el parámetro action para determinar la acción que estás realizando</a> (1)</li>
	<li><a href="http://www.yukei.net/2011/06/parametros-variables-en-funciones-wordpress-con-wp_parse_args/" title="Usa parámetros variables en tus funciones con wp_parse_args (WordPress Tips) (1 junio, 2011)">Usa parámetros variables en tus funciones con wp_parse_args (WordPress Tips)</a> (0)</li>
	<li><a href="http://www.yukei.net/2011/08/trabajando-con-datos-serializados-en-wordpress/" title="Trabajando con datos serializados en WordPress (23 agosto, 2011)">Trabajando con datos serializados en WordPress</a> (3)</li>
	<li><a href="http://www.yukei.net/2012/05/generar-csv-php-facilmente/" title="Snippet: generar fácilmente un archivo CSV con PHP (29 mayo, 2012)">Snippet: generar fácilmente un archivo CSV con PHP</a> (0)</li>
	<li><a href="http://www.yukei.net/2007/10/php-te-facilita-la-vida/" title="PHP te facilita la vida (25 octubre, 2007)">PHP te facilita la vida</a> (6)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=PkMN0j0f5iI:xH7gYWz15Rs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=PkMN0j0f5iI:xH7gYWz15Rs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=PkMN0j0f5iI:xH7gYWz15Rs:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2012/02/detectar-dispositivos-moviles-facilmente-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2012/02/detectar-dispositivos-moviles-facilmente-con-php/</feedburner:origLink></item>
		<item>
		<title>Recuperar revisiones perdidas en Bazaar</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/tVzsPBGUuV4/</link>
		<comments>http://www.yukei.net/2012/02/recuperar-revisiones-perdidas-en-bazaar/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 02:00:41 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[bzr]]></category>
		<category><![CDATA[control de versiones]]></category>
		<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1681</guid>
		<description>Como saben los regulares de este blog, hace bastante tiempo me he rendido ante Bazaar, el sistema de control de versiones distribuido creado por Canonical y parte del proyecto GNU; más poderoso que SVN, más simple que git&amp;#8230; en fin. Una secuencia de acciones me llevó a una situación terrible: por un momento pensé que [...]</description>
			<content:encoded><![CDATA[<p>Como saben los regulares de este blog, hace bastante tiempo me he rendido ante <a href="http://www.yukei.net/tag/bazaar/" title="Posts sobre Bazaar en yukei.net">Bazaar</a>, el sistema de control de versiones distribuido creado por Canonical y parte del proyecto GNU; más poderoso que SVN, más simple que git&#8230; en fin.</p>
<p>Una secuencia de acciones me llevó a una situación terrible: por un momento pensé que había perdido un conjunto de cambios del historial. La condiciones fueron más o menos las siguientes:</p>
<ol>
<li>Estaba trabajando en una copia local sobre la cual no sabía que estaba <em>bindeada</em> a un repositorio remoto (o sea, un checkout)</li>
<li>Hice commit de un conjunto de cambios (que se grabaron con número de revisión 5)</li>
<li>Ejecuté un <code>bzr bind</code>, con lo se aplicaron una serie de cambios que estaban en el repositorio remoto</li>
<li>La versión del repositorio local bajó a 4&#8230; ¡los cambios realizados en la 5ª versión no estaban en ninguna parte!</li>
</ol>
<p>En resumen, lo que había ocurrido era que había cambiado de línea temporal (al mejor estilo <em>Fringe</em>). Transformar nuevamente la copia en una rama no solucionaba nada, sin embargo suponía que esa revisión debía existir en el repositorio&#8230;. ¿cómo restituirla?</p>
<p><span id="more-1681"></span></p>
<p>La respuesta es conceptualmente sencilla: todo lo que necesitamos hacer es traer los cambios de esa revisión al estado actual de nuestro árbol de trabajo; y a pesar que los números de revisión de bzr son dígitos, en realidad cada commit tiene un identificador único que podemos utilizar para recuperar esos cambios.</p>
<p>En este caso, para recuperar esos cambios debemos ejecutar en primer lugar <code>bzr heads --all</code>, con lo que podremos ver las últimas versiones que conviven en el historial de cambios, por ejemplo:</p>
<pre class="brush: bash; title: ; notranslate">TIP of branch: /var/www/repo.bzr/master/
HEAD: revision-id: user@domain.com-20111220131621-ao5rkri1o80evnhh
  committer: Felipe Lavín &lt;user@domain.com&gt;
  branch nick: master
  timestamp: Tue 2011-12-20 10:16:21 -0300
  message:
    mensaje del commit
</pre>
<p>Luego, <strong>para recuperar los cambios extraviados</strong>:</p>
<pre class="brush: bash; title: ; notranslate">bzr pull . --overwrite -r revid:user@domain.com-20111220131621-ao5rkri1o80evnhh</pre>
<p>&#8230; y podemos seguir trabajando con normalidad.</p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/bazaar/" title="bazaar" rel="tag">bazaar</a>, <a href="http://www.yukei.net/tag/bzr/" title="bzr" rel="tag">bzr</a>, <a href="http://www.yukei.net/tag/control-de-versiones/" title="control de versiones" rel="tag">control de versiones</a>, <a href="http://www.yukei.net/tag/howto/" title="howto" rel="tag">howto</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2011/11/migrar-un-proyecto-desde-svn-a-bazaar/" title="Migrar un proyecto desde SVN a Bazaar (23 noviembre, 2011)">Migrar un proyecto desde SVN a Bazaar</a> (2)</li>
	<li><a href="http://www.yukei.net/2011/03/control-de-versiones-centralizado-con-bazaar/" title="Control de versiones centralizado con Bazaar (24 marzo, 2011)">Control de versiones centralizado con Bazaar</a> (0)</li>
	<li><a href="http://www.yukei.net/2007/09/tres-consejos-para-ser-un-buen-mejor-blogger/" title="Tres consejos para ser un buen (mejor) blogger (27 septiembre, 2007)">Tres consejos para ser un buen (mejor) blogger</a> (11)</li>
	<li><a href="http://www.yukei.net/2009/02/personalizar-las-opciones-del-touchpad-synaptics-en-linux/" title="Personalizar las opciones del TouchPad Synaptics en Linux (28 febrero, 2009)">Personalizar las opciones del TouchPad Synaptics en Linux</a> (7)</li>
	<li><a href="http://www.yukei.net/2005/12/ordenar-elementos-alfabeticamente-en-word/" title="Ordenar elementos alfabéticamente en Word (5 diciembre, 2005)">Ordenar elementos alfabéticamente en Word</a> (100)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=tVzsPBGUuV4:J7oErKSc_yY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=tVzsPBGUuV4:J7oErKSc_yY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=tVzsPBGUuV4:J7oErKSc_yY:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2012/02/recuperar-revisiones-perdidas-en-bazaar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2012/02/recuperar-revisiones-perdidas-en-bazaar/</feedburner:origLink></item>
		<item>
		<title>Mejorando la privacidad en BitTorrent</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/tzou5eEIxeA/</link>
		<comments>http://www.yukei.net/2012/01/mejorando-la-privacidad-en-bittorrent/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 12:30:28 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[P2P]]></category>
		<category><![CDATA[bittorrent]]></category>
		<category><![CDATA[privacidad]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1674</guid>
		<description>Algunos tips para mejorar la privacidad del intercambio de archivos a través de BitTorrent: cómo cifrar el flujo de red y configurar listas de bloqueos de IPs</description>
			<content:encoded><![CDATA[<p>Tras el cierre de MegaUpload y otros servicios para compartir archivos, muchos han optado por volver a visitar a un viejo conocido: <strong>BitTorrent</strong> (el protocolo, no el cliente).</p>
<p>Afortunadamente, los clientes más nuevos y populares han incluido un par de opciones que nos permiten aumentar (aunque sea sólo un poco) el nivel de privacidad de nuestras conexiones.</p>
<p><span id="more-1674"></span></p>
<p>Las opciones que nos interesan son fundamentalmente dos:</p>
<ul>
<li><strong>Activar el cifrado de las conexiones </strong>para evitar la escucha del tráfico por parte de terceros.</li>
<li><strong>Configurar una lista de bloqueo de IPs</strong> para bloquear distribuidores de malware, spyware y otras molestias</li>
</ul>
<p>Adicionalmente, si te sientes especialmente paranoico, puedes desactivar el intercambio de pares a través de <em>DHT</em>, puesto que al activar esta opción vas a compartir tu dirección IP y otros datos a través de una red distribuída — por otra parte, al desactivarla probablemente vas a tener menos pares y vas a depender en mayor medida de los pares que estén registrados en el tracker central.</p>
<h3>En <a href="http://static.yukei.net/wp-content/uploads/2012/01/transmission-privacy.png"><img class="alignright size-thumbnail wp-image-1675" title="Opciones de privacidad en Transmission" src="http://static.yukei.net/wp-content/uploads/2012/01/transmission-privacy-120x120.png" alt="" width="120" height="120" /></a>Transmission</h3>
<p><a title="Transmission - A fast, easy and free bittorrent client" href="http://www.transmissionbt.com/">Transmission</a> es cliente pequeño y sencillo, pero con las opciones justas. Está para varias distribuciones de Linux (en Ubuntu viene preinstalado) y Mac.</p>
<p>Para activar estas opciones, debemos ir a <strong>Editar → Preferencias</strong> y luego a la pestaña <strong>Privacidad</strong>.</p>
<ol>
<li>Activa la opción para <strong>habilitar la lista de bloqueo</strong>. Puedes obtener buenas listas de bloqueo desde <a title="Listas de bloqueo de malware y otras molestias p2p" href="http://www.iblocklist.com/lists.php">I-BlockList</a>; donde encontrarás listas clásicas como las <a href="http://www.iblocklist.com/list.php?list=bt_level1">level-1</a>, <a href="http://www.iblocklist.com/list.php?list=bt_level2">level-2</a> y <a href="http://www.iblocklist.com/list.php?list=bt_level3">level-3</a>, en orden ascendiente según tu nivel de paranoia. Tan solo debes copiar la URL y pegarla en el campo indicado. El programa refrescará automáticamente la lista de bloqueos de modo que permanezca actualizada.</li>
<li>En la sección <strong>Privacidad</strong>, selecciona el modo de cifrado: <em>permitir, preferir o requerir</em>. A estas alturas, me parece que la gran mayoría de clientes de BitTorrent traen alguna opción de cifrado activada por defecto, por lo que la opción de <strong>requerir cifrado</strong> no debería darte mayores problemas.</li>
</ol>
<p>Si deseas desactivar el intercambio de pares por <em>DHT</em>, puedes hacerlo en la misma pestaña.</p>
<h3>En Deluge</h3>
<p><a title="Deluge BitTorrent Client" href="http://deluge-torrent.org/">Deluge</a> es un cliente liviano y multiplataforma, disponible para Linux, Mac y Windows.</p>
<p>Para activar las opciones de privacidad, debes ir a <strong>Editar → Preferencias</strong> y luego</p>
<ol>
<li>En la categoría <strong>Red</strong>, activar las opciones de cifrado: <strong>forzado </strong>tanto para entrante como saliente, <strong>flujo completo</strong> en el nivel y activar la casilla de <strong>cifrar flujo completo</strong></li>
<li>Si aun no lo has activado, anda a la categoría <strong>Complementos </strong>y activa <strong>Blocklist</strong></li>
<li>En la categoría <strong>Lista de bloqueados, </strong>ingresa una de las alternativas disponibles en <a title="Listas de bloqueo de malware y otras molestias p2p" href="http://www.iblocklist.com/lists.php">I-BlockList</a>. Puedes indicar cada cuántos días quieres refrescar la lista de bloqueos (yo lo tengo cada 5) y ya estás listo.</li>
</ol>
<p>Finalmente, si quieres desactivar <em>DHT</em>, debes hacerlo también desde la categoría de <strong>Red, </strong>en la sección de <strong>Extras de red.</strong></p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/bittorrent-2/" title="bittorrent" rel="tag">bittorrent</a>, <a href="http://www.yukei.net/tag/p2p/" title="P2P" rel="tag">P2P</a>, <a href="http://www.yukei.net/tag/privacidad/" title="privacidad" rel="tag">privacidad</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2007/09/wordpress-23-y-las-preocupaciones-por-la-privacidad/" title="WordPress 2.3 y las preocupaciones por la privacidad (25 septiembre, 2007)">WordPress 2.3 y las preocupaciones por la privacidad</a> (3)</li>
	<li><a href="http://www.yukei.net/2005/11/torrents-de-los-conciertos-de-pearl-jam-en-chile/" title="Torrents de los conciertos de Pearl Jam en Chile (25 noviembre, 2005)">Torrents de los conciertos de Pearl Jam en Chile</a> (35)</li>
	<li><a href="http://www.yukei.net/2004/02/sin-querer-queriendo/" title="Sin querer queriendo (23 febrero, 2004)">Sin querer queriendo</a> (0)</li>
	<li><a href="http://www.yukei.net/2009/12/servidor-de-musica-daap-en-ubuntu/" title="Servidor de música DAAP en Ubuntu (28 diciembre, 2009)">Servidor de música DAAP en Ubuntu</a> (0)</li>
	<li><a href="http://www.yukei.net/2003/11/qu-pasa-en-el-negocio-de-la-msica/" title="Qu&eacute; pasa en el negocio de la m&uacute;sica (9 noviembre, 2003)">Qu&eacute; pasa en el negocio de la m&uacute;sica</a> (4)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=tzou5eEIxeA:vkrrVbsy76k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=tzou5eEIxeA:vkrrVbsy76k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=tzou5eEIxeA:vkrrVbsy76k:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2012/01/mejorando-la-privacidad-en-bittorrent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2012/01/mejorando-la-privacidad-en-bittorrent/</feedburner:origLink></item>
		<item>
		<title>Estorninos, plataforma de gobierno estudiantil</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/EDyw36A0Qiw/</link>
		<comments>http://www.yukei.net/2011/12/estorninos-plataforma-de-gobierno-estudiantil/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 19:34:30 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Estrategia]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[diseño de interacción]]></category>
		<category><![CDATA[estorninos]]></category>
		<category><![CDATA[e[ad]]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1656</guid>
		<description>La plataforma Estorninos es un espacio diseñado para la conformación de una comunidad desarrollada por los alumnos del Taller de Construcción de Diseño Gráfico 2011 en la Escuela de Arquitectura y Diseño PUCV.</description>
			<content:encoded><![CDATA[<p>A principios de año, <a title="[dp] - doble página (sitio personal de Herbert Spencer)" href="http://www.herbertspencer.net">Herbert</a> me invitó a participar de algunas clases en su curso de <strong>Taller de construcción</strong> para alumnos de 4º año de la <a title="Escuela de Arquitectura y Diseño PUCV" href="http://www.ead.pucv.cl">e[ad]</a>. Lo que en un principio estaría dedicado a algunas lecciones de Javascript como contexto general del diseño de interacción en la Web, pronto mutó a acercarnos mucho más al proyecto que este curso se había planteado como meta.</p>
<p><iframe src="http://player.vimeo.com/video/32510581?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" frameborder="0" width="500" height="281"></iframe></p>
<p>La <a href="http://estorninos.ead.pucv.cl" title="Sitio de la Plataforma Estorninos">plataforma Estorninos</a> es <q>un espacio diseñado para la conformación de una comunidad, donde los alumnos se puedan formar en un cuerpo organizado, desde el cual participen en el hacer universidad</q>, que se concreta a través de 4 módulos de abierta participación: <strong>proyectos, debates, eventos y notas</strong>.</p>
<p>El desarrollo del proyecto está en un estado <em>alpha funcional</em>, y continuará su marcha durante el próximo año, con el objetivo de convertirse en una solución extensible bajo la forma de un conjunto de un tema y plugins para WordPress, distribuido libremente bajo una licencia <abbr title="Free/Open Source Software">FOSS</abbr>. El proyecto está <a href="http://wiki.ead.pucv.cl/index.php/Plataforma_Estorninos" title="Documentación de la Plataforma Estorninos">ampliamente documentado</a> en la Wiki de e[ad], donde pueden ver sus fundamentos, metas y logros.</p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/diseno/" title="Diseño" rel="tag">Diseño</a>, <a href="http://www.yukei.net/tag/diseno-de-interaccion/" title="diseño de interacción" rel="tag">diseño de interacción</a>, <a href="http://www.yukei.net/tag/estorninos/" title="estorninos" rel="tag">estorninos</a>, <a href="http://www.yukei.net/tag/ead/" title="e[ad]" rel="tag">e[ad]</a>, <a href="http://www.yukei.net/tag/personal/" title="Personal" rel="tag">Personal</a>, <a href="http://www.yukei.net/tag/proyectos/" title="proyectos" rel="tag">proyectos</a>, <a href="http://www.yukei.net/tag/wordpress/" title="WordPress" rel="tag">WordPress</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2008/03/pequena-actualizacion-de-satori/" title="Pequeña actualización de Satori (13 marzo, 2008)">Pequeña actualización de Satori</a> (3)</li>
	<li><a href="http://www.yukei.net/2008/06/edustyle-inspiration-for-campus-web-designers/" title="eduStyle: inspiration for campus web designers (10 junio, 2008)">eduStyle: inspiration for campus web designers</a> (5)</li>
	<li><a href="http://www.yukei.net/2010/11/worpress-no-solo-blogs/" title="WordPress: no sólo blogs (14 noviembre, 2010)">WordPress: no sólo blogs</a> (7)</li>
	<li><a href="http://www.yukei.net/2009/01/un-nuevo-tema-para-yukeinet-ii/" title="Un nuevo tema para yukei.net (II) (24 enero, 2009)">Un nuevo tema para yukei.net (II)</a> (0)</li>
	<li><a href="http://www.yukei.net/2007/08/typographic-un-tema-tipo-tumblelog-para-wordpress/" title="Typographic: un tema tipo-tumblelog para WordPress (15 agosto, 2007)">Typographic: un tema tipo-tumblelog para WordPress</a> (21)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=EDyw36A0Qiw:R7r_lI2qlus:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=EDyw36A0Qiw:R7r_lI2qlus:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=EDyw36A0Qiw:R7r_lI2qlus:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2011/12/estorninos-plataforma-de-gobierno-estudiantil/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2011/12/estorninos-plataforma-de-gobierno-estudiantil/</feedburner:origLink></item>
		<item>
		<title>Migrar un proyecto desde SVN a Bazaar</title>
		<link>http://feedproxy.google.com/~r/yukei/articulos-mas-links/~3/FXBrw4SHaQY/</link>
		<comments>http://www.yukei.net/2011/11/migrar-un-proyecto-desde-svn-a-bazaar/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 11:35:36 +0000</pubDate>
		<dc:creator>Felipe Lavín Z.</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[control de versiones]]></category>
		<category><![CDATA[flujos de trabajo]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://www.yukei.net/?p=1627</guid>
		<description>Bazaar (bzr) permite interoperar cómodamente con Subversion (svn) y permite implementar fácilmente flujos de trabajo adecuados al desarrollo de tus proyectos</description>
			<content:encoded><![CDATA[<p>Hace ya algunos meses estoy utilizando <strong>Bazaar</strong> como sistema de control de versiones para todos mis proyectos nuevos, con resultados muy satisfactorios: me resulta muchísimo más potente que <em>Subversion (SVN)</em> por su funcionamiento como sistema distribuído, y a la vez más sencillo de usar que <em>git</em> (del que sólo le podría faltar la  velocidad).</p>
<p>Uno de estos proyectos ha sido el rediseño de un sitio bastante grande y complejo que hemos desarrollado en <a title="AyerViernes | Estrategia y diseño para tu vida digital" href="http://www.ayerviernes.com">AyerViernes</a> y que hasta ahora se encuentra versionado con <strong>svn</strong>, pero que queremos trasladar a Bazaar por la buena experiencia que hemos tenido. En este proyecto frecuentemente se realizan cambios al modo de funcionamiento de sus diversas características o se agregan nuevas funcionalidades, por lo que no podíamos trabajar bajo el supuesto de congelar el trabajo en el sitio actual y migrar todo inmediatamente a la nueva versión en desarrollo; en síntesis, debíamos ser capaces de:</p>
<ul>
<li>Seguir implementando cambios en la versión en producción</li>
<li>Desarrollar paralelamente la nueva versión, sin interferir con la anterior</li>
<li>Poder incorporar los cambios de la versión en producción a la versión en desarrollo</li>
</ul>
<p>Afortunadamente, <strong>Bazaar puede interoperar con Subversion </strong>gracias a un plugin llamado (adecuadamente) <strong>bzr-svn</strong>, disponible en los repositorios de Ubuntu.</p>
<p>La estrategia que utilizamos demuestra la flexibilidad y potencia de Bazaar. Los pasos a seguir serían aproximadamente los siguientes:</p>
<p><span id="more-1627"></span></p>
<h3>Preparación</h3>
<p>Si aún no lo tienes, lo primero es instalar el plugin <strong>bzr-svn.</strong> En Ubuntu esto se puede lograr con <code>sudo apt-get install bzr-svn</code> desde el terminal.</p>
<p>Luego, crear un <strong>repositorio compartido</strong> bajo el cual almacenaremos tanto la versión online (en producción) como sobre la cual trabajaremos el rediseño (versión de desarrollo), cada una de ellas como una rama <em>(branch)</em>.</p>
<p>Al utilizar un <em>repositorio compartido</em>, las revisiones se almacenan en el repositorio en lugar de en cada rama, lo que permite optimizar drásticamente la utilización de espacio y crear nuevas ramas velozmente. Para inicializar el repositorio compartido, debemos ejecutar <code>bzr init-repo proyecto.repo</code></p>
<h3>Importar el historial de versiones</h3>
<p>Una vez que está creado el repositorio compartido, nuestro objetivo será importar los archivos y el historial del proyecto desde el repositorio SVN donde se está trabajando actualmente, lo que podemos realizar de diversos modos dependiendo de la forma en que esté organizado el repositorio SVN.</p>
<p>Para ello contamos con dos opciones proporcionadas por el plugin: podemos <strong>importar solo una parte del repositorio SVN</strong> (por ejemplo, solamente el <code>trunk</code> o una de las ramas) o bien <em>hacer una copia completa del repositorio</em> (incluyendo todas las ramas y etiquetas además del trunk).</p>
<p>Para el primer caso, tenemos la opción de <strong>crear una nueva rama</strong> a partir de la versión seleccionada <em>tal como si lo estuviésemos haciendo desde una rama de Bazaar:</em> <code>bzr branch svn://servidor.com/proyecto trunk</code>, con lo que Bazaar importará todo el historial de versiones a la nueva rama junto con crear un árbol de trabajo con la última versión de los archivos. Por otra parte, si deseamos que los commits en este árbol siempre se suban al repositorio svn, también contamos con la opción de hacer un <code>checkout</code> (o bien pasar desde una rama a un checkout con <code>bind/unbind</code>).</p>
<p>Para el segundo caso, podemos utilizar el comando <code>bzr svn-import svn://servidor.com/proyecto repositorio</code>. Bazaar importará todo el historial de versiones, pero <em>no creará el árbol de trabajo</em> a menos que agreguemos la opción <code>--trees</code>.</p>
<h3>Trabajo en una nueva rama como &#8220;feature branch&#8221;</h3>
<p>Suponiendo que hemos utilizado la primera de las opciones recién indicadas, tendríamos lo siguiente:</p>
<pre class="brush: bash; title: ; notranslate">$ cd /var/www
# Inicializar el repositorio compartido
$ bzr init-repo proyecto.repo
# Importar el historial del proyecto
$ cd proyecto.repo
$ bzr branch svn://servidor.com/proyecto trunk</pre>
<p>Y llegamos finalmente al momento en que comenzaremos a trabajar en la nueva versión. Para ello, crearemos una nueva rama en el repositorio compartido, donde ejecutaremos todos los cambios necesarios para el desarrollo de la nueva versión.</p>
<pre class="brush: bash; title: ; notranslate"># Crear rama de desarrollo
$ cd /var/www/proyecto.repo
$ bzr branch trunk feature-branch
$ cd feature-branch
# hack, hack, hack...</pre>
<p>A partir de este punto, lo que queda es introducir todas las modificaciones que sean necesarias en nuestra nueva versión — dado que es una rama, los commits de cambios serán locales al repositorio. Nuestro flujo de trabajo sería básicamente el siguiente:</p>
<p><a href="http://static.yukei.net/wp-content/uploads/2011/11/bzrsvn-layout.png"><img class="aligncenter size-medium wp-image-1639" title="BZR-SVN: diagrama de repositorios" src="http://static.yukei.net/wp-content/uploads/2011/11/bzrsvn-layout-500x357.png" alt="" width="500" height="357" /></a></p>
<p>De este modo, la mantención del proyecto puede continuar de forma paralela al nuevo desarrollo, sin cruzarse entre sí a menos que así lo queramos. Si hubiesen cambios en el sitio en producción que se envíen al repositorio SVN, podríamos integrarlos dentro de nuestra versión de desarrollo con los siguientes pasos:</p>
<pre class="brush: bash; title: ; notranslate"># Ingresamos a la rama ligada al sitio en producción
$ cd /var/www/proyecto.repo/trunk
# Obtener los cambios desde el repositorio SVN
$ bzr pull # O bzr up si es un checkout
# Cambiar a la rama en desarrollo
$ cd ../feature-branch
# Incorporar los cambios de producción al nuevo desarrollo
$ bzr merge ../trunk</pre>
<p>Del mismo modo, cuando queramos integrar los cambios de la versión en desarrollo a la rama principal, también recurriremos a <code>bzr merge</code>, de modo de preservar el historial que la rama en producción (el &#8220;trunk&#8221; del ejemplo).</p>
<pre class="brush: bash; title: ; notranslate">$ cd /var/www/proyecto.repo/trunk
# Mezclar cambios de desarrollo en la versión de producción
$ bzr merge ../feature-branch</pre>
<p>Es importante recalcar la utilización de <code>merge</code>, y <strong>no</strong> un <code>push</code> desde <code>feature-branch</code> al <code>trunk</code>, ya que de otro modo sobreescribiremos el historial de versiones del trunk.</p>
<p>Ya en este punto, podremos chequear que todos los cambios que introdujimos se complementan bien con los últimos cambios del sitio en producción. Una vez que se hayan alisado todas las asperezas, podemos enviar finalmente nuestros cambios desde <code>/var/www/proyecto.repo/trunk</code> con un <code>bzr push</code> hacia el repositorio SVN.</p>
<h3>Colaboración con otros desarrolladores</h3>
<p>Hasta acá tenemos la versión simplificada, pero lo más probable es que durante el desarrollo debamos cooperar con compañeros de equipo encargados de otras piezas del puzzle&#8230; a partir de lo anterior, podemos seguir expandiendo el modelo para incorporar estas nuevas posibilidades: nuestros compañeros pueden crear nuevas ramas locales en sus respectivos equipos, o bien montar un checkout donde implementar cambios que luego serán enviados a nuestro repositorio.</p>
<p>De este modo, una versión más completa del esquema anterior sería la siguiente:</p>
<p><a href="http://static.yukei.net/wp-content/uploads/2011/11/bzrsvn-flow.png"><img class="aligncenter size-medium wp-image-1640" title="BZR-SVN: Flujo de trabajo" src="http://static.yukei.net/wp-content/uploads/2011/11/bzrsvn-flow-500x255.png" alt="" width="500" height="255" /></a></p>
<p>Como se puede ver, existen muchas alternativas para organizar el trabajo en la forma que sea mejor para tu equipo; y lo que es mejor aún, es muy fácil implementar otras variantes que vayan siendo más apropiadas según el desarrollo del proyecto.</p>

	<p class="tags">Tags: <a href="http://www.yukei.net/tag/bazaar/" title="bazaar" rel="tag">bazaar</a>, <a href="http://www.yukei.net/tag/control-de-versiones/" title="control de versiones" rel="tag">control de versiones</a>, <a href="http://www.yukei.net/tag/flujos-de-trabajo/" title="flujos de trabajo" rel="tag">flujos de trabajo</a>, <a href="http://www.yukei.net/tag/programacion/" title="programación" rel="tag">programación</a></p>

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.yukei.net/2011/03/control-de-versiones-centralizado-con-bazaar/" title="Control de versiones centralizado con Bazaar (24 marzo, 2011)">Control de versiones centralizado con Bazaar</a> (0)</li>
	<li><a href="http://www.yukei.net/2012/02/recuperar-revisiones-perdidas-en-bazaar/" title="Recuperar revisiones perdidas en Bazaar (8 febrero, 2012)">Recuperar revisiones perdidas en Bazaar</a> (0)</li>
	<li><a href="http://www.yukei.net/2011/04/wordpress-tips-utiliza-el-parametro-action-para-determinar-la-accion-que-estas-realizando/" title="WordPress Tips: Utiliza el parámetro action para determinar la acción que estás realizando (25 abril, 2011)">WordPress Tips: Utiliza el parámetro action para determinar la acción que estás realizando</a> (1)</li>
	<li><a href="http://www.yukei.net/2011/06/parametros-variables-en-funciones-wordpress-con-wp_parse_args/" title="Usa parámetros variables en tus funciones con wp_parse_args (WordPress Tips) (1 junio, 2011)">Usa parámetros variables en tus funciones con wp_parse_args (WordPress Tips)</a> (0)</li>
	<li><a href="http://www.yukei.net/2010/05/tres-usos-para-jquery-extend/" title="Tres usos para jQuery.extend() (18 mayo, 2010)">Tres usos para jQuery.extend()</a> (1)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=FXBrw4SHaQY:_J2POb4pZvg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=FXBrw4SHaQY:_J2POb4pZvg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?a=FXBrw4SHaQY:_J2POb4pZvg:ecdYMiMMAMM"><img src="http://feeds.feedburner.com/~ff/yukei/articulos-mas-links?d=ecdYMiMMAMM" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.yukei.net/2011/11/migrar-un-proyecto-desde-svn-a-bazaar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><feedburner:origLink>http://www.yukei.net/2011/11/migrar-un-proyecto-desde-svn-a-bazaar/</feedburner:origLink></item>
	</channel>
</rss><!-- Served from: www.yukei.net @ 2012-05-30 23:10:02 by W3 Total Cache -->

