« Julio 2007 | Inicio | Septiembre 2007 »

Agosto 31, 2007

Ponga una lista en su vida

O cómo una aplicación extremadamente simple, puede volverse indispensable.

Lo que nos puede enseñar una valiosa lección, no por muchas features, no por muchos controles y menús, aseguramos tener una kill application.

Las ofertas de trabajo

Hace poco un compañero de trabajo estaba mirando las ofertas de cierta web que todos conocemos. Y mientras leía las mismas, me iba comentando.

Recuerdo especialmente la oferta de trabajo para contratar a un director de arte, que debía tener mil y un conocimientos, mucha experiencia , capacidad para liderar un equipo, ser menor de 25 años y por supuesto, contentarse con los 18000 euros que ofrecían.

Durante un rato pensamos que era un broma. Pero no, las cosas son así.

Saco esto a colación de un post del día 27 de Guy Kawasaki, titulado "How to Not Hire Someone Via Craigslist" que podría ser traducido como "How to Not Hire Someone Via Infojobs" o similares.

Buena es la lectura del artículo, así como la referencia al mismo hecha tres días después en signal vs noise.

Lectura de viernes ( porque recordemos, hoy es viernes ).

Agosto 28, 2007

Holding a Program in one's head

Volvemos a un tema recurrente.

A good programmer working intensively on his own code can hold it in his mind the way a mathematician holds a problem he's working on. Mathematicians don't answer questions by working them out on paper the way schoolchildren are taught to. They do more in their heads: they try to understand a problem space well enough that they can walk around it the way you can walk around the memory of the house you grew up in. At its best programming is the same. You hold the whole program in your head, and you can manipulate it at will.

[.....]

It's not easy to get a program into your head. If you leave a project for a few months, it can take days to really understand it again when you return to it. Even when you're actively working on a program it can take half an hour to load into your head when you start work each day. And that's in the best case. Ordinary programmers working in typical office conditions never enter this mode. Or to put it more dramatically, ordinary programmers working in typical office conditions never really understand the problems they're solving.

Extraído de un artículo de Paul Graham del que recomendamos lectura.

El artículo en cuestión nos da 8 consejos para conseguir tener el programa en la cabeza. Me han gustado especialmente las frases que he remarcado en negrita, no porque estén muy bien escritas, sino porque sintetizan en un par de sentencias la realidad habitual de los programadores. Realidad de la que somos conscientes nosotros, pero no quienes han de poner los medios para que cambie.

Me corrijo, seguro que son conscientes, pero no les importa.

Agosto 20, 2007

Hong Kong

Mañana, a estas horas, estaré facturando el equipaje en el aeropuerto de Barajas, camino de Hong Kong, donde voy a estar un tiempo indeterminado pero, a priori, no inferior a un año.

La aventura tiene varias facetas muy interesantes, algunas profesionales y otras personales. De las profesionales iremos dando cuenta por aquí en los próximos meses, y para dar cuenta de las personales, y para los que estéis interesados en conocer un poco más la forma de vida asiática (o al menos la de Hong Kong), hemos abierto un nuevo blog llamado Nuevos Territorios. En él pretendemos contar todo lo que veamos en este año.

Agosto 10, 2007

El mito de la caverna

Platón utilizó una alegoría para describir la relación entre el ser humano y el conocimiento, alegoría que llamó Mito de la Caverna.

Según Platón, el mundo se divide en dos: el mundo conocido a través de los sentidos, y el que sólo se puede conocer a través de las ideas. En su descripción del mito, el filósofo griego colocó a unos prisioneros, desde el momento de su nacimiento, en una caverna muy profunda, hechos prisioneros, amarrados a las paredes de la misma con cadenas, y colocados de forma que sólo pueden mirar hacia el fondo de la cueva. Detrás de ellos y en dirección a la salida hay un muro, un largo pasillo, una hoguera, y finalmente, la entrada a la cueva, que se abre directamente sobre una naturaleza exuberante.

Mientras los hombres permanecen encadenados, mirando a la pared del fondo, ven sobre la misma las sombras que proyectan otros hombres, que se mueven por el pasillo que se dirige a la salida.

Con esta disposición Platón quiere simbolizar varias cosas. Los prisioneros encadenados representan al ser humano, que sólo conocen del mundo exterior lo que pueden ver proyectado en la pared, las sombras de la realidad que en realidad no son más que una apariencia deformada de la misma. El exterior de la caverna, fuera del alcance de los prisioneros, es el mundo de las ideas, el mundo del conocimiento.

En la historia de Platón, uno de los prisioneros (que representa al filósofo) logra zafarse de sus ataduras, salir al exterior, y posteriormente guiar al resto de sus semejantes hacia el mundo de las ideas.

El Mito de la Caverna sirve para representar el estado en el que se encuentra el ser humano desde su nacimiento, ajeno al conocimiento. Sólo aquellos que sean capaces, con mucho esfuerzo y dolor, de romper sus cadenas, escalar muros y atravesar fuegos, serán capaces de contemplar el luminoso mundo de las ideas, con sus doloridos ojos, acostumbrados a la oscuridad.

Por si acaso no es obvio, repasemos el paralelismo entre el mito de la caverna y la vida laboral de la mayoría de los programadores.

Vivimos atados por mil y una consideraciones ajenas a nuestra naturaleza, creadas e impuestas por una entidad superior, que nos mantienen en el fondo de la caverna, de cara a la pared: supuestos desvíos en los tiempos de desarrollo, incertidumbres tecnológicas, falta de personal cualificado, falta de tiempo de formación, y mil y una más.

Sin embargo, percibimos que existe una realidad brillante en el exterior. Distorsionada, ciertamente, pero tenemos una visión de la existencia de algo más, de un mundo en el que no sólo las ideas, sino que también las herramientas, los procedimientos, las metodologías, se mueven en total libertad, a sus anchas, sin los corsés a los que las someten, unas veces la falta de conocimiento, y otras la falta de capacidad de riesgo de los dueños de la caverna.

Está en nuestra naturaleza el intentar romper las ataduras, las cadenas que nos mantienen mirando única y exclusivamente a la pared oscura, y correr detrás de la luz cegadora del conocimiento, lo único que nos hará mejores programadores, y, con suerte, mejores personas. Y lo único que, por cierto, permitirá a los que nos pagan aumentar sus beneficios.

Hoy, un hombre sale de su caverna. Y su única idea es permanecer, el mayor tiempo posible, atolondrado y hambriento.


Agosto 01, 2007

Hello World con AIR y Flex Builder 3

Si instalar el entorno para desarrollar aplicaciones AIR basadas en Ajax era sencillo, preparar lo necesario para trabajar con AS3 lo es aún más.

Antes de empezar, es necesario descargar la beta de Flex Builder 3. Una vez descargada, ha que proceder a su instalación, que se realiza sin casi intervención por el usuario.

Instalacion

Una vez concluida la instalación y arrancado Flex Builder, debe crearse un nuevo proyecto, obviamente, un proyecto AIR.

Imagen 3

Una vez elegido el nombre del proyecto, Flex Builder crea los archivos necesarios para que éste sea funcional: el fichero descriptor de la aplicación, el mxml principal de la misma. Si se abre este último (en mi caso llamado HelloWorld.mxml, nombre que corresponde con el que he asignado al proyecto), y se pasa a la vista de diseño...

Vistadesign

En la parte inferior izquierda (por defecto) de Flex Builder aparecerá la lista de componentes, entre los que se podría elegir, por ejemplo, el Label:

Compo Label

Que si se arrastra sobre el escenario, permite insertar un texto cualquiera, como por ejemplo "Hello World".

Si se compila el proyecto, el resultado salta a la vista

App Flex Builder

Ya se puede considerar completado el primer paso: tener un equipo preparado para el desarrollo de aplicaciones AIR, tanto basadas en Ajax como basadas en Flash. Ahora sólo falta desarrollarlas. Casi nada.