netplay talk news item and media entry
[www/www.git] / media / index.xml
1 <?xml version='1.0'?>
2 <!DOCTYPE cscpage SYSTEM "../csc.dtd">
3
4 <cscpage title="Media">
5 <header/>
6   <section title="CSC Media">
7     Here you will find a wide variety of audio and video recordings of past
8     CSC and other university-related talks. Some of these files are very large,
9     and we do not recommend attempting to stream them. Most of these should be
10     available upon request at the Computer Science Club office to be burnt to
11     CD or DVD should you so choose.
12     <ul class="media">
13
14 <mediaitem title="Unix 102 Spring 2017">
15   <abstract>
16     <p>
17       Finished the bash unit in CS246 and still don't see what's great about
18       Unix? Want to gain some more in-depth knowledge, or some less well-known
19       tips and tricks for using the command line? Unix 102 is the event for you!
20       Fatema is "kind of successful" and "knows things about Unix" and you
21       can be too! Topics covered will be: users, groups and permissions, ez
22       string manipulation, additional skills, tips and tricks.
23     </p>
24   </abstract>
25   <presentor>Fatema, Charlie</presentor>
26   <mediafile file="unix102-s17.mp4" type="Unix 102 Spring 2017 (mp4)" />
27   <thumbnail file="unix102-s17-thumb-small.jpg"/>
28 </mediaitem>
29
30 <mediaitem title="Netplay in Emulators">
31         <abstract>
32                 <p>You've got a game, but you didn't write it. You're running it by emulating the machine it was meant to run on, and the machine it was meant to run on never had support for networking. Now, you want to play with your friend, over the Internet. Oh, and it's not acceptable to incur any latency between your controller and the game while we're at it. Surely that can't be possible, right? Wrong. This talk will discuss the re-emulation technique for netplay used commercially by a system called GGPO and freely in an emulator frontend called RetroArch, and how similar techniques can be applied to make networking work in other scenarios it was never meant for. This will be an unprepared, impromptu talk with no slides, so it should either be a fascinating dive into a little-heard-of technique, or an impenetrable mess of jargon and algorithms. Either way, it should be fun. Professor Richards is the maintainer of the netplay infrastructure for RetroArch, a popular emulator frontend for multiple platforms.</p>
33         </abstract>
34         <presentor>Gregor Richards</presentor>
35         <mediafile file="gregor-talk.mp4" type="Netplay in Emulators (mp4)" />
36         <!--    <thumbnail file="gregor-talk-thumbnail.png"/>-->
37 </mediaitem>
38
39
40 <mediaitem title="ALT-TAB - Manic PXE Dream Servers">
41   <abstract>
42     <p>
43       PXE stands for Pre-eXecution Environment. Fatema will talk about the
44       motivation for using it, examples of industry uses and a brief overview
45       of what it is and how it works.
46     </p>
47   </abstract>
48   <presentor>Fatema Boxwala</presentor>
49   <mediafile file="fatema-manic-pxe-dream-servers.mp4" type="Manic PXE Dream Servers (mp4)" />
50   <thumbnail file="fatema-manic-pxe-dream-servers-thumb-small.jpg"/>
51 </mediaitem>
52
53 <mediaitem title="Feminism in STEM - a 101 Panel">
54   <abstract>
55     <p>
56       A panel organized by the CS Club on how feminism manifests itself in STEM,
57       specifically CS and Engineering.
58     </p>
59     <p>
60       Panelists are Dr. Prabhakar Ragde, Swetha Kulandaivelan, and Filzah Nasir.
61       Moderated by Fatema Boxwala.
62     </p>
63     <p>
64       Due to battery trouble, the first few minutes of audio were lost. The panelists
65       were introduced as Prabhakar from the School of Computer Science, Swetha from
66       4A Mechanical Engineering, and Filzah as an Engineering grad student.
67     </p>
68     <p>
69       Sample questions from the panel section are:
70       <ul>
71         <li>Filzah and Swetha, can you expand on how Engineering tries to keep its curriculum grounded in reality?</li>
72         <li>Why would an Engineering 101 instructor tell the class to design urinals?</li>
73         <li>Prabhakar, how can men in STEM help women get their voices heard?</li>
74       </ul>
75
76       Sample questions from the audience after the panel:
77       <ul>
78         <li>As a woman in CS, how do I know I wasn't hired to meet a diversity target?</li>
79         <li>Filzah, you mentioned that "getting to 50%" isn't what you're interested in. Can you expand on that?</li>
80         <li>An admittedly selfish argument I've seen on Reddit asks why we should cooperate with marginalized
81           communities when we're not significantly affected by them? (Response at 10 minutes into questions)</li>
82         <li>Prabhakar, how has CS changed since you were an undergrad?</li>
83       </ul>
84     </p>
85     <p>
86       A statistical errata: The Math faculty proportionally gives offers of admission to the 25% of women
87       that apply, and there are no significant disproportionate dropout rates.
88     </p>
89   </abstract>
90   <presentor>Prabhakar, Fatema, Filzah, Swetha</presentor>
91   <mediafile file="fem101-panel-discussion.mp4" type="Panel questions and discussion (mp4)" />
92   <mediafile file="fem101-questions.mp4" type="Audience questions (mp4)" />
93   <thumbnail file="fem101-questions-thumb-small.jpg"/>
94 </mediaitem>
95
96 <mediaitem title="Bringing OOP Best Practices to the World of Functional Programming">
97   <abstract>
98     <p>
99       I transitioned from writing software in imperative, object-oriented
100       (OO) programming languages to doing functional programming (FP)
101       full-time, and you can do it, too! In this talk, I'll make a case for
102       using FP for real-world development, cover some cases where common FP
103       language features substitute for design patterns and OOP structure,
104       and provide some examples of translating traditional OO design
105       patterns into functional code.
106     </p>
107     <p>
108       Due to battery shenanigans, not the entire talk was recorded. Instead, you
109       can get the slides for this talk at
110       <a href="https://hashman.ca/osb-2016/">the talks section of her site</a>.
111     </p>
112   </abstract>
113   <presentor>Elana Hashman</presentor>
114   <mediafile file="ehashman-oop-best-practices.mp4" type="OOP Best Practices (mp4)" />
115   <thumbnail file="ehashman-oop-best-practices-thumb-small.jpg"/>
116 </mediaitem>
117
118 <mediaitem title="Open Source Computer Sound Measurement">
119   <abstract>
120     <p>
121       An ideal computer audio system should faithfully reproduce signals of
122       all frequencies in the audible range (20 to 20,000 cycles per second).
123       Real systems, particularly mobile devices and laptops, may still
124       produce acceptable quality, but often have a limited response,
125       particularly at the low (bass) frequencies.
126
127       Sound/acousic energy refers to time varying pressure waves in air.
128       When recording sound, the acoustic signal will be picked up by
129       microphone, which converts it to electrical signals (voltages).  The
130       signal is then digitized (analog to digital conversion) and stored as
131       a stream of numbers in a data file.  On playback the digital signal is
132       converted to an electrical signal (digital to analog conversion) and
133       finally returned as an acoustic signal by a speaker and/or headphones.
134
135       In this talk I will present open source software (Octave/Linux) to
136       measure the end-to-end frequency response of an audio system using the
137       Discrete Fourier Transform.  I will demonstrate the software using a
138       standard USB audio interface and a consumer grade omnidirectional
139       microphone.
140
141       This is joint work with John Vanderkooy, Distinguished Professor
142       Emeritus, Department of Physics and Astronomy.
143     </p>
144   </abstract>
145   <presentor>Richard Mann</presentor>
146   <mediafile file="rmann-oss-sound-measurement.mp4" type="OSS Sound Measurement (mp4)" />
147   <thumbnail file="rmann-oss-sound-measurement-thumb-small.jpg"/>
148 </mediaitem>
149
150 <mediaitem title="Network Infrastructure talk">
151   <abstract>
152     <p>
153       Steve Bourque and Mike Patterson of IST will give a brief overview of campus network connectivity and interconnectivity. Steve will describe the general connections, and Mike will talk about specific security measures in place. We'll have refreshments!
154     </p>
155   </abstract>
156   <presentor>Steve Bourque and Mike Patterson</presentor>
157   <mediafile file="uw-infrastructure-sbourque-half.mp4" type="Steven Bourque Talk (x264)" />
158   <mediafile file="uw-infrastructure-mpatters-half.mp4" type="Mike Patterson Talk (x264)" />
159   <mediafile file="uw-infrastructure-mpatters-slides.pdf" type="Mike Patterson Slides (pdf)" />
160   <mediafile file="uw-infrastructure-sbourque-slides.pdf" type="Steven Bourque Slides (pdf)" />
161   <thumbnail file="uw-infrastructure-sbourque-half-thumb-small.jpg"/>
162 </mediaitem>
163
164 <mediaitem title="CSC and WiCS Career Panel">
165   <abstract>
166     <p>
167       The CSC is joining WiCS to host a career panel! Come hear from Waterloo
168       alumni as they speak about their time at Waterloo, experience with coop,
169       and life beyond the university. A great chance to network and seek
170       advice!
171     </p>
172     <p>
173       The panelists are:
174       <ul>
175         <li>Joanne Mckinley - Software Engineer, Google</li>
176         <li>Carol Kilner - COO, BanaLogic Corporation</li>
177         <li>Harshal Jethwa - Consultant, Infusion</li>
178         <li>Dan Collens - CTO, Big Roads</li>
179       </ul>
180     </p>
181   </abstract>
182   <presentor>Joanne McKinley, Carol Kilner, Harshal Jethwa, Dan Collens</presentor>
183   <thumbnail file="csc-wics-f15-panel-thumb-small.jpg" />
184   <mediafile file="csc-wics-f15-panel.mp4" type="Talk (x264)" />
185 </mediaitem>
186
187 <mediaitem title="Back to Back Talks: Culture Turnaround and Software Defined Networks">
188   <abstract>
189     <p>
190       Back to back talks from John Stix and Francisco Dominguez on turning
191       a company's culture around and on Software Defined Networks!
192     </p>
193     <p>
194       John Stix will be talking about how he turned around the corporate culture at Fibernetics Corporation.
195     </p>
196     <p>
197       Francisco Dominguez will be talking about Software Defined Networks, which
198       for example can turn multiple flakey internet connections into one reliable
199       one.
200     </p>
201     <p>
202       The speakers are:
203       <ul>
204         <li>John Stix - President, Fibernetics</li>
205         <li>Francisco Dominguez - CTO, Fibernetics</li>
206       </ul>
207     </p>
208     <p>
209       Food and drinks will be provided!
210     </p>
211   </abstract>
212   <presentor>John Stix, Francisco Dominguez</presentor>
213   <thumbnail file="fibernetics-thumb-small.jpg" />
214   <mediafile file="fibernetics.mp4" type="Talk (x264)" />
215 </mediaitem>
216
217 <mediaitem title="Starting a VN Indie Game Company as a UW Student">
218   <abstract>
219     <p> Many people want to make games as signified by all the game development
220         schools that are appearing everywhere. But how would you do it as a UW
221         student? This talk shares the experiences of how making Sakura River
222         Interactive was founded without any Angel/VC investment.
223     </p>
224     <p> The talk will start off with inspiration drawn of Co-op Japan, to it's
225         beginnings at Velocity. Then a reflection of how various game
226         development and business skills was obtained in the unexpected ways at
227         UW will follow. How the application of probabilities, theory of
228         computation, physical/psychological attraction theories was used in the
229         development of the company's first game. Finally how various Computer
230         Science theories helped evaluate feasibility of several potential
231         incoming business deals.
232     </p>
233     <a href="http://www.sakurariver.ca/">From Sakura River interactive</a>
234   </abstract>
235   <presentor>Alfe Clemencio</presentor>
236   <thumbnail file="indie-game-dev-clemencio-thumb-small.jpg" />
237   <mediafile file="indie-game-dev-clemencio.mp4" type="Talk (x264)" />
238 </mediaitem>
239
240 <mediaitem title="Cory Doctorow - The War on General Purpose Computing">
241   <abstract>
242     <p>
243       No Matter Who's Winning the  War on General Purpose Computing, You're Losing
244     </p>
245     <p>
246       If cyberwar were a hockey game, it'd be the end of the first period and
247       the score would be tied 500-500. All offense, no defense.
248     </p>
249     <p>
250       Meanwhile, a horrible convergence has occurred as everyone from car
251       manufacturers to insulin pump makers have adopted the inkjet printer
252       business model, insisting that only their authorized partners can make
253       consumables, software and replacement parts -- with the side-effect of
254       making it a felony to report showstopper, potentially fatal bugs in
255       technology that we live and die by.
256     </p>
257     <p>
258       And then there's the FBI and the UK's David Cameron, who've joined in
259       with the NSA and GCHQ in insisting that everyone must be vulnerable to
260       Chinese spies and identity thieves and pervert voyeurs so that the spy
261       agencies will always be able to spy on everyone and everything, everywhere.
262     </p>
263     <p>
264       It's been fifteen years since the copyright wars kicked off, and we're
265       still treating the Internet as a glorified video-on-demand service --
266       when we're not treating it as a more perfect pornography distribution
267       system, or a jihadi recruitment tool.
268     </p>
269     <p>
270       It's all of those -- and more. Because it's the nervous system of the
271       21st century. We've got to stop treating it like a political football.
272     </p>
273     <p>
274       (Cory Doctorow is affiliated with the Canadian branch of EFF, the
275       <a href="https://www.eff.org/">Electronic Frontier Foundation</a>)
276     </p>
277   </abstract>
278   <presentor>Cory Doctorow</presentor>
279   <thumbnail file="cory-doctorow-f2015-thumb-small.png" />
280   <mediafile file="cory-doctorow-f2015.mp4" type="Talk (x264)" />
281   <mediafile file="cory-doctorow-f2015-hq.mp4" type="Talk (x246 Big File)" />
282 </mediaitem>
283
284 <mediaitem title="Algorithms for Shortest Paths">
285   <abstract>
286     <p>
287       Finding shortest paths is a problem that comes up in many applications:
288       Google maps, network routing, motion planning, connectivity in social
289       networks, and etc.
290       The domain may be a graph, either explicitly or implicitly represented,
291       or a geometric space.
292     </p>
293     <p>
294       Professor Lubiw will survey the field, from Dijkstra's foundational algorithm to
295       current results and open problems.
296       There will be lots of pictures and lots of ideas.
297     </p>
298   </abstract>
299   <presentor>Anna Lubiw</presentor>
300   <thumbnail file="alubiw-shortest-paths-thumb-small.jpg" />
301   <mediafile file="alubiw-shortest-paths.mp4" type="Talk (x264)" />
302 </mediaitem>
303
304 <mediaitem title="Infra Sound is All Around Us">
305   <abstract>
306     <p>
307       Infra sound refers to sound waves below the range of human hearing.
308       Infra sound comes from a number of natural phenomena including weather
309       changes, thunder, and ocean waves. Common man made sources include
310       heating and ventilation systems, industrial machinery, moving vehicle
311       cabins (air, trains, cars), and energy generation (wind turbines, gas
312       plants).
313     </p>
314     <p>
315       In this talk Richard Mann will present equipment he has built to measure
316       infra sound, and analyse some of the infra sound he has recorded.
317     </p>
318     <p>
319       Note: In Winter 2016 Richard Mann will be offering a new course, in
320       Computer Sound. The course will appear as CS489/CS689 ("Topics in
321       Computer Science"). This is a project-based course (60% assignments, 40%
322       project, no final). Details at his web page,
323       <a href="http://www.cs.uwaterloo.ca/~mannr">~mannr</a>.
324     </p>
325   </abstract>
326   <presentor>Richard Mann</presentor>
327   <thumbnail file="mannr-infrared-thumb-small.jpg" />
328   <mediafile file="mannr-infrared.mp4" type="Talk (x264)" />
329 </mediaitem>
330
331 <mediaitem title="Runtime Type Inference in Dynamic Languages">
332   <abstract>
333     <p>
334       How do we make dynamic languages fast? Today, modern Javascript engines
335       have demonstrated that programs written in dynamically typed scripting lan-
336       guages can be executed close to the speed of programs written in languages
337       with static types. So how did we get here? How do we extract precious type
338       information from programs at runtime? If any variable can hold a value of any
339       type, then how can we optimize well?
340     </p>
341     <p>
342       This talk covers a bit of the history of the techniques used in this space, and
343       tries to summarize, in broad strokes, how those techniques come together to
344       enable efficient jit-compilation of dynamically typed programs.
345       To do the topic justice, Kannan Vijayan will be talking the Monday and
346       Tuesday March 9th and 10th.
347     </p>
348     <p>
349       Does that mean two consecutive days of free food? Yes it does.
350     </p>
351   </abstract>
352   <presentor>Kannan Vijayan</presentor>
353   <thumbnail file="vijayan-type-inference-thumb-small.jpg" />
354   <mediafile file="vijayan-type-inference.mp4" type="Talk (x264)" />
355 </mediaitem>
356
357 <mediaitem title="SAT and SMT solvers">
358   <abstract>
359     <p>
360       Does your program have an overflow error? Will it work with all inputs?
361       How do you know for sure? Test cases are the bread and butter of
362       resilient design, but bugs still sneak into software. What if we could
363       prove our programs are error-free?
364     </p>
365     <p>
366       Boolean Satisfiability (SAT) solvers determine the ‘satisfiability’ of
367       boolean set of equations for a set of inputs. An SMT solver
368       Satisfiability Modulo a Theory) applies SMT to bit-vectors, strings,
369       arrays, and more. Together, we can reduce a program and prove it is
370       satisfiable, or provide a concrete counter-example. The implications of
371       this are computer-aided reasoning tools for error-checking in addition
372       to much more robust programs.
373     </p>
374     <p>
375       In this talk Murphy Berzish will give an overview of SAT/SMT theory and
376       some real-world solution methods. He will also demonstrate applications
377       of SAT/SMT solvers in theorem proving, model checking, and program
378       verification.
379     </p>
380     <p>
381       There are both .pdf slides and a .mp4 recording of the talk. Code samples
382       and spellings of terms are in the slides, consider following along with
383       the slides.
384     </p>
385   </abstract>
386   <presentor>Murphy Berzish</presentor>
387   <thumbnail file="mtrberzi-sat-smt-thumb-small.jpg" />
388   <mediafile file="mtrberzi-sat-smt.mp4" type="Talk (x264)" />
389   <mediafile file="mtrberzi-sat-smt-slides.pdf" type="Talk (PDF)" />
390 </mediaitem>
391
392 <mediaitem title="Racket's Magical Match">
393   <abstract>
394     <p>
395       Come learn how to use the power of the Racket match construct to make
396       your code easier to read, less bug-prone and overall more awesome!
397     </p>
398     <p>
399       Theo Belaire, a fourth-year CS student, will show you the basics of how
400       this amazing function works, and help you get your feet wet with some
401       code examples and advanced use cases.
402     </p>
403     <p>
404       If you're interested in knowing about the more powerful features of
405       Racket, then this is the talk for you! The material covered is
406       especially useful for students in CS 241 who are writing their compiler
407       in Racket, or are just curious about what that might look like.
408     </p>
409   </abstract>
410   <presentor>Theo Belaire</presentor>
411   <thumbnail file="tbelaire_racket-thumb-small.jpg" />
412   <mediafile file="tbelaire_racket.mp4" type="Talk (x264)" />
413   <mediafile file="tbelaire_racket-slides.pdf" type="Talk (PDF)" />
414   <mediafile file="tbelaire_racket-slides-source.rkt" type="Talk (Rkt)" />
415   <mediafile file="tbelaire_racket-stdlib.rkt" type="Source (Rkt)" />
416 </mediaitem>
417
418 <mediaitem title="Distributed File Systems">
419   <abstract>
420     <p>
421       Alex Tsay from AeroFS will talk about the high availability distributed
422       file systems they develop. The CAP Theorem outlined the fundamental
423       limitations of a distributed system. When designing a distributed system,
424       one has to constantly be aware of the trade-off between consistency
425       and availability. Most distributed systems are designed with consistency
426       in mind. However, AeroFS has decided to build a high-availability file
427       system instead. In this tech talk, I'll be presenting an overview of
428       AeroFS file system, advantages and challenges of a high-availability
429       file system, and examine the inner workings of AeroFS's core syncing
430       algorithm.
431     </p>
432   </abstract>
433   <presentor>Alex Tsay</presentor>
434   <thumbnail file="alex_tsay_aerofs-thumb-small.jpg" />
435   <mediafile file="alex_tsay_aerofs.mp4" type="Talk (x264)" />
436 </mediaitem>
437
438 <mediaitem title="Google Fiber: Speed is Hard">
439   <abstract>
440     <p>
441       Our speaker, Avery Pennarun, will share some not-very-secret secrets from
442       the team creating GFiber's open source router firmware, including some
443       discussion of wifi, marketing truthiness, the laws of physics, something
444       about coaxial cables, embedded ARM processors, queuing theory, signal
445       processing, hardware design, and kernel driver optimization. If you're
446       lucky, he may also rant about poor garbage collector implementations.
447       Also, there will be at least one slide containing one of those swooshy
448       circle-and-arrow lifecycle diagrams, we promise.
449     </p>
450   </abstract>
451   <presentor>Avery Pennarun</presentor>
452   <thumbnail file="google-speed-is-hard.png" />
453   <mediafile file="speed-is-hard-at-uwaterloo.pdf" type="Talk (PDF)" />
454 </mediaitem>
455
456 <mediaitem title="In Pursuit of the Travelling Salesman">
457   <abstract>
458     <p>
459       The traveling salesman problem is easy to state: given a number of cities
460       along with the cost of travel between each pair of them, find the cheapest
461       way to visit them all and return to your starting point.  Easy to state, but
462       difficult to solve.  Despite decades of research, in general it is not known
463       how to significantly improve upon simple brute-force checking.  It is a real
464       possibility that there may never exist an efficient method that is guaranteed
465       to solve every instance of the problem.  This is a deep mathematical question:
466       Is there an efficient solution method or not?  The topic goes to the core of
467       complexity theory concerning the limits of feasible computation and we may be
468       far from seeing its resolution. This is not to say, however, that the research
469       community has thus far come away empty-handed.  Indeed, the problem has led to
470        a large number of results and conjectures that are both beautiful and deep,
471       and on the practical side solution methods are used to compute optimal or
472       near-optimal tours for a host of applied problems on a daily basis, from
473       genome sequencing to arranging music on iPods.  In this talk we discuss the
474       history, applications, and computation of this fascinating problem.
475     </p>
476   </abstract>
477   <presentor>Bill Cook</presentor>
478   <thumbnail file="bico_2014_travelling_salesman-thumb-small.jpg" />
479   <mediafile file="bico_2014_travelling_salesman.mp4" type="Talk (x264)" />
480 </mediaitem>
481
482 <mediaitem title="Building a Mobile Platform for Android and iOS">
483   <abstract>
484     <p>
485       A Google engineer gives a talk on building a mobile platform for Android
486       and iOS. Wesley Tarle has been leading development at Google in Kitchener
487       and Mountain View, and building stuff for third-party developers on
488       Android and iOS. He's contributed to Google Play services since its
489       inception and continues to produce APIs and SDKs focused on mobile
490       startups.
491     </p>
492   </abstract>
493   <presentor>Wesley Tarle</presentor>
494   <thumbnail file="wtarle_mobile_platform_google-thumb-small.png" />
495   <mediafile file="wtarle_mobile_platform_google.pdf" type="Talk (PDF)" />
496 </mediaitem>
497
498 <mediaitem title="Multi-processor Real-time Systems">
499   <abstract>
500     <p>
501       Programming systems that obey hard real-time constraints is difficult.
502       So is programming multiple CPUs that interact to solve a single
503       problem.
504     </p>
505
506     <p>
507       On rare occasions it is possible to mix two difficult problems to create
508       one easy problem and multi-CPU real-time is, on the face of it,
509       just such an occasion. Give each deadline its own CPU and it will
510       never be missed. This intuition is, unfortunately, incorrect, which does
511       not, however, prevent it being tried in many real-time systems.
512     </p>
513
514     <p>
515       For three decades, fourth year students have been exploring this problem
516       in CS452, using multiple tasks (virtual CPUs) running on a single CPU.
517       It is now time to consider whether modern developments in CPU
518       architecture make it possible to use multiple CPUs in CS452 given the
519       practical constraint of a twelve week semester.
520     </p>
521
522     <p>
523       This talk will describe the nature of computation typical of real-time
524       systems, architectural solutions currently employed in the course, and
525       possible architectures for multi-CPU systems.
526     </p>
527   </abstract>
528   <presentor>Bill Cowan</presentor>
529   <thumbnail file="wmcowan_multi_processor_realtime-thumb-small.jpg" />
530   <mediafile file="wmcowan_multi_processor_realtime.mp4" type="Talk (x264)" />
531   <mediafile file="wmcowan_multi_processor_realtime.mpg" type="Talk (MPG)" />
532   <flvfile   file="wmcowan_multi_processor_realtime.flv" />
533   <other>
534     <p>
535       Professor Cowan has taught CS 452, Real-Time Programming (aka The Trains Course)
536       for the last few years.
537     </p>
538   </other>
539 </mediaitem>
540
541 <mediaitem title="How Browsers Work">
542   <abstract>
543     <p>
544       Veteran Mozilla engineer Ehsan Akhgari presents a talk on the internals of web browsers.
545       The material ranges from the fundamentals of content rendering to the latest innovations in browser design.
546     </p>
547     <p>
548       Web browsers have evolved. From their humble beginnings as simple HTML
549       rendering engines they have grown and evolved into rich application
550       platforms. This talk will start with the fundamentals: how a browser
551       creates an on-screen representation of the resources downloaded from
552       the network. (Boring, right? But we have to start somewhere.) From
553       there we'll get into the really exciting stuff: the latest innovations
554       in Web browsers and how those innovations enable — even encourage —
555       developers to build more complex applications than ever before. You'll
556       see real-world examples of people building technologies on top of
557       these "simple rendering engines" that seemed impossible a short time
558       ago.
559     </p>
560   </abstract>
561   <presentor>Ehsan Akhgari</presentor>
562   <thumbnail file="how-browsers-work-thumb-small.jpg" />
563   <mediafile file="how-browsers-work.mp4" type="Talk (x264)" />
564   <mediafile file="how-browsers-work.mpg" type="Talk (MPG)" />
565   <flvfile   file="how-browsers-work.flv" />
566   <other>
567     <p>
568       Ehsan Akhgari has contributed to the Mozilla project for more than 5
569       years.  He has worked on various parts of Firefox, including the user
570       interface and the rendering engine.  He originally implemented Private
571       Browsing in Firefox.  Right now he's focusing on the editor component
572       in the Firefox engine.
573     </p>
574   </other>
575 </mediaitem>
576
577 <mediaitem title="General Purpose Computing on Graphics Cards">
578   <abstract>
579     <p>
580       GPGPU (general purpose graphics processing unit) computing is an
581       expanding area of interest, with applications in physics, chemistry,
582       applied math, finance, and other fields. nVidia has created an
583       architecture named CUDA to allow programmers to use graphics cards
584       without having to write PTX assembly or understand OpenGL. CUDA is
585       designed to allow for high-performance parallel computation controlled
586       from the CPU while granting the user fine control over the behaviour
587       and performance of the device.
588     </p>
589     <p>
590       In this talk, I'll discuss the basics of nVidia's CUDA architecture
591       (with most emphasis on the CUDA C extensions), the GPGPU programming
592       environment, optimizing code written for the graphics card, algorithms
593       with noteworthy performance on GPU, libraries and tools available to
594       the GPGPU programmer, and some applications to condensed matter
595       physics. No physics background required!
596     </p>
597   </abstract>
598   <presentor>Katie Hyatt</presentor>
599   <thumbnail file="kshyatt-gpgpu-thumb-small.jpg" />
600   <mediafile file="kshyatt-gpgpu.mp4" type="Talk (x264)" />
601   <mediafile file="kshyatt-gpgpu-480p.mp4" type="Talk (x246 480p)" />
602   <flvfile   file="kshyatt-gpgpu-480p.mp4" />
603  </mediaitem>
604
605 <!-- encoding problems
606 <mediaitem title="Analysis of randomized algorithms via the probabilistic method">
607   <abstract>
608     <p>
609       In this talk, we will give a few examples that illustrate the basic method and show  how it can be used to prove the existence of objects with desirable combinatorial  properties as well as produce them in expected polynomial time via randomized  algorithms.  Our main goal will be to present a very slick proof from 1995 due to  Spencer on the performance of a randomized greedy algorithm for a set-packing  problem.  Spencer, for seemingly no reason, introduces a time variable into his  greedy algorithm and treats set-packing as a Poisson process.  Then, like magic,  he is able to show that his greedy algorithm is very likely to produce a good  result using basic properties of expected value.
610     </p>
611     <p>
612       The probabilistic method is an extremely powerful tool in combinatorics that can be
613       used to prove many surprising results.  The idea is the following: to prove that an
614       object with a certain property exists, we define a distribution of possible objects
615       and use show that, among objects in the distribution, the property holds with
616       non-zero probability.  The key is that by using the tools and techniques of
617       probability theory, we can vastly simplify proofs that would otherwise require very
618       complicated combinatorial arguments.
619     </p>
620     <p>
621       As a technique, the probabilistic method developed rapidly during the latter half of
622       the 20th century due to the efforts of mathematicians like Paul Erdős and increasing
623       interest in the role of randomness in theoretical computer science.  In essence, the
624       probabilistic method allows us to determine how good a randomized algorithm's output
625       is likely to be.  Possibly applications range from graph property testing to
626       computational geometry, circuit complexity theory, game theory, and even statistical
627       physics.
628     </p>
629     <p>
630       In this talk, we will give a few examples that illustrate the basic method and show
631       how it can be used to prove the existence of objects with desirable combinatorial
632       properties as well as produce them in expected polynomial time via randomized
633       algorithms.  Our main goal will be to present a very slick proof from 1995 due to
634       Spencer on the performance of a randomized greedy algorithm for a set-packing
635       problem.  Spencer, for seemingly no reason, introduces a time variable into his
636       greedy algorithm and treats set-packing as a Poisson process.  Then, like magic,
637       he is able to show that his greedy algorithm is very likely to produce a good
638       result using basic properties of expected value.
639     </p>
640     <p>
641       Properties of Poisson and Binomial distributions will be applied, but I'll remind
642       everyone of the needed background for the benefit of those who might be a bit rusty.
643       Stat 230 will be more than enough. Big O notation will be used, but not excessively.
644     </p>
645   </abstract>
646   <presentor>Elyot Grant</presentor>
647   <thumbnail
648   <mediafile
649   <flvfile
650 </mediaitem>
651
652 -->
653
654 <mediaitem title="Machine learning vs human learning: will scientists become obsolete">
655   <abstract><p></p></abstract>
656   <presentor>Dr. Shai Ben-David</presentor>
657   <thumbnail file="human-vs-machine-learning-thumb-small.jpg" />
658   <mediafile file="human-vs-machine-learning.mp4" type="Talk (x264)" />
659   <mediafile file="human-vs-machine-learning.mpg" type="Talk (MPG)" />
660   <flvfile   file="human-vs-machine-learning.flv" />
661 </mediaitem>
662
663 <mediaitem title="How to build a brain: From single neurons to cognition">
664   <abstract>
665     <p>
666       Theoretical neuroscience is a new discipline focused on constructing mathematical models of brain function.  It has made significant headway in understanding aspects of the neural code.  However, past work has largely focused on small numbers of neurons, and so the underlying representations are often simple. In this talk I demonstrate how the ideas underlying these simple forms of representation can underwrite a representational hierarchy that scales to support sophisticated, structure-sensitive representations.
667     </p>
668     <p>
669       Theoretical neuroscience is a new discipline focused on constructing
670       mathematical models of brain function.  It has made significant
671       headway in understanding aspects of the neural code.  However,
672       past work has largely focused on small numbers of neurons, and
673       so the underlying representations are often simple. In this
674       talk I demonstrate how the ideas underlying these simple forms of
675       representation can underwrite a representational hierarchy that
676       scales to support sophisticated, structure-sensitive
677       representations.  I will present a general architecture, the semantic
678       pointer architecture (SPA), which is built on this hierarchy
679       and allows the manipulation, processing, and learning of structured
680       representations in neurally realistic models.  I demonstrate the
681       architecture on Progressive Raven's Matrices (RPM), a test of
682       general fluid intelligence.
683     </p>
684   </abstract>
685   <presentor>Dr. Chris Eliasmith</presentor>
686   <thumbnail file="how-to-build-a-brain-thumb-small.jpg" />
687   <mediafile file="how-to-build-a-brain.mp4" type="Talk (x264)" />
688   <mediafile file="how-to-build-a-brain.mpg" type="Talk (MPG)" />
689   <flvfile   file="how-to-build-a-brain.flv" />
690 </mediaitem>
691
692 <mediaitem title="BareMetal OS">
693   <abstract>
694     <p>
695       BareMetal is a new 64-bit OS for x86-64 based computers. The OS is written entirely in Assembly,  while applications can be written in Assembly or C/C++.  High Performance Computing is the main target application.
696     </p>
697   </abstract>
698   <presentor>Ian Seyler, Return to Infinity</presentor>
699   <thumbnail file="bare-metal-os-thumb-small.jpg" />
700   <mediafile file="bare-metal-os.mp4" type="Talk (x264)" />
701   <mediafile file="bare-metal-os.mpg" type="Talk (MPG)" />
702   <flvfile   file="bare-metal-os.flv" />
703 </mediaitem>
704
705 <mediaitem title="A Brief Introduction to Video Encoding">
706   <abstract>
707     <p>
708       In this talk, I will go over the concepts used in video encoding (such as motion estimation/compensation, inter- and intra- frame prediction, quantization and entropy encoding), and then demonstrate these concepts and algorithms in use in the MPEG-2 and the H.264 video codecs. In addition, some clever optimization tricks using SIMD/vectorization will be covered, assuming sufficient time to cover these topics.
709     </p>
710     <p>
711       With the recent introduction of digital TV and the widespread success
712       of video sharing websites such as youtube, it is clear that the task
713       of lossily compressing video with good quality has become important.
714       Similarly, the complex algorithms involved require high amounts of
715       optimization in order to run fast, another important requirement for
716       any video codec that aims to be widely used/adopted.
717     </p>
718   </abstract>
719   <presentor>Peter Barfuss</presentor>
720   <thumbnail file="pbarfuss-video-encoding-thumb-small.jpg" />
721   <mediafile file="pbarfuss-video-encoding.mp4" type="Talk (x264)" />
722   <mediafile file="pbarfuss-video-encoding.mpg" type="Talk (MPG)" />
723   <flvfile   file="pbarfuss-video-encoding.flv" />
724 </mediaitem>
725
726 <mediaitem title="Cooking for Geeks">
727   <abstract>
728     <p>
729       The CSC is happy to be hosting Jeff Potter, author of "Cooking for Geeks" for a presentation on the finer arts of food science.
730       Jeff's book has been featured on NPR, BBC and his presentations have wowed audiences of hackers &amp; foodies alike.
731       We're happy to have Jeff joining us for a hands on demonstration.
732     </p>
733     <p>
734       But you don't have to take our word for it... here's what Jeff has to say:
735     </p>
736     <p>
737       Hi! I'm Jeff Potter, author of Cooking for Geeks (O'Reilly Media, 2010), and I'm doing a "D.I.Y. Book Tour" to talk
738       about my just-released book. I'll talk about the food science behind what makes things yummy, giving you a quick
739       primer on how to go into the kitchen and have a fun time turning out a good meal.
740       Depending upon the space, I’ll also bring along some equipment or food that we can experiment with, and give you a chance to play with stuff and pester me with questions.
741     </p>
742   </abstract>
743   <presentor>Jeff Potter</presentor>
744   <thumbnail file="cooking-for-geeks-thumb-small.jpg" />
745   <mediafile file="cooking-for-geeks.mp4" type="Talk (x264)" />
746   <mediafile file="cooking-for-geeks.mpg" type="Talk (MPG)" />
747   <flvfile   file="cooking-for-geeks.flv" />
748 </mediaitem>
749
750 <mediaitem title="The Art of the Propagator">
751   <abstract>
752     <p>
753       We develop a programming model built on the idea that the basic computational elements are autonomous machines interconnected by shared cells through which they communicate. Each machine continuously examines the cells it is interested in, and adds information to some based on deductions it can make from information from the others. This model makes it easy to smoothly combine expression-oriented and constraint-based programming; it also easily accommodates implicit incremental distributed search in ordinary programs.
754
755       This work builds on the original research of Guy Lewis Steele Jr. and was developed more recently with the help of Chris Hanson.
756     </p>
757   </abstract>
758   <presentor>Gerald Jay Sussman</presentor>
759   <thumbnail file="sussman-propagator-thumb-small.jpg" />
760   <mediafile file="sussman-propagator.mkv" type="Talk (MKV)" />
761   <mediafile file="sussman-propagator-slides.pdf" type="Slides (PDF)" />
762 </mediaitem>
763
764 <mediaitem title="Why Programming is a Good Medium for Expressing Poorly Understood and Sloppily Formulated Ideas">
765   <abstract>
766     <p>
767       I have stolen my title from the title of a paper given by Marvin Minsky in the 1960s, because it most effectively expresses what I will try to convey in this talk.
768     </p>
769
770     <p>
771       We have been programming universal computers for about 50 years. Programming provides us with new tools to express ourselves. We now have intellectual tools to describe "how to" as well as "what is". This is a profound transformation: it is a revolution in the way we think and in the way we express what we think.
772     </p>
773
774     <p>
775       For example, one often hears a student or teacher complain that the student knows the "theory" of some subject but cannot effectively solve problems. We should not be surprised: the student has no formal way to learn technique. We expect the student to learn to solve problems by an inefficient process: the student watches the teacher solve a few problems, hoping to abstract the general procedures from the teacher's behavior on particular examples. The student is never given any instructions on how to abstract from examples, nor is the student given any language for expressing what has been learned. It is hard to learn what one cannot express. But now we can express it!
776     </p>
777
778     <p>
779       Expressing methodology in a computer language forces it to be unambiguous and computationally effective. The task of formulating a method as a computer-executable program and debugging that program is a powerful exercise in the learning process. The programmer expresses his/her poorly understood or sloppily formulated idea in a precise way, so that it becomes clear what is poorly understood or sloppily formulated. Also, once formalized procedurally, a mathematical idea becomes a tool that can be used directly to compute results.
780     </p>
781
782     <p>
783       I will defend this viewpoint with examples and demonstrations from electrical engineering and from classical mechanics.
784     </p>
785   </abstract>
786   <presentor>Gerald Jay Sussman</presentor>
787   <thumbnail file="sussman-why-programming-thumb-small.jpg" />
788   <mediafile file="sussman-why-programming.mkv" type="Talk (MKV)" />
789   <mediafile file="sussman-why-programming-slides.pdf" type="Slides (PDF)" />
790 </mediaitem>
791
792 <mediaitem title="A brief history of CS curriculum at UW">
793   <abstract>
794     <p>
795       I'll survey the evolution of our computer science curriculum over the
796       past thirty-five years to try to convey the reasons (not always entirely
797       rational) behind our current mix of courses and their division into core
798       and optional. After some remarks about constraints and opportunities in
799       the near future, I'll open the floor to discussion, and hope to hear
800       some candid comments about the state of CS at UW and how it might be
801       improved.
802     </p>
803     <p>
804       About the speaker:
805     </p>
806     <p>
807       Prabhakar Ragde is a Professor in the School of Computer Science at UW.
808       He was Associate Chair for Curricula during the period that saw the
809       creation of the Bioinformatics and Software Engineering programs, the
810       creation of the BCS degree, and the strengthening of the BMath/CS degree.
811     </p>
812   </abstract>
813   <presentor>Prabhakar Ragde</presentor>
814   <thumbnail file="prabhakar-history-of-uw-cs-thumb-small.jpg" />
815   <mediafile file="prabhakar-history-of-uw-cs.avi" type="Talk (XviD)" />
816   <mediafile file="prabhakar-history-of-uw-cs.ogg" type="Talk (Ogg/Theora)" />
817   <mediafile file="prabhakar-history-of-uw-cs.mpg" type="Talk (MPG)" />
818   <flvfile   file="prabhakar-history-of-uw-cs.flv" />
819   <other>
820     <h2>Contact</h2>
821     <p>If you would like to contact Dr. Ragde check out his <a href="http://www.cs.uwaterloo.ca/~plragde">website</a> or e-mail him at plragde at uwaterloo dot ca.</p>
822   </other>
823 </mediaitem>
824
825 <mediaitem title="The Future of Robotics and Automated Systems">
826   <abstract><p>
827     Bill Gates in his article "A Robot in every home" in the Scientific
828     American describes how the current robotics industry resembles the
829     1970's of the Personal Computer Industry. In fact it is not just
830     Microsoft which has already taken a step forward by starting the
831     Microsoft Robotics studio, but robotics researchers around the world
832     believe that robotics and automation systems are going to be
833     ubiquitous in the next 10-20 years (similar to Mark Weiser's
834     analogy of Personal Computers 20 years ago). Natural User Interfaces
835     (NUIs) are going to revolutionize the way we interact with computers,
836     cellular phones, household appliances, automated systems in our daily
837     lives. Just like the GUI made personal computing a reality, I believe
838     natural user interfaces will do the same for robotics.
839     </p><p>During the presentation I will be presenting my ongoing
840     software project on natural user interfaces as well as sharing my
841     goals for the future, one of which is to provide an NUI SDK and the
842     other to provide a common Robotics OS for every hardware vendor that
843     will enable people to make applications without worrying about
844     underlying functionality.  If time permits I would like to present a
845     demo of my software prototype.
846   </p></abstract>
847   <presentor>Sam Pasupalak</presentor>
848   <thumbnail file="sam-papusalak-future-thumb-small.jpg" />
849   <mediafile file="sam-papusalak-future.avi" type="Talk (XviD)" />
850   <mediafile file="sam-papusalak-future.ogg" type="Talk (Ogg/Theora)" />
851   <mediafile file="sam-papusalak-future.mp4" type="Talk (MP4)" />
852   <mediafile file="sam-papusalak-future.mpg" type="Talk (MPG)" />
853   <flvfile   file="sam-papusalak-future.flv" />
854 </mediaitem>
855
856 <mediaitem title="Deep Learning With Multiplicative Interactions">
857   <abstract><p>
858   Deep networks can be learned efficiently from unlabeled data. The layers of
859   representation are learned one at a time using a simple learning module,
860   called a "Restricted Boltzmann Machine" that has only one layer of latent
861   variables. The values of the latent variables of one module form the data for
862   training the next module. Although deep networks have been quite successful
863   for tasks such as object recognition, information retrieval, and modeling
864   motion capture data, the simple learning modules do not have multiplicative
865   interactions which are very useful for some types of data.
866   </p><p>
867   The talk will show how a third-order energy function can be factorized to
868   yield a simple learning module that retains advantageous properties of a
869   Restricted Boltzmann Machine such as very simple exact inference and a very
870   simple learning rule based on pair-wise statistics. The new module contains
871   multiplicative interactions that are useful for a variety of unsupervised
872   learning tasks. Researchers at the University of Toronto have been using this
873   type of module to extract oriented energy from image patches and dense flow
874   fields from image sequences. The new module can also be used to allow motions
875   of a particular style to be achieved by blending autoregressive models of
876   motion capture data.
877   </p></abstract>
878   <presentor>Dr. Geoff Hinton</presentor>
879   <thumbnail file="ghinton-deep-learning-thumb-small.jpg" />
880   <mediafile file="ghinton-deep-learning.avi" type="Talk (XviD)" />
881   <mediafile file="ghinton-deep-learning.ogg" type="Talk (Ogg/Theora)" />
882   <mediafile file="ghinton-deep-learning.mp4" type="Talk (MP4)" />
883   <mediafile file="ghinton-deep-learning.mpg" type="Talk (MPG)" />
884   <flvfile   file="ghinton-deep-learning.flv" />
885 </mediaitem>
886
887 <mediaitem title="Wilderness Programming">
888   <abstract><p>
889   Paul Lutus describes his early Apple II software development days, conducted
890   from the far end of a 1200-foot power cord, in a tiny Oregon cabin. Paul
891   describes how he wrote a best-seller (Apple Writer) in assembly language,
892   while dealing with power outages, lightning storms and the occasional curious
893   bear.
894   </p><p>
895   Paul also describes his subsequent four-year solo around-the-world sail in a
896   31-foot boat. And be ready with your inquiries -- Paul will answer your
897   questions.
898   </p><p>
899   Paul Lutus has a wide background in science and technology. He designed
900   spacecraft components for the NASA Space Shuttle and created a mathematical
901   model of the solar system used during the Viking Mars lander program. Then, at
902   the beginning of the personal computer revolution, Lutus switched career paths
903   and took up computer science. His best-known program is "Apple Writer," an
904   internationally successful word processing program for the early Apple
905   computers.
906   </p></abstract>
907
908   <presentor>Paul Lutus</presentor>
909   <thumbnail file="plutus-wilderness-programming-thumb-small.jpg" />
910   <mediafile file="plutus-wilderness-programming.avi" type="Talk (XviD)" />
911   <mediafile file="plutus-wilderness-programming.ogg" type="Talk (Ogg/Theora)" />
912   <mediafile file="plutus-wilderness-programming.mp4" type="Talk (MP4)" />
913   <mediafile file="plutus-wilderness-programming.mpg" type="Talk (MPG)" />
914   <flvfile   file="plutus-wilderness-programming.flv" />
915 </mediaitem>
916
917 <mediaitem title="The Best Algorithms are Randomized Algorithms">
918   <abstract><p>
919   For many problems, randomized algorithms are either the fastest algorithm or the
920   simplest algorithm; sometimes they even provide the only known algorithm.
921   Randomized algorithms have become so prevalent that deterministic algorithms
922   could be viewed as a curious special case. In this talk I will describe some
923   startling examples of randomized algorithms for solving some optimization
924   problems on graphs.
925   </p></abstract>
926
927   <presentor>Dr. Nick Harvey</presentor>
928   <thumbnail file="nick-harvey-random-thumb-small.jpg" />
929   <mediafile file="nick-harvey-random.avi" type="Talk (XviD)" />
930   <mediafile file="nick-harvey-random.ogg" type="Talk (Ogg/Theora)" />
931   <mediafile file="nick-harvey-random.mp4" type="Talk (MP4)" />
932   <mediafile file="nick-harvey-random.mpg" type="Talk (MPG)" />
933   <flvfile   file="nick-harvey-random.flv" />
934 </mediaitem>
935
936 <mediaitem title="QIP=PSPACE">
937   <abstract><p>
938   The interactive proof system model of computation is a cornerstone of complexity
939   theory, and its quantum computational variant has been studied in quantum
940   complexity theory for the past decade. In this talk I will discuss an exact
941   characterization of the power of quantum interactive proof systems that I
942   recently proved in collaboration with Rahul Jain, Zhengfeng Ji, and Sarvagya
943   Upadhyay. The characterization states that the collection of computational
944   problems having quantum interactive proof systems consists precisely of those
945   problems solvable with an ordinary classical computer using a polynomial amount
946   of memory (or QIP = PSPACE in complexity-theoretic terminology). This
947   characterization implies the striking fact that quantum computing does not
948   provide any increase in computational power over classical computing in the
949   context of interactive proof systems.
950
951   </p><p>I will not assume that the audience for this talk has any familiarity with
952   either quantum computing or complexity theory; and to be true to the spirit of
953   the interactive proof system model, I hope to make this talk as interactive as
954   possible -- I will be happy to explain anything related to the talk that I can
955   that people are interested in learning about.
956   </p></abstract>
957
958   <presentor>Dr. John Watrous</presentor>
959   <thumbnail file="jwatrous-qip-thumb-small.jpg" />
960   <mediafile file="jwatrous-qip.avi" type="Talk (XviD)" />
961   <mediafile file="jwatrous-qip.ogg" type="Talk (Ogg/Theora)" />
962   <mediafile file="jwatrous-qip.mp4" type="Talk (MP4)" />
963   <mediafile file="jwatrous-qip.mpg" type="Talk (MPG)" />
964   <flvfile   file="jwatrous-qip.flv" />
965 </mediaitem>
966
967 <mediaitem title="An Introduction to Vector Graphics Libraries with Cairo">
968     <abstract><p>
969     Cairo is an open source, cross platform, vector graphics library with the
970     ability to output to many kinds of surfaces, including PDF, SVG and PNG
971     surfaces, as well as X-Window, Win32 and Quartz 2D backends.
972     </p><p>
973     Unlike the raster graphics used with programmes and libraries such as The
974     Gimp and ImageMagick, vector graphics are not defined by grids of pixels,
975     but rather by a collection of drawing operations. These operations detail
976     how to draw lines, fill shapes, and even set text to create the desired
977     image. This has the advantages of being infinitely scalable, smaller in file
978     size, and simpler to express within a computer programme.
979     </p><p>
980     This talk will be an introduction to the concepts and metaphors used by
981     vector graphics libraries in general and Cairo in particular.
982     </p></abstract>
983
984   <presentor>Nathaniel Sherry</presentor>
985   <thumbnail file="nsasherr-cairo-thumb-small.jpg" />
986   <mediafile file="nsasherr-cairo.avi" type="Talk (XviD)" />
987   <mediafile file="nsasherr-cairo.ogg" type="Talk (Ogg/Theora)" />
988   <mediafile file="nsasherr-cairo.mp4" type="Talk (MP4)" />
989   <mediafile file="nsasherr-cairo.mpg" type="Talk (MPG)" />
990   <flvfile   file="nsasherr-cairo.flv" />
991 </mediaitem>
992
993 <mediaitem title="Software Transactional Memory and Haskell">
994   <abstract><p>
995     Concurrency is hard. Well maybe not hard, but it sure is annoying to get right. Even the
996     simplest of synchronization tasks are hard to implement correctly when using synchronization
997     primitives such as locks and semaphores.
998   <p></p>
999     In this talk we explore what Software Transactional Memory (STM) is, what problems STM solves,
1000     and how to use STM in Haskell. We explore a number of examples that show how easy STM is to use
1001     and how expressive Haskell can be. The goal of this talk is to convince attendees that STM is
1002     not only a viable synchronization solution, but superior to how synchronization is typically
1003     done today.
1004   </p></abstract>
1005
1006   <presentor>Brennan Taylor</presentor>
1007   <thumbnail file="b4taylor-stm-thumb-small.jpg" />
1008   <mediafile file="b4taylor-stm.avi" type="Talk (XviD)" />
1009   <mediafile file="b4taylor-stm.ogg" type="Talk (Ogg/Theora)" />
1010   <mediafile file="b4taylor-stm.mp4" type="Talk (MP4)" />
1011   <mediafile file="b4taylor-stm.mpg" type="Talk (MPG)" />
1012   <flvfile file="b4taylor-stm.flv" />
1013 </mediaitem>
1014
1015 <mediaitem title="Programming Quantum Computers">
1016   <abstract><p>
1017     Raymond Laflamme is the director of the Institute for Quantum Computing at the
1018     University of Waterloo and holds the Canada Research Chair in Quantum Information.
1019     He will give a brief introduction to quantum computing and why it matters, followed
1020     by a talk on programming quantum computers. This is followed by tours of IQC Labs.
1021   </p></abstract>
1022
1023   <presentor>Dr. Raymond Laflemme and Various</presentor>
1024   <thumbnail file="iqc1-thumb-small.jpg" />
1025   <mediafile file="iqc1.avi" type="Talk (XviD)" />
1026   <mediafile file="iqc1.ogg" type="Talk (Ogg/Theora)" />
1027   <mediafile file="iqc1.mp4" type="Talk (MP4)" />
1028   <mediafile file="iqc1.mpg" type="Talk (MPG)" />
1029   <mediafile file="iqc2.avi" type="Quantum Key Distribution Lab (XviD)" />
1030   <mediafile file="iqc2.ogg" type="Quantum Key Distribution Lab (Ogg/Theora)" />
1031   <mediafile file="iqc2.mp4" type="Quantum Key Distribution Lab (MP4)" />
1032   <mediafile file="iqc2.mpg" type="Quantum Key Distribution Lab (MPG)" />
1033   <mediafile file="iqc3.avi" type="NMR Quantum Computer (XviD)" />
1034   <mediafile file="iqc3.ogg" type="NMR Quantum Computer (Ogg/Theora)" />
1035   <mediafile file="iqc3.mp4" type="NMR Quantum Computer (MP4)" />
1036   <mediafile file="iqc3.mpg" type="NMR Quantum Computer (MPG)" />
1037   <flvfile file="iqc1.flv" />
1038 </mediaitem>
1039
1040 <mediaitem title="Functional Lexing and Parsing">
1041   <abstract><p>
1042     This talk will describe a non-traditional functional approach to the
1043     classical problems of lexing (breaking a stream of characters into
1044     "words" or tokens) and parsing (identifying tree structure in a stream
1045     of tokens based on a grammar, e.g. for a programming language that
1046     needs to be compiled or interpreted). The functional approach can
1047     clarify and organize a number of algorithms that tend to be opaque in
1048     their conventional imperative presentation. No prior background in
1049     functional programming, lexing, or parsing is assumed.
1050   </p>
1051   <p>The slides for this talk can be found <a href="http://mirror.csclub.uwaterloo.ca/csclub/pr-functional-lexing-parsing-slides.pdf">here</a> as a pdf.
1052   </p></abstract>
1053
1054   <presentor>Dr. Prabhakar Ragde</presentor>
1055   <thumbnail file="pr-functional-lexing-parsing-thumb-small.jpg" />
1056   <mediafile file="pr-functional-lexing-parsing.avi" type="XviD" />
1057   <mediafile file="pr-functional-lexing-parsing.ogg" type="Ogg/Theora" />
1058   <mediafile file="pr-functional-lexing-parsing.mp4" type="MP4" />
1059   <mediafile file="pr-functional-lexing-parsing.mpg" type="MPG" />
1060   <flvfile file="pr-functional-lexing-parsing.flv" />
1061   <other>
1062   <h2>Contact</h2>
1063   <p>If you would like to contact Dr. Ragde check out his <a href="http://www.cs.uwaterloo.ca/~plragde">website</a> or e-mail him at plragde at uwaterloo dot ca.</p>
1064   </other>
1065 </mediaitem>
1066
1067
1068 <mediaitem title="Rapid Prototyping and Mathematical Art">
1069   <abstract><p>
1070    The combination of computer graphics, geometry, and rapid
1071    prototyping technology has created a wide range of exciting
1072    opportunities for using the computer as a medium for creative
1073    expression.  In this talk, I will describe the most popular
1074    technologies for computer-aided manufacturing, discuss
1075    applications of these devices in art and design, and survey
1076    the work of contemporary artists working in the area (with a
1077    focus on mathematical art).  The talk will be primarily
1078    non-technical, but I will mention some of the mathematical
1079    and computational techniques that come into play.</p>
1080    <p>The slides for this talk can be found <a href="http://mirror.csclub.uwaterloo.ca/csclub/kaplan-mathematical-art-slides.pdf">here</a> as a pdf.</p>
1081   </abstract>
1082   <presentor>Dr. Craig Kaplan</presentor>
1083   <thumbnail file="kaplan-mathematical-art-thumb-small.jpg" />
1084   <mediafile file="kaplan-mathematical-art.avi" type="XviD" />
1085   <mediafile file="kaplan-mathematical-art.ogg" type="Ogg/Theora" />
1086   <mediafile file="kaplan-mathematical-art.mp4" type="MP4" />
1087   <mediafile file="kaplan-mathematical-art.mpg" type="MPG" />
1088   <flvfile file="kaplan-mathematical-art.flv" />
1089   <other>
1090     <h2>Contact</h2>
1091     <p>If you would like to contact Dr. Kaplan check out his <a href="http://www.cgl.uwaterloo.ca/~csk/">website</a> or e-mail him at csk at uwaterloo dot ca.</p>
1092     <h2>Links and credits</h2>
1093
1094     <p>This talk included images of the work of a large number of talented
1095     artists and researchers.  I list them here and include links to
1096     their work online.  Everyone is listed by order of appearance; when
1097     a credit appears to be missing, it's probably because the slides
1098     include photographs of my own work or joint work with collaborators.
1099     Thanks to all the artists who gave me permission to use photographs
1100     of their work here.</p>
1101
1102     <ul>
1103         <li><a href="http://mathematicians.org.uk/eoh/">Edmund Harriss</a>:
1104             laser-cut business card</li>
1105         <li><a href="http://www.danfunderburgh.com/">Dan Funderburgh</a>:
1106             laser-cut papercuttings and laser-etched wood sculpture</li>
1107         <li><a href="http://littlefactory.com/">Little Factory</a>:
1108             laser-cut scarf</li>
1109         <li><a href="http://www.wimdelvoye.be/gothicworks.php">Wim Delvoye</a>:
1110             laser-cut gothic vehicles</li>
1111         <li><a href="http://www.georgehart.com/">George Hart</a>:
1112             modular kirigami, laser-cut acrylic and metal sculpture,
1113             3D printed scupture</li>
1114         <li><a href="http://fischer.com.au/">Fischer</a>: laser-cut
1115             wooden lamp (the <a href="http://www.ponoko.com/showroom/SquirrelswithHammers/zen-table-lamp-2463">lamp</a> can be seen on <a href="http://www.ponoko.com/">ponoko.com</a>)</li>
1116         <li><a href="http://graphics.stanford.edu/~georgp/">Georg Petchnigg</a>:
1117             CNC sushi plate</li>
1118         <li><a href="http://www.bathsheba.com/">Bathsheba Grossman</a>:
1119             3D printed metal sculpture</li>
1120         <li><a href="http://www.cs.berkeley.edu/~sequin/">Carlo Sequin</a>:
1121             3D mathematical sculpture</li>
1122         <li><a href="http://www.helasculpt.com/">Helaman Ferguson</a>:
1123             sculpture in stone and metal</li>
1124         <li><a href="http://www.bulatov.org/">Vladimir Bulatov</a>:
1125             3D printed metal sculpture</li>
1126         <li><a href="http://www.rinusroelofs.nl/">Rinus Roelofs</a>:
1127             3D geometric sculpture, printed and rendered</li>
1128         <li><a href="http://www-viz.tamu.edu/faculty/ergun/">Ergun Akleman</a>:
1129             Sculpture and surface design.  Note his downloadable
1130             <a href="http://www.topmod3d.org/">TopMod</a> software</li>
1131         <li><a href="http://www.shapeways.com/model/24535/tight_double_moebius0_025_8_5cm.html">Emmanuel Lattes</a>: twisted toroidal sculpture</li>
1132     </ul>
1133
1134     <h2>Resources</h2>
1135
1136     <p>Here are a few additional links of interest to the audience of this
1137     talk.</p>
1138
1139     <ul>
1140         <li><a href="http://hacklab.to/">hacklab.to</a>: Toronto's hackerspace.
1141             The bought a disused laser cutter and refurbished it.</li>
1142         <li>My knife cutter is the <a href="http://www.silhouettemachine.com/">QuicKutz Silhouette</a>.  I bought mine online from <a href="http://www.scrapbooksbydesign.ca/">Scrapbooks by design</a> in Toronto.</li>
1143         <li><a href="http://www.lazerit.ca/">Lazerit</a> is a laser cutting
1144             service not far from the University of Waterloo campus.</li>
1145         <li><a href="http://www.ponoko.com/">ponoko.com</a> is one of a new
1146             breed of CAM-meets-Web2.0 sites.  You create and upload a design,
1147             and can then order fabricated copies of that design in various
1148             materials.  You can also set up a shop where others can do the
1149             same.</li>
1150         <li>The <a href="http://www.probotix.com/FireBall_v90_cnc_router_kit/">Fireball V90</a> is an inexpensive CNC router kit that would be fun for home hobby applications.   For extra geek points, it has a mount designed to hold a dremel.</li>
1151         <li>Evil Mad Scientist Laboratories created <a href="http://candyfab.org">CandyFab</a>, a (low resolution) 3D printer that produces edible candy as output.</li>
1152         <li>The <a href="http://reprap.org/">reprap</a> Aims to design a 3D printer
1153             capable of manufacturing a complete copy of itself.</li>
1154         <li><a href="http://www.shapeways.com/">Shapeways</a> is essentially
1155             a 3D version of ponoko.com-an online 3D printing service
1156             bureau where you can set up a shop to sell your work.</li>
1157         <li>Bathsheba Grossman has her metal sculptures printed by
1158             <a href="http://www.prometal.com/">Ex One's Prometal</a> service.</li>
1159     </ul>
1160   </other>
1161 </mediaitem>
1162
1163
1164 <mediaitem title="More Haskell functional programming fun">
1165   <abstract><p>
1166     TODO
1167   </p></abstract>
1168   <presentor>Andrei Barbu</presentor>
1169   <thumbnail file="abarbu2-thumb-small.jpg" />
1170   <mediafile file="abarbu2.avi" type="XviD" />
1171   <mediafile file="abarbu2.ogg" type="Ogg/Theora" />
1172   <mediafile file="abarbu2.mp4" type="MP4" />
1173   <mediafile file="abarbu2.mpg" type="MPG" />
1174   <flvfile   file="abarbu2.flv" />
1175 </mediaitem>
1176
1177 <mediaitem title="Why you should care about functional programming with Haskell">
1178   <abstract><p>
1179     TODO
1180   </p></abstract>
1181   <presentor>Andrei Barbu</presentor>
1182   <thumbnail file="abarbu1-thumb-small.jpg" />
1183   <mediafile file="abarbu1.avi" type="XviD" />
1184   <mediafile file="abarbu1.ogg" type="Ogg/Theora" />
1185   <mediafile file="abarbu1.mp4" type="MP4" />
1186   <mediafile file="abarbu1.mpg" type="MPG" />
1187   <flvfile   file="abarbu1.flv" />
1188 </mediaitem>
1189
1190 <mediaitem title="Off-the-Record Messaging: Useful Security and Privacy for IM">
1191   <abstract><p>
1192 Instant messaging (IM) is an increasingly popular mode of communication
1193 on the Internet.  Although it is used for personal and private
1194 conversations, it is not at all a private medium.  Not only are all of
1195 the messages unencrypted and unauthenticated, but they are all
1196 routedthrough a central server, forming a convenient interception point
1197 for an attacker.  Users would benefit from being able to have truly
1198 private conversations over IM, combining the features of encryption,
1199 authentication, deniability, and forward secrecy, while working within
1200 their existing IM infrastructure.
1201   </p>
1202   <p>
1203 In this talk, I will discuss "Off-the-Record Messaging" (OTR), a widely
1204 used software tool for secure and private instant messaging.  I will
1205 outline the properties of Useful Security and Privacy Technologies that
1206 motivated OTR's design, compare it to other IM security mechanisms, and
1207 talk about its ongoing development directions.
1208   </p></abstract>
1209   <presentor>Ian Goldberg</presentor>
1210   <thumbnail file="ian-goldberg-otr-thumb-small.jpg" />
1211   <mediafile file="ian-goldberg-otr.avi" type="XviD" />
1212   <mediafile file="ian-goldberg-otr.ogg" type="Ogg/Theora" />
1213   <mediafile file="ian-goldberg-otr.mp4" type="MP4" />
1214   <mediafile file="ian-goldberg-otr.mpg" type="MPG" />
1215   <flvfile file="ian-goldberg-otr.flv" />
1216   <other>
1217   <h2>Bio</h2>
1218     <p>
1219 Ian Goldberg is an Assistant Professor of Computer Science at the
1220 University of Waterloo, where he is a founding member of the
1221 Cryptography, Security, and Privacy (CrySP) research group.  He holds a
1222 Ph.D. from the University of California, Berkeley, where he discovered
1223 serious weaknesses in a number of widely deployed security systems,
1224 including those used by cellular phones and wireless networks. He also
1225 studied systems for protecting the personal privacy of Internet users,
1226 which led to his role as Chief Scientist at Zero-Knowledge Systems (now
1227 known as Radialpoint), where he commercialized his research as the
1228 Freedom Network.
1229     </p></other>
1230 </mediaitem>
1231
1232 <mediaitem title="Privacy by Design">
1233   <abstract><p>
1234 Globally, issues about information privacy in the marketplace have emerged in tandem with the dramatic and escalating increase in information stored
1235 in electronic formats. Data mining, for example, can be extremely valuable for businesses, but in the absence of adequate safeguards, it can
1236 jeopradize informational privacy. Dr. Ann Cavoukian talks about how to use technology to enhance privacy. Some of the technologies discussed
1237 included instant messaging, RFID tags and Elliptical Curve Cryptography (ECC). Then Dr. Cavoukian explained the “7 Privacy – Embedded Laws” followed
1238 by a discussion on a biometrics solution to encryption.
1239   </p></abstract>
1240   <presentor>Dr. Ann Cavoukian</presentor>
1241   <thumbnail file="privacy-thumb-small.jpg" />
1242   <mediafile file="privacy.avi" type="XviD" />
1243   <mediafile file="privacy.ogg" type="Ogg/Theora" />
1244   <mediafile file="privacy.mp4" type="MP4" />
1245   <mediafile file="privacy.mpg" type="MPG" />
1246   <flvfile file="privacy.flv" />
1247   <other>
1248   <h2>Bio</h2>
1249   <p>
1250 Dr. Ann Cavoukian, as the Information and Privacy Commissioner, oversees the operations of Ontario's freedom of information and protection of
1251 privacy laws, which apply to both provincial and municipal government organizations. She serves as an officer of the legislature, independent of the
1252 government of the day. Ann joined the Information and Privacy Commission in 1987 as its first Director of Compliance and was appointed Assistant
1253 Commissioner in 1990, responsible for the protection of privacy and compliance with the Freedom of Information and Protection of Privacy Acts. Prior
1254 to her work at the Commission, Ann headed the Research Services Branch of the Ministry of the Attorney General. Ann received her M.A. and Ph.D. in
1255 Psychology from the University of Toronto, where she specialized in criminology and lectured on psychology and the criminal justice system. Ann
1256 speaks extensively on the importance of privacy around the world. Her published works include a recent book on privacy called "Who Knows:
1257 Safeguarding Your Privacy in a Networked World."
1258   </p>
1259   </other>
1260 </mediaitem>
1261
1262
1263 <mediaitem title="C++0x - An Overview">
1264   <abstract><p>
1265    A good programming language is far more than a simple collection of
1266    features. My ideal is to provide a set of facilities that smoothly work
1267    together to support design and programming styles of a generality beyond
1268    my imagination. Here, I briefly outline rules of thumb (guidelines,
1269    principles) that are being applied in the design of C++0x. Then, I
1270    present the state of the standards process (we are aiming for C++09) and
1271    give examples of a few of the proposals such as concepts, generalized
1272    initialization, being considered in the ISO C++ standards committee.
1273    Since there are far more proposals than could be presented in an hour,
1274    I'll take questions.
1275   </p><p>
1276    Dr. Bjarne Stroustrup is the original designer and implementer of the
1277    C++ Programming Language.
1278   </p></abstract>
1279   <presentor>Dr. Bjarne Stroustrup</presentor>
1280   <thumbnail file="stroustrup-thumb-small.jpg" />
1281   <mediafile file="stroustrup.avi" type="XviD" />
1282   <mediafile file="stroustrup.ogg" type="Ogg/Theora" />
1283   <mediafile file="stroustrup.mp4" type="MP4" />
1284   <mediafile file="stroustrup.mpg" type="MPG" />
1285   <flvfile file="stroustrup.flv" />
1286   <other>
1287   <h2>Q&amp;A</h2>
1288   <ul>
1289     <li>Do you think you'll ever design a new language from scratch?</li>
1290     <li>How long after the standard is out do you expect to see a production compiler?</li>
1291     <li>Is it possible to do garbage collection cleanly and efficiently in C++?</li>
1292     <li>How soon after you created C++ did you see it start to take over the industry?</li>
1293     <li>Is there any particular naming convention you subscribe to?</li>
1294     <li>What's your opinion about the Microsoft implementation of C++?</li>
1295   </ul>
1296   </other>
1297 </mediaitem>
1298
1299 <mediaitem title="PMAMC&amp;OC SASMS - Spring 2007">
1300   <presentor>PMClub Various Members</presentor>
1301   <thumbnail file="pmc-sasms-spring-2007-thumb-small.jpg" />
1302   <mediafile file="pmc-sasms-spring-2007.avi" type="XviD" size="643M" />
1303   <mediafile file="pmc-sasms-spring-2007.ogg" type="Ogg/Theora" size="598M" />
1304   <mediafile file="pmc-sasms-spring-2007.mp4" type="MP4" size="625M" />
1305   <mediafile file="pmc-sasms-spring-2007.mpg" type="MPG" size="641M" />
1306   <flvfile file="pmc-sasms-spring-2007.flv" />
1307 </mediaitem>
1308
1309 <mediaitem title="Copyright vs Community in the Age of Computer Networks">
1310   <abstract><p>
1311     Copyright developed in the age of the printing press, and was designed
1312     to fit with the system of centralized copying imposed by the printing
1313     press. But the copyright system does not fit well with computer networks,
1314     and only draconian punishments can enforce it.
1315     </p><p>
1316     The global corporations that profit from copyright are lobbying for
1317     draconian punishments, and to increase their copyright powers, while
1318     suppressing public access to technology. But if we seriously hope to serve
1319     the only legitimate purpose of copyright -- to promote progress, for the
1320     benefit of the public -- then we must make changes in the other
1321     direction.
1322     </p><p>
1323     This talk by Richard M. Stallman is broken into two parts: the main talk
1324     and the question and answer sessions following the talk. Both are
1325     available in only Ogg/Theora format in keeping with Stallman's wishes. They
1326     are available under the <a href="http://creativecommons.org/licenses/nd/1.0/">
1327     Creative Commons NoDerivs 1.0</a> license.
1328   </p></abstract>
1329   <presentor>Richard M. Stallman</presentor>
1330   <other>
1331   <h2>Q&amp;A</h2>
1332   <p>
1333   Download the question and answers section for answers to questions such as:
1334   </p>
1335   <ul>
1336     <li> What do you do when no free alternatives for a proprietary program exist?  </li>
1337     <li> If we are to treat works used for practical purposes differently from those used for entertainment, how do you treat works such as video games that fall in both categories?  </li>
1338     <li> If most of the computing industry and the US Copyright Board don't disagree with your views on copyright, how come no one has gone to change things?  </li>
1339   </ul>
1340   </other>
1341   <thumbnail file="rms-qa-thumb-small.jpg" />
1342   <mediafile file="rms-talk.ogg" type="Talk (Ogg/Theora)" size="687M" />
1343   <mediafile file="rms-qa.ogg" type="Q&amp;A (Ogg/Theora)" size="225M" />
1344 </mediaitem>
1345
1346 <mediaitem title="Usability in the Wild">
1347   <abstract><p>
1348     What is the typical monitor resolution of a GIMP user? How many monitors
1349     do they have? What size images do they work on? How many layers are in
1350     their images? The answers to these questions are generally unknown: no
1351     means currently exist for open source applications to collect usage data.
1352     In this talk, Professor Michael Terry will present ingimp, a version of
1353     GIMP that has been instrumented to automatically collect usage data from
1354     real-world users. Prof. Terry will discuss ingimp's design, the type of
1355     data we collect, how we make the data available on the web, and initial
1356     results that begin to answer the motivating questions. ingimp can be found
1357     at http://www.ingimp.org.
1358     </p><p>
1359     The slides from the talk are available here: <a href="http://mirror.csclub.uwaterloo.ca/csclub/ingimp_uw_csc_talk_6_27_2007.pdf">ingimp_uw_csc_talk_6_27_2007.pdf</a>.
1360   </p></abstract>
1361   <presentor>Dr. Michael Terry</presentor>
1362   <thumbnail file="mterry2-thumb-small.jpg" />
1363   <mediafile file="mterry2.avi" type="XviD" size="521M" />
1364   <mediafile file="mterry2.ogg" type="Ogg/Theora" size="535M" />
1365   <mediafile file="mterry2.mp4" type="MP4" size="509M" />
1366   <mediafile file="mterry2.mpg" type="MPG" size="520M" />
1367   <flvfile file="mterry2.flv" preview="mterry2.png" />
1368 </mediaitem>
1369
1370 <mediaitem title="Ralph Stanton 40th Anniversary of Math Faculty Talk">
1371   <abstract><p>
1372     Ralph Stanton reflects on the founding of the University of
1373     Waterloo Math Faculty.
1374   </p></abstract>
1375   <presentor>Ralph Stanton</presentor>
1376   <thumbnail file="ralph-stanton-thumb-small.jpg" />
1377   <mediafile file="ralph-stanton.avi" type="XviD" />
1378   <mediafile file="ralph-stanton-xvid.avi" type="DivX" />
1379   <mediafile file="ralph-stanton.ogg" type="Ogg" />
1380   <mediafile file="ralph-stanton.mpg" type="MPG" />
1381   <flvfile file="ralph-stanton.flv" />
1382 </mediaitem>
1383
1384 <mediaitem title="The Free Software Movement and GNULinux Operating System, a talk by Richard Stallman at UCSD">
1385   <abstract><p>
1386     Richard Stallman will speak about the goals and philosophy of the Free
1387     Software Movement, and the status and history the GNU Operating System,
1388     which in combination with the kernel Linux is now used by tens of millions
1389     of users world-wide.
1390     </p><p>
1391     Richard Stallman launched the development of the GNU operating system in
1392     1984. GNU is free software: everyone has the freedom to copy it and
1393     redistribute it, as well as to make changes either large or small. The
1394     GNU/Linux system, basically the GNU operating system with Linux added, is
1395     used on tens of millions of computers today.
1396     </p><p>
1397     "The reason I care especially, is that there is a philosophy associated
1398     with the GNU project, and this philosophy is actually the reason why there
1399     is a system -- and that is that free software is not just convenient and
1400     not just reliable.... More important than convenience and reliability is
1401     freedom -- the freedom to cooperate. What I'm concerned about is not
1402     individual people or companies so much as the kind of way of life that we
1403     have. That's why I think it's a distraction to think about fighting
1404     Microsoft."
1405     </p><p>
1406     <strong>Biography:</strong>
1407     Stallman has received the ACM Grace Hopper Award, a MacArthur Foundation
1408     fellowship, the Electronic Frontier Foundation's Pioneer award, and the
1409     Takeda Award for Social/Economic Betterment, as well as several honorary
1410     doctorates.
1411     </p><p>
1412     The Question and Answer session (starting shortly after the hour and half
1413     mark) posed a number of interesting questions including, "Do you support
1414     the Creative Commons license?" and "Can I use ATI and NVIDIA drivers
1415     because Mesa isn't nearly as complete?".
1416     <p></p>
1417     The talk is only available in Ogg Theora, in keeping with Richard
1418     Stallman's wishes.
1419   </p></abstract>
1420   <presentor>Richard M. Stallman</presentor>
1421   <thumbnail file="audio-file.png" />
1422   <mediafile file="rms_ucsd.ogg" type="Ogg Theora" size="148MB" />
1423 </mediaitem>
1424
1425 <mediaitem title="Introduction to 3-d Graphics">
1426   <abstract><p>
1427     A talk for those interested in 3-dimensional graphics but unsure of where
1428     to start. Covers the basic math and theory behind projecting 3-dimensional
1429     polygons on screen, as well as simple cropping techniques to improve
1430     efficiency. Translation and rotation of polygons will also be discussed.
1431   </p></abstract>
1432   <presentor>The Prof</presentor>
1433   <thumbnail file="the-prof-graphics-thumb-small.jpg" />
1434   <mediafile file="the-prof-graphics.avi" type="DivX" size="272M" />
1435   <mediafile file="the-prof-graphics-xvid.avi" type="XviD" size="272M" />
1436   <mediafile file="the-prof-graphics.mpg" type="MPG" size="272M" />
1437   <mediafile file="the-prof-graphics.ogg" type="Ogg/Theora" size="274M"/>
1438 </mediaitem>
1439
1440 <mediaitem title="UW Software Start-ups: What Worked and What Did Not">
1441   <abstract><p>
1442     A discussion of software start-ups founded by UW students and what they
1443     did that helped them grow and what failed to help. In order to share the
1444     most insights and guard the confidences of the individuals involved, none
1445     of the companies will be identified.
1446   </p></abstract>
1447   <presentor>Larry Smith</presentor>
1448   <thumbnail file="larry-smith-talk2-thumb-small.jpg" />
1449   <mediafile file="larry-smith-talk2.avi" type="DivX" size="332M" />
1450   <mediafile file="larry-smith-talk2-xvid.avi" type="XviD" size="332M" />
1451   <mediafile file="larry-smith-talk2.mpg" type="MPG" size="332M" />
1452   <mediafile file="larry-smith-talk2.ogg" type="Ogg/Theora" size="341M"/>
1453 </mediaitem>
1454
1455 <mediaitem title="Riding The Multi-core Revolution">
1456   <abstract><p>
1457     For decades, mainstream parallel processing has been thought of as
1458     inevitable. Up until recent years, however, improvements in manufacturing
1459     processes and increases in clock speed have provided software with free
1460     Moore's Law-scale performance improvements on traditional single-core
1461     CPUs. As per-core CPU speed increases have slowed to a halt, processor
1462     vendors are embracing parallelism by multiplying the number of cores on
1463     CPUs, following what Graphics Processing Unit (GPU) vendors have been
1464     doing for years. The Multi-core revolution promises to provide
1465     unparallelled increases in performance, but it comes with a catch:
1466     traditional serial programming methods are not at all suited to
1467     programming these processors and methods such as multi-threading are
1468     cumbersome and rarely scale beyond a few cores. Learn how, with hundreds
1469     of cores in desktop computers on the horizon, a local software company is
1470     looking to revolutionize the way software is written to deliver on the
1471     promise multi-core holds.
1472   </p></abstract>
1473   <presentor>Stefanus Du Toit</presentor>
1474   <thumbnail file="sdt-thumb-small.jpg" />
1475   <mediafile file="sdt.avi" type="DivX" size="406M" />
1476   <mediafile file="sdt-xvid.avi" type="XviD" size="406M" />
1477   <mediafile file="sdt.mpg" type="MPG" size="405M" />
1478   <mediafile file="sdt.ogg" type="Ogg/Theora" size="411M" />
1479   <flvfile file="sdt.flv" />
1480 </mediaitem>
1481
1482 <mediaitem title="ReactOS - An Open Source OS Platform for Learning">
1483   <abstract><p>
1484     The ReactOS operating system has been in development for over eight years
1485     and aims to provide users with a fully functional and Windows-compatible
1486     distribution under the GPL license. ReactOS comes with its own Windows
1487     2003-based kernel and system utilities and applications, resulting in an
1488     environment identical to Windows, both visually and internally.
1489     </p><p>
1490     More than just an alternative to Windows, ReactOS is a powerful platform
1491     for academia, allowing students to learn a variety of skills useful to
1492     software testing, development and management, as well as providing a rich
1493     and clean implementation of Windows NT, with a kernel compatible to
1494     published internals book on the subject.
1495     </p><p>
1496     This talk will introduce the ReactOS project, as well as the various
1497     software engineering challenges behind it. The building platform and
1498     development philosophies and utilities will be shown, and attendees will
1499     grasp the vast amount of effort and organization that needs to go into
1500     building an operating system or any other similarly large project. The
1501     speaker will gladly answer questions related to his background, experience
1502     and interests and information on joining the project, as well as any other
1503     related information.
1504     </p><p>
1505     Slides from the talk are available
1506     <a href="http://mirror.csclub.uwaterloo.ca/csclub/alex-ionescu.pdf">here</a>.
1507     </p><p>
1508     <strong>Biography</strong>
1509     </p><p>
1510     Alex Ionescu is currently studying in Software Engineering at Concordia
1511     University in Montreal, Quebec and is a Microsoft Technical Student
1512     Ambassador. He is the lead kernel developer of the ReactOS Project and
1513     project leader of TinyKRNL. He regularly speaks at Linux and Open Source
1514     conferences around the world and will be a lecturer at the 8th
1515     International Free Software Forum in Brazil this April, as well as
1516     providing hands-on workshops and lectures on Windows NT internals and
1517     security to various companies.
1518   </p></abstract>
1519   <presentor>Alex Ionescu</presentor>
1520   <thumbnail file="alex-ionescu-thumb-small.jpg" />
1521   <mediafile file="alex-ionescu.avi" type="DivX" size="451M" />
1522   <mediafile file="alex-ionescu-xvid.avi" type="XviD" size="451M" />
1523   <mediafile file="alex-ionescu.mpg" type="MPG" size="450M" />
1524   <mediafile file="alex-ionescu.ogg" type="Ogg/Theora" size="461M" />
1525   <flvfile file="alex-ionescu.flv" />
1526 </mediaitem>
1527
1528 <mediaitem title="1989 Bill Gates Talk on Microsoft">
1529   <abstract><p>
1530     Bill Gates discusses the software and computer industry, and how Microsoft
1531     has contributed. Gates also discusses his views on the future of the
1532     computing industry. The talk was recorded in 1989 but was only recently
1533     digitized.
1534     </p><p>
1535     Topics include:<ul>
1536       <li>The start and history of the microcomputer industry</li>
1537       <li>Microsoft BASIC and the Altair 880 computer</li>
1538       <li>The transition from 8-bit to 16-bit computers</li>
1539       <li>Microsoft's history with IBM</li>
1540       <li>640k memory barrier and 16-bit architectures</li>
1541       <li>32-bit 386 and 486 architectures</li>
1542       <li>RISC and multi-processor machines</li>
1543       <li>EGA graphics and WYSIWYG editors</li>
1544       <li>Decreasing cost of memory, harddisks and hardware in general</li>
1545       <li>The importance and future of the mouse</li>
1546       <li>Object-oriented programming</li>
1547       <li>MS-DOS and OS/2</li>
1548       <li>Multi-threaded and multi-application systems</li>
1549       <li>Synchronization in multi-threaded applications</li>
1550       <li>Diskette-based software</li>
1551       <li>UNIX standardization and POSIX</li>
1552       <li>History of the Macintosh and Microsoft' involvement</li>
1553       <li>Involvement of Xerox in graphical user interfaces</li>
1554       <li>Apple vs. Microsoft lawsuit regarding user interfaces</li>
1555       <li>OS/2 future as a replacement for MS-DOS</li>
1556       <li>Microsoft Office on Macintosh</li>
1557       <li>Thin/dumb clients</li>
1558       <li>Compact discs</li>
1559       <li>Multimedia applications</li>
1560       <li>Gates' current role at Microsoft</li>
1561       </ul>
1562     </p><p>
1563     The following picture was taken after the talk (click for higher-res).
1564     </p><p>
1565     <a href="http://mirror.csclub.uwaterloo.ca/csclub/bill-gates-1989-big.jpg" target="_blank">
1566       <img src="http://mirror.csclub.uwaterloo.ca/csclub/bill-gates-1989.jpg" /></a>
1567     </p></abstract>
1568   <presentor>Bill Gates</presentor>
1569         <thumbnail file="audio-file.png" />
1570         <mediafile file="bill-gates-1989.mp3" type="mp3" size="85M" />
1571         <mediafile file="bill-gates-1989.flac" type="flac" size="540M" />
1572         <mediafile file="bill-gates-1989.ogg" type="ogg" size="56M" />
1573         <mediafile file="bill-gates-1989.wav" type="wav" size="945M" />
1574   </mediaitem>
1575
1576   <mediaitem title="Spam Filters: Do they work and Can you prove it">
1577     <abstract><p>
1578       Do spam filters work?  Which is the best one?  How might filters be
1579       improved?  Without standards, one must depend on unreliable evidence,
1580       such as subjective impressions, testimonials, incomparable and
1581       unrepeatable measurements, and vendor claims for the answers to these
1582       questions.
1583       </p><p>
1584       You might think that your spam filter works well and couldn't be
1585       improved.  Are you sure?  You may think that the risk of losing
1586       important mail outweighs the benefit of using a filter.  Could you
1587       convince someone who holds the other opinion?  If I told you that my
1588       filter was 99-percent accurate, would you believe me?  Would you know
1589       what I meant?  Would you  be able to translate that 99-percent into
1590       the risk of losing an important message?
1591       </p><p>
1592       Gord Cormack talks about the science, logistics, and politics of Spam
1593       Filter Evaluation.
1594     </p></abstract>
1595     <presentor>Dr. Gord Cormack</presentor>
1596   <thumbnail file="cormack-spam-thumb-small.jpg" />
1597   <mediafile file="cormack-spam-xvid.avi" type="XviD" size="473M" />
1598   <mediafile file="cormack-spam.avi" type="DiVX" size="473M" />
1599   <mediafile file="cormack-spam.mpg" type="MPG" size="472M" />
1600   <mediafile file="cormack-spam.ogg" type="Ogg/Theora" size="481M" />
1601   <flvfile file="cormack-spam.flv" />
1602 </mediaitem>
1603
1604 <mediaitem title="Software development gets on the Cluetrain">
1605   <abstract><p>
1606     Simon Law leads the Quality teams for Ubuntu, a free-software operating
1607     system built on Debian GNU/Linux. As such, he leads one of the largest
1608     community-based testing efforts for a software product. This does get a
1609     bit busy sometimes.
1610     </p><p>
1611     In this talk, we'll be exploring how the Internet is changing how software
1612     is developed. Concepts like open source and technologies like message
1613     forums are blurring the lines between producer and consumer. And this
1614     melting pot of people is causing people to take note, and changing the way
1615     they sling code.
1616     </p><p>
1617     The Computer Science Club would like to thank the CS-Commons Committee for
1618     co-sponsoring this talk.
1619   </p></abstract>
1620   <presentor>Simon Law</presentor>
1621   <thumbnail file="simon-talk-thumb-small.jpg" />
1622   <mediafile file="simon-talk-xvid.avi" type="XviD" size="178M" />
1623   <mediafile file="simon-talk.avi" type="DivX" size="178M" />
1624   <mediafile file="simon-talk.mpg" type="MPG" size="177M" />
1625   <flvfile file="simon-talk.flv" />
1626 </mediaitem>
1627
1628 <mediaitem title="Semacode - Image recognition on mobile camera phones">
1629   <abstract><p>
1630     Could you write a good image recognizer for a 100 MHz mobile phone
1631     processor with 1 MB heap, 320x240 image, on a poorly-optimized Java stack?
1632     It needs to locate and read two-dimensional barcodes made up of square
1633     modules which might be no more than a few pixels in size. We had to do
1634     that in order to establish Semacode, a local start up company that makes a
1635     software barcode reader for cell phones. The applications vary from
1636     ubiquitous computing to advertising. Simon Woodside (founder) will discuss
1637     what it's like to start a business and how the imaging code works.
1638   </p></abstract>
1639   <presentor>Simon Woodside</presentor>
1640   <thumbnail file="semacode-thumb-small.jpg" />
1641   <mediafile file="semacode.avi" type="DivX" size="180M"/>
1642   <mediafile file="semacode-xvid.avi" type="XviD" size="180M"/>
1643   <mediafile file="semacode.mpg" type="Mpeg" size="180M"/>
1644 </mediaitem>
1645
1646 <mediaitem title="Eric LaForest: Next Generation Stack Computing">
1647   <abstract><p>
1648     Eric LaForest delivers a crash-course on modern stack computing, the Forth
1649     programming language, and some projects of his own. Stack systems have
1650     faster procedure calls and reduced complexity (shorter pipeline, simpler
1651     compilation) relative to their conventional counterparts, as well as more
1652     consistent performance, which is very important for real-time systems.
1653     Many consider stack-based architecture's crowning feature, however, to be
1654     the unrivalled price-to-performance ratio.
1655     </p><p>
1656         Note: the slides are hard to make out in the video, so make sure to
1657     download the slides as well.
1658   </p></abstract>
1659   <presentor>Eric LaForest</presentor>
1660   <thumbnail file="ericlaforest-thumb-small.jpg" />
1661   <mediafile file="eric-laforest2-720-480.avi" type="DiVX" size="357M"/>
1662   <mediafile file="ericlaforest-xvid.avi" type="XViD" size="309M"/>
1663   <mediafile file="ericlaforest.mpg" type="Mpeg" size="307M" />
1664   <mediafile file="CSCtalkMar06.pdf" size="1M" type="slides [pdf]"/>
1665   <mediafile file="CSCtalkMar06.ppt" size="1M" type="slides [Power Point]" />
1666   <mediafile file="CSCtalkMar06.odp" size="1M" type="slides [Open Office]" />
1667 </mediaitem>
1668 <mediaitem title="Larry Smith: Creating Killer Applications">
1669   <abstract><p>
1670     A discussion of how software creators can identify application
1671     opportunities that offer the promise of great social and commercial
1672     significance. Particular attention will be paid to the challenge of
1673     acquiring cross domain knowledge and setting up effective collaboration.
1674   </p></abstract>
1675   <presentor>Larry Smith</presentor>
1676   <thumbnail file="larry-killer-applications-thumb-small.jpg" />
1677   <mediafile file="larry-killer-applications.avi" size="686M" type="DiVX" />
1678   <mediafile file="larry-killer-applications-xvid.avi" size="686M" type="XviD" />
1679   <mediafile file="larry-killer-applications.mpg" size="685M" type="MPG" />
1680   <mediafile file="larry-killer-applications.ogg" size="706M" type="Ogg" />
1681 </mediaitem>
1682
1683 <mediaitem title="Larry Smith: Computing's Next Great Empires">
1684   <presentor>Larry Smith</presentor>
1685   <thumbnail file="audio-file.png" />
1686   <mediafile file="larry-smith-talk.ogg" type="Ogg" />
1687   <mediafile file="larry-smith-talk.mp3" type="MP3" />
1688 </mediaitem>
1689
1690 <mediaitem title="Rico Mariani: Eighteen Years in the Software Tools Business">
1691   <abstract><p>
1692     Rico Mariani, (BMath CS/EEE 1988) now an (almost) 18 year Microsoft
1693     veteran but then a CSC president comes to talk to us about the evolution
1694     of software tools for microcomputers. This talk promises to be a little
1695     bit about history and perspective (at least from the Microsoft side
1696     of things) as well as the evolution of software engineers, different types
1697     of programmers and their needs, and what it's like to try to make the
1698     software industry more effective at what it does, and sometimes succeed!
1699     Particularly illuminating are his responses to advocates of
1700     free/open-source software.
1701   </p></abstract>
1702   <presentor>Rico Mariani</presentor>
1703   <thumbnail file="rico-thumb-small.jpg" />
1704   <mediafile file="rico.avi" type="XviD" size="534M" />
1705   <mediafile file="rico.ogg" type="Ogg/Theora" size="528M" />
1706   <mediafile file="rico.mp4" type="MP4" size="507M" />
1707   <mediafile file="rico.mpg" type="MPG" size="532M" />
1708   <flvfile file="rico.flv" />
1709 </mediaitem>
1710
1711     </ul>
1712   </section>
1713 <footer />
1714 </cscpage>