<?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>blog.ahierro.es, programación, internet, tecnología y otras historias</title>
	<atom:link href="https://blog.ahierro.es/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ahierro.es</link>
	<description>Un blog personal  donde compartir experiencias e inquietudes relacionadas con internet, tecnología y otros asuntos interesantes</description>
	<lastBuildDate>Thu, 07 Oct 2021 07:02:51 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://blog.ahierro.es/wp-content/uploads/2018/10/cropped-logo_small-1-2-32x32.png</url>
	<title>blog.ahierro.es, programación, internet, tecnología y otras historias</title>
	<link>https://blog.ahierro.es</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Variables de configuración de PHP en .htaccess</title>
		<link>https://blog.ahierro.es/variables-de-configuracion-de-php-en-htaccess/</link>
					<comments>https://blog.ahierro.es/variables-de-configuracion-de-php-en-htaccess/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Thu, 07 Oct 2021 07:02:49 +0000</pubDate>
				<category><![CDATA[Apache 2]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Tips & Quick Wins]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[servidor]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=2352</guid>

					<description><![CDATA[<p>No siempre disponemos de acceso a la configuración del servidor. Aprendemos a configurar las variables de PHP mediante el archivo .htaccess cuando esto ocurre</p>
La entrada <a href="https://blog.ahierro.es/variables-de-configuracion-de-php-en-htaccess/">Variables de configuración de PHP en .htaccess</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Al momento de desplegar nuestras aplicaciones web no siempre tenemos acceso a la configuración del servidor. Aprendemos a configurar las variables de PHP mediante el archivo .htaccess cuando esto ocurre.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="576" src="https://blog.ahierro.es/wp-content/uploads/2021/10/htaccess-1024x576.png" alt="Variables de PHP en htaccess" class="wp-image-2388" srcset="https://blog.ahierro.es/wp-content/uploads/2021/10/htaccess-1024x576.png 1024w, https://blog.ahierro.es/wp-content/uploads/2021/10/htaccess-300x169.png 300w, https://blog.ahierro.es/wp-content/uploads/2021/10/htaccess-768x432.png 768w, https://blog.ahierro.es/wp-content/uploads/2021/10/htaccess-1536x864.png 1536w, https://blog.ahierro.es/wp-content/uploads/2021/10/htaccess.png 1920w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<span id="more-2352"></span>



<p>Y es que a veces encontraremos que nuestra aplicación tiene unos requisitos mínimos que el servidor no cumple. Pongamos por ejemplo que queremos <a href="https://blog.ahierro.es/instalar-prestashop-1-7/" title="Instalar Prestashop 1.7">instalar prestashop</a> que tiene ciertos <a href="https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/" title="Requisitos mínimos de Prestashop 1.7">requisitos mínimos</a> y que por algún motivo nuestro hosting no satisface.</p>



<h2 class="wp-block-heading">Cómo configurar variables de PHP desde .htaccess</h2>



<p>Hay varias formas de actuar sobre estas variables, pero tal y como reza el título de esta entrada hoy vamos a hacerlo con el archivo <em>.htaccess</em>, y para ello utilizaremos la orden <em>php_value</em>. Su sintaxis es muy sencilla<em>:</em></p>



<p><em>php_value</em> + <em>variable_php</em> + <em>valor</em>. </p>



<p>Un ejemplo podría ser que necesitamos que la variable <em>memory_limit</em> esté configurada en 64M y el servidor la tiene configurada en 32M, o quizás el <em>max_input_vars</em> está configurado en 500 y nuestros requisitos mínimos son 1.000. Para ello incluiríamos las siguientes líneas en el archivo .htaccess:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
php_value memory_limit 64M
php_value max_input_vars 1000
</pre></div>


<p>O supongamos que queremos mostrar los errores de PHP de nuestra aplicación. Podemos hacerlo desde el archivo .htaccess:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
php_value error_reporting 7
php_flag display_errors On
</pre></div>


<h2 class="wp-block-heading">Dónde colocar las líneas dentro del archivo .htaccess</h2>



<p>Personalmente me gusta colocar este tipo de sentencias al comienzo del archivo .htaccess, justo detrás de los comentarios:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
# Comentarios habituales en archivos .htaccess

# variables php
php_value error_reporting 7
php_flag display_errors On

&amp;lt;IfModule mod_rewrite.c&gt;
&amp;lt;IfModule mod_env.c&gt;
SetEnv HTTP_MOD_REWRITE On
&amp;lt;/IfModule&gt;

RewriteEngine on
...
</pre></div>


<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li><a href="https://blog.ahierro.es/aumentar-el-limite-de-memoria-de-un-script-en-php/">Aumentar el límite de memoria de un script en PHP</a></li><li><a href="https://blog.ahierro.es/aumentar-el-limite-de-tiempo-maximo-de-ejecucion-de-un-script-en-php/">Aumentar el limite de tiempo máximo de ejecución de un script en PHP</a></li><li><a href="https://blog.ahierro.es/servidor-web-en-raspberry-pi-y-ubuntu-mate/">Servidor Web en Raspberry PI y Ubuntu Mate</a></li><li><a href="https://blog.ahierro.es/como-configurar-virtual-hosts-en-apache-y-ubuntu/">Como configurar Virtual Hosts en Apache 2 y Ubuntu</a></li><li><a href="https://blog.ahierro.es/habilitar-modulos-en-apache-2-sobre-ubuntu/">Habilitar módulos en Apache 2 sobre Ubuntu</a></li></ul>La entrada <a href="https://blog.ahierro.es/variables-de-configuracion-de-php-en-htaccess/">Variables de configuración de PHP en .htaccess</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/variables-de-configuracion-de-php-en-htaccess/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo verificar los requisitos mínimos de Prestashop 1.7</title>
		<link>https://blog.ahierro.es/como-verificar-los-requisitos-minimos-de-prestashop-1-7/</link>
					<comments>https://blog.ahierro.es/como-verificar-los-requisitos-minimos-de-prestashop-1-7/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Mon, 27 Sep 2021 05:34:55 +0000</pubDate>
				<category><![CDATA[Comercio Electronico]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[prestashop]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=2316</guid>

					<description><![CDATA[<p>Aprenderemos a verificar si cumplimos con los requisitos mínimos de sistema para Prestashop 1.7 con la herramienta Shop system requirements checker</p>
La entrada <a href="https://blog.ahierro.es/como-verificar-los-requisitos-minimos-de-prestashop-1-7/">Cómo verificar los requisitos mínimos de Prestashop 1.7</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Aprenderemos a verificar de forma sencilla si cumplimos con los requisitos mínimos de sistema para Prestashop 1.7.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://blog.ahierro.es/wp-content/uploads/2021/09/prestashop_sis_info-1024x576.png" alt="PhpPsInfo – PrestaShop system requirements checker" class="wp-image-2322" srcset="https://blog.ahierro.es/wp-content/uploads/2021/09/prestashop_sis_info-1024x576.png 1024w, https://blog.ahierro.es/wp-content/uploads/2021/09/prestashop_sis_info-300x169.png 300w, https://blog.ahierro.es/wp-content/uploads/2021/09/prestashop_sis_info-768x432.png 768w, https://blog.ahierro.es/wp-content/uploads/2021/09/prestashop_sis_info-1536x864.png 1536w, https://blog.ahierro.es/wp-content/uploads/2021/09/prestashop_sis_info.png 1920w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<span id="more-2316"></span>



<p>Para concluir con la serie de artículos relacionados con la instalación de Prestashop 1.7 vamos a aprender a verificar si cumplimos con todos los requisitos de sistemas, tanto los mínimos como los recomendados. </p>



<p>Y para ponerte en situación recuerda que ya hemos visto <a href="https://blog.ahierro.es/instalar-prestashop-1-7/">cómo instalar Prestashop 1.7</a> y también los r<a href="https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/" title="Requisitos mínimos de Prestashop 1.7">equisitos mínimos de Prestashop 1.7</a>.</p>



<h2 class="wp-block-heading">Por qué verificar los requisitos mínimos Prestashop 1.7 </h2>



<p>En una instalación nueva el propio asistente de instalación realiza las comprobaciones oportunas y nos indica si existe algún requisito no satisfecho. Así que este artículo no tendría mucho sentido.</p>



<p>Pero no siempre realizamos una instalación desde 0, y verificar si cumplimos con los requisitos mínimos de Prestashop es especialmente útil cuando migramos una tienda existente o montamos un <a href="https://blog.ahierro.es/entornos-en-el-desarrollo-de-software/">entorno de desarrollo o de pre-producción</a> desde una tienda existente.</p>





<h2 class="wp-block-heading">Cómo verificar los requisitos mínimos Prestashop 1.7 </h2>



<p>Para esta verificación utilizaremos la herramienta <a href="https://github.com/PrestaShop/php-ps-info/" target="_blank" rel="noreferrer noopener">PhpPsInfo &#8211; PrestaShop system requirements checker</a>. Los pasos a seguir son pocos y sencillos:</p>



<ol class="wp-block-list"><li>Descarga la última versión de la herramienta <a href="https://github.com/PrestaShop/php-ps-info/releases" target="_blank" rel="noreferrer noopener">PhpPsInfo desde GitHub</a>.</li><li>Descomprímela.</li><li>Copia el archivo phppsinfo.php en la carpeta raíz de Prestashop. </li><li>Accede al archivo desde tu navegador (http://url-a-tu-prestashop/phppsinfo.php).</li><li>Cuando pida usuario y contraseña usa «<em>prestashop</em>» en ambos, sin comillas.</li></ol>



<p>Si lo hemos hecho correctamente accederemos a una página que nos indica si cumplimos o no con los requisitos mínimos y recomendados. </p>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li><a href="https://blog.ahierro.es/instalar-prestashop-1-7/">Instalar Prestashop 1.7</a></li><li><a href="https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/" title="Requisitos mínimos de Prestashop 1.7">Requisitos mínimos de Prestashop 1.7</a></li><li><a href="https://blog.ahierro.es/archivos-y-permisos-de-usuario-en-apache-y-linux/">Archivos y permisos de usuario en Apache 2 y Linux</a></li></ul>La entrada <a href="https://blog.ahierro.es/como-verificar-los-requisitos-minimos-de-prestashop-1-7/">Cómo verificar los requisitos mínimos de Prestashop 1.7</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/como-verificar-los-requisitos-minimos-de-prestashop-1-7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Requisitos mínimos de Prestashop 1.7</title>
		<link>https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/</link>
					<comments>https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Mon, 27 Sep 2021 05:31:10 +0000</pubDate>
				<category><![CDATA[Comercio Electronico]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[prestashop]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=2294</guid>

					<description><![CDATA[<p>Repasamos los requisitos mínimos y recomendables de Prestashop 1.7 para que tengas una instalación sin complicaciones</p>
La entrada <a href="https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/">Requisitos mínimos de Prestashop 1.7</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Repasamos los requisitos mínimos y recomendables de Prestashop 1.7 para que tengas una instalación sin complicaciones.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema.png" alt="Instalar Prestashop Sistema Error" class="wp-image-2224" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema-768x518.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<span id="more-2294"></span>



<p>Hace ya algún tiempo escribimos el artículo <a href="https://blog.ahierro.es/instalar-prestashop-1-7/">Instalar Prestashop 1.7</a>. En él hacíamos referencia a los requisitos necesarios para instalar Prestashop sin entrar en demasiado detalle. En esta entrada vamos a profundizar en este tema.</p>



<h2 class="wp-block-heading">Requisitos mínimos y recomendados de Prestashop 1.7</h2>



<p>Repasaremos la lista de requisitos agrupándolos en varios conceptos. Si quieres irte a la fuente oficial de la información échale un vistazo a la página de <a href="https://devdocs.prestashop.com/1.7/basics/installation/system-requirements/" target="_blank" rel="noreferrer noopener">System Requirements for Prestashop</a>.</p>



<h3 class="wp-block-heading">Requisitos generales</h3>



<p>Veamos en primer lugar la lista de requisitos generales para poder correr prestashop 1.7 en una máquina.</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>Requisito</th><th>Mínimo</th><th>Recomendable</th></tr></thead><tbody><tr><td><strong>Sistema operativo</strong></td><td>Unix, Linux o Windows</td><td>Unix, Linux o Windows</td></tr><tr><td><strong>Servidor web</strong></td><td>Apache 2.2 o posterior</td><td>Apache 2.2 o posterior</td></tr><tr><td><strong>Versión de PHP</strong></td><td>PHP 7.1 o posterior</td><td>PHP 7.1 o posterior</td></tr><tr><td><strong>Versión de MySql</strong></td><td>MySql 5.6</td><td>Una versión reciente</td></tr></tbody></table><figcaption>Requisitos generales Prestashop 1.7</figcaption></figure>





<h3 class="wp-block-heading">Módulos de Apache</h3>



<p>Es recomendable activar algunos módulos de Apache, aunque es posible pasar sin ellos.</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>Requisito</th><th>Mínimo</th><th>Recomendable</th></tr></thead><tbody><tr><td><strong>mod_alias</strong></td><td>No</td><td>No</td></tr><tr><td><strong>mod_env</strong></td><td>No</td><td>Si</td></tr><tr><td><strong>mod_headers</strong></td><td>No</td><td>Si</td></tr><tr><td><strong>mod_rewrite</strong></td><td>No</td><td>Si</td></tr></tbody></table><figcaption>Módulos de Apache recomendables para Prestashop 1.7</figcaption></figure>



<h3 class="wp-block-heading">Extensiones de PHP</h3>



<p>Un aspecto fundamental es asegurarnos de que tenemos activadas todas las extensiones de PHP necesarias.</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>Requisito</th><th>Mínimo</th><th>Recomendable</th></tr></thead><tbody><tr><td><strong>BCMath Arbitrary Precision Mathematics</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>Client URL Library (Curl)</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>Image Processing and GD</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>Image Processing (ImageMagick)</strong></td><td>No</td><td>Si</td></tr><tr><td><strong>Human Language and Character Encoding Support (Iconv)</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>Internationalization Functions (Intl)</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>Memcache</strong></td><td>No</td><td>No</td></tr><tr><td><strong>Memcached</strong></td><td>No</td><td>Si</td></tr><tr><td><strong>Multibyte String (Mbstring)</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>OpenSSL</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>File Information (Fileinfo)</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>JavaScript Object Notation (Json)</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>PDO and MySQL Functions</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>SimpleXML</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>PHP-DOM and PHP-XML</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>Zip</strong></td><td>Si</td><td>Si</td></tr></tbody></table><figcaption>Extensiones de PHP para Prestashop 1.7</figcaption></figure>



<h3 class="wp-block-heading">Configuración de PHP</h3>



<p>También debemos garantizar la correcta configuración de algunas variables de PHP.</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>Requisito</th><th>Mínimo</th><th>Recomendable</th></tr></thead><tbody><tr><td><strong>allow_url_fopen</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>expose_php</strong></td><td>No</td><td>No</td></tr><tr><td><strong>file_uploads</strong></td><td>Si</td><td>Si</td></tr><tr><td><strong>register_argc_argv</strong></td><td>No</td><td>No</td></tr><tr><td><strong>short_open_tag</strong></td><td>No</td><td>No</td></tr><tr><td><strong>max_input_vars</strong></td><td>1000</td><td>5000</td></tr><tr><td><strong>memory_limit</strong></td><td>64M</td><td>254M</td></tr><tr><td><strong>post_max_size</strong></td><td>16M</td><td>128M</td></tr><tr><td><strong>upload_max_filesize</strong></td><td>4M</td><td>128M</td></tr><tr><td><strong>set_time_limit</strong></td><td>Si</td><td>Si</td></tr></tbody></table><figcaption>Configuración de PHP para Prestashop 1.7</figcaption></figure>



<h3 class="wp-block-heading">Directorios con necesidad de permisos de escritura</h3>



<p>Por último, debemos asignar permisos de escritura a ciertos directorios. Recuerda que ya hemos visto como asignar permisos en el artículo <a href="https://blog.ahierro.es/archivos-y-permisos-de-usuario-en-apache-y-linux/">Archivos y permisos de usuario en Apache 2 y Linux</a>.</p>



<p>La lista de directorios que deben tener permisos de escritura son los siguientes:</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>Requisito</th><th>Necesario</th></tr></thead><tbody><tr><td><strong>var/cache</strong></td><td>Si</td></tr><tr><td><strong>var/logs</strong></td><td>Si</td></tr><tr><td><strong>img</strong></td><td>Si</td></tr><tr><td><strong>mails</strong></td><td>Si</td></tr><tr><td><strong>modules</strong></td><td>Si</td></tr><tr><td><strong>translations</strong></td><td>Si</td></tr><tr><td><strong>upload</strong></td><td>Si</td></tr><tr><td><strong>download</strong></td><td>Si</td></tr><tr><td><strong>override</strong></td><td>Si</td></tr><tr><td><strong>app/config</strong></td><td>Si</td></tr><tr><td><strong>app/Resources/translations</strong></td><td>Si</td></tr></tbody></table><figcaption>Directorios con necesidad de permisos de escritura en Prestashop 1.7</figcaption></figure>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li><a href="https://blog.ahierro.es/instalar-prestashop-1-7/">Instalar Prestashop 1.7</a></li><li><a href="https://blog.ahierro.es/como-verificar-los-requisitos-minimos-de-prestashop-1-7/" title="Cómo verificar los requisitos mínimos de Prestashop 1.7">Cómo verificar los requisitos mínimos de Prestashop 1.7</a></li><li><a href="https://blog.ahierro.es/archivos-y-permisos-de-usuario-en-apache-y-linux/">Archivos y permisos de usuario en Apache 2 y Linux</a></li></ul>La entrada <a href="https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/">Requisitos mínimos de Prestashop 1.7</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Instalar Prestashop 1.7</title>
		<link>https://blog.ahierro.es/instalar-prestashop-1-7/</link>
					<comments>https://blog.ahierro.es/instalar-prestashop-1-7/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Tue, 25 Feb 2020 22:30:00 +0000</pubDate>
				<category><![CDATA[Comercio Electronico]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[prestashop]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=2189</guid>

					<description><![CDATA[<p>Prestashop es una de las plataformas de código abierto más populares sobre la que construir una tienda comercio electrónico. En esta entrada veremos como instalar la versión 1.7.6.3, que a la hora de escribir estas lineas es la mas actual. En caso de que todavía no hayas utilizado esta plataforma puedes acceder a una demo &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/instalar-prestashop-1-7/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Instalar Prestashop 1.7"</span></a></p>
La entrada <a href="https://blog.ahierro.es/instalar-prestashop-1-7/">Instalar Prestashop 1.7</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Prestashop es una de las plataformas de código abierto más populares sobre la que construir una tienda comercio electrónico. En esta entrada veremos como instalar la versión 1.7.6.3, que a la hora de escribir estas lineas es la mas actual.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.ahierro.es/wp-content/uploads/2020/02/install_prestashop.png" alt="Instalar Prestashop" class="wp-image-2213" width="1920" height="1439" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/install_prestashop.png 1920w, https://blog.ahierro.es/wp-content/uploads/2020/02/install_prestashop-300x225.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/install_prestashop-1024x767.png 1024w, https://blog.ahierro.es/wp-content/uploads/2020/02/install_prestashop-768x576.png 768w, https://blog.ahierro.es/wp-content/uploads/2020/02/install_prestashop-1536x1151.png 1536w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<span id="more-2189"></span>



<p>En caso de que todavía no hayas utilizado esta plataforma puedes acceder a una <a rel="noreferrer noopener" aria-label="demo en este enlace (se abre en una nueva pestaña)" href="http://demo.prestashop.com/#/en/front" target="_blank">demo en este enlace</a>. También puedes echar un vistazo al articulo <a href="https://blog.ahierro.es/plataformas-ecommerce-open-source/">Plataformas ecommerce open source</a> para valorar otras alternativas.</p>



<h2 class="wp-block-heading">Requisitos previos</h2>



<p>Antes de comenzar a instalar Prestashop deberemos asegurarnos de cumplir algunos requisitos de software:</p>



<ul class="wp-block-list"><li>Servidor web Apache 2.x o Nginx.</li><li>PHP 5.6 o superior.</li><li>MySQL 5.0 o superior.</li><li>Acceso FTP (o en su defecto al directorio donde se va a instalar si es en local).</li></ul>



<p>Y en cuanto a la configuración de PHP necesitaremos:</p>



<ul class="wp-block-list"><li>Habilitar las extensiones Mcrypt, OpenSSL, Zip, Curl, GD y PDO.</li><li>Establecer un valor de «128M» o mas en el parámetro memory_limit. Puede ver como hacerlo en la entrada <a href="https://blog.ahierro.es/aumentar-el-limite-de-memoria-de-un-script-en-php/">Aumentar el límite de memoria de un script en PHP</a>.</li><li>Establecer upload_max_filesize, en «16M».</li></ul>



<p>Y por supuesto, en el entorno de produccion necesitaras un certificado SSL. El equipo detrás de Prestashop también recomienda MemCached, Apc o OpCache para mejorar el rendimiento.</p>



<p>Tienes mucha más información sobre los requisitos mínimos en el artículo <a href="https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/" title="Requisitos mínimos de Prestashop 1.7">requisitos mínimos de Prestashop 1.7</a>.</p>



<h2 class="wp-block-heading">El entorno de este ejemplo</h2>



<p>En este ejemplo instalaremos Prestashop en un entorno de pruebas, sobre una Raspberry Pi 3 Model B, corriendo Ubuntu Mate 16.04.6, Apache 2.4.18, PHP 7.0.33-6 y Maria DB 10.0.38.</p>





<p>Yo he creado un host virtual para la instalación, puedes ver como hacerlo en la entrada <a href="https://blog.ahierro.es/como-configurar-virtual-hosts-en-apache-y-ubuntu/">Como configurar Virtual Hosts en Apache 2 y Ubuntu</a>, aunque esto dependerá de tus necesidades.</p>



<p>En mi caso el host virtual se encuentra bajo el directorio <em>/var/www/prestashop/public</em> y accederé mediante la url <em>http://192.168.1.10:8086</em>.</p>



<h2 class="wp-block-heading">Instalar Prestashop</h2>



<p>Ahora que ya tenemos todo preparado para la instalación vayamos al lío.  </p>



<h3 class="wp-block-heading">Descarga, descompresión y subida al servidor</h3>



<p><a rel="noreferrer noopener" href="https://www.prestashop.com/es/descarga" target="_blank">Descargaremos Prestashop desde este enlace</a>. En nuestro caso el nombre del archivo es <em>prestashop_1.7.6.3.zip</em>. Una vez descargado lo descomprimimos y obtenemos tres archivos: index.php, Install_PrestaShop.html y prestashop.zip.</p>



<p>Colocamos estos tres archivos en nuestro servidor. Si trabajas en un servidor local será tan sencillo como copiarlos o moverlos. En caso de trabajar sobre un servidor remoto la opción más habitual suele ser cargarlos con un cliente FTP.</p>



<h3 class="wp-block-heading">Comienzo de la instalación</h3>



<p>Para comenzar la instalación abriremos un navegador web y accederemos la URL dónde hemos  subido nuestros archivos, en este ejemplo: <em>http://192.168.1.10:8086</em>.</p>



<p>Llegados a este punto, el instalador comprueba una serie de pre-requisitos, y en caso de no haber cumplido con alguno de ellos obtendremos un mensaje de error.</p>



<p>En la galería al pie del artículo puedes ver un ejemplo dónde nos indica que falta una extensión de PHP: <em>An error has occured: You must install PHP zip extension first.</em></p>



<p>Si este fuera nuestro caso recargaremos la página una vez satisfecho el requisito.</p>



<h3 class="wp-block-heading">Asistente de instalación</h3>



<p>Una vez iniciado el proceso tan solo tendremos que ir avanzando a través de los distintos pasos del asistente de instalación. Tienes pantallazos de todos ellos al pie de este artículo. Los pasos son los siguientes:</p>



<ol class="wp-block-list"><li>Selección de idioma.</li><li>Lectura y aceptación de licencia (si estás de acuerdo).</li><li>Validaciones de sistema. Antes de continuar con el proceso, el instalador realiza una serie de verificaciones a fin de asegurar que cumplimos todos los requisitos necesarios para el correcto funcionamiento de Prestashop. En caso de no superar la validación deberemos subsanar el problema para poder continuar.</li><li>Introducción de los datos de la tienda. Entre otros el nombre de la tienda, el tipo de actividad, el nombre de usuario del administrador, la contraseña de administrador, etc. </li><li>Configuración de la conexión a la base de datos. Para lo que tendremos que haber creado una base de datos vacía previamente.</li><li>Proceso de instalación. La habitual barra de proceso que finaliza con un mensaje de éxito (o no).</li><li>Eliminación de la carpeta de instalación. Por motivos de seguridad debemos realizar un último paso para completar la instalación. Éste consiste en eliminar la carpeta <em>install</em> del directorio raíz de nuestro prestashop.</li></ol>



<h2 class="wp-block-heading">Acceso a la tienda</h2>



<p>Una vez concluida la instalación podremos ver cómo luce nuestra tienda accediendo a la URL dónde la hemos instalado. En mi caso <em>http://192.168.1.10:8086</em>.</p>



<p>Veremos el tema por defecto de Prestashop en una tienda que a falta de configuración es totalmente funcional.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_10_store.png" alt="Instalar Prestashop acceso a la tienda" class="wp-image-2230" width="789" height="532" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_10_store.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_10_store-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_10_store-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<h2 class="wp-block-heading">Acceso al panel de administración</h2>



<p>Para acceder al panel de administración lo haremos con la misma URL con la que accedemos a la tiendas seguida de <em>/admin</em>, es decir, en mi caso <em>http://192.168.1.10:8086/admin</em>.</p>





<p>Por seguridad, tras el primer acceso a esta dirección, Prestashop cambia el nombre a la carpeta admin por uno aleatorio. Una práctica habitual es volver a renombrar esa carpeta con un nombre más sencillo de recordad pero no tan evidente como: admin, backoffice, back, panel, etc.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_12_admin.png" alt="Instalar Prestashop acceso a panel de administración" class="wp-image-2232" width="789" height="532" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_12_admin.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_12_admin-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_12_admin-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<p>Para acceder al backoffice, es requisito indispensable haber borrado la carpeta install. Si no lo hemos hecho recibiremos el siguiente mensaje de advertencia impidiéndonos la autentificación: «Por razones de seguridad, no te puedes conectar al back-office hasta que tengas eliminado la carpeta /install».</p>



<h2 class="wp-block-heading">Pantallazos</h2>



<p>A continuación tenéis los pantallazos de todos los pasos seguidos.</p>



<figure class="wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/php_module_missing.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/php_module_missing.png" alt="Instalar Prestashop Falta Modulo PHP" data-id="2233" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/php_module_missing.png" data-link="https://blog.ahierro.es/?attachment_id=2233" class="wp-image-2233" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/php_module_missing.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/php_module_missing-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/php_module_missing-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_01_unzip.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_01_unzip.png" alt="" data-id="2221" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_01_unzip.png" data-link="https://blog.ahierro.es/?attachment_id=2221" class="wp-image-2221" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_01_unzip.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_01_unzip-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_01_unzip-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_02_idioma.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_02_idioma.png" alt="Instalar Prestashop Idioma" data-id="2222" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_02_idioma.png" data-link="https://blog.ahierro.es/?attachment_id=2222" class="wp-image-2222" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_02_idioma.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_02_idioma-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_02_idioma-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_03_licencia.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_03_licencia.png" alt="Instalar Prestashop Licencia" data-id="2223" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_03_licencia.png" data-link="https://blog.ahierro.es/?attachment_id=2223" class="wp-image-2223" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_03_licencia.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_03_licencia-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_03_licencia-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema.png" alt="Instalar Prestashop Sistema Error" data-id="2224" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema.png" data-link="https://blog.ahierro.es/?attachment_id=2224" class="wp-image-2224" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_04_sistema-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_05_sistema2.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_05_sistema2.png" alt="Instalar Prestashop Sistema" data-id="2225" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_05_sistema2.png" data-link="https://blog.ahierro.es/?attachment_id=2225" class="wp-image-2225" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_05_sistema2.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_05_sistema2-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_05_sistema2-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_06_datos.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_06_datos.png" alt="Instalar Prestashop datos de la tienda" data-id="2226" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_06_datos.png" data-link="https://blog.ahierro.es/?attachment_id=2226" class="wp-image-2226" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_06_datos.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_06_datos-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_06_datos-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_07_database.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_07_database.png" alt="Instalar Prestashop conexión a base de datos" data-id="2227" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_07_database.png" data-link="https://blog.ahierro.es/?attachment_id=2227" class="wp-image-2227" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_07_database.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_07_database-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_07_database-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_08_instalacion.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_08_instalacion.png" alt="Instalar Prestashop progreso" data-id="2228" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_08_instalacion.png" data-link="https://blog.ahierro.es/?attachment_id=2228" class="wp-image-2228" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_08_instalacion.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_08_instalacion-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_08_instalacion-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_09_finalizacion.png"><img loading="lazy" decoding="async" width="789" height="532" src="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_09_finalizacion.png" alt="Instalar Prestashop proceso completado" data-id="2229" data-full-url="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_09_finalizacion.png" data-link="https://blog.ahierro.es/?attachment_id=2229" class="wp-image-2229" srcset="https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_09_finalizacion.png 789w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_09_finalizacion-300x202.png 300w, https://blog.ahierro.es/wp-content/uploads/2020/02/instalar_prestashop_09_finalizacion-768x518.png 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></a></figure></li></ul></figure>



<h2 class="wp-block-heading">Creditos, referencias y articulos relacionados</h2>



<ul class="wp-block-list"><li><a href="https://blog.ahierro.es/plataformas-ecommerce-open-source/">Plataformas ecommerce open source</a></li><li><a href="https://blog.ahierro.es/requisitos-minimos-de-prestashop-1-7/" title="Requisitos mínimos de Prestashop 1.7">Requisitos mínimos de Prestashop 1.7</a></li><li><a href="https://blog.ahierro.es/como-verificar-los-requisitos-minimos-de-prestashop-1-7/" title="Cómo verificar los requisitos mínimos de Prestashop 1.7">Cómo verificar los requisitos mínimos de Prestashop 1.7</a></li><li><a href="https://blog.ahierro.es/5-factores-clave-para-el-exito-de-cualquier-pagina-web/">5 factores clave para el éxito de cualquier página web</a></li><li><a href="https://blog.ahierro.es/como-configurar-virtual-hosts-en-apache-y-ubuntu/">Como configurar Virtual Hosts en Apache 2 y Ubuntu</a></li><li><a href="https://blog.ahierro.es/aumentar-el-limite-de-memoria-de-un-script-en-php/">Aumentar el límite de memoria de un script en PHP</a></li></ul>La entrada <a href="https://blog.ahierro.es/instalar-prestashop-1-7/">Instalar Prestashop 1.7</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/instalar-prestashop-1-7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tipos de mantenimiento de software</title>
		<link>https://blog.ahierro.es/tipos-de-mantenimiento-de-software/</link>
					<comments>https://blog.ahierro.es/tipos-de-mantenimiento-de-software/#comments</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Wed, 27 Nov 2019 06:14:21 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[teoría]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=2139</guid>

					<description><![CDATA[<p>El mantenimiento es la última fase del ciclo de vida del software, y por norma general también suele ser la más larga y en muchas ocasiones la más aburrida, pero también es una parte fundamental e inevitable de esta industria. Definición de mantenimiento Antes de avanzar con los distintos tipos de mantenimiento, es buena idea &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/tipos-de-mantenimiento-de-software/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Tipos de mantenimiento de software"</span></a></p>
La entrada <a href="https://blog.ahierro.es/tipos-de-mantenimiento-de-software/">Tipos de mantenimiento de software</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>El mantenimiento es la última fase del ciclo de vida del software, y por norma general también suele ser la más larga y en muchas ocasiones la más aburrida, pero también es una parte fundamental e inevitable de esta industria.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://lh3.googleusercontent.com/CKQl4skAXQX4NOlsxGiaDNPNhFBQdnb4zQzc6D_SIykSGu83HOnTmPScrM57p-8hXFPC1Pv7HTPw9Nli91qYRWIUOtSGdOh4LT__if7HUYBAkbbZq4v1xir2W7r2IvhiWlW4dBoXdMcPVr8zO5pE6lSqwz-Y26m04lEFpbbVbAhGb1ZE_pJuCJbtTwK4rwRswPhdBV-O93nAUBZ0cVcp0e3pnfNooDzenFaE3--WznvK32jsk7QkE99fzFtEDXoLhXeEFtVnzsZi2Ce88UCXb7C07qtMd5PxdI8JDoUkj0V4UR5saqMsTasEg8yq3mxncoJEpVfHWs03DTgD6jyHw1ZfjkwlMYi6jntSG_kCZrzn3pcVMl268u00hydk3KaK_xUfbixo-xJ-5XjupRubiX9gUi4njuErDglohopexSSIK80CuJgbOD63U15t6Yz0xy-afpkQ3LA94HAJd-zrABVRzbx_j0dQXE8jRVIkdIx-bXr1V4oI7ET6LysGreSuvRjBFyksoIJsgvaeANl0X4J5rPCnz1W5yVnujKKQMPPNp7Z4QoShNiAHEEOVTQtciWIbqF_znpu4m0YQAxUWSRu7u_XZK6W4VCMGAuOMwV70bkCkgGHzGOr7oV1m9ZiwvszVXzPw8caSLM2m4AYRGsHHoxtGHXA7k3bnmH5jxqTqGr_IEKMLQvWsHeH1pSA8U3SCYikX651pSJxCysw1U4s2NYG5NSSx49KJwTmxSg=w1586-h892-no" alt="" width="840" height="471"/></figure>



<span id="more-2139"></span>



<h2 class="wp-block-heading">Definición de mantenimiento</h2>



<p>Antes de avanzar con los distintos tipos de mantenimiento, es buena idea unificar criterios y asegurarnos de que estamos de acuerdo en la definición.</p>



<p>El mantenimiento es la acción de modificar la versión en producción software con el fin de corregir errores, subsanar problemas o realizar cambios enfocados en conservar la capacidad de prestar el servicio para el cual fue diseñado. </p>



<h2 class="wp-block-heading">Tipos de mantenimiento</h2>



<p>Y ahora que tenemos claro qué es el mantenimiento del software, repasemos qué tipos hay.</p>



<h3 class="wp-block-heading">Mantenimiento preventivo</h3>



<p>Si visualizamos el mantenimiento desde un prisma general y no solo desde el punto de vista del desarrollo de software, la mayoría de nosotros pensaremos en un conjunto de acciones proactivas enfocadas a evitar el deterioro de la cosa mantenida.</p>





<p>Si hablamos de software es exactamente igual, el mantenimiento preventivo es la acción de modificar el software proactivamente con el objetivo de evitar su deterioro o de mejorarlo sin alterar su funcionamiento.</p>



<p>Podemos realizar este tipo de mantenimiento por varios fines como corregir <a href="https://blog.ahierro.es/a-que-huele-el-codigo-fuente/">olores en el código</a>, mejorar la comprensión, optimizar el funcionamiento, optimizar el consumo de recursos, etc</p>



<p>Llegados a este punto quizás te estés preguntando cuál es la diferencia entre el mantenimiento preventivo y la refactorización, pues a mi modo de ver ninguna, son la misma cosa. Así que te invito a leer el artículo <a href="https://blog.ahierro.es/refactorizacion-de-codigo/">Refactorización de código</a> para ampliar conocimientos.</p>



<h3 class="wp-block-heading">Mantenimiento correctivo</h3>



<p>El mantenimiento correctivo se sitúa justo en el lado opuesto del mantenimiento preventivo: si en el mantenimiento preventivo actuamos de forma proactiva para evitar que se produzca el error, en el mantenimiento correctivo lo hacemos de forma reactiva y reaccionamos a los o errores que aparecen.</p>



<p>Los errores son inevitables y por más que intentemos desarrollar software libres de bugs, tarde o temprano y en mayor o menor medida éstos van a aparecer. Por lo tanto, para minimizar el tiempo que <s>invertimos</s> gastamos corrigiendo errores y sufriendo los efecto de sus consecuencias debemos enfocar nuestros esfuerzos en tres tareas:</p>



<ul class="wp-block-list"><li>Disponer de un proceso de desarrollo adecuado con el fin de minimizar el número de bugs desde el primer momento. Puedes echarle un vistazo a la entrada <a href="https://blog.ahierro.es/entornos-en-el-desarrollo-de-software/">entorno de desarrollo</a>.</li><li>Realizar mantenimiento preventivo (ó refactorización).</li><li>Disponer de herramientas adecuadas para la notificación, clasificación y seguimiento de los errores.</li></ul>



<h3 class="wp-block-heading">Mantenimiento adaptativo</h3>



<p>El mantenimiento adaptativo consiste en modificar el software, sin alterar su funcionamiento, con el objetivo de dar respuesta a cambios en el entorno de la aplicación. El objetivo es que estos cambios no afecten a la capacidad del programa de prestar el servicio.</p>



<p>Algunos ejemplos de este tipo de mantenimiento pueden ser:</p>



<ul class="wp-block-list"><li>Modificar el software para adaptarse a cambios en una API de terceros.</li><li>Adaptar un software para soportar una nueva versión del lenguaje de programación.</li><li>Actualizar la versión de una librería o de un framework.</li><li>Soportar cambios en el sistema operativo o en el hardware.</li></ul>



<h3 class="wp-block-heading">Mantenimiento perfectivo</h3>



<p>En la literatura que he consultado identifican el mantenimiento perfectivo como un tipo de mantenimiento con un doble objetivo: por un lado la incorporación de nuevas funcionalidades o la modificación de las existentes, y por otro las adaptaciones necesarias para asegurar el rendimiento cuando existe un incremento del volumen considerable.</p>



<p>Mi opinión es que teniendo en cuenta el auge de los modelos de desarrollo ágiles y su filosofía de entrega de valor rápida basada en ciclos de desarrollo cortos, el mantenimiento perfectivo queda absorvido por la propia fase de desarrollo.</p>



<p>Y en cuanto a las adaptaciones necesarias para asegurar el rendimiento por aumento de volumen, creo que pueden ser perfectamente incluidas como mantenimiento preventivo, si se atajan a tiempo, o en caso contrario como mantenimiento correctivo.</p>



<h2 class="wp-block-heading">Dónde comienza el mantenimiento</h2>



<p>La versión en producción de un software es el producto de un proceso complejo formado por varias etapas conocido cómo ciclo de vida del software. Por lo tanto, la calidad del software final está altamente condicionada por la calidad individual de cada una de las etapas.</p>





<p>Por lo tanto, con el fin de minimizar el esfuerzo que hacemos en mantener el software podemos dar por válida una pequeña mentira: el mantenimiento del software comienza en el mismo momento en el que comienza el análisis de viabilidad del software. Es decir, invertir el tiempo necesario y hacer las cosas bien en cada una de las etapas nos garantiza, entre otras muchas ventajas, gastar menos tiempo en el mantenimiento del software .</p>



<h2 class="wp-block-heading">Mantenimiento, evolución y metodologías ágiles</h2>



<p>Como hemos visto con el mantenimiento perfectivo, las metodologías ágiles hacen que los conceptos de mantenimiento y evolución, en algunos casos, estén separados por una delgada línea gris que invita a hacer interpretaciones subjetivas de qué es qué. Éste es un tema sobre el que podríamos escribir largo y tendido, y sobre el que en esta ocasión no vamos a entrar pero si creí necesario mencionar.</p>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li>Imagen de portada por <a rel="noreferrer noopener" aria-label="Steve Buissinne en Pixabay (se abre en una nueva pestaña)" href="https://pixabay.com/users/stevepb-282134/" target="_blank">Steve Buissinne en Pixabay</a></li><li><a href="https://blog.ahierro.es/guia-del-buen-programador/">Guía del buen programador</a></li><li><a href="https://blog.ahierro.es/deuda-tecnologica-o-deuda-tecnica/">Deuda tecnológica o deuda técnica</a></li><li><a href="https://blog.ahierro.es/refactorizacion-de-codigo/">Refactorización de código</a></li><li><a href="https://blog.ahierro.es/cohesion-y-acoplamiento/">Cohesión y acoplamiento</a></li></ul>



<p></p>La entrada <a href="https://blog.ahierro.es/tipos-de-mantenimiento-de-software/">Tipos de mantenimiento de software</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/tipos-de-mantenimiento-de-software/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>FTP activo vs FTP pasivo</title>
		<link>https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/</link>
					<comments>https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/#comments</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Tue, 19 Nov 2019 07:02:42 +0000</pubDate>
				<category><![CDATA[Servicios]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftps]]></category>
		<category><![CDATA[servidor]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=2078</guid>

					<description><![CDATA[<p>El protocolo FTP lleva con nosotros desde la década de los setenta, y hoy, casi cincuenta años después, sigue siendo una tecnología muy presente en el flujo de trabajo habitual de los desarrolladores web. Personalmente lo utilzo con relativa frecuencia, generalmente con el cliente FileZilla, un cliente FTP multiplataforma de código abierto muy recomendable. Y &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "FTP activo vs FTP pasivo"</span></a></p>
La entrada <a href="https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/">FTP activo vs FTP pasivo</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>El protocolo FTP lleva con nosotros desde la década de los setenta, y hoy, casi cincuenta años después, sigue siendo una tecnología muy presente en el flujo de trabajo habitual de los desarrolladores web.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://lh3.googleusercontent.com/yRgL9935kWlYQIhJf0mXw_oaa6ulwsW9mbw2OWCo-QhDz2vE35Kqk1ZbjI9XiTU9T1wKhKKxCe3svz5S72pD9x5aFEjLxzGtLkD-00w4WLbB5wwqsJ--u_nrJI6DPuQlKHeQ7SDHmkW97ukFSNTdlWH-z43BzJJ0H51hasNjJkGvf3aDzz0cht-F78bk8TqGIYCYA_25bHZ0cGpk6fY2ZKXrTvPgklJ58JXibyWI2AtgDUz0A8RMmTtz3yFxJw0PWsgayACnamN032kXlb9yE8Y8APsNpmk5racVLM_EwsjceRCN0O9xperEORykp5IYUMaAdjb8VNGzHLjPvhuYo7JVsujGLhaN__eJxWH2TtwIXuu91K9KDmXMvigZKjTR6cmrtwaZ-wTrIXUBS1wAfo3c_sQ7QWwKEHLmSOwaYTwSC3jWRkHU8HlVbS3eNcjLvgEWwJ70F-H2Ti0KLJKo4ySqSPrOrG02v2gNJHrUaN46p6p6BNLgUIrOzHSUonfoOHY0j2YtojI8baFqt74LFyu4LuwC8lj-XpDIud2CLRBkGmBxi2zP3NyObUplJiwRbl7BnojmhpbqrPjAKpwY-rCatqymzedjgzpvCh9a5ADFKqQDM4-Vl8qMLEZ_iBrNBOPiJr8emKN_FXEM_HIOCKKA1dnb8rDf75_hRmm-c0D9e-0RDsl90V5crdwSkDmPWFwZ5SvO7xpQqusK8BzaG9CsvnXkYd0qiyN7n_7qhPo=w1622-h912-no" alt="FTP activo vs FTP pasivo" width="840" height="470"/></figure>



<span id="more-2078"></span>



<p>Personalmente lo utilzo con relativa frecuencia, generalmente con el cliente FileZilla, un cliente FTP multiplataforma de código abierto muy recomendable. Y siendo honestos, hasta la escritura de esta entrada, mi desconocimiento sobre los modos de conexión activo o pasivo era absoluto, algo que intuyo que le sucede a mucha gente, y ya se sabe que mal de muchos <s>consuelo de tontos</s> entrada en el blog.</p>



<h2 class="wp-block-heading">FTP, FTPS y SFTP.</h2>



<p>Recordemos que existen tres protocolos distintos a los que solemos referirnos cuando hablamos de FTP: FTP, FTPS y SFTP. Si tienes dudas sobre alguno de ellos puedes echarle un vistazo a la entrada <a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/">FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</a>.</p>



<p>Pues bien, los modos activo o pasivo solo aplican sobre los protocolos FTP y FTPS, en ningún caso sobre SFTP, pues es un protocolo que dista bastante de los dos anteriores.</p>



<h2 class="wp-block-heading">Puerto de datos y puerto de control</h2>



<p>Otro aspecto clave que debemos conoce para entender el funcionamiento del FTP es que trabaja sobre dos puertos distintos: el puerto de datos y el puerto de comandos o puerto de control.</p>



<p>Los nombres son bastante auto-explicativos, el  puerto de datos se encarga de la transmisión de los ficheros y el puerto de control de las instrucciones entre ambos host. Se diseñó así para poder enviar comandos sin la necesidad de detener la transmisión de datos ni de encolarlos tras estos.</p>



<p>Si nos centramos en el servidor, tradicionalmente el puerto de control ha sido el 21 y el puerto de datos varía en función del modo, siendo el 20 para el modo activo, y un puerto aleatorio para el modo pasivo.</p>





<p>En el lado del cliente, en cambio, el puerto de control será un puerto aleatorio P superior a 1023, y el puerto de datos será P+1. Esto es así tanto en el modo activo, como en el pasivo.</p>



<p>Pero veamos cada uno de los modos en detalle para entenderlo mejor.</p>



<h2 class="wp-block-heading">FTP activo</h2>



<p>Es el modo predeterminado para las conexiones FTP, de hecho fue el primero en desarrollarse. En este modo el servidor utilizará el puerto 20 para la transferencia de datos, mientras que transmitirá los comandos utilizando el puerto 21. El cliente en cambio utilizará un puerto aleatorio P superior al 1023 para la transferencia de comandos, y un puerto P+1 para la transferencia de datos.</p>



<h3 class="wp-block-heading">Secuencia de conexión del modo activo</h3>



<p>La secuencia de conexión del modo activo es la siguiente:</p>



<ol class="wp-block-list"><li>El cliente FTP comienza la conexión dese un puerto de control aleatorio P con destino al puerto 21 del servidor. Como hemos mencionado el puerto P será superior a 1023.</li><li>El servidor responde desde el puerto de control.</li><li>El servidor inicia entonces la conexión del canal de datos: puerto 20 para el servidor y puerto P+1 para el cliente.</li><li>El cliente responde desde el puerto de datos estableciendo así la conexión.</li></ol>



<h3 class="wp-block-heading">Inconvenientes del modo activo</h3>



<p>Históricamente el principal inconveniente de este modo ha radicado en que si no hay una directiva específica en los firewalls del lado del cliente, la conexión es propensa a ser bloqueada. Esto se debe a que, como hemos visto, existen dos conexiones independientes: una de salida en la que el cliente establece la conexión del canal de control y otra de entrada en la que el servidor hace lo propio con el de datos. Esta última conexión es iniciada por el servidor en el puerto previamente negociado, y en ocasiones es bloqueada por el firewall del cliente al ser identificada como un intento de conexión externa no autorizada.</p>



<p>Recordemos que este sistema se diseñó en los años 70, cuando la democratización de los sistemas informáticos y los problemas de seguridad eran completamente distintos a los que podemos encontrar hoy en día.</p>



<p>Sea como sea, en todos los años que llevo utilizando el protocolo FTP desde el rol de cliente, no recuerdo haber experimentado nunca problemas de este tipo, y habré conectado con varias decenas de servidores de muchos proveedores distintos. Entiendo que esto se deba a la sofisticación de los sistemas de red y de seguridad más modernos.</p>



<h2 class="wp-block-heading">FTP pasivo</h2>



<p>El modo de FTP pasivo surge como consecuencia de los problemas de conexión  del modo activo. Este modo mantiene los dos canales (control y datos) pero en este caso es el cliente el encargado de establecer las dos conexiones.</p>



<p>El servidor sigue manteniendo el puerto 21 como puerto de comandos, el puerto de datos en cambio difiere del modo activo y pasa a ser un rango de puertos Q superior a 1023. Del lado del cliente seguimos manteniendo el puerto P superior a 1023 para control, y el puerto P+1 para datos.</p>



<h3 class="wp-block-heading">Secuencia de conexión del modo pasivo</h3>



<p>La secuencia de conexión del modo pasivo es la que sigue a continuación:</p>



<ol class="wp-block-list"><li>El cliente FTP comienza la conexión dese un puerto de control aleatorio P con destino al puerto 21 del servidor.</li><li>El servidor responde desde el puerto de control.</li><li>El cliente inicia la conexión del canal de datos dese el puerto P+1 hacia el puerto Q del servidor.</li><li>El servidor responde desde el puerto de datos estableciendo así la conexión.</li></ol>



<p>Como ves, los pasos uno y dos son iguales que en el modo activo, y es en los pasos tres y cuatro dónde vemos como se invierten los roles y es el cliente el que inicia la conexión de datos.</p>



<h3 class="wp-block-heading">Inconvenientes del modo pasivo del FTP</h3>



<p>El principal inconveniente de habilitar el modo pasivo en un servidor FTP está asociado con el riesgo extra en materia de seguridad que conlleva la apertura de un rango de puertos extra con respecto al modo activo. Notemos que para que el modo pasivo funcione adecuadamente estos puertos deben ser abiertos tanto en el servidor como en el firewall.</p>





<p>Para minimizar este riesgo la estrategia pasa por definir un rango de puertos lo más pequeño posible en función del número de conexiones concurrentes que esperemos tener, pero ojo, porque un cliente no se corresponde con una única conexión, es muy probable que cada cliente abra múltiples conexiones concurrentes.</p>



<h2 class="wp-block-heading">Resumen</h2>



<p>Para cerrar esta entrada os dejo una tabla con el resumen de lo que hemos visto.</p>



<figure class="wp-block-table"><table class=""><tbody><tr><th></th><th></th><th>Activo</th><th>Pasivo</th></tr><tr><th>Servidor</th><th>Puerto de control</th><td>21</td><td>21</td></tr><tr><th>Servidor</th><th>Puerto de datos</th><td>20</td><td>Rango Q &gt; 1023</td></tr><tr><th>Cliente</th><th>Puerto de control</th><td>P &gt; 1023</td><td>P &gt; 1023</td></tr><tr><th>Cliente</th><th>Puerto de datos</th><td>P + 1</td><td>P + 1</td></tr><tr><th>Quien inicia</th><th>Conexión de control</th><td>Cliente</td><td>Cliente</td></tr><tr><th>Quién inicia</th><th>Conexión de datos</th><td>Servidor</td><td>Cliente</td></tr><tr><th></th><th>Inconvenientes</th><td>Bloqueo por firewalls</td><td>Riesgo extra de seguridad</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li>Imagen de portada por <a rel="noreferrer noopener" aria-label="Michal Jarmoluk  (abre en una nueva pestaña)" href="https://pixabay.com/users/jarmoluk-143740/" target="_blank">Michal Jarmoluk </a>en Pixabay</li><li><a href="https://blog.ahierro.es/ftp-ftps-y-sftp-diferencias-ventajas-inconvenientes/">FTP, FTPS y SFTP: diferencias, ventajas e inconvenientes</a></li><li><a href="https://blog.ahierro.es/vsftp-instalar-y-configurar-un-servidor-ftp-en-raspberry-pi-con-ubuntu/">VSFTP instalar y configurar un servidor FTP en una Raspberry Pi con Ubuntu</a></li><li><a href="https://blog.ahierro.es/ftps-o-como-habilitar-ssl-en-vsftp/">FTPS o cómo habilitar SSL en vsftp</a></li><li><a href="https://blog.ahierro.es/usuarios-virtuales-en-vsftp/">Usuarios virtuales en vsftp</a></li></ul>



<p></p>La entrada <a href="https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/">FTP activo vs FTP pasivo</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/ftp-activo-vs-ftp-pasivo/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Dos nuevas secciones</title>
		<link>https://blog.ahierro.es/dos-nuevas-secciones/</link>
					<comments>https://blog.ahierro.es/dos-nuevas-secciones/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Tue, 05 Nov 2019 06:53:34 +0000</pubDate>
				<category><![CDATA[Miscelanea]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=2054</guid>

					<description><![CDATA[<p>Esta semana no habrá entrada con contenido técnico, en su lugar he publicado dos nuevas secciones que os presentamos aquí y que espero que os gusten. La primera de ellas es una sección de lo más habitual en muchos blogs. Hablamos de la sección Blog Roll, algo que le hacía mucha falta a este blog &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/dos-nuevas-secciones/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Dos nuevas secciones"</span></a></p>
La entrada <a href="https://blog.ahierro.es/dos-nuevas-secciones/">Dos nuevas secciones</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Esta semana no habrá entrada con contenido técnico, en su lugar he publicado dos nuevas secciones que os presentamos aquí y que espero que os gusten.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://blog.ahierro.es/wp-content/uploads/2019/11/nuevas_secciones-1024x576.jpg" alt="Nuevas secciones" class="wp-image-2058" width="840" height="471" srcset="https://blog.ahierro.es/wp-content/uploads/2019/11/nuevas_secciones-300x169.jpg 300w, https://blog.ahierro.es/wp-content/uploads/2019/11/nuevas_secciones-768x432.jpg 768w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<span id="more-2054"></span>



<p>La primera de ellas es una sección de lo más habitual en muchos blogs. Hablamos de la sección <a href="https://blog.ahierro.es/blog-roll/">Blog Roll</a>, algo que le hacía mucha falta a este blog como parte del objetivo social que quiero que cumpla.</p>



<p>La segunda sección la he llamado <a href="https://blog.ahierro.es/guia-del-buen-programador/">La guía del buen programador</a>, y no es más que una colección ordenada de enlaces a publicaciones de este blog relacionadas con la parte más conceptual de la programación, la calidad del software y las buenas prácticas. De forma que a pesar de ser artículos independientes, trazamos un hilo conductor entre ellos para para formar un ente de mayor tamaño, una guía.</p>



<p>Dejo enlaces a ambas secciones en la barra lateral.</p>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li>Imagen de portada por <a rel="noreferrer noopener" aria-label="Free-Photos (abre en una nueva pestaña)" href="https://pixabay.com/users/free-photos-242387/" target="_blank">Free-Photos</a> en Pixabay</li><li><a href="https://blog.ahierro.es/blog-roll/">Blog Roll</a></li><li><a href="https://blog.ahierro.es/guia-del-buen-programador/">La guía del buen programador</a></li></ul>La entrada <a href="https://blog.ahierro.es/dos-nuevas-secciones/">Dos nuevas secciones</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/dos-nuevas-secciones/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Principios KISS, DRY y YAGNI</title>
		<link>https://blog.ahierro.es/principios-kiss-dry-y-yagni/</link>
					<comments>https://blog.ahierro.es/principios-kiss-dry-y-yagni/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Wed, 30 Oct 2019 07:12:15 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[teoría]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=1970</guid>

					<description><![CDATA[<p>KISS, DRY y YAGNI son tres principios que podemos aplicar en el diseño y el desarrollo de software, y que a pesar de tratarlos juntos en esta entrada, no guardan ninguna relación entre si más allá de la importancia y simplicidad de su mensaje. A mi modo de ver, estos tres principios pueden ser tratados &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/principios-kiss-dry-y-yagni/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Principios KISS, DRY y YAGNI"</span></a></p>
La entrada <a href="https://blog.ahierro.es/principios-kiss-dry-y-yagni/">Principios KISS, DRY y YAGNI</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>KISS, DRY y YAGNI son tres principios que podemos aplicar en el diseño y el desarrollo de software, y que a pesar de tratarlos juntos en esta entrada, no guardan ninguna relación entre si más allá de la importancia y simplicidad de su mensaje.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://blog.ahierro.es/wp-content/uploads/2019/10/design-1024x576.jpg" alt="Principios de diseño" class="wp-image-1999" width="840" height="473" srcset="https://blog.ahierro.es/wp-content/uploads/2019/10/design-1024x576.jpg 1024w, https://blog.ahierro.es/wp-content/uploads/2019/10/design-300x169.jpg 300w, https://blog.ahierro.es/wp-content/uploads/2019/10/design-768x432.jpg 768w, https://blog.ahierro.es/wp-content/uploads/2019/10/design.jpg 1920w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<span id="more-1970"></span>



<p>A mi modo de ver, estos tres principios pueden ser tratados como tres magníficos consejos para compartir con los desarrolladores más noveles, e incluso a veces con algunos mucho más experimentados.</p>



<h2 class="wp-block-heading">KISS</h2>



<p>KISS es un principio de diseño muy popular tanto en el desarrollo de software como en otros muchos ámbitos. Es el acrónimo de «Keep It Simple, Stupid», y es una forma coloquial de decir que las cosas sencillas funcionan mejor.</p>



<p>Es uno de los mejores consejos se le puede dar a cualquier persona que diseñe o cree algo, ya sea relacionado con el desarrollo del software o no: hazlo sencillo, evita complicaciones innecesarias.</p>



<p>Y ya centrándonos en el desarrollo de software, evitar aumentar el nivel de complejidad cuando no es estrictamente necesario trae consigo múltiples ventajas, entre las que destacar la mejora de la comprensión y el mantenimiento, sin olvidar la sensación de satisfacción de haber escrito un código elegante.</p>



<p>No seguir este principio, en cambio, propiciará tener una estructura y un código engorroso y con olores. Si eres lector habitual de este blog, recordarás que hace varios meses escribíamos sobre el código limpio en el artículo <a href="https://blog.ahierro.es/a-que-huele-el-codigo-fuente/">¿A qué huele el código fuente?</a>, dónde mencionábamos la complejidad innecesaria como un motivo de olor.</p>



<p>A modo anecdótico añadir que KISS es un principio que no proviene del desarrollo de software, su origen se atribuye al ingeniero aeroespacial americano Kelly Jonhson, quien contribuyó al desarrollo de varias aeronaves para el ejército de su país.</p>



<h2 class="wp-block-heading">DRY</h2>



<p>DRY hace énfasis en la importancia de evitar la duplicidad en el código fuente, siendo el acrónimo de «Don&#8217;t repeat yourself» y estando sustentado por la afirmación de que cada pedazo de código debe tener una representación única, inequívoca y autoritaria en el sistema.</p>



<p>Los padres de DRY son Andy Hunt y Dave Thomas, quienes publicaron este principio en el libro The <a rel="noreferrer noopener" aria-label="Pragmatic Programmer (abre en una nueva pestaña)" href="https://pragprog.com/book/tpp20/the-pragmatic-programmer-20th-anniversary-edition" target="_blank">Pragmatic Programmer</a>, en 1999, y del que en el momento de escribir estas líneas han publicado una edición conmemorativa del veinte aniversario.</p>





<p>Es un principio que está estrechamente ligado con la calidad del código y que, al igual que sucede con KISS, también mencionamos en el artículo <a href="https://blog.ahierro.es/a-que-huele-el-codigo-fuente/">¿A qué huele el código fuente?</a>.</p>



<p>Y cuando no cumplimos con el principio DRY, se suele decir que cumplimos con el principio WET, por el juego de palabras en inglés, dónde WET sería el acrónimo de «write every time» o «we enjoy typing».</p>



<h2 class="wp-block-heading">YAGNI</h2>



<p>Tercer principio, tercer consejo y para cerrar el círculo tercer acrónimo, en este caso de «You aren&#8217;t gonna need it».</p>



<p>Este principio invita a no desarrollar «por si a caso», ¿cuantas veces nos han pedido una funcionalidad determinada y hemos excedido los requisitos en previsión de algo que nunca ocurrió? Pues bien, YAGNI propone hacer exclusivamente lo solicitado y necesario.</p>



<p>YAGNI tiene su origen en la programación extrema, dónde prima la simplicidad y dónde se opta por no invertir tiempo en dar solución a necesidades todavía inexistentes. La programación extrema se guían por la afirmación «Do The Simplest Thing That Could Possibly Work», de la cual han creado un acrónimo DTSTTCPW que desde mi punto de vista excede lo razonable y roza el absurdo.</p>



<p>Este principio es sin duda alguna el que más me ha costado aceptar de los tres que hemos visto hoy, de hecho, aunque estoy muy de acuerdo con él y creo que por norma general deberíamos cumplirlo, considero que la intuición de un desarrollador o un analista suficientemente experimentado, en combinación de un profundo conocimiento del negocio y del cliente, pueden dar pie a que nos saltemos este principio en ocasiones puntuales.</p>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li>Imagen por <a href="https://pixabay.com/users/3844328-3844328/" target="_blank" rel="noreferrer noopener" aria-label="Inactive Account en Pixabay (abre en una nueva pestaña)">Inactive Account en Pixabay</a>.</li><li><a href="https://blog.ahierro.es/a-que-huele-el-codigo-fuente/">¿A qué huele el código fuente?</a></li><li><a href="https://blog.ahierro.es/patrones-de-diseno-de-software/">Patrones de diseño de software</a></li><li><a href="https://blog.ahierro.es/refactorizacion-de-codigo/">Refactorización de código</a></li><li><a href="https://blog.ahierro.es/cohesion-y-acoplamiento/">Cohesión y acoplamiento</a></li><li><a href="https://blog.ahierro.es/deuda-tecnologica-o-deuda-tecnica/">Deuda tecnológica o deuda técnica</a></li></ul>La entrada <a href="https://blog.ahierro.es/principios-kiss-dry-y-yagni/">Principios KISS, DRY y YAGNI</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/principios-kiss-dry-y-yagni/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Patrones de diseño de software</title>
		<link>https://blog.ahierro.es/patrones-de-diseno-de-software/</link>
					<comments>https://blog.ahierro.es/patrones-de-diseno-de-software/#respond</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Tue, 22 Oct 2019 06:36:45 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[teoría]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=1897</guid>

					<description><![CDATA[<p>Si todavía no estás familiarizado con el concepto «patrones de diseño» tras leer este artículo conocerás su importancia y probablemente te des cuenta de que ya conoces algunos de ellos. Si ya sabes de que va, te invito a seguir leyendo para refrescar o incluso ampliar conocimientos. Qué son los patrones de diseño La RAE &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/patrones-de-diseno-de-software/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Patrones de diseño de software"</span></a></p>
La entrada <a href="https://blog.ahierro.es/patrones-de-diseno-de-software/">Patrones de diseño de software</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Si todavía no estás familiarizado con el concepto «patrones de diseño» tras leer este artículo conocerás su importancia y probablemente te des cuenta de que ya conoces algunos de ellos. Si ya sabes de que va, te invito a seguir leyendo para refrescar o incluso ampliar conocimientos.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://blog.ahierro.es/wp-content/uploads/2019/10/patrones-1024x576.jpg" alt="Patrones de siseño de software" class="wp-image-1932" width="840" height="474" srcset="https://blog.ahierro.es/wp-content/uploads/2019/10/patrones-1024x576.jpg 1024w, https://blog.ahierro.es/wp-content/uploads/2019/10/patrones-300x169.jpg 300w, https://blog.ahierro.es/wp-content/uploads/2019/10/patrones-768x432.jpg 768w, https://blog.ahierro.es/wp-content/uploads/2019/10/patrones.jpg 1920w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<span id="more-1897"></span>



<h2 class="wp-block-heading">Qué son los patrones de diseño</h2>



<p>La RAE define <em>patrón</em> como un «Modelo que sirve de muestra para sacar otra cosa igual», una definición muy acertada si la aplicamos al diseño de software.</p>



<p>Los patrones de diseño de software son un conjunto de estrategias de programación diseñadas para dar solución a problemas comunes. Cada patrón se centra en resolver un problema determinado, de forma que disponemos de una solución estándar que garantiza la resolución eficaz de un problema particular.</p>



<p>Podemos decir que existe un catálogo de patrones de diseño de software,  aunque hasta dónde he podido investigar, no existe una lista oficial, pero si una serie de comunidades y organizaciones enfocadas  en la investigación, aprendizaje, inventariado y comunicación de las  mismas. Entre ellas podemos destacar <a rel="noreferrer noopener" href="https://www.hillside.net/" target="_blank">The Hillside Group</a>.</p>



<p>Otro aspecto más a destacar es que los patrones de diseño no son un ente estático, sino que evolucionan atendiendo a los nuevos retos que surgen con los avances en el área de la programación. Así, vemos como cada cierto tiempo se amplia el catálogo de patrones con algunos nuevos.</p>



<h2 class="wp-block-heading">Un poco de historia</h2>



<p>Podemos decir que los patrones de diseño fueron popularizados en la década de los noventa por un grupo de programadores conocido como &#8216;Gang of Four&#8217; formada por:  Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides. </p>





<p>La banda de los cuatro, traducción de Gang of Four, publicaron el libro &#8216;GoF Design Patterns&#8217; en el año 1990. No obstante, debemos destacar  que no fueron los primeros en acuñar el término.</p>



<p>El libro <a rel="noreferrer noopener" aria-label="'GoF Designa Patterns' está disponible en OpenLibra (abre en una nueva pestaña)" href="https://openlibra.com/es/book/gof-design-patterns" target="_blank">&#8216;GoF Designa Patterns&#8217; está disponible en OpenLibra</a> bajo licencia  Creative Commons Attribution-ShareAlike 3.0.</p>



<h2 class="wp-block-heading">Beneficios de los patrones de diseño</h2>



<p>Estandarizar la estrategia de resolución de algunos problemas comunes aporta  varios beneficios, estos son algunos de ellos:</p>



<ul class="wp-block-list"><li>Ahorro de tiempo en el planteamiento y el diseño de la solución, pues no es necesario reinventar la rueda.</li><li>Existencia de extensa documentación.</li><li>Resultados previsibles y garantizados.</li><li>Traspaso ágil de conocimientos.</li><li>Estandarización de vocabulario.</li><li>Facilidad para obtener soporte comunitario.</li></ul>



<h2 class="wp-block-heading">Tipos de patrones de diseño</h2>



<p style="text-align:left">El libro &#8216;GoF Design Patterns&#8217;, definía un total de 23 patrones divididos en tres categorías, pero desde su publicación han pasado casi treinta años, y como hemos comentado hablamos de un ente en constante evolución, así que tanto el numero de patrones como el número de tipologías en los que están segmentados han crecido considerablemente.  A día de hoy, podemos dividir los patrones en las siguientes categorías: </p>



<ul class="wp-block-list"><li>Patrones creacionales</li><li>Patrones estructurales</li><li>Patrones de comportamiento</li><li>Patrones funcionales</li><li>Patrones de concurrencia</li><li>Patrones de arquitectura</li><li>Patrones de computación distribuida</li><li>Otros</li></ul>



<p>De las cuales las tres primeras eran las que aparecían en el libro &#8216;GoF Design Patterns&#8217;.</p>



<h2 class="wp-block-heading">Patrones de diseño</h2>



<p style="text-align:left">A pesar de no existir un catálogo oficial, a continuación veremos una lista de los principales patrones segmentados según las distintas tipologías que hemos visto.</p>



<p>Pensaba acompañar cada patrón de una breve descripción, pero teniendo en cuenta que mencionaremos más de cien, no acabaría nunca de escribir esta entrada. Así pues, tomaremos esta entrada como introducción e índice para futuros artículos dedicados a patrones de diseño específicos.</p>



<p>Los nombres de los patrones los especificaremos en inglés, aunque muchos de ellos tienen su traducción en castellano.</p>



<h3 class="wp-block-heading">Patrones de diseño creacionales</h3>



<ul class="wp-block-list"><li>Abstract factory</li><li>  Builder</li><li>  Dependency injection</li><li>  Factory method</li><li>  Lazy initialization</li><li>  Multiton</li><li>  Object pool</li><li>  Prototype</li><li>  RAII</li><li>  Singleton</li></ul>



<h3 class="wp-block-heading">Patrones de diseño estructural</h3>



<ul class="wp-block-list"><li>Adapter</li><li> Bridge</li><li> Composite</li><li> Decorator</li><li> Delegation</li><li> Facade</li><li> Flyweight</li><li> Front controller</li><li> Marker interface</li><li> Module</li><li> Proxy</li><li> Twin</li></ul>



<h3 class="wp-block-heading">Patrones de diseño de comportamiento</h3>



<ul class="wp-block-list"><li>Blackboard</li><li> Chain of responsibility</li><li> Command</li><li> Interpreter</li><li> Iterator</li><li> Mediator</li><li> Memento</li><li> Null object</li><li> Observer</li><li> Servant</li><li> Specification</li><li> State</li><li> Strategy</li><li> Template method</li><li> Visitor</li></ul>



<h3 class="wp-block-heading">Patrones de diseño funcional</h3>



<ul class="wp-block-list"><li>Closure</li><li> Currying</li><li> Function composition</li><li> Functor</li><li> Monad</li><li> Generator</li></ul>



<h3 class="wp-block-heading">Patrones de diseño de concurrencia</h3>



<ul class="wp-block-list"><li>Active object</li><li>  Actor</li><li>  Balking</li><li>  Barrier</li><li>  Binding properties</li><li>  Coroutine</li><li>  Compute kernel</li><li>  Double-checked locking</li><li>  Event-based asynchronous</li><li>  Fiber</li><li>  Futex</li><li>  Futures and promises</li><li>  Guarded suspension</li><li>  Immutable object</li><li>  Join</li><li>  Lock</li><li>  Messaging</li><li>  Monitor</li><li>  Nuclear</li><li>  Proactor</li><li>  Reactor</li><li>  Read write lock</li><li>  Scheduler</li><li>  Thread pool</li><li>  Thread-local storage</li></ul>





<h3 class="wp-block-heading">Patrones de diseño de arquitectura</h3>



<ul class="wp-block-list"><li>ADR</li><li>Active record</li><li> Broker</li><li> Client–server</li><li> CBD</li><li> DAO</li><li> DTO</li><li> DDD</li><li> ECB</li><li> ECS</li><li> EDA</li><li> Front controller</li><li> Identity map</li><li> Interceptor</li><li> Implicit invocation</li><li> Inversion of control</li><li> Model 2</li><li> MOM</li><li> Microservices</li><li> MVA</li><li> MVC</li><li> MVP</li><li> MVVM</li><li> Monolithic</li><li> Multitier</li><li> Naked objects</li><li> ORB</li><li> P2P</li><li> Publish–subscribe</li><li> PAC</li><li> REST</li><li> SOA</li><li> Service locator</li><li> SN</li><li> SBA </li><li> Specification</li></ul>



<h3 class="wp-block-heading">Patrones de diseño de computación distribuida</h3>



<ul class="wp-block-list"><li>Ambassador</li><li> Anti-Corruption Layer</li><li> Bulkhead</li><li> Cache-Aside </li><li> Circuit Breaker</li><li> CQRS</li><li> Compensating Transaction</li><li> Competing Consumers</li><li> Compute Resource Consolidation</li><li> Event Sourcing</li><li> External Configuration Store</li><li> Federated Identity</li><li> Gatekeeper</li><li> Index Table</li><li> Leader Election</li><li> MapReduce</li><li> Materialized View</li><li> Pipes</li><li> Filters</li><li> Priority Queue</li><li> Publisher-Subscriber</li><li> Queue-Based Load Leveling</li><li> Retry</li><li> Scheduler Agent Supervisor</li><li> Sharding</li><li> Sidecar</li><li> Strangler</li><li> Throttling</li><li> Valet Key</li></ul>



<h3 class="wp-block-heading">Otros patrones de diseño</h3>



<ul class="wp-block-list"><li>Business delegate</li><li> Composite entity</li><li> Intercepting filter</li><li> Lazy loading</li><li> Mangler</li><li> Mock object</li><li> Type tunnel</li><li> Method chaining</li></ul>



<h2 class="wp-block-heading">Créditos, referencias y artículos relacionados</h2>



<ul class="wp-block-list"><li>Imagen por <a rel="noreferrer noopener" aria-label="stux en pixabay (abre en una nueva pestaña)" href="https://pixabay.com/users/stux-12364/" target="_blank">stux en pixabay</a></li><li><a href="https://blog.ahierro.es/a-que-huele-el-codigo-fuente/">¿A qué huele el código fuente?</a></li><li><a href="https://blog.ahierro.es/refactorizacion-de-codigo/">Refactorización de código</a></li><li><a href="https://blog.ahierro.es/cohesion-y-acoplamiento/">Cohesión y acoplamiento</a></li><li><a href="https://blog.ahierro.es/deuda-tecnologica-o-deuda-tecnica/">Deuda tecnológica o deuda técnica</a></li></ul>La entrada <a href="https://blog.ahierro.es/patrones-de-diseno-de-software/">Patrones de diseño de software</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/patrones-de-diseno-de-software/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cumplimos 1 año, breve retrospectiva</title>
		<link>https://blog.ahierro.es/cumplimos-1-ano-breve-retrospectiva/</link>
					<comments>https://blog.ahierro.es/cumplimos-1-ano-breve-retrospectiva/#comments</comments>
		
		<dc:creator><![CDATA[Andres]]></dc:creator>
		<pubDate>Sat, 19 Oct 2019 06:52:37 +0000</pubDate>
				<category><![CDATA[Miscelanea]]></category>
		<category><![CDATA[ahierro]]></category>
		<guid isPermaLink="false">https://blog.ahierro.es/?p=1913</guid>

					<description><![CDATA[<p>Hoy hace exactamente un año que publicaba la primera entrada de este blog, y como con casi todos los inicios de las cosas que me ilusionan, lo hacía de forma precipitada, sin pensarlo demasiado, con más ganas que planificación. Como era de esperar, hoy ese ímpetu inicial ha dejado paso a una evolución más reflexiva, &#8230; </p>
<p class="link-more"><a href="https://blog.ahierro.es/cumplimos-1-ano-breve-retrospectiva/" class="more-link">Continuar leyendo<span class="screen-reader-text"> "Cumplimos 1 año, breve retrospectiva"</span></a></p>
La entrada <a href="https://blog.ahierro.es/cumplimos-1-ano-breve-retrospectiva/">Cumplimos 1 año, breve retrospectiva</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></description>
										<content:encoded><![CDATA[<p>Hoy hace exactamente un año que publicaba la primera entrada de este blog, y como con casi todos los inicios de las cosas que me ilusionan, lo hacía de forma precipitada, sin pensarlo demasiado, con más ganas que planificación.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="https://blog.ahierro.es/wp-content/uploads/2019/09/aniversario-1024x682.jpg" alt="Aniversario" class="wp-image-1825" width="840" height="559" srcset="https://blog.ahierro.es/wp-content/uploads/2019/09/aniversario-1024x682.jpg 1024w, https://blog.ahierro.es/wp-content/uploads/2019/09/aniversario-300x200.jpg 300w, https://blog.ahierro.es/wp-content/uploads/2019/09/aniversario-768x511.jpg 768w, https://blog.ahierro.es/wp-content/uploads/2019/09/aniversario.jpg 1920w" sizes="auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure>



<span id="more-1913"></span>



<p>Como era de esperar, hoy ese ímpetu inicial ha dejado paso a una evolución más reflexiva, y que mejor oportunidad que esta fecha para hacer una pequeña retrospectiva y pensar en lo que nos deparará este segundo año de vida que iniciamos con esta entrada.</p>



<h2 class="wp-block-heading">Contenido</h2>



<p>Inicié el primer año planteándolo como un año de prueba, proponiéndome un objetivo muy humilde: sobrevivir al primer año con una cadencia de publicación mínima de una publicación cada dos semanas.</p>



<p>Con 46 piezas publicadas he sido capaz de superar este objetivo puramente cuantitativo. Pero siendo honesto conmigo mismo existen varias entradas que tras revisarlas a posteriori no superarían el estándar mínimo de calidad que me he autoimpuesto.</p>



<p>Y continuando con lo que a calidad de contenido se refiere, me ha sorprendido mucho que una gran cantidad de los artículos que considero de mayor interés y calidad no son los que más visitas tienen, es más, en algunos casos tienen muy pocas visitas.</p>



<h2 class="wp-block-heading">Comentarios</h2>



<p>Una de las razones que me motivó a enrolarme en esta empresa era la de compartir con personas con aficiones o profesiones afines, entendido el término compartir como una conversación y no como un discurso.</p>



<p>La realidad es que, al menos en este primer año, no lo he conseguido, y la lectura que hago en este apartado es que debo ser yo quién inicie la comunicación en otros sitios en lugar de esperar que se inicie aquí.</p>



<h2 class="wp-block-heading">Estadísticas de tráfico</h2>



<p>El número de visitas es muy modesto. La parte positiva es que tal y como es de esperar en una web de reciente creación, los números mejoran notablemente mes a mes, en este caso en doble dígito.</p>





<p>Un dato que me ha resultado muy curioso es que al contrario de la tendencia que está tomando internet, el 92% de las visitas provienen de ordenadores y tan solo un 7% lo hacen desde móviles. Entiendo que el motivo es la temática del blog. </p>



<p>Algunas datos más que me gustaría compartir con vosotros son:</p>



<ul class="wp-block-list"><li>El 30% de vosotros visitáis este blog desde un ordenador con Linux.</li><li>Visitáis el blog desde: España 25%, México 15%, Colombia 9%, Argentina 9%, Perú 7%, Chile 6%, EEUU 5%, y así hasta un total de 25 países distintos. Realmente contento con este dato, no lo habría imaginado.</li><li>Solo el 16% de vosotras sois mujeres.</li><li>Solo el 4% de vosotros superáis los 55 años.</li></ul>



<h2 class="wp-block-heading">Asignaturas pendientes</h2>



<p>Este ha sido un año de arranque en el que he hecho muchas cosas, pero también han quedado muchas sin hacerse, os cuento algunas de ellas.</p>



<ul class="wp-block-list"><li>SEO Offsite. El SEO es uno de los aspectos que prácticamente no he tocado este primer año.</li><li>Twitter. Twitter es un complemento perfecto para un blog como este, pero es una red social que siempre se me ha atragantado.</li><li>Establecer una rutina de publicación constante.</li></ul>



<p>Por supuesto que no son las únicas, hay muchas más, pero son las tres que hoy por hoy destacaría.</p>



<h2 class="wp-block-heading">Lo que viene</h2>



<p>Tengo una idea bastante clara de lo que quiero hacer durante este segundo año de vida del blog, pero prefiero no contároslo por varios motivos:</p>



<ol class="wp-block-list"><li>Crear y escribir este blog es básicamente una afición, y compartir mis planes generaría unas expectativas que conociéndome me auto obligaría a cumplir. Y no me apetece.</li><li>A pesar de que tengo una visión bastante clara de a dónde quiero llegar, mantengo un planteamiento de startup que me permite pivotar en lo táctico.</li><li>Si os adelanto las novedades, no tendrían ninguna gracia.</li></ol>



<p>Pero la parte más importante que seguro que habéis intuido o incluso dado por hecho, es que el principal objetivo de este segundo año es continuar escribiendo y mantener el blog activo al menos un año más.</p>



<h2 class="wp-block-heading">Valoración subjetiva de este primer año</h2>



<p>Cierro esta entrada compartiendo con vosotros los dos aspectos que destacaría tras este primer año de vida del blog. Y como no todo es de color de rosas, os contaré lo mejor y lo peor.</p>



<p>En primer lugar hablemos del punto menos positivo. Gestionar un blog, que no solo escribir, consume mucho tiempo, y cuando no te sobra estás obligado a realizar sacrificios constantes para encontrarlo.</p>



<p>En cuanto al aspecto más dulce, a pesar de que pueda parecer un tópico, destacaría la ilusión de ver nacer y crecer un proyecto personal.</p>



<p>Y aprovecho este último párrafo para invitarte a que dejes un comentario si eres un lector habitual de este blog, es muy gratificante saber que otra persona valora tu trabajo.</p>



<h2 class="wp-block-heading">Créditos</h2>



<ul class="wp-block-list"><li>Imagen de portada: <a rel="noreferrer noopener" aria-label="S. Hermann &amp; F. Richter (abre en una nueva pestaña)" href="https://pixabay.com/users/pixel2013-2364555/" target="_blank">S. Hermann &amp; F. Richter</a> en Pixabay en Pixabay</li><li>Este fue el primero: <a href="https://blog.ahierro.es/hola-mundo/">¡Hola Mundo!</a></li></ul>La entrada <a href="https://blog.ahierro.es/cumplimos-1-ano-breve-retrospectiva/">Cumplimos 1 año, breve retrospectiva</a> apareció primero en <a href="https://blog.ahierro.es">blog.ahierro.es, programación, internet, tecnología y otras historias</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahierro.es/cumplimos-1-ano-breve-retrospectiva/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
