MSDN Blogs
  • WarNov Developer Evangelist

    Simulando carpetas en los blobs de Windows Azure

    • 2 Comments

    En los blobs de Azure no tenemos un manejo de carpetas como en el sistema de archivos al cual estamos acostumbrados. Solo tenemos contenedores y dentro de estos contenedores tenemos múltiples blobs; no más contenedores. Así que para imitar una estructura de carpetas, podemos nombrar los blobs imitando una estructura de carpetas.

    Por ejemplo; si tenemos:

    clip_image002

    Donde cada carpeta contiene un grupo de imágenes que nos servirán como fuente para un sitio web, entonces tendríamos que simular dentro del contenedor llamado “temp”, que tenemos tres carpetas llamadas pics, pics1 y pics2.

    Esto se logra sencillamente renombrando cada uno de los archivos dentro de las carpetas con la ruta relativa desde temp (que sería el nombre del contenedor). Esto hará que se puedan referenciar luego como si estuviesen en una jerarquía de carpetas.

    Por ejemplo si dentro de cada folder tenemos los archivos 1.jpg, 2.jpg, n.jpg, entonces luego del renombramiento tendríamos:

    Representando a la carpeta pics:

    pics/1.jpg, pics/2.jpg, pics/3.jpg

    Para la carpeta pics1:

    pics1/1.jpg, pics1/2.jpg, pics1/3.jpg

    y así sucesivamente.

    De la misma manera operaríamos en jerarquías más complejas.

    Por ejemplo un blob bien podría llamarse:

    carpeta/subcarpeta/subsubcarpeta/archivo.extensión

    Más detalles en inglés aquí

  • WarNov Developer Evangelist

    Evento: Happy Hour en la Nube

    • 0 Comments

    Este es un evento cool sobretodo para emprendedores y StartUps que quieren ser pioneros en el negocio del Cloud Computing y aún tienen dudas y no han comenzado de lleno. Estaré comentándoles casos de éxito y de cómo logramos la primera gran aplicación de Azure en Colombia… al final habrá Happy Hour . Los espero!

  • WarNov Developer Evangelist

    Las cartas sobre la mesa: HTML5 vs. Silverlight

    • 18 Comments

    Es preocupante ver como ciertos periodistas y no solo ellos sino en general la gente en medios de divulgación siempre aprovecha ciertos acontecimientos para “acomodarlos” de manera tal que parezcan una chiva sin importar las implicaciones sociales que esto pueda llegar a tener.

    Es el caso a mi modo de ver de una señora periodista muy bloguera ella, quien hizo unas conclusiones en su blog a raíz de unas declaraciones de Bob Muglia, presidente de la división de Server and Tools en Microsoft.

    Muglia le afirmó: “Silverlight is our development platform for Windows Phone … Silverlight also has some “sweet spots” in media and line-of-business applications”

    Esta sumada a otras frases desafortunadamente extraídas del contexto hizo parecer el artículo como una clara afirmación del presidente, en la que se indicaba que básicamente Silverlight entraba en decadencia. Sin mencionar que el PDC estuvo muy concentrado en la novedad IE9+HTML5.

    A partir de entonces se inició una revolución en el social media que durante todo este tiempo ha estado precedida por aquellos que de un modo u otro sienten amenazada a la plataforma Silverlight por el advenimiento de HTML5 y el fuerte apoyo demostrado abiertamente por Microsoft a esta tecnología. En esta euforia los desertores de Silverlight comenzaron a publicar por los cuatro vientos que era el fin de la plataforma y demás…

    Ya en varios medios menos formales que este, yo había comentado el total desacuerdo con todas esas opiniones y enumerado ciertos motivos para estas afirmaciones.

    Hoy Bob Muglia anunció oficialmente cual es nuestra postura al respecto y por ende me permito hacer más públicas y formales mis apreciaciones al respecto que como es de esperarse van en favor del futuro de Silverlight, de la mano de los intensos avances que hemos tenido en HTML5 tras la persecución de nuestra meta de ser los mejores implementadores de HTML5 en el mercado; cosa que ya estamos logrando con resultados muy positivos aún en pruebas tan estrictas y objetivas como la de W3C en la cual estamos en el primer lugar con Internet Explorer 9 en el Platform Preview número 6.

    1. Primero comencemos por lo sucedido en el PDC:

    No se mencionó mucho, la verdad… pero son de esas cosas que pasan. Silverlight va por su buen camino al éxito y para este evento desafortunadamente no hubo un nuevo release. Pero señores: En qué tecnología se hizo el streaming del evento? No fue exitosa esta transmisión? Todo el mundo pudo estar siguiéndolo en tiempo real gracias a Silverlight. Con un reproductor inigualable que difícilmente se puede lograr usando mero HTML5 en el cual podíamos ecoger hasta el audio de la traducción simultánea o intercambiar entre la presentación y el speaker para ver a uno u otro más grande. Todo esto apoyado por el Smooth Streaming de IIS7 que nos permite ver videos Silverlight aún en dispositivos que no aceptan ni siquiera Flash como el IPhone (si tienes IPhone chequea: http://iis.net/iphone para comprobarlo). Si quieren crear reproductores tan avanzados como este lo pueden hacer sin ningún problema gracias a que hay todo un framework gratuito y disponible para generarlos muy fácilmente: Silverlight Media Framework 2.0

    image

    2. Cuál es la experiencia de cliente más enriquecida posible?

    Es Silverlight. Microsoft que es quien ha avanzado más en el tema de HTML5, aún no logra toda la versatilidad que tiene Silverlight y de hecho no lo hará, porque HTML5 siempre tendrá la desventaja de tener que reducir sus funcionalidades a un mínimo común denominador, para permanecer estándar. Y esto sucederá con todos los proveedores de HTML5.

    Hoy en día. Silverlight provee experiencias Premium en cuanto al manejo multimedia que difícilmente se podrán encontrar en HTML5 como estándar pasados varios años:

    • Teleconferencia con webcam/micrófono
    • Aplicaciones de Video por demanda con funcionalidad DVR y protección de contenido (Netflix servicio del que soy asiduo y feliz usuario ya que me deja ver todas las películas que quiero como si estuviera alquilando DVDs, pero a través de Internet usando Silverlight)
    • Transmisión completa de eventos masivos como el PDC o los Olímpicos de Invierno en 2010 que soportaron hasta 130.000 usuarios concurrentes viendo en promedio 111 minutos de video High Definition de 720p en vivo y en directo por visita., sumando un total de 4.8 millones de visitas durante las transmisiones y todo esto desarrollado solo en dos semanas… podrá HTML5 llegar a esto poniendo de acuerdo a todos los participantes de la industria? De hecho no se de un caso similar a este logrado con Flash… ustedes sí? Les agradecería me informen…
    • Por si fuera poco, estas transmisiones se pueden emitir a computadores de escritorio como aplicaciones únicas o como embebidas en el browser, a WP7, a IPhone y IPads y hasta a la XBOX, en el caso de Netflix. (HTML5 por definición nunca se acercará a eso)


      • Otros elementos no contemplados en el road map de HTML5 y que Silverlight sí soporta:
        • Video de Alta definición (HD) H.264 and VC-1
        • Protección de contenidos con DRM
        • Video estereoscópico 3D (con el que se transmitió la Nascar Sprint Cup Series de este año en compañía de los desarrollos tecnológicos de NVIDIA 3D Vision) y a través del cual lo usuarios pudieron experimentar video 3D real dentro de su browser, abriendo una posibilidad sin precedentes a nuevos canales y formas de transmisión.
        • Multicast
        • Soporte a broadcasting en vivo
        • Smooth Streaming (transmisión de video que se adapta a las condiciones de red para no producir cortes en los videos)
        • Picture in Picture
        • Soporte a herramientas de análisis que permiten integrar inteligencia de negocio dentro de las aplicaciones Silverlight gracias al Silverlight Analytics Framework

    • Multi hilos para el manejo de la respuesta de interfaz de usuario
    • 3D en perspectiva
    • Los mejores diseñadores y herramientas: Expression Blend, Visual Studio.

    • Para aplicaciones empresariales:
      • Más de 60 controles pre construidos
      • Herramientas y frameworks de productividad (RIA Services)
      • Aprovechamiento del gran performance de .NET y C#
      • Controles de visualización de datos súper avanzados como el Silverlight PivotViewer
      • Soporte flexible a datos: Databinding a objetos de memoria, XML, XML binario, LINQ, Storage Local

    • Impresión Virtualizada
    • Manejo de COM!!!

    Otros escenarios más simples sí son soportados por ambas tecnologías sin problemas… pero que hay del rendimientos y la calidad?

    Rendimiento:

    clip_image001

    Silverlight es el runtime más veloz en la web gracias a estar basado en el CLR.

    Calidad:

    Miren como se ve la misma figura trazada con HTML5 en varios browsers

    clip_image002

    Tiempo:

    clip_image004

    En mucho menos tiempo del que HTML5 ha estado en desarrollo sin ni siquiera la primera versión, Silverlight ha sacado a flote 4 versiones y aún hoy en día sigue sin conocerse cuando se oficializará HTML5 y de acuerdo a todo lo que se necesita para lograrlo, todavía falta más que un poco.. mientras tanto Silverlight seguirá en producción activo en los sistemas operativos y browsers más populares y progresando cada vez más.

    Más allá del Browser:

    Silverlight no es solo un plugin… es todo un concepto y una plataforma para lograr interoperabilidad no solo a nivel de sistemas operativos o browser, sino de dispositivos también. Silverlight se puede hospedar en el browser o fuera de él como una aplicación de escritorio no solo en Windows sino en MAC o Linux. Soporta todos los browsers más populares y por si fuera poco, es la plataforma de desarrollo para el Windows Phone 7 y el futuro es muy prometedor para otras plataformas, como los mismos dispositivos para nuestras salas de estar, por no decir televisores que reproducirán contenido Silverlight gracias a tecnologías ya existentes como Systems-on-a-chip (SoC) que nos han permitido generar demos completamente funcionales con TVs, BluRay y otros dispositivos de consumidor final.

    Así que si como desarrollador tú aprendes Silverlight, de inmediato de conviertes en un desarrollador para móviles y para electrodomésticos de consumo masivo, uniéndote a los más de 600.000 desarrolladores en el mundo que saben programar con esta tecnología que ya está en cerca del 65% (a pesar de su corto tiempo de vida) de las máquinas en el mundo: 600.000.000.

    Si todo esto es tan maravilloso, entonces por qué nos enfocamos en HTML5?

    La cantidad de dispositivos diversos en el mundo está creciendo exponencialmente. Así que tener una implementación “propietaria” en todos es casi imposible. En este caso es mucho más conveniente que todos esos dispositivos estén preparados para ejecutar un estándar global como lo pretende ser HTML5. Como tarde o temprano esto va a suceder, Microsoft se ha propuesto ser el mejor implementador de este estándar para cuando esto suceda; pero recordemos que alcanzar un nivel de estandarización tan alto requiere que la tecnología se baje a un mínimo común denominador… que en el caso de HTML5 no es tan mínimo pues la idea es que soporte muchas funcionalidades de presentación gráfica avanzada, pero que comparadas con las que tiene Silverlight, son muy difíciles de igualar.

    En palabras de Muglia “Silverlight nunca ha querido reemplazar a HTML en ninguna de sus versiones, pero su objetivo sí es hacer las cosas que no puede hacer HTML y otras tecnologías y hacerlo en una manera que es muy fácil e implementar para los desarrolladores. Hoy en día está instalado en 2/3 de los computadores del mundo y 600.000 desarrolladores la usan actualmente. No se equivoquen, nosotros continuaremos invirtiendo en Silverlight y habilitando a los desarrolladores para construir aplicaciones grandiosas con esta tecnología en el futuro… bob”.

    Go Silverlight, go! ( hand in hand with HTML5 Winking smile)

  • WarNov Developer Evangelist

    Problemas de Modificación de Tooltip en Silverlight?

    • 2 Comments

    Estaba escribiendo una aplicación en Silverlight que tenía que cambiar el Tooltip de acuerdo al idioma escogido. Obviamente esto se hace programáticamente, pero observé que en ocasiones los cambios no se ejecutaban de acuerdo a lo que decía el código. Después del tradicional “cacharreo” observé que el Tooltip no  se actualiza, si al control en tiempo de diseño se le fue asignado un Tooltip en particular. Así que si desea que el tooltip siempre se actualice, asegúrese  de que el control en tiempo de diseño tiene el tooltip en Nulo. Ojo: Nulo. No se vale que luego de haberlo inicializado en tiempo de diseño, use por ejemplo Blend para modificar el tooltip borrando el que ya había, pues esto nos deja un tooltip con cadena vacía, que tampoco dejará actualizarlo con código.



  • WarNov Developer Evangelist

    Programando desde varias máquinas sin TFS

    • 3 Comments

    Esta técnica solo es recomendable si es un proyecto que lleva usted solo (es decir no un equipo). Es muy sencillo. Solo es necesario usar Live Mesh para mantener sincronizadas las carpetas. Yo la uso porque tengo varias máquinas (en la casa, la oficina, etc.) Pero existen ciertas situaciones que hay que tener en cuenta:

    Hoy por ejemplo no podía ejecutar mi aplicación por este error:

    The located assembly's manifest definition does not match the assembly reference

    Sucede que mi app estaba buscando una versión de DLLs errada.

    Luego de mucho “cacharrear” encontré que esto sucede porque se copian las dlls de otras máquinas en la que esta ejecutándose el Live Mesh. Para solucionarlo, basta con eliminar todas las dlls producto de la compilación de nuestra solución y volverlas a generar.

    Estaré actualizando este post con más incidencias de esta modalidad.



  • WarNov Developer Evangelist

    Sesión Ejecutiva para Empresas de desarrollo a la medida en Azure

    • 5 Comments

     

    image

    Este mismo evento lo tendremos en Medellín:

    image



  • WarNov Developer Evangelist

    Resultados del ICFES: Ahora sobre Windows Azure

    • 11 Comments
     

    Es hasta el momento la aplicación más grande en el país, montada sobre Windows Azure y es para mí muy agradable declararla como mi primer pequeño hijo Azure, luego de linear la arquitectura de su funcionamiento y de haber pasado derecho 24 horas programándola. Esto, dado que empezar de ceros y terminar en tiempo record, pues existían ciertos problemas con la anterior plataforma entre ellos la incapacidad de re direccionar correctamente al sitio original del ICFES para mostrar información distinta a la de los resultados y también el precio que en total es más de 8 veces más alto que el logrado con Windows Azure (de cerca de US$25.000 pasamos a US$3000: exagerando)

    Todo comenzó con la noticia de que uno de nuestros principales socios de negocio certificados: ASESOFTWARE (CMMI 5) estaba interesado en desarrollar la plataforma que serviría para presentar los resultados del Examen de Estado ICFES a la nación colombiana (600.000 resultados). Al oír esto, de inmediato me desplacé a sus instalaciones para apoyarlos en este proceso.

    Fue una misión compleja. Estábamos sobre el tiempo y necesitábamos salir al aire lo más rápido posible. Sin embargo es esto mismo lo que demuestra las bondades de Azure, que nos permiten aprovechar todos los conocimientos que ya tenemos sobre .NET y sumados a algo de teoría de Cloud Computing nos permiten salir muy rápido a producción. Gracias al empeño y gran experiencia en desarrollo de ASESOFTWARE pudimos aprovechar y capitalizar todas estas ventajas.

    Básicamente necesitábamos subir esa gran cantidad de data a la nube, y crear una aplicación web bajo los lineamientos del ICFES para mostrarlos al público.

    image

    Análisis de la solución:

    Necesitábamos una capa de alimentación de datos, otra capa de negocio para implementar la lógica y finalmente una capa de presentación Web para los usuarios finales. Nótese que en este caso no necesitamos una capa de servicios, dado lo puntual de la solución. Si se hubiese necesitado igual no habría habido ningún problema porque Windows Azure está totalmente preparado para estos casos.

    Capa de Alimentación de Datos

    La decisión más simplista, hubiese sido usar SQL Azure y subir todos los datos a la Base de Datos en la nube. Esto se hubiese podido hacer con Integration Services y se hubiese podido obtener un resultado más que aceptable.

    Pero en Windows Azure existe el storage nativo en tablas no relacionales. Un tipo de almacenamiento que se ajusta perfectamente a requerimientos como este en el que solo es necesario tener datos estructurados que no se relacionan con tablas adicionales. Un claro ejemplo de una base de datos NOSQL. SQL Azure está más enfocado a servir como Base de Datos a aplicaciones altamente relacionales y transaccionales cuyo modelo de operación es difícilmente concebible con tablas sin integridad referencial (ERPs, CRMs, etc.) Entonces para qué incurrir en los altos costos de SQL Azure sin necesidad? SQL Azure es 66 veces más costoso que el almacenamiento en tablas de Windows Azure (US$0.15 por Gb por mes). Y esto es apenas lógico, dado que por debajo existe todo un motor relacional que administra la integridad referencial, la ejecución optimizada de consultas y un sinfín de aspectos adicionales.

    Esto, sin mencionar que las tablas tienen un rendimiento mayor a SQL Azure, dado que su acceso se hace directamente sin pasar por un motor de validaciones adicional. Y por otro lado, son altamente escalables, desde que una vez definida una columna de partición en nuestras tablas, Windows Azure encarga de distribuir automáticamente los datos en distintos nodos físicos, de manera que el acceso siempre es lo más optimizado posible. En este caso por ejemplo, hicimos particiones por colegios. Así que los resultados de cada colegio se almacenaron en una partición distinta sin mayor esfuerzo. Por si fuera poco, cada registro grabado en una tabla de Windows Azure, queda respaldado con otras dos copias de seguridad, para brindar redundancia. Esto se ejecuta sin costo alguno (tiempo, dinero, o programación) además sucede lo mismo con los blobs, las colas y el mismo SQL Azure.

    Así pues, procedí a crear un aplicativo Windows que tomaba la información de resultados del ICFES y la llevaba hasta la nube.

    Capa de Negocio y Presentación WEB

    El equipo de desarrollo de Asesoftware tomó una interfaz de acceso a datos Web que ya existía y le hizo la adaptación para consultar los datos de las tablas. Estos datos eran presentados en formato HTML y también sirvieron para construir un PDF que se distribuye a los usuarios de la aplicación que contiene el boletín con los resultados del examen. Estos PDFs luego de ser construidos, se almacenan en el espacio de BLOBs de Windows Azure, que también nos brinda unos costos súper bajos de almacenamiento (US$0.15 por Gb).

    En estas capas hubo que tener en cuenta ciertas consideraciones, como por ejemplo el manejo de las interfaces con los esquemas de almacenamiento de Windows Azure, los modelos de redirección de la aplicación al dominio original, etc. En general estrategias puramente técnicas que ya he publicado en mis artículos de Windows Azure dentro de este blog, o que estaré publicando próximamente.

    Solución Desplegada

    Siendo sinceros, esta solución fue desplegada en Azure con una estrategia de sobre-estimación dado que es la primera vez que se sale al aire con un proyecto de esta magnitud en el país y se quería prevenir cualquier eventualidad que pudiera dar una mala imagen de la plataforma. Fue así como la solución se desplegó en cuatro WebRoles de tamaño grande (CPU: 1.6Ghzx4, RAM: 1.7Gbx4) lo que al final nos da una capacidad de 25.6GHz de procesamiento en conjunto y 27.2GB de RAM. En realidad estimo que para la situación actual, sería suficiente con el 70% de esta capacidad. Pero gracias a los precios de Azure, se pudo establecer este esquema holgado, sin un mayor impacto a la inversión. Además, en las noches cuando hay menos carga, se bajan máquinas para disminuir los costos. Por eso, cuando hablé de un total de US$3000 para tener la aplicación desplegada durante una semana, dije que estaba exagerando. En realidad el costo es menor. Recuerden que el costo antes de Azure también por una semana estaba alrededor de los US$25.000!

    Conclusión

    Windows Azure permitió a ASESOFTWARE sacar en muy corto tiempo (contra reloj) una aplicación de consumo masivo para un gran cliente como lo es el ICFES que ha respondido y superado perfectamente sus expectativas, con unos costos muchísimo menores (8x) y también con la ventaja de que la solución final es totalmente dinámica en su despliegue permitiendo pagar solo lo que se consume, sin necesidad de contratos o tarifas planas que pueden generar desperdicios en la inversión de capital para el cliente.



  • WarNov Developer Evangelist

    PDC 2010 en Colombia!

    • 0 Comments

    El PDC es el evento más importante para Desarrolladores Profesionales en el mundo. Este año por primera vez se estará emitiendo masivamente a través de transmisiones online y además con réplicas en los principales países de la industria de Software, entre ellos Colombia.

    En esta imagen encuentran la información del evento y dando clic sobre el mismo serán transferidos a la página de registro gratuito.

    PDC 2010 Colombia



  • WarNov Developer Evangelist

    Beneficios de Windows Azure para MSDN y Bizspark

    • 12 Comments

    Los suscriptores Premium, Ultimate y Bizspark de MSDN tienen 16 meses de suscripción gratuita a los servicios de Windows Azure. A partir de noviembre los suscriptores MSDN Professional también la tendrán.

    Qué se debe hacer? para activar este beneficio?

    Si usted es suscriptor a MSDN y aún no ha comenzado a disfrutar de este beneficio visite este sitio para conocer todos los detalles.

    image

    A continuación una guía detallada de cómo acceder a estos servicios:

    Podemos llegar hasta aquí desde MSDN a través de la suscripción a la que tengamos Acceso:

    image

    Luego de esto pasamos a esta pantalla. Dele un nombre a su futura cuenta de Windows Azure, lea y acepte los términos de servicios si lo desea y de clic en siguiente:

    image

    Después, introducimos nuestra identificación y datos de tarjeta de crédito (con fines de identificación personal, pues esta tarjeta no es cargada si los consumos se ajustan a lo establecido dentro de la oferta. Si los consumos exceden a los límite0s de la oferta, en ese caso sí serán cargados)

     image

    Finalmente, tras la validación de la tarjeta de crédito y nuestra identificación personal, pasamos a la confirmación de la adquisición de los servicios. Leemos el contrato de licencia y su deseamos hacemos la compra:

    image

    Esto nos lleva a la sección de Check Out donde se hace efectiva definitivamente la transacción. Chequeamos la marca en la que confirmamos que sabemos que si excedemos los límites de la oferta, estos serán cargados a la tarjeta de crédito:

    Nos aparece entonces una confirmación como esta. Aquí confirmamos la orden.

    9. En la siguiente pantalla, activamos el servicio:

    Aquí se nos confirman los datos de nuestra suscripción y damos Finalizar:

    Luego recibiremos un mensaje de confirmación similar a este:

    Luego abrimos el portal del desarrollador de Windows Azure (http://windows.azure.com) usando el Live ID empleado para la suscripción y veremos nuestro nuevo proyecto de Azure listo para ser trabajado!

    Otra forma de llegar hasta la suscripción:

    1. Visite el portal de  servicios online de Microsoft (Microsoft Online Services Customer Portal (MOCP)). Cambie el país a Colombia, el idioma a español y haga clic en la opción continuar, para pasar a la página Primeros Pasos:

    .image

    En esta página haga Sign in con su Windows Live ID, y luego haga clic en el tab de Servicios  y allí haga click en Comprar ahora en la sección de ofertas especiales

     image

    image

  • WarNov Developer Evangelist

    Web Camp Colombia 2010

    • 12 Comments

    Las inscripciones para este evento ya están abiertas aquí

    Siento un gran agrado al poder estar organizando el primer evento en Colombia en el que estaremos tratando durante un día completo temas relacionados con desarrollo Web usando estándares y empleando tecnologías y herramientas de Microsoft que lo mejor de todo: SON GRATUITAS

    Los Web Camp son eventos patrocinados por Microsoft que se realizan por todo el mundo y en esta ocasión el turno le ha tocado a Colombia.

    Flair002Flair005

    Es así como el 30 de Noviembre en las instalaciones de Microsoft Bogotá, estaremos llevando a cabo este evento todo el día en en 6 salas distintas simultáneamente, desarrollando un track diferente en cada una de ellas:

    1. WebPI: WebMatrix y CMS Kentico
    2. Windows Azure
    3. IE9 & HTML5
    4. MVC2
    5. REST+JQuery+OData
    6. ASP.NET4

    La parte teórica de los tracks será transmitida gratuitamente vía LiveMeeting a través de 6 hilos de transmisión distintos.

    La jornada que comienza a las 8.30am con el registro y se prolonga hasta las 4pm, se divide en dos grandes etapas: La primera comprende presentaciones teóricas y demos y la segunda comprende laboratorios guiados en los que los asistentes podrán practicar todo lo aprendido con la guía del speaker especialista. Por este motivo, es recomendable que los asistentes permanezcan en un solo track durante todo el día.

    Tendremos la siguiente agenda tentativa para cada uno de los tracks:

     

    Flair001

    8.30 – 9.00 Registro
    9.00 – 10.40 Primera Charla
    10.40 – 11.00 Break (Incluido)
    11.00 – 12.00 Segunda Charla
    12.00 – 13.00 Almuerzo (Incluido)
    13.00 – 15.45 Laboratorios
    15.45 – 16.00 Evaluación Evento y Cierre

     

     

    Como ven, habrá break y almuerzo incluido y es necesario traer laptop para los laboratorios. Posteriormente cuando abramos las inscripciones para el evento, especificaremos los requerimientos necesarios para cada track. Por si fuera poco, para los emprendedores vamos a tener la posibilidad de entrar en los programas de emprendimiento de Microsoft llamados WebSiteSpark y BizSpark a través de los cual tendremos acceso a licencias de herramientas Microsoft para el desarrollo de aplicaciones web, soporte y visibilidad.

    WebSiteSpark:

    BizSpark:

     

    Nuestro Request for Speakers ya ha cerrado y estos son los confirmados:

    JQuery, REST, JSON

    Frank Silva

    Windows Azure

    Gerardo Ramos

    IE9, HTML5, CSS3

    Juan Carlos Ruiz Pacheco

    MVC 2 (3)

    Hugo Zapata

    ASP.NET 4

    Roberto Alvarado

    WebPi: WebMatrix y Kentico

    Marylin Alarcón

     
    Las inscripciones para este evento ya están abiertas aquí
     


  • WarNov Developer Evangelist

    Silverlight Tour–Bogotá, Colombia (20Oct–22Oct 2010)

    • 1 Comments

    SLT_Trans

    El Curso de Silverlight que Ha dado la Vuelta al Mundo: el Silverlight Tour regresa a la capital Colombiana del 20 al 22 de Octubre 2010!

    El Silverlight Tour es un curso de tres días acerca de Silverlight 4: a detalle, con mucho código y una gran cantidad de conceptos técnicos y de arquitectura que todo desarrollador profesional de Silverlight (y claro, de Windows Phone 7) debe conocer a profundidad.

    Tip: esta fecha para Bogotá cuenta con una magnífica promoción que no querrán dejar pasar Smile así que les recomiendo aseguren su lugar registrándose en el sitio del curso.

    image

    Sí: Colombia es Pasión y Silverlight también! Winking smile

    Los esperamos!



  • WarNov Developer Evangelist

    Windows Azure Interoperable

    • 2 Comments

    Windows Azure, la plataforma de Cloud Computing de Microsoft, esta diseñada para permitir interactuar con plataformas y lenguajes que no tienen que ser siempre Microsoft. Veamos de que se trata en este corto video.

    Script del Video:

    Microsoft provee la tecnología más actualizada que ayuda a las empresas del mundo a mejorar sus negocios. Así como Windows ofrece una plataforma que permite desplegar tecnologías Microsoft y No Microsoft, la plataforma de Windows Azure provee un ambiente flexible para desarrollar aplicaciones y servicios en la nube.

    Como sabemos, Windows Azure es un sistema operativo que facilita el desarrollo, y de aplicaciones basadas en Cloud Computing. De esta manera, nos permite desarrollar, hostear y administrar servicios y aplicaciones en la nube.

    Esta plataforma de cloud está diseñada para maximizar la interoperabilidad

    Usando herramientas de Windows Azure y ambientes de desarrollo como Visual Studio, Framework .net, Eclipse, PHP y Java, se pueden crear aplicaciones portables que corren en Windows Azure.

    Windows Azure soporta protocolos de internet muy usados tales como HTTP, REST, SOAP y XML. Así aseguramos portabilidad de datos desde ambientes de desarrollo externos.

    Microsoft ofrece recursos de Windows Azure que son OSS útiles por ejemplo para hacer integración de ambientes de desarrollo como Eclipse de manera tal que se ofrecen una serie de wizards y utilidades para escribir, depurar. configurar y desplegar aplicaciones PHP a Windows Azure.

    En cuanto a lenguajes de programación el Windows Azure SDK para  PHP ayuda a los desarrolladores PHP a crear aplicaciones web basadas en PHP que pueden correr en Windows Azure y los desarrolladores JAVA pueden usar el SDK para JAVA, y usar los servicios de almacenamiento de Windows Azure para almacenar datos de sus aplicaciones.

    Adicionalmente, Windows Azure también ofrece el Windows Azure Tomcat Accelerator para desplegar soluciones Java basadas en Tomcat en Windows Azure. Esto comprende básicamente subir los ejecutables del servidor de Tomcat a la nube para poder desde Windows Azure ejecutar aplicaciones Java.



  • WarNov Developer Evangelist

    Llenar celdas vacías en Excel con 0

    • 5 Comments

    Nosotros developers en determinado momento tenemos que lidiar con hojas de calculo. Aquí un pequeño tip que nos puede ayudar mucho.
    Como llenar un conjunto disperso de celdas vacías con un valor o formula dado? Por ejemplo con ceros?
    En este video se muestra de una manera muy rápida.
    Enjoy!

     



  • WarNov Developer Evangelist

    Aprender Azure podría significarte una XBOX de última generación más un Kinect!

    • 4 Comments

    Microsoft Virtual AcademyDescarga el trialMicrosoft Activa

    Aquí mismo en mi blog encuentran más recursos para aprender!



  • WarNov Developer Evangelist

    WebMatrix: Fast & Free Web Development

    • 9 Comments

     

    Update: Hoy 6 de Octubre salió al aire el Beta 2 de WebMatrix.  Se espera la versión final para fin de año. En conmemoración les comparto un libro que se está editando y nos enseña la sintaxis Razor, y además la presentación que uso cuando muestro este producto.

    Visual Studio .NET es la herramienta mas poderosa para desarrollar virtualmente cualquier tipo de aplicaciones para computadores.
    Pero cuando somos novatos en la programación, entrar a un Visual Studio a desarrollar se siente como meterse a la cabina de un Airbus A380 a pilotearlo…

    Para aprender a pilotear, sería mejor en un Cessna que tiene solo los controles básicos y nos permite ir aprendiendo sin abrumarnos con tantos controles.

    Hoy en día Microsoft tiene para nosotros un conjunto de herramientas GRATUITAS que nos permiten entrar al mundo de desarrollo Web de una manera bastante sencilla y rápida.

    WebMatrix

    Contiene todo lo necesario para desarrollar aplicaciones web:

    •Free

    •Liviano

    •IIS Developer Express como Servidor Web

    •ASP.NET como framework tecnológico ahora presentando a RAZOR: una sintaxis para programar de una manera más sencila

    •SQL Server® Compact como motor de base de datos

    •IDE para edición de páginas web.

    A continuación para mostrar la agilidad de la herramienta, les muestro un video en el cual construyo una aplicación que accede a Twitter y nos muestra el feed de una persona en particular. Más adelante vendrán más posts mostrando más características de WebMatrix.

    Update: Hoy 6 de Octubre salió al aire el Beta 2 de WebMatrix.  Se espera la versión final para fin de año. En conmemoración les comparto un libro que se está editando y nos enseña la sintaxis Razor, y además la presentación que uso cuando muestro este producto:

     

    Para aprender más de WebMatrix no se pierda nuestro Web Camp Colombia 2010.

  • WarNov Developer Evangelist

    Windows Azure: Compilado de Recursos

    • 3 Comments

    A continuación les presento un conjunto de recursos acerca de Windows Azure que aplica sobretodo a la audiencia hispana.

    La primera, es una presentación de PowerPoint que da un recorrido global sobre la plataforma. El segundo recurso precisamente es un video donde hago la presentación de estos slides, de tal manera que les permitirá tener un mayor sentido de la presentación.

    El tercer punto presenta todos los artículos de este blog, relacionados con Windows Azure, desde el último hasta el primero. En general es buena idea que si están comenzando con esta plataforma, comiencen a leer desde el primero, ya que progresivamente va subiendo el nivel técnico de estos artículos.image

     

     

    Herramientas

    1. Cliente WPF para Administración de Blob Storage
    2. Windows Azure Service Management CmdLets
    3. Explorador de Tablas Azure Online
    4. Sitio de cmdlets de Azure para PowerShell

    Para finalizar, si tienen preguntas acerca de Windows Azure, tras algún evento, este es el post en el que en los comentarios las pueden anotar, y con mucho gusto trataré de resolverlas!

    Gracias por Asistir!

  • WarNov Developer Evangelist

    High Performance Computing (HPC) y Windows Azure

    • 0 Comments

    Como bien lo dice el título de este artículo, hablo básicamente de dos cosas: HPC y su relación con Windows Azure. Si ud quiere saber de Windows Azure antes de leer este artículo, le recomiendo mis posts introductorios. Si ud quiere saber de HPC y la alternativa que ofrece Windows en este sentido le recomiendo que lea la primera parte de este artículo. Y si quiere saber la relación entre HPC y Windows Azure, le recomiendo la segunda parte del post.

    image

    Primera Parte: HPC

    En la vida real existen aplicaciones de software que definitivamente no pueden ejecutarse en un ambiente de cómputo tradicional y tampoco en un ambiente de cómputo avanzado tradicional (esto es un servidor de grandes características)

    Cálculos científicos como por ejemplo análisis para la creación de una nueva medicina, el estudio del genoma humano, aplicaciones financieras para ejecutar estudios de riesgo sobre cantidades de datos descomunales, predicción del comportamiento de acciones en las bolsas de valores… todo esto requiere de capacidades de cómputo que sobrepasan cualquier procesador que se pueda comprar en Unilago (léase centro comercial temático de computadores) o encargar a Dell por ejemplo a través del sitio web.

    Los cálculos que hacen las CPUs se miden en FLOPS (FLoating point Operations Per Second). Una calculadora decente trabaja con 10FLOPS.

    En general los procesadores de nuestros computadores hoy en día generan de 0.5 a 120 GFLOPS de poder de cómputo. 1 GFLOPS = 10e9 FLOPS

    Pero procesos como la simulación de la dinámica molecular no se pueden terminar en corto tiempo ni siquiera con el poder de 6 PFLOPS = 6 millones de GFLOPS o lo que es equivalente a 6 millones de PCs trabajando juntos para lograr el mismo objetivo.

    Para el caso de la resolución de estos procesos complejos, se han abordado dos soluciones. La primera son los supercomputadores y la segunda son los clústeres de cómputo. Ambas soluciones hacen parte de lo que conocemos hoy como High Performance Computing o HPC.

    La primera tiene grandes limitaciones físicas, pues no podemos construir un solo procesador con una capacidad tan grande como la requerida. Resultaría súper costoso y poco eficiente. Así que los supercomputadores son escasos y limitados.

    La segunda opción, es tratar de emular a un solo procesador gigantesco, mediante la unión de recursos de cómputo que se encuentran distribuidos en unidades independientes de cómputo, que se comunican a través de redes. Esta opción es más viable que la primera y básicamente viene en dos sabores.

    El primer sabor es el restringido a una red homogénea. En general es una LAN o VLAN con máquinas del mismo tipo bajo un mismo sistema operativo. Los desarrollos y administración de este tipo de ambientes son sencillos, pero tienen la limitante que no se podrían conectar con el resto de capacidades de cómputo que tiene el mundo. En general estos sistemas se conocen como Clúster Computing.

    El segundo sabor comprende aquel en el que los nodos que componen la súper máquina se encuentran en distintas redes o dominios administrativos con diferentes características de hardware, sistemas operativos y demás, conectados generalmente a través de internet. La administración es más complicada, pero tenemos la ventaja de poder obtener cómputo de todo el mundo para lograr el resultado buscado. Este tipo de solución se conoce como Grid Computing.

    Hoy en día la mayor capacidad de cómputo alcanzada por un sistema de Grid Computing es de 6PFLOPS precisamente alcanzada por el proyecto Folding@Home que hace simulaciones moleculares. Las máquinas empleadas en este tipo de cómputo son PCs de usuarios como ud o como yo que descargan un cliente que aprovecha los recursos no usados de la CPU para procesar unidades de trabajo en background que luego de ser procesadas se reenvían al servidor central.

    Este tipo de aplicaciones siempre han estado en el ámbito científico súper especializado y acaso en aplicaciones financieras de altísimo nivel.

    Ahora sin embargo no es necesario estar haciendo un doctorado en mecánica cuántica para entrar en este mundo. El mero hecho de crear una aplicación de análisis de redes sociales, podría requerir HPC.

     

    Pero cómo desplegar una solución HPC?

    Gracias a Windows Server 2008R2, es muy sencillo. Si ud tiene una licencia de este OS, ya puede activar los servicios de HPC que vienen con la licencia, para poder conectarse con otras máquinas y distribuir su súper aplicación en el clúster de su compañía. Y si requiere de más cómputo en ambientes heterogéneos y en otras ubicaciones geográficas, entonces gracias a las características High Performance Computing Basic Profile (HPCBP), un estándar del Open Grid Forum para poder conectar clústeres heterogéneos en ambientes HPC podrá expandir sus límites mundialmente.

    Siendo relativamente nuevo en el mercado de HPC, Windows HPC Server 2008 se posicionó en el ranking mundial Anude sistemas de cómputo HPC en la casilla 19 con una capacidad de 180.6 TFLOPS que es aproximadamente igual a 18000 PCs de escritorio de las más potentes hoy en día.

    image

    Segunda Parte: HPC y Windows Azure

    Windows Azure se distingue sobre todo por sus capacidades de escalamiento instantáneo cuando las aplicaciones así lo requieran. Sin embargo desde su concepción, estuvo dirigido a aplicaciones de negocio y no a HPC. No obstante, cuando uno quiere desarrollar una aplicación HPC por ejemplo para el departamento financiero de un Banco y ve la arquitectura de Windows Azure no puede evitar pensar que sería el mejor modelo para hacer HPC “por demanda” sin necesidad de invertir miles de dólares en unidades de cómputo que solo serán necesarias por un tiempo determinado.

    El modelo de Azure nos permitiría por ejemplo tener nuestro Servidor de HPC local en nuestras instalaciones por ejemplo, pero las unidades de cómputo estarían en la nube y aprovisionaríamos tantas como necesitemos solo por el tiempo necesario!

    Qué se necesita entonces para correr HPC en Windows Azure?

    Las instancias de cómputo en Windows Azure corren sobre versiones virtualizadas de Windows Server 2008R2x64. Así que lo único necesario es activar el servicio de HPC en esas instancias y ya estarán listas para unirse al objetivo común, al servicio del servidor principal que estaría on-premises.

    La buena noticia, es que los servicios HPC ya están activos en las instancias de Azure, listos para que las instancias identificar cuando se les están enviando peticiones para trabajos de HPC. De esta manera, aplicaciones financieras, de industria farmacéutica, científicas y demás, podrán generar un sistema HPC con un servidor local y levantar cuántas máquinas sea necesario en la nube y solo serán cargados los costos consumidos. Nada de comprar máquinas ni pagar tarifas planas. Todo será cobrado dinámicamente de acuerdo al consumo de cómputo con los estándares de cobro de Windows Azure. (Hoy en día una hora de proceso en Windows Azure con una CP de 1.7GHz de velocidad nos cuesta 12 centavos de dólar).

    Así que si usted tiene este súper sistema en mente con necesidades de HPC para poderlo desplegar y no lo ha podido sacar a la luz porque la inversión inicial es extremadamente alta, piense que Windows Azure ya admite HPC y que además le convierte toda la inversión de capital inicial (CAPEX) en costos dinámicos operativos (OPEX), brindándole todo lo necesario para que pueda sacar su negocio a producción!



  • WarNov Developer Evangelist

    WordPress & Windows Live: 2 Grandes se Unen

    • 5 Comments

    Siendo realistas a WordPress yo solo le veía un problemita y era que no permitía hacer zoom con el scroll del mouse. Algo mínimo que ya arreglaron. Por supuesto, esto no fue lo que propició la asociación con Microsoft y Windows Live específicamente.

    “#Microsoft NO piensa que el OSS es incompetente. De hecho lo usa, lo apoya y genera OSS y free tools para crearlo.” Ese fue uno de mis twitts respondiendo cierta apreciación que obedece sobretodo a una imagen ya antigua de la forma de operar de la corporación.

    Hoy en día la comunidad es muy importante como generadora de progreso en el mundo. Es por eso que iniciativas no Microsoft y además OpenSource como PHP y ahora WordPress reciben un espaldarazo de la corporación para apoyar su desarrollo y difusión en el mundo. Esto ha sucedido con apoyos financieros, soporte en nuestras plataformas de desarrollo y aún incluyendo productos OSS de terceros en nuestros instaladores.

    En esta ocasión estudiando las necesidades de los consumidores de Windows Live en materia de blogs, Microsoft encontró en WordPress.com una brillante alternativa. Como ya es bien sabido por todos, no se trata de reinventar la rueda.

    image

    WordPress.com tiene todo un conjunto de capacidades impresionantes. Desde una plataforma completamente escalable y una efectiva protección anti-spam hasta una gran experiencia en la personalización de los blogs. WordPress está detrás del 8.5% de la web! Es usado en 25 millones de sitios y es visto por más de mil millones de personas cada mes. Además, Automattic (los padres de WordPress.com) es una compañía en la que sus empleados están enfocados en el arte del blog y cómo mejorarlo continuamente. En definitiva, ellos saben de qué se trata el negocio.

    Así que en vez de que Windows Live invirtiera en crear un servicio de Blog nuevo, se decidió que lo mejor para los consumidores era proporcionarles el poder de WordPress.com integrado con los mejores servicios de Windows Live a los que ya están acostumbrados.

    Tres aspectos importantes de esta unión:

    · Se ofrecerá un mecanismo simplificado para la migración de los blogs actuales de los usuarios hacia WordPress.com

    · WordPress.com se podrá conectar con Messenger a voluntad, para que nuestros amigos se enteren cada vez que escribimos nuestros posts.

    · A los clientes de Windows Live se les permitirá crear fácilmente blogs en WordPress.com.

    Obviamente las urls de los blogs actuales se mantendrán y se mapearán a la nueva version de la plataforma. Así que no perderán ningún visitante durante el cambio.

    Esta es la pantalla que encontrarán en la migración:

    image

    Otras opciones aparte de la migración están disponibles como descargar todo el contenido del blog, migrar después o sencillamente eliminar el espacio actual. Además hay más información de guía aquí.



  • WarNov Developer Evangelist

    Notificaciones de Consumo para usuarios de Windows Azure

    • 0 Comments

    Para que sea más fácil para los clientes de Windows Azure realizar un seguimiento de su uso de horas de cómputo, ahora estamos enviando a los clientes correos electrónicos con notificaciones, cuando el uso de horas de cómputo excede 75%, 100% y 125% del número de horas incluido en el plan de cómputo.  Los clientes de nuestra oferta de consumo estándar recibirán durante las primeras 13 semanas de su suscripción, alertas por correo electrónico cada semana con el consumo de horas de cómputo de la semana anterior.  Después de este periodo, los clientes recibirán alertas por correo electrónico cuando su cómputo exceda 75%, 100% y 125% de su uso mensual basado en el consumo de los últimos tres meses.  Los clientes también pueden ver su uso actual y el balance no facturado en cualquier momento en el portal de cliente de servicios en línea de Microsoft.  La dirección de correo electrónico que se utiliza para la comunicación es la misma dirección que se utiliza al crear la cuenta de facturación.



  • WarNov Developer Evangelist

    Bing + IE9 en el Futuro Cercano

    • 4 Comments

    Con la aparición de IE9, le damos la bienvenida a un nuevo tipo de motor de búsqueda. Uno que ya tiene la efectividad que siempre esperamos, pero que sobrepasa la edad de piedra gracias a estándares como HTML5 aplicados a herramientas como IE9 en aplicaciones como Bing!

    Si Ud. es Silverlight'er no se preocupe, porque HTML5 para nada significa la desaparición de Silverlight. Este ejemplo nos muestra precisamente un escenario adecuado para HTML5, mientras para Silverlight tenemos escenarios con aplicaciones empresariales que requieren presencia online y una gran integración con el negocio de las compañías y sobretodo una interfaz de usuario inigualable.

    En este video les muestro cómo explotando las nuevas características de IE9 (como el soporte a HTML5 y la integración con Windows 7), podemos lograr una nueva era en motores de búsqueda.

    Disfrútenlo!

     
    Por ahora podrán descargar la beta de Internet Explorer 9 desde AQUI:

    Español: www.labellezadeinternet.com

    Ingles: www.beautyoftheweb.com

     


  • WarNov Developer Evangelist

    IE9 Beta disponible dentro de 45 minutos!

    • 6 Comments

    Es 15 de Septiembre de 2010 y son las 11:15am

    Presentamos la nueva versión de nuestro navegador web: se trata de Internet Explorer 9 (IE9), un explorador pensado para mejorar la experiencia de los usuarios, simplificar el trabajo de los desarrolladores y sacar el máximo provecho a las páginas web.

     

    clip_image001

    Este nuevo explorador se enfoca en cuatro aspectos: rapidez, confiabilidad, sencillez y compatibilidad. En palabras de José Antonio Barraquer, director de Unidad de Negocios de Windows para Microsoft Colombia, “Internet Explorer 9 se apropia de las ventajas del computador para ofrecer una navegación mucho más ágil; tiene una apariencia limpia que da más importancia a los contenidos, mantiene un robusto sistema de seguridad y ofrece un mayor soporte a los estándares modernos de desarrollo en internet”.

    La historia de Internet Explorer se remonta al 16 de agosto de 1995, cuando con la salida de Windows 95 al mercado apareció la versión 1.0 de este navegador. Desde entonces, se han realizado sustanciales mejoras en materia de rendimiento, seguridad y apariencia. Tantas, que hoy, 15 años después, se calcula que el 59 por ciento del tiempo que la gente pasa en un computador Windows es invertido en el explorador de internet.

    ¿Qué es lo nuevo de Internet Explorer 9?

    Más limpio y sencillo

    IE9 se enfoca en los contenidos y en lo que el usuario quiere ver y encontrar, por eso, el número de botones se reduce y el marco del explorador se desvanece en el fondo, trayendo a un primer plano la página que se visita. Algunas de características son:

    · Barra de direcciones inteligente más inteligente: La barra de direcciones y el cuadro de búsqueda se combinan en un solo recuadro desde donde el usuario puede navegar a un sitio, buscar y obtener sugerencias de sus proveedores de búsqueda, tener acceso a su historial y a sus sitios favoritos, etc.

    · Navegación por pestañas mejorada. Un renovado diseño para las nuevas pestañas muestra los títulos de los sitios más visitados por el usuario y permite reabrir las pestañas cerradas recientemente, así mismo permite restaurar las última sesión del navegador y carga páginas y gráficos de una manera mucho más rápida. Además podemos extraer pestañas de una instancia de IE9 y ponerlas en otra instancia!

    · Integración con Windows 7: a través de un pin o alfiler se pueden anclar los sitios web a la barra de tareas, para acceder a ellos con tan solo un clic y sin necesidad de abrir el navegador. Además, con el ajuste de ventanas de Aero Snap, ahora se pueden ver dos pestañas o ventanas al mismo tiempo, sin tener que acomodar el tamaño de cada una de ellas. Crece el botón “Atrás”, mucho más usado que el “Adelante”, para que el usuario vea únicamente lo que es indispensable para su navegación.

    clip_image002[4]

    Más confiable

    IE9 responde a las necesidades de los usuarios en materia de privacidad y confidencialidad, que, según Juan Carlos Ruiz, MVP que ha trabajado mucho con nosotros el tema de IE9, “necesitan algo confiable. Poder concentrarse lo que hacen en internet sin pensar en nada más, o hacer transacciones bancarias sin temor a que los roben”. Por eso, IE9 cuenta con sistemas integrados de seguridad, privacidad y confiabilidad que mantienen seguros a los usuarios y evitan que su experiencia se vea interrumpida.

    En materia de seguridad, Internet Explorer 9:

    · Introduce el Download Manager o Administrador de Descargas: Se trata de una función que permite administrar fácilmente los contenidos que están siendo y han sido descargados y que remplaza el cuadro de “Ejecutar, Guardar como o Cancelar” usado en las versiones anteriores de Internet Explorer. El Download Manager permite, desde una misma ventana, abrir o cancelar cualquiera de las descargas, y escanea cada uno de esos contenidos en busca de virus o archivos ejecutables potencialmente dañinos.

    clip_image004[4]

    · Mantiene la navegación en privado (InPrivate): Es una forma ‘navegar a escondidas’, que permite trabajar en la red sin dejar rastro de las páginas que se visitan o las palabras que se ingresan en los buscadores. Además protege los datos de formularios y las contraseñas, garantizando que su información personal se mantendrá en privado.

    · Mantiene la más alta protección contra el malware: Con filtros como Smartscreen y Anti-pishing que bloquean los mecanismos de suplantación de identidad y software maliciosos, Internet Explorer sigue siendo el navegador más seguro del mercado.

    clip_image006[4]

    Más rápido

    Según Walter Novoa (WarNov), bloguero y Developer Evangelist, “pensando en que a los usuarios nos gusta navegar muy rápido y no podemos esperar montones de tiempo a que las paginas descarguen, Internet Explorer 9 está diseñado para descargar las páginas mucho más rápido que otros navegadores. Además IE9 se aprovecha totalmente del hardware de la máquina, incluyendo la tarjeta de Video para sacarle el máximo provecho a HTML5 por ejemplo”. Algunas de sus novedades en materia de rapidez son:

    · Aceleración por hardware: Actualmente los navegadores usan sólo el 10% de las capacidades del computador, pero IE9 toma ventaja de todo el poder de cómputo de la máquina y del sistema operativo Windows, permitiendo al explorador correr como si fuera una aplicación nativa instalada en el computador.

    · Olvida los Plug-in adicionales: Soporta elementos de audio y video, habilita sombras, video embebido y contenido de audio sin necesidad de un Plug-in adicional.

    clip_image008[4]

    Más compatible e interoperable

    “Muchas de las aplicaciones para desarrollar para internet requieren del uso de aspectos técnicos muy elaborados. La compatibilidad, en estos casos, exige que podamos crear aplicaciones desde diferentes lenguajes que sean interoperables con los diferentes navegadores”, explica Sergio Acosta, experto diseñador, y agrega: “el soporte de HTML5, el nuevo lenguaje de HTML establecido como el nuevo estándar para creación de aplicaciones en internet, permite que todas las aplicaciones se vean exactamente igual y funcionen de la misma manera sin tener que reescribir varias veces el mismo sitio para los diferentes exploradores”.

    Las mejoras de IE9 en materia de interoperabilidad permiten a los desarrolladores enfocarse en crear grandiosas aplicaciones, en lugar de gastar tiempo de creando tres veces el mismo sitio. Dentro de las mejoras en este ámbito se destacan:

    · Soporte HTML5: Haciendo más sencillo el trabajo de los desarrolladores y logrando que su trabajo se vea igual en todos de los exploradores.

    · Compatibilidad con estándares modernos basados en CSS3, DOM L2 y L3, SVG, ECMASScript5, entre otros.

    Pasos para descargarlo

    El beta de Internet Explorer 9 puedes descargarse gratuitamente en castellano desde: www.labellezadeinternet.com Y en ingles http://www.beautyoftheweb.com dentro de 45 minutos (12pm del 15 de Septiembre de 2010)



  • WarNov Developer Evangelist

    Por qué los bloques Try-Catch sí afectan el performance

    • 7 Comments

    He escrito un post en el cual hablo de las Buenas Prácticas en Manejo de Excepciones .Net. Tuve un comentario muy interesante en el cual la persona me mencionaba que contrario a lo que yo afirmé en ese post, los bloques try..catch no generaban mayor impacto en el performance de la aplicación. Y me citó algunos artículos al respecto.

    Aunque los artículos obedecen a pruebas que en ocasiones producen casi los mismos resultados usando o no excepciones, puedo decirles muy respetuosamente que son bastante ingenuos porque no tienen en cuenta la estructura y funcionamiento del framework.net y sobre todo del optimizador de compilación.

    Así pues, les comento que para hacer la afirmación que hice, no ejecuté ninguna prueba. Solo hablé de una conclusión bastante lógica que se tiene al estudiar el comportamiento del optimizador de compilación del framework:

    Tomemos como ejemplo el siguiente código escuelero:
        
       

       1:      int cuenta = 1;
       2:      AlgunMetodo();
       3:      cuenta++;
       4:      OtroMetodo();
       5:      cuenta++;
       6:      Console.WriteLine(cuenta); 

    Cuando esto es compilado, el JIT de .NET efectivamente optimiza todo a:

       1:  AlgunMetodo();
       2:  OtroMetodo();
       3:  Console.WriteLine(3);

    Que obviamente corre enormemente más rápido.

    Sin embargo, para poder mantener las reglas de ordenamiento de memoria distribuida a través de hilos durante el tiempo de ejecución y compilación el CLR deshabilita TODA OPTIMIZACION que afecte el orden de lecturas y escrituras del CIL en los bloques protegidos. Los bloques protegidos conocidos también como regiones protegidas, bloques resguardados o bloques “try”.

    Esto en castellano sencillo nos indica que el JIT no puede optimizar código metido en bloques try..catch. Es por esto que recomiendo reducir el uso de excepciones al mínimo necesario. Y usarlas solo para solucionar problemas no relativos a negocio, que se pueden solventar simplemente con un algoritmo más inteligente.

    También por esto menciono que esos artículos son ingenuos, porque para hacer una prueba fehaciente deberíamos incluir un algoritmo de uso común en el cuál la optimización sí marca la diferencia.

    Así que si usamos el try-catch tendríamos:

       1:      int cuenta= 1;
       2:      try
       3:      {
       4:          AlgunMetodo();
       5:          cuenta++;
       6:          OtroMetodo();
       7:          cuenta++;
       8:      }
       9:      finally
      10:      {
      11:          Console.WriteLine(cuenta);
      12:      } 

    En este caso, al carecer de optimizaciones, la variable inicia con el valor de 1, luego se ejecuta AlgunMetodo(), luego la variable cuenta se vuelve a ajustar, luego OtroMetodo(), luego una tercera actualización y finalmente se escribe el calor de una variable, que cuesta más en ciclos de procesador, que escribir una constante. En síntesis, estamos desperdiciando ciclos.

    Estas optimizaciones que mostré aquí son de las mas sencillas que hace el JIT; pero no son las únicas; existen muchas otras optimizaciones que se pierden dentro de los bloques try..catch. Súmenle a esto le hecho de que efectivamente estas instrucciones consumen más memoria (poca o mucha pero la consumen) y as’;i podrán concluir por qué es mejor usarlas muy prudentemente.



  • WarNov Developer Evangelist

    Correcciones acerca de Documentación en SQL Azure (Tablas del Sistema e Integración con CLR)

    • 0 Comments

    Las siguientes son dos correcciones de documentación que apareció/sigue apareciendo en MSDN y que hoy en día no es correcta.

    Hace un tiempo en MSDN y por ende en artículos de este blog, apareció en la documentación que SQL Azure aún no soportaba tablas del sistema por ejemplo para consultar la metadata de la base de datos. Sin embargo hoy en día estas tablas y vistas sí están disponibles de manera que podemos ejecutar consultas como ésta:

    SELECT COUNT(*) from information_schema.tables 
    WHERE table_type = 'base table'

    Como observamos, a hoy, 16 de Agosto, esto sigue apareciendo erradamente en MSDN como una característica NO disponible en SQL Azure, cuando la verdad es que sí lo está (Click en la imagen para ver detalles)

    image


    Sin embargo, como se reitera con este POST, esa característica SÍ está disponible.

    Por otro lado, también se había anunciado que el CLR estaba disponible para integración con SQL Azure. Lastimosamente esta información también estaba errada. En este caso, la documentación de MSDN sí ha sido actualizada y muestra que el CLR no está disponible en SQL Azure.

    Para finalizar, se comenta que en todos los artículos de este blog acerca de Windows Azure, hemos tomado los correctivos correspondientes.



  • WarNov Developer Evangelist

    Video y Podcast: Introducción Avanzada a Windows y SQL Azure

    • 0 Comments

    A veces queremos saber de algo, sin tener que dedicarla el 100% de atención o tiempo… tal vez hacerlo mientras vamos en el transporte público o conduciendo… o sencillamente no tenemos tiempo para leer un extenso artículo y preferimos ver un video o tal vez oír al respecto.

    Este video – podcast está basado en este artículo de Windows Azure el cual tiene una presentación que hago siempre a mis entrenados. Se brinda una introducción avanzada a la plataforma para conceptualizarla y poder comenzar a trabajar de lleno con ella.

     

    Enjoy!



  • WarNov Developer Evangelist

    Cómo escalar aplicaciones. SCALE UP vs. SCALE OUT y las posibilidades con Windows y SQL Azure

    • 1 Comments

    Yendo directamente al grano, SCALE UP hace referencia a lograr escalabilidad a nivel de servidor, incrementándole sus recursos de hardware, antes de mejorar la escalabilidad usando otro servidor. Por ejemplo, aumentando su cantidad de memoria, o la capacidad/velocidad de los discos o la cantidad de núcleos de cómputo del servidor.

    En un enfoque SCALE OUT, la escalabilidad se logra “sacando” la carga a otros servidores.

    Al principio el enfoque SCALE UP puede parecer el menos costoso y más sencillo para muchos casos. Pero cuando las exigencias siguen aumentando con el tiempo, lo que sí es seguro, es que se llegará a un límite práctico en el que no será posible “agrandar” más el servidor para ponerle por ejemplo 500 núcleos de procesamiento de manera que pueda satisfacer una fuerte demanda. En estos casos, es fácil observar cómo puede resultar mucho más barato, eficiente y productivo un enfoque de SCALE OUT. Además, un SCALE UP generalmente genera tiempo de baja, mientras se cambian o mejoran las partes de hardware. Mientras que con un SCALE OUT, solo es cuestión de levantar más máquinas independientes.

    Windows Azure es tan flexible, que nos permite ambos tipos de escalamiento. El SCALE UP se logra a través del ajuste que podemos hacer a las instancias que creamos para correr nuestros servicios (recordemos que una instancia es cada uno de los servidores virtuales que ordenamos crear para desplegar nuestras aplicaciones de Windows Azure). Estas instancias vienen en cuatro tamaños. Así que al mejor estilo SCALE UP podemos hacer que el tamaño de cada instancia crezca. Estas son las posibilidades de tamaño que tendríamos:

    image

    Así que podríamos escalar desde 1.6 hasta 10.4 GHz en CPU, desde 1.75GB hasta 14GB de RAM y desde 225MB hasta 2TB de disco duro.

    En cuanto a la alternativa SCALE OUT, tenemos servidores que se aprovisionan muy rápido y pueden comenzar a trabajar en equipo manipulando solo unos elementos de configuración. Así pues, tenemos la ventaja de poder adicionar más y más instancias a nuestro despliegue, las cuales se ajustarán automáticamente con solo un despliegue inicial.

    ESCALABILIDAD CON SQL AZURE

    El SCALE OUT no aplica solo a los servidores de presentación o cómputo (web o worker roles), sino también de SQL Azure como tal. No obstante, en SQL Azure no tenemos la posibilidad de hacer SCALE UP.

    SQL Azure ofrece una gran cantidad de ventajas sobre todo al tener que escalar bases de datos de una manera elástica y rápida, dado que tenemos casi que ilimitada capacidad para levantar nuevas bases de datos para satisfacer cualquier demanda. En SQL Azure, no tenemos una relación física uno a uno entre servidores y bases de datos como en SQL Server tradicional. Pero la abstracción que se nos brinda es perfecta para que la mayoría de las veces el manejo que se le da a estos conceptos sea el mismo que on-premises. Sin embargo, cuando tenemos una cuenta de SQL Azure, tenemos la posibilidad de generar todas las bases de datos que queramos, las cuales residirán en servidores distintos (a veces coincidencialmente residirán en el mismo servidor). Pero esta distribución es ejecutada por los balanceadores de carga automáticos de Azure que se encargan de determinar cómo distribuir las cargas de peticiones a la plataforma.

    Entonces en SQL Azure no vamos a tener la posibilidad por ejemplo de aumentar la memoria de un server dado, sino que sencillamente levantamos otra base de datos. Con esto, podemos tomar una base de datos que requiera ser escalada y segmentarla o particionarla en otras bases de datos más pequeñas y con mejor rendimiento.

    Comprendido ya el concepto de SCALE OUT, veamos ahora que por ejemplo cuando hablamos de bases de datos, existen dos formas para hacer este tipo de escalamiento: Vertical y Horizontal. Estos tipos de escalamiento se ejecutan particionando las tablas que conforman la base de datos horizontal como verticalmente. Luego de estar particionadas, obviamente se generan más tablas y éstas a su vez se pueden ubicar en distintas bases de datos, lo que nos daría el escalamiento buscado.

    Escalamiento Vertical:

    Consiste en dividir las tablas verticalmente a través de columnas. Así pues, uno por ejemplo podría escoger dejar las columnas más importantes en una tabla y las menos usadas en otras. Por ejemplo dejar en una tabla T1 de la base de datos D1 los datos del cliente y su dirección principal, y en otra T2 en la base de datos D2, otra tabla con las direcciones secundarias. Entonces para lograr un correlacionamiento correcto entre T1 y T2, en T2 deberíamos tener un mecanismo de llaves foráneas hacia T1.

    Otro ejemplo de particionamiento vertical se observa por ejemplo cuando dejamos una tabla completa (o conjunto de ellas) en una sola base de datos. Y otras tablas en otras bases de datos. Por ejemplo, tiene mucho sentido en una aplicación de negocios, tener la tabla de clientes en una sola base de datos, para obtener el mayor rendimiento posible para ésta.

    Lo que es más, se puede combinar ese particionamiento para lograr aún más escalabilidad y eficiencia, de manera que podremos poner la tabla de clientes en su propia base de datos, y luego particionar sus columnas en distintas tablas, pero dentro de la misma base de datos.

    image

    Escalamiento Horizontal:

    Este escalamiento comprende la distribución de los datos de una tabla a través de varias tablas con la misma estructura, cada una de las cuales generalmente se encuentra en una base de datos distinta y en ocasiones aún en instancias y/o servidores distintos. Es un excelente acercamiento para circunstancias en las cuales la variabilidad de la carga de trabajo en el servidor de base de datos es muy alta, pues en SQL Azure por ejemplo, es muy fácil aprovisionar y desaprovisionar servidores; además siempre resulta mucho más barato que tener un servidor de muy altas prestaciones siempre encendido esperando por picos de carga de trabajo.

    En cada versión de la tabla se almacena un conjunto de datos que tienen como dato común el valor de una columna que generalmente se conoce como PartitionKey. Entonces cada versión de la tabla se llama Partition. Este es el tipo de particionamiento que se hizo popular con SQL Server 2005.

    Para poder tener “conciencia” de dónde están ubicados los datos con una PartitionKey determinada, existe una tabla maestra donde reside esta información.

    Por ejemplo; en una aplicación comercial, se puede decidir dejar en una base de datos diferente cada las ventas de cada ciudad. En este caso la ciudad sería la PartitionKey para identificar cada tabla. Sin embargo, una clave de partición, podría estar conformada por más campos dependiendo de la naturaleza de la aplicación y el tipo de carga de trabajo.

    Consideraciones para el escalamiento horizontal:

    1. Escoger una llave de partición adecuada, tras un profundo conocimiento del negocio. En general es más recomendable usar una llave natural que una numérica en estos casos. En el caso anterior, haber escogido la ciudad como llave de partición es mucho más eficiente por ejemplo que haber escogido por ejemplo el Id de la venta.

    2. Administración de particiones: Es una de las tareas más complejas luego de haber definido las particiones; generalmente implica consideraciones en el desarrollo de la aplicación que debe saber dónde insertar o modificar nuevos datos así como dónde buscar los existentes. La idea es escoger un tipo de partition key que no vaya a requerir una posterior reubicación de datos cuando el negocio eche a andar, lo que probablemente significaría un tiempo de baja del servicio.

    3. Evitar cross-database joins: Aparte de ser bastante ineficiente, algunas plataformas como SQL Azure no soportan consultas distribuidas. Por eso es mejor que todos los datos que requiere una tabla dada, estén en la misma DB. De lo contrario habrá que escribir el código necesario para poder ejecutar consultas asíncronas a través de varias particiones que retornen datos separadamente que luego tendrán que ser unidos en la capa de aplicación.

    4. Alta disponibilidad: Cuando se escoge un acercamiento de este tipo de escalabilidad, es requerido que todos los servidores a través de los cuales está particionada la base de datos tengan unos índices de disponibilidad bastante altos. Estos índices son provistos por SQL Azure. Es así como cada vez que creamos una base de datos, SQL Azure crea automáticamente tres copias de la misma, para asegurar esta alta disponibilidad. Cada copia es creada en servidores físicos distintos dentro de la misma ubicación geográfica. La sincronización entre estas bases de datos es automática también. En caso de falla, SQL Azure automáticamente redirige las peticiones a una de las copias de seguridad y vuelve a levantar una tercera copia para futuras eventualidades. Todo esto ocurre sin intervención humana y sin caídas del servicio.

    5. Administración: El escalamiento horizontal puede llegar a generar alta complejidad en la administración dado que hay que aplicar updates, ejecutar patching, ajustar un plan de recuperación de desastres, etc. y todo esto para cada servidor usado en el escalamiento. Afortunadamente SQL Azure se encarga de todas estas tareas automáticamente por nosotros. De las únicas tareas de administración que un DBA debería tener en cuenta son: creación de esquemas, afinamiento de índices, optimización de consultas, logins, usuarios y administración de la seguridad.

    image

    Conclusión:

    A pesar de que el particionamiento puede ayudar a mejorar el performance, la escalabilidad y los costos, puede llegar a ser bastante complejo implementar un esquema de particionado exitoso. Algunas aplicaciones tienen un esquema de particionamiento natural del cual se puede tomar ventaja mientras hay otras aplicaciones que requieren ser re - arquitecturadas para volverlas escalables; cosa que vale la pena la mayoría de las veces. Windows Azure y SQL Azure proveen una plataforma sobre la cual las aplicaciones pueden hacer SCALE-UP/SCALE-OUT en el caso de Windows Azure al permitir “agrandar” las instancias y al permitir usar varias instancias con el mismo despliegue. Y en el caso de SQL Azure con SCALE-OUT al permitir pasar de una o dos bases de datos a decenas o cientos de bases de datos de una manera muy sencilla sin incurrir en fuertes costos de infraestructura. Además, los clientes no pierden inversión si necesitas reducir nuevamente la infraestructura, ya que todo estaba en arriendo en el esquema de plataforma como servicio.



Page 10 of 14 (326 items) «89101112»