Welcome, Eli writes here.
See also Imagery and his other projects.

Portfolio

19 posts under this tag.

Star
Gmail Matrix 2
0
0
6
Aug
11

I don’t know exactly when or how the thought came into my mind but this morning the epiphany was there: wouldn’t it be cool to see Gmail’s half MB Javascript source1 a la matrix code viewIY? Indeed it would, and so for the next half hour I became a man posessed. It was amazingly easy (“ya sabiendo es facil”) to hack it up in JS and it makes for an interesting screensaver.




When I finished I realized it would be really easy to make my makeshift Matrix code generic and so here’s a quick stab at it. Type whatever text you want matrixified and a new window will (hopefully) popup with it. (Though be warned, it’s pretty rough, unpolished code and it’ll surely be too slow if you don’t have a fast computer.) Anyway, enjoy.



Next time you see Gmail,


think,


fn1. Which I downloaded thanks to Firefox’s wonderful Webdeveloper extension.

Como Imprimir a Doble Cara 2
0
0
6
Aug
11

Por diversos avatares del destino tuve hoy que imprimir incontables resmasRAE a doble cara y me sorprendio mucho que fuera una extraña odisea. Desesperado acudi a la red y lo unico que encontre digno de destacarse es este articulo de HP España confuso, rollero, y comercialoide (“Impresión a doble cara en Microsoft Word 2000, por los árboles, por su espalda, por su dinero”). Para colmo, ni un pinche diagramilla perdido. Despues de muchas iteraciones y mucha hoja perdida, le haye el feeling a esto, asi que aqui va, por todo aquel que venga:

Star
The Secret Lives of Numbers 2
0
0
6
Aug
04

Overview and Detail. The pair keeps coming up whenever you start pondering on interfaces, interface patterns, interface & information design, and well (why won’t be grand?) space, time,ELZR and thought itself. Achieving both—the ancient dream of simultaneity—is one of the deep purposes of any media creator, from writersEE to interface designers, and though it may be a humble example, The Secret Lives of Numbers—an interface to the results of a crazy study of the search-engine popularity of every integer between 0 and 1 million1—is a superb one.

The resulting information exhibits an extraordinary variety of patterns which reflect and refract our culture, our minds, and our bodies.. We surmise that our dataset is a numeric snapshot of the collective consciousness. Herein we return our analyses to the public in the form of an interactive visualization, whose aim is to provoke awareness of one’s own numeric manifestations.

Click to view a 3.15-Mb PDF critique of the interface (right-click and select Save Link As to download)
The denizens of the number line are not the mere automatons or corporate tools we have made them out to be: each has a personality, talents, communities, and sometimes a little je ne sais quois. They reflect us. This unusual reflection is the focus of this project.

As for the credits:

Concept, direction, interface design & programming: Golan Levin
Interface and information design: Martin Wattenberg
Database & CGI programming (2002): Jonathan Feinberg
CGI programming (1997): David Becker
Statistics consulting: David Elashoff
Essay and research: Shelly Wynecoop

If you believe in geniuses you’re in for a treat checking out the three URLs above—each of them’s one. Martin Watenberg in particular, has some of the most intriguing information visualizations I’ve ever seen.

1 Though owing to limitations of internet bandwidth only data for the first 100,000 are provided online.

Linguistic vitality on the web 2
0
0
6
Aug
02

As I said on a previous post, I believe Spanish, my mother tongue, has a low status on the web. And as I laid there pondering the subjectivity of my assessment, I remembered Mihaly CsikszentmihalyiWP’s fascinating account of how (and why) he became a scientist (it appears in John Brockman’s excellent Curious MindsAM, a compilation of similar tales by top-notch scientists and a sure recommendation to anyone).

The particular anecdote that came to mind was when he and a friend quarrelled over whose neigborhood was the more communist (the matter was relevant because he was living in Italy and the country was then in political turmoil). Their brilliant analytic idea to try to settle the question was to count out the circulation of the left- and right-leaning newspapers in each of their neighborhoods’s newsstands. This of course sent them into all sorts of interesting statistical considerations, but it put them on the path of finding the subtle answers to their question, and it was certainly better than “the hocus-pocus most adults rely on to bolster their arguments”.

So I want to try to do something similar with my question—what is the linguistic vitality in the web of 14 languages?—and this post will be the beginning of my investigation. For reasons of practicality and personal bias, the 14 languages I’m going to settle to are: EnglishWP, GermanWP, FrenchWP, PolishWP, JapaneseWP, DutchWP, ItalianWP, SwedishWP, PortugueseWP, SpanishWP, FarsiWP, ChineseWP, EsperantoWP, and HindiWP.

Design Pattern: Don't enclose 2
0
0
6
Jul
27

Today, just after finishing a slight redesign of my blog (inspired by caterina’s) and comparing it with other redesigns of other websites I’ve made along the past 2 years, I became aware of a small pattern to my madness: don’t enclose unless you must.

Before
The old design of my blog
Now
The new design of my blog

I’m not sure why—tenderfootness I guess—but my first website designs have always been unnecessarily enclosed, too many fences, too many cages. Only after much pruning and shuffling do I realize that much of it is extraneous, just clutter.

Much Much Before
Really old Eemadge design
Much Before
Really old eemadges design

Before
eemadges sep.21.2005
Now
Current eemadges design

Most of the time you don’t need that box around that text, you almost certainly don’t need that big box to enclose your entire website, and you probably don’t need so many borders. Try erasing them and watch your website become more “flowing”, more open.

(For an example of what not to do, check my local newspaper’s hideous, caged redesign.)

An easy way to create your own file format 2
0
0
6
Jun
20

I stumbled upon the .CBR extension some days ago and it was interesting to read its description, via filext:

This is a renamed .RAR file and can be decompressed with any .RAR file utility. The CDisplay program displays the comic book images so it is useful to use for this particular .RAR archive type.

Think about it, to create the ultimate comic-book format you simply wrap together some images (GIFs, JPGs, PNGs) and some (optional) introductory text (a .NFO or a .TXT) in a .RAR file and rename it. That’s it. A batch of pictures has been converted into a black-box, into a comic book. We’ve reified a comic out of thin pixels. That’s all CDisplay needs to let you seamlessly experience those images as a comic, but you could get as baroque in your specification of a file format as you like. For, say, a hypothetical .BIO file-extension used to store people’s biographies, you would specify a .RAR wrap of that person photo (that must be named, say, “mypic”, and must be a JPG), one photo as a kid (named “kidpic”), one photo of each parent (“mompic and “dadpic”), a curriculum vitae (“vitae”, must be a .TXT file),... you get the picture. Half of the magic, of course, resides in the reading-program, but that’s the easy part.

Here are two extra, contradictory advantages of creating file-formats thru .RAR wrapping:

the tying is loose
The elementary constituents are still available to anyone with a .RAR decompressing utility.
the tying is tight
You’re using a compression format after all, so you are probably saving at least a couple of bytes (though the time spent decompressing things on the fly could easily turn this into a disadvantage).

What struck me about this file-extension thing was how such a seemingly low-level nitty-gritty construct as a file-extension can be blackboxed mostly thru the high-level path of drag-and-dropping icons to WinRar.

12/60 Clock 2
0
0
6
Jun
14

I just finished re-installing Google Desktop for the fifth time (I always find it annoying after a while) and was surprised with this new gadgets thing. It may not be terribly useful, granted, but cool it is (specially with the Shift hotkey). Right now I have a virtual flower, a calculator, and a clock, 12/60, that just might be the coolest time interface ever. It needs no explanation, just install it and stare at it—the epiphany will hit you in bare seconds.

Oh, this is in fact so pretty that it has got me excited once more with my color clock of yore. Maybe I’ll port it to Javascript this week, you know, just as some Javascript back-to-shape calisthenics.

Star
Imagery, debutante 2
0
0
6
Jun
10

And where does the newborn go from here?

The net is vast and infinite.

Ghost in the Shell

2,151 persons visited Imagery 2 days ago, 6,790 visited yesterday, 3,655 have visited it today (as of this very moment). It made it to the del.icio.us homepage. It made it to LifeHacker. Blogs in 22 languages have talked about it.

It’s been overwhelming. I’m compulsively refreshing my stat counter every 20 seconds. I feel so tiny, so standalone everytime it hits me that as I go to the bathroom 30 more people, somewhere in the world, have tried the website. But that the world is a weird, humongous place you knew, what has baffled me as I obsessively researched where everyone was coming from was what a surreal, boundless nonplace the web is. These last two days have shown me a dazzling array of bizarre organisms—mashups, filters, feeds, composites, parasites, symbiots, recomposites, bots, leeches, scams, automators—that thrive on the web, underneath the hood.

Oh, and one more thing: the sheer, brutal, speed of it all. It took two days and one email to Emily Chang (Thanks Sean!) to go from a pretty much forgotten website to this.

The present’s baffling.

As an exercise in vanity, here’s some compulsively gathered, up-to-the-minute updated, biased media coverage of the website (mostly blogs):

An each function for JS 2
0
0
6
Feb
18

Since Javascript 1.2 and later there has been a cool and very powerful literal syntax for functions:

var sum = function(x, y) {return x+y}

A couple of weeks ago I found an interesting use of this syntax. Missing Ruby’s wonderful each function, I decided to implement something similar in JS, and, after some experimentation, ended up with this:

function each(a, f) { for(var i=0, l=a.length; i<l; i++) f(a[i]) };

The function syntax comes in handy when you use this each:

each([1, 2, 3, 4, 5], function(e) { alert(e) });

It may not be as satisfying as Ruby’s each, but it’s quite useful.