Alejandro Rivero

Nacido en el año 3 antes de UnixTime. Vive y trabaja en Zaragoza.

Ajedrez por votación e inteligencia colectiva

Al parecer en chess.com tienen una competicion por equipos en la que se vota la jugada. No lo he mirado con detalle, pues no tengo equipo, pero me da a mi que hay en este caso un par de detalles a resolver:

  • El tiempo: ¿Cuando se decide que ya se puede ejecutar una jugada? La mayoría necesaria debería ser una función del tiempo restante y del quorum, de manera que cuando quede poco tiempo se acepten mayorías simples, y que si hay una mayoría aplastante de más del 90% se juegue de inmediato la jugada, sin seguir gastando reloj.
  • El peso: Dado que la diferencia de ELO entre dos jugadores se traduce en la probabilidad de que uno de estos gane una partida, se podría considerar que también es la probabilidad de que cada uno de ellos tenga razón en su propuesta de movimiento. La complicación aquí es que esta probabilidad va por emparejamientos y por tanto dentro de un quorum de votación habría que calcular los pesos sumando a todos los emparejamientos. Como la produccion en sí se calcula mediante una sigmoide de la diferencia de ELOs, tenemos una matriz con un monton de calculos de logistic, que se va actualizando cada vez que un nuevo participante añade al quorum

Por supuesto siempre se puede jugar con tiempo fijo y con regla de una persona un voto.

Otra cuestión es si hay inteligencia colectiva, esto es, si es mayor el ELO del equipo que el mejor ELO individual. El problema aquí es que habría que normalizar de alguna forma el ELO de equipo para que coincidiera con el de partidas individuales. Una solución intermedia sería estudiar si es posible predecir, dada la puntuación de cada uno de los participantes de un equipo, la puntuación del equipo conjunto. Y ver si esta predicción usa a todos los jugadores o le basta con mirar los de mayor ELO, y también si la precisión de la predicción depende del tamaño del equipo.

Access Mac from Nintendo Switch

well try this path. No, seriously, no.

He estado intentando acceder al mac via VPN desde la Nintendo Switch

Para ello hay que usar el truco de forzar el lanzamiento del WifiWebAuthApplet. En principio parece funcionar: te instalas un servicio de DNS como el dnsmasq, activas el compartir wifi del iMac, y con eso engañas al Applet para que vaya a tu web para autenticarte, cuando conectas la Switch a la wifi. Si no quieres tener que volverte loco viendo como pushear el DNS en el momento que la consola se conecte al Mac, puedes modificar los settings y poner a mano el dns, y luego reconectar. Por supuesto también tienes que estar corriendo un servidor web en los puertos estándar.

El problema principal de ese truco es que tiene un timeout, así que incluso para ojear la web no es muy conveniente. Tiene mas logica si hubieran encontrado alguna manera de hackear la Nintendo a partir de inyectar páginas web trucadas, pero no es el caso, así que es casi una anécdota. Ah, por github se puede encontrar css y html preparado para dar una apariencia más “switch”, pero no me he molestado en instalarlo.

El resto una vez consigues que la consola cargue una página html es ya la típica pesadilla. Hay que usar el cliente web, esto es, noVNC, que soporta algunos formatos modernos pero no muchos de los antiguos. Así que el servidor nativo de Mac básicamente le envía raw sin comprimir y ni siquiera se pone de acuerdo para los updates de pantalla. Por otro lado, los servidores VNC libres no están preparados para enviar las resoluciones altas que tienen los macintosh hoy en dia, asi que hay que compilar (configure, make, vi, make) una versión de x11vnc para osX que sí que sabe reconocer estas resoluciones… pero usa una librería anticuada sin websockets, y por tanto hay que lanzar el noVNC con la versión que hace un puente entre websockets y TCP. En resumen:

x11vnc/x11vnc -nonap -xd_area 0 -wait 20 -defer 10  -rfbauth /path_to_passwd -localhost

./utils/launch.sh --vnc localhost:5900 

Inmunidad de grupo

En el anterior post de epidemiologia de salon comentabamos la diferencia entre los ajustes por funcion logistica o por funcion de Gompertz y los ajustes mediante modelo SIR, en una de las versiones de Kermack-McKendrick.

Veamos cuando se produce el pico de infectados en cada uno de los modelos:

Para Logistic \(y” = \beta y’ (N – 2y)\) asi que tenemos un maximo en \(y=N/2\).

Para Gompertz $$y” = – b y’ (1 + \log \frac y k )$$ asi que el maximo ocurre con \(y = k e^{-1}\)

Para Kermack-McKendrick es otra historia. Para empezar conviene tener en cuenta que aquí la ecuación diferencial de infectados ha salido al despejar un sistema de dos ecuaciones, así que en realidad hay otra subyacente que tendríamos que considerar si queremos hacer cosas como diferentes condiciones iniciales, ajustes por tramos o alguna variación temporal de los parámetros. Para la ecuacion que hemos despejado, la derivada segunda es

$$y” = y’ (-\alpha (1+ \log(1- \frac y N )) + \beta (N – 2 y) )$$ asi que tenemos un pico cuando el valor de y cumple

$$ -\frac \alpha {N \beta} (1 + \log(1- \frac y N )) = 1 – 2 \frac y N $$ mientras que por otro lado el valor final del total contagiado por la infeccion se obtenia resolviendo

$$ -\frac \alpha {N \beta} \log(1- \frac k N ) = \frac k N $$ Por supuesto nos interesa la solución y/N que es menor que k/N. Lo interesante es que estas fracciones (o su cociente y/k) todavía dependen de los parámetros, mientras que en Logistic o en Gompertz son cantidades fijas, respectivamente 1/2 o exp(-1).

Un aire acondicionado aun más flojito

Pues una vez solucionado lo de tener un poco de fresquito (vease el post anterior), tambien me ha llegado una cosa de bastante poca eficiencia: un kit de cuatro celulas peltier para refrigerar por agua.

En teoria hay que darle una caña de 288W para conseguir una potencia de enfriamiento de 170W. Supongo que el total de 458W se lo tendrá que llevar el agua, eso es bastante gordo. Pero al menos aquí no tenemos dudas de si a volumen constante o a presion constante. Pasamos calorias a julios y tenemos 4.18 kJ por Kilogramo y Grado.

Por ejemplo con un calentamiento de 25 grados, tendremos que bombear 0.458/(25*4.18) = 4.38 gramos de agua por segundo. ¡Unos 15-16 litros por hora! Eso explica que la refrigeracion por agua de circuito abierto ya no se venda, claro.