TeraBIThia

24/09/07

Convertir Lista Genérica a DataTable

Archivado en: Uncategorized — crisfervil @ 10:49 pm

Trabajando me he encontrado con la necesidad de convertir varias listas de entidades en objetos DataTable.

Me ha llevado un rato construirla, pero así ha quedado.

Dejemos que el código hable.

/// <summary>
/// Clase genérica para convertir una Lista Genérica de elementos en
/// un objeto DataTable
/// </summary>
/// <typeparam name="T">Tipo de datos de los elementos de la Lista. 
/// Debe ser una clase con un constructor sin parámetros.</typeparam>
public static class Converter<T> where T: new()
{
    public static DataTable Convert(List<T> items)
    {
        // Instancia del objeto a devolver
        DataTable returnValue = new DataTable();
        // Información del tipo de datos de los elementos del List
        Type itemsType = typeof(T);
        // Recorremos las propiedades para crear las columnas del datatable
        foreach (PropertyInfo prop in itemsType.GetProperties())
        {
            // Crearmos y agregamos una columna por cada propiedad de la entidad
            DataColumn column = new DataColumn(prop.Name);
            column.DataType = prop.PropertyType;
            returnValue.Columns.Add(column);
        }

        int j;
        // ahora recorremos la colección para guardar los datos
        // en el DataTable
        foreach (T item in items)
        {
            j=0;
            object[] newRow = new object[returnValue.Columns.Count];
            // Volvemos a recorrer las propiedades de cada item para
            // obtener su valor guardarlo en la fila de la tabla
            foreach (PropertyInfo prop in itemsType.GetProperties())
            {
                newRow[j] = prop.GetValue(item, null);
                j++;
            }
            returnValue.Rows.Add(newRow);
        }
        // Devolver el objeto creado
        return returnValue;
    }
}

Cómo usar esta clase?

Pues así:

static void Main(string[] args)
{
    // Generar datos aleatorios
    List<Cliente> items = GenerateData();
    // Realizar la conversión
    DataTable dt = Converter<Cliente>.Convert(items);
    Console.WriteLine(dt.Rows.Count);
    Console.Read();
}

Crossposted from crisfervil.com

06/09/07

Estamos haciendo el tonto!

Archivado en: Uncategorized — crisfervil @ 8:40 am

Es lo que me responde mi compañero cuando le comento que este tio, Glenn Feron, cobra 140$ (unos 100€) la hora por usar el photoshop. Pero viendo su trabajo, entendemos porqué.

Se dedica al retoque fotográfico, eliminando esas pequeñas (o grandes) imperfecciones que l@s modelos de carne y hueso tienen, pero que l@s chic@s  virtuales no se pueden permitir. Con el trabajo de tios como este, ya no hace falta pasar por el quirófano para deshacerse de algún michelín, o hacer crecer los pectorales. Y el gimnasio, pasa a ser leyenda.

No nos engañemos. Las imágenes de cuerpos de dios@s griegos con pieles perfectas es una fantasía. No dejemos que formen parte de la regla con que midamos la belleza de los demás. Digo más; no dejemos que la imagen ocupe el primer puesto en el ranking de importancia a la hora de juzgar a alguien. Demos a cada cosa su justo lugar. Seamos racionales.

Por lo visto no es el único que se dedica a esto. He encontrado a otros: Greg Apodaca y Mario Romero Plasencia. Un trabajo impresionante, desde luego.

El asunto me recuerda también este anuncio de dove, que vi una vez.

Fuente:

- Curioso Pero Inutil:
La magia de las modelos del PhotoShop, el arte románico y los egipcios
Photoshop CPIero

Crossposted from crisfervil.com

04/09/07

Insertando vídeos en CommunityServer

Archivado en: Uncategorized — crisfervil @ 8:13 pm

Me he roto la cabeza intentando configurar el CummunityServer para que me permitiera mostrar el vídeo de youtube del post anterior.

Tras mucho buscar….

Se trata del archivo communityserver.config en el directorio raiz.

Hay que modificar la clave Markup, introduciendo los tag html permitidos en los post.

Hay que insertar:

<object width = "true" height = "true">
  <param name = "true" value = "true"/>
  <embed src = "true" type = "true" wmode = "true" width = "true" height = "true" />
</object>
<embed src="true" type="true" wmode="true" width="true" height="true" />
<param name = "true" value = "true"/>
Fuente: Mark Up Configuration en CommunityServer.org

Crossposted from crisfervil.com

Sobrevolando La Castellana

Archivado en: Uncategorized — crisfervil @ 7:03 pm

Empecé esta entrada mirando el showcase de Silverlight. Me llamó la atención un sitio llamado Tafiti Search. Se trata nada menos que de una interfaz experimental para Live Search, basada completamente en Silverlight. Alucinante!


Captura1


Resulta más impresionante todavía la presentación de los resultados en una vista en árbol (literalmente es un árbol)


Captura2 


Resulta pues que, entre los tipos de búsqueda de Tafiti, tenemos la búsqueda de noticias. Igual que en Live Search. Se me ocurrió buscar “Google”, para hacer una prueba facilita. Y me encontré con esta noticia, que comenta que la nueva actualización para Google Earth viene con un Easter egg, es decir, una especie de juego secreto dentro de la aplicación, a la que se accede a través de una combinación también secreta de teclas.


El mencionado “huevo de pascua” es nada menos que un simulador de vuelo, que aprovecha los mapas de fondo para generar las vistas del avión. También impresionante. Por cierto, no se me olvide, la combinación secreta para acceder al juego es Ctrl + Alt + A.


Captura3


Qué se sentirá sobrevolando la Castellana, me preguntaba…. 



Es una pena, pero en la captura se pierde mucha calidad y vistosidad.


Como véis, como piloto no duraría ni 5 minutos.  No sabría opinar sobre el grado de realismo del simulador. La verdad, aún no he pilotado ningún avión. Lo tengo en tareas pendientes.


Crossposted from crisfervil.com

Blog de WordPress.com.