Apache Barcamp Spain me devuelve la fe en los informáticos

El pasado sábado 8 de octubre estuve todo el día disfrutando de un evento en Sevilla del que creo que he aprendido muchas cosas. Quedé tan impresionado con el buen hacer y la generosidad de los organizadores y los patrocinadores que creo que lo mínimo que podía hacer era dejar una reseña en este humilde blog.

Lo primero que llamó mi atención fue el formato abierto y desenfadado de la presentación, aquí nadie venía a venderte soluciones milagrosas. Los participantes que se habían preparado alguna ponencia las expusieron muy brevemente en el acto de apertura y luego cada uno votó a aquellas seis a las que deseaba asistir.

apertura evento barcamp spain 2011

Los organizadores del eventos se lo han currado tela: las jornadas transcurrieron como la seda, desayuno y merienda incluidos, crearon un ambiente de compañerismo y buen rollo, de la fiesta nocturna no puedo contar nada porque tenía otro compromiso, pero me han dicho que fue algo bárbaro. De izquierda a derecha:

  • David Bonilla: desarrollador, blogger y personnalité de la Red. Embajador de Atlassian en España, fundador de Bonillaware y miembro de Funius, un pequeño comando de gamberros informáticos de élite. Es de esos tíos que estás un rato con él y ya parece que te conoce de toda la vida.
  • Manu Recena: desarrollador y empresario sevillano. El motor de la Barcamp y fundador de Klicap. Con el di mis primeros pasitos en PHP.
  • Antonio Muñiz: desarrollador, amante y contribuyente del open source y navaja suiza multiuso. Trabaja en klicap para mejorar el mundo a base de pequeños detalles y grandes productos.
  • Carlos Sanchez: histórico desarrollador open source y miembro de la Apache Software Foundation. Nunca deja de sonreir.

En segundo lugar quiero romper una lanza por los patrocinadores del evento. He leido en otra crónica que aquí lo importante eran las personas que había sido un encuentro de personas, que eran ellas las que habían echo posible tan bien clima, etc. Totalmente de acuerdo, sin personas no hay evento. Pero yo quiero destacar a las empresas y a la organización que ha hecho posible todo esto. Y lo hago porque me parece que tiene más merito trabajar en grupo (ya sea en empresa o en comunidad) que trabajar por libre. Y también porque me he llevado una grata sorpresa con las empresas que han acudido a este evento y que han puesto toda la carne en el asador. Empresas pequeñas (en el sentido del libro “Lo pequeño es hermoso” de E.F. Schumacher) empresas en las que importan las personas: las de dentro y las de fuera, en las que importa el trabajo bien hecho.

Atlassian
Atlassian crea herramientas para conseguir que los mejores equipos construyan el mejor software. Más de 20.000 compañias usan su gestor de tareas y sus herramientas de colaboración y desarrollo para trabajar más inteligentemente y entregar a tiempo productos de alta calidad.

KlicapKlicap es una compañía centrada en el desarrollo de productos vinculados al ciclo de vida de los proyectos software. Su experiencia proviene fundamentalmente de la participación en proyectos de consultoría, auditoría y desarrollo de software a medida tanto para administración pública como empresa privada. Con raíces en desarrollo y tecnología open source. Su stack tecnológico es Java, PHP y Python.

Extrema SistemasExtrema lleva en marcha desde 2002. Diseñan aplicaciones de software para intentar cambiar el mundo, intentando que se conviertan en puntos de referencia del sector. Por lo que a mi respecta me encantaría asistir al curso que tienen montado de html5 y css3.

AutentiaAutentia es una empresa de soporte a desarrollo informático, especializada en nuevas tecnologías, que se ha convertido en un referente en el sector con su divertida web Adictos al trabajo. También harán una incursión en el mundo de la animación con la serie Terrakas. Adicionalmente proporcionan servicios de factoría del software, formación, HeadHunting y contribuyen al desarrollo tecnológico compartiendo sus conocimientos e invirtiendo recursos en el desarrollo de software libre.

Deiser En Deiser crean soluciones que ayudan a las organizaciones a mejorar sus procesos y al mismo tiempo proporcionar a los usuarios una manera de trabajar más sencilla y eficaz. Para lograrlo trabajan en tres direcciones: Herramientas, aplicaciones y personas, reduciendo la complejidad, favoreciendo la colaboración de los usuarios y generando ideas sin perder el foco en los objetivos del negocio. Son partners de Atlassian, desarrollan plugins, trabajan en soluciones móviles…

TropoTropo es una API potente y sencilla para añadir a tus aplicaciones soporte de voz, SMS, twitter e IM.

Escuela de Groovy Escuela de Groovy es una joint venture de ImaginaWorks y Salenda, las empresas españolas con mayor conocimiento y experiencia en Groovy, Grails, Griffon y otras tecnologías relacionadas, que deciden poner en común esfuerzos para convertirse en el referente nacional sobre este tipo de tecnologías.

KarmacracyKarmacracy es … un ¿acortador de enlances?, no mucho más; ¿una red social?, no más bien un soporte a ella; ¿qué es entonces? pues una manera fresca y divertida de impulsar las páginas que te gustan y que estas te devuelvan el favor. ¿Quieres probarlo? dale al botón “Impulsar” que encontrarás más abajo.

clausura evento barcamp spain 2011

Como anecdota os comentaré que hablando con un representante de una empresa le pregunté que si ellos podrían darnos formación sobre un tema concreto, me dijo que si, que daban una formación básica sobre el tema pero que allí había otras empresas más preparadas para ofrecerme esa formación y que hablara con alguno de sus responsables. Lo hice al rato y otro asistente, de otra empresa, me orientó bastante bien sobre el tema. Me contó con total transparencia lo que nos podían dar ellos y lo que no nos podían dar y se prestó para ponerme en contacto con una tercera empresa que quizás pudiera ser más adecuada para algún tema concreto. A esto lo llamo yo preocupación por el cliente. Y creo sinceramente que es este tipo de empresa el que finalmente triunfará cuando termine de hundirse el modelo de grandes corporaciones en que vivimos ahora ¡tomayá!

Y para terminar esta interminable crónica os dejo con la frescura de la crónica en vídeo de BonillaTV. ¡No os la perdáis!, es un regalo por haber llegado hasta aquí

BonillaTV: Apache Barcamp Spain

Más crónicas de Barcamp Spain

El código samurai (O cómo programar mejor)

Este artículo es un resumen de los consejos ofrecidos en el artículo Free Programming Tips are Worth Every Penny (Consejos gratuitos para programadores que valen su peso en oro) por Will Shipley.Dibujo de samurai. Autor: Eugene Collache

Sigue el Código Samurai

Los antiguos samurais, cuando luchaban, se pasaban horas observándose mutuamente hasta que repentinamente uno de ellos lanzaba un sólo golpe y derrotaba al contrincante.

Cuando vayas a programar, antes de nada, piensa, luego piensa un poco más, hasta que tengas una idea de conjunto de todo el proyecto. Luego piensa en un problema concreto con el que vayas a comenzar a programar, piensa de nuevo en el conjunto y en como encaja esta pieza en él. Entonces comienza a escribir código. No escribas una sola línea de código hasta que no tengas claro que es lo que vas a hacer.

Si eres de los que necesitan escribir para pensar: escribe en una carpeta aparte, crea tantas nuevas carpetas como bocetos necesites y cuando ya tengas el dibujo completo entonces escribe en la carpeta o proyecto definitivo; reutilizando los fragmentos de código que son de calidad y reescribiendo de nuevo lo que haya salido emborronado.

Escribe todo el código “en limpio” la primera vez que lo escribas. No hagas una chapuza pensando que lo arreglarás más tarde, de hecho nunca lo arreglarás. Utiliza clases para todos. Usa tipos enumerados.

Escribe código robusto y “a prueba de balas” desde el principio. Piensa en todo lo que podría causar un fallo y toma medidas preventivas como si el fallo ya hubiera ocurrido.

Cada vez que retoques tu código para añadir funcionalidades o corregir un fallo aprovecha para hacer limpieza. Haz limpieza todo el rato. Pasa el paño cada vez que veas una mota de polvo afeando tu código.

Menos código casi siempre es mejor. Mejor para depurar, mejor para que lo entiendan otro programadores o tu mismo en el futuro, menos código son menos fallos. No añadas funciones adicionales a una clase pensando que las necesitarás en el futuro. Escribe sólo lo que necesites ahora. Cuando necesites contemplar nuevos casos escribe una función más genérica, que admita parámetros, pero no lo hagas hasta que no estés usando esa función en dos o más lugares de tu aplicación.

No te obsesiones con la velocidad y la eficiencia de tu código al principio. Tu tiempo de programador es caro, el hardware es rápido y barato. Cuando tu código funcione y esté depurado podrás hacer test de rendimiento y encontrar los cuellos de botella que merece la pena optimizar.

Es posible que este sea el único artículo que aparezca en este blog sobre el tema de programación, he creado Framework PHP un nuevo blog dedicado exclusivamente a la programación en PHP.

Cursos gratuitos de AJAX, JavaScript y Java

Sang Shing es un trabajador de Sun Microsystems que a título particular se dedica a impartir cursos online gratuitos sobre tecnologías web como AJAX, JavaScript, Java, J2EE, XML y Web Services, entre otras. Puedes apuntarte desde su web a los cursos o seguirlos por tu cuenta utilizando el material disponible, que parece de una calidad excelente.

He encontrado la entrada en el blog de Jaime Cid, también de Sun.

Novedades radicales

Edsger W DijkstraEdsger W. Dijkstra es una de esas mentes encargadas de poner los cimientos de las ciencias de la computación, sus escritos no tienen desperdicio. Puedes encontrar algunos de sus mejores escritos en la web de Javier Smaldone, muchos de ellos traducidos al español. Os copio un fragmento de su artículo “Sobre la crueldad de verdaderamente enseñar Ciencias de la Computación”.

“La manera usual en la cual hoy planificamos para el mañana es en el vocabulario de ayer. Lo hacemos porque tratamos de avanzar con los conceptos que nos son familiares, los cuales han adquirido un significado en nuestra experiencia pasada. Por supuesto, las palabras y los conceptos no encajan precisamente porque nuestro futuro difiere de nuestro pasado, pero las estiramos un poco. Los lingüistas están bastante familiarizados con el fenómeno en el cual los significados de las palabras evolucionan a través del tiempo, pero también saben que este es un proceso lento y gradual.

Es el método más común cuando se trata de lidiar con la novedad: utilizando metáforas y analogías tratamos de vincular lo nuevo con lo viejo, lo novedoso con lo familiar. Bajo un cambio suficientemente lento y gradual, esto funciona razonablemente bien; en el caso de una discontinuidad aguda, sin embargo, el método colapsa: aunque podemos glorificarlo con el nombre «sentido común», nuestra experiencia pasada ya no es más relevante, las analogías se tornan muy superficiales, y las metáforas se hacen engañosas en vez de reveladoras. Esta es la situación que caracteriza a la novedad “radical”.

Lidiar con una novedad radical requiere un método ortogonal. Uno debe considerar su propio pasado, las experiencias recogidas, y los hábitos formados en él como un desafortunado accidente de la historia, y debe acercarse a la novedad radical con la mente en blanco, rechazando conscientemente el intento de vincularla con lo que ya es familiar, debido a que lo familiar es desesperanzadamente inadecuado. Uno debe, con una especie de personalidad dividida, tomar una novedad radical como algo desasociado por propio derecho. Comprender una novedad radical implica crear y aprender un lenguaje extraño, el cual no puede ser traducido a nuestra lengua materna. (Cualquiera que haya aprendido mecánica cuántica sabe a lo que me refiero.) No hace falta decirlo, ajustarse a las novedades radicales no es una actividad muy popular, ya que requiere mucho trabajo. Por la misma razón, las novedad radicales no son por sí mismas bienvenidas.”

Mi nuevo Mac Book Pro

Cada vez me gusta más el Mac Book Pro, es estable a prueba de bombas y hasta ahora todo parece funcionar como la seda.
Estoy intentando convertirlo en una estación de desarrollo autónoma,para poder trabajar tanto online como offline. He activado el ApacheServer 1.3 que viene por defecto con el sistema, aunque me ha sido de gran ayuda el tutorial de onlamp [1]. Me he bajado el MySQL [2] (el que vale para mi equipo es el Mac OS X package format x86) y el paquete para PHP [3]. También me he instalado el vim 7.0 [4] porque el que viene con Darwin parece fallar tela.
[1] http://www.onlamp.com/pub/a/mac/2001/12/07/apache.html
[2] http://www.mysql.org/
[3] http://www.entropy.ch/software/macosx/php/
[4] http://macvim.org/OSX