sábado, 12 de septiembre de 2026

Creación rápida de un script para ejecutar todos los archivos con extensión "sql" existentes en un directorio.

 

Hola gente,

Una rápida para terminar el día de hoy.

Tienes un montón de scripts en un directorio, enumerados en el orden que deben ser ejecutados y necesitas crear un script para ejecutarlos todos fácilmente.?

Veamos.
((clip26ai) ) [oracle@oracle-server-26ai ~]$ ls -lat *sql
-rw-r--r--. 1 oracle oinstall 224 Jul 26 01:04 6.sql
-rw-r--r--. 1 oracle oinstall 648 Jul 26 01:04 5.sql
-rw-r--r--. 1 oracle oinstall 196 Jul 26 01:01 4.sql
-rw-r--r--. 1 oracle oinstall 363 Jul 26 00:58 3.sql
-rw-r--r--. 1 oracle oinstall 14168 Jul 26 00:57 2.sql
-rw-r--r--. 1 oracle oinstall 662 Jul 26 00:55 1.sql
-rw-r--r--. 1 oracle oinstall 1452 May 1 05:22 demo.sql
-rw-r--r--. 1 oracle oinstall 2412 Feb 14 2026 permisos.sql

((clip26ai) ) [oracle@oracle-server-26ai ~]$ find . -maxdepth 1 -type f -name "*.sql" | sort | sed 's|^|@|' >ejecutar.sh

((clip26ai) ) [oracle@oracle-server-26ai ~]$ cat ejecutar.sh
@./1.sql
@./2.sql
@./3.sql
@./4.sql
@./5.sql
@./6.sql
@./demo.sql
@./permisos.sql

Problema resuelto.

Feliz día del Programador


Hola gente,

Nunca fuí un buen programador, ni lo soy hoy.
Hace más de 35 años, cuando inicié en este mundo, la gente debatía sobre si la profesión se llamaba informática o computación.

Aunque informática y computación suelen usarse como sinónimos, académicamente tienen matices distintos.

Computación pone el énfasis en el procesamiento y los fundamentos del cómputo: algoritmos, estructuras de datos, teoría de la computación, lenguajes de programación, arquitectura de computadores, complejidad, inteligencia artificial, etc. Se aproxima bastante al concepto anglosajón de Computer Science.

Informática, en cambio, es un término generalmente más amplio y orientado al tratamiento automático de la información mediante sistemas computacionales. Incluye computación, pero también aspectos como sistemas de información, bases de datos, redes, administración de infraestructura, integración de sistemas y procesamiento de información dentro de organizaciones.

Una forma sencilla de distinguirlos sería:

Computación estudia cómo podemos computar; informática estudia cómo utilizamos sistemas computacionales para procesar información.

Si llevamos la distinción al campo actual de la IA, aparece una diferencia interesante: la teoría de embeddings, transformers, algoritmos de aprendizaje y complejidad pertenece principalmente a las ciencias de la computación; implementar esos modelos dentro de bases de datos, aplicaciones, redes y sistemas empresariales pertenece al dominio más amplio de la informática.

Yo siempre me sentí atraído mayoritariamente por las bases de datos que por la programación. Bajo el alcance de las definiciones anteriores, podría llamarme a mi mismo informático; pero entonces, hoy no sería un día para celebrar para mí, sino para los profesionales del área de la computación. Aquellos que les encanta tirar código a diestra y siniestra.

Aún así, a pesar de que "no me gustaba" programar, lo he hecho a lo largo de todos estos años, en una escala menor y disfruto cuando algo realmente queda funcionando.

Así que para mis amigos y compañeros programadores, espero que hayan pasado un lindo día.

“Programs must be written for people to read, and only incidentally for machines to execute.”
— Harold Abelson y Gerald Jay Sussman

En español: «Los programas deben escribirse para que las personas los lean, y solo incidentalmente para que las máquinas los ejecuten.»

 





El representante Greg Casar, demócrata de Texas, ha propuesto un proyecto de ley que gravaría los tokens de IA. Tierney L. Cross/The New York Times

Por Sarah Kessler

Cuando Bill Gates advirtió esta semana sobre los peligros que plantea la IA , también intervino en un debate algo confuso entre políticos y economistas sobre la mejor manera de gravar esta tecnología . Gates sugirió gravar los tokens de IA.

Este mes, el representante Greg Casar de Texas, presidente del Caucus Progresista del Congreso, propuso un proyecto de ley que crearía dicho impuesto. DealBook habló con él sobre el plan y cómo la IA se ha convertido en un tema político candente.

En términos básicos, ¿cómo funcionaría?

Tenemos dos indicadores para medir las ventas de las empresas de IA. Uno son los tokens, que es la unidad de medida que utilizan actualmente para vender IA.

El otro son los ingresos por ventas de IA. Y para evitar que manipulen el sistema cambiando rápidamente la definición de token, gravamos el valor más alto de estos dos.

El impuesto comienza siendo bastante bajo, cuando no hay desempleo masivo provocado por la IA, y luego aumenta si la IA comienza a causar una pérdida significativa de empleos.

En el mundo empresarial se suele decir que gravar los tokens de IA ralentizaría su uso y la haría menos eficiente. Usted ha escrito que esto sería una ventaja, no un inconveniente. ¿Por qué?

Durante la Revolución Industrial, necesitábamos nuevas leyes sobre el trabajo infantil. En la revolución nuclear, necesitábamos acuerdos de no proliferación y la Comisión Reguladora Nuclear.

La IA podría ser extremadamente perjudicial para nuestra economía. Por lo tanto, lo mejor que podemos hacer es eliminar los incentivos para automatizar nuestros trabajos y darles a los trabajadores el tiempo que necesitamos para asegurarnos de que no haya desempleo masivo.

Pero, ¿no tenemos que mantenernos al día con China?

Para mí, volverse más autoritario como China, aceptar grandes riesgos para la seguridad nacional o ser un país con desempleo masivo no suena a liderar el mundo.

Muchos economistas han argumentado que gravar un insumo para las empresas, sus tokens de IA, es menos eficiente que aumentar los impuestos corporativos, lo que aún permitiría a las empresas maximizar sus ganancias con la IA antes de gravarla. ¿Por qué un impuesto a los tokens es la mejor opción?

Al gravar directamente la IA, estamos gravando algo que crecería a medida que crece el desempleo, por lo que estamos vinculando la solución al problema.

Si las empresas utilizan más IA, podremos financiar cada vez más puestos de trabajo. Los beneficios empresariales podrían estar relacionados o no con la IA en sí.

¿Por qué destinar los ingresos fiscales a financiar una nueva Administración de Protección Laboral, que crearía nuevos puestos de trabajo, en lugar de distribuir ampliamente los fondos, como proponen el senador Bernie Sanders y otros?

Me parece distópico un pequeño ingreso básico universal para todos. Los estadounidenses quieren contribuir. Queremos que los estadounidenses sigan trabajando y conserven su empleo.

Me desanima que la única respuesta al desempleo masivo sea la formación profesional. Sería como ofrecer clases de natación en el Titanic.

No existen regulaciones federales sobre IA. ¿Por qué?

Muchos de estos multimillonarios de la IA, como Greg Brockman de OpenAI, amenazan con gastar cantidades de dinero sin precedentes en las elecciones de mitad de mandato. Su objetivo es hacerse con el control del Partido Republicano de Trump y temer al Partido Demócrata enfrentarse a ellos.

La inteligencia artificial se está convirtiendo cada vez más en un tema importante en las elecciones de mitad de mandato, especialmente en lo que respecta a los centros de datos. Pero creo que pasará de ser un tema importante a un tema de máxima prioridad en la campaña presidencial de 2028.

De Otto a la conducción autónoma: el génesis de los viajes autónomos

Hola gente,

Hace casi 10 años, se produjo un hito 100% real. No como esos relatos que en ocasiones nos encontramos en las distintas redes sociales.

Un transporte autónomo, llevó consigo un contenedor con 51.744 latas de cerveza Budweiser por el estado de Colorado, en octubre de 2016.

La empresa tecnológica Otto, adquirida por Uber en el mes de julio de ese año; realizó el que entonces presentó como el primer transporte comercial del mundo efectuado por un camión autónomo.

El trailer no hizo el transporte completamente sólo, el conducto permaneció dentro del vehículo, aunque fuera del asiento durante el tramo autónomo.

La propia cervecería Anheuser-Busch dueña de la marca, documentó el proyecto e identificó expresamente el cargamento como Budweiser y la ruta como un recorrido por Colorado.

La información fue confirmada también por Los Angeles Times, Wired y, en español en nuestro país, por La República de Costa Rica.

La noticia de La República, aún esta en línea: https://lnkd.in/ex9M_Pza

Lo curioso de esta nota es que, hasta agosto de este año, los vehículos autónomos vinculados directamente con Uber representaban prácticamente el 0 % de los viajes realizados en California mediante este tipo de tecnología. Aunque Uber ofrece servicios de robotaxis en algunas ciudades del mundo, lo hace mediante alianzas estratégicas con empresas especializadas, cuyos vehículos se incorporan a su plataforma; no se trata de una flotilla autónoma propia de Uber.

Waymo es el principal jugador en el mercado en la prestación de servicios de autos autónomos. La empresa reportó, para el conjunto de sus operaciones estadounidenses:
-Más de 220 millones de millas completamente autónomas —unos 354 millones de kilómetros— hasta finales de marzo de 2026.
-Más de 14 millones de viajes durante 2025.
-Más de 20 millones de viajes acumulados al finalizar aproximadamente ese año.
-Más de 4 millones de millas autónomas por semana en 2026.

Ojo al dato: estudios publicados por Waymo, considerando incidentes independientemente de la responsabilidad, sostienen que en 170 millones de millas autónomas sus vehículos presentaron, frente a conductores humanos comparables:
-92 % menos choques con lesiones graves o muertes;
-83 % menos choques con activación de bolsas de aire;
-82 % menos choques con alguna lesión.
Son resultados elaborados con datos de la propia empresa y deben leerse con esa salvedad, aunque la metodología y parte de los resultados han sido publicados como investigaciones técnicas.


Así, una década después del surgimiento de esta tecnología y con la experiencia acumulada por Waymo —más de 200 millones de millas recorridas de forma autónoma—, la evidencia disponible permite considerar estos servicios como una alternativa segura, aunque, como toda tecnología emergente, no estén exentos de incidentes y desafíos.
Activar para ver una imagen más grande.

La historia de la tecnología está llena de predicciones que confundieron posibilidad con certeza. Con la IA, podría estar ocurriendo nuevamente este fenómeno.

 



Hola gente,

Durante los últimos años, la inteligencia artificial ha pasado de ser una tecnología especializada a convertirse en protagonista de algunos de los titulares más inquietantes de nuestro tiempo.

Desempleo masivo, desaparición de profesiones, pérdida de la creatividad, máquinas fuera de control e incluso la extinción de la humanidad forman parte de una narrativa que, con frecuencia, presenta escenarios posibles como si fueran destinos inevitables.

Recuerdo que cuando era niño, vivía atemorizado por los anuncios sensacionalistas del fin del mundo, de los grandes terremotos que se tragarían enormes porciones de tierra, los 3 días de oscuridad, el apocalipsis, el temor en estar en pecado, etc.

Muy joven empecé a ser agnóstico ante una buena cantidad de cosas. No me volví agnóstico porque encontrara razones definitivas para negar una cosa. Me volví agnóstico porque dejé de encontrar razones suficientes para afirmar con certeza aquello que antes aceptaba por "fe", por un simple relato trasladado de boca en boca y que quería que yo fuera puente para continuar su camino. Mis preguntas siguieron creciendo y las respuestas dejaron de convencerme. Ante eso preferí decir ‘no lo sé’ antes que fingir una certeza que ya no tengo.”

Nos hemos acostumbrado a ser dominados por el espectáculo del miedo; en deprimiento del análisis de la evidencia.

Ser agnóstico frente al futuro de la IA no significa negar sus riesgos. La automatización transformará empleos y los deepfakes ya plantean problemas reales. Delegar decisiones importantes en sistemas autónomos exige controles, regulación y responsabilidad. Pero reconocer esos desafíos es muy diferente de afirmar que conocemos de antemano sus consecuencias finales.

La historia de la tecnología está llena de predicciones que confundieron posibilidad con certeza. Con la IA, podría estar ocurriendo nuevamente este fenómeno.

Por eso, quizá la pregunta más razonable no sea «¿la IA nos salvará o nos destruirá?», sino una mucho menos espectacular y bastante más importante: ¿qué evidencia tenemos hoy para distinguir entre un riesgo real, una hipótesis plausible y un buen titular?

ALERT_LOG_MAX_SIZE: nueva gestión del Alert Log en Oracle AI Database 26ai


Durante décadas, el Alert Log ha sido uno de los principales recursos de diagnóstico para los administradores de bases de datos Oracle. En él se registran eventos fundamentales de la instancia: inicio y cierre de la base de datos, errores ORA, cambios estructurales, operaciones administrativas y diferentes condiciones que pueden afectar su funcionamiento.

Sin embargo, el alert log tradicional en formato texto tenía una característica poco conveniente: podía crecer indefinidamente. En instalaciones con varios años de operación no era extraño encontrar archivos alert_<SID>.log de varios gigabytes, obligando a los administradores a implementar mecanismos externos de rotación.

Oracle AI Database 26ai introduce un cambio importante en este comportamiento mediante el parámetro:

ALERT_LOG_MAX_SIZE

Su propósito es establecer un límite para el espacio utilizado por el alert log mediante un mecanismo automático de segmentación y rotación de archivos.

Nota aclaratoria: El parámetro existe realmente desde Oracle Database 23ai en el RU 23.9. Recordar que en la versión 23ai, 23.9 fue el último RU con ese consecutivo anterior, luego en Octubre de 2025 la versión fue renombrada a 23.26.0

  • RU 23.9: Julio de 2025

  • RU 23.26.0: Octubre de 2025 (Esta RU reemplazó conceptualmente a la 23.10 y marcó la transición a 26ai)

  • RU 23.26.1: Enero de 2026

  • RU 23.26.2: Abril de 2026

  • RU 23.26.3: Julio de 2026Nota aclaratoria: El parámetro existe realmente desde Oracle Database 23ai en el RU 23.9. Recordar que en la versión 23ai, 23.9 fue el último RU con ese consecutivo anterior, luego en Octubre de 2025 la versión fue renombrada a 23.26.0

    • RU 23.9: Julio de 2025

    • RU 23.26.0: Octubre de 2025 (Esta RU reemplazó conceptualmente a la 23.10 y marcó la transición a 26ai)

    • RU 23.26.1: Enero de 2026

    • RU 23.26.2: Abril de 2026

    • RU 23.26.3: Julio de 2026

El problema histórico del Alert Log

En versiones anteriores de Oracle, el archivo tradicional:

alert_<SID>.log

continuaba creciendo mientras la instancia estuviera operativa y el archivo no fuera administrado externamente.

Conceptualmente:

alert_ORCL.log
      │
      ├── 500 MB
      ├── 2 GB
      ├── 5 GB
      └── 10 GB ...

Oracle no establecía un tamaño máximo intrínseco para este archivo de texto.

Esto contrastaba con la representación XML del alert log dentro de la infraestructura de diagnóstico de Oracle, que ya utilizaba archivos segmentados.

Por ello, muchos administradores desarrollaron procedimientos propios para copiar, comprimir, truncar o rotar periódicamente el alert log textual.

Con Oracle AI Database 26ai esta situación cambia.

El parámetro ALERT_LOG_MAX_SIZE

ALERT_LOG_MAX_SIZE establece el tamaño máximo que Oracle permite utilizar para los segmentos del alert log.

Puede consultarse mediante:

SHOW PARAMETER alert_log_max_size;

o:

SELECT name,
       value,
       display_value
FROM   v$parameter
WHERE  name = 'alert_log_max_size';

Su valor predeterminado es:

1000M

Es decir, aproximadamente 1 GB.

Sin embargo, interpretar este valor simplemente como "un archivo de hasta 1 GB" sería incorrecto.

La característica fundamental del nuevo mecanismo es que Oracle trabaja con segmentos de aproximadamente 50 MB.

Por ejemplo:

ALERT_LOG_MAX_SIZE = 1000M

representa conceptualmente:

1000 MB / 50 MB = 20 segmentos

Oracle puede mantener así aproximadamente veinte segmentos antes de necesitar eliminar los más antiguos.

Segmentación en archivos de 50 MB

Oracle divide el contenido del alert log en segmentos cuyo tamaño máximo aproximado es de 50 MB.

Conceptualmente:

             ALERT_LOG_MAX_SIZE = 1000M

 ┌──────────────────────────────────────────┐
 │                                          │
 │  50M   50M   50M            50M   50M   │
 │   │     │     │              │     │    │
 │   ▼     ▼     ▼              ▼     ▼    │
 │ seg1  seg2  seg3   ...     seg19 seg20   │
 │                                          │
 └──────────────────────────────────────────┘

Cuando el segmento activo alcanza aproximadamente 50 MB, Oracle realiza automáticamente la transición hacia otro segmento.

Esto elimina la necesidad de mantener un único archivo textual que continúe creciendo durante toda la vida de la base de datos.

¿Qué ocurre cuando se alcanza ALERT_LOG_MAX_SIZE?

Este es el aspecto más importante del parámetro.

Cuando el conjunto de segmentos alcanza el límite determinado por ALERT_LOG_MAX_SIZE, Oracle no deja de registrar información.

Tampoco trunca completamente el alert log.

En su lugar, utiliza un comportamiento de rotación:

[01][02][03][04] ... [18][19][20]
 ↑                             ↑
más antiguo                 más reciente

Cuando se necesita crear un nuevo segmento:

[02][03][04] ...      [19][20][21]
 ↑                             ↑
más antiguo                 más reciente

el segmento más antiguo puede ser eliminado para permitir que la información más reciente continúe registrándose sin superar el límite establecido.

Por tanto, ALERT_LOG_MAX_SIZE debe entenderse como un mecanismo de retención basada en volumen de información, no como una retención basada en tiempo.

Esta diferencia es operacionalmente significativa.

Retención por volumen y no por días

Supongamos una base de datos cuyo alert log genera aproximadamente:

40 MB/día

Con:

ALERT_LOG_MAX_SIZE = 1000M

teóricamente podría mantenerse un historial cercano a:

1000 / 40 = 25 días

Pero una base de datos que durante un incidente genere:

400 MB/día

mantendría aproximadamente:

1000 / 400 = 2.5 días

Esto significa que el parámetro no garantiza una cantidad determinada de días de diagnóstico.

Durante una situación anómala, miles de mensajes repetitivos podrían provocar una rotación considerablemente más rápida y, como consecuencia, la desaparición anticipada de información histórica.

Por esta razón, el dimensionamiento debería considerar el volumen real generado por cada base de datos.

Alert Log de texto y XML

Oracle mantiene diferentes representaciones del alert log.

En términos simplificados, dentro de la estructura de diagnóstico podemos encontrar archivos relacionados con:

trace/
    alert_<SID>.log

alert/
    log.xml
    log_1.xml
    log_2.xml
    ...

La representación XML ya utilizaba históricamente un mecanismo de segmentación automática.

El cambio especialmente significativo de ALERT_LOG_MAX_SIZE es que Oracle incorpora una gestión equivalente para evitar el crecimiento ilimitado del alert log tradicional en formato texto.

Con un valor diferente de cero, el parámetro participa en el control del tamaño máximo utilizado por los segmentos del alert log.

De esta forma, Oracle 26ai proporciona una política más uniforme y predecible para controlar el almacenamiento utilizado por esta información diagnóstica.

El caso especial ALERT_LOG_MAX_SIZE=0

El valor:

ALTER SYSTEM SET ALERT_LOG_MAX_SIZE=0;

tiene un significado especial.

En este caso se elimina el límite de tamaño impuesto por el parámetro.

Para el alert log tradicional de texto, esto permite nuevamente un comportamiento similar al histórico:

alert_<SID>.log
       │
       └── crecimiento sin límite establecido

En cambio, el alert log XML continúa utilizando su mecanismo de segmentación:

log.xml
log_1.xml
log_2.xml
log_3.xml
...

pero la cantidad de segmentos puede continuar creciendo al no existir el límite impuesto por ALERT_LOG_MAX_SIZE.

Por tanto:

ALERT_LOG_MAX_SIZE = 0

no significa "desactivar el alert log", sino desactivar el límite de tamaño asociado al parámetro.

Valores que no sean múltiplos de 50 MB

Otro comportamiento importante es que Oracle trabaja con unidades de segmentación de aproximadamente 50 MB.

Si se establece:

ALTER SYSTEM SET ALERT_LOG_MAX_SIZE=120M;

Oracle no puede representar exactamente 120 MB utilizando segmentos completos de 50 MB.

Conceptualmente:

120 / 50 = 2.4

Se requieren tres segmentos:

3 × 50 MB = 150 MB

Por tanto, Oracle ajusta el límite efectivo al siguiente múltiplo apropiado.

Algunos ejemplos conceptuales serían:

ConfiguraciónSegmentos necesariosTamaño efectivo aproximado
50M150 MB
100M2100 MB
120M3150 MB
200M4200 MB
525M11550 MB
1000M201000 MB

Por ello resulta conveniente configurar valores coherentes con la unidad de segmentación utilizada por Oracle.

Modificación dinámica

ALERT_LOG_MAX_SIZE puede modificarse dinámicamente mediante ALTER SYSTEM.

Por ejemplo:

ALTER SYSTEM
SET ALERT_LOG_MAX_SIZE=500M
SCOPE=BOTH;

o:

ALTER SYSTEM
SET ALERT_LOG_MAX_SIZE=2G
SCOPE=BOTH;

No es necesario reiniciar la instancia para modificarlo.

El parámetro tampoco es modificable individualmente dentro de una PDB. Su ámbito corresponde a la instancia y debe administrarse desde el contexto apropiado del CDB.

En ambientes Oracle RAC, diferentes instancias pueden técnicamente utilizar valores diferentes, aunque desde el punto de vista operacional suele resultar conveniente mantener una política homogénea de diagnóstico entre los nodos.

Una nueva filosofía de administración

La incorporación de ALERT_LOG_MAX_SIZE representa un cambio pequeño desde el punto de vista sintáctico, pero considerable desde la perspectiva operacional.

Durante muchos años la administración del alert log textual dependió de procedimientos desarrollados por cada organización:

Alert Log
    ↓
script externo
    ↓
copiar
    ↓
comprimir
    ↓
truncar
    ↓
conservar histórico

Oracle 26ai incorpora ahora directamente una parte importante de este proceso:

Alert Log
    ↓
segmentos de ~50 MB
    ↓
rotación automática
    ↓
límite ALERT_LOG_MAX_SIZE
    ↓
eliminación de segmentos antiguos

Esto reduce la posibilidad de que un alert log olvidado termine consumiendo varios gigabytes del filesystem.

Consideraciones para ambientes de producción

El valor predeterminado de 1000M no debería aceptarse automáticamente como adecuado para todas las bases de datos.

Una estrategia razonable consiste en determinar primero cuánto alert log genera normalmente la instancia.

Por ejemplo:

Volumen promedio diario
        ×
histórico deseado
        =
ALERT_LOG_MAX_SIZE aproximado

Una base que produzca 25 MB diarios y otra que produzca 300 MB diarios tienen necesidades de retención completamente diferentes.

También debe considerarse que precisamente durante un incidente —cuando más importante resulta conservar información diagnóstica— el volumen del alert log puede incrementarse considerablemente.

Por ello, configurar un valor demasiado pequeño puede provocar que los segmentos que contienen el inicio del problema desaparezcan mientras el incidente todavía está siendo investigado.

Conclusión

ALERT_LOG_MAX_SIZE moderniza un componente que durante décadas mantuvo un comportamiento prácticamente inalterado.

La principal diferencia puede resumirse de la siguiente manera:

ANTES

alert_<SID>.log
       ↓
crecimiento potencialmente ilimitado


ORACLE AI DATABASE 26ai

alert log
    ↓
segmentos de ~50 MB
    ↓
rotación automática
    ↓
ALERT_LOG_MAX_SIZE
    ↓
eliminación de segmentos antiguos

El valor predeterminado de 1000M proporciona aproximadamente 1 GB de capacidad antes de que sea necesario reutilizar el espacio mediante la eliminación de los segmentos más antiguos.

Por tanto, el parámetro no debe interpretarse únicamente como una medida de protección del filesystem. Constituye también una política de retención diagnóstica basada en volumen.

Para un DBA, esa es probablemente su implicación más importante: cuanto mayor sea la actividad registrada en el alert log, menor será el período histórico representado por una determinada configuración de ALERT_LOG_MAX_SIZE.

Oracle AI Database 26ai sustituye así el modelo histórico de "un archivo que continúa creciendo" por un mecanismo controlado de segmentación, rotación y conservación de la información más reciente, haciendo que la administración del alert log sea más predecible y menos dependiente de procedimientos externos.