La informática personal y el uso del ordenador es algo común en nuestras vidas; así que ya no tiene sentido hablar de nuevas tecnologías como llevábamos tantos años haciendo. Sin embargo, yo creo que deberíamos crear un nuevo término: tecnologías redescubiertas. Este palabro se aplicaría cuando nuestros jóvenes nativos digitales (toma definición) se quedan parados sin saber qué hacer para poder trabajar con sus equipos digitales. Entonces llega un viejo cincuentón y les explica algo de cuando esto eran nuevas tecnologías: ese es el momento de la tecnología redescubierta. Y viendo el título de la entrada muchos ya colegiréis por dónde van los tiros…
La gente más joven (que casi nunca ha visto una línea de comandos) está acostumbrada a tener la información rodeándolos. Así abren el móvil y fotografían algo. Si encienden la tableta o el PC esa foto aparece allí sin hacer nada (a poco que tengan la sincronización entre el Onedrive, googledrive o el iDrive… de turno) para ellos es normal. A mí a veces todavía me parece magia. Así que cuando tienen un problema que requiere saber como se estructura y organiza mínimamente la información la cosa se pone difícil de resolver. Y además la educación actual no ayuda. Todo es explicar conceptos nuevos y de moda… pero la base se abandona.
Como siempre algunos ejemplos de lo que intento decir y además los dos parecidos:
- El cloud está en las nubes, pero los discos locales ¿qué son?: este año uno de mis hijos ha comenzado una carrera universitaria. Tiene relación con la tecnología digital, pero de forma transversal (vamos que sin la informática la carrera no existiría, pero para ellos la informática solo es una herramienta que no hay que estudiar mucho ((otro día hablaré de esto)) porque lo que importa es lo otro). Así que en matemáticas tienen unos temas de prácticas con el paquete R Studio (que ahora se llama Posit). Una noche mi hijo baja a buscarme. Yo estaba en el salón pensando qué serie iba a ver aquella noche. Mi hijo me comenta que estaba terminando la práctica de estadística. Que dos de los ejercicios en la biblioteca de la Universidad funcionaban bien… pero que aquí en casa no funcionan. Además, me indica que si ejecuta la rutina de ejemplo de su profesor sigue funcionando bien tanto en la Universidad como en casa.
Así que aquí dejó el mando del HTPC (soy un viejo me gusta más mi PC que la TV espabilada) y me voy a la habitación de mi hijo. Allí me encuentro con las pantallas del R Studio. Mi hijo lanza la práctica y aparece el error. No hace falta que diga que hasta ese momento yo del R solo sabía que era un lenguaje que se usaba para estadística y para manejar datos… pero nunca había pasado de ahí. Miro el texto del error y aparecen las palabras not found y un nombre. Veo que ese nombre es una colección de datos que el profesor les ha pasado y que es donde está la información que deben analizar en la práctica. Le digo a mi hijo que no tiene cargada esa base de datos. Me dice que si, lanza un comando interactivo consultando la base de datos y ésta se muestra en pantalla.
Así que tengo que buscar un manual de R y trato de localizar un ejemplo de código donde aparezca la función que genera el error en la práctica de mi hijo. Veo un par de ejemplo y me doy cuenta de que en dichos ejemplos hacen referencia a una unidad de disco local. Le preguntó a mi hijo donde tiene guardados los datos del profesor… y no lo sabe. Al final descubrimos que están en un GoogleDrive del Departamento de Estadística. Y yo descubro que en R Studio puedes importar una base de datos desde cualquier lugar de la nube con un comando interactivo. Y entonces esa base de datos está disponible siempre y cuando sigas en modo interactivo. Si ejecutas una función propia… falla.
Como yo tenía ganas de acabar pronto (a pesar de otras malas experiencias por querer terminar pronto mi ayuda a mis hijos) decido empezar de cero. Me voy al disco físico del PC de mi hijo. Creo un directorio con el nombre de la práctica y copio allí todas las bases de datos desde el googledrive. Copio también el fichero con las funciones de la práctica en el mismo directorio. Y en la función que daba el error le ponemos delante del nombre de la base de datos la ruta al disco local… y funcionó a la primera.
Traté de explicarle a mi hijo la diferencia entre la nube y una ubicación en local. Y como en ciertos programas las referencias a datos en la nube no funcionan en modos no interactivos…
- ¿Qué es una ruta de un directorio?: hace un par de semanas me llama un amigo. Me dice que si hija (que está estudiando una carrera muy semejante a la de mi hijo) tiene un problema con las prácticas de estadística. Me dice que si sé algo de compilar en lenguaje R. Le digo que conozco el lenguaje R de un encontronazo de mi hijo con él. Me dice que si puedo ayudar a su hija. Tiene una práctica que cuando la ejecuta dentro del R Studio funciona bien. Pero que al compilarla para entregarla (se lo piden así) aparece un error. Al final le digo que se pase su hija por casa.
Veo que lo que me decía era correcto. Las funciones en la práctica funcionaban bien al lanzarlas dentro del entorno R Studio. Pero al tratar de compilar a html aparece un error. Y se parecía sospechosamente al que me salía con mi hijo. Así que repito la solución: creo un directorio en local y copia allí todo, hago una llamada desde la función de R al directorio en local… pero sigue dando error. Entonces dato mi gran desconocimiento del lenguaje R decido usar la técnica del salchichón (pero solo la parte de dividir un problema en lonchas, digo en partes más pequeñas y más simples). Veo que el error aparece en la primera llamada a una base de datos en el código que hay que compilar. Así que hago un programa que solo abre la base de datos y muestra el primer campo en pantalla. Lo compilo y aparece el mismo error.
Con esa información vuelvo al manual de R y busco como se abre un fichero en un código que hay que compilar. Veo que antes de hacer la llamada a la base de datos hay un comando para fijar el path de la base de datos, vamos la ruta de directorios. Así que pongo ese comando apuntando a la ruta donde están las bases de datos en el directorio local que había creado… y compila bien.
Así que tuve que volver a explicar a la hija de mi amigo qué era un directorio, qué era la ruta de dicho directorio y que el compilador de R no puede adivinar en qué nube tiene ella los datos.
Lo mejor es que creo que ninguno de sus profesores de estadística ha pensado en estas cosas. Que si no hay una mínima base de conocimientos es difícil hacer cosas más elevadas. Pero es lo que tienen estos tiempos nuevos en los que las viejas tecnologías se olvidan… hasta que hacen falta. Como decía al principio tendremos que pedir una asignatura que se llame “Redescubrimiento de tecnologías que antes fueron nuevas”.
Un Comentario
Comentarios Cerrados
El problema es que R además es muy de la vieja escuela para tratar el tema de directorios. No me he pegado mucho con R, pero una tarde me dio por probar a intentar hacer rutas a directorios relativas, de forma que el código que subiera a github no dependiera de rutas absolutas y pudiera ser ejecutado desde cualquier directorio local siempre que se mantuviera mi estructura de directorios en github, y en las horas que empleé buscando un método para conseguirlo no me fue posible, tampoco lo miré mucho más, estoy segura de que alguna forma tiene que haber, pero en una tarde no fui capaz de encontrarlo.