SGCG

…esto no es un subtítulo…

Ir a: contenido categorías calendario archivo suscripción

Volver arriba

Últimos artículos

Flores (9)

2020-08-06

He aquí una fotografía de una flor tomada con una lente con mucha aberración esférica que provoca un efecto resplandeciente, etéreo.

Fotografía de una flor tomada con una lente con mucha
     aberración esférica.
Fotografía de una flor tomada con una lente con mucha aberración esférica. Más grande.


Categorías: Fotografía

Permalink: http://sgcg.es/articulos/2020/08/06/flores-9/

Repuntes y no repuntes (3)

2020-08-05

Este artículo completa el de ayer, que a su vez fue continuación de uno de hace mes y pico sobre lo acertado o no de afirmar que existe un repunte en una serie temporal, todo motivado por la actual situación epidémica. En el artículo de ayer, vimos cómo los datos de nuevos casos diarios detectados en la Comunidad de Madrid (puestos a disposición del público por el ISCIII) sugerían fuertemente que estamos en pleno repunte después de un tiempo con tendencia a la baja. Vimos una gráfica en la que el comportamiento de la serie temporal a partir del máximo de contagios quedaba ajustado mediante dos tendencias: una descendente del 15 de marzo al 1 de julio y otra creciente a partir del 1 de julio. El principio de parsimonia nos lleva a elegir el modelo más sencillo posible: para un repunte, basta con ajustar dos tendencias en escala logarítmica (una a la baja seguida de una al alza). El ajuste puede mejorar notablemente, no obstante, si tomamos tres tendencias: una descendente fuerte inicial, una descendente moderada y con mucha varianza intermedia, y una tendencia ascendente final (el repunte). La siguiente figura ilustra este nuevo ajuste:

Evolución de los nuevos casos diarios de una epidemia.
Evolución de los nuevos casos diarios de una epidemia. Las áreas sombreadas, por amplitud creciente, abarcan una desviación típica por encima y por debajo de la tendencia, dos desviaciones típicas por encima y por debajo de la tendencia y tres desviaciones típicas por encima y por debajo de la tendencia. Hay t4res tendencias ajustadas en la gráfica: una fuertemente decreciente del 15 de marzo al 1 de mayo, una moderadamente decreciente del 1 de mayo al 1 de julio, y una creciente a partir del 1 de julio.

Tanto la tendencia inicial como la tendencia final son aproximadamente igual de poco ruidosas, mientras que los datos alrededor de la tendencia intermedia fluctúan intensamente. La tendencia decreciente inicial coincide aproximadamente con el confinamiento, que naturalmente ha de ser bastante eficaz. La tendencia intermedia coincide aproximadamente con la desescalada, cuyos efectos han de notarse de alguna manera. La tendencia creciente final puede ser o no un motivo de preocupación; todo se sabrá con el paso del tiempo.


Categorías: Salud

Permalink: http://sgcg.es/articulos/2020/08/05/repuntes-y-no-repuntes-3/

Repuntes y no repuntes (2)

2020-08-04

Este artículo es continuación de un anterior artículo (motivado por la actual situación epidémica) sobre lo acertado o no de afirmar que existe un repunte en una serie temporal. En aquel artículo, vimos cómo los datos puntuales de un día con aparentemente muchos casos no eran más que «ruido estadístico», meras variaciones que se habían mantenido durante mucho tiempo alrededor de una tendencia estable. Las situaciones cambian con el tiempo, naturalmente, y los los nuevos datos pueden indicar un cambio de tendencia. Sirve de ejemplo la siguiente curva sobre casos diarios de la Comunidad de Madrid, esta vez construida a partir de datos puestos a disposición del público por el ISCIII:

Evolución de los nuevos casos diarios de una epidemia.
Evolución de los nuevos casos diarios de una epidemia. Las áreas sombreadas, por amplitud creciente, abarcan una desviación típica por encima y por debajo de la tendencia, dos desviaciones típicas por encima y por debajo de la tendencia y tres desviaciones típicas por encima y por debajo de la tendencia. Hay dos tendencias ajustadas en la gráfica: una decreciente del 15 de marzo al 1 de julio y otra creciente a partir del 1 de julio.

Por parsimonia, después del máximo de casos solamente hay un ajuste de una tendencia descendente y una tendencia ascendente. Habría un ajuste mucho mejor con una tendencia descendente intensa en marzo y abril, una tendencia descendente moderada en mayo y junio, y una tendencia ascendente en julio. Aun así, con la gran desviación que tiene la tendencia descendente, el mes de julio es difícil de explicar si no es con un cambio de tendencia que nos lleva a tener más y más casos. Ahora sí parece legítimo decir que estos datos indican un repunte.


Categorías: Salud

Permalink: http://sgcg.es/articulos/2020/08/04/repuntes-y-no-repuntes-2/

Para eso no hacía falta un estudio

2020-07-31

No falla: la prensa habla sobre algún estudio científico que confirma una idea popular y alguien tiene que afirmar que para esto no hacía falta un estudio, ya que se trataba de algo supuestamente conocido. Sucede que la ciencia no funciona a base de anécdotas, «cultura general» (que no es tan general ni es tanta cultura) y «sentido común» (que no es tan común y no es más que una heurística que ocasionalmente da buenos resultados); el rigor es lo que nos separa de la superstición y las meras opiniones. ¡Por supuesto que sí hacía falta un estudio!


Categorías: Miscelánea

Permalink: http://sgcg.es/articulos/2020/07/31/para-eso-no-hacia-falta-un-estudio/

Píxeles de papel electrónico

2020-07-29

Aquí hay otra fotografía píxeles, esta vez de un lector de libros electrónicos.

Píxeles vistos de cerca.
Píxeles vistos de cerca.

Anteriormente, píxeles:


Categorías: Fotografía

Permalink: http://sgcg.es/articulos/2020/07/29/pixeles-de-papel-electronico/

Estrella fugaz

2020-07-28

He aquí una fotografía de una estrella fugaz. No es muy buena, pero me gusta porque la cacé de casualidad con una exposición de ocho segundos. La estrella fugaz es la ténue línea recta del centro.

Fotografía de una estrella fugaz.
Fotografía de una estrella fugaz. Más grande.


Categorías: Fotografía

Permalink: http://sgcg.es/articulos/2020/07/28/estrella-fugaz/

Flores (8)

2020-07-27

He aquí una fotografía de una flor tomada con una lente con mucha aberración esférica que provoca un efecto resplandeciente, etéreo.

Fotografía de una flor tomada con una lente con mucha
     aberración esférica.
Fotografía de una flor tomada con una lente con mucha aberración esférica. Más grande.


Categorías: Fotografía

Permalink: http://sgcg.es/articulos/2020/07/27/flores-8/

Privacidad supuestamente importante

2020-07-23

Esta escena es muy común últimamente: entramos en una página web y nos vemos asaltados por un ridículo cartel que afirma una mentira por el estilo de tu privacidad es importante y nos obliga a dar algún tipo de consentimiento (que normalmente será de mentirijillas) para que cientos de empresas se dediquen a, esencialmente, ejecutar un spyware en nuestro ordenador. ¿Nuestra privacidad es importante? ¡Es que no se trata de nuestro derecho a la privacidad lo que es importante, son importantes nuestros dulces y jugosos datos privados igual que para el mosquito es importante nuestra sangre!


Categorías: Derechos

Permalink: http://sgcg.es/articulos/2020/07/23/privacidad-supuestamente-importante/

Jugando con la carga del sistema (4)

2020-07-19

Vimos que la carga de un sistema *nix es, de forma resumida, la cantidad promedio de procesos en ejecución en un intervalo de tiempo. Se da normalmente a un minuto, cinco minutos y quince minutos. Tras una primera herramienta con control de tipo todo o nada, una segunda herramienta con control de tipo proporcional e integral y una tercera herramienta con control en lazo abierto, por diversión, vamos a diseñar la cuarta pequeña herramienta que permite alcanzar una carga del sistema elegida a base de consumir tiempo de procesador de forma controlada.

Diseño básico

Si queremos alcanzar un cierta carga C, necesitamos al menos C procesos trabajando simultáneamente. En general, C no es un número entero, así que el número de procesos ha de ser, como poco, C redondeado a entero hacia arriba; llamaremos P a este número.

Nuestra herramienta va a tener un control en lazo cerrado proporcional e integral modificado: sobre la actuación del control en lazo abierto se hace una modificación con control en lazo cerrado proporcional e integral. El punto de trabajo básico dicta que los procesos se mantienen ocupados una fracción de tiempo suficiente que permitiría alcanzar la carga deseada si no hubiera más procesos en ejecución; en general, la carga alcanzada será distinta de la deseada, con lo que esta actuación se perturba con una contribución que suma de una componente proporcional al error en la carga alcanzada y una componente proporcional a la integral en el tiempo de dicho error. La componente integral otorga al controlador una memoria que sirve para que converja con el tiempo.

Detalles

Escribiremos la herramienta en el lenguaje de programación C. Esta herramienta podrá funcionar en sistemas *nix modernos que cuentan con la función getloadavg (que sirve para obtener la carga del sistema), además de las funciones estándar de entrada y salida, creación de procesos y demás.

El programa es muy sencillo. Toma un único argumento, la carga deseada, que interpreta con una llamada a atof. Después, crea múltiples subprocesos con llamadas a fork de manera que, entre estos subprocesos y el proceso principal, la cantidad de procesos es igual a la carga deseada redondeada a entero hacia arriba. Cada proceso entra en un bucle que se repite diez veces por segundo y, en cada uno de los ciclos de una décima de segundo, el tiempo se reparte entre una fracción de tiempo de alto consumo del procesador y una fracción de tiempo de bajo consumo (durmiendo). La fracción de tiempo con alto consumo de procesador es igual a la carga deseada dividida entre el número de procesos más una corrección proporcional al error en la carga del sistema y una corrección proporcional a la integral en el tiempo de dicho error.

Más allá de verificar que el usuario pasa una cantidad correcta de argumentos, el programa no comprueba si hay errores. ¡No es más que un juguete hecho en escasos minutos!

Los parámetros del sistema de control están escogidos a voleo, así que es muy probable que haya una combinación mejor que permita converger rápidamente a la carga deseada sin apenas sobrepasarla.

El programa

El código fuente está disponible a través de este enlace. Para compilarlo en un sistema compatible, basta con usar el compilador de C:
cc -o load-modified-pi load-modified-pi.c

El programa necesita un argumento: la carga deseada. Por ejemplo, para pedir que la carga sea 3, podemos ejecutarlo así desde el mismo directorio en el que lo tenemos:
./load-modified-pi 3

Con la orden anterior, el programa tratará de mantener la carga a 3 hasta que lo detengamos.

El programa, por supuesto, es software libre y se distribuye bajo la licencia GPLv3.


Categorías: Informática

Permalink: http://sgcg.es/articulos/2020/07/19/jugando-con-la-carga-del-sistema-4/

Jugando con la carga del sistema (3)

2020-07-18

Vimos que la carga de un sistema *nix es, de forma resumida, la cantidad promedio de procesos en ejecución en un intervalo de tiempo. Se da normalmente a un minuto, cinco minutos y quince minutos. Tras una primera herramienta con control de tipo todo o nada y una segunda herramienta con control de tipo proporcional e integral, por diversión, vamos a diseñar la tercera pequeña herramienta que permite alcanzar una carga del sistema elegida a base de consumir tiempo de procesador de forma controlada.

Diseño básico

Si queremos alcanzar un cierta carga C, necesitamos al menos C procesos trabajando simultáneamente. En general, C no es un número entero, así que el número de procesos ha de ser, como poco, C redondeado a entero hacia arriba; llamaremos P a este número.

Nuestra herramienta va a tener un control en lazo abierto: los procesos se mantienen ocupados una fracción de tiempo suficiente que permitiría alcanzar la carga deseada si no hubiera más procesos en ejecución. Como no se dará tal caso, este programa no responde a las perturbaciones y la carga alcanzada normalmente no será la deseada.

Detalles

Escribiremos la herramienta en el lenguaje de programación C. Esta herramienta podrá funcionar en sistemas *nix modernos que cuentan con la función getloadavg (que sirve para obtener la carga del sistema), además de las funciones estándar de entrada y salida, creación de procesos y demás.

El programa es muy sencillo. Toma un único argumento, la carga deseada, que interpreta con una llamada a atof. Después, crea múltiples subprocesos con llamadas a fork de manera que, entre estos subprocesos y el proceso principal, la cantidad de procesos es igual a la carga deseada redondeada a entero hacia arriba. Cada proceso entra en un bucle que se repite diez veces por segundo y, en cada uno de los ciclos de una décima de segundo, el tiempo se reparte entre una fracción de tiempo de alto consumo del procesador y una fracción de tiempo de bajo consumo (durmiendo). La fracción de tiempo con alto consumo de procesador es igual a la carga deseada dividida entre el número de procesos.

Más allá de verificar que el usuario pasa una cantidad correcta de argumentos, el programa no comprueba si hay errores. ¡No es más que un juguete hecho en escasos minutos!

El programa

El código fuente está disponible a través de este enlace. Para compilarlo en un sistema compatible, basta con usar el compilador de C:
cc -o load-open load-open.c

El programa necesita un argumento: la carga deseada. Por ejemplo, para pedir que la carga sea 3, podemos ejecutarlo así desde el mismo directorio en el que lo tenemos:
./load-open 3

Con la orden anterior, el programa tratará de mantener la carga a 3 hasta que lo detengamos.

El programa, por supuesto, es software libre y se distribuye bajo la licencia GPLv3.


Categorías: Informática

Permalink: http://sgcg.es/articulos/2020/07/18/jugando-con-la-carga-del-sistema-3/