CategoriasBases de datos

Normalización en bases de datos

La normalización, es un proceso que forma parte del diseño de bases de datos relaciones y cuyo objetivo o fin es organizar los datos de manera eficiente, minimizando la redundancia y mejorando la integridad de los datos. Todo esto se consigue aplicando una serie de reglas llamadas formas normales, que definen como deben estructurarse las tablas para garantizar un buen diseño y una estructura óptima. Todo esto no viene de ahora, no es nada nuevo, ya que el origen de todo este proceso y normas fue creado en 1970 por Edgar F. Codd.

Leer más
CategoriasPHPProgramación

Request y Response en PHP

Cuando nos iniciamos en el mundo del desarrollo web (ahora también mal llamado “aplicaciones web”), nos encontramos con dos conceptos o términos que son fundamentales entenderlos desde un principio, pues en ellos se basa toda comunicación entre “nuestra web” y “el cliente”.

Estos dos conceptos fundamentales son Request (solicitud) y Response (respuesta).
Este articulo pretende hablar sobre Request y Response vistos desde la programación web con PHP, pero no importa, ya que son conceptos generales. Como dije al principio, en ellos se basa toda comunicación…

Leer más
CategoriasBases de datosPHPProgramación

PDO vs MySQLi en PHP: ¿Cuál elegir y por qué?

Cuando estamos comenzando a programar en PHP y llega el momento en que necesitamos conectar nuestra aplicación web a una base de datos, normalmente o casi siempre, se empieza con la base de datos MySQL. Puedes encontrar muchos tutoriales que hablan de: “como conectar PHP y MySQL” entre otros miles.

El objetivo de este articulo no es un tutorial más sobre como conectar nuestra aplicación, sino como he dicho al principio, explicar la diferencia de estas dos opciones principales que trae PHP por defecto: PDO (PHP Data Objects) y MySQLi (MySQL Improved).

Leer más
CategoriasGeneral

Archivo robots.txt

El archivo robots.txt es un archivo de texto ubicado en la raíz de un sitio web (por ejemplo, https://tufantasticaweb.com/robots.txt) y sirve para comunicar a los bots de los motores de búsqueda (como Googlebot, Bingbot y otros más) qué partes del sitio web pueden rastrear y cuáles no. Muy importante para el tema del SEO y, por tanto, para darnos a conocer más, bueno, nosotros no, nuestra web. O si, nosotros también 😀

Bromas aparte, este archivo forma parte del llamado Robots Exclusion Protocol (REP), y como he dicho, da instrucciones a los bots o rastreadores (web crawlers) sobre qué partes del sitio web pueden o no pueden explorar.

Leer más
CategoriasPHPProgramación

Trabajando con arrays en PHP: algunas funciones.

En este post, nos vamos a centrar en los arrays en PHP. Concretamente en algunas funciones bastante útiles que ofrecen muchas posibilidades que vale la pena redescubrir, porque si, aunque parezca algo básico, los arrays en PHP tienen bastante potencial.

Existen un montón de funciones para trabajar con arrays, pero vamos hablar sobre alguna nueva y sobre otras que quizás no sean tan conocidas. Pero eso no quita su utilidad…

Leer más
CategoriasProgramaciónPython

Entornos virtuales en Python

Un entorno virtual en Python, es un espacio aislado o, valga la redundancia, un entorno aislado.

El objetivo de crear un entorno es poder instalar y gestionar bibliotecas específicas para diferentes proyectos de tal manera, que no interfieran entre sí.

El problema que resuelve un entorno virtual es ese, evitar conflictos.

Para ponernos en situación, imagina que tienes muchos proyectos en Python, pues bien, es muy probable que necesites diferentes versiones de librerías, por ejemplo, podemos tener un proyecto que requiera Django 3.2 y luego otro, que requiera Django 4.1.

Sin entornos virtuales, solo podríamos tener una versión instalada globalmente, lo que causaría conflictos…

Leer más
CategoriasProgramaciónPython

Gráficos de barras en Python

En el artículo anterior vimos cómo crear gráficos en Python para representar de forma sencilla datos o estadísticas. Hoy, vamos a ir un poco más allá y representaremos gráficos de forma “algo más avanzada o profesional”. Concretamente vamos a ver como crear un gráfico de barras en Python.

Aunque crear cualquier gráfico en Python es sencillo, dependiendo de cual vayamos a crear, éstos tienen sus diferencias y se crean de manera ligeramente diferente.

Leer más
CategoriasBases de datos

Juegos de caracteres

Cuando hablamos de juegos de caracteres nos estamos refiriendo a la codificación de caracteres o character set y su correspondiente collation. Básicamente éstos se encargan de definir cómo se almacenan, comparan y ordenan los textos. Es decir, elegir un character set y collation correcto, es fundamental para evitar errores con los acentos, emojis, distintos idiomas o simplemente para ordenar correctamente los resultados.

Hay bases de datos que lo establecen automáticamente y otras, como MySQL o MariaDB que, a la hora de crear una base de datos, debes de especificar el tipo de codificación.

Leer más
CategoriasProgramaciónPython

Gráficos en Python

En este post vamos hablar sobre la biblioteca matplotlib de Python. Esta biblioteca es de las más populares para crear gráficos en Python ya que nos permite generar gráficos de barras, líneas, pastel (circulares) y muchos más. Aparte, es bastante sencilla de utilizar (como casi todo en Python).

Como siempre, vamos a ver algunos ejemplos y los vamos a ir explicando paso a paso…

Leer más
CategoriasProgramación

Traits en PHP. Segunda parte

Este artículo pretende ser una segunda parte del que escribí hace ya algún tiempo (bastante) por aquí.

En esta segunda parte hablamos de la posibilidad de usar métodos abstractos en los traits, así como de modificar la visibilidad de los métodos, precedencia u orden de preferencia, uso de propiedades, métodos estáticos y traits compuestos, es decir, los Traits también pueden hacer uso de otros Traits.

En la primera parte del artículo sobre Traits en PHP, vimos cómo los Traits nos permiten reutilizar código en múltiples clases sin necesidad de herencia.

Si recordamos bien, el objetivo de los traits no es otro que agregar funcionalidad reutilizable.

Leer más