Martín Cerdeira: Todo Inventado, o...

Un poco para paliar el famoso burnout de, nosotros, los programadores, me decidí a ponerme a programar algo que me guste, en un lenguaje que no use para el trabajo (python, probablemente) y, de paso, si es útil, mejor!

Pero, o bien estoy escaso de ideas o bien, todo está inventado pero, cada cosa que se me """ocurre""" ya existe.
Dos ejemplos:

1) Un buscador de imagenes inverso. Esto es, en vez de poner una palabra y que tire imagenes, poder subir una imagen y que te tire que palabras tiene asociadas.
Ya existe.

2) Un visitador de páginas. Esto es, un servicio que, entre a una web y que, cuando hay cambios en la misma (según keywords) me genere un mail, feed o postee en algun lado o, whatever.
Ya hay algo parecido.
Otro.

Estos son 2 ejemplos cercanos, me viene pasando hace mucho. Será que estoy viejo y falto de creatividad?? O será que, realmente, la frase poco feliz "ya está todo inventado" es cierta?

Acepto donadores de ideas.

Nota: Probablemente exista un post así, en otro blog. :)

Martín Cerdeira: Ubuntu: Hasta los grandes deben aprender sobre interfaces

Ayer, no me andaba el teclado numérico en Ubuntu. 
Me extrañó mucho dado que hacía poco estaba funcionando y, que todo ese sector del teclado se haya roto me parecía raro.

Busqué en google.
Me encontré con que, a varios les había pasado lo mismo, en algún momento.
No se si fue al actualizarse una versión, o si hay algún atajo raro que hace esto, o que tipo de bug raro lo ocasionó.

Al parecer, existe una opción de manejar el mouse con el teclado que, se activó mágicamente.




Claro, si uno conoce que existe la opción, es probable que se de cuenta rápido de cuál es el problema.
El tema es que, yo no conocía que existía esa opción y, como al querer teclear los números, uno pasa rápidamente por las teclas, no percibía que había un movimiento en el puntero del mouse (que sí es obvio cuando uno deja apretada una de las teclas)

Entonces, para qué toda esta historieta?

Cuando hay una opción activada y esta es poco convencional y además produce un resultado confuso (en este caso, uno piensa que no funciona el teclado numérico) se debe indicar en pantalla, con un icono o algo que dicha opción está activada.

Sorry Ubuntu, pero en esta le pifiaron.

Joaquin Sorianello: Atrapado en /dev/null

Me estoy dando cuenta, soy un terrible procastinador. No se si sera porque pretendo abarcar todo, que mi ambición de conocimientos es intensa, pero no se prolonga demasiado en el tiempo.

Ya busque en Google...

Ya leí (como cruel motivo de dispersión) cientos de articulos de como Internet cambia nuestras vidas, nos roba la capacidad de conectración. Probé de usar pomodoros, GTD y cuanta metodologia de "reducción de las distracciones" encontré por ahi. Pero, como tantas otras cosas en mi vida, duraron solo un ratito.


Pero lo mas grave es que...

No puedo con la facultad.

Mi historial universitario no diverge mucho de lo que me sucede en otros ambitos de mi vida.

Cuando me vine para Capital en 2007, mi objetivo era estudiar, tratando de bancarme por mi cuenta(unica opción), pero la vida me llevó por otros caminos:
mudanzas, cambios de trabajo, vida en pareja, cambios de carrera ....


Aquí estoy ahora, des(orientado, motivado, animado). Me gusta la carrera que estoy estudiando (Ciencias de la Computación en la UBA). Pero no puedo avanzar. No es que sea un retardado, es que no puedo conectar con mi parte que
quiere estudiar y recibirse.

Ni comentar que el cuatrimestre pasado curse algebra y le puse todas las pilas a la teorica, me lei cuanto libro del tema encontre... pero hice menos del 10% de las practicas. Hoy la estoy recursando totalmente frustrado

¿Como salgo de este ciclo vicioso?

Juan Pedro Fisanotti: Apple vs Samsung

Apple acaba de demandar a Samsung, alegando que toda su linea Galaxy son copias de los productos iPhone.

Es decir, Apple dice que esto:

es una copia de esto:

Hasta acá pueden discutir todo lo que quieran acerca de qué tan parecidos o diferentes son. Pero lo gracioso viene ahora. Samsung, un año antes de que salga el iPhone, estaba mostrando al mundo esto:

Repasemos los tres aparatos en el órden que fueron saliendo al mercado:

(Samsung F700 - Apple iPhone - Samsung Galaxy S)

En mi opinión Samsung simplemente siguió con su estilo, mientras que en el medio apareció Apple con productos que se le parecen. Pero si Apple quiere decir que Samsung le copió, entonces tendríamos que decir que en realidad ellos le copiaron a Samsung.

Apple, Apple... cada día me caes menos bien.

(me enteré de esto en una nota de Android Community)

Martín Cerdeira: Escribir codigo que, simplemente funcione

No hay mucho para explicar o agregar: 
 
> can you try following change ? it will push gart to 0x80000000
>
> diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c
> index 86d1ad4..3b6a9d5 100644
> --- a/arch/x86/kernel/aperture_64.c
> +++ b/arch/x86/kernel/aperture_64.c
> @@ -83,7 +83,7 @@ static u32 __init allocate_aperture(void)
>         * so don't use 512M below as gart iommu, leave the space for kernel
>         * code for safe
>         */
> -       addr = memblock_find_in_range(0, 1ULL<<32, aper_size, 512ULL<<20);
> +       addr = memblock_find_in_range(0, 1ULL<<32, aper_size, 512ULL<<21);

What are all the magic numbers, and why would 0x80000000 be special?

Why don't we write code that just works?

Or absent a "just works" set of patches, why don't we revert to code
that has years of testing?

This kind of "I broke things, so now I will jiggle things randomly
until they unbreak" is not acceptable.

Either explain why that fixes a real BUG (and why the magic constants
need to be what they are), or just revert the patch that caused the
problem, and go back to the allocation patters that have years of
experience.

Guys, we've had this discussion before, in PCI allocation. We don't do
this. We tried switching the PCI region allocations to top-down, and
IT WAS A FAILURE. We reverted it to what we had years of testing with.

Don't just make random changes. There really are only two acceptable
models of development: "think and analyze" or "years and years of
testing on thousands of machines". Those two really do work.

Linus

Juan Pedro Fisanotti: Voto electrónico con Python y Ubuntu

Buenas! Hoy escribo post largo, pero que creo que era necesario que alguien lo escriba :)

Hay mucha gente hablando sobre voto electrónico y lo que se hizo en Salta, pero la verdad es que pocos tienen conocimiento de qué se hizo realmente, cómo funciona, y demás. Muchos opinólogos que sacan conclusiones acerca de lo magnífico o terrible que es, pero a partir de cosas que adivinan o inventan. Y remarco que pasa en los dos lados, tanto de parte de los detractores como de parte de los defensores de este sistema.

Así que primero lo primero: como le gusta decir a un amigo, "desasnémosnos". Empecemos entendiendo cómo funciona el sistema de voto electrónico que se utilizó en Salta. Como soy programador es lógico que mi explicación va a incluir unas cuantas cosas bien técnicas, pero también voy a abarcar otras más referidas al proceso.

Luego de la explicación también voy a incluir algunos de los planteos más comunes que surgen, y las respuestas a esos planteos. Así que si durante la explicación se les plantea algún cuestionamiento, estén atentos a si no lo respondo en esa sección.

Y recién después de eso voy a plantear mi opinión (por si a alguien le interesa, jeje), y dejar abierto el debate para que todos opinen y pregunten :) Por mi salud mental y la del debate, abstenerse de opinar quienes no tengan ganas de leer todo el post.

Ah, y casi me olvido: ¿por qué escribo yo sobre esto, y cómo se lo que se? Porque hace un tiempo empecé a trabajar para la empresa que desarrolla el sistema (MSA). ¿Eso le quita objetividad a lo que digo? Puede que sí en la parte de opinión, pero no en lo referido al funcionamiento, es información y hechos verificables :)

No está de más aclarar que todo lo que digo en este post es opinión y palabra mia y no de la empresa para la que trabajo, ya que se trata de mi blog personal. Así que por cualquier cosa, yo (Juan Pedro Fisanotti, DNI 32.726.247) soy el responsable.

La parte objetiva: funcionamiento del sistema

Podemos dividir al sistema en tres grandes partes: el proceso de votación en sí, el recuento por mesas, y el recuento final donde se transmiten y suman los recuentos de todas las mesas.

El hardware que vamos a usar:

Para la votación en sí y el recuento de las mesas se usan pcs especiales que vamos a llamar "máquinas de votar" (más detalles después). Para transmitir la información de las mesas también se van a utilizar máquinas de votar (aunque no las mismas, sino otras dispuestas especialmente para la tarea). Y como se imaginarán los que tengan conocimientos técnicos, del "otro lado" hay servidores que van a recibir esa información a la hora del recuento global (en este caso el "otro lado" está ubicado en el tribunal electoral).

Las máquinas de voto merecen un poco más de explicación, ya que tienen algunas características especiales:

  • Consisten en una valija con una pc todo en uno (pantalla táctil), una batería de emergencia, una impresora térmica, y un lector/grabador de RFID.
  • La pc no tiene ningún tipo de almacenamiento ni conexión a ninguna red. Sí tiene una lectora de DVD.
  • La batería de emergencia garantiza alimentación suficiente para cortes no tan prolongados, mientras que si se espera una ausencia de energía prolongada las máquinas también poseen los cables necesarios para conectar una batería de auto, que le da autonomía suficiente para una votación completa.

Y finalmente, dentro de lo que podemos considerar como "hardware", están las boletas de voto electrónico. Son boletas con papel para impresión térmica, y un chip RFID de poco alcance dentro. Hay varios tipos de boletas: las que se utilizan para la apertura de las mesas, las de voto, y las de cierre y transmisión. Después vamos a ir viendo cuándo se utiliza cada una. Es importante ya ir sabiendo que una vez que el chip se graba con datos, ya no puede ser alterado. Se graban y se "queman" de manera que no se pueda modificar la información almacenada.

El software:

Para la votación en sí y el recuento por mesa las máquinas de votar van a usar un sistema que vamos a llamar "sistema de voto". Para la transmisión de los datos se va a usar un "sistema de transmisión". Y en los servidores vamos a tener el "sistema de recuento global". (Son todos nombres que pongo yo en este post para entendernos, vale la aclaración)

Tanto las máquinas de votar como los servidores corren Ubuntu (en el caso de las máquinas de votar, con modificaciones para que tengan solo lo necesario para el sistema). Y las aplicaciones desarrolladas por MSA para este sistema están escritas casi en su totalidad en el lenguaje de programación Python. ¿Base de datos de los servidores? Postgresql. ¿Y de las máquinas? No usan ningún sistema de base de datos (después van a entender por qué no es necesario. Si les digo ahora que las máquinas de voto no guardan info, probablemente no entiendan cómo puede ser por ejemplo que hagan el recuento, jeje).

¿Recuerdan que les conté que la máquina de votar no tiene ningún tipo de almacenamiento? Entonces, ¿cómo puede tener el sistema de votación o el de transmisión? Simple: ambos sistemas se distribuyen en CD antes de comenzar la votación (livecds de Ubuntu customizados, con cada sistema ya instalado y configurado). Como pueden imaginarse hay medios para garantizar que estos CDs no sean alterados. Los mismos son generados en una única tirada con la presencia de los fiscales, son precintados, y luego se abren el día de la elección. Y para los más técnicos: cada CD tiene un detalle de los hashs MD5 de todos sus archivos, que un fiscal podría luego comparar contra el maestro que posee el tribunal electoral. [EDIT: ya no usamos MD5, ahora usamos SHA512]

Y la gente:

En el proceso van a participar las mismas personas de siempre (presidentes de mesa, fiscales, el tribunal electoral, etc.), y un grupo nuevo de personas: los técnicos en las escuelas. La labor de estos técnicos va a ser la de soporte a las autoridades de la elección en cada escuela, y van a ayudar a transmitir los datos en conjunto con los presidentes de mesa.

Ahora sí, votemos con el sistema. El proceso:

Arranca la mañana, los presidentes de mesa tienen que hacer la apertura de las mesas. Este proceso va a permitir que la gente comience a votar con la máquina. Para ello necesitan de:

  • Una máquina de votar (normalmente es una máquina por mesa, pero es posible plantear otros esquemas).
  • El sistema de votar (livecd).
  • Sus credenciales (con chip RFID que los identifica como presidentes de mesa).
  • Una boleta de apertura de mesa en blanco.

El presidente de mesa inicia el sistema de votar (que arranca automáticamente al bootear el CD), se identifica con sus credenciales que le permiten abrir la mesa que tiene asignada, y elige dentro del sistema la opción de apertura de mesa. Esto le grabará e imprimirá la boleta de apertura, que después va a poder utilizar para volver a abrir la mesa en caso de reemplazo de la máquina o reinicio por cualquier motivo (abajo explico un poco más esto de poder reemplazar la máquina o reiniciarla). Este acta impresa es el documento legal que el presidente de mesa requiere, y además el proceso de apertura le permite a la máquina saber qué opciones debe presentar a los votantes, ya que todos los livecds son iguales.

Abierta la mesa, elige la opción de poner la máquina en modo de votación, y ya está, tenemos una máquina preparada para que la gente comience a votar.

¿Y cómo votan las personas?

Pepe votante llega a la mesa, presenta su DNI. Normalmente a Pepe le habrían dado un sobre para que entre al cuarto oscuro. Pero en este caso le dan una boleta de voto (de las que les conté antes) que no tiene datos, y está en blanco en uno de los lados. Pepe se dirije a la máquina de votar, inserta su boleta en la máquina.

Vale aclarar en este punto: la boleta todavía está en blanco! en ningún momento la boleta tiene datos sobre quién es Pepe. Y la máquina no tiene ningún tipo de conexión de red, aparte de que el presidente no tiene contacto con la máquina, por lo que el presidente no puede decirle a la máquina de alguna manera "es Pepe el que está votando" (salvo que el presidente y la máquina hagan un curso acelerado de telepatía antes de empezar la votación). Esto es crucial para que el voto sea anónimo. De hecho el presidente puede darle a Pepe cualquiera de las boletas que tiene, e incluso podría darle a Pepe la opción de que elija la boleta que él prefiera. Y no está de más aclarar que la máquina también verifica que la boleta se encuentre vacía. En caso de no cumplirse esa condición, expulsa la boleta apenas se la ingresa

En la pantalla de la máquina aparecen las opciones para votar. Estas opciones van a depender de la votación, pero básicamente Pepe va a tocar la cara del candidato que quiera para cada cargo que se esté eligiendo (de cada candidato aparecen todos los datos lógicos, como nombre, partido, etc.).

Importante: los candidatos aparecen todos del mismo tamaño, con los mismos datos, y en orden aleatorio cada vez que son mostrados, para no dar ningún tipo de ventaja.

Cuando Pepe ya ha elegido todo la máquina le pregunta si desea confirmar su voto. Pepe puede elegir no confirmarlo y volver a armar su voto, o confirmarlo. Al confirmarlo la boleta se imprime, y se guarda lo elegido por Pepe dentro del chip RFID.

Pepe debe cerciorarse de que lo que salió impreso en la boleta es lo que él quería votar, ya que lo impreso es lo que cuenta. Y además puede verificar lo grabado en el chip pasando la boleta por el lector de la máquina, que le presenta por pantalla lo que el chip contiene. Y puede hacer esto en cualquier máquina (que no poseen conexión entre sí), con lo que en este punto tenemos una seguridad importante, una pieza en el rompecabezas que tenemos que acordarnos:

Hasta el momento del voto en sí incluido, es imposible que la máquina nos mienta, ya que lo que cuenta es lo que está en la boleta, y podemos ver lo impreso y el contenido del chip.

Sí, ya se, faltan cosas para estar seguros de todo el sistema. Sean pacientes :)

Finalmente, Pepe dobla su voto para que nadie vea lo impreso y lo deposita en una urna de cartón, igual a las de las elecciones tradicionales (acá es donde empezamos a ver que este sistema es de boleta electrónica, pero no de urna electrónica. Algo que es crucial para ayudar a que sea transparente).

Después de Pepe vendrá Luis, Juan, José, y todos los votantes de esa mesa.

Y en este punto viene otra aclaración crucial: la máquina NO VA CONTANDO LOS VOTOS QUE GRABA E IMPRIME! No, no los cuenta. NO, como dije, no los cuenta. ¿Y cómo se cuentan entonces los votos? Paciencia, un poco más abajo lo voy a explicar. Pero ahora lo importante es eso, que la máquina no va contando los votos. ¿Y por qué es tan importante? Porque le puede pasar cualquier cosa a la máquina, que no va a afectar a la votación. Si se apaga, un psicópata la parte con un hacha, le cae un rayo o lo que sea que le impida seguir funcionando, basta con buscar otra máquina, volver a hacer la apertura (que se hace rápidamente con la boleta de acta ya grabada), y listo. Seguimos votando.

Incluso nos permite independizar a la mesa de la máquina. Los votantes de una mesa podrían votar en cualquier máquina, ya que la única tarea de la máquina es emitir las boletas electrónicas, y no ir llevando el recuento. Para los más técnicos: esto nos permite hasta aplicar un poco de teoría de colas y balancear la carga entre las mesas.

Son las 6 de la tarde (o un poco más). Terminan de pasar todos los votantes, tenemos que cerrar la mesa y realizar el recuento.

El presidente de mesa sigue un procedimiento similar al de la apertura de la mesa con su credenciales y un acta de cierre en blanco, solo que en este caso elige la opción de cierre de mesa. Iniciado el proceso de cierre de la mesa llega el momento de contar los votos. Tradicionalmente se habría abierto la urna, contado a mano los votos contenidos en los sobres, y anotado el resultado en un acta en papel. En este sistema lo que hacemos es abrir la urna, sacar las boletas de voto, y pasarlas una a una por el lector de la máquina, que va contando los votos y mostrándonos por pantalla lo que cuenta. Los fiscales también están presentes durante el recuento para fiscalizar el procedimiento, de la misma manera que podían hacerlo en el voto tradicional. Es importante recordar que las boletas tenían impreso el voto, y que el presidente es responsable de observar que lo que dice la boleta es lo mismo que la máquina muestra por pantalla al pasar el voto. Y en todo momento es posible ver el total de lo que la máquina lleva contado.

Y otra cosa importante es que cada chip tiene un serial único (similar a una dirección mac), que le permite al sistema evitar contar dos veces el mismo voto. Esto mismo se puede comprobar con tranquilidad al realizar el recuento, pasando dos veces una misma boleta. El sistema rechaza el segundo intento informando que ya ha sido contada anteriormente. Y esto no implica un riesgo para el anonimato del voto porque como ya vimos, no existe manera práctica de asociar a la boleta con la persona que la utilizó.

Cuando se han pasado todos los votos el presidente de mesa le indica a la máquina de voto que se ha terminado el recuento, y la misma le imprime el acta de cierre con el recuento realizado (lista de partidos con votos para cada uno y demás). Esta información se imprime y se guarda en el chip del acta, y se vuelve a imprimir y guardar en el chip de una segunda boleta: la de transmisión.

Aquí un segundo punto crítico de control: al estar el recuento impreso en las boletas y por haber podido controlar todo el recuento viendo lo que los votos tenían impreso, la máquina de voto tampoco puede mentirnos hasta este punto. A este punto llegamos con un acta cuyos datos impresos son completamente verificables, donde la máquina no tuvo posibilidad de alterar esos datos sin que nosotros nos demos cuenta. Tema aparte es lo que se vaya a transmitir, ya llegamos a eso, pero es importante que sepamos que esas actas no pueden ser "inventadas" y que son la evidencia física de lo que la gente votó.
¿Se dan cuenta de que hasta este punto siempre podemos controlar a la máquina? A diferencia de la creencia de que es imposible estar seguro que lo que dice una máquina es real, acá el proceso mismo nos permite tener esa seguridad. La clave está en el proceso, y no en la tecnología en sí.

Bien, tenemos los recuentos de las mesas, verificables y seguros. Llegó el momento de transmitir estos datos al tribunal electoral para realizar el recuento global.

El presidente de mesa se dirige a la máquina de transmisión (una por escuela), donde se encuentra el técnico responsable de esa escuela. El técnico inicia la máquina con el sistema (livecd) de transmisión, y conecta esta máquina a internet (por ADSL, 3G o conexión satelital, dependiendo del caso y disponibilidad). Se autentica con su credencial y certificados SSL. Para los lectores con conocimientos técnicos: se usa SSL para cifrar la transmisión, con certificados para autenticar ambos lados, tanto al servidor como al cliente.

El técnico pasa la boleta de transmisión que trae el presidente (quien sigue a su lado) por el lector de la máquina. La máquina envía los datos al servidor, y el servidor devuelve una imágen con lo que debería tener impreso la boleta de transmisión (el recuento). El técnico y el presidente de mesa verifican que el servidor reconstruyó un recuento idéntico al impreso en la boleta de transmisión, y cuando ambos concuerdan en que es correcto, vuelven a pasar la boleta por el lector y confirman la transmisión.

Del lado del servidor esa boleta se marca como ya recibida, y sus valores se agregan al recuento global de manera automática. Los más rápidos ya deben estar preguntando: ¿y qué pasa ahora con eso de que la máquina no puede mentir? ¿Los servidores no pueden manipular el recuento global? Bien simple: las actas de cierre y las urnas no se tiran a la basura, se guardan. Y por tanto seguimos teniendo la evidencia física verificable, cierta, que las máquinas no pueden alterar. Tenemos las actas, que por el proceso sabemos que no tienen error. Eso evita que las computadoras puedan mentir.

Y aparte de esta seguridad, también se dispone de los mecanismos tradicionales de verificación: los partidos tienen dentro del tribunal electoral a sus fiscales, que pueden verificar que lo recibido se corresponde con lo que los fiscales en las mesas observaron en el recuento.

Fin del proceso.

¿Y cómo se compara esto con la seguridad que todos tenemos sobre el sistema tradicional? Bueno, tendríamos que desmitificar un poco esa seguridad.

Comparemos por partes.

El sistema tradicional no nos otorga ninguna seguridad respecto a que los presidentes de mesa y fiscales realizan el recuento adecuadamente. En el sistema de voto electrónico expuesto, ellos también podrían alterar los valores, pero si analizamos bien vemos que les sería mucho más difícil, ya que el recuento no es un simple papel escrito a mano, sino que se deben pasar votos reales por una máquina. No podemos hacer que un voto para el candidato X cuente como un voto para el candidato Y, porque la máquina lee X y suma X. En papel tranquilamente el presidente puede modificar esos valores (y hasta tiene boletas con las cuales rellenar las urnas para que coincidan). Y si confían mucho en los presidentes de mesa y creen que estas cosas no pasan, entonces miren lo sucedido recientemente en Chubut, donde llegó a haber diferencia de 800 votos en un acta... Así que respecto al recuento en las mesas, el voto electrónico con el sistema planteado nos otorga más seguridad que el voto tradicional.

El sistema tradicional tampoco nos otorga ninguna seguridad respecto a la "transmisión" de los datos. Estoy seguro de que la gran mayoría de los que leen esto nunca antes se habían preguntado "¿cómo se llevan las actas y las urnas para el recuento global?". En el sistema tradicional eso es clave, y sin embargo no tenemos manera de verificar que quien se haga cargo de dicho transporte (correo, gendarmería, etc.) no altere el contenido, modificando las actas o las urnas. En el sistema que explicamos también podría suceder que se alteren los contenidos de las urnas y las actas, pero se encontrarían con un problema: deberían hacer que coincidan con lo que se transmitió antes, lo que les sería imposible, ya que lo transmitido se lee desde el chip RFID que no puede ser modificado una vez grabado, y además no es escritura a mano sino una impresión. En este punto entonces también ganamos seguridad mediante el sistema de voto electrónico.

Aparte de esos puntos, en el sistema tradicional también eran posibles muchas otras trampas, como el robo/ocultación de boletas del cuarto oscuro, que la digitalización y unificación de la boleta ya no permiten (esto es una ventaja también en los sistemas de voto en papel con boleta única). Además de el hecho de que al mostrar todos los candidatos en órden aleatorio y no depender de cuántos fiscales y boletas pueda poner cada partido en las mesas, se favorece la igualdad de condiciones para los partidos, no perjudicando a los más chicos.

Comparando entonces con lo que explicamos antes, objetivamente podemos afirmar que el sistema de voto electrónico implementado en Salta nos otorga seguridades que el voto tradicional, en papel, no nos otorgaba. Y sigue siendo verificable, no se convierte en una caja negra que no podamos controlar. Por ello es importante antes de creer que el sistema de voto electrónico expuesto es inseguro, ver si las inseguridades que planteamos no existen también en el sistema de voto tradicional (papel). Porque la realidad es que como todo sistema lo que se utilizó en Salta no es perfecto, pero sí mucho más seguro y controlable que el sistema tradicional.

Algunas preguntas comunes (FAQ)

  • ¿Pero X no es inseguro? Donde X es algún aspecto del proceso o sistema explicado. Antes de plantear una pregunta de este estilo, primero plantear si el mismo aspecto era o no seguro en el voto tradicional. Pongo esto primero, porque en muchos lugares las principales críticas que se le hacen al sistema son cosas que son igual o incluso menos seguras en el voto tradicional. Así que antes de plantear una pregunta de este tipo, piensen en cuál sería la respuesta para el voto tradicional.
  • ¿Confiar en los presidentes de mesa para el recuento o la transmisión no es inseguro? Perfecto ejemplo de lo que planteé antes. Respuesta: también se confía en los presidentes de mesa en el voto tradicional. Si no podemos confiar en los presidentes de mesa, ningún sistema (papel o electrónico) va a ser seguro... Y de hecho, este sistema de voto electrónico limita mucho más las cosas malas que un presidente de mesa puede hacer.
  • ¿Cuál es la principal ventaja de cambiar de sistema? En mi opinión la principal ventaja son las seguridades que este nuevo sistema nos da y que el sistema tradicional no nos daba, que comenté antes. Y además de ello está la velocidad de recuento. En Salta por ejemplo, a las 21:15 ya se tenía el 100% del recuento de las mesas electrónicas. Solo 3 horas, y estamos hablando no de Capital, sino de una provincia con geografía compleja, donde algunas de las mesas estaban ubicadas en escuelas perdidas en los cerros. Y se trataba de más de 700 mesas, es decir, más de 200.000 personas. Y en 3 horas con un recuento exacto, no un aproximado o una estimación. Y no falta quien pregunta: ¿pero eso no es mucho tiempo? ¿por qué demora tanto si las computadoras suman de manera instantánea? Simple: recuerden que el recuento en las mesas se hace pasando a mano cada boleta por la máquina, eso es un proceso manual (y es así por seguridad), que lleva tiempo (muchas veces demorado por las mesas que cierran tarde porque llega un colectivo de votantes a las 17:45, las discusiones con los fiscales, etc.).
  • ¿Qué tanto se gana en la velocidad del recuento? Respondido antes :)
  • ¿Las actas y los votos impresos en algún momento se cuentan a mano para estar seguros? Esto es decisión de la autoridad electoral. En el caso de Salta, sí, se realizó el recuento manual y es ese el que cuenta como definitivo, mientras que el recuento electrónico es considerado provisorio. Dependiendo del caso, el tribunal electoral decide si se deben examinar manualmente todas o parte de las urnas, pero esto ya es decisión de ellos. Lo importante es que el sistema permite hacer este recuento manual, cosa que no es posible en sistemas de urna electrónica. Y enganchada a esta pregunta: Pero si al final van a contar todo a mano, ¿para qué hacer el voto electrónico? Por todas las ventajas de seguridad que vimos antes, que por lo general el sistema tradicional no nos garantiza.
  • Usan software libre para hacer el sistema (Ubuntu, Python, etc.) Pero, ¿el código del sistema desarrollado por MSA es abierto? Por el momento no. A mi personalmente me encantaría que lo sea, pero no soy quien toma esa decisión, y también hay razones válidas para no hacerlo. No es que la empresa lo cierre por ser malvada y querer andar escondiendo cosas, es un poco infantil creer que una empresa es malvada por no abrir el código de lo que hace. El software libre es algo genial, yo de hecho soy muy adepto a ello. Pero a la hora de abrir el código de algo así de delicado hay muchas cosas a tener en cuenta. Igualmente es un tema que se habló en la empresa, la posibilidad existe e incluso hay buena predisposición al respecto. :) Y de todas maneras, por lo que vimos antes podemos darnos cuenta de que la seguridad del sistema no depende de que se conozca el código, ya que son las boletas impresas las que garantizan dicha seguridad.
  • ¿El costo del sistema no es demasiado elevado en comparación al tradicional? En realidad no. Algo que la mayoría desconoce es que las máquinas son propiedad de la empresa, y el estado las alquila para la votación (algo considerablemente menos costoso que comprarlas). Y además por lo general cuando realizan esta pregunta, desconocen mucho de toda la logística que requiere una elección tradicional, que no es menor, más la cantidad de boletas que deben imprimirse por persona (en el voto tradicional recuerden que no basta con una boleta por persona. Para cubrir todas las opciones se deben imprimir como mínimo tantas boletas como partidos haya por persona).
  • ¿No es inseguro que la transmisión se realice por internet? No gracias al cifrado por SSL y la autenticación de los dos extremos con sus certificados. Esto garantiza que los datos no van a ser alterados y que no pueden ser espiados por alguien que escuche la conexión.
  • En países más avanzados, como Holanda, se prohibió el voto electrónico porque era inseguro. ¿Por qué ustedes creen que no lo es? Porque lo que se usó en esos países eran urnas electrónicas, algo que es muy diferente a este sistema. Es como decir que no hay que comer peras porque en algún lugar se descubrió que las bananas son tóxicas. Sencillamente no son lo mismo. El principal problema acá es que la frase "voto electrónico" se utiliza para muchas cosas que son muy distintas entre si. (nota completamente fuera de tema: yo soy alérgico a las bananas, pero me encantan las peras, así que si ese razonamiento es válido sería una pena para mi :P)
  • ¿Alguien no podría leer lo que tiene el chip de la boleta de un votante a distancia, y así dejaría de ser secreto su voto? El chip tiene muy poco alcance (unos centímetros). Y aunque tuviese más alcance como para que alguien a la distancia lea los datos, sería imposible por la cantidad de interferencia que habría. Recuerden que alrededor del votante hay varios cientos de boletas dando vueltas. Ni hablar del diámetro que debería tener una antena que lea a distancia (metros).
  • ¿Y mediante un ataque de Van Eck no sería posible ver las pantallas de las máquinas de voto a distancia? Esto se soluciona sencillamente ubicando a las máquinas cercanas entre sí, de esa manera generando la interferencia suficiente para que el atacante no pueda distinguir entre una máquina y otra.
  • ¿Qué pasa si se corta la luz? Explicado en la primer parte, cuando hablaba del hardware (batería de emergencia + posibilidad de usar baterías de auto).
  • ¿Y si se rompe una máquina? Explicado también, no pasa nada. Se busca otra, se realiza la apertura, y se sigue.
  • ¿La impresora se puede quedar sin tinta? La impresora no usa tinta, es térmica (lo aclaro porque hay gente que ha preguntado esto en capacitaciones).
  • Otra pregunta que no haya puesto yo acá: Posteala en los comentarios, si tengo idea respondo, y si no averiguo :)

La parte subjetiva: lo que yo opino

De lo explicado pueden sacarse un montón de conclusiones, pero creo que lo más evidente es que este sistema está lejos de ser "una computadora que uno no sabe como funciona y te puede mentir en lo que cuenta". Las numerosas instancias de control nos permiten garantizar la legitimidad de los resultados de manera simple, incluso otorgándonos más seguridad que en una votación tradicional. ¿Sistema perfecto? Seguramente no. Pero sin dudas un avance respecto al voto en papel. Un sistema que nos da un poco más seguridad respecto a la base de nuestra democracia, la votación.

Y no puedo dejar de mencionar otra cosa que me llega más de cerca. Como pythonero, ubuntero, y amante del software libre en general, es un orgullo que esto pueda lograrse en base a estas herramientas. Debería ser algo que tengamos como ejemplo de todo lo que se puede lograr en base a software libre, de su potencial y bondades. Algo que es logro de personas que también son miembros activos de las comunidades de software libre de Argentina, que muchas veces se nutren en dichas comunidades y que saben devolver lo que aprenden en tantos aportes (dando charlas, colaborando o iniciando proyectos, respondiendo en listas de correos, etc.).

En resúmen, buena tecnología al servicio de un proceso electoral más claro y seguro :)

San Cayetano: Flisol en Carapachay

El FLISol es el Festival Latinoamericano de Instalación de Software Libre, es el evento de difusión de Software Libre más grande en Latinoamérica, y este año se hace en Carapachay, Vicente Lopéz (entre otras ciudades).
El lugar elegido es la escuela de oficios San Cayetano de Carapachay.

Para tal fin, las diversas comunidades locales de software libre (en cada país y en cada ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes.
Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre.

En este sitio podés encontrar la data del evento.

La puerta de la escuela estará abierta para aquellas persona que deseen asistir y pasar un lindo dia de la mano del Software Libre.


Andrés Gattinoni: FLISOL 2011

Este sábado 9 de abril es el Festival Latinoamericano de Instalación de Software Libre (FLISoL), el evento de difusión de Software Libre más grande de Latinoamérica.

FLiSoL - Festival Latinoamericano de Software Libre

Festival Latinoamericano de Software Libre

Como indica su sitio web, su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo. A tal fin, las diversas comunidades locales de software libre (en cada país/ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.

Particularmente, nuestro amigo Exos estará participando en el evento a realizarse en Lanús, organizado por LANUX (Grupo de Usuarios de Linux de Lanús). Allí el evento será este sábado 9 de abril de 2011 de 10 a 16:30 horas en la Universidad Argentina “John. F. Kennedy” Av. Hipólito Yrigoyen 4651 -Partido de Lanús.

Este tipo de encuentros son una excelente oportunidad tanto para usuarios avanzados de Linux que quieran encontrarse con otros entusiastas, como para usuarios básicos de computadoras que no conozcan nada sobre Software Libre y quieran conocer de qué se trata de la mano de usuarios experimentados, con buena onda y dispuestos a ayudar.

Mapa, registración y más información en el sitio de FLiSoL en LANUX.

Links