Interesante curso de Ingenieria de Software

La semana pasada empecé un curso online ofrecido por la Universidad de Standford en forma gratuita. El nombre del curso es Software Engineering for Software as a Service. El mismo tiene una duración de 5 semanas y es dictado por dos profesores de Berkeley: Armando Fox y Dave Patterson. El curso tiene foco en métodos agiles y la parte técnica está basada en Ruby on Rails.

La dinámica del curso consiste en clases teóricas en formato de video de 10 minutos de duración en promedio.  Al mismo tiempo hay un libro (pago, cuesta unos 10 dólares) escrito por los profesores del curso. La plataforma onlien también cuenta varios foros de discusión. En cuanto al aspecto práctico, hay 4 tareas de programación con un timeframe de 1 semana y por otro lado tambien hay 3 Quiz a lo largo de todo el curso.Según los profesores, alumnos anteriores han reportado una carga de trabajo semanal de entre 5 y 10 horas para completar el curso.

Luego de completar la primer semana, estoy muy entusiasmado, hasta el momento nada nuevo para mi, pero a pesar de ello me gusta la forma en que estan presentados los temas.

No estoy seguro si aún es posible sumarse al curso, pero de todas formas los video son de acceso público.

Les dejo el link al curso: https://www.coursera.org/saas.

¡Que lo disfruten!

Anuncios

Sobre C# y Ruby

Esta es la continuación del post que publiqué ayer, pero que en realidad es más bien una precuela.

Resulta que la semana pasada estaba hablando con unos colegas de Algo3 sobre tecnologia y comenté mi amistosa incursión en Ruby. Ante esto, uno de mis colegas me tildó de panquequearme, pues la mayor parte de mi carrera he argumentando a favor de C# y la plataforma .NET en general.  Hoy por hoy y para una gran cantidad de aplicaciones prefiero inclinarme hacia Ruby, no porque me parezca más apropiado sino porque me siento más cómodo (incluso a pesar de conocer mucho menos). Pero esto no me convierte en panquete, pues mi cambio de opinion no fue ni reiterado ni en corto plazo de tiempo.

Recuerdo que la primera vez que me acerqué a Ruby fue durante 2006, cuando trabajando en Snoop me tocó participar en un proyecto en el cual el cliente nos pedia definir su plataforma y nos había pedido explícitamente evaluar .NET, Java y Ruby. Al cabo de 3 semanas de trabajo nuestra recomendación fue .NET. Pero bastante han cambio estas tecnologias desde aquel 2006 hasta la actualidad (¡pasaron 6 años!).

Ahora hablando un poco sobre el título de este post, creo si bien ambos lenguajes a simple vista parecen bastante distintos, tienen varias cosas en comun en cuanto a la caraterísticas que soportan. Sin duda la diferencia más distintiva es el hecho de que C# es de tipado estático y Ruby de tipado dinámico. Esto implica que en el caso de C# es necesario realizar una compilación explícita antes de pedirle a la maquina virtual que ejecute nuestro programa. Por otro lado, Ruby incorpora varias cosas de Smalltalk (metaclases, bloques, etc) lo cual me resulta muy feliz.

Más allá de las bondades del lenguaje, debo admitir que me he sorprendido a mi mismo, pues nunca crei que pudiera programar con un editor de texto (gedit) luego de haber trabajado por tanto tiempo con Visual Studio y Eclipse. Cuando trabajo en ruby codeo con gedit y tengo dos terminales abiertas, una para hacer el build y otra con irb (el interprete interactivo de ruby) para probar cosas del lenguje, pues aun no estoy suficientemente familiarizado. Cuando esporáricamente tengo que levantar Visual Studio o Eclipse, me deprimo mal, ambos entornos tardan una eternidad en levantar (a pesar de que tengo 4 GB de memoria). Y ni hablar cuando quiero compilar una solucion y correr las pruebas con visual studio.

Más allá de mi opinion (totalmente subjetivas) y de los gustos particulares de cada uno, creo que es importante que todo estudiante/profesional de sistemas haga una experiencia en ambos mundos: el corporativo (C#/Java) y el open source (ruby/python/smalltalk).

Por lo dicho en el post anterior, esa calificación no me aplica pues mi cambio de opinion

hace algunos años habiaal encarar un proyecto había tenido que elegir entre .Net y Ruby y en aquel momento habia elegido C# practicamente sin dudarlo (pero ojo, había investigado Ruby)

Cambiar de opinion no siempre es “panquequearse”

Una conocida frase dice “Se dió vuelta como un panqueque” y de ahí el término “panquequearse”.  Esta frase suele utilizarse para hacer referencia a personas que cambian radicalmente de posición respecto a un tema. La analogia con el panqueque me parece bien, pero creo que no siempre se la interpreta correctamente. Paso a explicar.

La particularidad de la “dada vuelta” del panqueque es que ocurre reiteradas veces y en un breve lapso de tiempo. Entonces para que una persona sea etiquetada con la frase en cuestión deberia ocurrir que que dicha persona cambie de opinion varias veces en un breve lapso. Siguiendo esta línea de pensamiento, creo que uno de los mejores ejemplo de panquequeda en la actualidad lo constituyen (algunos) periodistas deportivos: Si Boca gana Riquelmente es un el mejor, si Boca no gana (lo cual ocurre la semana siguiente), Riquelme es un desastre. Como diria EL Diego, esos periodistas son los mismo que le toman la leche al gato y le roban la limosna al ciego. (ups! me fuí de tema)

Por otro lado, cambiar de opinión es algo sano en un punto, pues siginifica en muchos casos un aprendizaje, ¿acaso uno no cambia de opinion muchas veces luego de  aprender una lección?.

Este post ya se hizo demasiado largo para mi gusto, asi que corto aqui y en el siguiente post les cuento  que fue lo que me llevó a escribir esto.

Continuará…

El solo hecho de que una persona cambie de opinión (por más drástico que sea el cambio) no la “convierte en un panqueque”,

Acceso a ACM para gente Fiuba

ACM (Association for Computing Machinery) es una organización que nuclea profesionales y científicos de la computación y “colabora”* en la difusión de conocimiento en este área. En este sentido la ACM tiene una seria de publicaciones periódicas entre las que se destaca la revista Communications of ACM, que ha sido portadora de famosos artículos como GoTo Statement Considered Harmful de Dijkstra.

La buena noticia es que ahora los alumnos de fiuba pueden acceder a los recursos de ACM en forma totalmente gratuita. Para ello simplemente tienen que configurar sus exploradores para usar el proxy de revistas de fiuba**. Para conectar a este proxy es necesario contar con una cuenta de correo de fiuba (@fi.uba.ar).

¡Que lo disfruten!

* Colabora es una forma de decir, pues si bien ACM concentra muchas publicaciones en la denominada ACM Digital Library, el acceso a la misma es restringido.

** No publico la dirección del proxy por cuestiones de seguridad, los interesados pueden contactarme en privado o bien contactar directamente a soporte Fiuba.

Agilistas: BASTA de tomarle la leche al gato

Hoy comencé a tomar un curso sobre ingeniería de software y una vez más me encontré con Agile vs. Waterfall. Basta por favor, como dice El Diego esto es como tomarle la leche al gato o robarle la limosna al ciego. Ojo, hacer la comparacion no está mal, lo que me parece mal es que se pretenda explicar agile comparandolo contra waterfall. Y le pegan a waterfall, una y otra vez y otra vez. ¿Porque no hacer una comparación de Agile vs Métodos orientados al plan? ¿Será que la gente aún no lo tiene claro? No sé, no entiendo, pero a esta altura escuchar gente hablando mal de waterfall me empieza a sonar molesto.

Hago un pedido a los agilista: por favor, cuando quieran presentar agile busquen algún otro mecanismo que no sea pegarle a waterfall.

Herramientas de oficina en la nube

Un de los utilitarios que aún no logré encontrar a gusto en Ubuntu es un editor de diagramas. He probado varios (Dia incluido) pero por una u otra cosa, ninguno me vino bien. Por eso celebré cuando encontré Gliffy, una aplicación web para hacer diagramas. Simplemente excelente, soporta casi todos los mismos diagramas que Visio (organigrama, red, uml, flujos, etc.).

Al igual que Prezzi, es una aplicación Flash (por si no lo conocen, Prezi es una herramienta para realizar presentaciones, funcionalmente es un competidor/reemplazo de PowePoint, pero tiene un enfoque diferente, muy recomendado).

Un detalle no menor de Gliffy es que no es gratuito, ofrece un trail gratuito por 30 dias (que es lo que estoy usando actualmente) y luego tiene un costo de alrededor de 5 dólares mensuales por cuenta.

Uruguay 2012

Con este título, esto bien podría tratarse de un evento, pero no. No es un evento sino simplemente el destino de mis vacaciones. No es que pretenda contar mis travesias vacacionales, sino que quiero compartir un fenómeno socio-cultural que me ha deslumbrado: El carnaval uruguayo. El carnaval uruguayo si bien guarda ciertas similitudes con el carnaval de argentina, la realidad es que tiene una carga social mucho más importante.

El carnaval uruguayo se desarrolla principalmente en los denominados tablados, que no son más que escenarios populares (clubes, parques, anfiteatros, etc.) donde noche tras noche se presentan las agrupaciones. Cada noche, cada tablado recibe entre 4 y 6 agrupaciones cada una de las cuales realiza una presentación de aproximadamente 40 minutos. Al mismo tiempo cada agrupación recorre entre 2 y 4 tablados por noche. Cada temporada, cada agrupación prepara un show que va presentando a lo largo de todo el carnaval en fragmentos de 40 minutos (aprox), de manera que no todos los shows son iguales.

Hay un tablado particular llamado Teatro de Verano, en cual las agrupaciones compiten ante un jurado organizados en distintas categorias.

Existen 5 categorias de agrupaciones: negros y lúbolos, murgas, parodistas, humoristas y revistas. No voy a entrar en la descripción de cada una (para ello está wikipedia), sino que voy a dar mi opinion. Muy, muy lejos, lo más interesante son las murgas. Una murga es un agrupación de entre 14 y 17 personas que conforman un grupo vocal acompañado por un bombo, un redoblante y platillos. Entonan composiciones que tratan sobre los hechos socialmente relevantes del último año y no se privan de dar sus opiniones. El contenido social/político en las composiciones de la murga es lo que marca la mayor diferencia entre el carnaval uruguayo y el argentino.

Entre las murgas más conocidas podemos mencionar Agarrate Catalina, Falta y Resto y Curtidores de Hongos.

Otro elemento destacado en el carnaval uruguayo son las Llamadas. Las llamadas son un desfile de agrupaciones similares a lo que conocemos como comparsas. Cada agrupación cuenta con un conjunto de personas que van bailando y una cuerda de tambores. Si bien esto suena muy similar a las comparsas argentinas, la principal diferencia radica en el foco de atracción: mientras que en las comparsas argentinas el foco muchas veces pasa por las bailarinas y los disfraces, en las llamadas el punto más vistoso pasa por la cuerda de tambores.

A mi humilde parecer el carnaval uruguayo no es solo un espectaculo muy vistoso sino también un fenómeno social muy interesante el cual recomiendo presenciar en algún momento.