Archive for the ‘code’ Category

Drones at Home: Phase 1 – Gallery@Calit2

Wednesday, March 7th, 2012

I’m collaborating with The Periscope Project (TPP) on version 2 of their “Drone Ready-Made: Fine Military Detritus” project in conjunction with the Drones at Home exhibition at Calit2 (see below). In the gallery and online, an interface I programmed, “The Drone War Did Not Take Place,” tracks a Predator drone shipping container, found on Craigslist and retrofitted by The Periscope Project as a camping apparatus, as TPP members guide it through the city of San Diego.

Their path will take them from UC San Diego, past various defense contractors and government agencies including The Space and Naval Warfare Systems Command (SPAWAR), to finally rest at TPP’s downtown location. By (re)mapping data from my Camp La Jolla Military Park project, the tracking interface reveals the connections between the physicality of TPP’s laborious gesture, and the economic and political ties between the object they push and the sites and corporations where everyone employed is implicated in the destructive impact of a permanent arms economy.

The interface will be made public during the upcoming three-day performance by The Periscope Project. It will display their location in real-time, along with images from their journey, and a twitter feed displaying news and unfiltered dialog (hashtag: #dronebox) as they treck through “the largest concentration of military facilities and defense industries in the world.”(1)

1. “San Diego Military Economic Impact Study,” San Diego Regional Chamber of Commerce, January 2007, http://www.sddt.com/files/2007_Military_Economic_Impact_Study.pdf

Drones at Home
March 7–September 14, 2012

Drones at Home explores the strange allure of drones and the push for their domestication —by governments, corporations, and everyday citizens.

Phase 1
Opening Reception March 7, 2012 gallery@calit2, 5pm-7pm

Phase 2
Symposium May 11 & 12, 2012 Calit2 Auditorium, 9am-8pm

Phase 3
Opening Reception June 6, 2012 gallery@calit2, 5pm-7pm
Closing Reception September 14, 2012 gallery@calit2, 5pm-7pm

“Home” is understood at multiple scales-at the level of the individual, backyard, community, border region, and homeland. The San Diego region is featured prominently and regional issues are explored as exemplars of global phenomena. The exhibition also departs from any strict interpretation of the form that a drone must take; the project expands on the “unmanned” nature of the drone as symbolic of a larger condition–ecologies where the status of the human is called into question, distributed and embedded in a wider field of shared intelligence.

Drones at Home will be presented in three phases. Phase 1 includes an exhibition; Phase 2 consists of panels and a workshop; and Phase 3, which continues through the summer, will include the creation of new drone projects in collaboration with invited artists and research groups at Calit2. Co-curated by Sheldon Brown, Jordan Crandall, and Ricardo Dominguez, this first phase will feature the work of Matthew Battles, Trevor Paglen, The Periscope Project, Alex Rivera and Angel Nevarez, along with additional work drawn from research in the field.

Matthew Battles is a poet, writer, and co-founder of HiLobrow.com. His forthcoming books include Letter by Letter (W. W. Norton), a sentimental and natural history of writing, and a short story collection, The Sovereignties of Invention (Red Lemonade). He is a research fellow with metaLAB, an academic and creative collaborative devoted to the exploration of technology in the arts and humanities, hosted by Harvard University’s Berkman Center for Internet and Society.

Alex Rivera is a New York based digital media artist and filmmaker. His first feature film, SLEEP DEALER premiered at Sundance 2008, and won two awards, including the Waldo Salt Screenwriting Award. Rivera is a Sundance Fellow and a Rockefeller Fellow. His work, which addresses concerns of the Latino community through a language of humor, satire, and metaphor, has also been screened at The Berlin International Film Festival, New Directors/New Films, The Guggenheim Museum, PBS, Telluride, and other international venues.

Angel Nevarez is an artist, musician, and DJ. He has produced works which investigate contemporary music, dissent, and public fora, and move between the spatial simultaneity of performance and enunciation, reflecting upon the projection of political agency through transmission and song. His interests lie in the formation of mobile, performative, and discursive-based social spaces, along with the re-articulation of communicatory systems within such locales. Nevarez is also a faculty member of MIT’s Art, Culture, and Technology Program.

Trevor Paglen’s work deliberately blurs lines between science, contemporary art, journalism, and other disciplines to construct unfamiliar, yet meticulously researched ways to see and interpret the world around us. Paglen’s visual work has been exhibited at the Metropolitan Museum of Art, New York; The Tate Modern, London; The Walker Arts Center, Minneapolis; The Andy Warhol Museum, Pittsburgh; Institute for Contemporary Art, Philadelphia; The San Francisco Museum of Modern Art; Massachusetts Museum of Contemporary Art, North Adams; the 2008 Taipei Biennial; the Istanbul Biennial 2009, and numerous other solo and group exhibitions.

The Periscope Project is a space and co-operative based in downtown San Diego committed to the transdisciplinary nexus of art, architecture, and regional urban issues. Operating by the efforts of its resident practitioners; Drone Readymade represents the first discreet project (outside of The Periscope Project itself) undertaken collaboratively. The project’s primary authors are James Enos (M.Arch, NSAD, MFA UCSD, Visiting Assistant Professor, FSU), Molly Enos (M.Arch NSAD, AIA), Charles G. Miller (MFA UCSD), Keith Muller, Andrea Ngan, David Kim, Jon Barth, Jason Durr and Jay Ojeda; with key contributions from Jon Zuppan. For Drones at Home, The Periscope Project is collaborating with Owen Mundy (MFA UCSD, Assistant Professor FSU).

All gallery events are FREE and open to the public.
Please RSVP to Trish Stone, Gallery Coordinator, tstone@ucsd.edu
Media Contact: Tiffany Fox, tfox@ucsd.edu

Freedom for Our Files: Canvas starter (Facebook) app

Thursday, December 22nd, 2011

I’m happy to share the code from a Facebook app I created for a workshop earlier this year.

This is an example of a simple Facebook canvas application. This code was originally demoed during the Freedom for Our Files Facebook API workshop at the 2011 Art Meets Radical Openness festival in Linz, Austria. You can view and download the source code on github

The application is very simple; it creates a Facebook object, performs calls to get data belonging to the current user, then prints the data exactly as it is returned. It has examples of basic Facebook Graph API calls as well as an example of FQL (Facebook Query Language).

Stop SOPA Blackout

Thursday, December 15th, 2011

You might notice my site and blog looks a little, well, opaque this week. Here’s a screenshot.

I’m running a script on my site that censors all the content in order to bring attention to a law being pushed through congress right now. The SOPA (“Stop Online Piracy Act”) is a terrible piece of legislation that gives broad powers for the courts to take down sites by claims from “infringed” users. If SOPA passes as-is, it could devastate the artistic expression and livelihood of many artists, hackers, and entrepreneurs.

More information at fightforthefuture.org

You can protest the SOPA bill and install the blackout code on your site to let your visitors know what they could miss out if SOPA does pass.

Paste this code into your Tumblr themes, website, and more…

<script type="text/javascript">
  var FATLAB_Stop_SOPA = {
    color : '#000000',
    promote : true
  };

  document.write('<scr'+'ipt src="http://fffff.at/stop_sopa/blackout.js?v=1&e83a2c"></scr'+'ipt>');
</script>

New line plotter prints of I Am Unable to Fulfill Your Wish

Sunday, December 11th, 2011

Here are some images Ryan Boatright of Atelier Boba made while he was printing one of my network visualizations from the I Am Unable to Fulfill Your Wish series on their new line plotter. The prints arrived last week from their location in Paris and are great to see in person. The line plotter repeated so many of the lines it actually polished the surface of the paper causing the print to reflect light.

Processing.js – Missing Documentation

Saturday, September 10th, 2011

The Processing.js project is really cool. It allows you to run Processing .pde files inside (HTML5 compatible) web browsers using Javascript. You can pass data back and forth between the two programs, access the DOM with Processing, and you don’t need any plugins or Java.

Click here to run this Processing sketch in your browser

One caveat… When importing a Processing .pde file into the HTML5 canvas you must access the files on a web server or by using localhost (a server running on your computer, e.g. MAMP) because most (all modern?) web browsers don’t allow file:/// access for security reasons. Unfortunately this is not intuitive as Javascript should run in the browser regardless of file:/// access. Nor is it mentioned in any of the Processing.js Quick Start documentation. I found it by testing, and then confirmed it in their README. Darn, need to remember to read (all of) the instructions.

UPDATE: A friend pointed out that the problem accessing the .pde file could be due to the same origin policy. Though not explicitly stated on the Github page for Processing.js, they do mention that disabling same origin setting in your browser is a(n undesirable) workaround.

Some web browsers (e.g., Chrome) require secondary files to be loaded from a web server for security reasons. This means loading a web page that references a Processing.js sketch in a file via a file:/// URL vs. http:// will fail. You are particularly likely to run into this problem when you try to view your webpage directly from file, as this makes all relatively links file:/// links.

// Hello World file for Processing or Processing.js
void setup(){
  size(1000,700);
  background(255);
}
void draw(){
  stroke(random(255),random(255), random(255));
  line(random(width),random(height), random(width),random(height));
  println("Hello World!");
}
view raw hello.pde This Gist brought to you by GitHub.

Camp La Jolla Military Park: Creative Disturbance Through Adaption of National Park Iconography

Friday, September 9th, 2011

I recently published an essay, “Camp La Jolla Military Park: Creative Disturbance Through Adaption of National Park Iconography,” in the Parsons Journal for Information Mapping (PJIM) documenting my thesis work at the University of California, San Diego. Here is the abstract for the essay:

This paper details the motivation and the method behind the creation of Camp La Jolla Military Park, a fictional national park on the current site of the University of California’s San Diego campus. Camp La Jolla Military Park borrows the iconography and language from historical battlefields as designated and protected by the U.S. Congress; the use of such iconography and language allows for the investigation, as well as consideration of the campus as a site for research and development of weapons and technology for the defense industry. The website http://camplajolla.org/ is the publicly accessible collective of the research and expression behind Camp La Jolla Military Park.

The project began by developing a data-collection system in order to record the historical, geographic, and economic ties that bind the relationships of power within the complex of military, industrial, and academic institutions in Southern California. Through appropriating the vernacular language and imagery of the National Park System the research was made public and accessible to audiences both within and outside of the protected spaces of art and academia. This writing introduces the concepts and processes of the project in order to encourage the restaging of other similar creative disturbances.

Internet service just got creepy: How to set up a wireless router with Comcast internet service

Saturday, August 27th, 2011

I just moved back to Florida after a one year research project in Berlin and have subscribed to Comcast broadband service. The whole experience left a bad taste in my mouth, though not because the tech showed-up 2 hours after the installation appointment window. Nor was it because he held loud personal conversations on his cell phone while he was setting up the service. No, the icky feeling is more corporate and selfish, and impedes much more into my private space than “Joe the cable guy” ever could.

Comcast made me install software on my computer in order to use their broadband.

Upon his arrival, “Joe” announced he would need access to my computer to setup broadband service. Understanding that most of the people Joe deals with might not be IT whizzes, and could manage to not be able to connect their machines without his help, I decided to let him use it rather than attempt to prove I was not a member of the usual group. After half an hour of complaining about previous customers to his friend on his cellphone, waiting for an other Comcast person to flip a switch allowing him to do his job, and multiple trips to his truck, he showed me that the internet was indeed accessible on my computer.

At this point the laptop was directly connected to the cable modem via an ethernet cable. He announced I was to follow the steps on the screen and he was out the door. The web page he had left up required me to agree to some terms, create a username and then… install software? Really? I tried to access the net without the final step but nothing doing. Unless I installed this software I was stuck. So I did it, still not believing that a company had really initiated this final invasion onto every customer’s computer. After it was done I had new bookmarks everywhere, for Comcast email, security, and some branding nonsense called “XFINITY” (I thought “X” was out with the ’90′s and “X”games?)

So I thought, “OK, Comcast, you got me, hit me with your best marketing slime. Whatever, I can delete the bookmarklets you installed in my browser, just let me access the service I paid for, wirelessly, on whichever device I want.”

But this is where the relationship got really creepy. Apparently when I installed the Comcast (spyware?) on my machine, it made note of my MAC address, a unique identifier of networked machines, so that it would only allow my machine (or another machine with that MAC address) to connect to the internet. This means when I attached a wireless router to the cable modem I could connect to the wifi, but there was no internet.

So it turns-out that Comcast is not only forcing their adware on customers, it’s also making it difficult (though not impossible) for them use more than one device. Presumably Comcast is doing this in order to circumvent sharing of services among neighbors, but the end result is that you can’t share the service between more than one device, or between roommates or spouses for that matter.

An example (albeit a geeky one): between my wife and I we have 2 laptops, 2 smartphones, and a desktop computer that all might be talking to each other or accessing the net. Comcast’s so-called internet service didn’t allow for any such geekery because it only allows one device, with the correct MAC address, to connect.

So, here’s what I did, on my Mac, with some help from my sister’s boyfriend, Tom, and a lot from Google, to get my linksys wireless router to work with Comcast internet.

  1. Confirm you can access the internet with your machine connected directly to the Comcast cable modem.
  2. Open Terminal and type (without the quotes): “ifconfig en0 | grep ether”
  3. Now disconnect your computer from the modem and connect the modem ethernet cable to your wireless router. Make sure both are plugged-in.
  4. Connect to your wireless router via the airport on your machine.
  5. Go to the following link: http://192.168.1.1
  6. Under Setup, choose DHCP as the Internet Connection Type. Save Settings.
  7. Under Setup : Mac Address Clone, enter the alpha numeric characters returned from Terminal. Save Settings.
  8. Configure your wireless router like you normally would and you are up and running.
  9. Snicker at Comcast

Give Me My Data upgrade: New API, authorization, and data formats

Monday, July 4th, 2011

No one would be surprised to learn that almost all of the user-generated content websites use our personal data to sell advertisements. In fact 97% of Google’s revenue comes from advertising.[1] That’s why it’s important these sites provide as much access as possible to the real owners of our data‐us. After all, we put it there and allow them to use it in exchange for the use of their software. Seems like a fair trade if you ask me.

A year and a half ago Facebook didn’t provide any access. That’s why I created Give Me My Data, to help users reclaim and reuse their personal data they put on Facebook.

By giving more agency to users of online systems, Give Me My Data may have already impacted the nature of online application development. In November 2010, almost a year after I launched Give Me My Data, Facebook created their own service for users to export their profile from Facebook as a series of HTML pages. Unlike Give Me My Data, the Facebook service doesn’t allow you to select which data you want or to choose custom formats to export. It also doesn’t give you options for visualization like the custom network graphs that Give Me My Data offers.

I believe their motivation originates in part with my application, likely due to the popularity of Give Me My Data, and points to the potential usefulness of similar apps. While years down the road may reveal many other online systems giving users control over their data, I see this as a positive effect where the content we create, as well as the means to share and manage it, are democratized.

Meanwhile, the above also keeps me hard at work developing the Give Me My Data project. This week I rewrote the program to use Facebook’s new OAuth authorization, which also required rewriting all of the code that fetches the data. Previously it used the REST API which is being deprecated (sometime?) in the future. I also added new data types, fixed the CSV format (which had the rows and columns mixed-up), and added the possibility to export in the JSON data format.

Finally, in the data selector, I distinguished standard data and customized data types. When I say customized, I mean that I’ve written code that mashes together more than one data table and/or addresses a specific question. For example, right now users can select from two types of network graphs and corresponding formats. One describes the user’s relationship to their friends, and the other describes the user’s relationship to their friends, as well as all their friends’ relationships to each other in various graph description languages. This is how I made the network graph image below. I’m also interested in hearing other suggestions for custom queries I might add. The project will be open source on Github soon, so even code contributions will be welcome.

Anyway, please try out the new version. You may have to delete the app from your allowed applications and then re-authorize it if you’ve used it before. As usual, you can provide feedback on the application page, and you can also contact me on Twitter via @givememydata.

[1] “Google Financial Tables for Quarter ending June 30, 2009” Retrieved October 13, 2010

Semantic network of hierarchical tags from Camp La Jolla Military Park

Wednesday, June 29th, 2011

A semantic network visualization and detail using tags generated from the hierarchical tagging system I created with Thomas Evan Lecklider as part of my Camp La Jolla Military Park project.

For example this item, Defense Contractors recruit at UCSD Job Fair, in the park is filed under: business » arms industry » spending » recruiting

Give Me My Data 2.0 advances to 2nd round of Rhizome Commission voting

Friday, June 17th, 2011

I just learned the Give Me My Data 2.0 proposal I put together with Dr. Phil Steinberg has advanced to the second stage of 2011 Rhizome Commission voting. Give Me My Data 2.0 is an open source web application that exports your user data from any crowdsourcing website in multiple, reusable formats.

I created Give Me My Data while working on Automata, a project which visualizes powerful relationships and which also made it to the second round of the Rhizome Commissions two years ago.

Please VOTE for Give Me Me Data if you are a Rhizome member!