domingo, 11 de julio de 2010

Calima, viento, cámaras y windsurfistas

Este viernes, al salir del trabajo, me recogió Luis, en su coche que no es todo terreno pero que el propietario está empecinado en meterlo en cualquier sitio, como ya conté hace unos días en Paseo con Luis, Sulaco y un holandés (supuestamente no errante), y cogimos carretera directos a Pozo Izquierdo para ver la final —¿o se disputaría el sábado? No presto mucha atención a este tipo de cosas— del campeonato de windsurf de este año. Sí, ya, ya, que sé que ha pasado todo un año desde la primera vez [Mi primera vez fotografiando windsurfistas en Pozo Izquierdo]; y que el año ha pasado volando. Que ya sueno cansino con eso de que el tiempo pasa volando también lo sé. Eso sí, aún con las prisas para llegar a tiempo de fotografiar algo, paramos a recoger a Marcos que también se apunta a un bombardeo. Siempre y cuando el bombardeo implique usar la cámara. Su nueva cámara. Resulta que todavía hay gente que apuesta por las Pentax.

La calima nos jodió las instantáneas. Al menos a mí. Al estilo de la otra vez, que también había una calima incómoda. Fastidia llegar a casa y ver que todas tus fotos tienen un tono marrón o amarillento. Pero eso no fue lo peor. También aportó algo mi manía de no hacer caso a los «expertos» Llevé la cámara tal cual, como el año pasado, sin una protección en condiciones. Al minuto tenía la lente —filtro mediante, eso sí— completamente llena de microgotas de agua y salitre. Y a tomar por culo todas las fotos a partir de ahí. Mira que Luis me lo avisó. Tras revisar durante un rato las fotografías que hice he decidido dejarlo para otro momento, porque ya me estaba poniendo como una moto por tanta frustración. La que produce ser tan inútil. A ver si la próxima vez que las revise encuentro alguna interesante. Y a ver si la próxima vez que vayamos tenemos mejor suerte con la climatología y, de paso, hago caso a los buenos consejos que me den para intentar evitar tener la lente completamente empañada/sucia al minuto de haberle quitado la tapa protectora.

Aunque, si los rumores son ciertos, me parece que el año que viene no habrá campeonato.

Windsurfista por los aires

No sé si es cosa mía, que ya comentaba hace unos días que lo de la fotografía no me tiraba tanto como antes, y puede que con ese color de cristal revise la situación, pero la cosa la encontré bastante desanimada. Cierto que llegamos en el último minuto, cuando competía el último participante. Sin embargo ya iba condicionado a que todo el mundo comentara que este año la cosa andaba bastante floja en todos los aspectos. Menos días, menos participantes, menos dinero para acomodar a los participantes… y para el evento en sí. Menos de todo. En fin, que parece que no soy yo el único que anda desganado. El dinero no quiere ser empleado en pagar un campeonato que lleva una jartá de años celebrándose. ¿El principio del fin? ¿Lo celebrarán el año que viene?

El año pasado me acomplejé. Pero este año, así tiene algo bueno el traerme un poco sin cuidado el arte de la instantánea, ver a gente con unos «lanzamisiles» de objetivos me daba igual. Creo que llegué a ver un 600 milímetros de Canon, si no era más grande aún. Y ese objetivo cuesta unos ocho mil euros. Ni en los sueños más verracos y húmedos, durante mi época más aficionada a la cámara, llegué a soñar con un objetivo así. Vamos, que tan inimaginable me resultaba llegar a tener un bicho de ese calibre, que simplemente no cabía en ninguna de mis fantasías más enfermizas. Forzarme —pero con un esfuerzo extremo— a imaginar colocar un objetivo de esas características en mi cámara podría llevar a un colapso el universo conocido.

Lo obvio en estos casos es hablar de cámaras. Luis y yo tenemos cámaras que ya llevan unos cinco años en el mercado. Esto de las cámaras digitales es como los ordenadores a principios de los noventas, cuando yo viví el (o parte del) boom de los PC's. Mi primer PC, un 386 con 4 Mb de memoria RAM, me costó cuatrocientas quince mil pesetas (al cambio unos dos mil quinientos euros de ahora) que estuve pagando durante cuatro años. Y el PC estaba obsoleto a los dos. Fue cuando la competición entre los paquetes ofimáticos conseguían que tu ordenador no sirviese ni para escribir tres líneas pasados unos pocos meses. De los juegos ya ni hablo. Los procesadores de las cámaras, los sensores y el tratamiento que se hace en la captura, consiguen que las cámaras digitales se queden obsoletas. O que uno sienta que se ha quedado obsoleta. No estaría de más que de una vez por todas sacaran una cámara «actualizable». Sentir que tu equipo ya está viejo es el efecto secundario indeseable que produce leer prensa «fanática». ¿O se dice especializada? Tanta novedad y tanto avance han conseguido que me da vergüenza enseñar mis fotos tomadas a 400 ISO. El ruido es tan asqueroso que me siento como me sentía en mis pesadillas infantiles más horrendas, dentro de las cuales me presentaba en el colegio cinco minutos tarde y extenuado de tanto correr para descubrir que iba con calzoncillos nada más. Lo curioso es que eso antes, recién comprada mi querida D200 [Mi experiencia con la Nikon D200], me daba bastante igual. El grano es artístico, decía. Ahora también me importa poco, cuando a veces me planteo vender el equipo. Pero sé que en cualquier momento volverá a picarme el dedo y querré salir a capturar imágenes como hacía antes. Soy consciente que esto es por épocas.

Creyendo en que llegará una de esas épocas a veces me planteo cuál sería el cambio. De eso estuvimos hablando, refresco en la mano, rodeados de windsurfistas que celebraban la victoria del día. Ellos ajenos a nosotros y nosotros esperando que se animaran a seguir practicando para tirar las últimas fotos antes de darnos por satisfechos. A diferencia de Luis, por ejemplo, a mí no me importa cargar con diez kilos en equipo fotográfico. Egipto fue un caso extremo, eso es cierto. Estaba casi estrenando D50 y estrenando D200, que compré el día anterior a volar para allí. Dos cámaras y varios objetivos muy cutres. Pero me divertí mucho pese al peso. Desde entonces, en el resto de viajes, suelo llevar un cuerpo nada más y dos o tres objetivos. Lo «justo». Aún así no menos de cuatro o cinco kilos. Por eso no creo que vuelva a una compacta con un ultrazoom, como la Coolpix 5700 que tuve antes de la primera reflex digital. Cierto que a veces lo pienso. En realidad, lo que me planteo es si pasaré al full frame o si me quedaré en APS-C. Lo bueno del formato APS-C es que para los teleobjetivos supone un incremento de la focal sin perder —eso dicen— calidad en la óptica. Lo mejor del formato completo es que tiene mayor calidad a igual megapíxeles y es más versátil para los angulares. Yo estoy más por cambiar al formato completo. Una D700, o lo que sea entonces, sería la opción deseable. Aunque tengo claro que eso no será, si es que llega a ocurrir, hasta el próximo año, como muy pronto. Creo que aguantaré con mi D200 hasta finales de 2012. No vaya a ser que los mayas estuvieran en lo cierto y me vaya al infierno con plazos pendientes de la nueva cámara. El cura de mi parroquia asusta a los niños diciéndoles que Lucifer tiene acciones en tu banco y que a los morosos los trata especialmente mal. Pero si opto por soltarme el pelo —sí, sí, el que mi calva echa ya de menos— el año que viene, para entonces hará ya cuatro años que tengo la Nikon D200. Como hice con mi primer PC, cuatro años puede ser el tiempo justo de amortización antes de sustituirla por otra mejor.

Hay gente que dice que la fotografía es una afición cara. Yo creo que no es tan cara. Aunque es mejor decir: no más cara que otras aficiones. Está claro que no todo el mundo se puede permitir adquirir un equipo fotográfico de gama alta. Igual que no todo el mundo se puede permitir un coche de veinticuatro mil euros. O un viaje de tres semanas a Nueva Zelanda. O, ya puestos, un iMac de veintisiete pulgadas. Y eso que veo a muchos con esos coches. O viajando cada año a las antípodas. O pillándose un pedazo de equipo informático que quita el hipo.

Tampoco es necesario que todo el mundo se compre una cámara cara, claro, volviendo a la fotografía. Para muchos existen alternativas más económicas que ofrecen resultados espectaculares. Pero hagamos unos sencillos números. Mi cámara D200 me costó mil quinientos euros. Me durará al menos cuatro años. Repartido de forma mensual, esos mil quinientos euros suponen unos treinta euros mensuales (mil quinientos entre cuarenta y ocho meses). Por tener ADSL en casa, lo que me obliga a una línea fija, pago unos cincuenta euros al mes. Por establecer un valor de comparación. Pero aún más. Suponiendo que llegue a dar el salto a una full frame la cámara se quedará como segundo cuerpo y no perder la posibilidad de multiplicar las focales tele. Para cuando se caiga a cachos, o se convierta en un pisapapeles bonito, la amortización mensual será aún menor.

Pero volvamos a esos treinta euros al mes que se queda de amortización de esos cuatro años de uso y disfrute. Ahora haz cuentas de la última vez que saliste a cenar con unos amigos a tapear. ¿A cuánto tocó por cabeza? ¿A veinte o veinticinco? ¿Y las copas que luego te tomaste en una terraza para alargar un poco más la velada y terminar de ponerte al día? Una noche así puedo gastarme entre treinta y cuarenta euros. Como poco. Pero voy con mi mujer, así que nos gastamos el doble recurriendo al mismo fondo de tesorería. ¿Cuántas veces se sale al mes a cenar con los amigos? Dado que no soy un tipo muy activo socialmente, no muchas. Por suerte para mi tesorería, pero para desgracia de la inmortalidad de mi memoria.

Y hay muchas otras comparaciones similares. De hecho, hay pocas aficiones, se me ocurre ahora, que sean «económicas» cuando te introduces a fondo en ellas. No soy nada aficionado al windsurf, pero en Internet puedes buscar precios de equipamiento. El equipamiento básico —de iniciación, vamos— de tabla, vela, mástil, neopreno, etcétera, etcétera, puede costar unos mil quinientos euros. De iniciación, repito. Un mástil de carbono superligero te puede costar él solito quinientos euros. Y una tabla mínimamente digna unos mil doscientos. ¿Y a los aficionados al ciclismo? Una bicicleta ultraligera te puede costar dos mil quinientos euros o más. ¿Y un sistema de reproducción de audio de alta definición de calidad infinita? Sé de uno que se gastó más de millón y medio de las antiguas pesetas en un sistema de reproducción de audio perfecto. ¿Y el que se gastó los seis o siete mil euros que costaban los primeros televisores de plasma? ¿O los tres mil que está costando ahora uno de los nuevos LED 3D? ¿Quién está dispuesto a gastarse esa pasta en una tele que va a poner en su salón? Lo triste es que muchos lo hacen y luego se descargan los screeners con la mula. Pero eso es otra historia.

Sé que todo esto no deja de ser una justificación sobre mi proceso de autofijación de precios, pero he querido insistir en remarcar que, en el fondo, no vemos como «caro» lo que estamos dispuestos a comprar nosotros y sí mucho lo que otros están dispuestos a gastarse en las aficiones que tienen. Seguramente si le hubiese dicho a alguno de los chicos que competían allí que mi cámara había costado mil quinientos euros se hubiese llevado las manos a la cabeza al tiempo que le parece de lo más normal pagar mil novecientos por una tabla Formula 162 de 2009 [@ Triboo Wind]. Lo mismo que a mí me entraron escalofríos cuando un compañero me dijo que se iba a comprar un todo terreno «de ciudad» que le costaría cincuenta mil euros. Creo que se me saltaron los ojos de las órbitas cuando me lo dijo.

Cada loco con su tema, como decía aquel.

De todas formas lo realmente caro no es la cámara. Una full frame «exige» unos objetivos mejores. Aunque Marcos diga que lo importante sean los megapíxeles y no las lentes. Igual que el tema de los precios, a mí sí me parecen importantes. Por eso no se me ocurriría dar el salto al formato completo sin renovar los objetivos. Y eso es una pasta. Aunque, al igual que justificaba con el cálculo mensual de amortización la adquisición de la cámara, los objetivos tienen un tiempo de vida mucho mayor. ¿A cuánto se quedarían el cálculo mensual los dos mil euros de una lente que dure diez o quince años? A mí me salen unos dieciséis o veinte euros.

sábado, 10 de julio de 2010

iPhone, MonoTouch y la insoportable levedad del ser: El cliente (la prueba).

Ya decía ayer [iPhone, MonoTouch y la insoportable levedad del ser: El comienzo] que quería dejar constancia escrita (a modo de recordatorio para el futuro dentro de la saga Cuadernos del tolete [@ mi blog], también) de lo que observé al probar MonoTouch [Web oficial]. Y compararlo, en la medida de mis limitaciones, con las otras alternativas que he ido revisando: PhoneGap [Web oficial] y el propio Objective-C [@ Apple].

Lo primero que hay que saber es que desarrollar para iPhone exige trabajar sobre un Mac. Pese a que Mono [Web oficial] es multiplataforma, MonoTouch no. Bueno, sí pero no. Se puede desarrollar con Windows, creo, pero no sé cómo se resolvería la parte del simulador y, lo que es más importante, la gestión de los perfiles para «subir» el código a un terminal. Tampoco me he preocupado mucho en ese aspecto. Así que, si las cosas no han cambiado, se requiere igualmente usar un Mac para desarrollar con MonoTouch.

XCode 3 [@ Apple] no es santo de mi devoción. Así que he preferido usar MonoDevelop [Web oficial], ya que es «la herramienta definitiva» para el desarrollo .NET sobre Mac. Será también la que use para hacer un pequeño servicio Web correspondiente a la parte de servidor. Sin embargo, MonoTouch trabaja con la herramienta de diseño de interfaces de XCode, Interface Builder, y requiere el simulador de iPhone/iPad para poder ver el resultado. Por todo ello, se requiere instalar XCode con el SDK de iPhone.

Resumiendo, los pasos que vamos a necesitar dar para empezar serán:
  1. Tener un Mac. Si no es tu caso, hasta aquí «podemos leer».
  2. Descargar e instalar XCode + SDK de iPhone, para lo que debes estar dado de alta como desarrollador (gratis) en el iPhone Dev Center [Web principal].
  3. Descargar e instalar Mono para Mac [Download @ Mono Project].
  4. Descargar e instalar MonoDevelop para Mac [Download @ MonoDevelop].
  5. Descargar [Download Trial @ MonoTouch] e instalar [Installation @ MonoTouch] MonoTouch.

Cabe la opción de instalar Mono y MonoDevelop usando MacPorts [Homepage]. Yo lo hice [MacPorts y Postgresql 8.3]. Y me dio tantos problemas que tuve que eliminarlo todo y volver a instalar MacPorts. Desde entonces igual ya han resuelto los problemillas que tuve. Pero la instalación desde los paquetes oficiales es mucho más cómoda. Y, al menos en mi caso, no tengo intención de deinstalarlos en un futuro próximo. Se quedan.

Tan solo en el primer punto ya te vas a pegar un buen rato. XCode se distribuye con dos «sabores» (al menos): con y sin SDK de iPhone. Si, como fue mi caso, que ya tenía la variante «sin», cuando quieras «añadir» el SDK de iPhone vas a tener que descargar igualmente todo. Unos dos gigabytes y pico. Como dije, vas a tener para rato. Salvo que vivas en un país desarrollado y tengas una buena comunicación ADSL (o similar) a precios asumibles y competitivos. Yo sigo pagando treinta euros por una conexión que a duras penas llega a 1 Mb porque las operadoras pasan de actualizar el cableado de la zona. Para mí, descargar el SDK es cosa de horas.

MonoTouch es un producto de pago. Pero para desarrollar y probar sobre el simulador no tienes que gastarte ni un euro. Sin embargo, tendrás que registrarte igualmente para que puedas usar la versión trial.

Hubiera sido mucho más fácil —y también mucho menos divertido— hacer capturas y contar lo que hice para la prueba de concepto de la empresa —que, por cierto, el cliente al final decidió posponer el proyecto hasta un momento mejor; de la noche a la mañana la presión de tiempo desapareció—, pero la cláusula de privacidad —y la lealtad, principalmente— me impiden «abusar» de la confianza depositada sobre mí en ese aspecto. Así que he decidido, para esta serie de artículos, fabricar una aplicación tonta que me permita, eso sí, probar varias cosas. ¿Podría hacer algo, además, «comercialmente» interesante para un posible mercado objetivo?

Después de darle varias vueltas se me ocurrió que no hay nada más «universal» que la superstición (y su prima bastarda la charlatanería). Vaya, donde vaya, siempre encontrarás alguien dispuesto a creer que el zodiaco define el carácter de las personas: «¡Ah! ¡Que eres Tauro! Eso lo explica todo…». Pero seamos francos: ¿A cuánta gente conoces que no lea el horóscopo cuando cae en sus manos un periódico? No he preguntado «creer». He dicho «leer».

Rebusqué qué artes malignas arcanas se usan para la adivinación o establecimiento de tus dotes metafísicas y sobrenaturales y tropecé con la Numerología [@ Wikipedia]. Fácil de entender y fácil de calcular. Igual carencia de base científica. Perfecto para mis fines.

Sagan [@ Wikipedia | The Carl Sagan Portal] estará revolviéndose en su tumba. De verdad que lo hago con intenciones pedagógicas, nada más. De momento mi ánimo de lucro anda ridículamente desaparecido.

Al esperpento lo he llamado «Numerón dice». Y a continuación contaré algunas de las vicisitudes, y alegrías, que me ha dado programarlo usando MonoTouch. No voy a explicar las interioridades y particularidades del SDK de iPhone ni de Objective-C. En todo caso algún detalle concreto. Hay muy buenos tutoriales al respecto. Por ejemplo los que puedes encontrar en la sección al respecto en la Web de MonoTouch [Tutorials @ MonoTouch]. Sí es importantísimo, en cualquier caso, tener muy claro que todo el SDK de iPhone (la parte gráfica de CocoaTouch, al menos) se diseñó para respetar el patrón Modelo-Vista-Controlador [@ Wikipedia]. Hay que tenerlo presente porque toda «pantalla» que se vaya a diseñar —incluso cuando diseñemos conjuntos de controles complejos que pretendamos reutilizar— exigirá la creación de una clase controladora que será la responsable de decirle a la vista qué elementos ha de presentar y cuáles no. Pero lo dicho, no es este el lugar para dar una charla extensa al respecto. Hay multitud de tutoriales en Internet que explican eso mucho mejor de lo que yo podría hacerlo.

Hay que señalar que todos (o la mayoría) de esos tutoriales (y de los que encontraremos en Internet) se fundamentan en el uso de Interface Builder, que a su vez tiene su propio «lenguaje», con sus «outlets», sus «actions» y cómo se «enganchan» visualmente. Particularmente prefiero «hundirme en el fango» y programar «a pelo» si lo que busco es interiorizar las particularidades del SDK, pero a efectos prácticos, hacerlo con Interface Builder resulta más rápido y cómodo, pese a sus particularidades frente a otras herramientas de diseño de interfaces de usuario. Al principio cuesta un poco hacerse con las ideas inherentes a la construcción de interfaces de usuario usándolo, pero son tres o cuatro ideas básicas que rápidamente se pillan. Una vez aprehendidos los conceptos, las interfaces de usuario se sacan como churros. Lo «bueno» de usar Interface Builder es que será independiente del lenguaje. Te servirá tanto para Objective-C como para MonoTouch. Los conceptos son exactamente los mismos.

Pero empecemos. Si has trabajado con cualquier IDE (Eclipse, NetBeans, XCode, Visual Studio, etc.) sabrás que todos presentan una serie de principios comunes. Entre ellos está el que, cuando solicitas crear un nuevo proyecto, sobre todo cuando te permiten programar/hacer múltiples tipos de proyectos o usar varios lenguajes (hoy en día todos te lo permiten), te aparece una guía donde te deja elegir el tipo, lenguaje y dónde vas a almacenarlo. Para un proyecto iPhone usando MonoTouch —en nuestro caso pasaremos del iPad—, elegiremos el basado en el componente UINavigationController [@ Apple Developer], tal como muestra la siguiente captura. O sea C# --> iPhone and iPad --> iPhone Navigation-based Project.



Nada más pulsar sobre el botón de «Aceptar» para crear el proyecto, ya tienes un código ejecutable basado en una elemento UITableView [@ Apple Developer] y un UIViewController [@ Apple Developer] que implementa el protocolo UITableViewDataSource [@ Apple Developer], y que si se ejecuta (sobre el simulador), nos muestra la tabla con varias filas vacías. Las siguientes capturas presentan el árbol de proyecto recién creado y la primera ejecución inmediata.



Para el que no haya tenido aún un encuentro con Objective-C, sirva aclarar que el concepto equivalente más cercano de un «protocolo» de Objective-C en Java o .NET es el de «interface». La definición de un «contrato» que debe cumplir aquel que lo implemente. Existe, sin embargo, una salvedad y por ello resulta tan atractivo y fundamental en los frameworks de Objective-C. Permite que la implementación de parte de los métodos sea opcional. Resumiento, cuando en C# o en Java dices que una clase se acoge a una interfaz determinada, el compilador te obliga a implementar cada uno de los métodos definidos en el contrato de la interfaz. En Objective-C, únicamente te «obliga» a implementar aquellos métodos que el protocolo no haya definido como opcionales. Hasta la fecha, de los protocolos que he utilizado en mis pruebas, la gran mayoría es básicamente opcional. Por ejemplo, si revisamos la documentación del protocolo UITableViewDataSource comentado antes, de los once métodos que se definen, únicamente dos son obligatorios o requeridos. Esto ahorra escribir mucho código vacío. Si vas a trabajar con Objective-C.

En .NET, en particular en C#, la posibilidad de «tan sólo» implementar los métodos que se necesitan se consigue usando los delegados [@ MSDN Microsoft]. Y buena parte de la capa de adaptación implementada por MonoTouch para enganchar con el SDK de iPhone ha hecho esto mismo. Por ejemplo, el componente UIActionSheet [@ Apple Developer] requiere que se le indique un «delegado», el protocolo UIActionSheetDelegate [@ Apple Developer], que será el encargado de procesar la pulsación del botón que se elija. Generalmente esto implica que el controlador que lanza el action sheet en respuesta a algún evento del usuario, deberá pasarse a sí mismo (self, en Objective-C) como delegado y, por tanto, implementar (muchas veces «también») el protocolo UIActionSheetDelegate. Con MonoTouch podemos enganchar un método a una propiedad de tipo delegado definida en la clase UIActionSheet y de nombre «Clicked». El código resultante podría tener un aspecto como el siguiente:

_actionSheet.Clicked += (o,e) ==> { 
      if (e.ButtonIndex == 0) 
      { 
         ... 
      } 
   };


También se puede implementar un protocolo (que en MonoTouch te obliga a implementarlo todo, no hay nada opcional, porque en realidad se ha resuelto como una clase) o usar un delegado débil. Una explicación más detallada sobre cómo «enganchar» con el SDK lo puede encontrar en la explicación que dan del diseño del API en MonoTouch [API Design @ MonoTouch].

Dependiendo de las necesidades se tendrá que resolver conforme a alguna de las formas disponibles, pero resulta mucho más rápido, a mi modo de entender, hacer uso de los delegados. Siempre y cuando, claro, no tengas que devolver un valor. Los delegados únicamente sirven —en el contexto de MonoTouch— para métodos void.

Dentro de las cosas negativas encontradas, fue precisamente con UIActionSheet con lo que tuve un tropiezo que me hizo perder cosa de cinco o seis horas. Parece que no puedes lanzar un UIActionSheet dentro del método de respuesta a un evento haciendo uso (definiéndolo) como una variable local del método y enganchándole un delegado ad-hoc como el del código anterior. Revienta por todas partes. Fue un verdadero quebradero de cabeza hasta que encontré una discusión al respecto en los foros de MonoTouch [Trouble with Action Sheets @ MonoTouch Forums]. La solución pasa por definirlo como instancia de clase y crearlo durante la inicialización de la misma. Se deja inactivo hasta que se necesite mostrar. Esto me hizo restarle muchos puntos a MonoTouch.

Sigamos, que acabábamos de empezar y habíamos credo el proyecto y ejecutado el código por defecto.

Si pulsamos dos veces sobre los archivos que terminan en .xib se abrirá automáticamente el Interface Builder, lo que nos permitirá toquetear y diseñar la interfaz de usuario. La siguiente captura presenta el aspecto de los dos controladores que se crean automáticamente: MainWindow y RootViewController.



El primero —MainWindow— será el básico, el principal, el que hará de continente del resto. MainWindow es el controlador base, que hereda de/implementa el protocolo UIApplicationDelegate [@ Apple Developer]. En la captura se puede observar que ya «trae» un elemento visual que es el UINavigationItem [@ Apple Developer] que será gestionado por el NavigationController correspondiente.

Mientras tanto RootViewController, que por defecto es un controlador de una tabla, es el que primero se añade a la subvista definida en MainView. Yo me cargué directamente RootViewController y cree uno nuevo. Podía haberlo llamado como el que acababa de extinguir, pero lo abrevié. Cosas del directo.

Para crear un nuevo archivo .xib con el controlador, basta seguir las opciones Archivo --> Nuevo --> Archivo… y elegir



Esto nos creará un nuevo archivo .xib que podremos abrir con Interface Builder y nos mostrará una vista en blanco. A partir de ahí se podrá rellenar con lo que se quiera. En mi caso, este es el aspecto elegido:



Austero.

Aquí viene la parte de «enganche» entre la estructura generada por Interface Builder (el .xib) y el código C#. U Objective-C, pues el principio es exactamente el mismo. Interface Builder encapsula todo lo que pintemos en la vista o creemos directamente con él. Desde el exterior no se puede acceder a nada. Es una «caja negra» a todos los efectos. Salvo que le señalemos los «puntos de enganche». En el argot de Interface Builder esto se puede hacer usando «outlets» y «actions». Un «outlet» expone un componente visual al completo. Por ejemplo un UILabel [@ Apple Developer] o un UIButton [@ Apple Developer]. Lo que permite acceder a todas sus propiedades y métodos. Por su parte, un «action» facilita abstraer qué elemento lanza la acción.

No basta con definirlos, también hay que asociarlos visualmente. Pero eso ya lo dejo para que se busque en el tutorial que corresponda. En mi caso opté por outlets y «publiqué» los elementos de interacción de la interfaz. En mi caso, además, preferí darle un «tipado fuerte» desde el propio Interface Builder indicando la clase que debe admitir ese outlet. Objective-C ofrece un tipo débil genérico, «id», que se emplea para pasar elementos que pueden ser de distinto tipo. Es la base, por ejemplo, para gestionar las colecciones (arrays, diccionarios, etc).



Esto me permitió asociar delegados a los botones, por ejemplo, en el evento ViewDidLoad. Dicho evento se ejecuta justo cuando se concluye la deserialización de un archivo .xib, en tiempo de ejecución, y se desea finalizar la inicialización de los elementos que lo componen. Tal como muestra el siguiente código:

public override void ViewDidLoad ()
{
   base.ViewDidLoad ();
  
   this.nombreTextEdit.EditingDidEndOnExit += this.DidEndOnExit;
   this.apellidosTextEdit.EditingDidEndOnExit += this.DidEndOnExit;
   this.nacimientoButton.TouchDown += this.TouchButtonNaciste;
   this.sexoSegmentedControl.ValueChanged += this.SexoChanged;
   this.diaFuturoButton.TouchDown += this.TouchButtonDiaFuturo;
   this.miFuturoButton.TouchDown += this.MiFuturoAUnClick;
}

La introducción de las fechas las monté usando Action Sheets, que se lanzan cuando se pulsa sobre el botón que tienen los textos solicitando las fechas. La siguiente captura muestra la aplicación en ejecución y lo que se muestra al pulsar el botón «Dime en qué fecha naciste».



Colocar un UIDatePicker [@ Apple Developer] dentro de un UIActionSheet tiene algo de miga. El truco lo dejo para que lo busquen en Internet.

Otra de las cosas que me quitó mucho tiempo fue «esconder» el teclado cuando terminaba de introducir el nombre y el apellido. Por más que miré y remiré no encontré una propiedad del componente UITextField [@ Apple Developer] que me facilitara el saltar al siguiente control o a esconderlo tan pronto terminase de escribir. Al final tuve que recurrir a una artimaña por código. Y por lo que he visto, esto es así también en Objective-C. La «culpa», en este caso, no es de MonoTouch. La «solución» pasa por crear un delegado y añadirlo al evento de UITextField, EditingDidEndOnExit, tal como se muestra a continuación.

this.nombreTextEdit.EditingDidEndOnExit += this.DidEndOnExit;

Este delegado no existe como tal en la clase UITextField del SDK de iPhone. A la hora de diseñar el API de MonoTouch, y su enlace cono el SDK de iPhone, se optó por añadir algunos «extras», como que la clase UITextField tenga ese evento. En Objective-C se tendría que resolver implementando el protocolo UITextFieldDelegate [@ Apple Developer] y decirle al text field en cuestión cuál es el delegado responsable de responder a ese método. Varios puntos positivos para MonoTouch por esta iniciativa.

En el código del delegado debemos retirar el foco (first responder) del elemento para que se oculte automáticamente el teclado invocando el método ResignFirstResponder.

void DidEndOnExit (object sender, System.EventArgs args) 
   {
      UITextField tf = (sender as UITextField);
      if ( null != tf ) {
         this.ResignFirstResponder();
      }
   }

Una de las cosas que me encanta de usar C#, tanto para el desarrollo en general como para desarrollar para iPhone en particular, es la posibilidad de usar la estructura genérica Nullable [@ MSDN Microsoft] y simplificar las preguntas cuando se tratan de tipos o estructuras que no admiten estados nulos, como int o DateTime (la estructura de C# para las fechas). De esta forma, las condiciones se simplifican. El código que lanza la visualización del resultado podría estar condicionada a introducir todos los datos y tener un aspecto como el siguiente:

void MiFuturoAUnClick (object sender, EventArgs args )
{
   // Comprobamos que estan todos los datos
   string nombre = this.nombreTextEdit.Text.Trim ();
   string apellidos = this.apellidosTextEdit.Text.Trim ();
   Nullable<int> sexo = this.sexoSegmentedControl.SelectedSegment;
   Nullable<DateTime> diaNacimiento = null;
   Nullable<DateTime> diaFuturo = null;

   nombre = ( nombre == string.Empty ) ? null : nombre;
   apellidos = ( apellidos == string.Empty ) ? null : apellidos;
   diaNacimiento = fechaElegidaNacimiento ();
   diaFuturo = fechaElegidaFuturo ();

   if ( ( nombre == null ) || ( apellidos == null ) || ( _diaNacimiento == null )
            || ( _diaFuturo == null ) || ( sexo == null ) ) 
   {
      new UIAlertView ( "¡Faltan datos!", "Faltan datos para poder hacer un buen calculo de tu proximo futuro", 
               null, null, "Pues muy bien" )
         .Show();
   }
   else
   {
      this.NavigationController.PushViewController ( new NumeronDice( CalcularNumero () ), true );
   }
}

En el anterior código se puede observar que, en caso de tener alguna de las entradas de datos a null, se lanzará una alerta con un mensaje indicando que no está todo. Para eso se emplea UIAlertView [@ Apple Developer]. Este componente del SDK es similar a los Action Sheet y en este caso no se ha asignado ni delegado (protocolo Objective-C) ni delegado (evento C#) para responder a los eventos de pulsación sobre los botones. Únicamente se usa para informar que no tenemos todos los datos y solo presenta un botón para salir del mensaje.



La otra cosa interesante a reseñar, dentro del código anterior, es el método PushViewController de la clase UINavigationController. Cuando empleamos un esquema de navegación usando UINavigationController, el SDK de iPhone ya gestiona muchas de las cosas comunes, como mostrar un botón de vuelta atrás con el nombre de la «pantalla» que acabamos de dejar. Para ello lo gestiona usando una pila de controladores. Cuando queremos que aparezca una nueva «pantalla» sobre la anterior, pero que se ofrezca la posibilidad de volver (sin intervención de código) a la anterior, se apilará (push) sobre la que esté activa en ese momento.

A continuación un adelanto, a modo de captura, de cómo podría ser la vista con los resultados.




Pero su acabado definitivo lo dejaré para la siguiente entrega de esta fascinante serie. Será cuando se integre con el servicio web creado para conocer el futuro de todo aquel que esté interesado. No te pierdas, por tanto, el próximo capítulo. Pronto, pronto.

De momento decir que, si Apple entra en razón, MonoTouch es una herramienta con un valor incalculable para agilizar el desarrollo de aplicaciones para iPhone, iPad e iPod Touch. Únicamente quedaría saber qué tal se desenvuelve el rendimiento en estos terminales. Algo que, me temo, no llegaré a saber a ciencia cierta hasta que decida comprar la licencia.

viernes, 9 de julio de 2010

iPhone, MonoTouch y la insoportable levedad del ser: El comienzo

Cumplido ya el primer semestre del año 2010 puedo asegurar que el año se está desarrollando de forma excesivamente extraña para mi gusto. Bastante revuelto. Y no necesariamente tiene que ver con la crisis económica que está poniendo patas arriba todo y a todos. Un año raro. Muy raro.

Raro en el aspecto laboral también. Y esto tal vez sí se excuse en la crisis. Tal vez. Me encuentro en un constante «ahora sí, ahora no» y los proyectos que empiezo se caen con «mucha facilidad». Hoy te dicen que sí, trabajas todo un fin de semana para adelantar y el lunes a primera hora te dicen que se lo han pensado mejor y que va a ser que no. Espero que el segundo semestre sea más tranquilo y el balance anual mejore.

Una de las cosas que hice en los últimos meses de mi estancia en Madrid estuvo relacionado con un proyecto para iPhone. Por simplificar diré que las personas que tenían experiencia en desarrollo para iPhone estaban involucrados en otros proyectos que no podían abandonar de ninguna manera. Simplemente imposible e impensable. Así que, de la noche a la mañana, tres pelagatos nos vimos involucrados en un proyecto para el que, técnica y cognitivamente hablando, teníamos bastantes lagunas. Aunque no negaré que me encantaba la idea de participar en un proyecto para iPhone, algo que llevaba tiempo deseando.

No me asusta el desconocimiento en tecnología ni en lenguajes de programación. Es lo que me gusta, tengo suficiente bagaje para aprender con rapidez y mis decisiones, muchas veces fundamentadas más en la intuición, fruto de la propia experiencia, que en un análisis estricto, me han dado la razón. Aunque muchas otras me he equivocado. Es conocido el resultado del experimento del chimpancé contra los «expertos» en bolsa y cómo quedó demostrado que los «expertos» se equivocan tanto o más que los «inexpertos». Resultado o conclusión que creo firmemente aplicable a todos los ámbitos, disciplinas e industrias. Las Tecnologías de la Información incluidas. Sin embargo, esta era una de esas veces en que el margen para el error no existía. Nada de intuición, entonces.

Por curiosidad, con la mente en hacer alguna cosilla al modo homebrew [@ Wikipedia] había leído varias cosillas sobre Objective-C [@ Wikipedia], pero no tenía la experiencia suficiente con el lenguaje ni con el SDK de desarrollo para iPhone como para moverme con la rapidez suficiente y garantizar plazos y calidad, dos de los pilares fundamentales para el éxito de los proyectos. No digo que no se pudiera. Simplemente no podía hacer una estimación fiable. No me encontraba cómodo estimando con tantas incógnitas. Así que anduve buscando otras opciones. Y encontré una que me encantó: MonoTouch [Web oficial].

MonoTouch es una pequeña joya de ingeniería que te permite programar en un lenguaje orientado a objetos con tipado fuerte, expresiones lambda [@ Wikipedia] «reducidas» y con recolección de basura, tres de las cosas que más me gustan, como es C#, y compilar a código nativo de iPhone. Para lo cual expone las interioridades de las API's del SDK de iPhone permitiendo que se usen empleando la sintaxis y semántica de C#, pero sin perder de vista cuál es la estructura ni el diseño empleados en el API subyacente. Yo soy (más o menos) experto programando con C#, así que es un lenguaje con el que podría dar más garantías, pese a seguir desconociendo buena parte del diseño del SDK. Habría que confiar en San Google para resolver las dudas que se fueran presentando al respecto.

He subrayado lo de «recolector de basura» porque Objective-C para iPhone te exige que gestiones tú la memoria. Mis recuerdos de experiencias con lenguajes como C y C++ (poca con éste último) me gritaban al oído que la acabaríamos jodiendo a base de bien con memory leaks [@ Wikipedia] y, como decía antes, no existía margen para el error. Y no exagero con esta última afirmación (o negación): No existía. Ni en plazos ni en forma. Y no doy más detalles porque entra dentro de la información privada de la compañía. Tal vez baste reseñar que el proceso de aprobación de aplicaciones y posteriores actualizaciones para publicar una aplicación en la App Store es lento y, aunque se resuelva la incidencia en tiempo récord, se debe esperar varios días hasta que en Apple den nuevamente el visto bueno y se publique la corrección. Al menos es así cómo me lo habían contado y era un factor limitativo a la hora de poner en marcha una aplicación que debía coincidir con otros eventos externos de la compañía contratante. A ver quién es el guapo que les convence de que la «culpa no es tuya» porque Apple no de el visto bueno al arreglo en tiempo límite para que salga publicada la aplicación antes del día que se prefijó. Los plazos eran justos. Demasiado justos. ¿Lo había dicho ya?

¿Alguien recuerda cómo se resolvían los sistemas de ecuaciones con dos incógnitas? «Fijabas» una de ellas, la ponías en función de la otra y sustituías [@ Wikipedia], de forma que convertías el sistema en una ecuación de una única incógnita y resolvías. Siempre que fuese un sistema compatible y determinado, eso sí. Para mí poder fijar el lenguaje a uno que conocía lo suficientemente bien ya era resolver la mitad de la ecuación, por lo que propuse —con vehemencia incluso— realizar una prueba de concepto y medir.

Me costó convencer a los responsables para que me diesen la oportunidad. Siempre que hay desconocimiento hay desconfianza. Aunque nunca termino de entender qué motivos tienen para detestar todo lo que esté relacionado con .NET, pero lo cierto es que cuesta que entiendan que tampoco es tan malo. En cualquier caso conseguí que me dejaran hacer la prueba, que era lo importante. Principalmente porque para la parte de codificación no hacía falta gastarse un euro en licencias.

La prueba fue bastante bien. Diría que todo un éxito. Había lagunas al principio y quedaron lagunas tras la prueba, lógico. Pero estábamos más seguros de que podríamos hacerlo en tiempo y forma. Y eso que para la prueba dedicamos, durante tres días, el equivalente a un desarrollador y medio. Quedé encantado con MonoTouch y lo que me permitía hacer en tan poco tiempo y no teniendo apenas idea de programación para iPhone. Y todo ello incluyendo algunos tests unitarios [@ Wikipedia]. Quería introducir al equipo en las «buenas prácticas». Lástima que de momento el desarrollo ágil [@ Wikipedia] quede completamente fuera de programa.

Para ponerlo aún más complicado decidí que la programación usando las API del SDK de iPhone, la parte de interfaz vamos, la hiciera un compañero. Excelente programador, pero que desconocía .NET. Únicamente programaba en Java. Yo le iba resolviendo las dudas que le iban surgiendo con el lenguaje C#, pero no quería intervenir en el enganche C# (MonoTouch) con el SDK del iPhone. Al menos no mucho. Primero porque tampoco tenía todas las respuestas y, segundo y más importante, porque quería comprobar, medir, si el lenguaje podía ser un contratiempo o facilitar el desarrollo en tiempo límite. ¿Sería tan complejo aprender el lenguaje que ocuparía toda la atención del programador en detrimento de lo «importante», que era el SDK del iPhone? ¿O, por el contrario, y tal como yo defendía, facilitaría el centrarse en las particularidades de CocoaTouch y la suerte de API's que acompañan el SDK de desarrollo para iPhone?

En este punto abro un inciso. Si eres de los que dicen que un lenguaje es «mejor» o «peor» que otro por el simple hecho de que te guste más o menos, aunque tú creas que tus fundamentos son objetivos, te adelanto que por mi te puedes ir a la mierda. No existe ni un solo lenguaje perfecto. Y menos para todos los ámbitos, contextos o circunstancias. De hecho todos son bastante malos porque no me permiten expresar las cosas como me gustaría (lenguaje natural) y únicamente puedo hacerlo con los artefactos sintácticos/semánticos, sintéticos a fin de cuentas, que me facilitan a tal efecto y los patrones de diseño que les apeteció aplicar a los arquitectos de los frameworks que los acompañan. A partir de ahí sí puedo decir que con unos soy más «productivo» que con otros, según los requerimientos. O que con unos me «divierto» más que con otros. Pero al final todo se reduce a lo que yo soy capaz de hacer —o quiero hacer— con un lenguaje determinado. Soy plenamente consciente de la subjetividad de la elección de un lenguaje de programación concreto, así que me la «pela» todo el que viene a evangelizarme proponiendo que su decisión es mejor. Algo parecido me pasa con los sistemas operativos, pero eso lo dejaremos para otra ocasión. Fin del inciso.

Al compañero, acostumbrado a programar en Java, le costó menos de un suspiro familiarizarse con la sintaxis de C# (que diría es en un 99% parecida a la de Java), y apenas unas horas solventar sus tropiezos con las particularidades de .NET. Cierto que es muy bueno —y creo que tendrá un gran futuro en la industria—, pero quería que alguien ajeno a la discusión sobre Java/.NET/Objective-C diese una opinión más objetiva. Argumento que quería usar para defenderme de los detractores de la «curva de aprendizaje» (sospecho que más suave que la requerida para saltar de Java a Objective-C) y que se apoyaban en el argumento «no tenemos aquí a nadie que sepa .NET». Bueno, me tienen a mí. Mientras que expertos en Objective-C, lo que se dice «expertos», no hay muchos más en la compañía. Tal vez se puedan contar con los dedos de una mano de un tipo que ha perdido tres y medio en un accidente.

De mi primera experiencia con MonoTouch y el desarrollo para iPhone con él, me quedé gratamente impresionado. Quedaba la segunda parte: gastar el dinero que costaban la licencia de desarrollador de Apple (100$) y la licencia de MonoTouch (400$), para comprobar qué rendimiento se obtenía en un terminal real. La primera parte de la prueba de concepto se hizo trabajando con el simulador únicamente.

Quinientos dólares no es dinero para una empresa de la envergadura que tiene en la que trabajo. De hecho es apenas dinero para muchas empresas. Haya crisis o no. Dicen que sin riesgo no hay recompensa. Quinientos dólares es un gasto (en realidad una inversión) ridícula si te permite entrar de lleno en la App Store y en el mundo del desarrollo rápido de aplicaciones para iPhone/iPad/iPod Touch. Ya «veía» un futuro cercano con decenas de aplicaciones (más o menos) tontas dispuestas en la App Store avalando nuestro buen hacer como compañía. Un curriculum inmejorable cuando se presentan presupuestos y ofertas con esta tecnología. Tan convencido estaba de mi propuesta (la intuición, una vez más), que no me importó enfrentarme abiertamente a aquellos en la compañía que sienten, digámoslo suavemente, poco aprecio hacia mis opiniones o propuestas. Mi argumentación era sencilla: si sale bien, ganaremos dinero; si sale mal, únicamente perderemos quinientos dólares. Lo que, sinceramente, no es dinero cuando tienes más de cien empleados.

Y, entonces, llegó Apple y me «dio por culo». Y a muchos más. En su batalla contra Adobe nos regaló la cláusula 3.3.1 [Nueva licencia para los desarrolladores de la App Store, Apple cierra el cerco a Adobe @ Applesfera; Apple prohibe a los desarrolladores de iPhone crear aplicaciones con Flash, entre otros @ Appleismo] y todo se vino abajo. Me tuve que tragar mis argumentos porque Apple había decidido convertirme en un «daño colateral». Y los que opinaban que era más fácil/seguro con Objective-C dieron saltos de alegría. Y tanto saltaron que a uno lo han ascendido. Así es la vida.

Mi experiencia con MonoTouch fue hace unos cuatro/cinco meses. Sigo convencido que es una alternativa genial para desarrollar para iPhone, y ahora para iPad también. Aunque sigo teniendo dudas acerca del rendimiento final sobre un terminal. He seguido los avances en relación a la sección maldita y veo que siguen apareciendo aplicaciones desarrolladas con la plataforma .NET [@ MonoTouch Apps]. Se supone que esto no debería estar sucediendo, pero las aplicaciones pasan el control de exigencia y se publican en la App Store. Además, parece que las autoridades estadounidenses no se han tomado muy a bien la redacción de las exigencias [La sección 3.3.1 de Apple, al borde de una investigación de defensa de la competencia @ Appleismo]. No creo que sea para celebrarlo. Todo lo contrario. Creo que Apple es una de las empresas que más y mejor miman a sus consumidores con productos muy fáciles de usar. Una investigación gubernamental no sería buena, supongo. Pero si lo que realmente persiguen es un verdadero control de calidad de los productos que llegan a la App Store tienen muchas formas de hacerlo más allá de determinar qué herramientas usar para ello. Intentaré exponer mi pensamiento a la forma bruta y tradicional con la que suelo expresarme. Para pergeñar una cagada únicamente hace falta un culo. Todos tenemos uno. Los programadores también. Y da igual si cagas detrás de una tabaiba [@ Wikipedia] a plena luz del día o si lo haces en un inodoro fabricado en oro en una suite de lujo del hotel más caro del mundo. La calidad de la mierda está más relacionada con lo que ingiera el programador la persona, que sobre la superficie sobre la qué la deposita cuando caga. Si Apple quiere saber si un mojón será un buen abono para hacer crecer sus beneficios, que al final es lo que les preocupa, que analice la mierda, no el retrete sobre el que se cagó. Y, por suerte, para analizarla existen herramientas y técnicas. Y, si no, las crean, que para eso tienen un departamento de I+D que da envidia a todo cristo viviente. ¿Vale la metáfora?

Mientras espero a que se aclaren las cosas, he tenido la oportunidad de enfrentarme al desarrollo de una aplicación usando Objective-C (a lo que me ayudó haber peleado primero con MonoTouch). Aunque no de la que se hizo un prototipo en MonoTouch, ya que esa al final se «cayó». Quería aprovechar esta experiencia para señalar, en modo de una serie de articulillos, las diferencias que he apreciado. Además, estoy haciendo algunas pruebas con PhoneGap [Web oficial] que también espero poder reflejar en un futuro no muy lejano. Tengo en mente hacer la misma aplicación usando las tres tecnologías y hacer una serie de artículos narrando los toletazos que me vaya dando con cada una:
  1. MonoTouch (cliente) / ASP.NET (servidor)
  2. Objective-C (cliente) / Java (servidor)
  3. JavaScript (cliente) / ? (servidor)

Pero me temo que, para eso, ya empiezo mañana. O pasado. Esta entrada ya ha sido larga en exceso. Así que no la voy a estirar más.

miércoles, 30 de junio de 2010

Paseo con Luis, Sulaco y un holandés (supuestamente no errante)

No escribo casi nada últimamente. Esto va por ciclos. Todo (o casi todo) el que tiene una bitácora lo sabe. No voy a repetir yo la búsqueda de profundidad en las acciones, o mejor dicho no acciones, relacionadas con el abandono de la misma. Aunque supongo que un factor importante, al menos en mi caso resulta serlo, es que depende mucho, también, de la cantidad de trabajo que tenga. Ahora mismo tengo mucho. En realidad más que cantidad, tengo muchas cosas interesantes en las que estoy involucrado, me quieren involucrar o, simplemente, acabaré involucrado. Desgraciadamente también las hay donde no me permiten involucrarme, lamentos pospuestos para una entrada futura, tal vez. La mayoría de las cosas plausibles dentro de mi horizonte de sucesos, por no decir todas y concederme así el beneficio de la duda, acabarán abandonadas. Por mí o por otros. No siempre es uno el que tira la toalla. A veces también te dan la patada. Pero sea propio o ajeno el arranque del proceso de divorcio, esa es casi siempre la historia. En cualquier caso, y a modo de resumen, tengo olvidado este rincón porque hay cosas más interesantes a las que dedicar mi atención. Mea culpa. No lo voy a negar. Que soy un volátil, quiero decir, o «no negar».

Cenobio de Valerón
Aunque el blog no es lo único que tengo en régimen de abandono. La fotografía, además de cara —en realidad no lo es tanto, o a mí no me lo parece—, últimamente se me antoja ajena. Las pocas veces que estoy cogiendo con mis manos el equipo fotográfico caen dentro de las categorías para hacer algún encarguillo/favor para alguien, algún evento familiar menor y, básicamente, para moverlo de un sitio a otro porque lo tengo encima de algo que quiero coger en un momento determinado y me veo obligado a sacar la bolsa de la cámara antes de alcanzar lo que ande buscando. Triste. Pero no por triste deja de ser menos cierto, como decía aquel. Ni más, tampoco.

Con esta desgana profunda para ponerme a hacer fotos, el aviso sobre la proximidad de otra visita a la isla por parte del amigo sulaco [su web] y su declarada intención de sacarme a otro paseo fotográfico por la isla los viví con sentimientos enfrentados. Nulas ganas de coger la cámara, casi un sacrificio, pero muchas de verlo. Si has tenido la posibilidad de leer lo que escribe en su blog ya sabrás —o podrás intuir— que aburrirte no te vas a aburrir con él. Y una vez más no defraudó. Al final, la salida fotográfica del pasado domingo se convirtió en un paseo en coche por la isla, por zonas que no habíamos visitado hacía tiempo, y con pocas fotos porque, al menos para mí, es más de lo mismo. La isla no da para mucho si sales con frecuencia. O sufres de apatía fotográfica extrema, cual mi caso.

Barca abandonada en Sardina del Norte

Decía que con sulaco es difícil no divertirte o, lo que es lo mismo, resulta imposible aburrirte. Así que las casi nueve horas que compartimos en coche, caminatas cortas aquí y allá, almuerzo y otros pormenores de la experiencia conjunta, y pese a mis raquíticas ganas de andar sacando la cámara del bolso, se pasaron volando. A lo que ayudó también tener a Luis al volante y como compadre de andaduras, siempre dispuesto a poner su vehículo en nuestro provecho y, lo que es a veces asombroso, meterlo por carreteras en las que uno difícilmente se plantearía meter a su peor enemigo no fuera acusado de crueldad extrema y juzgado como peor criminal de guerra. Impresiona lo que es capaz de aguantar su coche.

Si dos se divierten, tres ya se convierte en una fiesta. Pero hubo, además, un cuarto invitado a esta fiesta particular de aficionados a la instantánea digital. Sulaco se presentó con «el niño», personaje que uno diría de ficción leyendo sus anécdotas, pero que es de carne y hueso y nos saca dos palmos de estatura a casi todos. Mira que es alto el chico, sí señor. O qué bajos somos el resto, tomando otro punto de referencia.

Ya me lo advirtió sulaco antes de vernos: practica el inglés porque el niño no habla otra cosa además del holandés. Pero mi terror escénico a hablarlo me anula. Entenderlo más o menos entendía las cosas. Es hablarlo lo que no consigo hacer. Y a estas alturas de mi vida me parece que no va a cambiar mucho. Seguiré intentándolo, eso sí, pero no creo que mi reseco seso de ya para mucho más. Cada uno tiene sus limitaciones, eso está claro. Una de las mías está en los idiomas bárbaros como el inglés.

La andadura nos llevó esta vez por la zona norte y centro de la isla. Comenzamos con una visita temprana al Cenobio de Valerón [web oficial]. Cuesta asimilar que para que te permitan subir unas escaleras y quedarte a pié de unas cuevas que únicamente puedes ver de lejos te casquen una multa de dos euros y medio. La anécdota la puso una chica que apareció en una furgoneta, con colchón en la parte de atrás, y que dijo que ella era la que abría. Nos pilló retrocediendo y maldiciendo porque supuestamente debía llevar media hora abierto. Era domingo, así que es perdonable. Y la chica era simpática. Lo imperdonable es que nos costara dos euros y medio por barba para apenas ver gran cosa.

El Cristo de Artenara

Luego un paseo rápido por Guía, Galdar y saltamos a Agaete para darnos un pequeño homenaje en Las Nasas. El niño parecía no estar acostumbrado a los sabores del pescaíto fríto de aquí y tuvimos que contenernos un poco en cuanto a la variedad de viandas y manjares a degustar. Increíble, hay gente a la que no le gustan los calamares. También es cierto que en la tierra de donde viene no se almuerza, al menos no como aquí, sino que se hace una cena temprana. Así que su organismo no estará acostumbrado, además de a los gustos locales, a los horarios indigestos en los que vivimos. Mala suerte. Para él. Yo me puse las botas. Como bien dice sulaco, yo tengo alma de obeso. Y cuerpo también.

Empanchados partimos para el pinar de Tamadaba, con parada breve en Artenara. Creo no mentir si digo que hace más de dos décadas que no subo hasta ese sitio. Me sorprendió el parecido tan increíble que mantenía con mis recuerdos de catorce y quince años, cuando acampaba allí. Eso sí, la monotonía del trayecto, las curvas y los baches hicieron que el trayecto cayese ligeramente pesado para unos vientres hinchados y hartos por la comilona previa. Si bien recordaba casi perfectamente el aspecto de la zona de acampada tras veinte años, había olvidado completamente el suplicio que suponen las carreteras de esa zona. Aunque no sé si sería bueno que las arreglasen. Al ponerlo difícil, supongo que la zona se ve libre de mucho dominguero sin escrúpulos. Tal vez, de haber sido más fácil llegar mis recuerdos no se parecerían en nada a lo que aún permanece allí. Casi prefiero que las dejen como están, aunque eso signifique que tardaré otros veinte años en volver. Si el cuerpo me aguanta en tiempo y forma.

Lástima que cuando llegamos arriba, con la intención de asomarnos al vacío del Valle de Agaete, nos encontrásemos con un cielo completamente cubierto por la niebla. Es lo fantástico —y que jode un huevo también— de esta isla: de un sol que rompe las piedras en Agaete te adentras en la niebla más absoluta diez kilómetros más al centro. Y esto es lo que hay. Como escuché en repetidas ocasiones durante mi estancia en Madrid: «son lentejas, si te gustan bien y si no las dejas». Aunque en mi caso la alternativa de dejarlo está cada vez más distante en un pasado alternativo y ya inexistente.

En fin, lamentos aparte, el saldo final resultó una vez más en un buen día. Quitando que el salir a sacar fotos quedó como anecdótico, tanto para Luis como para mí —y no digo nada del niño, que parecía andar en un universo alternativo—, el día se pasó de forma estupenda. Como siempre, espero que repitamos en la próxima visita de sulaco. Tal vez se vaya imponiendo aprovechar y cambiar de isla, alternativa que se comentó de pasada en el camino. Y también tal vez vuelva a coger la cámara con ganas para entonces. ¿Era en septiembre? No queda mucho para eso, la verdad. Aunque de momento, tengo que ir forzándome a retomar el gusto porque en una semana empieza el campeonato de windsurf de Pozo Izquierdo y, francamente, no me gustaría perdérmelo por la tontería que me ha entrado ahora con esta desgana absurda. ¿Será que he pillado un virus?

jueves, 24 de junio de 2010

El Centro Espacial Kennedy - Orlando

Desde niño siempre he sentido fascinación por el espacio. No. Debería corregir la preposición y el tiempo verbal y decir «de niño sentí» fascinación por el espacio. Era la fascinación derivada de la visión y propuesta hollywoodense. O sea, naves espaciales, pequeñas, grandes y de dimensiones planetarias, batallas entre naves incorrecta y excesivamente sonoras a velocidades de vértigo, clases de esgrima fundamentadas en una física extraña, héroes enfrentados a monstruos y monstruos interdimensionales imposiblemente hambrientos, robots con muy mala leche y más listos que el hambre y que muchos humanos, robots más tontos e inútiles que una piedra, inteligencias artificiales con una nave como cuerpo, extraterrestres milimétricamente idénticos a los terrícolas o con parecidos carnalmente sospechosos, agujeros negros que conducían a universos infernales, y, en definitiva, fenómenos cósmicos inciertos que argumentaban y justificaban dos horas de cinefilia abnegada. En fin, que me fascinaba todo lo que el espacio imposible podía ofrecer a una imaginación calenturienta y flexible como la que yo tuve en el rango de edades de un dígito y en buena parte de los comienzos de los dos dígitos.

Aunque la edad disminuye muchas cosas, entre ellas la inquietud y disfrute por y con la ciencia ficción (a veces desmedida), mi abuelo consiguió inculcarme cierto interés por el espacio en su vertiente científica y casi anónima. Anónima, al menos, para el que no esté realmente interesado en el cuerpo de esta ciencia. A mi abuelo lo perdí bastante joven, así que su afición por una ciencia silenciosa, de espera paciente y de memoria prodigiosa, no tuvo tiempo de competir con los apabullantes efectos especiales de corte millonario, primero, ni con la sobredosis hormonal, después. Creo que de haber tenido un corazón más fuerte —no se puede decir que llevase una vida especialmente insana—, habría conseguido vencer buena parte de esa dejadez que predomina sobre todo lo que me atrae. No es falta de curiosidad, que de eso tengo en dosis imposibles. Es gandulitis crónica, como bien decía mi madre mientras viví bajo su techo y como yo mismo no dejo de repetir en mis infrecuentes entradas. Nunca haré el esfuerzo de memorizar los nombres de las estrellas ni de la arquitectura de las constelaciones. Mi abuelo sí conocía la mayoría de ellas.

Pero supongo que algo de esa intención debió quedar enterrada. Algo así como un rumor sordo. Porque cada vez que tengo la oportunidad, que no son muchas, me acerco a los lugares de culto, allí donde hombres y mujeres de verdad, muchos de ellos incluso permanecerán en el anonimato eternamente, hicieron, hacen y harán ciencia y, con suerte y fortuna, historia. En el viaje de novios a La Palma, disfruté como un niño de uno de los poquísimos días de «puertas abiertas» que al año ofrece el Observatorio del Roque de los Muchachos y de la oportunidad de conocer, de primerísima mano, lo que allí se hacía y a los jóvenes, la gran mayoría, que hacían una vida en un reducto aislado. Vida que a mí se me antojaba interesantísima, pues, en el fondo, siempre he anhelado y envidiado la posibilidad de dedicarme a la investigación. Morirme de hambre, sí, y posiblemente virgen, también, pero disfrutando de la búsqueda del conocimiento.

El astronauta perenne

Ya de entrada, y con la perspectiva del viaje a realizar, lo que más me atraía de la oferta lúdica de Orlando era acercarme a Cabo Cañaveral y visitar el Centro Espacial Kennedy [web oficial]. Retrospectivamente, es lo único (salvando algunos pequeños detalles de la visita a Miami) que mereció la pena del viaje. De verdad, de las dos semanas que estuvimos en esa dichosa ciudad —más bien no-ciudad—, el único día que se puede decir que fui feliz fue el día que visité el Centro Espacial Kennedy y vi, aunque todo muy orientado al espectáculo, los sitios reales donde hombres y mujeres de verdad escribieron capítulos de la historia de la humanidad. Visitamos la sala (una de ellas) donde se hizo el seguimiento de alguno de los Apollo enviados a la Luna. Vimos el interior de un transbordador de verdad. Subimos a una de las torres (si a eso se le podía llamar torre) desde la que se supervisaba el lanzamiento de algún cohete. En fin, que lo que allí vi era todo de verdad. En un sentido de realidad intangible diferente y genuino, pues ya se sabe que el cartón piedra y el plástico de los parques de atracciones también existen en esta realidad física que nos circunscribe. Todo estaba allí en una función trascendente muy distante y diferente en proposición, ajena a y de turistas ávidos, del entretenimiento lúdico que bañaba el resto de actividades de la región. En las pocas horas que estuve allí, creo que rejuvenecí quince o veinte años. Imposible de aspecto, pero sí de ánimo. Me sentía como un niño pequeño lleno de ilusión en aquel rincón del mundo mirando con ávida curiosidad todos los cachivaches que allí había colgados o aparcados, como el módulo lunar que tenían en mitad del la nave-almacén destinada a los visitantes.

Cierto que todo estaba filtrado y destilado, a veces hasta la saciedad, el aburrimiento y el empalago, por la mano de la mercadotecnia. Lo que a mi gusto le restaba mucho a la experiencia, pero había una diferencia sustancial, casi abismal, entre saber que dentro de aquella colorida corteza de gomaespuma y materiales sintéticos había un tipo, posiblemente una suerte de becario que malvivía con los pocos dólares que ganaba agitando esa piel tan atractiva para los niños y para aquellos adultos con poco atisbo de inquietud cognitiva, y saber a ciencia cierta que tras una de aquellas tantas puertas que había en todos los edificios del complejo espacial había gente haciendo un trabajo destinado a responder preguntas, a controlar instrumentos de los que depende otras vidas y, en general, a contribuir, granito a granito, a engrandecernos como especie enriqueciendo nuestro conocimiento y saber sobre el cosmos. Si alguno no es capaz de percibir la diferencia, entonces, le recomiendo encarecidamente que siga recurriendo a las revistas del corazón y los programas del marujeo para seguir sustentando su, diría, inexistente existencia. Pero yo sí soy capaz de entender la diferencia, abismal, cósmica, entre un modelo de entretenimiento y otro. Pero como muchas otras, esa capacidad reside en el cerebro. A veces más, a veces menos, desarrollado.

Retrospectivamente hablando, repito, la visita al Centro Espacial Kennedy es lo único que podría justificar un viaje de veinticuatro horas de ida y otras tantas de vuelta. Por desgracia no lo suficiente como para olvidar y rectificar el resto de las vivencias y experiencias mediocres, insustanciales y —en algunos momentos incluso— detestables que tuve que vivir o sufrir. Pero si en alguna ocasión tuviese oportunidad —u obligación— de pasar por esa zona, volvería a visitar el Centro Espacial Kennedy. Incluso me plantearía el poder compartir comida con un astronauta, para lo que hay que pedir cita previa. Aunque dudo que yo vuelva a tener esa oportunidad, sí recomendaría a todos que intentaran disfrutarla. Un viaje bien programado, que busque aprovechar lo exclusivo que nos pueda ofrecer la zona y no tanto mimetizar el estilo de vida norteamericano, debería —casi por obligación, por deuda moral con la gente que escribió allí la historia— pasar por Cabo Cañaveral y por el Centro de Visitantes del Centro Espacial Kennedy.

En mi caso hubiera sido perfecto si, además, hubiese podido visitarlo con mi abuelo. Creo que a él también le hubiese gustado. Pero aún con su ausencia de forma presente, y acompañado por una de las personas más importantes de mi vida, mi mujer, la visita fue fantástica.

viernes, 18 de junio de 2010

'Fish!'

Hay muchos temas que me llaman la atención. No me canso de repetir —y así hago mis entradas un poco más largas— que soy un tío bastante inquieto en cuanto a conocimiento se refiere. Soy curioso por naturaleza y me disperso con facilidad en la infinitud de campos del saber que hay. Los interesantes y muchos de los que no son tanto. También repito hasta la saciedad —y consigo que mis entradas engorden aún más— que soy muy ganso para dedicar tiempo a aprender todo lo que me gustaría saber. Pero de vez en cuando, tirando por la vía de la lectura fácil, leo aquí y allá de esos tantos temas que me atraen. En especial de los que son de consumo más simple.

Uno de esos temas que despiertan mi curiosidad es la motivación. En todas las empresas en las que he trabajado siempre he visto que la gente está quemada o se va quemando durante el proceso. Yo mismo he sido uno de esos quemados que se levantaba cada día con dolor de cabeza y de estómago porque odiaba el simple hecho de pensar que el día sería otro día igual que el anterior y que el anterior al anterior y que mi existencia se iría por el retrete en paquetes de ocho, nueve o diez horas de golpe. Entraba al trabajo con rencor por obligarme a ir y salía de él odiándome por no saber encontrar la salida a aquella espiral de miseria existencial. Era más joven, claro. Mucho más joven. Hace mucho tiempo que eso no me pasa. Al menos no en intensidad igual a la descrita. Días malos los tenemos todos. Y días en los que te dan ganas de practicar el sadismo con compañeros/jefes también los hay. Esos días se llenan de vívidas secuencias de colores súper saturados entre las que predominan las teñidas de rojo sangre y de temática gore. Pocos, pero negarlo no me harán ni mejor persona ni que desaparezcan. Ahí están y he aceptado que, muy de vez en cuando, toca contener a lo más salvaje que llevo dentro.

Sin embargo, en la mayoría de las ocasiones, me arriesgaría a decir que en el 95% de ellas, suelo ir de buen humor al trabajo. El secreto es saber que uno tiene el poder de elegir la forma en que acude a un sitio. Sea este el trabajo, la playa o el gimnasio. Al final es un ejercicio de autoestima, también. Y me sorprende que la gente no se quiera lo suficiente como para entender que el mal rollo que vives en tu entorno de trabajo también lo pones tú. Y he ahí, en parte, el motivo por el que siento curiosidad por la motivación: ¿Por qué a la gente le resulta tan fácil caer en la espiral de autocastración en el entorno laboral y tan difícil salir de ella? Echarle siempre la culpa a otros, al jefe, al lameculos que ascienden en tu lugar, a la hipoteca, a la pareja, a la madre y al padre por no darte una educación mejor, en definitiva, a cualquier persona distinta de ti mismo, es la parte fácil de la búsqueda de responsabilidades. ¿Pero qué hay de nosotros mismos? ¿De verdad creemos que el universo es tan determinista y que no podemos hacer nada para cambiar las cosas? ¡Paparruchas!

«¿Es un pescado lo que acabo de ver volando?» No sabía si le engañaba la vista; entonces, volvió a suceder. Uno de los trabajadores, inconfundible con su delantal blanco y unas botas negras de goma, cogió un pescado grande y lo lanzó hacia un mostrador a seis metros de distancia, gritando: «Salmón volando rumbo a Minnesota».

Entiendo que no resulte sencillo para muchos romper la dinámica malsana en la que se cae con tanta facilidad. Hasta la mecánica clásica nos demuestra que es fácil que un cuerpo caiga, pero que es complicado que suba sin un gran aporte externo de energía. Y que una vez dentro del sótano emocional, sea más sencillo aguantar y acomodarse en la autocompasión que arrancarse las uñas escalando la pared para salir del pozo. Por eso me interesa saber cómo se les puede animar a encontrar ese momento, ese gesto, esa causa, que hacen que merezca la pena ir a trabajar un día más. Y por eso me lanzo a la lectura del género que se ha puesto tan de moda en los libros de «gestión empresarial», que en realidad decaen en una especie de subgénero del libro de «autoayuda existencialista». Lectura fácil, eso sí, que ya digo que soy muy ganso para andar pensando mucho al respecto. A mí, que me lo den bien mascadito.

En ese aspecto 'Fish!' sería un perfecto exponente del género mencionado y de literatura de nula complejidad que se puede adquirir por un precio relativamente bajo en casi cualquier librería y, últimamente, en muchos quioscos. Es un texto simple que anima a, y realimenta el ánimo con, su lectura. Es una fábula simplista y un ejercicio de búsqueda de la felicidad allí donde no se encuentra fácilmente y en las situaciones en las que muchos han desistido y tirado la toalla. Es simple, pero esconde una lección esencial, a mi modo de ver: el 90% del camino lo haces tú y es tu decisión. Sí, sí, de perogrullo, pero hay que ver la cantidad de gente que no lo sabe o se olvida de ello. Está bien, de vez en cuando, refrescar las ganas y la creencia. Recargar el depósito de las buenas intenciones para con uno mismo. En definitiva, encontrar que hay camino o quien cree que hay camino y escribe un libro contando un cuento para que otros también crean. Y de paso hacerse rico con ello. Vaya, me ha salido el ramalazo cínico. Perdón.

El texto es tan, tan, tan llano y lineal que se lee de una sentada gracias a que apenas llena ciento veinte páginas con una letra tan grande que sería la abusona del colegio si se lo permitiesen. Pero que sea llano y lineal no lo hace un mal libro. Todo lo contrario. En su género, por lo que cuenta y por la forma que lo cuenta, no me extraña que sea uno de los libros de referencia en esto de la motivación colectiva. Resulta muy entretenido de leer —a mi se me antojó muy divertido— y, para ser sincero pese a que peque de blandengue, hasta emocionante y emotivo. Es un libro recomendable. Ya sea para hacernos creer por un microsegundo que es posible o para reforzar la creencia de que se puede y que hay formas de pasarlo bien en el trabajo y, lo que es más importante, conseguir que otros también se lo pasen bien.

El lector habitual de este mi rincón sabrá que no es mi práctica reventar el argumento de un libro -por muy simplón que sea- porque odio que a mí me lo hagan y, además, en Internet hay cientos de personas que ya se encargan de ello con mucho gusto, así que una búsqueda en el padre de todos los buscadores, San Google, dará respuesta al necesitado de saber de qué va. Pero creo que es más que suficiente con decir que el libro usa a modo de marco y excusa argumental un comercio que se ha hecho famoso por el espectáculo circense que ofrecen a la clientela al tiempo que sirven pescado (de ahí lo de fish) como referente de lo que se puede llegar a hacer si la motivación es la correcta. Lo normal es que en mis entradas ponga referencias a la Wikipedia, pero no he encontrado ninguna al respecto, así que creo que será la primera entrada en la que no uso el hipervínculo como recurso para marear al lector. Siempre hay una primera vez.

Otra de mis prácticas habituales es la de empezar mis reseñas de los libros contando cómo me hice con ellos o qué me llevo a comprarlos. Hoy, por eso de variar, lo he dejado para el final. Aunque creo que en esta ocasión es más bien simple y no tiene demasiado encanto: Lo recomendaban en 'Alta diversión' [reseña]. (Vaya, al final sí que he usado un hipervínculo; el del onanismo bloguero). Y eso fue suficiente para comprarlo y seguir profundizando en el tema de las técnicas de motivación. O de la motivación sin técnicas, que de eso no se va a encontrar mucho en este libro.

En fin, que si te interesa el tema de los entornos laborales y de su salud anímica, este es un libro que te puede interesar. Si estás en uno de esos entornos en los que todo el mundo se detesta mutuamente y que parece que no hay forma de salir de ese hoyo profundo en el que se encuentra, es un libro que tal vez te pueda ayudar. Si te da absolutamente igual tu prójimo, en particular esos con los que tienes que convivir forzosamente ocho horas al día, cuando no más tiempo, desde luego este libro no para es ti. Aunque también puedes usarlo para nivelar la pata coja de la mesa donde sufrirás el resto de tu existencia profesional mientras sigues detestando a tus compañeros de oficina, local, almacén, planta o allí donde sea que has decidido malgastar tu vida creyendo que la culpa es siempre de otros.

domingo, 6 de junio de 2010

VII Maratón fotográfico de Mesa y López: Y ya van dos

Sé que me repito más que el ajo, pero joder, es que hay que ver lo rápido que se me está yendo la vida. Y a veces pienso que por el retrete. Parece que fue ayer cuando acudí por primera vez al Maratón fotográfico de Mesa y López. Y ya ha pasado un año. Volando. Asombrosa la cantidad de cosas que he hecho durante este tiempo y lo poco que me parece que ha pasado…

Estuve a punto de no ir. Bastante trabajo. Más que bastante por cantidad, que también, bastante interesante y entretenido. Estoy haciendo una aplicación para iPhone, algo que personalmente me apetecía hacer, y encima cobro por ello. Así que no es raro que me den las doce o la una de la madrugada haciendo teletrabajo buscando resolver algo de formas que apenas unas horas antes no tenía ni idea que se podía hacer. Pero de eso hablaré en otro momento. Para lo único que sirve este párrafo que ya termina es para señalar que he estado tan absorto en el proyecto actual, que desde el aviso de la organización del nuevo certamen que recibí hace un mes, esperé hasta el último día para inscribirme.

Decía que me estuve haciendo el remolón, de hecho hasta me olvidé, y de ahí que casi repitiese número con el año pasado: Me tocó ser el participante número 295. De no ser por mi amigo Luis, que me mandó un mensaje recordatorío al límite, no me hubiese inscrito. Abandoné unos minutos mi aprendizaje acelerado de Objective-C, Cocoa Touch y otras variantes de retórica técnica, para rellenar la inscripción.




Tal vez cosa mía, pero este año percibí menos participación. Aunque muchas caras conocidas del mundillo. Mucho compañero de la facultad y conocidos de otros ámbitos tropezaron conmigo durante la mañana de ayer. Hasta un compañero de la oficina que, sabiendo de mi afición a la cámara y del evento que acontecía, aprovechó para atravesar la jauría humana con el convencimiento de que me vería por allí.

Superado el temor del novato del año anterior, y perdido parte del miedo escénico en la cabalgata del Carnaval de este año, encontré que me movía con más soltura y más seguro. Ganar sé que no voy a ganar nada, pero tampoco nada me impediría pasarlo mínimamente bien. Ni mi sentir vergonzoso. O eso creía yo, porque me levanté revuelto de estómago y ya había decidido abandonar el certamen cuando a medio camino para auxiliarme en un taxi me convencí que valía la pena aguantar «un poco más». Estábamos ya en el quinto tema de los seis que articulan el evento. Y estoicamente aguanté como pude y hasta llegué a tomarme algo con los amigos antes de dejar mis fotos en el laboratorio a primera hora de la tarde, última del plazo de entrega.

Los temas este año fueron particularmente abstractos o, tal vez más adecuado, especialmente abiertos a interpretaciones muy personales. La foto que he elegido para acompañar la entrada de hoy fue la segunda que saqué del primer tema, «jeans». Tan solo hice dos y esta quedó ligeramente movida/desenfocada. Menos cohibido no significa completamente desvergonzado, y no quería que se notase mucho que le estaba sacando una foto ligeramente de «mal gusto» a la despistada participante que, además, se convirtió en modelo fortuita por suerte del tema elegido por la organización del maratón. Y aunque esta es más, digamos, «jugosa», la primera me gustó más. El resto de los temas fueron cayendo igualmente amplios o genéricos. En orden, «jeans», «turismo», «pares», «canariedad», «de shopping» y «bailando» (o «baile», no recuerdo exactamente). Como decía, para mi gusto, algo abstractos.

Hice pocas fotos. Este año, tal vez porque estaba más suelto, de estómago y de inhibiciones, esperaba a escuchar el tema, pensaba uno o dos minutos sobre qué idea tenía al respecto, e iba a hacer la foto, tras lo que esperaba al siguiente. Me dediqué más bien a pasear de aquí para allá intentando que no se notara mucho en mi cara el dolor que mordía ocasionalmente, pero con fiereza, mis entrañas. Contratiempo este el único encontrado a una mañana que, por lo demás, fue bastante entretenida acompañado por los que ya —siendo tan solo la segunda vez que acudo— son la compañía habitual: Luis, Pilar, Carmen, Marcos y otros compañeros.

En fin, un merecido descanso a unas semanas muy laboriosas, que me reconcilia con una afición, la fotografía, que tengo completamente abandonada, por medio de una «quedada» multitudinaria que sigo recomendando experimentar a todos los que conozco que comparten la afición de ponerse tras la cámara. Merece la pena y espero, tripas y trabajo mediante, repetir nuevamente el año que viene. Que siendo como es el tiempo, será pasado mañana. O a mí me lo parecerá.