CERN CMS Fireworks

He visto unas capturas de pantalla de la aplicación que usan para analizar los datos que genera el Colisionador de Hadrones del CERN y me ha llamado la atención lo espectacular de la interface… así que he investigado un poco…

R121995-L6-E18[1]

Parece una aplicación en Java, o C++ , sobre Linux

Halo-HCAL-113686[1]

No está mal eh!

CollisionEvent[1]

Aunque pone FireWorks, creo que no tiene nada que ver con el Macromedia Adobe Fireworks

Tutorial de la aplicación:

https://twiki.cern.ch/twiki/bin/view/CMS/WorkBookFireworksTutorial

Vídeo de demostración de la aplicación.

http://cms-service-sdtweb.web.cern.ch/cms-service-sdtweb/fireworks/demo.mov

En el video parece que responde bastante bien.

La habrán hecho en la India? en China? cuándo han podido tardar en hacer algo así? cuánto debió costar?

El LHC comenzó a construirse sobre el antiguo túnel del LEP, en el año 2000, y al parecer tendrá un coste total de 3,7 Billones (con B) de Euros!!  Desde luego no podrán decir que no han tenido tiempo y presupuesto..

http://cms.web.cern.ch/cms/News/e-commentary/cms-e-commentary09.htm

DataTable to Excel con un control DataGrid

Dejo código con otra opción para exportar datos de un DataTable a un archivo Excel.

Resulta que el Excel es capaz de reconocer código html de una tabla, y eso es precisamente lo que genera el control DataGrid.

Este método no me gusta demasiado porque implica referenciar el espacio de nombres System.Web, y si estamos en una aplicación de escritorio, no me parece demasiado elegante. Supongo que en una aplicación Web, se notaría menos, pero un control es para lo que es, y si empezamos a usar cosas para lo que no son es cuando aparecen los problemas.

Esto mismo se podría hacer usando simplemente un objeto HtmlWriter, pero el código quedaría bastante más complejo que este.

 

image

 

Una de las ventajas de este método es la posibilidad de añadir estilos dinámicamente, por ejemplo usando un fichero css como este:

 

image

 

Habría que añadir unas cuantas líneas más al método anterior, para inyectar el contenido del css al html generado.

Esta alternativa abre la posibilidad de tener varios formatos de exportación, definidos en distintos archivos css, y un único método para realizar la exportación.

 

image

 

Una de las desventajas de esta método podría ser el rendimiento. El volumen de información generado es bastante alto, y ante un número elevado de filas y de columnas, el rendimiento se resiente.

Este sería el contenido del texto generado, para un DataTable con dos filas y dos columnas

image

Abriéndolo con el Excel:

image

Sé que funciona con el Excel 2003 y posteriores, pero sospecho, aunque no estoy seguro, de que también lo reconoce el Excel 2000.

 

También se puede exportar a Excel, usando el formato Office Xml.

DataTable To Excel con ExcelExportLib

Dejo este snippet, por si a alguno le puede servir.

Es una manera más de exportar un DataTable, o un DataSet a un fichero Excel, pero esta vez usando el formato Office Xml.

Wikipedia: http://es.wikipedia.org/wiki/Microsoft_Office_XML

Los formatos Microsoft Office XML (no confundir con Office Open XML) son formatos de documento basados en XML (o lenguajes de esquema XML) introducidos en versiones de Microsoft Office anteriores a Office 2007. En Microsoft Office XP se introdujo un nuevo formato XML para almacenar hojas de cálculo de Excel y Office 2003 añadió formatos basados en XML para documentos de Word.

Estos formatos fueron reemplazados por la especificación Office Open XML (ECMA-376) en Microsoft Office 2007.

El formato Excel xml tiene más o menos la siguiente apariencia:

image

Una de las ventajas de este formato, es la posibilidad de incluir formatos (valga la redundancia), fórmulas, etc. y que son reconocidos desde la versión 2003.

image

image

Más información acerca del formato: http://msdn.microsoft.com/en-us/library/aa140066%28office.10%29.aspx

Una exportación sencilla, no tiene ninguna complicación, pero so quisiéramos añadir ciertas complejidades, hay mucho código que escribir.

Por eso, me he apoyado en esta librería que proporciona un modelo de objetos bastante sencillo, que permite centrarse en la información a generar, y delegar el “renderizado” del documento xml.

http://excelexportlib.codeplex.com/

image

Traducción: ExcelExportLib es una librería de exportación simple que crea un archivo .xml. Este archivo puede ser abierto en Excel. Al contrario que los archivos csv, este formato contiene información de formato. La principal ventaja del proyecto es que permite la exportación de datos en Excel sin necesidad de ejecutar Excel.

A mí lo que me gustó de la librería es lo sencillita que es. Simple, pero potente.

Un ejemplo:

image

 

Bueno, y finalmente el snippet.

 

image

image

Por supuesto, al Excel generado se le pueden añadir todo tipo de formatos, fórmulas, totales, etc.

Y allí donde ExcelExportLib no llegue, siempre se puede añadir funcionalidad propia.

Normalmente para saber cómo se traduce a xml una característica del documento Excel, por ejemplo una fórmula, un formato, etc., se pueden consultar las especificaciones, pero lo más sencillo suele ser generar un documento con la características en cuestión, guardar el archivo en formato xml y ver el resultado.

Por ejemplo, ¿cómo se especifica la característica de formato condicional?

 

image

Guardamos el documento en formato xml….

image

 

Y abrimos el resultado con un editor de texto, o uno xml.

 

image

 

PD: No suelo pegar el código, por un trauma personal. He sufrido el copy-pasteado de mucha gente, y la verdad es que no se lo deseo a nadie. Por eso pongo la imagen, y que cada uno escriba su propio código. Perdón por los inconvenientes ocasionados. 😉

Novedades acerca del caso LSE

No sé si habrás leído algo acerca del caso de la London Stock Exchange, en el que se había reemplazado el sistema existente construido sobre linux y java, por un sistema completamente nuevo basado en el .net framework, windows y sql server.

Si no, en este post de Jorge viene muy bien explicada toda la historia:
http://geeks.ms/blogs/jorge/archive/2009/10/22/el-caso-de-la-lse-london-stock-exchange-y-los-procesos-en-tiempo-real.aspx

Bueno, pues resulta que finalmente han salido a la luz estas imágenes que relatan fielmente como fue la entrevista de trabajo del Project Manager que contrataron para dirigir dicho proyecto. Por supuesto, no puedo citar mis fuentes.

 image

http://www.dilbert.com/