loading

Archive for January, 2005

marcos weskamp

flickr graph

flickr graph
Flickr Graph is an application that visualizes the social relationships inside flickr.com. It makes use of the classic attraction-repulsion algorithm for graphs. Start exploring your contacts by entering your flickr username or the email address you used to register there.

marumushi.com works

flickr graph

flickr graph
Flickr Graph is an application that visualizes the social relationships inside flickr.com. It makes use of the classic attraction-repulsion algorithm for graphs. Start exploring your contacts by entering your flickr username or the email address you used to register there.

marcos weskamp

flickr graph

flickr graph
Flickr Graph is an application that visualizes the social relationships inside flickr.com. It makes use of the classic attraction-repulsion algorithm for graphs. Start exploring your contacts by entering your flickr username or the email address you used to register there.

toxi

Processing.org RSS feeds

as i’ve been shifting my focus to more invisible things of lately, i hacked together some HTML scrapers in PHP to provide 2 RSS feeds related with the processing.org mothership.





feed 1: http://toxi.co.uk/feeds/p5recent.php contains the 10 most recent posts to the Processing community forum


feed 2: http://toxi.co.uk/feeds/p5exhibits.php contains the list of most recent user submitted pieces in the exhibition





source code of both is available too:



http://toxi.co.uk/feeds/p5recent.php.txt



http://toxi.co.uk/feeds/p5exhibits.php.txt


Hola, mundo

5 razones al azar para usar el SEPY actionscript editor

No se qué editor usas para tu actionscript. Tampoco he probado muchos, pero uso el SEPY y me encanta. Ahí van algunas razones:

  1. Explorador de funciones:
  2. captura de pantalla del explorador de funciones del SEPY

    Cuando tengo abierto un archivo .as tengo todas las funciones que contiene a un click de ratón, evitándome el scroll en ficheros largos.

  3. Lector de XML
  4. captura de pantalla del lector de xml del SEPY

    Si tengo que trabajar con archivos XML, basta con abrirlos en el lector, seleccionar el nodo al que quiero referirme en el código y copiar su referencia en flamante actionscript.

  5. Codefolding:
  6. captura de pantalla del code folding en el SEPY

    La habilidad de plegar y desplegar funciones me permite centrarme en la que estoy programando en un momento concreto, evitándome el ruido visual que produce la sopa de variables que suelo tener en el código.

  7. Busqueda en multiples ficheros:
  8. captura de pantalla de la búsqueda múltiple en el SEPY

    A veces perdemos la pista de alguna función o variable y puede ser muy tedioso ir buscándola fichero por fichero. Con la búsqueda múltiple del SEPY tenemos todas sus ocurrencias en los ficheros que seleccionemos.

  9. Lanzar el swf desde el SEPY:
  10. …Y una de mis favoritas. No tenemos que irnos al flash para publicar el swf cada vez que hacemos un cambio en el código. Si lo tenemos abierto en el fondo, con sólo hacer Ctrl + Enter desde el propio SEPY se publica la película

CGWS Blog

Acoustic Cartography


Here an interesting experiment about the visualization of the sound interaction with images from the University of Applied Sciences of Wuerzburg.

Hola, mundo

Pasar funcion como parametro

El otro día estaba intentando hacer una función en actionscript que me llamara a otra función después de una pausa aleatoria. Dado que pensaba utilizarla para varias cosas distintas dentro del mismo programa, la llamada a la segunda función debía ser un parámetro, al estilo de setInterval (no utilicé éste por diversas razones). La llamada a la función sería tal que así:


pausaAleatoria(funcionLlamada, valorMin, valorMax);

Entonces me topé con un problema que me ha surgido muchas veces y hasta ahora no había podido resolver: ¿Cómo ejecuto la función cuyo nombre he pasado como parámetro dentro de la otra? Dado que es lo que hace precisamente setInterval, resulta lógico que sea posible hacerlo…

La manera más obvia de hacerlo me parecía pasarle el nombre de la función como string y hacer varios tipos de eval (eval("funcionLlamada" + ()), eval ("funcionLlamada()") así que probé muchas cosas en esta línea, pero nada funcionaba. Varias búsquedas por la web también resultaron infructuosas.

Ahora que por fin me han dado la solución (gracias, natalia) resulta, como casi todo una vez q lo sabes, ridículamente sencillo. No hay que hacer ningún eval ni prestidigitación de ningún tipo. Un ejemplo:


// esta es una función cualquiera
function a () {
  trace ("soy la funcion a");
}
// y desde otra función vamos a llamar a la primera
function b (funcionLlamada) {
  trace ("soy la funcion b");
  funcionLlamada();
}
// y lo ejecutamos tal que así.
b(a);
// en la ventana de trace aparecerá
// soy la funcion b
// soy la funcion a

La clave (que yo no alcanzaba a ver) está en que los paréntesis que ponemos después de una función son un operador y no un simbolo arbitrario. Igual que el signo + entre dos valores significa “suma esto”, el operador () significa “ejecuta esto”

Quizás este problema solo lo haya tenido yo por mi idiosincrática manera de programar, pero aquí lo dejo como referencia para mi y todo el que lo quiera. Seguro que alguna vez a alguien le sirve.

Nota: El tema de pasarle parámetros es igual de facil si conocemos a priori el número de parámetros que queremos pasarle. Basta con ponerlos dentro del operador (); pero dado que lo que quería era una función genérica, esto no me sirve . Si consigo (o alguien me cuenta) la solución para pasarle un número indeterminado de parámetros, también la pongo por aquí, no sea que se me vuelva a olvidar. Buenas tardes.

CGWS Blog

Smart Transitions


I've just published for Setpixel an other article about some experiments I made concerning smart pixel transitions.

Christian Giordano

Smart Transitions

How could it be possible to make the computer understand which points to select?” In a very advanced level, thanks to computer-vision, it is for sure possible, using a sort of shape recognition, finding common shapes between the two images….

marcos weskamp

mediumgrid 09

mediumgrid 09

marumushi.com works

mediumgrid 09

mediumgrid 09

marcos weskamp

mediumgrid 09

marcos weskamp

mediumgrid 07

mediumgrid 07

marumushi.com works

mediumgrid 07

mediumgrid 07