lunes, 23 de julio de 2012

Liberado Linux Mint 13 KDE

Acaba de ser liberada la distribución Linux Mint 13 con escritorio KDE, que seguro hará las delicias de todo linuxero. Para quienes no conozcan esta distribución, está basada en Ubuntu (y por ende en Debian), con una comunidad cada vez más creciente de seguidores y desarrolladores, lo que ha llegado a arrebatar el puesto número 1 de Distrowatch a la mismísima Ubuntu.

Características

Sus principales características son las siguientes:

  • Basada en Ubuntu 12.04 LTS
  • Linux Kernel 3.2.0
  • Escritorio KDE 4.8.3
  • Applets MATE y mintMenu
  • Mejoras de arte
  • Motores de búsqueda
  • Disponible para 32 y 64 bits
  • Quicktime incorporado en Firefox
  • Boot hangs en sistemas con tarjetas wireless b43
  • Moonlight
  • Requisitos mínimos:
    • Procesador x86 de 32 o 64 bits
    • 1GB memoria RAM
    • 5GB disco duro para instalación
    • Tarjeta gráfica con resolución mínima de 800x600
    • CD ROM o puerto USB

Enlaces

domingo, 22 de julio de 2012

GTD: Caso práctico

Ha llegado el momento de exponer un caso práctico para comprender y asimilar todos los conceptos vistos anteriormente.

Principios GTD involucrados

Organización

Antes de empezar a implementar GTD, incluso antes de realizar nuestra primera recopilación, es recomendable tener preparada la estructura de nuestra organización, ya que ésta determinará qué hacer y dónde depositar todo aquello que recopilemos y procesemos. 

La estructura mínima para organizar nuestro trabajo debería ser la siguiente:
  • Sin acción:
    • Papelera (desechar)
    • Algún día (incubadora)
    • Consulta
  • Acción:
    • En Espera
    • Agenda
    • Próximo
    • Proyectos
Con el tiempo y la experiencia podremos revisar y adaptar esta estructura organizativa a nuestras necesidades.

Recopilación

La recopilación se realiza siempre inmediatamente, en el momento en el que surge una idea, un recado o cualquier cosa que requiera ser recordada y ejecutada más tarde. Para ello, dispondremos de un canasto o bandeja de entrada que esté siempre con nosotros, en donde depositaremos la nota o el recordatorio. La recopilación ha de convertirse en un hábito que nos lleve el mínimo tiempo posible sin llegar a interrumpir gravemente lo que estábamos haciendo.



Procesamiento

El procesamiento filtra las cosas que hemos recopilado en el canasto, identificando qué son y qué se debe hacer con ellas. El resultado final será el canasto vacío y las listas conteniendo las cosas correspondientes, preparadas para su ejecución. 

El procesamiento debe realizarse cada vez que se considere necesario. Mi recomendación es realizarlo, al menos, una vez al día, o si en el canasto han llegado cosas urgentes de atender.



Caso práctico

La estructura organizativa debe estar preparada antes de comenzar. El material de organización (listas, archivadores, carpetas, etc.) debe estar disponible para su uso. Si se va a utilizar una aplicación para el ordenador o el smartphone, se deben de haber creado las listas correspondientes.

A lo largo de un día se han recopilado las siguientes cosas en el canasto:
  • Cita con el dentista. 27 de Julio de 2012, a las 18:00 horas.
  • Guía de lugares a visitar en Egipto.
  • Devolver llamada a Carmen.
  • Catálogo y ofertas de hoteles y atracciones para Costa Dorada.
  • Listas de precios para equipos informáticos.
  • Catálogo de muebles juveniles.
  • Reparación del coche.
  • Preparar informe de Calidad de la semana.
  • Realizar propuesta de gráfica de realizado/previsión para el cuadro de mando.
  • Viaje a Londres el 26 de Julio.
  • Informar a Luis sobre el estado de su proyecto.

Procesamiento

Antes de empezar, recordemos las reglas y las recomendaciones sobre el procesamiento:
  • Ha de ser ágil y rápido.
  • Aquello que sale no vuelve a salir.
  • Las cosas se procesan, de una en una, desde la primera a la última.
  • El canasto ha vaciarse.
  • El procesamiento ha de realizarse cuando se pueda y sea necesario.

Y ahora empecemos a procesar:
  • Cita con el dentista. 27 de Julio de 2012, a las 18:00 horas. 
    • Obviamente, es una cosa que requiere de una acción y está programada para un día y una hora determinados. Se registrará en la AGENDA.
  • Guía de lugares a visitar en Egipto. 
    • Siempre he querido visitar Egipto, pero aún no es el momento. "Tal vez" pueda hacerlo "algún día". Será un proyecto que realizaré cuando las circunstancias lo favorezcan. Se mueve a la lista ALGUN DIA (incubadora)
  • Devolver llamada a Carmen. 
    • Esta tarea llevará un tiempo aproximado de dos minutos. Por tanto, se realizará ahora mismo y se eliminará del canasto (Regla de los dos minutos)
  • Catálogo y ofertas de hoteles y atracciones para Costa Dorada. 
    • Para este año aún no están planificadas las vacaciones, por lo que se está recopilando información y ofertas. En los próximos 3-4 meses se tomará la decisión, por lo que es algo que no se realizará próximamente, si no que está en proyecto. Por tanto, se creará un proyecto llamado "Vacaciones 2012", y allí se depositará esta información. Más tarde podremos tener más información y se crearán múltiples tareas para llevar a cabo este proyecto.
  • Listas de precios para equipos informáticos. 
    • De momento no se necesita renovar el parque informático, pero en cualquier momento puede ocurrir algún imprevisto y necesitar esta lista de precios. Es información sin acción a la vista. Se guardará en la lista CONSULTA.
  • Catálogo de muebles juveniles. 
    • Mi hija, con 10 años, va creciendo mucho. De 2 a 4 años habrá que cambiar la habitación por una más juvenil y grande. De momento no es urgente ni hay fecha concreta. De momento no es un proyecto, por lo que se guardará en la lista CONSULTA.
  • Reparación del coche. 
    • Hoy he dejado el coche en el taller. El mecánico realizará esta tarea (no yo). Así pues, se guardará esta acción en la lista EN ESPERA, con una nota que recuerde quién es la persona que la realiza, en qué fecha se le delegó y para qué fecha se espera tener acabada la tarea.
  • Preparar informe de Calidad de la semana. 
    • Esta tarea es habitual en el trabajo, y hay que realizar en los próximos días. Se moverá a la lista PROXIMO.
  • Realizar propuesta de gráfica de realizado/previsión para el cuadro de mando.
    • Esta tarea es de trabajo, y aunque no tiene una fecha concreta, hay que acabarla a lo largo de las próximas dos semanas. Por tanto, se moverá a la lista PROXIMO.
  • Viaje a Londres el 26 de Julio.
    • Por motivos de trabajo, hay que acudir a Londres para asistir a dos reuniones importantes, extraer información y aportar soluciones para los problemas que tienen los compañeros ingleses. Independientemente de lo que se registre en la AGENDA, esta tarea está compuesta de varias acciones:
      • Buscar vuelos.
      • Buscar hotel.
      • Concretar reuniones.
      • Elaborar puntos de la orden del día de cada reunión.
      • Preparar presentaciones.
      • Preparar documentación.
    • Por tanto, se creará un proyecto llamado "Reuniones Londres 26/07/2012"
  • Informar a Luis sobre el estado de su proyecto.
    • En el momento de procesar este recordatorio, Luis ya tenía esta información, por lo que ya no es necesario. Se mueve a PAPELERA.
La recopilación ha introducido en el mismo canasto cosas del trabajo y personales. Se puede añadir el contexto a cada acción para identificar qué hacer según el contexto en el que nos encontremos en un momento dado. Por ejemplo, si estamos ahora en casa, al revisar las próximas acciones a realizar, para identificar aquellas que podemos realizar en nuestro entorno, lo haremos mediante el contexto. Si queremos dedicar el tiempo disponible para realizar o devolver llamadas de teléfono, o si nos encontramos en un determinado lugar (ubicación), buscaremos por el contexto correspondiente.

Así pues, la lista de tareas quedan organizadas de la siguiente manera:
  • Sin acción:
    • Papelera (desechar)
      • Informar a Luis sobre el estado de su proyecto. [Oficina]
    • Algún día (incubadora)
      • Guía de lugares a visitar en Egipto. [Personal]
    • Consulta
      • Lista de precios para equipos informáticos. [Oficina]
      • Catálogo de muebles juveniles [Casa]
  • Acción:
    • En Espera
      • Reparación del coche. Talleres Xanadú. Delegado el 12/07/2012. Previsto para 14/07/2012 [Personal]
    • Agenda
      • Cita con el dentista. 27/07/2012 18:00h [Personal]
      • Reuniones Londres. 26/07/2012 [Oficina]
    • Próximo
      • Preparar informe de calidad de la semana. [Oficina]
      • Realizar propuesta de gráfica de realizado/previsión para el cuadro de mando. [Oficina]
    • Proyectos
      • Vacaciones 2012.
        • Catálogo y ofertas de hoteles y atracciones para Costa Dorada. [Personal]
      • Reuniones Londres 26/07/2012 [Oficina]
        • Buscar vuelos.
        • Buscar hotel.
        • Concretar reuniones.
        • Elaborar puntos de la orden del día de cada reunión.
        • Preparar presentaciones.
        • Preparar documentación.

Clasificación adicional

Adicionalmente, a la hora de clasificar las acciones, se podría añadir información adicional para abordar las acciones mediante criterios tales como:
  • Urgencia. Las tareas urgentes se superponen al resto, pues adquieren del foco de atención y exigen una finalización lo antes posible. Estas tareas deben permitir renegociar la demora del resto de tareas.
  • Prioridad. El criterio de prioridad dependerá de varios factores: importancia, nivel de energía, nivel de complejidad, etc. Este valor de criterio debería restringirse a: Alta, Media y Baja.
  • Tiempo estimado de ejecución. Cuando se van a ejecutar las acciones, puede ser interesante saber de antemano cuánto tiempo precisan para seleccionar o ajustar la tarea idónea respecto al tiempo disponible que tenemos.


Ver también
Artículo 1 | Introducción básica a GTD para empezar a mejorar nuestra productividad
Artículo 2 | Primer principio básico de GTD: la recopilación
Artículo 3 | La recopilación en la práctica
Artículo 4 | Herramientas
Artículo 5 | Segundo principio básico de GTD: el procesamiento
Artículo 6 | Tercer principio básico de GTD: la organización
Artículo 7 | GTD: Caso práctico
Artículo 8 | Cuarto principio básico de GTD: la revisión
Artículo 9 | Quinto principio básico de GTD: el hacer
Artículo 10 | Principios básicos de GTD: Conclusiones


Enlaces de interés:

Disponible Linux Mint 13 "Maya" XFCE

Acaba de ser lanzada la última versión de Linux Mint con escritorio XFCE. Esta distribución está basada en Ubuntu, y ocupa el primer lugar de la lista Distrowatch. El escritorio XFCE es un escritorio gráfico y funcional, más liviano que KDE y Gnome, lo que es idóneo para su uso en ordenadores antiguos o con pocos recursos.


Las características principales de Linux Mint 13 "Maya" XFCE son las siguientes:

  • Escritorio XFCE 4.10
  • Mejoras de arte
  • Motores de búsqueda
  • Applets mintMenu y MATE
  • Requisitos mínimos:
    • Procesador x86 (32 y 64 bits)
    • 384 MB RAM
    • 5 GB de disco duro para instalación
    • Tarjeta gráfica con resolución 800x600
    • CD ROM o puerto USB

Enlaces de interés:



jueves, 19 de julio de 2012

Tercer principio básico de GTD: la organización

El procesamiento nos da las claves para empezar a organizarnos con eficacia, gracias a las respuestas que hemos dado a las cosas que recopilamos. Estas respuestas nos ha dado dos grupos de posibilidades según su resultado: sin acción y con acción.

Cosas que no requieren acción

Desechar

Se eliminan aquellas cosas que no requieren una acción futura ni sirvan como material de consulta.

Incubadora

Aquellas cosas que no requieren de una acción inmediata, pero que pueden ser interesantes hacer en un futuro lejano, se almacenan en una lista llamada "Tal vez/Algún día". Algunos ejemplos podrían ser: 
  • Visitar el Museo del Prado
  • Aprender francés
  • Construir un estanque para las tortugas
  • Escanear fotos antiguas 
  • Ir a un concierto de música clásica
  • Visitar la bodega de un determinado vino
  • Probar determinado plato
  • Realizar un determinado curso

Consulta

Aquellas cosas que pueden ser útiles como información o como material de consulta en un futuro, se almacenan en una lista llamada "Consulta". Suelen ser documentos de cualquier tipo y sirven para determinados propósitos. Una buena organización de este material será fundamental y útil, en donde la búsqueda y el acceso sea rápido y sencillo. Es recomendable organizar la información:
  • por tema y área concretas: contratos, facturas, nóminas, catálogos, etc.
  • por archivos de consulta general, donde almacenar información concreta que no pertenece a una categoría predeterminada: manual de instrucciones, guía de viajes, artículo sobre algo interesante, etc.

Cosas que requieren acción

En Espera

Tras procesar si algo requiere acción por parte de terceros, guardamos en la lista "En Espera" un recordatorio con la siguiente información para llevar a cabo su seguimiento de forma eficiente:
  • Nombre de la persona o entidad a la que se ha delegado su ejecución
  • Fecha en que se ha delegado
  • Fecha prevista de finalización (si aplica)
  • Comentarios/Notas (si aplican)

Agenda

Si algo necesita de una acción para una determinada fecha (por ejemplo, la consulta del dentista, una reunión, una cena, etc.), se anota y se gestiona en el calendario. Ha de evitarse la lista de tareas diarias, y ceñirse únicamente a citas (fecha y hora concretos), acciones de un día concreto (sin hora) e información útil para un día concreto (recordatorios de llamadas, cumpleaños, información para alguien que regresa de vacaciones, etc)

Próximas acciones

En una lista "Próximo/Siguiente" se añaden los recordatorios de aquellas cosas que requieren de un acción próxima, a realizar en cuanto sea posible. Si se identifican acciones que se repiten mucho y a diario, pueden clasificarse en subcategorías, del tipo "Llamadas" o "Soporte".

Proyectos

Uno de los puntos clave de la organización se basa en la lista de proyectos, la cual es un índice simple de los proyectos en curso y por realizar. Dicha lista no requiere de una ordenación ni de una clasificación. A efectos de organización, se utiliza únicamente la lista de proyectos. La información, el material y las acciones de cada proyecto se almacenan y gestionan por separado, en un archivador dedicado.

Un proyecto es un conjunto de acciones próximas a corto/medio plazo, enfocadas a un mismo resultado. Puede decirse que un proyecto es una recopilación de hitos o metas que requieren de acción para alcanzar un objetivo común.

Por ejemplo, un proyecto llamado "Barbacoa", podría estar compuesto de las siguientes acciones:
  • Limpiar barbacoa.
  • Comprar comida y bebida.
  • Confirmar asistencias.
  • Asegurar tiempo metereológico.
  • Tener a punto la piscina para los niños.
  • Adecentar casa.
  • Cocinar comida.
Se van haciendo diferentes acciones hasta que se obtiene el resultado final. En ese momento puede decirse que el proyecto está hecho, independientemente de si se han hecho o no todas sus acciones.


Contextos

El contexto define el escenario en el que se define y se ejecutará la acción. El contexto es un método de clasificación opcional, no obligatorio, que ayudará a detallar la definición de la acción y a identificar qué acciones se pueden realizar en un momento y en un contexto determinados.

Los contextos más habituales son:
  • Oficina
  • Casa
  • Recados
  • Ordenador
  • Teléfono
  • Email
  • Ubicación (lugares habituales)


¿Se puede ampliar o mejorar esta organización?

En su libro "Organízate con eficacia", David Allen transmitió estas pautas iniciales de organización, las cuales dan unos resultados magníficos. Lo anteriormente expuesto puede concebirse como las mejores prácticas de organización, en un concepto general y válido para todo el mundo.

La organización, sin embargo, no es algo matemático y exacto, y a unos les puede funcionar mejor que a otros, según su escenario, su forma de pensar y de otros factores. Por ello, el mejor consejo es utilizar este método de organización y, cuando se vaya dominando su uso, identificar dónde se puede mejorar y cómo adaptarlo a nuestras necesidades.

Por ejemplo, puede ser muy útil tener un archivador, una carpeta o una caja, para depositar todo el material de referencia o de consulta actualmente en ejecución. Cada vez que se aborde un proyecto, o cualquier acción que requiera de información, se puede hacer uso de un repositorio llamado "En curso".

A mi, por ejemplo, me viene muy bien tener un repositorio de tipo "Histórico", en el cual deposito toda la información de mis proyectos y acciones acabados. Este archivo es un útil sistema para la gestión del conocimiento, una biblioteca donde puedo encontrar y consultar información para afrontar en el futuro proyectos similares, o para aprender y mejorar con las experiencias obtenidas. También lo puedo usar para almacenar información sobre acciones que han sido críticas y que en un futuro podría rescatar para, por ejemplo, justificar algo o para tener en cuenta en otro caso similar.

La organización es uno de los puntos más importantes de nuestro trabajo, pues es la estructura sobre la cual vamos a basar todas nuestras acciones de la manera más eficiente, ágil, sencilla y rápida que podamos. Por ello, no hemos de limitarnos a un sistema estático, si no que hemos de crear la estructura que mejor se adapte a nuestros objetivos de eficiencia y productividad. GTD nos ofrece una estructura estándar, probada y eficiente, pero podemos mejorar su organización adaptándola a nuestras necesidades reales.



Ver también
Artículo 1 | Introducción básica a GTD para empezar a mejorar nuestra productividad
Artículo 2 | Primer principio básico de GTD: la recopilación
Artículo 3 | La recopilación en la práctica
Artículo 4 | Herramientas
Artículo 5 | Segundo principio básico de GTD: el procesamiento
Artículo 6 | Tercer principio básico de GTD: la organización
Artículo 7 | GTD: Caso práctico
Artículo 8 | Cuarto principio básico de GTD: la revisión
Artículo 9 | Quinto principio básico de GTD: el hacer
Artículo 10 | Principios básicos de GTD: Conclusiones


Enlaces de interés:


martes, 17 de julio de 2012

Segundo principio básico de GTD: el procesamiento

Poco a poco, los canastos de recopilación se van llenando, liberando a nuestra mente de la energía y de la responsabilidad de tener que recordar qué hacer. Confiamos en el canasto como un lugar seguro, accesible y disponible donde podremos volver más tarde para recuperar todo  aquello que recopilamos.

En el momento en que recopilamos las cosas, éstas son imprecisas e incompletas, meros bocetos que captaron nuestra atención para su consideración. Más adelante, procesamos las cosas que hay en el canasto, recuperando cada cosa recopilada, tomando conciencia de qué es realmente, si requiere de alguna acción y decidir qué hacer en consecuencia.

El procesamiento no implica hacer las cosas, si no realizar un primer filtro para conocer qué hemos recopilado, si es realmente útil y prepararlo para su ejecución. El resultado final ha de ser, por una parte, vaciar el canasto para siguientes recopilaciones, y, por otra, tener claro qué tenemos y qué hacer con ello.

Por poner un símil, equivaldría a sacar del canasto la ropa depositada e ir haciendo montones dependiendo del tipo de ropa, descartando todo aquello que no sea ropa o delegando a la tintorería la ropa especial que no podamos lavar en nuestra lavadora.


Consejos preliminares

Para obtener la mayor eficiencia, es recomendable que el procesamiento:
  • sea ágil y rápido. Procesar cada cosa no debe llevarnos más que unos pocos segundos.
  • aplique la regla de "aquello que sale no vuelve a entrar". La cosa que estemos procesando ha de concluir. No podemos cambiar a otra cosa por el hecho de que sea muy compleja o no nos apetezca. Hemos de evitar la procrastinación.
  • tome y procese una a una cada cosa depositada en el canasto, desde la primera hasta la última, en ese estricto orden. Por mucho que nos llame la atención la cosa que hay en el fondo del canasto, debe esperar a que le llegue su turno.
  • termine con el canasto vacío. Una vez que se empieza no hemos de dejar nada sin procesar.
  • ha de realizar siempre que se pueda y que sea necesario. Es obvio pensar que si nuestro canasto tiene una o dos cosas, y sabemos que éstas son urgentes, será necesario procesar tan pronto como sea posible. Si el canasto se va llenando mucho y disponemos de un momento, podemos procesar el canasto en dicho momento. Estas pautas las decidiremos nosotros mismos.



¿Cómo se procesa?

El procesamiento es básicamente, un método para filtrar y preparar las cosas que hay en el canasto. Para llevar a cabo este filtro es preciso extraer una cosa cada vez del canasto, analizarla, conocerla y decidir qué hacer con ella, de forma sistemática. 

Como ya vimos anteriormente, las cosas que se guardan en el canasto son imprecisas e incompletas. El procesamiento permite, de un vistazo rápido, valorar qué se va a hacer con esas cosas. Esta valoración se obtiene llevando a cabo un flujo de preguntas que nos permitirán evaluar y decidir qué hacer a continuación.

¿Qué es?

A veces, saber qué es lo que hemos recopilado no es tan obvio. Hemos de tomarnos el tiempo suficiente para saber qué es exactamente esa cosa para llegar a valorar su importancia real y si requiere o no de alguna acción.

¿Necesita acción?

Si no necesita acción:
  • ¿Es posible que sea necesario actuar en un futuro?. Guardar en una lista "Algún día" para revisión (incubadora)
  • ¿Es posible que sirva como información útil o de referencia en un futuro?. Guardar en una lista "Consulta".
  • Se puede eliminar
Si necesita acción, preguntarse "¿cuál es la siguiente acción?". De su respuesta depende el éxito de nuestra organización:
  • ¿Se puede hacer en dos minutos (aproximadamente) o menos? ¡Hacerla inmediatamente! (Regla de los dos minutos). Si no se ejecuta en el momento, se tiende a acumular "infinitamente" estas microtareas, incitando a la procrastinación y a la desorganización. Ejecutándolas en el momento, además de avanzar se es más eficiente, y esa sensación motiva a organizarse mejor.
  • ¿Somos la persona adecuada para hacerlo? Si no es así, delegarlo a la persona correspondiente. Conviene registrar a quién se ha delegado y la fecha, para su seguimiento, y guardarlo en una lista "En espera"
  • Posponer la tarea guardándola en una lista "Próximo".


Ver también
Artículo 1 | Introducción básica a GTD para empezar a mejorar nuestra productividad
Artículo 2 | Primer principio básico de GTD: la recopilación
Artículo 3 | La recopilación en la práctica
Artículo 4 | Herramientas
Artículo 5 | Segundo principio básico de GTD: el procesamiento
Artículo 6 | Tercer principio básico de GTD: la organización
Artículo 7 | GTD: Caso práctico
Artículo 8 | Cuarto principio básico de GTD: la revisión
Artículo 9 | Quinto principio básico de GTD: el hacer
Artículo 10 | Principios básicos de GTD: Conclusiones


Enlaces de interés:


jueves, 12 de julio de 2012

GTD: Herramientas


Cuando David Allen concibió GTD, lo hizo como un método, el cual es independiente de las herramientas que se utilicen para llevarlo a cabo. En su libro "Organízate con eficacia", David Allen no expuso unas herramientas concretas, si no que exponía ejemplos con algunas herramientas comunes.

La herramienta más básica para utilizar GTD es un simple bloc de notas con un bolígrafo. Es un sistema que yo mismo he utilizado y que me ha funcionado muy bien.

Las herramientas físicas de oficina, tales como bandejas, archivadores, carpetas, etc., son de uso estándar y universales.

Las últimas tecnologías ponen a nuestra disposición herramientas que nos facilitan mucho la tarea, además de incrementar las posibilidades: mayor disponibilidad (en cualquier lugar y en cualquier momento), formatos estándar, sincronización entre dispositivos, integración con otras herramientas, etc.

¿Cuál es la mejor la mejor herramienta para trabajar en GTD? Dependerá del criterio y de los gustos de cada uno. Mi recomendación es probar cada herramienta para hacerse una idea hasta encontrar aquella que mejor se adapte a nuestra forma de trabajar y nos ofrezca los mejores resultados.

Desde hace algún tiempo utilizo mi smartphone para casi todo, ya que al estar conectado a Internet, puedo utilizar aplicaciones que utilizan la nube para transmitir y recuperar la información. La nube (cloud), básicamente es un concepto mediante el cual describimos la posibilidad de conectarnos a la información y consumir información de forma natural y sencilla. Por ejemplo, cualquier aparato necesita electricidad para funcionar. Aunque conozcamos los principios de la electricidad, de su generación, distribución y mantenimiento, estos conceptos son abstractos para nosotros a la hora de conectar nuestra tostadora al enchufe de la cocina. De modo similar, la nube nos ofrece conectarnos a servicios y a información de forma similar a un enchufe.

A la hora de buscar una herramienta para trabajar con GTD he filtrado mediante varios requisitos que creo fundamentales:
  • Sencillez
  • Funcionalidad
  • Disponible en varios dispositivos: smartphone, PC, etc.
  • Multiplataforma: Windows, iOS, Android...
  • Aplicación Web, a fin de estar disponible cualquier plataforma sin necesidad de instalar aplicaciones, solamente a través de un navegador Web
Tras haber probado muchas herramientas de alta tecnología, y después de un tiempo de experiencia, puedo recomendar tres: Wunderlist, Evernote y DoIt.


Wunderlist


Fortalezas: 

  • Muy fácil e intuitiva, idónea para empezar.
  • Permite la colaboración de listas y notas entre varias personas.
  • Interfaz personalizable (fondos, disposición...)
  • Buscador de tareas.
  • Programación de tareas mediante un calendario.
  • Visualización mediante vistas: todas, importantes, completadas, hoy, mañana, 7 siguientes días, más tarde y sin fecha.
  • Aviso de tareas atrasadas.
  • Campo comentario para la tarea.
  • Varios idiomas, incluído el español.
  • Está disponible para Mac, Windows, iPhone, iPad, Android y Blackberry. 
  • Versión Web para navegadores.

Debilidades:
  • No dispone de etiquetas
  • No dispone de contextos
  • Es un gestor genérico de notas y tareas. Hay que adaptar su uso a GTD.
  • No permite capturar y adjuntar URLs, documentos, imágenes, vídeos, notas de voz, ubicaciones (geolocalización por el GPS del teléfono)...

Enlace | Página oficial de Wunderlist



Evernote



Fortalezas: 
  • Permite compartir libretas (listas) con ciertas personas o hacerlas públicas.
  • Edición de texto enriquecido.
  • Permite capturar y adjuntar URLs, documentos, imágenes, vídeos, notas de voz, ubicaciones (geolocalización por el GPS del teléfono)...
  • Clasificación por etiquetas.
  • Buscador con posibilidad de restringir a una determinada libreta.
  • Varias opciones de ordenación de las notas en la libreta.
  • Papelera
  • Plugins con funcionalidades complementarias y avanzadas para navegador: capturar Webs, fragmentos, dibujos y anotaciones, etc.
  • Campo comentario para la tarea.
  • Posibilidad de capturar tareas mediante una cuenta de correo de la herramienta
  • Varios idiomas, incluído el español.
  • Está disponible para Mac, Windows, iPhone, iPad, Android y Blackberry. 
  • Versión Web para navegadores.

Debilidades:
  • Es un gestor de notas. Hay que adaptar su uso a GTD.
  • No tiene concepto de tareas. No es posible programar un calendario, conocer qué tareas hay hoy o esta semana.
  • La interfaz no es personalizable.

Enlace | Página oficial de Evernote


DoIt


 
Fortalezas: 
  • Interfaz sencilla e intuitiva.
  • Completamente concebido para GTD .
  • Clasificación por listas de atención en el tiempo (Hoy, Mañana, Próximo, Agenda, Algún día, A la Espera), Contextos y Proyectos.
  • Contextos y Proyectos personalizables.
  • Definición de etiquetas por tarea.
  • Definición de prioridad por tarea.
  • Permite añadir diferentes comentarios a cada tarea.
  • Posibilidad de definir Inicio y Fin de la tarea, en términos de fecha y hora.
  • Definición de tareas repetitivas.
  • Notificación de tareas a través de nuestra propia cuenta de correo.
  • Sincronización de tareas agendadas en Google Calendar.
  • Visualización de tareas por agrupación: Asignación, Contexto, Proyecto, Fecha de inicio, Fecha Fin, Prioridad.
  • Buscador.
  • Opciones de configuración y personalización.
  • Posibilidad de capturar tareas mediante una cuenta de correo de la herramienta.
  • Está disponible para iPhone, iPad y Android. 
  • Versión Web para navegadores.

Debilidades:
  • No está disponible en españo.
  •  Las listas están limitadas a las estándar de GTD.
  • No permite capturar y adjuntar URLs, documentos, imágenes, vídeos, notas de voz, ubicaciones (geolocalización por el GPS del teléfono)...
  • La interfaz no es personalizable.

Enlace | Página Oficial de DoIt




Ver también
Artículo 1 | Introducción básica a GTD para empezar a mejorar nuestra productividad
Artículo 2 | Primer principio básico de GTD: la recopilación
Artículo 3 | La recopilación en la práctica
Artículo 4 | Herramientas
Artículo 5 | Segundo principio básico de GTD: el procesamiento
Artículo 6 | Tercer principio básico de GTD: la organización
Artículo 7 | GTD: Caso práctico
Artículo 8 | Cuarto principio básico de GTD: la revisión
Artículo 9 | Quinto principio básico de GTD: el hacer
Artículo 10 | Principios básicos de GTD: Conclusiones


Enlaces de interés:


martes, 10 de julio de 2012

GTD: La recopilación en la práctica

Claves para la recopilación

 Para que la recopilación sea eficaz es imprescindible:
  • Todas las cosas han de estar siempre en el canasto: fuera de la cabeza
  • Tener el mínimo de canastos de recopilación necesarios
  • Vaciar los canastos regularmente
La clave de la recopilación es RECOPILAR EN EL MOMENTO EN QUE SURGE ALGO. No hemos de confiar en nuestra memoria, ni postergar la recopilación para otro momento (dentro de un rato, de unos minutos o cuando acabe la tarea en curso). ¿Cuántas veces nos ha pasado que, estando  embarcados en una tarea, surge una cosa que recopilar, y con la confianza de que la tarea en curso está a punto de acabar lo haremos inmediatamente después, cuando llega ese momento se nos ha olvidado qué cosa debíamos recopilar?


El sentido de la recopilación es hacerlo siempre en el mismo momento en que surge algo. Hemos de adquirir este hábito, o de lo contrario, la recopilación será ineficiente.

NOTA: Para la recopilación utilizo el término "cosa" o "algo", pues en el momento de la recopilación todo lo que surge no tiene una forma concreta. No sabemos aún si será una tarea, un proyecto, un dato o una información de consulta.


¿Cómo se recopila?

Para que la recopilación funcione, hemos de tener siempre a mano nuestro canasto o cesto de recopilación. Si estamos en la oficina, una bandeja de entrada típica nos permitirá volcar notas, facturas, pedidos, catálogos, objetos, etc.

Llevar siempre encima una libreta nos permitirá anotar una idea, una llamada, un recordatorio, un dato de una reunión o cualquier otra cosa. Más tarde, al llegar a la mesa, las notas se arrancan de la libreta y se meten en la bandeja.

Desde hace algún tiempo, utilizo alta tecnología para recopilar mis cosas, confiando mi memoria a aplicaciones en la nube, las cuales me permiten acceso y operatividad desde cualquier lugar, desde cualquier dispositivo y desde cualquier plataforma. Mi smartphone me acompaña a todas partes, aunque a menudo llevo mi libreta para imprevistos: me quedo sin batería, pierdo conexión de datos, tomo notas hablando por el teléfono...

Ya sea en una reunión, en un autobús, en un avión, tomando un café, andando por la calle, trabajando en mi mesa en la oficina, viendo la tele, comiendo, preparando una barbacoa... en cualquier momento y en cualquier lugar, puede suceder que me interrumpan para pedirme algo, se me ocurre alguna idea, me acuerdo de alguna tarea casera, me surge algún imprevisto que requiera de una acción... cualquier cosa. En ese momento saco mi smartphone y lanzo mi aplicación para añadir ese algo en la bandeja de entrada (inbox o canasto). La saco inmediatamente de la cabeza, la deposito en el canasto y continúo con lo que estaba haciendo, sin preocuparme, ni acordarme ni molestarme en pensar en esa cosa. Sólo me preocupo y me ocupo de lo que estaba haciendo en ese momento.

En mi mesa de trabajo me es más cómodo tener el navegador web abierto con la aplicación en una pestaña. El teclado de mi ordenador me es más cómodo y rápido, y el tiempo de interrupción se reduce notablemente.


¿Qué recopilar?

Básicamente, recopilamos cualquier cosa que requiera atención por nuestra parte, delegando dicha atención para un momento posterior al actual.

Lo más habitual y práctico es recopilar una nota o un recordatorio que haga referencia a dicha cosa. Esta nota ha de ser breve para invertir el menor tiempo posible en la recopilación, y evitar interrupciones dilatadas de las tareas en curso. Asimismo, además de breve, la nota ha de ser concisa para que no dé lugar a dudas, incoherencias o lagunas de memoria en su recuperación.

Además de las notas, pueden recopilarse documentos que necesiten una atención determinada, como una factura (para pagar), un pedido (para procesar y servir), un catálogo (para revisar y decidir una compra), una receta médica (para tener que pasar por la farmacia y comprarla), una tarjeta de visita (para actualizar la agenda de contactos o para hacer una llamada), etc.

A veces, también se recopilarán objetos físicos para realizar alguna acción. Por ejemplo, unas llaves nos pueden indicar que hemos de ir a casa de nuestro hermano para regar las plantas; una lata vacía nos indicará que hemos de comprar la comida para el perro...

Afortunadamente, la mayor parte de documentos se pueden digitalizar en diferentes formatos y recopilarse en el canasto. Un ejemplo: paseo por la calle y veo en un jardín un hermoso árbol, el cual podría ser interesante tener uno igual en casa. En ese momento, puedo hacer una foto con mi smartphone y añadir dicha foto a mi canasto con la nota: "Arbol para casa. Consultar con esposa y buscar precios".

Gracias a las nuevas tecnologías, podemos recopilar fotografías, vídeos, URLs (enlaces a direcciones web), contenidos ricos (multimedia, texto enriquecido...), documentos de texto, hojas de cálculo, etc.


¿Cosas de casa, de trabajo, de ocio...?

Una pregunta muy común es si usar el mismo canasto para guardar las cosas de casa o del trabajo, o usar un canasto diferente.La recopilación es una tarea espontánea. No puedes predecir ni cuándo ni dónde ni el qué. Por tanto, la recomendación es guardar las cosas en el canasto que tengamos a mano en ese momento.

¿Cuántas veces no nos ha surgido algo casero en el trabajo (por ejemplo, una llamada de la esposa para algún asunto del colegio de los niños, de un pago no previsto, de una notificación del Ayuntamiento, etc)? ¿Cuántas veces no nos ha surgido algo del trabajo estando en casa (por ejemplo,  una llamada urgente de un compañero para cierto problema, o una idea para resolver cierto asunto o mejorar un informe o presentación)?

¿Tenemos en casa un cesto para la ropa blanca, otro para la ropa de color, y otro para la ropa delicada? No. Guardamos todo en el mismo cesto, sin preocuparnos del tipo de ropa. Más adelante, cuando vayamos a hacer la colada, seleccionaremos la ropa que se va a lavar.

De la misma manera, cuando se procese el canasto, clasificaremos el contexto de las cosas y trabajaremos con ellas. Gracias a la tecnología, siempre llevaremos el mismo canasto a todas partes, lo que hace más sencillo y eficiente su gestión.



Ver también
Artículo 1 | Introducción básica a GTD para empezar a mejorar nuestra productividad
Artículo 2 | Primer principio básico de GTD: la recopilación
Artículo 3 | La recopilación en la práctica
Artículo 4 | Herramientas
Artículo 5 | Segundo principio básico de GTD: el procesamiento
Artículo 6 | Tercer principio básico de GTD: la organización
Artículo 7 | GTD: Caso práctico
Artículo 8 | Cuarto principio básico de GTD: la revisión
Artículo 9 | Quinto principio básico de GTD: el hacer
Artículo 10 | Principios básicos de GTD: Conclusiones


Enlaces de interés:


Primeros pasos en MongoDB

Introducción
MongoDB es una base de datos opensource que está teniendo mucha aceptación por las prestaciones que ofrece en entorno Web 2.0, aunque puede ser utilizada en cualquier tipo de situaciones. MongoDB acerca el sistema de almacenamiento y gestión de datos tipo clave/valor, puliendo la diferencia con respecto a los sistemas de bases de datos relacionales. Este sistema permite una tremenda rapidez y escalabilidad, frente a la funcionalidad de los sistemas de bases de datos tradicionales.

Las principales características de MongoDB son las siguientes:
- Software abierto
- Escalable
- Alto rendimiento
- Alta disponibilidad (puede trabajar en modo maestro-esclavo)
- Orientado a documentos (no es relacional)
- Simplicidad basada en esquemas de tipo JSON
- Consultas dinámicas
- Completo soporte de índices, incluyendo índices secundarios, objetos internos, arrays (cadenas) embebidos, geospacial
- Rápido, actualizaciones in situ.
- Perfilado de consultas
- Almacenamiento eficiente de datos binarios en objetos largos, tales como vídeos o fotografías
- Replicación y soporte a prueba de fallos
- Auto fragmentación para escalabilidad a nivel de nube.
- Agregación compleja mediante MapReduce
- Acceso y gestión mediante drivers en multitud de lenguajes de programación: C, C++, C#, .NET, Java, JavaScript, PHP, Phyton, Ruby, Perl, etc.
- Soporte, formación y consultoría.

En este artículo (que espero sea el primero de muchos), se realiza una pequeña introducción a MongoDB.

Orientación a documentos
La información en MongoDB no se almacena en tablas (con sus correspondiente filas y columnas), si no en colecciones (estructuradas o no) cuyos datos forman parejas de clave y valor. Estos datos se almacenan con un estilo JSON, en formato binario llamado BSON. Un ejemplo de este estilo se puede apreciar en el siguiente documento:

{ nombre: ‘Rafael’,
apellidos: ‘Hernamperez Martin’,
fechaingreso: Date(’03-22-2010’),
seleccion: [‘Aprenda MongoDB’,’Flex 4 en una semana’,’AJAX para Dummies’],
comentarios: [{autor: ‘adan3000’, comentario: ‘Buena eleccion’},
{autor: ‘majopero’, comentario: ‘Te has pasado’, puntuacion:5}
]
}


Una colección sería similar a una tabla, y un documento sería similar a una fila. Habría que distinguir claramente, pues la colección puede tener documentos con estructura similar pero no igual (algunos documentos podrían tener más o menos claves). Asimismo, una única clave podría tener una colección de valores (array o cadena, como en el caso de la clave “seleccion"), o bien podría ser también una sub-colección con sus respectivos documentos (como en el caso de la clave “comentarios”).

La sintaxis en formato JSON es muy fácil de entender, eliminando los problemas de errores que pueden ocurrir en el formato XML (ambos son muy sinérgicos), además de reducir el tamaño de la información a transportar.

Este formato es utilizado no sólo para entenderlos, sino también para gestionarlos y realizar consultas en sus campos internos. Por ejemplo:

db.compras.find({'nombre':'Rafael'})

Nota: si falla, probar con comillas dobles

Esta consulta localizaría todos los documentos dentro de la colección “compras” cuya clave “nombre” tenga el valor “Rafael”.

Otro ejemplo:

db.compras.find({'comentarios.autor':'adan3000'})

Esta consulta localizaría todos los documentos dentro de la colección “compras” cuyo comentario haya sido realizado por el “autor” llamado “adan3000”.


Instalación
Para nuestros propósitos utilizaremos Windows como plataforma de operaciones. También puede instalarse en sistemas operativos OS X, Linux y Solaris (ver instrucciones en http://www.mongodb.org/display/DOCS/Quickstart)

En primer lugar hay que crear la siguiente ruta de directorio: “c:\data\db”. Esta ruta es la ruta por defecto para los archivos de bases de datos.

A continuación descargar el archivo zip (ocupa apenas 13MB) de la siguiente URL:
http://www.mongodb.org/display/DOCS/Downloads
y descomprimirlo en la ruta que deseemos (por ejemplo en C:\ donde creará un subdirectorio llamado “mongodb-winxx-xxxx”).


Arrancar un servidor MongoDB
MongoDB se ejecuta principalmente en su consola. Para ello se accede al modo consola DOS de Windows (pulsar AltGr+R, escribir “cmd” (sin las comillas) y Aceptar).

Acceder al directorio “bin” de donde se descomprimió el fichero zip (ejemplo):

cd c:\mongodb-win32-i386-1.2.4\bin

Ahora, para lanza MongoDB por defecto, ejecutar el ejecutable:

mongod

Con esto, MongoDB accederá a las bases de datos almacenadas en el directorio
c:\data\db y usando el puerto 27017. Si se desea cambiar el directorio de ficheros de bases de datos o el puerto, usar los siguientes parámetros:

mongod --dbpath [rutadirectorio] --port [puerto]

Si acaso saltase el cortafuegos, desbloquear el acceso para poder usarlo.

Para parar la base de datos, pulsar Ctrl+C. Con ello, MongoDB esperará hasta que todas las operaciones se hayan completado, guardando las últimas transacciones y cerrando los ficheros.

Existen otros parámetros que pueden ser usados por el motor de MongoDB:
-h (--help): Muestra información sobre los parámetros permitidos
--logpath rutafichero: Especifica fichero de log
--logappend: añade al log, en lugar de sobreescribirlo
--cpu: log periódico de la CPU y de los tiempos de entrada/salida
--fork: ejecución como demonio
--auth: Activa la seguridad
--noauth: Desactiva la seguridad (por defecto)
--nohttpinterface: Desactiva la interfaz http (localhost:27018)
--master: Designa este servidor como maestro (entorno de alta disponibilidad)
--slave: Designa este servidor como esclavo (entorno de alta disponibilidad)
--autoresync: Resincronización automática del servidor esclavo.
--source servidor:puerto: Para un servidor esclavo especifica dónde está el servidor maestro para la replicación

Una forma sencilla de arrancar el servidor MongoDB sin repetir los parámetros, es añadiendo éstos a un fichero de configuración. El formato del fichero sería el siguiente:

#comentario
parametro1 = valor1
parametro2 = valor 2


Para lanzar el servidor usando este fichero, ejecutar:

mongod –config ficheroconfiguración
mongod –f ficheroconfiguración


Consola de MongoDB
Una vez arrancado el servidor, podemos utilizar la consola de MongoDB para interactuar con las bases de datos. Para ello, acceder al modo consola DOS de Windows (pulsar AltGr+R, escribir “cmd” (sin las comillas) y Aceptar).

Acceder al directorio “bin” de donde se descomprimió el fichero zip (ejemplo):

cd c:\mongodb-win32-i386-1.2.4\bin

Ahora, lanzar la consola de MongoDB:

mongo

(nótese que no tiene la "d" final).

En esta nueva consola, nos permitirá escribir los comandos necesarios para interactuar con el servidor (mongod), de tal forma que podamos gestionar documentos y estructuras o acceder a la información (entre muchas acciones). Cada comando ha de estar acompañado por un “Enter” para su ejecución.

Por defecto se conecta a una base de datos llamada “test” (por defecto).

Para mostrar la base de datos en uso:
db

Para autentificar un usuario (sólo cuando se ejecuta el servidor en modo seguridad):
db.auth(usuario,contraseña)

Para salir de la consola MongoDB, escribir el comando
exit

Para conseguir ayuda sobre los comandos disponibles, escribir el comando
help

Para mostrar las bases de datos disponibles:
show dbs

Para mostrar las colecciones de la base de datos actual:
show collections

Para mostrar los usuarios de la base de datos actual:
show users

Para utilizar una base de datos:
use nombrebasedatos

Para mostrar ayuda sobre los métodos de base de datos:
db.help()

Para mostrar ayuda sobre los métodos para la colección foo:
db.foo.help()

Para mostrar los objetos en una colección foo:
db.foo.find()

Referencias
Sitio oficial de MongoDB: http://www.mongodb.org


Safe Creative #1003225810323

Conceptos básicos de MongoDB

Filosofía de almacenamiento en MongoDB

La filosofía de las bases de datos NOSQL suele ser chocante para todos los que llevan años trabajando en bases de datos relacionales. El no tener el concepto de una tabla, o de una integridad referencial con su relación de clave maestra a clave foránea, se hace difícil imaginar cómo puede funcionar y cómo pueden relacionarse y entenderse los datos.

MongoDB tiene el concepto de la información almacenada como clave/valor. Estos pares se almacenan en forma de documento u objeto dentro de una colección. Podemos imaginar un símil entre clave/valor como campo/valor, entre un objeto o documento y una fila, y entre colección y tabla. Este concepto puede ayudar a entender un poco mejor este sistema, pero no hay que olvidar que es un símil, no una equiparación.

Un documento u objeto (los dos términos se refieren a lo mismo), aunque se asemeje a una fila, en realidad no tiene nada que ver, pues en una base de datos relacional, cada fila tiene una organización estructurada común entre todas las filas. En MongoDB, cada fila puede tener su propia estructura, tener más o menos campos, e incluso tener campos que en sí mismos son arrays (contener varios valores) o incluso contener otro documento como valor, o incluso un array de documentos. Esto, entendido bien, nos puede dar una idea de la potencia que ello implica, pues es posible tener en un mismo objeto, de manera incrustada, otros objetos, sin necesidad de implicar a la base de datos en varias tablas, definir claves y relacionar dichas claves. Por ejemplo, imaginemos la clásica relación “Categoría” y “Producto”. En un sistema de base de datos tradicional, se definirían dos tablas:

Tabla categoría:
- idcategoria: integer: PRIMARY KEY
- nombrecategoria: char(30)

Tabla producto:
- idproducto: integer: PRIMARY KEY
- nombreproducto: char(30)
- idcategoria: integer

Internamente, el gestor de base de datos debe estar constantemente velando para que los datos clave sean únicos, no nulos y que no violan las reglas de integridad referencial, realizando complejas operaciones de índices y actualización de éstos. Estas operaciones son transparentes para los usuarios y desarrolladores. Es cómodo, pero sobrecargan los tiempos de CPU y penalizan otras operaciones que pueden ser más importantes.

En una base de datos MongoDB se requeriría únicamente una colección de objetos, cada uno de los cuales puede tener una estructura propia (no tiene por qué ser la misma).

{producto: “Perdiz escabechada”, categoria:[“carne”,”conserva”]}
{producto:”Naranja”, categoria:”fruta”]}
{producto:”Sal”}


De este simple ejemplo se pueden extraer algunas reflexiones:
- El almacenamiento físico gana mucho, al no estar supeditada a una estructura fija y definida. Se pueden omitir claves (campos) si se desea, y los campos de texto ocupan sólo el número de caracteres que contiene, no un tamaño fijo.
- Se prescinde de campos id, que dificultan el entendimiento de los datos.
- Se centraliza todo en una única colección, y no añade la dificultad de las relaciones.
- Un producto puede no estar asociado a una categoría, o bien estar asociado a varias categorías. En este último caso, en una base de datos relacional, requeriría de una tercera tabla intermedia con la colección de relaciones, y el trabajo extra en el código para reconstruir las mismas.
- Si bien el control de la redundancia en las categorías es un esfuerzo por parte del código, en el caso de una base de datos relacional, también habría que hacer un esfuerzo en código cuando se determina si hay redundancia por los errores que emite la base de datos (clave duplicada, infracción de integridad…).
- El modo de almacenamiento es más natural para la máquina y para el humano, pues toda la información está en el mismo documento, en lugar de repartido. Esto evita al código repartir la información (al guardar) y de reunirla (al acceder).
- En un modelo relacional, utilizar id’s reduce el espacio de almacenamiento en tablas extensas (ocupa mucho menos un número que un texto), pero complica el desarrollo y el acceso. MongoDB reduce y optimiza espacio de almacenamiento en los campos de texto, supliendo este espacio e incluso mejorándolo. Asimismo, el código para guardar o acceder a la información es mucho más simple (no hay que realizar relaciones (los típicos join o el uso de varias consultas a varias tablas) ni realizar varias actualizaciones por cada una de las tablas involucradas).

Otro ejemplo de almacenamiento en un documento u objeto sería el siguiente:
{ nombre: ‘Rafael’,
apellidos: ‘Hernamperez Martin’,
fechaingreso: Date(’03-22-2010’),
seleccion: [‘Aprenda MongoDB’,’Flex 4 en una semana’,’AJAX para Dummies’],
comentarios: [{autor: ‘adan3000’, comentario: ‘Buena eleccion’},
{autor: ‘majopero’, comentario: ‘Te has pasado’, puntuacion:5}
]
}


La clave “comentarios” es un array de documentos. Un documento puede contener, asimismo, documentos asociados a una clave. Es lógico suponer que el nivel de anidamiento puede ser tan profundo como uno desee.

El formato de datos utilizado por MongoDB es JSON, una especificación estándar para representar la información. Es similar a la de XML, pero reduce el contenido a expresar y haciendo más legible y natural la interpretación de la información. El último documento en formato XML sería el siguiente:
<documento>
  <nombre>Rafael</nombre>
  <apellidos>Hernamperez Martin</apellidos>
  <fechaingreso>03-22-2010</fechaingreso>
  <seleccion>
    <titulo>Aprenda MongoDB</titulo>
    <titulo>Flex 4 en una semana</titulo>
    <titulo>AJAX para Dummies</titulo>
  </seleccion>
  <comentarios>
    <comment autor=”adan3000” comentario=”Buena elección”/>
    <comment autor=”majopero” comentario=”Te has pasado” puntuación=”5”/>
  </comentarios>
</documento>


Alguno se estará preguntando cómo mantener la consistencia de los datos en las aplicaciones. Por ejemplo, en una aplicación es conveniente evitar al usuario teclear la categoría, pudiendo seleccionar una ya predeterminada en una lista para asegurar que sea unívoca y que no haya multitud de referencias a un mismo valor que esté redundante porque se diferencia en una letra o está mal escrito. Se puede crear una colección de categorías, en un formato muy similar al de una tabla (usando documentos con una única clave), y usar ésta como se haría normalmente, o incluso añadir un documento en nuestra colección cuya clave sea un array de valores posibles. Aunque su estructura no tenga nada que ver con el resto de documentos almacenados en la misma. Se accede a dicho documento dentro de la colección y se extraen los posibles valores. La primera opción es más sencilla y legible. La última es más óptima en cuanto almacenamiento y gestión por parte del motor de base de datos (trabaja en la misma colección y comparte los mismos ficheros). Otra solución intermedia, y a la vez elegante, sería definir una colección exclusiva para almacenar documentos que contengan series de datos maestros (categorías, tipos, etc.)

Otra de las ventajas de utilizar este sistema de información, es que no tienes tantas limitaciones a la hora de escalar la información si los requisitos cambian (cosa que ocurre, pues nadie conoce el futuro). En bases de datos relacionales, añadir nuevos campos a una tabla, o una nueva tabla relacionada o maestra y normalizar una base de datos que lleva ya tiempo en producción, es cuanto menos un engorro y un agujero de problemas.

Una vez se entienden estos sencillos conceptos, el adaptar nuestros desarrollos a este tipo de bases de datos es sencillo, e incluso nos beneficiaremos de una mayor legilibilidad y rapidez.


Paso a paso
El movimiento se demuestra andando, y para aprender a caminar en MongoDB procederemos a realizar, paso a paso, un ejemplo práctico. El propósito del mismo es tener una colección de datos personales llamada “agenda”, dentro de una base de datos llamada “ejemplo”. En el ejemplo se verá cómo crear la base de datos, la colección y los datos, y a continuación se verá como realizar consultas a dichos datos.

Arranque del servidor y de la consola MongoDB

Primeramente, arrancar el servidor de MongoDB desde una consola DOS (para Linux, los pasos son muy similares):

cd c:\mongodb-win32-i386-1.2.4\bin
mongod


A continuación, arrancar la consola de MongoDB (dbShell) en otra consola DOS:

cd c:\mongodb-win32-i386-1.2.4\bin
mongo



Creación de la base de datos y de la colección

Aunque no se haya creado aún la base de datos, utilizar ésta (asumirá que se va a utilizar para ser creada):

> use ejemplo
switched to db ejemplo


A continuación crear un objeto que contendrá un documento, el cual se insertará en la colección “agenda” (aún no creada):

> doc = {nombre: "Rafael", apellido1: "Gonzalez", apellido2: "Martin", telefono: "912406790"}

{
"nombre" : "Rafael",
"apellido1" : "Gonzalez",
"apellido2" : "Martin",
"telefono" : "912406790"
}


El siguiente paso es añadir este objeto (documento) a la colección “agenda”:

> db.agenda.save(doc)

Se puede abreviar el proceso en un solo paso, creando directamente el objeto:

> db.agenda.save({nombre: "Rafael", apellido1: "Gonzalez", apellido2: "Martin", telefono: "912406790"})

Esto equivaldría a la sentencia SQL:

INSERT INTO agenda (nombre, apellido1, apellido2, telefono) VALUES (‘Rafael’, ‘Gonzalez’, ‘Martin’, ‘912406790’)

Automáticamente, MongoDB crea los objetos por asunción. De esta manera, crea la base de datos “ejemplo”, y dentro de ésta crea la colección “agenda”, y dentro de ésta crea y agrega el documento “doc”.


Verificaciones

Para verificar todo lo anterior primero comprobaremos qué base de datos está en uso:

> db
ejemplo


A continuación, listaremos las bases de datos creadas con MongoDB:

> show dbs

admin
ejemplo
local
test


Las bases de datos “admin”, “local” y “test” son las bases de datos que por defecto tiene MongoDB.

La siguiente verificación será comprobar qué colecciones disponemos en la base de datos en uso (“ejemplo”):

> show collections
agenda
system.indexes


La colección “system.indexes” es creada y mantenida de forma automática por MongoDB para el control y gestión de los índices de las colecciones.

Para visualizar solamente las colecciones no internas de MongoDB, se puede usar el siguiente comando:

> db.getCollectionNames()
[ "agenda", "system.indexes" ]


Para conocer a qué base de datos pertenece una determinada colección:

> db.agenda.getDB()
ejemplo


Para conocer qué comandos se puede usar para tratar la colección:

> db.agenda.help()


Consultas a los datos

Para visualizar todos los objetos (documentos) de la colección:

> db.agenda.find()
{ "_id" : ObjectId("4ba8a3be5b3d00000000710f"), "nombre" : "Rafael", "apellido1" : "Gonzalez", "apellido2" : "Martin", "telefono" : "912406790" }


Automáticamente, MongoDB asigna un ID único a cada objeto de la colección (clave “_id”).

Vamos a añadir más documentos a la colección:

db.agenda.save({nombre:"Carlos",apellido1:"Sanchez",apellido2:"Sanchez",telefono:"91240890012",email:"carlosss@hotmail.com"}) db.agenda.save({nombre:"Javier",apellido1:"Cristobal",apellido2:"Nombela",telefono:"925407561",email:"javichuc@yahoo.es"})
db.agenda.save({nombre:"Yolanda",apellido1:"Ballesteros",apellido2:"Lopez",telefono:"925406902"})
db.agenda.save({nombre:"Antonio",apellido1:"Blazquez",apellido2:"Fernandez",telefono:"937607812"})
db.agenda.save({nombre:"Jose Miguel", apellido1:"Carvajal", apellido2:"Gomez", telefono:"983679103", email:"picachu234@gmx.com"})
db.agenda.save({nombre:"Juan Carlos", apellido1:"Blazquez", apellido2:"Gil", telefono:"925403789"})


Lista de todos los objetos de la colección:

> db.agenda.find()
{ "_id" : ObjectId("4ba8a3be5b3d00000000710f"), "nombre" : "Rafael", "apellido1" : "Gonzalez", "apellido2" : "Martin", "telefono" : "912406790" }
{ "_id" : ObjectId("4ba8aac55b3d000000007110"), "nombre" : "Carlos", "apellido1" : "Sanchez", "apellido2" : "Sanchez", "telefono" : "91240890012", "email" : "carlosss@hotmail.com" }
{ "_id" : ObjectId("4ba8ab435b3d000000007111"), "nombre" : "Javier", "apellido1" : "Cristobal", "apellido2" : "Nombela", "telefono" : "925407561", "email" : "javichuc@yahoo.es" }
{ "_id" : ObjectId("4ba8ac3f5b3d000000007112"), "nombre" : "Yolanda", "apellido1" : "Ballesteros", "apellido2" : "Lopez", "telefono" : "925406902" }
{ "_id" : ObjectId("4ba8ac865b3d000000007113"), "nombre" : "Antonio", "apellido1" : "Blazquez", "apellido2" : "Fernandez", "telefono" : "937607812" }
{ "_id" : ObjectId("4ba8acde5b3d000000007114"), "nombre" : "Jose Miguel", "apellido1" : "Carvajal", "apellido2" : "Gomez", "telefono" : "983679103", "email" : "picachu234@gmx.com" }
{ "_id" : ObjectId("4ba8af123433000000003118"), "nombre" : "Juan Carlos", "apellido1" : "Blazquez", "apellido2" : "Gil", "telefono" : "925403789" }


Esto equivaldría a la sentencia SQL:

SELECT * FROM agenda

Cuando la colección contiene múltiples objetos será necesario introducir criterios en la búsqueda. El comando “find” permite pasar como parámetros dichos criterios (en formato JSON), los cuales recogen el par (clave/valor) a encontrar. El siguiente comando localiza todos los objetos en cuyo primer apellido sea “Blazquez”:

> db.agenda.find({"apellido1":"Blazquez"})
{ "_id" : ObjectId("4ba8ac865b3d000000007113"), "nombre" : "Antonio", "apellido1" : "Blazquez", "apellido2" : "Fernandez", "telefono" : "937607812" }
{ "_id" : ObjectId("4ba8af123433000000003118"), "nombre" : "Juan Carlos", "apellido1" : "Blazquez", "apellido2" : "Gil", "telefono" : "925403789" }


Lo anterior equivaldría a la sentencia SQL:

SELECT * FROM agenda WHERE apellido1=”Blazquez”

Mediante el siguiente comando sabremos cuántos objetos tiene la colección:

> db.agenda.count()

En un conjunto de datos, para limitar el número de objetos retornados, se especificaría añadiendo el comando limit():

> db.agenda.find().limit(3)
{ "_id" : ObjectId("4ba8a3be5b3d00000000710f"), "nombre" : "Rafael", "apellido1" : "Gonzalez", "apellido2" : "Martin", "telefono" : "912406790" }
{ "_id" : ObjectId("4ba8aac55b3d000000007110"), "nombre" : "Carlos", "apellido1" : "Sanchez", "apellido2" : "Sanchez", "telefono" : "91240890012", "email" : "carlosss@hotmail.com" }
{ "_id" : ObjectId("4ba8ab435b3d000000007111"), "nombre" : "Javier", "apellido1" : "Cristobal", "apellido2" : "Nombela", "telefono" : "925407561", "email" : "javichuc@yahoo.es" }


El comando count() también se puede añadir a find() para saber cuántos objetos ha retornado:

> db.agenda.find({apellido1:"Blazquez"}).count()
2


En el caso de querer visualizar solamente el primero de un conjunto de datos retornados, se usaría el comando findOne():

> db.agenda.findOne({apellido1:"Blazquez"})
{
"_id" : ObjectId("4ba8ac865b3d000000007113"),
"nombre" : "Antonio",
"apellido1" : "Blazquez",
"apellido2" : "Fernandez",
"telefono" : "937607812"
}


Para especificar más criterios, éstos se separan por comas:

> db.agenda.find({"apellido1":"Blazquez","nombre":"Antonio"})
{ "_id" : ObjectId("4ba8ac865b3d000000007113"), "nombre" : "Antonio", "apellido1" : "Blazquez", "apellido2" : "Fernandez", "telefono" : "937607812" }


Su equivalente en SQL sería el siguiente:

SELECT * FROM agenda WHERE apellido1=”Blazquez” AND nombre=”Antonio”

El comando find() retorna realmente un cursor, el cual puede ser utilizado para un acceso más controlado. El siguiente ejemplo se declara una variable que recoge el cursor del comando find(), situándose antes del primer registro. A continuación se declara un bucle while que se repetirá mientras el cursor tenga elementos o no alcance el final (hasNext()). En este bucle se imprimirá, en formato JSON, el objeto actual sobre el cual está situado el cursor. Mediante el comando next(), el cursor avanzará al siguiente objeto.

> var cursor = db.agenda.find()
> while (cursor.hasNext()) { print(tojson(cursor.next())); }
{
"_id" : ObjectId("4ba8a3be5b3d00000000710f"),
"nombre" : "Rafael",
"apellido1" : "Gonzalez",
"apellido2" : "Martin",
"telefono" : "912406790"
}


El siguiente ejemplo, recoge el cursor y accede directamente al tercer objeto del mismo:

> var cursor=db.agenda.find()
> print(tojson(cursor[3]))
{
"_id" : ObjectId("4ba8ac3f5b3d000000007112"),
"nombre" : "Yolanda",
"apellido1" : "Ballesteros",
"apellido2" : "Lopez",
"telefono" : "925406902"
}


La variable “cursor” se podría ver como un array de objetos, por lo que si se quiere acceder a cualquier clave del mismo, se especifica mediante un punto, como si fuera una propiedad:

> print(cursor[3].nombre, cursor[3].apellido1, cursor[3].telefono)
Yolanda Ballesteros 925406902



Safe Creative #1003235820060

MongoDB: Consistencia distribuida. Parte 4

La consistencia eventual hace más fácil el almacenamiento de datos en un centro multi-datos. Hay razones por las que la consistencia eventual es útil para centros multi-datos que no están relatados para la disponibilidad y CAP. Como se mencionó en la parte 3, algunos tipos comunes de particiones de red, tales como la pérdida de un centro de datos entero, son actualmente particiones de red triviales y pueden incluso no tener efecto de disponibilidad de todos modos.

Hay algunas arquitecturas para el almacenamiento de datos en un centro multi-datos:

* DR
* Región simple
* Lecturas locales, escrituras remotas
* Búsqueda inteligente
* Consistencia eventual

DR

Por DR nos referimos a una arquitectura tradicional de continuidad desastre recuperación / negocio. Es bastante simple: servimos cualquier cosa desde un centro de datos, con replicación a una facilidad secundaria que está offline. En un fallo transferimos todo de forma sincronizada.

La disponibilidad puede ser muy alta en este modelo, cuando cualquier asunto sobre el primer centro de datos, incluyendo las particiones de red internas, transferimos sincronizadamente, y con todo el primer centro de datos desactivado, la partición es trivial.

Este modelo funciona bien con consistencia fuerte.

Centro multi datos, Región simple

Esta opción es análoga a usar múltiples centros de datos dentro de una región simple. Amazon y DoubleClick han usado este esquema en el pasado. Tenemos múltiples centros de datos, separados físicamente, pero todo dentro de una región (por ejemplo, el Noroeste). La latencia entre centros de datos es entonces razonable: si permanecemos dentro de un radio de 150 millas, podemos tener transmisiones de cerca de 5 milisegundos. Podríamos tener un anillo de fibra entre digamos, 3 o 4 centros de datos. Como la latencia es razonable, para muchos problemas, una operación WAN aquí está bien. Con una topología de anillo, una partición de red no-trivial es poco probable.

La región simple es útil tanto para arquitecturas de consistencia fuerte como para consistencia eventual. Con un producto del estilo Dynamo, cuando N=W ó N=R, esta es una buena opción, por lo demás cuando se usan múltiples centros de datos tendremos un tiempo de espera grande para confirmar escrituras remotas.

Lecturas locales, Escrituras remotas

Para casos de lectura pesada, esta es una buena opción. Aquí leemos datos eventualmente consistentes (fácil con la mayor parte de productos de base de datos, incluyendo sistemas RDBMS), pero haciendo que todas las escrituras vuelvan a la facilidad maestro sobre la WAN. Un sistema del estilo dynamo en un cento de datos múltiple con un muy alto valor W y un bajo valor R puede ser también considerado de esta manera.

Este patrón debería funciona muy bien para gestión de contenidos tradicionales: publicar no es frecuente, y leer es muy frecuente.

Usar una Red de Entrega de Contenidos (Content Delivery Network (CDN)), con un sitio web origen centralizado sirviendo contenidos dinámicos, es otro ejemplo.

Búsqueda inteligente

Discutimos un poco sobre "Búsqueda Inteligente" (“Intelligent Homing”) en la parte 3. La idea es almacenar la copia maestra de una entidad de datos dada cerca de su usuario.

Esto funciona funciona muy bien si los datos se correlacionan con el usuario, como el perfil del usuario, la bandeja de entrada, etc

Tenemos rápidas escrituras confirmadas localmente. Si un centro de datos se cae completamente, podríamos estar aún a prueba de fallos sobre el estado maestro a cualquier lugar donde haya una réplica.

Consistencia eventual

La consistencia eventual de muchos-escritores nos brinda dos beneficios con centros de datos múltiples:

* altísima disponibilidad en el caso de apagones de red;
* rápidas escrituras confirmadas localmente

En el diagrama de debajo, un cliente de un sistema del estilo dynamo escribe los datos a cuatro servidores (N=4). Sin emabargo, únicamente espera confirmación de las escrituras de dos servidores en su centro de datos local, para mantener la latencia baja en la confirmación de escritura.




Nótese sin embargo que si R+W > N, no podemos tener rápidas lecturas y escrituras locales al mismo tiempo si todos los centros de datos son pares iguales.

Combinaciones

Las combinaciones a menudo tienen sentido. Por ejemplo, es común mezclar DR y Lectura Local / Escritura Remota.

Fuente: http://blog.mongodb.org/post/516567520/on-distributed-consistency-part-4-multi-data-center

Primeros pasos con Python y MongoDB

Una de las mejores características de MongoDB es la multitud de drivers existentes para casi cualquier lenguaje de programación (ver Sección Drivers). Para los que amamos Python, tenemos un driver llamado pymongo, y que está soportado por 10gen, la empresa creadora de MongoDB. El site oficial de este driver lo encontramos en: http://api.mongodb.org/python/1.8.1%2B/index.html

Utilizar Python junto a MongoDB es muy sencillo, pues su sintaxis es muy similar a la de la consola mongo.

Instalación
La instalación de pymongo es sencilla. En Linux, procederemos a ejecutar el siguiente comando:

$ easy_install pymongo

O bien, descargamos el código fuente y lo instalamos desde la consola de Python:

$ git clone git://github.com/mongodb/mongo-python-driver.git pymongo
$ cd pymongo/
$ python setup.py install


Abrir conexión
La conexión se realiza de la siguiente manera:

>>> from pymongo import Connection
>>> conn = Connection() # Conexion local por defecto
>>> conn = Connection('miServidor', 30500) # Conexion remota a puerto 30500


Usar base de datos
Para obtener un objeto que referencia a la base de datos:

>>> db = conn.miBBDD # metodo 1
>>> db = conn['miBBDD'] # metodo 2



Usar una colección
Para obtener la colección con la que trabajar:

>>> coll = db.miColeccion # metodo 1
>>> coll = db['miColeccion'] # metodo 2



Documentos
Los documentos se mapean en Python como un diccionario:

>>> noticia = {"autor": "Rafael Hernamperez",
...   "cuerpo": "Python y MongoDB",
...   "etiquetas": ["Tutorial","Python","MongoDB"]}


Algunos tipos de datos especiales requieren de alguna librería específica, como datetime:

>>> import datetime
>>> noticia = {"autor": "Rafael Hernamperez",
...   "cuerpo": "Python y MongoDB",
...   "etiquetas": ["Tutorial","Python","MongoDB"],
...   "fecha": datetime.datetime.utcnow()}



Insertar documentos
Para insertar un documento:

>>> coll = db.noticias # Coleccion "noticias"
>>> coll.insert(noticia)



Recuperar un documento
Para recuperar un único documento simple (el primero):

>>> coll.find_one({"autor": "Rafael Hernamperez"})


Recuperar varios documentos
Para recuperar todos los documentos de una colección:

>>> for noticia in coll.find():
...    print noticia


Para recuperar todos los documentos (noticias, en este caso) de un autor concreto:

>>> for noticia in coll.find({"autor": "Rafael Hernamperez"})
...    print noticia



Contar documentos
Para contar todos los documentos de una colección:

>>> coll.count()

Para contar todos los documentos de un autor concreto:

>>> coll.find({"autor": "Rafael Hernamperez"}).count()


Consultas de rango
Recupera un determinado rango de documentos, delimitados por condiciones. En este caso, recupera aquellas noticias anteriores a una determinada fecha. El resultado se ordenará por autor:

>>> fecha = datetime.datetime(2010, 9, 28, 0, 0) # 2010/09/38 00:00h
... for noticia in coll.find({"fecha": {"$lt":fecha}}).sort(autor):
...    print noticia



Indexación
Para indexar la colección "noticias", por fecha (de la más reciente a la más antigua) y por autor (en orden alfabético):

>>> from pymongo import ASCENDING, DESCENDING
>>> coll.create_index([("fecha", DESCENDING), ("autor", ASCENDING)])

La política y las redes sociales

Introducción

En apenas cinco meses habrá elecciones municipales y autonómicas en España. Los medios de comunicación y la forma de llegar al electorado ha cambiado mucho en la última década. La era de la información ya está presente en todos los hogares, y la sociedad ha abrazado el ciberespacio como el medio por el cual relacionarse, expresar sus opiniones, hacer negocios, buscar trabajo, divertirse, comprar, reservar las vacaciones, etc. La forma de hacer política también ha cambiado, especialmente en la forma de comunicarse con los posibles votantes.

Medios tradicionales

La televisión, la radio, los diarios y los folletos buzoneados, son medios masivos que llegan fácilmente a muchos ciudadanos, y que se utilizan exclusivamente para informar. Es una comunicación débil, pues únicamente hay un emisor que fuerza el envío de información a un receptor. Es un medio frío, en el que hay que ser creativo para captar la atención del receptor para que se interese por el contenido. El porcentaje de interés suele ser bajo.

Las mesas informativas y los mítines son medios que no llegan a tantos ciudadanos, pero tienen la ventaja de que los ciudadanos contactados ponen cara a sus políticos, pueden (o al menos deberían) poder hablar con ellos, dar opiniones, criticar, recibir el calor de un apretón de manos, de una mirada, captar la intensidad y la pasión del mensaje hablado... es un medio directo, muy humano, y las relaciones son mucho más efectivas. El porcentaje de interés es muy superior al de los medios citados en el párrafo anterior.

Internet no ha cambiado los medios de comunicación tradicionales, si no que ha hecho de pegamento entre la frialdad informativa y la calidez del contacto humano. Es un medio mucho más masivo que el de la prensa, pues no todo el mundo compra un diario, o escucha la radio, a menos que esté realmente interesado en ello. El ciudadano puede acceder a la información sin necesidad de un medio concreto, pues en Internet, la información es replicada en multitud de medios, estén o no asociados a un partido político, o estén o no asociados a un medio de comunicación concreto. La replicación de las noticias es algo sorprendente, y que funciona a modo de marketing viral. Lo más sorprendente, no es cómo una información se extiende exponencialmente, si no la facilidad de cómo los buscadores pueden llevarnos a dicha información.

Por un lado tenemos la facilidad de accesibilidad a la información, y por otro, y quizá el aspecto más importante de Internet, es que la comunicación puede establecerse en ambos sentidos, creando una relación entre el ciudadano y el político mucho más accesible que de forma presencial. En este aspecto, las redes sociales juegan un factor determinante en dicha relación, y un político debería tenerlo muy en cuenta.

¿Qué son las redes sociales?

Una red social es una herramienta o medio, a través del cual se facilita la posibilidad de que personas con intereses similares o comunes se conozcan y se relacionen. Existen redes sociales especializadas en alguna temática, como por ejemplo Xing o LinkeIn, que unen a personas con intereses empresariales o profesionales. Hay también redes científicas, médicas, educativas, informáticas, etc.

Sin embargo, la red más famosa y popular de todos los tiempos es Facebook, con más de 500 millones de usuarios en todo el mundo. La principal característica de esta red es que permite comunicar a personas en cualquier parte del mundo, sobre cualquier interés, o sobre cualquier temática, además de incluir funcionalidades muy útiles y que veremos a continuación.

Antes de proseguir, debo decir que existen más redes sociales de propósito general, como Tuenti o MySpace, e incluso una nueva red social llamada Diaspora, que está basada 100% en software libre y en estándares abiertos. Pueden gustar más o menos, pero en política hay que ser prácticos, y llegar a la mayor cantidad posible de ciudadanos. Y Facebook es el medio más popular y extendido con gran diferencia. También se podría pensar en utilizar varias redes sociales. Es buena idea, pero, como veremos a continuación, las redes sociales, para un político, son un ladrón de tiempo muy importante, que requieren de dedicación y de esfuerzo. Hay que saber dosificar el tiempo útil y productivo en hacer política, y pensar en las redes sociales únicamente como un medio por el cual informar y capturar información.

Perfil

Al iniciar la andadura en una red social, hemos de pensar primero qué perfil crear. Un perfil será lo que el resto de usuarios de la red social verán de nosotros. Recomiendo, como prioridad principal, que el perfil sea del grupo político (comité local, amigos de...), y dar la oportunidad, a través de este medio, que otros compañeros participen y utilicen la red social para el bien común. Habrá quienes tengan un perfil personal, como persona, que quieran también usar la red social para medios políticos. En este sentido, mi recomendación es dar prioridad al perfil del grupo político, y usar el personal de forma independiente. Una opinión personal, por ejemplo, debería darse (normalmente) en el perfil personal, y no en el del grupo. Por otra parte, recomiendo que si se utiliza un perfil personal, utilizarlo única y exclusivamente para fines políticos. Aunque tengamos amigos del colegio, de la Universidad, del club de mus, o en cualquier otra afición, deberíamos dejar nuestros asuntos personales y nuestras aficiones al margen. Un político es una figura pública, y como tal, tendrá fans y detractores, y las cosas personales que se publiquen pueden determinar la simpatía o la antipatía de los electores, y podrían utilizarse para cualquier actividad de desprestigio y, cómo no, para arrancarnos votos.

Una vez creado el perfil, es importante configurar la información inicial, tales como los intereses, quién puede dejarnos comentarios o las notificaciones que deseamos recibir. Si usamos Facebook, hay que tomar en cuenta este último punto, pues por defecto, recibiremos notificaciones para cualquier cosa, lo que puede llevar a desesperarnos de forma improductiva e innecesaria.

Una vez creado el perfil, podemos escribir algo en nuestro muro o en nuestro estado, un mensaje corto para presentarnos y dar la bienvenida a cualquier usuario que nos visite.

Crear relaciones

El siguiente paso obligado es encontrar amigos o personas, con el fin de crear lazos y compartir información. Lo más lógico sería pensar en buscar otros grupos o personas relacionados con nuestro partido político, y, a continuación, solicitar su amistad. Este paso no es obligatorio, ni tampoco ha de hacerse una vez y en este orden. En cualquier momento podemos buscar amigos y solicitar su amistad. Esta es la forma de crear la red.

Generar y consumir información en la red social

¿Y cuál va a ser nuestro uso de la red social, además de encontrar y hacer amigos? Lo más importante es informar y recibir información. Pero, vayamos por partes.

El muro o el estado nos permitirá escribir mensajes cortos, los cuales son visualizados en las sesiones de nuestros amigos, e indexados por los buscadores. Estos mensajes pueden ser noticias u opiniones propias. Una práctica muy habitual, es replicar noticias de otros medios, compartiendo enlaces. Lo normal es dar el título de la noticia, y a continuación pegar la URL (dirección Web) de la noticia. Esto tiene la ventaja de suscitar interés con el titular, de no saturar de texto, y que aquel que esté realmente interesado, hará clic en el enlace para leer el resto de la noticia.

Aquello que se escriba en el muro podrá ser igualmente replicado por otros amigos, creando la comunicación viral, pues los amigos de estos amigos, a su vez podrían nuevamente replicarlo, y así, sucesivamente.

La participación

Los mensajes en el muro también permiten comentarios, por lo que entramos en la parte más interesante y útil, ya que nos permite conocer otros puntos de vista, la aceptación del contenido publicado, la crítica, etc. Esto es retroalimentación de información, y es el poder más grande que tiene la Web 2.0: LA PARTICIPACION.

Imaginemos que publicamos una idea, por ejemplo, un polideportivo de tales características en tal zona. Un ciudadano podría ver la idea, y opinar al respecto. Puede dar nuevas ideas con las que no contábamos y que pueden ser interesantes, o bien puede dar información que no teníamos (por ejemplo que donde se quiere construir el deportivo era antiguamente un acuífero con pozos), o bien criticar por razones que no dimos importancia o cualaquier otra opinión.

Las redes sociales, no nos equivoquemos, no son medios para lanzar únicamente nuestros mensajes, ideas o propuestas. Las redes son medios colaborativos, y nuestra colaboración también determina el grado de que los demás participen. Podemos recibir las opiniones de nuestros amigos, recibir recomendaciones de éstos o buscar información sobre algo específico. Nosotros también somos colaboradores. Podemos interesarnos, por ejemplo, sobre algún problema común con otro municipio, o una iniciativa de otro municipio en otra provincia y en otra comunidad autónoma. Hemos de dejar comentarios, dar nuestra opinión, recomendar, replicar, votar noticias o decir, simplemente, que nos gustan. Estas acciones son actividades que también dicen de nosotros, y el resto de colaboradores de la red lo apreciarán, y responderán hacia nosotros de la misma manera. Hay que cuidar mucho este detalle y no ser egoístas, interesados únicamente en dar publicidad de nosotros sin nada a cambio. ante todo PARTICIPACION Y COLABORACION.

En el caso de que nuestro partido político sea un partido nacional, es muy importante estar presente y dedicar esfuerzos en promocionar y publicitar las ideas del partido a nivel nacional o autonómico, no solamente de nuestro municipio. Estas referencias nos favorecerán mucho, pues damos una imagen de un grupo político que se preocupa y se implica por la ciudadanía en general y a todos los niveles, no únicamente en su municipio.

Contenidos multimedia

Un aspecto bastante importante es la posibilidad de publicar contenidos multimedia. Podemos crear galerías de fotos o de vídeos, de la temática que queramos. Por ejemplo, se pueden crear secciones de fotodenuncia, de monumentos del pueblo, de nuestras actividades (mesas informativas, mítines, visitas a colegios, etc). Al igual que comenté al principio, si usamos nuestro perfil personal, recomiendo no usar fotos personales, y, aún menos, en que aparezcan menores de edad (por razones legales y de falta de privacidad). No quedaría nada bien que publiquemos una foto o un vídeo en la que salgamos con ojos chisposos, descamisado y con una copa en la mano, en mitad de una boda o de una fiesta.

Aplicaciones o utilidades

Otra de las características de las redes sociales son las aplicaciones. En el caso de Facebook, podemos encontrar algunas muy interesantes, como Twitter, donde podemos actualizar los contenidos de este medio en Facebook. Hay otras, como suscripciones a noticias RSS, o incluso juegos. Como recomendación personal, hay que dar una imagen política seria, práctica e íntegra. No hay que pecar de ser infantiles, y aún menos molestar al resto de amigos con aplicaciones del tipo "galleta de la suerte", "bolazos de nieve" y similares.

Grupos

Otra posibilidad que ofrecen las redes sociales, es la suscripción a grupos de usuarios con algún interés común. Sería muy interesante, por imagen y seriedad, suscribirse a grupos que puedan suponer un peso político y social. Recomendaría, por ejemplo, suscribirse a un grupo o asociación de enfermos de tal o cual enfermedad que está en nuestra localidad, alguna ONG, etc. No recomiendo grupos lúdicos, de ocio o impopulares, y, aún menos, que sean de actualidad pero que no estén en comunión con las ideas generales del partido.

Mensajes

Otra funcionalidad importante a tener en cuenta es la posibilidad de dejar mensajes, a modo de correo electrónico. Este medio, aunque primitivo, es el que más se utiliza para comentar cosas directamente a alguien sin que se haga público, como el muro o el estado. Además de privacidad, brinda la posibilidad de establecer una comunicación más estrecha entre ambos.

Chat

Por último, comentaré una funcionalidad que poseen las redes sociales que no hemos de escatimar. Se trata la función de chat, que permite una comunicación directa y privada entre el político y el amigo (o ciudadano, o compañero, etc.), de forma instantánea. Gracias a esta herramienta podemos responder o aclarar cuestiones en el momento, con lo que la cercanía y la presencia se hacen más palpables. El problema que tiene esta funcionalidad es (al menos en mi caso) que suele entrar en acción cuando menos lo necesitas, es decir, por ejemplo, cuando estás trabajando o cuando necesitas tu concentración en otras cuestiones más importantes. No obstante, es un medio de comunicación bastante valioso.

Reflexiones finales

Hay muchos ciudadanos que no tienen tiempo para ver la televisión, para escuchar la radio, o para leer el periódico; o bien tienen un horario que les impide acudir a un mítin o a una mesa informativa. La ventaja que tiene internet es que es descentralizado, es decir, que no se necesita estar presente ni tampoco estar en un momento dado. La comunicación entre ciudadano y político se produce sin barreras geográficas ni de tiempo.

Hemos de ver las redes sociales como un medio de comunicación, pero también como una herramienta de trabajo excelente, que nos da la información (gracias a los ciudadanos) que necesitamos para saber qué, cómo, cuándo y por qué hemos de hacer las cosas. Si importante es informar, más importante es escuchar y, aún más importante, interactuar.

Las redes sociales serán muy importantes en la precampaña y, sobre todo, en la campaña electoral. Serán el medio por el cual nos comunicaremos, colaboraremos y conseguiremos relaciones con ciudadanos, compañeros de partido y amigos. El uso de las redes sociales nos harán ganar o perder votos, dependiendo del uso que les demos. Es muy importante estar presentes, existir e interactuar con nuestros ciudadanos a través de estos medios, informarles, aclararles dudas, recibir críticas y agradecer su colaboración.

Pero no hemos de estar presentes únicamente en momentos de elecciones. Hemos de ser accesibles en cualquier momento, en cualquier lugar y por cualquier razón. No hemos de desconectar con la realidad política y social, porque la realidad no desconecta nunca. Por tanto, tampoco nosotros.