24 de mayo de 2012

Pliego petitorio y declaratoria de #Yosoy132

23 de Mayo de 2012

La situación en la que se encuentra México exige que las y los jóvenes luchemos por un México más libre, más próspero y más justo.

Creemos que la situación actual de miseria, desigualdad, pobreza y violencia sea resuelta.

Las y los jóvenes de México creemos que el sistema político y económico no responde a las demandas de todos los mexicanos.

Los estudiantes unidos de este país creemos que una condición necesaria para corregir esta situación consiste en empoderar al ciudadano a través de la información, ya que ésta nos permite tomar mejores decisiones políticas, económicas y sociales. La información hace posible que los ciudadanos puedan exigir y criticar de manera fundamentada a su gobierno, a los actores políticos, a los empresarios y a la sociedad misma. Por eso, Yo Soy 132 hacen del derecho a la información y del derecho a la libertad de expresión sus principales demandas.

Hoy los jóvenes hemos encendido una luz en la vida pública del país. Asimilamos este momento histórico con valentía e integridad; no esperemos más, no callemos más, los jóvenes decidimos.

A los medios de comunicación nacionales e internacionales, a las instancias de gobierno, a la sociedad mexicana en general:

El movimiento Yo Soy 132 declaró que es un movimiento apartidista y constituido por ciudadanos, por lo tal no expresa apoyo o rechazo hacia ningún candidato político.

Nuestros deseos y exigencias se centran en la defensa de la libertad de expresión y del derecho de información de los mexicanos.

Nuestra preocupación se deriva del estado actual de la prensa nacional y los medios de comunicación, así como de su papel político en el contexto democrático. Yo soy 132 no representa a ninguna institución pública de superior, ni privada.

El movimiento Yo Soy 132 a través de la deliberación interuniversitaria democrática cuenta ya con principios generales que guían su causa, así como estatutos generales que guían su causa.

En esencia, este movimiento busca la democratización de los medios de comunicación, con la finalidad de garantizar información transparente, plural e imparcial para fomentar una consciencia y pensamiento críticos, es por eso que exigimos competencia real en el mercado de medios de comunicación, en particular a lo referente al duopolio televisivo.

Exigimos hacer del acceso a Internet un derecho constitucional efectivo en los términos que establece el Art. 1 de la Carta Magna.

Exigimos la instalación en todos los medios informativos radio, televisión  y medios impresos civiles que defiendan el interés público, como lo son la publicación de un Código de Ética del manejo informativo y la instauración de un ombudsman.

Exigimos someter a concurso producciones para los canales  públicos  permisionarios a las distintas escuelas de comunicación.

Exigimos abrir el debate entre los jóvenes y los medios de comunicación sobre las demandas aquí expuestas.

También exigimos garantizar la seguridad de todos los integrantes de este movimiento, de quienes se expresan libremente en el país y en particular de aquellos periodistas alcanzados por la violencia.

Además expresamos nuestra absoluta solidaridad a las personas que en los próximos días han sido reprimidas por manifestar libremente sus ideas en distintos Estados de la República Mexicana.

Como demanda inmediata exigimos la transmisión en cadena nacional del debate de los candidatos a la Presidencia de la República. Y no encontramos en esto una imposición en las audiencias privilegiadas, sino como forma de garantizar el derecho de elegir ver o no a quienes hoy no cuentan con esa posibilidad.

Universitarios, jóvenes y ciudadanos de la República Mexicana, este movimiento los convoca a organizarse y sumarse y hacer suyo este pliego petitorio.

Por una democracia auténtica, "Yo Soy 132″.

14 de mayo de 2012

Ficheros de texto a bases de datos SQL. Un caso práctico

Nuestra tarea es seleccionar algunas de esas columnas que se pueden encontrar separadas por un "pipe" para crear una tabla en una base de datos tipo SQL (SQLite, MySQL, Postgres, etc.) Es de suponer que cuando dicho fichero* tiene miles de registros la tarea se complica. Para ello vamos a utilizar tres herramientas super potentes: Awk, nl y SQLiteManager, las cuales son muy fáciles de usar.

1. Antecedentes

Tenemos creada nuestra tabla en la base de datos. Primero vamos a examinar cuáles columnas del fichero de texto corresponden con los campos de nuestra tabla. A cada uno de esos campos lo vamos a asociar con un número. Por ejemplo, si nuestro fichero tiene 20 columnas y estas están separadas por un pipe (|). En realidad se pueden separar por otro FS (field separator) como una coma, o un espacio. En este ejemplo, utilizamos el pipe. y a nosotros solo nos interesan las columnas 1, 2, 3, 4, 5, 7, 8, 10, 11 y 14 la selección sería:

$1 "," $2 "," $3 "," $4 "," $5 "," $7 "," $8 "," $10 "," $11 "," $14. 

2. Just Testing

Hagamos una prueba: Abrimos la terminal y escribimos el comando:

awk -F"|" '{ print $1 "," $2 "," $3 "," $4 "," $5 "," $7 "," $8 "," $10 "," $11 "," $14 }' foo.txt

Aquí notamos que el separador de campos, Field Separator (FS), es un pipe; enseguida es necesario abrir unas comillas simples y dentro un par de llaves que es donde insertaremos la acción a ejecutar. Dentro de las llaves le damos un "print" a las columnas a imprimir las cuales irán separadas por unas comillas y dentro unas comas. Fuera de las comillas simples, el siguiente argumento del comando awk es el fichero de texto que deseamos transformar. 

OJO: Antes de darle "enter" es necesario considerar el tamaño del fichero. Si es de varios MB sería conveniente tener una versión reducida para ir experimentando con las salidas generadas y verificar lo que realmente requerimos.

3. La papa

Una vez que ya tenemos el resultado esperado, simplemente rederigimos la salida del comando: al fichero correspondiente:

awk -F"|" '{ print $1 "," $2 "," $3 "," $4 "," $5 "," $7 "," $8 "," $10 "," $11 "," $14 }' foo.txt > foo.csv

Ademas hay que señalar que nuestra tabla va indexada y el fichero de texto original no incluye ningún campo del tipo id... Estelo vamos a agregar con nl:

nl -s, foo.csv > foo2.csv

A continuación vamos a crear una base de datos en sqlite3, luego crearemos la tabla correspondiente y posteriormente la poblaremos con el contenido de "foo2.csv"

a) Crear db: sqlite3 codigos_postales.db

b) Crear la tabla con un script SQL: 

sqlite> .read createTable.sql

sqlite> .table <- Verificamos la tabla "foo" recién creada

4. SQLiteManager

Hasta ahora únicamente hemos trabajado con la terminal. Llego la hora de abrir el Firefox e instalarle un plugin super-recomendado: SQLiteManager (Así como hay un phpMyAdmin para MySQL, hay un SQLiteManager para el SQLite Instálenlo... no se arrepentirán ;-)

SQLite Manager-Plugin del Firefox

Desde ahí haremos la importación de nuestro csv y poblaremos la tabla. En la imagen se presenta la tabla cp en la base de datos códigos, también podremos hacer queries y otras operaciones.

Con el Asistente de importación la tarea se facilita aún más:

Asistente de importación del SQLite Manager

Y listo, unas cuantas consultas:

Un query de prueba

5. Importación de bases de datos

Un último comentario: Para MySQL hay un script en Bash, mysql2sqlite.sh,que permite la importación de una base de datos de MySQL a SQLite el cual hace uso extensivo del Awk para lograr la importación. Un ejemplo de uso sería:

./mysql2sqlite.sh -u root -p'tupasswd' foo | sqlite3 database.sqlite

Aunque el ejemplo está hecho en SQLite, la importación a otros RDBM como MySQL es casi igual de fácil. Se pueden utilizar herramientas como el phpMyAdmin o algunos otras utilerías. Es el mismo caso para PostgreSQL u Oracle. 

Notas

*Por el momento no vamos a tratar hojas de cálculo Excel. Eso lo vere en un post  de cómo utilizar módulos, como el Spreadsheet::ParseExcel en Perl para crear scripts que nos permitan la conversión xls->csv. 

Dónde leer más de esto:

IBM developerWorks

LinuxJournal

Awk Guide <- En particular este es una de los mejores y más completas guías para el Awk

SQLite Guía breve <- Breve guía de opciones para la línea de comandos de sqlite3 

SQLite Manager-Plugin del Firefox <- SQLite Manager Excelente plugin para el Firefox y que permite importar ficheros csv con múltiples formatos

https://github.com/lazierthanthou <- Repo del desarrollador de SQLiteManger. 

13 de mayo de 2012

Y lo mandaron hasta al baño a esconderse

Recopilación de los vídeos de EPN en la Ibero. Muy bueno el de Hitler también:

En este video se muestra como EPN termino por encender aún más los ánimos:

Este es como una "recopilación"
http://youtu.be/xlqS1abNCkw

En este video deberías de ver su cara:
http://youtu.be/yMxzGaXq06E (checa el minuto1:04)….. "Y allá afuera hay salidas para salir"

Nuevamente uno de Hitler:

Un poco de humor:
Esto viene del Proceso:

Ante el desconocimiento del término por parte del candidato presidencial, quien es abogado de profesión, el alumno explicó que anomia es un estado que surge cuando las reglas sociales se han degradado o se han eliminado y ya no son respetadas por una comunidad.

La ignorancia de Peña Nieto respecto del término provocó severas críticas y burlas por parte de los tuiteros.

@Mexico_Chingon: Jajaja!! Le preguntan en la Ibero sobre las Anomias ? Dice epn que si no son las de Guanajuato? #EPNlaIberoNOtequiere

@Patriciomonero: "Anomia. Circunstancias que permiten que, en un país en el que las leyes no se aplican, hasta un delincuente pueda ser candidato".

@xjesus: "Que el público común no sepa que es 'anomia' es pasable, que un licenciado en Derecho como EPN no sepa es para quitarle el título", opinaron.

La salida del candidato priista del campus universitario no fue mejor de lo que ya había aguantado a los estudiantes de la Ibero, pues quedó atrapado en un baño de la institución porque una turba de alumnos inconformes lo siguió.