• Del autor
  • Principios y algoritmos de concurrencia

Ricardo Galli, de software

~ De software libre, internet, legales

Ricardo Galli, de software

Publicaciones de la categoría: ciencia

Las probabilidades del empate de la CUP

28 Lunes Dic 2015

Posted by gallir in ciencia, pijadas

≈ 51 comentarios

Etiquetas

CUP, empate, probabilidades

Actualización: un segundo artículo donde respondo a las cuestiones y errores más frecuentes sobre este tema: Más de CUP, el mal uso de probabilidades y un bayesiano.

En Twitter preguntan cuál era la probabilidad de empate:

.@franlesg864 @cultrun la probabilidad con 3030 es aproximadamente 1.44%

— Ricardo Galli (@gallir) December 27, 2015

Dado que había ya respuestas erróneas respondí, luego expliqué cuál es la forma de calcular la probabilidad de que 3030 personas cuyos votos son independientes (se supone) y que tienen dos opciones (no contamos abstenciones, varía poco). Pero no hubo caso, seguían insistiendo que estaba mal. Unos con fórmulas equivocadas, otros asegurando que hubo tongo y conspiraciones varias. Y otros que si hubiese sido impar el nḿero de votantes el empate es imposible (¡gran observación! :roll:).

Por supuesto que cuando calculas probabilidades te ciñes a unos supuestos, en este caso son muy simples:

  • Son 3030 votos contabilizados, cada uno puede ser sí o no (o 0 y 1).
  • Un empate se da cuando hay igual número de síes (1) que de noes (0).

Sigue leyendo →

Ciencias de la computación e ingeniería, y [algunas de] sus diferencias

07 Martes Oct 2014

Posted by gallir in ciencia, desarrollo, programación

≈ 17 comentarios

Etiquetas

concurrencia, exlcusión mutua

Hay un tema que se estudia en todas las carreras de informática, el de “sincronización, concurrencia y exclusión mutua entre procesos”. Surgió en la década de 1950 cuando empezaron a desarrollarse los primeros sistemas con multiprogramación. Aunque surgió como problemática de sistemas operativos se ha convertido en un tema de general y fundamental en informática. Todas las carreras de informática incluyen su estudio tanto en las asignaturas de sistemas operativos como en otras específicas de programación concurrente.

El tema de concurrencia (y su hermano más complejo “programación distribuida”) es un típico tema de “ciencias de la computación”, donde se estudian los algoritmos y se prueban formalmente que funcionan: se demuestra que aseguran exclusión mutua, que no produce inanición (starvation), ni interbloqueos (deadlocks). No es simple enseñar estos temas y sus soluciones obligan a pensar de otro manera, un programa ya no es una serie secuencial de instrucciones, sino que se mete por medio una intercalación “no controlada” y no determinística de otras instrucciones de procesos independientes.

El tema de exclusión mutua es un tema relativamente sencillo de demostrar, por ejemplo este código que suma una variable desde cero hasta 99.999.999 (cien millones menos uno), pero no lo hace de una forma tradicional, sino que son dos hilos (threads) los que la incrementan individualmente. Podéis compilarlo y probarlo (no olvidéis de compilarlo con la opción -pthread), veréis que produce unos errores enormes. El problema es que dos procesos diferentes acceden al mismo recurso compartido (la variable count) y se “pierden” operaciones debido a las interrupciones e intercalaciones.

Este caso es muy estudiado y todas las asignaturas comienzan con algo similar, es la exclusión mutua entre [solo] dos procesos. Así se estudian los “cuatro intentos” para solucionarlo, luego el algoritmo de Dekker y finalmente el de Peterson (aquí los tenéis a todos).

Así se puede demostrar formalmente que funciona correctamente, que asegura exclusión mutua y tal y cual. Pero si lo implementas (aquí lo tenéis listo para compilar y ejecutar con el ejemplo anterior) y lo pruebas en cualquier ordenador moderno verás que… falla como escopeta de feria.

¿Qué pasó? ¿Falla la teoría? ¿Fallan las demostraciones? ¿Los teóricos de las ciencias de la computación no sirven para nada?

Actualización: la respuesta.

Ninguna de ellas, este es un típico ejemplo donde la teoría se distanció de la “realidad”, o mejor dicho, donde la evolución tecnológica de los microprocesadores modernos hace que las técnicas de concurrencia que dábamos por buenas (y que lo son formalmente y con todos los modelos de computación y/o de lenguajes “tradicionales”) ya no funcionen. Es la diferencia entre hacer “sólo ciencia” y la “ingeniería” (es decir, resolver problemas que te impone la realidad, no tan perfecta como la teoría).

Tampoco es para los ingenieros se feliciten y miren por encima del hombro a los teóricos, porque la mayoría de “ingenieros” tampoco saben explicar o resolver este problema, muchas veces ni siquiera son capaces de identificarlo (no, si estás leyendo este blog no eres de la “media”, eres bastante friki y al menos lo habrás oído, o sabrás buscar rápidamente en la Wikipedia o Stackoverflow 😉 ).

Si no tienes idea de qué está pasando, ya lo explicaré en un comentario (si nadie lo hace antes), pero mientras tanto puedes ir probando este otro código que sí funciona y sólo difiere en una línea con el anterior.

Sólo quería recordar que aún en ciencias tan “formales” como la informática la teoría no siempre funciona en la práctica, que el tema de concurrencia tiene sus complejidades no siempre a la vista, que un buen ingeniero debe saber reconocer esos problemas y poder solucionarlo, y que esto exige que conozcamos bastante de detalles del hardware y microprocesadores actuales.

No es nada simple, lleva su tiempo, y tendemos a pensar que lo sabemos todo. O que la “ingeniería informática” consiste en saber liderar sprints de Scrums con postits de colores fosforitos.

PS: Por estas cosas, entre muchas, la informática es apasionante.

La complejidad global de la comunidad científica, y boicots imposibles

18 Lunes Ago 2014

Posted by gallir in boicot, ciencia, internet, israel, palestina, política

≈ Comentarios desactivados en La complejidad global de la comunidad científica, y boicots imposibles

Por casualidades y azares de la vida (y muy malas decisiones de joven inexperto), antes de cumplir 30 años coordinaba proyectos de I+D europeos de millones de euros (uno de ellos MONALISA, que tuvo mención como el segundo mejor proyecto de I+D del cuarto programa marco de la Comisión Europea), pasaba más tiempo viajando que en mi casa, con discusiones muy duras con investigadores reconocidos y mucho mejores que yo, estaba metido de lleno en el politiqueo y gestión de fondos de investigación. Todo esto me provocó depresiones, y retrasos para acabar mi tesis doctoral y lo que debería ser mi actividad fundamental en esos años: aprender e investigar (de nuevo, meterme en esto tan joven e inexperto fue una de mis peores decisiones profesionales). Me dijeron que sería muy importante para mi curriculum, pero la reforma universitaria del PP del 98 (LRU) dejó todo eso en nada, como si jamás lo hubiese hecho.

Tuve discusiones y peleas infames, directora de tesis que me obligó a sacar agradecimientos a otras personas y poner a ella. Reuniones de grupos de investigación donde se trataba la “expulsión” de un miembro sin que ese hubiese estado invitado. También sufrí mobbing, gente de mi grupo de investigación que se pusieron de acuerdo para no dirigirme la palabra (no sé por qué, todavía), o que me apagaban las luces del laboratorio donde estaba trabajando para que ellos pudiesen ver un vídeo, o que el director de mi departamento haya solicitado al rector que me despidan (tampoco sé por qué, quizás porque un sudaca nuevo en el dept. se resistía a lamer el culo de los “jefecillos”). Millones de líneas de código desarrollado perdidos en un backup porque no hubo acuerdo político sobre los derechos de autor de las organizaciones involucradas. Catedráticos de química que criticaron mi currículum porque no había patentado mis algoritmos, sin importar que no se pueden patentar algoritmos en España, y que yo estuviese radicalmente en contra de este tipo de patentes.

Lo pasé mal y tuve muchas malas experiencias dentro del ambiente académico, pero con el tiempo todo eso me hizo admirar mucho más a la “construcción social de la ciencia”. No sólo hemos logrado construir una serie de reglas y procedimientos para crear conocimientos y minimizar los sesgos humanos, a pesar de nosotros mismos hemos sido capaces de construir una comunidad global y colaborativa a gran escala que funciona y se perfecciona. No hay nada mejor que experimentar en primera persona las miserias de esta comunidad para comprender que es casi un milagro que funcione, hemos aprendido a hacerla a pesar de nuestras taras y miserias humanas.

Más allá del mal llamado “método científico” (no hay uno sólo, ni siquiera hay consenso total en alguno de ellos, mas bien son “prácticas”, “métodos” y “costumbres”), la ciencia es muy global y su funcionamiento es bastante complejo. Comienza cuando un estudiante quiere dedicarse a la investigación, lo que hace que participe como colaborador o becario en grupos de investigación de su universidad, luego hará cursos de doctorado, conseguirá becas para pasar un tiempo en algún centro de prestigio internacional (es casi condición indispensable para un doctorando), sus directores de tesis intentarán conseguir becas para que pueda seguir investigando en su propio centro, luego de varios años acabará su tesis, conseguirá una beca post doctoral, y si tiene mucha suerte podrá volver en algún momento a su universidad de origen, o conseguir una plaza en algún centro prestigiosos. Pasarán más de 10 años, con salarios ridículos, hasta que pueda asentarse en un sitio y pensar en formar familia.

Mientras tanto la lucha es dura, tendrá que publicar en revistas internacionales de prestigio y colaborar en las propuestas y presentación a concursos competitivos para conseguir fondos para financiar su investigación. Las universidades (especialmente las públicas en Europa y España) no pueden dedicar fondos propios para financiar la investigación, ella depende de becas y concursos a nivel nacional, europeos (son los más) e incluso de otro países (que incluye hasta fondos de proyectos de defensa norteamericanos -DARPA-, que financian hasta proyectos de software libre como OpenBSD o ReiserFS, o Europa que financia proyectos de investigación con China, Sudamérica, países árabes e Israel). Estas ayudas a investigación se suelen dar a consorcios de grupos de investigación de diferentes centros y países, lo que obliga a un gran trabajo de relaciones públicas y coordinación entre ellos (lo que suelen hacer los “directores” o “investigadores principales”) para presentar propuestas atractivas y creíbles.

Es imposible hacer investigación de calidad sin la colaboración (científica y de dinero) internacional. Incluso hasta para conseguir una beca hace falta esta cooperación.

Imaginaros que desde España no se tuviese acceso a esa cooperación, ni que se pudiese publicar en revistas internacionales, ni se pudiese invitar a científicos extranjeros… casi inmediatamente sería imposible hacer ciencia, ni siquiera podríamos divulgar y validar lo poco que se generaría al ser imposible acceder a publicaciones de prestigio. Miles de becarios quedarían en la calle, otros cientos en otros países deberían regresar al quedarse sin becas, y los que quisieran seguir siendo miembros activos de la comunidad científica deberían buscarse la vida para emigrar.

Esto no es ciencia ficción, ha pasado en Alemania durante el régimen nazi, y ha sido la propia comunidad científica la que se organizó para romper el “bloqueo” a la ciencia alemana (tal como lo cuenta en detalle Quantum: Einstein, Bohr and the Great Debate About the Nature of Reality para los científicos que estaban trabajando en al incipiente mecánica cuántica). La ciencia, es decir la “generación de conocimiento”, es un esfuerzo colaborativo internacional que funciona -casi milagrosamente- a pesar de los vaivenes políticos y sociales.

Lo que acabo de contar es sólo una pequeña parte de la complejidad e interdependencia del funcionamiento de la ciencia, y los problemas y esfuerzos (mal pagados en su inmensa mayoría) que deben superar los que la hacen. Por eso suele ser muy raro que haya consenso cuando se quiere imponer boicots científicos. Se sabe que perjudica a los que más esfuerzos hacen, y que podría ocasionar la pérdida de toda una generación de investigadores en el país afectado.

Cuando leí que una serie de “anónimos”, sin experiencia ni conocimiento de lo que acabo de relatar, promovían un boicot científico contra Israel quedé atónito, y muy cabreado.

Pero ahora vienen idiotas que nunca hicieron ciencia, ni conocen nada de su historia, promoviendo bloqueos científicos. Daumau.

—
Ricardo Galli (@gallir) August 11, 2014

Sí, fue muy “asertivo” y terminante, pido disculpas si ofendí, pero también:

  1. Hacer boicots en general es una mala idea si no se conocen sus alcances ni a quién perjudica o favorece,
  2. hacer un “boicot científico” (con lo que ello podría significar) no sólo es impracticable, es una muy mala idea (como demuestra la historia y la crítica de la mayoría de la comunidad científica a estas propuestas),
  3. promoverlo en redes sociales sin siquiera explicar qué es lo que se pretende y cómo, es una estupidez,
  4. que además lo propongan personas que no tienen experiencia, no son partícipes ni conocen cómo funciona la comunidad científica, no se juegan nada (a ellos no les afectaría personalmente), ni siquiera pueden hacer nada (¿qué pueden hacer ellos para el bloqueo? ¿crear hashtags? ¿dejar de respirar?) es una soberana estupidez, un postureo social media populista y de cuñaos muy idiota. Se mire como se mire.

Varios me trolearon respondieron con la “noticia” (de hace un año atrás) de que Hawkins se había unido al boicot académico contra Israel, pero no supieron aplicar lógica básico:

  • Hawkins es un científico (además es un outlier, no la media, ni de lejos), por lo que no se cumple la condición de “no es científico” o “no tiene idea de ciencia”.
  • Fue una decisión personal (y bastante reservada) de rechazar una invitación personal a un congreso presidido por el presidente israelí (Shimon Peres), no fue un llamado en Twitter para que se haga “boicot científico”, así, en general. Por ello el “boicot” de Hawkins sí tiene su mérito: le afectaba personalmente, rechazó estar en una conferencia con el presidente israelí, no un boicot a los demás científicos como muchos pretenden.
  • Como es sabido en la comunidad científica, no hay “vacas sagradas” y hasta el mejor científico puede estar equivocado. Recibió críticas de la propia comunidad científica, me limito a citar la opinión de Chmosky (es conocido su activismo pro Palestina y anti israelí): he supports the “boycott and divestment of firms that are carrying out operations in the occupied territories” but that a general boycott of Israel is “a gift to Israeli hardliners and their American supporters”.

Ya sé que es imposible evitar el cuñadismo, el tertulianismo y las simplificaciones populistas en las redes sociales. De hecho se premian estas actitudes: son todos expertos en todo y pueden salvar el mundo con unos cuantos hashtags y RTs. Pero hay límites para tanta tontería.

Un problema muy simple de física que fallarás al resolverlo

14 Sábado Jun 2014

Posted by gallir in ciencia

≈ 39 comentarios

Etiquetas

einstein, max wertheimer

Tienes que atravesar en bicicleta un camino de 2 km que atraviesa una colina. Tiene un kilómetro en subida y el otro de bajada. En la subida le velocidad media que puedes alcanzar es de 15 km/hora. La pregunta es ¿a qué velocidad debes bajar para que quede una media de 30 km/hora?

Piensa un minuto.

Sigue leyendo →

La compleja coreografía porque presionaste la letra A

29 Martes Abr 2014

Posted by gallir in ciencia, pijadas, programación

≈ 19 comentarios

Etiquetas

sistemas operativos, X11

Tu teclado detectó que presionaste la letra A, sus chips lo codifican en un scancode, este código es convertido en un señales eléctricas que se transmitirán por el cable USB al controlador que está conectado a la placa del ordenador. Este controlador detecta las señales eléctricas, las reconstruye en números binarios que almacena en un área de memoria del dispositivo, a continuación genera una solicitud de interrupción (IRQ) que será transmitida al microprocesador.

Esta interrupción está codificada y se recibe en el procesador en unas pins especiales para ellas, cuando llega la generada por la tecla que presionaste el procesador decide a qué core o procesador enviar esa petición (enrutamiento de interrupciones). Éste interrumpe lo que estaba ejecutando en ese momento,  analiza el IRQ, accede a una tabla de interrupciones (que fue rellenada cuando el sistema operativo se inició) donde le indica la dirección de la rutina del kernel que debe ejecutar. Cambia los registros necesarios, posiblemente invalida (flush) las cache y TLB del proceso anterior, cambia el nivel de ejecución del procesador a uno de con más privilegios y pasa a ejecutar la dirección indicada en la tabla de interrupciones.

La rutina del núcleo del sistema operativo analiza los registros y llama al gestor del controlador USB, que puede acceder a la memoria del dispositivo vía instrucciones de E/S del procesaor para que copie los datos a la memoria RAM. También llamará al gestor específico de teclado por USB (lo más probable es que sea el usbhdi) que convierte el scancode original en un código de caracteres vía una tabla de conversión (o mapa del teclado).

Una vez realizada las operaciones de transferencia de datos desde el dispositivo, se llaman a las rutinas de E/S de caracteres del núcleo. Éstas analizan qué proceso es el que debe recibir esa entrada de teclado, si usas un GNU/Linux con interfaz gráfica el proceso es el servidor X (X.org), copian los datos al área de memoria de dicho proceso, lo desbloquean y llaman al scheduler para que decida qué proceso debe ejecutar a continuación.

Al desbloquearse el proceso, éste pasa de la lista de procesos bloqueado a la lista de procesos listos para ejecutar. Allí el servidor X competirá por el procesador con otros procesos, eventualmente será seleccionado por el scheduler, este procederá a preparar al procesador (o núcleo) para que lo ejecute (cambio de contexto o context switch), invalidará las caches del proceso anterior, preparará las tablas de páginas básicas, cambia el privilegio del procesador al de uno de proceso normal y finalmente transfiere el control al proceso X.

Éste continúa su ejecución desde la llamada epoll o select que hizo para recibir E/S, analiza los datos que le dejó el sistema operativo y decide que es un letra picada en el teclado (el editor de texto, o la terminal, o el navegador web….), analiza cuál era el proceso interactivo que tiene la ventana activa en ese momento, codifica el evento en el protocolo X11, y se lo envía a dicho proceso vía memoria compartido o socket UNIX.

Al enviar el mensaje a otro proceso, se llama otra vez a una rutina del sistema operativo en un proceso similar al IRQ inicial, pero esta vez iniciado por una instrucción especial (interrupción por software) que hace que el procesador la trate de forma similar, selecciona un procesador para que la trate, analiza el código de interrupción y los registros que dejó el programa, cambia a modo privilegiado y llama a la rutina del kernel que tratará esta interrupción (posiblemente las de UNIX socket).

Esta rutina mira en las tablas de sockets cuál es el proceso receptor (el editor, terminal, navegador…), copia los datos necesarios, desbloquea al proceso moviéndolo a la cola de listo para ejecutar y llama al scheduler.

Eventualmente el proceso que debe recibir esa letra A es seleccionado por el scheduler, pasa a ejecución, continúa su ejecución desde el select o epoll, analiza la entrada, decide que hay que mostrarlo en pantalla, codifica la información necesaria (caracter, tipo de letra, posición, color, etc.) y la envía nuevamente -mediante un mensaje en protocolo X11- al servidor X.

Se repite de nuevo el proceso, interrupción de software, llamada a una rutina del núcleo y desbloqueo del servidor X que eventualmente es ejecutado.

Éste analiza el mensaje, detecta que tiene que dibujar una letra en la pantalla y llama a sus rutinas de dibujo de fuentes TrueType. Estas rutinas recuperan la información de la fuente necesaria (consisten de puntos en 2D), aplican los fórmulas necesarias que definen cómo debe dibujarse en la pantalla y llaman a las rutinas de DRI del kernel que lo harán, vía ayuda del gestor de la placa gráfica, en un complicado procedimiento de sincronización entre el servidor X, el gestor de la placa y la propia placa gráfica (que es otro ordenador muy potente y complejo, con su propio “sistema operativo”).

La letra A es dibujada así en la memoria del back buffer de la tarjeta, también se dibujan las otras ventanas con complicadas combinaciones y copias (compositing) para intentar minimizar todo lo que hay que re-dibujar. Cuando el back buffer está completo, se notifica a la placa gráfica que lo intercambie con el front buffer (lo que se visualiza por la pantalla), ésta espera que llegue el momento justo de sincronización con el monitor (para que no parpadee con mezcla de imágenes de ambos buffers) y finalmente hace el cambio y puedes ver lo que esperabas:

La letra A

Esta maravillosa coreografía de sincronización y paso de información ocurre cada vez que presionas una tecla, o mueves el ratón un pixel, o se empieza a bajar una imagen de la web. Y no sólo en tu PC o Mac, ocurre lo mismo en tu teléfono móvil, tu router WiFi, tu lector de libros, o tu smartwatch.

Todo esto que acabo de explicar ya funcionaba prácticamente igual desde finales de los años 70. Explico estas interacciones y algoritmos en mis clases de sistema operativo desde hace más de 20 años, pero nunca deja de maravillarme al nivel de complejidad y sofisticación al que hemos llegado en pocas décadas de informática.

 

 

 

Cómplices de chiflados peligrosos

09 Lunes Dic 2013

Posted by gallir in ciencia, política

≈ 45 comentarios

Etiquetas

forcades, irracionalidad, IU

Imaginad que hago afirmaciones como las siguientes:

  • En realidad ya se sabe si P = NP, pero la NSA y una conspiración de gobiernos pro norteamericanos impide que se divulgue porque no conviene a sus intereses, le sería más complicado espiarnos.
  • Los bugs y errores de programación no existen, es una conspiración de las BigSoft, lideradas por IBM y Microsoft, para controlarnos y ganar más dinero.
  • Es falso que con las versiones nuevas de sistemas operativos o programas necesitemos más memoria o más capacidad de CPU, es todo una conspiración de una élite tech-capitalista para ganar más dinero a costa del pueblo.

Hay sospechas de malas prácticas, incluso ilegalidades demostradas de la NSA, Microsoft o IBM, pero nadie con un mínimo conocimiento de software pensaría que tengo razón, me tacharían de chiflado inmediatamente. ¿Pista? la monja Forcades ha dicho cosas similares sobre la vacuna de la gripe A.

No creo que haya ningún ingeniero o experto informático que sea capaz de afirmar (bueno, a veces soy optimista) la falacia tan absurda “Galli es ingeniero y doctor en informática. Sabe de lo que habla.”. Sin embargo es exactamente la lógica de hasta el médico-diputado Llamazares (y curiosamente no se produjo un escándalo de proporciones en el partido al que representa en el Congreso).

Todo esto ocurre a pesar de las explicaciones de los expertos, divulgadores y de la propia OMS, pero se sigue repitiendo y dando apoyos a semejante mala profesional, que fabrica conspiraciones (que afectan a la salud) para obtener beneficios políticos. A estas alturas todavía podemos ver a políticos (de izquierda) a y presuntos intelectuales dando apoyo a estos delirios:

Pablo Iglesias es tan entusiasta de Teresa Forcades que hasta participa en la presentación de un libro de la monja. pic.twitter.com/QV8o8c23Vc

— Luis Alfonso Gámez (@lagamez) December 9, 2013

Solo encuentro dos explicaciones posibles:

  1. Son tan magufos como la monja.
  2. No se lo creen y rechazan a los religiosos activistas que aseguran estar casadas con un extraterrestre invisible, pero promocionan a esta religiosa magufa porque el discurso es ideológicamente cercano y hay que mover a las masas.

Es decir, gente muy tonta, o muy hija de puta. En cualquier caso, son cómplices de esta peligrosa irracionalidad. Cómplices peligrosos que se se merecen el rechazo social. Dado que esto no va a ocurrir, espero que al menos no sean tontos, con los hijos de puta al menos se pueden llegar a acuerdos.

No, la falta de rigurosidad no es inocua

11 Viernes Oct 2013

Posted by gallir in ciencia, cultura, internet, píldoras, personal

≈ 9 comentarios

Etiquetas

autoayuda, inspirador, pensamiento crítico, rigurosidad, ted

Leer libros o escuchar conferencias “inspiradoras” y nada rigurosos generan varios problemas:

1. Te hacen creer cosas que no son ciertas, tu cerebro se alimenta de más mitos, bulos y falsas “leyes sociales” como si fuesen equivalentes a  una “ley física”.

2. Crea falsas ilusiones, que a la larga puede producir desasosiego “si los demás pueden y yo no, soy yo el problema” (eso que acabo de citar, según muchos estudios, es la causa fundamental de suicidios, cuyas tasas más altas se dan en países más ricos).

3. Normalmente sobresimplifican la enorme complejidad de nuestra sociedad, incluyendo la política, economía, negocios y relaciones sociales. No podemos asumir que el mundo no esté bajo nuestro control.

4. El tiempo (y dinero) que le dedicas es tiempo (y dinero) que no podrás dedicar a leer o informarte de los problemas reales, de la complejidad, diversidad, y de los verdaderos desafíos como sociedad.

5. Como te ha “emocionado”, colaboras en divulgar aún más esas falsas leyes, creencias, mitos y bulos. Luego es cada vez más difícil deshacer esa desinformación. De hecho, acaban en modelos de negocios rentables, ¿hablamos de TED y sobre todo de TEDx y sus grandes simplificaciones -por diseño- inspiradoras?.

6. La ciencia te dirá que no es así, que no hay datos que lo fundamenten, que el tema es más complejo, etc. Acabarás creyendo que la ciencia no te ayuda, sino esos que “saben escribir historias humanas que realmente interesan y ayudan a las personas”.

7. Como escribir historias “inspiradoras” atrae a muchos lectores -cada vez menos críticos-, se convierte en un negocio jugoso. Así es como estamos siendo bombardeados de tantos libros “inspiradores” y de autoayuda. Además nos dedicamos a repetir sus ideas resumidas en frases cortas e “inspiradoras”, así es como los eslóganes estúpidos tienen tanto éxito en las redes sociales.

8. Acabarás creyendo que el pensamiento crítico es malo, que no ayuda -incluso que es malo- al bienestar personal.

Así es como ayudamos a tener una sociedad que hasta cuando se discute de una ley educativa no escuchamos a los investigadores ni estudiosos del tema, sólo a políticos que en el mejor de los casos antes han sido tertulianos dedicados también a la sobresimplificación de los problemas. Y cuando nos damos cuenta de esto, sólo se nos ocurre mejor idea que culpar de todo a los demás (políticos, medios… votantes del partido contrario).

Luego nos preguntamos por qué no tenemos intelectuales “científicos”, por qué en otros países hacen mejor ciencia, por qué somos incapaces de resolver problemas reales más complejos, por qué leemos tanta manipulación en los medios, por qué leemos y escuchamos tantas tonterías de políticos, tertulianos y fanboys.

Todas nuestras “transacciones sociales” tienen efectos en la sociedad, ésta es la suma de miles de millones de “transacciones” diarias. Que no te hagan creer que leer libros de este tipo es sólo “entretenimiento”, que no hace daño. No es así, no son inocuos, sobre todo si tienen grandes audiencias.

¿Sólo soy yo que ya casi no ve diferencias entre la religión y sus liturgias inspiradoras con los libros y conferencias ídem? Porque si lo importante es la “inspiración”, las religiones e iglesias ya lo han descubierto hace miles de años. Ahora replicamos el modelo, con nuestros propios mitos, becerros, mandamientos, pecadores, santos, discípulos, paraísos e infiernos imaginarios.

No, no es inocuo. Ni nuevo.

Una de arena

Te obsequio con una charla TED inspiradora, rigurosa, graciosa y educativa, cada vez menos frecuente en TED y sus franquicias.

El cifrado es muy complicado, pero sus principios son sencillos de entender

14 Sábado Sep 2013

Posted by gallir in ciencia, internet

≈ 8 comentarios

Etiquetas

cifrado, NSA

Con el tema del espionaje de la NSA, el algoritmo desconocido de Intel para generar números aleatorios y el presunto backdoor de la NSA, y ahora que la agencia de estándares de cifrados norteamericana (NIST) volvió a abrir el debate sobre unos algoritmos de generación de números aleatorios influidos por la NSA, el debate está en la calle. Pero la información que se publica suele ser muy mala, confunden mucho los conceptos, y no saben distinguir entre generación de clave con el cifrado de un mensaje.

Por eso le dediqué unos minutos a explicar los principios fundamentales en unos tuits. A veces me gusta hacerlo así cuando no estoy motivado para escribir un apunte, el estar obligado a escribir una idea en pocas palabras, y luego continuar explicando en otro tuits, ayuda bastante. Así que abajo están los 28 tuits que le dediqué al tema, un introducción muy básica a las partes importantes. Perdón a los que les llené el timeline, pero todo tiene su coste, incluso seguirme en Twitter 😉

Sigue leyendo →

Un decálogo para evitar sobresimplificaciones bobas en las redes sociales

21 Viernes Jun 2013

Posted by gallir in ciencia, cultura, internet

≈ 7 comentarios

Etiquetas

escepticismo, populismo

Mis últimos apuntes comparten una característica: son críticos con la magufería, el usar estadísticas o “big data” de forma incorrecta, en la divulgación de bulos y noticias falsas. A ello se suma que ayer fueron los 10 años de Magonia y le dediqué 100 palabras la razón… y la complejidad. Quizás esté obsesionado o sensible con el tema, ya lo sé, no me lo digáis 😉

BNOjsBKCMAAjteULa cuestión es que anoche en Twitter volví a ver un tuit de esos que casi me saca los ojos de las órbitas de tanto girarlos. Era uno con una gráfica cutre del salario mínimo en países europeos (lo siento, no recuerdo de quién era), por supuesto seleccionando sólo aquellos que lo tienen más alto y olvidándose del único país europeo que no está pasando por la crisis de los demás, Alemania, que no tiene salario mínimo. El tuit iba acompañado con una afirmación sin ninguna evidencia “en cambio los políticos tienen ingresos comparables con el resto” (cosa que dudo bastante, al menos hasta ver cifras).

Un típico tuit “genial” que pretende mostrar cuál es el problema de nuestro país con un sólo número (el salario mínimo). Es ridículo, absurdo, una absoluta bobada [*] cada vez que veo algo así (demasiado a menudo) no sé si hacer un 🙄 o decenas de :facepalm: Lo que más me llama la atención de estos tuits es que muchas veces son retuiteados o incluso creados por personas inteligentes, que si practicasen unos pocos segundos de pensamiento crítico se darían cuenta que no tiene sentido, que es sólo otro tuit populista escrito para la audiencia (parece que todo el mundo es esclavo de sus seguidores).

[*] Ejemplo, si se incluye a Alemania, se podría sacar una conclusión más clara: tenemos que eliminar el salario mínimo. Pero es lo que tiene el sesgo de selección, podemos demostrar lo que queremos seleccionando los datos que nos interesan, e ignorando los demás.

El tema es que quise responder a la generalidad de esos tuits y atan habituales, pero explicando algunos fundamentos de por qué son una chorrada, y me salió improvisado el siguiente decálogo, que tampoco está mal para resumir por qué solemos caer en sobresimplificaciones y conspiranoias bobas:

  1. El mundo, y la sociedad, es mucho más complejo de lo que imaginas.
  2. Puedes coger unas pocas variables y creer que eso lo explica todo, pero es FALSO, la complejidad no se explica con pocas variables.
  3. Tenemos tendencia a la falacia narrativa, a encontrar relaciones causales e “historias” donde no las hay. No caigas en la trampa.
  4. Hay tantas variables y ruido que creerás encontrar relaciones que lo explican. Lo más probable es que sea puro ruido, ve alerta.
  5. A todo lo que no entendemos queremos encontrar responsables o culpables. Es muy humano y siempre ocurre, pero evítalo.
  6. Los humanos tenemos el sesgo de selección en nuestros genes, nos acordamos sólo de la información que confirma nuestras creencias.
  7. Nuestra “intuición” reconoce patrones automáticamente, algunos son útiles, pero inútiles para explicar sistemas complejos.
  8. Nuestra parte racional es muy perezosa y sólo se pone en marcha voluntariamente y con esfuerzo, por eso no solemos ser muy racionales.
  9. Ante información extraordinaria que confirma tus creencias, párate y haz el esfuerzo de poner en marcha tu sistema racional.
  10. Por lo que expliqué antes, DEJA YA DE HACER GRANDES SIMPLIFICACIONES GENIALES DEL MUNDO EN TWITTER, son una chorrada.

El DNI de la Infanta y el mal uso de las estadísticas

19 Miércoles Jun 2013

Posted by gallir in administración, ciencia, política, prensa

≈ 46 comentarios

Etiquetas

dni infanta, estadísticas, probabilidades

Hoy publican en Las probabilidades matemáticas de que lo de la infanta sea “un error”, donde se explica que la probabilidad que cuatro notarios se equivoquen y pongan el DNI de la Infanta es 10 seguido de 30 ceros (pequeño detalle, en realidad debería haber dicho 10 seguido de 31 ceros, ya que es 100.000.000⁴ = 1×10³²). El artículo lo escribió con un doctor en matemáticas, y es un excelente ejemplo de mal uso de las probabilidades, incluso por expertos. Son casos conocidos lo de la Ley de Meadow (en UK se encarcelaron a 258 personas inocentes por la mala interpretación de las probabilidades) y la Falacia del acusador.

El problema en este caso es que se analizaron las probabilidades equivocadas. Poner mal un DNI no es la probabilidad perfecta que vemos en los juegos de una entre todas las posibilidades (en este caso 1 entre los 100 millones de números posibles), sino que depende de otros factores. Lo que se tendría que haber analizado es la probabilidad de que se hayan introducido [mal] números de dos dígitos en los sistemas informáticos que se usan. Esto es mucho más complicado. Pregunté a personas y abogados con experiencia y me dicen que el error es muy habitual, que muchas veces los programas son confusos y hacen que la persona que pica de al ENTER o se pase a otro campo de entrada después de introducir sólo unos pocos dígitos (sumado a que muchos programas autocompletan la letra). Así, la probabilidad de fallo ya es muy superior a la teórica de 1/100.000.000.

Eso ya invalida toda “acusación” basada en esa probabilidad teórica, simplemente porque depende de muchos otros factores. A lo que hay que tener en cuenta la teoría de grandes números, si la probabilidad de poner mal un DNI es del 1%, y se hacen unas 500.000 transacciones inmobiliarias (aproximada, unas 250.000 son de compra-venta de hogares) al año, ya podemos estar seguro que hay unas 5.000 que tienen mal el DNI. ¿Cuál es la probabilidad de que esos DNI mal cargados sean de dos cifras o de un miembro de la casa real? Eso es mucho más complicado, pero tomo dos ejemplos de dos tuits:

Ciudadano de Murcia con el mismo DNI que la Infanta. 00000014Z. pic.twitter.com/2GbICXsqZe

— Antonio Maestre (@AntonioMaestre) June 18, 2013

En este vemos que de 50 DNI que hay en la página mostrada, uno corresponde a la Infanta. Si nos basamos en esta pequeña muestra, la probabilidad es de 1/50, o 2%. Eso nos da que de las 500.000 transacciones anuales, unas 10.000 (al año) tendrán el DNI de la Infanta.

El otro tweet tiene todavía es más extraño:

Ciudadano de Lugo con el NIF del Principe Felipe 00000015S pic.twitter.com/ZkvCnEffjL

— Antonio Maestre (@AntonioMaestre) June 18, 2013

Si las cuentas y la vista no me fallaron, en esa captura hay sólo 18 números de DNI diferentes, de los cuales 4 son de dos cifras (y una del DNI de Felipe). Si esta muestra fuese válida, hay una probabilidad de 22% de que se introduzca un DNI de dos cifras, y un 5.5% de que el DNI sea de un miembro de la casa real. Extrapolando, hay unas 27.500 transacciones anuales con el DNI de un miembro de la Casa Real, o unos 110.000 con el DNI mal puesto con dos cifras.

Por supuesto, estas dos muestras no son válidas para inferir probabilidades, porque esas capturas fueron seleccionadas por tener errores, debe haber muchas otras sin error. Pero son un claro indicativo de que las tasas de error son mucho más elevadas -en varios órdenes de magnitud- que 1/100.000.000 y que por lo tanto esa “acusación” es una falacia estadística: la probabilidad de error no depende de la teórica, sino de otros muchos factores, humanos e informáticos.

Y todo esto sin contar que podría haber existido mala fe de los que vendieron esas propiedades, o blanqueo, u otros delitos. Pero ya no me quiero meter en ese tema que desconozco profundamente. En todo caso, es triste que se publique en portada un artículo firmado por un matemático con semejante error de fondo relatado en casi todos los libros de “malas estadísticas” en temas legales y judiciales.

Moraleja: No es lo mismo analizar probabilidades de juegos perfectos como tirar dados o jugar a la ruleta que la compleja realidad de la burocracia.

Actualización: En El Mundo también hablan de chapuzas informáticas (vía @malaprensa).

Actualización 2: Un análisis más técnico de los problemas del artículo, P-valores, infantas y tests de hipótesis.

← Entradas anteriores

Comprar el libro

Principios y algoritmos de concurrencia

gallir@twitter

  • No sé cómo tienen tanta creatividad para comparar renta con patrimonio, para mí, como ingeniero es como comparar l… twitter.com/i/web/status/1… 1 hour ago
  • He pasado por el mundo académico y el de software como producto, con mucha interacción con consultoras, la descripc… twitter.com/i/web/status/1… 4 hours ago
  • Estáis discutiendo de ciencias, datos, física y estadísticas con esa boba fanboy, ¿por qué? 23 hours ago
  • Lo más espectacular, las respuestas del tipo "admiro tu valentía". Eso es la valentía política hoy, montar un rollo… twitter.com/i/web/status/1… 1 day ago
Follow @gallir

RSS Notas recientes

  • gallir: @Pafman @antiboise Lo siento. No...
  • gallir: Hole, me avisaron hace unos minutos: ...
  • gallir: @Carme @jorso Mierda, mierda, se...
  • gallir: Hola, estoy vivo, muy liado en...
  • gallir: @Xtrem3 @Ragnarokk Además de los...

Archivos

Comentarios recientes

PM en Cuidado con las “clever…
Me matan si no traba… en Cuando el periodismo cede el c…
surco en Cuando el periodismo cede el c…
pancho pérez (@lonch… en Cuando el periodismo cede el c…
Fernando en Cuando el periodismo cede el c…
@beoxman en Cuando el periodismo cede el c…
gallir en Cuando el periodismo cede el c…
Jan Smite en Cuando el periodismo cede el c…
Alejandro en Cuando el periodismo cede el c…
Galletor en Cuando el periodismo cede el c…

Meta

  • Registrarse
  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.com

Licencia

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.

Crea un blog o un sitio web gratuitos con WordPress.com.

Cancelar

 
Cargando comentarios...
Comentario
    ×
    Privacidad & Cookies: este sitio usa cookies. Al continuar usando este sitio, estás de acuerdo con su uso. Para saber más, incluyendo como controlar las cookies, mira aquí: Política de Cookies.