More sexy time
This commit is contained in:
parent
de6905a00d
commit
3e17f2c2f5
5
Makefile
5
Makefile
|
@ -2,7 +2,7 @@ INPUTS = index.xml footer.xml
|
|||
SUBDIRS = about events docs office news users clubs media
|
||||
|
||||
# the following two rules are there so cow gets built first.
|
||||
cow-first: recurse-cow books.xml members.xml menu.xml all
|
||||
cow-first: events.ics recurse-cow books.xml members.xml menu.xml all
|
||||
|
||||
recurse-cow:
|
||||
cd cow && $(MAKE) && cd ..
|
||||
|
@ -19,6 +19,9 @@ books.xml:
|
|||
ceoquery booklist | awk -F \| '{ isbn = $$1; title = $$2; author = $$3; edition = $$4; published = $$5; gsub(/&/, "\\&", title); gsub(/&/, "\\&", author); gsub(/&/, "\\&", published); gsub(/&/, "\\&", edition); gsub(/"/, "\\"", title); gsub(/"/, "\\"", author); gsub(/"/, "\\"", published); gsub(/"/, "\\"", edition); print "<book isbn=\"" isbn "\" title=\"" title "\" author=\"" author "\" edition=\"" edition "\" published=\"" published "\"/>"; }' >> $@
|
||||
echo '</booklist>' >> $@
|
||||
|
||||
events.ics:
|
||||
perl xml2ics.pl events.xml > events.ics
|
||||
|
||||
include default.mk
|
||||
|
||||
default.mk: default.mk.in
|
||||
|
|
14
cscweb.xsl
14
cscweb.xsl
|
@ -103,6 +103,20 @@
|
|||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
|
||||
<script language="javascript" src="http://reddit.com/button.js?t=3"></script>
|
||||
<script type="text/javascript">
|
||||
google_ad_client = "pub-5235744946475097";
|
||||
google_ad_width = 728;
|
||||
google_ad_height = 90;
|
||||
google_ad_format = "728x90_as";
|
||||
google_ad_type = "text_image";
|
||||
//2007-03-21: mcc
|
||||
google_ad_channel = "1106187834";
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
<xsl:call-template name="footer"/>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -27,7 +27,7 @@ Richard Stallman has cancelled his trip to Canada.
|
|||
</eventitem>
|
||||
|
||||
|
||||
<eventitem date="2007-03-20" time="4:30 PM"
|
||||
<eventitem date="2007-03-28" time="4:30 PM"
|
||||
room="TBA" title="Computational Physics Simulations">
|
||||
<short>A talk by David Tenty and Alex Parent</short>
|
||||
<abstract>
|
||||
|
@ -39,7 +39,7 @@ Richard Stallman has cancelled his trip to Canada.
|
|||
|
||||
|
||||
|
||||
<eventitem date="2007-03-21" time="4:30 PM"
|
||||
<eventitem date="2007-03-29" time="4:30 PM"
|
||||
room="TBA" title="All The Code">
|
||||
<short>A demo/intrdocution to a new source code search engine. A talk by Holden Karau</short>
|
||||
<abstract>
|
||||
|
@ -56,7 +56,7 @@ The talk will primarily be a demo of All The Code, along with a brief discussion
|
|||
</eventitem>
|
||||
|
||||
|
||||
<eventitem date="2007-03-20" time="4:30 PM"
|
||||
<eventitem date="2007-03-27" time="4:30 PM"
|
||||
room="TBA" title="TBA">
|
||||
<short>A talk by Michael Biggs</short>
|
||||
<abstract>
|
||||
|
|
|
@ -10,6 +10,31 @@
|
|||
Most of these should be available upon request at the Computer Science Club office to be burnt to CD or DVD should you so choose.
|
||||
</p>
|
||||
<ul>
|
||||
<mediaitem title="Introduction to 3-d Graphics">
|
||||
<abstract>
|
||||
<p>A talk for those interested in 3-dimensional graphics but unsure of
|
||||
where to start. Covers the basic math and theory behind projecting
|
||||
3-dimensional polygons on screen, as well as simple cropping
|
||||
techniques to improve efficiency. Translation and rotation of polygons
|
||||
will also be discussed.</p>
|
||||
</abstract>
|
||||
<mediafile file="the-prof-graphics.avi" type="DivX" size="272M" />
|
||||
<mediafile file="the-prof-graphics-xvid.avi" type="XviD" size="272M" />
|
||||
<mediafile file="the-prof-graphics.mpg" type="MPG" size="272M" />
|
||||
<mediafile file="the-prof-graphics.ogg" type="OGG/Theora" size="274M"/>
|
||||
<mediafile file="the-prof-graphics.wmv" type="Windows Media Video" size="277M" />
|
||||
</mediaitem> <mediaitem title="UW Software Start-ups: What Worked and What Did Not">
|
||||
<abstract>
|
||||
<p>A discussion of software start-ups founded by UW students and what they did that helped them grow
|
||||
and what failed to help. In order to share the most insights and guard the confidences of the
|
||||
individuals involved, none of the companies will be identifed.</p>
|
||||
</abstract>
|
||||
<mediafile file="larry-smith-talk2.avi" type="DivX" size="332M" />
|
||||
<mediafile file="larry-smith-talk2-xvid.avi" type="XviD" size="332M" />
|
||||
<mediafile file="larry-smith-talk2.mpg" type="MPG" size="332M" />
|
||||
<mediafile file="larry-smith-talk2.ogg" type="OGG/Theora" size="341M"/>
|
||||
<mediafile file="larry-smith-talk2.wmv" type="Windows Media Video" size="338M" />
|
||||
</mediaitem>
|
||||
<mediaitem title="Riding The Multi-core Revolution">
|
||||
<abstract>
|
||||
<p>For decades, mainstream parallel processing has been thought of as inevitable. Up until recent
|
||||
|
@ -69,9 +94,41 @@
|
|||
</mediaitem>
|
||||
<mediaitem title="1989 Bill Gates Talk on Microsoft">
|
||||
<abstract>
|
||||
<p>Bill Gates discusses the past, present and future of Microsoft. The
|
||||
talk was recorded in 1989 but was only recently digitized. The following
|
||||
picture was taken after the talk (click for higher-res).<br/><br/>
|
||||
<p>Bill Gates discusses the software and computer industry, and how
|
||||
Microsoft has
|
||||
contributed. Gates also discusses his views on the future of the
|
||||
computing
|
||||
industry. The talk was recorded in 1989 but was only recently
|
||||
digitized.
|
||||
<br/>
|
||||
Topics include:<ul>
|
||||
<li>The start and history of the microcomputer industry</li>
|
||||
<li>Microsoft BASIC and the Altair 880 computer</li>
|
||||
<li>The transition from 8-bit to 16-bit computers</li>
|
||||
<li>Microsoft's history with IBM</li>
|
||||
<li>640k memory barrier and 16-bit architectures</li>
|
||||
<li>32-bit 386 and 486 architectures</li>
|
||||
<li>RISC and multi-processor machines</li>
|
||||
<li>EGA graphics and WYSIWYG editors</li>
|
||||
<li>Decreasing cost of memory, harddisks and hardware in general</li>
|
||||
<li>The importance and future of the mouse</li>
|
||||
<li>Object-oriented programming</li>
|
||||
<li>MS-DOS and OS/2</li>
|
||||
<li>Multi-threaded and multi-application systems</li>
|
||||
<li>Synchronization in multi-threaded applications</li>
|
||||
<li>Diskette-based software</li>
|
||||
<li>UNIX standardization and POSIX</li>
|
||||
<li>History of the Macintosh and Microsoft' involvement</li>
|
||||
<li>Involvement of Xerox in graphical user interfaces</li>
|
||||
<li>Apple vs. Microsoft lawsuit regarding user interfaces</li>
|
||||
<li>OS/2 future as a replacement for MS-DOS</li>
|
||||
<li>Microsoft Office on Macintosh</li>
|
||||
<li>Thin/dumb clients</li>
|
||||
<li>Compact discs</li>
|
||||
<li>Multimedia applications</li>
|
||||
<li>Gates' current role at Microsoft</li>
|
||||
</ul>
|
||||
The following picture was taken after the talk (click for higher-res).<br/><br/>
|
||||
<a href="http://csclub1.cs.uwaterloo.ca/media/files/bill-gates-1989-big.jpg" target="_blank"><img src="http://csclub1.cs.uwaterloo.ca/media/files/bill-gates-1989.jpg" /></a></p>
|
||||
</abstract>
|
||||
<mediafile file="bill-gates-1989.mp3" type="mp3" size="85M" />
|
||||
|
|
|
@ -0,0 +1,130 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use XML::DOM;
|
||||
use strict;
|
||||
|
||||
# get the first element under a node of the given tag
|
||||
# @param node: node under which to look for elements
|
||||
# @param tag: the tage to look for
|
||||
# @return: first element under node with the given tag
|
||||
sub subvalue($$)
|
||||
{
|
||||
my ($class, $tag) = @_;
|
||||
return value($class->getElementsByTagName($tag)->item(0));
|
||||
}
|
||||
|
||||
# get the node value of the first child of a given node
|
||||
# @param node: whose child to use
|
||||
# @return: node value of given node's first child
|
||||
sub value($)
|
||||
{
|
||||
my ($class) = @_;
|
||||
if (undef == $class) { return undef; }
|
||||
|
||||
my $child = $class->getFirstChild();
|
||||
|
||||
if (undef == $child) {
|
||||
return undef;
|
||||
}
|
||||
|
||||
return $child->getNodeValue();
|
||||
}
|
||||
|
||||
print <<END_OF_FILE;
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
X-WR-CALNAME:University of Waterloo Computer Science Club
|
||||
PRODID:-//Apple Computer\, Inc//iCal 2.0//EN
|
||||
X-WR-RELCALID:3359A191-B19E-4B53-BADC-DFC084FC51C9
|
||||
X-WR-TIMEZONE:Canada/Eastern
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Canada/Eastern
|
||||
LAST-MODIFIED:20060912T200739Z
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20060301T070000
|
||||
TZOFFSETTO:-0400
|
||||
TZOFFSETFROM:+0000
|
||||
TZNAME:EDT
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20061029T020000
|
||||
TZOFFSETTO:-0500
|
||||
TZOFFSETFROM:-0400
|
||||
TZNAME:EST
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T010000
|
||||
TZOFFSETTO:-0400
|
||||
TZOFFSETFROM:-0500
|
||||
TZNAME:EDT
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END_OF_FILE
|
||||
|
||||
my $parser = XML::DOM::Parser->new();
|
||||
my $doc = $parser->parsefile($ARGV[0]);
|
||||
my @events = $doc->getElementsByTagName("eventitem");
|
||||
|
||||
foreach my $event (@events) {
|
||||
my $date = $event->getAttribute("date");
|
||||
my $time = $event->getAttribute("time");
|
||||
my $talk_title = $event->getAttribute("title");
|
||||
$talk_title =~ s/[:;,]//g;
|
||||
|
||||
my $room = $event->getAttribute("room");
|
||||
|
||||
my $short = subvalue($event, "short");
|
||||
$short =~ s/[:;,]//g;
|
||||
my $abstract = $event->getElementsByTagName("abstract")->item(0)->toString();
|
||||
|
||||
my $ical_date = `date -d"$date" +%Y%m%d`;
|
||||
chomp $ical_date;
|
||||
|
||||
my ($ical_start, $ical_end);
|
||||
|
||||
if ($time =~ /(.*)-(.*)/) {
|
||||
$ical_start = ical_time($1);
|
||||
$ical_end = ical_time($2);
|
||||
} else {
|
||||
$ical_start = ical_time($time);
|
||||
$ical_end = ical_time("$time + 1 hour");
|
||||
}
|
||||
|
||||
$abstract =~ s/<abstract>//;
|
||||
$abstract =~ s/<\/abstract>//;
|
||||
$abstract =~ s/\n/ /sg;
|
||||
|
||||
my $ical_abstract = "\"$abstract\"";
|
||||
|
||||
sub ical_time {
|
||||
my ($ds) = @_;
|
||||
my $d = `date -d"$ds" +\%H\%M\%S`;
|
||||
chomp $d;
|
||||
return $d;
|
||||
}
|
||||
|
||||
print <<END_OF_EVENT;
|
||||
|
||||
BEGIN:VEVENT
|
||||
LOCATION:University of Waterloo - $room
|
||||
DTSTAMP:20060912T200708Z
|
||||
UID:${ical_date}T${ical_start}\@csclub.uwaterloo.ca
|
||||
SEQUENCE:11
|
||||
DTSTART;TZID=Canada/Eastern:${ical_date}T${ical_start}
|
||||
DTEND;TZID=Canada/Eastern:${ical_date}T${ical_end}
|
||||
SUMMARY:<a href=http://www.csclub.uwaterloo.ca>$talk_title</a> -- $short
|
||||
DESCRIPTION:$ical_abstract
|
||||
END:VEVENT
|
||||
END_OF_EVENT
|
||||
}
|
||||
|
||||
print "END:VCALENDAR\n";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue