diego sevilla’s weblog
it is better to remain silent and be thought a fool,
than to open your mouth and remove all doubt -- groucho marx

19/11/2010

Hispania F1 Racing Team

Esta semana (el martes, creo recordar) hubo una charla de este grupo de fórmula uno con capital español (murciano, para más señas). Quizá es que esperaba más de esto, mucha tecnología al límite, ingeniería de desarrollo, pruebas, ciclos cortos de desarrollo, etc., pero me desilusionó un poco la charla.

Explicaré por qué. No pude ir al principio de la charla porque estaba dando clase en el máster de la asignatura «Software como servicio y distribuido» hasta las 5 de la tarde, y la conferencia había empezado a las 4. Con todo, cuando llegué estaban en turno de preguntas, y pude hacerme una idea de lo que había sido la presentación, aunque me habría gustado verla desde el principio.

Parece que no fue excesivamente técnica, al menos en la parte que nos interesa a los informáticos, porque una de las preguntas que se hicieron tuvo que ver con el lenguaje de programación o entorno que utilizaban. La respuesta del ingeniero informático:

- Utilizamos C#. Cuando entré a trabajar en la empresa venía de experiencia de programación en C++. Cuando me explicaron lo que tenía que hacer me eché las manos a la cabeza. Eso no se podía hacer con C++. Aprendí en un par de semanas C# e hicimos el programa.

Como se puede suponer, tengo miles de comentarios a este respecto. Primero, sí que pude ver el interfaz gráfico que habían hecho. Interfaces con esa complejidad estamos acostumbrados a hacer en C++ y Qt para SAES en la Cátedra de Software libre, y no nos echamos las manos a la cabeza. El hecho de que un ingeniero en particular no tenga el conocimiento suficiente, o tenga que tomar una decisión acelerada no sé si debería decidir una estrategia para el futuro. Además, aprender en un par de semanas C# no parece lo más adecuado para hacer un programa de calidad, pero en fin. Continuaba:

- La salida de este programa son ficheros XML que utilizamos para comunicar con los equipos de carrera

Esto es mi favorito. Al nombrar XML parece que todo el mundo dice «ah, claro». XML ya hace que los programas interactúen mágicamente… En fin. ¿Por qué no JSON/YAML? Reconozco que esto es más una manía mía, pero ¿por qué en los nuevos desarrollos de bases de datos (CouchDB, MongoDB) no se utiliza XML sino formatos más sencillos y expresivos?

Me hubiera gustado preguntarles por sus ciclos de desarrollo, pruebas, etc., pero como había llegado tarde, ahí se quedó.

La conversación, a raíz de otra pregunta, giró hacia la colaboración de estos grupos con la Universidad. Uno de los ponentes (no recuerdo su nombre) había estado trabajando para Red Bull anteriormente, y contaba proyectos de colaboración que sus antiguos patronos tenían con Universidades. No es el caso de Hispania, según decía, por problemas políticos, o por problemas de medios de las universidades (laboratorios con material especializado, etc.)

En este punto hice una pregunta, dado que tenemos experiencia en colaborar con una empresa, pregunté que para tener una colaboración a nivel de informática no se necesitaban laboratorios especializados (sólo ordenadores y personas). Uno de los ingenieros del equipo (presumo) me interrumpió gritando que «¿Cómo que no necesitas? Para empezar necesitas un superordenador». Intenté responderle a medio hacer la pregunta que no se necesita un supercomputador in situ sino una persona que sepa cómo hacer los programas paralelos que aprovechen en superordenador, y una conexión internet para conectarse al CESGA o al Mare Nostrum (en los tiempos de Internet, los ordenadores no tienen que estar en tu habitación, aparte de que tenemos Ben Arabí, creo recordar de la última vez que estuve allí… Además, ¡¡programan en C#!!, ¿qué supercomputador???)… Cuando me dejó terminar la pregunta, la respuesta del ponente era la misma, cuestiones políticas que escapaban a su nivel de puesto de trabajo que hacía que no se colaborara con la Universidad tampoco en informática. Creo que nuestra experiencia en testing, modelado, etc., sería interesante para ellos, pero aquí estamos.

Finalmente, fallo garrafal (según mi punto de vista). Se quejaban de que tenían un presupuesto limitado, y utilizan software propietario, licencias, etc., en vez de sacar partido al software libre (incluso para C# existe Mono…).

Espero que los ingenieros en otras ramas estén más al día, porque si no, el equipo va a ganar pocas carreras :)

13 Comments »

  1. Como programador de C# desde 2003… me siento insultado…
    … insultado porque una medianía como el ingeniero informático ese lo deje en tan mal lugar (y no tú, Diego :-) )

    Por otro lado, creo que la supercomputación para lo que pueda necesitar un equipo de F1 (al menos la supercomputación en el término tradicional) es algo excesivamente exagerado. Entiendo que se pueda necesitar algún material especializado para la ingeniería del vehículo, pero para todo lo demás (cálculos sobre los circuitos, cálculo de probabilidades en conducciones simuladas, etc.), no creo que sea nada que no se pudiera hacer hoy día a tiempo real con la potencia de cáculo de una (si, una) GeForce moderna usando CUDA. Por supuesto, todo esto hablando desde la completa ignorancia sobre lo que realmente hace un equipo de F1 (es posible que esté muy equivocado y se dediquen a descomponer el genoma humano, qué se yo).

    En cualquier caso, yo creo que el problema de ese ingeniero no es precisamente que usaran C#, o XML… cuando los promotores urbanísticos y especuladores de bolsa de estas latitudes (Murcianos, Granadinos… todos iguales :-) ) se meten a dueños de empresas de tecnología (porque no olvidemos que ESO es la F1… todo lo demás es circo), ya se sabe. ¿Nadie preguntó de quién era sobrino ese ingeniero? :-)

    Comment by Jcl — 19/11/2010 @ 8:34

  2. Jlc: El lenguaje en el fondo es lo de menos… En realidad lo que me decepciona son las decisiones tomadas arrebatadamente. En cuanto a la supercomputación, efectivamente necesitan mucha computación, por lo que podrían subcontratar algún servicio de computación (Amazon, Ben Arabí, HP, etc.). Otro tema es cómo programen esos algoritmos para que realmente aprovechen la potencia del supercomputador…

    Comment by Diego Sevilla — 19/11/2010 @ 9:53

  3. Para muestra un botón:

    http://www.elpais.com/articulo/deportes/bolido/salido/ordenador/elpepidep/20100228elpepidep_15/Tes

    Comment by Paco — 22/11/2010 @ 14:13

  4. Repitiendo que soy un ignorante en la materia, no veo que la dinámica de fluidos necesite necesariamente de “supercomputación” (ya digo, al menos en el término tradicional)… hoy día los ordenadores “de casa” ya son supercomputadoras si se saben aprovechar.

    Un ejemplo de supercomputación “en casa”. Los algoritmos de dinámica de fluidos que usarán, no se diferencian tanto (computacionalmente) de los de encriptación de contraseñas, por poner ese ejemplo… es una mera cuestión de saber implementarlo con las herramientas adecuadas.

    Y no me cansaré de repetir que soy un GRAN ignorante en la materia (tanto de la F1, como de la supercomputación), pero a mí lo que me siempre me ha parecido (en la informática en general) es que la gente con tanto presupuesto acaba matando moscas a cañonazos.

    Comment by Jcl — 23/11/2010 @ 10:00

  5. Hola:

    No se limitan a simular un coche en un túnel de viento. Realmente simulan todo el recorrido, metro por metro, por cómo funcionará el coche dependiendo de los parámetros de suspensión, dirección, neumático, etc., usando datos de GPS y físicos del circuito (peraltes, baches, curvas, estado del firme, anchura y dureza de los pianos, etc.) Esto sí que requiere computación a toda castaña. Es más, la resolución aumenta conforme más horas le dediques a la simulación.

    Comment by Diego Sevilla — 23/11/2010 @ 11:17

  6. @Paco y demás, os recuerdo que virgin hizo (y quizás seguirá haciendo) una chapuza (el segundo peor después de Hispania) de coche. Las primeras carreras del campeonato no pudieron acabarlas por tener un depósito de combustible demasiado pequeño. Se puede tener el mejor supercomputador más chachi del mundo pero si no hay neuronas… poco se puede hacer xD

    Comment by Titiritero — 24/11/2010 @ 19:16

  7. Por supuesto que si no sabes qué quieres simular o cómo poco vas a sacar en claro. La supercomputación es otra herramienta más, por ejemplo, el diseñador de redbull lo hace con papel y lápiz (al principio claro!). Sobre el posible uso, yo creo que se usa para todo, desde cada tornillo, el material, la forma, la resistencia a torsiones y altas temperaturas, como afecta cada pieza al conjunto del motor, del chasis. Incluso antes simulaban la forma en la que el depósito se llenaba para mejorar las mangueras!. Y eso sin mover el coche! Ahora lo mismo pero simular todo eso con el coche moviéndose. Y después de simularlo todo…. ves los resultados, cambias un ángulo en un aleron el ángulo de una biela… y lo tienes que simular todo otra vez (sería lo ideal). Quizás un cluster pequeño te pueda hacer una simulación en varios días. Pero el caso es que necesitas miles de simulaciones para llegar a los resultados. Y claro si lo quieres hacer con CUDA necesitarás un equipo de siquiatras tan grande o más que el de F1. En fin…. que tampoco simulen tanto que si no va a hacerse aburrido!!!

    Comment by Paco — 25/11/2010 @ 21:21

  8. Hola Diego:

    Totalmente de acuerdo contigo (cosa que no es muy común, u know what I mean ;-)

    Lo que más me gusta es lo de que “la aplicación no se podía hacer en C++, y por eso pasamos a C#”. Mmmmm, creo que eso es algo llamado “ignorancia”, de la cual yo he sido (y soy) fiel escudero en muchos ámbitos y ocasiones. También algo de miedo, miedo a C++. Yo también lo tuve, porque no nos vamos a engañar, y ya que hemos toreado en varias plazas (C++, Java y C# incluidas), añadir que programar con C# y Java es más sencillo, aunque los resultados no son tan bonitos y buenos como con C++.

    Una lástima que no se quieran acercar a gente como nosotros. La de ideas que podríamos darles, y la de cosas nuevas que aprenderíamos.

    Pues nada, mi pequeño aporte.
    Un abrazo crack.

    PD: nunca superarás tu manía a XML. Aunque a vista de pájaro sabes que se ve más estructurado, y para cambiar a los otros hay que analizarlos mejor.

    Comment by pedro mateo — 27/11/2010 @ 14:39

  9. Por cierto, no te perdono que no me avisaras de esta reunión. Otra más en el saco de las guardadas…

    Comment by pedro mateo — 27/11/2010 @ 14:40

  10. Hola, soy ingeniero informático por la FIUM, actualmente trabajo con tecnologias .Net, vb y C# son grandes lenguajes de programacion y WPF junto con WCF son el futuro, si a todo esto le añadimos un entorno de desarrollo como es Visual Studio pues tenemos la respuesta de porque las empresas utilizan tecnologias .Net.

    El software Libre esta bien pero NO ES GRATIS, lo unico gratis es el codigo fuente pero el soporte que te puedan dar hay que pagarlo y no sale nada barato. Al fin y al cabo lo que se paga es el conocimiento.

    C++,C son lenguajes fantasticos, muy buenos para empezar a programar pero actualmente estan bastante apolillados, con la competencia que hay en el mundo del software hoy dia no son competitivos, son lenguajes de escuelica para enseñarles a los alumnos ha hacer un bucle, pero si se quiere hacer software rapidamente con una calidad aceptable hay que utilizar tecnologias actuales porque por esa regla de tres programemos en ensamblador, sii en 8086.

    Yo no se si HRT ganara muchas carreras pero la FIUM deberia mirar por el retrovisor porque la UCAM pide paso para adelantar.

    Comment by Marcos — 28/11/2010 @ 0:25

  11. Muy bueno Marcos
    ¿Lenguajes fantásticos para empezar? Por supuesto, para empezar a hacer programas eficientes.
    ¿Apolillados y de escuelica? ¿No son competitivos? ¿De dónde te sacas eso? No merece la pena ni siquiera ponerte contraejemplos. POCO COMPETITIVOS dice el tío…

    Salu2.

    Comment by Miguel Ángel — 29/11/2010 @ 12:36

  12. Una cosa más ¿hacer software rapidamente con una calidad aceptable? Por favor, ¡¡¡¡vísteme despacio que llevo prisa!!!!

    Un gerente fue con el maestro Desarrollador y le mostró el documento de requerimientos para una nueva aplicación. El gerente le preguntó al maestro: “¿Cuánto tiempo tomará diseñar este sistema si le asigno cinco Desarrolladores al proyecto?”
    “Tomará un año”, dijo el maestro rápidamente.
    “¡Pero necesito este sistema inmediatamente o antes! ¿Cuánto tiempo se tardará en diseñar este sistema si le asigno diez Desarrolladores?”
    El maestro frunció el ceño. “En este caso, tomará dos años.”
    “¿Y si le asigno cien Desarrolladores?”
    El maestro se encogió de hombros. “Entonces el diseño nunca será completado”, dijo.

    Ahí lo dejo.

    PD. Diego, perdona mi tono, pero de alguien aprendí a ser un poco visceral en lo que a desarrollo se refiere :)

    Comment by Miguel Ángel — 29/11/2010 @ 12:41

  13. Más de un ingeniero debería recordar que con menos de un spectrum llegamos a la luna. Eso sí que debió ser un programa eficiente.

    Actualmente trabajo exlusivamente con tecnologías .net. C#, VB.net, WCF, WPF y todo el etc. Salen unos programas “bonitos” y la relación “bonito-rapido-eficiente” es bastante buena. Es decir (y siempre en mi discutible opinión y sin creerme poseedor de la verdad) son tecnologías muy buenas para crear programas comerciales. Si mi vida (o la victoria) dependiera de un programa, no querría una interfaz WPF.

    Comment by Jonathan Fernández — 15/2/2011 @ 10:02

RSS feed for comments on this post. TrackBack URI

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


Anti-Spam by WP-Morph 

Creative Commons License
This work is licensed under a Creative Commons License.
EWWV  AWStats  Site Meter 23 queries. 0.082 seconds. Powered by WordPress
406021 email messages processed in this box. 10858 were spam

0