FLISol 2017

El sábado 22 de abril de 2017 se desarrolló Festival Latinoamericano de Instalación de Software Libre: FLISoL. En la Ciudad Autónoma de Buenos Aires éste tuvo lugar en la sede de la UTN de Av. Triunvirato.

En esta edición participé como expositor en dos charlas:

  • Drupal: El CMS que eligen los grandes

La presentamos en conjunto con Jose Sánchez (@ruloweb), y hablamos sobre las principales características que hacen que Drupal sea el CMS ─y CMF─ elegido y preferido para desarrollar y sostener grandes proyectos, como medios de comunicación, entidades gubernamentales, organizaciones sin fines de lucro, portales de empresas privadas, entidades de comercio electrónico, etc.

A continuación compartimos la presentación que utilizamos como guía.

  • Introducción a Ruby on Rails.

Es la tercera vez que re-adapto y presento esta charla; una breve exposición donde se presenta al ─según creo yo─ mejor framework para desarrollar aplicaciones web: Ruby on Rails. Completo, simple, ágil, extensible y escalable son solo algunas características de este increíble framework.

Comparto aquí las diapositivas que sirvieron de guía en esta charla.

Una estafa a gran escala. Los riesgos de una ilusión.

«La tecnología puede mejorar cualquier cosa» «Podemos confiar completamente en la tecnología» «La tecnología es infalible»

Estos son algunos de los argumentos falaces con los que se intenta defender el voto electrónico. Votar usando computadoras es abrirle la puerta al fraude, a la estafa. Es probable que ya nos hayan estafado. Es probable que ya te hayan estafado. Con tecnología, y sin que te dieras cuenta. ¿Cómo? Escuchá.

Entrevista a @arilijalad (fragmento)

Votar usando computadoras es abrirle la puerta al fraude. Las computadoras ejecutan un programa, y éste puede ser cambiado o reemplazado. Puede ser reemplazado incluso durante la elección por otro diseñado, por ejemplo, para dar totales falsos, o registrar los votos emitidos por los usuarios comprometiendo así el secreto del voto. Esto y mucho más puede hacerse sin que ningún usuario note absolutamente nada.

El voto electrónico, en cualquier de sus formas, abre la puerta al fraude. Un fraude posiblemente indetectable.

Los riesgos de una ilusión.

Un programa, cualquiera sea, no obedece al usuario; sólo obedece su programador.

Votar usando computadoras es abrirle la puerta al fraude. Las computadoras ejecutan un programa, y éste puede ser cambiado o reemplazado. Puede ser reemplazado incluso durante la elección por otro diseñado, por ejemplo, para dar totales falsos, o registrar los votos emitidos por los usuarios comprometiendo así el secreto del voto. Esto y mucho más puede hacerse sin que ningún usuario note absolutamente nada.

Reemplazar el software utilizado por las máquinas de voto electrónico es muy algo simple de hacer y que ya sucedió en varias ocasiones.

A continuación dos casos de reemplazo de software en dos sistemas distintos, almacenados en medios distintos; en países distintos y en años distintos.

Argentina. Año 2011.

 Holanda. Año 2006.

Voto electrónico. Los riesgos de una ilusión.

Votar con computadoras es abrir una puerta grande al fraude. La computadora ejecuta un programa, y el programa puede ser cambiado o reemplazado. Puede ser reemplazado temporalmente durante la elección por otro diseñado para dar totales falsos. Ningún estudio del programa que debería correr puede asegurar que otro programa no actúe mal.

La votación es una actividad especial porque normalmente el votante no puede averiguar, según los totales, que su voto ha sido contado correctamente, y hay que desconfiar de todas las partes involucradas. No podemos dar por supuesto que el fabricante es honesto, ni que la autoridad electoral es honesta, ni que los dos no conspiran juntos.

El sistema electoral debe ser a prueba de todas las posibilidades, pero ésto es imposible con una computadora.

Muchos activistas de software libre piensan que usar el software libre en la máquina de votación asegura una elección honesta. Usar software privativo es malo aquí, como siempre: el fabricante podría diseñarlo a sus anchas para fraude. Pero ser libre no basta, porque luego la autoridad electoral podría hacer el fraude. El único sistema confiable es votar con papel.

Algunos investigadores han propuesto sistemas muy sutiles de encriptación para votar. Dicen que con esos sistemas el fraude es imposible. Quizás tengan razón, pero tal conclusión no es fácil de comprobar con certeza. Si algún día parece haber un sistema de confianza para el voto digital, la sociedad debe probarlo gradualmente, a lo largo de una década. En los sistemas electorales, cambiar con prisa es arriesgar todo.

Copyright 2008 Richard Stallman
Se permite la distribución y la copia literal de este artículo en su totalidad y por cualquier medio siempre y cuando se conserve esta nota.

 

Con este prefacio de Richard Stallman comienza el libro «Voto electrónico. Los riesgos de una ilusión». Un libro que recorre la historia del voto electrónico en el mundo y en Argentina, analizando las diferentes formas de implementación propuestas, los problemas que se detectaron en cada uno y las discusiones políticas comenzaron por avalarlo para luego rechazarlo, y en la mayoría de los casos prohibirlo definitivamente.

Un libro con mucho material para entender qué es el voto electrónico y los riesgos que hay detrás de él.

Gracias a la fundación Vía Libre y a la fundación Heinrich Böll esta recopilación y análisis de la historia del voto electrónico está al alcance de todos nosotros, una recopilación y análisis fundamental que nos da la oportunidad de aprender de los errores que otros ya cometieron, y no repetirlos.

Puede obtener una copia en PDF del libro aquí. O bien directamente del sitio de la fundación Vía Libre, aquí.

Improvisación

[ … ]

─Te voy a ser muy sincero ─me dijo en forma muy seria─: ─Los improvisados y las improvisaciones me han salido muy caros hasta ahora; tanto en honorarios como en equipamiento. No quiero improvisados ni improvisaciones.

─Ok. Te voy a ser muy sincero yo también: yo improviso, a veces bastante seguido ─dije con mucha seguridad y tranquilidad─. Cuando algo tiene que andar o andar, cuando «las papas queman», o improviso o no anda. No hay otra, o improvisas, o te tapa el agua.

─No es lo que me dijeron de vos ─me replicó en un tono entre desafiante y amenazante─.

─Probablemente porque no lo sepan, pero improviso. ─Dije con una gran tranquilidad─

─En fin. Hablamos mañana, ¿te parece?

─Dale. Con mucho gusto.

Esta charla me quedó en la cabeza bastante tiempo. Dando vueltas y vueltas. ¡Era un tema muy interesante! Yo improviso, y bastante. Al menos eso creo. ¿Improviso? ¿Está bien improvisar?

Yo me sentía orgulloso de algunas de mis improvisaciones. Hay algunas cosas que hice ─y que salieron bien─ que me pusieron oportunamente muy contento, y cada vez que las recuerdo me alegran mucho; pero ahora resulta que esa idea que yo tenía de la improvisación me la habían puesto «en jaque».

En un momento se me ocurrió buscar que decía el diccionario de improvisar, y me encontré con esto: «Hacer algo de pronto, sin estudio ni preparación.»

Eso sonaba bastante bien. Esa solución inventada sobre la marcha, y que posiblemente en ningún otro momento hubiera surgido de no ser por la presión y la adrenalina que se genera al saber que algo tiene que funcionar ya; que de alguna forma hay que hacer que esto ande, iba bien con «hacer algo de pronto», pero por alguna razón había gente con una mala imagen de eso, y posiblemente sería por la parte que sigue: «sin estudio ni preparación». Y ahí quedé por un tiempo. Luego reaccioné y lo entendí: «sin estudio ni preparación» está aplicado al «hacer algo de pronto», y ahora estaba muy claro: yo había hecho cosas que no estaban en mis plantes, y sobre las que no había estudiado su factibilidad o idoneidad, pero claramente para poder improvisar uno es quien tiene que haberse preparado y estudiado, y generalmente durante un largo período. Uno es quién no puede improvisar sin estudio ni preparación. Un buen ejemplo de esto son los músicos. Ellos hablan mucho de improvisaciones, y sólo puede improvisar el músico que sabe lo que está haciendo. Los músicos improvisan sobre elementos preestablecidos: notas, acordes, escalas, armonías y demás cosas que deben dominar para poder improvisar y que los espectadores quedemos encantados con la destreza y capacidad de un guitarrista, pianista, o lo que sea. En cualquier otro caso, cuando no se dominan mínimamente esos elementos, más que una improvisación es un delirio de notas pegadas, superpuestas y consecutivas sin ningún sentido que generarían ruido más que música y que estaría más próximo a generarnos sufrimiento que asombro o placer.

Me tomó un tiempo, pero creo que logré comprender bien esto de la improvisación. Está bien improvisar, todos improvisamos, lo que no no está bien, lo que está directamente mal, es el intentar improvisar sobre temas o disciplinas que no dominamos, eso es imposible; eso dista mucho de la improvisación, incluso posiblemente esté mucho más cerca del delirio o la locura de lo que nos imaginamos.

De Drupal a WordPress

Recientemente estuve trabajando en la migración de un blog de Drupal 7 a WordPress 3.3.

Basándome en ésta guía dirigida a migrar de Drupal 6 a WordPress, y con algunas pocas modificaciones, pude realizar el proceso sin mayores inconvenientes.

A continución dejo el detalle de los pasos realizados.

Detalles:

  • La base de datos utilizada por Drupal 7 se llama drupal, y la utilizada por WordPress 3.3, wordpress.
  • Ninguna de las instrucciones que aquí se indican escriben en la Base de Datos drupal, por lo tanto, el procedimiento se puede aplicar de forma reiterada la cantidad de veces que sea necesario.

Limpieza de las tablas de wordpress

TRUNCATE TABLE wordpress.wp_comments;
TRUNCATE TABLE wordpress.wp_links;
TRUNCATE TABLE wordpress.wp_postmeta;
TRUNCATE TABLE wordpress.wp_posts;
TRUNCATE TABLE wordpress.wp_term_relationships;
TRUNCATE TABLE wordpress.wp_term_taxonomy;
TRUNCATE TABLE wordpress.wp_terms;

Migración de las categorías

REPLACE INTO wordpress.wp_terms (term_id, `name`, slug, term_group)
SELECT DISTINCT d.tid, d.name,
REPLACE(LOWER(d.name), ' ', '_'), 0
FROM drupal.taxonomy_term_data d
INNER JOIN drupal.taxonomy_term_hierarchy h
USING(tid)
WHERE (1);

INSERT INTO wordpress.wp_term_taxonomy (term_taxonomy_id, term_id, taxonomy, description, parent)
SELECT DISTINCT d.tid 'term_id', d.tid 'term_id', 'category' category, d.description 'description', h.parent 'parent'
FROM drupal.taxonomy_term_data d
INNER JOIN drupal.taxonomy_term_hierarchy h
USING(tid)
WHERE (1);

Migración de los POSTS

INSERT INTO wordpress.wp_posts (id, post_author, post_date, post_content, post_title,
            post_excerpt, post_name, post_modified, post_type, post_status)
SELECT nid 'id', n.uid 'post_author', FROM_UNIXTIME(n.created) 'post_date', r.body_value 'post_content',
       n.title 'post_title', r.body_summary 'post_excerpt', n.title 'post_title', 'post', 'post',
IF(n.status = 1, 'publish', 'private') 'post_status'
FROM drupal.node n, drupal.field_data_body r
WHERE n.nid = r.entity_id;

Asociación de Posts y Categorías

INSERT INTO wordpress.wp_term_relationships (object_id, term_taxonomy_id)
SELECT DISTINCT nid, tid
FROM drupal.taxonomy_index;

Contabilización de post en cada categoría

UPDATE wordpress.wp_term_taxonomy tt
SET `count` = (
SELECT COUNT(tr.object_id)
FROM wordpress.wp_term_relationships tr
WHERE tr.term_taxonomy_id = tt.term_taxonomy_id);

Migración y asociación de comentarios

INSERT INTO wordpress.wp_comments (comment_post_ID, comment_date, comment_content,
            comment_parent, comment_author, comment_author_email, comment_author_url,
            comment_approved)
SELECT dc.nid, FROM_UNIXTIME(dc.created), df.comment_body_value, dc.thread, dc.name,
       dc.mail, dc.homepage, ((dc.status + 1) % 2) 'status'
FROM drupal.comment dc, drupal.field_data_comment_body df
WHERE cid = entity_id;

Contabilización de comentarios en cada Post

UPDATE wordpress.wp_posts SET `comment_count` = ( SELECT COUNT(`comment_post_id`)
FROM wordpress.wp_comments
WHERE wordpress.wp_posts.`id` = wordpress.wp_comments.`comment_post_id` );

Domando al escritor

Recientemente me encontré con un muy buen libro: Writer 3.3 para escritores.

Writer es el procesador de textos incluido en OpenOffice.org y su reciente fork LibreOffice

Este texto, a diferencia de otros, se focaliza en el uso de Writer para escritores; ya sea el profesional de las letras o el amateur que escribe por el puro placer de hacerlo.

Desde el correcto uso de estilos y plantillas, hasta la estructura de los archivos odt, pasando por el uso de Math y Draw, los campos y las referencias cruzadas, la base de datos bibliográfica, el correcto uso del registro de página, ligaduras tipográficas gracias a la tecnología Graphite… y un largo etcétera que se extiende por más de 300 páginas, el lector encontrará en este volumen todo lo necesario para trabajar con OOo/LibO Writer en su máximo potencial.

En esta tercera edición se incluye además un nuevo capítulo dedicado al trabajo en colaboración. Las diferencias entre OpenOffice.org Writer y LibreOffice Writer son también comentadas en detalle.

Puede conseguir este libro (y sus nuevas versiones/ediciones) a través del sitio del autor, donde además encontrará mucha información adicional sobre OpenOffice.org, LibreOffice, Fotografía Digital en Linux, Soporte Multimedia en Linux, Programas de uso científico, y varios temas más.

Aquí dejo la tercera edición de este libro.

Google Chrome y las 300 pestañas

La filial japonesa de Google Chrome (seguramente la misma que hizo ésta publicidad) ha realizado un nueva y muy creativa campaña, en la que muestra la capacidad de Google Chrome para abrir 300 pestañas simultáneamente, y seguir funcionando con total normalidad.

No tenia idea que los japoneses fueran tan creativos, pero para muestra basta un botón. A continuación, el vídeo de las 300 pestañas.