viernes, 13 de febrero de 2026

Consultas SQL valiosas para moodle

 SELECT 

    table_name,

    ROUND((data_length + index_length) / 1024 / 1024 / 1024, 2) AS size_gb

FROM information_schema.TABLES

WHERE table_schema = 'campus'

ORDER BY size_gb DESC;


SELECT

   ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS total_gb

FROM information_schema.TABLES

WHERE table_schema = 'campus';


SELECT table_name,

       ROUND((data_length + index_length) / 1024 / 1024, 2) AS size_mb

FROM information_schema.TABLES

WHERE table_schema = 'mdlsimb'

ORDER BY size_mb DESC


Borrar logs de antes del 2025

SELECT COUNT(*) AS registros_a_borrar

FROM mdl_logstore_standard_log

WHERE timecreated < UNIX_TIMESTAMP('2025-01-01');


DELETE FROM mdl_logstore_standard_log

WHERE timecreated < UNIX_TIMESTAMP('2025-01-01')

LIMIT 50000;



OPTIMIZE TABLE mdl_logstore_standard_log;

SHOW VARIABLES LIKE 'innodb_file_per_table';

ANALYZE TABLE mdl_logstore_standard_log;


martes, 10 de febrero de 2026

Como bloquear dominio y apuntar a un subdominio con usuario y clave en Cloud Panel AWS

Pasos para  bloquear Dominio y apuntar a un subdominio con usuario y clave en Cloud Panel AWS

1️⃣ DNS (SiteGround)

  • Crear subdominio nuevo (ej: subdominio.abc.com)

  • Apuntarlo a la misma IP del servidor AWS

2️⃣ CloudPanel / Nginx

En security activar basic authentication y crear el usuario con contraseña encriptada

En el mismo site:

  • server_name incluye:

    dominio.abc.com subdominio.abc.com
  • Bloquear dominio viejo:

    if ($host = "dominio.abc.com") { return 403; }
  • Proteger acceso (Basic Auth):

    auth_basic "Acceso restringido"; auth_basic_user_file /etc/nginx/.htpasswd;
  • Añadir noindex:

    add_header X-Robots-Tag "noindex, nofollow" always;

3️⃣ Dónde va la app

  • Ambos dominios apuntan a la misma carpeta del proyecto

  • No duplicar archivos

  • No crear otra instancia

4️⃣ Probar

  • Dominio viejo → 403

  • Subdominio nuevo → pide usuario/clave

  • Sin login → no se carga nada

  • Google → no indexa

RECORDATORIO IMPORTANTE

  • Esto protege el acceso, no el código del front

  • Un usuario autorizado siempre puede ver el JS

  • Para proteger el producto, es necesario crear backend

miércoles, 24 de diciembre de 2025

Flujo para Aceptar presupeusto en Holded

El flujo cuando el presupuesto pasa a aceptado: 

Presupuesto → Convertir a factura

 Factura aprobada dando a guardar

martes, 23 de diciembre de 2025

Restringir por IP aplicativos en Nginx (muy fácil y eficaz)

 

Restringir por IP (muy fácil y eficaz)

Si el cliente accede desde IPs concretas:

location / { allow 123.123.123.123; # IP del cliente allow 111.111.111.111; # otra IP deny all; }

jueves, 25 de septiembre de 2025

Restaurar página con archivo .wpress con all in onw migration

 

Ruta exacta para subir tu .wpress por FTP

  1. Conéctate a tu hosting por FTP (ejemplo con FileZilla).

  2. Ve a la carpeta donde está tu WordPress (normalmente /public_html/ o /www/).

  3. Entra en:

/wp-content/ai1wm-backups/

👉 Si la carpeta no existe, créala manualmente con ese nombre exacto:
ai1wm-backups

  1. Sube tu archivo .wpress completo dentro de esa carpeta.


🔄 Restaurar la copia desde el admin

  1. Ve a tu WordPress admin → All-in-One WP Migration → Copias de seguridad.

  2. Verás tu archivo .wpress en la lista automáticamente.

  3. Haz clic en Restaurar.

  4. El plugin reemplazará todo tu WordPress (archivos, base de datos, plugins, temas).

⚠️ Nota: la versión gratuita de All-in-One WP Migration a veces bloquea restauraciones grandes (>512 MB).

  • Si tu archivo pesa más, necesitas el Unlimited Extension o que tu hosting tenga esa versión habilitada.

domingo, 17 de agosto de 2025

Mensaje para Linkedin

 ¡Hola (Nombre) Me encanta la tecnología y el impacto de (nombre empresa). Me gustaría formar parte de su equipo. ¿Podemos hablar sobre oportunidades? 😊🚀

Prompt para evaluar el código con IA en Chatgpyt

Prompt para evaluar el código con IA en Chatgpyt:

- Buenas prácticas de Moodle

- Seguridad

- Compatibilidad con auditoría (IA, estructura, claridad)

- Código robusto y mantenible


Blogs Colombia