cory arcangel€¦ · doogle.php 5 1
TRANSCRIPT
readme.txt 3
1
6
11
16
21
26
31
/\\\ /\\\\////\\\ /\\\//
36 \////\\\ /\\\//\////\\\ /\\\///\\\// \////\\\
/\\\// \////\\\/\\\// /\\\ \////\\\
41 \/// \/// \///
Dooogle1
46Cory Arcangel, 2004
http://www.coryarcangel.com
51 Credz: Code help by Michael Frumin, concept help by Michael Connor & Jackie Passmore.
Requirements: Webserver, Pear::SOAP, Google API2.
Search engine which only returns results for Doogie Howser. Originally performed athttp://www.dooogle.com3.
56"Move over Lucifer, I’m more ruthless, leave you toothless." − Biggie
index.html 4
<html><head>
3 <meta http−equiv=” content−type ” content=” text /html ; cha r s e t=UTF−8”><t i t l e>Dooogle</ t i t l e><style>
< !−−body , td ,a ,p , . h{ font−f ami l y : a r i a l , sans−s e r i f ;}
8 . h{ font−s ize : 20px ;}.q{color :#0000 cc ;}//−−>
</ style><script>
13 < !−−f unc t i on s f ( ) {document . f .q . f ocus ( ) ;}// −−>
</ script><LINK REL=”SHORTCUT ICON” HREF=” http ://www. dooogle . com/ dooogle . i c o ”>
18 </head><body bgcolor=#f f f f f f text=#000000 l ink=#0000cc vlink=#551a8b alink=#f f 0 0 0 0 onLoad=s f ( )
><center>
<img src=” logo . g i f ” alt=” Dooogle ”><br>
23 <br><form action=” doogle . php” name=f>
<table cellspacing=0 cellpadding=0><tr>
<td width=25%>  ;</td>28 <td align=center>
<input maxLength=256 s ize=55 name=query value=””><br><input type=submit value=” Dooogle Search ” name=dooogle><input type=hidden value=”0” name=s t a r t>
</td>33 <td valign=top nowrap width=25%>  ;</td>
</ tr></ table>
</form><br>
38 <br><font size=−1><a href=about .html>About Dooogle</a></ font><p><font size=−2>© ;2009 Dooogle − Search ing 4 ,285 ,199 ,774 web pages</ font></p
></center><script type=” text / j a v a s c r i p t ”>
43 var gaJsHost = ( ( ” https : ” == document . l o c a t i o n . p ro to co l ) ? ” https : // s s l . ” : ” http://www. ” ) ;
document . wr i t e ( unescape ( ”%3Cscr ip t s r c =’” + gaJsHost + ” google−a n a l y t i c s . com/ga .j s ’ type=’ t ext / j a v a s c r i p t ’%3E%3C/ s c r i p t%3E” ) ) ;
</ script><script type=” text / j a v a s c r i p t ”>
t ry {48 var pageTracker = gat . getTracker ( ”UA−12213123−1” ) ;
pageTracker . setDomainName ( ” . co rya rcange l . com” ) ;pageTracker . trackPageview ( ) ;} catch ( e r r ) {}
</ script>53 </body>
</html>
doogle.php 5
1 <?extract ($ GET) ;////////////////////////////////////////////////////////////// This i s example code o f how to query the Google API us ing// Web Serv ices , SOAP, and PHP.
6 //// Author : Geoff Peters , January 6 th 2004.//// To run t h i s s c r i p t you need to ob ta in the Pear : :SOAP package .// You can ob ta in i t from h t t p :// pear . php . net .
11 // The example shown uses Pear : :SOAP ver s i on 0 . 7 . 5 .//// I f you don ’ t have admin i s t r a t i v e acces s to you web server ,// you can p lace the SOAP d i r e c t o r y t ha t conta ins the Pear : :SOAP// source f i l e s somewhere on your server , and then modify the
16 // PHP inc l ude path us ing i n i s e t to in c l ude t h i s d i r e c t o r y .//// For example :/∗
21 // s e t the inc l ude path to use the new pear s t u f fi n i s e t ( ’ i n c l u d e pa t h ’ , ’ . : / home/user / p e a r s t u f f : / usr / l o c a l / l i b /php ’) ;
∗/// Note t ha t Pear : :SOAP has s e v e r a l dependencies on o ther Pear packages ,
26 // which you shou ld a l s o i n s t a l l on your web s e r v e r ./////////////////////////////////////////////////////////////
//// I n i t i a l i z e SOAP web s e r v i c e s
31 //
in i set ( ” inc lude path ” , join ( ” : ” , array (dirname( FILE ) . ”/PEAR” , in i get ( ”inc lude path ” ) ) ) ) ;
36 include ( ”SOAP/ Cl i en t . php” ) ;
$ s o a p c l i e n t = new SOAP Client ( ’ http :// api . goog l e . com/ search / beta2 ’ ) ;$soapopt ions = array ( ’ namespace ’ => ’ urn : GoogleSearch ’ ,
’ t r a c e ’ => 0) ;41 ?>
<html><head>
<LINK REL=”SHORTCUT ICON” HREF=” http ://www. dooogle . com/ dooogle . i c o ”><meta http−equiv=” content−type ” content=” text /html ; cha r s e t=UTF−8”>
46 <t i t l e >Dooogle Search : Doogie Howser</ t i t l e ><s t y l e>
<!−−body , td , div , . p , a{ font−f ami ly : a r i a l , sans−s e r i f }div , td{ c o l o r :#000}
51 . f , . f l : l ink { c o l o r :#6 f 6 f 6 f }a : link , . w, a .w: link , . w a : l ink { c o l o r :#00c}a : v i s i t e d , . f l : v i s i t e d { c o l o r :#551a8b}a : ac t ive , . f l : a c t i v e { c o l o r :#f00 }. t a : link , . t a : ac t ive , . t a : v i s i t e d , . t { c o l o r :#000}
56 . t {background−c o l o r :#e5ec f9 }. k{background−c o l o r :#36c}
doogle.php 6
. j {width :34em}
. h{ c o l o r :#36c}
. i , . i : l ink { c o l o r :#a90a08}61 . a , . a : l ink { c o l o r :#008000}
. z{ d i s p l a y : none}div . n {margin−top : 1ex}. n a{ font−s i z e : 10 pt ; c o l o r :#000}. n . i { font−s i z e : 10 pt ; font−weight : bold }
66 . q a : v i s i t e d , . q a : link , . q a : ac t ive , . q { c o l o r : #00c ; }. b{ font−s i z e : 12 pt ; c o l o r :#00c ; font−weigh t : bo l d }. ch{ cur so r : po in t e r ; cu r so r : hand}. e{margin−top : . 75em; margin−bottom : . 75em}. g{margin−top : 1em; margin−bottom : 1em}
71 //−−></s ty l e><s c r i p t >
<!−−f unc t i on s s (w) {window . s t a t u s=w; re turn true ;}
76 func t i on cs ( ) {window . s t a t u s=’ ’ ;}f unc t i on ga ( o , e ) { i f ( document . getElementById ) {a=o . id . su b s t r i n g (1 ) ; p = ”” ; r =
”” ; g = e . t a r g e t ; i f ( g ) { t = g . id ; f = g . parentNode ; i f ( f ) {p = f . id ; h = f .parentNode ; i f (h) r = h . id ;}} else {h = e . srcElement ; f = h . parentNode ; i f ( f )p = f . id ; t = h . id ;} i f ( t==a | | p==a | | r==a ) return true ; l o c a t i o n . h r e f=
document . getElementById ( a ) . h r e f }}//−−>
</s c r i p t ><s t y l e>
81 <!−−. f l : l ink { c o l o r :#7777CC}−−>
</s ty l e></head>
86 <body onload=”document . gs . r e s e t ( ) ” topmargin=”2” bgco lo r=”#f f f f f f ” marginheight=”2”><t a b l e border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0”>
<tbody><tr>
<td va l i gn=”top ”><a h r e f=” http ://www. dooogle . com/webhp? h l=en”><img s r c=”logo sm . g i f ” a l t=”Go to Dooogle Home” border=”0” vspace=”12”></a></td>
91 <td></td><td va l i gn=”top ”>
<t a b l e border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0”><tbody>
<tr>96 <td he ight=”14” va l i gn=”bottom”>
<s c r i p t ><!−−f unc t i on qs ( e l ) { i f ( window . RegExp && window .
encodeURIComponent ) {var qe=encodeURIComponent (document . gs . q . va lue ) ; i f ( e l . h r e f . indexOf ( ”q=” ) !=−1) {e l . h r e f=e l . h r e f . r e p l a c e (new RegExp( ”q=[ˆ&$ ]∗ ” ) , ”q=”+qe) ;} else { e l . h r e f+=”&q=”+qe ;}} re turn 1 ;}
// −−></s c r i p t><t a b l e border=”0” ce l l padd ing=”4” c e l l s p a c i n g=”0”>
101 <tbody><tr>
<td c l a s s=”q”><f ont s i z e=”−1”><f ont c o l o r=”#000000”><b>Web</b></font></font></td>
</tr></tbody>
doogle.php 7
106 </tab le></td>
</tr><tr>
<td>111 <t a b l e border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0”>
<tbody><tr>
<td nowrap><form name=” gs ” method=” get ” ac t i on=” doogle . php”
><input name=” query ” value=” whatever ” type=”hidden ”><input name=” s t a r t ” value=”0” type=”hidden ”><input name=”q” s i z e=”41” maxlength=”2048” value=”Doogie Howser” type=” text ”><f ont
s i z e=”−1”> <input name=”btnG” value=” Search ”type=”submit”><span id=” hf ”></span></font></
form>116 </td>
<td nowrap> </td></tr>
</tbody></tab le>
121 </td></tr>
</tbody></tab le><t a b l e border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0”>
126 <tbody><tr>
<td><f ont s i z e=”−1”></font></td></tr><tr>
131 <td he ight=”7”><img a l t=”” he ight=”1” width=”1”></td></tr>
</tbody></tab le>
</td>136 </tr>
</tbody></tab le><?php
i f ( $key == ”” )141 {
/∗You ge t a deve l ope r ’ s key when you r e g i s t e r to use Google ’ s API .A deve l ope r ’ s key i s a unique s t r i n g t ha t i d e n t i f i e s you to Google .You ge t a maximum of 1000 searches per day us ing your deve l ope r ’ s key .
146 ∗/$key = ’ Your Key Here ’ ; // put your deve l ope r ’ s key here .}
i f ( $query != ”” )151 {
// remove the s l a s h e s t ha t are au t oma t i c a l l y added by PHP be f o r e each quo ta t i onmark
$query = stripslashes ( $query ) ;
i f ( $ r e t = search ( $query , $key , $num) )
doogle.php 8
156 {$ r e s u l t s = $ret−>r e su l tE l ements ;
?><t a b l e border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0” width=”100%”>
161 <tbody><tr>
<td bgco lo r=”#3366cc ”><img a l t=”” he ight=”1” width=”1”></td></tr>
</tbody>166 </tab le>
<t a b l e bgco lo r=”#e5ec f 9 ” border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0” width=”100%”><tbody>
<tr><td bgco lo r=”#e5ec f 9 ” nowrap><f ont s i z e=”+1”><b>Web</b></font></td>
171 <td a l i g n=” r i g h t ” bgco lo r=”#e5ec f 9 ” nowrap><f ont c o l o r=”” s i z e=”−1”>Resu l t s<b><?php print $ret−>s t a r t Index ;?></b> − <b><?php print $ret−>endIndex
;?></b> o f about <b><?php print $ret−>est imatedTotalResultsCount ;?></b>for <b>Doogie Howser</b>. (<b><?php print $ret−>searchTime;?></b>seconds )</font></td>
</tr></tbody>
</tab le><!−−a−−>
176 <?phpforeach ( $ r e s u l t s as $ r e s ) {
i f (empty( $res−>t i t l e ) ) {?>
181 <p c l a s s=”g”><!−−m−−><a h r e f=”<?php p r in t $res−>URL;?>”>
<?php print $res−>URL;?> <!−−n−−></p>
186 <?php} else {
?><p c l a s s=”g”><!−−m−−><a h r e f=”<?php p r in t $res−>URL;?>”><?php print $res−>t i t l e ;?></a><br><f ont s i z e=”−1”>
191 <?php print $res−>sn ippet ;?><br><f ont c o l o r=”#008000”><?php print $res−>URL;?> − <?php print $res−>cachedSize
;?></ font></font><!−−n−−></p><?php}
196 }}}
?>201 <br c l e a r=” a l l ”>
<div c l a s s=”n”><t a b l e a l i g n=” cente r ” border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0” width=”1%”>
<tbody><t r a l i g n=” cente r ” va l i gn=” top ”>
206 <td nowrap va l i gn=”bottom”><f ont s i z e=”−1”>Result Page : </font></td><td>
<?php
doogle.php 9
$ length = 10 ;$ lenght2 = 20 ;
211$ i i 2 = ( $ s t a r t / 10) + 1 ;$ i i 3 = $ i i 2 ;
// i f ( $ i i 2 > 10){ $ i i 2 = $ i i 2 − 10;}216 $ i i 2 = $ i i 2 − 10 ;
i f ( $ i i 2 < 0) { $ i i 2 = 1 ;}
g l o b a l $ f l a g e n d ;$ f l a g e n d = 0 ;
221
i f ( $ i i 3 > 1) {?>
<a h r e f=” doogle . php? query=whatever&s t a r t=<?php echo $ s t a r t − 10;?>”><img s r c=” nav prev ious . g i f ” a l t=”” border=”0”><br><span c l a s s=b>Previous</span></a>
226 </td><td>
<?php}else {
231 ?><img s r c=” n a v f i r s t . g i f ” a l t=”” he ight=”26” width=”18”><br>
</td><td>
<?php236 }
for ( $ i i = $ i i 2 ; $ i i < $ length + $ i i 3 ; $ i i ++){
241i f ( $ i i >= 99) { $ f l a g e n d = 1 ; break ; }
i f ( $ i i 3 == $ i i ) {?>
246 <img s r c=nav current . g i f width=16 he ight=26 a l t=””><br><span c l a s s=i><?php echo $ i i ?></span>
</td><td>
<?php}
251else {?>
<a h r e f=” doogle . php? query=whatever&s t a r t=<?php echo ( $ i i −1)∗10?>”><img s r c=” nav page . g i f ” a l t=”” border=”0” he ight=”26” width=”16”><br><?php echo $ i i ?></a>
</td>256 <td>
<?php}
}261
doogle.php 10
i f ( $ f l a g e n d == 0) {?>
<a h r e f=” doogle . php? query=whatever&s t a r t=<?php echo $ s t a r t + 20;?>”><img s r c=nav next . g i f width=100 he ight=26 a l t=”” border=0><br><span
c l a s s=b>Next</span></a></td>
266 </tr><?php} else {?>
<a h r e f=” doogle . php?q=whatever&s t a r t=<?php echo $ s t a r t + 20;?>”><img s r c=nav next end . g i f width=100 he ight=26 a l t=”” border=0><br><span c l a s s=b></span></a></td></tr>
271 <?php}?>
</tbody></tab le>
276 </div><center>
<br c l e a r=” a l l ”><br><t a b l e border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0” width=”100%”>
<tbody>281 <tr>
<td c l a s s=”k”><img a l t=”” he ight=”1” width=”1”></td></tr><tr>
<td a l i g n=” cente r ” bgco lo r=”#e5ec f 9 ”>286 <br>
<t a b l e a l i g n=” cente r ” border=”0” ce l l padd ing=”0” c e l l s p a c i n g=”0”><form method=” get ” ac t i on=”/ search ”></form>˜\ footnotemark [ 4 ] ˜<tbody>
<tr>291 <td nowrap>
<f ont s i z e=”−1”><input name=”q” s i z e=”31” maxlength=”2048” value=”Doogie Howser” type=” text ”> <input name=”btnG” value=” Search ” type=”submit”><input name=” hl ” value=”en” type=” hidden ”><input name=” l r ” value=”” type=”hidden ”></font>
</td></tr>
</tbody>296 </tab le>
<br></td>
</tr><tr>
301 <td c l a s s=”k”><img a l t=”” he ight=”1” width=”1”></td></tr>
</tbody></tab le>
</center>306 <center>
<p></p><hr c l a s s=”z”><t a b l e border=”0” ce l l padd ing=”2” c e l l s p a c i n g=”0” width=”100%”>
<tbody>311 <tr>
doogle.php 11
<td a l i g n=” cente r ”> </td></tr>
</tbody></tab le>
316 <br><f ont c l a s s=”p” s i z e=”−1”> 2 0 0 9 Dooogle</font></center><s c r i p t type=” text / j a v a s c r i p t ”>
var gaJsHost = ( ( ” https : ” == document . l o c a t i o n . p ro to co l ) ? ” https : // s s l . ” : ” http://www. ” ) ;
document . wr i t e ( unescape ( ”%3Cscr ip t s r c =’” + gaJsHost + ” google−a n a l y t i c s . com/ga .j s ’ type=’ t ext / j a v a s c r i p t ’%3E%3C/ s c r i p t%3E” ) ) ;
321 </s c r i p t ><s c r i p t type=” text / j a v a s c r i p t ”>
t ry {var pageTracker = gat . getTracker ( ”UA−12213123−1” ) ;pageTracker . setDomainName ( ” . co rya rcange l . com” ) ;
326 pageTracker . trackPageview ( ) ;} catch ( e r r ) {}
</s c r i p t ></body>
</html>331 <?php
////////////////////////////////////////////////// Does Google search wi th r e t r y .// Retry i s u s e f u l because sometimes the connect ion w i l l// f a i l f o r some reason but w i l l succeed when r e t r i e d .
336 func t i on search ( $query , $key , &$num ){
$ r e s u l t = fa l se ;$max re t r i e s = 5 ;$ r e t ry count = 0 ;
341while ( ! $ r e s u l t && $re t ry count < $max re t r i e s ){
$ r e s u l t = do search ( $ s ta r t , $query , $key , $num ) ;i f ( ! $ r e s u l t )
346 {print ( ”Attempt $ r e t ry count f a i l e d .<br>\n” ) ;}$ r e t ry count++;}
351 i f ( ! $ r e s u l t ){print ( ”<br>Sorry , connect ion to Google f a i l e d a f t e r r e t r y i n g s e v e r a l t imes . P lease
check that the Google Developer ’ s Key you entered was c o r r e c t . To obta in adeve loper ’ s key or f o r more in fo rmat ion on the Google API , v i s i t <a h r e f =\”http ://www. goog l e . com/ ap i s /\”>Google API home page</a>.<br>\n” ) ;
}re turn $ r e s u l t ;
356 }
////////////////////////////////////////////////////////////// Ca l l s the Google API and r e t r i e v e s the es t imated number o f// search r e s u l t s f o r t ha t query in to $num.
361 func t i on do search ( $ s ta r t , $query , $key , &$num ){
g l o b a l $ s o a p c l i e n t ;g l o b a l $soapopt ions ;
doogle.php 12
366 // Note t ha t we pass in an array o f parameters in t o the Google search .// The parameters array has to be passed by r e f e r ence .// The parameters are w e l l documented in the deve l ope r ’ s k i t on the// Google s i t e h t t p ://www. goog l e . com/ ap i s
371 $query = ”Doogie Howser” ; // Wasss up$ s t a r t = $ GET [ ’ s t a r t ’ ] ;// $ s t a r t = 10;// $ s t a r t = s t r i p s l a s h e s ( $ s t a r t ) ;
376// p r i n t ”START IS : $ s t a r t<BR><BR>\n” ;
g l o b a l $ GET ;g l o b a l $ s t a r t ;
381 $ s t a r t = $ GET [ ’ s t a r t ’ ] ;// p r i n t ”START IS NOW: $ s t a r t<BR><BR>”;$ s t a r t 2 = $ s t a r t ;
$ l ength = 1000 ;386 $ i = 0 ;
for ( $ i i = 0 ; $ i i < $ length ; $ i i ++){i f ( $ s t a r t == $ i i ) { $ s t a r t = $ i ;}$ i = $ i + 1 ;
391 }
i f (empty( $ s t a r t ) ) {$ s t a r t = 0 ;
}396
// p r i n t ”START IS FINALLY: $ s t a r t<BR><BR>\n” ;
$params = array (401 ’ key ’ => $key , // the Developer ’ s key
’ q ’ => $query , // the search query’ s t a r t ’ => $s ta r t , // the po in t in the search r e s u l t s shou ld
Google s t a r t’ maxResults ’ => 10 , // the number o f search r e s u l t s (max 10)’ f i l t e r ’ => false , // shou ld the r e s u l t s be f i l t e r e d ?
406 ’ r e s t r i c t ’ => ’ ’ ,’ s a f eSea r ch ’ => false ,’ l r ’ => ’ ’ ,’ i e ’ => ’ ’ ,’ oe ’ => ’ ’
411 ) ;
// Here ’ s where we a c t u a l l y c a l l Google us ing SOAP.// doGoogleSearch i s the name o f the remote procedure c a l l .
416 $ r e t = $soapc l i en t−>c a l l ( ’ doGoogleSearch ’ , $params ,$soapopt ions ) ;
i f (PEAR: : i s E r r o r ( $ r e t ) ){
421 print ( ”<br>An e r r o r #” . $ret−>getCode ( ) . ” occurred !<br>” ) ;
doogle.php 13
print ( ” Error : ” . $ret−>getMessage ( ) . ”<br>\n” ) ;r e turn fa l se ;}else // We have proper search r e s u l t s
426 {// Resu l t s from the Google search are s t o r ed in the o b j e c t $ r e t .// The f o l l ow i n g b l o c k o f code p r i n t s// out the s t r u c t u r e and con ten t s o f the o b j e c t to the screen :// p r i n t (”\n<br><pre>”) ;
431 $num = $ret−>est imatedTotalResultsCount ;}
re turn $ r e t ;}
436?>
about.html 14
<html><head>
3 <LINK REL=”SHORTCUT ICON” HREF=” http ://www. dooogle . com/ dooogle . i c o ”><meta http−equiv=” content−type ” content=” text /html ; cha r s e t=UTF−8”><t i t l e>Google</ t i t l e><style>
< !−−8 body , td ,a ,p , . h{ font−f ami l y : a r i a l , sans−s e r i f ;}
. h{ font−s ize : 20px ;}
.q{color :#0000 cc ;}//−−>
</ style>13 <script>
< !−−f unc t i on s f ( ) {document . f .q . f ocus ( ) ;}// −−>
</ script>18 </head>
<body bgcolor=#f f f f f f text=#000000 l ink=#0000cc vlink=#551a8b alink=#f f 0 0 0 0 onLoad=s f ( )><center>
<img src=” logo . g i f ” alt=” Dooogle ”><br><br>
23 <form action=”/ grab2 ” name=f></form><p>Dooogle concept by :</p><p>Cory Arcangel<br>
Michael Connor<br>28 Jack i e Passmore
</p><p>Dooogle i s an Eyebeam R + D p r o j e c t . Programmed in Sept + Nov by Cory
Arcangel with he lp<br>from Michael Frumin</center>
</body>33 </html>
images 15
logo.gif
logo sm.gif
nav current.gif
logo.gif
logo sm.gif
nav current.gif
nav first.gif
nav next.gif
nav next end.gif
nav page.gif
nav previous.gif
dooogle.ico
footnotes 16
1 Originally, the project was called ”Doogle” as per ”Google”, though given http://www.doogle.com was already registered,I - obvz - went with http://www.dooogle.com. Anyway, therefore, sometimes it’s seen as ”Doogle”, and others as ”Dooogle”.FYI.
2 The Google API this originally ran on was depreciated some time in the late aughts. I then had the site re-written in anewer API which was - again - depreciate a few years later. At that point, I canned the site which is it’s current state. Allin all, I think this had a good 7-8 years of ”live”.
3 See Figure 1.
4
http://nyti.ms/1IHH4Mr
FASHION & STYLE
What Taylor Swift Can Teach You AboutRompersBy MOLLY YOUNG AUG. 12, 2015
As with any style traditionally worn by babies — pigtails, overalls, pinafores
— a romper carries the risk of making an adult look as if she recently
escaped from her playpen.
It’s a tricky item. In the case of children, there’s an obvious utility: It’s
easier to get a wriggling tot into one piece of clothing than two. Adults with
normal muscle control don’t have to worry about basic maneuverability
when dressing themselves, and yet rompers are everywhere. What’s the
appeal?
To start with the obvious: It’s summer. And a romper is, by definition,
recreational clothing (unless your job description includes romping).
Snapping oneself into a playsuit allows a woman all sorts of conveniences.
“It provides a huge ‘no flashing’ benefit,” said Alexandra Amarotico, a
26-year-old photographer who lives in Hell’s Kitchen and has worn a
romper four out of the last eight days, by her count. “It’s an especially nice
perk in summer because your romper can be even shorter than your dresses
on a hot day.”
Yael Aflalo, founder of the eco-friendly label Reformation, is a fan, too.
“Rompers are great because you can make them work for day or night, and
they let you show off your legs without feeling overexposed,” she said.
Taylor Swift and Karlie Kloss have both been seen loping around town
in rompers from the store. To thwart the “big baby” look, Ms. Aflalo advised
a light hand with finishing touches. “Keep your accessories simple,” she
said. “I like a lace-up flat for day and a chic heel for night.”
Along with daytime looks (onesies that could be lifted straight from the
1962 film adaptation of “Lolita”), Ms. Swift made a case for the formal
romper at last year’s MTV Video Music Awards and again at a pre-Grammy
gala this year. It’s not an unprecedented move: Jerry Hall and Bianca
Jagger wore rompers in the ’70s, during an era when leisure wear oozed
silkily into evening wear.
Still, the best pro-romper argument may be the simplest one, which is
that it cuts morning-outfit deliberation time in half. Why make two choices,
top and bottom, when you can make one?
A version of this article appears in print on August 13, 2015, on page D8 of the New Yorkedition with the headline: Taylor Swift Masters the Romper.
© 2015 The New York Times Company
fini 18
Cory ArcangelTHE SOURCEIssue 7: Dooogle
;-)
A
RCANGE
L
S
URFWA
R
E
Published by Arcangel Surfware.Designed by Claire Kwong and Cory Arcangel.Special thx: Amanda Schmidt, Gil Gentile, Allie Tepper, Elliot Kaufman.With support from the Creative Capital Foundation.ISBN: 978-0-9966360-6-3
c© 2015 Cory Arcangelwww.arcangelsurfware.biz
1
Change Log 08-17-2015
• Changed www.arcangelsurfware.com on colophon 2 www.arcangelsurfware.biz ... uuuugh.
• Updated current Arcangel Surfware crew.
Change Log 02-27-2015
• Deleted project date from title page
• Changed www.coryarcangel.com to www.arcangelsurfware.biz 2
1$$$$$$$$$$$$$$$$$$$$$$
2Thi$ t3xt wa$ c0pi3d fr0m vari0u$ Can0n 0c3́ Vari0Print�3xtr3gist3r3d mat3rial$.