jueves, 21 de abril de 2011

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)

lunes, 18 de abril de 2011

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 :)

sábado, 9 de abril de 2011

miércoles, 26 de enero de 2011

Review Alienware M11X R2

Ayer finalmente me llegó la máquina nueva: una Alienware M11X R2.
No voy a hacer una super review detallada, ya hay unas cuantas en la web (que me leí antes de comprarla), sino que solo voy a poner mi visión resumida.

Pero antes, las especificaciones:

Micro: Intel Core i7 640UM (quadcore, 2.26 Ghz)
RAM: 4GB DDR3 de 800Mhz (dual channel)
Video: Nvidia GeForce GT 335M (1GB de memoria)
Disco: 500GB SATA II de 7200rpm
Pantalla: WLED de 11', 720p
Otros: bluetooth, HDMI, display port, card reader, cámara, etc.

Puntos a favor:

  • Potencia: vuela, así de simple. Corre el COD4 Modern Warfare 2 con todos los gráficos en máximo, y ni lo siente.
  • Tamaño: tiene el tamaño de una netbook de 12', entra perfecto en la mochila, es portable. No entiendo todavía cómo entran las cosas que tiene dentro de un espacio tan reducido.
  • Diseño: futurista, me gusta más que cuando lo veía en fotos. Se ve y se siente muy robusta.
  • Duración de batería: 6 horas con poca exigencia, 2 horas jugando, es bastante.
  • Chiches: Se pueden personalizar los colores de todas las luces, tiene un indicador de batería abajo para cuando está apagada, puede cargar energía a otros aparatos por USB estando apagada, etc.

Puntos en contra:

  • Peso: acostumbrado a una netbook de 1kg, los 2kg y algo que pesa me resultan no tan cómodos en la espalda.
  • Pantalla reflexiva: la pantalla refleja demasiado, muy molesto usarla en ambientes bastante iluminados.
  • Soporte para Linux: desde Linux no puedo hacer varias cosas, como cambiar el color de las luces, o elegir qué aceleradora utilizar.
  • Puerto VGA: no tiene, tengo que conseguir un adaptador para poder usar mi monitor.

Fotos :)

jueves, 23 de diciembre de 2010

La magia existe

La magia existe. Los magos existen.

Personas con poder para crear mundos enteros y manipular sus leyes para volar, hacerse invisibles, o cualquier cosa que sus mentes sean capaces de imaginar. Magia que construye, conoce, transforma o destruye.
Magos que dedican sus vidas ocultas a perfeccionar sus habilidades mágicas, con largas horas de estudios y experimentos impensables. Que forman cofradías en las cuales comparten conocimientos, técnicas y descubrimientos. Cofradías donde los aprendices reciben el arte de manos de gurúes poderosos, y donde muchos combinan sus poderes para lograr cosas aún más increíbles.
Tan increíbles que su magia ya está presente detrás de la vida cotidiana del mundo. Pero son solo los magos quienes conocen y comprenden su verdadero poder y lo continúan aprovechando para transformar la realidad a gusto, a veces para bien y otras no tanto. Al tiempo que para el resto, son solo personas con gustos extraños.
No son quienes conocen solo un poco de magia, y esta se convierte en un simple medio para algún objetivo temporal. Los verdaderos magos descubren el placer en el solo hecho de conocer la magia, experimentar, descubrir. Crean y conjuran nuevos hechizos solo para llevar su poder al límite, y así cultivar su habilidad, expandir su entendimiento.

La magia existe. Los magos existen. La gente los suele llamar "programadores".

jueves, 2 de diciembre de 2010

Charlas en las Jornadas de Software Libre de Junín

Hace poco tuve la suerte de poder ir a las Jornadas de Software Libre que se organizan en Junín. El evento estuvo muy bueno, me sorprendió el nivel de la organización, y aprendí un montón en las charlas. Y de paso me invitaron a dar una charla de Django fuera de cronograma :)

Por suerte filmaron todas las charlas (algo que debería ser costumbre en este tipo de eventos), y hace unos días las subieron ya a blip.tv. Algunas de las charlas también se habían dado en PyConAr 2010, así que pueden aprovechar quienes se perdieron ese evento :)

Pueden ver todas las charlas aquí: http://unnoba.blip.tv/posts?view=archive&nsfw=dc

(y mi charla es esta)

lunes, 18 de octubre de 2010

PyConAr 2010

Y pasó la PyConAr 2010!


La verdad que fue algo muy, muy bueno, desde varios puntos de vista:



Por el lado técnico fué genial aprender muchas cosas de parte de personas que tienen tantos conocimientos. El capital intelectual desplegado en la conferencia fue impresionante.
Desde profundizar en conceptos avanzados como los expuestos en la charla sobre tipado de Daniel Moisset, hasta comprender cosas que debería haber aprendido bastante antes, como unicode (Facu Batista).
La lista de cosas aprendidas sigue con docutils, empaquetado para windows, pymaemo, pygtk, los módulos de roberto, y unas cuantas más.
Y también me gustó y sirvió poder aportar mi pequeño grano de arena, con la charla de Django que espero haya salido bien :)

La verdad que con solo eso la conferencia ya valía la pena.



Pero también está el lado "comunitario", y en eso se sintió muy bien ser parte de una movida fuerte como es la de PyAr.
Esta bueno ver tanta gente comprometida por la difusión y evolución de una tecnología, al punto de regalar horas de trabajo, viajar desde lejos, compartir lo que conocen e incluso aportar económicamente a la causa, convencidos de que lo que tienen es algo que vale la pena difundir.
Viniendo de un pasado no tan lejano de estar metido en otras tecnologías (Microsoft, .Net, etc), todavía me sorprende lo que se logra con una comunidad sin estructuras jerárquicas, títulos oficiales, ni empresas que la banquen.



Y finalmente esta lo humano, el contacto de uno a uno.
Lo compartido en los momentos más informales, como el asado o la salida del sábado, es impagable. Conversaciones y debates con gente que además de ser profesionales tienen calidad humana. Gente que no tiene problemas en compartir una solución a un problema, conocimientos, consejos, junto con bromas, buena onda, y una cerveza de por medio :) (aunque yo no tome, igual me parece genial, jaja).



Así que gracias a todos los que de alguna manera ayudaron a hacer esta PyCon.
Espero ya al próximo evento, y ahora de vuelta al trajín diario, que por suerte este tiempo tiene bastante de Python en el medio (en la facu, en el trabajo fijo, y en el trabajo freelance, weeee! tengo suerte).