viernes, 4 de abril de 2025

Los males endémicos de los regímenes actuales

Estos son algunos de los mayores problemas por los que los problemas crecen y crecen:

* Se ha confundido la forma de elegir a alguien (democracia) con la forma de decir si algo es bueno o no (por mayoría).

* El poder legislativo y el ejecutivo no están divididos.

* Se utiliza la multiplicación, en forma de %, para todo. (crecimiento exponencial en lugar de lineal)

* Se permite revender con un valor superior a 50 veces lo pagado.

 

Copyleft Ender. El presente artículo no tiene finalidad informativa, de creación de opinión pública o de entretenimiento. Tiene como finalidad principal, la enseñanza y la divulgación de experiencias, proyectos, pensamientos y conocimientos del autor. Se permite la copia textual, la traducción y la distribución de este artículo entero en cualquier medio, a condición de que este aviso sea conservado. Se permite la cita. El autor no reclamará ninguna cantidad por el ejercicio de las dos autorizaciones anteriores. No autorizo a ninguna Entidad de Derechos de Autor a reclamar cantidad alguna en mi nombre por el ejercicio de los dos derechos anteriores. 

viernes, 28 de marzo de 2025

Si no tienes un ordenador con TPM 2.0 y quieres tener, por alguna extraña razón, un windows 11

Hay una solución. Por desgracia, cierta empresa (M$) se encarga de que no sea sencilla. Windows = W$.

Necesitas un CD/USB con un Linux en vivo que tenga instalado VirtualBox o que permita instalarlo (con conexión a internet).

Necesitas espacio contiguo en el disco duro, tanto como se tenga ocupado con el W$ actual. Hay que des-fragmentar el disco, simplemente para tener ese espacio libre contiguo para crear el disco de la máquina virtual con la misma información que tiene ahora.

Se siguen los pasos de https://www.virtualbox.org/wiki/Migrate_Windows. Solo es más sencillo si se instala directamente en la máquina virtual, pero normalmente se pierde mucha información repartida por miles de lugares en el disco (gracias M$).

Una vez funcione el W$, se apaga la máquina virtual y se cambia la configuración poniendo que tiene un TPM 2.0.

Ahora ya solo se necesitan >20Gb libres en el disco de la máquina virtual para poder actualizar al W$ 11. 

Y ya se puede instalar Linux encima del W$ (sin machacar la configuración de la máquina virtual).

Una vez instalado, si hace falta más espacio en la máquina virtual, se puede ampliar cuanto se necesite, siempre con la máquina virtual apagada.

Y ya estaría todo como debería ser. Un Sistema rápido con una máquina virtual de un sistema lento e inseguro. 

Y sin nada de M$, https://endof10.org/es/


Copyleft Ender. El presente artículo no tiene finalidad informativa, de creación de opinión pública o de entretenimiento. Tiene como finalidad principal, la enseñanza y la divulgación de experiencias, proyectos, pensamientos y conocimientos del autor. Se permite la copia textual, la traducción y la distribución de este artículo entero en cualquier medio, a condición de que este aviso sea conservado. Se permite la cita. El autor no reclamará ninguna cantidad por el ejercicio de las dos autorizaciones anteriores. No autorizo a ninguna Entidad de Derechos de Autor a reclamar cantidad alguna en mi nombre por el ejercicio de los dos derechos anteriores.

lunes, 17 de marzo de 2025

Collatz Conjecture (The number of bits of the biggest number in a path is less than the number of bits of the initial number * 3 + 1)

I have a Conjecture for the 3x+1 problem:

The number of bits of the biggest number (in binary notation) in a path is less than the number of bits of the initial number (in binary notation) * 3 + 1

Unfortunately, I do not know if this can help with a proof, or even how to proof the conjecture.

But I've tested it from 3 to  7_129_136_416_377_336_271_197 successfully with the following python program.

def three_x_plus_one(x):
    if x & 1 == 0:  # % 2 == 0:
        return x >> 1  # //2
    return ((x << 1) | 1) + x  # x*3+1


def max_in_path(initial):
    m = initial
    x = initial
    while x != 1:
        x = three_x_plus_one(x)
        if x > m:
            m = x
    return m


def main():
    # 27 is 11011 (5 bits), its maxumim is 9232 or 10010000010000 (14 bits), 5*3+1=16 bits
    for i in range(3 7129136416377336271197, 2):

        m = max_in_path(i)
        m1 = i.bit_length()
        m2 = m.bit_length()

        # Conjecture:
        # The number of bits of the biggest number in a path is less than the number of bits of the initial number * 3 + 1
        m1_3 = ((m1 << 1) | 1) + m1
        if m2 >= m1_3:
            print("Doesn't apply for i", i, "m1", m1, "m1*2", m1_3, "m2", m2, "m2-m1 * 2", m2 - (m1_3)) 


main()

 

Copyleft Ender. El presente artículo no tiene finalidad informativa, de creación de opinión pública o de entretenimiento. Tiene como finalidad principal, la enseñanza y la divulgación de experiencias, proyectos, pensamientos y conocimientos del autor. Se permite la copia textual, la traducción y la distribución de este artículo entero en cualquier medio, a condición de que este aviso sea conservado. Se permite la cita. El autor no reclamará ninguna cantidad por el ejercicio de las dos autorizaciones anteriores. No autorizo a ninguna Entidad de Derechos de Autor a reclamar cantidad alguna en mi nombre por el ejercicio de los dos derechos anteriores. 

viernes, 24 de enero de 2025

Existe un y Para todo en Seguridad

Dos de las expresiones más utilizadas en las demostraciones matemáticas son: Existe un (there is) "" y para todo (for all) "". Estas expresiones también tienen su equivalente en la seguridad informática.

Primero algunas definiciones:

Programa vulnerable: Aquel que puede hacer algo para lo que no fue diseñado en algún contexto y conjunto de datos de entrada. (por ejemplo, casi todos los programas de cierta corporación).

Programa invulnerable: Aquel que no puede hacer algo para lo que no fue diseñado, en ningún contexto ni con ningún conjunto de datos de entrada. (por ejemplo: los programas hola mundo).

Ahora las reglas que hay que utilizar para no dejarse engañar por la publicidad:

  • Los análisis estáticos de código (SAST) y los dinámicos (DAST), tanto automáticos como manuales, solo pueden decir si (∃) existe algún problema en lo que analizan, pero no pueden garantizar que no exista (∄) ningún problema más. Pero si los SAST se realizan en el entorno de desarrollo, antes de pasar el código al gestor de versiones, la cantidad de problemas posteriores disminuyen.
  • ∄  No existe ningún programa que garantice que otro programa deje de ser un programa vulnerable.
    • Existen (∃) muchísimos programas que evitan casi todos los ataques conocidos hasta el momento, ya sea mediante reglas o actualizaciones diarias (como los antivirus o ese programa (...strike) que hizo casi tanto como un virus).
  • Existe () una forma sencilla de evitar el 99,9999999% de todos los ataques: Validar concienzudamente todos los datos de entrada y dejar pasar solo los deseados. No basta con comprobar que no es vacío, también hay que comprobar su longitud y que tiene la forma que se desea, y eso también incluye, en el caso de las frases, que no contiene caracteres Unicode de control, y que están correctamente decodificados y codificados para el medio donde se vayan a mostrar. Y para que eso sea posible, no hay que mezclar datos. Todo el mundo debería saber ya que en informática es mucho más fácil juntar que separar.



Copyleft Ender. El presente artículo no tiene finalidad informativa, de creación de opinión pública o de entretenimiento. Tiene como finalidad principal, la enseñanza y la divulgación de experiencias, proyectos, pensamientos y conocimientos del autor. Se permite la copia textual, la traducción y la distribución de este artículo entero en cualquier medio, a condición de que este aviso sea conservado. Se permite la cita. El autor no reclamará ninguna cantidad por el ejercicio de las dos autorizaciones anteriores. No autorizo a ninguna Entidad de Derechos de Autor a reclamar cantidad alguna en mi nombre por el ejercicio de los dos derechos anteriores.

viernes, 3 de enero de 2025

Lo que no hacen los SAST automáticos

Un Análisis Estático Automático de Código Fuente (SAST automático) consigue sólo lo siguiente:

* Detectar las construcciones incorrectas o inseguras que el programa ha sido programado para encontrar.

Algunas cosas que no detecta son:

* Fallos de diseño.

* Puertas traseras con código correcto.

* Escritura de datos confidenciales en trazas.

* Construcciones muy incorrectas como: generar una sentencia SQL concatenando, guardarla siempre en el mismo fichero, leer el fichero y realizar la sentencia leída.

* Inconsistencias, como múltiples funciones para conseguir lo mismo (o algo muy parecido).

* El uso de datos no cifrados o firmados correctamente, o que permitan su fácil actualización.

* Y un largo etcétera.

Resumiendo, un SAST automático limpio es lo mínimo que se puede exigir a un programador, pero de eso a pensar que ese código ya es bueno, hay todo un océano que navegar.


Copyleft Ender. El presente artículo no tiene finalidad informativa, de creación de opinión pública o de entretenimiento. Tiene como finalidad principal, la enseñanza y la divulgación de experiencias, proyectos, pensamientos y conocimientos del autor. Se permite la copia textual, la traducción y la distribución de este artículo entero en cualquier medio, a condición de que este aviso sea conservado. Se permite la cita. El autor no reclamará ninguna cantidad por el ejercicio de las dos autorizaciones anteriores. No autorizo a ninguna Entidad de Derechos de Autor a reclamar cantidad alguna en mi nombre por el ejercicio de los dos derechos anteriores.

jueves, 19 de diciembre de 2024

¿Por qué a los buenos programadores no les gusta documentar?

¿Por qué a los buenos programadores no les gusta documentar?

La respuesta es bastante más sencilla de lo que parece. Los buenos programadores documentan mientras programan, y utilizan otros programas para generar documentación en un formato dinámico, como HTML (lo que estás leyendo ahora). Un ejemplo famoso es doxygen.

El problema viene con los puñeteros formatos: Te falta el logotipo, aquí en negrita, no empieces secciones en medias páginas, y lo peor de todo, utiliza un formato privativo de cierta corporación. Además, para los analfabetos informáticos, la documentación generada no es buena, solo porque no la entienden, es demasiado técnica, por eso hay que escribirla a mano en varios archivos de tal modo que para entender algo tengas que leerlos y recordarlos todos, y como no hay enlaces entre ellos (recordemos que ese programa se pensó para sustituir a las máquinas de escribir, no a la documentación dinámica) se inventan formas antediluvianas para intentar paliar esa carencia, haciendo todo mucho más complicado de lo que debiera. Por eso no gusta documentar, porque la mayoría es pura morralla que no sirve para nada. Ni siquiera para poder desplegar desde cero a partir de los repositorios de código fuente.


Copyleft Ender. El presente artículo no tiene finalidad informativa, de creación de opinión pública o de entretenimiento. Tiene como finalidad principal, la enseñanza y la divulgación de experiencias, proyectos, pensamientos y conocimientos del autor. Se permite la copia textual, la traducción y la distribución de este artículo entero en cualquier medio, a condición de que este aviso sea conservado. Se permite la cita. El autor no reclamará ninguna cantidad por el ejercicio de las dos autorizaciones anteriores. No autorizo a ninguna Entidad de Derechos de Autor a reclamar cantidad alguna en mi nombre por el ejercicio de los dos derechos anteriores.

miércoles, 18 de diciembre de 2024

1984 más cerca

Según la prensa internacional, el actual gobierno español está preparando una ley sacada de la novela 1984 para hacer que los opiniarios (televisión, radio y prensa escrita) y aquellos que tienen muchos seguidores deban publicar la versión "verdadera" de los hechos. Por supuesto, la versión "verdadera" la impone el gobierno, igual que en la novela.

Lo que hay que darse cuenta es que hablar de los que hacen mal las cosas (recordemos que para ser político solo se exige saber leer y escribir) da mucho juego, ya sea porque una vez más lo hacen mal o porque se ha producido un milagro y han hecho algo bien. Por eso yo recomiendo vivir en paz y no prestar atención a lo que no podemos controlar (su mal hacer).


Copyleft Ender. El presente artículo no tiene finalidad informativa, de creación de opinión pública o de entretenimiento. Tiene como finalidad principal, la enseñanza y la divulgación de experiencias, proyectos, pensamientos y conocimientos del autor. Se permite la copia textual, la traducción y la distribución de este artículo entero en cualquier medio, a condición de que este aviso sea conservado. Se permite la cita. El autor no reclamará ninguna cantidad por el ejercicio de las dos autorizaciones anteriores. No autorizo a ninguna Entidad de Derechos de Autor a reclamar cantidad alguna en mi nombre por el ejercicio de los dos derechos anteriores.