Qué ando haciendo este 2018
Desde hace un tiempo no escribo nada en el blog y constantemente llegaba a mi apartado de pendientes ─en el escaso cerebro que tengo─ el tema de tengo que escribir algo para el blog. Hay que tener en cuenta que este aparente abandono no es porque no haga nada, sino todo lo contrario: he estado haciendo muchas cosas y comenzando algunos proyectos.
Cosas que voy haciendo
Escribir
Últimamente escribo todos los días. De momento no escribo nada publicable que se pueda poner por aquí o por cualquier otro canal. Si alguna vez me animo a publicar algo ya avisaré a ver si entre los habituales del blog consigo uno o dos lectores más... bueno, uno o dos lectores en total no estaría mal.
Limpiando la tablet
Cuando me desplazo ─normalmente en moto─ es muy incómodo llevar el ordenador portátil en la mochila. Poder se puede, para eso es portátil, pero pesa demasiado y a los veinte minutos de llevarlo colgado en la espalda en la moto, me sobra todo el ordenador. Por eso, me compré una tablet baratilla una «bq M10» y un miniteclado bluetooth para escribir con más soltura que con el teclado virtual en pantalla, que es un engorro.
Llevo tiempo pegándome con ella intentando retirar todo vestigio de gúgel del chismático. Sigue resistiéndose al rooteo y no consigo desinstalar todas las mierdas que trae del Gran Hermano, pero de momento he conseguido deshabilitar bastantes. Ahora mismo sólo estoy utilizando aplicaciones que se puedan descargar desde f-droid. He conseguido sustituir el launcher que venía por defecto: de momento estoy probando Launch time y parece funcionar correctamente. Me permite ordenar por categorías las aplicaciones. La traducción es terrible y he modificado las categorías y los colores. Además me permite ocultar las aplicaciones que no quiero utilizar, por ejemplo, todas las que no me ha dejado android inhabilitar, han pasado a la categoría «escondido».
Pero no descarto, conseguir en algún momento el rooteo de la máquina y quitar todo lo que sobra. El ideal sería poder instalarle alguna distro GNU/Linux para ARM. Pero bueno, de momento me conformo con termux que permite instalar git, openssh, emacs, ledger y muchas más aplicaciones que utilizo en el día a día.
Scheme
Llevo trasteando un tiempo con el scheme, que como la mayoría sabréis ya de sobra, es uno de los herederos del paradigma iniciado por lisp. El objetivo es cambiar un poco mis (dos) neuronas, oxidadas y bloqueadas en la programación orientada a objetos, hacia la programación funcional. Después de intentar varias veces entender cómo funciona Haskell me parece que primero tengo que «desaprender» algunas cosas y cambiar mi forma de aproximarme a los problemas de programación.
He trasteado en tiempos pasados con emacs-lisp para aprender a hacer algunas cosas con él ─y sigo utilizándolo─ pero me atrae scheme. Comencé con guile y sigo utilizándolo ─no me entendáis mal─, es un buen scheme. Sin embargo, por algún sitio que ahora no recuerdo alguien recomendó chicken scheme y decidí probarlo... ¿por qué?: Pues porque tiene eggs la cosa. Incluso encontré paquete precompilado para OpenSuse. Pero no funcionó a la primera. Bueno sí, funcionó pero me daba de bruces siempre cuando quería instalar alguna librería que no viene con la instalación básica. En chicken esas librerías se llaman eggs y para mí era básico instalar la utf8 y alguna más. Una de las características que más me atrajo de chicken es la posibilidad de compilar a C y generar ejecutables independientes.
Después de varios intentos de compilarme yo el sistema, lo conseguí y lo tengo instalado, funcionando y pudiendo instalar y desintalar eggs para ampliar aún más su funcionalidad. De hecho estoy intentando compilarlo dentro de termux de android. Sin éxito de momento, pero aún no he tirado la toalla.
El proyecto
Para aprender cualquier lenguaje de programación, hay que practicar. Por eso he pensado en hacer algo, algún proyecto, obligándome a utilizar el lenguaje en cuestión. He decidido que lo haré con chicken.
El proyecto que se me ha ocurrido es complejo y no sé si conseguiré llevarlo a término. Desde que era joven y estudiaba en la facultad de psicología me fascinaban las «inteligencias artificiales». Recuerdo que me hablaron de algunas en la asignatura de «pensamiento y lenguaje». Sin embargo, dada la peculiaridad del catedrático y su cohorte esa asignatura y toda la «psicología cognitiva» se convirtió, en esa facultad, en una de las materias más odiadas de todo el programa educativo. Para mí, la «disonancia cognitiva» era impresionante: me atraía lo mismo que odiaba. Con el tiempo aprendí a separar a las personas de la materia que (no) enseñaban.
Mi idea de proyecto es hacer una inteligencia artificial, algo para lo que lisp se ha utilizado con mucha frecuencia. Pero qué hará esa inteligencia artificial aún no lo sé, desde luego no conducir mi coche ─creo que el seguro no me lo perdonaría─. De hecho, los sistemas que más me llamaban la atención son los que hacen tareas propiamente humanas donde se supone que no hay posibilidad de «automatizar» tareas. Eso pensaba con el ajedrez y el go, y ya hay máquinas que juegan mejor que los campeones humanos. También leí por ahí que se ha publicado un libro con poemas escritos por una inteligencia artificial, he leído alguno de esos poemas y no están mal ─aunque sé que están escogidos, la máquina generará miles de poemas para elegir unos pocos─. También he leído por ahí sobre algunas IA que escribe prosa siguiendo parámetros como «personajes» y «escenarios». Incluso una que escribió un capítulo completo de «Juego de Tronos» dándole como entrada las novelas y guiones de la serie.
Mi objetivo no es hacer una IA que supere el Test de Turing, pues me conformo con aprender scheme y la programación funcional. Seguramente no conseguiré nada aprovechable de ello, salvo aprender algunas cosas. De momento estoy leyendo y documentándome por la página web de la Sociedad Española para el Procesamiento del Lenguaje Natural a ver si aprendo algo. Y también me estoy leyendo ─para aprender algo─ Procesamiento automático del español con enfoque en recursos léxicos grandes.
Otras cosillas pendientes
Proyectos pendientes
Además sigo con el proyecto de la isla, que ha sufrido un parón al pasar de BlenderEngine a Godot Engine. Sin embargo, sigue ahí pendiente a que aprendamos cómo va el nuevo sistema.
Nuklear
Trasteando con los eggs de chicken, por casualidad... Bien bueno, he de admitir que por torpeza, quise pinchar en ncurses en la lista de eggs y pinché en nuklear, que era el siguiente de la lista. Bueno, el caso es que acabé mirando de qué iba y me encontré una librería curiosa. Nuklear es una librería GUI minimalista autocontenida en un sólo fichero cabecera de C. Ahí va el código, la documentación y todo, sólo tienes que enlazar tu programa con él. Además las screenshots que se muestran en el sitio del código están bastante curiosas y producen GUI's, bastante agradables de ver. Así que nada... otra cosa que se añade a pendientes.
De hecho no descarto que si al proyecto de la IA en marcha decido ponerle un UI, más allá del CLI que había pensado desde el principio, seguramente aproveche para echarle un ojo.
Pues en esas cosas ando.
Comentarios