global city front page (for saskia sassen)
2002
by sawad brooks
#!/usr/bin/perl
# code creates a "globalcity" newspaper front page
# by sawad brooks
# august 15, 2002
# program creates on your computer an HTML file named "global.html"
use Socket;
@space = ("www.nytimes.com", "www.theguardian.com/uk", "www.asahi.com");
open(FILE,">global.html") || die("Cannot Open File");
select(FILE); $| = 1; select(STDOUT);
srand;
$cityindex = int(rand 3);
print FILE "<div style=\"position: absolute; left: 0px; top: 0px\">";
print "connecting $space[$cityindex] ...";
@stream = &GetHTTP($space[$cityindex], "/");
foreach $s (@stream) { print FILE $s; print "."; }
print FILE "<\div>";
$cityindex++; if ($cityindex > 2) { $cityindex = 0; }
print FILE "<div style=\"position: absolute; left: 200px; top: 0px\">";
print "connecting $space[$cityindex] ...";
@stream = &GetHTTP($space[$cityindex], "/");
foreach $s (@stream) { print FILE $s; print "."; }
print FILE "<\div>";
$cityindex++; if ($cityindex > 2) { $cityindex = 0; }
print FILE "<div style=\"position: absolute; left: 400px; top: 0px\">";
print "connecting $space[$cityindex] ...";
@stream = &GetHTTP($space[$cityindex], "/");
foreach $s (@stream) { print FILE $s; print "."; }
print FILE "<\div>";
print FILE "<head><title>THREE POINTS IN SPACE - WITH HELP FROM
SASSEN<\title><\head>";
exit;
sub GetHTTP {
local($hostname, $doc) = @_;
local($port, $iaddr, $paddr, $proto, $line, @output);
# ignore the "host:port" notation, and assume http=80 everytime.
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die
"socket(): $!\n";
$paddr = sockaddr_in(80, inet_aton($hostname));
connect(SOCK, $paddr) || die "connect(): $!\n";
select (SOCK); $| = 1; select(STDOUT);
# send the HTTP-Request
print SOCK "GET $doc HTTP/1.0\n\n";
# now read the entire response:
do { $line = <SOCK> } until ($line =~ /^\r\n/);
@output = <SOCK>;
close(SOCK);
return @output;
}
Note: You can copy or download
the script above and run it locally on your computer.
What you need:
Perl for Macintosh
http://www.macperl.com/
http://www.perl.com/CPAN/ports/mac/MacPerl-5.6.1r1_full.bin
Perl for Windows
http://www.activestate.com/
http://www.activestate.com/Products/Download/Register.plex?id=ASPNPerl&a=e
Click here to see a Web version of the project that generates an HTML page into
the browser:
![]()