24 marzo 2014

Arduino y el XBee Series 1 - (Modo API)

En una entrada previa, les mostraba un muy corto video donde explicaba como configurar una XBee Series1 (XBee S1) en modo transparente. Este modo de configuración permite crear un enlace entre dos XBee muy rápidamente y prácticamente sin mayor configuración

Sin embargo, cuando queremos armar una red inalámbrica donde necesitamos que se comuniquen entre si varios dispositivos o simplemente queremos conocer algo tan sencillo como la dirección del dispositivo que nos está enviando datos, el modo transparente resulta sumamente limitado.

En esta entrada explicaremos un poco el funcionamiento de las redes con XBee y además les compartiremos un código muy fácil de usar y entender para utilizar las XBee Series
1 en modo API.

La entrada es un poco extensa pero para que se hagan una mejor idea de lo que se puede lograr con el modo API les dejo un corto video:


10 marzo 2014

Reto Electoral para Desarrolladores

Reto Electoral para Desarrolladores


Como algunos sabrán (y tal vez otros no), soy de El Salvador y el día de ayer se realizaron las elecciones presidenciales con un margen extremadamente ajustado (approx 6,000) de votos de diferencia de entre casi 3,000,000 de votos.

Al momento de escribir este post el ente colegiado encargado de organizar los comicios está comenzando el escrutinio final que dará el ganador definitivo.

Sin embargo, ya que mi blog es de código, soy programador y aprovechando que por primera vez tenemos acceso de manera pública a todas las actas escaneadas enviadas al TSE, se me ocurrió la idea de que podría ser un bonito "reto electoral": Verificar de manera independiente, participativa y totalmente anónima los resultados de las elecciones.


Este es el reto:


"Desarrollar una herramienta crowd-sourced, totalmente anónima, capaz de verificar los conteos que se encuentran en las actas de las Juntas Electorales Enviadas al TSE"

La propuesta y el concepto básico:

  • La herramienta funcionará como un re-captcha, cada usuario que la acceda se le mostrará una entrada como la siguiente:
  • En un campo de texto deberá ingresar el número, la idea es que el usuario no pueda "ver" a que partido pertenece el conteo.
  • Los conteos a mostrar se elegirían de un pool de conteos sin verificar completamente al azar, de tal manera que nadie sabrá de qué partido es el número que está verificando reduciendo las posibilidades de que alguien quiera alterar los resultados a su conveniencia.
  • El "conteo" se dará como válido cuando 2 digitaciones diferentes coincidan en el número.
  • La validación no terminará ahí el sistema debería seguir funcionando y mientras más verificaciones positivas reciba entonces su "score" de validación será mayor.
  • Todo deberá ser transparente, el código fuente deberá ser Open Source Software, las bases de datos deberán ser abiertas. Los "snapshots" del sistema deberán de incluir un dump de la base de datos donde se elabore para que cualquiera pueda auditar el código.

Retos técnicos por resolver (de dificultad mayor a menor):

  1. Convertir los PDFs a imágenes, cortar los conteos y asignarlos correctamente a cada partido. Esto podría realizarse de manera semi-automatizada.
  2. Ancho de banda y almacenamiento, si bien este es un reto "pequeño" en el remoto caso que se volviera popular al menos este servidor no tiene recursos suficientes para soportar una carga tan grande de datos.

Datos:

Trabajo previo y herramientas similares:

  • Actas Counter: Herramienta de validación de actas, Pros: Trabajo previo similar al reto actual. Cons: No es completamente anónimo utiliza Facebook para ingresar, los electores pueden ver a que partido corresponde el conteo por lo que deja abierta a "trolls" para modificar resultados para favorecer su preferencia política. https://github.com/corp/ActasCounter

Herramientas de Coordinación:

El premio:

  1.  Ninguno. Simplemente irse a casa pensando que se hizo algo diferente y divertido el día de hoy.

Excepción de responsabilidades:

  • Yo, Mario Enrique Gómez Argueta de Nacionalidad Salvadoreña, lanzo este reto con fines única y exclusivamente "educativos" los datos proporcionados mediante este blog son datos públicos, disponibles mediante acceso libre a través de la página del Tribunal Supremo Electoral y amparados bajo la ley de Acceso a la Información Pública y el Código Electoral vigente de El Salvador. Proporciono los datos obtenidos de dicha institución tal y como fueron publicados a través de su página web por medio de un "backup" estático de la página web a la hora que se especifica. No puedo hacerme responsable de que los datos estén completos o que cuenten con toda la información necesaria, sin embargo se proporcionan los métodos para crear un "backup similar" y verificar la validez de la información.
  • Declaro que no estoy afiliado a NINGÚN PARTIDO POLÍTICO y los resultados obtenidos de este ejercicio NO PRETENDEN ni DEBERÁN SER UTILIZADOS para poner en duda la validez de los resultados oficiales. El único ente colegiado con atribuciones legales para validar resultados oficiales es el Tribunal Supremo Electoral por lo que cualquier resultado obtenido de este ejercicio NO TIENE NI TENDRÁ NINGUNA VALIDEZ LEGAL y deberá ser tratado como información poco confiable y secundaria, para participar de este reto usted se compromete a NO UTILIZAR LOS RESULTADOS PARA FINES POLÍTICOS.