<?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>Programación archivos &#8211; BorrowBits</title>
	<atom:link href="https://borrowbits.com/category/ingenieria-informatica/programacion-y-desarrollo-software/feed/" rel="self" type="application/rss+xml" />
	<link>https://borrowbits.com/category/ingenieria-informatica/programacion-y-desarrollo-software/</link>
	<description>...un blog sobre Tecnología y Opinión</description>
	<lastBuildDate>Thu, 07 Mar 2024 00:36:53 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/cropped-logo-bbits-nuevo-crayon.png?fit=32%2C32&#038;ssl=1</url>
	<title>Programación archivos &#8211; BorrowBits</title>
	<link>https://borrowbits.com/category/ingenieria-informatica/programacion-y-desarrollo-software/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">188667123</site>	<item>
		<title>Entrar a contenedor Docker usando la consola</title>
		<link>https://borrowbits.com/2020/04/entrar-a-contenedor-docker-usando-la-consola/</link>
					<comments>https://borrowbits.com/2020/04/entrar-a-contenedor-docker-usando-la-consola/#comments</comments>
		
		<dc:creator><![CDATA[Vicente]]></dc:creator>
		<pubDate>Thu, 16 Apr 2020 18:03:48 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[docker]]></category>
		<guid isPermaLink="false">https://borrowbits.com/?p=9143</guid>

					<description><![CDATA[<p>Últimamente estoy utilizando mucho Docker y aunque suelo automatizar la configuración, en ocasiones tenemos la necesidad de entrar a un contenedor.Como no es un comando fácilmente recordable, voy a generar un artículo simple para en caso de tener que entrar a un contenedor Docker lo tenga a mano. Espero que a también os sea de [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2020/04/entrar-a-contenedor-docker-usando-la-consola/" data-wpel-link="internal">Entrar a contenedor Docker usando la consola</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Últimamente estoy utilizando mucho <a href="https://www.docker.com/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Docker </a>y aunque suelo automatizar la configuración, en ocasiones tenemos la necesidad de entrar a un contenedor.<br />Como no es un comando fácilmente recordable, voy a generar un artículo simple para en caso de tener que entrar a un contenedor <a href="https://www.docker.com/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Docker</a> lo tenga a mano. Espero que a también os sea de utilidad ya que imagino que os sucederá lo mismo que a mí.</p>



<p>Los pasos:</p>



<p><strong>1 ) Identificar los contenedores en ejecución tecleando:</strong></p>



<pre class="wp-block-code"><code>docker ps</code></pre>



<p>Y visualizaremos:</p>



<pre class="wp-block-code"><code>CONTAINER ID IMAGE        COMMAND    CREATED    STATUS PORTS NAME
4a414a7bcb70 jenkins:lts "/sbin/tin  1 day ago  Up     80    jenkins</code></pre>



<p>2) Introducir el comando para <strong>ingresar en la consola</strong> una vez conocemos el CONTAINER ID</p>



<pre class="wp-block-code"><code>docker exec -i -t 4a414a7bcb70 /bin/bash </code></pre>



<p>Tras esto veremos que nos ha ingresado dentro del terminal y podremos empezar a teclear los comandos que necesitemos ejecutar dentro de nuestro contenedor. Una vez hayamos terminado de realizar la acción necesaria, simplemente tecleando</p>



<pre class="wp-block-code"><code>exit</code></pre>



<p>Volveríamos al SO y ya habríamos abandonado el contenedor Docker.</p>



<p>Como es habitual, cualquier sugerencia o mejora de este artículo siempre es bien recibida.</p>



<p>Si queréis echarle un vistazo a algunos de mis anteriores artículos podéis acceder directamente <a href="https://borrowbits.com/author/visego/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">desde aquí.</a></p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="770" height="513" class="wp-image-9154" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/Docker_image.jpeg?resize=770%2C513&#038;ssl=1" alt="docker logo" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/Docker_image.jpeg?w=800&amp;ssl=1 800w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/Docker_image.jpeg?resize=300%2C200&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/Docker_image.jpeg?resize=768%2C512&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/Docker_image.jpeg?resize=370%2C247&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/Docker_image.jpeg?resize=270%2C180&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/Docker_image.jpeg?resize=570%2C380&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/Docker_image.jpeg?resize=740%2C493&amp;ssl=1 740w" sizes="(max-width: 770px) 100vw, 770px" /></figure>



<p>&nbsp;</p>
<p>La entrada <a href="https://borrowbits.com/2020/04/entrar-a-contenedor-docker-usando-la-consola/" data-wpel-link="internal">Entrar a contenedor Docker usando la consola</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2020/04/entrar-a-contenedor-docker-usando-la-consola/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">9143</post-id>	</item>
		<item>
		<title>¿Cómo aprobar la certificación PSPO I a la primera? (aunque no tengas experiencia como Product Owner)</title>
		<link>https://borrowbits.com/2020/04/como-aprobar-la-certificacion-pspo-i-a-la-primera/</link>
					<comments>https://borrowbits.com/2020/04/como-aprobar-la-certificacion-pspo-i-a-la-primera/#comments</comments>
		
		<dc:creator><![CDATA[Angel H.]]></dc:creator>
		<pubDate>Fri, 10 Apr 2020 17:28:14 +0000</pubDate>
				<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[certificaciones]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://borrowbits.com/?p=9033</guid>

					<description><![CDATA[<p>Aquí os comparto una receta para aprobar la certificación PSPO I, Professional Scrum Product Owner, en el mínimo tiempo posible. Esta certificación está facilitada por Scrum.org, una organización fundada por el co-creador de Scrum: Ken Schwaber. Se trata de un título muy valorado en muchos entornos ágiles, así que tanto si quieres una mejora en [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2020/04/como-aprobar-la-certificacion-pspo-i-a-la-primera/" data-wpel-link="internal">¿Cómo aprobar la certificación PSPO I a la primera? (aunque no tengas experiencia como Product Owner)</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Aquí os comparto una receta para aprobar la certificación <strong><a href="https://www.scrum.org/professional-scrum-product-owner-certifications" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">PSPO I, Professional Scrum Product Owner</a></strong>, en el mínimo tiempo posible. Esta certificación está facilitada por <em>Scrum.org</em>, una organización fundada por el co-creador de Scrum: <a href="https://en.wikipedia.org/wiki/Ken_Schwaber" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Ken Schwaber</a>.</p>



<p>Se trata de un título muy valorado en muchos entornos ágiles, así que tanto si quieres una mejora en tu carrera profesional como Product Manager o porque quieres optar a un puesto en el que se exige tenerla, este artículo puede servirte de ayuda.</p>



<p>Hace relativamente poco <a href="https://www.scrum.org/user/539047" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">pasé el examen de certificación</a> tras unos pocos días de preparación, así que <strong>el propósito de este artículo es daros algunos consejos útiles basados en mi experiencia</strong>.</p>



<h2 class="wp-block-heading" id="como-es-el-examen">¿Cómo es el examen?</h2>



<ul class="wp-block-list">
<li>El examen cuesta 200$ y sólo hay un único intento. Si suspendes y quieres intentarlo de nuevo, tendrás que pagar otra vez.</li>



<li>Para aprobarlo es necesario acertar el 85% de las respuestas.</li>



<li>Consta de 80 preguntas de tipo:
<ul class="wp-block-list">
<li>Verdadero/falso</li>



<li>Opción múltiple</li>



<li>Respuesta múltiple</li>
</ul>
</li>



<li>El tiempo límite son 60 minutos.</li>



<li>El único idioma disponible es en Inglés, por tanto es recomendable un buen nivel para entender bien las preguntas.</li>
</ul>



<p>En comparación con otras certificaciones de la industria puede parecer difícil, tanto por la elevada tasa de aciertos que exige, como por el poco tiempo disponible para cada pregunta. A pesar de todo, el examen resulta muy sencillo <strong>una vez se comprende cómo funciona Scrum</strong>.</p>



<h2 class="wp-block-heading" id="cuanto-tiempo-necesito-para-su-preparacion">¿Cuánto tiempo necesito para su preparación?</h2>



<p>En mi caso, dediqué menos de 20 horas a lo largo de diez días, si bien ya tenía algunos conocimientos sobre product management. Como suele ocurrir en este tipo de certificaciones, la clave es hacer tests, tests y más tests. Tu probabilidad de aprobar aumentará de forma proporcional a la cantidad de tests que hagas, porque a la postre aparecerán muchas preguntas repetidas.</p>



<p>Con la concentración adecuada y siguiendo los pasos de esta guía,<strong> se puede preparar en 2-4 semanas con una dedicación de 1-2 horas al día. </strong></p>



<h2 class="wp-block-heading" id="como-lo-preparo-un-sistema-basado-en-la-evidencia">¿Cómo lo preparo? Un sistema basado en la evidencia</h2>



<p>Para preparar el examen puedes hacer un curso de pago o estudiártelo por tu cuenta. A diferencia de otras certificaciones,<strong> Scrum.org no exige la realización de un curso previo</strong>, al menos para PSPO I. Esta guía de estudio está pensada para los que se lo quieren preparar de forma independiente, aunque si ya hiciste un curso puede ayudarte a repasar.</p>



<p>Este sistema consta de varias partes. <strong>Es muy importante que no te saltes ningún paso</strong>, sobretodo si tienes poca experiencia profesional con Scrum. Considera esta sección como tu &#8220;checklist&#8221; de estudio:</p>



<ol class="wp-block-list">
<li><strong> Lee la guía <a href="https://www.scrumguides.org/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">oficial de Scrum</a> con atención al menos 3 veces. </strong>Se trata de un texto de apenas 19 páginas, aparentemente sencillo. Pero no te dejes engañar por su longitud, cada frase puede abrir un universo de interpretaciones. Aunque está disponible en muchos idiomas, te recomiendo estudiarla en inglés (ya que el examen y casi todo el material de estudio está en inglés)</li>



<li><strong>Además lee TODAS las lecturas imprescindibles </strong>que se recomiendan en este artículo, más abajo.</li>



<li><strong>Aprueba con un 100% todos los Open Assessments de Scrum, 5 veces cada uno, en menos de 5 minutos por intento: </strong>esto te dará una base sólida sobre los principios de Scrum que acabas de estudiar:
<ul class="wp-block-list">
<li><a href="https://www.scrum.org/open-assessments/product-owner-open" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Product Owner Open</a> =&gt; 5 veces con un score 100%</li>



<li><a href="https://www.scrum.org/open-assessments/scrum-open" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Scrum Open</a> =&gt; 5 veces con un score 100%</li>



<li><a href="https://www.scrum.org/open-assessments/scrum-developer-open" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Developer Open</a> =&gt; 5 veces con un score 100%</li>



<li><a href="https://www.scrum.org/open-assessments/nexus-open" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Nexus Open</a>=&gt; 5 veces con un score 100% </li>
</ul>
</li>



<li><strong>Aprueba con un 100% los tests de <a href="https://mlapshin.com/index.php/scrum-quizzes/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Mikhail Lapshin</a></strong> en modo real (tiempo límite de 60 minutos) al menos 3 veces cada uno:
<ul class="wp-block-list">
<li>Professional Scrum Master<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (PSM I<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />) preparation quiz –&nbsp;<a href="https://mlapshin.com/index.php/scrum-quizzes/sm-learning-mode/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">learning mode</a>&nbsp;|&nbsp;<a href="https://mlapshin.com/index.php/scrum-quizzes/sm-real-mode/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">real mode</a> =&gt; 3 veces con un score 100%</li>



<li>Professional Scrum Product Owner<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (PSPO I<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />) preparation quiz –&nbsp;<a href="https://mlapshin.com/index.php/scrum-quizzes/po-learning-mode/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">learning mode</a>&nbsp;|&nbsp;<a href="https://mlapshin.com/index.php/scrum-quizzes/po-real-mode/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">real mode</a> =&gt; 3 veces con un score 100%</li>



<li>Scaled Professional Scrum<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (SPS<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> aka Nexus<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />) preparation quiz –&nbsp;<a href="https://mlapshin.com/index.php/scrum-quizzes/scaled-scrum-quiz/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">learning mode</a> =&gt; 3 veces con un score 100% </li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading" id="consejos-para-el-examen-y-preguntas-trampa">Consejos para el examen y preguntas-trampa</h2>



<p>Aunque te salgan bien los &#8220;open assessments&#8221; no deberías confiarte: algunas preguntas del examen real están plagadas de trampas. Aquí van algunos ejemplos:</p>



<ul class="wp-block-list">
<li><strong>Cuidado con los matices: </strong>quizás éste sea el consejo más importante. Lee cada palabra y cada coma con mucha atención. En particular presta atención a las diferencias entre &#8220;can&#8221;, &#8220;should&#8221;, &#8220;must&#8221; y &#8220;may&#8221;. Un par de ejemplos:
<ul class="wp-block-list">
<li><em>The PO (Product Owner) and SM (Scrum Master) <strong>may&nbsp;</strong>attend&nbsp;the Daily Standup, but they <strong>may not&nbsp;</strong>participate&nbsp;in&nbsp;the Daily Standup</em></li>



<li><em>Retrospective improvements <strong>must</strong> go into the&nbsp;Sprint&nbsp;Backlog, not the&nbsp;Product&nbsp;Backlog</em>.</li>
</ul>
</li>



<li><strong>Cuidado con las preguntas que contienen una negación.</strong> Por ejemplo: <em>¿Cuáles de las siguientes opciones <strong>no</strong> es una característica de&#8230;? </em></li>



<li><strong>Cuidado con la respuesta múltiple</strong> (checkbox en vez de radio button) en las que varias<em> podrían</em> ser correctas. También con las de tipo &#8220;todas son correctas&#8221; o &#8220;ninguna es correcta&#8221;.</li>



<li><strong>Respuestas contradictorias:</strong> a veces la experiencia del mundo real puede contradecir a las buenas prácticas, ¡incluido a Scrum! En caso de duda, las respuestas &#8220;más verdaderas&#8221; son las que favorecen el empirismo y la evidencia de los datos (lee sobre &#8220;Evidence Based Management&#8221; más abajo).</li>



<li><strong>Cuidado con herramientas específicas que no aparecen en la guía de Scrum: </strong>casi todo lo que no aparece en la guía explicitamente, no entra en el examen. Eso significa que a Scrum &#8220;le da igual&#8221; si utilizas una burn-down chart o una burn-up chart. Tampoco importa si para estimar las historias de usuario utilizas planning poker, la sucesión de Fibonacci o cualquier otra forma que al final de día permita calcular la velocidad de un Sprint&#8230;
<ul class="wp-block-list">
<li>(!)<strong>Las excepciones a esta regla se encuentran en las lecturas imprescindibles más abajo (y es por esto que son imprescindibles). </strong></li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading" id="donde-encontrar-los-examenes-y-el-resto-del-material">¿Dónde encontrar los exámenes y el resto del material?</h2>



<h3 class="wp-block-heading" id="examenes"><strong>Exámenes</strong></h3>



<p>La mala noticia es que no esta permitido compartir exámenes reales. Hay muchas páginas y cursos de procedencia sospechosa que prometen acceso a preguntas oficiales, o que ofrecen simuladores del examen real. En mi experiencia, muchas de esas fuentes además de ser de pago ofrecían preguntas incorrectas (con lo cuál podrían confundirte en vez de ayudarte).</p>



<p><p>Aquí la buena noticia:</p>
<p>Los <a href="https://www.scrum.org/open-assessments" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Open Assessments </a>y los tests de <a href="https://mlapshin.com/index.php/scrum-quizzes/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Mikhail Lapshin</a> que mencionábamos antes son una excelente forma de practicar. Son muy parecidos al examen real y además gratuitos.</p></p>



<h3 class="wp-block-heading" id="lecturas-imprescindibles">Lecturas imprescindibles</h3>



<p>Además de la<a href="https://www.scrumguides.org/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external"> guía de Scrum</a>, las siguientes lecturas y artículos son importantes; deberías comprenderlos antes de hacer el examen. Léelos tantas veces como sea necesario:</p>



<ul class="wp-block-list">
<li><a href="https://www.scrum.org/professional-scrum-competencies/understanding-and-applying-scrum-framework" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Understanding and Applying the Scrum Framework</a></li>



<li><a href="https://www.scrum.org/professional-scrum-competencies/developing-people-and-teams" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Developing People and Teams</a></li>



<li><a href="https://www.scrum.org/professional-scrum-competencies/managing-products-with-agility" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Managing Products with Agility</a></li>



<li><a href="https://www.productplan.com/glossary/moscow-prioritization/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Priorización MosCOW </a></li>



<li><a href="https://www.scrum.org/resources/scrum-glossary" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Glosario de Scrum</a></li>



<li><a href="http://www.agilenutshell.com/cone_of_uncertainty" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Cono de la incertidumbre</a></li>



<li><a href="https://www.scrum.org/resources/evidence-based-management" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Evidence-Based Management</a>&nbsp;(EBM) y sus áreas de valor clave: Key Value Areas (KVAs)</li>



<li>La guía&nbsp;<a href="https://www.scrum.org/resources/nexus-guide" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Nexus </a>(cómo escalar con varios equipos Scrum).</li>



<li><a href="https://www.scrum.org/resources/blog/10-tips-product-owners-business-value" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">10 Tips for Product Owners on (Business) Value</a></li>



<li><a href="https://www.scrum.org/resources/blog/stances-product-owner" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">Stances of the Product Owner</a></li>



<li><a href="https://scrumcrazy.wordpress.com/2018/09/22/the-new-new-product-owner/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">The &#8220;new&#8221; new Product Owner</a></li>



<li><a href="https://borrowbits.com/2020/10/guia-del-product-owner-para-tratar-con-desarrolladores/" data-wpel-link="internal">9 Principios Efectivos para trabajar con equipos de desarrollo (BorrowBITs)</a></li>
</ul>



<h3 class="wp-block-heading" id="libros">Libros</h3>



<p>Aunque no es imprescindible, si tienes tiempo adicional, te recomiendo leer los siguientes libros:</p>



<ul class="wp-block-list">
<li><strong><em>&#8220;Agile Product Management with Scrum&#8221;</em>,</strong> de Roman Pichler. Son sólo 133 páginas y para mí es uno de los mejores libros sobre agile product management, pues ofrece una visión muy práctica y realista del trabajo de Product Owner. Hay que tener cuidado porque está algo anticuado con respecto a la guía de Scrum, pero desde mi punto de vista ayuda a comprender mejor el papel de Product Owner.</li>



<li><strong>&#8220;<em>The Professional Product Owner: Leveraging Scrum as a Competitive Advantage</em>&#8220;,</strong> es el libro que recomienda Scrum.org para preparar este examen, y por tanto me veo obligado a recomendarlo (aunque no lo he leído).</li>



<li><strong>&#8220;<em>The Nexus Framework for Scaling Scrum</em>&#8220;.</strong> Además de ser un excelente &#8220;repaso&#8221; de Scrum, explica cómo escalar paso a paso éste a varios equipos mediante un caso de estudio de real.</li>



<li><strong><em>&#8220;Peopleware: Productive Projects and Teams&#8221;</em>&nbsp;</strong>de Tom DeMarco y Tim Lister. Uno de los mejores libros que he leído sobre organización de equipos IT. No es un libro sobre Scrum, pero ayuda a comprender los valores subyacentes de los equipos ágiles, cross-funcionales y auto-organizados.</li>
</ul>



<h3 class="wp-block-heading" id="como-aplicar-y-donde-hacerlo">¿Cómo aplicar y donde hacerlo?</h3>



<p>Solicitar el examen es muy fácil. Sólo tienes que <a href="https://www.scrum.org/professional-scrum-product-owner-certifications" target="_blank" rel="noreferrer noopener external" data-wpel-link="external">ir a esta página</a> y comprar un &#8220;intento&#8221; para la certificación <strong>Professional Scrum Prouct Owner I</strong>, con tarjeta de crédito o Paypal. Tras la compra, recibirás un e-mail con una contraseña para acceder al examen. La contraseña no expira, por lo que podrás comprarla en el momento que quieras y usarla cuando estés preparado/a.</p>



<p>Usad los comentarios si tenéis dudas o sugerencias, entre todos nos podemos ayudar.</p>


<hr />
<p>Si quieres profundizar más sobre Product Management, apúntate a mi newsletter gratuita, <a href="http://thestoicproductmanager.substack.com" data-wpel-link="external" rel="external noopener noreferrer">The Stoic Product Manager</a>. </p>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-recalc-dims="1" decoding="async" width="531" height="300" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/pspoi-badge-1.png?resize=531%2C300&#038;ssl=1" alt="Cómo aprobar la certificación PSPO I a la primera" class="wp-image-9046" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/pspoi-badge-1.png?w=531&amp;ssl=1 531w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/pspoi-badge-1.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/pspoi-badge-1.png?resize=370%2C209&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2020/04/pspoi-badge-1.png?resize=270%2C153&amp;ssl=1 270w" sizes="(max-width: 531px) 100vw, 531px" /></figure>
</div><p>La entrada <a href="https://borrowbits.com/2020/04/como-aprobar-la-certificacion-pspo-i-a-la-primera/" data-wpel-link="internal">¿Cómo aprobar la certificación PSPO I a la primera? (aunque no tengas experiencia como Product Owner)</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2020/04/como-aprobar-la-certificacion-pspo-i-a-la-primera/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">9033</post-id>	</item>
		<item>
		<title>¿Cómo montar un TPV en mi negocio ? Una guía de compra.</title>
		<link>https://borrowbits.com/2020/02/como-montar-un-tpv-en-mi-negocio-donde-comprar/</link>
					<comments>https://borrowbits.com/2020/02/como-montar-un-tpv-en-mi-negocio-donde-comprar/#respond</comments>
		
		<dc:creator><![CDATA[Angel H.]]></dc:creator>
		<pubDate>Sat, 29 Feb 2020 09:20:12 +0000</pubDate>
				<category><![CDATA[Asesor Virtual]]></category>
		<category><![CDATA[Blockchain]]></category>
		<category><![CDATA[E-conomía]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[POS]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[TPV]]></category>
		<guid isPermaLink="false">https://borrowbits.com/?p=8959</guid>

					<description><![CDATA[<p>La elección de un TPV no es tarea fácil y dependerá en gran medida de las necesidades y presupuesto del negocio. En este artículo pretendemos elaborar una breve guía de compra y consejos que pueden resultar de utilidad.</p>
<p>La entrada <a href="https://borrowbits.com/2020/02/como-montar-un-tpv-en-mi-negocio-donde-comprar/" data-wpel-link="internal">¿Cómo montar un TPV en mi negocio ? Una guía de compra.</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En este blog recibimos a menudo consultas de empresarios sobre <a href="https://borrowbits.com/2013/09/consulta/" data-wpel-link="internal">cómo montar un TPV</a>: <em>Terminal Punto Venta</em>. Entendemos por TPV aquel sistema, sea físico o virtual, cuya misión es procesar pagos en puntos de venta. Los TPV electrónicos o virtuales los tratamos en un artículo anterior, y consisten en un software conocido como <a href="https://borrowbits.com/2014/02/que-es-un-tpv-virtual-y-que-le-podemos-exigir/" data-wpel-link="internal">TPV virtual</a>. Por su parte, un TPV físico puede consistir en un sólo dispositivo (como el datáfono) o en un conjunto de ellos (impresora térmica de tickets, lector de tarjetas, lectores lásers&#8230;). A menudo estos dispositivos se venden juntos en un pack, que incluye tanto los dispositivos físicos como el software necesario.</p>



<h2 class="wp-block-heading"> Criterio 1: Funcionalidad</h2>



<p>Existe cierta confusión en cuanto a las funcionalidades que puede realizar una TPV. Lo más importante a la hora de elegir un sistema es que &#8220;haga&#8221; lo que realmente necesitamos. He aquí algunas de las operaciones que puede realizar una TPV:</p>



<ul class="wp-block-list"><li>Inventario de productos.</li><li>Control básico de clientes (CRM).</li><li>Realizar operaciones de venta.</li><li>Pasarela de pago online.</li><li>Impresión de tickets y facturas.</li><li>Automatización de pedidos.</li><li>Gestión de devoluciones.</li><li>Integración con otros sistemas.</li></ul>



<p>Por ejemplo, si lo único que necesitas es una pasarela de pago para que tus clientes puedan pagar con tarjeta de crédito, un simple datáfono de toda la vida bastará. Algunos bancos ofrecen sus propios datáfonos digitales de forma gratuita (si bien se cobrarán su costo en comisiones de venta, por supuesto). </p>



<p>Si además quieres gestionar pagos de forma completa, llevando contabilidad de todo tipo de cobros y además actualizando el inventario, imprimir recibos y gestionar devoluciones, necesitarás un sistema mucho más avanzado con un software adecuado.</p>



<h2 class="wp-block-heading">Criterio 2: Tipo de negocio</h2>



<p>No es lo mismo el TPV que necesitaría una panadería de barrio, que el que necesitarían unos grandes almacenes con 20 puntos de venta interconectados. Tampoco es lo mismo el TPV que necesitaría una tienda online:</p>



<ul class="wp-block-list"><li>Para <strong>pequeñas empresas</strong> el TPV puede consistir en un datáfono o en un simple PC adaptado con una pantalla táctil, lector de tarjetas, impresora y periféricos. Este tipo de TPV se vende en paquetes y suele incluir un software básico de gestión de ventas que es suficiente para este perfil. </li><li>Para <strong>grandes empresas</strong> con múltiples puntos de venta, lo más importante no es tanto el TPV físico como el software. En estos casos cabe considerar soluciones Cloud que aseguren una alta disponibilidad, seguridad y sincronización de datos.  También es posible que necesites integración con otros sistemas corporativos (Salesforce, SAP, HubSpot&#8230;) por lo cual pueden llegar a necesitar un desarrollo a medida. Si necesitas asesoramiento sobre aplicaciones TPV a medida, <a href="https://borrowbits.com/contacto/" data-wpel-link="internal">puedes consultarnos aquí de forma gratuita</a>. </li><li>Para <strong>negocios o tiendas online</strong> (e-commerce) puede que no sea necesario ningún hardware en absoluto (salvo los servidores de tu proveedor), pues lo único que necesitarás es una plataforma web como WooCommerce, Prestashop y similares. Éstas se puede integrar fácilmente con PayPal, pasarelas bancarias e incluso con pasarelas de pago con bitcoins. </li></ul>



<h2 class="wp-block-heading">Criterio 3: Presupuesto</h2>



<p>Más allá de las necesidades de tu negocio, lo que más va a determinar la compra de un TPV u otro va a ser el presupuesto. Tanto si el TPV es físico o totalmente virtual, los costes pueden ir de &#8220;cero euros&#8221; hasta &#8220;todo lo que te puedas gastar&#8221;. </p>



<h3 class="wp-block-heading">La opción más económica (pero más problemática)</h3>



<p>La opción más barata es adquirir un software TPV &#8220;open source&#8221;, que a menudo son totalmente gratuitos y están mantenidos por una amplia comunidad (si os interesa podemos hacer otro artículo sobre esta opción). </p>



<p>A partir de ahí puedes comprar todos los dispositivos que vayas necesitando: impresora de tickets, lector de tarjetas, lector láser, etc. Esta opción tiene el molesto inconveniente de necesitar bastante trabajo técnico, desde la instalación hasta su mantenimiento. Por tanto, en algún momento vamos a necesitar una persona con los conocimientos técnicos para que nos dé el soporte necesario.</p>



<h3 class="wp-block-heading">La opción deluxe</h3>



<p>Existen soluciones TPV que no sólo incluyen completos sistemas físicos, sino también software de gestión de inventario, clientes y ventas, con base de datos compartida en la nube, backup periódico automático y soporte 24/7. Estas soluciones suelen proveerlas empresas especializadas mediante contratos SaaS (Software as a Service) y un contrato de compra o alquiler de los equipos físicos. </p>



<h3 class="wp-block-heading">Otras opciones económicas</h3>



<p>El mejor balance en prestaciones-precio suele ser un pack TPV completo que incluya todo el hardware y el software necesario. Para un negocio que está empezando, la compra de su primer TPV puede suponer una fuerte inversión. Sin embargo, el mercado de segunda mano puede ayudar a ahorrar dinero. Los TPV por lo general sufren poco desgaste, pues sus sistemas trabajan con poca carga computacional y los periféricos físicos suelen ser bastante duraderos. Con el tiempo, las impresoras sí son más susceptibles de problemas (en general todos los dispositivos con partes móviles). Pero después de todo, estos son dispositivos económicos y fácilmente reemplazables. </p>



<h2 class="wp-block-heading">A modo de conclusión</h2>



<p>En cuanto a la elección de un TPV no hay una respuesta genérica que sea válida para todos los perfiles. Todo va a depender de las necesidades y presupuesto de cada negocio. Por suerte, existe una amplia variedad de configuraciones, modelos y opciones de compra. Además puedes comenzar con un paquete básico e ir ampliando sobre éste según vayas descubriendo tus necesidades particulares. </p>



<p>No dudes en contactar con nosotros o escribirnos un comentario si necesitas asesoramiento sobre la mejor opción para tu caso. </p>
<p>La entrada <a href="https://borrowbits.com/2020/02/como-montar-un-tpv-en-mi-negocio-donde-comprar/" data-wpel-link="internal">¿Cómo montar un TPV en mi negocio ? Una guía de compra.</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2020/02/como-montar-un-tpv-en-mi-negocio-donde-comprar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8959</post-id>	</item>
		<item>
		<title>De templarios, MicroPython y rootkits cavernarios</title>
		<link>https://borrowbits.com/2019/05/de-templarios-micropython-y-rootkits-cavernarios/</link>
					<comments>https://borrowbits.com/2019/05/de-templarios-micropython-y-rootkits-cavernarios/#comments</comments>
		
		<dc:creator><![CDATA[Angel H.]]></dc:creator>
		<pubDate>Fri, 10 May 2019 11:00:01 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Opinión]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Telecomunicaciones]]></category>
		<category><![CDATA[3dprinting]]></category>
		<category><![CDATA[5bits]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[servidor]]></category>
		<guid isPermaLink="false">http://borrowbits.com/?p=8333</guid>

					<description><![CDATA[<p>No soy muy amigo de las modas influencers, pero hay una que sí me parece interesante y a la que nos vamos a sumar. Tim Ferris los llama bullets, otros píldoras&#8230; y en este blog los llamaremos bits: Algo así como mis 5 bits de los viernes. ¿Necesita el mundo otra lista semanal? Probablemente no. [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2019/05/de-templarios-micropython-y-rootkits-cavernarios/" data-wpel-link="internal">De templarios, MicroPython y rootkits cavernarios</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>No soy muy amigo de las modas influencers, pero hay una que sí me parece interesante y a la que nos vamos a sumar. Tim Ferris los llama <a href="https://tim.blog/2019/01/15/5-bullet-friday-most-popular/" data-wpel-link="external" rel="external noopener noreferrer">bul</a><a href="https://go.tim.blog/5-bullet-friday-1/" data-wpel-link="external" rel="external noopener noreferrer">l</a><a href="https://tim.blog/2019/01/15/5-bullet-friday-most-popular/" data-wpel-link="external" rel="external noopener noreferrer">ets</a>, otros <em>píldoras</em>&#8230; y en este blog los llamaremos <em>bits</em>: </p>



<p>Algo así como mis 5 bits de los viernes. </p>



<p>¿Necesita el mundo otra lista semanal? Probablemente no. Tampoco necesitamos más spam (por eso no pienso enviarla por correo) ni más cuñados geek (lo siento, contra eso nada se puede hacer). </p>



<p>Sin embargo, por alguna extraña razón, los viernes suelo estar muy receptivo a este tipo de contenidos. Y si me ocurre a mí, tal vez a ti también. Aparte de ésta, vamos a copiar el formato por otras dos razones: </p>



<ul class="wp-block-list"><li>para dejar de machacar el Whatsapp de mis amigos con audios semanales. </li><li>para introducir más entropía en el Universo. </li></ul>



<p>Pero lo que más feliz me haría sería obtener un puñado de listas semanales en los comentarios que complementen y mejoren la mía. Ahí os dejo el guante <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Ahora sí, quedan inaugurados&#8230;</p>



<h2 class="wp-block-heading">Los 5 bits de Ángel</h2>



<h3 class="wp-block-heading"><strong> </strong>BIT #1: ¿Qué ando trasteando?<br></h3>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" height="785" width="770" decoding="async" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2019/05/Micropython-logo.svg_.png?resize=770%2C785&#038;ssl=1" alt="" class="wp-image-8338"/><figcaption>MicroPython le sienta como un guante al ESP8266. Y viceversa.</figcaption></figure></div>



<p> <strong>MicroPython. </strong>Recientemente compré un pack de libros de Python en <a href="https://www.humblebundle.com/books/python-oreilly-books?hmb_source=humble_home&amp;hmb_medium=product_tile&amp;hmb_campaign=mosaic_section_1_layout_index_2_layout_type_threes_tile_index_3_c_pythonbyoreilly_bookbundle" data-wpel-link="external" rel="external noopener noreferrer">Humble Bundle</a> (un plataforma <em>paga-lo-que-quieras</em> para donar una parte a organizaciones de caridad). Y a lo tonto, me ha picado el gusanillo (¿o la sierpe?) de programar de nuevo en Python, esta vez combinándolo con microcontroladores:  </p>



<p><a href="https://en.wikipedia.org/wiki/MicroPython" data-wpel-link="external" rel="external noopener noreferrer">MicroPython</a> es una implementación de Python 3 optimizada para correr en microcontroladores como el ESP8266. De momento me estoy limitando a <em>holamundear</em> con un <a href="https://borrowbits.com/2017/10/aprende-programar-nodemcu-esp8266-arduino-ide/" data-wpel-link="internal">NodeMCU</a>, pues no tengo tiempo para plantearme un proyecto más serio (aunque estoy abierto a sugerencias y colaboraciones). Si os interesa la combinación MicroPython + ESP8266, <a href="https://docs.micropython.org/en/latest/esp8266/tutorial/intro.html" data-wpel-link="external" rel="external noopener noreferrer">aquí tenéis un buen punto de partida</a>.   </p>



<p><br></p>



<h3 class="wp-block-heading"> BIT #2: ¿Qué ando viendo, leyendo y/o escuchando?</h3>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" height="380" width="770" decoding="async" src="https://i0.wp.com/areajugones.sport.es/wp-content/uploads/2017/11/bb-e1511978750707-810x400.jpg?resize=770%2C380&#038;ssl=1" alt="Resultado de imagen de knightfall"/><figcaption>La idea de &#8220;Knightfall&#8221; es buena, pero resulta algo inverosímil y a veces un tanto rosa.</figcaption></figure></div>



<p><strong>Viendo:</strong> <em>Knightfall</em>, una serie de Netflix sobre templarios y la búsqueda del Santo Grial. Sólo la recomiendo si no te importa que te tomen por idiota y si te gustan mucho las ambientaciones medievales con peleas de espadas. Dicho sea de paso y no como punto negativo: el rey Felipe IV de Francia es el estereotipo de rey medieval de cuento más exagerado que jamás he visto.<br></p>



<p><strong>Leyendo:</strong> <em>&#8220;Oriente y occidente&#8221;</em>, el epistolario del premio Novel hindú <a href="https://es.wikipedia.org/wiki/Rabindranath_Tagore" data-wpel-link="external" rel="external noopener noreferrer">Rabindranath Tagore</a>. Compré el libro en un &#8220;mercaíllo&#8221; de Granada y hasta ahora no había encontrado el momento de leerlo. Se trata de una recopilación de cartas en que el poeta manifiesta sus preocupaciones en torno a la confraternización de Oriente y Occidente, durante el desgarramiento de la Primera Guerra Mundial. <br></p>



<p><strong>Escuchando:</strong> bandas sonoras de Hans Zimmer, sobretodo la de Batman (<a href="https://www.youtube.com/watch?v=8-wAvbxB7D8" data-wpel-link="external" rel="external noopener noreferrer">&#8220;The Dark Knight&#8221; &#8211; Hans Zimmer / J. Newton Howard</a>). Estas OSTs son perfectas para concentrarse mientras trabajo en lo que yo llamo “modo leyenda” (es decir, con deadlines pisándome los talones). En noviembre iré a ver su show “<em>The World of Hans Zimmer</em>” en Dusseldorf. No puedo esperar :_) </p>



<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="The Dark Knight - Hans Zimmer /J. Newton Howard - LIVE" width="770" height="433" src="https://www.youtube.com/embed/8-wAvbxB7D8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<h3 class="wp-block-heading">BIT #3 ¿Qué app o herramienta me está cambiando la vida esta semana? <br></h3>



<p><strong>Rootkit Hunter (rkhunter). </strong>Hace poco sufrimos un ataque hacker con graves consecuencias que a <a href="https://borrowbits.com/contacto" data-wpel-link="internal">Vicente </a>y a mí nos ha costado un par de semanas subsanar (y una tonelada de puntos de SEO <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Aunque cometemos errores, aprendemos de ellos. Así que entre otras cosas, hemos echado a rodar rkhunter, un detector de rootkits que nos informa diariamente por e-mail si el sistema ha sido comprometido:</p>



<pre class="wp-block-code"><code>/usr/bin/rkhunter -c -sk 2>&amp;1 | mail -s "Informe de RootKits" foo@mail.com</code></pre>



<p>Por cierto, he aprovechado la ocasión para enterarme de una vez para qué sirve el famoso <a href="https://www.brianstorti.com/understanding-shell-script-idiom-redirect/" data-wpel-link="external" rel="external noopener noreferrer"><strong>2&gt;&amp;1</strong></a> en Linux y he aquí la explicación corta: hay dos lugares adonde un comando envía su output: <strong>stdout</strong> o <em>salida estándar</em> (1) y <strong>stderr</strong> o <em>error estándar</em> (2). Al escribir 2&gt;&amp;1 estamos diciendo &#8220;redirecciona también stderr al mismo lugar donde estamos mostrando stdout (la pantalla o en este caso a la función mail). <br></p>



<h3 class="wp-block-heading"><strong>BIT #4 ¿Qué ando imprimiendo en 3D? </strong><br></h3>



<figure class="wp-block-image"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/cdn.thingiverse.com/renders/62/7a/11/6e/46/8ef932217c869642aaedbee53b9be7b9_preview_featured.jpg?w=770&#038;ssl=1" alt=""/></figure>



<p>Esta semana no he tenido tiempo para diseñar algo especial. Pero para que mi <strong>Ender 3</strong> no se enfríe demasiado, me he imprimido (impreso?) un upgrade: se trata de una<strong> guía para el filamento</strong>, un brazo extensor para evitar que el cable se enrolle. En mi opinión el diseño de la Ender 3 está muy depurado y el problema no pasa a menudo, pero es una mejora interesante. Os dejo el enlace a los archivos de <a href="https://www.thingiverse.com/thing:2917932" data-wpel-link="external" rel="external noopener noreferrer">Thingiverse aquí</a>. <br></p>



<h3 class="wp-block-heading"> <br><strong>BIT #5 </strong> <strong>¿Qué cita/pensamiento ando ponderando?</strong><br></h3>



<blockquote class="wp-block-quote is-style-large is-layout-flow wp-block-quote-is-layout-flow"><p>“The cave you fear to enter, holds the treasure you seek”</p></blockquote>



<p>Esta frase tan potente la leí por primera vez en un libro de <a href="https://es.wikipedia.org/wiki/El_h%C3%A9roe_de_las_mil_caras" data-wpel-link="external" rel="external noopener noreferrer">Joseph Campbell</a> y desde entonces la he visto reproducida en muchas partes. Me gusta porque está conectada con esta creencia: </p>



<p><em>Crecemos en tanto que nos enfrentamos a nuestros miedos</em>. </p>



<p>Hace tiempo que procuro estar cómodo en la incomodidad, porque esa resistencia interna es una clara señal de crecimiento. Por eso, a veces lo único que se interpone entre nosotros y nuestras metas somos nosotros mismos. Y nuestra suscripción a Netflix&#8230;<br></p>
<p>La entrada <a href="https://borrowbits.com/2019/05/de-templarios-micropython-y-rootkits-cavernarios/" data-wpel-link="internal">De templarios, MicroPython y rootkits cavernarios</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2019/05/de-templarios-micropython-y-rootkits-cavernarios/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8333</post-id>	</item>
		<item>
		<title>Crear una web desde cero: ¿quién lo haría en su sano juicio?</title>
		<link>https://borrowbits.com/2018/07/crear-una-web-desde-cero-quien-lo-haria-en-su-sano-juicio/</link>
					<comments>https://borrowbits.com/2018/07/crear-una-web-desde-cero-quien-lo-haria-en-su-sano-juicio/#comments</comments>
		
		<dc:creator><![CDATA[Angel H.]]></dc:creator>
		<pubDate>Tue, 31 Jul 2018 16:22:32 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Programación Web]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">http://borrowbits.com/?p=8056</guid>

					<description><![CDATA[<p>El otro día me topé con un artículo de Hackanoon que planteaba algunas ventajas de desarrollar una web desde cero. A la brava. A pelo. From scratch... El autor asegura que prefiere desarrollar sus productos línea a línea, sin usar librerías ni frameworks. Que así es como uno aprende, dice. Y la verdad es que [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2018/07/crear-una-web-desde-cero-quien-lo-haria-en-su-sano-juicio/" data-wpel-link="internal">Crear una web desde cero: ¿quién lo haría en su sano juicio?</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>El otro día me topé con un<a href="https://hackernoon.com/the-advantages-of-building-your-website-from-scratch-da5748a1baaf" data-wpel-link="external" rel="external noopener noreferrer"> artículo de Hackanoon</a> que planteaba algunas ventajas de desarrollar una web desde cero. A la brava. A pelo. <em>From scratch..</em>.</p>
<p>El autor asegura que prefiere desarrollar sus productos línea a línea, sin usar librerías ni frameworks. Que así es como uno aprende, dice. Y la verdad es que estoy de acuerdo en ese punto: desarrollar un website desde cero es la mejor forma de aprender.</p>
<p>¿Pero proporciona alguna otra ventaja interesante? ¿Merece la pena la inversión de esfuerzo? Y lo más importante: ¿quién en su sano juicio programaría en 2019 una página web etiqueta a etiqueta?</p>
<p>La pregunta puede resultar algo capciosa. Primero hablemos de ventajas e inconvenientes:</p>
<h2>Inconvenientes de programar un sitio web desde cero</h2>
<h3>I. Poco ágil</h3>
<p>En ciertos proyectos el time-to-market es de vital importancia. Desde ese punto de vista, desarrollar desde cero no es nada ágil, sobretodo si estamos en un marco de trabajo tipo Scrum o si el objetivo es montar un prototipo. Reciclar código de terceros, total o parcialmente, permitiría hacer una web mucho más rápido.</p>
<h3>II. Curva de aprendizaje</h3>
<p>Los lenguajes front-end deben convertirse en tu segundo idioma. Eso requiere mayor tiempo de aprendizaje del que necesitas para adaptar un simple framework. Para eso sólo tendrás que leerte la documentación sin necesidad de entender qué hay debajo..</p>
<p>Además de ser un experto en esos lenguajes también deberás dominar las buenas prácticas de programación. Y hay que hacer mucho hincapié en esto, pues los frameworks ya implementan esas buenas prácticas.</p>
<h3>III. Difícil de mantener</h3>
<p>El código escrito desde cero requiere mayor esfuerzo de mantenimiento. Refactorizar y actualizar será una tarea constante durante el ciclo de vida. En ese sentido se trata de una responsabilidad muy grande. Casi como cuidar de un perro o un gato. Además esto implica un requisito adicional: mantenerte constantemente informado y formado, para que tu producto no deje de funcionar después del último release de Firefox.</p>
<h3>IV. Compatibilidad entre navegadores</h3>
<p>Muchos frameworks ya vienen preparados para cubrir las particularidades de múltiples plataformas. Hacer una aplicación cross-browser a pelo puede ser una tarea mortificante, que puede llevar a tener que reescribir un CSS diferente para cada navegador.</p>
<h3>V. Coste elevado</h3>
<p>El esfuerzo necesario para desarrollar desde cero una web puede ser mucho mayor que si partimos de un template. Esto se traduce, naturalmente, en un incremento en los costes ya sea en tiempo, dinero o ambos. Sin embargo, en el largo plazo es posible que se dé justamente la situación contraria&#8230;</p>
<p>Pero esto lo veremos en las ventajas:<strong class="markup--strong markup--p-strong"><br />
</strong></p>
<h2>Ventajas de programar un sitio web desde cero</h2>
<h3>I. Aprendizaje acelerado</h3>
<p>Si programas a pelo, vas a aprender sí o sí. Puede que al principio tú código no sea el más limpio, pero a la larga te convertirías en un verdadero experto, cosa que no lograrías se te limitaras a usar o modificar un framework. De hecho hoy día no es fácil encontrar expertos con un entendimiento profundo de un lenguaje de programación, son rara avis muy cotizados.Desde ese punto de vista también es una ventaja, pues es una inversión para tu currículum.</p>
<h3 id="72f1" class="graf graf--h4 graf-after--p">II. Máximo control<strong class="markup--strong markup--h4-strong"><br />
</strong></h3>
<p>Programar línea a línea te proporciona una comprensión de tu proyecto casi absoluta. Sabes exactamente qué es lo que hay y cómo está hecho. Conoces sus puntos fuertes y sus puntos débiles. Esto te permite mantenerlo limpio y eficiente hasta puntos insospechados. Sin contar con la facilidad para detectar bugs o malfuncionamientos, lo cual te ahorraría en el largo plazo muchos quebraderos de cabeza.</p>
<h3 id="3ca8" class="graf graf--h4 graf-after--p">III. Tu código, tus reglas<strong class="markup--strong markup--h4-strong"><br />
</strong></h3>
<p>Cuando adaptas una plantilla/framework de terceros tienes que someterte al criterio de otros. Programar es una actividad creativa, algunos de hecho lo consideraran un arte. Programar a tu manera no sólo te va a permitir desarrollar tu creatividad, también te va a permitir desarrollar nuevos patrones mentales para alcanzar un diseño con mínimo esfuerzo.</p>
<h3 id="6dc1" class="graf graf--h4 graf-after--p">IV. Optimización al máximo</h3>
<p id="65c7" class="graf graf--p graf-after--h4">Muchas librerías incluyen una cantidad de funciones que quizás en tu proyecto nunca utilizarás. Por eso, en un código artesano nunca verás líneas HTML de más, ni funciones JS que están ahí sin que sean utilizadas. Además podrás introducir mejoras de rendimiento específicas para tus requisitos, cosa que sólo puede hacerse a mano y después de un profundo análisis.</p>
<h3>V. Independencia</h3>
<p>Esta ventaja compensa la dificultad del mantenimiento, pues nuestra aplicación no depende de las actualizaciones (o ausencia de ellas) por parte del proveedor del framework. Nuestra web nunca estaría sometida por las cadenas caprichosas de un tercero.</p>
<h2>Cuándo usar plantillas o frameworks</h2>
<div class="u-serif-font-main--large">
<div class="ui_qtext_expanded">
<p>Yo era uno de esos espíritus barbudos y puristas de la vieja escuela que programaban todo en Linux con <em>vim</em>. Me sentía como <a href="http://borrowbits.com/2013/10/comic-autoimagen-positiva-asi-te-ve-tu-novia-cuando-programas/" data-wpel-link="internal">el Elegido modificando el código de la Matrix</a>. Así que comprendo el placer demiúrgico que proporciona el control absoluto del código, sin asistentes ni librerías. Todo un espartano del software&#8230; y también una máquina de perder tiempo. Puede que los templates no sean la solución para todo website, pero <strong>sin duda hacen nuestra vida mucho más fácil</strong>, nos ahorran tiempo y en ciertas situaciones los consideraría una herramienta imprescindible.</p>
<p><img data-recalc-dims="1" decoding="async" class="size-full wp-image-4490" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?resize=770%2C382" alt="Asi se ve un programador desde fuera" width="770" height="382" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?w=1500&amp;ssl=1 1500w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?resize=300%2C149&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?resize=768%2C381&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?resize=1024%2C508&amp;ssl=1 1024w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?resize=370%2C184&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?resize=270%2C134&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?resize=570%2C283&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2013/10/comic3-borrowbits-autimagen-positiva-copia-1.jpg?resize=740%2C367&amp;ssl=1 740w" sizes="(max-width: 770px) 100vw, 770px" /></p>
<p>Por ejemplo, hay determinados casos en los que <strong>el esfuerzo adicional de programar desde cero no va a resultar en un mayor beneficio</strong> final; de hecho es muy probable que los beneficios obtenidos por una parte se pierdan al compensar la inversión adicional de tiempo y dinero. Es una cuestión de economía conocida como <a href="http://economipedia.com/definiciones/ley-de-rendimientos-decrecientes.html" data-wpel-link="external" rel="external noopener noreferrer">ley de los rendimientos decrecientes</a>. Esto no significa que debamos hacer las cosas siempre deprisa y barato, sino que siempre debemos calibrar el ratio coste-beneficio.</p>
<p>Aclarado esto, hay que tener en cuenta que<strong> todas las plantillas y frameworks tienen sus limitaciones</strong>. En el caso del desarrollo front-end las plantillas son excelentes herramientas para hacer prototipado rápido del diseño tanto gráfico como funcional. Por cierto que muchas plantillas y frameworks están llenas de pequeños &#8220;hacks&#8221; para lograr que la vaina funcione, y que en algún punto nos pueden hacer perder el control (tanto del código como de los nervios <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Además, su naturaleza suele ser &#8220;genérica&#8221;. Nunca encontrarás una plantilla que esté perfectamente ajustada a tu proyecto web, que no necesite el más mínimo retoque. No existen plantillas descargables para webs que son únicas en su naturaleza, como Facebook, Twitter o Gmail. ¡Alguien tuvo que desarrollarlas a pelo en algún momento!</p>
<p class="ui_qtext_para"><strong>Entonces, ¿cuándo es conveniente usar plantillas y/o frameworks?</strong></p>
<p>1) <strong>Cuando necesites desarrollar un prototipo o un MVP</strong> (producto mínimo viable) en el menor tiempo posible.</p>
<p>2) <strong>Enfoque mix-and-match:</strong> montar un layout cross-browser que sirva de base, aprovechando el grid de una plantilla, reciclando módulos pre-fabricados de un framework o los elementos de compatibilidad de otro. Este enfoque me gusta mucho porque es una solución híbrida entre usar plantillas y programar desde cero.</p>
<p>3)<strong> Si tu trabajo no sufrirá muchos cambios funcionales o técnicos</strong> a lo largo del tiempo. Es decir, si tu código no necesita mucho mantenimiento. Por ejemplo, la web corporativa de una panadería de barrio. En este caso puedes permitirte depender de un framework en producción.</p>
<p>4) <strong>En proyectos Agile</strong> el framework base puede ir optimizándose, adaptándose al caso particular o eliminándose de forma progresiva.</p>
<p>5) <strong>Perfect match</strong>: en la rara situación de que la plantilla se adapte perfectamente a tu caso particular.</p>
</div>
</div>
<h2>A modo de conclusión</h2>
<p class="jumbo-large">No te dejes engañar por la pregunta del título. Yo creo que a veces <strong>tiene mucho sentido desarrollar un producto web desde cero</strong>. No me parece ninguna locura, a pesar de la tendencia actual de usar frameworks para todo, especialmente <strong>si estamos desarrollando algo muy específico</strong> para lo que no existen templates ni frameworks ni librerías adecuadas.</p>
<p class="jumbo-large">Por otra parte hay que tener cuidado con lo de dejarse llevar por el perfeccionismo ni por ese afán de <strong>programar por amor a la misma programación</strong>. Decía Shaw:</p>
<p class="jumbo-large"><em>¿Qué hombre inteligente si le dieran a elegir escoger entre vivir sin rosas o vivir sin berzas no correría a asegurar las berzas?</em></p>
<p class="jumbo-large">Así pues, usemos el sentido común para determinar: 1) cuál es nuestro caso y 2) hasta qué punto nos conviene 2.1) trabajar &#8220;from scratch&#8221;, 2.2) utilizar una plantilla o 2.3) un enfoque mix-and-match.</p>
<p>¿Y vosotros, qué opináis?</p>
<p>La entrada <a href="https://borrowbits.com/2018/07/crear-una-web-desde-cero-quien-lo-haria-en-su-sano-juicio/" data-wpel-link="internal">Crear una web desde cero: ¿quién lo haría en su sano juicio?</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2018/07/crear-una-web-desde-cero-quien-lo-haria-en-su-sano-juicio/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8056</post-id>	</item>
		<item>
		<title>Cómo descargar un backup de todas tus publicaciones de Tumblr  (y guardarlo en el formato que quieras)</title>
		<link>https://borrowbits.com/2016/12/como-descargar-un-backup-de-todas-tus-publicaciones-de-tumblr-y-guardarlo-en-el-formato-que-quieras/</link>
					<comments>https://borrowbits.com/2016/12/como-descargar-un-backup-de-todas-tus-publicaciones-de-tumblr-y-guardarlo-en-el-formato-que-quieras/#respond</comments>
		
		<dc:creator><![CDATA[Angel H.]]></dc:creator>
		<pubDate>Sun, 04 Dec 2016 17:42:46 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Tumblr]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xslt]]></category>
		<guid isPermaLink="false">http://borrowbits.com/?p=7719</guid>

					<description><![CDATA[<p>Tras una breve pero tortuosa investigación, os comparto la solución a un problema que parece estar poco documentado: cómo guardar todas las publicaciones de una cuenta de Tumblr en un documento de Word, Writer, Google Drive, HTML (o el formato que queráis). En mi caso particular, lo que pretendía era obtener un backup de todos [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2016/12/como-descargar-un-backup-de-todas-tus-publicaciones-de-tumblr-y-guardarlo-en-el-formato-que-quieras/" data-wpel-link="internal">Cómo descargar un backup de todas tus publicaciones de Tumblr  (y guardarlo en el formato que quieras)</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img data-recalc-dims="1" decoding="async" class="aligncenter size-full wp-image-7724" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=770%2C418" alt="tutorialtumblrxml_5" width="770" height="418" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?w=931&amp;ssl=1 931w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=300%2C163&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=768%2C417&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=370%2C201&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=270%2C147&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=570%2C310&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=740%2C402&amp;ssl=1 740w" sizes="(max-width: 770px) 100vw, 770px" /></p>
<p>Tras una breve pero tortuosa investigación, os comparto la solución a un problema que parece estar poco documentado: <strong>cómo guardar todas las publicaciones de una cuenta de Tumblr</strong> en un documento de Word, Writer, Google Drive, HTML (o el formato que queráis).</p>
<p>En mi caso particular, lo que pretendía era obtener un backup de todos mis posts publicados en Tumblr hasta la fecha, y almacenarlos posteriormente en un documento de Word.</p>
<p>Al principio, se me ocurrió lo más evidente: ir copiando las entradas una a una, mediante copy-paste manual, hasta que me dí cuenta de que tenía cerca de 200 entradas.</p>
<p>Aquí os presento una solución bastante cutre, pero rápida en la misma medida.</p>
<p>Si tienes prisa y no quieres leer milongas, haz <em>scroll down</em> hasta donde pone <strong>Resumen express</strong>. Si en cambio quieres saber lo que estás haciendo, sigue leyendo desde aquí:</p>
<h2>Problema 1: cómo descargar de un plumazo todo el contenido de Tumblr</h2>
<p>A diferencia de Twitter, la plataforma Tumblr no incluye &#8211; a día de hoy &#8211; una función que te permita descargar todos tus posts de un golpe, a modo de backup.</p>
<p>Si a estas alturas se te ha ocurrido utilizar el feed RSS (que se obtiene a través de &#8220;usuario.tumblr.com/rss&#8221;) ya te puedes ir olvidando: sólo descarga las 10 ó 15 publicaciones últimas. Hace falta algo más sofisticado.</p>
<p>Existen plataformas de pago como <a href="http://www.frostbox.com/" data-wpel-link="external" rel="external noopener noreferrer">Frostbox</a> que te permiten hacer copias de seguridad de los timeline de casi todas tus redes sociales. El problema es que no tienen un servicio de un solo uso: tienes que suscribirte y pagar durante meses o años. Así pues, para este caso particular no es una solución adecuada. <sub>Además, para estas cosas soy un poco rata&#8230;</sub></p>
<p>En fin, que lo más sencillo para este caso sería utilizar la app gratuita online <a href="http://tumblr2wordpress.benapps.net/" data-wpel-link="external" rel="external noopener noreferrer">Tumblr2Wordpress</a>. Lo único que hace es descargar todo el contenido de una cuenta cualquiera de Tumblr en un archivo XML de WordPress.</p>
<p>En la siguiente imagen tenéis un &#8220;paso a paso&#8221; simplificado:</p>
<p><img data-recalc-dims="1" decoding="async" class="aligncenter wp-image-7720 size-full" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_1.jpg?resize=665%2C662" alt="tutorialtumblrxml_1" width="665" height="662" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_1.jpg?w=665&amp;ssl=1 665w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_1.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_1.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_1.jpg?resize=370%2C368&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_1.jpg?resize=270%2C269&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_1.jpg?resize=570%2C567&amp;ssl=1 570w" sizes="(max-width: 665px) 100vw, 665px" /></p>
<p>Debo advertiros que, al exportar una cuenta de Tumblr así, se podría perder información valiosa: metadatos, comentarios, ciertos posts multimedia&#8230; Es importante que le echéis un ojo al fichero XML y os vayáis a la sección de &#8220;Warnings&#8221; para comprobar si se ha quedado algo pendiente:</p>
<p><img data-recalc-dims="1" decoding="async" class="aligncenter wp-image-7721 size-full" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_2.jpg?resize=624%2C372" alt="tutorialtumblrxml_2" width="624" height="372" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_2.jpg?w=624&amp;ssl=1 624w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_2.jpg?resize=300%2C179&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_2.jpg?resize=370%2C221&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_2.jpg?resize=270%2C161&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_2.jpg?resize=570%2C340&amp;ssl=1 570w" sizes="(max-width: 624px) 100vw, 624px" /></p>
<h2>Problema 2: cómo convertir o renderizar un archivo XML de WordPress en HTML &#8220;bonito&#8221;</h2>
<p>El problema lo hemos solucionado, pero sólo parcialmente: ahora tenemos nuestro contenido descargado en un archivo XML que sólo WordPress comprende. La pregunta que surge de forma natural en las mentes despiertas es:</p>
<p>¿Existe alguna forma de &#8220;parsear&#8221; ese archivo XML de WordPress en un HTML &#8220;bonito&#8221; que podamos copiar y pegar en un documento de Word?</p>
<p>Sí, claro que la hay.</p>
<p><strong><del>Solución 2.1:</del></strong> podrías simplemente <a href="http://quickguide.tumblr.com/post/39780378703/backing-up-your-tumblr-blog-to-wordpress" data-wpel-link="external" rel="external noopener noreferrer">importar tu archivo XML</a> en una cuenta de WordPress, pero entonces estaríamos igual que al principio, con la diferencia de que el contenido estará alojado en WordPress en lugar de Tumblr.</p>
<p><strong><del>Solución 2.2:</del> </strong><a href="http://stackoverflow.com/questions/13046601/parsing-xml-with-xslt-in-wordpress" data-wpel-link="external" rel="external noopener noreferrer">algunos</a> sugieren utilizar el procesador XML embebido de WordPress para mostrar ese contenido ya renderizado y procesado como HTML en el navegador. El objetivo sería crear un pequeño script PHP para leer ese XML automáticamente con un <em>include_once</em> de ese script (el archivo XML debe estar cargado en alguna carpeta del servidor accesible por WordPress)&#8230; Pero bueno, a estas alturas seguro que os habéis dado cuenta de que soy un poco vago. Además mis superpoderes de programación están un poco oxidados. Y lo más importante: hoy es domingo.</p>
<p>He aquí una solución rápida y elegante:</p>
<h3><strong>Solución 2.3:</strong> traducir XML WordPress en HTML mediante fichero XSLT</h3>
<p>Una de las características que hace de XML en un formato tan potente es su flexibilidad para ser transformado en cualquier otra cosa que no sea XML. Para este asunto particular, existe un estándar llamado <strong><a href="http://www.daniel.prado.name/articulos-xsl-xslt.asp" data-wpel-link="external" rel="external noopener noreferrer">XSLT</a></strong> o también <strong>Transformaciones XSL</strong>. Mediante una hoja de estilo XSLT, podemos realizar una traducción de unas reglas XML en otras. En este caso, necesitamos un fichero XSLT que permita convertir el fichero XML de WordPress en HTML de toda la vida.</p>
<p>Aunque nosotros mismos podríamos escribir estas traducciones, invertiríamos demasiada energía, y yo ya he buscado para vosotros el dichoso archivo.</p>
<p>Hélo <a href="https://gist.github.com/tts/4977062" data-wpel-link="external" rel="external noopener noreferrer">aquí</a>, en GibHub:</p>
<p><script src="https://gist.github.com/tts/4977062.js"></script></p>
<p>Una vez lo hayamos descargado, sólo tenemos que llevárnoslo a cualquiera de los muchos conversores-parseadores-formateadores que hay en Internet, como <a href="https://www.coolutils.com/online/XML-to-DOC#" data-wpel-link="external" rel="external noopener noreferrer">CoolUtils.com</a> o <a href="http://www.freeformatter.com/xsl-transformer.html" data-wpel-link="external" rel="external noopener noreferrer">FreeFormater.com</a>.</p>
<p>En el ejemplo he usado el segundo, <strong>FreeFormater</strong>, que a mí me funcionó mejor:</p>
<p><img data-recalc-dims="1" decoding="async" class="aligncenter size-full wp-image-7723" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_4.jpg?resize=539%2C602" alt="tutorialtumblrxml_4" width="539" height="602" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_4.jpg?w=539&amp;ssl=1 539w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_4.jpg?resize=269%2C300&amp;ssl=1 269w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_4.jpg?resize=370%2C413&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_4.jpg?resize=270%2C302&amp;ssl=1 270w" sizes="(max-width: 539px) 100vw, 539px" /></p>
<p>Entonces obtendremos un output completamente en HTML que podremos guardar en un fichero .html, que a su vez podremos abrir con nuestro editor de texto favorito: Word, Libre Office, Google Drive, etc:</p>
<p><img data-recalc-dims="1" decoding="async" class="aligncenter size-full wp-image-7724" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=770%2C418" alt="tutorialtumblrxml_5" width="770" height="418" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?w=931&amp;ssl=1 931w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=300%2C163&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=768%2C417&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=370%2C201&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=270%2C147&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=570%2C310&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/12/tutorialtumblrxml_5.jpg?resize=740%2C402&amp;ssl=1 740w" sizes="(max-width: 770px) 100vw, 770px" /></p>
<h2>Resumen Express</h2>
<p>&#8220;No me calientes la cabeza y dime cómo se hace&#8221;.</p>
<p>Ok, si te pones así&#8230; aquí va la versión resumida de todo lo que hemos visto arriba:</p>
<ul>
<li><strong>Paso 1) Descarga todo el contenido de tu Tumblr con <a href="http://tumblr2wordpress.benapps.net/" data-wpel-link="external" rel="external noopener noreferrer">Tumblr2Wordpress</a>.</strong></li>
<li><strong>Paso 2) Descarga <a href="https://gist.github.com/tts/4977062" data-wpel-link="external" rel="external noopener noreferrer">esta hoja XSLT</a>.</strong></li>
<li><strong>Paso 3) Transforma el XML mediante el XSLT, subiendo ambos archivos a la aplicación <a href="http://www.freeformatter.com/xsl-transformer.html" data-wpel-link="external" rel="external noopener noreferrer">FreeFormater</a>.</strong></li>
<li><strong>Paso 4) Copia y pega el código HTML resultante en un fichero de tu PC.</strong></li>
<li><strong>Paso 5) Ábrelo con Libre Office, Word, Drive, etc. </strong></li>
</ul>
<p>&nbsp;</p>
<p>Espero que os sea útil. Quedo a vuestra disposición en comentarios si necesitáis ayuda o aclaraciones.</p>
<p>¡Feliz domingo!</p>
<p>La entrada <a href="https://borrowbits.com/2016/12/como-descargar-un-backup-de-todas-tus-publicaciones-de-tumblr-y-guardarlo-en-el-formato-que-quieras/" data-wpel-link="internal">Cómo descargar un backup de todas tus publicaciones de Tumblr  (y guardarlo en el formato que quieras)</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2016/12/como-descargar-un-backup-de-todas-tus-publicaciones-de-tumblr-y-guardarlo-en-el-formato-que-quieras/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7719</post-id>	</item>
		<item>
		<title>4 razones para usar GIT</title>
		<link>https://borrowbits.com/2016/06/4-razones-para-usar-git/</link>
					<comments>https://borrowbits.com/2016/06/4-razones-para-usar-git/#comments</comments>
		
		<dc:creator><![CDATA[Vicente]]></dc:creator>
		<pubDate>Wed, 08 Jun 2016 18:30:48 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>
		<guid isPermaLink="false">http://borrowbits.com/?p=7510</guid>

					<description><![CDATA[<p>Git es un sistema de control de versiones que está enfocado en la flexibilidad para los programadores y provee herramientas para gestión de equipos de desarrollo. En su sitio oficial se define como: Git es un sistema de control de versiones libre diseñado para desarrollar todo tipo de proyectos, grandes y pequeños con velocidad y eficacia. [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2016/06/4-razones-para-usar-git/" data-wpel-link="internal">4 razones para usar GIT</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="http://borrowbits.com/2016/06/4-razones-para-usar-git/git-goodness/" rel="attachment wp-att-7517" data-wpel-link="internal"><br />
</a><a href="http://borrowbits.com/2016/06/4-razones-para-usar-git/git-goodness/" rel="attachment wp-att-7517" data-wpel-link="internal"><img data-recalc-dims="1" decoding="async" class="aligncenter size-large wp-image-7517" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1-1024x512.png?resize=770%2C385" alt="git-goodness" width="770" height="385" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?resize=1024%2C512&amp;ssl=1 1024w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?resize=300%2C150&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?resize=768%2C384&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?resize=370%2C185&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?resize=270%2C135&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?resize=570%2C285&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?resize=740%2C370&amp;ssl=1 740w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?w=1600&amp;ssl=1 1600w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/git-goodness-1.png?w=1540&amp;ssl=1 1540w" sizes="(max-width: 770px) 100vw, 770px" /></a><a href="http://borrowbits.com/2016/06/4-razones-para-usar-git/git-goodness/" rel="attachment wp-att-7517" data-wpel-link="internal"><br />
</a>Git es un sistema de control de versiones que está enfocado en la flexibilidad para los programadores y provee herramientas para gestión de equipos de desarrollo. <a title="Official site Git" href="https://git-scm.com/" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">En su sitio oficial</a> se define como:</p>
<blockquote><p>Git es un sistema de control de versiones libre diseñado para desarrollar todo tipo de proyectos, grandes y pequeños con velocidad y eficacia.</p></blockquote>
<p>Sin embargo y a pesar de que es el líder actualmente y a desplazado a su gran rival SVN, es fácil encontrar equipos de desarrollo que aún rechazan usarlo y es por ello que vamos a enumerar una serie de ventajas que posee y los motivos para usarlo:</p>
<p>&nbsp;</p>
<p><strong>Git cuenta con la mayor comunidad de desarrolladores</strong></p>
<p>Actualmente, Git es el sistema de control de versiones mayormente usado y es por ello que posee la mayor comunidad, con las ventajas que ello conlleva ya que cuando te encuentres un problema, encontrarás rápidamente la solución en la multitud de foros y chat que hay dedicados a Git.</p>
<p><figure id="attachment_7513" aria-describedby="caption-attachment-7513" style="width: 900px" class="wp-caption aligncenter"><a href="http://borrowbits.com/2016/06/4-razones-para-usar-git/google_trends_git_svn/" rel="attachment wp-att-7513" data-wpel-link="internal"><img data-recalc-dims="1" decoding="async" class="wp-image-7513 size-large" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn-1024x355.png?resize=770%2C267" alt="git_vs_svn" width="770" height="267" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn.png?resize=1024%2C355&amp;ssl=1 1024w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn.png?resize=300%2C104&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn.png?resize=768%2C267&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn.png?resize=370%2C128&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn.png?resize=270%2C94&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn.png?resize=570%2C198&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn.png?resize=740%2C257&amp;ssl=1 740w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/google_trends_git_svn.png?w=1115&amp;ssl=1 1115w" sizes="(max-width: 770px) 100vw, 770px" /></a><figcaption id="caption-attachment-7513" class="wp-caption-text">Git &#8212; Azul, SVN &#8212; Rojo, Mercurial &#8212; Amarillo</figcaption></figure></p>
<p>&nbsp;</p>
<p><strong>Repositorios en la nube</strong></p>
<p>Git tiene los mejores repositorios en la nube para manejar tus proyectos, los cuales permiten que tu tengas un control completo de todo tu código y permite el acceso y la posibilidad de estar conectado con tu equipo, sin importar si se encuentran en la otra punta del planeta. Cuando eliges un repositorio git, posees un gran abanico de posibilidades para correr tu proyecto localmente o en la nube, pagando o incluso teniendo una versión gratuita, compartiendo tu código con la comunidad o manteniéndolo privado.</p>
<p><a href="http://borrowbits.com/2016/06/4-razones-para-usar-git/github_bitbutcket/" rel="attachment wp-att-7514" data-wpel-link="internal"><img data-recalc-dims="1" decoding="async" class="aligncenter size-full wp-image-7514" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/github_bitbutcket.png?resize=523%2C300" alt="github_bitbutcket" width="523" height="300" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/github_bitbutcket.png?w=523&amp;ssl=1 523w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/github_bitbutcket.png?resize=300%2C172&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/github_bitbutcket.png?resize=370%2C212&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/github_bitbutcket.png?resize=270%2C155&amp;ssl=1 270w" sizes="(max-width: 523px) 100vw, 523px" /></a></p>
<p align="left"><strong>Lo usan los grandes</strong></p>
<p align="left">Cuando hablamos de tecnología siempre debemos mirar de reojo cómo están desarrollando los grandes, Facebook, Google, Microsoft, etc y si nos dirigimos al sitio web de Git vemos que todos ellos los están haciendo. Y no sólo lo usan los grandes sino que los mayores proyectos a nivel mundial también lo usan. Precisamente, Git nació como sistema de control de versiones de Linux de la mano del gran Linus Torvals. Hoy en día, Google usa Git para el proyecto Android</p>
<p align="left"> <a href="http://borrowbits.com/2016/06/4-razones-para-usar-git/companies_using_git/" rel="attachment wp-att-7515" data-wpel-link="internal"><img data-recalc-dims="1" decoding="async" class="aligncenter size-full wp-image-7515" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/companies_using_Git-1.jpg?resize=770%2C164" alt="companies_using_Git" width="770" height="164" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/companies_using_Git-1.jpg?w=971&amp;ssl=1 971w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/companies_using_Git-1.jpg?resize=300%2C64&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/companies_using_Git-1.jpg?resize=768%2C164&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/companies_using_Git-1.jpg?resize=370%2C79&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/companies_using_Git-1.jpg?resize=270%2C58&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/companies_using_Git-1.jpg?resize=570%2C122&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/companies_using_Git-1.jpg?resize=740%2C158&amp;ssl=1 740w" sizes="(max-width: 770px) 100vw, 770px" /></a></p>
<p align="left"><strong>Operaciones de despliegue</strong></p>
<p align="left">Hoy en día, los servidores de aplicaciones en la nube son capaces de realizar automáticamente el despliegue de tu rama master a producción usando git hooks, el cual es una potentísima herramienta para automatizar scripts una vez que el commit definitivo está hecho. Servidores como Google App Engine o Amazon Web Services permiten que hagas esto, el cual no es sólo una manera segura y cómoda sino que también es la manera más limpia de mantener la integridad de tu código cuando despliegas a producción.</p>
<p align="left"><a href="http://borrowbits.com/2016/06/4-razones-para-usar-git/deploy_servers/" rel="attachment wp-att-7516" data-wpel-link="internal"><img data-recalc-dims="1" decoding="async" class="aligncenter size-large wp-image-7516" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers-1024x340.jpg?resize=770%2C256" alt="deploying_servers" width="770" height="256" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?resize=1024%2C340&amp;ssl=1 1024w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?resize=300%2C100&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?resize=768%2C255&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?resize=370%2C123&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?resize=270%2C90&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?resize=570%2C189&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?resize=1500%2C500&amp;ssl=1 1500w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?resize=740%2C246&amp;ssl=1 740w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2016/06/deploy_servers.jpg?w=1600&amp;ssl=1 1600w" sizes="(max-width: 770px) 100vw, 770px" /></a></p>
<p align="left">Estas son sólo cuatro motivos para usar Git pero estoy seguro de que vosotros tenéis muchos más para hacerlo. ¿Por qué no los compartís con nosotros?</p>
<p align="left">También aprovecho para recomendaros <a href="http://amzn.to/2bOC2o0" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">el mejor libro sobre GIT en habla hispana a un precio super reducido.</a></p>
<p>La entrada <a href="https://borrowbits.com/2016/06/4-razones-para-usar-git/" data-wpel-link="internal">4 razones para usar GIT</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2016/06/4-razones-para-usar-git/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7510</post-id>	</item>
		<item>
		<title>Los lenguajes de programación más utilizados en 2015</title>
		<link>https://borrowbits.com/2015/08/los-lenguajes-de-programacion-mas-utilizados-en-2015/</link>
					<comments>https://borrowbits.com/2015/08/los-lenguajes-de-programacion-mas-utilizados-en-2015/#respond</comments>
		
		<dc:creator><![CDATA[Vicente]]></dc:creator>
		<pubDate>Sat, 15 Aug 2015 18:10:10 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[lenguajes]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[symphony]]></category>
		<guid isPermaLink="false">http://borrowbits.com/?p=7054</guid>

					<description><![CDATA[<p>Si eres programador, tienes que estar atento siempre a las últimas tendencias y cuáles son los lenguajes de programación más utilizados. En un mundo tan cambiante como el tecnológico, los lenguajes de programación van evolucionando también de manera vertiginosa. Para aprender sobre ellos, la opción más seguida en nuestro país es optar por la formación de [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2015/08/los-lenguajes-de-programacion-mas-utilizados-en-2015/" data-wpel-link="internal">Los lenguajes de programación más utilizados en 2015</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Si eres programador, tienes que estar atento siempre a las últimas tendencias y cuáles son los lenguajes de programación más utilizados. En un mundo tan cambiante como el tecnológico, los lenguajes de programación van evolucionando también de manera vertiginosa. Para aprender sobre ellos, la opción más seguida en nuestro país es optar por la formación de grado en informática aunque es cierto que cada vez más personas prefieren aprenderlo de manera autodidacta.</p>
<p>Ahora vamos a hacer un repaso a los cinco lenguajes  más utilizados y por tanto los que más profesionales están demandando:</p>
<p><strong>1. Java</strong></p>
<p>Java es uno de los lenguajes más populares para crear aplicaciones web. Con Java y su framework más utilizado Spring, puedes crear una aplicación web escalable para una gran cantidad de usuarios. Eso unido a que Android es, quizá, la plataforma móvil estrella incrementa el interés por este lenguaje ya que esta plataforma  está basada en Java</p>
<p><strong>2. Javascript</strong></p>
<p>El archiconocido JS está presente en todos los sitios webs. Desde el cliente hasta el servidor y permite dotar a tu sitio web de efectos que encandilarán a tus visitantes de una manera fácil usando su biblioteca más extendida, JQuery.</p>
<p><strong>3. C#</strong></p>
<p>C# es el lenguaje más extendido para el desarrollo de aplicaciones y servicios de Microsoft. Además también para los desarrolladores de videojuegos es imprescindible este lenguaje ya que la plataforma Unity usa C# como uno de sus principales lenguajes.</p>
<p><strong>4. PHP</strong></p>
<p>¿En tu web haces uso de accesos a BBDD? PHP  junto con bases de datos como MySQL, son herramientas muy útiles para desarrollar una plataforma web. Debemos también recordar que la tecnología para gestionar éste y miles de blogs (WordPress) está basada en PHP. Frameworks populares de PHP son Symfony y CakePHP</p>
<p><strong>5. Python</strong></p>
<p>Si sabes programar en Python, saber hacer prácticamente de todo. Sólo te queda elegir el framework adecuado y podrás desarrollar aplicaciones web, interfaces de usuario incluso podrás analizar de datos y obtener estadísticas sobre los mismos.</p>
<p>Aparte de los cinco que he elegido, existen multitud de lenguajes muy utilizados pero estos reclaman un gran porcentaje de los puestos de trabajo que a día de hoy son demandados. ¿Cuál incorporarías a nuestra lista?</p>
<p>&nbsp;</p>
<p>La entrada <a href="https://borrowbits.com/2015/08/los-lenguajes-de-programacion-mas-utilizados-en-2015/" data-wpel-link="internal">Los lenguajes de programación más utilizados en 2015</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2015/08/los-lenguajes-de-programacion-mas-utilizados-en-2015/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7054</post-id>	</item>
		<item>
		<title>¡Dame tus contraseñas!</title>
		<link>https://borrowbits.com/2015/08/6855/</link>
					<comments>https://borrowbits.com/2015/08/6855/#comments</comments>
		
		<dc:creator><![CDATA[Rafa M.]]></dc:creator>
		<pubDate>Mon, 10 Aug 2015 06:00:29 +0000</pubDate>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[contraseñas]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[seguridad]]></category>
		<guid isPermaLink="false">http://borrowbits.com/?p=6855</guid>

					<description><![CDATA[<p>¿Te consideras una persona confiada? Si eres de aquellos que cuando no estas frente al ordenador, no bloqueas la pantalla o no tomas medidas de protección cuando alguien te deja su USB y lo introduce en tu equipo, puede que este artículo te haga cambiar ciertos hábitos en tu vida que antes no te habías [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2015/08/6855/" data-wpel-link="internal">¡Dame tus contraseñas!</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a class="gridlove-popup-img" href="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg" data-wpel-link="external" rel="external noopener noreferrer"><img data-recalc-dims="1" decoding="async" class="aligncenter size-full wp-image-6925" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg?resize=770%2C407" alt="robame grande" width="770" height="407" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg?w=900&amp;ssl=1 900w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg?resize=300%2C159&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg?resize=768%2C406&amp;ssl=1 768w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg?resize=370%2C196&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg?resize=270%2C143&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg?resize=570%2C301&amp;ssl=1 570w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/08/robame-grande.jpg?resize=740%2C391&amp;ssl=1 740w" sizes="(max-width: 770px) 100vw, 770px" /></a><br />
¿Te consideras una persona confiada? Si eres de aquellos que cuando no estas frente al ordenador, no bloqueas la pantalla o no tomas medidas de protección cuando alguien te deja su USB y lo introduce en tu equipo, puede que este artículo te haga cambiar ciertos hábitos en tu vida que antes no te habías planteado.</p>
<h2>En nuestros equipos &#8230; ¿Dónde se almacenan las contraseñas? ¿Es fácil acceder a ellas?</h2>
<p>En <strong>Windows</strong> las contraseñas se almacenan cifradas en el registro <a title="SAM" href="https://technet.microsoft.com/en-us/library/ee406119(v=ws.10).aspx" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">SAM</a>, usando LM (en los sistemas más antiguos) o NTLM. Está almacenada en la siguiente ruta:</p>
<pre>%WinDir%\system32\config\sam</pre>
<p>Sólo es accesible con la cuentra de administrador, pero es vulnerable a ataques offline, por ejemplo utilizando un LiveCD  sería posible modificar los datos almacenados en ella.</p>
<p>En <strong>Linux</strong>, por supuesto, también se almacenan cifradas como <em>hashes</em>, utilizando como algoritmo <code>MD5</code>, <code>Blowfish</code>, <code>SHA256 o</code> <code>SHA512.</code> Están en la siguiente ruta:</p>
<pre>/etc/shadow</pre>
<p>Si utilizas Google <strong>Chrome</strong>, puedes consultar las contraseñas almacenadas en el navegador, poniendo en la barra de direcciones <em>chrome://settings/passwords.</em> Para poder visualizarlas es necesario poner la contraseña de Windows, pero en versiones anteriores no existía protección alguna. Estos datos de los usuarios del navegador se almacenan en <em>%userprofile%\AppData\Local\Google\Chrome\User Data\Default\</em></p>
<p>En el cliente de correo <strong>Outlook 2013</strong> puedes encontrarlas en la siguiente clave de registro:</p>
<pre>HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\Outlook</pre>
<p>La contraseña se almacena cifrada, pero otra información valiosa como la dirección de e-mail, usuario, servidor, etc. está en texto plano.</p>
<p>Podríamos seguir enumerando dónde se almacenan las contraseñas de otras aplicaciones, pero no es el objetivo de este árticulo. Como vemos, parece que las contraseñas están protegidas. Pero, ¿es suficiente?</p>
<h2>¿Cómo podrían robarnos las contraseñas?</h2>
<p>Una buena dosis de <em>picaresca humana</em> sumada a la especialización técnica de algunas aplicaciones y dispositivos diseñados para este fin, pueden darnos infinidad de posibilidades.</p>
<p>Existen varias aplicaciones en Internet, muchas gratuitas, diseñadas para romper el cifrado de las contraseñas y lograr así ver en texto plano la contraseña almacenada.</p>
<p>Por ejemplo, <strong>la aplicación <a title="laZagne" href="https://github.com/AlessandroZ/LaZagne/blob/master/README.md" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">The LaZagne project</a> está especializada en obtener las contraseñas almacenadas en el equipo en el que se ejecute</strong>. Estas son las aplicaciones soportadas hasta la fecha:</p>
<p><img data-recalc-dims="1" decoding="async" class="aligncenter size-full wp-image-6919" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/softwares.png?resize=450%2C545" alt="softwares" width="450" height="545" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/softwares.png?w=450&amp;ssl=1 450w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/softwares.png?resize=248%2C300&amp;ssl=1 248w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/softwares.png?resize=370%2C448&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/softwares.png?resize=270%2C327&amp;ssl=1 270w" sizes="(max-width: 450px) 100vw, 450px" /></p>
<p>Su uso es muy sencillo, basta con ejecutar el archivo laZagne.exe en una consola de MSDOS para que la aplicación empiece a buscar contraseñas en el sistema donde se esté ejecutando. En la imagen vemos su uso para sacar sólo las contraseñas almacenadas en los navegadores webs.</p>
<p><img data-recalc-dims="1" decoding="async" class=" size-full wp-image-6920 aligncenter" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/lazagne.png?resize=587%2C426" alt="lazagne" width="587" height="426" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/lazagne.png?w=587&amp;ssl=1 587w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/lazagne.png?resize=300%2C218&amp;ssl=1 300w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/lazagne.png?resize=370%2C269&amp;ssl=1 370w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/lazagne.png?resize=270%2C196&amp;ssl=1 270w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/lazagne.png?resize=570%2C414&amp;ssl=1 570w" sizes="(max-width: 587px) 100vw, 587px" /></p>
<p>Poniendo el atributo <em>all</em>, buscará las contraseñas de todas las aplicaciones que aparecen en la tabla anterior. Prueba a usarlo en tu equipo a ver cuántas contraseñas te saca a la luz. Puede que te sorprendas.</p>
<p>A <strong>nivel de hardware</strong>, un dispositivo que se podría utilizar gracias a su versatilidad es <a title="USB Rubber Ducky" href="http://usbrubberducky.com/#!index.md" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">USB Rubber Ducky</a>, es <strong>un teclado programado con forma de USB</strong>, que nada más conectarse comienza a escribir en el equipo de forma automatizada, para <a title="ejemplo del pato" href="http://www.estacion-informatica.com/2015/06/mi-pato-y-yo-3-parte.html" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">lanzar programas y herramientas del equipo víctima</a> o que están almacenadas en su propia memoria. Se podría configurar para copiar todas las contraseñas de la víctima y almacenarlas en la memoria USB para luego en casa poder descifrar tranquilamente los ficheros obtenidos.</p>
<p><img data-recalc-dims="1" decoding="async" class="aligncenter size-full wp-image-6921" src="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/rubberduckie.jpg?resize=290%2C290" alt="rubberduckie" width="290" height="290" srcset="https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/rubberduckie.jpg?w=290&amp;ssl=1 290w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/rubberduckie.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/borrowbits.com/wp-content/uploads/2015/07/rubberduckie.jpg?resize=270%2C270&amp;ssl=1 270w" sizes="(max-width: 290px) 100vw, 290px" /></p>
<p>Como veis, nos pueden atacar por varios frentes. Ante todo usad el sentido común y armaros con programas que ayuden a complicarle la vida a los malos, como antivirus, firewalls y tener todo bien actualizado. No se lo pongamos fácil. La <a title="ciberguerra" href="http://www.elladodelmal.com/2013/01/incidentes-de-ciberguerra-y.html" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">tercera guerra mundial</a> ya se está consumando en la red.</p>
<p>La entrada <a href="https://borrowbits.com/2015/08/6855/" data-wpel-link="internal">¡Dame tus contraseñas!</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2015/08/6855/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6855</post-id>	</item>
		<item>
		<title>Introducción al testeo aplicaciones web con Selenium y Java (I)</title>
		<link>https://borrowbits.com/2015/07/introduccion-al-testeo-aplicaciones-web-con-selenium-y-java-i/</link>
					<comments>https://borrowbits.com/2015/07/introduccion-al-testeo-aplicaciones-web-con-selenium-y-java-i/#comments</comments>
		
		<dc:creator><![CDATA[Vicente]]></dc:creator>
		<pubDate>Wed, 15 Jul 2015 18:53:09 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[testing]]></category>
		<guid isPermaLink="false">http://borrowbits.com/?p=6879</guid>

					<description><![CDATA[<p>Para la creación de una página web es imprescindible el desarrollo de la propia página web en sí pero ante la multitud de navegadores y dispositivos en los que habitualmente se consume el contenido web cobra una importancia cada vez más relevante el testing. Las empresas de desarrollo de software han visto como ha sido [&#8230;]</p>
<p>La entrada <a href="https://borrowbits.com/2015/07/introduccion-al-testeo-aplicaciones-web-con-selenium-y-java-i/" data-wpel-link="internal">Introducción al testeo aplicaciones web con Selenium y Java (I)</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Para la creación de una página web es imprescindible el desarrollo de la propia página web en sí pero ante la multitud de navegadores y dispositivos en los que habitualmente se consume el contenido web cobra una importancia cada vez más relevante el testing.</p>
<p>Las empresas de desarrollo de software han visto como ha sido necesaria la creación de un departamento especializado en la automatización de estas pruebas e incluso han surgido empresas que únicamente se dedican a esta función. Las ventajas que aporta la automatización de pruebas de test son las siguientes:</p>
<ul>
<li>Reducción del tiempo de las pruebas</li>
<li>Reducción del esfuerzo de las pruebas</li>
<li>Elaboración de software más confiable</li>
<li>Mejora considerable en la calidad de las pruebas</li>
<li>Generación automática de nuevas métricas</li>
<li>Facilidad para generar las pruebas de regresión</li>
</ul>
<p>Aunque la importancia de realizar la automatización de pruebas de testing es reciente, <a title="Herramientas testing" href="http://testeandosoftware.com/las-mejores-herramientas-para-realizar-pruebas-de-software/" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">existen multitud de herramientas y plataformas para pruebas funcionales, pruebas de carga y rendimiento, herramientas de gestión de pruebas.</a></p>
<p>Ante tal variedad de herramientas para automatización de pruebas podemos destacar una que se usa ampliamente para realizar pruebas funcionales. Estamos hablando de <a title="Wiki Selenium" href="https://es.wikipedia.org/wiki/Selenium" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">Selenium</a>, que consiste en un entorno de pruebas para aplicaciones basadas en web.</p>
<p>Selenium ofrece la posibilidad de usarse mediante un IDE propio que consiste en un plugin para Firefox para crear pruebas fácilmente. Os brindo un <a title="Selenium IDE Firefox" href="https://blog.udemy.com/selenium-ide-tutorial/" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">enlace con más información sobre esta opción</a>.</p>
<p><strong>La otra posibilidad y la que yo personalmente he usado es la consistente en aprovechar que existen librerías de Selenium para multitud de lenguajes ampliamente extendidos como Java, C#, Ruby, Python entre otros</strong>. Ofrece soporte en la mayoría de navegadores y en diferentes sistemas operativos como Windows, Linux y OSX.</p>
<p>En próximas entregas iremos viendo cómo explotar Selenium usándolo desde Java y tratando de ver cómo se comporta en diferentes navegadores.</p>
<p>¿Estáis experimentados en el testing automatizado de aplicaciones software? ¿Por qué no los contáis?</p>
<p>Página oficial de Selenium: <a title="Selenium hq Official Site" href="http://www.seleniumhq.org/" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">http://www.seleniumhq.org/</a></p>
<p><a title="Configurar Selenium webdriver en eclipse" href="http://www.toolsqa.com/selenium-webdriver/configure-eclipse-with-selenium-webdriver/" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">Guía paso a paso para instalar Selenium WebDriver en Eclipse</a></p>
<p>La entrada <a href="https://borrowbits.com/2015/07/introduccion-al-testeo-aplicaciones-web-con-selenium-y-java-i/" data-wpel-link="internal">Introducción al testeo aplicaciones web con Selenium y Java (I)</a> se publicó primero en <a href="https://borrowbits.com" data-wpel-link="internal">BorrowBits</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://borrowbits.com/2015/07/introduccion-al-testeo-aplicaciones-web-con-selenium-y-java-i/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6879</post-id>	</item>
	</channel>
</rss>
