“Disrupt this Session”: Rebellion in Art Practices Today (today at CAA Los Angeles)

I’m participating a panel today at the College Art Association conference in Los Angeles. Sounds like it might be lively.

“Disrupt this Session”: Rebellion in Art Practices Today
Saturday, February 25, 9:30 AM–12:00 PM
Concourse Meeting Room 403B, Level 2, Los Angeles Convention Center
Chair: Wendy DesChene, Auburn University

WTF: It’s Only a Sticker
Catherine Tedford, St. Lawrence University

Strategies of Resistance in Contemporary Art
Selene Preciado, Museum of Latin American Art

Unauthorized Autonomy, Invisible Venue
Christian L. Frock, Invisible Venue

Monsantra: A New Agricultural Revolution
Jeff Schmuki, Plantbot Genetics

Your Art Here, Camp La Jolla Military Park, and Give Me My Data
Owen Mundy, Florida State University

“Google” one-week performance at Transmediale

I am tele-participating in a one-week online performance of Google queries at Transmediale 2012 in Berlin. The project, plainly titled, “Google,” is organized by Johannes P. Osterhoff and will run from Jan 30 to Feb 5, 2012. Each participant edits the search method for their browser search bar so that everything they type in this box, from the personal to the mundane, becomes instantly visible at google-performance.org.

The project (“manifesto” below) makes public what Facebook, Google, and any online search engine, crowdsourcing website, or social network already does by harvesting searches from users, and re-representing that data in a new context. While Google uses these queries to build and sell condensed user demographic data to advertisers, Osterhoff’s project asks, who actually owns your search data?

We shall do an one-week performance piece.

The piece is called “Google” and documents all searches we perform withthe search engine of the same name.

The performance shall take place during transmediale 2012 and shall start on Monday, January 30 and shall end on Sunday, February 5, 2012.

We shall not use undocumented ways to use the search engine Google during this time.

Each of our search queries shall create a web page that is indexed by this search engine and thus makes our searches publicly available as search results for everybody.

 

Art Meets Radical Openness + Give Me My Data: A Short History

I’ve just returned from Linz, Austria, where I attended the art and technology festival/conference/exhibition called Art Meets Radical Openness (LiWoLi 2011). It is put on and hosted by Ushi Reiter and others of servus.at, and Martin Kaltenbrunner (creator of Reactable) and others at the Kunst Universität Linz.

While I was here I met a lot of friendly and engaging people, and saw some great works, talks, and performances. I also gave a paper about Give Me My Data, titled, “The Self-Indulgence of Closed Systems.” The presentation was about my current research into historic and contemporary modes of surveillance, ensuing privacy issues, and examples of resistance to these modes of data gathering. It was part the Naked on Pluto lecture series, organized by the cheery Marloes de Valk.

I also conducted a 2-day workshop, “Freedom for Our Files: Creative Reuse of Personal Data,” where I shared information and examples on how to go about data scraping and spidering, reuse and visualization, and using the Facebook API for all of the same, for creative or experimental purposes. I’ve posted some of the code and content from FFOF already.

One important motivation for my attendance was to meet programmers who might be interested in working with me on the more technical aspects of upgrading Give Me My Data to the new Facebook Graph API and finding a way around undocumented data limits imposed by Facebook that my users continue encountering.

Give Me My Data: A Short History

I thought I would give a little bit of a background here, about Give Me My Data, for those interested in its development and other related projects.

In 2008 I finished my Masters of Fine Arts at the University of California, San Diego with a thesis project titled Camp La Jolla Military Park. It was a fictional national park which documented the history and ongoing collaboration between the university with the defense industry. I created a custom content management system (PHP, MySQL, Google Maps API) and formed a group of collaborators to enter data in the system documenting relationships. The project exists now as a series of brochures and website which mimics the national park website and describes the research we conducted. I also gave tours of the “park” (campus) where technology was being developed for defense contractors and other sites with related interest.

The following year, while working during my first year as an assistant professor at Florida State University, I described and began developing aspects of a project I temporarily titled Automata. The project, which was a finalist in 2009 for the Rhizome Commission, proposed to use technology to visualize relationships in which there might exist ethical contradictions, but are difficult to discern for all the actors involved. An example of an ethical contradiction might be collaborations between the defense industry and educational institutions which encourage students to develop technology used to harm other human beings. I proposed to do this through various automated web spiders, semantic analysis, and finally visualizations and other interfaces to the data.

While working on Automata, which was named to reference the automation of the documentation Camp La Jolla performed, I was invited to MIT by Chris Csikszentmihályi, Research Scientist at the MediaLab and Director of Center for Future Civic Media at MIT, to discuss the project with members of his Center for Future Civic Media.

Later in 2009, while planning how I might visualize the network data from Automata, rather than creating the content from scratch I decided to use my Facebook contacts as a test subject. Since there was no application which exported data in various reusable formats, especially one which arranged the contacts into a format which described relationships, I created my own.

This application, live since October 2009, would soon became very popular in its own right. In late April 2010, Facebook made a change to the way they allowed users to present information about themselves. Previously entered user data was suddenly aggregated without permission in order to encourage strangers with common interests to form groups. This slight change in policy caused an uproar within the Facebook community because it attempted to force people together without regard to individual privacy.

Many Facebook users were originally attracted to the site because of its levels of privacy and therefore found this change to be manipulative and deeply disturbing. Further, users were no longer able to access or change this information because it had been incorporated into a larger structure. In their article, Facebook App Brings Back Data, May 1, 2010, The New York Times documented how my application allowed users to regain access to this and other information hidden behind the Facebook interface.

At this time, Facebook (still) did not feature a method to export your data for any purpose. In November 2010, likely influenced by Give Me My Data, Facebook finally added a way for users to export their profile data as a series of HTML pages. I believe their motivation originates in part with my application, and points to the effectiveness of such forms of public art / creative resistance to reach out beyond the art world and contribute to society in lasting ways.

What Now?

So in conclusion, I created Give Me My Data while working on projects related in concept and execution. While I have paused my work on Automata you can see some sitemap visualizations from the project in a series called Firing Blind.

As for the status of Give Me My Data, I developed it using the Facebook REST API, which will be deprecated soon. It uses both REST and FQL (Facebook Query Language) calls to help users access a variety of types and formats of their data. I’m working now to put the project on Github, thereby making the code open source, and also to invite others to help to upgrade the data retrieval method to the Facebook Graph API, and to improve existing code that reformats the data from JSON to XML, CSV, GraphML, Dot, and other popular data formats. Now that I have a handful of business cards and new acquaintances I’m looking forward to moving forward. Please get in touch if you are interested in contributing.

Freedom for Our Files: Code and Slides

A two-day workshop, with both technical hands-on and idea-driven components. Learn to scrape data and reuse public and private information by writing custom code and using the Facebook API. Additionally, we’ll converse and conceptualize ideas to reclaim our data literally and also imagine what is possible with our data once it is ours!

Here are the slides and some of the code samples from the Freedom for Our Files (FFOF) workshop I just did in Linz at Art Meets Radical Openness (LiWoLi 2011).

The first one is a basic scraping demo that uses “find-replace” parsing to change specific words (I’m including examples below the code)

<?php

/*	Basic scraping demo with "find-replace" parsing
 *	Owen Mundy Copyright 2011 GNU/GPL */

$url = "http://www.bbc.co.uk/news/";	// 0. url to start with

$contents = file_get_contents($url);	// 1. get contents of page in a string

					// 2. search and replace contents
$contents = str_replace(		// str_replace(search, replace, string)
			"News",					
			"<b style='background:yellow; color:#000; padding:2px'>LIES</b>",
			$contents);

print $contents;			// 3. print result

?>

Basic scraping demo with “foreach” parsing

<?php

/*	Basic scraping demo with "foreach" parsing
 *	Owen Mundy Copyright 2011 GNU/GPL */
 
$url = "http://www.bbc.co.uk/news/";	// 0. url to start with

$lines = file($url);			// 1. get contents of url in an array

foreach ($lines as $line_num => $line) 	// 2. loop through each line in page
{		
					// 3. if opening string is found
	if(strpos($line, '<h2 class="top-story-header ">')) 	
	{
		$get_content = true;	// 4. we can start getting content
	}
	
	if($get_content == true)
	{
		$data .= $line . "\n";	// 5. then store content until closing string appears
	}

	if(strpos($line, "</h2>")) 	// 6. if closing HTML element found
	{
		$get_content = false;	// 7. stop getting content
	}
}

print $data;				// 8. print result

?>

Basic scraping demo with “regex” parsing

<?php

/*	Basic scraping demo with "regex" parsing
 *	Owen Mundy Copyright 2011 GNU/GPL */
 
$url = "http://www.bbc.co.uk/news/";		// 0. url to start with

$contents = file_get_contents($url);		// 1. get contents of url in a string
											
						// 2. match title
preg_match('/<title>(.*)<\/title>/i', $contents, $title);

print $title[1];				// 3. print result

?>

Basic scraping demo with “foreach” and “regex” parsing

<?php

/*	Basic scraping demo with "foreach" and "regex" parsing
 *	Owen Mundy Copyright 2011 GNU/GPL */

// url to start
$url = "http://www.bbc.co.uk/news/";

// get contents of url in an array
$lines = file($url);

// look for the string
foreach ($lines as $line_num => $line) 
{	
	// find opening string
	if(strpos($line, '<h2 class="top-story-header ">')) 
	{
		$get_content = true;
	}
	
	// if opening string is found 
	// then print content until closing string appears
	if($get_content == true) 
	{
		$data .= $line . "\n";
	}

	// closing string
	if(strpos($line, "</h2>")) 
	{
		$get_content = false;
	}
}

// use regular expressions to extract only what we need...

// png, jpg, or gif inside a src="..." or src='...' 
$pattern = "/src=[\"']?([^\"']?.*(png|jpg|gif))[\"']?/i";
preg_match_all($pattern, $data, $images);

// text from link
$pattern = "/(<a.*>)(\w.*)(<.*>)/ismU";
preg_match_all($pattern, $data, $text);

// link
$pattern = "/(href=[\"'])(.*?)([\"'])/i";
preg_match_all($pattern, $data, $link);

/* 
// test if you like
print "<pre>";
print_r($images);
print_r($text);
print_r($link);
print "</pre>";
*/

?>

<html>
<head>
<style> 
body { margin:0; } 
.textblock { position:absolute; top:600px; left:0px; }
span { font:5.0em/1.0em Arial, Helvetica, sans-serif; line-height:normal; 
background:url(trans.png); color:#fff; font-weight:bold; padding:5px } 
a { text-decoration:none; color:#900 }
</style>
</head>
<body>
<img src="<?php print $images[1][0] ?>" height="100%"> </div>
<div class="textblock"><span><a href="<?php print "http://www.bbc.co.uk".$link[2][0] ?>"><?php print $text[2][0] ?></a></span><br>
</div>
</body>
</html>

And the example, which presents the same information in a new way…

Advanced scraping demo with “regex” parsing. Retrieves current weather in any city and colors the background accordingly. The math below for normalization could use some work.

<?php

/*	Advanced scraping demo with "regex" parsing. Retrieves current 
 * 	weather in any city and colors the background accordingly. 
 *	The math below for normalization could use some work.
 *	Owen Mundy Copyright 2011 GNU/GPL */

?>

<html>
<head>
<style> 
body { margin:20; font:1.0em/1.4em Arial, Helvetica, sans-serif; } 
.text { font:10.0em/1.0em Arial, Helvetica, sans-serif; color:#000; font-weight:bold; } 
.navlist { list-style:none; margin:0; position:absolute; top:20px; left:200px }
.navlist li { float:left; margin-right:10px; }
</style>
</head>

<body onLoad="document.f.q.focus();">

<form method="GET" action="<?php print $_SERVER['PHP_SELF']; ?>" name="f">

	<input type="text" name="q" value="<?php print $_GET['q'] ?>" />
	<input type="submit" />

</form>

<ul class="navlist">
	<li><a href="?q=anchorage+alaska">anchorage</a></li>
	<li><a href="?q=toronto+canada">toronto</a></li>
	<li><a href="?q=new+york+ny">nyc</a></li>
	<li><a href="?q=london+uk">london</a></li>
	<li><a href="?q=houston+texas">houston</a></li>
	<li><a href="?q=linz+austria">linz</a></li>
	<li><a href="?q=rome+italy">rome</a></li>
	<li><a href="?q=cairo+egypt">cairo</a></li>
	<li><a href="?q=new+delhi+india">new delhi</a></li>
	<li><a href="?q=mars">mars</a></li>
</ul>

<?php

// make sure the form has been sent
if (isset($_GET['q']))
{
	// get contents of url in an array
	if ($str = file_get_contents('http://www.google.com/search?q=weather+in+'
						. str_replace(" ","+",$_GET['q'])))
	{
		
		// use regular expressions to extract only what we need...
		
		// 1, 2, or 3 digits followed by any version of the degree symbol 
		$pattern = "/[0-9]{1,3}[º°]C/";
		// match the pattern with a C or with an F
		if (preg_match_all($pattern, $str, $data) > 0)
		{
			$scale = "C";
		}
		else
		{
			$pattern = "/[0-9]{1,3}[º°]F/";
			if (preg_match_all($pattern, $str, $data) > 0)
			{
				$scale = "F";
			}
		}
		
		// remove html
		$temp_str = strip_tags($data[0][0]);
		// remove everything except numbers and points
		$temp = ereg_replace("[^0-9..]", "", $temp_str);
		
		if ($temp)
		{
			
			// what is the scale?
			if ($scale == "C"){
				// convert ºC to ºF
				$tempc = $temp;
				$tempf = ($temp*1.8)+32;
			}
			else if ($scale == "F")
			{
				// convert ºF to ºC
				$tempc = ($temp-32)/1.8;
				$tempf = $temp;
			}
			// normalize the number
			$color = round($tempf/140,1)*10;
			// cool -> warm
			// scale -20 to: 120
			$color_scale = array(
					'0,  0,255',
					'0,128,255',
					'0,255,255',
					'0,255,128',
					'0,255,0',
					'128,255,0',
					'255,255,0',
					'255,128,0',
					'255,  0,0'
					);	
		
?>

<style> body { background:rgb(<?php print $color_scale[$color] ?>) }</style>
<div class="text"><?php print round($tempc,1) ."&deg;C " ?></div>
<?php print round($tempf,1) ?>&deg;F

<?php
		
		}
		else 
		{
			print "city not found";	
		}
	}
}
?>

</body>
</html>




For an xpath tutorial check this page.

For the next part of the workshop we used Give Me My Data to export our information from Facebook in order to revisualize it with Nodebox 1.0, a Python IDE similar to Processing.org. Here’s an example:

Update: Some user images from the workshop. Thanks all who joined!

Mutual friends (using Give Me My Data and Graphviz) by Rob Canning

identi.ca network output (starting from my username (claude) with depth 5, rendered to svg with ‘sfdp’ from graphviz) by Claude Heiland-Allen

Freedom for Our Files: Creative Reuse of Personal Data Workshop at Art Meets Radical Openness in Linz, Austria

This weekend I am presenting a lecture about GIve Me My Data and conducting a two-day data-scraping workshop at Art Meets Radical Openness in Linz, Austria. Here are the details.

The Self-Indulgence of Closed Systems
May 13, 18:45 – 19:15
Part artist lecture, part historical context, Owen Mundy will discuss his Give Me My Data project within the contexts of the history of state surveillance apparatuses, digital media and dialogical art practices, and the ongoing contradiction of privacy and utility in new media.

Freedom for Our Files: Creative Reuse of Personal Data
May 13-14, 14:00 – 16:30
A two-day workshop, with both technical hands-on and idea-driven components. Learn to scrape data and reuse public and private information by writing custom code and using the Facebook API. Additionally, we’ll converse and conceptualize ideas to reclaim our data literally and also imagine what is possible with our data once it is ours! Register here


Art Meets Radical Openness (LiWoLi 2011),
Date: 12th – 14th May 2011
Location: Kunstuniversität Linz, Hauptplatz 8, 4020 Linz, Austria

Observing, comparing, reflecting, imitating, testing, combining

LiWoLi is an open lab and meeting spot for artists, developers and educators using and creating FLOSS (free/libre open source software) and Open Hardware in the artistic and cultural context. LiWoLi is all about sharing skills, code and knowledge within the public domain and discussing the challenges of open practice.

Art Meets Radical Openness (LiWoLi 2011), May 12-14, Linz, Austria

Art Meets Radical Openness (LiWoLi 2011)

Date: 12th – 14th May 2011
Location: Kunstuniversität Linz, Hauptplatz 8, 4020 Linz

Observing, comparing, reflecting, imitating, testing, combining

LiWoLi is an open lab and meeting spot for artists, developers and educators using and creating FLOSS (free/libre open source software) and Open Hardware in the artistic and cultural context. LiWoLi is all about sharing skills, code and knowledge within the public domain and discussing the challenges of open practice.

This year’s event offers an exhibition, artists’ workshops and – like every year – lectures, presentations and sound-performances.

with:
minipimer.tv (ES), Aileen Derieg (A), Martin Howse (UK/DE), Jorge Crowe (AR)pending), Malte Steiner(DE), Servando Barreiro (ES), Enrique Tomás(ES/A), Peter Bubestinger (A), Stefan Hageneder (A), Audrey Samson (CA/NL), Sabrina Baston (DE), Sebastian Pichelhofer (A), Barbara Huber (A), Max Nagele (A), Helen Varley Jamieson (NZ/DE), Adnan Hadzi (GB), André Carvalho Hostalácio (BR/DE), Claudia González Godoy (CL), Dominik Leitner (A), Rob Canning (IR/UK), Marloes de Valk (NL), Owen Mundy (US/DE), Dušan Barok (Sk), Nicolas Malevé (BE), Margaritha Köhl (A), Pippa Buchanan (AU/A), Birgit Bachler (A/NL),…

More information: http://liwoli.at/

DATAPOLIS Art | Science | Tech Biennale

Give Me My Data will be included in the upcoming exhibition curated by Pavel Sedlák at DATAPOLIS Art | Science | Tech Biennale in Prague.

DATAPOLIS
Exhibition of the 5th International Art | Science | Technology Biennale Prague ENTER

DATAPOLIS is a one evening and three days of full-size experiment in art and technology. The exhibition addresses interactions of media technologies, novel visualization practices and urban realities. Exhibiting artists from all over the world discover moods and rhythms of our cities, bodies and planet. They innovatively mash both visible and invisible data that re-present individual and collective lives and actions. Keywords: data, city, communities, mapping, social, geographical, economical, political, sentient, ambient, mobile, ubiquitous, embedded intelligence, architecture, fashion, quantified selves, body & environment monitoring, robotic systems, trash, transport, pollution, open innovation & design.

Exhibition Opening: Thursday, April 14, 2011, 18:00
Exhibition dates: April 15 – April 17, 2011 (Limited version of the exhibition will run until Sunday, April 24, 2011)
Location: National Technical Library (NTK)
Address: Technická 6,160 80 Praha 6 – Dejvice, http://www.techlib.cz/

Curatorr: Pavel Sedlák (CZ)
Co-curator: Andrej Boleslavský (SK/CZ)

ENTER website: http://festival-enter.cz/

Artists in the exhibition:

Alessandro Ludovico, Paolo Cirio (IT): Face to Facebook
Mark Shepard (USA): Sentient City Survival Kit
Mark Shepard (USA): Serendipitor
Varvara Guljajeva (EST) & Mar Canet(ES): The Rhythm Of The City
James George(US), Alexander Porter(US): DepthEditorDebug
Eric Conrad (USA): Palbable City
Eric Conrad (USA): Bark Rubbings
Teresa Almeida (PT/SG): Modes for Urban Moods: Space Dress
Jenny Chowdhury (USA): 802.11 Apparel – Wifi Jacket
MIT SENSEable City Lab (USA): Trash Track
Secret Cooks Club (SG): FoodMatch
Dušan Barok (SK/NL): FaceLeaks
Owen Mundy (USA/DE): Give Me My Data
Jaro Dufek (CZ): Reality Ends Here
Aram Bartholl (DE) & Ivan Floreš (CZ): Dead Drops
Niki Passath (AT): Zoe
Dardex Mort2Faim (FR): Machine 2 Fish
Saša Spačal (SLO): 7K: New Life Form
Marie Polakova (CZ) & Jonathan Cremieux (FI/FR): Mimodek
Scott Hessels (USA/HK) & Gabriel Dunne (USA): Celestial Mechanics
Pedro Cruz (PT): The Morphing City

 

Give Me My Data: A Facebook Application Inspired by the Stasi Files Controversy, talk at DAAD Meeting in Dresden, Germany

Giving a talk today in Dresden, Germany titled, “Give Me My Data: A Facebook Application Inspired by the Stasi Files Controversy.” Here is the abstract.

During the final days of the German Democratic Republic (or GDR) it became evident that the Ministry for State Security (more popularly known as the “Stasi”) was destroying incriminating evidence from its 40-year history of domestic and international surveillance. These documents, which the Stasi was attempting to destroy using shredding machines, as well as by hand when the machines failed, included information gathered through various clandestine methods about lives of citizens of the GDR without their knowledge or consent.

On January 15, 1990, protestors stormed the Stasi headquarters in Berlin in attempt to prevent the destruction of personal records which they felt they should be able to access. The phrase, “Freiheit für meine Akte!” (in English: Freedom for my file!) spray painted on the Stasi guardhouse during this protest embodies a desire by citizens to open this closed world of state surveillance in order to understand the methods of control employed the Stasi

This moment in history inspires my ongoing project, Give Me My Data, a Facebook application that helps users export their data out of Facebook. While clearly utilitarian, this project intervenes into online user experiences, provoking users to take a critical look at their interactions within social networking websites. It suggests data is tangible and challenges users to think about ways in which their information is used for purposes outside of their control by government or corporate entities.

At the height of its operations, the Stasi is believed to have hired, between spies and full- and part-time informants, one in every 6.5 East German citizens to report suspicious activities, almost 2.5 million people.1 At this moment, the ratio of people entering data on Facebook to non-members is one in fourteen for the entire world,2 introducing possibly the most effective surveillance machine in history.

Exchange! Congress Berlin

ermsujet_sq_foto-by-damaso_reyes

Exchange! Congress Berlin
20 October 2010, Berlin

10:00 PECHA KUCHA BRUNCH with Wolfgang Krause (art boys, Berlin), Joelle Dietrick & Owen Mundy (Florida, USA), Lilia Dragneva (KSA:K, Chisinau, Moldova), Solvita Krese (LCCA, Riga, Latvia), Barbara J. Scheuermann (Babusch, Berlin), Louise Taylor (UK), Andrew Stooke (Oliver Holt Gallery, UK), Jörn J. Burmester (Performer Stammtisch, Berlin), Club Real (Berlin).

14:00 VIDEO SCREENING (Highlights from Attitude Festival Bitola, Macedonia)

14:30 PERFORMANCES (Liverpool Performance Artist and Drag-”Queen of Culture” Mandy Romero, Sound Artist Alex Decoupigny, Performance Artist Dovrat ana Meron)

15:00 ROUND TABLE TALK with Artists and Exchange Radical Moments! Co-organizers

16:00 TEA TABLE TALKS, an encounter scenario with 12 tables and 24 chairs. Come, sit down and talk to artists, curators and organizers.

Free entry! We ask for registration. Please send email with name and subject “Exchange! Congress”

RSVP on Facebook

19:00 – 22:00 PMC EXPERIMENT: Performance Art Meets Constellation Work (this is with invitation only!)

Location:
GLS Campus Berlin
Sprachschule, AULA
Kastanienallee 82, D -10435 Berlin

-->