Pharo Sprint en Quilmes

Aprovachando la movida de la Smalltalks 2011, el miércoles 2 de noviembre de las 14:00 a las 20:00, el día previo a la conferencia vamos a estar llevando a cabo un Pharo Sprint.Para explicar lo que es un Pharo Sprint voy a utilizar la explicación que puso Guille Polito en el mail de difusión.

¿Qué es un Pharo Sprint?
Básicamente es una reunión de gente  que se junta gente  a programar en Smalltalk, en particular para Pharo.

¿Y qué programamos?
Y… programamos cosas locas.  Nos metemos adentro de Pharo a arreglar errores, o algunos tienen sus propios “modulos” dentro de Pharo y algunos otros simplemente vamos a aprender.

¿Y qué necesito?
¡Ganas!  El resto se consigue fácil, lo charlamos si te anotas.

¿Quién puede venir?
Todo el mundo.  La idea no es que estes solo, si no que nos sentemos de a pares así todos aprendemos un poquito, no solo del código, si no del que esta al lado…

¿Y si apenas se objetos? Me asusta esa cosa!!
Pegate una vuelta, mira la onda y si te cabe te quedas.

¿Y si ese día curso? ¿Si no puedo ir todo el rato?
Venite cuando y cuanto puedas!  No hace falta estar las 6 horas… Eso es para los limados como yo, no se preocupen.

¿Por qué habría de ir?
Uff..
– es divertido.  Vamos a codear :D.
– vas a conocer otras personas que sean igual de nerds (o no)
– se aprende banda
– podes sumar un poquito a la comunidad open source de Pharo

Me convenciste ¿Dónde me anoto?
https://spreadsheets.google.com/spreadsheet/viewform?formkey=dHlKdUdvYnF3c3VsMHB6Ny1oamJiTkE6MQ

Por último les digo que yo participé una sola vez de un Pharo Sprint y fue una gran experiencia :-).

Nos vemos.

Se viene la Smalltalks 2011

A modo de previa, el GITI ha organizado un conjunto de charlas introductorias a Smalltalk a desarrollarse en la UTN-FRBA y en UNQ durante esta semana.

Por otro lado, ya está publicado el listado de sesiones. donde van a encontrar mi sesión “Customizing Pharo“. Muy relacionado al tema de mi sesion, habrá otra sesión de Mariano Peck quien hablará ya en términos más avanzados de generación de images utilizando Metacello.

Entre otras sesiones que han llamado mi atención y a las que intentaré asistir están: Bringing BDD ideas to Pharo y Monsters from the IT: what has IT done for education?What I learned from teaching and why I’m so happy with Smalltalk y Research at RMOD presentada por el super groso Marcus Denker.

El evento es gratuito pero requiere registración.

¡Nos vemos allí!

Práctica de estimación en UNQ

(parte 5 de la serie: Ingeniería de Software en UNQ)

El jueves pasado en Ing. Soft, hicimos un ejercicio de estimación basado en la dinámica de fábrica de aviones (no voy a entrar en como es la dinámica pues si un futuro alumno lo lee, va a perder “punch”). Hicimos 3 iteraciones y en la última metimos algunas variaciones (rotación de gente, nuevos requerimientos, etc) para representar algunas situaciones comunes proyectos reales.
Creo que todos nos divertimos y me parece que algo aprendieron. De todas formas, estimación es un tema que vamos a seguir trabajando. Les dejo algunas fotos de la actividad.

Agiles 2011: Colaboración Académica Internacional

Esta fue una de las sesiones que propuse en el Open Space de Agiles 2011 y aquí voy intentar resumir en un par de líneas lo que se habló en dicha sesión.

Yo dicto Ingeniería de Software en la Universidad Nacional de Quilmes (Argentina) y la propuesta de esta sesión surgió a partir de una necesidad mía en dicho contexto. Dado que el trabajo en equipos distribuidos es algo cada vez más común, me parece importante que mis alumnos realicen una experiencia de desarrollo distribuido durante mi materia. Para eso pensé que sería interesante hacerlo trabajando en conjunto con alumnos de otras instituciones. Las formas de colaboración pueden ser diversas pero es un punto que no voy a desarrollar ahora.

Hablando de la sesión, la misma comenzó con la introducción del párrafo anterior y luego sentados en ronda nos fuimos presentando.

Luego de la presentación quedó evidencia que algunos de los asistentes se habían acercado con una inquietud diferente a la planteada por mí, que era “Cómo enseñar métodos ágiles en ámbitos académicos”. Es por esto dividimos la sesión en dos sub sesiones: una (sub)sesión centrada en mi planteo inicial y otra centrada en “Cómo enseñar métodos ágiles en ámbitos académicos”.

Al mismo tiempo en la (sub) sesión de colaboración (la planteada originalmente) surgieron tres formas distintas de posible colaboración:

  1. En el contexto de un semestre alumnos de dos (o más) instituciones trabajan en el desarrollo de proyecto que comienza y termina dentro de un semestre.
  2. En el contexto de trabajos finales de carrera (o tesis) alumnos de una institución co-dirigidos por un docente de otra institución. O bien alumnos de distintas instituciones trabajando juntos en un trabajo final.
  3. Alumnos de distintas instituciones trabajando en el desarrollo de un sistema “grande” a lo largo de varios cuatrimestres, implementando en cada materia un par de funcionalidades por cuatrimestre.

En particular (3) absolutamente integrable con (1) y (2) y tal vez sea la más simple de implementar.

Respecto a la otra (sub) sesión, desconozco como se desarrolló, pero me consta de varios casos, yo mismo sin ir más lejos estoy enseño métodos ágiles, pero cómo lo hago será tema de otro post.

Ya mandé un mail a todos los participantes de la reunión, ahora veremos cómo gira la rueda.

Getting started with Ruby on Windows

The life takes us through different and mysterious ways. In this occasion that way has lead me to Ruby world.

So, here are the steps I perform to get my Ruby development environment up and running on Windows 7.

I started by downloading Ruby from http://rubyinstaller.org/. In my case and because of the context of my project I choose Ruby 1.8.7.

image

The installation was very straightforward: accept the license, ensure to check the “Add Ruby executables to your PATH” option and press install.

image

After a couple a seconds the following screen displayed telling that the installation was completed.

image

The next component to install was the DevKit, a set of tools to allow the usage of C-native features in Ruby. The installation of this component was not so straighforward, I had to follow the instructions detailed here: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit.

With this, we can say that the base infrastructure is ready, but it is not enough to develop applications. We will need to install gems (this is name given to Ruby packages). To install gems we can use RubyGems package manager that comes with Ruby installation. To use it, just open a Commmand Prompt and type the command to execute. In my case case I installed some tools that I already new I wanted to use:

  • Sinatra: a DSL tools to create web applications
  • Data Mapper: a persistence framework
  • Bundler: a tool to manage application dependencies
  • Heroku gem: a package to interact with Heroku platform

To install all this gems, just execute the following script:

gem install sinatra
gem install data-mapper
gem install bundler
gem install heroku

If while installing any of these gems you get an error telling “invalid date format in specification”, you will have to go to follow these steps:

  1. Go to <ruby folder>librubygems1.8specifications.
  2. Find the file mentioned in the error and open it.
  3. Look for a line assigning a date, something like s.date = %q{2011-08-17 00:00:00.000000000Z}
  4. Modify that line and remove the time s.date = %q{2011-08-17}
  5. Save the file and you are ready.

Well folks, that’s all, you are almost ready to start working. I say almost because you may want to install an IDE. But that will be the topic of another post.

To be continue….

Agiles 2011: día 3

Este día fue para muchos lo mejor de la conferencia. A excepción del keynote final, todo le día fue en formato open space, lo cual fue todo un desafío debido a la gran cantidad de participantes. La facilitación estuvo a cargo de DiegoF e Ingrid. Durante el marketplace hubo más de 50 propuestas, pero creo que finalmente solo se realizaron unas 30.

Yo hice dos propuestas y ambas fueron votadas.

La primera fue sobre Colaboración académica internacional. La cuestión es que tenia la intención de contactar con docentes de otras univesidades/países que estuvieran dictando materias relacionadas a ingeniería de software para ver de hacer trabajos prácticos con forma colaborativa entre mis alumnos y los suyos de cara a que los alumnos puedan experimentar el trabajo en equipos distribuidos. Hubo alrededor de 25 personas de Argentina, Chile y Perú. Me gustó como salió la sesión y me quedé con muchos contactos (aún tengo pendiente enviarlos a todos los participantes de la sesión).

La segunda sesión fue “Show me your practice”, que en realidad en el momento que la presenté le dí otro nombre menos cool. La idea era compartir prácticas no tradicionales de trabajo. La sesión fue en formato Lightening talks. Al comenzar la sesión tomamos nota de todos los presentes interesados en compartir sus prácticas. Luego dividimos el tiempo restante de la sesión por la cantidad de interesados y asignamos un tiempo time-boxed a cada uno que terminó siendo de 6 minutos si mal no recuerdo. Algunas de las prácticas fueron posteadas en twiteer, las pueden encontrar buscando por #showmeyourpractice. En un post futuro, voy a hablar un poco más sobre estas prácticas.

Por la tarde participé de una sesión propuesta por JuanG sobre comunidad ágil, Juan prometió  compartir sus notas así que esten atentos a su blog.

La ultima sesión que participé fue de un muchacho de Version One llamado Mike algo, que trató sobre optimización organizacional y que me pareció muy interesante.

Ya hacia las 5 de la tarde, volvimos al espacio central donde JuanG dío su keynote. Simplemente impecable. No voy a entrar en detalle, pues en breve está disponible la filmación.

Luego del keynote, hubo una breves palabras muy apropiadas de Esteban Di Tada, decano de la facultad de Ingeniería de la UP y finalmente el cierre a cargo de MartinA y Ale Alfonso, presidentes de la conferencia. Como era de esperarse, hubo agredecimientos varios, anuncios parroquiales, la convocatoria a propuesta de ciudades candidatas para la conferencia del próximo año y la invitación a todos los asistentes a participar de la retrospectiva del evento.

El evento terminó con un evento de camaradería en Logia Ortiz en que los sponsors realizaron algunos sorteos. También ahí realizamos la retrospectiva del evento y tuvmios muy buenos resultados.

Aún tengo muchas cosas más por compartir de este evento, pues ha sido muy enriquecedor, con lo cual, les dejo links a algunos álbumes de fotos y les prometo más post hablando sobre la organización de la conferencia y el contenido de las sesiones.

http://digitalleague.com.ar/agiles2011.php

https://picasaweb.google.com/116354004329511510805/Agiles2011Picasa?authkey=Gv1sRgCI7W1rv8xZypCA

https://picasaweb.google.com/106951431145173789918/Agiles2011?authuser=0&feat=directlink

Continuará…

Codecamp 2011

Hoy asistí a este evento en el cual dicté una sesión sobre Control de configuración con Git y NuGet. El mayor desafió de la sesión fue sin duda dictarla junto a Dario Seminara, un persona muy particular con un conocimiento muy profundo de Git y que tiene la capacidad de leer la matriz, pero que a la hora de hablar con personas tiende a colgarse y desviarse por ramas. Para mitigar este particular comportamiento, organizamos la charla en dos partes, en la primera yo hice una introducción de unas 6 diapositivas, donde setee el contexto, las expectativas y presenté algunos conceptos.

En la segunda parte nos centramos en una demo para la que representamos el rol de dos alumnos queriendo trabajar colaborativamente en un proyecto usando GitHub. Durante esta dinámica, yo “actué” de alumno queriendo aprender Git, mientras que Darío tomó el papel de experto contestando a mis preguntas y mostrando ejemplos de uso.

La sesión fue de 70 minutos los cuales nos resultaron poco para mostrar todo lo que pretendiamos, puntualmente nos faltó mostrar el uso de los comandos stash y checkout y adicionalmente nos me hubiera gustado profundizar un poco más en algunas cuestiones respecto de la estructura del árbol del repositorio. Ah! y no mostramos nada de NuGet, ups!. Más allá de esto quedé conforme con como salió la sesión.

Dado que me parece que varios de los asistentes se quedaron con ganas de más, voy a intentar grabar algún screencast en los próximos días.

Como de costumbre al terminar la sesión, pedimos a los asistentes que nos den su feedback de la sesión dibujando una carita ( 🙂 😐 😦 ) en un post-it y obtuvimos 18 caritas felices y una neutral. Considerando que en la sesión había alrededor de 25 personas, creo que la evaluación es muy positiva.

Para aquellos que asistieron a la sesión este es el link al post que explica como configurar el ambiente para empezar a trabajar con git y github.

Este es el link a las diapositivas utilizadas durante la sesión.

Por último quiero felicitar a Dario, pues ha sido un gusto compartir esta actividad.