Artículos

  • MySQL 0

    Búsquedas de texto completo en MySQL 8: FULLTEXT con InnoDB y modo booleano

    Cómo usar índices FULLTEXT en MySQL 8 con InnoDB (disponible desde MySQL 5.6): modo natural, modo booleano con operadores +/-/*, relevancia, WITH QUERY EXPANSION y parámetros innodb_ft_min_token_size.

  • JDBC 1

    Acceso a bases de datos con JDBC: tutorial completo Java 21

    Tutorial completo de JDBC actualizado a Java 21. Cubre conexión con HikariCP, PreparedStatement, transacciones, batch, patrón DAO, metadatos, pruebas de integración con H2 y migración de esquemas con Flyway.

  • MySQL 1

    Cómo interactuar con una base de datos MySQL usando PHP 8 y PDO (actualizado 2026)

    Las funciones mysql_* se eliminaron en PHP 7.0 en 2015. Este artículo conserva el código histórico de 2002 como referencia y muestra la versión moderna completa con PDO, sentencias preparadas y protección contra SQL injection.

  • PHP 53

    Contraseñas seguras en PHP: de MD5 a bcrypt y Argon2 (actualizado 2026)

    MD5 lleva décadas siendo inadecuado para almacenar contraseñas. Este artículo explica por qué, conserva el enfoque histórico de 2000 y muestra cómo usar password_hash() y password_verify() con bcrypt y Argon2id en PHP 8.

  • J2EE 0

    Servlets y JSP: tutorial Jakarta EE 10 y Java 21

    Tutorial completo de Servlets y JSP actualizado a Jakarta EE 10 y Java 21. Cubre HttpServlet, ciclo de vida, patrón MVC, JSP con JSTL, sesiones, filtros, subida de ficheros, seguridad y despliegue en Tomcat 10.1.

  • MySQL 0

    La evolución de MySQL: de la versión 4.0 (2003) a MySQL 8 (2026)

    Historia completa de MySQL desde la versión 4.0 de 2003 (InnoDB, SSL, caché de consultas, UNION) hasta MySQL 8 con CTEs, window functions y JSON nativo. Artículo original de MySQL Hispano actualizado en 2026.

  • Entretenimiento 0

    Transacciones en SQL Server

    Guía completa sobre transacciones en SQL Server: propiedades ACID, sentencias BEGIN/COMMIT/ROLLBACK, manejo moderno de errores con TRY/CATCH, XACT_STATE(), SET XACT_ABORT ON, transacciones anidadas con @@TRANCOUNT, puntos de restauración con SAVE TRAN y el patrón correcto para usarlas dentro d...

  • Python 0

    Cómo iterar una lista en Python

    Guía actualizada a Python 3 sobre todas las formas de recorrer una lista: el bucle for, enumerate() para obtener índice y valor, comprensiones de lista para transformar o filtrar, zip() para dos listas en paralelo, while con condición personalizada, map() y filter() para el estilo funcional, y...

  • HTML 0

    Cómo embeber un documento PDF en una página web

    Poner un enlace para abrir un PDF en el navegador es lo más habitual, pero en muchos proyectos interesa mostrarlo directamente dentro de la página. Repasamos las cinco opciones disponibles en 2026: las etiquetas embed, object e iframe, la librería PDF.js de Mozilla y Google Docs Viewer, con su...

  • Javascript 0

    City Roads, una herramienta open source para obtener mapas limpios

    City Roads genera mapas de ciudades completamente limpios —sin etiquetas ni nombres— a partir de los datos de OpenStreetMap. Puedes personalizar colores y exportar el resultado como PNG o SVG vectorial. El proyecto, construido con Vue.js y WebGL, está disponible en GitHub y tiene usos que van ...