Hoy he estado adaptando un Skill de Alexa para incluir imágenes en la tarjeta que se le puede mostrar al usuario como complemento a la respuesta oral. Esto me ha llevado a una reflexión: los que separan el desarrollo de las operaciones son cadáveres andantes.

Lo que tenía que hacer era tan tonto como esto:
var imagen = {
“smallImageUrl”: “url de la foto pequeña”,
“largeImageUrl”: “url de la foto grande”
};

Y en el Intent pasar imagen como parámetro donde toca. Hasta ahí fácil.

La imagen, ¿dónde la guardamos? Bueno, tenemos que cumplir con los requerimientos de Amazon para poder utilizarla desde el Skill. Esto:
condiciones de hosting de fotos que se usen en alexa skills

Y ahí hemos cruzado la barrera a operaciones. Que sea un endpoint HTTPS, ok. Que el certificado SSL cumpla con los requerimientos de Amazon, un pico de rato mirando. Luego el CORS. Yo en realidad solo conocía The Corrs. Que tiene sentido una vez lo lees: significa que el host va a permitir un pre-procesamiento de la foto (supongo que le pasarán un detector de hot dog-no hot dog como el de Jian-Yang de la serie Silicon Valley) antes de que la app o sistema que usará la foto la pida definitivamente para mostrarla. De todo esto sales obviamente muy iluminado y más informado. Y si estás haciendo cosillas tuyas, pues al final sencillamente sucumbes, te creas un bucket en Amazon S3, que de todos modos te va a costar décimas de céntimo de euro al mes, y con muy poco esfuerzo (máximo media hora) lo dejas listo para poder usarse. Y va como un tiro.

¡Pero imagínate si por alguna razón peregrina, la política corporativa de tu empresa te impide poder poner esas imágenes en un bucket S3! Esto cae en la fabulosa tierra de nadie que ni es operaciones (=que no se caigan mis clusters SQL y el IIS funcione y ten el cortafuegos chulo para impresionar a los de auditoría de seguridad) ni desarrollo entendido como el grupo que usa IDEs y hace commits y rollbacks y rebases.

El mundo no está cambiando, ha cambiado ya, y muchos no se han enterado. Fin del rant.