<?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>David Valverde Blog</title>
	<atom:link href="https://www.davidvalverde.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.davidvalverde.com/</link>
	<description>Web 2.0, códigos y artículos sobre diseño y desarrollo de aplicaciones web y de escritorio</description>
	<lastBuildDate>Fri, 09 Dec 2022 09:29:08 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>GTD no va de herramientas</title>
		<link>https://www.davidvalverde.com/blog/gtd-herramientas/</link>
					<comments>https://www.davidvalverde.com/blog/gtd-herramientas/#respond</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Fri, 15 Jan 2021 11:00:41 +0000</pubDate>
				<category><![CDATA[Desarrollo Personal]]></category>
		<category><![CDATA[GTD]]></category>
		<category><![CDATA[obsidian]]></category>
		<category><![CDATA[trello]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1586</guid>

					<description><![CDATA[<p>En la introducción a GTD expliqué que este método de productividad personal está basado en dos patas principalmente: Hábitos. Una serie de hábitos que hay que realizar. Mente extendida. Un sistema externo donde poder organizar todos los recordatorios y poder sacarlos de tu cabeza. La dificultad de GTD Muchas personas que se acercan a GTD mencionan la dificultad del método y por qué no pudieron implementarlo en sus vidas. Sin embargo, esto no es así. &#8230; <a href="https://www.davidvalverde.com/blog/gtd-herramientas/" title="GTD no va de herramientas">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/gtd-herramientas/">GTD no va de herramientas</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>En la <a href="https://www.davidvalverde.com/blog/introduccion-gtd/">introducción a GTD</a> expliqué que este método de productividad personal está basado en dos patas principalmente:</p>
<ul>
<li><strong>Hábitos</strong>. Una serie de hábitos que hay que realizar.</li>
<li><strong>Mente extendida</strong>. Un sistema externo donde poder organizar todos los recordatorios y poder sacarlos de tu cabeza.</li>
</ul>
<p><img fetchpriority="high" decoding="async" src="https://www.davidvalverde.com/wp-content/uploads/2021/01/gtd-herramientas.jpg" alt="Herramienta GTD" width="840" height="380" class="aligncenter size-full wp-image-1610" srcset="https://www.davidvalverde.com/wp-content/uploads/2021/01/gtd-herramientas.jpg 840w, https://www.davidvalverde.com/wp-content/uploads/2021/01/gtd-herramientas-300x136.jpg 300w, https://www.davidvalverde.com/wp-content/uploads/2021/01/gtd-herramientas-768x347.jpg 768w, https://www.davidvalverde.com/wp-content/uploads/2021/01/gtd-herramientas-640x290.jpg 640w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<h2>La dificultad de GTD</h2>
<p>Muchas personas que se acercan a GTD mencionan la dificultad del método y por qué no pudieron implementarlo en sus vidas. Sin embargo, esto no es así. GTD es muy sencillo, solo consta de una serie de hábitos y unas pocas listas donde tener que colocar los recordatorios para encontrarlos justo cuando debemos encontrarlos.</p>
<p>El gran problema es que hasta el momento en que llegamos a GTD realizamos el trabajo de una forma más o menos productiva. GTD propone una forma de realizar el trabajo que comprende una serie de nuevos hábitos y, aunque seguramente algunos de ellos ya los estés haciendo de algún u otro modo, esto cuesta. Crear <a href="https://www.davidvalverde.com/blog/jerry-seinfeld-y-como-crear-habitos/">nuevos hábitos</a> cuesta.</p>
<p>Y en lugar de centrarnos en conseguir entender estos pocos conceptos e intentar adquirir los nuevos hábitos, nos centramos en otros aspectos más residuales. Por ejemplo, en encontrar la herramienta perfecta para GTD y que nos llevará a crecer nuestra productividad a unos niveles impensables.</p>
<h2>La herramienta no es importante</h2>
<p>La efectividad de un sistema GTD depende en un 99% de lo bien o mal que se apliquen los hábitos la persona que lo usa. Como dice <a href="https://optimainfinito.com/">José Miguel Bolívar</a>: GTD es 1% herramienta y 99% hábitos.</p>
<p>Hay decenas de posibles herramientas con las que podrías utilizar GTD. Pequeñas y grandes aplicaciones, más sencillas y más complejas. Incluso podrías utilizar herramientas más sencillas como boli y papel. De hecho, David Allen recomienda comenzar con esta herramienta ya que no te dejas llevar por todas las funcionalidades de las aplicaciones y te centras más en adquirir los hábitos, que al final son la esencia del método.</p>
<p>No obstante, en la decisión de elegir la herramienta correcta tienes que tener en cuenta:</p>
<ul>
<li>Una herramienta donde puedas gestionar listas. Cualquier aplicación con la puedas hacer una lista te sirve.
<li>Dominas la herramienta. Si ya sabes utilizar la herramienta, te evitará procrastinar en la búsqueda de alguna otra herramienta perfecta. Y te será más útil y te enfocarás en los hábitos.
<li>Debe ser ubicua. El fin último del método es recordar aquello que tienes que recordar cuando lo tienes que recordar y donde lo tienes que recordar. Así que siempre tiene que estár contigo.
</ul>
<h2>Tu cerebro es tu mejor herramienta</h2>
<p>Aunque encuentres la herramienta perfecta para aplicar el sistema, ésta no va a hacer el trabajo por ti. Ya puedes tener la mejor aplicación del mundo, que si no pones a funcionar eso que tienes en tu cabeza, nos vas a llegar a ningún sitio.</p>
<p>Has de tener en cuenta que en lo que respecta al trabajo del conocimiento, antes de que podamos hacer del mejor modo algo, primero debemos tenemos tener claro qué queremos conseguir (resultado), posteriormente qué es lo mejor que podemos hacer para acercarnos a conseguirlo, y por último cómo hacerlo. Es decir, toma de decisiones primero (qué quiero conseguir), toma de decisiones después (qué hago para conseguirlo = eficacia), y más toma de decisiones por último (cómo hago lo que he decidido hacer = eficiencia). Ni que decir tiene, que parte fundamental de todos estos procesos es disponer de información actualizada y de calidad como base para la toma de decisiones. Así que, si desarrollas este tipo de trabajo, no olvides que la herramienta de la que jamás podrás prescindir es tu cerebro y que la toma de decisiones es la base fundamental de la efectividad.</p>
<h2>Mi elección personal es <del datetime="2021-08-10T10:23:55+00:00">Trello</del>Obsidian</h2>
<p>Una vez visto que la herramienta no es tan importante, he de decir que yo utilizo <a href="https://obsidian.md/">Obsidian</a> para gestionar mi sistema GTD. Bueno, en realidad sería el pack Obsidian + Trello + Google Calendar + Google Drive, pero poniendo a Obsidian como mi sistema principal de recordatorios.</p>
<p>Trello es una herramienta que he manejado bastante tanto personalmente como profesionalmente, así que la conozco bien. Además, tanto la web como las aplicaciones móviles son bastante buenas y se sincronizan perfectamente, así que puedo acceder a ella en cualquier momento y sitio. Por ese motivo era mi principal herramienta de trabajo hasta hace poco. Sin embargo, desde el trabajo tengo poco acceso a esta herramienta cuando estoy conectado por VPN, lo que me imposibilita trabajar con ella al 100%, así que me he decantado por Obsidian teniendo la herramienta en local. Y aunque he leído bastante que quizás no sea una buena herramienta para GTD como gestor de listas, a mi me viene bien, es muy similar a como se haría en papel. Recuerda, la herramienta no es lo importante, son los hábitos.</p>
<p>En próximos artículos quiero irte explicando más detenidamente el sistema GTD y como lo tengo todo integrado.</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/gtd-herramientas/">GTD no va de herramientas</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/gtd-herramientas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Introducción a GTD</title>
		<link>https://www.davidvalverde.com/blog/introduccion-gtd/</link>
					<comments>https://www.davidvalverde.com/blog/introduccion-gtd/#respond</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Fri, 06 Mar 2020 11:00:00 +0000</pubDate>
				<category><![CDATA[Desarrollo Personal]]></category>
		<category><![CDATA[GTD]]></category>
		<category><![CDATA[Productividad]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1569</guid>

					<description><![CDATA[<p>GTD es el acrónimo de Getting Things Done, la metodología de productividad personal que utilizan millones de personas en el mundo para gestionar su vida. Fue propuesta por David Allen en el año 2001, en su libro con el mismo nombre (Organízate con eficacia en español). En este artículo te quiero hacer una pequeña presentación de la metodología. Profundizaremos en cada una de las partes en próximos artículos y te contaré cómo la utilizo yo &#8230; <a href="https://www.davidvalverde.com/blog/introduccion-gtd/" title="Introducción a GTD">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/introduccion-gtd/">Introducción a GTD</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>GTD es el acrónimo de Getting Things Done, la metodología de productividad personal que utilizan millones de personas en el mundo para gestionar su vida. Fue propuesta por David Allen en el año 2001, en su libro con el mismo nombre (Organízate con eficacia en español).</p>
<p>En este artículo te quiero hacer una pequeña presentación de la metodología. Profundizaremos en cada una de las partes en próximos artículos y te contaré cómo la utilizo yo en mi día a día.</p>
<p><img decoding="async" src="https://www.davidvalverde.com/wp-content/uploads/2020/03/gtd.jpg" alt="GTD"></p>
<h2>¿Qué es GTD?</h2>
<p>David Allen publicó el libro <a href="https://amzn.to/2wet5BD" title="GTD: Organízate con eficacia">Getting Things Done: The Art of stress-free productivity</a> en 2001. En él explica la metodología GTD, una metodología de productividad personal desarrollada a partir de su experiencia profesional tras más de 30 años de consultoría, mentoring individual y programas de formación.</p>
<p><strong>GTD está basado en una serie de hábitos</strong> que, una vez desarrollados en su conjunto, permiten mejorar el control del día a día y afrontar la realidad con mayor perspectiva. Aunque el método y las técnicas explicadas en GTD son fundamentalmente prácticas y de sentido común, la mayoría de personas se encontrarán con hábitos de trabajo que tendrán que cambiar antes de poder emplear con éxito este sistema.</p>
<h2>¿Por qué GTD?</h2>
<p>En la antigüedad, y hasta no hace mucho, los trabajos eran completamente diferentes. Los trabajadores, tras su formación inicial si la necesitaban, sabían lo que tenían que hacer en cada momento y cuándo su trabajo estaba terminado. Un pastor o una persona en una cadena de montaje conoce bien cuáles son sus funciones, lo que tiene que hacer y cuando se termina su trabajo. Con la llegada del trabajo del conocimiento todo esto cambió. En muchos de los trabajos actuales todo esto es más difuso. No se tiene toda la información de lo que hay que hacer y tampoco se sabe muy bien cuando algo está terminado.</p>
<p>A lo anterior hay que añadir que vivimos en la era de la información y que nos llega continuamente todo tipo de información y compromisos para los que no estamos preparados. Todo esto nos provoca agobio y estrés por no poder llegar a todo lo que tenemos entre manos.</p>
<p>GTD llega para que podamos enfrentarnos al entorno VUCA en el que nos encontramos y podamos estar tranquilos con todos los frentes abiertos o incompletos que tenemos.</p>
<h2>Tu cabeza no es un contenedor, es un procesador</h2>
<p>¿Cuántas veces has recordado cosas cuando no podías hacer nada? ¿O cuántas veces sabías que tenías que hacer algo pero no recordabas el qué? Si te quedaste sin pilas en el mando a distancia, ¿cuándo crees que te vas a acordar de comprarlas? ¿Cuando estés en el supermercado al lado de la zona de pilas? ¿O cuando estés tranquilamente sentado en tu sofá dispuesto a ver la televisión?</p>
<p>El cerebro es una herramienta increíble pero, salvo algunas excepciones, no está hecho para recordar cosas. Se dice que <strong>la memoria a corto plazo puede almacenar entre 5 y 9 cosas</strong>, por lo que no podemos recordar todo lo que tenemos pendiente. Y si alguno de estos frentes abiertos que tenemos no lo recordamos, y llega a su plazo de vencimiento, vienen las urgencias. Y lo peor es que, además de tenernos que enfrentar a este tipo de tareas y no poder cumplir con nuestros compromisos, no sabemos cuál será la próxima bomba en explotar. Es un estrés constante.</p>
<p>GTD propone tener todos estos frentes abiertos en un sistema externo. Un sistema organizativo en el que podamos confiar para mantener la cabeza vacía y pueda concentrarse en lo que tiene que hacer, hacer tareas.</p>
<h2>Mente como el agua</h2>
<p>Una vez tenemos todo nuestro inventario de acciones y tareas en un sistema externo, podemos consultarlas en el momento preciso en que podemos hacer algo con ellas. Así liberamos nuestra mente para que se enfoque en hacer tareas. Y reducimos las interrupciones tanto internas como externas.</p>
<p><img decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2013/02/water.png" alt="GTD: Mente como el agua"></p>
<p>Otra ventaja que tenemos al tener todo en un sistema externo es que podemos decidir qué hacer y, muy importante, que estamos dejando de hacer. Y reducimos las posibles urgencias que pueden llegar por no haber atendido correctamente un tema.</p>
<p>De este modo nos podemos enfocar en la tarea que estamos realizando y entrar en lo que se conoce como La Zona, ese estado en el que estamos completamente centrados en lo que estamos haciendo. ¿No te ha pasado alguna vez que estabas tan inmerso haciendo algo que parecía que el tiempo no pasaba y casi se te olvida ir a comer?</p>
<p>La idea de GTD es poder alcanzar este estado de concentración más a menudo para poder ser más productivos. Y si entra algún nuevo frente poder manejarlo adecuadamente. Tal como hace el agua. El agua está en reposo, pero cuando tiras una piedra ésta reacciona proporcionalmente al tamaño de la misma, hasta que vuelve a estar en calma. Igual que la mente cuando tiene un sistema externo confiable y completo.</p>
<h2>La gestión del tiempo</h2>
<p>El paradigma de la gestión del tiempo está anticuado y no se adecua al entorno VUCA en el que nos encontramos.</p>
<p>Muchos de nosotros, entre los que me incluyo, hemos intentado mejorar nuestra productividad de distintas formas. Ante todo el conjunto de tareas a las que nos enfrentamos, las priorizamos por orden de importancia (o lo que creemos que son más importantes, algo muy subjetivo) e, incluso, reservamos bloques durante el día para hacerlas. ¿Cuántas veces has planificado para un día que vas a hacer X tareas y los imprevistos han impedido realizar algunas o la mayoría de ellas? Seguramente más de las que te gustaría.</p>
<p>Esto, además de ser una pérdida completa de tiempo, nos provoca estrés por no poder cumplir con la planificación que habíamos realizado.</p>
<p>GTD nos propone un sistema basado en hábitos productivos que se olvida de la gestión de tiempo y se centra en la <strong>gestión de nuestra atención</strong>. Enfocarnos en aquellas acciones que podemos realizar en cada momento para ser más eficientes y poder enfrentarnos mejor ante los retos que tenemos cada día.</p>
<h2>Los 5 pasos de GTD</h2>
<p>El flujo de trabajo de GTD consta de 5 pasos:</p>
<ol>
<li><strong>Recopilar o capturar</strong>. Apunta todo lo que te viene a la cabeza para que no se te olvide.</li>
<li><strong>Procesar o aclarar</strong>. Identifica cada cosa que tenemos en nuestras bandejas de entrada para saber qué es.</li>
<li><strong>Organizar</strong>. Una vez identificadas las cosas se organizan en nuestro sistema externo.</li>
<li><strong>Revisar</strong>. Para mantener al día el sistema y poder seguir confiando en él.</li>
<li><strong>Hacer</strong>. Elegir la acción más adecuada y hacerla.</li>
</ol>
<h2>Los 6 niveles de perspectiva</h2>
<p>GTD contempla también la perspectiva y la clasifica en 6 niveles de altitud:</p>
<ol>
<li><strong>Acciones</strong>.</li>
<li><strong>Proyectos</strong>.</li>
<li><strong>Áreas de enfoque y responsabilidad</strong>.</li>
<li><strong>Metas y objetivos</strong>.</li>
<li><strong>Visión</strong>.</li>
<li><strong>Propósitos y principios</strong>.</li>
</ol>
<h2>¿Quieres saber más?</h2>
<p>Esto ha sido una muy breve introducción al sistema GTD. Si quieres seguir aprendiendo te recomiendo los siguientes recursos:</p>
<p><strong>Libros:</strong></p>
<ul>
<li><a href="https://amzn.to/2wet5BD">Organízate con eficacia</a>, de David Allen.</li>
<li><a href="https://amzn.to/3afTUnG" title="Productividad personal: Aprende a liberarte del estrés con GTD">Productividad personal</a>, de José Miguel Bolívar.</li>
<li><a href="https://amzn.to/2Kfv2Fe" title="Haz que funcione">Haz que funcione</a>, de David Allen.</li>
<li><a href="https://amzn.to/2XECXz2" title="Sé más eficaz">Sé más eficaz</a>, de David Allen.</li>
<li><a href="https://amzn.to/3qo0eSk" title="Organízate con eficacia para jóvenes">Organízate con eficacia para jóvenes</a>, de David Allen.</li>
</ul>
<p><strong>Webs y blogs:</strong></p>
<ul>
<li><a href="https://gettingthingsdone.com/" title="Getting Things Done">Getting Things Done</a>. La página oficial de GTD.</li>
<li><a href="https://formaciongtd.com/" title="Formación GTD">Formación GTD</a>. La formación oficial en España de GTD.</li>
<li><a href="https://www.optimainfinito.com/" title="Optima infinito">Optima infinito</a>. Blog de José Miguel Bolívar.</li>
<li><a href="http://efectivitat.com/ranking-optima-lab-de-blogs-de-efectividad/" title="Ranking de blogs sobre GTD">Ranking de blogs de GTD y efectividad</a>. Listado de blogs que hablan de GTD y productividad.</li>
</ul>
<p><strong>Comunidad AprendiendoGTD:</strong> Aprendiendo GTD es una comunidad de personas relacionadas con GTD y donde se comparten verdaderas joyas sobre el método en sus distintos canales.</p>
<ul>
<li><a href="http://www.aprendiendogtd.com/" title="Web Aprendiendo GTD">Web</a>.</li>
<li><a href="http://www.aprendiendogtd.com/category/podcast-productividad/" title="Podcast Aprendiendo GTD">Podcast</a>.</li>
<li><a href="https://telegram.me/AprendiendoGTD" title="Telegram Aprendiendo GTD">Telegram</a>.</li>
<li><a href="http://www.aprendiendogtd.com/slack" title="Slack Aprendiendo GTD">Slack</a>.</li>
</ul>
<p>Además de todos estos recursos, en próximos artículos intentaré desgranar y explicar los distintos aspectos de GTD y cómo yo lo estoy implementando con Trello, entre otras herramientas.</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/introduccion-gtd/">Introducción a GTD</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/introduccion-gtd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Inversión de control</title>
		<link>https://www.davidvalverde.com/blog/inversion-de-control/</link>
					<comments>https://www.davidvalverde.com/blog/inversion-de-control/#comments</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Tue, 17 Jan 2017 08:00:48 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[inversión de control]]></category>
		<category><![CDATA[inyección de dependencias]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1512</guid>

					<description><![CDATA[<p>Antes de comenzar de lleno a conocer un poco más el framework Spring, hay que conocer un par de conceptos interesantes: la inversión de control y la inyección de independencias. ¿Qué es eso de la inversión del control? Aunque la plataforma Java provee de una gran cantidad de clases y funcionalidades para el desarrollo de aplicaciones, carece de los medios para organizar los bloques básicos en un todo coherente, dejando esta tarea para los arquitectos &#8230; <a href="https://www.davidvalverde.com/blog/inversion-de-control/" title="Inversión de control">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/inversion-de-control/">Inversión de control</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Antes de comenzar de lleno a conocer un poco más el framework Spring, hay que conocer un par de conceptos interesantes: <strong>la inversión de control</strong> y <strong>la inyección de independencias</strong>.</p>
<p><img decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2017/01/inversion-de-control.jpg" alt="Inversión de control" width="840" height="456" class="aligncenter size-full wp-image-1518" srcset="https://www.davidvalverde.com/wp-content/uploads/2017/01/inversion-de-control.jpg 840w, https://www.davidvalverde.com/wp-content/uploads/2017/01/inversion-de-control-300x163.jpg 300w, https://www.davidvalverde.com/wp-content/uploads/2017/01/inversion-de-control-768x417.jpg 768w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<h2>¿Qué es eso de la inversión del control?</h2>
<p>Aunque la plataforma Java provee de una gran cantidad de clases y funcionalidades para el desarrollo de aplicaciones, carece de los medios para organizar los bloques básicos en un todo coherente, dejando esta tarea para los arquitectos y desarrolladores. Si bien se pueden utilizar algunos patrones de diseño como Factory, Abstract Factory, Builder, Decorator, and Service Locator para componer las diferentes clases y objetos de la aplicación, estos patrones son simplemente eso: buenas prácticas.</p>
<p>Una forma sencilla de explicar el concepto de IoC (Inversion of control) es el <strong>Principio de Hollywood</strong>:</p>
<blockquote><p>No nos llames; nosotros te llamaremos</p></blockquote>
<p>La inversión de control es una forma de programar en la que el flujo de ejecución de un programa se invierte respecto a los métodos de programación tradicionales, en los que la interacción se expresa de forma imperativa realizando llamadas a procedimientos o funciones. De esta forma, para poder implementar la IoC, necesitamos un agente externo, normalmente llamado contenedor, que se encargará de realizar las conexiones necesarias entre las clases dependientes. Este agente externo será el encargado de controlar el flujo de la aplicación. De esa forma, podremos realiza la implementación de un código que esté débilmente acoplada.</p>
<p>Para entender este cambio, vamos a utilizar un ejemplo con pseudocódigo (para no enmarañar el concepto con mucho código fuente innecesario). Imaginemos que estamos escribiendo un programa que tomar alguna información del usuario y que estamos usando la línea de comandos. Deberíamos hacer algo así:</p>
<pre>escribir "¿Cuál es tu nombre?"
nombre <- Introducir nombre por teclado
procesar_nombre(nombre)
escribir "¿Cuál es tu pregunta?"
pregunta <- Introducir pregunta por teclado
procesa_pregunta(pregunta)</pre>
<p>A lo largo de la interacción existente en el programa, el código es el que decide el flujo: decide cuando preguntar, cuando leer las respuestas así como cuando procesarlas.</p>
<p>Supongamos ahora que queremos adaptar nuestro programa a un sistema gráfico de ventanas. Podríamos tener un código parecido al siguiente (se trata de otra simplificación en pseudocódigo, ya que este código implementado en Java necesitaría de bastantes líneas más):</p>
<pre>importar ventanas, botones, campos_texto
ventana_principal <- crear nueva Ventana.
etiqueta_nombre <- crear nueva etiqueta "¿Cuál es tu nombre?"
añadir a ventana_principal << etiqueta_nombre
nombre <- crear nuevo campo_texto
añadir a ventana_principal << nombre
en_caso_de_evento('dejar foco') sobre nombre, procesar_nombre(nombre)
etiqueta_pregunta <- crear nueva etiqueta "¿Cuál es tu pregunta?"
añadir a ventana_principal << etiqueta_pregunta
pregunta <- crear nuevo campo_texto
añadir a ventana_principal << pregunta
en_caso_de_evento('dejar foco') sobre pregunta, procesar_pregunta(pregunta)
Ventanas.buclePrincipal</pre>
<p>Hay una gran diferencia entre el flujo del primer programa y de este segundo, en concreto, en las llamadas a las funciones para procesar el nombre y la pregunta. En este segundo código, no se tiene control sobre cuando se llamarán a dichas funciones, sino que se le ha entregado al control al sistema de ventanas. El decidirá cuándo llamar a estas funciones, basándose en la vinculación que hemos hecho (en_caso_de_evento(...)). El control se ha invertido (en lugar de invocar yo a una clase, es el framework el que me invoca a mí). Este ejemplo es de <strong>Martin Fowler</strong>, una de las personas que acuñaron el concepto de Inversión de Control.</p>
<p>La inversión de control es un término genérico que puede implementarse de diferentes maneras, si bien la implementación realizada por Spring es la de inyección de dependencias.</p>
<h2>Inversión de control mediante la inyección de dependencias</h2>
<p>La dependencia de un objeto respecto a otro ocurre cuando el primero necesita del segundo para completar alguna de sus tareas.</p>
<p>Un caso típico es el de un coche, que depende del motor para, por ejemplo, poder avanzar.</p>
<pre lang='java'>public class Motor
{
    //...

    public void acelerar() {
        //...
    }

    public int getRevoluciones() {
        return currentRPM;
    }

    //...
}</pre>
<pre lang='java'>public class Vehiculo
{
    private Motor m;

    public Vehiculo() {
        m = new Motor();
    }

    public int getRevolucionesMotor() {
        return m.getRevoluciones();
    }
}</pre>
<p>Como podemos comprobar, la dependencia entre las clases Vehiculo y Motor queda patente dado que una instancia de la primera alberga dentro una instancia de la segunda.</p>
<p>Sin embargo, podemos comprobar que el acoplamiento existente en el código es alto. El motor está fuertemente ligado al vehículo, de forma que esta relación es poco flexible. Si quisiéramos realizar cualquier tipo de modificación en la clase Motor, esto supondría un alto impacto en la clase Vehiculo (por ejemplo, si quisiéramos hacer una concreción en MotorDiesel o MotorGasolina).</p>
<p>Como primer paso para desacoplar el motor del vehículo, podríamos hacer que la clase Vehiculo deje de encargarse de instanciar el objeto Motor, pasándoselo como parámetro al constructor. De esta forma, la clase Vehiculo quedaría de la siguiente manera:</p>
<pre lang='java'>public class Vehiculo
{
    private Motor m;

    public Vehiculo(Motor motorVehiculo) {
        m = motorVehiculo;
    }

    public int getRevolucionesMotor() {
        return m.getRevoluciones();
    }
}</pre>
<p>El constructor de vehículo se encarga de inyectar la dependencia dentro del objeto, eliminando esta responsabilidad de la propia clase. De esa forma, hemos dado un paso para desacoplar ambos objetos.</p>
<p>El siguiente paso que podríamos dar en aras de continuar con el desacoplamiento de ambos objetos es el uso de interfaces.</p>
<pre lang='java'>public interface IMotor
{
    public void acelerar();

    public int getRevoluciones();
}</pre>
<pre lang='java'>public class MotorGasolina {

    public void acelerar() {
        realizarAdmision();
        realizarCompresion();
        realizarExplosion();        //Propio de los motores de gasolina
        realizarEscape();
    }

    public int getRevoluciones() {
        return currentRPM;
    }

    //...

}</pre>
<pre lang='java'>public class MotorDiesel {

    public void acelerar() {
        realizarAdmision();
        realizarCompresion();
        realizarCombustion();        //Propio de los motores diesel
        realizarEscape();
    }

    public int getRevoluciones() {
        return currentRPM;
    }

    //...

}</pre>
<pre lang='java'>public class Vehiculo
{
    private IMotor m;

    public Vehiculo(IMotor motorVehiculo) {
        m = motorVehiculo;
    }

    public int getRevolucionesMotor() {
        return m.getRevoluciones();
    }
}</pre>
<p>Como podemos observar, la clase Vehiculo ya no está acoplada a la clase Motor, sino que bastará con un objeto que implemente la interfaz IMotor, como lo son MotorDiesel o MotorGasolina.</p>
<p>Por último, nos faltaría ver como se realizaría la inyección de dependencias propiamente dicha. Veamos la siguiente clase, Main:</p>
<pre lang='java'>// todos los import necesarios

public class Main {
    public static void main(String[] args) {

        /*Al proporcionar un objeto que implementa la interfaz IMotor 
        como parámetro del constructor de Vehiculo, estamos inyectando 
        la dependencia.*/
        Vehiculo cocheDiesel = new Vehiculo(new MotorDiesel());
        /*En este caso, realizamos otra inyección de una dependencia, 
        pero con una instancia de MotorGasolina.*/
        Vehiculo cocheGasolina = new Vehiculo(new MotorGasolina());

        //...
    }
}</pre>
<h2>Diferentes formas de inyección de dependencias</h2>
<p>Como hemos visto en el ejemplo anterior, una de las formas de realizar la inyección de dependencias es mediante el uso de un constructor, pero no es la única. De hecho, a nivel formal podemos decir que existen algunas más:</p>
<ul>
<li>Inyección por constructor
<li>Inyección por método
<li>Inyección por propiedad (esta la encontramos en otros lenguajes de programación, como C#).
</ul>
<p>En el ejemplo anterior hemos podido apreciar que, para la <strong>inyección por constructor</strong>, la clase que tiene la dependencia sobre otra debe tener, al menor, un constructor, donde reciba un parámetro de ese tipo.</p>
<pre lang='java'>public class Vehiculo
{
    private IMotor m;

    public Vehiculo(IMotor motorVehiculo) {
        m = motorVehiculo;
    }

    //...
}</pre>
<p>En el caso de que quisiéramos implementar esta inyección de dependencia sin el uso de constructores con parámetros, podríamos hacer uso de la <strong>inyección por método</strong> (normalmente, uno de los métodos apodados como <strong>setter</strong>). Veamos el siguiente código, modificado para realizar la inyección de dependencia de esta forma:</p>
<pre lang='java'>public class Vehiculo
{
    private IMotor m;

    public Vehiculo() {}

    public void setMotor(IMotor motor) {
        this.m = motor;
    }

    //...
}</pre>
<pre lang='java'>// todos los import necesarios

public class Main {
    public static void main(String[] args) {

        /* En este caso, inyectamos la dependencia 
        a través de un método*/
        Vehiculo cocheDiesel = new Vehiculo();
        cocheDiesel.setMotor(new MotorDiesel());

        Vehiculo cocheGasolina = new Vehiculo();
        cocheGasolina.setMotor(new MotorGasolina());

        //...
    }
}</pre>
<h2>Inyección de dependencias con Spring</h2>
<p>Hasta ahora, hemos visto la conocida como inyección de dependencias para pobres, en la que solamente hemos utilizado elementos de Java SE para realizar dicha inyección.</p>
<p>Antes de continuar, hagámonos la siguiente pregunta con respecto al ejemplo: ¿qué otras dependencias tiene un vehículo?</p>
<p><img decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2017/01/inversion-de-control-dependencias-vehiculo.jpg" alt="Diagrama UML de dependencias de un vehículo" width="840" height="429" class="aligncenter size-full wp-image-1519" srcset="https://www.davidvalverde.com/wp-content/uploads/2017/01/inversion-de-control-dependencias-vehiculo.jpg 840w, https://www.davidvalverde.com/wp-content/uploads/2017/01/inversion-de-control-dependencias-vehiculo-300x153.jpg 300w, https://www.davidvalverde.com/wp-content/uploads/2017/01/inversion-de-control-dependencias-vehiculo-768x392.jpg 768w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p>Como podemos observar en el anterior diagrama de clases UML, la clase Vehiculo tiene una gran cantidad de dependencias. ¿Quién se hará cargo de todas ellas? La respuesta es <strong>Spring IoC Container</strong>.</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/inversion-de-control/">Inversión de control</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/inversion-de-control/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>¿Qué es Spring?</title>
		<link>https://www.davidvalverde.com/blog/que-es-spring/</link>
					<comments>https://www.davidvalverde.com/blog/que-es-spring/#respond</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Tue, 10 Jan 2017 08:00:20 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1507</guid>

					<description><![CDATA[<p>Spring es un framework de código abierto para el desarrollo de aplicaciones (empresariales) Java. Su origen está en el trabajo de Rod Johnson, que trabajaba como consultor externo, y que plasmó en el libro Expert One-to-One J2EE Design and Development (Octubre, 2002). Según Johnson, el modelo de los Enterprise Java Beans era excesivamente tedioso y pesado para muchas aplicaciones desarrolladas hasta el momento. Por ello, condensó su experiencia y sus buenas prácticas en un conjunto &#8230; <a href="https://www.davidvalverde.com/blog/que-es-spring/" title="¿Qué es Spring?">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/que-es-spring/">¿Qué es Spring?</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Spring es un framework de código abierto para el desarrollo de aplicaciones (empresariales) Java. Su origen está en el trabajo de Rod Johnson, que trabajaba como consultor externo, y que plasmó en el libro <a href="http://amzn.to/2i0ZFyU">Expert One-to-One J2EE Design and Development</a> (Octubre, 2002). Según Johnson, el modelo de los Enterprise Java Beans era excesivamente tedioso y pesado para muchas aplicaciones desarrolladas hasta el momento. Por ello, condensó su experiencia y sus buenas prácticas en un conjunto de clases que fueron el origen del framework.</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2017/01/spring.png" alt="Spring" width="800" height="260" class="aligncenter size-full wp-image-1510" srcset="https://www.davidvalverde.com/wp-content/uploads/2017/01/spring.png 800w, https://www.davidvalverde.com/wp-content/uploads/2017/01/spring-300x98.png 300w, https://www.davidvalverde.com/wp-content/uploads/2017/01/spring-768x250.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>Algunas de las críticas de Johnson al uso de EJBs son (ver <a href="http://amzn.to/2i2vB0T">J2EE development without EJB</a> (2004)):</p>
<ul>
<li>Complejidad (descriptores, implementaciones de interfaces, …) y baja productividad del programador.
<li>Modelo remoto solamente basado en RMI.
<li>Muchas aplicaciones no necesitan componentes remotos.
<li>Difíciles de depurar (volver a hacer deployment y volver a arrancar).
<li>Mapeo O/R basado en entity beans limitado (por ejemplo, no existe la herencia)
</ul>
<p>Spring popularizó desde su inicio ideas como la inyección de dependencias, el uso de POJOs (Plain old Java Object) como objetos de negocio, etc…, que suponían un cambio radical con respecto al estándar; de esta forma, las aplicaciones podían ser más ligeras, y posibilitó que un framework que estaba inicialmente ideado para la capa de negocio se convirtiera en un stack de tecnologías para todas las capas de la aplicación.</p>
<p>Spring está basado en los siguientes principios:</p>
<ul>
<li>El buen diseño es más importante que la tecnología subyacente.
<li>Los Java Beans ligados de una manera más libre entre interfaces es un buen modelo.
<li>El código debe ser fácil de probar.
</ul>
<p>Desde hace tiempo, estas ideas tan innovadoras popularizadas por Spring se han ido incorporando poco a poco al estándar, de forma que Spring y JavaEE han convergido mucho. Aun así, Spring ha conseguido crear una comunidad de desarrolladores en torno a sus diferentes tecnologías, siendo una alternativa necesaria de conocer, y muy utilizada en el entorno empresarial. En la actualidad, las aportaciones más novedosas de Spring se centran en campos de BigData, NoSQL, HTML5, Mobile, aplicaciones sociales, seguridad…</p>
<p>A día de hoy, una de las principales diferencias que podemos encontrar entre JavaEE y Spring es la posibilidad de usar un servidor web más convencional (estilo Tomcat) para desplegar la aplicación (con Spring Boot nos podemos olvidar incluso de esta parte). JavaEE requiere el uso de un servidor de aplicaciones que, normalmente, requerirá de mayor conocimiento para su configuración y despliegue, y necesitará de unos recursos más potentes para correr cualquier aplicación.</p>
<h2>Módulos de Spring</h2>
<p>En la siguiente imagen, podemos ver las diferentes tecnologías (en terminología Spring, proyectos) que conforman a día de hoy Spring:</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2017/01/modulos-spring.png" alt="Módulos de Spring" width="720" height="540" class="aligncenter size-full wp-image-1508" srcset="https://www.davidvalverde.com/wp-content/uploads/2017/01/modulos-spring.png 720w, https://www.davidvalverde.com/wp-content/uploads/2017/01/modulos-spring-300x225.png 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Algunos de los módulos más importantes de Spring:</p>
<ul>
<li><strong>Core</strong>: La parte fundamental de este framework es el módulo Core, y los adyacentes Bean y Context. Proveen toda la funcionalidad para la inyección de dependencias, permitiéndole administrar la funcionalidad del contenedor de Beans. Además, también proveen de los servicios Enteprise como JDNI, EJB, …
<li><strong>AOP</strong>: Se trata de un módulo que nos permitirá utilizar el paradigma de Programación Orientada a Aspectos (Aspect Oriented Programming). Este paradigma permite mejorar la modularización y separar las responsabilidades. De esta forma, podemos separar las funcionalidades comunes, que se utilizan transversalmente a lo largo de toda la aplicación, de aquellas que son propias de cada módulo.
<li><strong>Data</strong>: Se trata de un gran módulo, formado por múltiples submódulos, y que nos permite simplificar el acceso y persistencia de datos. Spring Data nos proporciona soporte para usar base de datos relacionales (JDBC), ORMs (como por ejemplo JPA, Hibernate, …) e incluso modelos de persistencia NoSQL (como por ejemplo, MongoDB).
<li><strong>Web</strong>: Este módulo nos permitirá implementar el patrón Modelo-Vista-Controlador (MVC) de una manera sencilla y limpia, haciendo uso de forma transparente también de otros patrones de diseño, como FrontController. De esta forma, podemos separar limpiamente la lógica de negocio de la presentación de los datos y el acceso a los mismos. Además de aplicaciones que implican el uso de vistas y formularios, también podremos crear servicios web (por ejemplo, al estilo REST) de una forma sencilla y rápida.
</ul>
<p>La modularidad de Spring nos permitirá la posibilidad de usar solo algunas de las partes del framework, y poder combinar esta con otros frameworks diferentes:</p>
<ul>
<li>Un proyecto que implemente MVC mediante el uso de Struts podría incorporar el contenedor de IoC mediante el uso de Spring (sin necesidad de utilizar Spring Web MVC).
<li>Una aplicación web desarrollada con Spring Web MVC podría implementar su capa de datos mediante el uso de Hibernate (sin hacer uso de Spring Data).
</ul>
<h2>Versiones de Spring</h2>
<p>La primera versión de Spring se publicó en marzo de 2004. Actualmente, la versión más estable en la actualidad de Spring es la 4.3.5, si bien ya podemos encontrar en fases preliminares la versión 5.0 (que nos permitirá trabajar con JDK 9).</p>
<table>
<tr>
<th>Versión</th>
<th>Descripción</th>
</tr>
<tr>
<td>1.0</td>
<td>Primera versión de Spring</td>
</tr>
<tr>
<td>2.0</td>
<td>Espacios de nombres XML, soporte para AspectJ</td>
</tr>
<tr>
<td>2.5</td>
<td>Configuración a través de anotaciones</td>
</tr>
<tr>
<td>3.0</td>
<td>Actualización a Java5+, Configuración a través de Java (@Configuration)</td>
</tr>
</table>
<p>A continuación, podemos ver algunos de los elementos que se han incorporado en las diferentes versiones 4.X</p>
<table>
<tr>
<th>Versión</th>
<th>Cambios introducidos</th>
</tr>
<tr>
<td>4.0</td>
<td>
Mejora de la documentación.</p>
<p>Eliminación de código deprecado.</p>
<p>Adaptación al uso de Java 8</p>
<p>Basado en Java EE 6 (JPA 2.0, Servlet 3.0), con soporte para Java EE 7 (JPA 2.1, JTA 1.2, …)</p>
<p>Mejoras en el contenedor de inversión de control</p>
<p>Mejoras en el módulo web para la creación de servicios REST (@RestController, AsyncRestTemplate)
</td>
</tr>
<tr>
<td>4.1</td>
<td>
Mejoras en las prestaciones de Java Message Services.</p>
<p>Soporte para anotaciones JCache (JSR-107)</p>
<p>Mejoras varias en el módulo web</p>
<p>Mejoras en el módulo de WebSocket.
</td>
</tr>
<tr>
<td>4.2</td>
<td>
Varias mejoras en el módulo core (sobre todo a nivel de configuración a través de Java).</p>
<p>Mejoras en el módulo de acceso a datos (como por ejemplo, soporte para Hibernate 5.0).</p>
<p>Mejoras en JMS</p>
<p>Mejoras en el módulo web (integración de OkHTTP, soporte para CORS, anotaciones propias el mapeo, con @RequestMapping como metaanotación, …)
</td>
</tr>
<tr>
<td>4.3</td>
<td>
Mejoras en el módulo core: métodos default de Java 8, mayor información en las excepciones, soporte de inyección por constructor para @Configuration…</p>
<p>Mejoras en el módulo web: anotaciones compuestas para @RequestMapping: @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, y @PatchMapping; nuevas anotaciones compuestas para los ámbitos web: @RequestScope, @SessionScope, @ApplicationScope; otra serie de nuevas anotaciones…</p>
<p>Mejoras en los módulos de WebSocket y Testing
</td>
</tr>
</table>
<p>En próximos artículos, hablaré más de este framework y cómo poder sacarle partido para el desarrollo de nuestras aplicaciones.</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/que-es-spring/">¿Qué es Spring?</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/que-es-spring/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Propósitos de año nuevo</title>
		<link>https://www.davidvalverde.com/blog/propositos-ano-nuevo/</link>
					<comments>https://www.davidvalverde.com/blog/propositos-ano-nuevo/#respond</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Tue, 03 Jan 2017 08:00:35 +0000</pubDate>
				<category><![CDATA[Desarrollo Personal]]></category>
		<category><![CDATA[2017]]></category>
		<category><![CDATA[objetivos]]></category>
		<category><![CDATA[objetivos SMART]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1491</guid>

					<description><![CDATA[<p>La semana pasada publiqué mi retrospectiva de 2016 analizando qué tal se dió el año pasado y mencioné que los objetivos de este año los iba a hacer de una manera diferente. ¿Propósitos u objetivos? Todos los años sobre estas fechas nos ponemos una serie de propósitos que queremos cumplir en los próximos meses. Los típicos propósitos son perder peso, dejar de fumar, aprender inglés o ser feliz. Formular de esta manera estos propósitos tiene &#8230; <a href="https://www.davidvalverde.com/blog/propositos-ano-nuevo/" title="Propósitos de año nuevo">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/propositos-ano-nuevo/">Propósitos de año nuevo</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>La semana pasada publiqué mi retrospectiva de 2016 analizando qué tal se dió el año pasado y mencioné que los objetivos de este año los iba a hacer de una manera diferente.</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2016/12/new-year-resolutions.jpg" alt="Propósitos de año nuevo" width="800" height="533" class="aligncenter size-full wp-image-1502" srcset="https://www.davidvalverde.com/wp-content/uploads/2016/12/new-year-resolutions.jpg 800w, https://www.davidvalverde.com/wp-content/uploads/2016/12/new-year-resolutions-300x200.jpg 300w, https://www.davidvalverde.com/wp-content/uploads/2016/12/new-year-resolutions-768x512.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<h2>¿Propósitos u objetivos?</h2>
<p>Todos los años sobre estas fechas nos ponemos una serie de propósitos que queremos cumplir en los próximos meses. Los típicos propósitos son perder peso, dejar de fumar, aprender inglés o ser feliz. Formular de esta manera estos propósitos tiene dos problemas:</p>
<ul>
<li><strong>El 10 de enero ya los tenemos olvidados</strong>. Podemos tener el firme propósito de dejar de fumar este año y fumarnos el último cigarro antes de las campanadas. Aguantamos un par de semanas sin fumar pero una noche de fiesta alguien nos ofrece uno y lo aceptamos, asegurándonos que no pasará nada por uno. Pero al final de la noche nos hemos fumado tres o cuatro y al día siguiente ya tenemos comprado un paquete nuevo.</li>
<li><strong>Son demasiados vagos o no medibles</strong>. Al formularlos de esta manera no podemos medir en qué grado estamos cumpliéndolos. Por ejemplo, si nuestro propósito es perder peso, ¿cuánto deberíamos perder? ¿5, 10 o 20 kilos? ¿en un mes o en todo el año?</li>
</ul>
<p>Por eso, <strong>en lugar de propósitos</strong> de año nuevo, lo que hay que hacer es <strong>crear objetivos</strong> a cumplir en el próximo año.</p>
<h2>Objetivos SMART</h2>
<p>Si queremos tener posibilidades de cumplirlos deben ser objetivos SMART. Estos son objetivos eficaces que nos ayudan a definirlos y a cumplirlos. Un objetivo SMART debe ser:</p>
<ul>
<li><strong>Específico (Specific)</strong>. El objetivo debe ser lo más concreto posible. No es lo mismo «perder peso» que «salir a correr todos los días 30 minutos».</li>
<li><strong>Medible (Measurable)</strong>. El objetivo debe ser medible, tiene que tener una meta que podamos definir. No es lo mismo «ganar más dinero» que «ganar 100 euros más al mes».</li>
<li><strong>Alcanzable (Attainable)</strong>. El objetivo debe ser ambicioso pero alcanzable por nosotros. Debe depender de nosotros el conseguirlo. El objetivo «ganar la lotería» no sería válido porque no depende de nosotros.</li>
<li><strong>Realista (Realistic)</strong>. El objetivo debe estar dentro de nuestras posibilidades. «Quiero participar en los próximos Juegos Olímpicos» no sería un objetivo realista para mí, pero sí lo sería «participar en la próxima carrera popular de mi ciudad».</li>
<li><strong>Temporal (Timely)</strong>. El objetivo debe estar acotado en el tiempo. No es lo mismo «voy a escribir 10 posts en el blog» que «voy a escribir 10 posts en el blog antes de finalizar el mes».</li>
</ul>
<h2>¿Objetivos a un año?</h2>
<p>También solemos proponer objetivos a cumplir para el próximo año. Con tanto tiempo para cumplirlos los dejamos para más adelante y cuando nos queremos dar cuenta ya no podemos hacerlos. Por esto creo que, aunque hay que marcarse unos retos u objetivos de alto nivel a más tiempo, por ejemplo, «¿dónde quiero estar de aquí a 5 años?», para marcarse objetivos a corto plazo es mejor hacerlos cada poco tiempo. De este modo:</p>
<ul>
<li><strong>Conseguimos un mayor seguimiento de nuestros objetivos</strong> y vemos si los estamos cumpliendo (o vamos en el buen camino) o tenemos que corregir porque nos estamos desviando.</li>
<li><strong>Podemos ajustar mejor los objetivos</strong>. Si se deben cumplir en menos tiempo, los objetivos son más medibles y podemos definirlos mejor.</li>
<li><strong>Es más complicado que las circunstancias cambien</strong>. Si proponemos objetivos a un año vista puede que nuestras circunstancias personales o nuestros gustos cambien y ya dejen de tener sentido algunos de estos propósitos. Definiéndolos para un tiempo más corto es más probable que estas circunstancias no cambien.</li>
</ul>
<p>Visto esto, es mejor tener objetivos cada mes o pocos meses.</p>
<h2>Mis objetivos</h2>
<p>Por eso este año lo voy a hacer de una forma diferente (y <a href="https://github.com/davidvalverde/life">algo friki</a>) y me voy a ir proponiendo objetivos por cumplir cada poco tiempo. A final de año volveré a hacer un resumen para ver qué he cumplido y si esta forma me ha ayudado a ser una versión mejor de mi mismo.</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/propositos-ano-nuevo/">Propósitos de año nuevo</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/propositos-ano-nuevo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tablas de datos responsive</title>
		<link>https://www.davidvalverde.com/blog/tablas-de-datos-responsive/</link>
					<comments>https://www.davidvalverde.com/blog/tablas-de-datos-responsive/#comments</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Mon, 01 Feb 2016 11:00:47 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Responsive Web Design]]></category>
		<category><![CDATA[tablas]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1461</guid>

					<description><![CDATA[<p>Uno de los problemas que tenemos actualmente en desarrollo web es cómo mostrar una gran cantidad de datos en pantalla cuando utilizamos un móvil o table. Si bien, en pantallas grandes no habría demasiado problema en mostrar muchas columnas de datos, cuando las pantallas son más pequeñas, aparece nuestro problema. Hay varias aproximaciones para resolver este problema como, por ejemplo, el utilizado en Bootstrap. El problema de ésto es que añade un scroll horizontal al &#8230; <a href="https://www.davidvalverde.com/blog/tablas-de-datos-responsive/" title="Tablas de datos responsive">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/tablas-de-datos-responsive/">Tablas de datos responsive</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Uno de los problemas que tenemos actualmente en desarrollo web es cómo mostrar una gran cantidad de datos en pantalla cuando utilizamos un móvil o table. Si bien, en pantallas grandes no habría demasiado problema en mostrar muchas columnas de datos, cuando las pantallas son más pequeñas, aparece nuestro problema.</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2016/02/tablas-de-datos-responsive.png" alt="Tablas de datos responsive" width="570" height="723" class="aligncenter size-full wp-image-1467" srcset="https://www.davidvalverde.com/wp-content/uploads/2016/02/tablas-de-datos-responsive.png 570w, https://www.davidvalverde.com/wp-content/uploads/2016/02/tablas-de-datos-responsive-237x300.png 237w, https://www.davidvalverde.com/wp-content/uploads/2016/02/tablas-de-datos-responsive-300x381.png 300w" sizes="auto, (max-width: 570px) 100vw, 570px" /></p>
<p>Hay varias aproximaciones para resolver este problema como, por ejemplo, el utilizado en <a href="http://getbootstrap.com/css/#tables-responsive">Bootstrap</a>. El problema de ésto es que añade un scroll horizontal al que ya tenemos vertical, y puede ser un poco confuso.</p>
<p>En este artículo vamos a ver otra forma de enfrentarnos al problema de las tablas de datos responsive basado en el ejemplo que aparece en <a href="https://css-tricks.com/responsive-data-tables/">CSS-Tricks</a> y vamos a pasar de esto</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2016/02/tabla-de-datos-responsive-pantallas-grandes.jpg" alt="Tablas de datos responsive en pantallas grandes" width="369" height="79" class="aligncenter size-full wp-image-1468" srcset="https://www.davidvalverde.com/wp-content/uploads/2016/02/tabla-de-datos-responsive-pantallas-grandes.jpg 369w, https://www.davidvalverde.com/wp-content/uploads/2016/02/tabla-de-datos-responsive-pantallas-grandes-300x64.jpg 300w" sizes="auto, (max-width: 369px) 100vw, 369px" /></p>
<p>a esto</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2016/02/tabla-de-datos-responsive-pantallas-pequenas.jpg" alt="Tablas de datos responsive en pantallas pequeñas" width="452" height="232" class="aligncenter size-full wp-image-1469" srcset="https://www.davidvalverde.com/wp-content/uploads/2016/02/tabla-de-datos-responsive-pantallas-pequenas.jpg 452w, https://www.davidvalverde.com/wp-content/uploads/2016/02/tabla-de-datos-responsive-pantallas-pequenas-300x154.jpg 300w" sizes="auto, (max-width: 452px) 100vw, 452px" /></p>
<p>Veamos el código utilizado.</p>
<h2>HTML</h2>
<p>En primer lugar, el marcado HTML no tiene mucho misterio ya que se trata de una table normal y corriente.</p>
<pre lang='html5' line='1'><table>
    <thead>
        <tr>
            <th>ID Cliente</th>
            <th>Nombre</th>
            <th>Apellidos</th>
            <th>Ciudad</th>
            <th>Teléfono</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>John</td>
            <td>Smith</td>
            <td>Springfield</td>
            <td>555 345 6523</td>
        </tr>
        <tr>
            <td>2</td>
            <td>Susan</td>
            <td>Brown</td>
            <td>New York</td>
            <td>555 879 2394</td>
        </tr>
    </tbody>
</table></pre>
<h2>CSS</h2>
<p>El código CSS nos va a permitir transformar nuestras tablas de datos en tablas de datos responsive. Las tablas están apenas sin estilos decorativos para no entorpecer la explicación de lo que nos interesa, pero puedes añadir bordes, fondos y colores para hacerlas más atractivas.</p>
<pre lang='css' line='1'>table {
    background-color: #fff;
}
th {
    background-color: #19548e;
    color: #fff;
}
@media (max-width: 768px) {
    /* Force table to not be like tables anymore */
    table, thead, tbody, tfoot, th, td, tr, caption { 
        display: block; 
    }
	
    /* Hide table headers (but not display: none;, for accessibility) */
    thead tr { 
        position: absolute;
	top: -9999px;
	left: -9999px;
    }
	
    tr { border: 1px solid #ccc; }
	
    tbody td { 
	/* Behave  like a "row" */
	border: none;
	position: relative;
	padding-left: 50% !important; 
    }
	
    tbody td:before { 
	/* Now like a table header */
	position: absolute;
	/* Top/left values mimic padding */
	top: 6px;
	left: 6px;
	width: 45%; 
	padding-right: 10px; 
	white-space: nowrap;
    }
	
    /*
    Label the data
    */
    tbody td:before { content: attr(data-heading); }
}</pre>
<p>En la línea 8 tenemos un mediaquery que nos indica hasta cuando consideramos una pantalla pequeña y queremos hacer la transformación. He elegido 768px porque es la dimensión que viene por defecto en Bootstrap y que puede aplicarse en la mayoría de dispositivos móviles, pero puedes ajustarlo a tus requerimientos.</p>
<p>Bien, pues lo primero es forzar a que todos los componentes de la tabla ya no se comporten como una tabla en las líneas 10-12.</p>
<p>La cabecera de la tabla podemos ocultarla tal como se indica en las líneas 15-19.</p>
<p>En las líneas 23-28 ajustamos las etiquetas TDs para que se comporten como una fila. El padding de la línea 27 es para mostrar los datos como si fuera una tabla de dos columnas: la primera con el nombre del dato y la segunda con su valor.</p>
<p>Las líneas 30-39 se corresponde con esta primera «columna», la del nombre del dato que vamos a colocar en cada línea. Y por último, la línea 44 recupera el nombre del dato que tenemos guardado en el atributo data-heading de cada etiqueta TD de la tabla y lo muestra por pantalla.</p>
<h2>JavaScript</h2>
<p>Con lo anterior ya tendríamos resuelto el problema que estamos viendo. Pero al final nos hemos encontrado que tenemos que añadir a cada etiqueta TD un atributo data-heading con el nombre de la columna que estamos mostrando. Algo que va a añadir bastante código a nuestro HTML y que vamos a tener que repetir muchas veces dependiendo del tamaño de nuestra tabla.</p>
<p>Podemos resolver ésto añadiendo una pequeña función javascript que recoja los valores que tenemos en nuestra cabecera en las etiquetas TH y que añada automáticamente los atributos data-heading a todas las etiquetas TD con su valor correspondiente.</p>
<pre lang='javascript'>$('table').each(function() {
    var thetable = $(this);
    $(this).find('tbody td').each(function() {
        $(this).attr('data-heading', thetable.find('thead th:nth-child('+($(this).index()+1)+')').text());
    });
});</pre>
<p>Con este último paso tenemos creada nuestra tabla de datos responsive. ¿Qué te parece? ¿Te gusta la idea?</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/tablas-de-datos-responsive/">Tablas de datos responsive</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/tablas-de-datos-responsive/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Marketing de afiliación</title>
		<link>https://www.davidvalverde.com/blog/marketing-de-afiliacion/</link>
					<comments>https://www.davidvalverde.com/blog/marketing-de-afiliacion/#respond</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Mon, 11 Jan 2016 11:00:34 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[afiliados]]></category>
		<category><![CDATA[CPA]]></category>
		<category><![CDATA[marketing]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1369</guid>

					<description><![CDATA[<p>La afiliación es una relación contractual entre dos actores principales: por un lado se encuentran las webs que tienen una cierta cantidad de tráfico, y por otro lado, aquellas webs que quieren vender o promocionar de alguna manera sus productos o servicios. Esto es, los primeros promocionan los productos y servicios del segundo a cambio de una comisión. Actores involucrados Hay tres papeles principales involucrados en el marketing de afiliación. Anunciantes Son las empresas o &#8230; <a href="https://www.davidvalverde.com/blog/marketing-de-afiliacion/" title="Marketing de afiliación">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/marketing-de-afiliacion/">Marketing de afiliación</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>La afiliación es una relación contractual entre dos actores principales: por un lado se encuentran las webs que tienen una cierta cantidad de tráfico, y por otro lado, aquellas webs que quieren vender o promocionar de alguna manera sus productos o servicios. Esto es, los primeros promocionan los productos y servicios del segundo a cambio de una comisión.</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2015/10/marketing-afiliacion.jpg" alt="Marketing de afiliación" width="840" height="724" class="aligncenter size-full wp-image-1370" srcset="https://www.davidvalverde.com/wp-content/uploads/2015/10/marketing-afiliacion.jpg 840w, https://www.davidvalverde.com/wp-content/uploads/2015/10/marketing-afiliacion-300x259.jpg 300w" sizes="auto, (max-width: 840px) 100vw, 840px" /></p>
<h2>Actores involucrados</h2>
<p>Hay tres papeles principales involucrados en el marketing de afiliación.</p>
<h3>Anunciantes</h3>
<p>Son las empresas o webs que ofrecen productos y servicios y que pagan las comisiones por su promoción.</p>
<h3>Afiliados</h3>
<p>Son los recomendadores, aquellas personas que deciden hacer publicidad de los servicios en su web y ganan comisiones por cada nuevo cliente que obtengan para el anunciante.</p>
<h3>Compradores</h3>
<p>Son los clientes, aquellas personas que se interesan en el producto o servicio promocionado.</p>
<h3>Plataformas de afiliación</h3>
<p>Por último, se encuentran los intermediarios, que si bien no son imprescindibles en la relación de afiliación, son muy útiles. Permiten conectar a una gran cantidad de anunciantes con los afiliados, lo que facilita a estos últimos al no tener que crear una cuenta distinta para cada anunciante y gestionar todas las promociones desde un mismo sitio.</p>
<h2>Tipos de afiliación</h2>
<p>Existen diferentes maneras de conseguir remuneraciones por afiliación: CPC, CPM, CPL, CPV&#8230; Veamos lo que significan estas siglas.</p>
<h3>CPC/PPC</h3>
<p>Coste por Click/Pago por Click. Remuneración al afiliado por click; es decir, por cada vez que el comprador pincha con el ratón en algún reclamo publicitario del anunciante, ya sea a través de un enlace de texto o visual.</p>
<h3>DC</h3>
<p>Doble Click. Remuneración al afiliado por cada clic en un enlace o elemento gráfico del anunciante que se encuentra en la web afiliada, seguido de un segundo click, esta vez en la web de dicho anunciante.</p>
<h3>CPM</h3>
<p>Coste por Mil. Sistema muy rentable de remuneración al portal afiliado, por cada mil impresiones de página.</p>
<h3>CPA</h3>
<p>Coste por Acción. Tipo de pago basado en ciertos tipos de acción realizados por el visitante en un sitio web, como podrían ser ventas o registros.</p>
<h3>CPL</h3>
<p>Coste por Lead. Remuneración al afiliado por cada formulario o perfil que el comprador complete en la web anunciante, siempre a través del enlace de afiliado: inscripciones, cuestionarios varios, o la suscripción a una newsletter.</p>
<h3>CPV</h3>
<p>Coste por Venta. Remuneración al afiliado por cada compra que el comprador realice en la web del anunciante, a través del intermediario de dicho afiliado. Dicha remuneración puede ser, o bien fija, o bien en función de un porcentaje determinado.</p>
<h2>¿Cómo funciona el marketing de afiliación?</h2>
<p>Vamos a ver cómo funciona el marketing de afiliación. Lo voy a orientar al perfil de afiliado; es decir, serás tú el que promociones a los anunciantes. Aunque esta es la forma más sencilla de entrar en el mundo de la afiliación, puedes ocupar también el papel de anunciante si quieres que te promocionen tus propios productos.</p>
<p>Lo primero que tienes que hacer es un sitio web donde puedas recomendar los productos o servicios del anunciante. Puede ser tu blog personal, un blog específico que crees para vender cierto tipo de productos o una tienda web.</p>
<p>Después tienes que identificar los posibles anunciantes que se corresponden mejor con el objetivo de vuestra web o a quienes va dirigida. Es importante que los productos y servicios que promociones aporten valor a tus usuarios, porque así será más fácil que éstos hagan compras y tú te lleves la comisión correspondiente. No promociones productos tecnológicos en tu web de alimentación vegana, quizás no tenga mucho sentido. Ya sabes, lo importante es aportar valor.</p>
<p>Tras seleccionar una lista de anunciantes, tienes que inscribirte en su programa de afiliados (estamos suponiendo que los anunciantes elegidos tienen programa de afiliados). Esta inscripción puede estar en el sitio web del anunciante (como en el caso de <a href="https://afiliados.amazon.es/">Amazon</a>) o a través de alguna plataforma de afiliados (<a href="http://www.zanox.com/">Zanox</a> por ejemplo).</p>
<p>El anunciante revisará tu solicitud de inscripción y será aceptada o no, según sus criterios de aceptación. Este proceso puede durar algunos días.</p>
<p>Una vez aceptada la solicitud, el anunciante te proporcionará un identificador (o banners y cualquier material necesario) que tendrás que colocar en tus enlaces de los productos publicitados, para que puede identificar los usuarios que han venido a través de ti.</p>
<p>Por último, coloca los enlaces de afiliados en tu web y comienza a generar ingresos.</p>
<p><iframe loading="lazy" title="1/11 Introducción al Marketing de afiliación." width="500" height="281" src="https://www.youtube.com/embed/QnttglC8fOM?list=PLOOZZq_0b4LgmLD2AVDYdY_0ab4-49dFs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<h2>¿Por dónde empezar?</h2>
<p>Mucha gente comienza con el <a href="https://afiliados.amazon.es/">Programa de Afiliados de Amazon</a>. Es muy fácil inscribirse y tiene millones de productos que puedes promocionar. Aunque las comisiones que se obtienen no son muy altas, hay muchas personas que se están ganando bastante bien la vida sólo con Amazon.</p>
<p>También existe una multitud de <a href="http://www.afiliado.com/rentabilizacion/plataformas-de-afiliacion.php">plataformas de afiliación</a> donde puedes encontrar una gran cantidad de anunciantes que pueden ajustarse al tema de tu web.</p>
<p>En próximos artículos veremos cómo utilizar estas plataformas e introducirnos en el mundo del marketing de afiliación.</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/marketing-de-afiliacion/">Marketing de afiliación</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/marketing-de-afiliacion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>La liebre y la tortuga</title>
		<link>https://www.davidvalverde.com/blog/liebre-y-tortuga/</link>
					<comments>https://www.davidvalverde.com/blog/liebre-y-tortuga/#respond</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Mon, 21 Dec 2015 11:00:48 +0000</pubDate>
				<category><![CDATA[Desarrollo Personal]]></category>
		<category><![CDATA[cuentos]]></category>
		<category><![CDATA[liebre]]></category>
		<category><![CDATA[motivación]]></category>
		<category><![CDATA[tortuga]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1366</guid>

					<description><![CDATA[<p>Seguro que conoces la famosa fábula, atribuida a Esopo, de la liebre y la tortuga. Dice así: En el mundo de los animales vivía una liebre muy orgullosa y vanidosa, que no cesaba de pregonar que ella era la más veloz y se burlaba de ello ante la lentitud de la tortuga. &#8211; ¡Eh, tortuga, no corras tanto que nunca vas a llegar a tu meta! Decía la liebre riéndose de la tortuga. Un día, &#8230; <a href="https://www.davidvalverde.com/blog/liebre-y-tortuga/" title="La liebre y la tortuga">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/liebre-y-tortuga/">La liebre y la tortuga</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Seguro que conoces la famosa fábula, atribuida a Esopo, de la liebre y la tortuga.</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2015/10/liebre_tortuga.jpg" alt="Fábula de la liebre y la tortuga" width="840" height="613" class="aligncenter size-full wp-image-1367" srcset="https://www.davidvalverde.com/wp-content/uploads/2015/10/liebre_tortuga.jpg 840w, https://www.davidvalverde.com/wp-content/uploads/2015/10/liebre_tortuga-300x219.jpg 300w" sizes="auto, (max-width: 840px) 100vw, 840px" /></p>
<p>Dice así:</p>
<blockquote><p>En el mundo de los animales vivía una liebre muy orgullosa y vanidosa, que no cesaba de pregonar que ella era la más veloz y se burlaba de ello ante la lentitud de la tortuga.</p>
<p>&#8211; ¡Eh, tortuga, no corras tanto que nunca vas a llegar a tu meta! Decía la liebre riéndose de la tortuga.</p>
<p>Un día, a la tortuga se le ocurrió hacerle una inusual apuesta a la liebre:</p>
<p>&#8211; Estoy segura de poder ganarte una carrera.</p>
<p>&#8211; ¿A mí? Preguntó asombrada la liebre.</p>
<p>&#8211; Sí, sí, a ti, dijo la tortuga. Pongamos nuestras apuestas y veamos quién gana la carrera.</p>
<p>La liebre, muy ingreída, aceptó la apuesta.</p>
<p>Así que todos los animales se reunieron para presenciar la carrera. El búho señaló los puntos de partida y de llegada, y sin más preámbulos comenzó la carrera en medio de la incredulidad de los asistentes.</p>
<p>Astuta y muy confiada en si misma, la liebre dejó coger ventaja a la tortuga y se quedó haciendo burla de ella. Luego, empezó a correr velozmente y sobrepasó a la tortuga que caminaba despacio, pero sin parar. Sólo se detuvo a mitad del camino ante un prado verde y frondoso, donde se dispuso a descansar antes de concluir la carrera. Allí se quedó dormida, mientras la tortuga siguió caminando, paso tras paso, lentamente, pero sin detenerse.</p>
<p>Cuando la liebre se despertó, vio con pavor que la tortuga se encontraba a una corta distancia de la meta. En un sobresalto, salió corriendo con todas sus fuerzas, pero ya era muy tarde: ¡la tortuga había alcanzado la meta y ganado la carrera!</p></blockquote>
<p><iframe loading="lazy" title="La liebre y la tortuga" width="500" height="375" src="https://www.youtube.com/embed/qNh7bIE-nSk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>Este cuento nos enseña la valiosa lección, si la aplicamos a nuestro campo, que la carrera de alguien que está creando un negocio <strong>es una maratón, no una prueba de velocidad</strong>. No existen atajos ni fórmulas mágicas para conseguir el éxito y llegar a la meta; sólo aquel que sea perseverante y trabajador consigue triunfar. No intentes saltarte etapas ni buscar el éxito fácil; la única receta es el <strong>trabajo duro</strong>. Y además: <strong>nunca te duermas en tus laureles</strong>. No sabes cuándo un competidor, por más pequeño que parezca, puede superarte y ganar a los consumidores.</p>
<p>Una buena lección, ¿no te parece?</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/liebre-y-tortuga/">La liebre y la tortuga</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/liebre-y-tortuga/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Consejos para hacer un buen Link Building</title>
		<link>https://www.davidvalverde.com/blog/consejos-link-building/</link>
					<comments>https://www.davidvalverde.com/blog/consejos-link-building/#respond</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Thu, 17 Dec 2015 11:00:46 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[enlaces]]></category>
		<category><![CDATA[Link Building]]></category>
		<category><![CDATA[SEO]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1363</guid>

					<description><![CDATA[<p>Una de las mejores estrategias SEO off-page que puedes utilizar para posicionar tu web es tener una buena estrategia de Link Building y generar enlaces a tu página de forma natural. Pero ojo, he dicho de forma natural. Ten cuidado al forzar los enlaces porque eso no le gusta a Google y puede que te pille, con la consecuente bajada en los rankings de las búsquedas. El objetivo no es hacer que tus enlaces parezcan &#8230; <a href="https://www.davidvalverde.com/blog/consejos-link-building/" title="Consejos para hacer un buen Link Building">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/consejos-link-building/">Consejos para hacer un buen Link Building</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Una de las mejores estrategias SEO off-page que puedes utilizar para posicionar tu web es tener una buena estrategia de Link Building y generar enlaces a tu página de forma natural.</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2015/10/link-building.jpg" alt="Link Building" width="840" height="560" class="aligncenter size-full wp-image-1364" srcset="https://www.davidvalverde.com/wp-content/uploads/2015/10/link-building.jpg 840w, https://www.davidvalverde.com/wp-content/uploads/2015/10/link-building-300x200.jpg 300w" sizes="auto, (max-width: 840px) 100vw, 840px" /></p>
<p>Pero ojo, he dicho de forma natural. Ten cuidado al forzar los enlaces porque eso no le gusta a Google y puede que te pille, con la consecuente bajada en los rankings de las búsquedas.</p>
<blockquote><p>El objetivo no es hacer que tus enlaces parezcan naturales; el objetivo es hacer tus enlaces naturales.</p>
<p>&#8211; Matt Cutts</p></blockquote>
<p>Así que aquí van una lista de interesantes consejos:</p>
<ul>
<li>Focalizar en tácticas que crean relaciones reales, contenido real y de verdadera influencia. Si lo haces así, no importa cómo Google mida la autoridad #RCS.
<li>Detectar tendencias del sector y ser el primero en publicarlas.
<li>Crear una gran lista que contenga recursos de tu sector.
<li>Escribir más, aunque creas que no puedes hazlo.
<li>Usar el humor, la sátira, la ironía o la parodia, con gran variedad de formatos: vídeo, fotografía, ilustraciones.
<li>Crear polémica en las opiniones.
<li>Entrevistas a líderes del sector y opinión.
<li>Realizar una encuesta / análisis / conclusiones con las cifras y argumentos.
<li>Premios para tus usuarios de tu web
<li>Realizar guías y tutoriales de ayuda.
<li>Ayudar en foros de ayuda.
<li>Escribir un libro.
<li>Acudir a eventos, ofrecerte como ponente y pedir el enlace o la mención.
<li>Presentar tu web a concursos.
<li>Escribir como invitado en blogs de amigos y profesionales del sector.
<li>Concursos de productos.
<li>Dar cursos, de pago y gratuitos.
<li>Ofrecer opiniones de productos y experiencias reales.
<li>Consultar gratuitamente a otros recursos de calidad similares a los sujetos.
<li>Patrocinios eventos del sector.
<li>Donaciones en webs con enlaces de autoridad.
<li>Ofertas de empleo.
<li>Inclusión cámaras comercio locales.
<li>Colaboraciones con colegios y Universidades.
<li>Altas en directorios adecuados – temáticos.
<li>Descuentos y cupones para estudiantes (.edu).
<li>Eventos de emprendedores.
<li>Eventos networking.
<li>Directorios de pago alto.
<li>Construir una red de blogs «cuidada».
<li>Crear testimonios.
<li>Plataforma HARO.
<li>Crear recursos para páginas Universitarias.
<li>Enviar a agregadores de blogs.
<li>Buscar guest posting en twitter.
<li>Agregador contenido Scoop it.
<li>Broken link building.
<li>Infografía.
<li>Submit Audio Sharing sites.
<li>Hunting Domain.
<li>Dibujar y publicar comics con enlaces referentes.
<li>Publicar ofertas de empleo con URL de la compañía.
<li>Detectar contenidos copiados en sitios terceros sin fuente, pedir un enlace hacia la fuente o al menos una etiqueta <code><link rel="canonical“ href="http:// www.dominio.com/pagina-1"/></code> (vale por los contenidos imágenes, textos y videos).
<li>Verificar las errores 404 provenientes de enlaces externos y corregirlas.
<li>Usar Google+.
<li>Publicar libros digitales gratuitos.
</ul>
<p>También es muy importante saber qué cosas <strong>no debes hacer</strong> si no quieres ser penalizado:</p>
<ul>
<li>Altas en directorios automáticos.
<li>Software Comentarios SPAM.
<li>Intercambios sin valor y a desconocidos.
<li>Compra de enlaces de baja calidad sin analizar el perfil de enlaces de la web.
<li>Enlaces no naturales.
<li>Link building con auto scraping.
<li>Sobre optimización.
<li>Keyword stuffing.
<li>Footers links.
<li>Wiki sites.
<li>Enlaces Blogrolls con anchor.
<li>Social Bookmarks masivos.
<li>Web 2.0.
<li>Links recíprocos.
</ul>
<p>Si sigues esta serie de consejos en tu estrategia te evitarás más de un dolor de cabeza y mejorará el posicionamiento de tus sitios web.</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/consejos-link-building/">Consejos para hacer un buen Link Building</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/consejos-link-building/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>2 reglas que tienes que aplicar</title>
		<link>https://www.davidvalverde.com/blog/2-reglas-exito-negocios/</link>
					<comments>https://www.davidvalverde.com/blog/2-reglas-exito-negocios/#respond</comments>
		
		<dc:creator><![CDATA[David Valverde]]></dc:creator>
		<pubDate>Mon, 14 Dec 2015 11:00:44 +0000</pubDate>
				<category><![CDATA[Desarrollo Personal]]></category>
		<category><![CDATA[Pareto]]></category>
		<category><![CDATA[Parkinson]]></category>
		<category><![CDATA[Productividad]]></category>
		<category><![CDATA[reglas]]></category>
		<guid isPermaLink="false">http://www.davidvalverde.com/blog/?p=1360</guid>

					<description><![CDATA[<p>En el desarrollo de nuestros negocios siempre buscamos la eficiencia para realizar las tareas que tenemos encomendadas y debemos realizar. Si tienes un negocio propio, seguro que has pasado mucho tiempo con largas jornadas, completamente ocupado y, aún así, con la intuición que estabas haciendo poco, como que le faltaban horas al día. Hoy vamos a ver un par de reglas que deberías aplicar en todo momento para mejorar la eficiencia en tu trabajo y &#8230; <a href="https://www.davidvalverde.com/blog/2-reglas-exito-negocios/" title="2 reglas que tienes que aplicar">Seguir leyendo <i class="fa fa-fw fa-angle-double-right"></i></a></p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/2-reglas-exito-negocios/">2 reglas que tienes que aplicar</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>En el desarrollo de nuestros negocios siempre buscamos la eficiencia para realizar las tareas que tenemos encomendadas y debemos realizar. Si tienes un negocio propio, seguro que has pasado mucho tiempo con largas jornadas, completamente ocupado y, aún así, con la intuición que estabas haciendo poco, como que le faltaban horas al día.</p>
<p><img loading="lazy" decoding="async" src="http://www.davidvalverde.com/wp-content/uploads/2015/10/reglas-conseguir-tiempo.jpg" alt="2 reglas para un negocio con éxito" width="840" height="493" class="aligncenter size-full wp-image-1361" srcset="https://www.davidvalverde.com/wp-content/uploads/2015/10/reglas-conseguir-tiempo.jpg 840w, https://www.davidvalverde.com/wp-content/uploads/2015/10/reglas-conseguir-tiempo-300x176.jpg 300w" sizes="auto, (max-width: 840px) 100vw, 840px" /></p>
<p>Hoy vamos a ver un par de reglas que deberías aplicar en todo momento para mejorar la eficiencia en tu trabajo y en todos los aspectos personales de tu vida.</p>
<h2>Ley de Pareto</h2>
<p>También conocida como la regla del 80/20. Dice así:</p>
<blockquote><p>El 80% de los resultados son obtenidos gracias al 20% del trabajo realizado.</p></blockquote>
<p>Y es que el dinero perdido se puede volver a ganar, pero el tiempo nunca. Debemos analizar todas nuestras tareas diarias e identificar aquellas que nos traen más beneficios. Tras el análisis nos centraremos en ellas para maximizar nuestro rendimiento y el de nuestro negocio. Con esto nos ahorramos un 80% de nuestro tiempo que podemos dedicar a mejorar el 20% que nos trae los grandes beneficios o a tener una mayor calidad de vida.</p>
<h2>Ley de Parkinson</h2>
<p>La ley de Parkinson dice así:</p>
<blockquote><p>El trabajo se expande hasta llenar el tiempo disponible para que se termine.</p></blockquote>
<p>Cuando tenemos fechas límite para hacer algo, normalmente ocupamos todo el tiempo que tenemos en hacerlas. Por eso es bueno fijarnos fechas más estrictas. De este modo nos enfocaremos mucho más en lo que estamos haciendo y terminaremos las tareas en menor tiempo y, casi siempre, con una mayor calidad.</p>
<p>Si utilizamos estas dos reglas y las hacemos juntas nos permitirán alcanzar un nuevo nivel en nuestra productividad, y, a consecuencia, un mayor éxito de nuestros negocios. Por eso, debemos:</p>
<ul>
<li>Limitar nuestras tareas a las importantes, para trabajar menos tiempo (Pareto).
<li>Acortar el tiempo de trabajo para limitar tus tareas a las importantes (Parkinson).
</ul>
<p>¿Las aplicas en tu día a día?</p>
<p>La entrada <a href="https://www.davidvalverde.com/blog/2-reglas-exito-negocios/">2 reglas que tienes que aplicar</a> aparece primero en <a href="https://www.davidvalverde.com">David Valverde Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.davidvalverde.com/blog/2-reglas-exito-negocios/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
