Clarín: así no

Estaba esta mañana como de costumbre escuchando la radio cuando escucho un comentario de la situación del Chapu y se me dio por entrar a Clarin.com a leer un poco más sobre el tema. Justamente en la home del site estaba publicado un video de la conferencia de prensa. Luego de pegar una rápida ojeada a los demás titulares decidí mirar el video. Estaba ya llegando al final del mismo (que por cierto tardó bastante en cargar) cuando repentinamente se recarga la página y el video vuelve al comienzo.

Chan!, entonces se activa mi cerebro de ingeniero:

Me parece inaceptable, es un atentado contra la usabilidad y el hecho se encuentra agravado porque estamos hablando de uno de los portales de contenido más importante del país. Si esto ocurría hace 4 años, podría pasarse por alto, pero no hoy en día con el auge de la Web 2.0, las tecnologías AJAX y el surgimiento de los nuevos estándares HTML.

Ya mismo, curso de usabilidad y Web 2.0 para los programadores de Clarin.

Say no more.

Sobre Elecciones y peliculas

Hay gente que cuando está al dope duerme, otra mira televisión, algunos leen, otros juegan video juegos, en fin, son muchas las posibilidades. En mi caso, yo invierto mi tiempo libre basicamente en 3 cuestiones: leer, tocar la guitarra y pensar. ¿En que pienso? Bueno pienso en cosas muy diversas, pero esa pregunta no viene al caso, el punto es que esta misma tarde por n-ésima vez estuve pensando en las elecciones.

Ya lo decia el personaje de Héctor Alterio en Caballos Salvajes: «El hombre arriesga su propia vida cada vez que elije, y eso lo hace libre». Claro está que en la sociedad injusta en la que vivimos no todos tienen la posibilidad de elección en todos los aspectos. Cada elección que hacemos es única, puede que en un futuro se presente una situación de elección con las mismas alternativas, pero la elección en si misma es distinta pues el contexto en que la hacemos es distinto.

Al hablar de elección vienen a mi mente  escenas de algunas peliculas como ser el monólogo de Al Pacino en el colegio Baird en Perfume de Mujer o el díalogo entre Sam y Frodo en Las Dos torres (El Señor de los Anillos). Pero sin duda mi la escena sobre elecciones que más me toco es el díalogo entre Neo y Morfeus en Matrix.

Obviamente creo que todos quisieramos tomar siempre la elección correcta, pero en muchas ocasiones el término «correcto» no aplica a las elecciones, sino que debemos hablar de elecciones más o menos apropiadas dada una circunstancia. Son diversos los criterios que aplicamos a la hora de elegir, muchas veces tendemos a elegir lo más simple o lo que menos esfuerzo requiere. Personalmente cada vez que elijo procuro hacerlo basado en mis principios y valores, lo cual puede que no siempre sea lo mas fácil, ni lo más  apropiado, pero sin duda el actuar en base a los valores y principios propios nos convierte en personas íntegras al tiempo que nos permite en un futuro estar tranquilos con nuestra propia conciencia.

¿alguna otra idea para aportar? ¿alguna otra escena relevante para mencionar?

Escribir – leer – Escribir

Siempre me gustó escribir.

De pequeño, ya a los 10 años aproximadamente escribía un diaro personal.

A los 12 escribía cuentos, generalmente policiales o de ciencia ficción y el personaje de mis cuentos era un detective llamado Juan Perez (si ya sé, ¡que nombre original!).

Ya en la secundaria escribía «cartas de amor»(¡ja!, ¿no será mucho?).

Cuando comencé la facultad conocí unas chicas del interior del pais y durante un tiempo durante las vacaciones intercambiamos un par de cartas, ufff que nostalgia, cartas de las que lleva el cartero!!!!!!.

Luego, ya alrededor de los 20 le escribí una par de cartas a mi novia de aquella época  y luego de eso y por varios años solo escribí resúmenes para la facultad.

Finalmente en el 2005 empecé a escribir un blog que evolucionó en lo que leen ahora.

Más allá de esto no me considero un gran escritor, tal vez sea por eso que me gusta tanto leer: para mejorar la forma en que escribo. Cuando leo algún libro que me gusta, luego tiendo a seguir leyendo libros del mismo autor. Entre los autores que me han gustan estan: J.J.R. Tolkien (El Señor de los Anillos), J.K. Rowling (Harry Potter), Valerio Manfredi (Alexandros y otras novelas históricas), W. Smith (bocha de historias desarrollas en Africa), Carlos Fontela (mi jefe de cátedra que ademas de libros escribe un blog) y German Paez (mi hermano). Si mi hermano, que si bien se dedica profesionalmente a otra cosa, estoy convencido de que  debería haberse dedicado a escribir. Desde hace un tiempo escribe un blog donde cuenta las andanzas de su equipo de fútbol, les recomiendo que lean este post donde cuenta entre otras cosas como se formó el equipo.

Grande cabeza!

El comprimiso docente-alumno

Hace un par de semanas que el Algo3 empezamos a trabajar en el trabajo práctico final. Para ello les pedimos a  los alumnos que formen grupos y asignamos un docente tutor a cada grupo para guiarlos. El docente tutor juega distintos roles: por momento es líder, por momentos es cliente y por momentos es usuario.

En ocasiones suele ocurrir que los últimos dias antes de la entrega del TP los alumnos se desvelan programando y llegan a la entrega con las cosas no muy estables y con un estado físico que deja mucho que desear. Esto es algo por lo que yo también pasé en mi época de estudiante de FIUBA y es por eso que desde hace un par de cuatrimestre al comenzar el trabajo en el TP grupal tengo una charla bastante profunda con mis grupos para explicar el espíritu de la materia y en base a ello establecer una forma de trabajo ordenada para llegar a la entrega en forma óptima.

Mi objetivo es que al finalizar el TP los alumnos haya aprendido y aplicado los conceptos y herramientas vistas en el transcurso de la materia. A lo largo del desarrollo del TP procuramos trabajar en base a iteraciones semanales buscando el compromiso de trabajar con foco en un entregable de una semana a la otra (dicho entregable no siempre es código, puede que sea el diseño de algún módulo por ejemplo). A lo largo del TP manejamos 2 o 3 entregas formales que serian equivalentes a releases. En general para llegar a un release/entrega hay un trabajo de al menos 3 iteraciones. Como tutor intento que los grupos trabajen de forma fluida de modo de evitar tener una sobrecarga de trabajar sobre la fecha de entrega. Es más, siempre les digo no trabajar durante la noche anterior a la entrega: si la entrega es el jueves, el miércoles a las 22 a más tardar deberían congelar el desarrollo y en todo caso trabajar en detalles de presentación como correcciones ortográficas y cosas de ese estilo.

La cursada debe ser un win-win para el alumno y el docente. Yo como docente quiero que la mayor cantidad de gente posible aprenda lo que enseñamos en la materia, cuanto más aprobados y cuanto mejores las notas mejor es para el equipo docente. Al mismo tiempo, ¿que más quiere el alumno que aprobar las materia y aprender los conceptos de la misma?. De cara a esto es que aliento a los grupos que me escriban mails en caso de dudas en lugar de esperar a la clase presencial. Al mismo tiempo cuando recibo un mail intento contestarlo a la brevedad.

No le veo sentido y no me gusta que mis alumnos lleguen destruidos el dia de entrega. Claro está que si no aparecen en las clases, no mandan mails y pretenden aprobar el TP como paracaidistas voy a ser riguroso en la corrección. Pero al mismo tiempo si demuestran compromiso y los veo trabajar voy a tener una consideración absolutamente distinta, siendo incluso bastante flexible, por creo que no solo el conocimiento cuenta, sino que la actitud y la predisposición también son importantes.

Bueno, estas son algunas de mis ideas sobre la educación, tengo algunas más pero por el momento creo que esto es suficiente.

El desafío de agregar valor

Hace unos dias estuve cenando con viejo compañero de la facultad, quien desde hace un par de años lleva a adelante su propio emprendimiento desarrollando software a medida. El lugar de la reunión fue El Desnivel (clásica parrilla del barrio de San Telmo y lugar bien conocido para todo alumno de FIUBA). Mientras cenábamos mi amigo me comentaba de un proyecto que había realizado hace un tiempo y me pareció muy interesante para ilustrar la dificultad de agregar valor:

Resulta que mi amigo tomó un proyecto en el cual tenia que re hacer un aplicación existente, utilizando una arquitectura /tecnología diferente y agregando ciertas nuevas funcionalidades. La complejidad de este tipo de proyectos radica en que el  cliente debe pagar por el valor total de la nueva aplicación, cuando en realidad su percepción inmediata de valor está dada sólo por las nuevas funcionalidades que no exitian en «la versión anterior».Si bien el cliente es conciente que la nueva aplicación va a poder soportar nuevos escenarios de carga y al mismo tiempo la implementación de nuevos requerimientos va a a ser mucho más simple que con el sistema anterior, este es un valor que el cliente no percibe a primera vista en el corto plazo.

Mucho hablamos con mi amigo al respecto de este tema pues en ocasiones me ha tocado trabajar en proyectos de este tipo, pero lamentablemente aún no he encontrado la vuelta para manejar «la percepción de valor» que tiene el cliente en proyectos de este tipo.

¿alguna idea?

Good software design

Some time ago I read the book «The Art of Agile Development» by James Shore & Shane Warden and I found a statement that really caught my attention:

A good software design minimizes the time required to create, modify, and maintain the software while achieving acceptable runtime performance.

It seems pretty obvious but despite of that it shocked me. This definition leads to some interesting implications:

  • Design quality is people-sensitive: a design that assumes some language specific knowledge maybe incomprehensible for a programmer not familiar with that language. So, a good design should take this into account.
  • Design quality is change-specific: software is designed to be easily changed in some specific ways and naturally it will be harder to change it in a different way. One size does not fit all. So a good design should anticipates what changes will be required.
  • Modification and maintenance time is are more important than creation time: in most cases the life of a software is much more longer than the time you spend in the creating the software. Because of this you write code once, but it will be read/modified many times. So, a good design priories minimizing maintenance time  over minimizing creation time.

Based on the previous three points we could say that the design quality is unpredictable, because you don’t know who is going to maintain the software, you don’t know what changes will be required and you don’t know how much maintenance time will be required. Of course you can have some ideas about these three concerns and the more idea you have, the better your design could be.

I really like this vision. The debate is open.

Liderazgo y literatura fantástica

La literatura fantástica es uno de los géneros que más disfruto leer. Por estos dias me encuentro leyendo las Crónicas de la Dragonlance 2 y ayer leí un diálogo que me pareció interesante compartir.
El diálogo se da entre Raistlin, el mago del grupo de guerreros, y Laurana, una joven elfa que acaba de sumarse al grupo. Ambos estan hablando sobre episodios acontecidos varios años atrás.

– Laurana: ¿También entonces era Tanis vuestro líder?

– Raistlin: Posee las características que se cree son esenciales para dirigir un grupo. Es perspicaz, inteligente, creativo. Pero la mayoría de nosotros posee esas cualidades en mayor o menor grado. ¿Por qué sigen a Tanis los demás? Sturm es de sangre noble, miembro de una Orden cuyas raíces se remontan a tiempos inmemorables, ¿por qué obedecer a un bastardo semielfo? ¿Y Riverwind? Desconfía de cualquiera que no sea humano y de la mayoría de éstos. Aún así seguirán a Tanis hasta el Abismo ¿Por qué?

– Laurana: Me lo había preguntado y creo…

– Raistlin: Tanis escucha sus sentimientos. No los contiene, como hace el caballero, ni los oculta, como hace el bárbaro. Tanis sabe que un jefe de grupo, a veces, debe pensar con el corazón y no con la cabeza. Recuerda esto.

Entre windows y linux

Hace un tiempo actualicé mi distribución de Linux (de Ubuntu 9.4 a Ubuntu 9.10). Lamentablemente no fue una experiencia del todo feliz. Si bien la actualización fue totalmente desatendida (una vez aceptada la propuesta de actualzación lanzada por el sistema operativo, automáticamente se realizó la descarga e instalación casi sin intervención adicional), algunas cosas dejaron de funcionar, una de ellas fue el modem 3G. Por otro lado, luego de la actualización mi sistema funciona más lento y al mismo tiempo los cambios en la interface de usuario (aunque mínimos) no me resultan más amistosos. Esto me ha llevado a volver a trabajar con más seguido con Windows.

Vacaciones 2010: NOA

Hace una semana regresamos de nuestras vacaciones y ahora sí puedo dar por comenzado el 2010. El destino elegido fue el noroeste argentino (NOA). En una travesía de 9 días recorrimos diversas poblaciones de las provicias de Salta y Jujuy. Este es el mapita que muestra los puntos que visitamos:

image

Si gustan consultarlo online este es el link: http://maps.google.com.ar/maps/ms?ie=UTF8&msa=0&msid=114358693910473847554.00047f7d55a914fde8bc0&ll=-22.583583,-65.412598&spn=4.898449,9.876709&z=7

Por suerte salío todo muy bien, más allá de algunos retrasos habituales en el aeropuerto.

Algunos puntos para destacar:

  • Comimos las mejores empanadas de carne de mi vida
  • La gente nos pareció muy amable
  • Los paisajes son increibles.
  • Pude contactarme con la naturaleza como nunca antes.

Finalmente, durante el viaje sacamos algunas fotos que pueden llegar a resultar útiles para algunas presentación o bien como fondos de escritorio. Este es el link:http://picasaweb.google.com/nicopaez/ArtLandscapes#

image

Por qué Linux no es masivo

Se que este post puede resultar polémico, pero a pesar de eso quiero compartir mi visión.Este es un post que tenia pendiente desde hace bastante tiempo. Lamentablemente me encuentro escribiendo este post desde Windows porque luego de actualizar la distribución de Ubuntu (de 9.04 a 9.10)  el modem 3G dejó de funcionar.

Según veo las cosas yo, a pesar de que Ubuntu ha logrado proveer de una experiencia de usuario muy «amistosa» en comparación con las otras distribuciones de Linux, aún se encuentra bastante distante de la expericiencia de usuario provista por Windows y Mac OS.

Creo que el caso del modem 3G es un claro ejemplo: mientras que en Windows el uso del modem es muy directo (simplemente doble click para instalar el marcador, dos clicks mas para activar el modem y marcar,  y listo, ya estamos manejando),  en Linux es necesario ejecutar una serie de pasos desde una consola, con permisos de superusuario (pasos que pueden llegar a incluir la instalación/configuración de un driver).

En gran medida esta situación puede que se deba a que no todos  los fabricantes de hardware proveen drivers para Linux. Por otro lado la filosofía open source creo que también puede resultar un impedimento, ya que no todo el mundo está dispuesto a «publicar» su código fuente. ¿Como influye esto? Ciertas distribuciones no incluyen en el instalador software que no sea Open source, obligando a que el usuario deba tomar a su cargo la «instalación/configuración» de los drivers  que la distribución no incluye.

Por último, pero no por eso menos importante, está el tema de la consola/terminal. Entiendo que a los programadores de linux les encante trabajar en una terminal, pero para la gran mayoria de los usuario les resulta extraño y/o incómodo .

Tengo algunos otros puntos sobre este tema, pero son muy particulares y creo que no aportan a la discusión, pues lo aquí mencionado es de mucha mayor relevancia.