Hugo, the Agilist Programmer

Microsoft ha preparado las nuevas herramientas de desarrollo con las que trabajamos en estos días, pensando en 3 personajes principales Mort, Elvis y Einstein. Cada uno de ellos posee sus caracteristicas personales, y cada uno de ellos representa un area de desarrollo, en pocas palabras:

 

Mort, the opportunistic developer, likes to create quick-working solutions for immediate problems and focuses on productivity and learn as needed. Elvis, the pragmatic programmer, likes to create long-lasting solutions addressing the problem domain, and learn while working on the solution. Einstein, the paranoid programmer, likes to create the most efficient solution to a given problem, and typically learn in advance before working on the solution. In a way, these personas have helped guide the design of features during the Whidbey product cycle

 

El mapeo original que haciamos hace un tiempo era Mort VB.Net, Elvis C# y Einstein C++. Sin embargo, Scott Bellware nos ha presentado un nuevo desarrollador con caracteristicas de los 3 anteriores y new features muy interesantes; Hugo.

 

El planteo que hace Scott, es bastante interesante ya que plantea conceptos como que Hugo desestima VSTS por herramientas Open Source, ya que la relación costo-beneficio no justifica la inversion inicial; el concepto de desarrollo de Hugo es 100% test-first programming utilizando tecnicas como TDD, etc; Hugo no cree en RAD, ya que la utilización incorrecta de este tipo de herramientas tienden a complicar el codigo y los componentes del mismo; etc.

 

Finalmente, Scott predice que tal vez Hugo sea el próximo eslabon en la cadena evolutiva de los desarrolladores.

 

Si tienen un tiempo, les recomiendo leerlo.

 

Saludos

Visual Studio 2005 – WebServices Contract First 6.0

 

 

Novedades.En www.ingoramer.com han liberado una nueva versión de WSCF (Web-Services Contract First) para Visual Studio 2005. La misma posee

 

           Full support for Visual Studio 2005 and .NET Framework 2.0

           Generation of partial classes

           Support for Nullable types

           Support for SOAP 1.2 binding

           Pascal case conversion is now optional

           Improved support for generating code from SSL-hosted WSDLs

           The parameter ?wsdl can be configured to return the modeled WSDL

           Option for generating different styles of async calling code

           Option for generating improved data binding code available

           Option for generating List<T> types instead of Collections

           As always – it’s free!

 

Y es un de los 10 must have addins de Visual Studio 2005, que MSDN Magazine propuso hace un tiempo. La pueden encontrar en http://www.thinktecture.com/WSCF

 

Saludos.  

Office 2007 – Calendar Time Zones

Office 2007, no deja de sorprenderme. Estaba tratando de reconfigurar algunas cosillas de Outlook, cuando en las opciones de Calendario, me encontre con la posibilidad de agregar una nueva zona horaria a la misma. Esta funcionalidad, que a simple vista no parece muy práctica, a mi en este momento me resulta super útil, ya que de esta manera puedo coordinar el trabajo entre 2 puntos del globo y de un solo pantallazo tengo una vista inmediata de las tareas y las fechas y horas de las mismas.

 

Para configurarlo, hay que ir a las clasicas opciones de Outlook. Luego seleccionar las opciones de Calendario.

 

 

Seleccionar Time Zone.

 

 

Y agregar un additional TimeZone, en mi caso Eastern Time (US & Canada).

 

Luego nuestra vista del calendario quedaría de la siguiente forma.

 

 

De una manera muy simple, podemos ver los items del calendario dentro de las 2 zonas horarias y de esta manera, no agendar por ejemplo, una call conference a las 09:00 AM hora Madrid, 03:00 AM hora Seattle.

Muy práctico, no ???

 

Saludos

 

PD: aquí les dejo una vista completa del Outlook, donde pueden ver que los cambios abarcan bastantes cosillas en el modo calendario.

 

Google CodeJam – India

No creo que mucha gente de la India revise este blog, pero como la convocatoria es para todos, apunto el dato. Desde el 20 de marzo, queda inaugurada otra edición del Google CodeJam, esta vez en la India. 

Para los interesados, pueden encontrar más informacion aquí.

 

Saludos

 

 

Hello elbruno,

 

As a participant of past Code Jams, we thought you would be interested in hearing about Google Code Jam India, Powered by TopCoder.  This exciting competition puts you head-to-head with some of the best coders. Take this opportunity to contend for prize money galore, because Google is giving away Rs. 1,500,000 in cash and prizes. You may not only win money, but a prospect to land a job for the future.

 

Registration is now open for the competition and will remain open through March 20, 2006 at 9AM IST (GMT +5:30).  Anyone intending to compete in this competition must register for the event through the registration path that has been set up exclusively for the tournament: www.google.com/Indiacodejam

Enterprise Library – WebCasts

 

Si quieres estar al tanto de los WebCasts de Enterprise Library 2.0, te recomiendo revisar periódicamente el blog de Tom Hollander (Product Manager @ Microsoft)

Por ejemplo, hace unos dias, hubo uno muy interesante sobre extensiones de EntLib.

Obviamente, tampoco debemos dejar de revisar la pagina de P&P, en la sección Upcoming WebCasts.

Finalmente, la pagina de Microsoft Events and Webcasts, es la lista completa de recursos.

 

Ahh, me olvidaba, Webcasts en Español !!! en ese caso, les recomiendo revisar el blog de Haaron Gonzalez. Hace unos días presento la 3ra parte de VSTS 2005, y la serie completa es buenísima :D

 

Saludos.

 

PD: Gracias a Haaron que me “prestó” el header de este post.

Visual Studio 2005 – BackgroundWorker

Mientras trabajaba con un par de WebServices integrando Devices con Microsoft CRM, recordé que para poder realizar llamadas asincrónicas a los mismos, ahora tengo otra opción más además de los métodos Begin y End que traen los Webservices.

 

Básicamente es trabajar con el control BackgroundWorker. El mismo es de muy simple utilización, simplemente lo agregamos a nuestro form y utilizamos los eventos DoWork() y RunWorkerCompleted().

 

Por ejemplo, supongamos que necesitamos invocar a un WebService pasando un parámetro desde el Clic de un botón y mostrar el resultado de esta llamada en un MessageBog. Luego de agregar un control BackgroundWorker y renombrarlo como bwHelloWorld, agregamos el siguiente código al evento clic del botón.

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Me.bwHelloWorld.RunWorkerAsync("bruno")

End Sub

 

Como pueden ver, invocamos al método RunWorkerAsync del BackgroundWorker y la pasamos como parámetro un string. Luego en el evento DoWork(), agregamos el siguiente código.

 

Private Sub bwHelloWorld_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwHelloWorld.DoWork

       Dim ws As New localhost1.Service1

       Dim res As String = ""

       res = ws.HelloWorld(e.Argument)

       e.Result = res

End Sub

 

Este método invoca al WebService y procesa la ejecución del mismo. Finalmente, el evento RunWorkerCompleted() es el que se dispara cuando se termina el proceso en DoWork(). Dentro del mismo agregamos el siguiente código.

 

Private Sub bwHelloWorld_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwHelloWorld.RunWorkerCompleted

       MsgBox(e.Result)

End Sub

 

 

Realmente simple no ??

 

Saludos

Voip – 2

Hace unos meses, escribí un poco sobre un VoIPBuster, un pequeño soft de telefonia sobre IP, que permitia realizar llamadas gratis a algunos paises (entre ellos Argentina). Por este motivo, se volvió muy popular para mi, ya que podia, de esta manera, llamar a mi flia, gratis desde España; o molestar a algun amigote a altas horas de la mañana, marcar numeros desconocidos y ver quien me atendia.
 
Sin embargo, no todo lo bueno dura para siempre. Desde enero, este servicio, paso a ser pago (muy barato €0,01 el minuto) y lo seguí utilizando, pero desenbolsando unos céntimos por cada llamada.
 
Hoy la cosa ha cambiado, me he encontrado con www.internetcalls.com/en, un soft, exactamente igual que VoIP y que ofrece llamadas gratis a varios paises. Es notable la similar apariencia que poseen los 2 softs y ademas si navegamos directamente a la pagina www.internetcalls.com, se redirecciona a www.voipbuster.com. Cosas curiosas :D
 
Saludos
 
PD: Esta es la lista de paises a los que podemos llamar gratuitamente.
 
Argentina, Australia, Austria, Belgium, Canada, Chile, Cyprus, Denmark, Estonia, Finland, France, Germany, Gibraltar, Hong Kong, Hungary,  Iceland, Ireland, Italy, Japan, Liechtenstein, Luxembourg, Malaysia, Mexico,
Monaco, Netherlands, New Zealand, Norway, Panama, Peru, Poland,  Portugal, Puerto Rico, Russian, Federation, Singapore, Slovenia, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, United Kingdom, United States, Venezuela
 

Web 2.0

Web 2.0… una simple búsqueda en Msn Search nos retorna 101.806.357 resultados, por otra parte Google retorna aproximadamente 242.000.000 resultados. Msn retorna como primera entrada la referencia en la Wikipedia en español sobre Web 2.0, Google retorna una referencia a la Web 2.0 Conference de 2005. En ambos casos, encontramos millones de entradas de blogs, posts, articulos, etc.

 

Hace un tiempo, Dick Hardt describía la llegada de Web 2.0 como inevitable. Sin embargo, podemos hacer un pequeño repaso y ver cuales de los aspectos de esta nueva moda, aplican actualmente. Uno de los puntos fuertes de esta tecnología es la utilización de redes P2P, y podemos ver que actualmente existen muchos productos de este tipo en el mercado. Podemos tomar como referencia a Skype, o VoipBuster, ambos programas de telefonía por IP, pero que de a poco han empezado a desplegar un abanico de nuevas posibilidades. Este tipo de aplicaciones, suponen un gran cambio en la distribución y arquitectura de las aplicaciones, ya que eliminan la necesidad de aplicaciones con un Server central. A nivel aplicación, pueden escalar mejor, pero el control y distribución de las aplicaciones puede ser caótico. (ya tenemos un nuevo punto para estudiar a nivel de diseño de aplicaciones)

 

Otro punto muy fuerte y muy de moda en este momento es la utilización de AJAX; o como lo describe la Wikipedia; técnicas de aplicaciones ricas no intrusivas. En este momento, existen muchos Framework que dan soporte para la creación de websites que implementen mucha funcionalidad de este tipo; pero el ejemplo más concreto son las nuevas versiones de las aplicaciones comerciales que utilizamos diariamente, GMail, Msn Live, etc. Si bien es cierto que nuestras aplicaciones se cierran con una mayor funcionalidad y capacidad grafica de procesamiento, no debemos olvidar que los servers, deben ser responsables de gran parte del trabajo de una aplicación. GMail es un excelente ejemplo de esto, los renderizados gráficos y las acciones simples se realizan “en el cliente”, pero sigue siendo responsabilidad del Server la gestión y administración de los mails. (Esto es sentido común, pero nunca esta de más recordarlo)

 

Por último debería nombrar, a los Blogs, las sindicaciones RSS, etc. Hace unos años, cuando comencé a dar mis primeros pasos en el mundo de la informática, mis noticias me llegaban diariamente a través de boletines que contenían un resumen de información sobre temas determinados (era un adicto a los mails de CodeProject, Planet Source Code, etc.) Hoy siguen existiendo estos boletines, pero la cantidad de información que debo manejar y procesar es mucho mayor. Estoy suscripto a más de 40 blogs, y los veo “pasar” en un visor de noticias Rss que abarcan temas tan variados como noticias de deportes de España, blogs de mis amigos, Microsoft Press Pass, hasta el blog de Robert Scobble, uno de los bloggistas más conocidos de Microsoft. Es en este formato de información, donde rápidamente me entero de las novedades en el campo de la tecnología y de las noticias que realmente me importan.

 

Este último formato de información y publicación es indispensable en todos los browsers (gran defecto de IE es q no existe un buen lector de RSS, IE7 ya lo posee, FireFox obviamente lo trae desde antes :D).

 

Finalmente, luego de revisar un poco cada uno de estos temas y, repasando un poco las nuevas tecnologías con las que estoy trabajando, pienso si no será cierto que tal vez hay demasiada información llegando muy rápido a cada uno de nosotros. Web 2.0, supone muchos cambios, algunos que ya son una realidad, pero deberíamos empezar a pensar en un concepto más amplio para la organización de la información. Me parece perfecta la apuesta de Labels (“folksonomy”) como concepto para la organización de la información, pero sigue existiendo una pata corta en esta nueva mesa. (Con ManuelC hace un tiempo, pensamos en algo parecido)

 

Veremos que pasa en un tiempo.

 

Saludos.