<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://luisperis.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://luisperis.com/" rel="alternate" type="text/html" hreflang="es" /><updated>2026-08-11T08:25:39+00:00</updated><id>https://luisperis.com/feed.xml</id><title type="html">Luis Peris</title><subtitle>Blog de Luis Peris: artículos sobre programación, rendimiento de aplicaciones, sistemas y el negocio de la tecnología.</subtitle><author><name>Luis Peris</name></author><entry><title type="html">Migrar Wordpress a Github Pages (Jekyll)</title><link href="https://luisperis.com/migrar-wordpress-a-github-pages-jekyll/" rel="alternate" type="text/html" title="Migrar Wordpress a Github Pages (Jekyll)" /><published>2026-08-11T08:14:18+00:00</published><updated>2026-08-11T08:14:18+00:00</updated><id>https://luisperis.com/migrar-wordpress-a-github-pages-jekyll</id><content type="html" xml:base="https://luisperis.com/migrar-wordpress-a-github-pages-jekyll/"><![CDATA[<p>Hace ya 5 años que no escribo un artículo y hacía bastante tiempo que me apetecía volver a escribir, en esta ocasión artículos mucho más técnicos…</p>

<p>En los últimos años he estado investigando mucho, muchísimo, he estado profundizando en muchos campos de AI (como conversor de llamadas openAI to Gemini) y me gustaría poderlo compartir ese conocimiento, para que si alguien se encuentra en un futuro con el problema que ya resolví, pueda hacer uso de mi solución sin perder tiempo :-)</p>

<h2 id="pero-por-qué-pasar-de-wordpress-a-jekyll">Pero ¿Por qué pasar de Wordpress a Jekyll?</h2>

<p>Simple: Se adapta a mis valores, tiene menor fricción al escribir y es mucho más seguro.</p>

<p>Mi primer artículo es de hace 11 años, durante estos 11 años he cambiado el alojamiento bastantes veces, servidores, VPS, hostings (piensasolutions, OVH, etc). No quiero perder el tiempo con migraciones, ni con actualizaciones de wordpress, ni con actualizaciones de plugins que han sido vulnerados… solamente quiero escribir y punto. Y esto es lo que me ofrece Jekyll/github.</p>

<h3 id="qué-es-jekyll">¿Qué es Jekyll?</h3>
<p>Jekyll es un generador de webs estáticas con capacidad de blog, es decir metes todos los artículos que escribas en formato .md en una carpeta llamada “posts”, y cuando le das al ‘build’, automáticamente te crea los menús (con plantillas similares a mustache), los artículos, el paginado, los tags/categorías.</p>

<p>TODO YA PROCESADO: Sin base de datos, sin lenguajes de backend, sin necesidad de javascript en el frontend.</p>

<p>Esto tiene unas ventajas enormes:</p>
<ul>
  <li>Al ser contenido estático lo puedes publicar gratis en mil sitios (ovh, cloudflare, github, etc)</li>
  <li>Al no tener DDBB, ni backend se complica mucho el hackearlo</li>
  <li>Cero mantenimiento: No hay plugins vulnerables que atender, ni framework que actualizar</li>
  <li>Escribir un nuevo artículo es tan fácil como escribir un fichero .md, meterle una cabecera ¡Y listo!</li>
</ul>

<h3 id="y-qué-tiene-que-ver-github-pages">¿Y qué tiene que ver Github Pages?</h3>
<p>Jekyll ha sido creado por Tom Preston-Werner, cofounder de Github, por lo tanto Github lo adoptó y si lo subes a un repositorio puedes publicarlo directamente en Github Pages (permite subir webs sin backend) mediante CICD.</p>

<p>Por lo que es muy sencillo:</p>
<ol>
  <li>Subes el repositorio</li>
  <li>Configuras el .github/workflows/jekyll.yml para que con cada push se regenere Github Pages</li>
  <li>Cambias las DNS del dominio para que apunte a las IPs de Github</li>
  <li>¡Listo! ¡Ya tienes tu web gratis!</li>
</ol>

<p>Ojo, en el CI/CD puedes hacer lo que quieras, también puedes publicarlo en Cloudflare o donde quieras.</p>

<p>Si has observado bien te habrás dado cuenta de que ahora, cada vez que quiera escribir un artículo, solo tengo que hacer lo siguiente:</p>
<ol>
  <li>Crear un fichero .md</li>
  <li>Escribir el artículo</li>
  <li>Commit + git push</li>
</ol>

<h3 id="y-cómo-hice-la-migración">¿Y cómo hice la migración?</h3>

<p>Seguro que hay guías mucho mejores que esta, de hecho, esta fue la parte que menos cariño le puse, lo hice de la siguiente forma:</p>

<ol>
  <li>Le pedí a claude que creara un .md con todas las URLs de mi blog basado en el sitemap.xml</li>
  <li>Eliminé los artículos/pages que no me interesaban migrar</li>
  <li>Le pedí que basado en esos artículos me hiciera la migración a Jekyll (solo necesita peticiones curl y bajar las imágenes) respetando las URLs</li>
  <li>A partir de ahí, empecé con el diseño (minimalista)</li>
  <li>Le pedí hacer una tabla de forma determinista para saber si había discrepancias entre las URLs anteriores y las nuevas.</li>
  <li>¡Ya está!</li>
</ol>

<p>Eso sí, como buen programador, me intenté facilitar la vida y le creé un par de scripts:</p>
<ul>
  <li>Docker para con un comando poder ver el resultado antes de subirlo</li>
  <li>./new-post.sh “nombre artículo” para que me cree el fichero con el slug (url)</li>
</ul>

<h3 id="cotillea-cómo-es-mi-web-por-dentro">Cotillea cómo es mi web por dentro</h3>

<p>Como buen amante del mundo open-source he dejado el repositorio abierto: <a href="https://github.com/LuisPerisVidal/luisperis.com">Mi github</a>.</p>

<p>Desde ahí:</p>
<ul>
  <li>Podréis ver todos los ficheros de configuración de Jekyll</li>
  <li>Cómo se dividen las carpetas/ficheros</li>
  <li>Tenéis un readme con las instrucciones</li>
</ul>]]></content><author><name>Luis Peris</name></author><category term="Rendimiento y Aplicaciones" /><summary type="html"><![CDATA[En este artículo veremos como migrar de Wordpress a Jekyll y con que ventajas nos encontaremos]]></summary></entry><entry><title type="html">¿Qué es la dirección IP?</title><link href="https://luisperis.com/que-es/direccion-ip/" rel="alternate" type="text/html" title="¿Qué es la dirección IP?" /><published>2020-11-16T12:56:01+00:00</published><updated>2020-11-16T12:56:01+00:00</updated><id>https://luisperis.com/que-es/que-es-direccion-ip</id><content type="html" xml:base="https://luisperis.com/que-es/direccion-ip/"><![CDATA[<p>Una dirección IP es un identificador lógico (virtual) que permite identificar un dispositivo dentro de una red.</p>

<p><em>Un ejemplo de IP: 95.159.126.42</em></p>

<h2 id="qué-es-la-dirección-ip">¿Qué es la dirección IP?</h2>

<p>Antes de volvernos un poco técnicos, hagámonos unas preguntas:</p>

<p>Cuando estamos navegando por internet y accedemos a una web (esta por ejemplo), ¿cómo sabe el servidor de la web a qué parte del mundo tiene que mandar la información que se le ha solicitado? Justo hasta llegar a tu casa…</p>

<p>Es por ello que cuando hacemos una petición a una página web, realmente le estamos mandando nuestra IP, que sería cómo la dirección de nuestra casa.</p>

<p>De hecho, las IPs se pueden geolocalizar e indicar uno de los nodos más cercanos a nuestra casa. En mi caso (que vivo en Terrassa), se encuentra aquí:</p>

<p><img src="/assets/img/2020/que-es-ip.png" alt="¿Qué es la IP?" /></p>

<p>Pero, la IP no únicamente sirve cómo ‘dirección’, esto es algo secundario. Lo importante que tenemos que entender es que la IP es como un DNI, es decir, identifica de forma clara e inequívoca un dispositivo que tiene acceso a una red (ya sea red local o red de redes como es internet).</p>

<h2 id="ip-local-e-ip-pública">IP local e IP pública</h2>

<p>Algo que deberíamos de tener en cuenta es la diferencia entre una IP pública y una IP local.</p>

<p>Por regla general, nuestros dispositivos que tengan acceso a Internet van a tener dos IPs, una que será ‘la que identifique nuestra casa’ y que salga a Internet (llamada IP pública), y otra que será para dentro de nuestra casa (IP local).</p>

<p>Esto tiene sentido por varias cosas: la primera, si queremos mandar un fichero entre ordenadores de nuestra casa, ¿qué sentido tiene que tenga que pasar por el servidor de nuestra compañía telefónica y volver a nuestra casa? ¿No sería mejor mandarlo directamente dentro de la casa? Pues bien, esto se hace automáticamente con la IP local que nos ha asignado el router.</p>

<p>Otra razón por la cual existen las IPs locales, es porque cuando contratamos Internet, solamente nos dan una IP pública. Es decir, una IP que pueda navegar por Internet. Si no existieran las redes locales (obligándonos a que todo pase por el router), solamente podríamos tener un ordenador conectado a Internet (que es algo que pasaba en los años 90, con los famosos modems).</p>

<h2 id="cómo-se-estructura-una-red-local-y-cómo-sale-a-internet">¿Cómo se estructura una red local y cómo sale a Internet?</h2>

<p>Realmente, es muy sencillo. Imagínate que te compras un ordenador nuevo y lo conectas a la red wifi de tu casa. Aquí, lo que estarías haciendo realmente es añadirte a la red local de tu casa (nada de Internet).</p>

<p>Así que el router te daría una IP local (que solamente puedes usar con dispositivos de tu casa), sería muy similar a esta: 192.168.1.30</p>

<p>Es decir, si tuvieras dos ordenadores y un móvil conectados a la red local de tu casa, podrían tener perfectamente, estas IPs:</p>

<ul>
  <li>192.168.1.30</li>
  <li>192.168.1.31</li>
  <li>192.168.1.32</li>
</ul>

<p>Ahora bien, ¿recuerdas cuando dije que en los años 90 solamente se podía tener un dispositivo conectado a Internet? Pues bien, realmente no ha cambiado nada, en el siglo XXI seguimos igual. Lo que pasa es que “nos la hemos ingeniado”.</p>

<p>Y lo que hacemos es decir “vale, si solamente podemos tener un dispositivo conectado a Internet, este será el router”. Al final el router, no es más que un ordenador pequeñito, que “enruta” y ordena todas las conexiones de los dispositivos de la casa para que puedan salir a Internet.</p>

<p>Es decir, cuando navegamos, absolutamente todo pasa por el router. Y, por lo tanto, cuando recibimos un email en el ordenador, es el router el que de una forma inteligente manda la información al ordenador correcto dentro de la red local que es nuestra casa.</p>

<h2 id="ipv4-y-los-límites">IPv4 y los límites</h2>

<p>Como hemos visto anteriormente, las IPs (de tipo IPv4, las más usadas actualmente), tienen un formato de números separados por puntos. No obstante, las IPs encuentran sus límites al traducirlo a binario, ya que solamente soporta 32 bits (8 bits por bloque). Esto quiere decir que la IP máxima será (en binario), la siguiente:</p>

<p>11111111.11111111.11111111.11111111</p>

<p>Que traducido a decimal, nos da: 255.255.255.255. Por lo tanto, podemos decir que todas las IPs se encuentran entre las IPs 0.0.0.0 y 255.255.255.255.</p>

<p>Si elevamos 2 (por ser binario) a la 32 (los números/bits que tiene como máximo), nos damos cuenta que como máximo podemos tener 4.294.967.296 de IPs. Es decir, casi 4000 millones de IPs.</p>

<p>Puede parecer mucho, pero pensemos que cada persona estamos gastando varias IPs a la vez (en casa, en el móvil, en la alarma de nuestra casa, etc).</p>

<p>Además, tenemos que pensar que existen rangos de IPs que están reservadas (para redes locales, por ejemplo). Por lo que poco a poco se va reduciendo,</p>

<p>Es por eso que, como nos estamos quedando sin IPs (o ya nos hemos quedado), hace muchos años que se empezó a implementar el sistema IPv6, con el que son compatibles la mayoría de dispositivos.</p>

<h2 id="ipv6-el-nuevo-formato">IPv6: El nuevo formato</h2>

<p>Como hemos comentado antes, con el formato IPv4, había cerca de 4000 millones de IPs. Teniendo en cuenta que la población de la tierra es de 6000 millones de personas, ni siquiera podemos tener una IP por persona. Y, eso sin contar que según las estimaciones, en el año 2025, la población de la tierra será de 8000 millones de personas, ¡una IP cada dos personas!</p>

<p>Pues, viendo todo esto a finales de los 90 (en concreto en 1998), se empezó a desarrollar el nuevo formato de IPs conocido como IPv6.</p>

<p>Mientras la IPv4 admitía 32 bits, la IPv6 admite 128 bits. Puede que la diferencia no parezca mucha, pero hay que pensar que es exponencial, no lineal.</p>

<p>Esto quiere decir que:</p>

<ul>
  <li>Existirán cerca de 670 mil millones de Ips por cada milímetro cuadrado de planeta tierra (cálculo de Google).</li>
  <li>Cada humano tendrá a su disposición millones de Ips públicas para navegar por Internet.</li>
</ul>

<p><em>Ejemplo de IPv6: 2001:0db8:85a3:08d3:1319:8a2e:0370:7334</em></p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Qué es una dirección IP, la diferencia entre IP pública y local, y por qué surgió el nuevo formato IPv6.]]></summary></entry><entry><title type="html">¿Qué es la dirección MAC?</title><link href="https://luisperis.com/que-es/direccion-mac/" rel="alternate" type="text/html" title="¿Qué es la dirección MAC?" /><published>2020-11-13T09:45:18+00:00</published><updated>2020-11-13T09:45:18+00:00</updated><id>https://luisperis.com/que-es/que-es-direccion-mac</id><content type="html" xml:base="https://luisperis.com/que-es/direccion-mac/"><![CDATA[<p>La dirección MAC es un conjunto de letras y números alfanuméricos a nivel de hardware que identifica a un dispositivo de red dentro de una red local.</p>

<p>Ejemplo de MAC: 00:2A:33:22:4C:D3</p>

<h2 id="qué-es-la-dirección-mac">¿Qué es la dirección Mac?</h2>

<p>Antes que nada tenemos que aclarar que absolutamente todos los dispositivos que se conecten o se puedan conectar a una red local, tienen una dirección Mac.</p>

<p>Esto quiere decir que, no sólo los ordenadores la tienen sino que también los relojes inteligentes, los móviles, los dispositivos inteligentes (IoT) como por ejemplo las cámaras de videovigilancia que van por wifi, etc.</p>

<p>También, es importante indicar que, a diferencia de la IP, que es una “dirección lógica”, es decir, que es virtual, por lo que podemos tener una hoy pero mañana otra (puesto que es el router quien nos dice cuál tenemos), las direcciones MAC son fijas (no pueden cambiarse), y se establece cuando se fabrica la tarjeta de red.</p>

<p>Algo importante a destacar es que, cada tarjeta de red tiene una MAC diferente pero, es cierto que los números son ‘finitos’. Además, el fabricante solamente puede usar 6 dígitos alfanuméricos (más adelante lo veremos). Esto quiere decir que, cada vez que un fabricante haga 16 millones de tarjetas de red, tendrá que volver a repetir los números. Esto, que podría llegar a ser muy problemático, no es tanto, ya que la dirección MAC se usa a nivel de red local, no de Internet y ¿cuántos ordenadores tenemos conectados en casa? ¿4-5 máximo? Además de diferentes fabricantes, por ello que se lleguen a repetir, no suele ser un problema.</p>

<h2 id="para-qué-sirve-la-dirección-mac">¿Para qué sirve la dirección MAC?</h2>

<p>Si pensamos en cuando nos conectamos a una red wifi, mucha gente cree que nuestro ordenador manda la contraseña a la red wifi y si es correcta, mediante el protocolo DHCP se nos asigna una IP local.</p>

<p>Y esto, en parte es correcto pero, ¿cómo sabe el router a quién tiene que asignar una nueva IP y darle acceso a Internet? Si solamente existiera un dispositivo se podría pero, si en casa tenemos cinco dispositivos ¿cómo diferencia el router a los cinco dispositivos? Con la dirección MAC.</p>

<p>De hecho, si accedemos a la configuración de nuestro router, veremos que podemos ‘prohibir y permitir’ direcciones MAC, lo que se conoce como listas blancas o listas negras.</p>

<p>Es decir, al estar la dirección escrita en la fábrica, es una forma más segura de verificar una tarjeta. Además de ser la única forma de poder “encontrar” un dispositivo antes de que se le asigne una dirección IP.</p>

<h2 id="el-formato-de-la-dirección-mac">El formato de la dirección MAC</h2>

<p>Como hemos visto anteriormente, un ejemplo de dirección MAC es el siguiente:<br />
00:2A:33:22:4C:D3</p>

<p>Es decir, son 6 bloques de 8 bits (2 caracteres hexadecimales), separados por dos puntos. Lo que hace un total de 48 bits.</p>

<p>Pues bien, los tres primeros bloques (24 primeros bits) hacen referencia al fabricante y los siguientes 24 bits son datos únicos de la tarjeta de red.</p>

<p>Es decir, que cada ‘fabricante’ puede generar x tarjetas de red diferentes pero, ¿cuántas son?</p>

<p>Pues muy sencillo, puesto que son 24 bits (3 bloques de 2 letras hexadecimales), simplemente tenemos que elevar 16 a 6, lo que nos da un total de 16.777.216 posibles tarjetas de red por cada fabricante.</p>

<h2 id="cambiar-la-dirección-mac">¿Cambiar la dirección MAC?</h2>

<p>Una pregunta que se hace mucha gente es, si la dirección MAC la escribe el fabricante ¿se puede cambiar la dirección MAC?</p>

<p>Pues bien, la respuesta es “sí y no”, me explico:</p>

<p>Mientras que la dirección IP es una dirección lógica (virtual), y podemos poner la que queramos, de forma muy sencilla, la dirección MAC está escrita por el fabricante en una especie de memoria ROM (memoria de solo lectura). Es decir, nunca podremos cambiar la dirección MAC.</p>

<p>Ahora bien, si analizamos lo que sucede en el modelo OSI (modelo para conexiones de red), veremos que, realmente, es el sistema operativo quien se encarga de leer la MAC del hardware (dispositivo físico) y de mandárselo al router o a los dispositivos.</p>

<p>Sabiendo esto, entenderemos que podemos ‘falsificar’ nuestra MAC para poner la que queramos.</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Qué es la dirección MAC, cómo identifica a nivel de hardware a un dispositivo de red y en qué se diferencia de la IP.]]></summary></entry><entry><title type="html">¿Qué es VanillaJS?</title><link href="https://luisperis.com/que-es/vanillajs/" rel="alternate" type="text/html" title="¿Qué es VanillaJS?" /><published>2020-11-11T11:40:46+00:00</published><updated>2020-11-11T11:40:46+00:00</updated><id>https://luisperis.com/que-es/que-es-vanillajs</id><content type="html" xml:base="https://luisperis.com/que-es/vanillajs/"><![CDATA[<p>Si has llegado hasta aquí, seguramente haya escuchado hablar en diferentes sitios de VanillaJS. Pero, te preguntas, ¿qué es Vanilla JS?</p>

<h2 id="qué-es-vanilla-js">¿Qué es Vanilla JS?</h2>

<p>Vanilla JS es una broma usada por los programadores y creada por Eric Wastl. Si descargas la librería vanilla.js de la web oficial y la abres, verás que es un fichero vacío.</p>

<p>Por lo tanto, todo lo que “está programado” con vanillaJS, realmente ha sido programado con JavaScript puro y si se elimina el fichero vanilla.js, funcionará igual.</p>

<h2 id="de-dónde-viene-vanilla-js">¿De dónde viene Vanilla JS?</h2>

<p>El mundo va por tendencias y la programación no iba a ser diferente. Por lo tanto, cuando se pone de moda un framework JavaScript, muchos programadores van corriendo a aprenderlo y usarlo para todo.</p>

<p>El problema es que hay muchos programadores (yo incluído) que consideran que se nos ha ido de las manos, y que se están cogiendo “malas costumbres”. Sobre todo, los nuevos programadores.</p>

<p>Es decir, ha llegado un momento en el que los programadores solamente usan frameworks javascript, sin llegar realmente a saber cómo funciona javascript, ni cómo se programa javascript puro (sin frameworks).</p>

<p>Cada vez los frameworks son más sofisticados, más grandes y cada vez se parecen menos a JavaScript. De hecho, algunos directamente tienen un pseudolenguaje que tienes que compilar, para lo que tienes que tener instalado nodeJS, npm, webpack, etc.</p>

<p>El resultado de ello es que para hacer web con un “hola mundo” tenemos un proyecto que antes de compilar ocupa 230Mb, cuanto con JavaScript puro serían 3kb. Es decir, 76.000 veces más.</p>

<p>Es por ello que, Eric Wastl creó un framework llamado Vanilla JS y la documentación del framework no era más que la oficial de JavaScript.</p>

<p>Por lo que muchos programadores (juniors), empezaron a descargarlo y hacer proyectos en Vanilla JS. Únicamente porque pensaban que era un nuevo framework, sin saber realmente que estaban programando JavaScript puro.</p>

<h2 id="vanillajs-vs-frameworks">VanillaJS VS frameworks</h2>

<p>Entonces, ¿es mala idea usar un framework?</p>

<p>No, los frameworks son geniales para proyectos con un tamaño medio/medio-grande, te permiten ordenar el código y trabajar de una forma ordenada, el problema que intenta hacer relucir VanillaJS son dos:</p>

<p>Primero, no deberías programar bajo un framework javascript si no sabes primero javascript puro.</p>

<p>Y segundo, no siempre se debe de utilizar un framework. Si el proyecto es enano, podemos no usar ningún framework o apoyarnos en librerías como jQuery y/o VueJS.</p>

<p>Por último, es importante recordar que, una web que usa un framework siempre será mucho más lenta (aunque el humano no lo note), que una web que no lo usa.</p>

<p>Por ejemplo, jQuery que es una de las librerías (no llega ni a framework) menos pesada, tarda 400 veces más ejecutar una consulta para recuperar todas las etiquetas html con un class concreto, que si lo hiciéramos con javascript puro, siendo ambos una sola línea de código.</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Qué es VanillaJS, por qué es simplemente JavaScript sin frameworks ni librerías y cuándo tiene sentido utilizarlo.]]></summary></entry><entry><title type="html">¿Qué es un bootcamp de programación?</title><link href="https://luisperis.com/que-es/bootcamp-de-programacion/" rel="alternate" type="text/html" title="¿Qué es un bootcamp de programación?" /><published>2020-11-09T09:54:43+00:00</published><updated>2020-11-09T09:54:43+00:00</updated><id>https://luisperis.com/que-es/que-es-bootcamp-de-programacion</id><content type="html" xml:base="https://luisperis.com/que-es/bootcamp-de-programacion/"><![CDATA[<p>Un bootcamp de programación es una formación altamente intensiva que suele durar entre 2 y 6 meses y que tiene como finalidad, que los alumnos aprendan unos conocimientos teóricos que podrían tardar años en aprender si no llega a ser por el bootcamp y, que sean capaces de aplicar dichos conocimientos teóricos de una forma práctica.</p>

<h2 id="qué-es-un-bootcamp">¿Qué es un bootcamp?</h2>

<p>Aunque la definición anterior ha quedado bastante claro qué es un bootcamp, es cierto que es una definición amplia y poco específica (ya que un bootcamp puede darse hasta de diseño UX). No obstante, veamos un claro ejemplo del tipo de bootcamp más conocido.</p>

<p>El tipo de bootcamps más conocidos pretende cambiar la forma de enseñar programación y que en vez de estudiar durante dos años un ciclo de formación profesional, pretenden reducir el tiempo entre dos y seis meses. Ahorrándote un año y medio de estudios, que puedes dedicarlo a trabajar de programador.</p>

<p>Esto es posible pues, en la formación profesional de programación, por ejemplo, el primer año, solamente existe una asignatura de programación. Es decir, los bootcamp en España cogen fuerza, por la incompetencia del sistema público de educación español, de dar una formación de calidad.</p>

<h2 id="objetivos-de-los-bootcamps">Objetivos de los bootcamps</h2>

<p>Se puede definir los objetivos de los bootcamps en dos:</p>

<h3 id="conseguir-aprender-a-programar-en-unos-meses">Conseguir aprender a programar en unos meses</h3>

<p>El primer objetivo es conseguir convertirse en programador (junior) en unos meses. Es decir, adquirir los conocimientos suficientes para poder considerarse programador y realizar sus propios proyectos.</p>

<p>La mitad de las personas que realizan un bootcamp, no quieren trabajar de programadores sino, aprender programación como hobby. Los bootcamp le brindan estos conocimientos.</p>

<h3 id="conseguir-encontrar-trabajo-de-programador">Conseguir encontrar trabajo de programador</h3>

<p>En España existe un “paro cero” de programadores, existe tanta demanda que ‘importamos’ programadores de latinoamérica.<br />
Gracias a esta circunstancia, cualquier persona que realice un bootcamp acabará encontrando trabajo en menos de tres meses.</p>

<p>La posibilidad de encontrar trabajo en menos de tres meses tras hacer un bootcamp se encuentra entre el 96% y el 99%, dependiendo la academia.</p>

<h2 id="ventaja-de-los-bootcamps">Ventaja de los bootcamps</h2>

<p>Las ventajas de realizar un bootcamp son bastante patentes y no es necesario casi decirlas, no obstante, repasemos cuáles son las dos principales:</p>

<h3 id="sales-con-trabajo">Sales con trabajo</h3>

<p>Como indicábamos anteriormente, realizar un bootcamp de programación, te garantiza entre un 96% y un 99% la posibilidad de encontrar trabajo en menos de tres meses.<br />
Esto es una ventaja muy a tener en cuenta, ya que te preparan directamente para el mercado laboral.</p>

<h3 id="tecnologías-más-actuales">Tecnologías más actuales</h3>

<p>En la formación reglada se estudian tecnologías que dejaron de usarse hace 10 años. Por ejemplo, existe una asignatura de XML, en cambio, las tecnologías actuales (JSON) no se estudian. Es decir, está desactualizada.<br />
Los bootcamps, al estar enfocados al mercado laboral, utilizan tecnologías modernas.</p>

<h2 id="desventajas-de-los-bootcamps">Desventajas de los bootcamps</h2>

<p>Muchos bootcamps se enfocan demasiado en que salgas con trabajo y no en que aprendas tecnologías. Por otra parte, esos mismos bootcamps solamente enseñan un lenguaje (javascript), en la parte del cliente, en la parte del servidor, en la base de datos (una auténtica burrada).</p>

<p>La razón de enseñar solamente un lenguaje es que solamente necesitarán un profesor y, lo más importante, se puede hacer la formación en dos meses.</p>

<p>Yo, personalmente, estoy bastante en contra de este tipo de formaciones. Porque, aunque es cierto que sales con trabajo por la gran falta de programadores que existen, sales sin una base sólida.</p>

<h2 id="principales-bootcamp-en-españa">Principales Bootcamp en España</h2>

<p>A continuación veremos tres bootcamps y sus características.</p>

<p><em>Nota. Hay que recordar que yo no puedo ser del todo imparcial (aunque lo intentaré), ya que tengo mi propio bootcamp (pestaña formación de esta web). No obstante, el sector es muy grande, e incluso e invitado y entrevistado en mis podcast a los CEOs de varios bootcamps. Simplemente tenemos formas diferentes de ver la formación.</em></p>

<h3 id="ironhack">IronHack</h3>

<p>Es uno de los más famosos, ya que es internacional, su imagen y sus centros son espectaculares y el marketing que realizan son geniales.<br />
Tienen acuerdos con algunas empresas para presentar a los mejores alumnos.<br />
A mí, personalmente, no me gusta pues solamente enseñan JavaScript (según ellos mismos y su web), no enseñan ni bases de datos MySQL (algo básico).</p>

<p>Además, la formación son únicamente dos meses, tiempo insuficiente para asentar todos los conceptos.</p>

<h3 id="skylab-coders">Skylab Coders</h3>

<p>Únicamente están en Barcelona. En esta ocasión pasan de 2 meses que realiza IronHacker a dos meses y medio.<br />
La formación también se centra exclusivamente en JavaScript y tampoco aprenden bases de datos relacionales.<br />
Aunque discrepe de cómo realizan la formación, son buena gente y profesionales, y les he entrevistado (está en los podcast).</p>

<h3 id="luis-peris-formación">Luis Peris Formación</h3>

<p>El bootcamp que imparto tiene un coste similar al del resto, pero se realiza en 6 meses y las clases son siempre individuales.<br />
Las tecnologías que se tocan son diferentes, (JavaScript, PHP, MySQL, APIs, etc), además de tocar también frameworks modelo-vista-controlador, que no se imparten en el resto de bootcamps.<br />
No es ni mejor ni peor que los otros bootcamps, es una formación que con el mismo coste, es casi el triple de tiempo que tienes que invertir, pero sales mucho más preparado y pudiendo ir mucho más tranquilo a las entrevistas de trabajo.</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Qué es un bootcamp de programación, cómo funciona esta formación intensiva y qué lo diferencia de una carrera universitaria tradicional.]]></summary></entry><entry><title type="html">¿Qué es la programación orientada a objetos?</title><link href="https://luisperis.com/que-es/programacion-orientada-a-objetos/" rel="alternate" type="text/html" title="¿Qué es la programación orientada a objetos?" /><published>2020-11-03T12:09:02+00:00</published><updated>2020-11-03T12:09:02+00:00</updated><id>https://luisperis.com/que-es/que-es-programacion-orientada-a-objetos</id><content type="html" xml:base="https://luisperis.com/que-es/programacion-orientada-a-objetos/"><![CDATA[<p>La programación orientada a objetos es un nuevo paradigma que intenta imitar la programación con el mundo real, intentando imitar los objetos/entidades reales (coche, cliente…) con los objetos/entidades de la programación</p>

<h2 id="qué-es-la-programación-orientada-a-objetos">¿Qué es la programación orientada a objetos?</h2>

<p>Realmente, una vez hemos visto la descripción “de libro”, podríamos definir la programación orientada a objetos como una programación que se basa en desarrollar diferentes mini-programas inteligentes e independientes.</p>

<p>Es decir, un proyecto bien desarrollado con esta metodología que se empezó a popularizar en los 90, contará con objetos que sean:</p>

<ul>
  <li>Independientes</li>
  <li>Inteligentes</li>
</ul>

<p>Aunque, existe la programación no orientada a objetos, es importante recordar que cerca del 100% de los lenguajes de programación actuales, están orientados a objetos. Siendo C el lenguaje de programación más importante sin objetos.</p>

<h2 id="principales-características-de-la-programación-orientada-a-objetos">Principales características de la programación orientada a objetos</h2>

<p>Los lenguajes de programación orientada a objetos tienen diferentes características, siendo dos, las que permiten entender mejor el lenguaje.</p>

<h3 id="objetos-independientes">Objetos independientes</h3>

<p>Como hemos indicado anteriormente, un proyecto bien desarrollado en un lenguaje orientado a objetos, es un proyecto que contará con diferentes objetos.</p>

<p>Pues bien, estos objetos son independientes, esto quiere decir varias cosas: para empezar, que no deberían de tener relación un objeto con otro y, que únicamente estarán conectados desde un controlador/objeto superior.</p>

<p>Gracias a esto, podemos encontrar otra característica de los objetos, y es que, al ser independientes, podemos exportarlos y usarlos tal cual en otro proyecto.</p>

<p>Por ejemplo, podemos crear un objeto llamado “cliente” y usarlo en otros proyectos, reutilizando así código y no teniéndolo que volver a programar.</p>

<h3 id="objetos-inteligentes">Objetos inteligentes</h3>

<p>Me gusta definir los objetos cómo mini-programas inteligentes. Esto quiere decir que los objetos son inteligentes, a diferencia de las librerías basadas en funciones.<br />
Por ejemplo, si tenemos un objeto “coche” y ejecutamos el método “arrancar”, cuando usemos el método “acelerar”, podremos saber si el coche está arrancado, cuántos metros lleva recorridos, si no está arrancado, pedirle que lo arranque, etc.<br />
Todo esto, además, de forma independiente con el resto de objetos del proyecto y sin necesidad de usar bases de datos o variables externas al objeto.</p>

<h2 id="c-y-la-programación-orientados-en-objetos">C y la programación orientados en objetos</h2>

<p>Como comentamos a principio de este artículo, la mayoría de lenguajes de programación más usados ya son orientados a objetos. Puesto que, elegir entre un lenguaje que puedes reutilizar y ordenar el código por módulos y, uno que no, al final, por coherencia, acabamos usando los lenguajes de programación orientados a objetos.</p>

<p>No obstante, pasó algo, cuanto menos ‘curioso’, y es que uno de los lenguajes de programación más usados siempre había sido C. Hasta tal punto que, los motores de otros lenguajes como JavaScript o PHP, están escritos en este lenguaje.</p>

<p>Pero había un problema, C se lanzó en 1972 y la mera idea de la programación orientada a objetos empezó a surgir dos décadas después. Razón por la cual, C, no tiene objetos ¡Nació 20 años antes de que se popularizaran!</p>

<p>No obstante, se crearon tres lenguajes, basados en C, pero con objetos:</p>

<h3 id="c">C++</h3>

<p>Se considera el heredero verdadero de C, ya que es el único que no hay una ‘empresa’ detrás, es libre y gratuito.</p>

<h3 id="c-1">C#</h3>

<p>La propuesta de Microsoft basada en C e influido por C++. Actualmente lo acompañan con un entorno de desarrollo llamado .NET</p>

<h3 id="objetive-c">Objetive-C</h3>

<p>Creado y mantenido por Apple, está pensado para desarrollar software para Apple (MacOS, iPhone, Tablets, etc). Actualmente lo están dejando morir a favor de Swift.</p>

<h2 id="realmente-php-es-un-lenguaje-orientado-a-objetos">¿Realmente PHP es un lenguaje orientado a objetos?</h2>

<p>Con PHP pasó algo realmente curioso, es uno de los lenguajes de programación más utilizados en el mundo (top-10), y es el principal para desarrollar páginas web.</p>

<p>Al igual que C, fue un lenguaje que inicialmente no estaba orientado a objetos (salió en 1995). No olvidemos que fue creado por un joven de 25 años para hacer un curriculum vitae más interactivo, por lo que, nunca pensó que llegaría a ser un lenguaje de programación usado mundialmente.</p>

<p>No obstante, en 2004 decidieron sacar la versión PHP 5, con un mejor soporte a la programación orientada a objetos. Sin embargo, para conseguir la mejor compatibilidad con el código ya creado, no hicieron un lenguaje totalmente basado en objetos, sino que lo hicieron “compatible con objetos”.</p>

<p>Así pues, es un lenguaje fuertemente procedimientos (basado en funciones). No obstante, soporta clases y objetos. Esto quiere decir que, una variable en PHP es únicamente una variable y no un objeto (como pasa en el resto de lenguajes de programación orientada a objetos).</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Qué es la programación orientada a objetos, sus características principales y cómo lenguajes como C o PHP se relacionan con este paradigma.]]></summary></entry><entry><title type="html">¿Qué es Netscape?</title><link href="https://luisperis.com/que-es/netscape/" rel="alternate" type="text/html" title="¿Qué es Netscape?" /><published>2020-10-30T16:12:08+00:00</published><updated>2020-10-30T16:12:08+00:00</updated><id>https://luisperis.com/que-es/que-es-netscape</id><content type="html" xml:base="https://luisperis.com/que-es/netscape/"><![CDATA[<p>Netscape es el nombre de la empresa que creó Netscape Navigator, uno de los primeros navegadores que existieron. Además, fue la responsable del Internet que tenemos hoy día, siendo también la creadora de JavaScript, hasta la fecha, el único lenguaje de programación admitido en todos los navegadores.</p>

<h2 id="qué-es-nestcape-navigator">¿Qué es Nestcape Navigator?</h2>

<p>Como comentábamos en líneas anteriores, Netscape Navigator fue uno de los primeros navegadores que existieron. Fue lanzado de forma estable en 1994, tan sólo dos años después de que se publicara el lenguaje de etiquetas HTML.</p>

<p>El éxito y la rápida salida al mercado de Netscape fue gracias a que la empresa fue creada por Marc Andreessen, uno de los autores de Mosaic, el segundo navegador de la historia (fue el segundo, pues se hizo un cambio de nombre).</p>

<p>Uno de los mayores competidores de Netscape fue Internet Explorer, que apareció un año después (1995) de que Netscape Navigator se publicara.</p>

<p>Por otra parte, Netscape creó JavaScript, siendo Netscape Navigator, el primer navegador capaz de ejecutar código JavaScript.</p>

<h2 id="netscape-composer">Netscape Composer</h2>

<p>A partir de la versión 3 de Netscape Navigator se introdujo Netscape Composer. Esto fue en 1997, tres años después de que saliera la primera versión del navegador.</p>

<p>Netscape Composer era un potente editor/creador de páginas web. Permitía crear páginas web con la tecnología WYSIWYG, es decir, exactamente igual que si las diseñamos con un word. También permitía publicar las páginas web.</p>

<p>Los editores WYSIWYG para webs eran muy comunes en aquella época dónde todavía no existían cursos oficiales para aprender HTML (recordemos que acababa de nacer). Es por ello que, un gran porcentaje de páginas web se hicieran mediante estos editores.</p>

<p>Entre otras cosas Netscape Composer permitió aprender conceptos de HTML y CSS en una época donde no existía Youtube y donde la información era mucho más escasa.</p>

<h2 id="de-netscape-al-mozilla">De Netscape al Mozilla</h2>

<p>En 1997 Netscape decidió liberar todo el código, tanto de JavaScript como del navegador Netscape Composer.</p>

<p>Fue una gran inversión, ya que, para liberar el código, tuvieron que reprogramar muchos módulos para no violar ninguna patente o copyright.</p>

<p>Todo el código se liberó bajo el proyecto “Mozilla”.</p>

<h2 id="netscape-compra-por-parte-de-aol">Netscape: Compra por parte de AOL</h2>

<p>En el año 2000 AOL compró la empresa Netscape e introdujo varios cambios.</p>

<p>Para las nuevas versiones del navegador intentaron basarse en Mozilla pero, resultaba que el software era demasiado pesado e inestable, por lo que iban publicando parche tras parche.</p>

<p>En definitiva, con los nuevos dueños, la calidad de Netscape fue en detrimento.</p>

<p>Por otra parte, el fuerte crecimiento de Internet Explorer, hizo que Nestcape Navigator fuera siendo utilizado cada vez menos.</p>

<h2 id="la-muerte-de-netscape-y-el-nacimiento-de-mozilla">La muerte de Netscape y el nacimiento de Mozilla</h2>

<p>Con la muerte cada vez más cercana de Netscape, Brendan Eich, ingeniero de Netscape y el principal creador de JavaScript, creó la fundación en 2003 Mozilla (antes no era más que el nombre de un proyecto).</p>

<p>Desde entonces Mozilla ha tenido dos grandes cometidos: por una parte, continuar con su navegador totalmente gratuito y open-source llamado Firefox; y, por otra, dar a conocer la tecnología JavaScript, tecnología, que actualmente es compatible con todos los navegadores.</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Qué fue Netscape, la empresa creadora de Netscape Navigator y JavaScript, y cómo su legado dio origen a Mozilla y Firefox.]]></summary></entry><entry><title type="html">¿Qué es el caché?</title><link href="https://luisperis.com/que-es/el-cache/" rel="alternate" type="text/html" title="¿Qué es el caché?" /><published>2020-10-28T11:58:36+00:00</published><updated>2020-10-28T11:58:36+00:00</updated><id>https://luisperis.com/que-es/que-es-el-cache</id><content type="html" xml:base="https://luisperis.com/que-es/el-cache/"><![CDATA[<p>El caché es un sistema, ya sea software o hardware, por el cual se permite acceder a una información específica de una manera más rápida.</p>

<h2 id="qué-es-el-caché">¿Qué es el caché?</h2>

<p>Como bien hemos indicado anteriormente, el caché es un sistema que nos permite acceder a una información de manera más rápida que si no tuviéramos caché.</p>

<p>Principalmente, existen dos tipos de caché: una se encuentra en la CPU, que es el sistema operativo y el procesador el encargado de ‘cachear’ toda aquella información que cree que va a tener que volver a utilizar; y la otra, es la memoria RAM, más utilizada por las aplicaciones. Recordemos que la memoria RAM es mínimo 200 veces más rápida que el disco duro.</p>

<p>Por otra parte, aunque podemos complicar mucho la definición de caché, realmente se puede resumir en los dos siguientes usos:</p>

<h3 id="el-caché-como-duplicador-de-datos">El caché, como duplicador de datos</h3>

<p>Cuando estamos todo el rato accediendo a una misma información, por ejemplo, a un listado de pacientes que sale de una base de datos, podemos duplicar dicha información en la caché, ahorrándonos así la conexión a la base de datos, descargar los resultados y mostrarlos.</p>

<p>Este es un uso muy típico del caché, simplemente clona/duplica los datos, para que cuando queramos volver acceder, tengamos la información en microsegundos y no en segundos.</p>

<h3 id="el-caché-para-almacenar-resultados">El caché, para almacenar resultados</h3>

<p>El segundo uso del caché (que muchas veces está relacionado con el primero), es cuándo queremos ‘cachear’, el resultado de unas operaciones.</p>

<p>Por ejemplo, imagínate que tienes una página web en wordpress y tienes 10,000 visitas a la hora. Por defecto, wordpress atenderá cada visita, hará unas 200 consultas a la base de datos por cada visita (2 millones cada hora), procesará dichas consultas con PHP, montará el HTML/CSS y lo devolverá.</p>

<p>No obstante, si la web está cacheada, simplemente en la primera visita procesará todo (200 consultas) y luego, antes de mostrar la web, ‘la guardará/cacheará’. Así, el resto de visitas simplemente devolverá el HTML/CSS que se devolvió la primera vez, pasando de 2 millones de consultas a la hora a 200. Además, ganando muchísimo tiempo de procesamiento y no saturando el servidor.</p>

<h3 id="el-caché-en-el-navegador">El caché en el navegador</h3>

<p>Cada vez que accedemos a una página web se nos descargan bastantes elementos, imágenes, ficheros javascript y css (diseño), fuentes, iconos, etc.</p>

<p>El problema es que cada vez que hacemos click en un enlace de la web, se nos volvería a descargar todos los elementos, ya que sigue necesitando de esos ficheros para que la web se vea bonita.</p>

<p>Es por ello que, el navegador, sin decirnos nada, cachea todos los ficheros estáticos, para así cargar la página web más rápido y ahorrarnos ancho de banda (al no tener que descargarlos de nuevo).</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Qué es la caché, cómo funciona este sistema de software o hardware y por qué permite acceder a la información de forma más rápida.]]></summary></entry><entry><title type="html">¿Cómo instalar XAMPP en Windows?</title><link href="https://luisperis.com/tutorial/como-instalar-xampp-en-windows/" rel="alternate" type="text/html" title="¿Cómo instalar XAMPP en Windows?" /><published>2020-10-27T07:21:10+00:00</published><updated>2020-10-27T07:21:10+00:00</updated><id>https://luisperis.com/tutorial/como-instalar-xampp-en-windows</id><content type="html" xml:base="https://luisperis.com/tutorial/como-instalar-xampp-en-windows/"><![CDATA[<p>XAMPP es un conjunto de programas para montar nuestro servidor web, es totalmente gratuito y open-source.</p>

<p>Pero antes de instalar XAMPP en windows, es importante que tengamos en cuenta una serie de cosas, por ejemplo ¿Qué se instalará realmente con el paquete XAMPP? ¿Cuál es la web oficial y quién está detrás?</p>

<h2 id="qué-es-xampp-para-windows">¿Qué es XAMPP para Windows?</h2>

<p>Para empezar, tenemos que comprender que XAMPP es un acrónimo que quiere decir lo siguiente:</p>

<p><strong>X</strong><br />
La X de XAMPP significa “cualquier sistema operativo”, esto quiere decir que se puede instalar en cualquier ordenador, indiferentemente, de si es Windows, Mac o Linux.</p>

<p><strong>A</strong><br />
La A de XAMPP hace referencia al servidor web, con el paquete XAMPP el servidor web que se utiliza es Apache, uno totalmente gratuito.</p>

<p><strong>M</strong><br />
La M de XAMPP es importante indicar que no es de MySQL, desde hace varios años, XAMPP utiliza MariaDB como motor de bases de datos. Aunque es idéntico, si precisas utilizar MySQL y no MariaDB, es recomendable que no instales XAMPP.</p>

<p><strong>P</strong><br />
La primera P de XAMPP, hace referencia a PHP, el principal lenguaje de programación en el entorno del servidor (en cuanto a % de páginas web publicadas).</p>

<p><strong>P</strong><br />
La segunda P de XAMPP, hace referencia a Perl, un lenguaje de programación que usan algunos módulos de PHP, por lo que es recomendable instalarlo.</p>

<p>Ahora que comprendemos que se instalará (Apache, MariaDB, PHP y Perl), tenemos que entender que XAMPP es un conjunto de programas que primeros nos instala estos cuatro programas, y al terminar, nos instalará un quinto programa, este programa, nos permitirá con unos simples clicks, iniciar o cerrar la base de datos, y el servidor web, es como una capa de abstracción y es a lo que mucha gente llama “XAMPP”.</p>

<p><em>Nota: Realmente instalará subprogramas necesarios para el buen funcionamiento, según la propia página web, instalará todo esto: Apache 2.4.46, MariaDB 10.4.14, PHP 7.4.11, phpMyAdmin 5.0.3, OpenSSL 1.1.1, XAMPP Control Panel 3.2.4, Webalizer 2.23-04, Mercury Mail Transport System 4.63, FileZilla FTP Server 0.9.41, Tomcat 7.0.106 (with mod_proxy_ajp as connector), Strawberry Perl 5.32.0.1 Portable</em></p>

<h2 id="requisitos">Requisitos</h2>

<p>Realmente, el único requisito importante de XAMPP para windows, es que tengas 200Mb de espacio libre.</p>

<p>Ninguno de los programas que instala realmente llega a consumir mucha memoria RAM y de hecho, podría funcionar sin problemas en un ordenador de hace 20 años.</p>

<h2 id="xampp-en-entorno-de-pruebas">XAMPP en entorno de pruebas</h2>

<p>Es importante indicar, que normalmente los servidores web no suelen funcionar bajo windows y las pocas veces que funcionan bajo windows es con otro servidor web (IIS).</p>

<p>Esto no quiere decir que no se pueda utilizar, de hecho XAMPP en Windows es muy famoso y es de los más utilizados, pero siempre se suele utilizar para desarrollar una plataforma o una web, y cuando está terminada, se pasa a un hosting o a un servidor (que normalmente será linux).</p>

<h2 id="instalar-xampp">Instalar XAMPP</h2>

<p>Instalar XAMPP es realmente sencillo. Tan solo tienes que hacer los siguientes pasos:</p>

<h3 id="1-acceder-a-la-página-web">1. Acceder a la página web</h3>

<p>Lo primero que tenemos que hacer, es ir a la página web oficial del proyecto XAMPP, gracias a esto, nos ahorraremos descargar alguna otra versión modificada, que pueda traer publicidad o incluir algún virus.</p>

<p>La web oficial en castellano es: https://www.apachefriends.org/es/</p>

<h3 id="2-descargar-el-fichero-correcto">2. Descargar el fichero correcto</h3>

<p>Lo segundo que tienes que hacer, es darle al botón de descargar “XAMPP en windows” que encontrarás en la home. Esto hará directamente que se descargue un fichero .exe (el instalador).</p>

<p>Si queremos instalar alguna versión en especial, simplemente tendremos que ir al menú y presionar en “Descargar”, entonces se nos abrirá una página web con todas las versiones para descargar.</p>

<p>Una vez escogida la versión que queremos, simplemente le damos a “Descargar” y se descargará nuestro fichero .exe (el instalador).</p>

<h3 id="3-instalar-en-la-carpeta-correspondiente">3. Instalar en la carpeta correspondiente</h3>

<p>Una vez tenemos descargado nuestro fichero .exe, solamente tendremos que hacer doble click y seguir las instrucciones del instalador. Una vez haya terminado de instalarse todo, reiniciar el ordenador.</p>

<p>Así de sencillo, tendremos XAMPP instalado.</p>

<h2 id="inicializar-xampp">Inicializar XAMPP</h2>

<p>Una vez instalado XAMPP y reiniciado el ordenador tocará inicializarlo.</p>

<p>Esto es algo que tendremos que hacer cada vez que apaguemos el ordenador, o que queramos usar XAMPP.</p>

<p>Simplemente tendremos que abrir el programa XAMPP (el icono es naranja) y una vez abierto, tenemos que seleccionar “MySQL Database” y darle a “Start”, lo mismo tendremos que hacer con la opción “Apache web server”.</p>

<p>Al final nos tendría que salir algo similar a esta captura:</p>

<p><img src="/assets/img/2020/001-xampp-windows.png" alt="XAMPP windows" /></p>

<p>No es necesario activar el ProFTPD.</p>

<h2 id="hola-mundo-en-xampp">Hola mundo en XAMPP</h2>

<p>Una vez, ya lo tenemos todo activado, simplemente nos tendríamos que abrir nuestro navegador predeterminado y acceder a: http://127.0.0.1</p>

<p>Al acceder veremos una web que nos indica que XAMPP se ha instalado correctamente ¡Ya está todo instalado y funcionando!</p>

<p>Para modificar dicha web, solamente tendrás que ir a la ruta donde has instalado XAMPP, que por defecto es:<br />
http://xampp/htdocs/</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Tutorial paso a paso para instalar y configurar XAMPP en Windows, entendiendo qué instala realmente y cómo probar tu primer 'Hola mundo'.]]></summary></entry><entry><title type="html">¿Qué es el código legado?</title><link href="https://luisperis.com/que-es/codigo-legado/" rel="alternate" type="text/html" title="¿Qué es el código legado?" /><published>2020-10-26T08:08:42+00:00</published><updated>2020-10-26T08:08:42+00:00</updated><id>https://luisperis.com/que-es/que-es-codigo-legado</id><content type="html" xml:base="https://luisperis.com/que-es/codigo-legado/"><![CDATA[<p>Antes de seguir este artículo, tenemos que indicar que existen dos definiciones de “código legado”, una es la estricta y otra es “social”, ahora lo entenderemos.</p>

<h2 id="definición-estricta-de-código-legado">Definición estricta de código legado</h2>

<p>La definición que podríamos encontrar en la RAE o en cualquier libro universitario sería que, el código legado es todo aquel código que ha sido desarrollado por otra entidad y que ahora debemos de continuar nosotros.</p>

<p>Por ejemplo, una empresa (A), pide a otra empresa (B), que le desarrolle un código. Cuando la empresa (A) no está contenta con el trabajo de la empresa (B), busca una tercera empresa ©, a la que pasarle el proyecto. Por lo tanto, la empresa (C) estaría recibiendo un código legado.</p>

<h2 id="definición-underground-de-código-legado">Definición underground de código legado</h2>

<p>Aunque la lógica nos indica que la definición anterior es la correcta, en la comunidad de programadores, muchas veces se hace hincapié en otra definición, que incluso aparece reflejada en libros de expertos.</p>

<p><em>Nota: Como ya iremos viendo, los libros de externos en el área de la programación muchas veces difieren de lo que enseñan los libros universitarios. Yo soy partidario de estudiar ambos y quedarme con las ideas que más me gustan.</em></p>

<p>La definición underground sería más bien: El código legado es todo aquel código (recibido) mal programado, sin documentación o sin test unitarios.</p>

<p>Aunque, estrictamente, un código legado es un código recibido y no importa tanto la calidad del código, sí que es cierto que, siempre que se habla (yo incluído) de código legado, suele ser de una forma negativa, por ejemplo: “Pfff… tenemos un código legado que no hay por dónde cogerlo”.</p>

<h2 id="por-qué-se-hereda-un-código">¿Por qué se hereda un código?</h2>

<p>En la definición de código estricto ponemos un ejemplo de las razones por las que se obtiene un proyecto de código legado.</p>

<p>Pero, es muy interesante ahondar en todo lo que conlleva que una empresa decida quitarle el proyecto a un freelance o a otra empresa y te dé a ti (o a tu empresa). Principalmente, porque si la empresa trabaja bien, cumple plazos y presupuesto, ¿qué sentido tiene cambiar de proveedor?</p>

<p>Es por ello que, siempre que se cambia de proveedor y que se mueve un proyecto de una empresa a otra, es por descontentos en la calidad del software o en los tiempos de ejecución del proyecto. Es decir, de una forma o de otra, hay que preocuparse de la calidad del software.</p>

<p>Para que os hagáis una idea, yo, Luis Peris, tengo una consultora tecnológica, más del 50% de los clientes son clientes con código legado. Pues bien, en todos esos clientes, cero venían con el código documentado.</p>

<p>De ahí que la definición underground del código legado sea más peyorativa.</p>

<h2 id="qué-tener-en-cuenta">¿Qué tener en cuenta?</h2>

<p>Imagínate que tienes un nuevo cliente y viene con código legado, ¿qué tienes que tener en cuenta?</p>

<p>Yo, principalmente me suelo fijar en tres cosas:</p>

<h3 id="documentación">Documentación</h3>

<p>¿El código está documentado? Ojo, no hablo de comentarios en el código, sino de que esté documentado, por ejemplo, en formato wiki.</p>

<p>Si no es así, nosotros (mi empresa) no seguimos, le decimos al cliente el precio por documentar el proyecto, pero no seguimos viendo nada.</p>

<p>Si un proyecto no tiene documentación, no sabes por dónde te puede saltar.</p>

<h3 id="frameworks">Frameworks</h3>

<p>Otro punto a tener en cuenta es si está utilizando algún framework, ¿utiliza CodeIgniter? ¿Utiliza Laravel? ¿ReactJS? ¿VueJS?</p>

<p>Los frameworks, entre otras cosas, te obligan a organizar el código de una forma determinada. Justamente por si algún día, otra persona tiene que tocar el código.</p>

<p>En el caso de que no tenga framework, todo le saldrá más caro al cliente, por lo que es interesante recomendarle hacerlo bien desde cero.</p>

<h3 id="es-monolítico-o-microservicios">Es monolítico o microservicios</h3>

<p>Por último, aunque esto no es tan importante, siempre hay que ver si se trata de un proyecto monolítico o es un microservicio.</p>

<p>La diferencia es que un sistema monolítico (todo el proyecto en una carpeta) es más difícil de escalar y, si está mal programado o no documentado, será más costoso.</p>

<p>En cambio, en un sistema basado en microservicios todo está separado, es independiente, por lo que es más fácil de trabajar con el código.</p>

<h2 id="vale-la-pena-un-código-legado">¿Vale la pena un código legado?</h2>

<p>Si la empresa anterior no ha podido terminar el proyecto, entonces… ¿Vale la pena aceptar un código legado?</p>

<p>Esta es una pregunta que muchos programadores se hacen y, de hecho, algunos programadores directamente no aceptan código legado.</p>

<p>No obstante, personalmente, creo que es mucho más interesante darle siempre soluciones al cliente. Por ejemplo, ¿no está documentado? Se le indica: No te lo acepto si no pagas que me lo estudie y te lo documente.</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Qué es el código legado, sus dos definiciones (estricta y social) y por qué aparece en casi todos los proyectos de software.]]></summary></entry><entry><title type="html">Mi opinión sobre clouding.io</title><link href="https://luisperis.com/mi-opinion-sobre-clouding/" rel="alternate" type="text/html" title="Mi opinión sobre clouding.io" /><published>2020-01-27T10:59:05+00:00</published><updated>2020-01-27T10:59:05+00:00</updated><id>https://luisperis.com/mi-opinion-sobre-clouding</id><content type="html" xml:base="https://luisperis.com/mi-opinion-sobre-clouding/"><![CDATA[<p>No suelo hablar mucho sobre proveedores de hostings y… hoy no voy a empezar. Ya que vamos a ver un curioso proveedor, que no ofrece ni hostings, ni servicio de email, ni servidores físicos.</p>

<p>Es un proveedor español que única y exclusivamente ofrece una cosa: Instancias Cloud. Ni más, ni menos ¡Veamos que tiene de especial!</p>

<p><img src="/assets/img/2020/clouding.png" alt="" /></p>

<h2 id="mi-opinión-sobre-clouding">Mi opinión sobre clouding</h2>

<p>Tengo que reconocer que cuando conocí <a href="https://clouding.io">clouding.io</a> y vi que era un proveedor español, no me fié mucho, ya que los proveedores españoles suelen hacer dos cosas:
Montar unos racks en las oficinas (sin sistemas de seguridad físicos, ni protección contra cortes de energía, etc)
Contratar servidores en OVH, virtualizarlos y vender este espacio.</p>

<p>No obstante, tras investigar, me di cuenta de dos cosas que me calmaron bastante, lo primero es que es una empresa que lleva 6 años y lo segundo y más importante: Usan el datacenter de <a href="https://www.globalservices.bt.com/es/es/products/bt_compute">British Telecom</a> (lo publican en su web) con más de 2000 trabajadores.</p>

<p>Otra cosa que me dió confianza es que normalmente los proveedores te piden que pagues y ya si eso luego te defraudan, en cambio aquí, te dan 5€ de saldo para que pruebes sus servicios de forma gratuita. Además dejan pagar con paypal, por lo que si tienes algún problema, paypal tiene un seguro de reclamación.</p>

<h2 id="qué-no-ofrece-clouding">¿Qué no ofrece clouding?</h2>

<p>Esta es una de las cosas que más me ha gustado de clouding y es que apenas ofrece nada, y aunque esto pueda parecer algo malo, es todo lo contrario. En toda su plataforma utilizan la filosofía KISS (keep it simple stupid).</p>

<p>Es decir, en vez de ofrecer un millón de cosas para vender más, sólo ofrecen una cosa de pago que son las instancias. Esto hace que sean muy buenos a la hora de gestionar instancias, ya que no tienen que lidiar con problemas de estafas de dominios, problemas de mailings, servidores físicos, etc.</p>

<p>Una lista de las cosas que no ofrecen: Hosting, Dominios, Emails, servidores físicos.</p>

<h2 id="instancias-en-clouding">Instancias en clouding</h2>

<p>Ahora que ya tenemos una idea más clara de qué es clouding ¡Hablemos de las instancias!</p>

<p>Para empezar indicar que el precio base es muy similar a otros proveedores tipo OVH, es decir, la configuración más básica es desde 3€.</p>

<p><img src="/assets/img/2020/clouding-configuracion-basica.png" alt="clouding configuración básica" /></p>

<p>Como se puede observar en la imagen, tiene un configurador ultra sencillo que te permite indicar cuanto disco duro / CPU quieres y te va indicando el precio (hasta aquí todo normal).</p>

<p>Dónde se empieza a volver más interesante, por ejemplo es en el tema de backups, ya que de forma muy sencilla te permite realizar Backups desde 0,20€ al mes ¡Ojo! Pensemos que muchos proveedores no te permiten automatizar los backups de instancias. Por ejemplo, OVH te permite automatizar (mucho más caro) únicamente los VPS, pero las instancias cloud, a día de hoy no te permite automatizarlas.</p>

<p>Por otra parte, están “las imágenes”, es decir ¿Qué sistema operativo se nos instala? ¿Y que versión? Pues bien, en esto no tendremos ningún problema, ya que están los principales sistemas operativos con sus diferentes versiones. Incluso, nos permite instalar un OS con Docker o un OS con wordpress preparado. No obstante, lo que más me llama la atención es que tiene versiones de escritorio (para conectarnos remotamente), tanto de Linux como de Windows, puesto que ocupan más espacio, el precio mínimo para el linux será de 3,5€ y el de windows de 7,5€.</p>

<p>Una vez elegido el sistema operativo, así como las demás opciones, le podemos dar a crear ¡Y ya está! En menos de cinco minutos recibiremos un email como este:</p>

<p><img src="/assets/img/2020/clouding-email.png" alt="clouding email" /></p>

<h2 id="redimensionar-imagen-en-clouding">Redimensionar imagen en Clouding</h2>

<p>Una de las cosas que me ha enamorado de este proveedor es una tontería (ya que todos los proveedores deberían de tenerlo), pero apenas existen proveedores que lo tengan tan fácil, estoy hablando del redimensionamiento.</p>

<p>Imaginad, que vuestra web crece y necesitáis más disco duro (o RAM), pues bien, en clouding, simplemente arrastrando una barra y dándole a Enviar se cambiará automáticamente.</p>

<p>Esto que parece algo simple, muchos proveedores no lo tienen, por ejemplo, en el caso de las instancias de OVH, te obligan a realizar una backup de seguridad, crear una nueva instancia con el nuevo tamaño, borrar la anterior y redirigir la IP (si es IP failover) a la nueva instancia. Por otra parte, en el caso de grandes como Microsoft Azure, simplemente te dan a elegir entre diferentes configuraciones predefinidas, pero no te dejan elegir mucho disco duro y poca RAM (por ejemplo). En cambio, en clouding es súper sencillo.</p>

<p>Por ejemplo, aquí empiezo con una instancia de 5GB:
<img src="/assets/img/2020/clouding-5gb.png" alt="clouding 5gb" /></p>

<p>Simplemente la redimensiono:
<img src="/assets/img/2020/clouding-redimensionar.png" alt="clouding redimensionar" /></p>

<p>Y tras reiniciarse el servidor (lo hace automáticamente), vuelvo a comprobar el espacio y nos aparece que tenemos 10GB:
<img src="/assets/img/2020/clouding-10gb.png" alt="clouding 10gb" /></p>

<h2 id="sistema-autogestionado">Sistema autogestionado</h2>

<p>Otra cosa a tener en cuenta como punto positivo es que tienen un servicio de soporte, es decir, dejas la instancia lista a tu cliente y no paga absolutamente nada hasta que tienes un problema. Además los precios del soporte van desde los 24€.</p>

<p>Esto viene genial para meter los proyectos de tus clientes en estas instancias y que si tiene algún problema con la instancia, no te moleste con el mantenimiento o los problemas (lo delegas a ellos).</p>

<p>Ya que muchas veces, los programadores no nos sale rentable ofrecer este servicio, ya que ganamos mucho más, haciendo lo nuestro: programar.</p>

<h2 id="resumen">Resumen</h2>

<p>Es un proveedor muy limitado a las instancias (esto es bueno), que además nos da un soporte gratuito por teléfono y correo electrónico en castellano. Es una opción a tener en cuenta, tanto si estamos empezando, como si queremos tener nuestras instancias como la de nuestros clientes. ¿Qué os parece?</p>]]></content><author><name>Luis Peris</name></author><category term="Negocios Online" /><summary type="html"><![CDATA[No suelo hablar mucho sobre proveedores de hostings y… hoy no voy a empezar. Ya que vamos a ver un curioso proveedor, que no ofrece ni hostings, ni servicio de email, ni servidores físicos. Es un...]]></summary></entry><entry><title type="html">¿Cómo poner tu precio hora?</title><link href="https://luisperis.com/como-poner-tu-precio-hora/" rel="alternate" type="text/html" title="¿Cómo poner tu precio hora?" /><published>2019-04-22T13:54:59+00:00</published><updated>2019-04-22T13:54:59+00:00</updated><id>https://luisperis.com/como-poner-tu-precio-hora</id><content type="html" xml:base="https://luisperis.com/como-poner-tu-precio-hora/"><![CDATA[<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_34761541_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<table>
  <tbody>
    <tr>
      <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
      <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
      <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
    </tr>
  </tbody>
</table>

<hr />

<p>En esta ocasión hablaremos sobre un tema que puede interesar a muchísima gente y es que veremos cómo podemos poner nuestro precio hora.</p>

<p>Lógicamente, aunque el 99% de este artículo servirá para cualquier persona y cualquier sector, estará especialmente pensado y preparado para el sector IT.</p>

<h2 id="cómo-poner-tu-precio-hora">¿Cómo poner tu precio hora?</h2>

<p>Pues bien, lo primero que debemos de saber <strong>y entender</strong>, es que, nos guste o no, el precio hora no lo ponemos nosotros, lo pone el mercado.</p>

<p>Subrayo la parte de “entender”, pues hay muchas personas que están en contra del mercado y deciden poner un precio que quieren, siendo un poco “inconscientes”, ya que “el mercado”, no es un ente oscuro que tenemos que odiar, sino que en resumen, se podría resumir en un fórmula matemática que incluya tales cosas como la oferta-demanda, tu experiencia, tu experiencia demostrable (algo distinto), etc.</p>

<p>Todo esto, podríamos resumirlo en cuatro puntos principales que si los entendemos, podemos poner nuestro precio de mercado correcto (y poco a poco ir aumentándolo).</p>

<p>Los cuatro puntos son los siguientes:</p>

<ol>
  <li>Precio mercado de tus habilidades</li>
  <li>Experiencia que tengas en el sector</li>
  <li>Lo que ahorras al cliente</li>
  <li>Tu experiencia demostrable</li>
</ol>

<p>Así pues, analicemos estos cuatro puntos.</p>

<h2 id="precio-mercado-para-poner-nuestro-precio-hora">Precio mercado para poner nuestro precio hora</h2>

<p>Este es uno de los puntos más difíciles que existe, ya que confundimos mucho el precio mercado con el precio que vemos en algunas páginas.</p>

<p>Para empezar tenemos que entender que algunas personas conocidas como Joan Boluda (experto en Marketing) o yo mismo (experto en programación) tenemos un precio hora muy superior a nuestros conocimientos (entre 100 y 300 euros hora). Por lo que si eres programador y pones mi precio hora, nadie te contratará.</p>

<p>Esto más abajo lo analizaremos, pero se resume en que en nuestro sector existen muchos “piratas” y mucho “humo” y nosotros, mediante nuestros blogs/podcast hemos demostrado que no somos uno de ellos. Por lo que el cliente no paga por un programador, sino por la seguridad de que se realizará un buen trabajo.</p>

<p>Esto es importante que lo comprendamos, ya que mucha gente ve que es muy bueno en lo suyo y que otras personas o empresas están cobrando 150€ e igualan el precio. <strong>Esto es un error</strong>.</p>

<p>Otras veces lo que pasa es que se mira, por ejemplo, el precio de empresas (S.L.), y por ejemplo está a 75€/hora, mientras nosotros lo podemos ofrecer a 20€, pero de nuevo, ese no es el precio del mercado, ese es el precio de mercado para empresas, no para freelances.</p>

<p>Piensa que una S.L. da más seguridad, pero tiene más costes, otros impuestos, un administrativo, un comercial, etc. Además, algunas como mi consultora (Kaira 4 Startups S.L.) tenemos un seguro de un millón de euros “por si la cagamos”. Además que al no ser freelances, siempre alguien coge el teléfono, si uno enferma, otro realiza el trabajo, etc.</p>

<p>En resumen. Tenemos que ver el precio de mercado, pero de freelances que tengan nuestra marca y nuestra experiencia y que lógicamente tengan clientes (sino es que se han pasado).</p>

<p>Por ejemplo, para un “junior” el precio puede estar entre 8-10€ y para un senior a partir de 20€.</p>

<h2 id="experiencia-en-el-sector-marca-nuestro-precio-hora">Experiencia en el sector marca nuestro precio hora</h2>

<p>Esto es otro punto importante ¿Qué experiencia tenemos? ¿Cuántos años?</p>

<p>Pensemos que un programador Junior (que todos lo hemos sido) tarda mucho más en programador que un senior (hasta 5 veces en algunas ocasiones), además de hacer un peor código.</p>

<p>Por lo que si somos Juniors, no nos podemos pasar con el precio hora, ya que sino será más rentable contratar a un Senior.</p>

<p>Por otra parte, si somos Senior y tenemos un precio hora elevado, por lo menos, deberemos de indicar al cliente final en cuantas horas se realizará una tarea en concreto y cuantas horas invertiría un Junior (demostrando que eres más rentable, aunque el precio-hora sea más alto, que no caro).</p>

<h2 id="cuánto-se-ahorramos-al-cliente">¿Cuánto se ahorramos al cliente?</h2>

<p>Otro punto, altamente importante es lo que el cliente obtendrá por el desarrollo que le realicemos, si un desarrollo que le realizamos por 100€ (único pago) le ahorra 20,000€ al mes y no conoce a nadie que pueda realizar el desarrollo, algo está fallando.</p>

<p>No hablamos “de cobrar más” porque el cliente esté “desesperado”, hablamos de que si nadie más que conozca, sabe realizar dicha faena, es que quizás no lo hemos evaluado correctamente y quizás tengamos que cobrar más por la experiencia.</p>

<p>Por ejemplo, a nosotros, mucha veces nos contratan las empresas después de haber ido a muchas consultoras y que ninguna haya sido capaz de arreglar su problema. Lógicamente, afrontar un desarrollo tan complejo que otras consultoras ha dicho que no, es síntoma de que el precio hora para afrontarlo debe de ser un poco superior.</p>

<p>Pero no “por la desesperación” del cliente, sino porque suelen ser temas que requieren una alta experiencia en algo muy concreto “un framework para Java obsoleto”.</p>

<p>Lo mismo sucede cuando algo es “urgente”, nosotros tenemos 4 precios-hora diferentes y publicados en nuestra página web (<a href="https://kaira.es/bolsa-de-horas-de-programacion/">https://kaira.es/bolsa-de-horas-de-programacion/</a>), en eso siempre somos transparentes, lo único que cambia de un precio a otro es la urgencia del cliente, si quiere que empecemos a “tocar código” en 4 horas, le cobraremos 150€/hora, si puede esperarse una semana, entonces 47€/hora.</p>

<p>Es decir, en resumen, debemos de tener un precio-hora estandarizado, no obstante, dependiendo la dificultad de la faena o la urgencia, deberemos de cobrar otro precio-hora diferente.</p>

<h2 id="los-errores-al-elegir-un-precio-hora">Los errores al elegir un precio-hora</h2>

<p>Uno de los errores que solemos cometer al elegir un precio-hora es el de “compararnos” con gente que conocemos o gente que buscamos en Internet.</p>

<p>Ya hemos comentado antes que eso es un error, pero debemos de entenderlo bien: Si nadie te conoce, si no puedes demostrar “tu valor” realmente no puedes compararte con gente que sí que puede.</p>

<p>Y ojo, decir “mira mi código” o “mira lo que he hecho” no sirve de nada, todo el mundo dice eso, pero los clientes no saben de código (sino no te contratarían), por lo que si no puedes demostrar tus conocimientos, piensa en bajar el precio hora “al principio”.</p>

<p>Para demostrar tus conocimientos existen diferentes formas, una de ellas sería, por ejemplo la realización de un podcast o un blog (y no, no bastaría con 10-20 artículos). No obstante, la forma más sencilla y más eficaz es: Empezar a trabajar.</p>

<p>Y ahí está mi consejo, empieza con un precio-hora más bien bajo-justo para que te empiecen a contratar y poco a poco, ves subiendo el precio. Yo mismo lo hice así y en 3 años, multipliqué por 4 mi precio-hora.</p>

<h2 id="resumen">Resumen</h2>

<p>Es un error poner tu precio-hora basado en otras personas que tienen características diferentes a las tuyas, empieza poco a poco y así poco a poco podrás ir subiendo el precio hora.</p>

<p>Si tienes cualquier pregunta, no dudes en contactar conmigo, estaré encantado de ayudarte a poner tu precio-hora.</p>]]></content><author><name>Luis Peris</name></author><category term="Negocios Online" /><summary type="html"><![CDATA[En esta ocasión hablaremos sobre un tema que puede interesar a muchísima gente y es que veremos cómo podemos poner nuestro precio hora. Lógicamente, aunque el 99% de este artículo servirá para...]]></summary></entry><entry><title type="html">¿Contratar un programador o externalizar?</title><link href="https://luisperis.com/contratar-un-programador-o-externalizar/" rel="alternate" type="text/html" title="¿Contratar un programador o externalizar?" /><published>2019-03-24T17:04:49+00:00</published><updated>2019-03-24T17:04:49+00:00</updated><id>https://luisperis.com/contratar-un-programador-o-externalizar</id><content type="html" xml:base="https://luisperis.com/contratar-un-programador-o-externalizar/"><![CDATA[<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_33667692_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<table>
  <tbody>
    <tr>
      <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
      <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
      <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
    </tr>
  </tbody>
</table>

<hr />

<p>Cuando una empresa que su core business no es el programa, sino ofrecer un servicio, un producto o una experiencia precisa de los servicios de un programador, se realiza siempre una pregunta, ¿qué es mejor, contratar a un programador o externalizarlo?</p>

<p>En este artículo, veremos las ventajas y desventajas de cada caso.</p>

<h2 id="contratar-un-programador-o-externalizar">Contratar un programador o externalizar</h2>

<p>Antes de ver cada caso, hay algunas cosas que tenemos que tener en cuenta.</p>

<p>Si vuestro core business no es el software, y no sois expertos consultores tecnológicos ni programadores seniors, ¿cómo sabéis que la persona que vais a contratar será un buen programador?, ¿cómo sabréis que elige las tecnologías correctas?</p>

<p>Un gran porcentaje de nuestros clientes son empresas que, tras tener programadores en su plantila, se han ido y han contratado a otros y, al final, han tenido un software que es difícilmente ‘salvable’.</p>

<p>Y esto, no sucede porque no exista “un programador senior” que indique cómo hay que hacer las cosas. Sino, porque un programador senior, es justamente eso, ¡un programador con años de experiencia!, ¡un buen programador! Esto quiere decir que, un programador senior, <strong>no tiene que saber organizar un proyecto</strong>, simplemente que, si se le pide que desarrolle algo, lo hará con calidad.</p>

<p>Comprendida esta parte, veamos las ventajas y desventajas de contratar un programador o externalizarlo.</p>

<h2 id="contratar-a-un-programador">Contratar a un programador</h2>

<p>Contratar a un programador en una empresa que, de nuevo, su core business no es la programación, trae una serie de ventajas y desventajas, veámoslas:</p>

<h3 id="ventajas-de-contratar-a-un-programador">Ventajas de contratar a un programador</h3>

<p>Para empezar, el precio hora es menor que si se externaliza el programador a una consultora. Esto es porque, la consultora, lógicamente, tiene que tener un beneficio sobre el programador, darle una formación, etc.</p>

<p>Por otra parte, puedes negociar las condiciones directamente con el trabajador, que trabaje fines de semana si es necesario, realizar pagos fuera de la legalidad (en B, etc).</p>

<p>Por último, otra de las ventajas, es que es algo peligroso y, es que se pueden realizar cambios más rápidos. Comento que es peligroso, pues si se hace rápido, quiere decir que no se utilizará el GIT (sistema de control de versiones). En definitiva, sin una buena calidad, ni pasar a un servidor de ‘pre-producción’, ni lo más importante: documentar el código.</p>

<h3 id="desventajas-de-contratar-a-un-programador">Desventajas de contratar a un programador</h3>

<p>Una de las principales desventajas es la dificultad de retener talento. De media, en España un trabajador TIC, pasa en una empresa dos años como máximo, lo que quiere decir que hay una gran rotación.</p>

<p>Por otra parte, se junta otra gran desventaja y es que, si no somos expertos programadores, no podemos vigilar la calidad el código, ni si está documentado, ni si usa un software de control de versiones, ni el ratio de comentarios en código, etc.</p>

<p>Cuando las dos principales desventajas se juntan, lo que obtenemos es que el software desarrollado en los últimos cuatro años, en muchas ocasiones, hay que borrarlo y volver a empezar. Ya que, se tardaría menos que un nuevo programador “averigüe cómo funciona, sin documentación”, que volverlo a programar.</p>

<p>Otra gran desventaja, el tiempo que tarda un programador en resolver una duda de programación (en muchas ocasiones 2-3 días). Mientras que, en una consultora tecnológica, se puede resolver en horas, pues hay muchos otros programadores que pueden resolverla.</p>

<h2 id="externalizar-a-un-programador">Externalizar a un programador</h2>

<p>Antes de nada, ¿qué significa externalizar a un programador?</p>

<p>En pocas palabras, tener a un trabajador en las oficinas de una consultora tecnológica. Por la cual pagas un fijo mensual, y la consultora se ocupa de la formación, la seguridad social, todos los requerimientos de calidad, etc.</p>

<p>Existen bastantes consultoras tecnológicas que ofrecen este servicio, Altran, Everis, Accenture y, por supuesto, nosotros mismos (kaira.es).</p>

<h3 id="ventajas-de-externalizar-a-un-programador">Ventajas de externalizar a un programador</h3>

<p>En el caso de que se decida externalizar a una consultora, una de las principales ventajas será los estándares de calidad.</p>

<p>Podremos estar seguros de que el software será escalable, además de estar bien documentado, tanto en en software de control de versiones, como en en una wiki, para que cualquier otra empresa pueda seguir el desarrollo.</p>

<p>Por otra parte, cuando el programador no sepa còmo afrontar una tarea, no estará tres días buscando información, sino que podrá preguntar a otros programadores y resolver la duda en horas.</p>

<p>También hay que contar que todas las consultoras ofrecen formación continua a sus trabajadores, por lo que podremos asegurarnos de que el trabajador que tenemos, está bien formado.</p>

<p>Por último, <strong>una de las principales ventajas</strong>, es que un programador, en una consultora, es hasta 4 veces más productivo que en una empresa. Es decir, que aun teniéndolo a media jornada, puede sacar el doble de trabajo y con mejor calidad que un programador en una PYME.</p>

<p>Esto último, se debe a que en todas las consultoras se tienen metodologías de trabajo muy marcadas. Por lo que, al estar todo “estandarizado” y con controles de calidad, el programador “no tiene que inventar nada”, sino realizar el software que se le ha encomendado, en el marco que ya conoce.
¿Y si ya tengo programadores?</p>

<p>En el caso de que tengas programadores en tu empresa, y no tienes un control claro sobre lo que se está haciendo, sobre si la velocidad es la correcta o, más importante, sobre si existe una calidad mínima (una documentación), lo que en este caso te recomendaría es simple: contrata una auditoría.</p>

<p>Gracias a una auditoría, podrías poner claro sobre oscuro qué está sucediendo en tu empresa. Saber si todo va bien o si no va bien, saber cómo se puede solucionar, para así seguir hacia el camino correcto.</p>

<h2 id="resumen">Resumen</h2>

<p>Como siempre, la decisión de contratar a un programador o externalizarlo no es siempre fácil. No obstante, si tenéis cualquier duda sobre esta temática, o sobre la auditoría, en Kaira 4 Startups estamos encantados de ayudar a todo el mundo.</p>

<p>Si tenéis dudas sobre los precios aproximados, en el apartado de externalizar a un programador de nuestra página web (<a href="https://kaira.es/externalizar-programadores/">https://kaira.es/externalizar-programadores/</a>), están los precios publicados.</p>]]></content><author><name>Luis Peris</name></author><category term="Emprendedores" /><category term="Programación" /><summary type="html"><![CDATA[Cuando una empresa que su core business no es el programa, sino ofrecer un servicio, un producto o una experiencia precisa de los servicios de un programador, se realiza siempre una pregunta, ¿qué...]]></summary></entry><entry><title type="html">¿Qué es Tech 4 equity?</title><link href="https://luisperis.com/que-es-tech-4-equity/" rel="alternate" type="text/html" title="¿Qué es Tech 4 equity?" /><published>2019-03-15T10:46:33+00:00</published><updated>2019-03-15T10:46:33+00:00</updated><id>https://luisperis.com/que-es-tech-4-equity</id><content type="html" xml:base="https://luisperis.com/que-es-tech-4-equity/"><![CDATA[<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_33393636_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<table>
  <tbody>
    <tr>
      <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
      <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
      <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
    </tr>
  </tbody>
</table>

<hr />

<p>Imagínate que estás montando una Startup, un proyecto tecnológico disruptivo, te estás encargando de todo, los proveedores, los clientes, etc. No obstante notas que tienes una debilidad ¡No eres programador (o no tienes tiempo)!</p>

<p>Así que decides externalizar la parte de la tecnología/programación a una empresa, eso sí, en vez de pagarles en euros, le das un porcentaje de la empresa. Eso es Tech 4 equity.</p>

<h2 id="razones-para-hacer-tech-4-equity">Razones para hacer Tech 4 Equity</h2>

<p>Pero ¿Qué sentido tiene hacer Tech 4 equity? ¿A quién le puede interesar? ¿Realmente se hace mucho? ¿Qué perfil de empresa debemos de buscar?</p>

<p>Bien, vamos poco a poco, debemos de comprender bien, cuándo hacerlo, cómo hacerlo y con quién hacerlo, así pues, vamos a ver qué sentido tiene hacer esto, tanto desde el punto de vista del emprendedor, como de la empresa.</p>

<h3 id="qué-ganas-como-emprendedor-haciendo-tech-4-equity">¿Qué ganas como emprendedor haciendo Tech 4 equity?</h3>

<p>El primer beneficio parece estar claro, si damos un porcentaje a cambio de un desarrollo, simplemente nos ahorramos el tener que pagar por el desarrollo, es decir, el beneficio es un gran ahorro de, seguramente, decenas de miles de euros.</p>

<p>No obstante, hay que entender algo: A no ser que cierres un acuerdo con una empresa no especializada en tech 4 equity y que les puedas engañar (saldrías perdiendo también), un tech 4 equity <strong>es lo mismo que un inversor</strong>, tanto para lo bueno como para lo malo.</p>

<p>Es decir, ninguna empresa te va a financiar un software, de a lo mejor 15.000€ o 20.000€ y olvidarse de ti, no, querrán informes mensuales, ayudarte a conseguir los objetivos, etc.</p>

<p>Es decir: Si bien es cierto que a corto plazo nos puede interesar, si no vamos en serio con el proyecto, puede ser contraproducente, incluso nos pueden denunciar si no cumplimos lo pactado por contrato.</p>

<p>Por otra parte, si vas en serio con el proyecto, tiene tres beneficios principalmente.</p>

<ol>
  <li>Cashflow: Tienes una mayor tesorería para invertir en marketing y hacer crecer el proyecto.</li>
  <li>Inversores: El tener un acuerdo tech 4 equity con una empresa (SL), te permite conseguir inversión mucho más fácil. Incluso, la propia empresa te puede presentar inversores.</li>
  <li>Tranquilidad: Olvídate totalmente del software, céntrate en tu negocio.</li>
</ol>

<h3 id="es-interesante-ofrecerlo-a-las-empresas">¿Es interesante ofrecerlo a las empresas?</h3>

<p>Aunque la primera respuesta pueda ser un “claro que sí”, hay que tener mucho cuidado, el coste de empresa de un programador senior es mínimo de 4.000€/mes (ojo, que no quiere decir que vaya a cobrar eso, hay que pagar IRPF, SS, etc!).</p>

<p>Si para hacer un proyecto necesitamos un programador durante 3 meses y luego 20 horas al mes de mejoras, al cabo de un año habremos pagado 16.500€ sólo para cubrir costes por un único proyecto.</p>

<p>Y recordemos que el 90% de las startups quiebran, entonces ¿A quién le puede interesar? Pues únicamente a una consultora tecnológica especializada en Startups, que comprendan el riesgo y la forma de moverse.</p>

<p>Las condiciones para aceptar tech 4 equity
Cada empresa tiene condiciones diferentes, por ejemplo, en Kaira 4 Startups S.L. las empresas que quieran realizar tech 4 equity tienen que cumplir 3 de 4 condiciones, las condiciones son las siguientes:</p>

<ul>
  <li>Empresa constituida (como SL)</li>
  <li>Métricas</li>
  <li>Inversión seed ya adquirida</li>
  <li>CEO a full-time</li>
</ul>

<p>Estas condiciones son las típicas y normales que podemos encontrar en cualquier fondo de inversión o en cualquier programa de aceleración de empresas. Y son bastante comprensibles, ya que son estos actores los que corren el riesgo económico.</p>

<h2 id="y-si-mi-proyecto-es-nuevo">¿Y si mi proyecto es nuevo?</h2>

<p>El problema de los proyectos nuevos no es tanto que no tenga una sociedad constituida sino que muchas veces el emprendedor no tiene ni experiencia emprendiendo, ni dinero (y de ahí el tech 4 equity), ni métricas, incluso, muchas veces, no quieren ni dejar su trabajo.</p>

<p>En estos casos, mi recomendación es buscar a un socio en las mismas condiciones, para poco a poco, ir aprendiendo juntos.</p>

<h2 id="los-límites-del-tech-4-equity">Los límites del Tech 4 Equity</h2>

<p>Con un coste mínimo por programado de 4000€/mes, lógicamente las empresas que realizan Tech 4 Equity no van a estar dando servicio gratuito toda la vida.</p>

<p>Por ello hay que poner un límite de tiempo, horas o trabajo realizado para el tech 4 equity, así como indicar las condiciones que se tendrá una vez se supere.</p>

<p>Si por ejemplo, una empresa vale 1 millón de euros, y ofrecen el 3% por Tech 4 Equity, la empresa podría indicar que realizará el desarrollo hasta un máximo de 30,000€, todo lo demás, se puede negociar “más barato”, etc.</p>

<p>Si la empresa con la que hablas, no indica esto ¡Desconfía de la empresa! Ya que tarde o temprano acabarán saliendo problemas cuando no le empiece a salir los números y pierdan dinero.</p>

<h2 id="resumen">Resumen</h2>

<p>Como ves, es todo un mundo las empresas que realizan Tech 4 Equity, tenemos que tener mucho cuidado que empresa elegimos, ya que una mala empresa, además de un mal producto, puede generarnos más problemas que beneficios.</p>

<p>Si tienes cualquier pregunta, no dudes en escribirme y estaré encantado de ayudarte y recomendarte empresas que realizan este servicio, basado en tus características.</p>]]></content><author><name>Luis Peris</name></author><category term="Emprendedores" /><category term="Negocios Online" /><summary type="html"><![CDATA[Imagínate que estás montando una Startup, un proyecto tecnológico disruptivo, te estás encargando de todo, los proveedores, los clientes, etc. No obstante notas que tienes una debilidad ¡No eres...]]></summary></entry><entry><title type="html">Plataformas web: PHP vs NodeJS</title><link href="https://luisperis.com/plataformas-web-php-vs-nodejs/" rel="alternate" type="text/html" title="Plataformas web: PHP vs NodeJS" /><published>2019-03-10T07:00:42+00:00</published><updated>2019-03-10T07:00:42+00:00</updated><id>https://luisperis.com/plataformas-web-php-vs-nodejs</id><content type="html" xml:base="https://luisperis.com/plataformas-web-php-vs-nodejs/"><![CDATA[<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_33340901_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<table>
  <tbody>
    <tr>
      <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
      <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
      <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
    </tr>
  </tbody>
</table>

<hr />

<p>En el mundo de la programación (como en otros sectores) hay muchos gurús, gente que sin vacilar es capaz de decir que PHP es mejor siempre que NodeJS o al revés, que NodeJS es mejor que PHP.</p>

<p>No obstante, la realidad es un poco más complicada, ningún lenguaje de programación es mejor que otro ¡Ninguno! Todo dependerá de mil cosas, el uso que le queramos dar, si va a tener actualizaciones y si es así, si son anuales o son mensuales, las visitas que tengamos, etc.</p>

<p>Por ello, antes de empezar este artículo dónde podremos comparar PHP y NodeJS quiero dejar claro que “no hay un vencedor”, veremos y entenderemos cada lenguaje, veremos las ventajas que tiene un lenguaje frente a otro y veremos los inconvenientes que tienen.</p>

<p>También veremos dichos lenguajes desde el lado “económico”, que un lenguaje sea más rápido que otro, no quiere decir que haya que elegirlo si nos cuesta diez veces más mantenerlo, no necesitamos tanta velocidad y menos si la empresa no puede asumir un desarrollo (de por ejemplo) 200.000€.</p>

<p>Así pues ¡Empecemos!</p>

<h2 id="php-en-el-desarrollo-web">PHP en el desarrollo web</h2>

<p>Lo primero que debemos de entender es ¿Qué es PHP? ¿Cómo funciona PHP?</p>

<p>Pues bien, PHP es un lenguaje de programación interpretado, es decir, “cada vez que se ejecuta se compila”, esto hace que sea un poco más lento que otros lenguajes (como C++).</p>

<p>No obstante, PHP es es único lenguaje en el TOP 15 creado desde sus inicios para el desarrollo de páginas web y de plataformas webs, esto es importante, esto quiere decir, que tiene muchas funciones nativas que nos facilitan realizar ciertas acciones, como mandar un email, hacer peticiones a una URL con una sola línea de código, etc.</p>

<p>Por otra parte, es el único lenguaje de programación en el TOP 15 (de los más usados, sin contar con C puro) que no es orientado a objeto, esto es lo que ha hecho principalmente que mucha gente “odie PHP”, ya que sin estar orientado a objetos, el código se encuentra “más desordenado”. Como solución actual, se usan frameworks (CodeIgniter, Laravel, etc), así como frameworks visuales (WordPress, Drupal, etc), todos ellos desarrollados en PHP.</p>

<p>Sobre dónde alojar un desarrollo en PHP, es sencillo y es que el 99% de los hostings tienen soporte para proyectos en PHP (a diferencia de otros lenguajes, que es mucho más complicado).</p>

<p>Por último, tenemos que comprender, que PHP es un lenguaje de programación, no es un framework, no es un entorno de trabajo (como .NET), lo que quiere decir que “per se”, una web no te funcionará cuando accedas con el navegador, ya que, de alguna forma, tienes que “enlazar el dominio a la carpeta dónde se encuentra el proyecto escrito en PHP”, a esto se le llama “servidor web” y para PHP normalmente se suele utilizar servidor web llamado Apache.</p>

<p>Ahora que ya hemos visto PHP, veamos qué es NodeJS.</p>

<h2 id="nodejs-en-el-desarrollo-web">NodeJS en el desarrollo web</h2>

<p>Lo primero que tenemos que entender de NodeJS, es que NodeJS no es un lenguaje de programación, NodeJS se parece más a un “framework de trabajo” (que no de programación).</p>

<p>El lenguaje de programación de NodeJS es JavaScript (ni más ni menos), entonces ¿Por qué se llama NodeJS? ¿En qué se diferencia de JavaScript?</p>

<p>Pues bien, si recordamos lo que hemos leído antes, para desarrollar un proyecto web en PHP, necesitábamos como mínimo dos aplicaciones, por una parte teníamos PHP (que ejecutaba nuestro programa escrito en el lenguaje de programación PHP) y por otra parte teníamos el servidor web (apache) que redirige las peticiones de nuestro dominio al PHP.</p>

<p>Pues bien, NodeJS “lo incorpora todo”, con un pequeño detalles: NodeJS no está especializado para el desarrollo web, el servidor web que puedes programar en NodeJS te puede servir tanto para páginas web, como para cualquier otra cosa, al igual que el lenguaje de programación (JavaScript), aunque puedes hacer todo, no está pensando “nativamente” para hacer desarrollos webs. Es por ello, que cuando se usa NodeJS, se suelen acabar realizando APIs y toda “la lógica” se hace en el navegador (parte del cliente). Es decir: NodeJS no está creado para el desarrollo web (aunque sí tiene soporte).</p>

<p>Que NodeJS sea en si mismo un servidor web, dificulta mucho que los hostings tal y como los conocemos, nos permitan de una forma fácil y sencilla subir nuestro código, ya que en NodeJS a diferencia de PHP, “no subiríamos el código”, sino que se subiría el código más el servidor web que luego tendríamos que “arrancar”, en resumen, casi no existen hostings que te permitan subir tu página web realizada en NodeJS.</p>

<p>Por último indicar, que a diferencia de PHP, NodeJS, al utilizar JavaScript, sí que está orientado a objetos desde el inicio.</p>

<h2 id="php-vs-nodejs">PHP vs NodeJS</h2>

<p>Bien, ya hemos visto las características, tanto de PHP como de NodeJS, pero ahora bien, a la hora de un desarrollo web ¿Cuál es mejor?</p>

<p>Para resolver esta duda, veamos las ventajas y desventajas de cada uno de ellos.</p>

<h3 id="ventajas-de-usar-php-frente-a-nodejs">Ventajas de usar PHP frente a NodeJS</h3>

<ul>
  <li>Entre las principales ventajas de utilizar PHP frente a NodeJS nos encontraríamos:</li>
  <li>El coste/hora de un programador es más barato.</li>
  <li>El desarrollo es más rápido en PHP.</li>
  <li>El 99% de los hostings tienen soporte para PHP.</li>
</ul>

<h3 id="ventajas-de-usar-nodejs-frente-a-php">Ventajas de usar NodeJS frente a PHP</h3>

<p>Por otra parte, si vemos la ventaja de utilizar NodeJS nos encontramos principalmente con dos:</p>

<ul>
  <li>¡Velocidad! NodeJS soporta hasta tres veces más peticiones que PHP.</li>
  <li>Un solo lenguaje de programación, en PHP necesitaremos programar en PHP en el backend y JavaScript en el frontend (tendremos que aprender dos lenguajes de programación), en cambio con NodeJS, tanto en el frontend como en el backend sólo necesitaremos programar en un lenguaje de programación.</li>
</ul>

<h3 id="php-vs-nodejs-desde-la-empresa">PHP vs NodeJS desde la empresa</h3>

<p>Muchos programadores piensan que NodeJS es mejor para todo, es más rápido, sólo hay que usar un lenguaje de programación y además nos ahorramos el servidor web (apache), no obstante, si nos paramos a pensar desde el lado de la empresa, veremos que quizás PHP es mejor solución para “depende qué proyectos”.</p>

<p>Por ejemplo ¿La empresa tiene a alguien que sepa manejar servidores? ¿O lo tiene que subcontratar? Pensemos que la mayoría de las instalaciones de NodeJS van sobre un servidor virtualizado, por lo que hay que aplicar costes de mantenimiento, seguridad, etc. Costes que con un hosting nos ahorraríamos.</p>

<p>Por otra parte, el precio hora de un desarrollador de NodeJS es más caro que el de un programador PHP, sin contar que PHP tiene más frameworks de desarrollo “maduros”, donde está el código bien organizado y estandarizado, para que programadores que nunca antes han tocado un proyecto en concreto puedan empezar a desarrollar a las pocas horas.</p>

<h2 id="resumen">Resumen</h2>

<p>En definitiva, como podemos observar, ningún lenguaje de programación “es mejor” que otro, todos depende, para qué lo vamos a utilizar, no es lo mismo que hagamos un desarrollo propio y nosotros lo vayamos a mantener, que lo hagamos para una empresa.</p>]]></content><author><name>Luis Peris</name></author><category term="Podcast" /><category term="Programación" /><category term="Rendimiento y Aplicaciones" /><summary type="html"><![CDATA[En el mundo de la programación (como en otros sectores) hay muchos gurús, gente que sin vacilar es capaz de decir que PHP es mejor siempre que NodeJS o al revés, que NodeJS es mejor que PHP. No...]]></summary></entry><entry><title type="html">Rastrear a cualquier persona físicamente</title><link href="https://luisperis.com/rastrear-a-cualquier-persona-fisicamente/" rel="alternate" type="text/html" title="Rastrear a cualquier persona físicamente" /><published>2018-12-12T11:29:39+00:00</published><updated>2018-12-12T11:29:39+00:00</updated><id>https://luisperis.com/rastrear-a-cualquier-persona-fisicamente</id><content type="html" xml:base="https://luisperis.com/rastrear-a-cualquier-persona-fisicamente/"><![CDATA[<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_33520897_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<table>
  <tbody>
    <tr>
      <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
      <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
      <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
    </tr>
  </tbody>
</table>

<hr />

<p>Imagínate que entras en un local por primera vez, un local de una franquicia que nunca antes habías visitado (ergo no has compartido datos ni visitado la web). Y aún así, al entrar, pueden saber la dirección de tu casa, en qué hoteles has estado, etc.</p>

<p>Pues bien, en este artículo voy a intentar explicar cómo todo esto es posible, es importante también indicar que todos estos conocimientos han salido de una investigación que hemos realizado en la consultora tecnológica en la que trabajo (<a href="https://kaira.es">kaira.es</a> – Kaira 4 Startups S.L.).</p>

<h2 id="rastrear-a-cualquier-persona-físicamente">Rastrear a cualquier persona físicamente</h2>

<p>Todo esto vino por una pequeña investigación .Nosotros sabíamos que muchas empresas utilizan el bluetooth para identificar a los visitantes que entran en su local, no obstante, para esto el bluetooth del móvil debería de estar encendido (poca gente lo tiene).</p>

<p>Nosotros teníamos otro punto de vista, sabíamos que la mayoría de gente deja el «modo wifi» conectado, para cuando esté en casa que se conecte automáticamente. Además, sabíamos que los móviles hacen peticiones a los routers cada x segundos, para saber si «existe alguna red conocida».</p>

<p>Con todo esto, nos hicimos una pregunta muy simple ¿es posible detectar ese chip wifi con un identificador único (la MAC address)? Si esto era «posible y estable», habríamos conseguido varias cosas, entre otras:</p>

<h2 id="saber-cuántas-veces-regresa-un-cliente">Saber cuántas veces regresa un cliente.</h2>

<p>Saber cuánto tiempo (exacto) pasa un cliente en la tienda de media.
Por ‘la potencia de la señal’, saber si existe relación entre el tiempo que pasa y el ticket de compra.
Poder rastrear por dentro del local (con varias señales), cómo se mueve el usuario y hacer algoritmos con la compra final.</p>

<p>Todo esto lo conseguimos, no obstante, de algo bastante más importante.</p>

<h2 id="a-qué-datos-podemos-acceder">¿A qué datos podemos acceder?</h2>

<p>El problema que nos encontramos, es que no únicamente podíamos acceder a la MAC WIFI (identificador único) de todos los móviles que entran en un local, aunque no estuvieran conectados a ninguna red wifi.</p>

<p>Sino que, podíamos acceder a la información de a qué redes wifi (MAC y nombre) se habían conectado, es decir, que si alguna persona se había conectado a «Hoteles Barceló Madrid Central» o, como en el caso real de un trabajador, «Spa Arenas Valencia», podríamos saber hasta qué Spa había ido la persona.</p>

<p>Esto que, en principio parecería una tontería, y que únicamente nos podría servir para sacar más información de nuestros amigos, esconde un gran peligro oculto, sobre todo, si pensamos en Google.</p>

<h2 id="el-problema-de-google">El problema de Google</h2>

<p>Para entender los datos que tiene Google y por qué «es un problema», os voy a lanzar una pregunta, o una observación. Si ahora accedemos con nuestro ordenador a google maps o a wallapop, o a cualquier página web que nos pida geolocalización, nos encontrará en el punto exacto donde estamos. Ojo, los ordenadores no tiene chip GPS ¿cómo pueden saber dónde estamos?</p>

<p>Pues bien, tras la incorporación del método geolocation en HTML5, se creó una base de datos (poseedora de google entre otras), con todas las direcciones MAC de los routers, así con la dirección GPS exacta. Por lo que, cuando estamos en un portátil y accedemos a una web, lo que hace el navegador es «mandar todas las MAC/nombre de las redes wifi» al servidor de Google, y este nos devuelve nuestro punto GPS.</p>

<p>Ahora que sabemos todo esto, podemos comprender el peligro, si al entrar en un local, pueden saber la MAC (y nombre de la red wifi) de nuestra casa, y la comparan con una base de datos, podrán saber exactamente dónde vivimos.</p>

<p>No únicamente eso, sino que Google ha reconocido que comparte datos de los usuarios con otros players, entre otros con «mastercard», que está presente en muchos comercios.</p>

<h2 id="resumen">RESUMEN</h2>

<p>Como vemos, esto sólo ha sido una investigación realizada en <a href="https://kaira.es">Kaira 4 Startups</a>, para poder ofrecer datos estadísticos a nuestros clientes. No obstante, nos hemos encontrado con algo un poco preocupante.</p>

<p>También es importante indicar que, según la legislación española, sería ilegal guardar cualquier dato que «identifique» a la persona. Por lo que, dentro de la legalidad, sólo serviría para temas de Marketing y estadísticas.</p>]]></content><author><name>Luis Peris</name></author><category term="Otros temas" /><summary type="html"><![CDATA[Imagínate que entras en un local por primera vez, un local de una franquicia que nunca antes habías visitado (ergo no has compartido datos ni visitado la web). Y aún así, al entrar, pueden saber...]]></summary></entry><entry><title type="html">Curso de JavaScript básico</title><link href="https://luisperis.com/curso/javascript-basico/" rel="alternate" type="text/html" title="Curso de JavaScript básico" /><published>2018-08-24T08:29:23+00:00</published><updated>2018-08-24T08:29:23+00:00</updated><id>https://luisperis.com/curso/curso-javascript-basico</id><content type="html" xml:base="https://luisperis.com/curso/javascript-basico/"><![CDATA[<p>¡Bienvenido al curso de Javascript!</p>

<p>Como de seguro sabrás, JavaScript es uno de los lenguajes de programación que más auge están teniendo, es por ello, que se vuelve fundamental comprender las bases de JavaScript, ya sea, para nuestros desarrollos o para trabajar en una empresa.</p>

<h2 id="curso-de-javascript">Curso de JavaScript</h2>

<p>Pero ¿Por qué se está poniendo de moda JavaScript realmente? ¿Por qué hace falta un curso de JavaScript?</p>

<p>Pues bien, si lo pensamos, la programación es un mundo enorme donde existe un lenguaje de programación, prácticamente para cada cosa, para desarrollar APPs para Android (usamos Java), para iOS (usamos entonces Swift), para desarrollar plataformas web, usamos PHP en la parte del servidor, etc.</p>

<p>Es decir, si queremos saber programar diferentes cosas, debemos de aprender diferentes lenguajes… ¡Hasta que JavaScript se imponga!</p>

<h2 id="javascript-como-lenguaje-único">JavaScript como lenguaje único</h2>

<p>JavaScript es un lenguaje de programación open-source, además de gratuito, además, aunque es cierto que se pensó inicialmente como un lenguaje de programación en la parte del cliente (navegador), se creó desde el principio como un lenguaje de programación de ámbito general (a diferencia de PHP por ejemplo).</p>

<p>Con todo esto y puesto que es uno de los pocos lenguajes de programación de «ámbito general» que no tiene una empresa privada detrás (a diferencia de Java -&gt; Oracle, Swift -&gt; Apple, C# -&gt; Microsoft, etc.), se está consiguiendo que con JavaScript se pueda hacer todo, por ejemplo:</p>

<ul>
  <li>Desarrollo web en la parte cliente (navegador)</li>
  <li>Desarrollo web en la parte servidor (nodeJS)</li>
  <li>Desarrollo de APPs para todas las marcas de forma no nativa (phoneGap)</li>
  <li>Desarrollo de APPs para todas las marcas de forma nativa (React Native)</li>
  <li>Desarrollo de videojuegos para XBOX, PS4, etc. (Unity 3D)</li>
  <li>Desarrollo de APPs para TV (FirefoxOS, LG, etc.)</li>
  <li>Mucho, mucho más.</li>
</ul>

<h2 id="qué-aprenderemos-en-este-curso">¿Qué aprenderemos en este curso?</h2>

<p>Este curso, no es un curso pensado «para aprender hacer webs», este es un curso básico pero profesional donde aprenderás a programar JavaScript para cualquier fin, ya sea para navegador o sea más adelante para desarrollar APPs.</p>

<p>Por ello, además de ver todo el temario básico (Variables, funciones, etc.), también veremos tanto cómo crear objetos, como los famosos prototipados de objetos ¡Para que no se nos olvide nada!</p>

<p>¿Te atreves a realizar este curso?</p>

<h2 id="1--ejecutar-javascript-por-primera-vez">1.  Ejecutar JavaScript por primera vez</h2>

<p>¡Bienvenido a esta primera clase del curso de JavaScript! Si has llegado hasta aquí es porque estás decidido a aprender a programar JavaScript, así que te doy mi enhorabuena por esa decisión.</p>

<p>Pero ¿Qué podemos ver en una primera clase?</p>

<p>Pues bien, antes que nada ¡No te preocupes! En esta primera clase empezaremos creando una pequeña base sólida y resolviendo todas las dudas que puedas tener entorno a este lenguaje de programación. Veremos porqué existe JavaScript, su historia y lo más importante «cómo se ejecuta y porqué se ejecuta como se ejecuta».</p>

<p>En esta primera clase también veremos cómo podemos ejecutar nuestra primera línea de código ¡Un alert! Es decir, una ventana emergente que nos indique un «Hola mundo».</p>

<p>No obstante, veremos que esto (que se enseña en todos los cursos) no es profesional, así que acto seguido aprenderemos cómo hacer las pruebas de una forma profesional ¡Con la consola de JS que tienen todos los navegadores!</p>

<p>Así que ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=bWbBMepZs5s</p>

<p>¡Ya está la primera clase realizada! Ha sido fácil ¿No?</p>

<p>Perfecto, ya tenemos la base para empezar fuerte en la siguiente clase, así que ¡Vamos a por ella!</p>

<h2 id="2-variables-en-javascript">2. Variables en JavaScript</h2>

<p>En esta segunda clase del curso de JavaScript analizaremos una de las cosas más importante de los lenguajes de programación ¡Las variables!</p>

<p>Para ello haremos una comparación con las variables de PHP, por lo que si ya has visto el curso de PHP o conocer algún otro lenguaje de programación ¡Te será mucho más fácil! Sino, no te preocupes, por que es algo realmente fácil de comprender.</p>

<p>Para entender qué son las variables tenemos que pensar en las matemáticas ¿Recuerdas cuando había que encontrar el valor de x? ¡Pues x era una variable!</p>

<p>Es decir, una variable no es más que un elemento que tiene un valor y que dicho valor puede variar, tiene sentido ¿No? Por ejemplo, podemos tener la variable «contador» que primero vale 1, luego, 2, etc.</p>

<p>No obstante, en este curso queremos ser profesionales, así que no usaremos los conocidos «alerts» para hacer las pruebas, sino que nos tendremos que acostumbrar a utilizar la consola del navegador, por ello veremos también el objeto console con el método log, ya veréis que es súper fácil de utilizar.</p>

<p>Lógicamente, no veremos únicamente qué son las variables en javascript, también veremos ¡Los tipos de variables! Es decir, veremos cómo se crea un String (cadena de texto), un número entero, un número con coma, un binario, etc.</p>

<p>¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=7Cc_XfQgEUU</p>

<p>¡Perfecto! Ahora que ya hemos visto esta clase, ya hemos visto, no sólo qué son y cómo se crean las variables, sino también cómo podemos concatenar variables (juntar) y cómo podemos realizar operaciones matemáticas.</p>

<p>Súper fácil todo ¿Verdad?</p>

<h2 id="3-if-condicional-en-javascript">3. If condicional en JavaScript</h2>

<p>En esta tercera clase del curso de JavaScript veremos cómo podemos ejecutar un código dependiendo una condición, por ejemplo «ejecuta este código si el usuario está registrado», de hecho, los condicionales (if) son la base de la programación en cualquier lenguaje de programación.</p>

<p>No obstante, si entendemos cómo funcionan ¡Es extremadamente fácil programarlos!</p>

<p>Podríamos indicar que todo esto está basado en la tabla de la verdad y en las puertas lógicas de los circuitos integrados (que sería verdad), pero podemos definirlo en saber cuáles son las condicionales que podemos usar, que son las mismas que en la vida real:</p>

<ul>
  <li>Si esta variable es igual a…</li>
  <li>Si esta variable es diferente a…</li>
  <li>Si esta variable es mayor que…</li>
  <li>Si esta variable es mayor o igual que…</li>
  <li>Si esta variable es menor que..</li>
  <li>Etc.</li>
</ul>

<p>Como vemos, no parece nada difícil de comprender y es que si entendemos la base, veremos que es extremadamente fácil utilizar los condicionales.</p>

<p>También analizaremos que podemos ejecutar dos códigos dependiendo la condición, es decir, podremos decirle a JavaScript «ejecútame este código si esta condición es cierta y sino, ejecútame este otro código».</p>

<p>Con toda esta explicación, veamos la clase para ponerle forma al código:</p>

<p>Video: https://www.youtube.com/watch?v=nvYKv8d32V8</p>

<p>¡Genial! Ahora que hemos visto la clase, hemos comprendido perfectamente el funcionamiento del if/else y lo que es más importante, hemos comprendido «el potencial que realmente tiene».</p>

<p>Además de las condiciones normales, en esta clase también hemos visto cómo podemos hacer condiciones más complejas, con el AND y el OR, por ejemplo:</p>

<ul>
  <li>Ejecuta este código si estás dos condiciones son ciertas</li>
  <li>Ejecuta este código si alguna de estas dos condiciones son ciertas.</li>
</ul>

<p>Gracias a esta clase y a las siguientes, ya conseguiremos una buena base para empezar a crear nuestros primeros programas basados en JavaScript.</p>

<h2 id="4-switch-en-javascript">4. Switch en JavaScript</h2>

<p>En la clase anterior hemos visto cómo podemos realizar que un código se ejecuta o no basado en una condición (el if), no obstante ¿Qué pasa si tenemos que hacer muchos Ifs? ¿Existe alguna forma más ordenada de hacerlo?</p>

<p>Pues bien, aquí es donde aparece el switch, que tenemos que entender la palabra como si fuera un enrutador (sé que la traducción no es la correcta), es decir, la función switch recibe un valor y dependiendo cual sea el valor, ejecuta un código, u otro, u otro, u otro… Sin límites.</p>

<p>La idea es que dentro de switch hay una muchos «case», que sería en plan «En el caso de que el valor sea este, ejecuta esto», así podríamos tener una especie de muchos Ifs en una sola funciona y mucho más ordenado.</p>

<p>Como explicarlo en un artículo es un poquito complicado ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=NwPtI0SjRaQ</p>

<p>¡Perfecto! Ahora que ya hemos visto la clase, podemos comprender mucho mejor a qué me refería con lo de reducir muchos IFs a una sola función.</p>

<p>También hemos visto que es necesario utilizar el break; para indicar que ha terminado «un caso» y así que salga del switch y pueda seguir ejecutándose el programa.</p>

<h2 id="5-creando-funciones-en-javascript">5. Creando funciones en JavaScript</h2>

<p>En esta quinta clase del curso de javascript empezaremos a ver algo un poco más difícil y es que aprenderemos a crear nuestras propias funciones en Javascript.</p>

<p>Aunque veremos cómo podemos crearlas desde cero, también haremos algunas comparaciones con otros lenguajes de programación (PHP) para entender que hay algunas diferencias (sutiles) a la hora de crear las funciones.</p>

<p>Una de esas diferencias es el prefijo «var» que debemos de poner a las variables dentro de las funciones, ya que si no los ponemos serían variables globales y si lo ponemos se volverán «locales», es decir, que se eliminarán al terminar la función (como debe de ser).</p>

<h2 id="pero-antes-que-nada-qué-son-las-funciones">Pero antes que nada ¿Qué son las funciones?</h2>

<p>Podemos definir las funciones como un trozo de código encapsulado en una palabra (nombre de la función) y que cuando escribimos dicha palabra ¡Se ejecuta el código!</p>

<p>La gracia está en que podemos ejecutar ese código (escribiendo la palabra) tantas veces como queramos, pero no termina ahí la cosa.</p>

<p>Además, de todo esto, las funciones tienen una cosa llamada «argumentos», los argumentos es lo que realmente hace que una función sea inteligente o no, ya que permite que ejecute un código con un resultado diferente cada vez que le indicamos unos argumentos.</p>

<p>Por ejemplo, podemos crear una función llamada sumar, y le podemos pasar dos números (argumentos) y que nos muestre el resultado final, en esta ocasión, el resultado será inteligente y será diferente (siempre que cambiemos los números). Interesante ¿Verdad?</p>

<p>¡Veamos la clase para comprender todo mejor!</p>

<p>Video: https://www.youtube.com/watch?v=BX4VOTOUNUI</p>

<p>¡Genial! Gracias a esta clase, ya hemos visto cómo podemos crear funciones con argumentos y lo potente que son a la hora de programar.</p>

<h2 id="7-array-en-javascript">7. Array en JavaScript</h2>

<p>En esta séptima clase del curso de JavaScript analizaremos una de las cosas que quizás más cambian comparándolo con otros lenguajes de programación como PHP ¡Los Arrays!</p>

<p>Si nunca has visto ningún lenguaje de programación y te preguntas ¿Qué son los arrays? Lo entenderás rapidamente.</p>

<p>Tienes que ver un array como una variable/elemento que contiene muchas otras variables/elementos. Lo sé, lo sé, parece un poco complicado así, pero piensa en el siguiente ejemplo:</p>

<p>Imagínate que tienes un listado de nombres de alumnos ¿Cómo los ordenas? ¿En una variable para cada uno? ¡No! Es mucho más fácil crear una variable de tipo array y pasarle todos los datos a ese array. Además de ser más ordenado, es más eficiente.</p>

<p>En esta clase veremos que existen tres formas de crear un array, una de ellas más eficiente (por la memoria RAM).</p>

<p>También veremos, que podemos recuperar los elementos de los arrays (uno por uno) de una forma muy sencilla.</p>

<p>¡Veamos la clase para entender todo esto mucho mejor!</p>

<ul>
  <li>3 formas diferentes de crear un array</li>
  <li>Unas más eficientes que otras (por ram)</li>
  <li>Recuperar elementos</li>
  <li>Añadir elementos</li>
  <li>Eliminar objetos: no es fácil y se queda ranura vacia</li>
</ul>

<p>Video: https://www.youtube.com/watch?v=3QMpWIk3ot0</p>

<p>¡Genial! Ahora que hemos visto la clase, hemos podido aprender qué son los arrays, cómo funcionan, como crearlos, cómo sacar elementos sueltos, además de ¡Añadir nuevos elementos!</p>

<h2 id="8-bucles-en-javascript">8. Bucles en JavaScript</h2>

<p>Una vez hemos visto qué son los arrays (en la clase anterior), nos queda ver una de las partes más importantes ¿¡Cómo podemos recorrerlos!?</p>

<p>Pero antes que nada, nos tenemos que poner en situación, imagínate que tienes un array que es una lista de alumnos, perfecto, pero ¿Qué vas hacer con ella? ¿Mostrarla? ¿Cómo?</p>

<p>En la mayoría de las ocasiones, cuando tenemos un array, tenemos que acabar procesando cada uno de sus elementos, para mostrarlos por pantalla o hacer cualquier otra cosa, pero ¿Cómo accedemos a cada uno de ellos? ¡Pues con los bucles!</p>

<p>En esta clase analizaremos dos clases de bucles (todos de tipo for).</p>

<p>El primero es el típico que se encuentra en todos los lenguajes de programación que es un bucle formado por tres partes, considero (personalmente) que este tipo es muy importante, ya que es exactamente igual en todos los lenguajes de programación del mundo.</p>

<p>El segundo (y quizás tercero) son una expresión reducida del primero que nos servirá par acceder al índice o al valor del array directamente.</p>

<p>Pero ¡Veamos la clase para comprenderlo mejor!</p>

<p>Video: https://www.youtube.com/watch?v=OvkvSVO_OG0</p>

<p>¡Genial! Ahora ya sabemos cómo podemos recorrer un array de una forma fácil y sencilla en Javascript.</p>

<h2 id="9-objetos-en-javascript">9. Objetos en JavaScript</h2>

<p>Antes que nada ¡Felicidades! Si has llegado hasta esta clase, es que estás preparado para ver una de las cosas más complicadas (que no tanto) de este curso ¡Los objetos en JavaScript!</p>

<p>Antes que nada ¿Qué es un objeto?</p>

<p>Pues realmente depende, ya que JavaScript es un lenguaje de programación orientado totalmente a objetos, lo que quiere decir, que absolutamente todo es un objeto (las variables, las funciones, etc).</p>

<p>Es por ello que he dividido en tres vídeos diferentes los objetos, y en esta ocasión veríamos lo que yo llamo «los objetos simples», es decir, un objeto sin prototipado, ni molde (class) ni nada, simplemente, algo realmente fácil de crear.</p>

<p>Pero antes…</p>

<h2 id="arrays-asociativos-en-javascript">Arrays asociativos en JavaScript</h2>

<p>Si vienes de otro lenguaje de programación (como PHP), te habrás dado cuenta que en JavaScript no existen los arrays asociativos, es decir, dentro de un array, no puedes cambiar «el índice» numérico a palabras, para asociar, por ejemplo «nombre» a «Luis» y «apellido» a «Peris».</p>

<p>Pues bien, esto que en JavaScript no se puede, si se puede, por ejemplo en PHP, pero ¿Por qué? ¡Muy simple!</p>

<p>PHP es un lenguaje de programación que no es orientado a objetos, de hecho se introdujeron los objetos en las últimas versiones, no desde el comienzo, por ello, la única forma de hacerlo fue permitiendo que los arrays pudieran ser asociativos.</p>

<p>No obstante, JavaScript tiene una forma igual de rápida y eficiente ¡Los objetos! Así pues, en esta clase, analizaremos cómo podemos utilizar los objetos como arrays asociativos.</p>

<p>Pero no sólo eso, sino también, veremos que podemos crear un mini-programita inteligente (objeto), añadiéndole funciones.</p>

<p>Lo sé, lo sé, puede ser un poco complicado todo, así que ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=Tua1afcFCJU</p>

<p>Como hemos visto, los objetos es una de las cosas más potentes que tiene la programación ¡Y justo acabamos de empezar a verlos!</p>

<p>Pero desde ya podemos crear mini-programitas inteligentes y guardarlo en una variable (objeto) y utilizarlo cuando lo necesitemos, de una forma ordenada.</p>

<h2 id="10-prototipado-de-objetos-en-javascript">10. Prototipado de objetos en JavaScript</h2>

<p>En la clase anterior hemos visto una introducción a los objetos en JavaScript, vimos que podíamos utilizar los objetos para crear mini-programitas inteligentes, no obstante, tenían un problema.</p>

<p>Normalmente los lenguajes de programación orientado a objetos tienen una cosa llamadas «clases», por decirlo de alguna forma, las clases son como un molde. Por poner un ejemplo, piensa en un coche, podemos decir que el coche es «un objeto», si sólo quisieramos crear un coche podríamos hacerlo directamente (como vimos la clase anterior), pero ¿Qué pasaría si quisiéramos crear muchos coches?</p>

<p>En este caso, sería mucho más eficiente, no crear el coche (objeto), sino crear el molde (clase) del coche y así podríamos crear tantos coches (objetos) como quisiéramos fácilmente.</p>

<p>Pues bien, mientras en la clase anterior únicamente vimos cómo crear objetos, en esta clase aprenderemos a utilizar una de las dos formas principales que existen para crear estos moldes.</p>

<p>¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=_Wd_xMIRO2M</p>

<p>¡Perfecto! Ahora que hemos visto esta clase hemos visto que podemos crear clases con una cosa llamada «prototipado» que en definitiva sería crear una mini-clase e irle añadiendo opciones.</p>

<p>Realmente esta forma para crear clases es un poco «vieja» (pero necesaria conocerla) y actualmente se utilizada otra mucho más fácil, pero esta ¡La veremos en la próxima clase!</p>

<h2 id="11-creando-moldes-class-para-objetos-en-javascript">11. Creando moldes (class) para objetos en JavaScript</h2>

<p>En la clase anterior vimos que podíamos utilizar el prototipado de objetos en JavaScript para generar moldes para los objetos, pero sin duda era una forma un poco «tosca» de crear los moldes. Por ello, en Diciembre del 2015 se lanzó en las especificaciones ECMAScript una forma mucho más fácil de trabajar con los moldes ¡El famoso class!</p>

<p>Pero demos un paso atrás:</p>

<h2 id="qué-es-un-molde-class-en-javascript">¿Qué es un molde (class) en JavaScript?</h2>

<p>Como vimos la clase anterior, tenemos que pensar en el mundo real, por ejemplo ¿Cómo podemos crear un espada?</p>

<p>Una forma sería hacerlo manualmente si queremos únicamente una espada (para nosotros mismos), no obstante, tendríamos otra forma sería crear un molde (class) con el que pudiéramos crear tantas espadas (objetos) como quisiéramos ¿Se entiende, no?</p>

<p>Para entenderlo mejor, pensemos en un videojuego de coches, ciertamente podemos crear 10.000 coches uno a uno, pero es mucho mejor crear la clase (molde) de 5 diferentes y luego con código crear 500 coches (objetos) de cada uno de los moldes.</p>

<p>Pues bien, ahora que ya entendemos mejor que son los moldes y los objetos ¡Vamos a ver cómo podemos programarlos!</p>

<h2 id="objetos-en-javascript-y-objetos-en-php">Objetos en JavaScript y objetos en PHP</h2>

<p>Una de las ventajas de la nueva forma que veremos en esta clases es que es exactamente igual que otros lenguajes de programación, por ejemplo PHP.</p>

<p>Se instancia con la palabra class, tiene también un constructor, se le definen los métodos, etc ¡Todo igual!</p>

<p>Aunque si que es cierto que tiene algunas diferencias comparándolas con PHP o Java, por ejemplo, que no tenemos que poner la palabra «function» o que la definición de los atributos debemos de hacerlo en el constructor.</p>

<p>Así pues, sepas otros lenguajes de programación o no ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=V1POo-NHdYw</p>

<p>Ahora que ya hemos visto esta última clase, ya podemos decir que tenemos una base de qué es JavaScript ¡Y cómo funciona!</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Curso gratuito de JavaScript básico: variables, condicionales, switch, funciones, arrays, bucles, objetos y prototipado.]]></summary></entry><entry><title type="html">Curso de PHP con objetos</title><link href="https://luisperis.com/curso/php-con-objetos/" rel="alternate" type="text/html" title="Curso de PHP con objetos" /><published>2018-08-24T08:28:19+00:00</published><updated>2018-08-24T08:28:19+00:00</updated><id>https://luisperis.com/curso/curso-php-con-objetos</id><content type="html" xml:base="https://luisperis.com/curso/php-con-objetos/"><![CDATA[<p>Antes que nada ¡Bienvenido al curso de PHP con objetos!</p>

<p>No importa realmente si eres un programador senior en otro lenguaje y quieres aprender a programar en PHP o estás iniciándote en el mundo de la programación y ya has pasado por el curso de PHP Básico y deseas aprender el mundo de los objetos en PHP.</p>

<p><strong>¿Qué aprenderás en este curso de PHP con Objetos?</strong></p>

<ul>
  <li>Lo primero ¡Aprenderemos qué son los objetos!</li>
  <li>Aprenderemos a crear objetos desde cero (diferentes)</li>
  <li>Aprenderemos a crear objetos con herencias</li>
  <li>Aprenderemos qué son y cómo usar los constructores y destructores</li>
  <li>También veremos el ámbito de las variables</li>
  <li>Por último veremos las herencias en objetos</li>
</ul>

<p><strong>¿Y qué me quedará por aprender?</strong></p>

<ul>
  <li>¡Practicar creando tus propias aplicaciones!</li>
</ul>

<p>Así que ya está todo dicho ¡Ahora sólo queda practicar!</p>

<h2 id="13-qué-son-los-objetos-en-php">13. ¿Qué son los objetos en PHP?</h2>

<p>En el curso de PHP básico hemos visto un montón de cosas, desde variables hasta la gestión de cookies, pasando por la utilización y creación de funciones, entonces ¿Qué nos queda por ver? ¿Qué son los objetos en PHP?</p>

<h2 id="objetos-en-php">Objetos en PHP</h2>

<p>Antes que nada hay que dejar algo claro, sobretodo para las personas que vienen de otros lenguajes de programación: PHP no es un lenguaje de programación orientado a objetos.</p>

<p>Entonces, si no es un lenguaje de programación ¿Cómo es que vamos a ver los objetos?</p>

<p>Pues bien, esto es únicamente, porque desde la versión 5 de PHP (actualmente vamos por 7, no existiendo la 6), se introdujeron los objetos. Es decir: PHP es un lenguaje de programación que no está orientado a objetos (no es la base), pero que sí que soporta objetos.</p>

<p>Dicho esto, nos queda por responder una pregunta.</p>

<h2 id="php-qué-son-los-objetos">PHP: ¿Qué son los objetos?</h2>

<p>Podemos definir los objetos como mini programitas independientes e inteligentes dentro de PHP. Realmente la programación orientada a objetos es lo que se conoce como un <strong>paradigma</strong> , una nueva forma de pensar las cosas y de programar.</p>

<p>Se podría decir que al programar con objetos programas «por partes», es decir, primero programas un bloque «el objeto login», luego programas otro «el objeto mensajes», luego otro «el objeto usuarios», hasta que los acabas juntando y obtienes una red social totalmente creada por ti.</p>

<p>Si te estás preguntando si es difícil programar con objetos, mi respuesta (como profesor de programación que soy) es la siguiente:</p>

<p>Una vez comprendes los objetos es más fácil y rápido programar con objetos que sin ellos, no obstante, cuesta mucho entrenar a nuestra mente para que pase de una programación sin objetos a una con objetos.</p>

<p>Así que, para entender mejor de lo que estoy hablando ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=8hyIIth2ry4</p>

<p>Como podemos observar, la teoría de los objetos en PHP es realmente sencilla ¿A qué sí?</p>

<p>Pues bien, ahora es el turno de pasar de la teoría a la prácticas, así que, piensa un proyecto ¡Y adelante!</p>

<h2 id="14-objetos-en-php-constructores-y-destructores">14: Objetos en PHP: Constructores y Destructores</h2>

<p>En la clase anterior hemos visto por primera vez los objetos en PHP, hemos visto qué son las clases y cómo podemos instanciarlos, y está genial, no obstante ¡Eso sólo era el principio de los objetos!</p>

<p>Los objetos son mucho, pero mucho más potente de lo que vimos la clase anterior, así que en esta ocasión vamos a ver los constructores y destructores en la programación orientada a objetos en PHP.</p>

<p>Así que ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=dg7jxhxnCMU</p>

<h2 id="constructores-y-destructores-en-los-objetos-de-php">Constructores y destructores en los objetos de PHP</h2>

<p>Como acabamos de ver en esta clase, los constructores y destructores no son más que métodos (funciones) que se ejecutan solas en un momento dado.</p>

<p>En el caso de los constructores se ejecutan siempre que instanciamos un objeto (es decir, cuando usamos el new…) y no puede servir para mil cosas, para empezar, para preparar el objeto, declaración de variables, etc. Pero también, le podemos pasar datos mediante argumentos al propio constructor, así que se puede crear un objeto totalmente personalizado ¡Súper potente! ¿No?</p>

<p>Por otra parte tenemos los destructores, en esta ocasión, no se ejecutan cuando se crean los objetos, sino al revés, cuando se destruyen los objetos. ¡Pero ojo! Un objeto se puede destruir por dos razones, la primera es porque lo borramos con alguna función tipo unset(), no obstante, también se destruyen cuando el programa termina.</p>

<p>Es decir, sí o sí, el destructor se ejecutará, ya sea porque hemos eliminado el objeto nosotros o porque la ejecución de PHP ha terminado y se ejecuta en ese momento.</p>

<p>En este caso, el destructor se suele usar para liberar memoria RAM borrando variables u otros objetos, incluso cerrando conexiones a ficheros o a bases de datos.</p>

<p>Así pues, podemos decir, que aunque los constructores y destructores no son algo «vitales», sí que es cierto que nos ayudan a programar mejor.</p>

<h2 id="15-objetos-en-php-ámbito-de-variables">15. Objetos en PHP: Ámbito de variables</h2>

<p>Seguimos profundizando en los objetos en PHP y en esta ocasión llegamos hasta los ámbitos de las variables en PHP, en esta clase analizaremos qué son, cómo programamos y lo más importante: Para qué podemos utilizarlos.</p>

<p>Y es que los ámbitos de variable es algo muy importante cuando queremos hacer una programación más estable y segura. Pero ¿Qué son?</p>

<p>Para explicar qué son, tenemos que recordad que a las variables/atributos de los objetos podemos acceder, crearlas y modificarlas desde fuera del objeto ¿Verdad?</p>

<p>Pues bien, según muchos puristas, esto sería algo que nunca debería de poderse hacer, por ello, los ámbitos de variables indican a qué atributos/métodos podremos acceder desde fuera del objeto ¡Así de simple!</p>

<p>Veamos en esta clase cómo podemos hacerlo:</p>

<p>Video: https://www.youtube.com/watch?v=LXBL4xVPaSI</p>

<p>Como acabamos de ver, es extremadamente fácil declarar el ámbito de los atributos y de los métodos en los objetos ¿A que sí?</p>

<p>¡Nos vemos en la próxima clase!</p>

<h2 id="16-objetos-en-php-herencias">16. Objetos en PHP: Herencias</h2>

<p>Ya hemos visto un montón de cosas relacionadas con los objetos, y realmente, con la primera clase de objetos cubriríamos el 99% de nuestro trabajo, no obstante ¡Estamos aquí para aprender y ser profesionales ¿No? Pues una de las cosas que nos queda por ver ¡Son las herencias en los objetos en PHP!</p>

<p>Antes de explicar qué es la herencia en PHP, quiero hacerte una pregunta, imagínate que la NASA tiene que programar dos robots, uno para la Luna y otro para Marte, estos robots serán diferentes (por el clima, etc.), no obstante compartirán el 80% del código ¿Cómo lo podrían programar?</p>

<p>Bien es cierto que podrían programar uno y luego copiar el código y reprogramar el otro ¡Pero esto estaría mal!</p>

<p>Una de las formas que se podría hacer es crear un objeto llamado «robot» en que programaremos todas las funciones y todos los atributos que se encuentren en ambos robots y después, simplemente crearemos dos objetos nuevos, uno por ejemplo «robot_luna» al que le diremos va a heredar todo el código de «robot» y luego otro llamado «robot_marte» que le diremos lo mismo ¡Así de fácil!</p>

<p>Gracias a esto, si mejoramos el código del objeto principal (robot), se mejorará en todas partes sin afectar al código, potente ¿Verdad?</p>

<p>¡Veamos la clase a ver cómo lo podemos programar:</p>

<p>Video: https://www.youtube.com/watch?v=BTJbHq7apfk</p>

<p>¡Genial! Como acabamos de ver, la herencia en los objetos es facilísima, realmente, lo que más nos puede costar es «comprender» cómo trabajar con objetos, no obstante, una vez entendido, es muy fácil trabajar con herencias.</p>

<p>Esto es algo que podremos utilizar en nuestro día a día, cuando trabajemos con librerías de terceros (por ejemplo, para generar un PDF, etc.).</p>

<p>Como digo siempre, de la teoría a la práctica hay mucho camino, te toca aplicar los conocimientos aprendidos en este curso creando tu propio programa ¡Adelante!</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Curso gratuito de programación orientada a objetos en PHP: clases y objetos, constructores y destructores, ámbito de variables y herencia.]]></summary></entry><entry><title type="html">Curso de CSS</title><link href="https://luisperis.com/curso/css/" rel="alternate" type="text/html" title="Curso de CSS" /><published>2018-08-24T08:26:23+00:00</published><updated>2018-08-24T08:26:23+00:00</updated><id>https://luisperis.com/curso/curso-css</id><content type="html" xml:base="https://luisperis.com/curso/css/"><![CDATA[<p>Bienvenido a este curso de CSS, si quieres aprender todo sobre el diseño web, seguro que este curso gratuito de CSS te vendrá perfecto para comprender la base del diseño de las páginas web ¡El CSS!</p>

<p>Pero ¿Qué aprenderemos en este curso de CSS?</p>

<p>Para empezar, lo primero que aprenderemos será a entender bien qué es realmente CSS (os adelanto que no es ni un lenguaje de programación ni de estructuras), una vez entendamos qué es (correctamente), podremos entender muchas más cosas, como su alcance.</p>

<p>Pero esto es solamente la parte teórica, en la parte práctica nos meteremos de lleno en CSS, veremos cómo lo podemos ejecutar (de diferentes formas),</p>

<p>Además veremos tanto los selectores (que nos permiten seleccionar algo de la web), como los propios atributos, que nos permitirán cambiar el tamaño, color, fondo, altura, etc.</p>

<p>En definitiva, este curso intenta ser un curso transversal pensando para que podamos tener una fuerte base de CSS para empezar ya mismo con el desarrollo web.</p>

<p>Por otra parte, tendremos una clase únicamente dedicada a la documentación ¡Es importante saber buscar! ¡Al igual que saber encontrar!</p>

<p>Esperamos que te guste este curso.</p>

<h2 id="1-qué-es-css-cómo-usarlo">1. ¿Qué es CSS? ¿Cómo usarlo?</h2>

<p>Antes que nada, permíteme que te dé la bienvenida a esta primera clase del curso de CSS, estoy seguro que lo disfrutarás.</p>

<p>Como en todas las primeras clases, la primera parte de la clase la dedicaremos a la teoría (prometo hacerlo divertido), pero ¡Esto es sólo la primera parte!</p>

<p>Una vez pasaremos la teoría y conozcamos qué es realmente CSS (un lenguaje de diseño/estilos), pasaremos a la práctica, para ello veremos hasta tres formas diferentes de ejecutar código CSS.</p>

<p>Como veremos en la clase, tenemos que entender que alguna de las formas que veremos de ejecutar CSS, aunque se permite, no siguen las buenas prácticas. En este curso, intentaremos ver, tanto las buenas prácticas, como las malas (y la razón por las cuales son malas).</p>

<p>Gracias a esto, cuando os encontréis con un código CSS en internet, podréis entender porqué lo están haciendo de esa forma y si es una buena práctica o una mala.</p>

<p>¡Veamos la clase para comprenderlo todo mucho mejor!</p>

<p>Video: https://www.youtube.com/watch?v=ukrh08rbFsY</p>

<p>Perfecto, ahora que hemos visto la clase, podemos seguir a la segunda clase, donde aprenderemos a utilizar selectores.</p>

<h2 id="2-selectores-en-css">2. Selectores en CSS</h2>

<p>Bienvenido a esta segunda clase del curso de CSS.</p>

<p>Como ya sabemos por la clase anterior, CSS es un lenguaje de estilos o diseño, lo que quiere decir que simplemente le tenemos que decir qué queremos modificar y cómo lo queremos modificar.</p>

<p>Pues bien, en esta segunda clase aprenderemos a realizar esa primera parte, es decir “seleccionar qué queremos modificar”, parece poco, pero los selectores ¡Son la mitad de CSS!</p>

<p>Para ello tendremos que aprender que existen diferentes clases de selectores, veremos que existen los básicos que son los de etiqueta, los de clase y los de ID que nos van a servir para el 99% de nuestro código.</p>

<p>No obstante veremos los avanzados, para todos los alumnos que quieran un código más limpio y realizar algunas acciones un poco más avanzadas (como seleccionar todas las etiquetas que cumplan unos requerimientos).</p>

<p>Video: https://www.youtube.com/watch?v=QcbP2-6xj7w</p>

<p>Como hemos podido ver en esta clase, los selectores son realmente sencillos, no obstante nos permiten hacer virguerías si los entendemos bien.</p>

<p>Ahora que ya hemos visto la clase, podemos dar por finalizada la parte de los selectores y sólo nos quedaría ¡Dar color a nuestra web!</p>

<p>Para ello os espero en la tercera clase donde analizaremos cómo podemos modificar textos con CSS.</p>

<h2 id="3-modificando-textos-en-css">3. Modificando textos en CSS</h2>

<p>Gracias a la clase anterior de este curso de CSS, ya conocemos los selectores, por lo que nos toca ponernos manos a la obra para ir conociendo todas las opciones que nos da CSS.</p>

<p>En esta ocasión empezaremos aprendiendo los principales atributos que tiene CSS a la hora de modificar texto, ya sea un título (H1), un párrafo (p) o cualquier otro tipo de texto.</p>

<p>Como veremos más adelante en el vídeo podemos realizar casi cualquier modificación, desde el tipo de letra (también llamada fuente), hasta añadirle negrita o cursiva o incluso modificar el color.</p>

<p>Sobre la modificación del color, haremos una pausa y veremos que existen diferentes formas de especificar un color, algunas opciones son poco recomendadas y otras son mucho más avanzadas (cuando añadimos el canal alpha), no obstante, veremos que existen dos que son muy sencillas.</p>

<p>¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=rGW0KDUlPxM</p>

<p>Perfecto, ahora que ya hemos visto la clase, podemos entender perfectamente dos cosas.</p>

<p>Para empezar el funcionamiento completo de CSS (tanto los selectores que vimos la clase anterior como los atributos) y por otra, algo fundamental y es el registro hexadecimal para seleccionar los colores.</p>

<p>Así pues, en la próxima clase analizaremos cómo podemos montar estructuras flexibles con CSS3.</p>

<h2 id="4-flex">4. Flex</h2>

<p>Bienvenido a esta cuarta clase del curso de CSS. En esta clase aprenderemos una de las cosas que personalmente me parecen más alucinantes de CSS3 ¡Flex!</p>

<p>Cuando digo que Flex es una de las cosas más alucinantes de Flex no lo digo por decir, como aprenderemos en la clase, la historia de Flex se remonta un par de décadas atrás, cuando no existían los teléfonos móviles (y mucho menos inteligentes) ni las tablets.</p>

<p>En aquella época (años 90 y algo del 2000), para crear la estructura de las páginas webs se utilizaban tablas con filas y columnas, al fin y al cabo, todas las pantallas tenían más o menos las mismas medidas, por lo que se podía controlar bastante bien.</p>

<p>No obstante, con la aparición de los smartphones, todas las webs hasta el momento no funcionaron ya que las pantallas de los móviles eran pequeñas, por lo que en esos años (2000) se tuvo que crear dos webs, una para móviles y otra para ordenadores.</p>

<p>Con el tiempo se vio que eso no podía ser y se utilizó una tecnología llamada “float” que permitía hacer las webs responsives. ¿Problema? ¡Es horrible utilizarla! ¡No estaba pensando para eso! ¡A la mínima se descuadraba todo!</p>

<p>Por ello, con el tiempo (no hace mucho) apareció Flex ¡La solución para desarrollar webs responsive! Es nativo y es fácil de utilizar, así que ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=kxKOX3wcHok</p>

<p>¡Perfecto! Ahora que ya hemos visto la clase ya sabemos lo fácil que es hacer la estructura de páginas webs ¡Nos vemos en la siguiente clase!</p>

<h2 id="5-documentación-de-css">5. Documentación de CSS</h2>

<p>Bienvenido a esta quinta clase del curso de CSS.</p>

<p>Esta clase será muy especial ya que no nos centraremos tanto en el código de CSS sino que aprenderemos a solventar los problemas que nos vayan saliendo buscando información.</p>

<p>Video: https://www.youtube.com/watch?v=EZQCj-MiK-0</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Curso gratuito de CSS: qué es y cómo se usa, selectores, estilos de texto, flexbox y cómo consultar la documentación oficial.]]></summary></entry><entry><title type="html">Curso de HTML</title><link href="https://luisperis.com/curso/html/" rel="alternate" type="text/html" title="Curso de HTML" /><published>2018-08-16T10:28:40+00:00</published><updated>2018-08-16T10:28:40+00:00</updated><id>https://luisperis.com/curso/curso-html</id><content type="html" xml:base="https://luisperis.com/curso/html/"><![CDATA[<p>¿Alguna vez te has preguntado cómo funcionan las webs? ¿Cómo puedes diseñar páginas web? Si es así y todavía no sabes ¡Enhorabuena! ¡Estás en el lugar adecuado!</p>

<p>En este curso de HTML no sólo aprenderás toda la base para poder desarrollar páginas webs, sino que también conocerá la historia y las tecnologías necesarias para desarrollar dichas webs.</p>

<p>Por ejemplo, aprenderemos «qué es realmente HTML» y que las webs no es más que un conjunto de «lenguajes» (de estilos, de etiquetas) que juntos, forman lo que vemos.</p>

<p>También aprenderemos a estructurar el código y a entender cómo los navegadores procesan nuestro código ¡Importantísimo!</p>

<p>Lógicamente, tampoco nos olvidaremos de los buscadores y de las redes sociales y es que hoy en día, tenemos que programar pensando en que nuestra web «se compartirá» y cuando esto suceda ¿Qué pasará? ¿Cómo se verá por ejemplo en Facebook? ¿Cómo podemos controlar qué aparece en la previsualización?</p>

<p>Todo esto y mucho más lo aprenderás en este curso de HTML. Además, si no fuera suficiente, esto no es más que el comienzo… y es que, en esta web encontrarás diferentes cursos para aprender todas las partes de la web, desde el frontend, hasta el backend.</p>

<h2 id="1-conociendo-html">1. Conociendo HTML</h2>

<p>¡Enhorabuena por llegar a esta primera clase del curso de HTML! Estamos seguros de que disfrutarás el curso y lo que es más importante, aprenderás mucho.</p>

<p>Antes de ponernos a desarrollar nada, en esta clase aprenderemos la historia de HTML y es que, si no comprendemos sus inicios y su pasado, nos será del todo imposible comprender cómo está desarrollado y el «porqué de las cosas».</p>

<p>Una vez hayamos visto la historia, aprenderemos qué forma tiene HTML, y dónde se ejecuta. Es decir, veremos todas las aplicaciones que necesitamos tener instaladas para realizar esta clase (tranquilo, veréis que con un navegador es suficiente).</p>

<p>Por supuesto, también os recomendaré en esta primera clase un buen editor de código, para que os sea muchísimo más fácil programar.</p>

<p>Por último, una vez lo tengamos todo listo, veremos cómo ejecutar nuestro primer HTML en el navegador.</p>

<p>Para comprender todo mucho mejor ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=gXZyN4qRPE4</p>

<p>¡Perfecto! Ahora que hemos visto la clase, ya comprendemos mucho mejor qué es todo esto del HTML, ahora toca aprender ¡Nos vemos en la próxima clase!</p>

<h2 id="2-la-estructura-html">2. La estructura HTML</h2>

<p>¡Bienvenido/a a esta segunda clase del curso de HTML!</p>

<p>Tras la primera clase que era más introductoria, en esta segunda clase analizaremos cuál es la estructura que debe de tener nuestras páginas webs.</p>

<p>Y es que, aunque podamos hacer las webs de la forma que más nos guste (en cuanto a colores, posiciones, estructuras), hay una «estructura mínima» del código que debemos de respetar.</p>

<p>Y no se trata de nada «visual», sino, que nos permitirá dividir nuestro código en dos partes.</p>

<p>Por una parte (el) nos permitirá indicarle toda la información «transparente», es decir, datos que no se mostrarán en la web, por ejemplo el título de la web, la codificación, la descripción para los motores de búsquedas, etc.</p>

<p>Aunque mucha gente cree que esta parte no es importante, es casi tan importante como la web visual en si, ya que, como explicaremos en la clase, desde hace unos años (HTML5), se usa esta información para poder compartir nuestras webs en las redes sociales, en buscadores, e incluso en la previsualización del whatsapp.</p>

<p>Por otra parte, tenemos la estructura () donde incorporaremos todo nuestro código visual, las imágenes, textos, etiquetas de estructura de la web, etc.</p>

<p>Como «en texto», todo esto puede parecer un poco abstracto, veamos la clase para comprenderlo mejor.</p>

<p>Video: https://www.youtube.com/watch?v=fZFpMnitROM</p>

<p>Ahora que hemos visto la clase ¿A que no es nada complicado? ¡Pues vamos a por la tercera clase de HTML!</p>

<h2 id="3-etiquetas-para-dar-formato-al-texto">3. Etiquetas para dar formato al texto</h2>

<p>¡Bienvenido a esta tercera clase del curso de HTML!</p>

<p>En las clases anteriores hemos aprendido “cómo funciona HTML” y “cómo es la estructura de HTML”, no obstante, todavía no hemos visto casi ninguna etiqueta ¡Hasta ahora!</p>

<p>En esta tercera clase veremos las principales etiquetas que tendremos que conocer para poder dar formato al texto de nuestra web.</p>

<p>Esto quiere decir, que aprenderemos a realizar encabezados (títulos), párrafos, negritas, inclinar la letra (italic), e incluso subrayado.</p>

<p>Pero no sólo eso, también veremos cómo podemos hacer listas de diferentes tipos gracias a un conjunto de etiquetas.</p>

<p>Veamos la clase para aprender todo esto:</p>

<p>Video: https://www.youtube.com/watch?v=6emlaPO3J6w</p>

<p>¡Perfecto! Ahora ya sabemos cómo podemos dar formato al texto de nuestra web.</p>

<p>Pero ¿Qué pasa si deseamos añadir una imagen? ¿O un vídeo? Pues esto lo veremos en la próxima clase ¡Te esperamos!</p>

<h2 id="4-media-imágenes-vídeos-y-audios">4. Media: Imágenes, vídeos y audios</h2>

<p>Antes que nada ¡Bienvenido a esta cuarta clase del curso de HTML!</p>

<p>Hasta ahora hemos estado viendo un montón de cosas, entre ellas, cómo crear la estructura de HTML y cómo poder «formatear» los textos (dentro de las limitaciones que tenemos al no usar, por ahora, CSS).</p>

<p>No obstante ¿Cómo podemos poner imágenes? ¿O vídeos? ¿Y una canción?</p>

<p>Pues bien, en esta cuarta clase lo analizaremos, no sin antes comprender que aunque las imágenes son «originales del HTML», los vídeos y los audios no lo son y aparecieron en el HTML5.</p>

<p>Por ello, le dedicaremos unos minutos a explicar cómo se hacía y que hacks se utilizaban antes de la aparición de HTML5 para poder reproducir vídeos (como en youtube por ejemplo).</p>

<p>Gracias a esto, podremos aprender cómo se debe de hacer actualmente y no confundirnos con las guías que podamos encontrar por Internet.</p>

<p>¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=UpyM9j1zm1A</p>

<p>Como hemos podido observar, añadir una imagen, un vídeo o un audio es realmente sencillo. Sólo tenemos que saber dónde está el fichero ¡Y listo!</p>

<h2 id="5-tablas-en-html">5. Tablas en HTML</h2>

<p>¡Bienvenido a esta quinta clase!</p>

<p>En esta clase analizaremos una de las etiquetas que más se usó en el pasado y que actualmente inspira amor y odio ¡Las tablas!</p>

<p>Durante esta clase aprenderemos, que durante casi una década, esta etiqueta se usó para crear las estructuras de la web (de hecho, veremos un ejemplo), no obstante, tras la llegada de los smartphones y las tablets, no se pudo utilizar más estas etiquetas, como explicaremos en el vídeo.</p>

<p>Es por ello, que en la actualidad las tablas se utilizan, sobretodo para mostrar datos (filas/columnas), por ejemplo, extractos bancarios, lista de usuarios, etc. Es decir, datos, que sí o sí, se tienen que mostrar en filas y columnas.</p>

<p>Para crear una tabla necesitaremos como mínimo 3 etiquetas, así que… ¡Veamos la clase para aprender a crearlas!</p>

<p>Video: https://www.youtube.com/watch?v=lC2zAQkkh-8</p>

<p>Como hemos podido observar, crear una tabla es extremadamente sencillo, una vez aprenderemos a utilizar las etiquetas correctamente.</p>

<p>Ahora que ya sabemos crear tablas, tenemos que recordar que hay que usarlas de una forma inteligente, no podemos crear webs basadas en tablas.</p>

<h2 id="6-formularios-en-html">6. Formularios en HTML</h2>

<p>¿Alguna vez te has preguntado cómo funcionan los formularios en las webs? ¿Son imágenes o unas etiquetas mágicas? Pues bien, en esta sexta clase del curso de HTML desvelaremos parte del misterio.</p>

<p>Digo que desvelaremos «parte» del misterio, porque sólo tocaremos la parte que corresponde a HTML, la parte de procesamiento de datos, la veremos con un lenguaje de programación (PHP) en el curso de PHP básico de esta misma web.</p>

<p>Con esta clase, para que quede claro, haremos ¡Que se vea un formulario! Es decir, que podamos rellenarlo, tocarlo y mandar los datos.</p>

<p>De hecho, en esta ocasión, además de las nuevas etiquetas que aprenderemos, veremos que también existe una cosa llamada «atributos» que tendremos que utilizar, para cambiarle el funcionamiento a nuestro formulario. Muy interesante y nada complicado.</p>

<p>¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=Af2f_GV2-lo</p>

<p>¡Súper bien! Ahora que ya hemos visto esta clase hemos podido comprender mucho mejor cómo funcionan los formularios, además hemos aprendido que no son nada complicados desarrollarlos.</p>

<p>No obstante, aunque estamos aprendiendo mucho durante estas clases, se nos queda un poco «soso» ya que no tenemos diseño ¿No?</p>

<p>Bueno, por eso mismo, en la próxima clase, introduciremos algo de CSS ¡Vamos a ella!</p>

<h2 id="7-flex-con-divs-y-css">7. FLEX con DIVs y CSS</h2>

<p>Bienvenido a esta séptima clase del curso de HTML.</p>

<p>Durante todo este curso hemos ido aprendiendo las etiquetas más importantes de HTML, no obstante, nos han faltado dos cosas:<br />
Estructurar la web<br />
Hacer una web bonita</p>

<p>Pues bien, en esta clase aprenderemos a estructurar la web y hacerla bonito. Para ello, utilizaremos CSS y una tecnología de CSS3 llamada “flex”.</p>

<p>¡Veamos el vídeo!</p>

<p>Video: https://www.youtube.com/watch?v=2ptJBqjvOsQ</p>

<p>¡Perfecto! Tras ver este vídeo, ya podemos empezar a organizar y estructurar nuestra web de una forma fácil y cómoda.</p>

<p>Gracias a estas 7 clases ya tenemos una “base” para empezar a desarrollar nuestras webs, ahora sin duda sólo nos quedará realizar el curso de CSS para darle vida a nuestras webs ¡Nos vemos en el curso de CSS!</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Curso gratuito de HTML desde cero: estructura de una página, etiquetas de texto, imágenes, vídeo y audio, tablas, formularios y maquetación con flex.]]></summary></entry><entry><title type="html">Curso de PHP básico</title><link href="https://luisperis.com/curso/php-basico/" rel="alternate" type="text/html" title="Curso de PHP básico" /><published>2018-06-07T09:45:46+00:00</published><updated>2018-06-07T09:45:46+00:00</updated><id>https://luisperis.com/curso/curso-php-basico</id><content type="html" xml:base="https://luisperis.com/curso/php-basico/"><![CDATA[<p>Antes que nada ¡Bienvenido al curso de PHP básico!</p>

<p>Sinceramente espero que en este curso de 10 lecciones puedas obtener unas buenas bases para poder iniciarte en PHP, no obstante, estoy seguro que dirás ¿¡10 lecciones!? ¿Se puede aprender algo con eso?</p>

<p>Pues te respondo «sí y no», la programación se puede dividir de muchas formas, en este curso aprenderemos la base de PHP, pero ¡Tenemos más cursos (todos gratuitos)!</p>

<p>Referentes a PHP, después de este curso podrás hacer el de PHP con Objeto, luego, el de PHP con base de datos, etc. Así que no te preocupes, son 10 clases el básico pero tenemos muchas más.</p>

<p><strong>¿Qué aprenderás en este curso?</strong></p>

<ul>
  <li>Obtendrás una muy buena base de PHP</li>
  <li>Aprenderás los principales tipos de variables y a utilizarlos</li>
  <li>Aprenderás las funciones estructurales
    <ul>
      <li>if, for, while, etc.</li>
    </ul>
  </li>
  <li>Aprenderás a crear tus propias funciones</li>
  <li>Aprenderás «buenas prácticas» de la programación</li>
</ul>

<p><strong>¿Qué no aprenderás en este curso?</strong></p>

<ul>
  <li>¡Objetos! Esto lo aprenderás en el curso de PHP con objetos</li>
  <li>¡Práctica! Nosotros te enseñamos las bases, pero te toca practicar</li>
</ul>

<p>Dicho esto ¡Empecemos con el curso!</p>

<h2 id="2-variables-en-php-qué-son">2. Variables en PHP ¿Qué son?</h2>

<p>Si que es cierto que la programación la podemos complicar tanto como queramos, podemos hablar de algoritmos de aprendizaje profundo o de cosas muy avanzadas, pero todos los lenguajes de programación trabajan con datos para su funcionamiento, ahí es donde entran en juego ¡Las variables!</p>

<p>Tenemos que ver las variables en php como una palabra (escrita por nosotros) que guarda un valor ¡Pero ojo! Ese valor puede cambiar y puede ser eliminado ¡Por eso se llaman variables y no constantes (que existen)!</p>

<p>Realmente las variables no vienen de la programación, sino como toda la programación, de las matemáticas ¿Recuerdas cuando tenías que calcular el valor de x? ¡Pues x era una variable! ¡Cada vez podía valer una cosa!</p>

<p>En el siguiente vídeo veremos cómo podemos definir variables en PHP y cómo trabajar con ellas, también veremos los diferentes tipos de variables que existen en PHP ¡Vamos a ver la clase!</p>

<p>Video: https://www.youtube.com/watch?v=rgltQ1x73AA</p>

<p>¡Perfecto! Ahora que hemos visto la clase y hemos aprendido cómo crear variables en PHP hemos aprendido dos cosas:</p>

<h2 id="tipos-de-variables-en-php">Tipos de variables en PHP</h2>

<p>Cuando estamos aprendiendo un lenguaje de programación, podemos entender que existen las variables, ya que es la única forma de poder acceder de una forma eficiente a un dato (que previamente hemos recuperado o guardado).</p>

<p>No obstante, pocos piensan que las variables ¡Puede ser de diferente tipo! Y ojo, cada tipo sirve para una cosa, veamos los 4 tipos de variables principales:</p>

<ol>
  <li><strong>String:</strong> Son las variables que principalmente nos sirven para guardar texto (cadenas de texto).</li>
  <li><strong>Intenger (int):</strong> Son las variables de tipo entero, es decir número sin decimales.</li>
  <li><strong>Float:</strong> Son las variables numéricas con decimales (geniales para precios, etc.)</li>
  <li><strong>Boolean (binario):</strong> Son un tipo de variable que sólo puede tener dos datos «true» o «false». Son geniales para condicionales.</li>
</ol>

<p>¡Ojo! Hay que decir que existen otro tipo de variables (todo depende cómo se mire), pero estas son las que se usan en el 99% del tiempo. El resto de variables «más especiales» las iremos viendo poco a poco.</p>

<h2 id="concatenar-variables-en-php">Concatenar variables en PHP</h2>

<p>Otra de las cosas que hemos visto es cómo concatenar variables en PHP, es decir, si tenemos dos variables, una llamada «$nombre» y otra llamada «$apellido», hemos visto cómo debemos de unirlas para que nos muestre el nombre completo.</p>

<p>Como podemos observar las variables es una parte muy importante de la programación y el entenderlas bien es algo fundamental para convertirnos en buenos programadores.</p>

<h2 id="3-operaciones-aritméticas-en-php">3. Operaciones aritméticas en PHP</h2>

<p>Una vez hemos aprendido cómo crear y usar las variables en PHP (en la clase anterior), nos toca hacernos una pregunta ¿Podemos hacer operaciones aritméticas/matemáticas con ellas?</p>

<p>Es decir ¿Podemos sumar/restar/multiplicar/dividir variables?</p>

<p>Pues bien, en esta clase veremos que sí, aunque «dependiendo», por ejemplo, es importante el tipo de variable, lógicamente no podemos multiplicar dos strings (cadenas de texto), aunque dentro contenga «10 €», ya que al ser un string (por contener el símbolo del Euro), hará que de error.</p>

<p>Veamos la clase donde veremos la forma correcta de hacer operaciones aritméticas en PHP:</p>

<p>Video: https://www.youtube.com/watch?v=uq7rWySc7nI</p>

<p>Ahora que ya hemos visto la clase, comprendemos mejor que las mismas fórmulas que hacíamos en matemáticas las podemos trasladar al mundo de la programación y que las mismas reglas que usábamos (paréntesis para dar prioridad) sirven perfectamente en PHP.</p>

<p>También hemos aprendido que en los lenguajes de programación existe un operador para conseguir el resto de una división ¡Y esto es importantísimo! Ya que esto se usa muchísimo en la programación para saber si un número es para o impar, y así, por ejemplo, pintar las líneas par de un color y las impar de otro.</p>

<h2 id="4-condicional-if-en-php">4. Condicional IF en PHP</h2>

<p>¿Alguna vez has pensado cómo funciona un programa? Si lo has hecho y quizás sabes algo de electrónica, habrás llegado a la conclusión de que los lenguajes de programación están llenos de condicionales ¿No?</p>

<p>Es decir «si presiono aquí… se ejecuta esto» o por ejemplo «si mi user/password es correcto me dejará acceder», pues bueno ¡Esta parte es literal!</p>

<p>Es tan literal que los condicionales se llaman if (el «si…» condicional en inglés) y esta es una la base de la programación y una de las pocas funciones estructurales (funciones mínimas para crear cualquier programa), tal es así que esta función existe en todos los lenguajes de programación genéricos del mundo.</p>

<p>Para entenderlo bien (ahora veremos la clase dónde seguro lo entendéis), tenemos que pensar que los programas «no son magia» y que tarde o temprano lo que programemos se convertirá en electrones recorriendo un circuito eléctrico (procesador, etc.).</p>

<p>Pues bien, en los circuitos hay una cosa llamada «puertas lógicas» que dependiendo unas «condiciones» deja pasar la corriente o no. Pues bien, esto con la programación ¡Es facilísimo! ¡Veamos cómo se hace con la siguiente clase!</p>

<p>Video: https://www.youtube.com/watch?v=dsct0AXsuO8</p>

<p>¡Genial! Veamos lo que hemos aprendido.</p>

<h2 id="condicional-if-en-php">Condicional IF en PHP</h2>

<p>Como hemos podido ver en la clase, los condicionales IF son súper potentes, muchos programadores se quedan en la superficie y hacen If simples, no obstante, si queremos ser programadores seniors tenemos que comprenderlos bien y empezar a jugar con todo el potencial que nos da.</p>

<p>Otra cosa que hemos aprendido es la referencia que hacía anteriormente a las puertas lógicas, hemos visto los AND y OR y cómo los podíamos usar para hacer un if mucho más potente.</p>

<p>En resumen podríamos decir que el IF, es una de las funciones estructurales de PHP que más vamos a utilizar en nuestro día a día como programadores.</p>

<h2 id="5-arrays-en-php">5. Arrays en PHP</h2>

<p>A medida que nos vamos haciendo programadores necesitamos procesar más y más datos y por ello, necesitamos encontrar una forma de ordenarlos, ahí es dónde entrar los arrays en PHP (también mal-llamados arreglos).</p>

<p>Pero para comprender qué son y por qué los necesitamos, tenemos que poner un ejemplo para entenderlo mejor. Imaginad que estáis desarrollando un programada para gestionar los alumnos de una clase, y necesitáis comprobar si todos los alumnos están en la clase ¿Cómo lo programaríamos? ¿Crearíamos tantas variables con el nombre del niño (de tipo string) como niños exista? ¿Y si luego se apunta un niño?</p>

<p>La solución es crear una sola variable en PHP, pero de tipo array y que dentro de esta variable ¡Estén todas las variables que necesitemos!</p>

<p>Es decir, podríamos decir que un array es una forma de ordenaras valores y poder trabajar con ellas mucho mejor.</p>

<p>¡Veamos esta clase para ver cómo podemos trabajar con ellas!</p>

<p>Video: https://www.youtube.com/watch?v=zz59EBaVLHA</p>

<p>¡Genial! Ahora que hemos comprendido que es muy fácil trabajar con arrays, debemos de recordar lo siguiente.</p>

<h2 id="arrays-en-php">Arrays en PHP</h2>

<p>Para empezar hemos visto que crear los arrays es extremadamente fácil, tal es así que existen dos formas, una con la función array() y otra, la más moderna y que muchos otros lenguajes de programación utilizan que es simplemente con los corchetes [].</p>

<p>También hemos visto, que por decirlo de alguna forma, los strings no son más que arrays pero de caracteres, pero ojo ¡Podemos trabajar como si fueran arrays! ¡Súper interesante!</p>

<p>En definitiva los arrays son variable que actúan como una «caja» donde podemos meter (de forma ordenada siempre) datos, pero ojo, luego podemos acceder a esos datos de forma individualizada, modificarlos, eliminarlos, etc.</p>

<p>Pero al trabajar con los arrays en PHP nos surge una duda ¿Cómo podemos recorrerlos? ¿Cómo podemos mostrar todos los datos que hay dentro de una forma ordenada?</p>

<p>Pues bien, justo esto lo veremos en la próxima clase.</p>

<h2 id="6-bucles-for-y-foreach-en-php">6. Bucles for y foreach en PHP</h2>

<p>Alguna vez te has preguntado ¿Cómo ejecutamos algo x veces en PHP?</p>

<p>Por ejemplo, imagínate que queremos mostrar cien veces por pantalla una palabra ¿Cómo lo podríamos hacer? Cierto es que si son pocas veces lo podríamos hacer a mano, copiando y pegando un echo, pero ¿Y si son miles de veces? ¿O qué pasa si queremos recorrer todo un array?</p>

<p>Pues bien, en esta clase analizaremos los dos bucles que más vamos a utilizar en nuestro día a día.</p>

<h2 id="el-bucle-for-en-php">El bucle for en PHP</h2>

<p>El bucle for es una de las funciones estructurales más viejas de la programación, está en prácticamente todos los lenguajes de programación y además tiene la misma estructura en todos.</p>

<p>En resumen tiene tres apartados, en el primero nos permite declarar una variable, en el segundo se ejecuta una condición, que en el caso de que se cierto, se ejecutará el código, el tercer apartado, se ejecuta ‘cada vez’ que el for llega al final, una vez al final se vuelve a ejecutar la condición.</p>

<p>Veamos la clase para entenderlo mejor:</p>

<p>Video: https://www.youtube.com/watch?v=7MbWqlq-3zg</p>

<h2 id="bucle-foreach-en-php-cómo-recorrer-un-array">Bucle foreach en PHP: Cómo recorrer un array</h2>

<p>Por otra parte, tenemos el bucle foreach, que también se encuentra en la mayoría de los lenguajes de programación (pero cambia un poco más), en esta ocasión tenemos un bucle, como hemos visto en la clase que nos sirve para recorrer un array.</p>

<p>Por ejemplo, si tenemos un array con todos los alumnos de un colegio, gracias a este bucle podremos «recorrer este array», gracias a ello, lo que conseguiremos, será hacer que «se ejecute un código específico» por cada alumno.</p>

<p>Los bucles nos dotan de un gran poder, es normal si todavía no los comprendes o no sabes qué hacer con ellos, la programación, es una disciplina que requiere de mucho tiempo para comprenderla perfectamente.</p>

<p>Por último, en la clase hemos visto una pequeña introducción a los arrays asociativos, un tipo de array al que le cambiamos el índice (recordemos que era número y empieza por 0), por palabras, algo que nos permite ordenar los arrays como queramos.</p>

<h2 id="7-switch-en-php">7. Switch en PHP</h2>

<p>Si ya has empezado a programar, seguramente te habrás dado cuenta que muchas veces tienes que usar varios if encadenados o con muchos if else, algo que en principio está bien… si no conoces la función estructural switch en PHP.</p>

<p>Para ser justos es una función muy simple y hay algunas personas que piensan que está en desuso, pero ojo, que sea simple no quiere decir que no haya que usarla, ya que nos va a permitir ordenar el código y hacerlo más visible.</p>

<p>En resumen, la función switch en php nos va a permitir hacer una especie de If encadenados, es decir, va a recibir un valor (normalmente numérico o string) y le vamos a indicar en cada caso (case) que tiene que hacer con ese dato.</p>

<p>Comprendo que esto puede parecer un poco complicado, así que veamos la clase para comprender cómo usarlo.</p>

<p>Video: https://www.youtube.com/watch?v=YHGxE5dO958</p>

<h2 id="switch-en-php">Switch en PHP</h2>

<p>Como hemos podido observar, es realmente interesante el uso de switch y realmente se recomienda usarlo.</p>

<p>No obstante, si que es cierto que creo que se podría haber programado mejor, ya que la función es un clon de la que existe en el lenguaje de programación C (del que viene PHP), el problema seguramente y donde la gente comete más errores, es que si se te olvida poner un <em>break;</em> sigue ejecutándose el resto de casos.</p>

<p>Pero bueno, quitando ese pequeño detalle ¡Ya hemos aprendido una nueva función estructural!</p>

<h2 id="8-funciones-nativas-de-php">8. Funciones nativas de PHP</h2>

<p>¿Alguna vez te has preguntado cuál es el potencial de PHP? ¿Por qué programar PHP y no otros lenguajes? Pues bien, una de las ventajas de PHP son sus funciones nativas.</p>

<p>Para entenderlo bien, hay que comprender que PHP es un lenguaje bastante controvertido entre los programadores, ya que muchos no lo consideran un lenguaje «de verdad», por dos razones:</p>

<ol>
  <li>Es uno de los lenguaje de programación con mayor tolerancia a errores. Es decir, que si hacemos algo mal puede que se nos siga ejecutando el código (todo lo contrario de lo que hacen otros lenguajes).</li>
  <li>Es uno de los lenguajes de programación con más funciones nativas, lo que facilita la vida del programador.</li>
</ol>

<h2 id="funciones-nativas-en-php">Funciones nativas en PHP</h2>

<p>Yo (Luis Peris) diferencio entre funciones estructurales, que son las mínimas para crear un programa (if, for, foreach…) con las funciones nativas.</p>

<p>Estas últimas simplemente son funciones que nos hacen la vida a los programadores más fáciles, pero ¿Qué son?</p>

<p>Se podría definir que las funciones nativas en PHP son: Un conjunto de funciones que ya vienen programadas en el lenguaje de programación y que las podemos usar cuando queramos y cómo queramos.</p>

<p>Por ejemplo, tenemos una función para remplazar texto, otra para sacar números aleatorios, otra función para pasar todas las palabras a mayúsculas, otra para contar cuantos elementos tiene un array, etc.</p>

<p>Veamos la clase donde aprenderemos las principales que usaremos en nuestro día a día:</p>

<p>Video: https://www.youtube.com/watch?v=Gt9I_eh9TDU</p>

<p>¡Perfecto!</p>

<p>Ahora que ya hemos visto la clase comprenderemos mucho mejor qué son las funciones nativas y lo que es mucho más importante: Cómo podemos utilizarlas.</p>

<h2 id="9-creando-funciones-en-php-primera-parte">9. Creando Funciones en PHP: Primera parte</h2>

<p>En la clase anterior hemos visto cómo podemos utilizar las funciones nativas de PHP, pero ¿Cómo podemos crear nuestras propias funciones en PHP?</p>

<p>Pues bien, esto será justo lo que veremos en esta clase (y la siguiente).</p>

<h2 id="creando-funciones-en-php">Creando Funciones en PHP</h2>

<p>Antes que nada, debemos de recordar qué son las funciones. Las funciones las podemos definir como trozos de código (scripts) encapsuladas entre unos corchetes y con un nombre (nombre de la función). Una vez definida la función podemos «llamarla» tantas veces como queramos, para que se ejecute el código.</p>

<p>Además, hay una cosa llamada «argumentos», que se los pasamos a la función para que sean un poco más «inteligentes».</p>

<p>Las ventajas están claras, ordenamos muchísimo el código y además lo reutilizamos, es decir, no tenemos que ir haciendo copia/pegar cuando necesitamos algo.</p>

<p>Veamos la clase para comprender mejor las ventajas y ver cómo podemos crear nuestras propias funciones:</p>

<p>Video: https://www.youtube.com/watch?v=JkYU4e_mTiM</p>

<p>¡Perfecto! Ahora que ya hemos visto la clase, comprendemos mejor cómo crear las funciones y para qué sirven.</p>

<p>No obstante ¡Esto no termina aquí! En la próxima clase analizaremos cómo podemos complicar todo esto un poquito más.</p>

<h2 id="10-creando-funciones-en-php-segunda-parte">10. Creando Funciones en PHP: Segunda parte</h2>

<p>En la clase anterior ya hemos visto cómo podíamos crear funciones y cómo le podíamos pasar argumentos a esas funciones ¿No? Pues bien, en esta clase nos vamos a complicar mucho más la vida y vamos a ver una de las partes más complicadas de las funciones.</p>

<p><strong>Pero ojo:</strong> El 90% de los programadores PHP no conocen lo que vamos a ver y el 99% lo utiliza.</p>

<p>Lo que quiere decir, que aunque es algo interesante saberlo y lo vemos porque me gustaría que aprendierais cuanto más mejor, no es algo que se suela utilizar en el día a día.</p>

<p>Con todo esto me estoy refiriendo a cómo pasar los argumentos referenciados (en c, punteros).</p>

<p>Realmente no es nada difícil si le prestamos atención, así que ¡Veamos la clase!</p>

<p>Video: https://www.youtube.com/watch?v=jOnlajRmvbc</p>

<p>Ahora que ya hemos visto la clase, queda claro que aunque es algo más avanzado no es tan complicado.</p>

<h2 id="hasta-aquí-llega-php">Hasta aquí llega PHP</h2>

<p>Esta es la décima clase y hasta aquí realmente llega la base de PHP, es decir, variables, funciones estructurales, como crear funciones ¿Qué más queréis aprender antes de ver los objetos?</p>

<p>Pues bien, no os preocupéis porque podemos ver muchas más cosas ¡Y las veremos!</p>

<p>Pero ahora os toca practicar, empezar a escribir código, repasar otros códigos e ir aprendiendo.</p>

<h2 id="11-formularios-en-php-get-y-post">11. Formularios en PHP: GET y POST</h2>

<p>Si estás aprendiendo PHP te habrás dado cuenta que «te falta por aprender algo» ¿Cómo podemos mandar información de una página a otra? ¿Cómo recogemos los datos de los formularios web con PHP?</p>

<p>Pues si todavía tienes esas dudas ¡No te preocupes! En esta clase aprenderemos todo lo necesario para poder trabajar con formularios en nuestras webs y poder recoger los datos con PHP, para trabajar con ellos ¡Genial! ¿No?</p>

<p>Antes de continuar, veamos la clase:</p>

<p>Video: https://www.youtube.com/watch?v=jOBZaxYWXvU</p>

<h2 id="formularios-en-php">Formularios en PHP</h2>

<p>Ahora que ya hemos visto la clase, ya podemos entender mejor cómo funcionan los formularios en php. Por otra parte tenemos los campos input (que ya deberíamos de conocerlos por el HMTL) y el tag &lt;form&gt;.</p>

<p>En dicha etiqueta tenemos que configurar dos cosas, el «action» y el «method», con el primero le indicamos «dónde queremos mandar la información (una URL)», con el segundo le decimos qué método de envío queremos utilizar el GET o el POST.</p>

<p>Recordemos que el método de envío GET se realiza mediante la URL, mientras que el método POST es transparente. Ninguno es mejor ni peor, son diferentes, por una parte, el GET se usa para generar URLs nuevas (como en los buscadores) ya que permite copiar y enviar la URL y al ejecutarla de nuevo aparecerá siempre lo mismo.</p>

<p>Por otra parte, gracias al POST podemos mandar datos «privados», además de asegurarnos de que no se manda varias veces el formulario (porque le haya dado a refrescar la página y se ejecute la URL).</p>

<h2 id="12-cookies-en-php">12. Cookies en PHP</h2>

<p>¿Alguna vez te has preguntado cómo puede saber Facebook que estamos ‘logueados’? ¿Cómo sabe cuando tiene que pedirnos el usuario y contraseña y cuando no? Pues bien, todas las plataformas funcionan igual, ya que el propio protocolo HTTP/s sólo nos permite hacerlo de una forma ¡Con las cookies! Así pues, en esta clase veremos cómo trabajar con cookies en PHP.</p>

<p>Antes de continuar hay que dejar clara dos cosas:</p>

<h2 id="las-cookies-no-son-de-php">Las cookies no son de PHP</h2>

<p>Lo primero que tenemos que tener muy claro es que las cookies no pertenecen al lenguaje de programación PHP. Sí es cierto que PHP nos permite trabajar con cookies, pero no les pertenece.</p>

<p>Entonces ¿De dónde salen las cookies? Y si no es de PHP… ¿A quién pertenecen?</p>

<p>Pues bien, realmente es muy sencillo, las cookies pertenecen al protocolo HTTP, y simplemente el servidor (funcione con PHP, con Java o con cualquier otro lenguaje de programación), manda trocitos de información (llamado cookies) al cliente (navegador) y se quedan en el navegador.</p>

<p>Más tarde, el navegador, por cada petición que realiza manda esta información al servidor (que de nuevo, la procesará en lenguaje de programación que utilice).</p>

<p>Dicho esto sólo queda decir una cosa antes de ver la clase.</p>

<h2 id="es-muy-fácil-trabajar-con-cookies-en-php">Es muy fácil trabajar con Cookies en PHP</h2>

<p>Puede que con la explicación anterior parezca que es muy difícil, pero tenéis que tener claro una cosa: Las cookies con PHP es una de las cosas más fáciles que existen. Así que no os preocupéis ¡Y vamos a ver la clase!</p>

<p>Video: https://www.youtube.com/watch?v=haMUpP-zJ3A</p>

<p>¡Perfecto!</p>

<p>Como acabamos de ver, trabajar con cookies en PHP es realmente sencillo ¿Verdad?</p>

<p>Pues ya está ¡Hasta aquí el curso básico de PHP! ¿Ahora qué os queda? Pensar una plataforma a realizar ¡Y crearla!</p>

<p>Recordad que después de este curso tenéis el de PHP con objetos ¡Nos vemos allí!</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Curso gratuito para aprender las bases de PHP: variables, operadores, condicionales, arrays, bucles, funciones, formularios y cookies.]]></summary></entry><entry><title type="html">¿Qué es y cómo minificar ficheros CSS y JS?</title><link href="https://luisperis.com/minificar-ficheros-css-js/" rel="alternate" type="text/html" title="¿Qué es y cómo minificar ficheros CSS y JS?" /><published>2017-12-25T13:15:44+00:00</published><updated>2017-12-25T13:15:44+00:00</updated><id>https://luisperis.com/minificar-ficheros-css-js</id><content type="html" xml:base="https://luisperis.com/minificar-ficheros-css-js/"><![CDATA[<p>Es posible hayas podido escuchar la palabra minificar (minify en inglés) y quizás incluso sepas que es muy positivo para el posicionamiento ¡Incluso Google lo indica! Pero ¿Qué es? ¿Cómo de importante es? ¿Qué ventajas tiene minificar? Y lo más importante ¿Cómo podemos minificar nuestros ficheros CSS?</p>

<p>Pues bien, en esta guía intentaré solventar todas vuestras dudas.</p>

<h2 id="qué-es-minificar-un-fichero-css">¿Qué es minificar un fichero CSS?</h2>

<p>Antes que nada, empecemos por el principio ¿Qué es minificar un fichero CSS?</p>

<p>Pues bueno, la respuesta «oficial» podría ser algo así como «minificar es la técnica por la cuál un fichero CSS o JavaScript se comprimen lo máximo posible sin perder funcionalidades».</p>

<p>Pero bueno, esto puede ser algo complejo ¿Comprimir? ¿En zip? Para que no haya dudas, os voy a incluir mi definición «de pueblo», que no es tan bonita, pero se entiende mejor: «Minificar, es reducir el tamaño de un fichero, eliminando todos los espacios, saltos de línea, tabulaciones y comentarios, creando un fichero (en la mayoría de casos) de una sola línea».</p>

<p>Ajá, es decir, sigue teniendo extensión «.css», lo que pasa es que se elimina todo lo que introducimos los humanos pero los ordenadores no necesitan, por ejemplo, los comentarios, las tabulaciones, algunos espacios y los saltos de línea (enter), nada de esto lo necesita el navegador para procesar CSS, simplemente lo ponemos porque somos humanos y necesitamos hacerlo de una forma ordenada 🙂</p>

<p>Ahora bien ¿Qué ventajas tiene minificar CSS? ¡Vamos a verlas!</p>

<h2 id="ventajas-de-minificar-css">Ventajas de minificar CSS</h2>

<p>Muchos piensan que la principal ventaja es que se reduce el tamaño del fichero (sobre un 20%), pero aunque esto es totalmente cierto, no es ni de lejos la principal ventaja, veamos cuales son.</p>

<h3 id="minificar-css-para-mejorar-el-posicionamiento-seo">Minificar CSS para mejorar el posicionamiento (SEO)</h3>

<p>Sin duda, hay muchas personas que no le importa que el fichero ocupe unos kbs de más o que sea unas milésimas de segundos la web un poco más lenta, sin duda, para muchos, lo más importante ¡Es el SEO, que la gente conozca la web!</p>

<p>Pues bien, incluso el propio Google no sólo recomienda minificar los ficheros CSS, sino que además deja bien claro que es algo que tiene en cuenta a la hora de posicionar la página web.</p>

<p>Lógicamente no es lo más importante, no nos engañemos, pero es algo que ayudará a que tu página web esté un poquito mejor posicionada.</p>

<h3 id="carga-de-la-web-más-rápida">Carga de la web más rápida</h3>

<p>Otro punto a tener en cuenta, ya no a nivel de SEO, sino de la experiencia del usuario es la velocidad de carga de la página web.</p>

<p>Pues bien, como es lógico, cuanto menos ocupa el CSS, más rápido se transferirá y más rápida será la página web, mejorando así la experiencia del usuario.</p>

<h3 id="seguridad-ante-robos">Seguridad ante robos</h3>

<p>Una de las razones por las que recomiendo minificar es porque así harás que robar tu código CSS (o JavaScript) sea más complicado.</p>

<p>Ya que, sí, podrá descargarlo, no obstante luego al abirlo, ya no estarán los comentarios (indicando como está organizado), además de que será ilegible para humanos, ya le tendrás que forzar a que haga un minificado inverso.</p>

<h2 id="cómo-minificar-ficheros-css">¿Cómo minificar ficheros CSS?</h2>

<p>Bueno, ya estamos convencidos de que hay que minificar los ficheros CSS, no obstante, ahora nos encontramos con un problema ¿Como podemos minificarlos?</p>

<p>Pues bien, no hay de que preocuparse, hay muchisimas formas de hacerlo, incluso google tiene su propia herramienta.</p>

<p>¡Veamos las principales opciones!</p>

<h3 id="minificar-css-online">Minificar CSS online</h3>

<p>Una de las opciones más rápidas (aunque quizás menos profesionales) es hacerlo desde cualquier página web que de esta opción. Por ejemplo la web <a href="https://cssminifier.com/">cssminifier</a> es genial para esto.</p>

<p>Simplemente, copias el código CSS en la columna de la izquierda de la web ¡Y listo! Te aparecerá el código minificado en la parte de la derecha.</p>

<p>Personalmente no me gusta esta opción ya que si luego cambias algo en el CSS general, tendrás que volver a la página web, introducir el código otra vez. Para para cosas rápidas, está genial.</p>

<h3 id="configurar-hostingcdn-para-minificar-css">Configurar hosting/CDN para minificar CSS</h3>

<p>Otra opción pasaría por configurar el hosting donde tengamos alojada la web para que cada vez que detecte una petición CSS, le mande una versión del fichero CSS minificado (ojo, no todos los hostings tienen esta opción).</p>

<p>También, si eres un usuario avanzado y has configurado un CDN (como un servidor que está entre el cliente y el servidor), muchas veces, empresas como cloudflare tienen la opción de servir a los visitantes de tu web los ficheros minificados (sin cambiar los del servidor).</p>

<h3 id="minificar-css-profesionalmente-con-un-programa">Minificar CSS profesionalmente con un programa</h3>

<p>Sin duda, una de mis opciones preferida para minificar ficheros es utilizar algún programa para windows/Mac, como por ejemplo, Koala.</p>

<p>Gracias a estos programas no sólo puedo minificar, sino que además detecta cuando has actualizado el CSS original y te crea/actualiza un fichero minificado. Así podrás probar tu fichero normal y luego simplemente añadir a tu web el fichero minificado.</p>

<p>Además de todo esto, te permite muchas más opciones, como por ejemplo juntar todos los ficheros CSS en uno sólo minificado.</p>

<p>Igualmente, recordad que en el curso de SASS aprenderemos a utilizar el Koala de forma profesional.</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><category term="Rendimiento y Aplicaciones" /><summary type="html"><![CDATA[Es posible hayas podido escuchar la palabra minificar (minify en inglés) y quizás incluso sepas que es muy positivo para el posicionamiento ¡Incluso Google lo indica! Pero ¿Qué es? ¿Cómo de...]]></summary></entry><entry><title type="html">¿Programar bajo WordPress o desde cero?</title><link href="https://luisperis.com/programar-wordpress-desde-cero/" rel="alternate" type="text/html" title="¿Programar bajo WordPress o desde cero?" /><published>2017-12-04T08:20:43+00:00</published><updated>2017-12-04T08:20:43+00:00</updated><id>https://luisperis.com/programar-wordpress-desde-cero</id><content type="html" xml:base="https://luisperis.com/programar-wordpress-desde-cero/"><![CDATA[<p>Una duda que me encuentro mucho y no sólo en programadores, sino también en profesionales que buscan delegar de la forma más eficiente posible, es la siguiente ¿Qué es mejor? ¿Programar una plataforma bajo WordPress o mejor hacerlo desde cero?</p>

<p>Pues bien, en este artículo voy a intentar arrojar luz sobre este asunto, basándonos en datos puramente objetivos (económicos, velocidad, potencia, funciones, etc.), eso sí, desde ya os digo que desconfíes de cualquier persona que diga tener la verdad absoluta, ya que todo dependerá de lo que necesites, ya que un Ferrari puede ser un coche muy potente, pero quizás no nos haga falta tanta potencia o directamente no la vamos a poder pagar.</p>

<p>Es decir, todo dependerá de las circunstancias, pero bueno ¡Veamos las ventajas y desventajas de cada opción!</p>

<h2 id="programar-bajo-wordpress">Programar bajo WordPress</h2>

<p>Muchas personas piensan que WordPress sólo sirve para hacer página web y blogs o como mucho, tiendas online con algún plugin tipo woocomerce.</p>

<p>Pero la verdad es que con WordPress puedes hacer casi cualquier cosa, de hecho, existen redes sociales con millones de usuarios registrados que están basadas en WordPress, así como plataformas de alquiler de coches, empresas inmobiliarias, etc.</p>

<p>Tenemos que ver WordPress como si fuera la base de un programa en el que podemos hacer dos cosas:</p>

<ol>
  <li>Instalar plugins</li>
  <li>Crear nuestros propios plugins</li>
</ol>

<p>Una de las ventajas de usar WordPress para un proyecto es que existen miles de plugins (como mini-módulos), por lo que podemos instalar WordPress (la base) y luego ir creando nuestra plataforma con esos módulos (pagos con paypal, formularios, newsletter…)</p>

<p>Pero claro, si es una plataforma muy personalizada, es posible que no existan ciertos plugins, en ese caso, sólo tendremos que crear esos módulos específicos, pero nos habremos ahorrado el 90% del trabajo (gestión de usuarios, pasarela de pagos, etc.).</p>

<p>Pero para verlo todo en perspectiva, veamos las ventajas y desventajas.</p>

<h3 id="ventajas-de-programar-bajo-wordpress">Ventajas de programar bajo WordPress</h3>

<ol>
  <li>Desarrollo mucho más rápido</li>
  <li>Al poder instalar plugins con un click, puedes tener una plataforma más potente (más opciones).</li>
  <li>Más fácil de implementar actualizaciones o mejoras a tu proyecto.</li>
  <li>WordPress es como un estándar, por lo que podrá programar sobre él, otro programador que no conoce el código.</li>
  <li>Mucho, pero mucho más barato, en algunas ocasiones, puede ser hasta 10 veces más barato, el mismo proyecto bajo WordPress que desde cero.</li>
</ol>

<h3 id="desventajas-de-programar-bajo-wordpress">Desventajas de programar bajo WordPress</h3>

<ol>
  <li>Antes que nada, la seguridad, tienes que actualizar semanalmente.</li>
  <li>Más lento que una programación desde cero.</li>
  <li>Soporta menos usuarios simultáneos que un desarrollo desde cero, por lo que puede empezar a dar problemas si superas el millón de visitas al mes.</li>
</ol>

<h2 id="programar-desde-cero">Programar desde cero</h2>

<p>Bien, tenemos claro las ventajas y desventajas de programar una plataforma bajo WordPress, pero ¿Qué pasa si lo hacemos desde cero?</p>

<p>Pues bueno, como es lógico, al hacerlo desde cero tendremos que programar absolutamente todo, incluida la base de datos, el sistema de registros, logins, seguridad, validaciones, etc.</p>

<p>Lógicamente podemos usar algún “framework” como por ejemplo CodeIgniter que nos permita programar más rápido (una especie de mini-wordpress sin base de datos), pero tenemos que ser conscientes de que no será igual que programar bajo WordPress.</p>

<p>Ojo, no es peor, es simplemente diferente, con unas ventajas y unas desventajas, veamos cuales son.</p>

<h3 id="ventajas-de-programar-desde-cero">Ventajas de programar desde cero</h3>

<ol>
  <li>Tendremos un control total sobre el proyecto.</li>
  <li>Tendremos un rendimiento muy superior, lo que nos permitirá soportar más visitas en el mismo servidor (nos saldrá más barato los servidores).</li>
  <li>La web/plataforma se cargará más rápida.</li>
  <li>La seguridad será mayor, ya que no nos podrán atacar con las vulnerabilidades de WordPress.</li>
  <li>La plataforma puede ser más escalable (importante si el proyecto crece).</li>
</ol>

<h3 id="desventajas-de-programar-desde-cero">Desventajas de programar desde cero</h3>

<ol>
  <li>Desarrollo mucho más lento.</li>
  <li>Se tarda más en programar, lo que significa un aumento considerable del precio final (hasta 10 veces el precio de hacerlo con WordPress).</li>
  <li>Cada mejora hay que programarla (no sirven plugins de WordPress).</li>
</ol>

<h2 id="programar-bajo-wordpress-o-desde-cero">Programar bajo WordPress o desde cero</h2>

<p>Como podemos observar, todo dependerá finalmente de las características de nuestro proyecto, si realmente lo podemos hacer con WordPress o necesitamos sí o sí hacerlo desde cero.</p>

<p>No obstante, cada vez más startups lanzan su plataforma basada en WordPress y cuando consiguen millones de peticiones al mes, ya miran si les interesa o no cambiarse a una programación desde cero.</p>

<p>Tenemos que tener en cuenta, que WordPress puede soportar millones de peticiones al mes sin problema, por lo que no es de extrañar que cuando empiece a ser un problema, la empresa esté facturando más de 100.000€/mes gracias a la plataforma, por lo que pueden permitirse entonces cambiar de plataforma.</p>

<h2 id="podcast-consultor-it">Podcast Consultor IT</h2>

<p>Puesto que es un tema muy interesante y en este artículo sólo hemos tocado la superficie, he realizado un podcast muy interesante donde entro más en detalle.</p>

<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_22428743_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<table>
  <tbody>
    <tr>
      <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
      <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
      <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
    </tr>
  </tbody>
</table>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Una duda que me encuentro mucho y no sólo en programadores, sino también en profesionales que buscan delegar de la forma más eficiente posible, es la siguiente ¿Qué es mejor? ¿Programar una...]]></summary></entry><entry><title type="html">SASS: CSS como lenguaje de programación</title><link href="https://luisperis.com/sass-css-lenguaje-programacion/" rel="alternate" type="text/html" title="SASS: CSS como lenguaje de programación" /><published>2017-11-17T22:53:09+00:00</published><updated>2017-11-17T22:53:09+00:00</updated><id>https://luisperis.com/sass-css-lenguaje-programacion</id><content type="html" xml:base="https://luisperis.com/sass-css-lenguaje-programacion/"><![CDATA[<p>Para quien no lo haya utilizado nunca, el CSS está genial, es un lenguaje de estilos (que no de programación) que nos permite hacer las páginas web más bonitas. Nos permite indicar colores, anchura, altura, imágenes, posiciones, tamaños de letras ¡Todo lo que tenga que ver con el diseño!</p>

<p>De hecho, CSS ha evolucionado muchísimo, sobretodo para tener sólo 20 años de edad (que es relativamente poco), pero la verdad es que al ser un lenguaje de estilos y no un lenguaje de programación, cuando hacemos proyectos más o menos grandes, se nos puede quedar pequeño.</p>

<p>Por ello, en este artículo vamos a ver CSS como lenguaje de programación.</p>

<h2 id="problemas-que-tiene-css">Problemas que tiene CSS</h2>

<p>Como comentaba en la introducción, CSS está genial como lenguaje de estilos, podemos hacer realmente virguerías, incluso tenemos las media-queries para que, dependiendo si se visualiza en un móvil o en un ordenador, se apliquen diferentes estilos.</p>

<p>Lo que sucede es que esto está perfecto cuando tenemos un CSS con 200 líneas de código, pero si tenemos más de 1000, empieza a complicarse la cosa ¿No? ¿Cómo podemos ordenar el código?</p>

<p>Pues bueno, ahora imagínate grandes plataformas como Amazon, eBay, Facebook, hablamos de cientos de miles de líneas de código CSS ¡Tenemos que ordenarlo de alguna forma!</p>

<p>Y no sólo es que CSS no permite ordenar de una forma “potente” el código, sino que además ¡No tenemos variables! Y esto es muy importante.</p>

<p>Imagínate por un segundo que Facebook, que tiene un color azul, por estudios que realiza, se da cuenta que si pone un azul un poco más oscuro, la gente se siente más cómoda y se queda más tiempo en la web (puro marketing). ¿Qué tendría que hacer? ¿Revisar 250.000 líneas de código y cambiarlos todo? ¡Mejor sería tener una variable con el color hexadecimal y simplemente cambiar ese valor y que se cambie en todas partes!</p>

<p>Justo, para todo esto, tenemos SASS ¡Veamos qué es!</p>

<h2 id="sass-css-como-lenguaje-de-programación">SASS: CSS como lenguaje de programación</h2>

<p>Para los que no sepan lo que es SASS, empezaré diciendo que es una especie de CSS dopado. Es como si juntáramos todo CSS y un poco de los lenguajes de programación.</p>

<p>Es importante que entendamos algo, los navegadores no pueden ejecutar SASS, sólo pueden ejecutar CSS.</p>

<p>Por lo que, tendremos que diseñar nuestra web con SASS y luego, con alguno de los muchos programas que existen, nos «traducirá» SASS a CSS, y ya, ese fichero es el que podemos utilizar en el navegador.</p>

<p>Así que ¡Veamos que podemos hacer realmente con SASS!</p>

<h2 id="las-ventajas-de-utilizar-sass">Las ventajas de utilizar SASS</h2>

<p>Sin duda, utilizar SASS tiene muchísimas ventajas, pero para no hacer un artículo, kilométrico, veamos las principales y las que yo utilizo con mayor frecuencia:</p>

<h3 id="variables-en-css">Variables en CSS</h3>

<p>Sin duda, una de las ventajas por la que cada vez más empresas utilizan SASS en vez de CSS, es por la posibilidad de utilizar variables ¡Imagínate el poder!</p>

<p>Puedes declarar todas las variables que quieras (colores, tipo de letra, etc.) y luego utilizarlas en el código, en el momento que quieras, así, si algún día quieres cambiar el tipo de letra o el color, no tendrás que revisar miles de líneas, sino, simplemente cambiar ese valor.</p>

<p>Veamos un ejemplo:</p>

<p><strong>$font-stack:</strong> Helvetica, sans-serif
 <strong>$primary-color:</strong> #333</p>

<p>body</p>

<p>font: 100% <strong>$font-stack</strong>
 color: <strong>$primary-color</strong></p>

<p>Tenemos que pensar que esas variables las podremos utilizar siempre que queramos, no una sola vez ¿Os dais cuenta del potencial?</p>

<h3 id="estructura-anidada">Estructura anidada</h3>

<p>Una de las cosas que más rabia me da CSS es que no siga el patrón de las herencias como en HTML, es decir, en HTML, si quiero un &lt;h1&gt; dentro de un &lt;div&gt; simplemente tendría que meterlo dentro, por ejemplo:</p>

<p>&lt;div class=»inicio»&gt;</p>

<h1>Soy un título</h1>

<p>&lt;/div&gt;</p>

<p>No obstante, en CSS, como ya sabemos, no podemos meter selectores dentro de selectores, si no que tendríamos que hacer lo siguiente</p>

<p>.inicio{</p>

<p>background: red;</p>

<p>}</p>

<p>.inicio h1{</p>

<p>color: blue;</p>

<p>}</p>

<p>Pues bien, con SASS ¡Eso se acabó! Podemos hacerlo de la siguiente forma</p>

<p>.inicio</p>

<p>background: red</p>

<p>h1</p>

<p>color: blue</p>

<p>Aunque es un poco incómodo que no tenga los corchetes como delimitadores { }, sin duda es mucho más potente, ya que nos permite agrupar un contenido de forma muy sencilla.</p>

<p>Recordemos que cuando hacemos una página web importante y con muchas páginas/secciones, si no anidamos todo correctamente, se nos ejecutará código CSS donde no queremos ¡Gracias a SASS nos ahorramos este problema!</p>

<h2 id="importar-ficheros">Importar ficheros</h2>

<p>Otra gran ventaja que incorpora SASS es que nos permite juntar varios ficheros en uno solo.</p>

<p>Es decir, es posible que para ordenar todo el código, hayamos creado diferentes ficheros (para diferentes páginas de nuestra web), pues bien, gracias a SASS, podemos hacer, que una vez esté todo el código listo, se genere un único fichero CSS con todo el código de todos los ficheros.</p>

<p>Gracias a esto te ahorrarás que al visitar tu web la gente haga diferente peticiones a diferente ficheros CSS, es decir, conseguirás que tu web, vaya un poco más rápida.</p>

<h2 id="scss-otro-formato-para-utilizar-sass">SCSS: Otro formato para utilizar SASS</h2>

<p>SASS está genial, de verdad, está muy bien, pero a mucha gente (yo incluido) hay algo que nos chirriaba y no nos gustaba y es que no respetara la sintaxis de CSS, es decir, no soportara las llaves { }, ni el punto y coma tan característico ;</p>

<p>Así que lo que hicieron des, fue crear dentro de SASS, una nueva estructura de código llamada SCSS (Súper CSS), que aunque parezca difícil de entender, lo podemos resumir en que podemos usar la sintaxis de CSS para SASS.</p>

<p>Por ejemplo, este código SASS:</p>

<p>.inicio</p>

<p>background: red</p>

<p>h1</p>

<p>color: blue</p>

<p>Pasaría a ser el siguiente en SCSS:</p>

<p>.inicio{</p>

<p>background: red;</p>

<p>h1{</p>

<p>color: blue;</p>

<p>}</p>

<p>}</p>

<p>Y al compilarlo en CSS quedaría así:</p>

<p>.inicio{ background: red; }
.inicio h1{ color: blue; }</p>

<p>¿Increíble verdad?</p>

<h2 id="resumen-y-curso">Resumen y curso</h2>

<p>Como podemos ver, SASS/SCSS es muy potente, y crea un antes y un después a la hora de diseñar páginas web con CSS, por ello mismo, por si deseas aprender a utilizarlo he publicado un curso donde podrás aprender todo lo que hemos visto en este artículo y muchísimas cosas más.</p>

<p><strong>Conseguir videotutorial SASS/SCSS</strong></p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Para quien no lo haya utilizado nunca, el CSS está genial, es un lenguaje de estilos (que no de programación) que nos permite hacer las páginas web más bonitas. Nos permite indicar colores,...]]></summary></entry><entry><title type="html">Google Cloud y bases de datos MySQL</title><link href="https://luisperis.com/google-cloud-bases-datos-mysql/" rel="alternate" type="text/html" title="Google Cloud y bases de datos MySQL" /><published>2017-11-13T07:00:59+00:00</published><updated>2017-11-13T07:00:59+00:00</updated><id>https://luisperis.com/google-cloud-bases-datos-mysql</id><content type="html" xml:base="https://luisperis.com/google-cloud-bases-datos-mysql/"><![CDATA[<p>Como muchos ya sabréis, tengo varios proyectos (wailux, rankoogle, keinas…) que necesitan, no sólo base de datos potentes, sino también copias de seguridad diarias y externas, por ello he estado probando diferentes empresas Cloud (Google, Microsoft, etc.), la semana pasada ya comenté mi experiencia con Microsoft Azure para bases de datos MySQL.</p>

<p>No obstante, esta semana analizaré mi experiencia, contratando y usando Google Cloud para bases de datos MySQL.</p>

<h2 id="qué-es-google-cloud">¿Qué es Google Cloud?</h2>

<p>Antes que nada, para quién no lo sepa, Google Cloud es la solución de cloud computing que Google ofrece a empresas.</p>

<p>Aunque Google es una gran empresa y sus servicios tienen la calidad de estar gestionados por Google, realmente dicha solución no es tan conocida como Microsoft Azure o el famoso Amazon Web Service.</p>

<p>Entre todas las soluciones que se enmarcan dentro de Google Cloud, hay una solución cloud que me interesaba tanto a mi, como a todos los que queríamos externalizar nuestra base de datos MySQL, así que le he dado una oportunidad y lo he estado probando.</p>

<h2 id="registro-en-google-cloud">Registro en Google Cloud</h2>

<p>Lo primero que vemos nada más registrarnos, es que nos regalan $300 para gastar durante los siguientes 12 meses ¡Eso está genial!</p>

<p>De hecho, me chocó mucho, ya que Microsoft Azure ofrecía “$300 durante los siguientes 30 días, sin gastos ocultos”. Por lo que supuse que no era más que una estrategia de Marketing.</p>

<p>Pues bien, para poder acceder y probar el servicio, te pedía una tarjeta de débito/crédito «sólo para verificarte». De hecho, no es nada raro, ya que es una forma de controlar que no te registren 100 veces para así llevarte 100 veces los $300 en sus productos.</p>

<p>Así pues, una vez registrados en Google Cloud, ya podemos adquirir nuestros primeros servicios.</p>

<h2 id="mysql-en-google-cloud">MySQL en Google Cloud</h2>

<p>Google categoriza sus soluciones MySQL como «Primera Generación» (viejos, menos potentes) y «Segunda Generación», según ellos, más rápidos, potentes y baratos.</p>

<p>Pues bien, antes que nada, hay que indicar que Google parece no ofrecer bases de datos MySQL, sino que la única solución cloud que ofrece son servidores MySQL, es decir, pagas una cantidad al mes y puedes crear todas las bases de datos que quieras.</p>

<p>Así pues, me decidí a probar los servidores MySQL y aquí es donde empezaron los problemas.</p>

<p>Y es que el problema comienza cuando creas una instancia de Segunda Generación, ya que lo ponen todo muy bonito y si no despliegas las «opciones avanzadas», te estará creando una instancia MySQL de 50€/mes, con todos los complementos (que no son gratuitos), por lo que no sería raro que llegara a superar los 100€/mes, cuando en la home ofrecen sus bases de datos sobre 5€/mes.</p>

<p>El problema continua cuando seleccionas las opciones avanzadas, te salen desplegables con poca información y sin precios en ningún momento de lo que estás seleccionando.</p>

<p>Así, que para ver los precios, me iba a la home de Google Cloud e iba comparando lo que seleccionaba y el precio que tenía (en páginas separadas). Bien, pues al seleccionar los más barato, Google Cloud te indica «estos servidores son poco potente y están pensado para pruebas, por nuestra política, no puedes usarlos en producción».</p>

<p>Es decir, precios totalmente ocultos, servicios que no funcionan por ser «muy baratos» y una facturación que parece ser que hasta el mes siguiente no te aparece cuanto estás pagando.</p>

<h2 id="resumen-y-podcast">Resumen y podcast</h2>

<p>Este tipo de servicios (cloud computing), es conocido por no saber cuanto acabas pagando, es normal en este sector, el camuflar ciertos precios, pero sin duda, una empresa como Google, que no suelen ocultar nada, tiene mucho que mejorar de otras empresas como Microsoft Azure.</p>

<p>Igualmente, no todo es malo en Google Cloud, por ello, para poder indicar las ventajas y desventajas he grabado un Podcast donde me explayo más y entro más en materia:</p>

<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_22016124_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<table>
  <tbody>
    <tr>
      <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
      <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
      <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
    </tr>
  </tbody>
</table>]]></content><author><name>Luis Peris</name></author><category term="Podcast" /><category term="Programación" /><category term="Rendimiento y Aplicaciones" /><summary type="html"><![CDATA[Como muchos ya sabréis, tengo varios proyectos (wailux, rankoogle, keinas…) que necesitan, no sólo base de datos potentes, sino también copias de seguridad diarias y externas, por ello he estado...]]></summary></entry><entry><title type="html">Bases de datos MySQL en Microsoft Azure</title><link href="https://luisperis.com/bases-datos-mysql-microsoft-azure/" rel="alternate" type="text/html" title="Bases de datos MySQL en Microsoft Azure" /><published>2017-11-06T21:11:53+00:00</published><updated>2017-11-06T21:11:53+00:00</updated><id>https://luisperis.com/bases-datos-mysql-microsoft-azure</id><content type="html" xml:base="https://luisperis.com/bases-datos-mysql-microsoft-azure/"><![CDATA[<p>Muchas veces, cuando tenemos un gran proyecto, nos preocupamos por las bases de datos, ya que normalmente, los datos que contienen es lo más valioso del proyecto, pero, aunque existen 10.000 soluciones enfocadas hacia el “alojamiento/hosting”, existen pocas soluciones sencillas para externalizar las bases de datos, veamos una de ellas.</p>

<h2 id="externalizar-mysql">Externalizar MySQL</h2>

<p>Como he comentado en artículos anteriores, tengo varios proyectos creciendos y aunque el alojamiento en servidores o VPS no es un problema, si me ha preocupado mucho las bases de datos, ya que, los servidores no incorporan ningún sistema de backups y aunque te programes uno, el backup se guardará casi seguro en el mismo servidor donde está la base de datos, por lo que pierde “el sentido” y si el servidor se corrompe, lo pierdes todo.</p>

<p>Bien es cierto, que hay soluciones, como hacer backups en otros servidores, contratar alguna empresa que se encargue de ellos, etc.</p>

<p>Pero entonces surge otro problema, quizás el VPS o servidor sea suficiente potente para ejecutar PHP o Java sin problemas, pero quizás, si la base de datos es muy grande, se vuelva lenta ¿Vamos a cambiar el servidor sólo por la base de datos?</p>

<p>Aquí es donde entra la externalización y mis primeras pruebas con Microsoft Azure.</p>

<h2 id="mysql-en-microsoft-azure">MySQL en Microsoft Azure</h2>

<p>Para quien no lo sepa, Azure es la solución cloud computing de Microsoft para empresas, según dicen, el 80% de las 500 empresas más grandes del mundo, lo utilizan.</p>

<p>Pues bien, tienen un par de servicios referente a MySQL muy interesantes y que veremos ahora mismo.</p>

<p>Antes de continuar quiero indicar que si te registras por primera vez, te dan 300$ para probar durante el primer mes, sin gastos ocultos, y que no se te renovará automáticamente a “de pago”.</p>

<p>Esto es un punto positivo ya que mi principal temor por mi experiencia pasada con la Cloud es que te intentaban cobrar por todo lo oculto y sin que te des cuenta, esto pasa bastante con Amazon Web Service y Google Cloud (que ya lo veremos en otro artículo).</p>

<p>Pues bien, en Microsoft Azure hay dos servicios relacionados con MySQL que nos pueden interesar ¡Veámoslos!</p>

<h2 id="base-de-datos-únicas-mysql-en-azure">Base de datos únicas MySQL en Azure</h2>

<p>Las bases de datos únicas de Azure, es simplemente una base de datos, ya está, sólo una. Esto que parece algo “lógico”, no es así, ya que normalmente las empresas cloud ofrecen servidores MySQL (más caros), donde puedes crear todas las bases de datos que quieras.</p>

<p>Pero esta vez no, gracias a este tipo de bases de datos, podrás externalizar tu base de datos a Microsoft desde 3.50€ por 250Mb de espacio (recordemos que una base de datos de 100Mb es enorme, normalmente se usa menos de 30Mb para wordpress, por ejemplo).</p>

<p>Además, cuando necesitemos más potencia o espacio, con unos simples clicks podremos cambiar a una base de datos superior.</p>

<p>Lógicamente, tendremos backups automáticos de los últimos días fáciles de descargar.</p>

<p>Y si lo que quieres, es tener una base de dato en Azure, de forma gratuita ¡Estás de suerte! Azure te permite contratar por 0€, una base de datos de 20Mb.</p>

<h2 id="servidores-mysql-en-azure">Servidores MySQL en Azure</h2>

<p>Aunque las bases de datos que acabamos de ver, están genial, quizás te interese más contratar un servidor MySQL de Azure para que tengas bases de datos ilimitadas.
Ellos se ocupan de toda la gestión del servidor y tú, simplemente, tendrás que crear las bases de datos, usuarios, reglas de conexión, etc.</p>

<p>La principal ventaja está clara y es que podemos crear tantas bases de datos como queramos desde tan sólo 12€/mes el servidor.</p>

<p>Lógicamente, si necesitamos más espacio o potencial, siempre podremos hacer un upgrade con unos simples clicks.</p>

<p>Además tiene un panel de control enorme desde donde podrás realizar cientos de configuraciones que te permitirán controlar hasta el último parámetro.</p>

<p>No obstante, si tuviera que encontrarle alguna desventaje a este fantástico producto, sería que, aunque se realizan backups diarios de forma automática, no puedes restaurar o descargar una base de datos de hace unos días, sino que se genera otra instancia similar y tienes que acceder por phpmyadmin o cualquier otro programa a descargarla.</p>

<p>Es decir, en el tema del backup, al ser un servidor y no una base de datos, es (un poco) más engorroso.</p>

<h2 id="podcast">Podcast</h2>

<p>Sin duda, las bases de datos MySQL en Microsoft Azure, el potencial que tienen, las ventajas y desventajas, es un tema más que da para más de un artículo, por ello, he realizado un podcast donde entro más en materia.</p>

<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_21908201_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<table>
  <tbody>
    <tr>
      <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
      <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
      <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
    </tr>
  </tbody>
</table>]]></content><author><name>Luis Peris</name></author><category term="Podcast" /><category term="Programación" /><category term="Rendimiento y Aplicaciones" /><summary type="html"><![CDATA[Muchas veces, cuando tenemos un gran proyecto, nos preocupamos por las bases de datos, ya que normalmente, los datos que contienen es lo más valioso del proyecto, pero, aunque existen 10.000...]]></summary></entry><entry><title type="html">Programar correctamente con objetos en PHP</title><link href="https://luisperis.com/programar-correctamente-objetos-php/" rel="alternate" type="text/html" title="Programar correctamente con objetos en PHP" /><published>2017-10-29T17:51:37+00:00</published><updated>2017-10-29T17:51:37+00:00</updated><id>https://luisperis.com/programar-correctamente-objetos-php</id><content type="html" xml:base="https://luisperis.com/programar-correctamente-objetos-php/"><![CDATA[<p>Como muchos ya sabréis, además de ser emprendedor y programador freelance, también soy formador especializado en programación de aplicaciones web. Gracias a todo esto, veo mucho código, de muchas personas, por lo que puedo ver los principales errores que se cometen una vez se empieza a programar objetos en PHP.</p>

<p>Así pues, este artículo, está destinado a todos los programadores junior que ya están programando con objetos en PHP (aunque algunos consejos podrían servir para otros lenguajes).</p>

<h2 id="qué-es-la-programación-orientada-a-objetos-en-php">¿Qué es la programación orientada a objetos en PHP?</h2>

<p>Para poder ser buenos programadores, tenemos que hacer una cosa antes de tocar nada, y es, entender correctamente qué es la programación orientada a objetos en PHP.</p>

<p>Sí, sí, puede parecer una locura, pero… Que levante la mano quien sepa la diferencia entre la programación orientada a objetos y la programación funcional o que es un lenguaje de programación multiparadigma.</p>

<p>Para que nos hagamos una idea de que son los objetos, a mi me gusta decir que los objetos son mini-programitas inteligentes e independientes.</p>

<p>Ojo a la definición “inteligentes e independientes”. Esto es algo que deberemos de recordar, ya que sino, los objetos acaban siendo “tontos y dependientes”.</p>

<h2 id="programar-correctamente-con-objetos-en-php">Programar correctamente con objetos en PHP</h2>

<p>Sin duda hay decenas de consejos que podría dar para mejorar la programación con objetos en PHP, no obstante, en esta ocasión nos basaremos en los tres errores más comunes y que no respetan “mi definición” de “programas independientes e inteligentes”.</p>

<p>¡Vamos a verlos!</p>

<h3 id="los-métodosfunciones-en-php-siempre-tienen-que-devolver-algo">Los métodos/funciones en PHP siempre tienen que devolver algo</h3>

<p>El primer error que me encuentro mucho (pero mucho), es que muchos programadores crean métodos en los objetos que no devuelven nada.</p>

<p>Esto es posible, porque quizás el método guarda algo en la base de datos y no se espera ningún resultado o simplemente porque utiliza un “echo”, pero esto, sea como sea, es un error. Los métodos y las funciones siempre deberían de devolver algo.</p>

<p>Si por ejemplo, guardamos algo en la base de datos, podríamos hacer que devolviera un “true” si todo ha ido correctamente o un “false” si ha ocurrido algún error.</p>

<h3 id="los-métodos-o-funciones-en-php-nunca-deberían-de-mostrar-nada">Los métodos o funciones en PHP nunca deberían de mostrar nada</h3>

<p>Otro error, relacionado con el primero, es que los métodos o funciones en PHP nunca deberían de mostrar nada, es decir, está terminantemente prohibido utilizar un “echo” o un “print” o cualquier otra función que muestre algo por pantalla.</p>

<p>¿La razón?</p>

<p>Pues que dejará de ser “independiente”, tenemos que ver los objetos como si fueran programas inteligentes e independientes, que podamos coger de un proyecto y llevarlo a otro, sin tocar nada de código.</p>

<p>Si le metemos un “echo”, entonces, si queremos usar ese método para mostrar otra cosa ya no nos dejará.</p>

<p>Entonces ¿Cómo lo debemos de hacer? Fácil ¡Con un return!</p>

<h3 id="nunca-recoger-datos-postget-en-un-objeto-en-php">Nunca recoger datos POST/GET en un objeto en PHP</h3>

<p>Otro error que cometemos mucho los programadores, es que recogemos los datos de tipo POST/GET (es decir, de formularios normalmente) dentro del objeto y esto es erróneo.</p>

<p>Pero ¿Por qué no debe de hacer? Vale, pongamos un ejemplo:</p>

<p>Si recogemos un formulario de tipo POST, deberíamos de saber cuál es el nombre de las variables, pongamos que son $_POST[“name”] y $_POST[“apellido”].</p>

<p>Perfecto, cuando lo programemos funcionará ¿Pero qué sucederá si modificamos la interfaz? ¿Y si nos llevamos el objeto a otro proyecto?</p>

<p>Tarde o temprano tendremos errores. Entonces ¿Qué opciones tengo?</p>

<p>Pues muy fácil, simplemente tendremos que pasar las variables como argumentos de la función ¡Así de fácil!</p>

<h2 id="repasemos-conceptos">Repasemos conceptos</h2>

<p>Como comprendo que un artículo puede ser mucho más complicado de entender que un vídeo, he grabado y subido un vídeo a youtube donde os explico con ejemplo estos tres errores y sus soluciones:</p>

<div class="embed">
<iframe src="https://www.youtube.com/embed/IAxLZPpM7Dc?feature=oembed" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Como muchos ya sabréis, además de ser emprendedor y programador freelance, también soy formador especializado en programación de aplicaciones web. Gracias a todo esto, veo mucho código, de muchas...]]></summary></entry><entry><title type="html">Ordenando el código en PHP</title><link href="https://luisperis.com/ordenando-codigo-php/" rel="alternate" type="text/html" title="Ordenando el código en PHP" /><published>2017-10-17T23:42:37+00:00</published><updated>2017-10-17T23:42:37+00:00</updated><id>https://luisperis.com/ordenando-codigo-php</id><content type="html" xml:base="https://luisperis.com/ordenando-codigo-php/"><![CDATA[<h1 id="ordenando-el-código-en-php">Ordenando el código en PHP</h1>

<p>Estoy más que acostumbrado a estudiar programas/plataformas PHP desarrollado por otras personas, muchas veces (como en el caso de mis alumnos), personas que acaban de empezar en el mundo de la programación.</p>

<p>Y algo que desde el principio intento enseñarles, es a ordenar el código PHP, ojo, no sólo porque sea mejor para ellos, sino porque sino, el mismo código, se me hace extremadamente complicado de leer a mi mismo.</p>

<p>Así pues, en este artículo voy a intentar dar unos cuantos tips para tener un código mucho más ordenado, pero antes (aunque parezca lógico), vamos a dar las unas razones para ordenar bien el código</p>

<h2 id="razones-para-ordenar-el-código-php">Razones para ordenar el código PHP</h2>

<p>Muchas veces, sobretodo, cuando se empieza en el mundo de la programación, no se da la suficiente importancia a ordenar al código, total, no afecta al funcionamiento del programa ¿No?</p>

<p>Pues bien, esta parte del artículo está especialmente pensada para todos los nuevos programadores (bienvenidos a este increible mundo) que opinan que no es necesario ser meticuloso a la hora de ordenar el código ¡Veamos las ventajas de ordenar el código!</p>

<h3 id="otros-programadores-te-pueden-ayudar">Otros programadores te pueden ayudar</h3>

<p>Un punto muy importante, sobretodo cuando estás empezando en este fantástico mundo de la programación es que otras personas te pueden ayudar a programar.</p>

<p>Si pides ayuda a alguien o subes tu código a un foro de programadores, como no esté bien ordenado, nadie te ayudará.</p>

<p>Yo mismo he respondido a usuarios que me pedían ayuda que “su código es ilegible” ¿Puedo ser un borde? Puede ser, pero es que es HORRIBLE leer un código que no está ordenado, el que lo ha programado lo entenderá, nadie más.</p>

<p>Cuando un alumno mío me manda un código así, lo primero que le enseño es a organizarlo. Cogemos  el código que me ha mandado y lo ordenamos y luego ya resuelvo la duda.</p>

<p>Puedes programar “mal” (y poco a poco ir aprendiendo), pero ¡Programa organizado!</p>

<h3 id="estructura-mejor-definida">Estructura mejor definida</h3>

<p>Otra ventaja de organizar bien el código (hacerlo bonito), es que eres consciente de lo que hace tu programa en cada línea, no tienes que ir revisando el resto del código para entenderlo.</p>

<p>Esto te ayudará muchísimo, ya que de un vistazo sabrás lo que hace el programa y lo más importante, cómo lo hace.</p>

<h3 id="cometes-muchos-menos-errores">Cometes muchos menos errores</h3>

<p>Otra ventaja de organizar el código es que cometes muchos menos errores, esto lo tengo más que comprobado. Los alumnos que organizan mejor el código tienden a cometer menos errores de sintaxis que los alumnos que no lo ordenan ¡Ojo! ¡Aunque los que no lo ordenan sepan mucho más!</p>

<p>Además, luego está el tema de las repeticiones, las personas que no organizan el código tienden a duplicar el código, en ocasiones por error, realizan dos <em>foreach</em> en vez de uno o declaran varias veces la misma variable.</p>

<h3 id="programas-mucho-mucho-más-rápido">Programas mucho, mucho más rápido</h3>

<p>Y la mejor sin duda, para el final y es que, ordenando el código, se programa mucho, pero mucho más rápido.</p>

<p>Seguramente, ya que al tener el código ordenado, te permita tener una visión global, de por donde vas, qué hace cada cosa y cómo continuar.</p>

<p>Así pues, ahora que ya hemos visto las ventajas, veamos cómo podemos ordenar nuestro código.</p>

<h2 id="comentario-en-php">Comentario en PHP</h2>

<p>Empecemos hablando de los comentarios en PHP, dando por hecho que sabemos crear comentarios en PHP (ya haré otro artículo, hablando sólo de los diferentes tipos de comentario).</p>

<p>Pero veamos los principales consejos que debemos tener en cuenta a la hora de poner comentarios:</p>

<h3 id="encima-de-lo-referenciado-y-con-las-mismas-tabulaciones">Encima de lo referenciado y con las mismas tabulaciones</h3>

<p>Lo primero que tenemos que hacer al comentar el código es posicionarnos justo encima del código que queremos comentar, además, con las mismas tabulaciones, es decir, si el código que queremos comentar tiene dos tabulaciones, nuestro comentario también debería de tener dos tabulaciones.</p>

<p>Es decir, esto sería incorrecto:</p>

<p><img src="/assets/img/2017/php-mal-comentado.png" alt="" /></p>

<p>Lo correcto sería esto:</p>

<p><img src="/assets/img/2017/php-bien-comentado.png" alt="" /></p>

<h3 id="debe-de-ser-descriptivo">Debe de ser descriptivo</h3>

<p>Cada comentario debe de ser un texto lo más corto posible y descriptivo. Ojo, si en alguna ocasión necesitas tres líneas, sin problemas, pero que no sea la norma.</p>

<p>Esto te permitirá de un vistazo ver todo el código ordenado y al fijarte en la parte que te interese, ver el comentario describiéndolo.</p>

<h3 id="no-incluir-viejo-código-en-exceso">No incluir viejo código en exceso</h3>

<p>Algo con lo que me encuentro muchas veces, es que hay mucho código comentado, quizás de versiones anteriores, esto es horrible. De hecho, el 90% de las veces no tiene sentido y la única razón es porque al ser humano le encanta guardarlo todo.</p>

<p>Si hemos programado bajo GIT (software de versión de controles), podremos acceder al viejo código sin problemas y si realmente lo necesitamos, no tiene sentido que lo eliminemos comentándolo.</p>

<p>Ojo, no digo que de vez en cuando no esté bien comentar algo que nos pueda ayudar en un futuro (entiendo mejor cómo se desarrolló un parte, etc.), pero ni de broma debería de ser el 70% del código de la web, de hecho, ni siquiera el 10%.</p>

<h2 id="cómo-tabular-correctamente-en-php">Cómo tabular correctamente en PHP</h2>

<p>Sin duda, junto a los comentarios, uno de los temas más “vitales” a la hora de ordenar el código, es aprender a tabular correctamente, vamos esto es importantísimo.</p>

<p>Empecemos indicando que el tabulador es la tecla que está encima del botón de mayúsculas (la que tiene una lucecita), y nos permite, justamente eso ¡Tabular el texto!</p>

<p>Si has visto código en alguna web, verás que en ocasiones ese código está «metido hacia adentro» en mayor o menor medida.</p>

<p>Pues bien, veamos cuales son las normas para hacer esto de una forma correcta.</p>

<h3 id="nunca-tabular-con-espacios-en-php">Nunca tabular con espacios en PHP</h3>

<p>Si lo que queremos es meter el código hacia adentro, nunca, usar el espacio, a no ser que quieras que te despidan donde trabajes.</p>

<p>Un “tabulado” equivale (depende el visualizador de código) a 4 espacios, lo que quiere decir, para empezar, que el código, al guardar el fichero te ocupará 4 veces más si has utilizado espacios en vez de tabulados.</p>

<p>Además, las tabulaciones están pensadas para mostrar textos de un forma ordenada, mientras un espacio es un espacio. Gracias a esto, las tabulaciones siempre te mostrarán el código ordenado.</p>

<h3 id="cuándo-debemos-de-tabular-en-php">¿Cuándo debemos de tabular en PHP?</h3>

<p>Esta sin duda es la pregunta del millón ¿Cuándo debemos de tabular?</p>

<p>La respuesta es fácil, siempre que estés encerrando el código entre unas llaves { }. ¡Así de fácil!</p>

<p>Por ejemplo, en una función, dentro de las llaves { }, todo el código estará tabulado, pero ojo, si dentro metemos un if, un for o cualquier otra función que tenga llaves ¡Ese código también se tendrá que tabular!</p>

<p>Veamos un ejemplo:</p>

<p><img src="/assets/img/2017/php-tabulacion.png" alt="" /></p>

<h2 id="resumen-y-conclusión">Resumen y conclusión</h2>

<p>Como podemos observar, es muy importante tabular el código, al ver estos consejos, vemos que muchas cosas son de pura lógica y otras son muy fáciles de recordar y de aplicar.</p>

<p>Por lo que ahora sólo queda que nos pongamos manos a la obra y practiquemos.</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Ordenando el código en PHP Estoy más que acostumbrado a estudiar programas/plataformas PHP desarrollado por otras personas, muchas veces (como en el caso de mis alumnos), personas que acaban de...]]></summary></entry><entry><title type="html">¿Qué base de datos escoger?</title><link href="https://luisperis.com/base-datos-escoger/" rel="alternate" type="text/html" title="¿Qué base de datos escoger?" /><published>2017-07-03T10:16:02+00:00</published><updated>2017-07-03T10:16:02+00:00</updated><id>https://luisperis.com/base-datos-escoger</id><content type="html" xml:base="https://luisperis.com/base-datos-escoger/"><![CDATA[<p>Hoy en día tenemos muchas bases de datos y lo es que es mejor, muchos tipos de bases de datos, en principio esto debería de ser algo positivo, pero el problema viene cuando alguien dice que una base de datos (por ejemplo MongoDB) es mejor que otra base de datos (por ejemplo MySQL).</p>

<p>En este punto, ya ha empezado una guerra llena de desinformación que no lleva a ningún lado y que sólo confunde a la gente, así pues, en este artículo voy a intentar explicar los tipos de bases de datos que existen y cuales son los motores de bases de datos más conocidos.</p>

<blockquote>
  <p>Además de este artículo, he grabado un podcast donde explico todo esto pero con muchísimo más detalles, explicando incluso cómo lo hago yo para mis proyectos.</p>

</blockquote>

<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_19591394_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<blockquote>
  <table>
    <tbody>
      <tr>
        <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
        <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
        <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
      </tr>
    </tbody>
  </table>
</blockquote>

<h2 id="tipos-de-bases-de-datos">Tipos de bases de datos</h2>

<p>Cuando hablamos de bases de datos, lo primero que se nos viene a la cabeza es MySQL, pero realmente MySQL no es más que un gestor de bases de datos de tipo relacional basadas en SQL ¡Pero existen muchísimas más! ¡Y de tipos muy diferentes!</p>

<p>El problema viene a ¿Cómo las organizamos? Fijémonos que al definir MySQL he dicho que es de tipo relacional y basada en SQL, por lo que simplemente con eso podemos decir que existen los tipos “relacionales o no relaciones” o los tipos “basadas en SQL o las llamadas (NoSQL)”.</p>

<p>Además, existen bases de datos ultra rápidas que funcionan en memoria RAM, por lo que tendríamos otro “tipo de base de datos dependiendo donde se ejecute”. También tendríamos si soporta objetos o no.</p>

<p>Así pues, puesto que es muy complicado definir tipos, lo que vamos hacer es ver las principales bases de datos y con que tipos concuerdan.</p>

<h3 id="base-de-datos-mysql">Base de datos MySQL</h3>

<p>Sin duda una de las bases de datos más conocidos (ergo más importantes), lleva más de 10 años siendo el estándar y es prácticamente la única que se utiliza en los hostings.
Es de tipo relacional, está basada en SQL y no soporta objetos.</p>

<h3 id="base-de-datos-mariadb">Base de datos MariaDB</h3>

<p>Es una base de datos que está cogiendo mucho peso, sobretodo desde que XAMPP decidió cambiar MySQL por MariaDB.
MariaDB es un fork de la última versión de MySQL antes de que fuera comprada por Oracle, por lo que prácticamente todo lo que funciona en MySQL funciona en MariaDB
Es de tipo relacional, está basada en SQL y no soporta objetos.</p>

<h3 id="base-de-datos-postgresql">Base de datos PostgreSQL</h3>

<p>Es una gestor de bases de datos open-source y al igual que MariaDB, también está soportado por una comunidad. La gran diferencia con MariaDB es que no es una fork de MySQL y soporta objetos
Es de tipo relacional, está basada en SQL y tiene soporte para objetos.</p>

<h3 id="base-de-datos-oracle">Base de datos Oracle</h3>

<p>Oracle es uno de los mayores gestores de bases de datos, es privado y las licencias suelen ser bastante caras, se suele usar cuando hay que tratar millones de datos a una gran velocidad.
Es de tipo relacional, está basada en SQL y su punto fuerte es el gran soporte para objetos.</p>

<p>Vale, hasta aquí, hemos visto 4 tipos de bases de datos, que aunque son de tipos diferentes (algunas con objetos, otras no), todas tenían en común que eran relacionales y basadas en SQL, ahora veremos dos que no lo son:</p>

<h3 id="base-de-datos-mongodb">Base de datos MongoDB</h3>

<p>Es una de las principales bases de datos llamadas NoSQL, que, como su nombre indica, no soporta SQL. Su función principal es guardar objetos no ordenados, por lo que cada objeto puede tener una estructura diferente.
NO es de tipo relacional, NO está basada en SQL y SÍ tiene soporte para objetos.</p>

<h3 id="base-de-datos-redis">Base de datos Redis</h3>

<p>Redis es una base de datos de tipo clave-valor, lo que quiere decir que es como un array enorme ¿Su peculiaridad? Se guarda todo en la RAM ¡Imagínate la velocidad de procesamiento!
Es de tipo clave-valor, no está basado en SQL, no tiene soporte para objetos.</p>

<h3 id="qué-base-de-datos-escoger">¿Qué base de datos escoger?</h3>

<p>Quizás, al ir leyendo este artículo, te hayas dado cuenta de que no tiene sentido discutir qué base de datos es mejor, ya que, todo dependerá para qué la necesitemos.</p>

<p>De hecho, las grandes empresas no escogen una base de datos, sino que es normal ver por ejemplo tres tipos de base de datos con la siguiente estructura:</p>

<p><strong>MySQL</strong>: Para tener una base de datos relacional ¡Siempre hace falta!
<strong>MongoDB</strong>: Para guardar objetos sin ordenar, por ejemplo logs.
<strong>Redis</strong>: Para cachear consultas o acceder a una información específica de forma muy rápida.</p>

<p>Fijémonos que esto no es la guerra ¡Todas se pueden complementar!</p>

<h2 id="resumen">Resumen</h2>

<p>Como vemos, cada tipo de base de datos nos sirve para algo diferente, aunque si que es cierto, que dentro de las bases de datos relacionales nos puede costarnos ver las diferencias, por ello os emplazo a escuchar el podcast al que hago referencia al principio de este post donde explico con más detenimiento cada uno de los tipos de base de datos.</p>]]></content><author><name>Luis Peris</name></author><category term="Programación" /><summary type="html"><![CDATA[Hoy en día tenemos muchas bases de datos y lo es que es mejor, muchos tipos de bases de datos, en principio esto debería de ser algo positivo, pero el problema viene cuando alguien dice que una...]]></summary></entry><entry><title type="html">¿Qué es un roadmap?</title><link href="https://luisperis.com/que-es-un-roadmap/" rel="alternate" type="text/html" title="¿Qué es un roadmap?" /><published>2017-06-26T07:00:35+00:00</published><updated>2017-06-26T07:00:35+00:00</updated><id>https://luisperis.com/que-es-un-roadmap</id><content type="html" xml:base="https://luisperis.com/que-es-un-roadmap/"><![CDATA[<p>Cuando queremos organizar el desarrollo de un software necesitamos crear un roadmap, gracias a esto tendremos una guía que seguir semana tras semanas hasta la fecha límite de nuestro proyecto. Pero ¿Qué es un roadmap?</p>

<blockquote>
  <p>Además de este artículo, quizás te interese escuchar mi podcast, donde además de explicar qué es un roadmap, también explico y doy detalles de cómo lo hago yo:</p>

</blockquote>

<div class="embed">
<iframe src="https://www.ivoox.com/player_ej_19454307_4_1.html?c1=4286f4" loading="lazy" frameborder="0" allowfullscreen="" title="Contenido incrustado"></iframe>
</div>

<blockquote>
  <table>
    <tbody>
      <tr>
        <td>Podcast <strong>Consultor IT</strong> en: <a href="https://www.ivoox.com/s_p2_297808_1.html">Ivoox</a></td>
        <td><a href="https://itunes.apple.com/es/podcast/podcast-luis-peris/id1134119223">iTunes</a></td>
        <td><a href="http://www.ivoox.com/consultor-it_fg_f1297808_filtro_1.xml">RSS</a></td>
      </tr>
    </tbody>
  </table>
</blockquote>

<hr />

<h2 id="qué-es-un-roadmap">¿Qué es un RoadMap?</h2>

<p>Empecemos con lo básico, un RoadMap, como su nombre bien indica, es un mapa de ruta, por lo que cuando estamos hablando de un proyecto o del desarrollo de un software, un roadmap será una línea temporal que nos llevará desde el comienzo del desarrollo hasta el último objetivo que queramos alcanzar.</p>

<p>Para entenderlo mejor, piensa que vas a iniciar el desarrollo de un proyecto, bien, una vez tengas bien definido el proyecto, deberás de indicar cuánto tiempo te costará realizar cada parte, indicando fechas absolutas, es decir, no pongas “2 semanas”, indica directamente “10/11/2017”. Gracias a esto, podremos dedicarle las horas necesarias al proyecto para que en esa fecha, la parte del proyecto que hemos indicado, esté terminada.</p>

<p>¡Perfecto! Ahora que más o menos lo vamos entiendo, vamos a ver que son las fases y los hitos.</p>

<h2 id="roadmap-fases-e-hitos">RoadMap: Fases e hitos</h2>

<p>Un RoadMap se puede hacer de mil formas y se puede usar para mil cosas, por ejemplo para realizar una línea temporal para ver dónde queremos que vaya nuestra empresa.</p>

<p>No obstante, en este artículo vamos a enfocarnos en el roadmap para el desarrollo de un software, en la forma que yo lo realizo (pues he visto que funciona mejor).</p>

<p>Yo siempre que realizo un desarrollo largo (más de 6 meses), siempre lo realizo, por fases y por hitos, vamos a ver que es cada cosa.</p>

<h3 id="roadmap-hitos">RoadMap: Hitos</h3>

<p>Para que un roadmap tenga sentido, le deberemos incluir hitos, que en el desarrollo de un software puede ser “Diseño HTML del Frontend”, “Creación de objetos JavaScript”, etc.</p>

<p>En principio, los hitos deben de costarnos entre una y dos semanas desarrollarlos. Por lo que no tendría sentido poner hitos diarios.</p>

<h3 id="roadmap-fases">RoadMap: Fases</h3>

<p>En los desarrollos largos, que podemos tener fácilmente 20/30 o 50 hitos yo recomiendo dividirlo entre tres/cuatro fases.</p>

<p>En resumen, una fase no es más que la agrupación de unos hitos, por ejemplo, podríamos darnos hasta el 10/12/2018 para el desarrollo del diseño, así pues tendríamos una Fase que podría durar 2 meses, y dentro de esta fase, podríamos tener 5 hitos.</p>

<p>Esto nos permitirá tener un roadmap mucho más ordenado.</p>

<p>Para entenderlo mejor, veamos mi roadmap:</p>

<p><img src="/assets/img/2017/roadmap-que-es.png" alt="Roadmap ¿Qué es?" /></p>

<h2 id="roadmap-ventajas">RoadMap: Ventajas</h2>

<p>El Roadmap tiene multitud de ventajas, así pues vamos a ver las tres principales:</p>

<h3 id="tener-objetivos-medibles-y-organizados">Tener objetivos medibles y organizados</h3>

<p>Si no realizamos un roadmap y no tenemos fechas límites, empezaremos a programar y divagar, y al final nunca conseguiremos terminar el desarrollo, siempre se nos ocurrirá una idea nueva que implementar o una nueva tecnología que probar para una parte del proyecto.</p>

<p>No obstante, si tenemos un roadmap, deberemos de terminar esa parte del proyecto en una fecha determinada, por lo que dejaremos a un lado todas esas pruebas y nos centraremos en el producto.</p>

<h3 id="tener-fecha-de-lanzamiento">Tener fecha de lanzamiento</h3>

<p>Conozco decenas de programadores que me han hablado del software que desean desarrollar, empiezan el desarrollo pero nunca lo terminan. Si analizamos la razón por la cual no lo han terminado, no ha sido por falta de conocimientos.</p>

<p>La principal razón es que, al no tener una fecha clara de lanzamiento, han estado mejorando el producto, de forma indefinida, sin llegar nunca a lanzarlo. Esto con el roadmap no nos pasará.</p>

<h3 id="sensación-de-realización">Sensación de realización</h3>

<p>Algo muy importante, sobretodo cuando desarrollamos un proyecto solo, es conseguir una sensación de realización cada vez que vamos alcanzando cada uno de los hitos.</p>

<p>Esto que puede parecer trivial, es muy importante, ya que nos das las energías para alcanzar el siguiente hito.</p>

<p>##</p>]]></content><author><name>Luis Peris</name></author><category term="Rendimiento y Aplicaciones" /><summary type="html"><![CDATA[Cuando queremos organizar el desarrollo de un software necesitamos crear un roadmap, gracias a esto tendremos una guía que seguir semana tras semanas hasta la fecha límite de nuestro proyecto....]]></summary></entry></feed>