After CodeCamp Baires 09

Last Saturday I attended to this important event at Universidad de Palermo where I was speaker together with other 6 southies : (MatiasW, Mr. Salias, Ejadib, BetoO, JohnnyH and DiegoP). I am not sure about how many people attended to the event, but I can say that all the session I went were full.

All the speakers were asked to record their sessions, so I think Microsoft will publish them in the next weeks.

Meanwhile, If you want to know about what I spoke, the slide deck I used for the in my presentation is available to download here.

Andanzas por la UNTreF

Durante este cuatrimestre estoy colaborando con DiegoF en el dictado de la materia de análisis y diseño perteneciente a la carrera de Ingeniería en Computación de la Universidad Nacional de Tres de Febrero. La materia pertenece al cuarto cuatrimestre de la carrera y en cierto modo sería equivalente a Análisis de la Información en Fiuba. Si bien el nombre formal de la materia es «Análisis y diseño estructurado», el contenido es bastante más amplio; la visión de Diego es que al finalizar la materia los alumnos cuenten con varias herramientas y tengan el criterio de para poder elegir cual utilizar en cada caso. El programa de la materia incluye temas bastante variados que van desde el análisis estructurado de Yourdon, el diseño de productos, hasta User Stories y Atributos de calidad, pasando por Casos de uso, UML,  e implementación de paquetes. La materia se dicta en clases semanales de 4 horas, donde por lo general damos 2 horas de clase de exposición y luego actividades de aplicación, como ejercicios o incluso juegos.

Sinceramente me parece que la materia está muy bien pensada y es por eso que no lo dudé cuando Diego me hizo la propuesta. Estamos intentando grabar el audio de las clases de exposición, hasta ahora solo hemos grabado 2 clases y según me cuenta Diego han quedado muy bien.

A medida que vaya avanzado el cuatrimestre iré contando por aquí las expericiencias que vayamos recogiendo.

Esto es todo por ahora, cambio y fuera.

Se viene el CodeCamp

Como ya comenté hace un tiempo, voy a estar como orador en el CodeCamp hablando sobre herramientas open source para .NET. Durante el último fin de semana estuve trabajando en el slide deck y esta mañana comenzé a grabar un screencast que la gente de Microsoft publicará en el sitio del evento.

Hace un par de semanas se publicó la grilla de sesiones y realmente quedé sorprendido por la gran cantidad de sesiones (¡más de 40! de los más diversos temas). El evento es gratuito pero requiere registración.

Nos vemos allí.

ban_ar_585x234_codecamp

Comienzo de clases

La semana pasada comenzaron las clases del segundo cuatrimestre en fiuba. A pesar de haber quedado disponibles 4 vacantes el curso 1 de algoritmos 3 está mucho más completo que cuatrimestres anteriores. Por suerte para este período vamos a contar con GabrielF (estaba en el curso 3 de nuestra cátedra) y dos nuevos colaboradores MatiasW y FedericoS.

A diferencia de cuatrimestres anteriores tengo la percepción que ha habido muchas menos consultas en la lista de correo de la materia sobre el tp0, lo cual puede deberse a: a) hemos sido más claros en la explicación o b) los alumnos han venido más iluminados o con más conocimientos.

Por otro lado tengo la percepción de que tenemos más alumnos trabajando con C# que los cuatrimestres anteriores.

Bueno, con el tiempo veremos si estas percepciones iniciales se corresponden o no con la realidad.

Dios los cría…

There is a very famous phrase in Spanish that says: “Dios los cría y el viento los junta” that literally can be translated like: “God grows them and the wind put them together”. Look at the picture below, it was taken after an Architect Forum about Agile Methods organized by Microsoft Argentina during Febrary 2008.

foto-agile-af

In the picture there are 9 people that were speakers at the forum.  Nowadays five of them are working here at Southworks (me included).

Agile Open Bahía Blanca 09

Salimos desde la terminal de Retiro junto con JuanG el viernes por la noche. Arribamos a Bahía hacia las 8 de la mañana del sábado. En la terminal de Bahía nos encontramos con Esteban y Julian que venían desde Tandil y luego en compañía de Jerónimo (uno de los organizadores locales) nos dirigimos hacía la biblioteca central de la Universidad nacional del Sur.

El evento arrancó a las 9.30 y tuve el honor de facilitar la apertura. Fue una muy linda experiencia.

Hubo alrededor de 90 participantes y si bien durante el día hubo algunas deserciones como suele suceder, en el cierre hubo más de 70 personas. Hubo alrededor de 30 sesiones propuestas, algunas de las cuales fueron unificadas al momento de armar la grilla, quedando finalmente alrededor de 20 sesiones efectivas.

Durante la mañana participé de una sesión sobre los distintos roles dentro de los equipos ágiles y de ello estuve en una sesión interactiva facilitada por JuanG en la que trabajando con globos repasamos la importancia entender claramente criterios de aceptación de los productos que generamos. Ya por la tarde estuve en una sesión que titulada con algo similar a “Documentación en contexto ágil” resultó un poco controvertida cuando uno de los participantes comentó que en sus proyectos tenía analistas trabajando un sprint adelantado escribiendo user stories detalladas. A continuación estuve en un sesión en la que hablamos sobre los pasos y opciones para la adopción de agile en organizaciones que trabajaban en forma “cascadosa”.

En el último slot del día dicté un workshop sobre user stories del cual participaron alrededor de 25 personas. De aquí puede descargarse el slide deck con los puntos más importantes que repasamos durante la introducción teórica del workshop.

Luego del cierre (a cargo de JuanG) Victor “Ferruchi” nos llevo en un mini city tour que termino con una picada en un bar muy pintoresco a escasos metros del teatro munipal de la ciudad. Hacia la 9 nos transladamos a la casa de Ariel Trellini nos los huddleanos preparaban un asado. Finalmente pusimos fin a nuestra jornada degustando una copa de vino y un sandwinch de asado entre juegos de dardos y charlas geeks. A las 10.30 subimos al micro que nos trajo de vuelta hacia Baires.

Realmente quedé muy contento con el evento y debo admitir que superó mis expectativas: mucha gente, excelente organización y muy buen contenido en las sesiones.

http://www.box.net/shared/gtdn1ttsvo

7 habits of highly effective people

Continuing with the tradition when joining Southworks I ‘m going to say something about this book.

I first knew about this books a year a ago more or less,  a college shared with me a summary of it. Recently when I was in the process of joining Southwork MarianoS gave me the book and recommended me to read it. I decided to start reading it from the scratch and I must say that it was a good choice. The first part of the book was not part of the summary I read. The book like so much that I bought it. While reading the first pages it seems to me that it was a philosophical book, but I knew it wasn’t because I had read the summary of the habits. I’ve been always trying to organize my time in an effective manner and this book gave an interesting point of view.

I want to share a teaching I get from this excellent book:

Everything depends on the crystal you use to see, but the interesting part is that you can choose what crystal to use!

Cambios en Algo3

Desde hace ya un tiempo con el equipo de cátedra de algortimos 3 hemos estado trabajando en algunos cambios en la materia los cuales pensamos incorporar en el cuatrimestre que se encuentra próximo a comenzar. Entre los cambios se encuentran:

  • La lectura obligatoria de algunos artículos/capítulos/papers.
  • Un estudio más profundo del polimorfismo y conceptos afines
  • Un mayor foco en la resolución de ejercicios
  • Inclusión de más trabajos prácticos, incluyendo uno en Smalltalk

Cada uno de estos cambios tiene una justificación, la lectura de papers/artículos tiene que ver con que no se puede pasar por la facultad estudiando de los apuntes de clase, de vez en cuando hay que leer material y el material existente sobre OO es por demás abundante. El estudio del polimorfismo y conceptos relacionados son posiblemente los temas más importante de la materia y hasta el dia de hoy el tiempo dedicado a dichos temas nos parece insuficiente. La única forma de aprender a diseñar es ejercitando y es por que hemos decidido aumentar el foco en los ejercicios. Por último, si bien hasta ahora habia cierta libertad en la elección del lenguaje de programación la gran mayoria de los alumnos elegía trabajar con Java; con la inclusión de un trabajo en Smalltalk buscamos que los alumnos experimenten una implementación distinta del paradigma de objetos.

No estamos seguros de como resultará todo esto, pero estamos convencidos que permitirá a los alumnos tener un mejor entiendimiento de la orientación a objetos. En diciembre veremos si nuestro enfoque ha sido correcto.

Nuevo equipo

Por estos dias me encuentro poniendo a punto mi máquina. Resulta que mi querida Dell XPS 1330 tuvo un issue con la pantalla y el soporte técnico de Dell decidió -ante la imposibilidad de conseguir el repuesto(al parecer por problemas de aduana)- proveerme una nueva máquina (obviamente aún estaba en período de garantía). Mi nueva máquina es una Dell Studio XPS 1340. Curiosamente a pesar de ser una máquina de 64 bits, me vino con un sistema operativo de 32 bits (Vista Home Premium). Luego de encender la máquina y hacer un breve smoke test para verificar que todos los dispositvos funcionaban correctamente procedí a reemplazar el sistema operativo por un Windows 7 Ultimate de 64 bits. Aún no he terminado de instalar todos los drivers y utilitarios (son unos cuantos) y tal vez sea esta la causa de algunas “inestabilidades” menores que estoy experimentado.

Entre los puntos interesantes para destacar del equipo estan:

  • El sonido, realmente suena muy bien y el driver trae un software que permite ajustar varias configuraciones.
  • El teclado, es totalmente distinto al modelo anterior y me resulta extremadamente más cómodo. Es de color negro y tiene una luz debajo que resulta muy útil para trabajar en la oscuridad.

Esto es todo por ahora, con el paso del tiempo veremos que tal se desempeña este nuevo chiche.

Claim-based identity (part#2)

Before diving into the ws-* protocols I mentioned in part#1, is important to review two important concerns about exchanging messages over the net:

  1. How can I be sure that the message I get has not been read or modified along the way?
  2. How can I be sure about who sent a message?

Point (1) can be solved by signing the message and point (2) by encrypting it. In the following paragraphs I will explain this topcis in a simplify way

Note: the following concepts can be applied in several different ways to resolved the mentioned situations.

Message Signing

Let’s suppose that Endpoint A needs to send a message to Endpoint B.

Endpoint A starts by taking the message and applies it a hash function (typically MD5) (step1) and the result of that is encrypted using A’s private key (step 2) obtaining a signature for the message. After that message is ready to be sent along with its signature (step 3). When endpoint B gets the complete message, it starts by separating the message itself from the signature and applies the hash function to the message (step 4) obtaining a hashed message. At the same time B decrypt the signature using A’s public key (step 5) and as a result of the decryption is should get the hashed message. If the result is not same that are to possibilities: the message has been modify or it was sent by someone else other than A.

image

This way, endpoint B can be sure that the message was sent by A and that the message has not been altered.

Message encryption

Now supposed that A needs to send a confidential message to B.

To ensure the message to be read only be B, A encrypts the message using B’s public key (step 1) and then put it on the wire (step 2).  When B gets the message it can decrypt it using its own private key (step 3).

image

By combining these two techniques we can ensure the integrity and confidentially of the message, in other words: only the endpoint know about the data of the message (because is encrypted) and the receiver of the message can be sure about  the recipient and content of the message (because it is signed).

To be continue…