12.29.2009

Nuevo Blog: Tecnología que Funciona

A partir de este 2010, estoy moviendo mi blog de http://msdnfan.blogspot.com a http://tecnologiaquefunciona.blogspot.com. Este cambio busca una mejor alineación de mi blog con los temas que me interesan ahora.

En este nuevo blog voy a hablar de tecnología de información dentro del contexto de la realidad mexicana - con un enfoque especial en software. Estos son los temas que voy a tocar:

  • Retos a los que nos enfrentamos en el desarrollo e implementación de proyectos de tecnología de información
  • Reflexiones sobre la aplicación de las tecnologías de información en el contexto de México
  • Reseñas y comentarios sobre productos y servicios novedosos relacionados con tecnologías de información
  • Pensamientos sobre los retos de las empresas y profesionales de tecnologías de información en México
Quiero invitarlos a todos a que me acompañen en esta nueva aventura. Gracias por su apoyo todo este tiempo.

8.11.2009

¿Por qué es tan difícil de usar el software?

Recientemente terminé de leer el libro "The Inmates are Running the Asylum" de Alan Cooper. Me pareció excelente y estoy en lo fundamental de acuerdo con sus planteamientos. Pocas veces encuentro alguien con quien esté tan en sintonía.

Desde hace algunos años he venido reflexionando sobre el mal trabajo que hacemos (en la industria en general) para hacer nuestro software más accesible. Todos los sistemas operativos actuales (incluyendo a también a Mac OS X y a Linux) hacen un trabajo miserable en lo que se refiere a la facilidad de uso y la curva de aprendizaje para "usuarios neófitos". Tan sólo repasemos algunos de los conceptos básicos que una persona debe tener claras para siquiera empezar a utilizar una computadora:

1. Hay almacenamiento persistente (el disco) y temporal (el RAM). Yo pregunto, ¿por que debe de ser esto, hoy en 2009, algo de lo que se tenga que estar consciente? ¿Qué no podemos asegurarle a nuestros usuarios que nunca van a perder información?

2. Tus documentos se guardan en una estructura de archivos jerárquica. ¿Para qué necesitamos los archivos? ¿Los folders? Cuando hoy contamos con tecnología de búsqueda altamente poderosa.

3. Las aplicaciones pueden estar "corriendo" o no. ¿Qué importa? ¿Por qué un usuario tiene que distinguir entre estos dos estados en las aplicaciones? ¿No podríamos hacer estas transiciones totalmente transparentes?

4. No es lo mismo "click" que "doble click". Pocos idiomas de interfase de usuario son peores que este - fuente de inagotable confusión para cualquier persona que no es un nerd.

5. F1, F2, F3, F4, F5.....F12, ESC, ALT, CTRL, CMD. ¿Necesito decir más?

6. Anota cada detalle de cualquier mensaje de error. Hoy le pedimos a los usuarios que, cuando nos reporten un error, deben indicarnos con todo detalle lo que sucedió, lo que les pasó, etc. ¿No podríamos grabar eso nosotros mismos?

7. ¡Se te olvido el attachment! Queremos que los usuarios entiendan perfect este concepto del attachment como si fuera "natural".

8. No vayas a apagar la computadora con el switch porque se corrompe el disco - hay que darle shut down. Simplement patético.

9. Prende tu PC al menos de 5 a 10 minutos antes de que puedas trabajar. Es que tenemos que "bootear" tu sistema operativo. Patético también.

10. Cuando te compres una nueva PC lo mejor es que la instales desde cero. Total que tu tiempo no nos interesa - y lo de menos es que pierdas un par de dias reinstalando todo.

Creo que en esta industria de nerds usamos el "pseudo-conocimiento" de todos estos puntos (y muchos, muchos más) para sentirnos comfortablemente superiores a los "tontos usuarios". ¿Cuantas bromas no existen en nuestro medio dónde nos burlamos de los usuarios? Creo que el objeto de bromas debería de ser la industria (¿Cual es la diferencia entre un coche y una PC?) más que los usuarios.

Nuestro software hoy está pensado para la venganza de los nerds - hacer sentir idiota a la persona normal que tan solo quiere usar la computadora para realizar alguna tarea.


Ya basta.

3.19.2009

Algunos Comentarios sobre Los Anuncios de Microsoft en Mix

Esta semana Microsoft está llevando a cabo su conferencia Mix por cuarta ocasión donde habla sobre su estrategia para el mundo de aplicaciones web.

En muchos lados de la red hay información al respecto. Me gustaría compartir algunas primeras reflexiones sobre lo que me parece más importante de lo anunciado.

Silverlight 3.0 (Beta): Microsoft sigue invirtiendo fuertemente en Silverlight que ya desde la versión anterior (2.0) me parece que era mejor que Adobe Flash en muchos aspectos. La nueva versión anunciada incluye funciones que la van a hacer mucho más aceptada aún. El soporte a aplicaciones fuera del navegador hace a Silverlight más viable para aplicaciones de línea de negocios. La inclusión de más de 60 controles con código fuente también me parece muy relevante.

Estas mejoras desde mi punto de vista tienen un efecto interesante cuando se compara a Silverlight con WPF como plataforma para aplicaciones sofisticadas. Ambas mejoras hacen más amplios los escenarios de negocio donde uno escogería Silverlight por encima de WPF como objetivo de desarrollo. WPF no se hace irrelevante, pero definitivamente vamos a estar escogiendo Silverlight para algunos escenarios donde antes hubieramos usado WPF.

Internet Explorer 8.0 (Versión Final): Da gusto que Microsoft esté mejorando su navegador, aunque habría que reconocer que la competencia definitivamente ha jugado una "influencia positiva" en esto. En este momento estoy escribiendo este post desde la versión de 64 bits de IE8. Lo voy a estar usando un rato para evaluarlo. La verdad es que va a costar trabajo recuperar la reputación de IE después de la debacle de IE 6. Hasta hora donde he navegado funcionó bien excepto en Facebook donde tuve que prender el modo de compatibilidad con IE7. Creo que el impacto de IE8 dependerá en parte de cuantos sitios se animen a tomar provecho de sus nuevas funciones como WebSlices o Accelerators. La verdad es que la competencia en navegadores está candente y esto sólo significa beneficios para los usuarios.

Cambiando un poco de tema, me quiero quejar del limitado soporte a 64 bits en algunos productos Microsoft. Especificamente, no hay planes para Silverlight en 64 bits (¡¡¡ni para Visual Studio!!! ¡¡¡ni para Office!!!). Me parece que es un error. La estabilidad de Windows en 64 bits es mucho mejor que en 32 y el performance también. En cosa de un año o dos muchas computadoras van a traer más de 4GB de RAM y para aprovechar eso a fondo necesitamos 64 bits. Ahora que Adobe tiene el mismo problema con Flash, aunque ellos ya anunciaron que si soportaran 64 bits (y ya sacaron una versión para Linux).

Outlook es un mounstro consumidor de memoria que le vendrían muy bien los 64 bits y, en cuanto a Visual Studio.....todos sabemos cuantas ventanas, instancias, etc nos gusta tener abiertas simultáneamente a los desarrolladores. En cuanto a Silverlight, su ausencia en 64 bits como la de Flash hacen que el IE8 de 64 bits sea casi un adorno inusable en muchos sitios.

Por ultimo esta semana Apple anunció y liberó el beta del iPhone OS 3.0. Me parece que hay varios elementos interesantes, llamándome la atención mucho el soporte peer-to-peer. En mi opinión este modelo ha estado muy subexplotado en aplicaciones móviles y hay literalemente miles de posibilidades a explorar. Si es realmente fácil conectarme con otro iPhone creo que veremos una inundación de aplicaciones que tomen ventaja de esto.

Microsoft tiene que meterle velocidad máxima a Windows Mobile 7.

2.20.2009

Consejos para Desarrolladores de Software en un Ambiente Recesivo

La semana pasada escribí algunos consejos e ideas sobre lo que los empresarios de la industria de software podemos hacer para enfrentar un ambiente económico negativo.

Desde entonces se ha dado una discusión muy interesante dentro del grupo de Microsoft Regional Directors sobre consejos orientados a desarrolladores. ¿Qué puede hacer un desarrollador para incrementar sus posibilidades de mantener su trabajo o, en caso de estar desempleado, mejorar sus posibilidades de encontrar trabajo?

Quiero aclarar que estas ideas no son mías (aunque estoy de acuerdo con ellas). Son de varios Microsoft Regional Directors de todo el mundo. La mayoría son o empresarios de software o tienen puestos directivos dentro de las áreas de TI en corporativos.

1. Trata tu Trabajo como Tal y Hazlo con Orgullo: "Muchos desarrolladores tratan a su trabajo como un hobbie, atacan con pasión las partes que les gustan y tratan de evitar todo lo demás. Pensemos en la gente que hace trabajos mucho más meniales. Sin duda no lo hacen por diversión pero hacen un buen trabajo porque es la razón por la que cobran. Si estos desarrolladores tuvieran la misma actitud, probarían mejor su código y lo documentarían adecuadamente."

2. Conoce Más sobre "El Negocio": "Los desarrolladores deben aprender un poco sobre el negocio. Me parece que con "la gente de negocios" tomando las decisiones sobre quien se queda y quien se va en una recesión entender tu valor para el negocio y ser capaz de expresarlo es muy importante. También si miras a tu alrededor y te das cuenta que el proyecto en el que estás trabajando no es crítico para el negocio o pierde dinero continuamente puede convenirte ofrecerte a apoyar en otros proyectos en una parte más importante del negocio. Ser capaz de comunicarse elocuentemente con gerentes y directores ayuda mucho a mantener el trabajo y, en caso de ser despedido, el ser capaz de expresar el valor que aportaste de negocio en tu empleo anterior mejora mucho tus posibilidades de ser contratado de nuevo."

3. Busca Moverte Hacia Arriba en la Cadena de Valor: "Pensemos en esto: la gente al final de la linea de producción es de la más facil de eliminar cuando cae la demanda. Todos entendemos eso cuando hablamos por ejemplo de la línea de producción de General Motors. Pero lo que muchos desarrolladores no entienden es que *ellos también pueden estar al final de la cadena de valor*. Esas son las malas noticias. las buenas son que es relativamente fácil subir en la cadena: se un conducto hacia la "gente de negocios", involucrate en el soporte a las ventas nuevas, promueve la identificación y reuso de propiedad intelectual existente, mide tu rentabilidad y propón y apoya esquemas que reduzcan los costos. Muestra como el desarrollo de calidad puede bajar los costos y hazlo realidad."

4. ¿Tienes una Ética de Trabajo? "Entiende que el lugar donde trabajas se trata de generar utilidades y no necesariamente de hacer del mundo un mejor lugar o avanzar la tecnología. La innovación tiende a ser complicada en este ambiente económico. Cualquier proyecto de investigación, lateral, o experimental/divertido puede pasar de un día para otro a ser un gasto innecesario. Una recesión es un momento cuando la actitud de - esta compañía tiene suerte de tenerme - probablemente deba guardarse por un par de años. Ayuda en los proyectos que generan ingresos para la empresa - aunque no usen WPF, Ajax o tu tecnología favorita del momento. Comprende que celulares, gadgets y computadoras Corei7 no son gratis aunque parezcan relativamente baratas."

5.
Sobre Negociaciones de Sueldo y Compensación: "Yo tendría cuidado en las revisiones anuales con respecto a demandas y necesidades. Ayuda muchísimo si puedes alinear tus demandas de mejores ingresos a los objetivos de negocio. Por ejemplo, bonos y compensación variable. Jugar rudo puede ser por ahora una oportunidad de entrar a la lista de recortes. Cualquier compensación que te haga más atractivo con los tipos que balancean el presupuesto te ayuda."

6. Reconsidera tus Dogmas: "Algunos desarrolladores tienden a ser dogmáticos. Se vuelven religiosos acerca del lenguaje (C# vs. VB), proceso (Agil vs. CMMI), técnicas (TDD vs. patrones), etcetera. La mayor parte de los tomadores de decisión de negocios no están interesados en eso. Hace poco me tocó ver a un par de excelentes desarrolladores perder su trabajo. No estaba haciendo ningún trabajo "real" porque les preocupaba más dedicarse a defender sus dogmas. Quizá tienen razón. Quizá el cliente va a pagar caro por sus decisiones técnicas mal tomadas. Pero por lo pronto ellos no tienen trabajo y otros si."

Definitivamente en mi opinión no todo en la vida es "conservar la chamba". Cada situación personal es diferente. Sin embargo, estos consejos, aunque puedan resultar un poco dificiles de leer, si reflejan algunas de las cosas que piensan un grupo de personas que tienen como responsabilidad contratar y organizar equipos de desarrollo y me pareció que puede ser valioso para quien lo quiera tomar.

2.12.2009

Nuestro Reto Ante la Crisis Económica

El bombardeo de noticias económicas negativas ha sido incesante los últimos días. Miles de despidos, caída en las ventas, cancelaciones de inversión, nadie te paga ,“you name it”. A veces puede parecer que no habrá salida (excepto claro, para Carlos Slim que desde el otro lado nos dice: “ ora si se los va a llevar la ch....  ...porque a mi no!!”) Además la selección volvió a perder (who gives a fuck) y ya no hay futbol americano.

Las empresas de software podemos ser muy vulnerables ante esta situación. La inversión en capital es uno de los rubros más sensibles en una situación como la actual. ¿Qué hacer?

  1. Recuerda Que Lo Que No Te Mata Te Hace Más Fuerte: Las crisis son como la “selección natural” del mundo empresarial. Después de ellas vamos a sobrevivir (espero que estemos en ese grupo) menos empresas de las que hoy existen. Nuestro “nicho ecológico” va a estar menos ocupado, así que si pasas la crisis seguramente después no solo te recuperaras sino que te irá mejor de lo que te iba antes.
  2. Potencia el Valor de Negocio que Generas: Es momento de explotar al máximo nuestra creatividad y “ponernos en los zapatos del cliente”. Hay que entender que la mayoría de nuestros clientes están racionalizando sus gastos. Sólo entendiendo realmente como generamos valor de negocio podremos convencerlos. En mi opinión el diferenciador importante en estos momentos es mucho más de negocio que técnico.
  3. Trabaja Más Duro – Y Motiva: Si te pones a pensar lo que enfrentas como organización en una situación de crisis como esta, aunque parezca difícil, no es nada comparado con lo que grupos de hombres y mujeres han tenido que enfrentar en el pasado. Si es posible motivar a un grupo de seres humanos para que dejen la vida en la búsqueda de algo (recuerda el día D) ¿no puedes motivar a tu equipo para atravesar esto y dar el esfuerzo extra que se necesita? Tip: Ten valores que inspiren – los que sean – y vívelos tu antes que nadie – el puro rollo vale M.
  4. Reduce tus Gastos – Pero No en Todo: Reducir gastos es la reacción intuitiva en una situación de crisis – y sin duda tiene validez. Pero por si sólo no resuelve nada - ¿o tu crees que eres el único al que se le ocurrió? Hay algunos aspectos en los que opino que no hay que escatimar – marketing y ventas, retención de talento (lo peor que puedes hacer es ponerte a correr gente valiosa en éste momento), calidad. Por otro lado, ¿realmente necesitas esa computadora nueva? ¿ir al extranjero?
  5. Mejora tu Talento: Va a haber mucha gente valiosa sin trabajo. Triste pero inevitable y cierto. Es una oportunidad para mejorar el nivel de talento de tu organización. Quien tenga el mejor equipo va a sobrevivir y saldrá fortalecido.
  6. No Pierdas la Fé: Cuando todo parece perdido no lo está. Sólo parece perdido. Salte a dar una vuelta. Distráete. Vete a un bar con los últimos pesos (exagero un poco). Relájate, recárgate de energías, deja de pensar en el problema. Acude a quien te quiera. Hay más gente dispuesta a ayudarte de lo que crees. No Pierdas la Fé.


Nos vemos del otro lado. Eso espero. Fingers crossed.

11.05.2008

Software Gratis de Microsoft para Empresas Nuevas

Microsoft ha anunciado ya en Estados Unidos su nuevo programa de apoyo a startups. Es un excelente programa donde por tres años tienes acceso a una amplisima gama de software Microsoft para operar tu negocio GRATIS.

La mejor noticia es que sabemos de muy buena fuente que el programa si se ofrecerá en México con algunas variantes menores. Se llama "BizSpark".

¿Para qué empresas es?

  • Empresas con menos de tres años de creación.
  • Ventas actuales menores a USD 1 millón por año.
  • Empresas que crren software o servicios (o software + servicios).
Tiene un costo de sólo 100 USD que pagas al final del periodo. El programa incluye uso ilimitado para producción de Windows Server, SQL Server, Biztalk y Office Sharepoint (todo con licencia de acceso por Internet), Systems Center para manejar tus servidores y licencias de desarrollo de Visual Studio Team Suite.

Aun no se definen los detalles de operación para México, pero vale la pena que vayan conociendo la guía del programa para Estados Unidos en http://download.microsoft.com/download/4/d/4/4d41081a-d8d9-407a-9bae-5127e6e931ca/BizSpark%20Startup%20Program%20Guide.pdf

En lo personal me parece una EXCELENTE idea de Microsoft para posicionarse como una alternativa viable frente a Open Source para empresas realmente innovadoras. ¿Qué opinas?

10.28.2008

Desde el PDC 2008: Primeras Impresiones de Windows 7

Mi primera impresión de Windows 7 es muy positiva. Me parece que Microsoft definitivamente “aprendió la lección” de Windows Vista. Lo que más me llamó la atención fue la actitud de la presentación. Se reconocieron con mucha franqueza los errores cometidos. Veo un enfoque más fresco en el equipo de desarrollo de Windows (yo creo que la salida de Allchin fue positiva – independientemente del gran trabajo que hizo antes ya se necesitaba sangre fresca).

El foco está en la simplicidad, el desempeño y la facilidad de uso. Creo que las prioridades que se fijaron para Windows 7 son las adecuadas. Algunos ejemplos:

· Una barra de herramientas más poderosa (y algo parecida al Dock de la Mac – pero mejorado).
· Posibilidad de ajustar con facilidad que tan intrusivo (y seguro) quieres que el UAC funcione.
· Control total sobre el system tray – que iconos quieres ver, que mensajes quieres que te salgan – tu decides.
· Soporte a multitouch - esto va a revolucionar las interfases de usuario.
· Va a funcionar en la nuevas mini-notebooks.
· Librerias de coumentos que te permiten organizar tus archivos, fotos, música, etc en tu red personal y fácilmente a través del explorador, media player y media center.
· Detección automática y configuración automática al conectarte a la red de tu casa o del trabajo.

Para desarrolladores, hay varios elementos que lo hacen un sistema operativo muy atractivo:

· Microsoft está buscando que sea más eficiente, con menos consumo de memoria y uso de disco
· Soporta montar de manera nativa discos virtuales vhd y bootear directamente de estos preservando su estado
· Mucho mejor manejo multimonitor en Windows y a través de remote desktop también.
· .NET 3.5 SP1 preinstalado.

¿Saben que es lo mejor? El build que presentaron hoy se ve muy estable. Yo creo que Microsoft nos va a dar una sorpresa y Windows 7 va a salir antes de lo esperado…..

10.27.2008

PDC 2008 en Vivo – Windows Azure, La Plataforma de Servicios de Microsoft

Hoy en Los Angeles inició el Microsoft Professional Developer Conference. Esta es la conferencia para desarrolladores más importante que Microsoft organiza más o menos cada dos o tres años cuando la empresa tiene algo importante que decir. Los anuncios de hoy reflejan la decisión de Microsoft para convertirse en el proveedor de servicios de cómputo líder en Internet. Se anunció una plataforma de desarrollo para la nube: Windows Azure.

¿Qué significa este anuncio para los desarrolladores de software?

· Vamos a poder “desplegar” nuestras aplicaciones con gran facilidad a la infraestructura de servidores de Microsoft. Este proceso va a ser muy sencillo y a través de configuración se hará realidad el cómputo bajo demanda. Podremos especificar cómo debe escalar nuestra aplicación y podremos solicitar más (o menos) capacidad a través del tiempo de acuerdo con nuestras necesidades de negocio. Todo esto de forma muy simple.

· Podremos aprovechar varios servicios bajo demanda con funciones de alto nivel para simplificar el desarrollo de aplicaciones con gran valor de negocio.

¿Qué servicios están disponibles?

Microsoft .NET Services: Hoy se anunciaron los 3 primeros componentes de estos servicios. Con ellos podemos resolver nuestras necesidades de identidad federada y de control de flujos de actividades con WF.

· Service Bus
· Access Control
· Workflow Services

Microsoft SQL Services: Servicios de datos que podemos aprovechar bajo demanda.

· Base de Datos, Sincronización, Reporteo, Data Mining, ETL

Live Services: Servicios centrados en el usuario individual, para administrar su información a través de múltiples dispositivos y lugares.

· User Centric Data Store – Identity, Contacts, Files, Calendar
· Sync
· App Management
· Device Management

¿Cuándo podremos usar estos servicios?

Aquí en el PDC se está liberando un CTP (Community Technology Preview) que se puede usar para fines de prueba desde hoy. Yo esperaría que Microsoft lograra un lanzamiento comercial hacia fines del 2009.

9.12.2008

Actualizar mi iPhone 3G de Telcel a Software 2.1 "Destruyó" mi SIM

Hola,

Como buen nerd que soy hoy actualicé my iPhone 3G de Telcel (no está hackeado) a la versión 2.1 del software de Apple usando iTunes desde mi Mac con OS X 10.5.4.

Para mi sorpresa al final de la actualización el iPhone tenía el mensaje de "No SIM". Intenté limpiar el SIM y siguió sin funcionar. Al llegar a mi oficina "intercambié" SIMs con un amigo que tiene un iPhone 3G idéntico (comprado el mismo día) pero sin actualización a 2.1. Mi SIM ya no funciona en su iPhone y su SIM si funciona en mi teléfono. Mi conclusión es que el proceso de actualización por alguna razón está dañando algunos SIMs. No soy el único, otros usuarios de México, Colombia y España han reportado lo mismo. Los reportes están aquí:

http://discussions.apple.com/thread.jspa?threadID=1706328

Mañana al centro de servicio Telcel a hacer fila para que resuelvan esto......uffffffffffff!!

iPhone 2.1 Software Upgrade Fried my SIM Card

Being the geek I am, as soon as I learned about the new iPhone 2.1 software upgrade, I installed it on my almost brand new iPhone 3G (not jailbroken) purchased from Telcel in Mexico a couple of weeks ago.

After upgrading, I got a "No SIM" message. I reset the iPhone. Still the same message. I took out the SIM and cleaned it. Same message.

When I later got to the office, I "traded" SIMs with a friend who got his iPhone 3G at the same time. He hasn't "upgraded" yet. His SIM works on my phone. My SIM does not work on his phone.

So, upgrading to 2.1 somehow "fried" my SIM card. I am not alone:

http://discussions.apple.com/thread.jspa?threadID=1706328&tstart=0

I run iTunes on Mac OS X 10.5.4 on a Mac Pro (early 2008).

8.25.2008

¿Por qué Silverlight es tan importante?

Con la ya cercana liberación de Silverlight 2.0 Microsoft está haciendo una de las apuestas más fuertes de su historia. Si Silverlight tiene el éxito esperado y se convierte en un estándar "de facto" va a abrir un mundo de posibilidades donde con un conjunto de habilidades de desarrollo muy similares, podremos crear aplicaciones profundas para el escritorio (WPF) y de amplio alcance (multiplataforma) para el web. Es también la plataforma de lanzamiento de un CLR de .NET genuinamente multiplataforma. Esto es enorme y no debe de subestimarse.

Silverlight es en mi opinión la apuesta de Microsoft para colocarse con fuerza en un mundo donde la presencia de la plataforma .NET, aunque interesante, ha dejado que desear. Desafortunadamente la mayor parte de las aplicaciones web públicas afuera están hechas en otras plataformas (en Intranets y corporativos es otra historia). La tecnología Microsoft debe de recuperar un espacio prominente en el espacio del consumidor final junto con la percepción perdida de innovación si queremos incorporar a las mentes jóvenes creadoras que hoy francamente se sienten más atraídas por otros jugadores de la industria (you know who you are).

En mi opinión Microsoft debe de desplegar agresivamente Silverlight 2.0 una vez liberado a todos los escritorios posibles, incluyéndolo con tantos productos como sea posible y en Windows Update. Es fundamental que la penetración de mercado de esta tecnología se acerque lo más pronto posible a la de Flash de tal forma que sea una verdadera opción para la mayor parte de los sitios web allá afuera. Microsoft ha tenido que ir despacio con este tema por las preocupaciones anti-monopolio del pasado. En mi opinión, deberían empujar esto hacia afuera lo más rápido posible si quieren ser relevantes en el mundo de desarrollo web. Market share is the name of the game.

También creo que nos toca un esfuerzo como desarrolladores de software capacitados en plataformas Microsoft. Hemos hecho un pobre trabajo de convencer a nuestros "congeneres" diseñadores web de utilizar Silverlight. Los principales interesados en que nuestras habilidades sigan siendo relevantes en un mundo totalmente webificado deberíamos de ser nosotros. Si logramos convencer y entrenar a nuestros amigos diseñadores en las herramientas de Expression, nos estamos ayudando a nosotros mismos a mantener relevantes, atractivos y rentables nuestros conocimientos de Visual Studio y los lenguajes y herramientas de .NET en general. ¿O prefieren integrar sus aplicaciones .NET con front-ends en Flash donde la mayoría de nosotros simplemente no tenemos ni idea? Cada vez que conviertes o invitas a un diseñador a probar y utilizar Expression, te estás ayudando a ti mismo.

He tenido algo de experiencia trabajando con WPF y adoro ese modelo de programación. Es mucho más productivo que Windows Forms y que ASP.NET (sin duda) una vez que pasamos la curva de aprendizaje. Silverlight nos da la mayor parte de esos beneficios para un mundo multiplataforma.

A Microsoft le toca también dejar de hacer osos como sacar nuevos sitios de marketing en Flash (Mojave Experiment) y hacer todo, absolutamente todo con Silverlight. Hay que empezar por la propia casa.

En resumen, si queremos que nuestras habilidades sean realmente relevantes en el mundo web, necesitamos que Silverlight gane la batalla de penetración de mercado. Si no, bueno, a ponerse a estudiar de Flash y Air. Yo tengo claro como quiero que termine esto.

7.24.2008

"Mojave" o la Percepción sobre Windows Vista

¿Qué pasa con Windows Vista? En toda mi experiencia profesional de trabajar con Microsoft nunca había presenciado un lanzamiento de producto tan problemático. Vista se ha convertido para muchos en objeto de burla. Seguido escuchamos malas noticias al respecto. Parece que Microsoft no ha podido convencer a nadie de que es un sistema operativo que vale la pena. El factor "cool" ha quedado totalmente ligado a "todo excepto Vista". Parece que Mac OS X fuera un sistema operativo de otro nivel y la última Coca-Cola del desierto.

Yo fui un "early adopter" de Windows Vista. Lo opero hoy continuamente en 4 computadoras. Dos portátiles, un media center y una Mac Pro (en la que también a veces utilizo Mac OS X -- como ahora que escribo este post). En una portátil y en la Mac uso la versión de 64 bits y en las otras dos la de 32 bits. Jamás regresaría a XP. En mi experiencia Vista es:

- Más seguro
- Más fácil de usar
- Más rápido
- Y si, más estable!!

¿Cómo puede haber tanta diferencia de opinión y cómo llegamos a este punto tan desafortunado para Microsoft? ¿Qué errores se cometieron?

1. Microsoft no fue suficientemente transparente en cuanto a los requerimientos de hardware de Windows Vista. Jamás se debió haber lanzado el programa de logo "Windows Vista Basic Capable" (o algo así) con requerimientos de hardware tan reducidos. Sin el hardware adecuado Vista funciona mucho peor que XP. Microsoft no fue honesto al respecto cuando lanzó Vista.

2. De manera similar, los requerimientos mínimos que aparecen en las cajas "retail" de Windows Vista debieron haber sido más altos. ¿para que vender un producto cuando sabemos que con el hardware que pedimos la experiencia del usuario será miserable?

3. Este punto no es problema de Microsoft, pero sin duda afectó la efectividad de Windows Vista. Muchos fabricantes de hardware simplemente no estuvieron listos con los drivers adecuados cuando salió Vista (aunque todos en la industria sabíamos años antes lo que teníamos que hacer) lo que provocó, también, que la experiencia de usuario para quien “actualizaba” fuera nefasta. Pocas cosas molestan más que “ya no puedo usar mi impresora por culpa de Vista!”.

4. User account control. Microsoft no pudo comunicar los beneficios de esta función adecuadamente. Por cierto, UAC está encendido hasta la fecha en todas mis PCs. Se convirtió en objeto de burla. Su diseño podría haber sido mejor, si, pero tampoco es para tanto. Ni que nos dieran calambres en el dedo indice.

Hoy el asunto de los drivers está prácticamente resuelto y Vista es aun mejor que cuando salió por los ajustes del SP1. Microsoft entiende que tiene un grave problema en sus manos y por eso anunció hoy una iniciativa de publicidad y relaciones públicas muy interesante. Resulta que reunió en San Francisco a un grupo de usuarios de Windows XP que odiaban Vista para pedir su opinión en un “focus group” sobre la siguiente versión de Windows llamada “Mojave”. Resulta que les encantó esa nueva versión de Windows. Sólo que hay un pequeño detalle. Lo que se les mostró en realidad era nada más y nada menos que……Windows Vista. Más información aquí: http://news.cnet.com/8301-13860_3-9998336-56.html

¿Por qué nos importa esto como desarrolladores de software?

La respuesta es muy simple. Mayor adopción de Vista significa mayor adopción del .NET Framework 3.0, incluyendo Windows Presentation Foundation, Windows Workflow Foundation y Windows Communication Foundation. Nos da una plataforma mucho más atractiva y productiva para desarrollar nuestras aplicaciones.

Se que se puede instalar sobre XP, ¿pero cuanta gente realmente lo hace? Podríamos hacer aplicaciones mucho mejores si la base instalada estuviera ya en Vista. Por eso nos importa.

Si les gusta más Mac OS X, suerte trabajando con XCode y Objective C. La mayoría regresarán arrastrándose a Visual Studio 2008 después de intentar programar en esa cosa.

5.29.2008

Tiempo de Arranque Inicial en Aplicaciones .NET

Para un proyecto en desarrollo estamos evaluando la posibilidad de hacer todo en C++ en lugar de una combinación C++/C# (queremos usar WPF). La razón de esta decisión es una: nuestra aplicación debe iniciarse al iniciar la PC y el tiempo de arranque de .NET es demasiado largo para la experiencia de usuario que queremos lograr. Nuestro caso es muy drástico, ya que buscamos tiempos de arranque virtualmente instantáneos. Si nos decidimos por C++ de forma exclusiva vamos a perder bastante productividad en el proyecto al abandonar WPF.

El problema de lentitud en el primer arranque de una aplicación en .NET (cold start) no es nuevo. Es tan importante que una de las principales mejoras que .NET 3.5 SP1 ofrecerá próximamente es precisamente la disminución de ese tiempo. El arranque después de la segunda vez (warm start) es mucho más rápido y no es un problema tan grave. Además de lo que pueda hacer Microsoft, hay diversas técnicas para mejorar la velocidad de arranque la primera vez (cold start) de una aplicación WPF. Las principales son:

  • Mejora la percepción del usuario utilizando una pantalla de arranque (splash screen) que puede ser en código nativo. http://blogs.msdn.com/jgoldb/default.aspx
  • Pospón cualquier inicialización que no sea indispensable.
  • Coloca cualquier ensamblado con "strong-name" en el GAC.
  • Examina la posibilidad de pre compilar tu aplicación con NGEN
  • Si usas authenticode, evalúa si realmente lo necesitas. Todo el código authenticode debe ser verificado con la autoridad certificadora y eso toma tiempo. Es posible deshabilitar este proceso a partir de .NET 3.5 así:


     

    <configuration>

    <runtime>

    <generatePublisherEvidence enabled="false"/>

    </runtime>

    </configuration>


     

    Info aquí: http://msdn2.microsoft.com/en-us/library/bb629393.aspx


     

  • Minimiza el uso de serialización. Si la necesitas, trata de usar BinaryFormatter en lugar de XmlSerializer.
  • Configura el servicio "PresentationFontCache" para que arranque automáticamente. Este servicio es utilizado por la primera aplicación WPF que corre en la PC e incurre en un tiempo de arranque.

Como siempre tratándose de temas de desempeño es fundamental mediar el impacto que tenga cada cambio que hagas. Adivinar no funciona.

5.22.2008

Una Primera Vista al SDK de Apple para la iPhone……o No

Ayer descargué el SDK de Apple para el iPhone. Durante años he estado involucrado con el desarrollo de sistemas móviles y embedded por lo que me interesó darle una revisada. Me parece que el éxito del iPhone es innegable en el mercado. Parece ser el teléfono que todo mundo "quiere tener" y hay que reconocer que Apple sabe hacer muy bien las cosas cuando se trata de experiencia de usuarios y facto "cool". Además el universo de gente con iPhone (sobre todo en América Latina dónde aun no sale oficialmente a la venta) es un interesante grupo de early adopters de la tecnología y de tomadores de decisiones. Pronto será más relevante en América Latina dados los acuerdos (estos si ya oficiales) que Apple anunció recientemente con los principales operadores de telefonía celular en la región incluyendo a América Móvil (Telcel en México). También será más relevante en espacios corporativos dada su anunciada funcionalidad ActiveSync, licenciada de Microsoft, para interconectarse a servidores Microsoft Exchange.

Desde hace algún tiempo la comunidad hacker había encontrado la forma de romper los candados de seguridad del iPhone para poder instalarle software de terceros, cosa que originalmente no era aprobada por Apple (sólo podías hacer aplicaciones que corrieran dentro del navegador de Internet). De hecho, los kits de desarrollo de la comunidad hacker exponen más funcionalidad de la que expone el SDK "oficial" de Apple aun hoy. Sin embargo, estos kits hacker están pobremente documentados por lo que creo que la mayoría de los desarrolladores hacia adelante gravitarán más hacia el SDK oficial aunque esté un poco más limitado. Una desventaja importante del SDK oficial es que requiere una Mac Intel con Leopard (OS X 10.5) para poder desarrollar, mientras que con los kits hacker puedes desarrollar en una PC con Windows o Linux.

Quisiera hablarles más del SDK pero…..al bajarlo Apple te hace aprobar un acuerdo que básicamente dice que todo lo que veas está bajo NDA. Así que cada quien tendrá que bajar el suyo de http://developer.apple.com/iphone/index.action y revisar la documentación por sus cuenta (o en foros privados de Apple con colegas cercanos que también hayan bajado el SDK).

Esto me parece una de las ideas menos afortunadas que he visto recientemente. Ya me he encontrado con algunos blog posts de expertos en desarrollo para iPhone que se han tenido que quitar por "violar el NDA". Para un ejemplo: http://www.cocoamachine.com/blog/ Creo que uno de los elementos más poderosos que tenemos como desarrolladores es participar en las comunidades de colegas. ¿Cuántas veces no encontramos un ejemplo resuelto en algún post de otro colega? Apple al limitar esto en mi opinión dificulta innecesariamente la construcción de aplicaciones para su plataforma. ¿Ustedes que opinan?

Microsoft es mucho, mucho más abierto hacia los desarrolladores. Vale la pena que los adoradores de Apple reflexionen un poco sobre esto.


 

5.15.2008

¿Que hay de nuevo en .NET 3.5 SP1?

Hace unos días Microsoft libero la versión Beta del service pack 1 para .NET 3.5. Todos los detalles están en el blog de Scott Guthrie (en inglés), vicepresidente de la division de herramientas de desarrollo de Microsoft.

A continuación un breve resumen:


Mejoras a desarrollo web con ASP.NET:

  • Soporte de "andamiaje de datos". Mejoras a los controles de datos de ASP.NET para facilitar la construcción de aplicaciones simples de datos. Tutoriales de Scott Hanselman aquí.
  • Sistema de ruteo dinámico que te permite controlar totalmente como se ven tus URLs.
  • Integración desde ASP.NET AJAX con los botones de "Back" y "Forward" de tu navegador.
  • Combinación de scripts en una página con el elemento .
  • Mejor desempeño en el diseñador web.
  • Opciones para formatear JavaScript en el editor de código como tu quieras.
  • Mejor soporte IntelliSense en JavaScript para librerías comunmente utilizadas como JQuery, Prototype, Scriptaculous, y ExtJS.
  • Mejor soporte de refactoring para servicios WCF. Ahora Visual Studio corrige las referencias en tu web.config y las referencias SVC.
  • La versión gratis Visual Web Developer 2008 Express Edition ahora te permite desarrollar proyectos de librería de clases y web applications.

Mejoras a desarrollo de smart clients:

  • Arranque inicial más rápido de aplicaciones .NET la primera vez que cargan
  • Nueva instalación de .NET más ligera para clientes. Esta versión de .NET no incluye por ejemplo todas las librerías web que normalmente no se usan en un cliente, entre otras. Por lo tanto, es más pequeña, su descarga es más rapida y facilita el despliegue. En Visual Studio puedes marcar que deseas soportar este subconjunto de .NET y se verificará que tu codigo no use algo fuera de este.
  • Nuevo y mejorado instalador de .NET (bootstrapper) que puedes incluir en el instalador de tus aplicaciones, simplificando el despliegue.
  • Múltiples mejoras a ClickOnce incluyendo soporte desde Firefox.
  • Nuevos controles de Windows Forms: Imagenes vectorizadas, forma de impresión y repetidores de datos (para reportes principalmente).
  • Mejor desempeño de WPF (Windows Presentation Foundation) en muchos escenarios de dibujo y animación y mejor escalabilidad en controles que manejan datos como ListBox, ListView y TreeView.
  • Mejoras multiples al Data Binding de WPF.
  • Soporte a efectos de sombreado (distorsiones) que corren en el procesador gráfico. Los puedes programar tu mismo.
  • Interoperabilidad entre WPF y Direct3D.
  • Mejoras al editor de XAML de Visual Studio.

Mejoras en el acceso a datos:

  • Soporte a SQL Server 2008 en todos los diseñadores de Visual Studio
  • Nuevo ADO Entity Framework y LINQ to Entities. Esto es todo un tema, puedes encontrar un tutorial aqui en inglés.
  • Librería ADO.NET data Services para crear servicios REST facilmente.

Mejoras a WCF (Windows Communication Foundation):

  • Mejoras a escalabilidad
  • Soporte al ADO.NET Entity Framework (mencionado arriba) en contratos WCF

Mejoras a VB y C#:

  • Deducción de un esquema XSD de cualquier fuente XML directamente en VB.
  • Mejor detección de errores de semantica en tiempo de edición (antes de compilar) en C#.

También hay muchas mejoras a Team Foundation Server y solución de muchos bugs. Recuerda que esta es una versión beta así que ten cuidado al usarla. Microsoft planea liberar la versión final este verano (yo estimo agosto-septiembre). Mientras puedes bajar el beta de aquí.

4.03.2008

Debugging a Windows Vista Credential Provider with Visual Studio 2008 (Without Kernel Debugging!)

I have spent the past couple of weeks working on a multifactor biometric Vista Credential provider. I downloaded the most recent sample code here and went through the steps outlined in that download's readme to set up kernel debugging between my Vista 64 host dev machine and my Vista 32 VM target machine through a VMWare named pipes serial port. I was able to break into the debugger successfully when LogonUI.exe was loaded and I could send command line debugger commands with no problems. However, I am not an expert with these low level debuggers and as hard as I tried, I couldn't get the graphical debugger going, I could only work through the command line and didn't like it one bit. I believe it has something to do with the fact that I was piping the user mode debugger through KITL.

In any case, I decided to give a shot to "standard" Visual Studio 2008 remote debugging for this scenario. I installed the VS 2008 remote debugger on the target VM and set it up for remote debugging through the shared network connection. It worked like a charm, though it has one caveat that I haven't solved yet (but can live with to get standard VS debugging):

  • I can only attach to LogonUI's process after it has launched. This means I cannot set a breakpoint in my Credential Provider's initialization methods. So if I have to debug that I have to fall back to the command line debugger.

Other than that, it works nicely and it is a much more productive way of debugging a Vista Credential Provider.

3.26.2008

Cuando Windows No Quiere Abrir Más Ventanas (…o una razón más para instalar Vista SP1)

Quizá les haya sucedido que, cuando ya tenemos muchas ventanas abiertas las aplicaciones dejan de dibujarse bien o simplemente ya no abren más ventanas, tabs o controles. Esto sucede, por ejemplo, si abrimos aproximadamente unos 30 tabs en Internet Explorer o unas cuantas sesiones simultáneas de Visual Studio. Lo interesante es que pasa aún cuando según el administrador de tareas tengamos aun mucha memoria disponible. Pasa en Windows XP y en Windows Vista también.

El problema es que cada sesión de escritorio (desktop) interactiva de Windows cuenta con un espacio de memoria limitado que utiliza User32.Dll para crear objetos gráficos como ventanas, menús, controles, etc. Este espacio de memoria es de 3,072KB en Windows Vista (sin SP1) y se define en esta llave del registry:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems]
Windows="%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16"

Si estén teniendo problemas con esta limitante, pueden incrementar el valor de 3072 a uno mayor. Es importante hacerlo en incrementos relativamente pequeños (por ejemplo, de 1024KB) hasta que ya no tengan en problema. Si lo incrementan de más Windows puede dejar de arrancar.

El service pack 1 de Windows Vista aumenta este valor a 12,288KB por lo que con SP1 no debe de presentarse más este problema. También vale la pena mencionar que las versiones de 64 bits de Windows Vista manejan 20MB para este espacio y tampoco presentan este problema. La discusión detallada de este tema la pueden encontrar en estos tres artículos (en inglés):

http://blogs.msdn.com/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx

http://blogs.msdn.com/ntdebugging/archive/2007/07/05/desktop-heap-part-2.aspx

http://blogs.msdn.com/ntdebugging/archive/2008/03/20/the-default-interactive-desktop-heap-size-has-been-increased-on-32-bit-vista-sp1.aspx

3.18.2008

WideOpen Web: When Things Go Wrong - A Restore Windows PowerShell Script for the December 2007 FolderShare Bug

Ok, so it's not that recently that FolderShare decided to delete all your files that had certain characters (accents, trademark signs, etc.). This happened at the beginning of December 2007. You can find a detailed description of the problem (and Microsoft's response) here: http://www.techcrunch.com/2007/12/11/foldershare-autodeletes-files-whoops/

I am a heavy user of FolderShare and have been mostly happy about it, using it to synchronize files between my Laptop and my two desktops. This bug really bit me, since I use those "special characters" a lot since I am Mexican and like to spell correctly in Spanish. Ever since the bug bit me I just copied all my deleted files from FolderShare's trash to a brand new folder under my documents that I creatively named "FolderShare Stupidity". Literally thousands of my files now lived there instead of in my carefully crafted personal structure. All that was left in the original folders was the FolderShare marker "*.p2p" files.

Today I had a little too much time on my hands so I decided to play a bit with Windows Powershell (I had never used it before). It sounded like the right tool for the job in trying to build a simple script to restore my files to their proper locations. I originally intended to write a quick C# program to fix this but after today I can tell you that PowerShell is definitely the right tool for the job.

This is the script that I wrote:

#* FileName: FixFolderShare.ps1

#*=============================================================================

#* Script Name: FixFolderShare.ps1

#* Created: 170308

#* Author: Hector Obregon

#* Company: emLink

#*=============================================================================

#* Purpose: Fix FolderShare incorrectly moved files

#*=============================================================================


$items = get-childitem -path "C:\Users\hobregon\Documents" -recurse -include *.p2p

foreach ($f in $items)

{

$origname = $f.name.Replace(".p2p", "")

Set-Location "C:\Users\hobregon\Documents\FolderShare Stupidity"

$origitem = get-childitem $origname

$origfile = $origitem.fullname

$destfile = $f.fullname.Replace(".p2p", "")

Write-Host $origfile

Write-Host $destfile

copy $origfile $destfile

del $f.fullname

}

Be very careful if you decide to use the script yourself. I don't make any guarantees and will not be held responsible for any loss of data you may experience. Caveat emptor.
Having gotten that out of the way, this is what you need to do:

1. Download and install Windows PowerShell 1.0 following instructions here: http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx

2. Open notepad and copy the script above and save it somewhere on your disk. Do not execute it yet.

a. Replace "C:\Users\hobregon\Documents" in the first line of the script above with a root folder underwhich you have many "orphaned" p2p files.

b. Replace "C:\Users\hobregon\Documents\FolderShare Stupidity"
inside the foreach loop above with the folder path in which you restored all your FolderShare deleted files after the bug hit.

c. Save the modified script.

3. Launch PowerShell and execute this statement to allow it to execute local unsigned scripts: set-executionpolicy RemoteSigned

4. Execute the modified script by navigating to the directory where you saved it and typing .\ before the name of your modified script file.

5. If you are paranoid about script execution, restore PowerShell execution policy to deny scripts like this: set-executionpolicy Restricted

This script will try to find all of your orphaned P2P files and restore them to their proper locations. It will not delete any of your files except the orphaned P2P FolderShare marker files.

I just found out today that FolderShare has come out with a new "Windows Live" version. I will wait it out and make sure it is stable first.

3.11.2008

WideOpen Web: Conclusiones y Comentarios Finales de MIX ’08 en Las Vegas

El mejor momento de Mix '08 me pareció sin duda la conferencia magistral donde Guy Kawasaki entrevistó a Steve Ballmer. Guy es probablemente el "evangelista tecnológico" más reconocido de la industria y no se caracteriza precisamente por ser pro-Microsoft. Trató a Ballmer "sin miedo" haciéndole algunas preguntas difíciles (o al menos más difíciles de las que normalmente se le hacen a un ejecutivo de ese calibre). La sesión fue bastante divertida – chequen cuando Ballmer "Don't go monkey on me, Steve." si se fue monkey: http://www.news.com/1606-2-6233485.html . En cuanto al contenido real:

  • Microsoft tras Yahoo fundamentalmente por razones de escala. La publicidad en Internet es un gran negocio y la escala (a cuanta gente puedes llegar) cuenta.
  • Microsoft reconoce el liderazgo de Google en este espacio y quiere "recortar la distancia".
  • Reconoce el buen trabajo de Apple en el espacio del consumidor, aunque en mi opinión aquí le falta más humildad a Microsoft.

En general Kawasaki no tiene "pelos en la lengua" y fue tras Ballmer en todos los temas difíciles hoy para Microsoft.

Asistí también a varias sesiones técnicas después. Lo mejor sin duda Silverlight 2.0 como comenté en mi post anterior. Sin embargo, otros temas interesantes:

  • Un conjunto de adiciones para integrar Silverlight 2.0 con Microsoft Sharepoint en varios escenarios. Sharepoint es una de las tecnologías más "calientes" de Microsoft en este momento y la combinación con Silverlight 2.0 me parece muy buena. Los llamados Silverlight Blueprint for Sharepoint soportan varios escenarios comunes de negocio. Más información aquí: http://www.ssblueprints.net/sharepoint/
  • Mejoras a WPF 3.5. Aunque en el Mix WPF parecía un poco olvidado en relación a su hermano menor Silverlight, en una sesión que estuve se anunciaron mejoras que muestran que Microsoft sigue y seguirá invirtiendo en esta tecnología (finalmente es el futuro de las interfaces de usuario en Windows). Entre otras cosas, WPF soporta más aceleración de hardware y la posibilidad de hacer pequeños programas para efectos gráficos que se ejecutan en el GPU sin necesidad de usar DirectX. El foco principal del equipo de WPF parece estar en mejorar el desempeño y la estabilidad. Me parece una buena decisión antes de seguir agregando funcionalidad a un producto que ya es impresionante.
  • Silverlight para dispositivos móviles. Lo mejor fue el anuncio de que Nokia va a soportar Silverlight en varios de sus modelos. Sin embargo, Silverlight móvil por ahora soporta una funcionalidad más o menos equivalente a la versión uno de escritorio. Me parece pesado, difícil de programar (sin controles y todo en JavaScript) y como en el espacio móvil de consumidor la penetración de Windows Mobile es aun baja, creo que es un pequeño paso que no será hasta la versión 2 o 3 que funcione realmente para aplicaciones masivas. En los demos funcionaba bien, pero muy lento. En mi opinión la lentitud es algo que los usuarios no toleran fácilmente en su móvil. Me hubiera gustado más que Microsoft hiciera primero un WPF light para el Compact Framework, ya que su fuerte son las aplicaciones empresariales, que la mayoría de las veces funcionan en escenarios parcialmente desconectados. Silverlight móvil solo funciona en escenarios totalmente en línea.

Finalmente, lo mejor de MIX es que, aun si no estuviste allí, las sesiones están disponibles sin costo en http://sessions.visitmix.com/ .Te recomiendo checarlas.

3.06.2008

Primeras Impresiones de Mix ‘08

Los MSDN Regional Directors de todo el mundo estamos unificando nuestros esfuerzos editoriales alrededor de un tema mensual que llamamos WideOpen Web y nos estaremos enfocando durante marzo a blogear sobre las iniciativas web de Microsoft. Hoy inició la conferencia Mix '08 en Las Vegas y en ella Microsoft hizo anuncios y demostraciones muy importantes.

Dado que hay muchos sitios de noticias en Internet reportando sobre eso, más que repetir lo que hay en todos lados, quiero comentar aquellos aspectos que me parecieron más interesantes de hoy para los desarrolladores y diseñadores de aplicaciones web (de más a menos importante):

  1. Silverlight 2.0 Beta 1: Simplemente impresionante. Es increíble que una descarga de tan sólo 4.7 MB pueda hacer lo que hace Silverlight. Ahora si me parece una plataforma completa para desarrollar aplicaciones ricas basadas en el navegador. Funciona en Firefox (desde 1.5), IE (desde el 6.0) y Safari (desde 2.0). En Windows desde 2000 hasta Vista y en Mac OS X Tiger y Leopard. Está convirtiendo a .NET en multiplataforma. ¿Qué vimos hoy que hay de nuevo vs. Silverlight 1.0?


     

    1. Controles: Finalmente, no necesitamos codificar controles a mano. Me impresionó particularmente que incluye un DataGrid que se ve bastante bien. También una excelente noticia es que Microsoft proporcionará estos controles con todo y código fuente en una licencia totalmente permisiva. Los controles soportan el esquema de templates y estilos del WPF de escritorio, lo que los hace increíblemente flexibles.
      1. Vale la pena una mención aparte el control de "Deep Zoom" de Silverlight 2. Permite de manera muy sencilla exponer enormes bitmaps a través de Internet que ofrecen una experiencia de "acercamiento" que pareciera infinito. Entren a memorabilia.hardrock.com. Wow.
    2. Soporte a Lenguajes .NET como C#, VB.NET además de IronPython y, como siempre, JavaScript. Es un soporte a lenguajes .NET de primera clase que incluye genéricos y LINQ to XML.
    3. Detección de cambios en el estado de la conexión de red. Esto nos permite detectar si perdemos conexión al servidor y evitar el colapso de nuestra aplicación. Incluso puede ser el inicio de aplicaciones "ocasionalmente conectadas" basadas en el navegador.
    4. Integración con la "historia" del navegador. Esto sirve principalmente para que los botones de "adelante" y "atrás" del navegador funcionen dentro de nuestra aplicación Silverlight como el usuario lo esperaría.
    5. Soporte para obtener datos de un dominio diferente al de que descargamos la página, siempre y cuando en el tercer dominio haya un archivo de política que lo autorice.

    Las demostraciones de Silverlight 2.0 fueron muy completas y, al menos de primera instancia, parece bastante estable y completo – Microsoft ofreció el Beta 2 para el Q2 de este año con una licencia Go Live. Yo creo que si lo lograrán por lo que vimos hoy. El beta liberado hoy se acompaña de herramientas preliminares para Visual Studio 2008 que funcionan razonablemente bien. Puedes bajar las herramientas para Visual Studio 2008 (que incluyen el runtime de Silverlight 2) de aquí: http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&displaylang=en

  2. Internet Explorer 8 Beta 1: Sabemos que la competencia le hace bien a Microsoft. El avance de Firefox y otros navegadores provoca innovación en IE. ¿Qué hay de nuevo?


     

    1. El enfoque centrado en estándares. Microsoft afortunadamente decidió esta semana que el "modo por omisión" de IE8 será dibujar las páginas web de acuerdo a estándares en lugar de en un modo de compatibilidad con IE7. Esto facilitará mucho el trabajo para diseñadores de sitios web, que hasta ahora tienen que trabajar para "darle la vuelta" a las idiosincrasias particulares de IE7. Mediante un tag especial, los sitios web existentes podrán identificar si IE8 los dibuja en modo de estándares o en modo de compatibilidad con IE7.
    2. Depuración de scripts con una muy interesante forma de depurar la manera como IE aplica los estilos de CSS (ahora hasta 2.1). Podemos navegar a un objeto del DOM en nuestra página y con un click entender de que estilo CSS viene cada propiedad que está aplicando.
    3. Actividades: ¿Se acuerdan de los Smart Tags? Las activities son algo similar pero con una programación declarativa mucho más sencilla, totalmente declarativa.
    4. WebSlices: Son clips de nuestros sitios web. Se mostró un ejemplo con una subasta de eBay. También muy sencillos de programar.

    Los betas de Internet Explorer se pueden descargar aquí:

Me parece que Microsoft está realmente esforzándose para ser competitivo en el espacio de Internet y lográndolo. Mañana como parte de Mix habrá un keynote de Steve Ballmer con Guy Kawasaki. Probablemente habrá más noticias interesantes.

Finalmente, les recomiendo que visiten The Region. Este sitio agrega los blogs de todos los directores regionales de MSDN del mundo y este mes tendrá literalmente cientos de artículos sobre estas iniciativas WideOpen Web de Microsoft.