Personalizar con A-PDF Text Replace

He empezado a utilizar A-PDF Text Replace que es una herramienta muy útil para modificar documentos en formato PDF.

Por ejemplo, sirve para personalizar un mismo documento PDF para diferentes personas. Para ello se puede poner en el documento PDF original un texto que haga de campo a reemplazar, por ejemplo, _NOMBRE_, y luego utilizar A-PDF Text Replace para cambiar _NOMBRE_ por el nombre de cada persona. Como con A-PDF Text Replace se pueden dar varias órdenes de cambio en la misma ejecución, se puede personalizar simultáneamente el nombre, la fecha, la dirección u otros campos.

A-PDF Text Replace es también invocable desde la línea de mandatos, por lo que puede invocarse con System() desde el lenguaje TOL, como se muestra en el siguiente código:

///////////////////////////////////////////////////////////////////
Real PdfReplace(Text inpPth, // Input file path
                Text outPth, // Output file path
                Text namCus) // Customer name
///////////////////////////////////////////////////////////////////
{
  Text pdfCmd = W("bin/apdf/ptrcmd.exe"); // A-Pdf executable path
  Text inpDos = Q(W(inpPth));
  Text outDos = Q(W(outPth));

  Text forOld = Q(":e:");
  Text namOld = Q(":a:");
  Text dteOld = Q(":c:");

  Text forNew = Q("Edición personalizada para");
  Text namNew = Q(namCus);
  Text dteNew = Q("el "+Dte2Spa(Now)+"."); // Spanish date

  Text cmdTxt = pdfCmd+" "+inpDos+" "+outDos+" "+
                           forOld+" "+forNew+" "+
                           namOld+" "+namNew+" "+
                           dteOld+" "+dteNew;
                            
  Real sysRet = System(cmdTxt); // Execute

  sysRet // Returns
};
  

Donde Q() y W() son dos pequeñas funciones donde la primera pone comillas en los caminos de los ficheros, por si esos nombres contuvieran caracteres blancos, y la segunda cambia el slash normal ( / ) por el back slash de los caminos de Windows ( \ ).

///////////////////////////////////////////////////////////////////
Text Q(Text txt) // Text
///////////////////////////////////////////////////////////////////
{ Char(34)+txt+Char(34) };

///////////////////////////////////////////////////////////////////
Text W(Text txt) // Text
///////////////////////////////////////////////////////////////////
{ Replace(txt, "/", "\\") };
  

La siguiente ventana muestra la ejecución de A-PDF Text Replace invocado desde TOL. El mandato que se esta ejecutando en la ventana es:

bin\apdf\ptrcmd.exe
"..\Ediciones\9788493912901.Becquer.Gustavo. Adolfo.Leyendas\
BecquerGA.Leyendas.20110802.aContracorriente.PackDigital\BecquerGA.
Leyendas.20110801.aContracorriente.pdf"
"aContracorriente\BecquerGA.Leyendas.20110801.aContracorriente.pdf"
":e:" "Edición personalizada para"
":a:" "Antonio Salmeron"
":c:" "el 9 de septiembre de 2011."
    
Donde ":e:", ":a:" y ":c:" son los campos que se utilizan para ser remplazados por los texto de personalización.

El resultado es el que se muestra en la siguiente imagen. A la izquierda el PDF original, a la derecha el PDF modificado.

Es la personalización de una edición digital de las Leyendas de Gustavo Adolfo Bécquer. Los campos seleccionados en el primer PDF corresponden a las marcas, los campos seleccionados en el segundo PDF a los valores finales de la personalización.

Buscar datos en Mozilla Backup de Thunderbird

Para buscar datos (direcciones, teléfonos, fechas de envío, etc.) que estaban en un email borrado, pero guardado en un backup realizado con Mozilla Backup (MozBackup) para el sistema de gestión de correo electrónico Thunderbird, no es necesario restaurar el backup. Lo que es especialmente relevante para backups de más de un Gbyte.

El fichero de MozBackup (extensión .pcv) es un fichero comprimido, que se puede abrir con 7-zip, también con WinZip y WinRar, y volcar todo su contenido a un directorio temporal. Este directorio sigue la estructura de los directorios de trabajo de Thunderbird.

Una vez volcado se puede navegar, manualmente, por el árbol de directorios para localizar la carpeta en la que se cree que esta el correo. Esta navegación también se podría hacer dentro del fichero comprimido, pero me resulta mucho más incómoda.

Si no se sabe muy bien donde pueden estar los datos o los correos electrónicos, se puede localizar el fichero o los ficheros que los contienen con alguna utilidad de búsqueda recursiva en un árbol de directorios y aquellos patrones de búsqueda que creamos más significativos. En estos casos, en Windows, utilizo grep.exe de GNU (GnuGrep) con la opción -r de recursivo, por ejemplo: \bin\gnuwin32\bin\grep -r -l -c "asolver.com" ImapMail para buscar correos del dominio asolver.com sólo en la carpeta ImapMail, lo más cómodo es buscarlo en el total (.).

Hay que tener en cuenta que el caracter arroba (@) típico de las direcciones de correos a veces aparece como tal en las cabeceras de los correos electrónicos y otras como =40 siendo el 40 el código ASCII hexadecimal de la arroba (64 decimal, el anterior a la A y el doble que el caracter blanco), como sucede en el cuerpo de los correos. Por lo que se podrían probar búsquedas como "asalmeron@asolver.com" o "asalmeron=40asolver.com".

Si finalmente hay que examinar visualmente el fichero o los ficheros localizados por grep.exe, como son ficheros planos, pueden abrirse con un editor de textos para buscar la información localmente. De todos los editores posibles utilizo para ello Notepad2.

Dos vídeos para Editando! blog



Ya metido en la producción de vídeo presento el primero que hicimos y el segundo para Editando! blog que es el blog de Ediciones aContracorriente. Como en los casos anteriores ambos vídeos muestran una gran evolución, el primero todavía parece una presentación y el segundo ya es más vídeo.

El segundo vídeo promociona entre otros, el disco de Azules Blues Trio llamado Blues in Red, de donde se ha sacado su banda sonora. La idea en la que se basa el vídeo es hacer una comunicación cíclica de los mensajes mediante un proceso donde la degradación es sistemática.

Resolver ecuaciones de segundo grado

Pequeño fichero Excel (Libro de Excel 97-2003) con una sola hoja de cálculo que permite resolver las ecuaciones de segundo grado y obtener sus dos soluciones.

En la parte izquierda de la hoja de cálculo, a partir de la ecuación sen encuentran sus 2 raices, se factoriza la ecuación de segundo grado como (x - 1ª raiz) . (x - 2ª raiz) y se vuelve a reconstruir la ecuación para comprobar que todo es correcto.

La parte derecha de la hoja de cálculo, permite generar problemas sencillos de ecuaciones de segundo grado para su posterior solución.

Las celdas azules son para introducir los datos y las celdas verdes para ver los resultados.

Dos vídeos de Leyendas de Bécquer



En Ediciones aContracorriente hemos realizado dos vídeos promocionales para nuestra edición de Leyendas de Gustavo Adolfo Bécquer.

Ambos vídeos con música de Modest Mussorgsky interpretada por la Skidmore College Orchestra. Una noche en el Monte Pelado para el primer vídeo y El Gnomo de la suite Cuadros de una Exposición para el segundo. Las dos obras están en dominio público y disponibles en MusOpen.org, un buen sitio para encontrar música clásica en dominio público.

Los vídeos se han desarrollado en PowerPoint 2010. En las versiones anteriores de PowerPoint se puede intruducir una banda sonora, pero esa banda no se guarda en formato de Vídeo de Windows Media (.wmv).

Los vídeos están en nuestro canal EditandoTv de YouTube. A pesar de tratarse de música en dominio público, el algoritmo de YouTube, que seguro que es bueno pero que se cura en salud, decide que es música protegida con derechos y, por eso, nos ponen anuncios. Cuando sepa cómo quitarlos espero poder contarlo.

Dentro de una web, los videos de YouTube, se pueden visualizar con ciertos parámetros, por ejemplo, la secuencia autoplay=1 loop=1 showsearch=0 rel=0, significa, auto-ejecútate sin necesidad de que alguien te arranque, vuelve a empezar cuando termines y no saques relacionados y nada para buscar, así youtube.com/v/rXl7mOtQRA0?autoplay=1&loop=1&rel=0&showsearch=0 es la URL con la que se consigue una ejecución inmediata y cíclica, que aquí no se utiliza pues molestaría a otros posts.

Colegiado del CAF de Madrid

Hoy, 12 de julio de 2011, me he colegiado con el número 09714, en el Colegio de Administradores de Fincas de Madrid que está en la calle García de Paredes 70, 28010 Madrid.

Comprobar divisiones con resto

Pequeño fichero Excel (Libro de Excel 97-2003) con una sola hoja de cálculo que permite comprobar el cociente y el resto de divisiones.

También permite comprobar divisiones cuando se pide calcular el cociente con 2 decimales.

Las celdas azules son para introducir los datos y las celdas verdes para ver los resultados.

Especialista en gestión inmobiliaria

Inicié estos estudios en septiembre de 2008 y los terminé en julio de 2011. Durante esos 3 años cursé las siguientes materias:

  • Primer curso, primer cuatrimestre: Derecho Civil, Mercado Inmobiliario, Normas Técnicas, Promoción Marketing, Contabilidad y Derecho Financiero.
  • Primer curso, segundo cuatrimestre: Derecho Civil, Empresa Inmobiliaria, Derecho Financiero, Contabilidad, Sociología Urbana y Derecho Mercantil.
  • Segundo curso, primer cuatrimestre: Derecho Civil, Derecho Financiero, Mantenimiento de Inmuebles, Derecho de Sociedades, Derecho Urbanístico y Peritación.
  • Segundo curso, segundo cuatrimestre: Derecho Civil, Derecho Financiero, Mantenimiento de Inmuebles, Derecho de Sociedades, Derecho Urbanístico y Derecho del Trabajo.
  • Tercer curso, primer cuatrimestre: Derecho Civil, Contratos Bancarios, Gestión Inmobiliaria, Tributación Local, Política de Vivienda e Informática.
  • Tercer curso, segundo cuatrimestre: Derecho Civil, Informática, Derecho Notarial, Deontología, Gestión Tributaria y Seguros.

Me convalidaron las asignaturas de Contabilidad, Marketing, Dirección de empresas e Informática.

Tras terminar los 3 años de estudios, justo a continuación, me colegié, el 12 de julio de 2011, en el Colegio de Administradores de Fincas de Madrid.

  • Specialist in Real Estate Management, Department of Private Law, University of Burgos, 3 years, 2008-2011.
  • Especialista en Gestión Inmobiliaria, Departamento de Derecho Privado, Universidad de Burgos, 3 años, 2008-2011.

Dos vídeos de Ediciones aContracorriente



Entre abril de 2011, que empezamos, y agosto de 2011, en Ediciones aContracorriente hemos realizado varios vídeos de presentación, tanto de nuestra Editorial como de los primeros títulos editados.

Para hacer estos vídeos utilizamos PowerPoint, llevándolo casi al límite de sus posibilidades. Entre el primer vídeo de este post y el segundo hay unos 4 meses de evolución. He seleccionado estos dos vídeos pues conteniendo unos mensajes similares muestran muy diferentes fuerzas expresivas.

Estos dos vídeos y otros muchos pueden verse en nuestro canal YouTube.com/EditandoTv.

La banda sonora del segundo vídeo es Exciting Trailer de Kevin MacLeod en su web incompetech.com pueden escucharse muchas de sus creaciones que las tiene en dominio público. La imagen del fondo está realizada troceando Semper Eadem, un cuadro mio expuesto en inkwatercolor.com en su sección dedicada a Las Flores del Mal de Charles Baudelaire (el título del cuadro corresponde al poema del mismo nombre).

Dígitos de control de una cuenta bancaria

Hoja de cálculo Excel (Libro de Excel 97-2003) para calcular los dos de dígitos de control de una cuenta bancaria.

El cálculo de los dígitos de control se realiza a partir de los códigos de banco, sucursal y cuenta, introduciéndolos en las celdas Excel dígito a dígito.

Esta hoja Excel permite conocer el mecanismo de cálculo de ambos dígitos de control, mediante:

  • los textos explicativos que contiene la hoja,
  • su diseño de cálculo por fases (datos de entrada, parámetros de cálculo, resultados intermedios y resultados finales) y
  • las fórmulas visibles dentro de sus celdas.

El quiosc cerca el seu paper en l’era digital

Fui consultado y citado en el artículo de prensa «El quiosc cerca el seu paper en l’era digital» del periodista Francesc Muñoz Dorado en el L'Econòmic.

L'Econòmic es un semanario, tanto con edición en papel como digital, de información y análisis económico dirigido por Ramón Roca y editado por Hermes Comunicacions.

Mi visión de la necesidad de evolucionar y ser proactivo en el negocio del quiosco, como forma de enfrentarse al futuro, o más bien a la realidad digital actual, está en claro contrapunto con las visiones de otros expertos dentro en el mismo artículo.

  • Cited in «El quiosc cerca el seu paper en l’era digital» by Francesc Muñoz Dorado, L'Econòmic, weekly publication, Hermes Comunicacions, Barcelona, January of 2011.
  • Citado en «El quiosc cerca el seu paper en l’era digital» por Francesc Muñoz Dorado, L'Econòmic, semanario, Hermes Comunicacions, Barcelona, enero de 2011.

Ecuaciones de 2 a 6 incógnitas con matrices

Fichero Excel (Libro de Excel 97-2003) con 6 hojas de cálculo para resolver pequeños sistemas de ecuaciones de 2 a 6 incógnitas.

En las 2 primeras hojas de cálculo se resuelven sistemas de 2 ecuaciones de con 2 incógnitas. En la primera mediante la función Excel inversa de una matriz y en la segunda mediante el cálculo paso a paso de la inversa de una matriz 2x2.

En las 4 siguientes hojas de cálculo se resuelven sistemas de ecuaciones con 3, 4, 5 y 6 incógnitas, mediante la función Excel inversa de una matriz (MINVERSA()).

Las 2 últimas hojas de cálculo (con 5 y 6 ecuaciones) también contienen un área de celdas para la comprobación de los resultados.

Estas hojas de cálculo Excel permiten conocer el mecanismo de cálculo empleado, mediante:

  • su diseño de cálculo por fases, especialmente en la 2ª hoja, con datos de entrada, resultados intermedios y resultados finales y
  • las fórmulas visibles dentro de sus celdas.

La función Excel MINVERSA() es una fórmula matricial que afecta a varias celdas de forma simultánea. La introducción de este tipo de fórmulas matriciales es diferente al de las funciones normales de Excel. Los pasos para introducir una fórmula matricial son:

  • Se selecciona el rango de celdas que ocupará la matriz destino, por ejemplo, un rango 2x2, empezando por la celda de la esquina superior izquierda.
  • Se pulsa la tecla F2 que activa la posibilidad de introducir una fórmula en la celda de la esquina superior izquierda (que es por la que se comenzó la selección). Entonces se teclea la fórmula matricial, por ejemplo: =MINVERSA(T6:U7).
  • Una vez tecleada la fórmula y con el rango de celdas destino que sigue seleccionado se pulsan simultáneamente las teclas Control+Shift+Intro. Entonces la fórmula matricial se expande a todo el área seleccionada y Excel la visualiza entre corchetes, como {=MINVERSA(T6:U7)}, para señalar que es una fórmula matricial.
  • Nota: Una vez tecleada la fórmula no hay que pulsar Intro, ni el botón llamado introducir (v) que está a la izquierda del área de introducción de fórmulas.

con-Q, entrevista sobre la tienda online

La entrevista en la revista ED comienza diciendo que: «En línea con el Plan Estratégico y siguiendo las directrices sobre nuevos negocios que marca el Libro Blanco del quiosco de Prensa en Madrid, los proyectos con-Q y su tienda online con-q.es, se estrenan este mes las calles de Madrid...»

En la entrevista hablo y describo los importantes cambios realizados en la estructura y cometido del quiosco de prensa por la Asociación de Vendedores Profesionales de Prensa de Madrid (AVPPM) para hacer de internet su aliado.

Estos cambios se han materializado en 2010 en dos proyectos llevados a cabo por la AVPPM, en los que he tenido la fortuna de participar. Ambos proyectos tienen un objetivo común; la adaptación del quiosco a las nuevas necesidades del mercado.

  • Interviewee in «con-Q y su tienda online con-q.es», ED Encuentros Diarios, monthly magazine, number 151, year XIV, AVPPM, Madrid, November of 2010.
  • Entrevistado en «con-Q y su tienda online con-q.es», ED Encuentros Diarios, revista mensual, número 151, año XIV, AVPPM, Madrid, noviembre de 2010.

5 palabras terminadas en u de género femenino

Me vinieron con la pregunta del colegio, ¿hay palabras terminadas en u de género femenido?, pues las hay, aunque para encontrar las 5 siguientes tardé un tiempo. De las 5 la que más me gusta es tribu:

  • cu: Femenino. Nombre de la letra q.
  • u: Femenino. Vigésima cuarta letra del abecedario español.
  • interviú: Del inglés interview. Ambiguo, pero usado más en femenino. Entrevista, acción y efecto de entrevistar.
  • mu: Femenino. En desuso. Sueño, acto de dormir. Era usado por las nodrizas cuando querían que se durmieran los niños, diciéndoles: Vamos a la mu.
  • tribu: Del latín tribus. Femenino. Cada una de las agrupaciones en que algunos pueblos antiguos estaban divididos o grupo social primitivo de un mismo origen.

Las siguientes 16 líneas de código TOL permiten localizar de un fichero de palabras, una por línea, las terminadas en u y volcarlas en otro fichero, igualmente una por línea, encontrar las de género femenino, sin más información, es ya más personal:

Text inpFil = "ficherodepalabras.txt";
Text outFil = "u.txt";
Text WriteFile(outFil, "");

Text filTxt = ReadFile(inpFil);
Set  linSet = Tokenizer(filTxt, "\n");
Set  linCic = EvalSet(linSet, Real(Text linTxt)
{
  Real len = TextLength(linTxt);
  Text end = Sub(linTxt, len, len);
  If(end <: [["u", "ú"]],
  {
    Text WriteLn(linTxt);
    Text AppendFile(outFil, linTxt+"\n");
    1
  },0)
});
  

Presentación de con-Q y su tienda online

Este artículo ofrece un resumen gráfico de la presentación pública de los proyectos con-Q y su tienda online con-q.es en los que participé activamente, desde su ideación y desarrollo hasta su presentación pública y puesta en marcha. En la realización de los soportes de comunicación conté con la colaboración de Luis Torrijos.

Estos dos proyectos se presentaron el jueves 25 de noviembre a las 11 horas en el Salón de Actos de la Cámara de Comercio de Madrid, con la participación de la Ilustrísima Señora. Doña Eva Piera, Viceconsejera de Economía, Comercio y Consumo de la Comunidad de Madrid, de Don Juan del Álamo, Coordinador de Empleo y Desarrollo Empresarial del Ayuntamiento de Madrid, de Don Arturo Fernández, Presidente de la Cámara de Comercio de Madrid y de CEIM-CEOE y de Don Enrique Fernández Marqués Presidente de la Asociación de Vendedores Profesionales de Prensa de Madrid (AVPPM).

  • Consultant, «con-Q project with its on-line shop», an AVPPM project, a Babel Sistemas de Información development, Madrid, November of 2010.
  • Consultor, «proyecto con-Q con su tienda on-line», un proyecto de la AVPPM, un desarrollo de Babel Sistemas de Información, Madrid, noviembre de 2010.

artthropods.net: bichos de material reciclado

Artthropods.net es una web deliciosa de Miguel Ángel Nuñez. Fue desarrollada en 2002 por un querido amigo suyo que ya no está entre nosotros.

Inicialmente estaba albergada en un servidor de Arsys, pero tras una actualización por parte de Arsys de la versión del sistema operativo de ese servidor, la web dejo de funcionar y tampoco es que los de Arsys proporcionaran mucha ayuda a sus recuperación.

En 2010, a partir de un backup de la web, corregí en su código todo aquello que hacía que hubiera dejado de funcionar, cree el nuevo dominio Artthropods.net, la albergue en un servidor mio y, desde entonces, vuelve a estar operativa.

La web contiene una fabulosa tienda y un museo de bichos realizados a mano por Miguel Ángel Núñez con material reciclado. Aunque agrupados por especies (Insectos, Crustáceos y Arácnidos) y familias (Halogenatae, Cohoniaceae, Bichiidae, Escaracazolae, Saltavoltiaceae, Viniliidae, Picnicpterae, Latharontidae, Microchupterae, Anthiparridae, Calzadoriaceae, Recycliidae, Macrochupopterae, Scorpioniidae, Malahosstiaceae, Calandrakae, Casualidea, Malakostrakae y Aranyas), cada bicho es totalmente diferente y con nombre propio:

Agaffosperma capronna, Anthiparris vacuum, Bishogordus tontorronis, Bombus jamacucus, Cascanut goliath, Chupoptera grappadora, Duploclippaa primigenia, Escaracazus inox, Fagopringatta seductora, Fornica docarallo, Gamba manolopozus, Grillotata longuipatta, Lacusta coloreatta, Lataronthias mejillonii, Malahossssthia elegans (hembra y macho), Neuropteris fabafacialis, Onthocazus lathicornis, Patachunga blueyes, Pompilia sublimis, Raybannia lenti-macarria, Recyclida miniwattia, Saltavoltios chamaleon, Scorpio dipostre, Tabanus inox, Tippex magnum, Vespachappa splendens, Vespina brebis, Zumbix violacea, Zumbonia lunaria, etc.

Pueden adquirirse a unos precios muy razonables para el trabajo que tienen y lo bonitos que son. Tanto si tienes interés por conseguir algún ejemplar (el mio es como el que aparece en la imagen de la izquierda) o sólo por contemplar los que se muestran en su Museo te recomiendo que visites la web.

Esta web está desarrollada en HTML con JavaScript para el lado del cliente y con Active Server Pages (ASP) para el lado del servidor, soportado por una base de datos Access de Microsoft y por los dos últimos productos ha de albergarse en un servidor Windows con Internet Information Services (IIS).

Solución a un 3D Squares

Hay puzzles que les regalan a los niños que parecen triviales y no lo son, a veces ni para los niños ni para los adultos. Para mi este es un caso claro.

Para resolverlo tuve que programar un solucionador en TOL que no resulto muy complicado. De hecho mucho menos complicado que resolver manualmente el puzzle 3D Squares. Aunque el código completo junto con su traza de ejecución puede obtenerse en PDF al final de este post, pongo a continuación en algoritmo recursivo fundamental. Este algoritmo encuentra 4 soluciones iguales, pues unas resultan de un giro de 90º de otras:

///////////////////////////////////////////////////////////////////
Real SolCua(Set entSol, Set entPie) // Resuelve
///////////////////////////////////////////////////////////////////
{
  Real crdSol = Card(entSol);
  Text Write(FormatReal(crdSol,"%.0lf"));

  If(EQ(crdSol, 9), SolVer(entSol), // Ha encontrado una solucion
  {                 // Busca soluciones
    EvalWhile(entPie, Real(Text unoPie)
    {
      Set salPie = entPie - [[unoPie]];
      Set varPie = VarAll(unoPie);
      EvalWhile(varPie, Real(Text unoVar)
      {
        Set salSol = entSol << [[ unoVar ]];
        If(SolBue(salSol), SolCua(salSol, salPie), FALSE)
      })
    })
  })
};
  

Puertas lógicas AND, OR, XOR y Sumador en Excel

Ejemplo de programación en Excel de puertas lógicas AND, OR, XOR y Sumadores con acarreo (la versión es la de Excel 97-2003).

En la primera hoja se ven las puertas lógicas AND (Y), OR (O) y XOR (O exclusivo) y sus tablas de verdad. En la segunda hoja un sumador con acarreo y su tabla de verdad construido mediante las puertas anteriores. La tercera hoja contiene 3 versiones de sumadores con acarreo similares al de la hoja anterior. En la cuarta hoja se implementa un sumador de 3 bits a partir de los sumadores anteriores.

Incluye todas las pistas de conexión entre las puertas, con diferentes colores, para ver la transmisión de la información.

Creación de la marca colectiva europea con-Q

Gestión de la creación y registro de la marca colectiva europea en la Oficina de Armonización del Mercado Interior (OAMI) y de la redacción de su reglamento de uso para la red de quioscos de prensa de Madrid.

El nombre «con-Q» es una creación de Enrique Fernández, presidente de la Asociación de Vendedores Profesionales de Prensa de Madrid (AVPPM) y hace referencia a que quiosco se escribe con Q (en el diccionario de la Real Academia Española kiosco envía a quiosco).

El logotipo de la marca es un diseño de eñe multimedia dirigida por Manuel Ángel Sánchez y el desarrollo del reglamento de la marca se realizó en colaboración con Javier Soto del despacho de abogados Columba Ius.

  • Consultant, «Creation and registration of con-Q as colective european trade mark, includes the development of his regulation of use», AVPPM trade mark, Madrid, July of 2010.
  • Consultor, «Creación y registro de con-Q como marca colectiva europea, incluye el desarrollo de su reglamento de uso», marca registrada de la AVPPM, Madrid, julio de 2010.

Tablas de multiplicar y multiplicaciones

Fichero Excel de Microsoft con tablas de multiplicar y multiplicaciones de 1, 2, 3, 4 y 5 dígitos por 1 dígito. Plantea multiplicaciones, hay que teclear los resultado e informa de los errores de tal manera que si el número sale azul es que la multiplicación está bien, si sale en rojo es que está mal.

En cada una de las 6 hojas Excel hay una celda negra que permite generar 9 conjuntos diferentes de combinaciones de operaciones (del 1 al 9). Las soluciones también pueden consultarse en la parte inferior de cada hoja Excel en el área coloreada de gris. La versión es la de Excel 97-2003.

Madrid I+D y SINC: Prime Time / ROI

Dos referencias al artículo «A Time series approach for broadcast television advertising» en Madrid I+D y en el Servicio de Información y Noticias Científicas (SINC).

Este artículo fue inicialmente escrito por Clara Simón de Blas y Ana E. García Sipols del Departamento de Estadística de la Universidad Rey Juan Carlos de Madrid, por José Andrés Martínez de Risk and Markets Analytics de Everis y por mi desde Cetiver, posteriormente tuvimos la suerte de que se nos uniera Esther Martínez Pastorc del Departamento de Comunicación de la Universidad Rey Juan Carlos de Madrid.

Resumen: Desarrollo de un modelo que pronostica el grado de conciencia sobre los anuncios televisivos basados sobre la memoria y el impacto de una campaña publicitaria. Se trata de una forma de conocer la notoriedad de una marca en cada segmento del público que sirve para establecer el precio de los anuncios e invertir en publicidad de una manera más óptima.

  • Referenced in «The Prime Time not always obtains the best ROI», by Madrid I+D and by SINC, Madrid, December of 2009.
  • Referenciado en «El Prime Time no siempre consigue el mayor ROI», por Madrid I+D y por SINC, Madrid, diciembre de 2009.

Modelling broadcast television advertising

A Time series approach for broadcast television advertising.

Artículo escrito junto con Ana E. Sipols y Clara Simón de Blas del Departamento de Estadística de la University Rey Juan Carlos of Madrid y José Andrés Martínez de Risk and Markets Analytics de Everis.

Abstract: The degree of knowledge that each public segment has of a given brand, idea, product or service present in the television commercial market (notoriety) is an important factor in order to determine the price of television commercial time slots. In this paper, we propose a forecasting model for the awareness of television commercials based on the memory of a campaign impact (Gross Rating Point). We present the results of applying the model in a known Spanish Television Channel and the goodness fit of the model.

  • Coauthor, «A Time series approach for broadcast television advertising», University Rey Juan Carlos, Madrid, November of 2009.
  • Coautor, «Una aproximación de series temporales a la publicidad en televisión», Universidad Rey Juan Carlos, Madrid, noviembre de 2009.

Entrevista sobre el SPC referenciada en a:Ditoday

Referencia en a:Ditoday y resumen de la entrevista realizada por la revista Encuentros Diarios sobre el Sistema de Pagos Centralizado (SPC) de la AVPPM.

  • Referenced in «The Centralized Payments System, a crucial step» by a:Ditoday, number 138, year XIII, Barcelona, October of 2009.
  • Referenciado en «El Servicio Centralizado de Pagos, un paso crucial» por a:Ditoday, Barcelona, octubre de 2009.

Entrevista sobre el Sistema de Pagos Centralizado

Entrevista en la revista Encuentros Diarios de la Asociación de Vendedores Profesionales de Prensa de Madrid (AVPPM), en la que como su Consultor en Negocios y Tecnología presento los objetivos y características principales del Sistema de Pagos Centralizado (SPC) a los tres meses de su puesta en funcionamiento.

El SPC es la unión operativa de los quioscos en la función de pago que tiene un triple objetivo: facilitar el cobro a los proveedores presentes y futuros (lo que es relevante para nuevos proveedores no acostumbrados a trabajar con los quioscos de prensa), potenciar a la capacidad de negociación de los quioscos y dar un nuevo paso adelante en la modernización de la gestión de los quioscos.

  • Interviewee in «The Centralized Payments System, a crucial step» by ED Encuentros Diarios, monthly magazine, number 138, year XIII, AVPPM, Madrid, September of 2009.
  • Entrevistado en «El Servicio Centralizado de Pagos, un paso crucial» por ED Encuentros Diarios, revista mensual, número 138, año XIII, AVPPM, Madrid, septiembre de 2009.

Ideación el Sistema de Pagos Centralizado, AVPPM

Ideación y gestión del proyecto de desarrollo del Sistema de Pagos Centralizado (SPC) para la Asociación de Vendedores Profesionales de Prensa de Madrid (AVPPM).

El gráfico de la portada de la revista Encuentros Diarios (ya en marzo de 2010) muestra la evolución del volumen de pago semanal que gestiona el SPC.

El proyecto contó con el patrocinio del Instituto Madrileño de Desarrollo (IMADE) de la Comunidad de Madrid, dentro de su plan de subvenciones para la Innovación tecnológica en PYMES (InnoEmpresa 2009) y de los fondos FEDER de la Unión Europea.

  • Consultant, «Centralized Payments System (SPC)», an AVPPM project, Madrid, August of 2010.
  • Consultor, «Sistema de Pagos Centralizado (SPC)», un proyecto de la AVPPM, Madrid, agosto de 2010.

Aprender chino y poemas Táng, 2009

20 traducciones buscando la literalidad

de poemas de Dù Fu, Li Bái, Li Duan, Mèng Hàorán, Wáng Wéi, Xi Birén, Yú Shì Nán y Zhang Hù (dinastía Táng, siglos VII-X).

Los poemas son, por orden de aparición: Wáng Wéi «Adiós al partir», Wáng Wéi «Caída de la ciudad de Mèng», Li Bái «Sentado sólo en la montaña Jìng Tíng», Wáng Wéi «Entre los bambúes», Yú Shì Nán «Cigarras», Li Bái «Pensamiento en noche serena», Wáng Wéi «La cerca de los ciervos», Wáng Wéi «Llegada al pabellón del lago», Zhang Hù «Recuerdos de la infancia», Dù Fu «El Laberinto Octogonal», Wáng Wéi «La colina de Huá Zi», Xi Birén «La canción de Geshu», Mèng Hàorán «Pasando la noche en los ríos de Jiàndé», Wáng Wéi «Sierra de Jin Zhú», Li Duan «Escuchando al zheng», Wáng Wéi «Cerro del norte», Wáng Wéi «Cerro del sur», Wáng Wéi «Lago Yi» y Wáng Wéi «Albergue bajo el albaricoque veteado»

  • Author, «Learn Chinese and Táng poetry», Intellectual Property Register, number 16/2009/9955, Madrid, June of 2009.
  • Autor, «Aprender chino y poemas Táng», Registro de la Propiedad Intelectual, número 16/2009/9955, Madrid, junio de 2009.

Informes estadísticos para ANECA

Automatización de la generación de informes estadísticos sobre los resultados de la evaluación del profesorado universitario para la Agencia Nacional de Evaluación de la Calidad y Acreditación (ANECA).

Realizado en colaboración con Cetiver, es un desarrollo en lenguaje TOL, contra una base de datos SQL-Server, con generación de informes en formato PDF y envío automático de los informes por email a 44 Vicerrectores de Universidades Españolas.

Se trata de un programa de los que llamo nocturnos, capaz de funcionar sólo, por las noches, activado por el programador de tareas del sistema, sin necesidad de intervención humana. Fue la primera aplicación real de mis experimentos de generación de informes PDF, desde el lenguaje TOL, mediante la creación de páginas HTML intermedias y su conversión a PDF con Two Pilots.

El código específico de esta aplicación es privado, por lo que sólo incluyo un pequeño ejemplo de las 15 líneas de código de la función de llamada a Two Pilots, para la conversión de un informe HTML a PDF, que es completemente genérico y útil para el que desee invocar a este conversor en su modo de línea de mandatos.

///////////////////////////////////////////////////////////////////
Real PdfBuild(Text filInp, // Input html file
              Text filOut) // Output pdf file
///////////////////////////////////////////////////////////////////
{
  If(Not(FileExist(filInp)), FALSE, // Nothing to do
  {
    // with back slash
    Text dosInp = Replace(PdfAbs+filInp, "/", "\\");
    Text dosOut = Replace(PdfAbs+filOut, "/", "\\");
        
    Text cmdTxt = PdfExe+" "+           // Executable pdf convertor
                  dosInp+" "+           // Input file
                  dosOut+               // Output file
                  " /jpeg 100 /author Aneca";
    Text WriteLn("  Pdf: "+filOut);

    System(cmdTxt) // Execute html to pdf conversion
  })
};
///////////////////////////////////////////////////////////////////
PutDescription(
"Returns true if can create a pdf file filOut from "+
"an html file filInp.",
PdfBuild);
///////////////////////////////////////////////////////////////////
  

Situación actual de los quioscos de prensa

Artículo de Enrique Fernández Marqués y mío publicado en la revista Encuentros Diarios. Tiene cierta relevancia para este sector ya que Enrique Fernández Marqués es el Presidente de la Asociación de Vendedores Profesionales de Prensa de Madrid (AVPPM) y yo soy el Consultor en Negocios y Tecnología de la AVPPM.

Este artículo describe la realidad actual del sector de prensa y revistas en Madrid a lo largo de la cadena formada por los editores, los distribuidores y los quiosqueros, que son el punto de encuentro con el consumidor final. Desde esta realidad actual se plantean las vías de evolución de los quioscos de prensa y su cambio de fisonomía en un futuro no muy lejano.

  • Coauthor, «Current situation of the newspapers stores of Madrid», ED Encuentros Diarios, monthly magazine, number 135, year XIII, AVPPM, Madrid, May of 2009.
  • Coautor, «Situación actual de los quioscos de prensa de Madrid», ED Encuentros Diarios, revista mensual, número 135, año XIII, AVPPM, Madrid, mayo de 2009.

Lanzamiento del web jueju.es

En mayo de 2009, lanzo mi página web http://www.jueju.es, que bajo el lema «aprender chino y poemas Táng», es la plasmación en internet de mi proyecto de traducción de poemas jué jù de la dinastía Táng (del 618 al 907 DC) orientado al aprendizaje del chino.

Son traducciones con métrica pero sin rima, que buscan un isomorfismo con el poema original. Ello me permite asociar, mediante un esquema de colores, cada carácter chino y su pronunciación en pinyin con 1 ó 2 palabras en español para facilitar el aprendizaje del chino.

En http://www.jueju.es se presentan poemas jué jù de los poetas Dù Fu, Li Bái, Mèng Hàorán, Wáng Wéi, Wáng Zhihuàn, Xi Birén, Yú Shìnán, etc. para aprender la lengua china a través de sus clásicos.

Mis traducciones se complementan con tablas trilingües (chino simplificado, tradicional, pinyin e inglés y español) para el vocabulario, imágenes para pictogramas e ideogramas, diagramas de derivación para caracteres compuestos, esquemas tonales para la entonación y todo ello acompañado de textos explicativos e ilustraciones mías en tintas y acuarelas para ir más allá de lo meramente textual.

  • Chinese language (Mandarin basic level) and translation of Tang Dynasty poetry (VII-X AC), available website with own translations at http://www.jueju.es.
  • El chino (nivel básico de Mandarín) y la traducción de poemas de la Dinastía Táng (VII-X dC), en http://www.jueju.es están disponibles mis traducciones.

InkWatercolor, primavera 2009

Patterns | Patrones

Catálogo de primavera del año 2009 de InkWatercolor.com, 49 páginas, color, inglés y español.

Foro de Inteligencia de Negocio

Ponencia como Responsable de Business Intelligence de Cetiver, titulada «Si el público fluye, ¿por qué no adaptar nuestra respuesta?», en el Foro de Inteligencia de Negocio, dentro de las Jornada de Marketing y Ventas, organizado por Interban Network, en el Palacio Municipal de Congresos, Campo de las Naciones, Madrid, el 17 de marzo de 2009.

El título de esta presentación procede de una idea, desarrollada junto con Luis Torrijos, sobre la adaptación de las organizaciones a los mercados cada vez más cambiantes, que de forma completa se expresaba como: «Si el público fluye, ¿por qué no adaptar nuestra respuesta? Hay mucho que ganar». El objetivo de la presentación era resumir algunas de las claves del éxito, en la construcción de sistemas de Inteligencia de Negocio, que he adquirido durante años de experiencia y con el desarrollo de muchos proyectos.

  • Speaker, «If the public flows, why not to adapt our response?», Business Intelligence Forum, Interban Network, Madrid, March of 2009.
  • Ponente, «Si el público fluye, ¿por qué no adaptar nuestra respuesta?», Foro de Inteligencia de Negocio, Interban Network, Madrid, marzo de 2009.

GNU Plot, TOL, Html2Pdf y series temporales

En la documentación adjunta a este post se cuenta el proceso de investigación sobre cómo automatizar la generación de informes con gráficos de series temporales mediante la combinación de GNU Plot con TOL con Html2Pdf de Two Pilots. El objetivo es mecanizar informes gráficos sin intervención humana.

Se presentan cuatro ejemplos, crecientes en complejidad:

  • El primero genera un gráfico simple en formato GIF utilizando GNU Plot, se trata de un programa de demostración de GNU Plot ligeramente modificado.
  • El segundo muestra la generación de un gráfico en formato GIF de una serie temporal larga con datos que proceden del Banco de Canada (Bank of Canada).
  • El tercero muestra cómo generar un gráfico en formato GIF con una serie temporal almacenada en el formato BDT de TOL. También se construye un fichero HTML que contiene el gráfico y lo convierte a PDF llamando tanto a GNU Plot como al conversor a PDF (Two Pilots Html2Pdf) desde TOL.
  • En el cuarto se genera el mismo gráfico que en el tercero pero en 3 formatos diferentes JPEG, GIF y PNG, se insertan los tres gráficos dentro de una página HTML y se produce el PDF utilizando la mejor calidad posible para la generación de los JPEG internos del PDF. Como se explica en el fichero PDF adjunto, al final de este post, el formato que proporciona mejores resultados es el PNG (formato que desde hace tiempo me gusta mucho, por ejemplo, todas las imágenes de este web están en formato PNG).
  • Finalmente en el quinto se utiliza multiplot para generar un gráfico del estilo de los que se emplean en los mercados bursátiles con datos de la operadora de telecomunicaciones Jazztel. También en este ejemplo, dejo de utilizar la extensión de demostración de los ficheros de GNU Plot (.dem) para utilizar la genuina (.plt).

Adjunto a continuación un trozo del código (el código fuente completo se puede ver en el documento adjunto a este post) donde se generan las especificaciones para GNU Plot a partir de una plantilla e igualmente para la página HTML y se invoca a GNU Plot y a Two Pilots Html2Pdf. La plantilla para GNU/Plot está inserta en el propio código TOL y la plantilla para la página HTML se lee de un fichero externo:

///////////////////////////////////////////////////////////////////
// GnuPlot prototype
///////////////////////////////////////////////////////////////////
Text ploSed =
"
set term gif font 'arial' 10 size SIZWID, SEDHEI
set output 'FILGIF'
set datafile separator ';'
set title 'GRATIT' textcolor lt 3 font 'arial,14'
set style data lines
set timefmt '%d/%m/%Y'
set xdata time
set xlabel 'LABELX' textcolor lt 3 font 'arial,12'
set xrange [ 'DTEINI':'DTEEND' ]
set xtics rotate by 90
set format x '%d/%m/%Y'
set ylabel 'LABELY' textcolor lt 3 font 'arial,12'
set yrange [ 0 : ]
set format y '%g'
set grid
set key left
plot 'FILDAT' using 1:2 t 'SERNAM'
reset
";


///////////////////////////////////////////////////////////////////
// Dates and names
///////////////////////////////////////////////////////////////////
Text iniTxt = FormatDate(First(UniqueUsers), "%d/%m/%Y");
Text endTxt = FormatDate(Last (UniqueUsers), "%d/%m/%Y");
Text serNam = Name(UniqueUsers);


///////////////////////////////////////////////////////////////////
// Build and write the GnuPlot command file
///////////////////////////////////////////////////////////////////
Text ploDem = ReplaceTable(ploSed,
  [[ [["SIZWID",  "800"]], [["SEDHEI",  "500"]],
     [["FILGIF", filGif]],
     [["GRATIT", "Demo: BDT to GIF Chart"]],
     [["LABELX", "Weeks"]],
     [["DTEINI",  iniTxt]], [["DTEEND", endTxt]],
     [["LABELY", serNam]],
     [["FILDAT", filDat]],
     [["SERNAM", serNam]] ]], 1);
Text WriteFile(filDem, ploDem);


///////////////////////////////////////////////////////////////////
// Run GnuPlot
///////////////////////////////////////////////////////////////////
Text cmdExe = "C:\\asc\\Bin\\gnuplot\\bin\\pgnuplot";
Text cmdTxt = cmdExe+" "+filDem;
Real cmdRun = System(cmdTxt); // Execute gnuplot


///////////////////////////////////////////////////////////////////
// Makes a Pdf file from the Html page
///////////////////////////////////////////////////////////////////
Text codHtm = ReplaceTable(ReadFile(filSed),
  [[ [["SIZWID",  "800"]], [["SEDHEI",  "500"]],
     [["FILGIF", filGif]],
     [["PLOCOD", ploDem]] ]], 1);
Text WriteFile(filHtm, codHtm);


///////////////////////////////////////////////////////////////////
// Makes a Html page from a seed
///////////////////////////////////////////////////////////////////
Text pdfExe = "\""+"C:\\Archivos de programa\\Two Pilots\\"+
                      "HTML2PDF Pilot\\HTML2PDF_Pilot.exe"+"\"";
Text pdfInp = "C:\\asc\\App\\GnuPlot.Test\\"+filHtm;
Text pdfOut = "C:\\asc\\App\\GnuPlot.Test\\"+filPdf;
Text pdfCmd = pdfExe+" "+             // Executable pdf convertor
              pdfInp+" "+             // Input file
              pdfOut+" "+             // Output file
              " /jpeg 100 /author asalmeron@asolver.com";

Real pdfRun = System(pdfCmd); // Execute html to pdf conversion
    

La documentación adjunta incluye, en el mismo orden anterior (salvo los tres códigos fuente HTML que están al final del todo): el código completo de especificaciones para GNU Plot, el código fuente TOL, los datos de series temporales utilizados en los gráficos y los ficheros de mandatos.

Ajax para el cambio de divisas

¿Aburrido de tener que ir divisa a divisa buscando el cambio cada día, para copiarlo e introducirlo en hojas Excel?. Así estaba yo hasta que me programé esta combinación de JavaScript y PHP para leer los RSS (Really Simple Syndication en formato XML) del Banco de Canada (Bank of Canada), de siempre mi banco central favorito, para obtener una tabla de cambios con mis divisas habituales y poder pegar con comodidad esa tabla en las hojas Excel que necesitaban esos cambios actualizados.

El resultado es una página web, con un estilo vintage muy a mi gusto, en colores de computador clásico y con la preciosa Lucida Console por tipo de letra.

Todo el código JavaScript y PHP puede consultarse en PDF al final de este post, sólo pongo a continuación un par de funciones, la primera JavaScript y la segunda PHP, que muestran como se puede tener un estilo de programación similar con leguajes de programación diferentes.

///////////////////////////////////////////////////////////////////
   function XmlGetValue(itm, atr)

// PURPOSE: Returns a text value. If atr = cb:value and itm =
// ...<cb:value frequency="business" decimals="4">0.9947</cb:value>...
// first gets " frequency="business" decimals="4">0.9947<"
// and returns 0.9947
///////////////////////////////////////////////////////////////////
{
  var tmp = TxtBetween2Tag(itm,"<"+atr,"/"+atr+">");
  var txt = TxtBetween2Tag(tmp,">","<");
  return(txt);
}

///////////////////////////////////////////////////////////////////
   function GetRssFile()
   
// PURPOSE: Gets the contents of an external Rss feed and saves its
// contents to the cached file on the server.
///////////////////////////////////////////////////////////////////
{
  global $rssUrl, $pthFile;
  $contents=file_get_contents($rssUrl); // Fetch the Rss file
  $fp=fopen($pthFile, "w");             // Open local file for write
  fwrite($fp, $contents);     // Write contents of Rss to cache file
  fclose($fp);                          // Close the local file
}
  

Observatorio de la Economía y la Sociedad China

De diciembre de 2008 a junio de 2010 he publicado traducciones de poemas jueju de la dinastía Táng en la revista Observatorio de la Economía y la Sociedad China (OES-China, ISSN: 1887-3197), en la sección de Cultura y Sociedad coordinada por Yawen Teh.

OES-China es una revista editada por Eumed.Net su editor ejecutivo es Juan Carlos M. Coll y está patrocinada por la Universidad de Málaga y la Fundación Universitaria Andaluza «Inca Garcilaso».

Durante estos años se han realizado 5 entregas:

  1. Diciembre de 2008, primera entrega, OES-China, número 9.
  2. Marzo de 2009, segunda entrega, OES-China, número 10.
  3. Julio de 2009, tercera entrega, OES-China, número 11.
  4. Septiembre de 2009, cuarta entrega, OES-China, número 12.
  5. Junio de 2010, quinta entrega, OES-China, número 13.

Estas 5 entregas representaron todo un proceso de evolución en mi técnica y metodología de traducción de la poesía medieval china.

  • Author, «Learn Chinese and Tang poetry», OES Chine magazine, numbers 9, 10, 11, 12 & 13, 5 publications with different poems each, Málaga, 2008, 2009 & 2010.
  • Autor, «Aprender Chino y Poemas Táng», revista OES China, números 9, 10, 11, 12 & 13, 5 publicaciones con poemas diferentes cada una, Málaga, 2008, 2009 y 2010.

Canales de distribución y preguntas de marketing

Tipos de canales de distribución y otras preguntas de marketing

En un foro asociado al curso de especialista en gestión inmobiliaria de la Universidad de Burgos, cuando lo cursaba, me hicieron las siguientes preguntas:

«¿Qué se entiende por canales directos de distribución, por cortos y largos y por estrechos y anchos?.
¿Qué es normalizar la oferta?.
¿Qué significa que no existe un substrato transferible?.
Pon un ejemplo de mercados organizacionales»

Reproduzco aquí mis respuestas:

Canales directos de distribución: Los que van directamente del fabricante al comprador, sin pasar por nadie más, por ejemplo, Dell fabrica computadores e intenta que se los compres directamente.

Canales cortos / largos de distribución: Canal corto es el que tiene pocos pasos, por ejemplo, Coca-Cola, la embotelladora (Casbega en Madrid, Cobega en Cataluña, etc.) embotella y con sus camiones (antes propios y ahora subcontratados) llega al bar de tu barrio que te la vende. El extremo de canal corto es el directo que sólo tiene un paso. Canal largo el que tiene muchos pasos fabricante, mayoristas, minoristas, etc.

Canales estrechos / anchos de distribución: Por ancho del canal se entiende el número de entidades en paralelo que ofrecen el producto. Por ejemplo, los coches de lujo, imaginemos Buick, tienen un canal estrecho, puede haber un concesionario o a lo sumo 2 en una gran ciudad. Los chicles Orbit tienen un canal ancho, en bares, tiendas de chuches, quioscos, máquinas en la calle, miles de sitios ofreciéndolos.

Normalizar la oferta: Se dice que un sector ha normalizado la oferta cuando consigue establecer medidas en casi todo lo que compra de forma que los productos o servicios que compra son totalmente comparables. Normaliza pesos, anchos, gamas de calidades, etc. de forma que junto con su precio las ofertas son fácilmente comparables. Cuando la oferta esta está hipernormalizada se podría llamar "commoditie" (luz, agua, gas, etc.), en este caso la única variable verdaderamente es el precio. La electricidad esta supernormalizada, es un commoditie, no hay electrones de más o menos calidad (te venden electrones verdes, de energía eólica, pero realmente no sabes si el electrón procede de una central nuclear, es un invento para intentar diferenciarse). En este casos prácticamente la decisión de compra es a cuánto vale el megawatio. Cuando hay precios caros y baratos, pero los productos tienen características muy diferentes y no son comparables, se dice que la oferta no está normalizada. Hay dentistas caros y baratos pero es difícil saber si el caro es realmente bueno, si el empaste estará bien hecho, si no se infectará y si no lo pasarás tan mal como la última vez o si justo eso es, al revés, que el barato es el realmente bueno.

No existe un substrato transferible: Que no hay nada que dar físico, por ejemplo, el servicio de un psicólogo. Vas allí y el psicólogo puede ser bueno o malo y a ti valerte o no valerte, pagas y no vuelves a casa con un paquete que enseñar a los niños, llegas con tus problemas resueltos o no o a medio resolver.

Ejemplo de mercados organizacionales: Tal vez se entiende mejor cuando se les denominan mercados industriales. Por ejemplo, todo el mercado alrededor de los grandes fabricantes de coches, hay quien vende gomas, telas, planchas, tornillos, ..., el que fabrica los asientos compra al de telas o a varios, pero también al de los tornillos o a varios, el fabricante de coches compra a los de los asientos, pero también a los de tornillos, grandes, medianas y pequeñas empresas comprándose y vendiéndose para ofrecer al final un producto que es un coche. De poco vale el marketing convencional (de gran público) para conseguir colocarle tus tornillos a la BMW.

InkWatercolor, otoño 2008

Why do I never finish anything? | ¿Por qué nunca termino nada?

Catálogo de otoño del año 2008 de InkWatercolor.com, 12 páginas, color, inglés y español.

  • Author, «Automatic painting 1991/2004; 210 paitings using inks, watercolors and others media», Intellectual Property Register, number 16/2008/9490, Madrid, February of 2008.
  • Autor de «Pintura automática 1991/2004; 210 cuadros con tinta, acuarela y otros medios», Registro de la Propiedad Intelectual, número 16/2008/9490, Madrid, febrero de 2008.

Contador de separadores de campos

En una gran aseduradora nos volcaban ficheros inmensos de datos de operaciones sobre polizas desde el host, ficheros con millones de registros. Eran ficheros planos y ellos mismos elegían el carácter separador de campos. Esos ficheros los subíamos, a su vez, a otra base de datos que los cargaba utilizando, para interpretar la separación de campos, el carácter indicado en cada caso. Esta carga se realizaba empleando el programa de carga suministrado junto con el sistema de gestión de la base de datos.

El proceso de carga era lento y, además, con frecuencia, el carácter que habían elegido, aparecía en algún campo de texto de algún registro. Por ejemplo, elegían el asterisco y algunos campos de observaciones contenían asteriscos. Al llegar al primer registro con más separadores de los esperados el proceso de carga abortaba tras horas de ejecución.

La solución era programar un comprobador de ficheros, muy rápido, que antes de iniciar el proceso de carga, comprobara que todas las líneas del fichero contuvieran el mismo números de caracteres separadores de campo, asumiendo como correcto el número de separadores de la primera línea del fichero. Y sólo comenzar la carga a la base de datos tras comprobar que el fichero era correcto.

Hacía ya mucho tiempo que no programaba en C y esta era una ocasión para volver a él. El programa se llama chksep.exe, esta hecho en lenguaje C en pocas horas, por lo que seguro que se puede mejorar. Se ejecuta como chksep 42 < fichero.txt, donde el 42 es el código ASCII del caracter *, que era el separador de campos habitual, aunque se puede elegir cualquier otro carácter, por ejemplo, chksep 59 < fichero.txt, para el punto y coma.

El programa visualiza las líneas donde el número de separadores de campo es diferente al de la primera línea. En un computador portatil normal este programa es capaz de revisar un Giga en 2 minutos 15 segundos, lo que equivalía con los ficheros reales que nos daban a unos 800.000 registros por minuto. Por lo que en 5 ó 10 minutos se podía evitar que luego abortara una carga de horas. El programa también cuenta el número de líneas del fichero.

A continuación pongo el ciclo principal del programa y en el fichero PDF adjunto a este post el código fuente completo.

Me gustan mucho los programas eficaces de pocas líneas de código y que sean eficientes ya lo considero un regalo.

while((chrInp=getc(stdin)) != EOF)
{
       if(chrInp==sepChr) { sepCnt++; }     /* Es un separador */
  else if(chrInp==EOL)                 /* Es un salto de linea */
  {
    if(linCnt==1)                  /* Estabamos en la 1ª linea */
    {
      sepFst = sepCnt;   /* Referencia para el resto de lineas */
      printf("\n[%d] [%s] en la primera linea.", sepFst, sepStr);
    }
    else                                       /* Linea normal */
    {
      if(sepFst!=sepCnt)        /* Faltan o sobran separadores */
      {
        printf("\nlinea %d: [%d] [%s] en vez de [%d].",
               linCnt, sepCnt, sepStr, sepFst);
      }
    }
    linCnt++;             /* Incrementar el contador de lineas */
    sepCnt = 0;     /* Poner a cero el contador de separadores */
  }
}
printf("\nProcesadas [%d] lineas.", linCnt);
  

Página del abogado Bartolomé Quesada Valles

Realización del registro de dominio .es, diseño, maquetación, desarrollo y mantenimiento en internet de la primera versión de la página web del despacho de abogados de Bartolomé Quesada Valles.

Bartolomé Quesada Valles es abogado, tiene más de 20 años de ejercicio profesional y está colegiado en el Ilustre Colegio de Abogados de Madrid (ICAM).

Esta primera versión de la página web estuvo operativa desde mediados del verano de 2008 hasta inicios del verano de 2010.

Actualmente está en funcionamiento la segunda versión de esta página web, que ha sido desarrollada en Joomla! por Luis Torrijos de OnlineBizLab.

Máximo común divisor de 2 números

Ejemplo de hoja Excel para calcular el máximo común divisor (MCD) entre 2 números. El fichero Excel de Microsoft está formado por una sola hoja de cálculo en la que los 2 números para los que se quiere calcular su máximo común divisor se introducen en las celdas azules. La hoja Excel visualiza en la zona gris los divisores encontrados y arriba en grande y azul el máximo común divisor. Este ejemplo Excel tiene limitaciones en el tamaño de los números y el método de cálculo. La versión es la de Excel 97-2003.

Poemas jué jù, dinastía Táng, en Excel

En 2008 comencé a plasmar en Excel el resultado de mis traducciones de poemas de la disnastía Táng que luego imprimía en formato PDF. Realmente, no sólo a plasmar, pues al final llegué a traducir directamente sobre Excel.

Desarrollé varios modelos de hojas Excel, de los cuales uno de los últimos va adjunto a este post. Cuando alguien de una multinacional o gran compañía consultora se empeñaba en enseñarme y presumir de sus fabulosas hojas financieras Excel entonces, en vez de mostrarle otras hojas financieras, yo terminaba por eseñarle estas hojas Excel de soporte a la traducción de poemas mediavales chinos y el show de hojas Excel se terminaba rápido.

Excel daba más soporte que mis experientos iniciales en PowerPoint, pues permitía automatizar muchas tareas, pero llegó un punto, como suele suceder con Excel, que la complejidad de las hojas y las fórmulas, y especialmente su repetición en todas las hojas, dificultaban el avance, e incluso el recálculo de celdas podía hacerse muy pesado y la impresión de las hojas de resultados finales, no de intermedios, requería mucha atención.

Excel es, en mi opinión, lo mejor que ha hecho Microsoft en su historia. Muy pocas herramientas proporcionan un desarrollo inicial tan rápido como Excel, pero la velocidad de desarrollo de Excel se amortigua con el avance, hoy se avanza menos que ayer y más que mañana, por lo que para desarrollo de pocos días es ideal y para desarrollos de muchos meses insoportable.

Por ello, la vida de estas hojas Excel fue de mediados de 2008 a mediados 2009, prácticamente un año, a partir del cual retome la exploración de nuevas formas de dar soporte a la traducciones de poemas jué jù Táng buscando mayor automatismo y eficiencia en la traducción y composicion del resultado.

Varias publicaciones de mis traducciones de poemas Táng fueron realizadas con el soporte de Excel.

Pedro Reina, cifras y letras

Tuve la suerte de conocer a Pedro Reina en 1991, en la primera edición del curso Sistemas expertos en la empresa.

En 1992, Pedro acometió el desarrollo de dos programas cuyo objetivo era resolver los problemas del programa televisivo «Cifras y Letras». Primero desarrollo el programa que resolvía el problema de las cifras y luego el de las letras. Durante ese tiempo pude discutir con Pedro sus enfoques de solución a esos dos problemas.

En abril de 2008, Juan M. R. Parrondo dedicó su sección de Juegos Matemáticos de la revista Investigación y Ciencia, a los dos algoritmos desarrollados por Pedro Reina para resolver los problemas de «Cifras y Letras». En este artículo, Pedro Reina me cita amablemente a la hora de describir el mecanismo usado para resolver el problema de las letras:

«...la solución que nos ofrece Reina es muy sencilla, gracias a una idea sumamente ingeniosa que el propio autor atribuye al profesor de inteligencia artificial Antonio Salmerón...».

Juan M. R. Parrondo, «Cifras y Letras de Pedro Reina», sección de Juegos matemáticos, revista Investigación y Ciencia (traducción española de Scientific America), ISSN 0210-136X, número 379, páginas 90-91, Barcelona, abril de 2008.

  • Cited in «Numbers and Letters of Pedro Reina» by Juan M. R. Parrondo, Reseach & Science Magazine, Barcelona, April of 2008.
  • Citado en «Cifras y Letras de Pedro Reina» por Juan M. R. Parrondo, Revista Investigación y Ciencia, Barcelona, abril de 2008.

Análisis sensorial de sistemas

Cuaderno con casos prácticos:

psoe.es y pp.es en la campaña electoral 2008 y otros casos de estudio, elaborado del 21 al 29 de febrero de 2008.

Cuando somos niños creemos que los personajes de los libros, de las obras de teatro o de las películas hablan por sí mismos, sin embargo, pronto aprendemos que son los autores los que hablan a través de ellos y que, por tanto, podemos intentar conocer y comprender a los autores a través de sus obras.

Cuando interactuamos con sistemas a menudo seguimos creyendo, como los niños, que son dichos sistemas los que dicen y hacen y no los autores que los programaron y las entidades que los crearon.

Como en cualquier creación humana, podemos conocer y comprender a las entidades, su dueños, directivos y trabajadores a través de los comportamientos, acciones, mensajes y errores de los sistemas que fabrican o de los que se sirven. A menudo las verdaderas ideas y sentimientos de las personas y los grupos se pueden ver mejor reflejadas en sus sistemas que en sus mensajes comerciales, ya que mientras en otros tipos de comunicación se presta especial atención a los mensajes que se emiten, en los sistemas hay 2 razones por la que los sentimientos auténticos de la organización afloran con mayor facilidad:

  1. la atención a los aspectos tecnológicos, la subcontratación y las dificultades de desarrollo restan atención al cuidado de los mensajes que se emiten diciendo más directamente lo que se piensa y
  2. la conexión directa de muchos sistemas con el aparato de la organización hace que a través de esas conexiones aflore su verdadera personalidad.
  • Author, «Sensory analysis of systems», Intellectual Property Register, number 16/2009/5854, Madrid, February of 2008.
  • Autor, «Análisis sensorial de sistemas», Registro de la Propiedad Intelectual, número 16/2009/5854, Madrid, febrero de 2008.

Traducción de juejus de la dinastía Táng

6 traducciones buscando la literalidad

de poemas de Li Bái, Wáng Wéi y Yú Shì-nán.

Los poemas son de Li Bái «Pensamiento en noche serena» y «Sentado sólo en la montaña Jìng Tíng», de Wáng Wéi «Entre los bambúes», «Adiós al partir» y «La cerca de los ciervos» y de Yú Shì-nán «Cigarras».

Son los 6 primeros poemas con los que comencé a trabajar en este área y con ellos empecé a establecer también las bases de mi proceso metodológico de traducción de poemas jueju.

  • Author, «Translation of juejus of the Tang dynasty», Intellectual Property Register, number 16/2009/5853, Madrid, February of 2008.
  • Autor, «Traducción de juejus de la dinastía Táng», Registro de la Propiedad Intelectual, número 16/2009/5853, Madrid, febrero de 2008.

Les fleurs du mal, Charles Baudelaire

«Les fleurs du mal», édition de 1861, Charles Baudelaire,

une édition illustrée par inkwatercolor.com.

Contiene una ilustración para cada poema de Baudelaire, estas ilustraciones fueron desarrolladas con técnicas mixtas (tintas, rotuladores, pinturas plásticas, etc.) sobre papel couché de colores, a menudo con difusión de fuego o frotamientos con alcohol.

Todas las ilustraciones de la obra, bajo el título «Ilustraciones para Les fleurs du mal - 128 cuadros para 128 poemas de C. Baudelaire», están inscritas en el Registro de la Propiedad Intelectual de Madrid, con el número de asiento registral 16 / 2008 / 9489, fecha de presentación y efectos 25 de febrero de 2008, clase de la obra pintura y titular de los derechos Antonio Salmerón Cabañas.

Las ilustraciones se comenzaron a crear en el año 1986, a partir de una versión bilingüe (francés / español) de la edición de 1861 de «Las flores del mal» de Charles Baudelaire. Se crearon unas 400 más ilustraciones, las últimas de ellas hacia 1991. Desde entonces ha existido una aproximación parcial al conjunto de la obra, pero completamente desarrollada soporte físico de papel. Durante unos 14 años el conjunto de la obra estuvo muy avanzada pero inconclusa, fundamentalmente por temas tecnológicos.

En agosto de 2005 se retoman los trabajos de composición del libro desde el comienzo, realizando la selección definitiva de 128 ilustraciones, procediendo a su digitalización y a su primera difusión por internet.

En 2008 se termina una primera versión completa de esta edición ilustrada de «Les fleurs du mal» de Charles Baudelaire.

Esta obra se distribuye con la licencia de creativecommons.org denominada Reconocimiento-NoComercial-CompartirIgual 2.5 España, que permite copiar, distribuir, comunicar y hacer obras derivadas bajo las condiciones de reconocer los créditos al autor, no usar la obra con fines comerciales y compartir las obras derivadas bajo la misma licencia.

  • Author, «Illustrations for Les fleurs du mal; 128 painting for 128 poems of C. Baudelaire», Intellectual Property Register, number 16/2008/9489, Madrid, February of 2008.
  • Autor, «Ilustraciones para Les fleurs du mal; 128 cuadros para 128 poemas de C. Baudelaire», Registro de la Propiedad Intelectual, número 16/2008/9489, Madrid, febrero de 2008.

De BMP Windows a ICO Unix

Este es un programa sencillo, orientado al aprendizaje del lenguaje TOL.

El programa escribe un fichero con los 128 primeros caracteres de la tabla ASCII.

Los 32 primeros son caracteres especiales por lo que sus siglas se almacenan en un conjunto TOL (Set).

Los siguientes caracteres se generan mediante la función TOL Text Char(Real asc).

Se muestra a continuación el código completo del programa que también se puede consultar en el documento PDF adjunto a este post, se incluye junto con el código el fichero resultante con la tabla ASCII.

Set AscFst =
[[
  "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL",
  "BS ", "TAB", "LF ", "VT ", "FF ", "CR ", "SO ", "SI ",
  "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", 
  "CAN", "EM ", "SUB", "ESC", "FS ", "GS ", "RS ", "US "
]];

Text fil = "ascii.txt";
Text WriteFile(fil, "Tabla ASCII");

Set  cic = For(0, 127, Text(Real asc)
{
  // Each 8 jump new line
  Text new = If(asc % 4, "", "\n");

  // The fist 32 are special characters
  Text chr = If(LT(asc, 32), AscFst[asc+1], "["+Char(asc)+"]");

  // Append character to file
  Text lin = new + FormatReal(asc, "%03.0lf") + " " + chr +" | ";
  Text AppendFile(fil, lin);
  
  chr // Return the character
});
  

Triángulo mágico de la diosa hindú Durga

Fichero Excel (Libro de Excel 97-2003) con 4 hojas de cálculo. En la primera hoja se plantea resolver el problema del llamado triángulo mágico de la diosa hindú Durga.

Hay que poner los números del 1 al 9, todos y sin repetición, en los 3 lados del triángulo, de forma que los 3 lados sumen lo mismo. En cada lado se ponen 4 números del 1 al 9 y hay 3 celdas que son comunes a 2 lados, teniendo en total 9 celdas.

Las 3 hojas siguiente muestran las 3 soluciones posibles. En principio no habría que verlas hasta haber solucionado por uno mismo el problema del triángulo.

Las operaciones se corrigen automáticamente. Si el número introducido sale azul es que está bien y si sale en rojo es que está mal.

En la primera hoja hay una celda de control que permite fijar la solución que hay que buscar de entre las 3 existentes (sin contar giros).

15 puzle (3x3) y 65 puzle (5x5)

Fichero Excel de Microsoft formado por una sola hoja de cálculo, que contiene:

  • El llamado problema del 15 puzle, de 3x3 celdas, con todos los números de 1 al 9, uno por celda sin repetirse, que suman siempre 15 tanto por filas, como por columnas y diagonales, y
  • El problema del 65 puzle, menos conocido que el anterior, de 5x5 celdas, con todos los números de 1 al 25, uno por celda sin repetirse, que suman siempre 65 tanto por filas, como por columnas y diagonales.

En este fichero Excel se muestran ambos problemas ya resueltos. La versión es la de Excel 97-2003.

Libro Blanco de los Quioscos de Prensa en Madrid

Universidad Rey Juan Carlos, «Libro Blanco del Quiosco de Prensa en Madrid», elaborado por encargo del Ayuntamiento de Madrid, Agencia de Desarrollo Económico Madrid Emprende y desarrollado con la colaboración de la Asociación de Vendedores Profesionales de Prensa de Madrid (AVPPM), Madrid, 2007.

Colaboré como investigador en la creación de este Libro Blanco que posteriormente tuvo una influencia fundamental en la Ordenanza municipal del Ayuntamiento de Madrid, «Ordenanza Reguladora de los Quioscos de Prensa», aprobada por el Pleno del Ayuntamiento, en sesión ordinaria celebrada el día 27 de febrero de 2009, publicada en el Boletín Oficial de la Comunidad de Madrid, BOCM, número 69, páginas 102 a 108, Madrid, lunes 23 de marzo de 2009.

  • Co-researcher, «White Book of Newspapers Sales Stores», Council of Madrid & Rey Juan Carlos University, Madrid, January of 2007.
  • Co-investigador, «Libro Blanco de los quioscos de Madrid», Ayuntamiento de Madrid y Universidad Rey Juan Carlos, Madrid, enero de 2007.

InkWatercolor, invierno 2007

When the sun refuses to shine | Cuando el sol se niega a brillar

Catálogo de invierno del año 2007 de InkWatercolor.com, 16 páginas, color, inglés y español.

Este catálogo contiene un proceso paso a paso de elaboración de una obra del inicio al fin.

640 palabras con las 5 vocales, una de cada

Creo que hay 640 palabras en español que contienen todas las 5 vocales a, e, i, o y u, una de cada y sin repetirse ninguna. Algunas de ellas son estupendas, por ejemplo, la primera de ellas abrenuncio, que es tan buena que la tengo apadrinada en la Reserva de Palabras. A continuación enumero estas 640 palabras:

abrenuncio, aceituno, acudidero, acuífero, adoquier, adulterino, adulterio, aguerrido, aguiero, aguijeño, aguileño, ahuizote, ajicuervo, ajipuerro, albugíneo, almizqueño, amiguero, anfineuro, anguilero, angurriento, anquiseco, antequino, antetítulo, anticuerpo, aperturismo, aquenio, aquileño, ariqueño, arquetipo, arquíptero, arquitecto, arquitector, arseniuro, arundíneo, asecución, aucténtico, audímetro, aurífero, aurígero, auténtico, autocine, aztequismo, azufeifo, barbiluengo, barbiquejo, barquillero, betuminosa, bielorrusa, birrectángulo, bisabuelo, bisagüelo, blanquecino, blanquimento, blanquinegro, bolsiquear, boquifresca, boquillera, boquinegra, boquiseca, borinqueña, borriqueña, borriquera, botijuela, branquífero, braquícero, bribonzuela, brumamiento, bucelario, bufonería, buhonería, buñolería, burielado, buscamiento, buscapleitos, butadieno, butifarrero, buzamiento, cabeciduro, cachicuerno, calumbriento, campichuelo, cañihueco, capitulero, caquéctico, carguerío, carguillero, castilluelo, catequismo, caulífero, cauliforme, cauterio, cedulario, celulario, celulósica, censuario, centrifugado, centrifugador, centunvirato, cigoñuela, cigüeñato, cincuentavo, cincuentona, cochiquera, coguilera, colecturía, coliquera, collipullensa, comiquear, comisquear, comunicable, comunicante, concienzuda, concurrencia, conducencia, confesuría, confiturera, confluencia, confulgencia, conglutinante, congruencia, conquistable, consecutiva, contertulia, contradique, contumelia, contundencia, conventícula, coquería, coquinera, coquizable, corpulencia, correduría, cortisquear, cosquillear, criaduelo, cruentación, cruzamiento, cuadernillo, cuadriforme, cuadrillero, cuajicote, cuajilote, cuajiote, cuakerismo, cuarcífero, cuartelillo, cuartillero, cuatrerismo, cuellicorta, cuellilargo, cuentahílos, cuestación, cuestionar, cuicacoche, culteranismo, cuñaderío, cuodlibetal, curamiento, curanderismo, curialesco, curiosear, charquecillo, chupaderito, chuzonería, decuriato, deglutoria, degustación, delicaducho, delictuosa, delusoria, demudación, denticulado, denudación, denunciador, depuración, depurativo, desahucio, desboquillar, descontinua, descontinuar, descubridora, descuidado, descuitado, desdibujado, desguisado, deslánguido, despumación, destitulado, destruidora, desucación, desudación, deturpación, devolutiva, dominguera, doquiera, droguería, dudamiento, duenario, dulzainero, duodécima, duodecimal, duomesina, eburnación, ecuación, educación, educativo, elocutiva, emboquillar, embrosquilar, embustidora, embutidora, emulación, emulsionar, emundación, encáustico, encubridora, englutativo, enguichado, engullidora, engurriado, enjundiosa, enluciado, enlucidora, enmochiguar, enquillotrar, enquistado, enrubiador, ensuciador, entubación, enturbiador, entusiasmo, enunciado, equitador, equívoca, equivocar, eructación, eruginosa, erupcionar, erutación, escorbútica, escrutiñador, escuálido, escudillador, escudriñador, escultórica, escupidora, escupitajo, esfumación, esguízaro, espiráculo, esquiador, esquifazón, esquilador, esquinado, esquinanto, esquinazo, esquinzador, esquipazón, esquistosa, esquizado, estanquillo, estimulador, estimulosa, estuación, estuario, estudiado, estudiador, estudiantón, estudiosa, estuosidad, euboica, eubolia, eucalipto, eucrático, eufonía, eufónica, euforia, eufórica, eufótida, eutrofia, eutrófica, eutrofizar, evolutiva, excautivo, excluidora, exculpación, excusación, exhaustivo, exhumación, expugnación, expurgación, exudación, exultación, fabriquero, faleucio, fecundación, fecundativo, fecundizador, ferruginosa, feudalismo, filautero, flamenquismo, freudiano, frumentario, funerario, galleguismo, gatuperio, gerundiano, gesticulador, gesticulosa, granujiento, guadijeño, guaridero, guarnecido, gubernación, gubernativo, guijarreño, guineano, guionaje, guisandero, guitarreo, guitarrero, guitarresco, guitonear, gusaniento, hevicultora, hidalguejo, hidalgüelo, hieródula, hipotenusa, hociquear, hormiguear, hormigüela, hormiguera, hormiguesca, humectación, humectativo, humilladero, hurgamiento, hurtadineros, imbabureño, impetuosa, incestuosa, incompuesta, inconmutable, ineducado, inexhausto, infernáculo, inocultable, insepultado, interruptora, interurbano, invernáculo, iroquesa, irresoluta, jaquimero, jerárquico, juntamiento, juramiento, juzgamiento, latigueo, latiguero, latréutico, laudemio, laurífero, lauríneo, lectuario, leguario, leguminosa, lengüicorta, lengüilargo, letuario, lombriguera, longuería, loquería, loriguera, lucianesco, luciérnago, lucharniego, lustramiento, luteranismo, lloriquear, maldispuesto, mallequino, manguillero, manguitero, manigüero, manipuleo, maniqueo, manuelino, manutención, manutergio, maquilero, marisqueo, marisquero, matihuelo, meditabundo, menorquina, menstruación, mensuración, mensurativo, metalúrgico, meticulosa, milonguera, moquitear, morceguila, mordisquear, morisqueta, mosquitera, mudamiento, muestrario, multilátero, murciégalo, murciélago, murcigallero, narigueto, navichuelo, nebulizador, nebulosidad, neptuniano, neumático, neumonía, neumónica, neurálgico, neuroglia, neurótica, neutralismo, neutrónica, niquelado, niquelador, nucleario, numeración, numerario, numerosidad, obsequiar, obsequias, ocurrencia, ojienjuta, ojituerta, olisquear, opulencia, orquestina, orquídea, pacienzudo, palitoque, palitroque, pandemónium, pañizuelo, paquidermo, parquímetro, patimuleño, patituerto, patizuelo, pauperismo, paupérrimo, pecuario, peliagudo, perdulario, perduración, perfunctoria, perjudicado, perjudicador, permutación, persuadidor, persuasión, persuasivo, perturbación, peruanismo, peruviano, petrarquismo, picapuerco, pichagüero, pichuleador, pindonguear, piragüero, piruétano, pitanguero, plumbagíneo, porquecilla, porquería, porqueriza, precaución, preciosura, pregustación, prepositura, presunciosa, primuláceo, progenitura, pronunciable, prosénquima, pudelación, pujamiento, pulsamiento, pulverizador, punicáceo, punzonería, purgamiento, putrefacción, putrefactivo, quebradillo, quebradizo, quejicosa, quejillosa, querindango, quietador, quijotesa, quijotesca, quincallero, quinceavo, quinolear, quintaleño, quintalero, quiroteca, ranquelino, raquídeo, reasunción, rebollidura, recitáculo, reconquista, reconquistar, reconstructiva, recusación, redargución, reducidora, refugiado, refundidora, refutación, regulación, regulativo, reproductiva, republicano, reputación, requintador, resolutiva, resucitado, resucitador, resudación, reumático, reumatismo, revulsoria, riachuelo, rompesquinas, rosquillera, rostrituerta, rubefacción, rubiáceo, rufianesco, rumeliota, saduceísmo, sahumerio, salubérrimo, salutífero, sanguífero, sanguíneo, sanluiseño, sanluisero, saquerío, sardónique, secundario, secutoria, seguidora, segundario, sensualismo, sericultora, sesquiplano, seudónima, simultáneo, sobrequilla, soguería, sonrisueña, sortijuela, subarriendo, subdirectora, subdominante, subitáneo, sublevación, subordinante, subvencionar, sucesoria, sudorienta, sudorífera, sugeridora, sugestionar, superación, superádito, superiora, superlación, superlativo, supersónica, supervisora, supletoria, surrealismo, suspensoria, sustentación, tabiquero, tampiqueño, taquillero, taquímetro, taquinero, tenutario, tertuliano, teutónica, tiracuello, tiracuero, topiquera, toquería, tosiguera, triaquero, trirrectángulo, truncamiento, tuberosidad, tumefacción, turbamiento, turronería, ugrofinesa, ulceración, ulcerativo, ultraligero, unipersonal, univocarse, untamiento, urogenital, urticáceo, useñoría, vaqueiro, vaquerizo, ventrílocua, venusiano, vesiculosa, vestuario, vituperador, vituperosa, volumetría, volumétrica, vomipurgante, vulneración, vulnerario, yeguarizo, zatiquero y zurrapiento.

Las siguientes 35 líneas de código TOL muestran como extraer a partir de un fichero de palabras, una por línea, todas las palabras que tienen las 5 vocales, volcando en un fichero las que tienen las 5 vocales una de cada (sin repetición) y volcando en otro fichero las palabras que también tienen las 5 vocales pero con alguna repetida.

Text inpFil = "fichero.de.palabras.txt";
Text sinFil = "aeiou.sin.rep.txt";
Text conFil = "aeiou.con.rep.txt";

Text WriteFile(sinFil, "");
Text WriteFile(conFil, "");

Text filTxt = ReadFile(inpFil);
Set  linSet = Unique(Tokenizer(filTxt, "\n"));
Set  linCic = EvalSet(linSet, Real(Text linTxt)
{
  Text linRep = ReplaceTable(linTxt,
    [[ [["á", "a"]], [["é", "e"]], [["í", "i"]], [["ó", "o"]],
       [["ú", "u"]], [["ü", "u"]] ]]);

  Real aCnt = TextOccurrences(linRep, "a");
  Real eCnt = TextOccurrences(linRep, "e");
  Real iCnt = TextOccurrences(linRep, "i");
  Real oCnt = TextOccurrences(linRep, "o");
  Real uCnt = TextOccurrences(linRep, "u");
  
  If(And(EQ(aCnt,1), EQ(eCnt,1), EQ(iCnt,1), EQ(oCnt,1), EQ(uCnt,1)),
  {
    Text WriteLn(linTxt);
    Text AppendFile(sinFil, linTxt+"\n");
    1
  },
  If(And(GE(aCnt,1), GE(eCnt,1), GE(iCnt,1), GE(oCnt,1), GE(uCnt,1),
         GE(aCnt+eCnt+iCnt+oCnt+uCnt, 6)),
  {
    Text WriteLn(linTxt);
    Text AppendFile(conFil, linTxt+"\n");
    1
  },
  0))
});
  

Mini sistema de flujo de datos

Fichero con dos hojas Excel (Libro de Excel 97-2003) para practicar suma y resta con un mini sistema de flujo de datos. Las dos hojas Excel contienen el mismo flujo de datos, sólo difiere su anchura.

Las celdas de fondo verde claro son las que contienen los datos de partida. En las celdas de fondo azul claro es en las que hay que introducir los resultados. Las operaciones se corrigen automáticamente. Si el número introducido sale azul es que está bien y si sale en rojo es que está mal.

En la hoja hay dos celdas negras de control, arriba a la izquierda, que permiten fijar la complejidad de las operaciones (máximo) y generar diferentes conjuntos de operaciones.

Operaciones básicas + - x /, disposición horizontal

Fichero Excel (Libro de Excel 97-2003) con 4 hojas de cálculo para practicar sumas, restas, multiplicaciones y divisiones básicas.

Las operaciones se corrigen automáticamente. Si el número introducido sale azul es que está bien y si sale en rojo es que está mal.

En cada hoja hay dos celdas negras de control que permiten fijar la complejidad de las operaciones (máximo) y generar diferentes conjuntos de operaciones (actuando de semilla para la generación aleatoria de operaciones).

Operaciones básicas + - x /, disposición vertical

Fichero Excel (Libro de Excel 97-2003) con 7 hojas de cálculo para practicar las operaciones básicas en disposición vertical:

  1. Hoja de sumas básicas.
  2. Hoja de restas básicas.
  3. Hoja para practicar las tablas de multiplicar.
  4. Dos hojas de multiplicaciones básicas.
  5. Dos hojas de divisiones básicas.

Las operaciones se corrigen automáticamente. Si el número introducido sale azul es que está bien y si sale en rojo es que está mal.

En cada hoja hay una celda negra de control que permiten generar nueve diferentes conjuntos de operaciones.

der Rückfall, Zeitung der Fachschaft Medizin

Cover painting, 2006-2007, Technische Universität München.

Publicación como portada de la revista «der Rückfall» de mi cuadro: «news of the new world [Apocalypse]» que puede verse en mi página de pintura InkWatercolor.com.

«Noticias del nuevo mundo [Apocalipsis]» fue terminada de pintar el 12 de febrero de 1994, está numerado con el 22 de la serie ChpPho, fue realizado con rotuladores Stabilo Layout y tintas Pilot Hi-Tecpoint V5 / V7 en negra, naranja y rosa sobre fondo de acuarela Vallejo roja y sobre papel Fabriano de 300 gramos / metro cuadrado (140 libras), 100% algodón y tiene unas dimensiones 31 x 46 centímetros.

  • Author, cover painting of the magazine «der Rückfall, Zeitung der Fachschaft Medizin», Technische Universität München, 2006-2007.
  • Autor, cuadro de la portada de la revista «der Rückfall, Zeitung der Fachschaft Medizin», Technische Universität München, 2006-2007.

Superficie, trazos, sopas de letras, sudokus, series

Cálculos de superficies de rectángulo y triángulos, trazos con numeración y laberinto, sopas de letras de capitales europeas, capitales de provincias españolas, continentes, océanos, animales carnívoros y hervívoros, mamíferos y reptiles, tres sudokus y series de cierto nivel. Como curiosidad, el dibujo de Kim Possible está realizado únicamente con líneas rectas y arcos de elipses.

First Forecasting Event

Desde Cetiver, participación junto con Luis Torrijos en el First Forecasting Event de SAS Institute. Ambos trabajamos sobre una presentación conjunta a partir de la cual cada uno realizada su ponencia. La mía titulada «Automatización a gran escala de previsiones de base estadística: Soluciones racionales a problemas de incertidumbre masiva».

La portada de la presentación corresponde a un diseño de Luis Torrijos a partir de su idea de las gafas y la carretera.

  • Speaker, «First Forecasting Event», SAS Institute, Madrid, June of 2006.
  • Ponente, «Primer Evento sobre Previsión», SAS Institute, Madrid, Junio de 2006.

20 Minutos, Madrid, 2006

Publicación en la página 30 de la sección «Cultura y tendencias», del suplemento «La Revista», del periódico «20 Minutos», de la edición de Madrid, de una imagen de mi cuadro: «A residence crowned by gigantic eggs [a memorial of Salvador Dalí]».

Este cuadro que puede verse en mi página de pintura InkWatercolor.com.

«Residencia coronada por huevos gigantes [en honor de Salvador Dalí]» fue terminada de pintar el 7 de diciembre de 1991, está numerado con el 8 de la serie ChpPho, fue realizado con rotuladores Stabilo Layout y tintas Pilot Hi-Tecpoint V5 / V7 en color negro, naranja, rosa, rojo y amarillo sobre papel Fabriano de 300 gramos / metro cuadrado (140 libras), 100% algodón y tiene unas dimensiones 31 x 46 centímetros.

  • Author, «A residence crowned by gigantic eggs [a memorial of Salvador Dalí]», Published in the «20 Minutos» newspaper, page 30, Madrid, June of 2010.
  • Autor, «Residencia coronada por huevos gigantes [en honor de Salvador Dalí]», Publicado en el periódico «20 Minutos», página 30, Madrid, junio de 2010.

Finding Resonance and Relevance in Revelation

Decoración con 11 cuadros míos del libro de Bill Albing «Time's Up; Finding Resonance and Relevance in Revelation; A Ten-Class Bible Study».

Bill Albing eligió mis cuadros para decorar cada capítulo (clase) de este libro y su portada, incluyendo la siguiente cita en sus agradecimientos «The artwork in this workbook is from www.inkwatercolor.com. Thanks.», lo que me sorprendió gratamente.

Desgraciadamente este libro es ya muy difícil de encontrar y el enlace que aparece abajo es sólo el encabezamiento de uno de sus capítulo a modo de ejemplo. Conservo un ejemplar en PDF completo, de su edición de la Pascua de 2006 (Easter of 2006), en mi biblioteca digital.

  • Artwork author, «Time's Up; Finding Resonance and Relevance in Revelation; A Ten-Class Bible Study», writed by Bill Albing, April of 2006.
  • Autor de los cuadros, «Time's Up; Finding Resonance and Relevance in Revelation; A Ten-Class Bible Study», escrito por Bill Albing, abril de 2006.

InkWatercolor, invierno 2006

Damned | Condenados

Catálogo de invierno del año 2006 de InkWatercolor.com, 12 páginas, color, inglés y español.

Imágenes como tablas en HTML

Hace unos meses me encontré con el problema de tener que realizar páginas HTML de texto puro sin poder incrustar imágenes. Sin embargo, había que insertar un pequeño logotipo del cliente.

El problema puede resolverse convirtiendo la imagen del logotipo en una gran tabla HTML de celdas de tamaño de 1 pixel por 1 pixel y cada una del color de fondo de su pixel asociado.

En la imagen de este post puede verse el logotipo en imagen PNG, en este caso de ejemplo mi propio logotipo, no el del cliente, y abajo la misma imagen como tabla.

Como para esta publicación no he utilizado el logotipo original de la empresa que me lo encargó, sino el mio, y para simplificar el ejemplo sólo he utilizado 3 colores en la tabla, es por eso que se nota el pixelado. Pero si se usan más colores el resultado puede se muy parecido al logotipo original en imagen.

En estos casos, y limitándome a 16 colores, suelo convertir las imágenes en formato BMP (bitmap) a especificaciones en texto utilizando el conversor Bmp2Ico realizado por Juan Ramón Miráz y por mi.

Incluyo dos realizaciones del mismo código fuente: con CSS sólo para la página y con CSS para las celdas de la tabla por lo que el tamaño del código a 1/3. Como página HTML de resultado sólo incluyo en el PDF la última, por ser más reducida.

A continuación se muestra parte del código TOL utilizado para esta conversión, aunque reducido en la parte del mapa de letras del logotipo para no saturar el post. En el código PDF que se adjunta a este post se puede ver el código fuente completo.

Set repTab = 
[[
  [["+", "<td class='r'></td>"]],
  [[".", "<td class='b'></td>"]],
  [["-", "<td class='s'></td>"]]
]];

Set picSet = [[
"+++++++-..................++++++++++++++++++++++++++++++++++",
"++++++-................+++++++++++++++++++++++++++++++++++++",
"++++++-...............++++++++++++++++++++++++++++++++++++++",
"+++++-..............++++++++++++++++++++++++++++++++++++++++",
... recortado ...
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
]];

Set repCic = EvalSet(picSet, Text(Text lin)
{ // Replace 1 time
  "    <tr>\n      "+ReplaceTable(lin, repTab, 1)+"\n    </tr>\n" 
});

Text outHtm =
"
<html>
<head>
<style type='text/css'>
body { margin: 20px 20px 20px 20px; background-color: #ffffff; }
td.b { width: 1px; height: 1px; background-color: #ffffff; }
td.r { width: 1px; height: 1px; background-color: #ff0000; }
td.s { width: 1px; height: 1px; background-color: #ff9090; }
</style>
<title>Imagen en tabla</title>
</head>
<body>
  <img src='logo.bmp'>
  <br>
  <br>
  <br>
  <table bgcolor='+ffffff' cellpadding=0 cellspacing=0 border=0>
"+
  BinGroup("+",repCic)+
"
  </table>
</body>
</html>
";

Text WriteFile("logocss.htm", outHtm);
  

Poemas jué jù, dinastía Táng, en PowerPoint

El resultado de mis primeras traducciones de poemas de la disnastía Táng, de 2005 a 2007, los plasmaba en PowerPoint, que luego imprimía en formato PDF, como se muestra en el fichero adjunto a este post. Para la impresión en PDF utilizo Primo PDF.

El resultado estaba bien, aunque era muy difícil de mantener. Cualquier modificación, por pequeña que fuera, implicaba retocar a mano los textos y los gráficos en PowerPoint, ajustando también sus dimensiones y posiciones.

Cuando la modificación afectaba a más de un poema, por ejemplo, en caracteres comunes a varios poemas, el tiempo empleado era mucho y, lo que era peor, la probabilidad de comenter errores aumentaba.

Por ello, ya en 2008, empecé a explorar nuevas formas de dar soporte a la traducciones de poemas Táng.

Las primeras difusiones y el primer registro de estos poemas Táng se realizó con el soporte de PowerPoint.

Mi página web profesional ASolver.com

Realización del registro del dominio ASolver.com, diseño, maquetación, desarrollo y mantenimiento en internet de mi propia página web profesional ASolver.com.

En el principio esta página web estaba albergada en mi proveedor de internet Bitmailer, empresa que posteriormente fue comprada por Sarenet. Actualmente sigue en Sarenet que es uno de mis cuatro proveedores de internet.

La imagen de la página que aparece a la derecha de este post es de una versión más actual de esta página web. De la página web original, cuya estructura era más apaisada, sólo conservo los diseños iniciales.

La página está desarrollada a mano, no se cuantos seguimos haciendo páginas webs a mano, pero no quedamos muchos, en HTML y Cascading Style Sheets (CSS) y es ya una página completamente desarrollada con estructuras div, a diferencia de las que clásicamente, y con anterioridad, desarrollaba con estructuras table.

Manual Básico de Programación en TOL

Los autores de este libro son, con su posición en el momento de publicación: Clara Simón de Blas (profesora ayudante doctor de la Universidad Rey Juan Carlos), Ana García Sipols (profesora titular interina de la Universidad Rey Juan Carlos), Raquel Montes (Profesora Contratada Doctor de la Universidad Rey Juan Carlos) y Antonio Salmerón (doctor por la Universidad Politécnica de Madrid) que aporté, fundamentalmente, los ejemplos y el material de base que dan soporte al libro.

Descripción completa del libro { Título: Time oriented language (F/TOL): manual básico de programación; ISBN (13): 978-84-96285-10-1; ISBN (10): 84-96285-10-3; Depósito legal: M 37389; Ref: Libro; Clave: L; Lengua: publicación: Castellano; Edición: 1ª ed., 1ª imp.; Publicación: Madrid. Maths Universidad SL, 01/2005; Descripción: 130 p. ; 29x21 cm; Encuadernación: rústica; Materias: Ciencia y tecnología de los ordenadores, Informática; CDU: 004 }

El objetivo de este manual es orientar a las personas que comienzan a programar en TOL, que es un lenguaje creado como Open Source por la empresa Bayes Inference SA, para la modelización del comportamiento temporal y fui unos de los 3 miembros del equipo inicial de ideación y creación del lenguaje.

El manual comienza con una descripción del lenguaje, cómo obtener el software y el entorno de trabajo. Los dos siguientes capítulos están dedicados a la programación con el lenguaje TOL. Los capítulos restantes describen los tipos de objetos propios de TOL para la explotación de la información temporal. El libro incluye ejemplos de programación a lo largo de todo el manual.

  • Coauthor, «Time Oriented Language (TOL): Basic Programming Guide», book with 130 pages, Madrid, February of 2005.
  • Coautor, «Time Oriented Language (TOL): Manual Básico de Programación», libro de 130 páginas, Madrid, febrero de 2005.

Sopas de letras y astronomía

Sopas de letras de animales domésticos y salvajes, muebles, medios de transporte, países de Europa y esquema del sistema solar y sopa de letras con 9 planetas.

Periódicos y comprensión de noticias

Lectura y comprension de noticias sencillas seleccionadas de Expansión, El Mundo, Diario de Noticias y Herald Tribune.

Ruedas y transmisión del movimiento

Cinco ejercicios para aprender el mecanismo de transmisión del movimiento con ruedas y correas de transmisión.

Planos y rutas en el Metro de Madrid

Tres ejercicios para aprender a moverse por el Metro de Madrid, trazando la ruta de una estación a otra con transbordos.

Escritura y poesía

Cuatro ejercicios de escritura con poesías y uno de marcar en el mapa en relación al poema (José de Espronceda, Calderón de la Barca y Leandro Fernández de Moratín).

Facturas y tablas de sumatorios

Cinco ejercicios para practicar sumas y multiplicaciones con facturas y tablas de sumatorios.

Multiplicaciones con cubos

Cinco páginas de ejercicios para practicar multiplicaciones sencillas utilizando cubos.

Sumas por parejas

Cinco páginas de ejercicios para practicar sumas por parejas.

Operaciones básicas con flujo de datos

Trece ejercicios para practicar las operaciones básicas (suma, resta, multiplicación y división) con máquinas de flujo de datos.

El reloj, numeración árabe y romana

Once páginas de ejercicios para aprender la numeración árabe, romana y el reloj tradicional de manecillas.

Aprender a contar euros (€)

Cinco páginas de ejercicios para aprender a contar y sumar billetes de euros.

Series numéricas, de colores y figuras geométricas

Diecisiete páginas con series numéricas, de colores y figuras geométricas de diversos grados de complejidad.

Multiplicación, 1 dígito, vertical y horizontal

Once páginas de ejercicios con multiplicaciones horizontales y verticales de 1 dígito.

Sumas y restas horizontales de un dígito

Cinco páginas de ejercicios para practicar sumas y restas horizontales de 1 dígito.

Sumas y restas verticales de cuatro y cinco dígitos

Contiene sumas y restas verticales de cuatro y cinco dígitos con resultados parciales de ayuda y sumas y restas verticales de cinco dígitos sin resultados parciales.

Sumas y restas verticales de dos y tres dígitos

Contiene sumas y restas verticales de dos y tres dígitos, con resultados parciales de ayuda y sin resultados parciales.

Sumas y restas verticales de un dígito

Cinco páginas de ejercicios para practicar sumas y restas verticales de un dígito.

Aprender a contar

Veintinueve páginas de ejercicios dedicadas a aprender a contar los primeros números.

Lectura y vocabulario en inglés

Diecisiete páginas de vocabulario en inglés con texto y fotos de animales domésticos y salvajes, frutas, muebles, vehículos de transporte y utensilios caseros, con letra de "arco y vuelta" ideal para niños.

Lectura y vocabulario

Diecisiete páginas de vocabulario con texto y fotos de animales domésticos y salvajes, frutas, muebles, vehículos de transporte y utensilios caseros, con letra de "arco y vuelta" ideal para niños.

Alfabeto

Cinco páginas de vocabulario con texto y fotos para aprender el vocabulario, con letra de "arco y vuelta" ideal para niños.

Trazos y poliedros

Once páginas de ejercicios para aprender a utilizar el lápiz y trazar utilizando como motivo poliedros.

Trazos y numeración

Cinco páginas de ejercicios para aprender a utilizar el lápiz y trazar siguiendo la numeración.

Trazado y laberintos hexagonales

Cinco páginas de ejercicios para aprender a utilizar el lápiz y trazar encontrando el camino de salida en laberintos hexagonales.

Trazado y laberintos de líneas rectas

Cinco páginas de ejercicios para aprender a utilizar el lápiz y trazar encontrando el camino de salida en laberintos formados por líneas rectas.

Trazado y laberintos de bloques rectangulares

Once páginas de ejercicios para aprender a utilizar el lápiz y trazar encontrando el camino de salida en laberintos formados por bloques rectangulares.

Lenguaje simbólico azul

En los setenta e inicios de los ochenta escribía en dos lenguajes, que aunque yo los consideraba hermanos, uno más de uso habitual y otro de uso más culto, tenían características y orígenes súmamente diferentes. Con el paso del tiempo y la dificultad de evolucionar, el lenguaje más culto e icónico fue desapareciendo de mi mente y el más habitual estilizándose en mi mano.

Hacia finales de los noventa e inicios del dos mil, el lenguaje icónico había desaparecido, ya no lo sabía escribir y prácticamente no lo podía leer, mientras que el otro se descompuso a su vez en dos, el que seguía escribiendo a mano ya con cierta dificultad y su evolución simbólica, curvilínea y automatizada, esto es, que yo no lo se escribir, aunque si leer, pero que se escribir programas que lo escriben.

Aunque cuando empecé a mecanizar este lenguaje simbólico ya existían tipos de letras escalables de Adobe y Apple y aunque estos símbolos están originalmente definidos como un conjunto de curvas, estas curvas se pasan a un formato gráficos que se escala ya como un mapa de bits, perdiéndose toda posibilidad vectorial. Para automatizar el manejo de estos gráficos he confiado tradicionalmente en Alchemy (alchlong.exe) de Handmade Software, invocándolo desde el lenguaje TOL que es en el lenguaje en el que se programan los algoritmos de escritura. A continuación muestro esta invocación, para dos usos diferentes de alchlong.exe desde TOL:

///////////////////////////////////////////////////////////////////
Set AlcSize(Text filPth) // File path
///////////////////////////////////////////////////////////////////
{
  If(Not(FileExist(filPth)), [[0,0]], // File doesn't exist
  {
    Text tmpDos = "tmp\\alchemy.tmp"; // Store alchemy information
    Text inpDos = "tmp\\smb.imb"; // Alchemy don't handle complex
    Real FilCopy(filPth, inpDos); // file names

    Real sysExe = System("bin\\alchlong.exe "+ // Executable
                         "-x "+                // Options
                         inpDos+" > "+         // Input file path
                         tmpDos);              // Output file path
    Text tmpTxt = ReadFile(tmpDos);
    Text sizTxt = TxtBetween2Tag(tmpTxt,
                                 "Width x Height: ","\n",TRUE);
    If(sizTxt=="", [[0,0]], // Size doesn't exist
    {
      Set  sizSet = Tokenizer(sizTxt,"x"); // width x height
      Real width  = Eval(sizSet[1]+"; ");
      Real height = Eval(sizSet[2]+"; ");
      [[width, height]]
    })
  })
};
///////////////////////////////////////////////////////////////////
PutDescription(
"Returns a set (width, height) in pixels of a image.",
AlcSize);
///////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////
Real Bmp2Pic(Text bmpDir,
             Text picDir)
///////////////////////////////////////////////////////////////////
{
  Set filSet = GetDir(bmpDir)[1];
  Set filCic = EvalSet(filSet, Real(Text filNam)
  {
    Text inpFil = bmpDir+"/"+filNam;
    Text outFil = picDir+"/"+Replace(filNam,".bmp",".gif");
    FilMake(inpFil, outFil, Real(Text inpFil, Text outFil)
    {
      Text inpDos = "tmp\\smb.bmp";
      Text outDos = "tmp\\smb.gif";

      Real FilCopy(inpFil,inpDos); // Alchemy don't handle complex
                                   // file names
      Real sysExe = System("bin\\alchlong.exe "+   // Executable
                           "-g -Xb56 -+ ---t -o "+ // Options (84) 
                           inpDos+" "+          // Input file path
                           outDos);            // Output file path

      Real FilCopy(outDos,outFil);

      sysExe
    })
  });
  Card(filCic)
};
  

En la plana de lenguaje simbólico que puede verse al final de este post, los símbolos están ajustados a un cuadrado sobre una imagen de fondo que corresponde a mi acuarela llamada requiescant in pace que puede verse en mi web de pintura InkWatercolor.com. Es a la vista de la plana cuando se entiende que clasifique este post mas como pintura y poesía que como pura tecnología.

Publicity optimization, IE Business School

  • Speaker, «Publicity optimization», IE Business School, Madrid, 2004.
  • Ponente, «Optimización de la publicidad», IE Business School, Madrid, 2004.

Electrical data modelling, UPM

  • Speaker, «Electrical data modelling», Industrial Engineering School (Technical University of Madrid), Madrid, 2004.
  • Ponente, «Modelización de la demanda eléctrica», ETSI Industriales (Universidad Politécnica de Madrid), Madrid, 2004.

Level 10 of 10 in the hacking test, Instisec

La dirección del Instituto para la Seguridad en Internet es http://www.instisec.com.

  • «Internet Application Security» and level 10 of 10 in the hacking test of the Internet Security Institute, Madrid, 2003.
  • «Aplicaciones seguras en internet» y nivel 10 de 10 en el test de hacking del Instituto para la Seguridad en Internet, Madrid, 2003.

Forest - Forecast & Strategy Club

Ponente de la sección de reflexión estratégica, titulada «¿Estrategia o táctica en tiempos de incertidumbre?» para el Forest - Forecast & Strategy Club.

Este club fue creado por el Centro de Predicción Económica (CEPREDE) y esta reunión de octubre de 2002 tuvo lugar en los salones en la Cámara de Comercio e Industria de Madrid.

  • Speaker, «Strategic discussion», Forest - Forecast & Strategy Club (CEPREDE), Cámara de Comercio e Industria, Madrid, October of 2002.
  • Ponente, «Reflexión estratégica», Forest - Forecast & Strategy Club (CEPREDE), Cámara de Comercio e Industria, Madrid, octubre de 2002.

Architecture for time oriented systems

Organizado por mi amigo y antiguo socio Manuel Alonso, Doctor por la Universidad Politécnica de Madrid y, por entonces, profesor de la Universidad Antonio de Nebrija.

  • Speaker, «Architecture for time oriented systems», Antonio de Nebrija University, Madrid, 2000.
  • Ponente, «Arquitectura de sistemas orientados al tiempo», Universidad Antonio de Nebrija, Madrid, 2000.

Dynamic modelling of markets

Participación en 2 ediciones de las jornadas organizadas por Departamento de Estadística de la Universidad de Salamanca.

  • Speaker, «Dynamic modelling of markets», Salamanca University, Salamanca, 2 editions, 1999 & 2001.
  • Ponente, «Modelización dinámica de los mercados», Universidad de Salamanca, Salamanca, 2 ediciones, 1999 y 2001.

Advanced forecasting, IIR

Ponencia para el Institute for International Research (IIR) y en calidad de Director General y socio de Bayes Inference SA.

  • Speaker, «Advanced forecasting», Institute of International Research (IIR), Madrid, 1996.
  • Ponente, «Modelos avanzados de previsión», Institute of International Research (IIR), Madrid, 1996.

MBA, IESE, Universidad de Navarra

  • Master in Business Administration (Executive MBA), IESE Business School, University of Navarra, 2 years, 1995-1996.
  • Master en Administración de Negocios (MBA Ejecutivo), IESE, Universidad de Navarra, 2 años, 1995-1996.

Diccionario de informática

  • Coauthor, «Computer science dictionary», Foundation for Industrial Innovation & Computer Sciences School (UPM), Madrid, 1996.
  • Coautor, «Diccionario de informática», Fundación para la Innovación Industrial y Facultad de Informática de Madrid (UPM), Madrid, 1996.

Investigación Operativa, UNED

  • Collaborator in forecasting programming with the Department of Operations Research, UNED University, Madrid, 1988-1989.
  • Colaborador en programación de previsiones con el Departamento de Investigación Operativa, UNED, Madrid, 1988-1989.

MAP y Fundación Ortega y Gasset

Profesor de la asignatura «Conceptos fundamentales de informática», del Curso de Postgrado en Administración Pública, del Ministerio para las Administraciones Públicas (MAP), el Instituto Nacional de Administraciones Públicas (INAP) y la Fundación Ortega y Gasset, dos ediciones, Madrid, 1995 y 1996.

  • Teacher, «Computer science concepts», Ministry of Public Administration & Ortega y Gasset Foundation, Madrid, 2 editions, 1995 & 1996.
  • Profesor, «Conceptos fundamentales de informática», Ministerio para las Administraciones Públicas y Fundación Ortega y Gasset, Madrid, 2 ediciones, 1995 y 1996.

De BMP Windows a ICO Unix

El programa de conversión de Bitmaps (BMP) de 16 bits de Windows al formato ICO (de icono) de Unix lo comenzó a desarrollar Juan Ramón Miraz, al comienzo de los noventa, y la versión final que se adjunta en este post la terminé yo.

El formato ICO de Unix especifica un mapa de bits como una matriz de caracteres ASCII, donde cada letra se asocia con el color del pixel de su misma fila y columna. Hubo una época que los bitmaps de los botones de los interfaces de usuario yo lo pintaba así, utilizando el editor vi de Unix y letra a letra. Por ejemplo, asociaba la v al verde, la b al blanco, la r al rojo, etc., para que me fuera más fácil, e iba poniendo letras, una a una, hasta que el botón quedaba bien. Para mi era una gratificante labor artesanal.

A partir de este programa también desarrollé el que convierte del formato BMP al formato BIF, que era un formato propio mio, que utilizaba en combinación con Clipper.

Aunque ahora se podrían recompilar estos dos códigos fuente para las versiones de Windows de 64 bits, sigo utilizando los ejecutables originales de 16 bits. Antes estos ejecutables de 16 bits podían correr mediante emulación en Windows de 32 bits, pero ahora el Windows de 64 bits ya no emula al de 16 bits.

Para poder seguir ejecutando estas pequeñas joyas históricas, sin necesidad de recompilarlas (y más aun en aquellos casos en el que el compilador es también de 16 bits) utilizo el emulador de x86 con DOS de DOSBox que se publica con licencia GNU GPL y aceptan donaciones (yo se la di).

Aunque adjunto en PDF el código fuente completo de los 2 programas de conversión y un ejemplo del formato ICO generado con mi logotipo personal, pongo a continuación el ciclo fundamental de extracción de pixels de un Bitmap (BMP) de 16 colores. Como curiosidad, en esta época, por razones de normalización con el equipo de software con el que trabajaba, los corchetes { } están en la vertical del bloque de código y no dos caracteres antes como es mi costumbre habitual:

for (Y=0, YMax=Bmih.biHeight; Y < YMax; Y++)
  {
  fseek(Bmp, RowStart, SEEK_SET);
  for (X=0, XMax=Bmih.biWidth; X < XMax; X++)
    {
    Arg = fgetc(Bmp);
    H = (Arg >> 4) & 0x0F;  H = Color[H];
    L = Arg & 0x0F;         L = Color[L];
    X++;
    fprintf(Pix,"%c%c",(char)H,(char)L);
    }
  RowStart -= RowBytes;
  fprintf(Pix,"\n");
  fputc('.',stdout); fflush(stdout);
  }
  

Graduate Management Admission Test

En 1994 organice un curso, busqué al profesor estudié y me presenté al Graduate Management Admission Test (GMAT) de la Universidad de Princeton (Nueva Jersey), obteniendo una puntuación superior al percentil 80.

  • «Graduate Management Admission Test» course and score above the 80th percentile, Princeton University, New Jersey, 1994.
  • «Graduate Management Admission Test» curso y evaluación por encima del percentil 80, Universidad de Princeton, Nueva Jersey, 1994.

Master de Ingeniería de Tráfico, DGT

Profesor de la asignatura «Panorámica del hardware», en el Master de Ingeniería de Tráfico, organizado por la Asociación para la Carretera, la Dirección General de Tráfico (DGT) y la Universidad Politécnica de Madrid (UPM). Impartido en la Escuela Universitaria de Ingeniería Técnica de Obras Públicas (UPM). Participé las dos ediciones de 1994 y 1995.

  • Teacher, «Hardware concepts», Master of Traffic Engineering, DGT, 2 editions, Madrid, 1994 & 1995.
  • Profesor, «Panorámica del hardware», Master de Ingeniería de Tráfico, DGT, 2 ediciones, Madrid, 1994 y 1995.

Herramienta TIRS, IBM

Profesor del curso «Desarrollo de sistemas basados en el conocimiento con la herramienta TIRS». Dos ediciones, la primera para El Corte Inglés y la segunda para el Instituto Nacional de Estadística (INE).

  • Teacher, «IBM Tirs Tool», National Statistics Institute & El Corte Ingles, 2 editions, Madrid, 1993.
  • Profesor, «Herramienta Tirs de IBM», Instituto Nacional de Estadística & El Corte Inglés, 2 ediciones, Madrid, 1993.

Sigart Bulletin, ACM Press

Referencia de mi tesis doctoral en el número 1, del volumen 4, de la revista Sigart Bulletin, de ACM Press. Edición al cuidado de W. Lewis Johnson, USC, Information Sciences Institute, California, USA.

  • Doctoral thesis referenced in the «Sigart Bulletin», volume 4, issue 1, ACM Press, Information Sciences Institute, California, January of 1993.
  • Referencia de mi tesis doctoral en el «Sigart Bulletin», volumen 4, número 1, ACM Press, Information Sciences Institute, California, enero de 1993.

Equiparación de perfiles de personalidad

Colaborador del trabajo «PCCP: Una aplicación de la ingeniería del conocimiento para la evaluación de cuestionarios de personalidad de las Fuerzas Armadas», bajo la dirección de Miguel Ángel Núñez del Centro Regional de Psicología (CREPSI) durante mi servicio militar (este fue uno de los trabajos que realicé dentro de las áreas de las aplicaciones a la psicología militar y de la captura óptica de datos).

Este trabajo galardonado con el 2º Premio de Investigación en Psicología Militar «General González del Pino», del Ministerio de Defensa en 1992 (BOE número 282, del martes 24 noviembre 1992, Resolución 421/39369/1992, de 18 de noviembre, de la Secretaria de Estado de Administración Militar, por la que se otorga el Premio de Investigación Psicológica «General González del Pino»).

Resumen: Para dicha aplicación desarrollé el módulo de equiparación de patrones de perfiles de personalidad de los individuos a evaluar con los individuos ya evaluados y clasificados en un banco de datos histórico. Los nuevos individuos podían entrar a formar parte de este banco de datos tras su evaluación, clasificación y seguimiento, con lo que se producía un enriquecimiento constante del banco de datos inicial. La equiparación se realizaba a través de la definición de una medida de distancia entre todos los atributos de la personalidad que medía la aplicación y los de los individuos registrados en el banco de datos. Para optar al premio, también participé en la redacción de la parte de la memoria correspondiente a este módulo de equiparación de perfiles de personalidad.

  • Collaborator of Miguel Angel Núñez, «Application of the knowledge engineering for the evaluation of personality questionnaires», Awarded with the second prize in military psychology research, Ministry of Defence, Madrid, 1992.
  • Colaborador de Miguel Ángel Núñez, «Aplicación de la ingeniería del conocimiento para la evaluación de cuestionarios de personalidad», Galardonado con el 2º premio en investigación en psicología militar, Ministerio de Defensa, Madrid, 1992.

PhD, Inteligencia Artificial, UPM

  • Doctor Cum Laude in Artificial Intelligence / Computer Science, Technical University, Madrid, 2+3 years, 1986-1988, 1989-1992.
  • Doctor Cum Laude en Inteligencia Artificial / Informática, Universidad Politécnica, Madrid, 2+3 años, 1986-1988, 1989-1992.

Cuerpo Superior de Técnicos en TI

Temario de la oposición al Cuerpo Superior de Técnicos en Tecnologías de la Información.

Inicialmente se hizo un sólo tema coordinado por Francisco López Crespo, luego se ampliaron a cuatro temas (coordinados por mí) y, a partir de ahí, el contenido de estos módulos fue reutilizado por los organismos encargados del temario de forma independiente a los autores iniciales.

Estos autores iniciales fueron, por orden alfabético: Manuel Alonso González, María Jesús Díaz García, Ana García Serrano, Martín Molina González, Eduardo Izquierdo Lázaro, Sascha Ossowski y Antonio Salmerón.

Tengo conocimiento de, al menos, cuatro ediciones, cuya historia describo a continuación, aunque es posible que haya habido muchas más.

Cuatro ediciones:

  1. Coautor del tema 15, Inteligencia Artificial y Sistemas Expertos, coordinado por Francisco López Crespo, Ministerio para las Administraciones Públicas (MAP), Madrid 1992.
  2. Coautor y coordinador técnico de los temas 24, 25, 26 y 27 del nuevo temario de 1996, también para el Ministerio para las Administraciones Públicas (MAP).
  3. En la edición de 2002, los temas anteriores, se volvieron a editar con los números 19, 20, 21 y 22, siguiendo el orden de la convocatoria del Boletín Oficial del Estado (BOE) 215 de 2002/09/07, en una edición que corrió a cargo de la Asociación Profesional del Cuerpo Superior de Sistemas y Tecnologías de la Información de la Administración del Estado (ASTIC).
  4. Finalmente en 2009, esto temas, se refundieron en el tema 65, «Gestión del conocimiento: Representación del conocimiento. Sistemas expertos. Herramientas», del segundo volumen de la edición de ASTIC.

  • Coauthor and technical coordinator, «Modules of artificial intelligence & experts systems», Ministry of Public Administration, 4 editions, Madrid, 1992, 1996, 2002 & 2009.
  • Coautor y coordinador técnico, «Módulos de inteligencia artificial y sistemas expertos», Ministerio para las Administraciones Públicas, 4 ediciones, Madrid, 1992, 1996, 2002 y 2009.

Time to market e ingeniería concurrente, HP

Con el título «Time to market e ingeniería concurrente», fue una ponencia sobre técnicas avanzadas de diseño y manufacturación industrial para Structural Dynamics Research Corporation (SDRC) y Hewlett-Packard, con dos ediciones una en Madrid y otra en Barcelona, 1992.

  • Speaker, «Time to market & concurrent engineering», Structural Dynamics Research Corporation & Hewlett-Packard, 2 editions, Madrid & Barcelona, 1992.
  • Ponente, «Time to market e ingeniería concurrente», Structural Dynamics Research Corporation & Hewlett-Packard, 2 ediciones, Madrid y Barcelona, 1992.

Arquitecturas de 2ª generación de diagnóstico

Ponencia titulada «Arquitecturas de segunda generación para el diagnóstico profundo en instalaciones industriales», dentro del curso sobre Técnicas Avanzadas de la Inteligencia Artificial, de la Universidad de Extremadura (UNEX) en 1992.

Pertenece al conjunto de ponencias realizadas ya cerca, y en el marco, de la presentación de mi tesis doctoral. Cada ponencia representaba un paso adelante en el refino de las ideas de la tesis.

  • Speaker, «2nd generation architectures for the deep diagnosis in industrial plants», Universidad de Extremadura, Caceres, 1992.
  • Ponente, «Arquitecturas de 2ª generación para el diagnóstico profundo en instalaciones industriales», Universidad de Extremadura, Cáceres, 1992.

Centro Superior de Investigaciones Científicas

Presentación científica titulada «Arquitecturas de segunda generación para el diagnóstico profundo en instalaciones industriales», realizada en el Centro Superior de Investigaciones Científicas (CSIC), en Madrid el 24 de octubre de 1991, en la IV Reunión Técnica de la Asociación Española Para la Inteligencia Artificial (AEPIA).

El artículo, escrito con mi director de tesis José Cuena, que da soporte a esta presentación científica está publicado en las Actas de la IV Reunión Técnica de la AEPIA, en la sección IV de «Arquitecturas Avanzadas», de las páginas 351 a 365.

Es una de las presentaciones de la que guardo más grato recuerdo, tal vez por el entorno del salón de actos del CSIC, por la presencia de mi director de tesis José Cuena (que fue Presidente AEPIA de 1983 a este año 1991) y por la de Felisa Verdejo (directora del Departamento de Lenguajes y Sistemas Informáticos de la UNED y del grupo de investigación Procesamiento del Lenguaje Natural), sentada junto a él y que luego formaría parte de mi tribunal de tesis.

El mosaico de la portada de las Actas, que combina en verdes el logotipo de la AEPIA, y su versión en grises del Programa de mano de la reunión es una creación mía realizada con un Apple Macintosh. Este mosaico también fue utilizado para la V Conferencia de la AEPIA en 1993 pero en naranjas.

  • Coauthor, «2nd generation architectures for the deep diagnosis in industrial plants», Papers of the 4th Technical Meeting of the AEPIA, Scientific Research Council, Madrid, 1991.
  • Coautor, «Arquitecturas de 2ª generación para el diagnóstico profundo en instalaciones industriales», Actas de la IV Reunión Técnica de la AEPIA, Centro Superior de Investigaciones Científicas, Madrid, 1991.

Representación en restricciones

Ponente de la conferencia titulada «Representación en restricciones de conocimiento profundo sobre instalaciones industriales», centrada en la «Programación con restricciones». La ponencia está basada en artículo del mismo nombre, escrito con José Cuena, que se publicó en las actas de las jornadas de Programación Declarativa, Universidad de Málaga, Málaga, celebrada del 2 al 4 de octubre de 1991.

  • Coauthor, «Constraint programming», Papers of the Declarative Programming Symposium, Malaga University, Malaga, October of 1991.
  • Coautor, «Programación con restricciones», Actas de las Jornadas de Programación Declarativa, Universidad de Málaga, Málaga, octubre de 1991.

Sistemas expertos en la empresa

Profesor y coordinador técnico master de «Sistemas expertos en la empresa», impartido durante 5 ediciones de 620 horas cada una. Organizado por la Comunidad Autónoma de Madrid, Consejería de Educación, Instituto Madrileño de Formación (IMAF). Fue impartido primero en la Universidad Carlos III de Leganés, curso 1990-91. Posteriormente en el Centro de Enseñanza de las Tecnologías de la Información (CETICAM) de Carabanchel, cursos 1991-1992, 1992-1993, 1993-1994 y 1994-1995.

Fui profesor de las asignaturas Conceptos básicos de informática, Conceptos fundamentales de Inteligencia Artificial, Diseño y construcción de sistemas expertos. Profesor de los laboratorios de lenguaje C, lenguaje Lisp, lenguaje Clipper y de proyectos de fin de master. En los tres últimas ediciones fui coordinador técnico del master.

  • Technical coordinator and teacher, «Master in commercial expert systems», IMAF, Community of Madrid, 5 annual editions of 620 hours each, Madrid, 1991-1995.
  • Coordinador técnico y profesor, «Sistemas expertos en la empresa», IMAF, Comunidad de Madrid, 5 ediciones anuales de 620 horas, Madrid, 1991-1995.

Referencia en The 1991 AI Directory

Referenciado en «The 1991 AI Directory: The Directory of the Artificial Intelligence Industry», en la página 69, directorio editado por American Association for Artificial Intelligence (AAAI, Menlo Park, California), Association for Computing Machinery Special Interest Group on Artificial Intelligence (ACM-SIGART), Canadian Society for Computational Studies of Intelligence (CSCSI) y Sociedad Mexicana de Inteligencia Artificial (SMIA) en 1991.

  • Referenced in «The 1991 AI Directory: The Directory of the Artificial Intelligence Industry», page 69, AAAI, ACM-SIGART, CSCSI y SMIA, California, 1991.
  • Referenciado en «El Directorio de la IA, 1991: El Directorio de la Industria de la Inteligencia Artificial», página 69, AAAI, ACM-SIGART, CSCSI y SMIA, California, 1991.

IA y sistemas basados en el conocimiento

Ponencia titulada «Inteligencia artificial y sistemas basados en el conocimiento», en la Facultad de Ciencias Físicas y Matemáticas de la Universidad Complutense de Madrid.

  • Speaker, «Artificial intelligence & knowledge based systems», Complutense University, Madrid, 1991.
  • Ponente, «Inteligencia artificial y sistemas basados en el conocimiento», Universidad Complutense, Madrid, 1991.

Servicio militar en psicología

  • Developer of systems for electronic capture (OMR, Optical Mark Reader) and reporting and diagnostic for a military psychology centre, Ministry of Defence Madrid, 1990-1991.
  • Desarrollador de sistemas de captura electrónica (OMR, lectura óptica de marcas) y de generación de informes y diagnósticos para un centro de psicología militar, Ministerio de Defensa, Madrid, 1990-1991.

Modelling of industrial problems, INCOM’89

En 1989 escribí el artículo «A knowledge based environment for artificial intelligence modelling of industrial problems: Preliminary concepts», bajo la dirección de José Cuena, que se publicó en Preprints of the 6th Symposium on Information Control Problem in Manufacturing Technology (INCOM’89) de la International Federation of Automatic Control (IFAC).

Esta fue una de las primeras veces que tuve que presentar un artículo en una conferencia internacional. Al llegar la hora de la inscripción me pidieron pagar la entrada al curso. Era incapaz de comprenderlo, expliqué una y otra vez que iba de ponente, no de asistente, yo no concebía que además de que no me pagaran por hablar tuviera que pagar por asistir. Armé tal lío que tuvo que llegar mi tutor José Cuena a pagar mi entrada y hacerme pasar, pues llegaba tarde a mi ponencia. Han pasado los años y sigo creyendo que si lo que vas a contar tiene contenido hay que negarse a pagar y si no tiene contenido entonces ni hay que hablar.

  • Coauthor, «A knowledge based environment for artificial intelligence modelling of industrial problems: Preliminary concepts», INCOM’89, IFAC, Madrid, 1989.
  • Coautor, «Un entorno basado en el conocimiento para la modelización con IA de problemas industriales: Conceptos preliminares», INCOM’89, IFAC, Madrid, 1989.

Herramienta Guru, IBM

Profesor de la «Herramienta Guru» en el Curso de Formación Continua «Sistemas Expertos, Conceptos, técnicas y métodos básicos», de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid en 1989.

Guru era una herramienta desarrollada por IBM para la construcción de sistemas expertos.

  • Teacher, «IBM Guru tool», University School of Computer Science, Technical University, Madrid, 1989.
  • Profesor, «Herramienta Guru de IBM», Escuela Universitaria de Informática, Universidad Politécnica, Madrid, 1989.

Reasoning over the behaviour of physical systems

Autor del artículo «Reasoning over the behaviour of physical systems», en Civil Engineering Expert Systems, Civil Engineering European Cursus, Programa COMET, Madrid, 1989.

Fui sólo el autor del artículo, porque no pude asistir a la conferencia como ponente y lo tuvo que presentar por mí Manuel Alonso, compañero en el Laboratorio de Inteligencia Artificial y luego socio de la empresa EQ Sistemas Inteligentes.

  • Author, «Reasoning over the behaviour of physical systems», Civil Engineering Expert Systems, Civil Engineering European Cursus, Madrid, 1989.
  • Autor, «Razonamiento sobre el comportamiento de sistemas físicos», Sistemas Expertos en Ingeniería Civil, Curso Europeo de Ingeniería Civil, Madrid, 1989.

Diagnóstico profundo y simulación cualitativa

  • Researcher in deep diagnosis and qualitative risk simulation for Repsol (petro-chemical industry), Tarragona, 1988-1989.
  • Investigador en diagnóstico profundo y simulación cualitativa de riesgos para Repsol (sector pretro-químico), Tarragona, 1988-1989.

Optimización de queries a bases de datos

Publicación del artículo titulado «Optimizadores: Mejorar el acceso a los datos», en la revista Chip, número 76, páginas 37-47, Ediciones Arcadia, Madrid, 1988.

Artículo escrito con y bajo la dirección de Adoración de Miguel Castaño, por entonces mi profesora de bases de datos y modelos de datos. Los ejemplos para ilustrar la lógica de la optimización estaban programados en Prolog.

  • Coauthor, «Database query optimization», Chip Magazine, number 76, pages 37-47, Arcadia Editions, Madrid, 1988.
  • Coautor, «Optimizadores: Mejorar el acceso a los datos», Revista Chip, número 76, páginas 37-47, Ediciones Arcadia, Madrid, 1988.

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

  • 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, Madrid, 5+1 años, 1981-1986 y 1987.

Diseño y fabricación asistida por computador

  • 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 de la primer claustro democrático y constituyente de la UPM

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 de la 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.