Un experimento personal con el portal del Centro de Documentación de la Imagen de Santander.

Overview

Retrosantander

Un experimento personal con el portal del Centro de Documentación de la Imagen de Santander (CDIS) y sus contenidos. Por Jaime Gómez-Obregón.

Retrosantander

Prueba de concepto en 🔗 retrosantander.com. También 🎦 en vídeo.

El contexto

El Ayuntamiento de Santander opera el CDIS, una entidad «que tiene como objetivo poner a su disposición el patrimonio fotográfico municipal», según su sitio web.

He llamado al CDIS para interesarme por ese patrimonio, y me han expresado que el canal habilitado para ello es el mencionado sitio web. Las visitas al Centro son posibles, pero requieren de una cita previa y especificar con antelación sobre qué materiales se desea realizar la consulta, para que el equipo técnico del CDIS los prepare con antelación.

Puesto que mi interés no es académico ni historiográfico, sino la mera curiosidad abstracta, me veo con que el sitio web del CDIS es, esencialmente, mi única ventana al patrimonio fotográfico de la ciudad. Esto no sería inconveniente de no ser porque el referido portal es muy mejorable.

La portada del CDIS Vista de una imagen Una exposición virtual
Portada del CDIS Una imagen del CDIS Detalle de una exposición virtual

Por qué el portal del CDIS es muy mejorable

Como santanderino, el fondo fotográfico del CDIS me parece un tesoro. Sin embargo, se pone a disposición de la ciudadanía de una forma tosca y limitada. Esbozo a continuación mis porqués:

1. Por el diseño del sitio

Un sitio como el del CDIS debería reservar a la imagen un papel protagonista. Las fotografías deberían presidir absolutamente el sitio, como presiden los cuadros el sitio web del Museo del Prado. La atención del visitante debería dirigirse a la contemplación de las imágenes.

Sin embargo, el sitio del CDIS tiene un diseño que relega el tesoro a la última de las prioridades del escalafón de la atención del visitante. Las imágenes no son el epicentro, sino que parecen un subproducto colateral, un contenido secundario.

En mi portátil, las imágenes del CDIS representan solo el 3 % de la superficie visible de la pantalla, y en ocasiones por debajo del corte que obliga a hacer desplazamiento vertical.

La experiencia de búsqueda en el CDIS La ficha de una imagen
Resultados de la búsqueda Ficha de una imagen

Contrapongamos esta equivocada decisión con la maquetación elegida por el Museo del Prado para su sitio web: el museo luce las obras en el centro de atención. Las exhibe en toda su grandeza. Se recrea en ellas e invita a seguir explorándolas. Todo lo demás es accesorio y queda oculto tras un interfaz de usuario reducido a la mínima expresión.

Portada del Museo del Prado

La navegación por al colección fotográfica del CDIS también es tediosa. La retahíla de defectos y limitaciones es la tristemente habitual en cualquier sitio web promovido por organismos públicos. La omitiré aquí, para no hacer este resumen largo y penoso.

2. Por las marcas de agua

Antes de presentarlas al ciudadano, el CDIS sobreimprime una enorme marca de agua sobre las imágenes que atesora. Lejos de ser un discreto sello, es una monumental firma con las palabras «Centro de Documentación de la Imagen de Santander». Y ocupa de lado a lado el tercio central las imágenes.

La marca de agua del CDIS es molesta. Interfiere con la contemplación de las fotografías, que es la misión primordial del Centro, según su propio sitio web. En algunos casos, la marca de agua incluso dificulta la identificación de elementos esenciales de la escena.

Pero es que esta marca de agua además de molesta es también ineficaz, pues es posible eliminarla de cualquier imagen para dejar sin efecto la función denominativa y protectora que se le presume. Un poco más abajo explico cómo, a efectos únicamente pedagógicos.

Con marca de agua Sin marca de agua
Con marca de agua Sin marca de agua

3. Por el modelo de licenciamiento

Si el objetivo declarado del CDIS es «poner el patrimonio fotográfico municipal a disposición de» la ciudadanía, ¿por qué no se hace mediante un licenciamiento abierto y permisivo? Una licencia que permita y promueva una interacción sana de los usuarios con el contenido que se expone. Cada vez más organismos públicos se adhieren a licencias como Creative Commons. El reconocimiento de los autores de las imágenes y el respeto a los derechos del CDIS no tiene por qué estar reñido con facilitar el acceso y promover la reutilización responsable de una obra que sin usuarios pierde todo sentido.

El aviso legal del CDIS es confuso en este sentido. Por una parte, hace una reserva expresa de todos los derechos y prohibe, entre otras cosas, la copia, transmisión y difusión no autorizadas. Pero hace una exención para un «uso personal» que no concreta:

Todo material, marcas registradas u otras propiedades intelectuales de este website son propiedad de AYUNTAMIENTO DE SANTANDER o de sus compañías afiliadas, y están protegidas por los derechos de autor.

Está permitida su reproducción para uso personal.

Queda prohibida cualquier modificación, copia, alquiler, préstamo, trasmisión y difusión no autorizada. El material de este website no puede ser vendido ni distribuido de otra forma con ánimo de lucro.

Todos los derechos Reservados.

Compra de una imagen

Por otro lado, y sin embargo, el sitio web del CDIS ofrece al ciudadano la compra unitaria de imágenes, que son entregadas al comprador en un CD (!). Y especifica:

A través del portal del CDIS sólo podrá descargar las imágenes que desee adquirir para uso privado o público sin ánimo de lucro en media resolución (JPG). Para la compra de imágenes en alta resolución (TIFF) o para uso público con ánimo de lucro, póngase en contacto con el CDIS.

Queda claro, pues, que es preciso comprar las imágenes para cualquier uso «privado o público sin ánimo de lucro». Algo que parece chocar con el permiso de reproducción «para uso personal» del aviso legal, si bien ni aquel texto ni este definen qué es un uso «personal» ni en qué difiere de un uso «privado».

4. Porque no está adaptado a móviles y no es seguro

El aviso legal del sitio web del CDIS data de 2008. Y aunque por aquel entonces ya eran habituales las tabletas y teléfonos, el sitio web no está adaptado a estos dispositivos.

Las exposiciones, desde mi iPhone La ficha de una imágen, desde el móvil
Las exposiciones, desde el móvil Ficha de una imagen, desde el móvil

Y aunque el sitio tiene instalado un certificado criptográfico y ofrece la posibilidad de comunicaciones seguras, no está redireccionado correctamente. Esto hace que el intercambio de información personal del ciudadano con el sitio, por ejemplo para comprar imágenes, no se realiza de forma segura. He comprobado que los usuarios que acceden al CDIS desde una búsqueda en Google lo hacen por un canal inseguro:

Aviso de sitio no seguro

En resumen…

En definitiva, el sitio web del CDIS es el principal instrumento de la ciudadanía para acceder al patrimonio fotográfico de la ciudad de Santander, toda vez que las visitas al Centro requieren de solicitar una cita previa y anticipar un interés específico, tal y como me han expresado por teléfono.

Este sitio web es un desarrollo tosco, que proporciona al ciudadano un buscador limitado e ineficaz. Es probable que el propio personal técnico del Centro esté padeciendo igualmente las limitaciones de esta rudimentaria herramienta.

Y sin permiso previo no está permitido hacer con los recursos fotográficos del CDIS nada que no sea la mera consulta individual y doméstica a través de un canal web ineficiente.

Si el fondo del CDIS es un tesoro de la ciudad, más que ponerse a disposición de sus habitantes, parece estar cogiendo polvo en una catacumba municipal.

Dicho esto, creo que es magnífico contar en la ciudad con una entidad como el CDIS, y valoro muy positivamente la labor que desarrolla.

¿Y por qué sucede esto?

Voy a ser muy claro aquí.

No es la única razón, pero sucede porque no existe una verdadera competencia entre los contratistas de las administraciones públicas. Cada ayuntamiento, cada consejería, cada organismo tiene su elenco de proveedores de confianza. Es un coto cerrado al que se accede —en el mejor de los casos— por relaciones interpersonales y cabildeo. Y, en el peor, mediante contrapartidas y favores. Un recinto amurallado con «ofertas de acompañamiento», pliegos «a medida», contratos «dirigidos» y requerimientos técnicos injustificados que —¡sorpresa!— solo los contratistas del elenco satisfacen.

Otra razón es el kafkiano modelo público de desarrollo de servicios digitales, que excluye a los proveedores competentes y recompensa la excelencia en redactar ofertas. El resultado es conocido por todos.

El reto

Descartada la resignación, con este proyecto me he propuesto experimentar con una fórmula alternativa para poner en valor el tesoro del CDIS.

Al resultado lo he llamado Retrosantander y está visible —no sé por cuanto tiempo— en retrosantander.com.

Se trata de una prueba de concepto que he confeccionado a título personal para explorar mis ideas en torno a una nueva exploración efectiva exploración de esta base de datos multimedia.

Me he propuesto destinar tan solo un fin de semano a este reto, razón por la cual debe entenderse como una experimento con defectos y aristas sin pulir.

Tengo más ideas para este prototipo, que en esta ocasión han de quedarse en el tintero.

Obteniendo y estructurando la base de datos del CDIS

A título de experimento personal, es posible descargar la base de datos del CDIS y reconstruirla para ponerla en valor con un interfaz de exploración alternativo.

Sería así.

1. Descargar todas las páginas de resultados

Nos apalancamos en el filtro de rango temporal para provocar una búsqueda que devuelva todo el catálogo. Consignamos para ello un filtro entre los años 0 y 2050, e iteramos por todas las páginas resultantes.

mkdir pages
curl --output "pages/page_#1.html" \
"http://portal.ayto-santander.es/portalcdis/PrepareBuscadorFotosList.do?"\
"buscadorgeneral=1&"\
"palabraclave=&"\
"fotografo=&"\
"fechainicial=0000&"\
"fechafinal=2050&"\
"goto=[1-793]"

2. Extraer la dirección de todas las fichas

Aplicando un grep de una expresión regular a cada una de las páginas de resultados obtenidas en el paso anterior conseguimos la relación de todas las fichas de imágenes del CDIS. Exportamos el conjunto en un fichero de parámetros con el que alimentaremos curl en el paso siguiente.

grep --no-filename --only-matching \
    'portalcdis/Public/FotoView.do;jsessionid=.\{32\}?id=\d\+' \
    pages/page_*.html \
    | while read line; do \
        echo "url=http://portal.ayto-santander.es/$line"; \
        echo "output=images/image_`echo $line | grep --only-matching "\d\+$"`.html"; \
    done \
    > images.txt

3. Descargar todas las fichas

Ahora podemos descargar iterativamente todas las fichas del CDIS…

mkdir images && curl -K images.txt

4. Extraer la dirección de todas las imágenes

…Y obtener de cada una la dirección URL de su imagen, en dos formatos: con la enorme marca de agua estándar del CDIS, y en «modo exposición», que añade una marca mucho más sutil.

mkdir jpeg
ORIGIN=http://portal.ayto-santander.es
grep --no-filename --only-matching \
    'portalcdis/image/DownloadFile.do?id=\d\+' \
    images/image_*.html \
    | while read line; do \
        ID=`echo $line | grep --only-matching "\d\+$"`
        echo "url=$ORIGIN/$line"; \
        echo "output=jpeg/${ID}_a.jpeg"; \
        echo "url=$ORIGIN/`echo $line | sed 's/DownloadFile/DownloadFileExposicion/'`"; \
        echo "output=jpeg/${ID}_b.jpeg"; \
    done > jpeg.txt

5. Descargar todas las fotos

La descarga de las imágenes se hace con cURL, introduciendo la sucesión de URL y ficheros de salida con el fichero de texto creado en al paso anterior.

mkdir jpeg && curl -K jpeg.txt

6. Interpretar las fichas y crear el repositorio JSON

He escrito un intérprete, parser.php, que mediante expresiones regulares procesa las páginas HTML del CDIS y devuelve los resultados estructurados. Pasamos su salida a jq para obtener la base de datos reconstruida en retrosantander.json.

for file in images/image_*.html;
    do cat $file | php parser.php; done \
| jq --slurp > retrosantander.json

7. Eliminar la marca de agua

Obtenidas dos versiones de cada imagen, cada una con una marca de agua diferente, es posible combinarlas en una tercera sin marca de agua alguna. Un método para ello es recortar el 10 % inferior de la primera versión con el 90 % superior de la segunda y unir ambos recortes. Esto se puede automatizar para todo el fondo del CDIS.

Eliminación de la marca de agua

mkdir merged
for id in `jq --raw-output '.[].id' retrosantander.json`; do
    convert \
        jpeg/${id}_b.jpeg \
        \( jpeg/${id}_a.jpeg -gravity south -crop 0x10%+0+0 \) \
        -composite merged/${id}.jpeg;
done
You might also like...

La extensión web que muestra el precio de los juegos de la web de Xbox, PlayStation, Nintendo y Epic Games Store con los impuestos de Argentina incluidos. Conocé cuanto vas a pagar por tus juegos 💚💙❤️

La extensión web que muestra el precio de los juegos de la web de Xbox, PlayStation, Nintendo y Epic Games Store con los impuestos de Argentina incluidos. Conocé cuanto vas a pagar por tus juegos 💚💙❤️

Conocido anteriormente como Xboxito Impuestito - Conocé el precio real de los juegos Impuestito calcula y muestra el precio de los juegos de la web de

Dec 4, 2022

promiseTimeout es como un setTimeout cualquiera, con la diferencia de que retorna una promesa

promiseTimeout es como un setTimeout cualquiera, con la diferencia de que retorna una promesa. Lo que permite un mejor manejo de la asincronía.

Nov 4, 2022

Una mejor mirada a tu perfil de GitHub. ¡Con gráficos!

GithubProfile Este proyecto esta realizado para que tu puedas apreciar de manera simple y sencilla los datos de tu perfil de github. Este proyecto con

Oct 31, 2022

Workshop contruyendo una API Rest con Node.js + Koa.js

Workshop contruyendo una API Rest con Node.js + Koa.js

Workshop contruyendo una API Rest con Node.js + Koa.js Tabla de Contenido Acerca de Introducción Explicación del caso de uso Ciclo de vida de las soli

Apr 8, 2022

Breve explicacion de Mongoose, asi como un codigo con las operaciones CRUD

Breve explicacion de Mongoose, asi como un codigo con las operaciones CRUD

Introduccion a Mongoose ¿Qué es MongoDB? MongoDB es una base de datos NoSQL (Not Only SQL) y por ende no relacional que es utilizado para proyectos we

Mar 17, 2022

Este repositorio contendrá el proyecto final de Angular con temática de Pokemon Unite

ProyectoFinal This project was generated with Angular CLI version 14.0.2. Development server Run ng serve for a dev server. Navigate to http://localho

Jun 19, 2022

📂 Listado de empresas con trabajos tecnológicos dentro de la Región de Murcia.

📂 Murcia Tech Hub Listado de empresas con trabajos tecnológicos dentro de la Región de Murcia. Si conoces alguna empresa más o puedes poner algún dat

Jun 30, 2022

Repositorio sobre arrays con información y ejemplos.

Arrays Repositorio sobre arrays con información y ejemplos. 1)Para poder utilizar el repositorio correctamente es necesario que se eliminen los coment

Sep 14, 2022

Vamos a realizar un juego muy sencillo en TypeScript, posteriormente lo vamos a desplegar en Microsoft Azure con Servicio de Azure Static Web Apps.

Vamos a realizar un juego muy sencillo en TypeScript, posteriormente lo vamos a desplegar en Microsoft Azure con Servicio de Azure Static Web Apps.

Taller TypeScript Descripción Vamos a realizar un juego muy sencillo en TypeScript, posteriormente lo vamos a desplegar en Microsoft Azure con Servici

Oct 10, 2022
Comments
  • El ejemplo de uso del script de importacion no funciona

    El ejemplo de uso del script de importacion no funciona

    El ejemplo de uso del script de importacion no funciona porque sigue aputando al CDIS de Santander. Estaría bien contar con un ejemplo bueno para poder reproducir los pasos y dejar el sistema funcionando en local, de modo que se pueda contribuir mas facilmente.

    opened by jespino 2
  • No se estan interpretando las entidades html en los titulos de las fotos

    No se estan interpretando las entidades html en los titulos de las fotos

    Buenas, he encontrado un pequeño bug, no se estan interpretando las entidades html (") en este caso, en el titulo de las imagenes.

    El problem parece estar en que se hace un reemplazo de innerText en lugar de innerHtml (lo cual tiene sentido para evitar tener que sanitizar), pero estaría bien reemplazar las entidades html durante el importado, para que funcionen con el innerText.

    Adjunto captura:

    imagen

    opened by jespino 2
Owner
Jaime Gómez-Obregón
Utilizo datos y tecnología para dar más transparencia a las cosas del sector público en España.
Jaime Gómez-Obregón
Questi sono i miei plugin del cazzo, scritti col culo, ma con tanto amore. 50 euro.

ReaperianiJS Questi sono i miei plugin del cazzo, scritti col culo, ma con tanto amore. 50 euro. Spiegone: Il fuorilavoce è un plugin di eq M/S (mid s

null 9 Feb 11, 2022
Codigo del Webinar de Organizador de Tareas con autenticación

Webinar Organizador de Tareas con autenticación Bienvenido al repositorio ??️ del Webinar donde podrás encontrar el codigo expuesto ??️ Para comenzar

Eduardo de Rivero Manrique 4 Jun 24, 2022
Haciendo una aplicación del tiempo ☁️ con #Angular 13 🅰️

Angular Boilerplate Boilerplate para trabajar con Angular, este proyecto listo para trabajar las pruebas unitarias con Jestjs y eslint. Este proyecto

DOMINICODE 4 Apr 20, 2022
Repositorio del video de YouTube sobre creación y generación de imágenes de docker con Node

Importante Tener instalado Docker Desktop!!! Comandos usados Login de Docker Hub docker login Generar la imagen, especificar el TAG (-t) y el punto s

Fernando 5 Oct 27, 2022
Plataforma del Registro de Autoexclusión del Juego

WebApp boilerplate with React JS and Flask API Styles You can update the styles/index.scss or create new .scss files inside styles/ and import them in

Daniel Bañobre Dopico 7 Feb 4, 2022
Recreación del entorno de escritorio del sistema operativo macOS Monterey utilizando HTML, CSS y JavaScript

macOS Réplica del sistema operativo macOS Monterey utilizando HTML, CSS y JavaScript. GitHub pages https://jonathan-yv.github.io/macOS/ Componentes Ve

Jonathan Yair Vazquez 4 Feb 4, 2022
Repositorio oficial de la sección 1 y 2 del periodo 2022-2 del curso PUC IIC2513 Tecnologías y Aplicaciones Web

IIC2513 - Tecnologías y Aplicaciones Web 2022-2 S1 y S2 Bienvenida/o al repositorio de las secciones 1 y 2 del curso PUC IIC2513 Tecnologías y Aplicac

null 59 Dec 14, 2022
Repositório com código da segunda live do Santander Coders Web FullStack

CASE WEB APP DE PREVISÃO DO TEMPO Node.js Como iniciar projeto React de maneira simples: Create React App (CRA): npx create-react-app nome_do_app Vite

Let's Code 29 Apr 3, 2022
🕹️⚡ Ecommerce de jogos. Projeto Integrador desenvolvido para a instituição de ensino Centro Universitário Eniac.

What is inside? This project uses lot of stuff as: NextJS ReactJs Typescript Jest Testing-library Styled Components Storybook Eslint Prettier Plop Hus

Gabriel Guedes ★ 3 Sep 28, 2022
A personal semantic search engine capable of surfacing relevant bookmarks, journal entries, notes, blogs, contacts, and more, built on an efficient document embedding algorithm and Monocle's personal search index.

Revery ?? Revery is a semantic search engine that operates on my Monocle search index. While Revery lets me search through the same database of tens o

Linus Lee 215 Dec 30, 2022