viernes, 15 de septiembre de 2023

Las pruebas a un programa

Conseguir probar todo es complicado, sobre todo teniendo en cuenta que la cantidad de pruebas al menos se duplica por cada if que tenga el programa.

Llamemos C a todo el conjunto posible de entradas para una función del programa, y llamemos A al conjunto de datos válidos para esa función. Evidentemente, A está incluido en C.  

Por ejemplo, para la función que dadas dos palabras, devuelve un texto que contiene la primera y la segunda palabra si ambas palabras se encuentran en ese orden en un texto fijo. C es el conjunto de {strings, strings}, y A es el conjunto de palabras presentes en el texto fijo.

Casi todos hacen pruebas para comprobar que cuando se pasan dos parámetros de A el resultado es el esperado. Pero casi nadie hace pruebas para comprobar que cuando se pasan dos parámetros fuera de A (de C menos A), el resultado también está controlado y no se para por excepciones de ningún tipo.

Ahora complicamos un poco y suponemos que ese conjunto A, además tiene una forma concreta de un JSON. Es decir, C ha pasado de ser {string, string} a ser {string}, y A ha pasado a ser el JSON del conjunto de palabras presentes en el texto fijo, pero lo que está fuera de A puede ser desde un JSON con los parámetros incorrectos, pasando por cifras, algo que no sea JSON, y una buena cantidad de combinaciones .... Cuando se realizan pruebas ahora, hay que probar los casos buenos de A, pero también representantes de los casos malos de C menos A. Solo con hacer eso, la estabilidad y fiabilidad de los programas supera con creces a los de cierta corporación.


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, 6 de septiembre de 2023

La informática ya no es cosa de ingeniería o matemática

Por desgracia, vivimos en un mundo informático donde hay muchas más personas que no saben programar, ni conocen nada de la teoría de la computación, ni de bases de datos (relacionales, arborescentes, grafos, u otras), ni de comunicaciones, ni de lógica, ni estructuras de datos, a veces ni cómo funciona un ordenador, un sistema operativo o un programa cualquiera. Y superan, con creces, a quienes sí saben lo que se puede hacer o no, y como hacerlo.

Lo malo, es que toda esa gente ocupa, en esas jerarquías que tanto gustan, los puestos superiores de esas jerarquías, donde se deciden qué cosas se tienen que hacer, y lo peor, cómo se deben hacer, y sin consultar con quienes saben hacerlo. Lo malo es que al no conocer lo que se puede o no se puede hacer, empezar a mezclar conceptos simplemente porque la palabra inglesa se parece a la española aunque signifiquen cosas distintas, pues salen cosas muy raras, y mucho más complejas de lo que debieran.

Pero claro, es muy sencillo decir, hágase esto, lo difícil es hacerlo. Y tampoco hay que desdeñar la creación de nuevas palabras para describir "sus hágase esto" o el cambio de significado de palabras ya existentes.

Son ese tipo de personas que piensan que todo se puede solucionar con ficheros con palabras y hojas de cálculo. Lástima. Y que quienes sabemos hacer algo más somos demasiado técnicos. 😂

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, 11 de agosto de 2023

Cómo hacer un buen diseño (de aplicación)

Un buen diseño de una aplicación debe contener una descripción de sus componentes, su almacenamiento permanente, su configuración, sus permisos, y sus internaciones. 

Pero sobre todo tiene que permitir que un humano medianamente entrenado, tras haber leído el diseño, pueda hacer como si fuera un ordenador e interpretar en su cabeza el diseño. Es decir, será completo pero no se perderá en complejidades que no aportan nada, como utilizar identificadores no legibles para cada parte (atrás quedaron los tiempos de M$ y sus limitaciones de 8 caracteres). como les encanta hacer a los funcionarios de escritorio.

Es decir, un buen diseño explica como se harán las cosas, no qué se hará, que eso ya lo hace el análisis.

Por ejemplo, un análisis de una calculadora simplemente dice que se realizará la operación que el usuario seleccione con la información mostrada en la pantalla. Un diseño tiene que profundizar un poco más y decir que cuando un usuario pulsa un botón que no sea de operación, hay dos casos: 

  • Tras una operación, borra el resultado anterior y empieza un nuevo número
  • Continúa con el número en otro caso
  • El número se completa de izquierda a derecha (de potencia más grande a menor) utilizando la base elegida (base 10 por defecto).


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.




martes, 8 de agosto de 2023

La seguridad según M$ (1)

Cuando una corporación entiende mal lo que se quiere conseguir con ciertas tareas, lo único que consigue es empeorar la seguridad frente a esos ataques en lugar de mejorarla.

Esta vez estoy hablando de los cambios de contraseña compulsivos cada cierto tiempo, en lugar de si se sospecha que se ha leído la BBDD de resúmenes de contraseñas o tienes sospecha de que alguien más es capaz de conocerla (por haberte visto introducirla) .. 

Hay que recordar que los programas M$ del W$, puedes averiguar las contraseñas de todos simplemente haciendo unas pocas consultas para ver el estado de los discos compartidos en cualquier momento. No voy a poner ningún enlace a los múltiples programas que lo consiguen.

Supongamos que hablamos de entornos Web utilizando porquerías de M$, con muchos menos agujeros que los programas de M$ diseñados en la era de las redes locales aisladas para eliminar a la competencia. En ese contexto también implementan esa política de cambios compulsivos de contraseñas. Y tienen una lista de las contraseñas recientes que no puedes repetir, pero se les olvida una nimiedad de nada ...No poder cambiar las contraseñas cuantas veces quieras en un periodo corto de tiempo. Resultado: Puedes dejar la misma contraseña, simplemente gastando tiempo, cambiándolas el número de veces que no puedes repetir, más una.


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, 14 de julio de 2023

Si yo fuera presidente

Solo me dedicaría a conseguir dos objetivos (y gestionar todos los imprevistos, claro) durante 4 años:

* Simplificar toda la burrocracia, y hacerla compatible a toda España y a ser posible Europa, y conseguir que los funcionarios de escritorio sean capaces de procesar toda su burrocracia en menos de una semana.

* Conseguir que los funcionarios de escritorio sean eficaces, aunque eso suponga que tienen que olvidarse del segundo y tercer cafelito.

Ninguno de esos representantes de la soberanía nacional que elegimos para que sean los jefes de los funcionarios ha prometido nunca tal cosa. De hecho, parece que su labor es la contraria, complicar la burrocracia cada vez más.

Por eso se conoce como burrocracia, porque no es ni siquiera burocracia, es presentar un sinfín de papeles que ya deberían tener una y otra y otra y otra vez, para pasados 2 años decirte: Te falta esto otro, no lo hacemos.


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, 22 de junio de 2023

Cómo debería ser el proceso de concesión de ayudas por parte de los Gobiernos

Los Gobiernos, con todas sus bases de datos sin interconectar (por eso siguen pidiendo todos los papeles habidos y por haber), podrían mejorar mucho la percepción de la ciudadanía simplemente haciendo un pequeño cambio. 

Actualmente:

* Te tienes que enterar de que el Gobierno de turno ofrece una ayuda.

* Tienes que comprobar (si eres capaz) si, realmente, te corresponde esa ayuda.

* Tienes que buscar los cientos de papeles que te piden, además del correspondiente formulario.

* Tienes que esperar entre 2 y 200 meses hasta que procesan los papeles y los introducen en su nueva base de datos y por fin te responde si te corresponde o no.

Cambio propuesto:

* El Gobierno revisa sus bases de datos, y a todo ciudadano al que vea que le corresponde esa ayuda, le envía una notificación.

* El ciudadano notificado decide si acepta la ayuda o no. Tiempo estimado desde que se dice que se ofrece la ayuda hasta que el 90% de la población "diana" la recibe, menos de 1 mes.

* Por desgracia, dada la infalibilidad de los funcionarios, el 10% restante necesitará hacer los papeleos tal y como se hacen actualmente, pero ya no tendrán excusa y deberán tardar menos de 2 meses hasta procesar la petición.


Esto es el tipo de mejora que yo quisiera ver que proponen los políticos (si es que hay alguno capaz de ello), no solo desacreditar al contrario y hacer propuestas triviales del estilo: Por favor, señores americanos, inviertan aquí, que algo nos dejarán.


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, 29 de mayo de 2023

Se avecina otra crisis y todo apunta a que la van a gestionar igual que la anterior

Se avecina otra crisis, según estos indicios:

Alemania entra en recesión

Las eléctricas y petroleras siguen robando a sus anchas.

Más bancos estadounidenses que van a la quiebra

Las empresas grandes están haciendo recortes ya desde primeros de año.

Ya se están viendo los primeros síntomas, y como la mayoría querrá que se gestione igual que la anterior, volveremos a tener más recortes desde esas elecciones generales anticipadas.


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.