Lenguaje simbólico azul

Plana con una cuadro de símbolos

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

Level 10 of 10 in the hacking test, Instisec

Curso interesante, entretenido y, finalmente, genial organizado por Instituto para la Seguridad en Internet, Instisec. Primero recibí el curso y luego participé del primer reto de hacking boinas negras organizado por Instisec, donde obtuve un 10 de 10 y me entretuve en documentar todas las pruebas y medir su capacidad para filtrar aspirantes a superarlas.

  • «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

Forest - Forecast Strategy Club, programa de octubre de 2002

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 compañero 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 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.
  • Máster en Administración de Negocios (Executive MBA), 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.

Bayes Forecast, dirección general y clientes

  • Since 1995 to 2005: Leading and mentoring a group of 50+ economists, software engineers and mathematicians. Responsible for the commercial actions, whole planning, execution, and goal achievement of the projects for client companies like Coca-Cola, Microsoft, Telefónica, Spanish National Uranium Institute, Mercadona, Carrefour, Forces Elèctriques d’Andorra, Grupo Sogecable, Movistar, NCR, Unidad Editorial, etc. These projects included electronic capture of information, analysis and modelling of huge and dynamic operational and sales data, reporting and delivering forecast estimates, business intelligence and customer relationship management and marketing (CRM).
  • De 1995 a 2004: Liderando un grupo de más de 50 ingenieros de software, matemáticos y economistas. Con responsabilidad directa en la comercialización y el desarrollo de proyectos de modelización de la demanda y los mercados, sistemas de previsión de ventas, de optimización e inteligencia de negocio. Para clientes como Coca-Cola, Microsoft, Telefónica, Empresa Nacional de Uranio, Mercadona, Forces Elèctriques d’Andorra, Sogecable, Movistar, NCR, Unidad Editorial (El Mundo), Recoletos Compañía Editorial (Marca y Expansión), etc.

Bayes Forecast, diseñador inicial de TOL

Bayes Forecast, web crawlers especializados

  • Developer of several web crawling systems based on ad-hoc or heuristic search (references and keywords matching).
  • Creador de web crawlers especializados en la recopilación de información en internet por áreas de conocimiento.

Bayes Forecast, entorno software

  • Developement environment: Operating systems: Windows, Linux, Aix, Irix, and Solaris; Databases: Oracle, SQL Server, and Teradata (data warehouse); Languages: C++, C, JavaScript, Visual Basic, Html, and TOL (Time Oriented Language).
  • Entorno software: Sistemas operativos: Windows, Linux, Aix, Irix y Solaris; Bases de datos: Oracle, SQL Server y Teradata (data warehouse); Lenguajes: C++, C, JavaScript, Visual Basic, Html y TOL (Time Oriented Language).

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.