GoogleCL – Accede a los servicios de datos de Google por consola/terminal

De Google podemos decir cualquier cosa, excepto que sea predecible con sus nuevos servicios y aplicaciones. Y este es el caso de GoogleCL, una aplicación para acceder a los servicios de datos de la empresa desde la línea de comandos. Fue presentado con bombo y platillo hace no más de una semana y no es sino un gran script Python que usa las bibliotecas gdata (Google Data Protocol). Les presentaré unos ejemplos para comenzar a aprovecharlo.

Por ahora, GoogleCL soporta estos servicios:

Docs

  google docs edit --title "Comandos Linux"

Blogger

  google blogger post --title "Frase" "Si no te equivocas de vez en cuando, es que no lo intentas"

Calendar

  google calendar add "Desayuno en Tiffany"

Contacts

  google contacts list name,email > contactos-respaldo.csv

Picasa

  google picasa create --title "Fotos vergonzosas" ~/fotos/familia/*.png

Youtube

  google youtube post --category Education aprendiendo_navi.mp4

Instalación enUbuntu/Debian

Descarga el código fuente o bien el DEB para sistemas de la familia Debian. Elige tu favorita del sitio de descargas. La versión más reciente a la fecha es la 0.9.7. Desde Debian/Ubuntu ejecuta:

  sudo dpkg -i googlecl_0.9.7-1_all.deb

Uso

Hay muchos ejemplos en el sitio de GoogleCL. Aquí me concentraré en mostrar cómo configurar el acceso a Google Docs desde la línea de comandos. Antes de eso debes saber que ejecutado sin argumentos, GoogleCL inicia una sesión interactiva a través del comando google, con el carácter “>” como prompt.

  google
  > help
  Welcome to the Google CL tool!
    Commands are broken into several parts: service, task, options, and arguments.
    For example, in the command

    [...más salida...]

    Enter "> help <service>" for more information on a service.
    Or, just "quit" to quit.

   > help docs
   Available tasks for service docs: 'edit', 'delete', 'list', 'upload', 'get'
    edit: Edit a document
     Requires: title Optional: format, editor

    delete: Delete documents
     Requires: none Optional: title

    list: List documents
     Requires: delimiter Optional: title, folder

    upload: Upload a document
     Requires: none Optional: title, folder, no-convert Arguments: PATH_TO_FILE

    get: Download a document
     Requires: (title OR folder) Arguments: LOCATION

  > quit

Usaré la sesión interactiva en todos los ejemplos.

Es importante configurar el navegador que utilizaremos con GoogleCL para realizar ciertas tareas. Hay dos opciones: exportar una variable de ambiente BROWSER o editar el archivo de configuración de la aplicación. Te recomiendo esta última.

  echo auth_browser=firefox >> ~./google/config

Desde el shell de GoogleCL y con ayuda de la documentación haremos unas sencillas tareas. Comencemos por obtener una lista de nuestros documentos. La primera vez te solicitará un usuario y luego que aceptes desde el navegador que GoogleCL pueda acceder a tu cuenta en el futuro.

  google
  > docs list
  Please specify user: *****
  Please log in and/or grant access via your browser at https://www.google.com
  ***** then hit enter.

El navegador que elegiste se abre y debes dar clic en “Grant access”. Un archivo access_tok_tu_usuario se crea bajo el directorio ~./google.

De ahora en adelante ya no será necesario autorizar nada para ese usuario. Después de aceptar, en el shell de google aparece un listado de tus archivos. Aquí muestro una vista parcial de la salida porque es extensa.

  Lista de ejemplos,http://docs.google.com/Doc?docid=*****
  Reporte 10-P,http://spreadsheets.google.com/ccc?key=*****
  [... más salida ...]

Ahora edito un documento de texto con Vim.

 docs edit --title "In the beginning was the command line" --editor vim

Y aquí lo descargo

 docs get --title "In the beginning was the command line"
 Downloading In the beginning was the command line to /home/eli/In the [...] .txt

Conclusiones

Como sucede con cualquier herramienta, GoogleCL puede ser tan poderoso como lo quieras. Sobre todo si lo incluyes en tus scripts personales. Además notarás que algunas opciones tienen bugs, pero ten paciencia y espera la versión 1.0 estable. Si eres frecuente usuario del shell y de los servicios de Google, encontrarás en GoogleCL un importante aliado para tu productividad.

Convertir base de datos latin1 a UTF-8 en MySQL

Desde la version de  MySQl 4.1 que el charset por default es UTF-8. Si tienen una base de datos antigua con datos en latin1 y desean actualizar, deben de hacer lo siguiente:

  1. Para no perder los datos exportamos la informacion de la base de datos en latin1 a un archivo plano con el comando mysqldump:
    :~$ mysqldump -u usuario -p base_de_datos –default-character-set=latin1 &gt; backuplatin1.sql
  2. Entrando a la consola de MySQl (o mariadb) o administracion via web con PhpMyAdmin debemos de crear una nueva base de datos con el set de caracteres UTF8:
    :~$ mysql -u mi_usuario -p
    mysql&gt; CREATE DATABASE nueva_db CHARACTER SET utf8 COLLATE utf8_general_ci;
  3. Ahora procedemos a convertir el set de caracteres del archivo backuplatin1.sql. Para luego con el archivo resultante cambiamos todas las referencias al juego de caracteres latin1:
    :~$ iconv -f ISO-8859-1 -t UTF-8 backup.sql &gt; backup_utf8.sql
    :~$ perl -pi -w -e 's/CHARSET=latin1/CHARSET=utf8/g;' backup_utf8.sql
  4. Ahora con el backup o dump convertido al charset utf8 lo importamos a la nueva base de datos recien creada
    :~$ mysql -u mi_usuario -p  db_destino  –default-character-set=utf8 &lt; backup_utf8.sql

The Official Ubuntu Book, Quinta Edición

the-official-ubuntu-book
The-official-ubuntu-book

Ya esta disponible desde Amazon, la quinta edición de The Official Ubuntu Book.

The Official Ubuntu Book cubre en sus 448 páginas gran parte de lo necesario para manejar y conocer esta distribución, una de las más populares actualmente en el mundo Gnu/Linux. Puedes darle un vistazo al contenido del libro en la pagina de Amazon.

También lo podeis descargar libremente desde aqui http://hotfile.com/dl/58845208/26a876a/the.oficcial.ubuntu.book.rar.html

Script para vaciar la Swap en Linux

Muchos servidores o sistemas Linux al tener demasiados archivos abiertos necesitan mucha SWAP y mucha RAM , para evitar que no se bloquee el servidor por tener la memoria SWAP llena, aqui teneis este script en bash para vaciar o liberar memoria o partición de intercambio (como lo queramos llamar) SWAP .

#!/bin/bash
echo -e "\nOutput of free before:"
free
swapoff -a ; swapon -a
echo -e "\nOutput of free after:"
free
echo "Swap Clean DONE¡"

Este script lo podeis guardar en un archivo, lo haceis ejecutable con «chmod +x archivo» y lo podeis poner en un CRON diario para que se vacie la partición SWAP

NOTA: para reducir la tendencia a usar SWAP se modifica el archivo sysctl.conf con el siguiente valor:

#Tendencia del uso de Swap
vm.swappiness=20

Como instalar Android en un iPhone

El proceso de instalar Android en un iPhone no es sencillo. Requiere seguir una serie de pasos más o menos complejos y algo de conocimiento de lo que se está haciendo y de cómo desbloquear e intervenir el iPhone. Los resultados tampoco ofrecen nada más allá que lo que se puede conseguir con un teléfono Android «de verdad».

De hecho en teoría no debería ser muy cómodo -siquiera posible en algunos aspectos- utilizar Android con normalidad en un iPhone, en parte porque, por ejemplo, los terminales Android tienen en común una serie de botones que se integran con el manejo del sistema operativo -volver, menú, home,…-, y estos no existen físicamente en el iPhone, aunque en este caso el botón de encendido hace las veces de botón «volver», que es el más importante.

La detallada guía publicada en PC World explica cómo hacer el cambio de sistema operativo, paso a paso. Explica además otros problemas casi más importantes. Por ejemplo, dado que Android no tiene capacidad para gestionar el consumo de batería del iPhone -este aspecto requiere el entendimiento total entre el sistema operativo y el teléfono- utilizando Android ésta durará apenas una hora.

Tampoco es posible sincronizar contenidos y el proceso puede terminar con una sucesión de errores temporales o convirtiendo el iPhone en un sofisticado pisapapeles.

Vídeo: