Las Elecciones

Otra vez, tiempo de elecciones en Venezuela. Me lo recuerdan los frecuentes mensajes que llegan a mi celular anunciando alguna maravilla del consejo electoral, como por ejemplo, que ser miembro de mesa es “un derecho y una obligación”. Por alguna razón, percibo una contradicción en la simultaneidad de “derecho” y “obligación”… pero realmente hace algunos años desistí de interpretar los mensajes institucionales, y desde entonces soy más feliz.

Las campañas políticas representan otra señal de la llegada de las elecciones, quizás la señal más conspicua. Ahí los estoy escuchando. Por el alborozo, obviamente están muy cerca de la casa. Están presentando alguna nueva y juvenil estrella política, cuya fulgurante carrera comienza a perderse de vista sin haber ganado nada aún. “Uno de los nuestros”, les escucho decir, a lo lejos. Estas campañas me recuerdan a un carnaval: gente desfilando en una comparsa, tipos con caretas multicolor, música tropical, predicciones irreconciliables sobre la comparsa que ganará, y también reparticiones de caramelos o del pariente no menos noble de estos últimos: las bolsas de comida.

“Uno de los nuestros”, siguen diciendo. Y quizás pasen por la casa entregando algún “plan de trabajo de nuestro futuro representante en tal parte”, evidentemente redactado en Word, con algunos títulos en Comic Sans. Puede que venga un grupo de tres o cuatro, de los cuales en tu vida has cruzado miradas sólo con uno de ellos. Ése que conoces sólo de vista saludará como si fueras un amigo de toda la vida, e inmediatamente te hablará asumiendo que estás totalmente a favor de los colores políticos que él viste. Sonreiré, aceptaré el papelito, prometeré un voto, los despediré risueño, y me regresaré a la cocina pensando en la manera de mejorar el algoritmo de rendering.

Ahora suben el volumen de la música. Y con estas referencias a “carnaval” y “música”, siento el impulso de cantar el uruguayísimo tema de Pedro Ferreira: La gente se alborota al oír su sonar. / El barrio se enloquece y se pone a bailar, / y todo el mundo goza al compás de los cueros / sintiendo la llamada que pasa y se va. Ah, mi América y su música hermosa. Por lo menos estas elecciones acaban de hacerme recordar algo lindo.

“Uno de los nuestros”, dicen otra vez. Pero ahora ladran los perros y no me dejan escuchar.

La gente va muy bien

La gente va muy bien es una deliciosa canción de Serrat, que entre otras cosas demuestra que la gente va muy bien para escribir canciones que hablan de lo bien que va la gente 😀 Los versos de esa canción combinan crítica y ternura, como el que dice: La gente va muy bien para aplaudir al jefe, animar el paisaje y preservar la especie. O mi estrofa favorita: La gente va muy bien para contarles cuentos, para darles porrazos y venderles ungüentos. La gente va muy bien… La gente va muy bien para decir que “sí”, para decir “amén”. Me encanta ese tema.

En otro sentido, según lo que he visto y escuchado en estas semanas, agregaré que la gente va muy bien haciendo colas kilométricas para comprar una caja de whisky. La gente va muy bien para comprar unas cervezas en vez de comprar un libro para sus hijos. La gente va muy bien para enviar a sus hijos muy lejos, a campamentos, guarderías, tareas dirigidas, y cualquier cosa que sirva para reemplazar la escuela o el liceo durante las vacaciones. La gente va muy bien para decir: “¿qué #$%&# me ves tú?”. La gente va muy bien para quejarse de sus gobiernos y no hacer nada excepto quejarse. La gente va muy bien para antojarse de alguna cosa justo cuando escasea o ya se ha acabado. La gente va muy bien para envidiar a otros. La gente va muy bien para empezar a leer los diarios por la parte más morbosa. La gente va muy bien para maltratar el lenguaje. La gente va muy bien para escribir alguna entrada sobre la gente. La gente va muy bien para todo. Acá el anormal es uno.

Sin embargo, hay mucha, muchísima gente que va muy bien para regalarnos a todos alguna genialidad, alguna sonrisa inesperada, alguna palabra de aliento, alguna muestra de calidez humana. Bendita sea esa gente.

Digital Signal Processing: An Introductory Note

Digital Signal Processing (DSP) comprises the techniques and algorithms for transforming, filtering and representing digital signals (DSP is a subfield of the more general Signal Processing topic).

Continuous and Digital Signal Processing

A signal is a measurement of a process, an observation of the behavior of some system. Numerically, a signal is a time-varying or spatial-varying quantity (in the following, for simplicity, we’ll assume that the independent variable is time t). Some physical signals, such as speech and image are continuous in time. For instance, the speech signal is a continuously varying acoustic pressure wave. Sometimes, continuous signals x(t) are referred to as continuous or analog waveforms (continuous and analog are typically interchangeable terms albeit analog is a kind of absolute term, and we will not be using it in the following). Continuous signals vary at an uncountable infinite number of times. On its side, digital processing units can only handle sequences of numbers, i.e., they are discrete devices. In order to harness the benefits of digital processing units, continuous signals have to be first discretized (sampled). After sampling, we get a digital signal, which we might use as a representation of the original continuous signal. This sampling process is performed by a Continuous-to-Discrete (C/D) converter.

Summarizing, sampling is the process by which a digital representation of a continuous time signal is obtained. Basically, during sampling we select a finite number of data points (in a finite time interval) to represent the infinite amount of data that the continuous signal contains (within the same interval). If sampling is periodic, we sample x(t) at uniformly spaced time instants. Sampling is by no means a trivial issue, and we have to be careful in selecting the discrete data values… how well does this discrete sequence represent the continuous signal?.

Continue reading “Digital Signal Processing: An Introductory Note”

The Sheepdogs

Una banda canadiense que muy poca gente conoce. Hacen rock con un sonido “clásico”. En lo personal, me gusta bastante su disco “Learn & Burn”. Aquí están con Southern Dreaming:

Si le gusta el estilo, puede continuar con los temas “I don’t know”, “Rollo Tomasi” y “Learn & Burn” (lindas guitarras aquí). En varias partes percibo el influjo zeppelinesco con claridad. Ésta es su página en myspace.

Mmm… otra banda canadiense. Antes, hablé de Arcade Fire. Últimamente estamos escuchando muchos canadienses 😀

Mérida Preciosa

Realmente no conservo la cuenta precisa de mis viajes a Mérida. Pero ya deben totalizar más de 20 las veces que he completado el viaje de ida y vuelta en avión entre Margarita y Mérida. Es un recorrido de varios kilómetros, que prácticamente implica cruzar Venezuela desde oriente hacia occidente. Y a pesar de tantos “¡Hola, Mérida!”, puede decirse que no conozco Mérida. Algún amigo me dirá que si no he visto un juego de Estudiantes de Mérida, “no he ido a Mérida” (por cierto, Estudiantes de Mérida se fundó en 1971, por lo cual es uno de los clubes más antiguos de mi país… aunque en el contexto del fútbol de toda América, 1971 fue ayer; también recuerdo que los dos primeros goles de Estudiantes fueron convertidos por un uruguayo y un brasileño). Alguna amiga me recordará que no he visitado el páramo, y que en consecuencia, “no he ido a Mérida”. Tampoco he visitado la Heladería Coromoto, esa heladería merideña que figura en el Libro Guinness de récords mundiales como la heladería con más variedad de sabores en el mundo. Tampoco he subido al trolebús. Mi hermana, con menos viajes a Mérida, ha visto más que yo, y destaco principalmente que ella sí ha visitado la referida heladería (y habla de helados de carne, de champiñones al vino y de cosas extravagantes para un sabor de helado).

Y así, muchísimos faltantes. Nada de Pico Bolívar, nada de Mucuchíes, nada de Estadio Metropolitano, nada de Monumental, nada de Teleférico. En cambio, mucho de facultades (sobre todo la de Ingeniería), mucho de institutos de ciencia y tecnología, mucho de plazas (Milla, Bolívar, Glorias Patrias), mucho de librerías, mucho de la Catedral. He visitado, creo, todos los mercados importantes. He ido a un zoológico-parque en La Hechicera. También, por los actos de grado, conservo algunos recuerdos de la Plaza del Rectorado. He caminado bastante por el casco central, entre la plaza de Milla y la de Glorias Patrias. Los Chorros de Milla, y sobre todo La Hechicera, son zonas que no me resultan extrañas. Pero evidentemente, aún debo invertir muchos pasos para poder afirmar con alguna propiedad que “conozco Mérida”. Y pensándolo bien, con tantas y tan buenas amistades que tengo allá, de alguna manera mi alegado desconocimiento resulta injustificable. Culpa de mis prisas.

Vista de la Plaza de Milla. Estrictamente, es la Plaza Sucre, porque la estatua allí es la del Mariscal de Ayacucho.

Por la distancia, no hay vuelos directos entre Margarita y Mérida; alguna escala o conexión -generalmente en Maiquetía- resulta obligatoria. Hace algunos años, cuando el viaje entre estas localidades me resultaba más cómodo, la conexión ocurría en Maracay o en Valencia. Fueron ésos mis primeros viajes a Mérida, a bordo de aquellos Beechcrafts de la aerolínea Avior, con la femenina (y algo macabra) voz pregrabada que ofrecía las instrucciones de aeronáutica civil. A veces arribaba a Maracay o Valencia, se producía un recambio de pasajeros, y continuábamos de inmediato. En otras ocasiones, debía abandonar la aeronave mientras suministraban combustible. Pero en general era un viaje muy cómodo, con esperas mínimas. También viajé con la desaparecida (o mejor dicho: rebautizada) Santa Bárbara Airlines, pero siempre preferí el vuelo con Avior. De hecho, tengo unas millas acumuladas con Avior, esperando que algún día me decida a apartar algo de tiempo para dirigirme a algún lado. Mi primer viaje a Mérida (en 2001) pareció un preludio de lo que venía: en Avior, fui con mi papá, subí a La Hechicera a conocer a quien años después sería mi tutor de Maestría y Doctorado, y regresé a Margarita en menos de 12 horas 😀

Estos viajes relativamente cómodos y rápidos podían hacerse cuando estaba habilitado el aeropuerto Alberto Carnevali de la ciudad de Mérida. Pero ahora no se encuentra habilitado para vuelos comerciales. En la actualidad, hay que llegar al aeropuerto Juan Pablo Pérez Alfonso en El Vigía, y después tomar un taxi hasta Mérida (un trayecto que, en el mejor de los casos, requiere hora y media). El Vigía es una ciudad de la zona del Sur del Lago, una de las zonas con más alta producción agropecuaria de Venezuela, y se encuentra “a medio camino” entre las ciudades de Mérida (Estado Mérida) y Santa Bárbara (Estado Zulia). El principal problema del Aeropuero Alberto Carnevali son sus reducidas dimensiones. Además, tiene una sola pista de aterrizaje, está rodeado de casas y comercios, y hay muchas montañas en las cercanías. Por tal razón, sólo puede recibir aviones pequeños como los Beechcrafts. Los viajes comerciales en el aeropuerto de Mérida se suspendieron a raíz del tristísimo accidente de 2008… qué cosa más triste. Venezuela necesita más cariño, más atención en todos sus ámbitos. Necesitamos más disciplina, más prevención. Personalmente, me correspondió conocer el aeropuerto del Vigía de una forma muy inesperada. Fue en 2004 o 2005 cuando, viajando con Avior, al aproximarnos al aeropuerto de Mérida nos encontramos con una nubosidad increíble. El piloto dio varias vueltas, intentando quién sabe qué, hasta que alguien decidió que nos desviáramos al aeropuerto del Vigía. Y así fue como llegué por primera vez al Vigía, y como vi por primera vez sus verdes campos y las vaquitas pastando. De ese vuelo recuerdo especialmente a unas señoras mayores que venían en asientos delante del mío… nunca había visto a una persona persignarse tan rápido y tan seguido. El aeropuero del Vigía es más amplio, y puede recibir aviones grandes como los Boeings 747. Supuestamente, pronto reabrirán el aeropuerto de Mérida, con una nueva línea aérea. Veremos qué resulta.

La pista del aeropuerto de El Vigía, vista desde el restaurante.

Mis viajes más recientes hacia Mérida han utilizado los servicios de la aerolínea Conviasa. El vuelo con ellos es excelente, muy relajado, y con una buena sensación de seguridad. Tenían unas azafatas muy lindas, pero en este reciente viaje toda la tripulación era masculina… trabajan muy bien, pero vamos, no es lo mismo 😀 Lo único malo de Conviasa (y realmente es muy malo) son los permanentes retrasos, al menos en los vuelos que me han correspondido (creo que unos 8 vuelos con ellos). En ninguno de esos 8 vuelos han salido a la hora señalada. En algunos casos he debido esperar 4 o hasta 6 horas. Este detalle arruina el resto de la impresión favorable, y vuelvo a recordar lo que dije antes: a Venezuela le falta disciplina. Si esos horarios no se pueden cumplir por razones operativas o de seguridad, es mejor sincerarlos, y así los pasajeros podemos efectuar una mejor planificación (así algunas personas podrían subir a Caracas durante el tiempo de espera, por ejemplo).

Pero en fin, Conviasa me llevó a Mérida esta semana pasada, y me regresó a casa sin nada reprochable excepto las demoras. Y les agradezco por eso. Esta vez encontré a Mérida algo melancólica. En Agosto suelen descender las temperaturas, pero no lo sentí. Y eso significa mucho, considerando que soy un oriental acostumbrado al mar y a las temperaturas de la costa. Noté muy grises las tardes, muy silenciosos los pasos. Es época de vacaciones, e imagino que eso contribuye en parte al cambio de mi percepción sobre la ciudad. Es Mérida una ciudad estudiantil y turística. La Universidad de Los Andes está integrada y distribuida por toda la ciudad, y puede uno toparse con turistas en cualquier época del año. También es una ciudad caótica en cuanto al tráfico, por lo estrecho de sus espacios y por el crecimiento del parque automotor. Los minutos se consumen con mucha facilidad atascado en el tráfico. La noche de mi llegada, encontramos atascos por doquier, y el taxi parecía avanzar 30 metros cada 10 minutos. Mientras esperas en el taxi por alguna solución mágica a aquel revoltijo de autos, puedes ver cómo se abre la noche merideña: las eternas ventas en la calle, algunas tiendas bellamente iluminadas, las parejitas tomadas de la mano, los grupos de amigas adolescentes preparándose para romper la noche, y los afiches anunciando cursos de ésto y de aquello (en Mérida hay gente para todos los temas: desde los que son expertos en idioma finlandés, hasta los que se saben el modelo de la tuerca más pequeña del auto más costoso del Tokyo Motor Show más reciente).

Esta vez llegué con mi hermana a una posada en la Plaza de Milla que frecuenté mucho durante mis años estudiantiles: La Posada de la Loca Luz Caraballo. Curioso nombre. Hay toda una leyenda alrededor de la Loca Luz Caraballo. Uno de los hombres más ilustres de Venezuela, Andrés Eloy Blanco, escribió el Poema de la Loca Luz Caraballo, que empieza así:

De Chachopo a Apartaderos
camina Luz Caraballo
con violetitas de Mayo
con carneritos de Enero.
Inviernos del ventisquero,
farallón de los veranos,
con fríos cordilleranos,
con riscos y ajetreos,
se te van poniendo feos,
los deditos de tus manos.

La posada tiene una decoración muy tradicional, colonial, cautivadora para muchos turistas. A mi mamá le gusta mucho. Particularmente, queda muy cerca de donde necesitaba ir. Y también está cerca de una pizzería espectacular. Y en este viaje, por designios del azar, descubrí un restaurante ubicado en el extremo opuesto de la Plaza de Milla: sirven unos desayunos riquísimos (por cierto, confieso mi debilidad por las arepitas de trigo que preparan allá en Mérida: soy feliz con una arepita de ésas y algo de nata). Un hecho curioso en la posada: la chica de la recepción, a la que no conozco, apenas nos vio dijo que recordaba nuestra anterior visita, e incluso mencionó el número de las habitaciones que nos había asignado entonces… bastante curioso, porque esa visita anterior había ocurrido como unos 7 meses atrás… y me cansé de buscar disimuladamente alguna computadora sobre el escritorio… algún dispositivo electrónico para registro de huéspedes… y sólo había papeles… cuadernos… buena memoria… supongo. El trato en esa posada es excelente. De hecho, un amigo merideño no la conocía; nos reunimos en el pequeño vestíbulo de la posada, y quedó encantado con el ambiente. Además, ¡tienen una rockola! Imagino que no funciona, pero me divierto mucho viendo las canciones que están anotadas allí. Recuerdo que la rockola presume de tener “Sufrir” de Rodolfo… y también está ¡La Mochila Azul por Noel Petro! ¿Grabó Noel Petro ese tema? Yo conozco la versión que ha escuchado todo el mundo, la de Pedrito Fernández, y a Noel Petro lo conozco sólo por “Cabeza de Hacha”. Tendré que buscar esa mochila azul.

La recepción de la posada, a las 7 de la mañana.

Y bueno, un viaje bastante tranquilo, por motivos de trabajo. Me reuní con personas muy lindas, profesionales excelentes. Una de las mayores virtudes de los merideños es su alto nivel de instrucción, el respeto y la cortesía que muestran siempre. Creo que el nombre original de Mérida es “Santiago de los Caballeros de Mérida”, y también se le conoce como “la ciudad de los caballeros”… y realmente son muy cultos y atentos. O bueno, particularmente los merideños que yo conozco son todos así. Una de esas personas lindas y excelente profesional me obsequió un tarrito de chocolate producido allá. Se llama Mucutella, y es un chocolate muy, muy bueno. Es un producto artesanal, fabricado por “Chocolates La Mucuy”. Para un apasionado del chocolate como yo, averiguar más sobre esos chocolates es una obligación para un próximo viaje.

No tuve tiempo para reunirme con todos los amigos, ni cerca. De hecho, mi tutor -que ahora vive en Madrid- se encontraba justo esos días allá en Mérida y no pude verlo (además me enteré de su presencia en Mérida justo horas antes de mi regreso).

Para cerrar, algo muy curioso: en la plaza de Milla, la mañana del regreso, estaba un señor leyendo un diario sentado en uno de los bancos. Entonces llegaron unos chicos a fumigar (contra el dengue, supongo). Encendieron la ruidosa máquina de fumigación y procedieron a inundar la plaza con humo blanco. En cuestión de segundos, el humo envolvió por completo al hombre. Lo más curioso del hecho es que el hombre no reveló ningún ademán para irse, un gesto de molestia, nada. Raros los dos, el que fumigaba (que llegó a esparcir humo sin importarle nada ni nadie), y el que leía (a quien no le importó no importar). Pero bueno… la gente y sus cosas.

Ya de regreso en Margarita, estaba un grupo tocando música tradicional en el aeropuerto. Serían como las 10 y tanto de la noche, quizás más.

Óbelo

÷. Ése es su nombre, no lo olvides. Óbelo. Lo viste en aquel libro viejo de aritmética, en el capítulo que habla de progresiones. Después lo encontraste por doquier, como operador de la división. En HTML se escribe con ÷ y así lo ves: ÷. U+00F7 en Unicode. También se le llama lemnisco, y aquí comparte nombre con unas fibras nerviosas (lemnisco lateral, lemnisco medial) y con la “cinta que en señal de recompensa honorífica acompañaba a las coronas y palmas de los atletas vencedores” (definición de lemnisco según el DRAE). Y sí, la palabra lemnisco te recuerda a la Lemniscata de Bernoulli.

En fin, ya sabes. Óbelo. Como en obelisco. Y en inglés, obelus con su plural obeli. La Wikipedia en francés se muestra concisa respecto a su uso en matemáticas:

L’obélus ÷, forme primitive de l’obèle “†”, est un signe utilisé en mathématique pour signifier la division. La division est aussi représentée par les deux-points “:”, ou par la barre oblique “/” utilisé comme barre de fraction.

4 ÷ 2 = 2. Mmm… a veces, a veces.

Software Design, Trials and Errors

Good software design always consider potential scenarios of failure. That’s easier said than done. Frequently, even detecting the failure may be a hard task. That’s other reason why design should always favor software construction based on low-coupled components: theoretically, it should be easier to isolate and identify the part at fault. Now, if a failure occurs, what will the system do? Mask the failure? Inform the user about the failure and ask her for directions? Try to automatically recover from failure? Nice questions, even prettier core dumps.

Trial and Error Basket

Today I read a succinct and instructive article by Professor Robert L. Glass, published in Communications of the ACM, Volume 51, Number 6 (2008). Professor Glass is a widely respected expert in the Software Engineering area, and his prose is always very eloquent and a pleasure to read. The specific article is Software Design and the Monkey’s Brain, and it attempts to capture the nature of software design. By the way, if you enjoy that article, you may also like a book by Professor Glass: Software Creativity 2.0, in which he expands on the role of creativity in software engineering and computer programming in general. Essentially, the article Software Design and the Monkey’s Brain deals with two intertwined observations:

  1. Software Design is a sophisticated trial and error (iterative) activity.
  2. Such iterative process mostly occurs inside the mind (at the speed of thought).

In the following, I’ll present my own appreciations on this topic. Regarding the first observation, I think that trial and error (I’ve also found the expression trial by error) is the underlying problem-solving approach of every software engineering methodology, like it or not. Alas, there is no algorithmic, perfectly formalized framework for creating software. In his classic book Object-Oriented Analysis and Design, Grady Booch says:

The amateur software engineer is always in search of magic, some sensational method or tool whose application promises to render software development trivial. It is the mark of the professional software engineer to know that no such panacea exists.

I totally agree. Nevertheless, some people dislike this reality. Referring to Software Engineering, a few (theorist) teachers of mine rejected calling it “Engineering”. These people cannot live without “magic”. Indeed, there are significant conceptual differences between software practitioners and some (stubborn) computer scientists, with regards to Software Engineering’s nature. These scientists are not very fond of the trial and error approach. In his article, Professor Glass presents some past investigations which verified that designing software was a trial and error iterative process. He also reflects on the differences in professional perceptions:

This may not have been a terribly acceptable discovery to computer scientists who presumably had hoped for a more algorithmic or prescriptive approach to design, but to software designers in the trenches of practice, it rang a clear and credible bell.

I like to think of software construction as a synthesis process. Specifically, there are two general factors in tension: human factors and artificial factors. The former, mostly informal, the latter, mostly formal. From the conflict, software emerges. Let’s remember that the synthesis solves the conflict between the parts by reconciling their commonalities, in order to form something new. It’s the task of the software designer to conciliate the best of both worlds. Software designers have to evaluate different trade-offs between human and artificial factors.

As a problem-solving activity, software construction is solution-oriented: the ultimate goal of software is to provide a solution to some specific problem. Such solution is evaluated by means of a model of the solution domain. But before arriving to such solution domain model, we have to form the problem domain model. The problem domain model captures the aspects of reality that are relevant to the problem. Later, designers look for a solution, as told, by trial and error. Additionally, the resources available to the designer, including knowledge, are limited. More often than not, empiricism and experience lead the search for a solution. This has an important consequence: software construction is a non-optimal process; we rarely arrive to the best solution (and which is the best solution?).

On its side, knowledge acquisition is other interesting process. During the entire cycle of development, designers have access to an incomplete knowledge. Gradually, designers learn those concepts pertinent to the problem domain model. And, when we are building the problem domain model, it often occurs that the client perspective of the problem changes, and we have to adjust to the new requirements. Interestingly enough, knowledge acquisition is a nonlinear process. Sometimes, a new piece of information may invalidate all our designs, and we must be prepared to start over.

Continue reading “Software Design, Trials and Errors”