Archivo | agosto, 2014

IFTTT: Pon a Internet a trabajar para ti

26 Ago

ifttt

Creo que un factor importante para la adopción de tecnologías sociales, es adoptar tecnologías que hay a disposición de todos, en general. Por esta razón creo conveniente abrir un espacio a hablar de algunas herramientas que creo que son interesantes para cualquier usuario asiduo de Internet.

Abro esta sección con IFTTT (If This Then That…) que es un sitio de Internet que permite ejecutar muchas acciones en base a eventos que ocurren en Internet sin nuestra intervención, es decir, automatizar.

Lo primero que hay que hacer, como en cualquier sitio, es crear una cuenta. Una vez que está creada la cuenta, podemos empezar a crear nuestrar “recetas”.

Una receta es una acción que queremos que se realice que responde a algo (trigger) que ocurre en un canal. Un canal puede ser uno de los muchos sitios en los que participamos, llámese Facebook, Twitter, Instagram, The Weather Channel, Google Drive, etc.; también pueden ser cosas que ocurren de forma periódica; o incluso cosas que ocurren con el hardware que cargamos, como nuestro teléfono Android o iOS. No tiene sentido listar con detalle todos los canales que existen, ya que continuamente están agregando más y se pueden consultar en el sitio.

Es más fácil aprender haciendo. Supongamos que quiero que todos los días a las 08:00 IFTTT me diga por Twitter (o por una alerta a mi smartphone) cuál es el reporte para el día. Obviamente una acción como esta depende de que el canal del clima tenga información adecuada de la localidad donde estamos. Para hacer esto se hace lo siguiente:

  • Se presiona el botón “Create a Recipe”
  • Aparece el texto “Ifthisthenthat”, obviamente hay que presionar “this”
  • Aparece una lista de canales, ordenada por nombre alfabético, hay que buscar “Weather
  • La primera vez que usamos un canal, hay que activarlo, esto se hace apretando el botón “activate” y siguiendo una serie de instrucciones, que dependen del canal, unos piden que entremos a nuestra cuenta y autoricemos a IFTTT, otros solo nos piden datos básicos, otros no nos piden nada. En particular el canal “Weather” nos pide nuestra localidad, por lo que introduciré “Mexico City
  • Ahora viene la selección del “trigger“, o la condición que tiene que ocurrir, en este caso voy a utilizar la condición “Today’s weather report“, que como leemos en la descripción, nos permite determinar a que hora queremos el reporte.
  • Una vez que ponemos a las 08:00 nos vuelve a pasar a la pantalla de “ifthisthenthat“, pero el this ha sido substituído por el logotipo del canal, y ahora hacemos click en that.
  • Al ahcer click nos vuelve a aparecer una lista de canales sobre los que la acción (trigger) de activación. En este caso busco Twitter. Nuevamente nos pide la activación del canal Twitter, en este caso nos enviará a la aplicación de Twitter, donde, si no estamos firmados pedirá nuestro usuario, password y autorización; y si estamos firmados, solo la autorización.
  • Ahora seleccionamos la acción “Post a tweet” si lo queremos hacer público o “Send a direct message to yourself“, para este ejemplo seleccionaré la primera opción.
  • Ahora se pone interesante. En términos generales IFTTT hace un buen trabajo adivinando qué es lo que queremos hacer, pero nos da oportunidad de cambiar la acción a ejecutar, en base a “ingredientes“. Los “ingredientes” cambian de acuerdo al “canal” que originó la acción. En el caso de Weather nos da opciones como escribir “TodaysCondition” (si está lloviendo, con sol, nublado, etc.) y las temperaturas (HighTempCelsius y LowTempCelsius), podemos cambiar lo que querramos dentro de la cajita de acción. Para obtener más opciones hay que hacer click en el símbolo de “+”
  • Se aprieta el botón de “Create Action
  • Finalmente se solicita un nombre para la “receta” y se aprieta “Create Recipe
  • Ahora solo falta esperar a que den las ocho de la mañana para que llegue el mensaje que acabas de crear.

Así de sencillo se utiliza IFTTT y las posibilidades son maravillosas, algunas de las recetas que he creado tienen la siguiente funcionalidad:

  • Poner una foto de Instagram en Twitter en formato nativo. Si se han fijado, Twitter ya no despliega fotos de Instagram, sino que pone una liga a la foto. Bueno, pues con esta acción, las fotos que pongo en Instagram pasan a Twitter en el formato nativo de Twitter. En mi caso pone todas, pero la acción de Instagram tiene muchas más opciones, como poner solo las que llevan un #tag específico.
  • Poner la foto del día de la NASA en Facebook. Yo no hago nada, y muchas veces esta imagen es la que mas likes se lleva en el día 🙂
  • Si camino más de 10,000 pasos  en el día (medidos con mi Jawbone Up) mandar un mensaje a Facebook. Creo que nunca se ha activado esta acción.
  • Si guardo un artículo en Pocket con el hastag #fb, ponerlo en Facebook. En Pocket guardo cosas que me interesa leer para después, si veo un artículo que les pueda interesar a mis amigos, le pongo un hashtag de #fb
  • Si guardo un artículo en Pocket con el hashtag #yam, ponerlo en Yammer. Ocurre lo mismo que en el anterior, pero en la red social corporativa de mi trabajo.
  • Si se pone una imagen nueva en reddit/r/aww que la mande a mi Dropbox. En este reddit generalmente se ponen fotos de animalitos y de niños chiquitos, cosas que te hacen decir “aww”, esta acción la cree por mi hija, a quien le gustan estas cosas. Bajo unas 3000-4000 imagenes y después le presto la carpeta de Dropbox para que las vea. Como genera muchísimo contenido, la acción la activo unos dos días y después la desactivo.
  • Si inicia un partido de los Acereros (Pittsburgh Steelers) cambia mi foto en Twitter (@luisferfranco). La foto de perfil pone un “tema” de los acereros que guardo en un servidor compartido. Me gusta ver el futbol americano y poner comentarios en Twitter durante los juegos.
  • Si inicia un partido de los Acereros pone una imagen en Facebook. Más o menos lo mismo que la anterior.
  • Cuando termina un partido de los Acereros, regresa a mi foto de Twitter “tradicional”.

Y se pueden hacer muchísimas cosas más, algunas incluyen el hardware del teléfono, o la casa, como poner el teléfono en modo vibrador cuando nos acercamos a algún lugar (a misa, por ejemplo); o ponerle color a las luces de la casa si se cuenta con luces Philips Hue (no he intentado esto, porque no tengo tales); o mandar un correo electrónico cuando un sensor de movimiento WeMo se activa (si tengo de estos y funcionan bien, lo uso para prender las luces del árbol de navidad).

Si quieres que te ayude con alguna receta, no dudes en contactarme.

Anuncios

GitHub Básico para Windows

15 Ago

Para lograr analizar los datos que arroja nuestra Red Social Corporativa, decidí inscribirme en Coursera en la especialización de Data Scientist de la Johns Hopkins University (JHU), Los participantes que hablamos español, tenemos un grupo en Facebook y una de las quejas recurrentes tiene que ver con el uso de GitHub. Antes de entrar a esta especialización nunca había usado GitHub, entendía el concepto, pero nunca lo había usado. Definitivamente no soy un experto y mi utilización es demasiado básica, pero creo que vale la pena compartir un poco de lo que he aprendido y me está funcionando, por si alguien se topa con los mismos problemas que tuve yo.

En este artículo hablaré de la funcionalidad básica de la interfaz gráfica de GitHub para Windows que simplifica muchísimo las cosas en un entorno Windows. La idea es mostrar lo suficiente como para poder usar la herramienta para realizar los ejercicios en la especialización de la JHU.

Prerrequisitos

  • Tener una cuenta de GitHub (obvio)
  • Descargar e instalar GitHub para Windows (no tiene ninguna ciencia, solo hay que hacer uso de la tecnología NNF: Next, Next, Finish)

Configuración Inicial

Una vez instalada la interfaz, se generarán dos íconos en el escritorio, uno el “Git Shell” que es la forma tradicional de trabajar con los repositorios y “GitHub”, que es la interfaz gráfica. Al abrir ésta aplicación se muestra una pantalla donde anotamos nuestras credenciales (nuestra cuenta y password de GitHub), hay que seguir el proceso tal como ocurre en la pantalla, no hay ninguna sorpresa aquí.

Inicialmente indicará que no existen repositorios locales y nos invitará a crear uno. Mi GitHub ya está configurado y con algunos repositorios, por lo que las pantallas diferirán un poco.

Creando un repositorio local

En mi caso, los proyectos de R los tengo en un disco duro externo en el directorio z:\R\ para el caso de los proyectos de “investigación reproducible” utilizo el directorio z:\R\repro. Utilizaré este directorio como ejemplo, ya que acabo de terminar el Peer Assessment 1 que contiene suficientes archivos como para mostrar las bondades de GitHub para Windows.

Lo primero es que creemos un repositorio local, que después será transferido a GitHub, en este caso lo voy a nombrar repro-p1-copy, porque terminará siendo una copia del repositorio donde hice el Peer Assessment 1.

Crear un repositorio local se hace haciendo click en el ícono que tiene un símbolo de “+” en la esquina superior derecha, una vez hecho esto, se abre un diálogo que pide que le pongamos un nombre e indiquemos en que directorio se va a guardar:

github01

En esta imagen se muestra el directorio z:\R\repro, una vez que creemos el repositorio veremos que se crea el directorio repro-p1-copy, que es el nombre que le dimos al repositorio. GitHub añadirá dos archivos de control a este directorio.

Adicionalmente, sabremos que se trata de una copia local no sincronizada, por el ícono que aparece a la izquierda del nombre.

Publicar el repositorio a GitHub

Como se puede ver en nuestra página de GitHub, aún no existe el repositorio repro-p1-copy, lo que haremos para crearlo es simplemente presionar en el botón “Publish“, arriba a la derecha, donde lo indica la flecha, después de unos segundos, habrá terminado la sincronización y los dos documentos que se crearon automáticamente de forma local, serán enviados al nuevo repositorio de GitHub.

github02

Ahora podemos trabajar con el directorio de forma normal, y GitHub estará verificando los nuevos archivos y si hubo una modificación a ellos, por ejemplo, voy a crear localmente un archivo llamado readme.md con un editor de textos (en mi caso utilizo Notepad++):

github03

GitHub muestra que hay “Uncommited Changes”, al presionar el botón “Show” se muestra cuáles son los archivos que cambiaron desde el último commit (o versión de proyecto)

Para realizar el “commit” hay que escribir en los campos que se presentan, el nombre que se asignará al commit y opcionalmente algún comentario.

Ahora se presiona el botón “Commit to master” y después el botón “Sync”, arriba a la derecha, para enviar esta versión al repositorio en GitHub

github04

Como se puede ver, el archivo creado fue subido a GitHub, lo mejor es que la sincronización es bidireccional, si se cambiase el archivo directamente en GitHub, a través de su editor de texto, solo hay que presionar el botón de “Sync” para que nos traiga la copia de GitHub a nuestro equipo local.

Para los proyectos de la especialización esto ha resultado muy conveniente, ya que sincroniza sin ningún esfuerzo los archivos .md, .html y los directorios /figures que se generan a partir del .Rmd.

Pues eso es todo, GitHub tiene muchísimas funcionalidades más, como el crear ramas o derivaciones de un proyecto, copiar otros repositorios y demás, pero el alcance de este artículo era explorar la funcionalidad básica de sincronización para poder realizar los trabajos de la especialidad de Data Science.

Si algo no está claro del artículo, o necesita corregirse, te agradeceré que me dejes una nota en los comentarios.

El “curador” de la información

8 Ago

ardilla

Cuando hemos ido a vender las ideas de utilizar la Red Social dentro de la empresa, uno de los casos de uso recurrentes es el de gestión documental y gestión del conocimiento (de esto he hablado someramente en el artículo sobre redes de expertos). Estos casos de uso son muy importantes para implementar cosas como programas de inducción, capacitación y por supuesto, de transferencia del conocimiento.

Pero todos los que hemos usado Internet caemos en el mismo problema siempre: cuando hacemos una pregunta al todo poderoso Google, nos arroja literalmente millones de respuestas y terminamos ahogados en un mar de información que en muchos casos puede resultar ser contrarproducente desde la perspectiva de la productividad.

El día de hoy leí este artículo del MIT SMR titulado “Does Your Company Collect Data – Or Hoard It?“, no habla precisamente de gestión del conocimiento o documental, sino de Big Data, pero hay conceptos que son similares.

Una de las tentaciones que siempre existen, es guardar toda la información que se va generando alrededor de un proyecto, lo cuál es muy útil durante el desarrollo del mismo, y por cuestiones de auditoría. Sin embargo, desde la perspectiva de gestión del conocimiento puede resultar contraproducente. Todos hemos vivido el caso de buscar algo en Google y encontrar cientos de millones de resultados, y tener que distinguir cuáles artículos son más relevantes en la búsqueda.

Por esta razón, cuando hemos tratado casos de uso que tienen que ver con gestión documental y gestión de conocimiento hemos hecho énfasis en lo importante que es contar con el rol de “curador” de la información.

La persona que realice este rol, debería tener las siguientes características:

  • Un conocimiento claro y suficientemente extenso del proceso de negocio o la función que se realiza.
  • Entender criterios de archivística y poder tomar decisiones sobre qué es lo relevante, y que hay que guardar, pero quizás lo más importante, descartar lo que no es importante.
  • Capacidad para ordenar y clasificar información de acuerdo a diferentes criterios: cronológico, relevancia, requerimientos legales, etc.

Y algunas de las funciones que debe realizar este rol serían:

  • Expurgar la información que ya no es requerida, o que ya no tiene un valor histórico, legal o técnico. Esta puede ser la función más delicada, ya que documentos o conversaciones que aparentemente no tienen importancia en el desarrollo de un proyecto, podían haber sido la clave para las decisiones que se tomaron. Este tipo de información solo la puede conocer alguien que estuvo involucrado en la toma de decisiones del proyecto.
  • Generar resúmenes del proceso en cuestión que se puedan utilizar como índices para encontrar la información de detalle que sea requerida para el aprendizaje, o la transferencia de conocimiento.

El artículo citado del MIT SMR tiene tres reglas que deben aplicarse sobre adquirir “más datos”, creo que si reemplazamos “más datos” por “más documentos”, con una ligera modificación, las reglas propuestas deberían servirnos como una primera aproximación a los criterios que debería seguir el “curador” de información.