miércoles, 31 de diciembre de 2008

Happy 2009 ;-)

Mis mejores deseos para todos en este nuevo año que entra ya mismo. De hecho, como no espabile con la cena, me comen los liki-likis en las uvas!!!

martes, 11 de noviembre de 2008

LinQ: Yo LinQueo, tú LinQuearás...

Últimamente he estado Offline debido a que mi tiempo libre se ha tornado en dedicación exclusiva a la atención de mi pequeño retoño, nacido recientemente. Espero seguir posteando con más frecuencia a partir de ahora
;-)

Recientemente he empezado a trastear con LinQ principalmente por conocer la tecnología, no por necesidades de desarrollo. Habiendo leído algún libro interesante acerca del tema (LINQ Unleashed) he de admitir que me ha sorprendido gratamente, empezando por el soporte que le han metido a C# para dar cabida a este nuevo framework de consultas integradas:

- Métodos de extensión: Eso de meter funcionalidad añadida a cualquier tipo del CLR (ya sea definido en el lenguaje o propio) aumenta la potencia y riqueza del lenguaje hasta límites insospechados. De hecho, es una de las características me más me gustan.
- Tipos anónimos: Al principio me sonaba a los tipos de Javascript, pero una vez que 'LinQueas', ves rápido la necesidad, sobre todo cuando se trata de proyecciones de tipos con la cláusula Select.
- Expresiones Lambda: Una vuelta de tuerca más a los delegados anónimos.

Es importante recalcar que estas nuevas funcionalidades no son exclusivas de LinQ, de ahí que cualquier programador las recibirá con los brazos abiertos en cuanto empiece a soportarlas en su código.

Una vez empiezas a meter métodos de extensión en tus propias clases, sientes la necesidad de que necesitas más potencia y organización para ciertos retos. En este punto aparecen los proveedores para LinQ. Por defecto el Framework trae varios proveedores interesantes: LinQ to SQL, to Objects, to XML. Crearse uno propio ya es harina de otro costal... Googleando he visto un interesantísimo tutorial creado por el padre de LinQ (Matt Warren).

En principio se trata de implementar un par de Interfaces, pero tengo que admitir que sin ver algo de código, esto no era ni mucho menos fácil (no veía las cosas claras con la manipulación de las expresiones). De hecho, no hay más que ojear el tutorial citado para comprobarlo (atención especial a 'su implementación' del patrón Visitor para desglosar las expresiones).

domingo, 20 de abril de 2008

Paralelizando conexiones más allá de los límites del navegador

Últimamente he estado lidiando con el asunto del límite de conexiones de los navegadores trabajando bajo HTTP 1.1. En esta versión del protocolo no se permiten, en principio, más de 2 conexiones simultáneas. Ésto es un problema en aplicaciones que precisan sacar el máximo rendimiento de las descargas como puede ser el envío de imágenes, que ya de por sí es información pesada.

Aquí cuentan que un cliente no debería mantener más de 2 conexiones con cualquier servidor o Proxy. Muy bien; eso coménteselo a los de Google y su Google Maps, o a Microsoft y su Maps Live, a ver qué opinan del asunto (ellos lo resuelven como detallo más adelante). Y todo por seguir "el estándar", dicho sea de paso.

Microsoft ya ha tomado medidas con su 'Explorer 8' para aumentar por defecto el número de conexiones simultáneas a 6. El caso es que como siempre, cada navegador irá "a su bola" y al final nos tocará lidiar con estos problemas a los programadores (para ganarnos el sueldo, y tal...). Menuda chusta!

Googleando se puede encontrar cómo resolver este asunto de forma más o menos elegante (sin intervención por parte del usuario) con la inclusión de múltiples dominios que apunten a una misma IP encargada de resolver las peticiones al cliente. Con este "Hack" la verdad es que se consiguen unas velocidades de descarga potentes (siempre dependiendo del ancho de banda). Prueba de ello es el visor que tenemos publicado para GeoMadrid.

En diversos Blogs que he estado leyendo opinan que este tipo de triquiñuelas puede reventar Internet. Yo opino que todo en su justa medida... Los servidores deben estar preparados ofreciendo escalabilidad pues las aplicaciones de hoy demandan grandes volúmenes de información. La Web tiene su talón de Aquiles en el ancho de banda pero eso no debe ser un impedimento para desarrollar aplicaciones que saquen el máximo provecho de los recursos disponibles.

miércoles, 12 de marzo de 2008

Desarrollador 5 Estrellas

Recientemente he obtenido la 5ª Estrella del curso online de capacitación para tecnologías relacionadas con .NET. Actualmente trabajo con ese Framework, de ahí que decidiera enrolarme principalmente por ampliar conocimientos y obtener material actualizado. Mis impresiones al respecto:

- Lo mejor de todo que es gratuito.
- Es una buena oportunidad de iniciarse en .NET si aún no lo conoces y/o te pica la curiosidad.
- Buen material aunque no me agrada que la parte final sean vídeos y más vídeos. Además, la calidad del sonido es mediocre.
- Conoces tecnologías que aún no trabajando con ellas a diario, te pueden servir para proyectos futuros (p.e. Workflows).
- No es complicado aprobar exámenes, aunque alguno es algo "puñetero".
- Con tanta estrella al final eres capitán general, como poco ;-)

En breve abordaré el Desarrollador Gold y posteriormente, si todo va bien, el Platinum. Aquí como el Lute, camina o revienta...