julio 11, 2009

Caminando sobre las nubes

Cloud

En mi último post comenté que estoy tratando de mantener todo lo que puedo de mi actividad en “cloud services”, o servicios hosteados por terceros.

Toda la industria está moviendose hacia este paradigma y por ahora los frenos principales tienen que ver con temas de confidencialidad o privacidad, disponibilidad (sobre todo al estar offline), y garantías de permanencia del servicio.

Pero veamos algunos de los servicios que uso y que hasta ahora me han resultado útiles (otros los he probado y descartado). Como van a ver, algunos se solapan en características, pero uso varios porque hay ciertas cosas que necesito de uno y de otro que me resultan convenientes. Se podría decir que lo que falta es UN servicio que cubra todo, pero en realidad creo que la diversidad es saludable.

Evernote

Este es posiblemente el que más uso, porque es sumamente sencillo y rápido para acceder. Evernote es simplemente una aplicación para tomar notas, con clientes disponibles para Windows, Mac, Win Mobile, iPhone y muchos otros dispositivos, y por supuesto, accesible directamente en la web.

Tomo una nota en mi teléfono (Samsung Black Jack II, que no recomiendo a nadie), en alguna de mis computadoras (Windows o Mac), o en la web, y automáticamente está disponible en todas las demás, con una interfaz muy sencilla, que siempre está disponible.

Evernote soporta texto, imagenes (directamente desde el teléfono, por ejemplo), capturas de pantalla, audio, etc, y cualquier notas lleva un título y tags, pero además todo su texto es indexado, incluyendo el texto dentro de las fotos. Si, Evernote aplica un proceso de OCR muy bueno, e indexa también ese contenido. Ideal para cuando se toman fotos de pizarrones, tarjetas, anuncios, etc.

Las notas se pueden enviar por mail, twittear, o arrastrar en los clientes Mac y Windows. Es muy versátil.

Se puede ver más en este video promocional:

Live Mesh Beta

Mesh es un servicio excelente de Microsoft que también está disponible para Windows, Mac y Win Mobile, y un escritorio web muy sofisticado.

Como en el caso anterior, permite sincronizar archivos entre varios dispositivos, pero con más opciones, ya que son archivos de todo tipo, no solamente notas. Claro que podría utilizarse para notas también, pero no está opimizado para esto, sino para compartir el contenido de los directorios que uno publica.

Personalmente lo uso bastante para mantener copias de archivos en varias máquinas, incluso compartiendolas con otra gente, algo en lo que Mesh se destaca.

Una última característica de Mesh que es muy importante es que permite acceder remotamente al escritorio de las diferentes computadoras sumadas, a través de el puerto 80, e incluso en el browser (requiere un plugin). El acceso es bastante rápido y no requiere más que el cliente de Mesh instalado en la máquina que se quiere controlar.

Esta es mi Mesh de dispositivos:

Mis dispositivos en Mesh

Y este es mi Live Desktop (esto se ve dentro del browser). Como pueden ver, es muy similar a un escritorio de Windows, e inclusive se pueden crear aplicaciones que corren allí adentro:

Mi Live Desktop

Live Mesh es mucho más que esto, ya que hay un protocolo de sincronización y un SDK, pero me limito a cubrir esta parte que es lo que utilizo.

Windows Live SkyDrive y Dropbox

Tanto Skydrive como Dropbox son discos virtuales en la nube donde uno puede subir y bajar archivos. Se complementan con Mesh porque con ellos se pueden compartir archivos o directorios individuales con usuarios particulares o el público en general.

Los uso mucho para compartir material de sesiones, ejemplos, u otras cosas para las que usualmente no necesito restringir mucho el acceso. En ambos casos se pueden crear links directos a los archivos, pudiendo mandarlos por mail cuando el tamaño supera lo que es un attachement.

Dropbox otorga 2 GB de almacenamiento gratuito y se integra con el Explorer de Windows y el Finder de la Mac con lo que se puede sincronizar con directorios locales.

Skydrive otorga ahora 25 GB gratuitos, pero mantiene un límite máximo de 50 MB por archivo que puede subirse. Mantengo Dropbox porque no tiene este límite (no se si lo tiene, realmente) y por la sicronización de carpetas, que es transparente.

En mi opinion, si Skydrive se fusionara con Live Mesh sería excelente, permitiendo centralizar todo y compartir links a archivos individuales. Pero Microsoft está explorando este espacio y tiene varios servicios que compiten entre si, como en este caso.

Google Apps

Finalmente, uso bastante los servicios de Google. Es largo cubrir todos, pero básicamente, brindan además del correo con acceso web, sitios estilo wiki, un procesador de texto, planillas de cálculo y presentaciones. El servicio básico es gratuito.

Estas últimas aplicaciones tienen funcionalidad mucho más limitada que la de los grandes paquetes, pero tienen la gran ventaja de ser accesibles online por diferentes usuarios, incluso a la vez.

Microsoft tiene un servicio similar llamado Office Live, pero hasta ahora sólo permite compartir los documentos, pero utilizando Office para editarlo, con lo que hay que descargarlos, y no soporta ediciones múltiples en simultáneo. Esta funcionalidad está anunciada para Office 14, que aún no está en Beta, pero las demos mostradas en PDC el año pasado entusiasmaban. Esperemos a verlo en la práctica, y ver el modelo de licenciamiento.

Otros servicios varios

Este post ya se hizo bastante largo, así que resumo un par de servicios complementarios que uso diariamente:

Delicious.com es donde almaceno mis favoritos. Allí están todos ordenados con tags, y en general, compartidos con la humanidad bajo la url http://delicious.com/msalias.

Google Reader es mi lector de RSS favorito, que me permita además compartir, reenviar por mail o marcar los post de los 206 blogs a los que estoy suscripto.

 

Esta lista no implica que no haya alternativas mejores para estos temas. En mi caso particular, usando varios dispositivos diferentes a la vez que cambio a menudo, moverme hacia la nube me quita problemas de movimientos y backups.

julio 07, 2009

¿Por qué este hardware?

MacPcVarios amigos y conocidos siguen sorprendiéndose de que use una MacBook.

La verdad es que vengo trabajando desde hace años mayormente en el mundo Microsoft, y la mayoría imaginan que uso Windows todo el tiempo… y es verdad, pero…

Hace tiempo que venía pensando en probar una Mac, y tuve la oportunidad de hacerlo durante un proyecto con mi colega geek Johnny Halife, todo un evangelizador en estos temas.

Los motivos son varios: primero, últimamente trabajo cada vez más en proyectos de interoperabilidad y con lenguajes diferentes. Incluso para Microsoft estuve trabajando recientemente en proyectos con C++ sobre Linux (casualmente en ese proyecto usé la Mac de Johnny varios días y me convencí).

Hasta pasarme a la Mac tenía el entorno al revés: Windows 7 como host y diferentes máquinas virtuales con distribuciones de Linux para correr Python, Mono, etc. Pero también uso siempre muchas máquinas virtuales con Windows, y Windows sobre Windows, en mi última notebook, era poco eficiente para trabajar regularmente.

Así que invertí los términos. Ahora uso como sistema operativo host Mac OS X (Leopard, hasta que salga Snow Leopard dentro de poco). Y gracias a la magia de VMWare Fusion, tengo funcionando Windows 7 RC a la vez, todo el tiempo, y en forma sorprendentemente integrada.

Picture 1

En la imagen pueden ver abiertos Visual Studio y Live Writer (mientras escribo este post) corriendo en Windows 7, y Safari, MonoDevelop y el Microsoft Messenger corriendo en Mac OS. Y como ven, las ventanas están todas en el mismo desktop, ya que Fusion permite ese modo (llamado Unity) en el que atrapa las ventanas por separado, de manera que no tengo que cambiar de un desktop a otro. Todo es prácticamente igual, salvo las obvias diferencias de los estilos (noten los típicos botones de minimizar, maximizar y cerrar, que en Windows están a la derecha y en Mac OS a la izquierda, además de tener distinta apariencia).

¿El resultado? Las aplicaciones que corren virtualizadas en Windows funcionan más rápido que en mi notebook anterior, sin virtualización. El secreto, obviamente, es la combinación de software y hardware totalmente propietario que permite que Mac mantenga una eficiencia y estabilidad impresionantes.

Y utilizar Mac OS es un entretenimiento adicional. Tiene cosas fabulosas y algunas carencias increíbles, pero eso da para otro post…

Lo cierto es que tengo lo mejor de ambos mundos, totalmente conectados, y eso me permite jugar entre Unix (Mac OS es un Unix remozado) y Windows, saltando de Mono a Visual Studio, de Python a IronPython y otras cosas divertidas.

Finalmente, también estoy intentando mantenerme firme en una decisión importante para minimizar el impacto de los cambios de máquina: estoy usando más y más servicios en la nube. Sólo instalo en un OS o el otro el software que no tiene alternativa decente en la web, e intento no mantener archivos en los discos sin sincronizarlos con algun servicio remoto. Prometo una lista comentada de los mejores de estos servicios para un próximo post.

junio 29, 2009

Seminario de Arquitectura en el MUG

Verona Desde el mes pasado estoy dando este seminario en el MUG sobre Arquitectura de Software. Aunque termina en septiembre y ya es muy tarde para sumarse, como hubo varios interesados tardíos, voy a tratar de ir comentando algunas características y resultados parciales aquí.

El formato del seminario es experimental, aunque tiene unas cuantas técnicas para mitigar el riesgo de este mecanismo “poco probado”. Básicamente, estamos iterando y refinando parte del proceso de avance sobre al marcha.

El cronograma incluye solamente cuatro reuniones presenciales en el MUG, una por mes, aunque en el interín estamos trabajando bastante a través de una lista de correo y un grupo en línea.

Como texto de referencia estamos utilizando la Application Architecture Guide de patterns & practices, la que describiré en más detalle en un próximo post. Seleccioné este libro por varios motivos:

  • AppARch2.0_smallEstá disponible para descarga en forma gratuita
  • Cubre en forma amplia el espacio de arquitectura de aplicaciones
  • Tiene varios niveles de lectura (introductorio, de referencia, como guía bibliográfica para profundizar, y como guía para orientar en el proceso de diseño de arquitectura).

Algo que estamos haciendo es ir más allá del contenido básico de la guía. Aunque es en general bastante independiente de la tecnología, tiene algunas secciones como la introducción a la plataforma .NET (el resto tiende a ser bastante neutro). Lo que estamos haciendo es tomar esta presentación para comparar la plataforma con otras.

También estamos haciendo bastante énfasis en las habilidades de comunicación, que son fundamentales en el rol del arquitecto, y por eso los participantes del seminario están entregando sus trabajos en formatos de presentación, y seguiremos avanzando en ese sentido.

Espero que parte del esfuerzo que los participantes están dedicando a este seminario se cristalicen finalmente en material que pueda compartirse con la comunidad de desarrollo y arquitectura en forma de blogs, artículos, y otros formatos.

abril 03, 2009

Un mundo pequeño… y acelerado

Cada vez pasamos más tiempo navegando, y usamos la web para llevar a cabo montones de tareas diarias tanto de nuestra vida laboral como personal.

Con la idea de optimizar estas cosas, Internet Explorer 8 incorpora algunas características nuevas, entre las que encuentro más intersante el concepto de aceleradores (accelerators en el original).

Como muestra me parece bueno tomar un ejemplo local (para Argentina), que me parece mucho más explícito que una explicación teórica.

Supongamos que estoy coordinando una cena con amigos. Buscando encuentro un restaurant que me gusta. Para saber cómo llegar, usualmente debería copiar la dirección, navegar a un servicio de mapas, pegarla, etc.

¿Cómo se acelera esta tarea? Veamoslo gráficamente (esto sólo funciona en IE8, obviamente):

image

Vean cómo al pintar la dirección aparece un ícono sobre la selección. Esto ocurre porque hay un acelerador instalado que entiende direcciones argentinas.

Hagamos clic en este ícono y veamos la secuencia que nos lleva al mapa:

image Comopuede verse, son un par de clics de distancia. El mapa aparece en el momento (en este caso, demoró apenas un segundo), sin tener que salir de la página donde estaba.

Para quienes ya tienen IE8 (si no lo tienen y usan IE 6 o 7, se los recomiendo), pueden obtener este acelerador en particular en:

http://www.livemaps.com.ar/instalar.html

El concepto es bueno, pero como siempre, la calidad de los servicios finales no está garantizada. Este acelerador hace un buen trabajo con direcciones de Buenos Aires soportadas por Live Maps Argentina, pero los resultados del servicio de traducción de Windows Live dejan muchísimo que desear.

marzo 25, 2009

RUN09 – Evento terminado

RUN09 - tomate un respiro Finalmente pasó el RUN09.

Con Brian “jQuery” Cardiff dimos la charla sobre MVC y Ajax, incluyendo Client Templates y jQuery (obviamente).

La verdad es que perdimos algo de tiempo con el proyector que tenía un contraste paupérrimo, pero creo que pudimos presentar lo que teníamos en mente, y espero ver los resultados de las encuestas, o comentarios en este blog de parte de los asistentes.

Mr. CardiffCopio los links que dejó Brian (un capo) en su post sobre el tema, así dejamos la info en inglés y castellano:

Demo con las tareas: run09-b1-sourcecode

Nerddinner: http://www.codeplex.com/nerddinner

Links:

Como siempre un placer participar en el evento junto a oradores mucho mejores que yo, aunque nos haya tocado hacerlo con las camisetas centelleantes (próximamente podrán verlas en video en el sitio del RUN09).

marzo 24, 2009

Silverlight empieza la tercera vuelta

Silverlight 3


La micro-plataforma RIA de Microsoft sigue creciendo, ahora extendiéndose incluso fuera del browser, lo que para mi la hace cada vez más interesante.

Como es de rigor, veamos un poco las nuevas características para los que no tuvieron tiempo de mirar todavía las sesiones del MIX 09:

  • Más controles
    Muchos que estaban en el Toolkit ya maduraron y están en el runtime, y el Toolkit sigue creciendo a pasos agigantados: DataGrid, TreeView, Dock/WrapPanel y varios más; pero también se agregaron controles de más alto nivel para orquestar las interfaces con el back-end, como DataForm, DataPager, Frame y Page (estos dos últimos cerrando un esquema de navegación que hacia falta).
  • Capacidad gráfica y de Media
    Más formatos de video y audio, incluyendo alta definición y soporte para formatos en crudo con la posibilidad de realizar la codificación dentro del runtime, abriendo la puerta a montones de codecs de terceros.
    Ahora el runtime aprovecha la aceleración gráfica de la computadora (tanto en PC como en Mac) y gracias a eso tiene soporte para perspectivas en 3D, shading, mejoras en la animación, control a nivel de pixels, ClearType (que hace el texto más legible), y el esperado soporte para intercambiar estilos en tiempo de ejecución.
  • Mejor programabilidad
    Con posibilidades como binding entre elementos, validación del binding, el API LocalConnection que permite orquestar diferentes aplicaciones Silverlight usando un modelo publish/susbscribe, control sobre el cache de assemblies, monitoreo de la conectividad, y…
  • Soporte para aplicaciones fuera del browser
    Esta característica era bastante esperada, y permite que la misma aplicación que ejecutamos dentro del contexto de una página pueda ejecutarse en una ventana dentro del Desktop, aunque mantiene el mismo contexto de seguridad que si corriese en el browser. Esto es ideal para aplicaciones desconectadas, y recomiendo este video de Tim Heuer (in english).

En resumen, esta versión de Silverlight sigue impulsando la idea de esta mini-plataforma. Recordemos que este plug-in de 4.6 MB (la versión 3, con todos los agregados, ocupa 40Kb menos) contiene el CoreCLR, buena parte de la Base Class Library, además de todo el motor gráfico y de media. Además, funciona en Windows y Mac, y muy pronto se libera definitivamente para Windows Mobile y Symbian, de la mano de Nokia. Y está, claro, Moonlight, la implementación para Linux de Miguel de Icaza.

Como el soporte fuera del browser funciona en Windows y Mac (y Moonlight ya lo hacía desde antes en Linux), y la aceleración gráfica también es multiplataforma, se abre un abanico enorme de posibilidades. Para mi lo que falta (y debe estar por llegar) es un buen soporte de base de datos local (utilizando el Isolated Storage).

Silverlight va rápido y está convirtiéndose en una plataforma madura. Esperemos que las herramientas logren ponerse al día, porque es lo que más impide una adopción rápida.

febrero 04, 2009

Introducción al Entity Framework

Universo Bit Finalmente quedó publicado un video que grabé tiempo atrás para un sitio en conjunto entre Technet/MSDN y Universo Bit.

Es una introducción bastante básica al ADO.NET Entity Framework, como siempre utilizando Windows Console Foundation. :)

No veo una manera muy sencilla de embeber el video, así que dejo el link a la página “Crecimiento Laboral”, donde hay otros más interesantes que el mío, que puede encontrarse por aquí:

image

Espero ir aportando más videos (y más accesibles) durante el resto del año.