Flamenco y tapas

24 May 2010 Categories: blog, cosas de Asia

Supongo que para regocijo de la colonia española local, aquí va el último anuncio de Pizza Hut. La flamenca, para más inri, es una de las rutilantes estrellas del showbiz local (actriz-cantante, para entendernos) AngelaBaby

Ole.

Read the full article 1 Comment

Flashback II

10 May 2010 Categories: bambooapps, blog, software

El post anterior me ha llevado a darme cuenta que:

1.- Yo programaba en C y Pascal cuando si no programabas en Java alguien mataba a un gatito recién nacido en Australia.
2.- Yo programaba en Javascript cuando no existía el AJAX, y lo que yo hacía se llamaba DHTML. Entonces, el JS no era un “lenguaje de programación”, era un “lenguaje de script” y estaba un escalón por encima de escribir fórmulas en Excel. Y si hacías DHTML, alguien mataba un gatito recién nacido en Australia.
3.- Yo programaba en ActionScript cuando todavía no existía el concepto de “flash developer”, y todo el mundo se pensaba que en realidad era un diseñador con ínfulas. Más gatitos muertos en Australia. Lo de las ínfulas ha sido siempre verdad.
4.- Yo programaba en C++ cuando sobrecargar un operador hacía que alguien matara un gatito en Australia.
5.- Ahora, programo en Objective-C, contribuyendo a la expansión del mal por el mundo. Gatito. Australia.
6.- Durante todo ese tiempo, además, he sido maquero. Para más inri, teniendo que esconder mi verdadera identidad en un mundo lleno de bindos y unixes.
7.- Firefox en Mac (como todas la aplicaciones desarrolladas con cualquier kit cross-platform) me parece más feo que matar a un gatito en Australia. En bindos, eso sí, donde no está fuera del tiesto, me gusta. Opera me produce desprendimientos de retina en cualquier plataforma.

Como decía un antiguo jefe: la primera vez es un accidente, la segunda es casualidad, la tercera es un patrón.

Me siento, oficialmente, como el tipo que se compró el último reproductor de vídeo Betamax.

Nota del autor. El post anterior podría resumirse en “en esto del desarrollo, como en tantas otras cosas, las modas vienen y van y siempre va a haber alguien que te diga que lo que haces está mal, y que por tu culpa alguien está matando un gatito en Australia”.

Read the full article 1 Comment

Flashback

10 May 2010 Categories: bambooapps, blog, software

Es curioso ver cómo la saña anti-Apple de hoy, es la misma saña anti-Flash de hace 8-9 años y fue la misma saña anti-C de 10 años antes. Los argumentos son casi idénticos y el desconocimiento sobre el “enemigo” de muchos de los que lo critican es el mismo.

Con las honrosas excepciones de rigor, algunas de las cuales leerán esto, la situación me recuerda, en muchos aspectos, al “o estás conmigo, o estás con los terroristas” que tan buenos resultados ha venido dando a la civilización occidental durante los últimos años.

Sinceramente, al igual que entonces, la “calidad” y “profundidad” de los argumentos de muchos hacen flaco favor a los que los emiten.

Read the full article 0 Comments

23 de abril

23 April 2010 Categories: blog

Aparentemente, hay un Manifiesto de Villalar 2010. Me tomo la libertad de citar la última frase:

Ésta es una buena tierra para vivir, para progresar, para el retorno de quienes un día se marcharon. Esta tierra tiene futuro.

Sinceramente, no sabría ni por dónde empezar. Dejémoslo en que me imagino que los que han firmado eso se lo creen tanto como yo.

Read the full article 0 Comments

United colours

16 April 2010 Categories: blog, cosas de Asia

El cambio de casa, de un edificio en el que éramos los únicos occidentales (de un total de unos 3000 apartamentos) a otro, en la misma zona, pero en el que somos más o menos el mismo número de chinos que de extranjeros, produce escenas como la siguiente.

Gimnasio, hora sumamente pornográfica de la mañana, ocho personas intentamos ponernos de acuerdo sobre qué cadena poner en la televisión. La distribución por colores es:

  • Blanco rubio (un señor australiano).
  • Blanco-amarillo chino (un chino).
  • Marrón oscuro (dos pakistaníes).
  • Marrón oscuro, pero un pelín menos (señora india).
  • Marrón más clarito (señor de Tailandia).
  • Blanco – beautywhite (señora koreana).
  • Color Valladolid (servidor)

Lo más curioso, es que sin ser el inglés el idioma nativo de ninguno (porque lo que hablan los australianos, por mucho que digan, tampoco es inglés), nos hemos podido apañar sin mayor problema en Engrish.

¿Moraleja? La que ustedes quieran. Por cierto, el consenso final: una repetición de American Idol. Qué se le va a hacer…

Read the full article 0 Comments

NSTableView y doble clicks

14 April 2010 Categories: bambooapps, blog, software

Una rápida, pero que me ha traído cuatro días a mal traer. En teoría, capturar los doble clicks sobre un NSTableView es tan fácil como:

[ table setDoubleAction: @selector(rowDoubleClicked:) ];

Si se formatea el selector como un Outlet estándar, no debería haber mayor problema, ¿cierto? No señor, aparentemente, en algunas máquinas, sin saber porqué, el selector en cuestión sólo recibe el mensaje la segunda vez que se hace el doble click, y no la primera.

¿La solución?

[ table setTarget: self ];
[ table setDoubleAction: @selector(rowDoubleClicked:) ];

Indicar al NSTableView, explícitamente, cuál es el target.

Read the full article 0 Comments

Contexto y lenguaje no verbal

14 April 2010 Categories: blog, cosas de Asia

Una batallita de esas de la vida diaria-realescomolavidamisma.

Pues resulta que llevo ya dos meses lesionado. Las ventajas del “mens sana in corpore sano”. En teoría no es más que una tendinitis, pero que de no curarla bien está mutando, moviéndose arriba y abajo por la pierna. Pero ése no es el tema.

En realidad sí lo es, pero no directamente. El caso es que Ms. Tendinitis nos va a venir bien para ilustrar cómo se producen, muchas veces, las comunicaciones en este pueblo.

Y es que, generalizando, ni dios habla inglés. Si les preguntas, todos te dicen que lo hablan, pero la realidad es que, los pocos que lo hablan, se pierden en cuanto te sales un poco de una serie de fórmulas establecidas. Por ejemplo, si dices “hold on a second” te miran como si hubieran visto un fantasma; si dices “please wait a moment” todo el mundo te entiende. Y así, infinidad de ejemplos, lo que hemos venido en llamar el “inglés basado en palabras clave”.

Total, que gran parte del proceso de comunicación se produce por obra y milagro de dos grandes aliados: el contexto, y el lenguaje no verbal.

Ejemplo 1: el contexto

Imaginemos que el día X del mes Y acudes a pagar la cuota mensual de un servicio. En contraprestación al pago, te entregan un carnet que dice que tienes derecho a utilizar ese servicio hasta el día X del mes Y+1. Bien, hasta ahí todo normal.

Pero, imaginemos que se equivocan al darte el carnet, y te ponen que es válido hasta el día X del mes Y (no del Y+1). ¿Solución? Te pasas por ventanilla al día siguiente (punto importante), concretamente por la ventanilla en la que está la señora que te atendió (punto aún más importante), enseñas el carnet, y dices “not OK” en cantonés, o incluso en inglés si tienes el día peleón, apuntando con el dedo a la cifra del mes. Por la magia del contexto, la señora, que obviamente se acuerda de ti, y que has pagado el día anterior, rápidamente reconoce el error en la cifra del mes y la corrige.

Ejemplo 2: el lenguaje no verbal

Y en este caso, lo que quería yo contar al empezar la batallita. Vas al médico con la lesión de dos meses, y el médico te toquetea la pierna, te dice como puede que no es grave, y te dice como puede que te va a dar Voltarén, que te tomes las pastillas, y que vuelvas “ya si eso”. Pasas por el dispensario con la receta, y te entregan 90 comprimidos de Voltarén (o equivalente). ¿Conclusión? “Ahí tienes pastillas para un mes, no vuelvas por aquí hasta que no te deje de doler la pierna. Si es más, mejor”.

El sistema siempre funciona.

Read the full article 0 Comments

La foto del día

12 April 2010 Categories: blog, cosas de Asia, fotoblog

foto.jpg
Read the full article 0 Comments

Cómo forzar la carga de datos de NSController

11 April 2010 Categories: bambooapps, blog, software

Un problema recurrente a la hora de inicializar aplicaciones basadas en Core Data, es que las instancias de las subclases de NSController que se declaran en el nib (NSArrayController o NSTreeController, por ejemplo), no se alimentan de contenido de forma inmediata.

Supongamos un xib que contiene una instancia de NSArrayController, con el binding para el Managed Object Context correctamente asignado.

Imaginemos que al arrancar la aplicación, queremos obtener el número de elementos gestionados por ese array controller. Lo lógico sería hacer algo como esto (en el controlador de la aplicación, por ejemplo, y suponiendo la existencia de un outlet al arraycontroller):

-(void) awakeFromNib
{
    int count = [ [ myController arrangedObjects ] count ];
}

Bien, pues eso va a devolver un cero como una casa de grande. ¿Por qué? Porque en el momento de completarse la carga del nib, no se ha completado la carga de las entidades gestionadas por el controlador.

Hay varias posibles soluciones. La primera, usar KVO, y observar el contenido del array controller, hasta recibir datos. La segunda, la recomendada en la documentación de Apple, forzar al controlador a cargar datos inmediatamente, haciendo un fetch con una request nula:

-(void) awakeFromNib
{
    NSError *error;
    BOOL ok = [ groupsController fetchWithRequest:nil merge:NO error:&error];  
    int count; 
    if( ok )
    {
        count = [ [ myController arrangedObjects ] count ];
    }
}

Para que conste. Porque el tema es útil, sobre todo cuando se pretende cargar un controlador, con datos, en un xib que se carga dinámicamente.

Read the full article 1 Comment

Haciendo amigos, otra vez

10 April 2010 Categories: bambooapps, blog, software

Aunque esta vez, no soy yo, sino un Platform Evangelist en Adobe.

Me tomo la libertad de extraer una cita:

Any real developer would not in good conscience be able to support this

refiriéndose al portazo en las narices que Apple les ha pegado.

Enhorabuena, chaval, has conseguido hacerlo personal. Porque resulta que este developer (aparentemente no tan “real” o con no tan buena intención) no comparte tu indignación. Más personal todavía, por todo lo que en su día este not-real-developer le entregó a la plataforma (algo que llevo ya unos cuantos años lamentando profundamente).

Increíble: Adobe, haciéndose la víctima de todo este asunto, intentando venderse como el paladín de las plataformas abiertas, y super-preocupados por los usuarios de iPhone. Lo que hay que ver…

Por cierto, yo sí que dejo los comentarios abiertos para los spam-bots de Adobe. Obviamente, nadie va a comentar, fundamentalmente porque nadie lee esto, pero eso me da una altura moral que te cagas. La que no me dan ni mi condición de not-real-developer ni mi turbia conciencia.

Read the full article 3 Comments