Archive for June, 2005

Reich y Reas

Saturday, June 18th, 2005

Ayer, dando un paseo por internet (cosa que cada vez hago menos gracias a - por culpa de - Bloglines) me encontré con que Casey Reas (uno de los dos creadores de processing, ha puesto imágenes a la pieza Piano Phase del compositor minimalista Steve Reich. Apareció en un DVD que Ars electronica editó el año pasado, junto con otra “visualización” de “Les enfants terribles” del otro gran minimalista Philip Glass. Con tan estelares colaboraciones, seguro que salió algo interesante. Aún así, me encanta el tonito irónico de la primera frase del review de Neural.it (para leerla hay que hacer scroll un par de kilómetros):

Visualizing music seem to be one of the needs of the decade.

tags:No tags

Pasar funcion como parametro. 2: Multiples parametros.

Tuesday, June 7th, 2005

En una entrada anterior comentaba cómo pasar el nombre de una función a otra como parámetro. Sin embargo, no sabía cómo pasarle un número indeterminado de parámetros a la función llamada. Tras varios intentos fallidos, lo dejé en el tintero. Hoy, buscando otra cosa, he encontrado lo que me quedaba para solucionarlo en otro blog. Me explico:

Cada vez que llamamos una función, de forma predefinida se crea dentro de esta un array de nombre arguments, que almacena todos los parámetros pasados.


function a(param1, param2, param3) {
  trace(arguments);
}
a ("pepe", "juan", "jorge");
// la ventana de salida muestra : pepe, juan, jorge
// * ya lo se, qué parametros mas aburridos *

Dado que arguments es un array, podemos hacer todas las operaciones de esta clase con ella. Por ejemplo:


function a(param1, param2, param3) {
  trace(arguments.length);
}
a ("pepe", "juan", "jorge");
// la ventana de salida muestra : 3

La idea era pasar el array de parámetros de una funcion a la segunda, pero ahí me quedé. No había manera de concatenar los parámetros para pasarlos a la función de dentro. Pero… hoy me he encontrado con esto:

Using an array as a list of arguments

Tenía toda la pinta de ser lo que andaba buscando. Y en efecto:

Si utilizo el método function.apply() puedo pasar un array como lista de argumentos.


// array de parametros
d_arr = ["un", "dos"]

function c (arg1, arg2) {
	trace ( arg1+ ", "+arg2);
}
// uso el método function.apply() pasándole el nombre de la matriz
// como parámetro. *el otro parámetro no nos sirve aquí, por eso paso null.
c.apply(null, d_arr);

Juntando todo esto, pues, tenemos la solución definitiva para pasar cualquier función (tenga parámetros o no) como parámetro de otra:


// función genérica que llamará a cualquier función con cualquier número de parámetros
function a(func, args) {
	// eliminamos el primer elemento del array arguments.
	newArguments = arguments.splice(1, arguments.length);
	// y llamamos a la función desde dentro con function.apply()
	// pasándole el nuevo array arguments como parámetro.
	func.apply(null, newArguments);
}
// función cualquiera, sosa.
function b(arg1, arg2, arg3) {
	// trace de los de toda la vida con 3 parámetros
	trace("Vaya post "+arg1+" "+arg2+" "+arg3);
}
// llamada
a(b, "más", "mal", "explicado.");
// la ventana de salida mostrará "Vaya post más mal explicado"

Y eso es todo. Así no se me olvida.

tags:No tags

Cuatic. Interactividad que se toca.

Friday, June 3rd, 2005

Vista de la instalacion interactiva Media Invaders

Media Invaders es la instalación interactiva con la que Cuatic se han presentado en sociedad (el pasado fin de semana en El Sol). Consiste en una versión irónica del clásico Space Invaders donde el usuario mueve con su mano un puntero en vez de un joystick, defendiéndose de los ataques de los medios publicitarios tradicionales.

Según he podido saber, la parte técnica consta de Max, Java y Flash, además de un poco de electrónica casera. En su newsletter*:

La imagen del juego se emite sobre una pantalla de retroproyeccion de
2mt x 1.50mt. El usuario, de pie frente a la imagen, interactúa a
través de un cursor de metacrilato y metal que mueve con la mano. Cada
vez que el usuario pierde una vida, recibe en su mano una descarga
eléctrica de 40W durante unos milisegundos.

Lo interesante de la propuesta es la intención de aplicar este tipo de interactividad (habitualmente relegada a departamentos de investigación y festivales de arte electrónico) a proyectos reales de publicidad. Promete mucho.

* Envía un mail con el texto “APUNTAME” a news [arroba] cuatic [punto] com.

tags:No tags

Hi to processing blogs.

Wednesday, June 1st, 2005

Just a big shout to all processingblogs readers. This blog is in spanish, but feel free to ask for whatever you’re interested in and i’ll try to translate it.

¿Qué es esto?

Tom Carden (un hombre detrás de muchas cosas interesantes) ha tenido la gentileza de incluir este blog en Processing Blogs, un agregador de blogs relacionados directa o tangencialmente con este software.

Así que si te interesa el tema, date una vuelta por allí que seguro encuentras cosas muy interesantes.

tags:No tags