sábado, diciembre 29, 2007

Windows Vista == Bloathware

En estos días tranquilos me dispuse a crear una maquina virtual con Windows Vista, el motivo, nunca la he utilizado y quería ver que tal funcionaba, ya que en lo general he escuchado muy malos comentarios acerca de Vista, tanto en Internet, como de forma personal de amigos y conocidos.

De los amigos principalmente había escuchado quejas, como que sus laptops eran nuevas con Vista pre-instalado y funcionaban muy lentas, tan solo para cargar el Word tardaba varios minutos.

Quejas sobre ventanas que aparecían una y otra vez para confirmar si se quería realizar una determinada acción, quejas de que aun y con 2GB de RAM y ningún programa ejecutandose la memoria estaba siempre utilizada al 100%.

En fin, se me acercaban a preguntarme como le podían hacer para "actualizarse" a XP, pero el problema en las laptos nuevas, es que el fabricante no tiene drivers disponibles para XP, así que solo había de 2 opciones, quedarse con Vista o ponerle Linux. Es curioso ver en el salón un numero mas o menos balanceado entre laptops XP, Vista y Linux.

Actualmente cuento con una licencia de XP, la cual ejecuto en una maquina virtual, tengo instalado únicamente el Visual Studio 2005, y algunas bases de datos de SQL 2005; cada vez es menos común que utilice esta maquina virtual, por lo tanto el espacio en disco que le tengo destinado, son 12 GB, los cuales están prácticamente ocupados.

Teniendo esto como antecedente, cree una maquina virtual con 10GB de espacio en disco y 512 MB de RAM, la instalación de Vista fue bastante normal, de hecho no tardo tanto tiempo como XP. Inicie Vista y navegue opciones del panel de control, tal y como me comentaron mis amigos, me aparecieron mil y una ventanas para confirmar si quería realizar tal o cual acción. En lo personal no me molesto tanto, ya que solo salen cuando se hacen cambios en la configuración - por lo menos hasta donde pude ver -.

Investigando sobre el uso de la memoria, encontré que Vista usa la memoria como cache para los programas que ya se ejecutaron, es decir cuando un programa se cierra no devuelve inmediatamente la memoria al Sistema operativo, la mantiene ahí hasta que otro programa la reclama o hasta que el mismo programa se vuelve a cargar, cuando sucede esta ultima opción, el programa no se carga completamente desde el disco duro, usa la copia existente en memoria, lo cual hace que se cargue mas rápido.

Linux y OSX hace lo mismo de algún u otro modo, de hecho el algoritmo para manejo de la memoria como cache de programas me toco verlo en la escuela el semestre que acabó.

Quise instalarse el Visual Studio a Vista, pero sorpresivamente me indicaba que no tenia espacio suficiente, que de los 10GB de el disco virtual solo me quedaban 2GB, !!!!! WFT ?????; no tenia nada instalado, solo el sistema operativo!!!!.

Resulta que Vista reserva el 15% del espacio para realizar el ¨System Restore¨, es decir guarda imágenes de como estaba Vista antes de instalar un parche o una aplicación, para que en caso de que exista algún problema, se pueda volver a la configuración anterior.

Ademas existe un fólder llamado WinSXS en el fólder Windows que tiene copias de las librerías instaladas en el sistema, con la finalidad de que cada vez que una aplicación instala la misma librería pero diferente versión, la aplicación siempre encuentre la versión correcta de su librería; a esta ¨caracteristica¨le llaman ¨Side by side assemblies¨.

Así que entre que Vista me protege de fallos en la instalación de parches y aplicaciones y de problemas por el llamado ¨DLL Hell¨, mi espacio en disco duro se agoto y no puedo instalar nada!. Vaya protección si no instalo y no puedo ejecutar nada, nada malo le va a pasar a Vista - no se porque esta situación me recuerda la película I Robot -.

Sobre este ultimo punto encontré quejas y sugerencia de como hacer que Vista te regrese un poco de espacio de disco duro, pero ninguna cantidad relevante, ademas de comentarios de gente que dice que su directorio WinSXS mide mas de 10GB y no hay forma de limpiarlo y hacerlo mas chico.

Por mi parte la única solución que encontré es: Borrar la maquina virtual de Vista, mantener mi maquina virtual de XP, para lo que se ofrezca, y continuar usando mi OSX.

martes, diciembre 18, 2007

Video Cast 3, Introducción a nueva funcionalidad en .NET 3.5

Por cuestiones de diversos pendientes, no me había sido posible realizar este Video Cast, pero finalmente aquí está. Este es el ultimo video cast de este año, pero a principios del 2008 estare presentado nuevos.

Ya esta disponible el tercer Video cast que muestra la nueva funcionalidad introducida en .NET 3.5, específicamente se muestra como funciona:
- Expresiones Lambda
- Introducción a LINQ

Las herramientas y librerías necesarias u opcionales se listan en este post.

El código fuente de ejemplo puede ser descargado de aquí. El archivo para este video cast es V3.zip

La liga directa al video esta aquí.



Creative Commons License
This work is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 2.5 Mexico License.

lunes, diciembre 17, 2007

Nuevo Videocast

Ya esta listo el nuevo VideoCast de la serie "Novedades en los lenguajes de .NET 3.5", por saturación de trabajo, no me fue posible realizarlo la semana pasada - muchos proyectos que entregar en la escuela -, pero por fin hoy quedo. Ya solo resta subirlo a Internet para hacer publico oficialmente.

martes, diciembre 11, 2007

El nuevo Microsoft ASP.NET MVC

Desde la introducción de .NET 1.0 Microsoft le apostó 100% a el framework de ASP.NET para el desarrollo de aplicaciones web. ASP.NET fue un cambio de paradigma importante ya que en el mundo Microsoft las aplicaciones Web eran aplicaciones en las cuales era fácil perder el rumbo o tener un nivel de complejidad muy importante, debido a lo que se llama "código espagueti" en donde no hay una clara separación del código que es parte de la interfaz gráfica, el flujo del programa y el acceso a los datos.

ASP.NET tuvo muy buena acogida, ya que permitía esta separación de forma mas o menos clara, de lo mas importante es que el código que controla el flujo de la aplicación y los datos se puede alojar en una clase, aparte del código html/ tags ASP.NET que conforman la interface gráfica.

Desde mi punto de vista muy particular, ASP.NET si proporcionaba una mejora en cuanto al desarrollo de aplicaciones web con respecto a como se hacían antes de ASP.NET, pero conforme la aplicación iba creciendo la complejidad de la misma aumentaba de forma importante, desafortunadamente los demos que Microsoft nos presentaba sobre "arrastrar y soltar", escribir aplicaciones sin escribir una linea de código, funciona muy bien para demos y aplicaciones pequeñas; y no en el mundo real.

Programé en ASP.NET y la verdad no me gusto la experiencia, definitivamente la complejidad del ciclo de vida de las paginas cae en lo ridículo, así que me dedique a otras cosas, pero de alguna u otra forma me "salía" la necesidad de programar para web. Buscando alternativas para ASP.NET me encontré con Ruby On Rails, una tecnología para desarrollo web que vuelve a lo básico, el modelo Model-View-Controller.

Mi problema con Ruby On Rails es que había que aprender un nuevo lenguaje, y uno de mis proyectos para una intranet estaba a la vuelta de la esquina, buscando sobre opciones del modelo MVC en .NET me encontré el proyecto Castle Monorail, el cual es una implementación muy cercana a ROR pero en .NET.

Castle Monorail y el patrón MVC me permitió terminar el proyecto para mi cliente de forma rápida y sin complicaciones, pero sobre todo me permitió hacer uso de la técnica Test-Drive Development, para llevar a cabo el desarrollo y probar que mi aplicación funcionara correctamente, algo que es muy difícil de lograr con ASP.NET.

Esta complejidad del ASP.NET no fue algo que únicamente yo vi, también una buena parte de los líderes de opinión en las tecnologías Microsoft, sobre todo el Estados Unidos, se empezaron a quejar y a buscar alternativas como ROR y Monorail, se inicio una discusión entre ellos y Microsoft, se creo el grupo ALT.NET que pondera la utilización de practicas ágiles, sobre herramientas, de hecho realizaron su primera conferencia en Austin, Texas.

En este punto la ruptura de Microsoft con parte de su comunidad era un tanto inminente, pero Microsoft realizo su jugada, y al parecer muy buena jugada, contrato a algunos de estos líderes de opinión para trabajar en una alternativa de ASP.NET y proporcionar a su comunidad una herramienta mas sencilla de utilizar y que fuera compatible con las metodologias ágiles, dentro de estos líderes de opinión contratados están Phil Haack, Rob Conery y Scott Haselman.

Así es como en la conferencia de ALT.NET Scott Guthiere y Scott Haselman presentaron el Microsoft ASP.NET MVC Framework, pero no solo eso, invitaron a gente de la comunidad de desarrolladores a dar sus opiniones sobre el mismo y de esa forma retro-alimentarse y realizar cambios sobre la marcha. El fin de semana pasado salió el primer Community Technical Preview o CTP, y al día de hoy hay una enorme cantidad de posts al respecto y ya inclusive proyectos open source como MVCContrib que tiene la finalidad de agregar nueva funcionalidad al MS MVC; es que ademas una de las características de MS MVC es que es totalmente extensible en todos sus aspectos, esto quiere decir que es posible reemplazar la funcionalidad original con una propia.

Ahora surgen las siguientes preguntas entre los defensores de ASP.NET:
- ¿ASP.NET va a ser reemplazado?, no va a seguirse desarrollando
- ¿Me va a afectar el ASP.NET MVC en algún modo?, no si estas contento con desarrollar en ASP.NET sigue desarrollando en ASP.NET e ignora el MVC
- ¿Que necesito para desarrollar en MVC?, nada solo bajarte las extensiones y ver algunos de los tutoriales - aunque todos están en ingles -
-¿Mi experiencia en ASP.NET me va a ayudar a moverme a MVC?, no, MVC es otro paradigma muy diferente a ASP.NET, va a ser necesario aprender nuevos conceptos.
- ¿Puede mezclar en una aplicación ASP.NET y MVC?, si pero no es muy recomendable
- ¿Que pasa con los controles ASP.NET que he desarrollado y los que he comprado de terceros?, no sirven para MVC
- ¿Que tan difícil es cambiarse a MVC?, los conceptos en si de MVC no son complejos y han estado con nosotros desde la década de los 70´s, poco a poco van a hacer sentido

Como conclusión parece que Microsoft esta vez puso mucha atención a su comunidad de desarrolladores, esperemos que siga por ese camino.

jueves, diciembre 06, 2007

Extension para hacer compatibles las extesiones con FireFox 3 beta

Cada vez que Firefox esta cerca de liberar una nueva versión de su navegador sucede la misma situación, que las extensiones no son compatibles con la nueva versión del navegador.

Generalmente los desarrolladores de las extensiones no se toman el tiempo de actualizar sus extensiones con las versiones de prueba de Firefox, se esperan hasta que la versión final esta lista, por lo tanto si nos aventuramos a probar las versiones Beta, es mejor olvidarnos de nuestras extensiones mas útiles.

El ultimo comentario es mas o menos cierto, ya que en esta ocasión hay una extensión que se encarga de modificar nuestras extensiones instaladas para que "parezcan" compatibles con Firefox 3 beta, la mayoría de las extensiones funcionaran sin problema, aunque aun queda el caso de que alguna que otra no funcione.

La extensión en cuestión es "Nightly Tester Tool", simplemente hay que instalarla, cargar la ventana de extensiones de Firefox y hacer "click" en el botón que dice " Make all compatible", reiniciar Firefox y listo.

martes, diciembre 04, 2007

Video Cast 1, re-publicado

Por los motivos que comentó en este post, el Video Cast 1 ha sido re-publicado con una mejor calidad en la imágen, para mas detalles sobre este video cast, por favor consultar este post.

Liga directa al video esta aquí.




Creative Commons License


This work is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 2.5 Mexico License.

Video Cast 2, Introducción a nueva funcionalidad en .NET 3.5

Ya esta disponible el segundo Video cast que muestra la nueva funcionalidad introducida en .NET 3.5, específicamente se muestra como funciona:
- Métodos de extensión (Extension methods)
- Tipos implícitos
- Tipos anónimos

Las herramientas y librerías necesarias u opcionales se listan en este post.

El código fuente de ejemplo puede ser descargado de aquí. El archivo para este video cast es V2.zip

La liga directa al video esta aquí.





Creative Commons License


This work is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 2.5 Mexico License.

Video Cast 2, segunda parte

Como mencione en el post anterior, debido a problemas para poder subir el video a Google, no había podido publicar el video, aun y cuando ya tiene una semana de que esta listo.

Desafortunadamente los sitios para publicar video limitan el tamaño y el tiempo de los mismos, ademas de que degradan enormemente calidad de video, por tal motivo y por los problemas que he tenido con Google video para poder subir el video, tomando en cuenta algunas sugerencias, he decidido buscar alternativas.

La alternativa que me parece funcionar de momento es la de utilizar el servicio Driveway, el cual me permite alojar archivos por un total de 2GB.

Mis archivos originales son películas Quicktime, pero antes subirlos en el nuevo servicio los convierto a FLV (archivos flash de video), para bajar un poco el tamaño de los archivos .mov a la mitad, pero manteniendo al máximo posible la calidad de los archivos.

Actualmente ya muchos reproductores soportan el formato .flv, pero si por algún motivo el reproductor que tienen no funciona con ellos, les sugiero descargar el reproductor VLC.

Bueno sin mas rollo el siguiente post va a contener la información del nuevo video.

PD. Gracias por sus comentarios por email y en el blogspot, si alguien tiene interés en que haga un video con algún tópico en particular no duden en hacermelo saber.