Apis

Twitter API: cómo usar una única cuenta para tuitear en nombre de terceros

I. El problema original

  • Tienes dos cuentas en Twitter, llámense @trabajo y @personal.
  • Tienes una única cuenta de desarrollador en Twitter. Supongamos que está vinculada al usuario @trabajo.
  • Quieres usarla para tuitear también en nombre de @personal.

Lo suyo sería disponer de dos cuentas de desarollador, una para cada usuario. Sin embargo, Twitter parece estar dando acceso a tu plataforma de desarrollador con cuentagotas y ni siquiera está claro si conceden más de una cuenta a una misma persona que maneje varios usuarios.

Una cosa buena, una cosa mala

Que son la misma: esta.

Comienzo por lo malo: ¿realmente necesitamos 17+1 INEs publicando la vistas de la misma información a través de 17+1 APIs, 17+1 paquetes de R y (17+1)*N mantenedores y desarrolladores?

Lo bueno: tiene buena pinta y es encomiable tanto el esfuerzo de los autores como su vocación de servicio público.

Nota: Espero que no enfaden demasiado el 50% de los juicios que he emitido a quien me ha enviado el enlace para su evaluación y posible difusión. Sepa que lo tengo en grande estima y que me consta responsable de mucho de la parte buena y casi nada de la mala.

Estructura poblacional de España: 2010-2050

Si se puede hacer para Japón, también se puede hacer para España:

El código,

library(idbr)
library(ggplot2)
library(animation)
library(ggthemes)

idb_api_key("pídela en https://www.census.gov/data/developers/data-sets/international-database.html")

male <- idb1('SP', 2010:2050, sex = 'male')
male$SEX <- "hombres"
male$POP <- -male$POP

female <- idb1('SP', 2010:2050, sex = 'female')
female$SEX <- "mujeres"

spain <- rbind(male, female)

saveGIF({

  for (i in 2010:2050) {

    title <- as.character(i)

    year_data <- spain[spain$time == i, ]

    g1 <- ggplot(year_data, aes(x = AGE, y = POP, fill = SEX, width = 1)) +
      coord_fixed() +
      coord_flip() +
      annotate('text', x = 98, y = -300000,
                label = 'Datos: US Census Bureau IDB; idbr R package', size = 3) +
      geom_bar(data = subset(year_data, SEX == "mujeres"), stat = "identity") +
      geom_bar(data = subset(year_data, SEX == "hombres"), stat = "identity") +
      scale_y_continuous(breaks = seq(-300000, 300000, 150000),
                          labels = paste0(as.character(c(seq(300, 0, -150), c(150, 300))), "k"),
                          limits = c(min(spain$POP), max(spain$POP))) +
      theme_economist(base_size = 14) +
      scale_fill_manual(values = c('#ff9896', '#d62728')) +
      ggtitle(paste0('Estructura poblacional de España en, ', title)) +
      ylab('Población') +
      xlab('Edad') +
      theme(legend.position = "bottom", legend.title = element_blank()) +
      guides(fill = guide_legend(reverse = TRUE))

    print(g1)

  }

}, movie.name = 'spain_pyramid.gif', interval = 0.1,
    ani.width = 700, ani.height = 600)

CatastRo, un paquete de R para consultar la API del Catastro

R

Informo de que está disponible en GitHub el paquete CatastRo para consultar la API pública del Catastro.

No es una API particularmente extensa, pero es de esperar que se amplíe el catálogo de servicios disponible cuando comencemos a machacarla (o no: a saber qué hay en la mente de esa gente).

El paquete es el trabajo de fin de máster de mi alumno Ángel Delgado Panadero en el máster de ciencia de datos de la UTAD.

La anticonferencia: una idea que me ronda la cabeza

La anticonferencia me ronda la cabeza.

No es una conferencia, (de ahí el prefijo), aunque se parezca a ella en lo de reunir a un grupillo de gente interesada en un asunto.

No es un jacatón. Los jacatones están, sobre el papel, bien; pero demasiado a menudo su producto se queda ahí, tiene poca (o nula) trayectoria o impacto. ¿Me dejáis que diga que son mayormente intranscendentes?

Pero creo que los de rOpenSci dieron en el clavo con su Unconference. Es una reunión similar a un jacatón, pero con un objetivo claro: desarrollar paquetes y extender el universo de herramientas de rOpenSci.

En una API de cuyo endpoint no quiero acordarme...

… rigen los siguientes términos de servicio (que traduzco, porque el original vienen en inglés):

Usuarios autorizados: usuarios afiliados a una institución educativa de investigación o sin ánimo de lucro.

Supongo que ese es el fin de la historia: estoy expulsado de ella, salvo que retuerza el hilo de la casuística, relaje el perímetro de las acepciones y me considere afiliado a alguna de las instituciones educativas donde imparto alguna clase; y justifique, claro está, que no tienen ánimo de lucro.

Conferencia de APis predictivas en Valencia (14-15 de Marzo de 2016)

Los días 14 y 15 de marzo de este año tendrá lugar en Valencia esta conferencia sobre APIs predictivas. Según los organizadores,

El objetivo de PAPIs Connect es mostrar cómo el aprendizaje automático (ML) y la inteligencia artificial (AI) pueden servir a todo tipo de organizaciones —de startups a grandes empresas— para crear aplicaciones predictivas y sistemas autónomos que resuelvan problemas reales tanto en los negocios como fuera de ellos. Ejemplos típicos son el mantenimiento predictivo, predicción de la demanda aplicada a la logística, optimización de precios, detección de fugas, automatización de tareas, etc.

APIdays Mediterranea vuelve a Barcelona (la semana que viene)

Los que estéis por allí o tengáis la posibilidad de acudir, sabed: la semana que viene (5, 6 y 7 de mayo de 2015) se celebra una nueva edición de APIdays Mediterránea en Barcelona.

apidays-SAFA_bw

Quienes tengáis pensado acudir, podéis beneficiaros de un 30% de descuento si os registráis desde este enlace.

Participé en la edición de 2013 en Madrid y me duele no poder asistir este año. Entre otras cosas, por esto. Y me displace perdérmelo porque mi nuevo stealth project tiene mucho que ver con APIs…

plot.ly: visualización de datos multilenguaje

He recibido hoy un correo sobre plot.ly, que es, según sus autores, una herramienta colaborativa para en análisis y la visualización de datos. Gustará seguramente a los interesados en las APIs: en el fondo, el software reside en la nube.

Permite, por ejemplo, [integrar gráficos interactivos en IPython](http://nbviewer.ipython.org/gist/msund/61cdbd5b22c103fffb84). Aunque no he visto ejemplos de cómo integrarlo con [knitr](http://yihui.name/knitr/). A ver si saco algo de tiempo…

APIdays Mediterránea, 29 y 30 de mayo en Barcelona

Aquellos que tengáis la suerte de estar en Barcelona a finales de mes, la tendréis por partida doble: la edición de APIdays Mediterránea de este año tendrá lugar ahí los días 29 y 30 de mayo.

El año pasado participé en la edición de Madrid. Este año no va a poder ser. Pero si tenéis ocasión, os recomendaría muy particularmente las charlas de

  • Alberto González Paje sobre web scraping,
  • Xavier Badosa, el autor de JSON-stat, sobre la diseminación de información estadística oficial

y, un poco más alejados del asunto central de este blog, las de

Dos enlaces (y medio) sobre herramientas: git y APIs

El primer enlace, muy apreciados lectores, no es para vosotros sino para mí. Es una referencia que quiero tener a mano: una guía de git para científicos. Es una de las pocas referencias de git que conozco. Casi cualquier otro documento sobre el tema que he visto da la sensación de exigir un conocimiento profundo de sí mismo como prerrequisito para su lectura.

El segundo explica casi todo lo que hay que saber sobre APIs del subtipo web. Sus autores se atienen a la máxima de mi paisano Gracián.

APIdays Mediterranea, la semana que viene

R

La semana que viene y con el lema

The Web 1.0 was readable, the Web 2.0 was social, now the web is programmable through application programming interfaces (aka APIs)

se celebrará en Madrid APIdays Mediterranea, un encuentro de entusiastas de las APIs.

Y dentro del programa, el sábado día 1, a la una menos cuarto —una hora compatible con mis poco matutinos hábitos—, tengo asignado el taller Rapidays: Quick introduction to R & APIs al que están, por supuesto, invitados los lectores de estas páginas (y para los que podría llegar a tener descuentos para el evento completo y entradas gratuitas para mi taller en particular).