Agosto 9, 2008

Convertir archivos de Excel a CSV desde consola Linux

Categoría: Aprendiendo Linux — Edwood @ 8:06 am

Trabajando con varios archivos de datos en formato de Excel (en mi máquina Linux, por su puesto), me encontré con la necesidad de crear un programita que convirtiera en bloque (”batch”) todos esos archivos al formato CSV (”comma separated values”). Esa conversión facilitaria la automatización de otros procesos por lo cuales tenía que hacer pasar los datos. Además, el formato CSV es reconocido por cualquier programa decente de análisis de datos o de manejo de bases de datos, en Linux, Mac OS o Windows.

Teniendo la experiencia de que muchos programas para Linux pueden correrse desde la línea de comandos además de usarlos con su interfaz gráfica, supuse que Gnumeric tendría alguna forma de permitirme realizar la conversión que deseaba sin tener que levantar el programa completo. Gnumeric es un manejador o gestor de hojas electrónicas de cálculo (”spreadsheets”) equivalente en propósito a Excel. Es más liviano que el Calc de OpenOffice y por eso lo uso para previsualizar archivos de datos gigantezcos.

Gnumeric incluye en su instalación una utilidad llamada ssconvert con la cual se pueden hacer conversiones de archivos a otros formatos desde la consola. Su nombre no da indicación de su relación con Gnumeric.

Para mi necesidad particular, el programa en bash que escribí en la consola para cambiar un grupo de archivos de Excel en CSV fue:

    for xls in *.xls
    do
        ssconvert $xls $xls.csv
    done
    

El programa ssconvert utiliza la extensión de los archivos que recibe como argumentos para determinar cuál conversión realizar. Este es el listado de conversiones que puede hacer:

eocasio:$ ssconvert –list-exporters
ID | Description
Gnumeric_OpenCalc:openoffice | OpenDocument/OpenOffice _UNFINISHED_ (*.ods)
Gnumeric_Excel:xlsx | MS Excel ™ 12
Gnumeric_Excel:excel_dsf | MS Excel ™ 97/2000/XP & 5.0/95
Gnumeric_Excel:excel_biff8 | MS Excel ™ 97/2000/XP
Gnumeric_Excel:excel_biff7 | MS Excel ™ 5.0/95
Gnumeric_sylk:sylk | MultiPlan (SYLK)
Gnumeric_html:roff | TROFF (*.me)
Gnumeric_html:latex_table | LaTeX 2e (*.tex) table fragment
Gnumeric_html:latex | LaTeX 2e (*.tex)
Gnumeric_html:xhtml_range | XHTML range - for export to clipboard
Gnumeric_html:xhtml | XHTML (*.html)
Gnumeric_html:html40frag | HTML (*.html) fragment
Gnumeric_html:html40 | HTML 4.0 (*.html)
Gnumeric_html:html32 | HTML 3.2 (*.html)
Gnumeric_dif:dif | Data Interchange Format (*.dif)
Gnumeric_stf:stf_csv | Comma separated values (CSV)
Gnumeric_stf:stf_assistant | Text export (configurable)
Gnumeric_XmlIO:sax | Gnumeric XML (*.gnumeric)

Más artículos como este en:

Algunos artículos relacionados:


Julio 27, 2008

Manejando dominios de Google App con Python

Categoría: Mis Proyectos, Programación — Edwood @ 11:23 am

La Universidad de Puerto Rico ha decidido seguir el ejemplo de algunas universidades norteamericanas y delegar sus servicios de correo electrónico a Google mediante el Google Applications Education Edition (GAE).

Para facilitar la administración del nuevo servicio estudié al API de Google Apps y desarrollé una consola de texto en Python para las tareas más comunes, como cambiar contraseñas:

Imagen de la consola de texto UPR-GAE

Para este proyecto aproveché las librerías en Python que ya Google había publicado y sólo construí un ambiente amigable para los administradores.

El usuario puede seleccionar el lenguaje de la interface, ingles o español.

Más artículos como este en:

Algunos artículos relacionados:


Julio 7, 2008

Borikén Linux/BSD y Software Libre Puerto Rico

Categoría: Software libre, Blogs — Edwood @ 8:21 am

Con la meta de poder consolidar los esfuerzos de distintos blogs en una fuerte comunidad web de usuarios puertorriqueños de Linux, BSD y software libre en general, he abierto dos grupos en Google:


Google Groups
Subscribe to Borikén Linux/BSD
Email:
Visit this group


Google Groups
Subscribe to Software Libre Puerto Rico
Email:
Visit this group

También les recuerdo que el botoncito en el encabezado de este blog los llevará a un agregador de blogs boricuas sobre Linux, BSD y software libre.

También los exhorto a desarrollar sus propias comunidades alrededor de sus distribuciones favoritas. Tengan por seguro que me suscribiré a ellas.

Más artículos como este en:

Algunos artículos relacionados:


Julio 6, 2008

El precio de confiar demasiado en la Web 2.0

Categoría: Privacidad — Edwood @ 12:23 pm

En las últimas semanas ha estado en la primera plana de la blogosfera el caso de Viacom vs. Youtube (Google). El tribunal le dió acceso a Viacom a los “logs” de visitas a vídeos en Youtube, pero negó el acceso a la tecnología del motor de búsqueda de Google.

Un punto para Youtube/Google, pero uno menos para los usuarios. Google pudo proteger el secreto de su modelo de negocios, pero los usuarios de Youtube acaban de ser tirados en medio de la plaza desnudos y enmorriñados con cara de “¿Qué pasó?”.

Google:

“We are pleased the court put some limits on discovery, including refusing to allow Viacom to access users’ private videos and our search technology. We are disappointed the court granted Viacom’s overreaching demand for viewing history. We will ask Viacom to respect users’ privacy and allow us to anonymize the logs before producing them under the court’s order.”

Viacom:

Viacom responded in a statement obtained by Reuters that it needs the data to demonstrate video-piracy patterns that are the heart of its case against YouTube and has no interest in identifying individual users.

Court Gives Viacom Access to YouTube Views

Si aún seguimos siendo ingenuos pensando que Google será el gran protector de nuestra privacidad, tal vez le debamos también creer a Viacom cuando dice que no le interesa identificar usuarios individuales.

Usando el Web 2.0 hemos entregado con entusiamo nuestro derecho a la privacidad. Algunos cibernautas lo saben y otros no. Pero ya es tarde. Los que aún quieran rescatar algo de su privacidad deben sacar las viejas tablas de la Ley del Web 1.0 y repetirse así mismo 1000 veces:

    “Compórtate en el web como si estuvieras en público.”

Más artículos como este en:

Algunos artículos relacionados:


Una Red Social diferente: PatientsLikeMe

Categoría: El Web, Informática Médica — Edwood @ 7:33 am

PatientsLikeMe

Founded in 2004 by three MIT engineers whose collective experience spans from running the world’s only non-profit biotechnology laboratory to large-scale online commerce applications, PatientsLikeMe is a privately funded company dedicated to making a difference in the lives of patients diagnosed with life-changing diseases. Our personal experiences with ALS (Lou Gehrig’s disease) inspired us to create a community of patients, doctors, and organizations that inspires, informs, and empowers individuals. We’re committed to providing patients with access to the tools, information, and experiences that they need to take control of their disease.

Más artículos como este en:

Algunos artículos relacionados:


Navegación en Mapas con gestos manuales

Categoría: El Web, Tecnología Asistiva — Edwood @ 6:33 am

Visto en:Con esto y un bizcocho: Navegacion en Mapas

Una nueva interfaz basada en vision artificial para Google Maps desarrollada por un universitario para su proyecto fin de carrera. Videos demostrativos en la web.

Más artículos como este en:

Algunos artículos relacionados:


Julio 5, 2008

Buscador educativo diseñado para niños: Nautilius

Categoría: Tecnologí­a Educativa, El Web — Edwood @ 11:23 pm

Visto en: Portafolio.com.co - Ciencia y Tecnología -> Se encuentra en la red el primer buscador educativo diseñado para niños: Nautilius

El navegador web, ubicado en www.nautilusbrowser.com, fue diseñado especialmente para los menores de edad. Permite asegurarse de que la información vista por los pequeños sea la adecuada.

El programa nació de una alianza entre la Fundación Alberto Merani, pionera en pedagogía conceptual, y Laprog Software, compañía experta en tecnología educativa.

Más artículos como este en:

Algunos artículos relacionados:


Convertir DOCX (MS Office 2007) a Texto

Categoría: MS Office — Edwood @ 3:14 pm

Estoy recibiendo con mucha frecuencia documentos en el formato docx de MS Office 2007, un formato que aún OpenOffice no acepta sin ayuda de extensiones.

Un día recibí un docx cuyo contenido tenía que publicarse urgentemente. Fue entonces que decidí hacer algo al respecto:


    $ unzip carta-graduacion-d.docx
    $ cd word/
    $ cat document.xml | sed -e 's/<\/w\:p>/\n/g’ | sed -e ’s/<[^>]*>//g’ | iconv -f utf8 -t iso88591

La última línea del código sólo extrae el texto y trata de conservar la estructura de los párrafos. Una breve explicación de lo que hace el código:

  1. El unzip es porque los documentos docx son archivos zip (también los de OpenOffice)
  2. El primer sed cambia </w:p> por “\n”, caracteres que indican el final de un párrafo.
  3. El segundo sed remueve todos las etiquetas (”tags”) XML.
  4. El programita iconv cambia el encoding de utf8 a iso-8859-1 para que los acentos sean interpretados correctamente.

Si lo escribiéramos como un “script” bash para la consola de linux, nombrémoslo docx2txt.sh, luciría algo así:


    #!/bin/sh
    # docx2txt.sh
    docx=$1
    unzip $docx
    cd word/
    cat document.xml | sed -e 's/<\/w\:p>/\n/g’ | sed -e ’s/<[^>]*>//g’ | iconv -f utf8 -t iso88591

Se debe declarar como un archivo ejecutable de esta forma:


    $ chmod +x docx2txt.sh

Luego se podría usar de esta forma:


    $ ./docx2txt.sh carta-graduacion-d.docx > carta-graduacion-d.txt

El contenido textual de carta-graduacion-d.docx ahora estaría en el archivo carta-graduacion-d.txt. Sin imágenes, sin decoraciones, sin tablas, sin formatos especiales. Sólo texto simple y legible.

Por lo menos ya sé qué hacer con esos anejos docx.

Más artículos como este en:

Algunos artículos relacionados:


Julio 4, 2008

The Bizarre Cathedral 9

Categoría: Humor geek — Edwood @ 9:40 am

Un cómic sobre software libre:

The Bizarre Cathedral

Preparé una imagen con los 11 números existentes: BC 1-11.

The Bizarre Cathedral 9

Más artículos como este en:

Algunos artículos relacionados:


Julio 3, 2008

Actualizada para Firefox 3.0 la extensión para publicar en grupo Computación Científica Libre

Categoría: Mis Proyectos, Navegadores Web — Edwood @ 10:54 pm

Cuando instalé Firefox 3.0 hace unas horas atrás, una de las extensiones que encontró como incompatibles fue la que desarrollé para publicar en el grupo de Google Computación Científica Libre (http://groups.google.com/group/compcilibre).

En ocasiones, como ésta, el único problema es la declaración de las versiones de Firefox con las cuáles la extensión en compatible. El archivo install.rdf de mi extensión declaraba como 2.0.0.* la versión mayor de Firefox con la que era compatible. Sólo tuve que cambiarla al valor 3.0.* para hacerla comptaible. Nada más.

Para quiénes interesan modificar extensiones existentes de Firefox, les doy una idea con un cambio simple que hice para actualizar la mía en Linux:

  1. Entrar al directorio .mozilla/firefox/ngtuz3i7.default/extensions/. La porción ngtuz3i7.default debería aparecer como una combinación diferente de letras y números en su caso. Ese es el identificador de su perfil como usuario de Firefox.
  2. Dentro del directorio extensions hay un directorio (o carpeta) para cada extensión. Estas son algunas de las mías:

    eocasio:$ ls -1
    accessext\@cita.uiuc.edu/
    compcilibre_edwood_ocasio\@yahoo.com/
    es-AR\@dictionaries.addons.mozilla.org/
    extensionlistdumper\@sogame.cat/
    firefox\@facebook.com/
    gmailthis\@lazyrussian.com/
    pencil\@evolus.vn/
    zotero\@chnm.gmu.edu/
    {0538E3E3-7E9B-4d49-8831-A227C80A7AD3}/
    {1476ff20-0a3c-11db-9cd8-0800200c9a66}/
    {283f22a5-7fd7-4714-a764-693b69dc76e9}/

    Me cambié al directorio compcilibre_edwood_ocasio\@yahoo.com/ el cual contiene todo el código relacionado a mi extensión.

  3. Dentro de este último directorio se encuentra el archivo install.rdf

    eocasio:$ ls -1
    chrome/
    chrome.manifest
    install.rdf

  4. Usando mi editor de consola favorito cambié el contenido de install.rdf:


    eocasio:$ nano install.rdf

    El pedazo de texto que cambié fue

      <em:maxVersion>2.0.*</em:maxVersion>

    a esto:

      <em:maxVersion>3.0.*</em:maxVersion>

Luego de reinicializar Firefox, la extensión fue aceptada.

Más artículos como este en:

Algunos artículos relacionados:


Próxima página »
Proudly powered by wordpress - Theme by neuro
   *   BloGalaxia  Uni�n de Bloggers Hispanos
adult chat rooms amateur sex chat amateur webcam asian cam black webcam sex cam sex ebony cams girls ebony teen cams free live asian sex free sex teen chat free teen cam girls free xxx web cam hidden blowjob cam hot webcam lesbian live cams live asian girl live lesbian cams live mature cams live milf cams live porn cam live sex webcams live webcam chat porn cam spy cam sex teen webcam free voyeur cam web cam asian girls webcam teen sex xxx hidden cams xxx home cams xxx web cams