Tutoriales y Código fuente

  • PHP 0

    La cadena vacía en PHP: usos correctos, antipatrones y alternativas

    La cadena vacía ("") en PHP tiene más usos de los que parece, y no todos son correctos. Este tutorial recorre siete situaciones reales —valor por defecto, centinela de error, cast implícito, acumulador en loop, comparaciones con ==, funciones que no la aceptan— y muestra para cada una el ant...

  • PHP 0

    State Pattern vs. Enums en PHP moderno: cuándo usar cada uno

    Los Enums de PHP 8.1 son geniales para estados simples, pero cuando el negocio crece y cada estado necesita comportamiento propio —reembolsos, llamadas a APIs, validaciones distintas— el Enum revienta. Este tutorial muestra cómo pasar al State Pattern con clases dedicadas, inyección de depend...

  • PHP 0

    Contador de visitas en PHP 8

    Contador de visitas sencillo en PHP 8 que guarda el recuento en un fichero de texto. Sin base de datos. Usa bloqueo exclusivo de fichero para evitar condiciones de carrera en servidores con concurrencia alta. Muestra el número formateado con separadores de miles en una página HTML mínima lista...

  • Java 28

    Cuatro en Raya en Java Swing con IA Negamax

    Cuatro en Raya para Java Swing. El original era un applet JDK 1.0 (los applets quedaron eliminados en Java 11); esta versión funciona como aplicación de escritorio. La IA usa Negamax con poda alfa-beta a profundidad 5 y SwingWorker para no congelar la interfaz mientras calcula. Compilar con: ja...

  • Javascript 0

    Cuatro en Raya en JavaScript con IA Negamax

    Cuatro en Raya jugable en el navegador, sin dependencias ni instalación. IA con Negamax y poda alfa-beta a profundidad 6: prioriza la columna central, bloquea amenazas del jugador y busca victoria inmediata antes de calcular. Renderizado en canvas HTML5 con gradientes y hover animado. Abre el HT...

  • Javascript 34

    Post-IT arrastrable con JavaScript moderno

    Muestra un Post-IT fijo en la pantalla que se puede arrastrar por la cabecera y cerrar. Usa Pointer Events (API moderna que unifica mouse, touch y stylus) y localStorage para recordar si el usuario lo cerró. El original de 2002 usaba document.all y document.layers de IE4/Netscape 4, incompatible...

  • PHP 10

    Convertir número a letras en PHP 8 (español)

    Función PHP 8 que convierte cualquier número entero entre -999.999.999 y 999.999.999 en su representación literal en español. Maneja correctamente los casos especiales del español: "veintiún", "cien" vs "ciento", "un millón" vs "dos millones", negativos y ceros. Incluye un ejemplo de uso p...

  • PHP 36

    Subir ficheros al servidor con PHP 8

    Sube ficheros al servidor con PHP 8 de forma segura: move_uploaded_file() en lugar del inseguro copy() original, validación de MIME real con finfo, lista blanca de extensiones, límite de tamaño configurable y nombre aleatorio para evitar colisiones y path traversal. El ZIP incluye también un ...

  • Python 5

    Detector de palíndromos en Python 3

    Función que determina si una palabra o frase es un palíndromo, manejando correctamente el español: ignora tildes, mayúsculas, espacios y signos de puntuación. Incluye normalización Unicode para que "Ánima" y "anima" se traten igual, ejemplos con frases clásicas como "Dábale arroz a la zo...

  • Python 6

    Problema de las 8 reinas en Python 3 con backtracking

    Solución al clásico problema de las 8 reinas en Python 3 usando backtracking. El algoritmo coloca una reina por fila y descarta ramas inválidas antes de continuar, lo que lo hace mucho más eficiente que la fuerza bruta. Encuentra las 92 soluciones distintas e imprime un tablero ASCII para cad...