Los garantes del voto electrónico en la Provincia de Córdoba

En la Provincia de Córdoba tenemos el triste privilegio, desde hace casi 30 años, de contar con un Consejo Profesional de Ciencias Informáticas de matriculación obligatoria (el CPCIPC). En virtud de una ley que supieron lograr en el año 1987, regulan el ejercicio de «la profesión informática» (como si tal cosa pudiera siquiera definirse). Sí, en Córdoba para desarrollar profesionalmente cualquier actividad relacionada con la computación hay que tener un «título habilitante» y pagar la matrícula del Consejo Profesional.

CPCIPC y Vot.Ar

Hace unos días, y desoyendo la voz de especialistas, la Legislatura de Córdoba aprobó una ley que ordena el uso de voto electrónico en las elecciones provinciales. Amén de implementar un sistema más que cuestionado, la norma pone en manos del CPCIPC la fiscalización (limitando la posibilidad de ser fiscal informático partidario a quienes estén matriculados) y seguramente sea también el CPCIPC quien asuma el rol principal en la realización de las auditorías del sistema informático a utilizar.

Lo que sigue es un ejemplo más del lamentable nivel de los informáticos nucleados en el CPCIPC.

Sigue leyendo «Los garantes del voto electrónico en la Provincia de Córdoba»

Los Riesgos de las Universidades-Java

Este artículo de Joel Spolsky es, desde hace tiempo, uno de mis favoritos. Publicado originalmente en el año 2005, el paso del tiempo sólo lo ha hecho ganar rigor y actualidad.

Spolsky alerta sobre la creciente tendencia de muchas universidades a sobre-simplificar la currícula de las carreras de Ciencias de la Computación (con Java como «lenguaje insignia»), con el único objetivo de producir mayor cantidad de egresados y en menos tiempo. La consecuencia es directa: cada vez más abundan programadores que poco entienden de conceptos de programación (corrección, recursión, complejidad, paralelismo, entre tantos otros) y para los cuales los mecanismos «internos» de los sistemas informáticos (gestión de memoria, interacción con el sistema operativo, comunicación entre procesos, etc.) son completamente esotéricos.

Sigue leyendo «Los Riesgos de las Universidades-Java»

¿Cómo decimos verdades que pueden lastimar?

Lo que sigue es una traducción de un excelente artículo de Edsger W. Dijkstra titulado originalmente «How do we tell truths that might hurt?«.

Dijkstra es reconocido como uno de los pioneros de las Ciencias de la Computación por sus abundantes aportes, tanto en el área teórica como en la práctica. Resulta ser que, además de un notable científico, también fue un gran visionario. Una muestra de ello es el artículo aquí reproducido, publicado originalmente en el año 1975.

Realmente es penoso ver que, aún 35 años después, muchos siguen sin caer en la cuenta de cuestiones que ya en aquella época resultaban evidentes.

Sigue leyendo «¿Cómo decimos verdades que pueden lastimar?»

Programadores, ¿productores o consumidores?

Los programadores somos, casi por definición, productores de software. Esto es, producimos programas (que muchas veces hasta son llamados «productos», según la definición que dicta el marketing). El gran sueño de muchos programadores es desarrollar un «producto» implementando una idea innovadora (o cubriendo un nicho insatisfecho) y vender una gran cantidad de copias, multiplicando las ganancias.

Esta visión, lentamente, está cambiando. Por un lado, las historias de aquellos que hicieron una fortuna (o establecieron una posición económica) mediante la venta de licencias de un programa son, a la vez, cada vez más lejanas y menos frecuentes. Pero, si empezamos a vernos a nosotros mismos también como consumidores de software, el razonamiento cambia radicalmente.

Sigue leyendo «Programadores, ¿productores o consumidores?»

Charla sobre Ruby en Córdoba (7JRSL)

Siguiendo con la tendencia a desempolvar cosas viejas, aquí va la presentación que utilicé en mi charla «Ruby: ‘Orientación a Objetos’ y algo más…», en el marco de las 7mas. Jornadas Regionales de Software Libre, realizadas en la ciudad de Córdoba, en agosto de 2007.

Ruby: «Orientación a Objetos» y algo más…

Sigue leyendo «Charla sobre Ruby en Córdoba (7JRSL)»

Charla sobre Ruby on Rails en Rosario (5JRSL)

Esta es la presentación que utilicé en la charla «Primeros pasos en Rails» en ocasión de las 5tas. Jornadas Regionales de Software Libre, en noviembre del 2005, en Rosario, Santa Fé.

Aunque se trata de material un tanto obsoleto, ya que está basado en las primeras versiones de Rails (en las cuales ni siquiera existían, por ejemplo, las «migrations»), decidí publicarlo de todas formas.

Primeros pasos en Rails

Sigue leyendo «Charla sobre Ruby on Rails en Rosario (5JRSL)»

Mi charla en las 8vas. JRSL

Tal como comenté en el artículo anterior, tuve la gran satisfacción de dar una charla en las 8vas. Jornadas Regionales de Software Libre, realizadas del 20 al 22 de agosto pasado en la Universidad de Belgrano.

Aunque en algún momento estará disponible en el sitio del evento (junto con el video de la charla), no resití la tentación de publicar la presentación que utilicé.

Experiencias en la implementación de un ISP con software libre

La base de datos del sistema de escrutinio de MSA

Como comenté en el artículo anterior, tuve la oportunidad de tener cierto contacto con el sistema utilizado por la empresa Magic Software Argentina (MSA) en el escrutinio provisorio de las elecciones municipales de mi ciudad, Río Cuarto.

Los fiscales informáticos tuvimos acceso a la interfaz de consulta del proceso de escrutinio y a un volcado de la base de datos, que se realizaba cada 5 minutos. Lamentablemente, no tuvimos acceso al código fuente de la aplicación (aunque espero poder acceder al informe de los peritos contratados por la Junta Electoral).

Una vez finalizado el escrutinio provisorio, surgieron diferencias en los totales de votantes de los dos cargos electivos. A raíz de esto, decidí inspeccionar la base de datos con el objetivo de generar el listado de las mesas en las cuales se originaba dicha diferencia. De dicho análisis resultó el siguiente artículo, en el que me permito realizar algunas críticas.

Sigue leyendo «La base de datos del sistema de escrutinio de MSA»

El secreto de Ruby: Las «clausuras»

Uno de los mecanismos más potentes provistos por el lenguaje Ruby es la posibilidad de manipular bloques de código que pueden ser pasados como argumentos en la invocación a funciones.

Este mecanismo se denomina «clausura» («closure«, en inglés), y aunque no es exclusivo de Ruby (es un viejo conocido en Smalltalk y Lisp, encontrándose aún en Perl y Python), la simplicidad de su uso lo transforma en una herramienta muy poderosa y flexible.

Sigue leyendo «El secreto de Ruby: Las «clausuras»»