El capitán

Oviedo, 30 / 12 / 2016 minas tecnología

Hace ya muchos que entendí que mi camino no era el del resto, creo recordar que fue durante la celebración del Cartel Des Mines que organizamos en la escuela, sentado en un banco sobre la playa de Perlora mirando a mis compañeros trabajar en la carpa donde organizabamos las comidas, en un momento que después de no menos de 5 días de trabajo ininterrumpido con muy contadas horas para dormir cuando tuve una visión preclara.

Ellos, y el resto de la gente de mi generación, eran víctimas de una psicosis colectiva que les hacía creer que el sistema funcionaba, que si te esforzabas, tenias pocos escrupulos y pisabas a todo el que se te ponía delante iban a llegar arriba. Pero yo, habiendo salido escaldado del pinchazo de las puntocom, con pufos por pagar y heridas que lamer, veía el mundo de una manera mucho más madura y entendí que mi vida iba a ir por un derroteros muy diferentes a los suyos.

Metaforicamente, mi generación se subió a un crucero rumbo al éxito y yo me quedé en tierra, muchos pensaron que lo había perdido, algunos incluso tomaron mis advertencias sobre la burbuja inmobiliaria como síntomas de envidia. Esta no tardaría en abrir una enorme vía de agua en el barco de sus sueños, y aún con el agua al cuello muchos siguieron tratándome con desdén a pesar de lo acertado de mis pronósticos.

Hay que entender que la burbuja fué una distorisión económica construida a base de crédito para que unos incompetentes, al no tener ni idea del cambio tecnológico, pudieran lucirse profesionalmente a costa de llevar a la quiebra a sus economías familiares, empresariales, regionales y nacionales. Es un patrón muy común en los señoritos que heredan una fortuna que la dilapiden en negocios ruinosos que solo sirven el propósito de satisfacer sus egos.

Por esta razón los trabajos de naturaleza informática estuvieron muy poco valorados socialmente durante los años de la burbuja, como los jefes no tenían ni idea de informática no hacía falta saber informática para ser jefe y esto se instauró como norma en la sociedad relegando al que tenía pericia técnica a una casta inferior, casi innombrable, la de friqui informático.

Pero ese juego ya se ha acabado, despues de la burbuja y su proroga crediticia por parte de los bancos centrales viene la cuarta revolución industrial y para encararla las empresas no les basta con tener un aprobado, raspado, en las materias tecnológicas, como si valía en los años de burbuja, si no que necesitan un sobresaliente para poder superar estos años de cambio tecnologico. Por lo tanto no les basta personal para cubrir el expediente de cualquier manera, necesitan el mejor talento del mercado para poder adaptar sus negocios a la forma de trabajar en el siglo XXI, y ese talento, en el que me incluyo, es muy escaso y está muy demandado.

A diferencia de mis cogeneracionarios, al tener una mejor formación tecnológica fuí plenamente consciente de los cambios que se estaban dando en el mundo informático y dediqué estos años, mientras intentaba montar SpaceManagers a formarme en todas las materias relativas a esta, lo que fué una nefasta estrategia para montar la empresa pero excelente para moldear mi curriculum, y a día de hoy soy ingeniero de pila completa para aplicaciones de aprendizaje automático y visión artificial para la industria minero-metalúrgica y materiales.

El problema que me he encontrado es que hay mucha gente que sigue con la idea fija de que si trabajas con ordenadores eres idiota y se te puede tomar el pelo sin consecuencias, y es todo lo contrario, las personas olvidan, los ordenadores no. Ya hay unos cuantos que cuando dentro de unos meses-años vengan a pedir ayuda porque no tienen ni repajolera idea de como enfocar un problema o un proyecto que haga uso intensivo de estas tecnologías, algo que es más que probable, se van a encontrar mi puerta cerrada.

Yo no voy a tener ningún problema en echar una mano a quien lo requiera, la situación entiendo que es muy dificil, pero la mano es la mano, no el brazo. Si ellos se subieron a un mal logrado crucero destino al éxito yo me he pasado estos años armando un remolcador para poner rumbo a la cuarta revolución industrial y no me importará echar un cable a quien lo necesite pero siempre con el debido respeto, que el remolcador lo capitaneo yo.

El cambio

Avilés, 16 / 12 / 2016 inteligencia artificial minas tecnología

Estamos viviendo una revolución en la forma de trabajar con los ordenadores, aunque esta no es evidente ya que parece que las fuerzas de trabajo están plenamente digitalizadas esta digitalización es producto de una primera ola de cambio tecnológico en el que las computadoras se adaptaron a las oficinas intentando de una forma impresionatemente efectiva convertirse en mejores maquinas de escribir que las maquinas de escribir, mejores proyectores de diapositivas que los proyectores, mejores mesas de dibujo que las mesas.

Pero hay que entender que uno de los elementos claves de esta primera revolución, la de la ofimática, es precisamente que la tecnología no cambió fundamentalmente la forma de trabajar en los despachos haciendo puntualmente más eficiente múltiples tareas comunes pero en esencia lo que los anglosajones llaman flujos de trabajo permanecieron en gran medida inalterados. Esto lógicamente fue debido a que las ganancias en productividad fueron más que suficientes para no requerir más cambios.

La revolución no se quedó en la cara agradable de la ofimática sino que el efecto disruptor de la informática ha seguido adelante y su transformación ha puesto patas arriba sectores económicos enteros. En este artículo intentaré desglosar mi visión de como creo que la disrupción tecnológica transformará el sector de la oficina técnica ya que sus flujos de trabajo siguen teniendo como elemento vertebrador el papel y como la cuarta revolución industrial va a forzar un cambio radical en sus métodos de trabajo.

Los cálculos

Una de las cuestiones que son evidentes es que muchas de las labores tradicionales de los técnicos, cálculo de cimentaciones, redes eléctricas por ejemplo son áreas que a día de hoy están totalmente automatizadas, por lo que la formación necesaria para llevarlas a cabo se limita a comprender la operación de la herramienta de cálculo, razón por la que en gran medida ha caído el nivel en las escuelas de ingeniería, porque simplemente ya no es necesaria y cada vez lo será menos para las labores más comunes.

No solo la dificultad ha caído si no que el costo para formar a los técnicos que operen esas plataformas ha caído prácticamente a 0 al universalizarse las conexiones a Internet lo que permite distribuir de forma prácticamente gratuita los contenidos necesarios para que los técnicos operen el software con la pericia necesaria.

Aparte muchas de estas herramientas que se movían en círculos solo para iniciados no tardarán de saltar a la web una vez que esta, con la introducción del webassembly y la integración de los sistemas de computación en la nube liberen a la oficina técnica de tener sus propios sistemas de cálculo. Con lo que prácticamente cualquiera con un teléfono móvil y tiempo va a poder hacer cosas hace años reservadas a un nicho muy selecto de profesionales.

Por otra parte, para aquellos cálculos que se salgan de las posibilidades de estas herramientas ya bien sea por la complejidad de los mismos o la necesidad de su automatización para la integración en flujos de trabajo complejos o también los propios equipos que desarrollan será necesario un perfil profesional muy diferenciado que tenga una gran pericia tanto en el manejo de las ciencias y técnicas necesarias, muy superior que el requerido para manejar los sistemas automatizados, como en el manejo del ordenador como sistema para la construcción de cálculos ya que deberán saber integrar estos cálculos en los sistemas de cómputo/empresariales de ultima generación.

La investigación

Hay que entender que para un tipógrafo un procesador de texto es un juguete del mismo modo que la hoja de cálculo lo es para un científico de datos, ese nombre que dan ahora los anglos a los estadísticos.

Recuerdo hace años, leer en el cuarto que teníamos los becarios de informática de la escuela de minas un preclaro artículo en una revista de Linux sobre unos geofísicos australianos que se dedicaban a hacer magnetometrías (medir el campo magnético de la tierra buscando normalmente yacimientos de hierro) en bici con un GPS (de aquellas cuando un GPS costaba un dineral) y al llegar al laboratorio generaban automáticamente los informes en una estación de trabajo linux usando el sibarita sistema tipográfico Latex. Aquello me rompió totalmente los esquemas, y dejó profunda huella en mi memoria y de hecho hice el proyecto fin de carrera en Latex para ganar soltura con la herramienta.

Este año, al ver que mi incompetencia estadística estaba lastrando mi proyecto de fotogrametría digital me decidí por hacerme una especialización por la plataforma online Coursera que cubría todas mis necesidades, desde la captura de datos, regresión, aprendizaje automático, generación de informes y lo que gratamente me encontré fue que las últimas tendencias en el proceso estadístico de datos eran básicamente construir sistemas como el de geofísica que tanto me había impresionado años atrás.

La razón no es epatar tecnológicamente si no por lo contrario la busqueda de uno de los principios claves de cualquier estudio científico técnico, la reproducibilidad. La tendencia es a la par que se publica el informe, poner a la disposición de las partes interesadas los datos y el programa que genera el informe de manera que se pueda ratificar la veracidad de lo computado. Es por esto que la tendencia es abandonar entornos donde prima una interfaz de usuario que permite al operador ir encadenando operaciones de forma interactiva y visual y trabajar con aquellos donde el científico genera los cálculos de forma programática utilizando ya bien sea lenguajes específicos para el tratamiento de datos como R o lenguajes de programación de propósito general como Python.

Esta tendencia que se está dando en los entornos de cálculo estadístico por las mismas razones alcanzarán otros entornos de cálculo genérico como los de elementos finitos y otros de cálculo más específicos como los de tunelacion, revirtiendo, en cierta manera, el proceso que se dio en los 90 con la integración de las interfaces gráficas en las herramientas de cálculo.

Las maquinas

Una tendencia imparable es el poner a las máquinas bajo el control de sistemas informáticos, esto como en los casos anteriores hará que las máquinas sean mucho más fáciles de manejar incluso totalmente autónomas pero como en los casos anteriores la informatización dará lugar a dos escenarios muy diferenciados.

Máquinas muy simples de operar, pongamos el ejemplo de una pequeña grúa torre para la construcción de una vivienda pequeña que sea capaz de obedecer ordenes verbales y que no requiera un técnico al cargo. El software de la máquina es gestionado por el fabricante a la manera de un teléfono móvil por lo que no necesita de ningún tipo de mano de obra especializada y en un futurible incluso se podría montar sola a partir de un remolque robotizado.

Por otra parte en aquellos escenarios donde donde mucha maquinaria tiene que operar de forma orquestada, pongamos otra vez el transporte vertical de materiales (una grúa) de un proyecto de gran envergadura donde es crítico y tiene que trabajar de forma coordinada con otros sistemas de transporte y montaje más o menos automatizados dando lugar a un sistema informático de una complejidad no vista a día de hoy.

Operar un sistema de esta complejidad requerirán profesionales que se manejen desde la física de las grúas, las técnicas constructivas más modernas y la logística más avanzada y a su vez ser capaz de integrar el sistema de control de la grúa como parte del sistema informático que es el al final actúa sobre ella ya bien sea por control humano o autónomo. Por lo que además de ingeniero mecánico para comprender el funcionamiento de la máquina ha de manejarse con soltura con las cuestiones de ingeniería de software para diseñar un sistema de control que se integre con el resto de sistemas con los que la grúa ha de comunicarse para realizar bien su trabajo, algoritmia de optimización e inteligencia artificial para poder definir el comportamiento automático de la máquina y solidas nociones de informática de sistemas para asegurar un correcto y seguro despliegue del software para asegurarse que el software corre como esperado y evitar ataques vandálicos.

Conclusiones

Según veo yo en todas las profesiones va a pasar algo parecido una división clara entre aquellos profesionales que se limiten a ser usuarios de software y aquellos que los desarrollen y/o integren, los primeros tendrán un nivel de entrada a la profesión muy bajo y los segundos extremadamente elevado.

Para los segundos va a ser denominador común el dominio de los sistemas informáticos a nivel profesional así como los fundamentos científico técnicos de su profesión. La formación de estos profesionales va a requerir un replanteamiento completo ya que se ha de inculcar simultaneamente las prácticas de trabajo más avanzadas, capaces de integrarse en los flujos de trabajo de las empresa punteras, con la adquisición de conocimientos y establecer una serie de rutinas de aprendizaje ya que el alumno va a tener que ser autónomo para poder estar a la última en los avances de la técnica.

La dirección de estos procesos de última generación van a requerir inexcusablemente profesionales que sean capaces de comprender los procesos en su globalidad. Eso de que la informática se abstrae está ya a día de hoy obsoleto, la empresa cuyos mandos directivos no comprenda estos cambios está condenada a quedar fuera del mercado.

Por lo tanto recomiendo a todo el mundo que se ponga las pilas en este campo porque antes o después esta burbuja de irrealidad que han creado los bancos centrales explotará y se van a dar de bruces con un cambio que van a ser incapaces de asumir.

Invertir en inteligencia artificial

Oviedo, 29 / 11 / 2016 finanzas inteligencia artificial

Con los tipos de interés por los suelos, unas bolsas muy compradas y la incertidumbre que dan un sistema financiero que no termina de dejar atrás los achaques de la crisis de 2008 el inversor se encuentra ante un panorama desolador a la hora de colocar su dinero y prácticamente no le queda más opción que adentrarse en el incierto mundo del capital de riesgo.

Dentro de las inversiones de capital de riesgo, una de las áreas tecnológicas donde nadie pone en duda su gran impacto económico en el futuro es el área de la inteligencia artificial, aplicada a todos los ámbitos de la economía desde los trabajos manuales como la construcción a los trabajos más intelectuales como el periodismo o la programación de ordenadores.

Si bien el potencial transformador de estas tecnologías es incuestionable también hay que decir que su dificultad es extrema y que problemas que nominalmente podría decirse que son sencillos como la comprensión auditiva, es decir, asociar sonidos a palabras, solo han sido resueltos muy recientemente con precisiones equiparables a las humanas

Aunque también hay que decir que con la introducción de algunas mejoras en los algoritmos y sobre todo la popularización de los sistemas de supercomputación, usando la computación en la nube y la aplicación de los procesadores gráficos a estas tareas, se están alcanzando objetivos a una velocidad hace años impensable. Y que tan solo con la aplicación directa de los algoritmos desarrollados hasta ahora ya se abre de por si un mercado de muchos miles de millones de euros.

Pero el avance sigue siendo incierto en otros muchos ámbitos donde el modelado es mucho más complejo que el simple reconocimiento de un objeto en una imagen o unos fonemas en un fichero de audio, por lo que no es prudente invertir en estos terrenos sin la guía de una mano experta que sea capaz de evaluar la viabilidad de los proyectos. Existen muchas tareas que a nuestra mente les resulta inmediata pero que a día de hoy no están resueltas desde el punto de vista de la computación.

Como primera aproximación el despliegue de soluciones de inteligencia artificial sigue un ciclo muy similar al ciclo de mejora. Partiendo de un sistema que queremos automatizar lo primero que hay que hacer es diseñar e implementar un sistema de captura de datos lo suficientemente expresivos para que en la etapa a continuación nos permita modelar lo que está pasando en el proceso, es decir definir unas reglas de decisión en base a la cual poder construir el sistema que sea capaz de actuar de forma autónoma en la última etapa.

Es relativamente fácil encontrar profesionales que sean capaces de modelar en base a los datos obtenidos ya que prácticamente un titulado superior con un curso de aprendizaje automático es capaz almenos de intentarlo. Es mucho más difícil abarcar el ciclo completo especialmente el diseño y e implementación tanto del sistema de captura de datos como del sistema capaz de actuar en base a estos datos ya que requiere profundos conocimientos tanto de informática como de electromecánica y sensores.

Hay que tener muy en cuenta que el área del aprendizaje automático está completamente sometido al ciclo de hype tecnológico y que si bien ahora parece una apuesta prometedora dista mucho de ser una inversión segura ya que requiere de la disponibilidad de una gran cantidad de mano de obra experta para el despliegue de estas soluciones que a día de hoy no existe.

Va a tardar lo menos 10 años a los profesionales que están saliendo hoy de las universidades alcanzar un nivel, desde el punto de vista informático y matemático, que les permita ser efectivos en este área de la técnica.

Pero eso no quita que haya grandes oportunidades para aquellos que hayamos hecho nuestros deberes y dominemos la informática y manejemos con estas tecnologías aunque tomándose las cosas con calma y no dejarse llevar de la fiebre de un moda pasajera.

El arquitecto

Oviedo, 15 / 10 / 2016 inteligencia artificial minas tecnología

Mucha gente parece no entender a que me dedico y escribo este post un poco para aclarar que es lo que he conseguido durante estos años de esfuerzo y sacrificio y sobre todo, para despejar las preocupaciones de aquellas personas que al ver que no tomaba una senda convencional de empleado de una gran empresa, me veían prácticamente abocado a la indigencia, haciéndoles comprender que a día de hoy he logrado adquirir el que probablemente sea el perfil profesional más demandado y mejor pagado del mundo.

Hay que entender que a día de hoy estamos entrando en una nueva revolución industrial, esta revolución consiste esencialmente en poner al cargo del control de los procesos un sistema informático inteligente, un sistema que sea capaz de tomar gran cantidad de datos de su entorno, procesarlos y luego utilizar el resultado para controlar los distintos elementos que configuran el proceso.

Estos sistemas informáticos tienen una característica común, son terriblemente complejos, complejos desde múltiples puntos de vista. Son complejos porque procesan datos complejos de ingeniería, son complejos porque consisten de múltiples subsistemas que tienen que trabajar de forma coordinada, son complejos porque integran todo tipo de elementos desde sistemas empotrados a sistemas de computación en la nube, son complejos porque requieren de los más sofisticados algoritmos de cálculo, son complejos porque actúan múltiples partes sobre ellos, son complejos porque están dispersos geográficamente, son complejos porque operan en condiciones muy adversas, son complejos...

Por lo tanto para poder diseñar e implementar este tipo de sistemas, lo que en el mundillo de la informática se conoce como arquitecto de sistemas, se requiere de una formación muy multidisciplinar pero muy bien fundamentada, formación que tras muchos años de trabajo por fin puedo decir con una cierta seguridad que he conseguido.

Afirman en la edición inglesa de la Wikipedia, en lo referente a arquitectos de sistemas que es fundamental para el arquitecto manejar con soltura su dominio de trabajo, es decir el campo donde se aplique el sistema informático, en mi caso, mi formación de ingeniero de minas con su especialización en metalurgia y materiales cubre excepcionalmente bien esta necesidad ya que me proporciona conocimientos sobre extensas áreas de la técnica muy bien fundamentados en sus bases científicas.

He de resaltar con respecto a este tema que cara a esta revolución industrial los estudios de minas superan en versatilidad a los de ingeniería industrial, estos últimos tenían una ventaja clara en la tercera revolución porque en esencia esta revolución consistía en desplegar una serie de tecnologías en las que estos profesionales son especialistas. Cara a la cuarta revolución industrial, como la clave es comprender y ser capaz de modelar lo que está sucediendo dentro de el proceso, la formación de ingeniero de minas es mucho mejor ya que en esencia el estudio de la ingeniería de minas es el estudio desde sus bases científicas de ciertos procesos industriales.

Quiero decir con esto que si tengo que desarrollar una aplicación para monitorizar el firme de una carretera tengo una formación en carboquímica (asfaltos), mineralurgia (áridos) y geotecnia que me permite buscar la modelización óptima, si he de desarrollar un sistema de visión artificial para el estudio de corrosión en estructuras de acero mi formación metalúrgica y materiales me habilita como la persona ideal ya que puedo identificar todos los posibles males estructurales. Si he de desarrollar un sistema que controle un horno siderúrgico mis conocimientos de metalotecnia, refractarios, transmisión de calor me permiten sacar el mayor jugo a los datos para optimizar al máximo el proceso.

Además mi formación está totalmente conectada a las realidades de los mercados ya que he empleado buena parte de mi tiempo de ocio en el análisis económico firmando como Tuttle en el foro de Internet burbuja.info donde hemos anticipado desde la crisis financiera de 2008, el colapso del sector del fracking, la crisis de la deuda española y el auge del bitcoin. Por lo que aquellas personas que me quieran reprochar una desconexión con la calle debido a mi nula experiencia laboral los últimos años es más bien todo lo contrario.

Una cosa que me gustaría resaltar es que soy hijo de dos culturas tecnológicas, la cultura minera y la cultura hacker, la primera forma el núcleo duro del conservadurismo y la segunda abandera el progresismo, situación que me ha provocado no pocos quebraderos de cabeza y a ella achaco en gran medida el hecho de que mi expediente académico esté como esté, pero también, el hecho de haber superado las dificultades de aunar simultáneamente ambas en mi cabeza es lo que hace que mi perfil profesional sea totalmente fuera de lo normal.

Describo acontinuación un poco por encima lo que he estado haciendo estos últimos años y me permite hacer tal afirmación.

Informática de sistemas

Lógicamente para diseñar este tipo de sistemas hay que estar familiarizado con el hardware, como se monta, como se conecta, como se configura, tengo bastantes años de experiencia como técnico IT tanto en el sector privado dando soporte a talleres e industria, como en la universidad apoyando tanto entornos académicos como de investigación, por lo que ya desde muy joven estoy habituado al despliegue de sistemas informáticos moderadamente complejos.

No me he quedado ahí, y recientemente, al ver que los avances y sobre todo el incremento en la complejidad de los sistemas iba dejando mi formación obsoleta he invertido varios años de mi vida en diseñar y desarrollar un sistema para la administración de equipos que es capaz de dar soporte a las más exigentes soluciones en entornos minero/industriales. Este sistema se basa en Ansible, una herramienta para la gestión de la configuración tremendamente versátil a la que he dedicado muchísimas horas y puedo decir con total seguridad que domino tanto a nivel de uso como nivel de desarrollo.

Hace ya bastantes años, entorno al año 2000, me harté de la prepotencia técnica de Microsoft y decidí centrarme en plataformas abiertas, tuve el ojo de escoger la plataforma Debian que popularizaría el sistema operativo Ubuntu y que a día de hoy es la plataforma que da soporte a la mayoría de soluciones de este tipo que hay en producción. Domino el entorno tanto en su vertiente de sistemas, sabiendo configurar máquinas a mano sin necesidad de la asistencia del instalador, como en la de desarrollo, sabiendo como crear paquetes con herramientas tipo git-buildpackage y como distribuirlos con sistemas como reprepro.

Como mis proyectos de calculo tienen elevadas exigencias computacionales trabajo habitualmente con la plataforma en la nube de Amazon y su sistema de máquinas virtuales EC2 para la cual construyo mis propias AMIs. Ya que saco el tema de la virtualización muchos de mis soluciones usan Vagrant como soporte para los tests. Aparte de esto he hecho algo de cross compilación para Raspberry Pis y OpenWrt.

En cuestiones de monitorización he trabajado con shinken que es una reimplementación de Nagios en Python para hacerlo menos monolítico y con Fluentd para todo el tema de captura de logs, ambos proyectos los he estudiado a nivel de código fuente ya que son críticos para desplegar sistemas de una cierta complejidad aunque probablemente me vea obligado a desarrollar una solución aún más versátil, de la cual ya tengo hecho el diseño, para poder dar soporte al despliegue de drones.

Si bien las cuestiones de seguridad no han sido las que más desvelos me han provocado estos años, no es un tema que haya dejado de lado y procuro estar al tanto de lo que se cuece en la escena, me manejo bien con herramientas como las iptables o el wireshark y si bien, desde que alcancé la edad adulta no me he dedicado a craquear nada, eso no significa que no procure estar lo suficiente mente formado y habiendo recopilado recursos para poder desenvolverme en ese ámbito rápidamente si fuera necesario.

Considero que la infraestructura de clave pública es el núcleo de todo sistema informático y he dedicado muchas horas a su estudio y desarrollo. Además, teniendo en cuenta que aspiro a controlar bastantes sistemas críticos, lo más seguro es que el desarrollo de un sistema seguro y fiable para la gestión de claves criptográficas termine provocándome más desvelos que los algoritmos de aprendizaje profundo en años venideros.

Ingeniería de software

Hace unos años decidí abandonar la senda tradicional de la ingeniería de minas que comprendí encaraba una crisis que iba a durar años y centrarme en desarrollar soluciones en la nube de cálculo de ingeniería. Durante estos años he desarrollado soltura con las herramientas de desarrollo de aplicaciones web tanto en el la parte del navegador, dominando el javascript y manejando bien las distintas APIS y el CSS como en la parte del servidor donde me he familiarizado tanto con plataformas tipo Google Application Engine como configurando mis propios servidores utilizando Apache y PostgreSQL.

Cuando retomé la programación decidí desde el principio adoptar un enfoque ágil a mis desarrollos y llevo muchos años trabajando con el sistema git de control de versiones y haciendo del testeo de mis proyectos un arte y en cierto modo una religión. Para programar escogí el lenguaje Python ya que en combinación con el C me cubría la mayor parte de mis necesidades, desde el cálculo numérico, la programación web y la administración de sistemas. Recientemente he ampliado con C++ para programar OpenCV con soltura.

Retomé el desarrollo de software utilizando el framework Django que me proporcionó una base sólida y que estudié hasta el mínimo detalle de su código fuente, si bien ahora normalmente prefiero otro tipo de frameworks más ligeros tipo flask, bottle, que son más adaptables al tipo de desarrollos que suelo encarar, los conocimientos adquiridos con Django suelen dar frutos inesperados al usar herramientas como Ansible o incluso ERPs como Odoo.

También experimenté bastante con librerías como gevent, twisted para sacarle el mayor jugo posible al Python. Recientemente me he puesto con los entornos servidor de javascript, el Node.js, y algún que otro framework como el meteor, con la idea de familiarizarme con ellos para poder externalizar ciertas partes de mis desarrollos que no requieran una parte numérica o de sistemas compleja.

Ya desde el primer proyecto de cierta entidad que desarrollé, la aplicación Defcon para la monitorización de la prima de riesgo, que corría sobre la plataforma Google Application Engine me familaricé con las más diversas técnicas de coordinación de procesoss, colas y microservicios y a lo largo de los años me he topado con otras como objetos distribuidos por lo que estoy familiarizado con las herramientas necesarias para desplegar las arquitecturas de software más complejas.

Como entorno de desarrollo de software he escogido trabajar a nivel de consola, es decir, usar find, grep, sed y vim, prescindiendo de IDE ya que así comparto herramientas con la administración de sistemas. También me he familiarizado con tanto con las Autotools como CMake para el compilado de soluciones multiplataforma y uso habitualmente GNUMake para la construcción de todo tipo de cosas, desde documentos, sitios web y binarios.

En materia de bases de datos he sido devoto de PostgreSQL ya desde los años donde MySQL dominaba la escena de gestión de datos en el mundillo del software libre y no he perdido oportunidad que se me presentara en mejorar mi comprensión y conocimiento de las tripas de este monstruo del almacenamiento y proceso de datos. Aunque no he vivido a espaldas de la revolución NoSQL y he manejado las más diversas bases de datos desde ElasticSearch para indexado de documentos, CouchDB, algo he hecho con MongoDB pero prefiero Redis como almacenamiento llave-valor. Desde el punto de vista del big data antes de meterme con los temas fotogramétricos estuve haciendo algunas cosillas con Disco que es un framework map reduce para Python.

Desde muy joven he sido muy aficionado al buen diseño, especialmente al buen diseño gráfico y he dedicado muchas horas de mi vida al arte de la composición gráfica y el estudio del subestimado arte de la tipografía, convirtiendo la expresión gráfica en una religión y más recientemente, al formarme como ingeniero y científico de datos venerando a Tufte como el verdadero profeta. Por ello para mi la parte del diseño de interfaces de usuario siempre ha sido una parte crítica de mis proyectos y he dedicado muchas horas a formarme en el manejo de herramientas tanto para el diseño de interfaces Photoshop, Ilustrator, Sketch... como bibliotecas y APIs que me permitieran sacarle el mayor jugo a las pantallas e impresos, d3.js, SVG, OpenGL/WebGl...

Inteligencia artificial y robótica

Para acercarme a este campo he cultivado tres perfiles profesionales diferentes, uno más enfocado al análisis estadístico de datos, generación de modelos de aprendizaje automático, vamos lo que los anglosajones llaman científico de datos, otra aproximación más desde el punto de vista de la supercomputación, programación a bajo nivel y centrado en la implementación de soluciones de alto rendimiento en producción, y luego le dediqué bastantes años al estudio de la fotogrametría digital.

El perfil de científico de datos lo empecé en la universidad cursando un par de asignaturas de extension universitaria sobre estas materias que me abrieron el apetito y decidí orientarme profesionalmente sobre estos temas, me estudié los videos de Andrew NG de aprendizaje automático, pero al descubrir la fotogrametría digital dejé estos temas un poco de lado. Este año, al comprender que trabajandolo podría conseguir el perfil de arquitecto, me volví a hacer el curso de Andrew NG, esta vez por Coursera, que utiliza matlab para la implementación de los algoritmos, y me hice la especialización, también por Coursera, de científico de datos lo que me rellenó un vacío que tenía en el uso de herramientas para el tratamiento estadístico de datos, en este caso usando el entorno R. En la actualidad estoy haciendome otros dos cursos de Coursera uno de modelos de grafos probabilísticos y otro de redes neuronales con los que creo que completo suficientemente el perfil para encarar con seguridad los retos que se me presenten profesionalmente los próximos años.

El tema de la fotogrametría digital fue una materia en la que me metí totalmente a lo kamikaze, en un momento de gran incertidumbre económica se mezclaron en mi cabeza dos cosas, un multicóptero con cámara y la reconstrucción fotogramétrica de un yacimiento prehistórico y vi la luz. Armado con mi formación de ingeniero de donde me fueron especialmente útiles las matemáticas y sobre todo las habilidades de hackerillo adolescente que gustaba de programar C y soldar cosas, encaré con una soberbia inaudíta la titánica tarea de poner juntas todas las piezas de un sistema de reconstrucción de fotogrametría digital utilizando sistemas de computación en la nube. Y he de decir con media sonrisa que a punto estuve de conseguirlo en su momento, y por cierto, dispuesto estoy a rematarlo ahora.

La fotogrametría digital consiste esencialmente en tres procesos, el primero identificación de características invariantes, el segundo el emparejamiento de las imágenes dos a dos normalmente utilizando el cálculo de la matriz fundamental usando el algoritmo RANSAC y una vez con las imágenes emparejadas se calcula la reconstrucción tridimensional. Todos estos son procesos muy intensivos en cálculo y para ello utilicé las librerías OpenCV que a día de hoy ya incluyen estos algoritmos, las herramientas de scipy y numpy para aquellos cálculos menos exigentes y la plataforma Amazon EC2 (ver como una docena de las instancias más gordas de Amazon EC2 trituraban imágenes será siempre uno de los recuerdos más gratos de mi vida). Este proyecto por una parte me proporcionó una base teórica muy potente en cuestiones de visión artificial desde el punto de vista de la geometría y por otra parte me familiarizó con las últimas tendencias en supercomputación es decir el uso de GPUs y los sistemas en la nube.

Ya que en cuestiones de visión artificial me centré en un área muy concreta, para completar los conocimientos en su momento me estudié el Learning OpenCV y este año me he actualizado haciéndome un curso sobre la librería que por cierto simultanee con el estudio del entorno de construcción CMake para poder compilar este tipo de soluciones en múltiples plataformas.

Desde chaval me ha gustado la electrónica tanto digital como analógica y si bien no es un tema que domine si que estoy muy familiarizado con el y nunca me ha echado para atrás ponerme con el soldador, un programa de diseño de circuitos o un osciloscopio. Así que para el proyecto de fotogrametría monté mi propio octocoptero para lo cual tuve que juntar un pequeño laboratorio de electromecánica y conseguí hacerlo volar aunque luego dejé el tema de lado para centrarme más bien en la rama informática del proyecto al comprender que en esencia, un multicóptero era un teléfono móvil y que los chinos no tardarían en saturar el mercado con ellos, como al final han terminado haciendo, así que era mejor dedicarse a habilidades que fueran a rendir más económicamente.

Pendiente en este campo me queda meterme a fondo con ROS y Tensorflow (entornos de robótica y aprendizaje automático), aunque manejo todo lo relativo a ellas, lenguajes de programación, plataformas de software, algoritmia, ingeniería, calculo y me veo perfectamente capacitado para resolver cualquier problema que se me presente cuando me ponga con ellas.

Conclusiones

Todo el trabajo metido estos años en estas materias me cualifica esencialmente para dos cosas:

  1. Dirigir equipos de trabajo multidisciplinares ya que manejo las lenguas de múltiples tecnologías que en muchos casos tienen ámbitos disjuntos por lo que es difícil hacer que se entiendan y por ello mi capacidad de traductor tiene un enorme valor de mercado. Además mi capacidad ejecutiva en estas materias es incuestionable al haberme creado, de forma totalmente autónoma, un curriculum en estas materias.
  2. Tengo la capacidad prácticamente autónoma de diseñar, implementar, implantar y mantener soluciones de inteligencia artificial en campos tan complejos como la industria, la minería y la construcción teniendo plena capacidad de poner bajo mi control hasta el más complejo de los sistemas informáticos gestionando desde la seguridad y la infraestructura de clave pública hasta la algoritmia más sofisticada y los interfaces de usuario más avanzados.

El muro

Oviedo, 02 / 10 / 2016 economía política tecnología

Este es un post politicamente incorrecto, podria montarlo de otra manera que no pudiera resultar ofensiva pero a buen seguro me extendería más allá de lo que es necesario, y como las ideas son complejas es mejor ser conciso.

Yo llamo el muro al abismo al que se enfrentan empresas y profesionales por una situación de cambio organizativo y tecnológico que los desborda y aboca a la mayor parte de las compañias de occidente a una implosión inevitable arrastrando al sistema a un colapso económico similar al de la unión soviética.

¿En que consiste el muro? Basicamente consiste en los cargos directivos de las empresas son incapaces de encarar la revolución tecnológica en curso porque las dos últimas décadas se han dejado llevar por la autocomplacencia de la demanda estimulada a base de crédito barato y no han encarado tanto desde el punto de vista formativo y estructural las reformas necesarias para poder dirigir el rumbo de sus empresas en unos años de disrupción tecnológica.

No hay mayor síntoma de esto que en los masteres que forman a las élites directivas del mundo empresarial y financiero no les dan la más mínima formación informática ya no digamos el nivel extraordinario de formación tanto en informática de gestión como de sistemas que es necesario para desplegar los sistemas empresariales de vanguardia.

Se partía equivocadamente de que la informática es un conocimiento fácilmente abstraible, es decir, lo que había que saber era que hacía la informática pero no hacia falta saber como, pero el momento en el que la informática ha pasado de ser una herramienta a ser el medio donde se desarrollan los negocios este principio queda totalmente obsoleto y los cuadros directivos de las empresas están tan fuera de la realidad como los lideres comunistas después de la perestroica.

A esto hay que añadir la dinámica interna de las empresas que han convertido la gestión en una carrera sin cuartel para acceder a los cargos donde los bonuses permitían vivir con una cierta holgura financiera lo que ha forzado a los directivos con formación y vocación técnica a dejarla totalmente de lado para volcarse totalmente en la carrera por pelotear a los jefes. Esto ha hecho que en la actualidad la formación técnica en los cuerpos directivos de la mayoría de las empresas salvo contadas tecnológicas sea lamentable.

Hasta hace unos años la tendencia para incrementar la productividad con la informática en la empresa era adaptar la informática a la empresa utilizando para ello software que pudiera ser utilizado con facilidad por los trabajadores, vease las suites de oficina tipo Office. Pero en el momento en el que tus trabajadores sepan manejar Excel no te confiere ya una ventaja competitiva el juego cambia y ahora es la empresa la que se tiene que adaptar a las herramientas adoptando técnicas de trabajo que permitan extraer la mayor productividad posible a las herramientas disponibles.

Pero para hacer esto, es decir, para redefinir los procesos de negocio para poder extraer el mayor jugo a las posibilidades de la tecnología es necesario dominar una informática que con el paso de los años ha ido ganando en sofisticación hasta adquirir una entidad que requiere de bastantes años para manejarla. Es decir, si hace unos años igual bastaba con saber programar un lenguaje tipo cobol, a día de hoy tienes que dominar un abanico enorme de herramientas y técnicas de trabajo que requiere de muchos años de práctica y esfuerzo para poder manejarlas con la suficiente soltura.

Por lo tanto auguro que el actual estancamiento económico se mantendrá hasta que la cultura empresarial cambie y se premie el dominar la habilidades técnicas de gestión y este cambio de política de frutos, que dada la complejidad de las herramientas llevará unos cuantos años.

Robótica funcional vs Robótica imperativa

Oviedo, 29 / 06 / 2016 industria robótica tecnología

Mucho se habla de la revolución tecnológica pero habiendo leído bastantes artículos sobre esta no me he encontrado ninguno que fuera capaz de concretar suficientemente la naturaleza del cambio, creo que he dado con una idea que está en el núcleo mismo de la cuarta revolución industrial, este es el paso de la robótica imperativa hacia la robótica funcional.

¿Que quiero decir con robótica imperativa y robótica funcional? Con robótica imperativa me refiero a aquellos artefactos automáticos cuyas acciones vienen predefinidas como una secuencia de comandos evaluados prácticamente de forma determinista. Pensemos en una máquina de corte por plasma, todos los parámetros de movimiento de la cabeza de corte están previamente determinados numéricamente y la labor de la máquina es seguir esa programación de la forma más precisa posible

Llamo robótica funcional a la robótica cuyas acciones son determinadas instantaneamente como la evaluación de una funcion dependiente de las condiciones del medio. Pensemos como ejemplo paradigmático de este tipo de robótica el coche autónomo donde a pesar de tener un trayecto predefinido el control del motor y de la dirección es computada a cada instante para satisfacer las necesidades cambiantes del entorno.

El que esté familiarizado con el mundo de los lenguajes de programación se habrá percatado de que la nomenclatura la tomo prestada de la categorización de estos y sin duda aproximación de programación funcional de los automatismo de última generación simplifica en extremo el despliegue de estos sistemas como iré desglosando en posteriores posts.

La robótica funcional va acompañada de complejos sistemas de cómputo para procesar fuentes de información que generan grandes volúmenes de datos de naturaleza compleja como pueden ser videos HD que monitorizan un proceso industrial utilizando redes neuronales convolucionales por lo que requieren de una aproximación más próxima desde la óptica de la supercomputación que desde la de la automática tradicional.

La introducción de estos sistemas de control avanzados requiere un replanteamiento integral de todos los sistemas de información industriales añadiendoles varios ordenes de magnitud de complejidad y sin duda la eficacia en su diseño e implementación serán absolutamente determinantes en quien acabe dominando los mercados en el siglo XXI.