Camilla d’Errico’s Waterfall of Dreams

What: Waterfall of Dreams, Solo Show
Where: Copro Nason Gallery, Santa Monica, USA
Host: Copro Nason Gallery
When: 2008-07-12
Let your imagination go into freefall, as your emotions are caressed, teased, and astounded by this collection of 20 original and breathtaking pieces. Camilla d’Errico presents her first Solo Show, taking place at Copro Nason Gallery, Santa Monica. Opening Reception July 12th from 8:00 pm to 11:30 pm.
Using the ImageShack XML API
If you wanted to start a free photo uploading site, but didn’t want to pay the fixed storage and bandwidth costs of Amazon’s S3 or another CDN service, you might be interested in the free ImageShack API. Currently, it allows you to upload a photo to the ImageShack service, and get back the image’s size, a photo URL, and a thumbnail URL. You can access their API by using a simple ImageShack php class:
<?php
class ImageShack
{
var $is_url = "http://www.imageshack.us/index.php";
var $is_result = false;
var $is_result_parsed = false;
public function upload( $file )
{
// send the image to ImageShack
$ch = curl_init($this->is_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 240);
curl_setopt($ch, CURLOPT_POSTFIELDS, array( ‘xml’=>‘yes’, ‘fileupload’=>‘@’.$file ));
curl_setopt($ch, CURLOPT_HTTPHEADER, array( ‘Expect: ’ ));
$this->is_result = curl_exec($ch);
curl_close($ch);
// Parse the result
$this->parse();
}
public function get_image_url()
{
return $this->get( "image_link" );
}
public function get_thumb_url()
{
return $this->get( "thumb_link" );
}
public function get_done_page()
{
return $this->get( "done_page" );
}
public function get_resolution()
{
return $this->get( "resolution" );
}
public function get_size()
{
return $this->get( "filesize" );
}
private function get( $key )
{
if( !$this->is_result_parsed )
return false;
return( $this->is_result_parsed[ $key ] );
}
private function parse()
{
if (strpos($this->is_result, '<'.'?xml version=”1.0″ encoding="iso-8859-1″?>') === false)
$this->is_result_parsed = false;
$xmlData = explode("\n",$this->is_result);
$xmlr = array();
foreach($xmlData as $xmlDatum){
$xmlDatum = trim($xmlDatum);
if($xmlDatum != "" && !eregi("links",$xmlDatum) && !eregi("xml",$xmlDatum)){
$xmlDatum = str_replace(">","<",$xmlDatum);
list($xmlNull,$xmlName,$xmlValue) = explode("<",$xmlDatum);
$xmlr[$xmlName] = $xmlValue;
}
}
$this->is_result_parsed = $xmlr;
}
}
?>
Accepting file uploads in PHP is almost trivial. You just need a form on a web page somewhere with multipart encoding, such as:
<form enctype="multipart/form-data" id="uploadform" method="post" action="http://example.com/path/to/upload"> <input type="hidden" name="MAX_FILE_SIZE" value="1048576"> <input id="anchor_file" type="file" name="files[]" /> <input type="submit" value="" id="submitimages" name="submitimages" /> </form>
On the server side, you need to iterate through the special $_FILES array in PHP:
<?php
for($i = 1; $i < count($_FILES['files']['name']); $i++){
$error = $_FILES['files']['error'][$i];
if($error !== 0) break;
$data = array(
'name' => $_FILES['files']['name'][$i],
'temp' => $_FILES['files']['tmp_name'][$i],
'size' => $_FILES['files']['size'][$i]
);
// do something with $data now, like upload it to ImageShack
}
?>
With these bits, it’s easy to write a wraparound interface to ImageShack. In the future, I hope their API also includes being able to query for photos, comments, and ratings after uploading; at the moment I see now way to do that.
Custom iPhone Paint Job
If you’ve ever thought about getting a Pink iPhone for yourself, look no further than Colorware PC, who will let you pick out a custom paint job for your iPhone in the colors you want. For example, a classic AdSense like blue/green/white job looks like this:

The cost? Just $200 and 2-3 weeks of processing time, plus additional time to ship it there and back. Looking at their gallery of samples, the painting appears extremely high quality, precise, and on-color. They even off pantone matching for those colors you absolutely need to have. Behind the scenes, they use a custom UV resistant plastic coating they call “X2″ and (probably) paint robots to precisely paint your device.
They also can paint notebooks, macbooks, iPods, PC computers, the Sony PSP, your blackberry, an xBox or PS3, and a host of other commercial products.