3ENGINE  programmer :-)

lunes 30 de marzo de 2009

Soporte técnico en la edad media.

Etiquetas: ,




miércoles 25 de marzo de 2009

STAR TREK: PHASE II

Por lo visto un grupo de fans, actores y técnicos han creado una serie casera de Star Trek:

STAR TREK: PHASE II
STAR TREK: PHASE II (en español)

Etiquetas:




lunes 23 de marzo de 2009

El total es mayor que la suma.

Marketing. ¿nos ayuda a promocionarnos?: el secreto es la diferenciación (y no precisamente en ser el mejor en algo).
Coaching. ¿qué nos impide avanzar?: nuestras propias creencias nos ponen frenos.



Extraido de: Inconsciencia y el total es mayor que la suma.

Etiquetas: ,




jueves 19 de marzo de 2009

Fiddler: analizador del trafico http

Fiddler es una analizador del trafico http que genera nuestro equipo. Fiddler captura todas las peticiones que realiza el navegador y muestra el detalle de cada petición y su correspondiente respuesta.


artículo relacionado: Fiddler - Indispensable para el desarrollo Web

Etiquetas:




miércoles 18 de marzo de 2009

Cloud computing

Cloud computing es una tecnología que permite ofrecer servicios de computación a través de Internet (gráfico 'estado actual cloud computing 2008'). En el artículo ¿Qué es el Cloud Computing? Definición, tendencias y precauciones. se repasan las tendencias actuales y 'trampas' que esconde esta tecnología. Actualmente sólo existen un puñado de competidores:

Google App Engine
Página principal de Google App Engine
Google App Engine frente a los web services de Amazon
Google App Engine SDK Cheat Sheet
Debug mode ON: Grupo sobre Google App Engine
Probando 'Google App Engine', el 'servidor de aplicaciones' que utiliza GFS y BigTable
10 pasos fáciles para usar Google App Engine
Django y Google App Engine → (Semi) FAIL

Windows Azure
Página principal de Windows Azure
Windows Azure, plataforma como servicio de Microsoft
Cloud Development in Visual Studio 2010 (por lo visto está incluido en sus especificaciones)

Amazon EC2
Página principal de Amazon EC2
Tu aplicación sobre los Amazon Web Services (EC2, S3...)

IBM Blue Cloud
Página principal de IBM Blue Cloud
IBM amplía su oferta de soluciones Cloud Computing


VMware vCLOUD
Página principal de vCLOUD
VMware anuncia la Iniciativa vCloud

eyeOS
Página principal de eyeOS
eyeOS: Nubes para el publico.
eyeOS developers


Segun dicen los entendidos no hay que confundir las cloud computing con los mashups. Estos últimos son sitios web o aplicaciónes web que usan contenido de otras aplicaciones Web para crear un nuevo contenido completo, consumiendo servicios directamente siempre a través de protocolo http.

Etiquetas: ,




domingo 15 de marzo de 2009

¿Qué hora es?


Que Hora Es from Diana Pop on Vimeo.

Etiquetas: ,




viernes 13 de marzo de 2009

Clonar or not clonar: that is the question

Programando yo el otro día en c#... necesitaba realizar un copia integra de un objeto, pero duplicando direcciones de memoria, es decir un objeto completamente nuevo pero que contenga los mismos datos... me interesaba que fuera una rutina universal que me sirviera para copiar cualquier objeto independientemente de su tipo.


A partir del artículo de Christian Bigentini descubrí que utilizando técnica de serialización y deserialización podia hacer lo que me proponia.

Pero por otro lado, me interesaba que el método que realiza una copia de mi objeto estuviera de algun modo asociado al tipo... para esto, lo mejor es utilizar las extensiones, una técnica que c# ha incluido a partir de la versión 3.0.

El código resultante es éste:




public static class MyExtensions
{
public static MiTipo Copia(this MiTipo plugin)
{
MemoryStream ms = new System.IO.MemoryStream();
BinaryFormatter bf = new BinaryFormatter(null,
new StreamingContext(StreamingContextStates.Clone));
bf.Serialize(ms, plugin);
ms.Seek(0, SeekOrigin.Begin);
MiTipo copia = (MiTipo)bf.Deserialize(ms);
ms.Close();
return copia;
}
}

Un ejemplo de su uso:




using espacio.nombres.declaracion.extensiones
...
MiTipo objeto1 = new MiTipo();
objeto1.propiedad = "hola";
MiTipo objeto2 = objeto1.Copia();
...

Etiquetas:




jueves 12 de marzo de 2009

Canciones 'cachondas' de Alejandro Sanz

Por youtube hay muchas... pero estas dos me han hecho mucha gracia.

Alejandro Sanz a veces me peo


El Condon Partio

Etiquetas: ,




miércoles 4 de marzo de 2009

Datasets: La propiedad NullValue y DefaultValue

Un truco para ahorrar código y quebraderos de cabeza cuando trabajamos con datasets de .NET es la propiedad NullValue que se encuentra en de la definición de las columnas de un DataTable. Si quieres mas detalles sobre DefaultValue y NullValue, lee éste artículo .

Pero en resumen, para 'NullValue' se trata de ahorrar la comprobación si el valor de la columna es nulo o no de modo que si la propiedad 'NullValue' la dejamos en blanco, de esto:

if (!row.IsObservacionesNull())
obs = row.Observaciones;
else
obs = “”;


sólo necesitaremos hacer esto:

obs = row.Observaciones;

Con DefaultValue, la idea es que al dar a ciertas columnas valores por defecto, al insertar una nueva fila al Dataset sólo nos tendremos que preocupar por dar un valor a los campos que nos interese.

Etiquetas: ,




MSLinqToSQLGenerator: Unspecified error

Cuando añades una partial class a una clase "Linq to SQL" de LINQ tienes todos los números que en un momento u otro acabe saliendo un error "'MSLinqToSQLGenerator' failed. Unspecified error" ¡incluso aunque tengas instalado el SP1 de Visual Studio 2008!. Gracias a éste enlace pude solucionar el problema.

1º paso: los using debe estar dentro del "namespace". Es decir de esto:


using System.Linq;
using System.Collections.Generic;
using System.Data;

namespace SIRAMcenter.Datos.Plugins
{
partial class PluginInstanceDataContext
{
public IEnumerable<string> GetNombreClasePluginsNoIControl(int idCentro)

debes pasar a esto:

namespace SIRAMcenter.Datos.Plugins
{
using System.Linq;
using System.Collections.Generic;
using System.Data;

partial class PluginInstanceDataContext
{
public IEnumerable<string> GetNombreClasePluginsNoIControl(int idCentro)
{



2º paso: Ejecutar explicitamente la herramienta personalizada(MSLinqToSQLGenerator) de nuevo:




3ºpaso: limpia el proyecto y vuelve a compilar.

Etiquetas: , ,




martes 3 de marzo de 2009

LINQ con WCF: de carga diferida a explícita

LINQ por defecto utiliza la consulta diferida. Cuando "navegamos" entre las clases de un LINQ to SQL (.dbml) éste en background va generando las consultas y de este modo nos ahorramos consultas inutiles.

El problema viene cuando queramos devolver una clase que forma parte de un .dbml como resultado de un método marcado como [OperationContract].

Es necesario modificar el comportamiento por defecto de consulta diferida a una consulta forzada. Ejemplo:


PluginInstanceDataContext pluginsContext = new PluginInstanceDataContext();

var orderloadOption = new System.Data.Linq.DataLoadOptions();
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith(p => p.PluginParametro);
dlo.LoadWith(p => p.PluginTipoControl);
pluginsContext.LoadOptions = dlo;

var consulta = from plugins in pluginsContext.Plugin
where plugins.IdCentro == idCentro
select plugins;


Sino lo hacemos así nos encontraremos que las "clases hijas" no contienen datos.

Etiquetas: , , ,




Aprende en 10 años.. y no en 3 días.

Interesante entrada:

http://www.kirainet.com/aprender-en-10-anos/

Te da que pensar y anima saber, descubrir que no es trivial dominar una materia... creo que me servirá para obtener argumentos sólidos para afrontar algun que otro reto en mi futuro.

Etiquetas:




   

Categorias

Archivos

 
Feed Blog suscrbete!      Contacto     Terminos & Condiciones © 3ENGINE 2007