Archive for the 'web' Category

Delicious, 4397 bookmarks later

Sunday, March 8th, 2015

I posted my first bookmark to delicious on 7/13/06, back when it was called In spite of having changed owner a couple of times, and survived a couple of not very fortunate redesigns, delicious might be the online service that I have most consistently used to aggregate annotated content from the web. Gone are the days when I interacted with it socially; most of the users in my network haven’t used it in a very long time, but I still find pleasure using it to collect interesting links and track my browsing preferences by exploring my data. Unlike other services from that era, delicious has kept available a simple API without forcing any horrendous authentication protocols on their users. This has allowed me to keep my delicious tags page alive —a simple sketch where I render all my tags using size and color to visualize frequency of usage. At this point, it’s pretty clear what my favorite webpages and websites are about.


I wonder if any knowledge can be inferred from the tag diversity expressed by an active user in a given amount of time. Does it reflect something about the user’s vocabulary as well as the diversity of their interests? Is there something in common about a group of users that grow their collections of tags and bookmarks at similar rates even if the bookmarks and tags have nothing in common? Can this behavior be evidence of a personal and/or philosophical disposition from users towards knowledge? In section 2.2.2 of Mr. Palomar (The cheese museum), Italo Calvino conjectures that a proclivity towards or against sample diversity will influence —and even shape— the nature of the knowledge acquired from a given experience, in his case, the quest for truth in the appreciation of a particular cheese.

If you have been a delicious user, you can visit my delicious tags page and pass along your username as a parameter. My page will return a nicely crafted version of your delicious data, perhaps helping you learn something you didn’t know about yourself. Here are some examples:,,,,,,,,,,

PaperJS vs TwoJS

Thursday, August 14th, 2014

Inspired by a morning discussion with Tom White aka dribnet about javascript and 2D vector graphics, I came home tonight determined to find out how far could I get in ten minutes using PaperJS on the one hand, and TwoJS on the other hand, with the sole constraint that somewhere along the way I had to make use of SVG.

For those who don’t know, PaperJS is the web-based heir of Scriptographer, a Javascript plugin for Adobe Illustrator that lived up until CS5. As far as I know, PaperJS is far more powerful than it’s predecesor, and has been designed keeping in mind the interactive, object-oriented nature of the contemporary web browser.

Similarly, TwoJS is a relatively new web-based 2D drawing library inspired by the WebGL javascript library Threejs.

After ten minutes of PaperJS I produced a simple particle raster script that uses an image to draw a collection of SVG shapes over a grid, and I added some color manipulation and particle scattering functionality to produce images like the ones featured below, using pixel data from grayscale photographs of Brigitte Bardot and William Burroughs.

TwoJS took me in a completely different direction. All I did was write a script that pulled SVG code from the loaded page source, and created animations from it. Here are two examples: I<3VR and rolling W.



IML400 Spring 2014

Monday, May 12th, 2014

I just finished teaching IML400 in USC for the third time. Over the winter break I had a chance to review my Syllabus and improve it, based on a few new insights I developed at the time. The course title itself is “Creative Coding for the Web”. When I was invited to teach it I was given freedom to propose my own curriculum, so I started by deconstructing its name. The result couldn’t hit closer to home. To me, creativity, programming, and the web are three of the most important things a human of our time should care about, comic books and ice-cream being the other two. They connect rational thinking with human imagination and communication in ways that have changed our world beyond our wildest dreams. My core goals have remained the same (to encourage a design-first culture supported by programming as a new kind of literacy, and the web as the mother of all media), but my approach to introduce them as a source of inspiration to students has become more focused. Here is some of what I’ve learned:

  • Design is a lens with variable focal length. Learn design first, and you will learn to see.
  • When it comes to programming, sink or swim is the way to go.
  • When it comes to sink or swim, don’t forget to make it fun.
  • Fun is good short-term, but it burns-out fast. Long term requires a deeper kind of value.
  • Let yourself sink if you want to go deep.
  • Too much freedom is confusing. Too much direction is frustrating.
  • To be creative you need to create something. Ideas are nothing without a good execution.
  • The web is your key to the world. Own it. It will never stop changing, so you should never stop learning.
  • Has this happened to you?

    Wednesday, August 21st, 2013

    I recently rediscovered a video recording iPhone app called 8mm. Evidently, it makes your mobile video look like an old movie filmed with an eight millimeter camera.

    Every time I go for a walk I take my phone out to record locations, landscapes, moments, or anything else that calls my attention. Last Wednesday I was walking back to the office when I saw these two guys asking the mailman to take a picture of them using a picturesque Venice wall as a background. I walked right in the middle of their interaction and recorded them as I walked by. The mailman took off in my direction and the other two guys just walked away into Rose Ave.

    Then yesterday while browsing through my Tumblr dashboard I stumble upon the picture taken by the mailman in some Hip Hop blog I follow. The original post is here. The blog I follow and the original item were separated by a long list of intermediaries (more than 20).

    This is the first time I find myself experiencing a moment where the following two conditions are satisfied:

    1. This moment is recorded by me and by at least one stranger.
    2. The stranger’s recording of this moment finds it’s way to me through an online social network.

    This might already happen to a lot of people, and I am expecting it to happen a lot more frequently in the future. For now, I am just going to upload my movie somewhere and somehow connect it to that picture.


    Learning AngularJS

    Thursday, June 20th, 2013

    We just got a contract job at WemoLab to develop a mobile web app for a sports betting startup called Joust, and after a week or so of deliberations we decided to build the whole thing using an AngularJSNodeJSMongoDB combo, pure javascript from end to end.

    I have to say AngularJS hasn’t been exactly easy, but there have been several times where I have been surprised finding extremely simple ways to set up certain things, especially when binding event triggered method chains across completely separate scopes. It’s kind of great, even though all those directives are driving me crazy and the learning curve has been steep as hell.

    Programming languages are used to create functional worlds. In these worlds, new languages are created to create new worlds within the older ones. They are like stories within stories within stories, except in the case of software all these stories have a life of their own. It is natural to fantasize about a esperanto of programming, or a universal language that could be used to program anything. Today, this language is a dream, but at least in the web, javascript is as close as it gets to being the language of god, and AngularJS, together with NodeJS and a document/json based database solution like MongoDB, are a good reason why.

    Friday, May 31st, 2013

    I can’t remember the last time I officially hand crafted a website. To be precise, this is not even a website, it’s just a webpage; I plan to update the rest of the website over the next few weeks, but for now, I feel this is a great first step.

    Obviously, my first design goal here is to get visitors to download theBlu, but also to learn about it, to want it, and most importantly, to believe in it as a viable platform to communicate knowledge about biological systems. I think about this branch of digital media as the the simulation of life. And there is also the geographical aspect: mapping the environment where this life occurs. If they manage to simulate life well, computer networks will be the Petri Dish of the future.

    And it is also interesting to think about the Darwins of the future, combined perhaps with the Pasteurs of the future and others (of the future too, LoL). Because scale is a controllable variable, in the digital realm, looking into the microscopic drama that unfolds inside a Petri Dish can become a similar experience to sailing across the world’s oceans from Galapagos to Galapagos or whatever. Furthermore, the digital explorer is not limited to just observing and collecting samples, but he or she can control time or even manipulate or create life in a way that in the future will probably be possible in the physical world too, but the big difference is that in the physical world we learn to control nature, when in the digital world (or playground) we figure out how to create something like nature.

    I don’t want to be all over the place but who cares: so CSS and HTML and Javascript. To me, this combination is as relevant to us as Gutenberg’s printing press. Am I right?

    And on that note, looking back in history to the precursors of other media –Étienne Jules Marey and his relation to animation, for example– do you think stuff like theBlu will be faced by the same lens a few hundred years from now? Does it even make sense to think like this today?


    IML400 Spring 2013 Edition

    Thursday, January 24th, 2013

    I’m teaching IML400 at USC again this Spring. So fun. I am extremely grateful that my employers at Wemo Media are letting me do this. I am sure they are aware that letting me keep a teaching front will only benefit my involvement in the company.

    The semester kicked off in an interesting way with an event featuring the recent work of two thirds of my thesis advisors from the Media Lab. Reas and NickM presented their book 10 PRINT [babble] GOTO 10 and sustained a long and interesting discussion with a bunch of other digital humanists about the digital text and other [digital] things.

    Going back to the subject of my class, I have to say I was very happy with the results I got from the Fall 2012 edition. In this page you can find links to the class websites and their final projects. Some of them are fairly interesting in terms of concept and execution —like this one and this one— and over all I believe we reached my goal of helping them learn how to learn. I feel they got to a point where we could have continued with a next semester of serious design and interactive storytelling work. Perhaps in the future I will be able to teach a season two of creative web production, but I am actually not sure I am ready to push the boat into deeper waters yet, so I will remain teaching at an intro level for a while.

    I am excited to have a cool teacher assistant this semester —Adam— a USC PhD candidate who develops awesome games and recommended me a great intro to javascript book [eloquent javascript] that will help us a lot later in the semester.