Skip to main content

Adobe Flex in 10 minutes

· 6 min read

If you are a software developer, a web designer or some other sort of techie it's very likely that you have been hearing and/or reading about Adobe Flex lately. Well, if you aren't using it yourself but feel curious about it, or if you just want to have a notion, this extremely quick introduction is for you. Skimming through this post will not turn you into a Flex developer, but it will allow you to nod confidently and even drop some canny words the next time that Flex pops up in a conversation around the watercooler. First things first — what Adobe Flex is not:

  • It is certainly not a tool for generating lexical analysers ;¬)
  • It's not “the new version of Flash” (FKA “Macromedia Flash”). Development of Flash is on-going and the two products coexist. Flex hasn't replaced (and won't replace) Flash anytime soon, the reason for that being that…
  • …Flex is not “an alternative to Flash”. Sorry to disappoint you, but Flex is not a way to get rid of the dependence on the Flash Player. Actually Flex is built on top of Flash and needs Flash Player to run.
  • It's not a technology to build large, native apps that need to work close to the underlying platform or which performance needs to be optimised (read below to see why I believe this).

Flex in a nutshell (a rather small nutshell): Flex is an attempt by Adobe to make Flash attractive to, and suitable for, many software developers who were disregarding Flash as something not serious enough to use for developing “proper software”. Adobe has done a praiseworthy effort in that sense and has brought Flash to the realm of OO programming. Adobe used Eclipse to develop Flex Builder. Flex Builder alone does a lot to make old-skool software developers feel at home — it's a proper IDE with all the features you would expect, plus the extensibility (and the slowness, I'm afraid) of Eclipse. Flex developers use the Flex SDK (command line compilers and component class library; free as in “freedom”) and the Flex Builder (the IDE) to build their applications. Flex apps are written mainly in two languages:

  • Actionscript, an ECMAScript-based language that exists since the first Flash Player.
  • MXML, a loose, proprietary implementation of XML used to define GUI elements.

The output of a Flex project is one or more Flash files (.swf). In terms of the approach to the development process, the single most important change from Flash to Flex is probably removing the “movie” way of thinking. Flash animators are used to the “movie paradigm” in which the time is an essential concept. In their animations they have been working with key concepts like “timeline”, “frame” and “loop”. Flex abandons that approach. I have found that, in general, software developers without any experience with Flash get used to Flex even faster than Flash designers who don't know much about programming. What Flex is good at:

  • Rendering cool interfaces. Animations, transitions, effects, gradients, reflections, customised skins, embedded movies, nice charts, changes in opacity, layouts that are resized well when their container is resized, etc. For a demo, check the Flex 2 Component Explorer.
  • Working on all major desktops and web browsers and many mobile devices. OS's: Windows, Mac OS, Linux and Solaris. Browsers: IE, Gecko-based browsers, Safari, Opera. Mobile devices: many, and more to come.
  • Keeping the same “look & feel” everywhere. You can see the default Flex 2 “look & feel” in the Flex 2 Style Explorer.
  • Integrating and communicating with other Adobe formats. Flash movies, Acrobat documents, ColdFusion, Dreamweaver, etc.

What Flex is not good at:

  • Computationally expensive software. As we saw before, Flex stresses GUI aesthetics, intuitive design, portability, compatibility with existing Flash files and other Adobe tools, easy deployment, etc. And it was aimed at the web (in spite of Air). So don't expect it to be any good at doing system calls, invoking hardware drivers, messing with the network at low-level, fine-tuning loops to save cycles of CPU, dealing with gigabytes of data, delivering real-time, etc. Because Flex apps are deployed as Flash files, every Flex app “lives” inside the Flash security sandbox, which prevents it from accessing many of the resources of the computer. Also, Flash is a proprietary format that doesn't run natively but is interpreted by the Flash Player. That extra layer of translation decreases the performance.
  • Classic Flash stuff. Don't bother to learn Flex if all you need to do is Flash banners and simple animations. For that you will need a timeline, drawing tools and accuracy at pixel-level. Flex is not designed for that.
  • Being extrovert with its neighbours. I hear that even Air makes it quite difficult to launch an external executable from a Flex application.

Now, the “hello world” is mandatory, so here it goes. This application simply displays a customised greeting (it's a “hello world” on steroids). We'll make the GUI inherit from the layer that processes the information, in a “code-behind” manner. First, the Actionscript class contained in the file info/tripu/blog/flex/SimpleApp.as. This class extends the standard Application class and defines what to do with data:

package info.tripu.blog.flex {

import mx.controls.Alert;
import mx.core.Application;

public class SimpleApp extends Application {

public function greet (who:String): void {
Alert.show ('Hello, ' + who + '!');
}

}

}

Second, the MXML application HelloWorld.mxml. It defines the GUI by using an instance of the class SimpleApp and adding a couple of visual controls to it. Notice how the AS class that we created before is now used straight as an XML element:

<?xml version="1.0" encoding="utf-8"?>

<tripu:SimpleApp xmlns:tripu="info.tripu.blog.flex.*" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:TextInput id="user" text="world" />
<mx:Button label="Greet" click="{greet (user.text)}" />

</tripu:SimpleApp>

The result of compiling those two files in a Flex project is this Flash file, HelloWorld.swf (you'll need Flash Player version 8 or above to see the embedded Flash object):

Casio EX-word XD-SP7500 Japanese-Spanish-English

· One min read

Today I ordered this little marvel:

  • 27 thesaurus and dictionaries of Japanese, Spanish and English.
  • Quick jump among dictionaries.
  • Hand-written kanji recognition.
  • Encyclopedias with images.
  • Dictionaries of proverbs, computer jargon, business and economics, kanji and katakana.
  • 10K spoken Japanese words (not synthesised but actual human voice).
  • Backlight.
  • SD card slot.
  • USB port.
  • Speaker plus headphone output.

Hopefully it will find its way from Japan to the UK and will be safe with me in a few days. Isn't it beautiful?

Dicotómico

· 4 min read

¿Oficio y beneficio o predecible y apacible? (podría no ser tan terrible, pero ¿merece la pena el sacrificio?)

Entre el diseño individual             el control de la necesidad y asumir los destinos             participar de las decisiones.

Entre máquinas y personas objetos y conversaciones sentidos y razones entre el hemisferio izquierdo y el derecho entre hemisferio norte y hemisferio sur.

Si el menú no sirviera opciones (o si al menos pudiesen contarse) si las supiese mesurar o si fuese yo estúpido sobraban todas estas líneas torcidas y ya habría optado medio camino hecho un empezar, el objetivo la ruta y su prioridad como hacen tantos sin lamentos como el menda sin indecisión y sin blog y el viaje no les sale mal. ¿Por qué, entonces, el ahogo?             Soy, ahora lo veo luminoso             probablemente estúpido, al final.

Más la circunstancia es contraria: me senté, abrí la carta             tomo rollizo inflado de menús empecé a leer hace mucho tiempo revisando ingredientes me gustan casi todos (menos los pistachos) (y la sandía) y aún sólo voy por la mitad de la introducción al primer volumen de los entrantes…

Porque todo me apetece del menú se me antoja y me encanta y lo deseo como al asno de Buridán:

Dibujar con el alfabeto admirar a los que saben pintar de verdad páginas de historias verdaderas en colores sintéticos, o al revés saber de otros que admiran igual leer todo de todos ellos escribir lo que aprenda más lo que me sepa inventar jugar con trastos que son un mundo cada uno los que se tocan y los que no todos los juguetes espectaculares que se pueden diseñar hacer otros trastos yo mismo que otros a su vez puedan usar hacer el amor por amor al arte o simplemente por gusto sobre cada pieza de mobiliario de nueve a seis y con más de tres no quiero decir a la vez (pero todo se puede ver) comer sin tenedor ni pan probar lo que me pongan vivir como un oriental en el cono sur de la Europa tropical tan lejos, es casi volver ya hablando raro juntarme con extravagantes a los que miran mal hasta que ésos me entiendan y entonces volver a empezar ser en paralelo a mis compañeros verlos crecer aún más que yo citarme cada año doquiera que estén saborear cada charla estrujar cada ciudad atrapando cada imagen que no quiero olvidar que es cada imagen sudar más cuando se imponga rendir mejorar aprender absorber todo lo que me hace bien que es tanto y escuchando todo de fondo mientras hago todo lo demás vibrar con lo que cuentan también con lo que cantan crear sonidos que no suenen mal tachar de las narraciones que me faltan por ver que son muchas de las viejas más las que están por estrenar saberme lo más para quien sea todo para mí a quien no tenga que explicar el ansia de probar de sentir de cambiar de volver y de estar y de ser o en su defecto             saber plegarme de una puta vez.

Todo no cabe eso lo sé.

Me miro en los reflejos             de los que necesito pero no lo admito             a los que admiro, que me inspiran             de los que aprendo             ¿que me entienden? hago diferencias e infiero resultados analizo los porqués de sus caminos en sus variaciones toda mi querida parafernalia que no basta ni arroja resultados por más que viva y le dé vueltas y vuelva a reconsiderar o corrija la ecuación.

Y si volver es el argumento más correcto que es cierto, que más vale ¿volver a qué, exactamente? Dime cuál es el origen si alguno hay y si cruel no es el volver a él (¿no me toca a mí inventar uno ya?)

Continuará…

“So clearly beautiful to me”

· One min read

“A lot of these songs are just a response to what struck me as beauty. Whether it was a curious emanation from a being or an object or a situation or a landscape, you know, that had a very powerful effect on me as it does on everyone, and I prayed to have some response to the things that were so clearly beautiful to me; and there were a lot!

Leonard Cohen

More on L. Cohen

· 3 min read

Holy cow. Right after posting the previous entry I learnt that Leonard Cohen was inducted into the “Rock & Roll Hall of Fame”… only five days ago. That is good news for three reasons: a) it's good to check, from time to time, that L. Cohen is still alive; b) his appearance at the event proved that he is still brilliant with words and that the pitch of his voice has dropped down yet one more octave, entering the range of infrasounds; and c) there is still hope for a music industry that can spot an amazing lyricist among all the rubbish, and pay tribute to him even after so many years.

L. Cohen

There are people whose soul vibrates in resonance at the same harmonics as Leonard Cohen's. For all those people (of whom, if my reckoning is right, there are exactly zero among the handful of readers of this blog) let me link a few items about Leonard Cohen that are dear to me:

Seis

· 4 min read

Z me señaló y hay que cumplir. Así que me estrujo las meninges para encontrar chorradas nuevas que contar, diferentes a las cinco viejas que ya conté. Y encima esta vez son seis, no cinco. Reglas:

  1. Explicar las reglas (ecco la meta-regla).
  2. Avisar a quien te invitó a jugar («¡Zetaaa…!»).
  3. Revelar seis cosas insignificantes pero curiosas sobre ti mismo (a ello vamos).
  4. Enmarron^WInvitar a otros seis incaut^Wblogueros.

Las seis cosas:

  1. Hay temas que redirijo a /dev/null siempre y de forma casi inconsciente. Las secciones de deportes de los telediarios o de los periódicos las ignoro mecánicamente, muy especialmente el fútbol. Pero lo más grave me pasa con la información meteorológica. Cuando aparece el hombre/mujer del tiempo mi atención se pierde. Si estoy interesado en la previsión porque planeo hacer algo al aire libre soy capaz de escuchar durante cinco segundos, máximo. Pero invariablemente cuando el tipo se despide me doy cuenta de pronto de que no me he enterado absolutamente de nada. Imposible.
  2. Hay dos situaciones en las que suelo pensar que la gente habla demasiado. La primera es cuando el diálogo se vuelve unidireccional durante un buen rato, y no porque la otra persona tenga mucho nuevo que contarme o porque yo esté interesado en cada mínimo detalle. Me incomoda que la otra persona no se dé cuenta como yo me doy cuenta. Especialmente cuando estoy ocupado, o tengo prisa por irme, o necesito hacer otra cosa y alguien me da un palique inesperado. Hago mis mejores esfuerzos por no ser maleducado y lanzar mensajes subliminales en plan «hey, perdona… ¿te importa si lo hablamos mañana?» y me fastidia cuando no se captan. No me malinterpretéis; me gusta hablar con mis amigos, discutir cosas, contar y que me cuenten. Pero no me apetece siempre. La otra situación se da cuando estoy con un grupo de personas y hay una que monopoliza la conversación. Al cabo del rato mi atención y mi interés empiezan a decaer. Y me siento un poco incómodo; no solo por mí, sino también por el resto de personas.
  3. A veces me doy miedo a mí mismo por lo frío y racional que puedo llegar a ser. (Hum… ¿no es esta frase paradójica?). Me pasa cuando tengo que sopesar pros y contras para tomar decisiones, o cuando surgen conversaciones sobre cuestiones morales o dilemas existenciales. Creo que en el fondo tengo sentimientos (recuerdo que una vez sentí uno, vagamente) pero sé que a veces parezco un robot.
  4. Mientras escribo esto escucho a Antony & the Johnsons.
  5. Hace años que sé exactamente cuál sería mi trabajo ideal: dirigir y presentar un programa de radio en la madrugada de la inconmensurable Radio 3 de RNE en el que se hablase de cine, música, ficción científica, internet, computadores y cultura digital; pondría la música que me gusta y escribiría los textos. Hace años también que me resigné a consolarme con el segundo trabajo ideal para mí. Lo malo es que ése sí que no sé cuál es.
  6. Mi próxima visita a Z en Bruselas en realidad esconde el propósito secreto de atentar contra las instituciones europeas que intentan imponernos a los ciudadanos británicos esa mentalidad continental uniforme, erradicar nuestras singulares unidades de medida y condicionar nuestra política exterior.

Seis inocentes potenciales (aunque a varios no creo que les interese):

  1. Xirick.
  2. Sere.
  3. PabloBM.
  4. Chewie.
  5. Teo.
  6. NinaNutz.

Voy a votar a Rajoy

· One min read

Si hubiese perdido una mañana en el consulado y pudiese votar por correo, votaría por Rajoy.

Rajoy

Y lo haría exclusivamente porque siento mucha simpatía por alguien que, como yo, se interesa por Japón, su cultura y su idioma. Ayer, 3 de marzo, fue el Hinamatsuri (雛祭), el día dedicado a las niñas en Japón. Y esto obviamente Mariano lo sabía. Con qué gracia coló el guiño en su discurso final. Hoy sabemos, sin lugar a dudas, que la niña de Rajoy es japonesa. Y solo por esto ya tendría mi voto. ばんざいラホイ!

Un Instante de Felicidad Pura en Nara

· 4 min read

Esta noche me encontré volviendo a casa en el metro y sin ninguna lectura. Lo único que tenía encima es el cuadernito que suelo llevar en la mochila cuando salgo de casa, así que me puse a hojearlo. Ese Moleskine fue también mi cuaderno de viaje en Japón el año pasado. Así que releí algunos pasajes que tenía olvidados, y fue muy gustoso. En concreto, me alegró revivir las sensaciones del día en que fui a visitar la ciudad de Nara (奈良), antigua capital de Japón. Fue un Instante de Felicidad Pura delante del templo budista de Tōdai-ji (東大寺). Copio aquí el apunte sin cambiar ni una coma. Las fotos son algunas de las que tomé ese día, y corresponden exactamente a ese momento.

Miércoles. Dos cosas que tengo que apuntar antes de olvidarlas. En información turística, aquí en Nara, una mujer japonesa me explicaba en inglés el recorrido recomendado x la ciudad (pueblo, más bien). Yo solo había dicho «Konnichiwa. Do you have a map, please?» Y le había dicho, cuando me lo preguntó, que era español pero vivía en UK. Estaba asintiendo a sus explicaciones, cuando de pronto se para y dice: «I don't like stereotypes, but you don't look Spanish. You are very reserved. How long have you been in the UK?» Me sorprendió, pero no pude por más que reirme y darle la razón. Serán las artes adivinatorias milenarias del sintoísmo… [Ahora me pregunto qué clase de españoles habría encontrado la mujer antes…]

La otra cosa ha pasado aquí, en las escaleras delante del templo de Todaiji, el más famoso de Nara. El día es soleado, y de camino al templo he ido viendo grupos numerosísimos de colegiales japos, todos uniformados, haciendo fotos y siguiendo a los profes. Hay muchísimos ciervos mezclándose libremente con la gente; son muy bonitos. Se supone que esto es un parque, pero parece un bosque. Hay árboles muy altos, y la hierba y la vegetación están muy verdes, para ser ya finales del verano. Estaba justo delante del templo, que es enorme, admirando la arquitectura (hay fotos). A unos 150m, en unas escaleras que hay justo al inicio del paseo que lleva a la entrada. No hay edificios modernos a la vista; todo es verde, templo, y los edificios anexos. Entonces ha pasado una pareja occidental de turistas, con una niña pequeña preciosa, rubia. Un grupo de colegiales japoneses [no, coreanos] la han visto cuando ha pasado cerca de ellos, y, sobre todo las niñas, se han acercado sonriendo y han empezado a hablarle en inglés. La madre se ha acercado al grupo sonriendo y en un momento la niña estaba rodeada de niños mayores, haciéndole fotos, preguntándole su nombre y su edad. Todos sonreían, y la niña estaba un poco intimidada, refugiándose a veces contra su madre, que la cogía de la mano y la animaba a hablar. Parece que tenía 2 años, y tenía un pelo rubio precioso, con unos rizos grandes. Mientras observaba, más estudiantes me rodeaban a mí, según llegaban y se dirigían al templo. Cuando la niña occidental se ha ido, los colegiales que le hacían fotos han desplegado de pronto una pancarta y han posado detrás de ella, con el templo al fondo (hay foto). Todo parecía gente alegre y sonriente a mi alrededor, sin preocupaciones. Junto con la vista del templo y sus jardines, ha sido para mí «overwhelming». Yo mismo me siento ahora tranquilo, libre. Puedo hacer lo que quiera ahora, y mañana… Y solo observar a la gente en sitios como éste ya es una gozada.

Flechazo

· One min read

Esta misma tarde, cuando salía de casa para ir a la City, que es donde tenemos nuestras reuniones semanales de trabajo (sí, ahora trabajo desde casa :¬) vi en mi propia plaza a la mujer de mi vida. Y me enamoré. Porque es el arquetipo que condensa los valores más sublimes. El epítome de la belleza juvenil femenina, inglesa y suburbana. Era rubia de pega, concretamente rubio #FFFF80. Un poco más joven que yo. Estaba en la calle, hablando con otros chicos. Una panda de NEET's, a juzgar por la hora que era y porque estaban todos ociosos y relajados charlando en la calle. Hablaba a gritos y con cara de rabia; desplazando la cabeza lateralmente, moviendo el cuello. Con una pose chulesca y poco femenina. Llevaba un chándal rosa. Rosa-rosa. Fumaba. Y estaba embarazada de once meses (por lo menos). Para que luego nos quejemos en ¡Espiña! de canis, mantequeros, chanos, calorros y kinkis.

«Medical Sans»

· One min read

— ¿Qué tal el nuevo médico de cabecera?

— Bien…

— ¿Es otro Rabindranath Tagore?

— Sí, pero a este se le entiende lo que dice… y… ¡me ha dado la receta impresa con el ordenador!

— ¡Oooh…!

— Claro, pero ha usado una fuente de médico, ¿no?

— ¡Ja, ja, ja, ja…!

— Ja, ja, ja… claro una que no se entiende nada, ¿no?

— Usa «Medical Sans».