Thursday, March 31, 2011

Radiohead - House of cards.



If you're a fan of Radiohead, you're probably more than familiar with this video and with this song (if you're not a fan of Radiohead, shame on you).

I think one of the most amazing things about this video is no video cameras were used at all whatsoever in order to put this video together, the whole thing however was produced in Velodyne and Geometric Informatics, as well as being processed (see what I did there) in Processing, an open source java programme which can be used to produce, well, just about anything...

The data for the video was carried within a stack of csv files which are all available here (caution: probably not safe for people with lousy connections, 300-400 mb spread out over 2 zip files) so you can have a go at altering the data yourself and behold the results for yourself...

You can also view the actual 3D visualisation at this link here and you can play with it as much as your mouse will allow you to.

Nothing short of absolutely astounding, as well as a sheer sign that Radiohead both musically and from a visual point of view are lightyears ahead of the competition.

Stunning.

For more information, visit this link...

http://createdigitalmotion.com/2008/07/radiohead-makes-house-of-cards-video-with-3d-plotting-processing-gives-you-the-data/

Sunday, March 27, 2011

How to use Gapminder.



Hans Rosling leads through a demonstration of how to work with Gapminder software.

Very easy and informative explanation as well as a great piece of software which really does spell the death-knell for the whole concept of boring data.

As the next few days go on, I will be uploading a video of my own explorations of said software.

Sunday, March 20, 2011



Hans Rosling leads through a demonstration of how to work with Gapminder software.

Very easy and informative explanation as well as a great piece of software which really does spell the death-knell for the whole concept of boring data.

As the next few days go on, I will be uploading a video of my own explorations of said software.

Monday, March 14, 2011

Processing data:


So if you were paying attention to my last post, I had discussed "scraping" or else, the retrieval of data from other sources and how it is possible to use the data and manipulate it in other programmes, such as Flash and Processing to name but two.

There's a wide variety of ways of doing this, quite some time ago we had engaged in a project that allowed the user to integrate content that was ripped from an xml file and use the data in Actionscript.

Another manner of doing this is by using the program Processing, which allows the user to graphically represent data from a dynamic source, for instance, the last item that I had made a spreadsheet out of was the "largest population per country" statistic and made it look something like this...


My document is public on google documents, so just replace my email address and password with your own and use the same key.

As a matter of fact that same system can be used for any document you have, just replace the key, with the key thats held within the url of your document in question and change the variables to fit your own document.

The code


PFont fontA;
SimpleSpreadsheetManager sm;

void setup() {
size(800,600);
background(156);

SimpleSpreadsheetManager sm = new SimpleSpreadsheetManager();
sm.init("myProjectName","starless.skies.burn.to.ash@gmail.com", "retard");
sm.fetchSheetByKey("0AjdwwVu3M62OdFR0UHdlc183SjNES3l4RzRXQXhGYnc", 0);


for (int i=0; i < sm.currentTotalRows-1; i++) {
String valone = sm.getCellValue(1,i);
String valtwo = sm.getCellValue(2, i);
int numberz = int(valtwo);

int scrattocks = (numberz/5000000);

println(valone + " : " + numberz);

String party = valtwo;



fontA = loadFont("ACaslonPro-BoldItalic-48.vlw");
textFont(fontA, 32);
noLoop();

if (valone.equals("China")){
color inside = color(127, 0, 0, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);
text("China", 100, 150);
};

if (valone.equals("India")){
color inside = color(48, 139, 206, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);
text("India", 200, 150);
};
if (valone.equals("USA")){
color inside = color(48, 39, 26, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);
text("USA", 300, 150);
};
if (valone.equals("Indonesia")){
color inside = color(127, 205, 155, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);
text("Indonesia", 300, 150);
};
if (valone.equals("Brazil")){
color inside = color(25, 75, 125, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);

};

if (valone.equals("Pakistan")){
color inside = color(55, 105, 155, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);

};

if (valone.equals("Bangladesh")){
color inside = color(14, 165, 212, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);

};

if (valone.equals("Nigeria")){
color inside = color(123, 175, 10, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);

};

if (valone.equals("Russia")){
color inside = color(0, 10, 100, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);

};

if (valone.equals("Japan")){
color inside = color(23, 133, 245, 127);
fill(inside);
println("seems to be ok " + String.valueOf(valone) + i);
ellipse(random (20, width-20),random (0, height), scrattocks, scrattocks);

};

};



};




Monday, March 7, 2011

Scraping data from Google Documents.

There are many different methods of retrieving information from online graphs or statistics based sites, some of them are simple as copying and pasting into a excel document or indeed on to any of the free online google document websites.

There is however another way of doing it, which allows a far dynamic approach to retrieving information from these sources.

For instance, open up google documents:

Set yourself up a new spreadsheet:



Find yourself a statistics based website, either have a look around Wikipedia, for example, here's one I did earlier... http://en.wikipedia.org/wiki/World_population#Largest_populations_by_country


Type: =ImportHtml("http://en.wikipedia.org/wiki/World_population", "table", 3) into the Formula area and you should recieve all the data in the spreadsheet window.

From there you can export the data as a csv file or as a text file or you can import the data into a program of the ilk of processing.

I shall discuss that method in my next post.





p.s. In order to scrape data into a google document, the formula is as follows =ImportHtml("URL", "Table", number)