#!/usr/bin/perl -w use URI::Escape; my @addr = ( { 'name' => 'Arun Chauhan' , 'email' => 'achauhan' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.cs.rice.edu/~achauhan/' , },{ 'name' => 'Dinesh Rajan' , 'email' => 'dinesh' , 'nick' => 'dins' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~dinesh/' , },{ 'name' => 'Sitaram Iyer' , 'email' => 'ssiyer' , 'nick' => 'sita miyer' , 'addr' => '8450 Cambridge #2241' , 'place' => 'Scotland Yard, Astrodome' , 'phone' => '713-EVE-MARY' , 'oaddr' => 'DH3013' , 'ophone' => 'rice xBANK' , 'pphone' => '91-22-8390347' , 'bday' => '6aug77' , 'webpage' => 'http://www.cs.rice.edu/~ssiyer/' , },{ 'name' => 'Vikram Bhide' , 'email' => 'vikram' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Vishwas Sundaramurthy' , 'email' => 'vishwas' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~vishwas/' , },{ 'name' => 'Ramesh Neelamani' , 'email' => 'neelsh' , 'nick' => 'neelsh' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~neelsh/' , },{ 'name' => 'Felix Fernandes' , 'email' => 'felixf' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~felixf/' , },{ 'name' => 'Vinay Ribeiro' , 'email' => 'vinay' , 'nick' => 'viney' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~vinay/' , },{ 'name' => 'Dr. R D Prabhu' , 'email' => 'rdprabhu' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Prasanna Jog' , 'email' => 'pkjog' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~pkjog/' , },{ 'name' => 'Prasanna Gandhi' , 'email' => 'gandhips' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ruf.rice.edu/~gandhips/' , },{ 'name' => 'Sanjay Sahasrabudhe' , 'email' => 'sanjay' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ruf.rice.edu/~sanjay/' , },{ 'name' => 'Parthasarathy Ranganathan' , 'email' => 'parthas' , 'nick' => 'partha' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~parthas/' , },{ 'name' => 'Karthick Rajamani' , 'email' => 'karthick' , 'nick' => 'karthik' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.cs.rice.edu/~karthick/' , },{ 'name' => 'Mahesh Kallahalla' , 'email' => 'kalla' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~kalla/' , },{ 'name' => 'Suman Das' , 'email' => 'suman' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~suman/' , },{ 'name' => 'Srikrishna Bhashyam' , 'email' => 'skrishna' , 'nick' => 'sk' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~skrishna/' , },{ 'name' => 'Krishna Kiran' , 'email' => 'mkkiran' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Ravishankar Vadali' , 'email' => 'vadali' , 'nick' => 'ravi' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ruf.rice.edu/~vadali/' , },{ 'name' => 'V S Ravi Rao' , 'email' => 'ravi' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~ravi/' , },{ 'name' => 'Murthy Durbhakula' , 'email' => 'murthy' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~murthy/' , },{ 'name' => 'Sanjeeb Dash' , 'email' => 'sanjeebd' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.caam.rice.edu/~sanjeebd/' , },{ 'name' => 'Sridhar Rajagopal' , 'email' => 'sridhar' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~sridhar/' , },{ 'name' => 'Vinod Kumar' , 'email' => 'vk' , 'nick' => 'vino' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ruf.rice.edu/~vk/' , },{ 'name' => 'Vinay Bharadwaj' , 'email' => 'vickyvin' , 'nick' => 'vicky' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~vickyvin/' , },{ 'name' => 'Sripriya Venkataraman' , 'email' => 'priyav' , 'nick' => 'priya' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~priyav/' , },{ 'name' => 'Sunitha Kesavan' , 'email' => 'sunitha' , 'nick' => 'suni sunni' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~sunitha/' , },{ 'name' => 'Anand Ramasubramanian' , 'email' => 'anandk' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~anandk/' , },{ 'name' => 'Prabhu Prakashganesh' , 'email' => 'prabhu' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~prabhu/' , },{ 'name' => 'Aditya Kapoor' , 'email' => 'kapoor@alumni.rice.edu' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Abhijit Naik' , 'email' => 'naika' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Amol Thatte' , 'email' => 'thatte' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Sanjay Wankhade' , 'email' => 'wankhade' , 'nick' => 'wankhede' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ruf.rice.edu/~wankhade/' , },{ 'name' => 'Sameer Siruguri' , 'email' => 'siruguri' , 'nick' => 'sam' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.cs.rice.edu/~siruguri/' , },{ 'name' => 'Rajesh Rengarajan' , 'email' => 'rajeshr' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~rajeshr/' , },{ 'name' => 'Dhananjay Joshi' , 'email' => 'djoshi' , 'nick' => 'dj' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~djoshi/' , },{ 'name' => 'Ramapriya Parthasarathy' , 'email' => 'rpartha' , 'nick' => 'priya' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.owlnet.rice.edu/~rpartha/' , },{ 'name' => 'Aasheesh Chhiber' , 'email' => 'chhibs' , 'nick' => 'chibbs' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Vikram Kanodia' , 'email' => 'kanodia' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ece.rice.edu/~kanodia/' , },{ 'name' => 'Martin Demello' , 'email' => 'mdemello' , 'nick' => 'nerd' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Varadarajan Nadathur' , 'email' => 'npraja' , 'nick' => 'vardha' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Sriram Narasimhan' , 'email' => 'nsriram' , 'nick' => 'sri' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Shriram Sarvotham' , 'email' => 'shri' , 'nick' => 'smari, smaire' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ruf.rice.edu/~shri/' , },{ 'name' => 'Girish Nathan' , 'email' => 'gsnathan' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Kanu Chadha' , 'email' => 'kanu' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => 'http://www.ruf.rice.edu/~kanu/' , },{ 'name' => 'Naureen Shahid' , 'email' => 'nshahid' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Auleen Ghosh' , 'email' => 'aghosh' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Nagaraju Rangaraju' , 'email' => 'nag' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Priyank Jaiswal' , 'email' => 'priyank' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Deepa George' , 'email' => 'dsgeorge' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Prabhu Janakiraman' , 'email' => 'janak' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , },{ 'name' => 'Rekha Baliga' , 'email' => 'Rekha_Baliga@bmc.com' , 'nick' => '' , 'addr' => '-' , 'place' => '-' , 'phone' => '-' , 'oaddr' => '-' , 'ophone' => '-' , 'pphone' => '-' , 'bday' => '-' , 'webpage' => '' , }, ); #-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- my $cgibin = "http://localhost/cgi-bin"; sub font { my $c = shift; $c = $c ? ($c eq "-") ? ' color="#503000"' : " color=\"$c\"" : ""; "" } my $endf = ""; my $twocolumn = 1; $head = ' ISAR address book '.font("-").' '; $head .= ($#ARGV >= 0 && $ARGV[0] eq "STRIP") ? '
'.font("purple"). 'This is a stripped-down, public version of the password-protected page.'.$endf. '

' : ""; my @keys = ('name','email','nick','addr','place','phone','oaddr','ophone', 'pphone','bday'); # no webpage, note. sub vp { return (($_[0] ne "") && ($_[0] ne "-") && ($_[0] ne "?")); } my ($name, $email, $nick, $addr, $place, $phone, $oaddr, $ophone, $pphone, $bday) = ("","","","","","","","","",""); @addr = sort { my %x = %{$a}; my %y = %{$b}; $x{name} cmp $y{name} } @addr; system("cat head.phonebook > phonebook.txt"); print STDERR "phonebook.txt.. "; open(FP, ">>phonebook.txt") || die "can't open file: $!"; foreach (@addr) { my %a = %{$_}; foreach (@keys) { $$_ = $a{$_}; } my $n = "$name, $email" . ($nick eq "" ? "" : ", $nick"); sub px { printf(FP "%-23s $n $_[0]\n", $_[1]) if vp($_[1]); }; foreach (split /,[ \t]*/,$phone) { px "r", $_; } foreach (split /,[ \t]*/,$ophone) { px "o", $_; } foreach (split /,[ \t]*/,$pphone) { px "p", $_; } print FP "\n"; } close FP; my $a_z = ""; my $content = ""; sub addchar { $a_z .= "" . ($_[1] ? "" : "") . font().$_[0].$endf . ($_[1] ? "" : "") . "\n"; } sub generate { my $printoutable = $_[0]; my @email_addresses = (); my $curchar = ""; $content .= "\n" if $twocolumn; my $n = 0; foreach (@addr) { my %a = %{$_}; $content .= (((($n % 2) == 0)?"\n":"")."\n" . ((($n % 2) == 0)?"":"\n")) if $twocolumn; $content .= "
\n" if (!$twocolumn); $n++; } $s = chr(ord("Z")+1); if (ord($curchar) != ord($s)-1) { foreach (chr(ord($curchar)+1) .. chr(ord($s)-1)) { addchar($_,0); } } $content .= ((($n % 2) == 0) ? "" : "\n") if $twocolumn; $content .= "
\n") if $twocolumn; $content .= "\n"; foreach (@keys) { my $v = ($a{$_} eq "" ? " " : $a{$_}); if ($_ eq "name") { my ($ustart,$uend) = (font("white"),$endf); if (!$printoutable && defined($a{webpage}) && $a{webpage} ne "" && $a{webpage} ne "?" && $a{webpage} ne "-") { $ustart = "".font("white")."_"; $uend = "_$endf"; } my $s = $v; $s =~ s/(.).*/$1/; $s =~ tr/a-z/A-Z/; $content .= "\n"; } else { if ($_ eq "email") { my $e = ($v =~ /\@/) ? $v : "$v\@rice.edu"; $content .= "\n"; $v = "$e"; push @email_addresses, $e; } elsif ($_ =~ /.*phone/) { my $e = $a{$_}; if (vp($e)) { my @u = (); $cgibin =~ s/\/*$//; map { my $j = $_; my $i = $j; $i =~ s/ /\%20/g; push @u, "$j"; #push @u, "$j"; } split(/,[ \t]*/,$v); $v = join(", ", @u); } } elsif ($_ eq "addr") { if ($v ne "" && $v ne "\ " && $v ne "?" && $v ne "-") { $v = "$v"; } } $content .= "" . "\n"; } } $content .= "
\n"; if ($s ne $curchar) { $content .= "\n"; if (ord($curchar) != ord($s)-1) { foreach (chr(ord($curchar)+1) .. chr(ord($s)-1)) { addchar($_,0); } } $curchar = $s; addchar($curchar,1); } $content .= "\"*\"" . "  $ustart$v$uend
".font("-")."$_$endf".font("-")."$v$endf
\n"; $content .= ("
\n" if $twocolumn; } print STDERR "index.html.. "; open(FP, ">index.html") || die "can't open index.html: $!"; print FP $head; print FP while (); print FP "
"; print FP "
\n"; $content = ""; generate(0); print FP $a_z; print FP "
\n"; print FP $content; close FP; print STDERR "printoutable.html.. "; open(FP, ">printoutable.html") || die "can't open printoutable.html: $!"; print FP $head; $content = ""; generate(1); print FP $content; close FP; print STDERR "junta.tex.. "; open(FP, ">junta.tex") || die "can't open file: $!"; print FP "\\documentstyle{article} \\addtolength{\\topmargin}{-1.9in}" . "\\addtolength{\\oddsidemargin}{-2.1in} \\begin{document}" . "\\tiny \\begin{tabular}{|l|l|} \\hline \\\\" . "\\begin{minipage}{2in} \\begin{verbatim}"; my $m = 0; my $n = 0; foreach (@addr) { my %a = %{$_}; foreach (@keys) { $$_ = $a{$_}; } $n++ if ($nick ne "" || vp($phone) || vp($ophone)); } foreach (@addr) { my %a = %{$_}; foreach (@keys) { $$_ = $a{$_}; } my $x = ""; $x .= ", $phone" if vp($phone); $ophone =~ s/rice x/x/g; $x .= ", $ophone" if vp($ophone); if ($x ne "") { $x = ", $nick$x" if ($nick ne ""); print FP "$name$x\n"; $m++; $m++; if ($m == $n || $m == $n-1) { print FP "\\end{verbatim}\\vspace{-2ex}\\end{minipage}&" . "\\begin{minipage}{2in}\\begin{verbatim}"; } } } print FP "\\end{verbatim}\\vspace{-2ex}\\end{minipage}\\\\ \\hline" . "\\end{tabular} \\end{document}"; close FP; print STDERR "emails.txt.. "; open(FP,">emails.txt") || die "can't open file: $!"; foreach (@addr) { my %a = %{$_}; foreach (@keys) { my $v = ($a{$_} eq "" ? " " : $a{$_}); if ($_ eq "name") { print FP "$v"; } else { if ($_ eq "email") { my $e = ($v =~ /\@/) ? $v : "$v\@rice.edu"; print FP " <$e>,\n"; } } } } close FP; print STDERR "done\n"; __DATA__ Hi -- here are: To search, just use the browser's search/find feature: alt-F in netscape, ctrl-F in IE, / in lynx. Or click on the A-Z for quick traversal.

Updates to this page: if any of this information becomes outdated or is missing, send me a mail with relevant corrections and I'll fix things asap. Likewise for any *any* sort of suggestions, of *any* kind.

Quick indexing with [A B C D E F..]

There is an automatically generated stripped-down, password-unprotected version of this same page that censors away everything but name, email and webpage URL - which can be obtained online anyway, unless you had specifically asked not to - if that's what you want (i.e. some more fields removed from your entry, for whatever reason), contact me. I have the ability of rather trivially exposing individual fields for people, and will be glad to do so on request (tell me what to expose). (mine's entirely visible).

Addresses click away to yahoo maps.