Sistema de Ayuda Inteligente al Diseño

Coautor con José Cuena de «Sistema de ayuda inteligente al diseño», publicado en Contributes Papers of the International Conference on Artificial Intelligence, II World Basque Congress, que se celebró en San Sebastián del 31 de agosto al 22 de octubre de 1987.

Allí expuse el sistema de ayuda al diseño de estructuras creado en mi proyecto de fin de carrera. Cuando escribí mi proyecto no disponía de un buen procesador de textos (WordPerfect 1.0 empezó a popularizarse hacia finales de los ochenta y yo no lo tenía), por lo que para poder hacer la memoria del proyecto tuve que construirme mi propio procesador de textos (del que yo fui su único usuario) junto con un módulo gráfico para que el Sistema de Ayuda Inteligente al Diseño pudiera imprimir gráficamente las estructuras que él creaba. Años después, me plantee que dicho procesador de textos y el módulo gráfico de impresión, valían, como proyecto de fin de carrera, mucho más que el propio proyecto presentado. Sin embargo, este artículo ya estaba escrito con el procesador de textos de un Apple Macintosh.

  • Coauthor, «Intelligent computer-aided design», Contributes Papers of the International Conference on Artificial Intelligence, II World Basque Congress, Donosti, September of 1987.
  • Coautor, «Sistema de ayuda inteligente al diseño», Documentos de la Conferencia Internacional en Inteligencia Artificial, 2º Congreso Mundial Vasco, San Sebastián, septiembre de 1987.

Licenciado en informática, UPM

Comencé estos estudios en septiembre de 1981, terminé los 5 cursos en junio de 1986 y presenté el proyecto de fin de carrera en 1987. Mi forma de recordar lo que cursé cada año es gracias a la coincidencia entre el curso y las unidades de la década de los 80, estos es, en 1981 entré en 1º de carrera, en 1982 pasé a 2º, en 1983 inicié 3º, en 1984 comencé 4º y, finalmente, en 1985 llegué a 5º que era el último curso de la carrera. Durante esos 5 años cursé las siguientes materias:

Licenciado en informática, Universidad Politécnica de Madrid
  • Primer curso, 1981-1982: Álgebra Lineal, Cálculo Infinitesimal, Física, Química y Dibujo Técnico. También cursé y aprobé Inglés I que era de 3º de carrera e Inglés II que era de 4º de carrera, por lo que al llegar al verano podía afirmar que no sólo había aprobado todo 1º sino que además una de 3º y otra de 4º.
  • Segundo curso, 1982-1983: Análisis Matemático, Teoría de Circuitos y Electrónica Básica, Programación, Lógica Formal e Informática Básica.
  • Tercer curso, 1983-1984: Análisis Numérico, Circuitos Lógicos Electrónicos, Informática Teórica, Probabilidades y Estadística, Investigación Operativa I y Teoría de Sistemas. También había en 3º una asignatura llamada Inglés I que cursé en 1º.
  • Cuarto curso, 1984-1985: Centros de Proceso de Datos, Traductores e Intérpretes, Inteligencia Artificial y Reconocimiento de Formas, Arquitectura de Ordenadores, Investigación Operativa II y Sistemas de Información I. También había en 4º una asignatura llamada Inglés II que cursé en 1º.
  • Quinto curso, 1985-1986: Teleinformática, Computadores Analógicos e Híbridos, Sistemas Operativos, Bases de Datos, Economía y Organización de Empresas y Sistemas de Información II. Con 3 notables, 1 sobresaliente y 2 matrículas de honor, 5º fue mi mejor curso, porque había ido aprendiendo, año a año, cómo se cursa una carrera.

Tras terminar los 5 años de estudios comencé a trabajar y, en paralelo, realicé mi proyecto de fin de carrera que presenté en 1987 y que fue calificado con un 10 por su tribunal. En octubre de 2015, revisando y actualizando este post, me llevé la sopresa, al incluir la imagen que lo acompaña, que la calificación de este proyecto de fin de carrera había sido un 10, pues durante años lo que recordaba era que había sido un 9.

Como puede verse en el enlace con el que finaliza este post, la antigua Facultad de Informática de la UPM, en la que estudié, se llama ahora Escuela Técnica Superior de Ingenieros Informáticos. Sin embargo, sigue conservando sus siglas originales en el subdominio de la Universidad Politécnica de Madrid fi.upm.es.

  • Software engineer, Computer Science School, Technical University, Madrid, 5+1 years, 1981-1986, and 1987.
  • Licenciado en Informática, Facultad de Informática, Universidad Politécnica de Madrid (UPM), 5+1 años, 1981-1986 y 1987.

Diseño y fabricación asistida por computador

Como administrador del centro de diseño y manufacturación asistida por ordenador (CAD/CAM) del Departamento de Investigación y Desarrollo de AMPER, S.A., durante 18 meses me encargué de la organización del centro y la definición de sus procesos y procedimientos, de la creación y administración de la base de datos gráfica de componentes electrónicos y del desarrollo de las aplicaciones para su consulta distribuida y de la implantación y automatización de los proceso para fabricación, incluyendo el trazado fotográfico, el taladrado industrial, el corte de placas, la inserción automática de componentes electrónicos, etc.

Entre otros muchos, desarrolle un programa que, a su vez, creaba programas de taladrado para taladradoras TRUDRIL, estos programas de taladrado se escribían en cinta de papel perforado, 6 bits por línea, unos y ceros, perforado o no perforado. Antes de enviarlas a fábrica, me sentaba en un taburete, y me leía estas cintas con todas sus líneas de perforaciones completamente, comprobando que eran correctas y que el programa creado automáticamente tenía sentido. Esta pudo ser una de mis primeras incursiones en la metaprogramación.

  • Manager of the Computer-aided Design and Manufacturing Group in Amper (electronic industry), Madrid, 1986-1987.
  • Administrador del Centro de Diseño y fabricación asistida por computador en Amper (sector de la electrónica), Madrid, 1986-1987.

Tesis de Francisco Javier Gisbert Cantó

Francisco Javier Gisbert Cantó es (2011) Vicedecano Secretario de la Facultad de Informática de la Universidad Politécnica de Madrid (UPM). Presentó su tesis doctoral titulada «Contribución para una nueva generación de sistemas de diseño asistido por computador basados en inteligencia artificial» en 1986. Con Ana García Serrano y Rafael María Gosálbez colaboré en esta tesis que dirigió mi director José Cuena.

  • Cited by Francisco Javier Gisbert as collaborator in his doctoral thesis about «Intelligent computer-aided design systems», page V, Technical University, Madrid, 1986.
  • Citado por Francisco Javier Gisbert como colaborador en su tesis doctoral sobre «Sistemas de ayuda inteligente al diseño», página V, Universidad Politécnica, Madrid, 1986.

Lenguaje Prolog, AEPIA

Jesús García San Luis y yo colaboramos con nuestra tutora Ana María García Serrano en la preparación y presentación de la ponencia denominada «Prolog II» en las Jornadas de Inteligencia Artificial de la Asociación Española Para la Inteligencia Artificial (AEPIA), que se celebró en 1985, en el Rectorado de la Universidad Politécnica de Madrid (UPM).

Ana María García Serrano es (2008) profesora asociada del Departamento de Inteligencia Artificial de la Facultad de Informática de la UPM y Jesús García San Luis es (2008) Director de Exploración y Producción I+D de Repsol.

El Rectorado de la UPM está en la calle Ramiro de Maeztu, en la Ciudad Universitaria, allí también pasé ese verano trabajando como becario, donde disponía de una máquina Digital Vax, a veces para mí solo, cuando en la Facultad, en los inviernos anteriores, había que hacer largas colas a primera hora de la mañana para conseguir sólo un poco de tiempo en otro Digital Vax de menor potencia.

  • Coauthor, «Prolog II language», Artificial Intelligence Symposium, AEPIA, Madrid, 1985.
  • Coautor, «Lenguaje Prolog II», Jornadas de Inteligencia Artificial, AEPIA, Madrid, 1985.

Riesgos de crédito para el Banco de Santander

Como becario trabaje en el desarrollo en Prolog II de un sistema experto de la clase MYCIN para la evaluación del riesgos de crédito para el Banco de Santander, en el área de créditos a empresas. La beca estaba dentro del marco de colaboración entre el Banco de Santander y el grupo de investigación creado por José Cuena en la Universidad Politécnica de Madrid (UPM).

Prolog es un lenguaje de programación lógico e interpretado con un mecanismo de inferencia mediante encadenamiento en profundidad de reglas. Por estas fechas, al poco tiempo de aprender a programar en Prolog (en especial Prolog II de Marsella), cree dos reglas capaces de procesar a otro conjunto de reglas, que recibían como argumentos de entrada, pero lo hice de forma que la exploración de dicho conjunto de reglas realizaba en anchura, no en profundidad. Mi director José Cuena me dijo divertido: «le dejo un motor de inferencia y lo primero que hace usted es cambiarle la dirección». Aquellas dos reglas ayudaron a la creación de sistemas expertos de acumulación y transmisión de evidencia (del tipo MYCIN, con una orientación semibayesiana) a partir de los a priori de los expertos, ya que la acumulación de la evidencia aportada por un conjunto de reglas necesita su evaluación conjunta, esto es en anchura, para poder ser combinada.

  • Scholar, «Risk assessment expert system», Santander Bank, Madrid, 1985-1986.
  • Becario, «Sistema experto de evaluación de riesgos», Banco de Santander, Madrid, 1985-1986.

Miembro del primer claustro democrático y constituyente de la UPM

Universidad Politécnica de Madrid, mi interpretación de su escudo

Fui miembro de la primer claustro democrático y constituyente de la Universidad Politécnica de Madrid y participé en la redacción de sus primeros estatus democráticos (aprobados por Real Decreto 2.536/1985, de 27 de diciembre).

  • Students' representative in the Legislative Congress of the Technical University, Madrid, 1984-1985.
  • Miembro del primer claustro democrático y constituyente de la Universidad Politécnica, Madrid, 1984-1985.

Claustral de la Facultad de Informática

  • Students' representative in the Council of the Computer Science Faculty, Technical University, Madrid, 1983-1984.
  • Miembro del claustro de la Facultad de Informática, Universidad Politécnica, Madrid, 1983-1984.

Delegado de 3º de la Facultad de Informática

  • Students' representative of the third course of the Computer Science Faculty, Technical University, Madrid, 1983-1984.
  • Delegado del curso 3º de la Facultad de Informática, Universidad Politécnica, Madrid, 1983-1984.

Sistema operativo RPS, Series/1 de IBM

Detalle del Series/1 de IBM con sistema operativo RPS

En 1983 colaboré como profesor ayudante de prácticas del Sistema operativo RPS (Real-time Programming System) del Series/1 de IBM, en el Centro de Cálculo de la Facultad de Informática, de la Universidad Politécnica de Madrid (UPM), bajo la dirección de Arturo Ribagorda Garnacho.

Arturo Ribagorda Garnacho es, actualmente (2010), Catedrático de Ciencia de la Computación e Inteligencia Artificial en la Universidad Carlos III de Madrid (UC3M) en el Campus de Leganés.

Por aquel entonces empezaba a utilizar discos flexibles de 8 pulgadas como el que aparece en la imagen, aunque todavía no habían salido de mí vida ni la programación ni con cinta, ni con tarjetas perforadas.

  • Teacher assistant, «IBM Series/1 RPS operating system», Computer Science School, Technical University, Madrid, 1983.
  • Profesor ayudante, «Sistema operativo RPS, Series/1 de IBM», Facultad de Informática, Universidad Politécnica, Madrid, 1983.

Informática forense, brochure 2015

Está disponible una presentación en formato PDF del Máster en Informática Forense y Pericial que organizamos e impartimos en el CIIP (Campus Internacional de Inteligencia y Pericia).

Tenemos el placer de contar con alumnos de Colombia, Costa Rica, México y de nuestros Cuerpos y Fuerzas de Seguridad.

Para todos, y para ellos especialmente, hemos publicado una bibliografía actualizada a noviembre de 2015.

Áreas de avance en el Máster en Informática Forense y Pericial

Big Data y Business Intelligence de supervivencia

Durante los meses finales del año 2014, he ido anotando los términos que he oído en las reuniones en las que se hablaba de Big Data y de Inteligencia de Negocio, a veces nombrada por los interlocutores como BI, de su nombre en inglés Business Intelligence.

Son términos como Cassandra, Apache Lucene, Elasticsearch, Flume, Hadoop, HBase, Hive, Kafka, MongoDB, Spark, Storm, Pivotal, MapR, Hortonworks, Cloudera, Agile Software Development, Python, Java o Scala, NoSQL, R, MLlib, Weka, etc. en los que se mezcla un poco de todo, nombres de herramientas y entornos, de sistemas de gestión de bases de datos, de lenguajes de programación, de técnicas y de metodologías, tanto específicos para Big Data y Business Intelligence como para otros usos.

A comienzos de 2015 y a partir de ellos se me ocurrió redactar un vocabulario de supervivencia para estas reuniones empresariales de Big Data y Business Intelligence.

Ahora a finales de 2015 he seleccionado para presentar aquí 13 de los más frecuentes de esos términos, que son:

NoSQL: Término que sirve para hacer referencia a los sistemas de gestión de base de datos no relacionales. Comprende categorías como clave-valor, BigTable, bases documentales y bases de datos orientadas a grafos. Estos sistemas de gestión de bases de datos están optimizados para recuperar y agregar datos, pero no suelen ofrecer funcionalidades más allá de almacenar y recuperar registros, por ejemplo, usando un esquema de clave-valor. Estas limitaciones para algunos aspectos las compensan con ganancias en escalabilidad y rendimiento.

BigTable: Es un sistema de gestión de base de datos creado por Google, es distribuido, de alta eficiencia y propietario. Fue construido utilizando Google File System (GFS) y Chubby Lock Service. Funciona sobre computadores personales con procesadores Intel sencillos y baratos. Almacena la información en tablas multidimensionales, donde muchas celdas pueden estar vacías y, también, contener versiones temporales de sus valores históricos.

MongoDB: Su nombre procede de humongous / enorme. Es un sistema de base de datos NoSQL, orientado a documentos y desarrollado como código abierto.

Cassandra: Es un sistema de base de datos NoSql con las siguientes características: almacenamiento por clave-valor, Java, grandes volúmenes, escalabilidad lineal, alta disponibilidad, arquitectura distribuida con nodos iguales comunicados por un protocolo P2P con máxima redundancia, desarrollado por Apache Software Foundation.

Apache Lucene: Es un API, interfaz de aplicación, de código abierto para la recuperación de información, es útil para indexar y buscar a texto completo.

Multitenencia: Término que se emplea cuando una sola instancia de la aplicación se ejecuta en el servidor sirviendo a múltiples clientes u organizaciones. Este concepto se diferencia de las arquitecturas con múltiples instancias donde cada cliente u organización tiene su propia instancia instalada de la aplicación.

REST y RESTful: Los sistemas que siguen los principios REST se suelen llamar RESTful. Se dice que la web ha disfrutado de escalabilidad como resultado de una serie de diseños clave:

  • Un protocolo cliente / servidor sin estado, donde cada mensaje HTTP contiene toda la información necesaria para comprender la petición, ni cliente ni servidor necesitan recordar ningún estado de las comunicaciones entre mensajes, pero, en la práctica, muchas aplicaciones HTTP necesitan mecanismos como las cookies u otros para mantener el estado de la sesión.
  • Un conjunto de operaciones bien definidas que se aplican a todos los recursos de información, HTTP en sí define un conjunto pequeño de operaciones como POST, GET, PUT y DELETE.
  • Una sintaxis universal para identificar los recursos, en un sistema REST, cada recurso es direccionable únicamente a través de su URI.
  • El uso de hipermedios, para la información de la aplicación y para las transiciones de estado de la aplicación, la representación de este estado en un sistema REST son típicamente HTML o XML, por ello, es posible navegar de un recurso REST a otros, siguiendo enlaces sin requerir el uso de registros u otra infraestructura adicional.

JSON: JavaScript Object Notation, es un formato ligero para el intercambio de datos, por su simplicidad de JSON es una alternativa a XML en AJAX. Es sencillo escribir un analizador sintáctico (parser) de JSON. En JavaScript, un texto JSON se puede analizar usando la función eval().

Elasticsearch: Servidor de búsqueda basado en Lucene, motor de búsqueda de texto completo, distribuido y con capacidad de multitenencia con una interfaz web RESTful y con documentos JSON. En Java y publicado como OSS con licencia Apache.

Hadoop Apache: Framework que soporta aplicaciones distribuidas, licencia libre, permite a las aplicaciones trabajar con miles de nodos y muy altos volúmenes de datos, se inspira en los documentos Google para MapReduce y Google File System (GFS).

HBase: Sistema de gestión de base de datos que sigue el modelo BigTable Hypertable usado en Hadoop.

Cloudera Impala: Motor de consultas SQL OSS para el procesamiento masivo en paralelo de los datos almacenados en un clúster de computadoras ejecutando Apache Hadoop.

Pentaho BI Suite: Conjunto de programas libres para BI para: ETL (extracción, transformación y carga); Analysis Services (Modrian, OLAP, MDX, XML); Reporting con OpenOffice; Data Mining usando Weka para clasificación, regresión, reglas de asociación, clustering, análisis predictivo; Dashboard de informes, gráficos interactivos y cubos creados con las herramientas Pentaho Report Designer; y Apache Hadoop para acceder a grandes volúmenes de datos.

Notoriedad en verde frente a notoriedad estimada en marrón

Dentro de 3 años más de la mitad de estos términos, ahora tan notorios, o los habremos olvidado o nos olerán ya a naftalina.

Colegiado del CAF de Madrid, baja

Hoy, 25 de septiembre de 2015, he solicitado la baja voluntaria como colegiado del Colegio de Administradores de Fincas de Madrid, tras más de 4 años de colegiación en los que he aprendido mucho.

Perito judicial en informática forense

Peritos Criminólogos y Expertos en Ciencias Periciales para los Tribunales de Justicia

Soy miembro de la La Asociación Nacional de Peritos Criminólogos y Expertos en Ciencias Periciales para los Tribunales de Justicia, ANPC y, a través de ella, Perito Judicial en Informática Forense de los Tribunales de Justicia, con Tarjeta de Identificación Personal TIP 114.005.

La ANPC, como puede consultarse en su dirección Asociacion-ANPC.es, agrupa a titulados universitarios en Criminología y a prestigiosos expertos en las diferentes especialidades de las áreas periciales y forenses.

  • Expert witness in computer forensic for the courts, with Personal Identification Card number 114.005, since 2015.
  • Perito judicial en informática forense de los Tribunales de Justicia, con Tarjeta de Identificación Personal TIP 114.005, desde 2015.

Conjuntos de palabras con las mismas 10 letras

  • apartadero, aportadera, aporretada, apretadora.