NAV:
En los últimos meses, cuando quiero programar, me conecto a texto-plano.
Esta semana hice un pequeño script en python que me permite consultar mi base de datos de cine.
Desde antes del cambio de milenio vengo recopilando todo el cine que consumo.
Anoto cada película que veo.
Esta recopilación, que empezó en un cuaderno de tapas blandas y 48 hojas fue mutando con el tiempo.
Pasó a digital en un archivo txt y llegó a etapas de obsesión y complejidad preocupantes.
Durante un tiempo usé una base de datos relacional con varias tablas interconectadas.
En otro momento llegó a ser sitio web entero con cientos de páginas apretadas en un pendrive de 128MB.
Un HTML cargaba dos archivos Javascript. Uno armaba la maqueta de la página -Encabezado, navegación, cuerpo y pie- y otro levantaba los datos desde un archivo json.
Finalmente, mi querida base de datos de cine, terminó siendo un excel con casi 2 mil registros.
Cuando se llega a ese volumen, cualquier cambio de formato se plantea como una tarea titánica. De modo que antes de cerrar la segunda década del siglo XXI, la aburrida hoja de cálculo quedó confinada al pendrive.
Cada vez que tenía que actualizar o consultar, debía conectar el pendrive y lanzar el excel. Para lo cual, debía estar frente a una máquina que tuviera M$ Office, puerto USB y debía llevar el pendrive conmigo a todas partes.
Parecía que mi base de datos estaba llegando a su fin.
Cuando aterricé en Texto-Plano, empecé la ardua tarea de pasar mi base de datos en excel a páginas web. Un poco por diversión, otro por nostalgia y otro poco por obstinación.
Cuando volví de vacaciones este año me di cuenta de que habían pasado meses y aún no había llegado a cargar siquiera 50 películas de la base.
Entendí el esfuerzo y el tiempo invertidos y por invertir. Agradecí los momentos disfrutados y decidí dar por terminado el proyecto.
La semana pasada volví a pensar en el listado de excel y me di cuenta de que podría guardar mi base de datos en formato CSV (valores separados por comas) y usar Python para las consultas.
Python tiene un módulo especial para trabajar con archivos CSV.
Me desperté con la mayor parte del código en la cabeza y durante el desayuno hice un programa súper sencillo que hiciera lo siguiente:
- tomar la cadena que se le diera como argumento
- abrir el CSV
- recorrer el CSV en un loop
- - buscar la cadena del argumento en cada registro parseado
- - devolver un print si encuentra la cadena en el registro revisado
Sé que para un programador experimentado es una tontería que puede llevar 15 minutos. Pero para mí era como haber llegado a la cumbre del cerro Otto y tomarme un capuchino en la confitería giratoria de la cima.
El programa tiene 12 lineas, pero cumple a la perfección la tarea de consultarla base de datos y devolver los registros coincidentes.
Al día siguiente, entusiasmado por el logro, hice otro, que consulta la api de OMDB y devuelve una gran cantidad de información sobre la película que le pidas.
Es un poco más difícil ya que necesito hacer el request a la api, parsear el json resultante y luego mostrar los datos que me interesan en un formato más o menos legible.
Tardé un poco más, pero lo conseguí. Estoy muy conforme con los resultados.
Tiene 13 lineas -una más que el anterior- y cumple lo que se le pide.
Les dejo el enlace de la OMDB:
Si les interesa puedo poner el código, pero como dije, para un programador, debe ser una papa.
Probablemente, mis próximas incursiones en la programación me ayuden en la tarea de agregar registros a la base.