\documentclass[10pt]{beamer}
\include{macros}

\mode<presentation>
{
  \usetheme{Warsaw}
\usecolortheme{rose}
%\usecolortheme{seahorse}
  \setbeamercovered{transparent}
  % or whatever (possibly just delete it)
}


\usepackage[english]{babel}
% or whatever

\usepackage[latin1]{inputenc}
% or whatever

\usepackage{times}
\usepackage[T1]{fontenc}
% Or whatever. Note that the encoding and the font should match. If T1
% does not look nice, try deleting the line with the fontenc.


\title{SAGE: Software for Algebra and Geometry Experimentation}

\author{William Stein}

% - Use the \inst command only if there are several affiliations.
% - Keep it simple, no one is interested in your street address.

\date[August 28] % (optional)
{August 28, 2006\\
MUSA Serge Lang Memorial Lecture\\
\includegraphics[width=6em]{icon-4.jpg}\\
{\tt http://sage.math.washington.edu}}

\subject{Talks}

% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:
\AtBeginSubsection[]
{
  \begin{frame}<beamer>
    \frametitle{Outline}
    \tableofcontents[currentsection,currentsubsection]
  \end{frame}
}

% If you wish to uncover everything in a step-wise fashion, uncomment
% the following command: 

%\beamerdefaultoverlayspecification{<+->}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}
  \frametitle{Outline}
\Large
  \tableofcontents
  % You might wish to add the option [pausesections]
\end{frame}

\section{Serge Lang}
\begin{frame}
\frametitle{My First Meeting With Serge Lang}

Tell an anecdote about meeting Serge Lang at Berkeley in 1995 and learning
about restriction of scalars...  Piles of books...  Algebraic geometry chapter...

\begin{center}
\includegraphics[width=.5\textwidth]{Serge_Lang}
\end{center}
\end{frame}

\begin{frame}
\frametitle{Mazur's Quote}

``Serge did this sort of thing, through the decades, with many 
of the young: he would proffer to them gracious, yet demanding, invitations to engage as a genuine 
colleague---not teacher to student---but mathematician to mathematician; he did all this naturally, 
and with extraordinary generosity and success. 
\vfill
 {\dblue That we are personally responsible for the web of 
compromises that we have all come to accept, and to think are inevitable, is something he would 
never let us forget.} That we, as editors or referees of journals, make our judgments based on some 
presumed social, or sociable, contract does not let 
us off the hook when asked to examine without prejudice the underpinnings of our (usually only 
implicit) social contracts.'' \hspace{20em} -- Barry Mazur
\vfill

\vspace{-4ex}

\mbox{}\hspace{20em}\includegraphics[width=.2\textwidth]{LangSerge}
 \end{frame}


\section{Open Source Math Software}
\begin{frame}
\frametitle{Open Source Math Software}

{\bf \large {\dblue SAGE:} Free open source {\dblue S}oftware
{\dblue F}or {\dblue A}lgebra and {\dblue G}eometry 
{\dblue E}xperimentation}\vspace{-1.1ex}

\begin{center}
  \includegraphics[width=0.80\textwidth]{sage-car.jpg}
\end{center}
 
\end{frame}


\begin{frame}
\frametitle{Does Open Source Matter for Math Research?}
\small
``You can read Sylow's Theorem and its proof in Huppert's book in the
library [...]  then {\dblue you can use Sylow's Theorem} for the rest of your
life free of charge, but for many computer algebra systems {\dred license
fees have to be paid} regularly [...].  You press buttons and you get
answers in the same way as you get the bright pictures from your
television set but you cannot control how they were made in either
case.
\vspace{2ex}

With this situation {\dred two of the most basic rules of conduct in
  mathematics are violated}: In mathematics {\dblue information is passed on
free of charge} and {\dblue everything is laid open for checking}. Not applying
these rules to computer algebra systems that are made for mathematical
research [...]  means {\dred moving in a most undesirable direction}.
Most important: Can we expect somebody to believe a result of a
program that he is not allowed to see? ''

\vspace{2ex}
-- J. Neub\"user (he initiated the free group theory software GAP in 1986).
\end{frame}
%
%\begin{frame}
%\frametitle{In 1996, ten years later, when retiring:}
%``It has
%been my role as chairman of Lehrstuhl D fuer Mathematik, RWTH Aachen,
%to {\dgreen provide the present environment} for the development and maintenance
%of the central parts of GAP and for the service to the community of
%the GAP users.
%\vfill
%Let me finally state a point that is {\dred very important to me}. The
%colleagues in St. Andrew completely agree with me that also in their
%hands {\dblue GAP will remain a system that can be obtained free of charge and
%with completely open source of kernel, library and data.}
%''
%\vfill

%And now it is ten years later in 2006...

%
%\end{frame}


\begin{frame}[fragile]
\small
A few days ago, from the Axiom mailing list:
\begin{verbatim}
From: "Page, Bill" <Bill.Page@drdc-rddc.gc.ca>
Date: Wed, 16 Aug 2006 07:48:48 -0400
\end{verbatim}

``You will find that SAGE is quite different than any other 
computer algebra system with which you might be familiar - 
truly a 'new generation'.
\vfill
I think the SAGE developers were very bold---{\dred maybe 
even audacious}---to actually attempt this. And they 
are doing it in a largely pragmatic way without 
attempting to incorporate the more formal and 
theoretical ideas developed by the OpenMath community. 
\vfill

One might have been tempted to predict an early 
failure to this effort but on the contrary 
{\dblue Sage seems to be growing more rapidly than any 
other computer algebra research and development effort}.''
\end{frame}



\begin{frame}
\frametitle{What is SAGE?????}
\begin{enumerate}
\item {\dred A Distribution} of free open source math software. 52MB source
tarball that builds self-contained (``no'' dependencies).  
\item {\dred A New Collection of code} that fills in the gaps in existing open
source free math software.
\item {\dred A New Interface} to your mathematics software: MAGMA, Mathematica,
Maple, etc. 
\end{enumerate}
\vfill
SAGE works well on {\dred Linux} and {\dred OS X},
 and works on MS Windows.
\end{frame}

\begin{frame}
\frametitle{Who is Writing SAGE?}


\begin{center}
\large
  Professors, Postdocs, Graduate students, {\dred Undergraduates},
  High school teachers, Professionals, Retired techies, {\dred Maybe YOU?!}
\end{center}

\vfill

{\dblue Contributors Include:}
{\em Tom Boothby},
Robert Bradshaw,
David Harvey,
Craig Citro,
Bobby Moretti,
Emily Kirkman,
Yi Qiang,
Josh Kantor,
{\em David Kohel},
{\em David Joyner},
Iftikhar Burhanuddin,
John Cremona,
{\em Martin Albrecht},
Wilson Cheung,
{\em Alex Clemesha},
Didier Deshommes,
Naqi Jaffery,
Kiran Kedlaya,
David Roe,
David Kirkby,
Jon Hanke,
Gregg Musiker,
Fernando Perez, 
Nathan Ryan, 
Kyle Schalm,
Steven Sivek,
Jaap Spies,
{\em Gonzalo Tornaria},
Justin Walker,
Mark Watkins,
Joe Weening,
Joe Wetherell

\vfill 

\end{frame}


\section{How SAGE Works}
\begin{frame}
\Huge
\vfill
\begin{center}
SAGE: Technology Overview
\end{center}
\vfill
\end{frame}


\begin{frame}
\frametitle{The SAGE Notebook}

SAGE has a nontraditional graphical user interface.  It is
an {\dred ``AJAX application''} like Gmail, but it runs completely
on your desktop; also
a sort of ``wiki''.

\begin{enumerate}
\item {\dred Written from scratch} in Python and Javascript in June 
by me, Alex C. and Tom B.\vfill
\item Uses Python's built-in {\dred BaseHTTPServer} web server.\vfill
\item Works well with Firefox, Safari, and Opera.\vfill
\item Client/server model which works {\dred over network} or locally.  \vfill
\item Current version is {\dred stable and usable}. \vfill
\item Try it: {\tt http://sage.math.washington.edu:8100} \vfill
\end{enumerate}
\end{frame}

\begin{frame}
\frametitle{The Key Components of SAGE}
\large
\begin{tabular}{|l|l|}\hline
Graphical User Interface & {\dred Notebook (AJAX)} \\\hline
Interactive Shell &	{\dred IPython}   \\\hline
Interpreted language & {\dred	Python } \\\hline
Graphics &	{\dred Matplotlib}   \\\hline
Group theory and combinatorics  &	{\dred GAP} \\\hline
Symbolic computation / calculus  &	{\dred Maxima}  \\\hline
Commutative algebra &	{\dred Singular}  \\\hline
Number theory &	{\dred PARI, MWRANK, NTL}  \\\hline
Numerical Computation & 	{\dred GSL} and {\dred SciPy}  \\\hline
\end{tabular}
\vfill

\begin{center}
{\bf\dblue All (but SciPy) part of the core SAGE install.}
\end{center}
\end{frame}


\begin{frame}
\frametitle{Interfaces to Everything!}
{\dblue Continue to use} your favorite programs and code 
from within SAGE (but with a {\dblue Pythonic} interface!):
\vfill\large
\begin{itemize}
\item SAGE includes (mostly pseudo-tty) interfaces to
\begin{center}
{\em\dred GAP}, {\em\dred GP/PARI}, Kash, Macaulay2,
Magma, Maple, Mathematica,
{\em\dred Maxima}, Octave, {\em\dred Singular}, etc.
\end{center}
\vfill
\item Red systems are included standard with SAGE.
\vfill
\item Get uniform flexible access to all of the functionality of the other
systems. 
\vfill
\item Get tab completion, online help.
\vfill
\item Driven by {\dred demand}, not theory -- Result: completely ignores the Open Math and MathML communities.
\end{itemize}

\end{frame}

\begin{frame}[fragile]
\frametitle{Pyrex: Fast compiled code}
\begin{itemize}
\item Is SAGE {\dred ``impossible''}???:
{\small \begin{verbatim}
Date: Mon, 14 Aug 2006 15:26:36 +0100 (BST)
I've never understood how you can think something that 
sits on top of python can beat some custom code like 
magma. How does SAGE multiply two numbers? Does it use 
python to do it? I was trying to explain SAGE and failed 
miserably.
\end{verbatim}}

\item SAGE can be very fast, since it is partly written in {\dred
    Pyrex}, which is a Python-like language that is converted to C and
  compiled: {\tt\small
    http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/} My plan
  is that all of SAGE's basic arithmetic types will be
  (re-)written this way in the next few months.

\item Martin Albrecht and I are improving Pyrex and making
it very easy to use from within SAGE (all build details
are automated).

\end{itemize}

\end{frame}


\section{Demo: The Birch and Swinnerton-Dyer Conjecture}
\begin{frame}
\frametitle{Demo: The Birch and Swinnerton-Dyer Conjecture}

``It was whilst I was staying in a lovely hotel
in the Black Forest in Germany.  I plotted
the numbers I got, and lo and behold there were
a dozen dots arranged in four parallel lines ...
Wonderful!  From that point on it
was absolutely clear that there was something
there.''\\\hspace{20em} -- Bryan Birch

\begin{center}
\includegraphics[width=.7\textwidth]{bsd}
\end{center}

\end{frame}


\section{History and Goals} 
\begin{frame}
\Huge
\vfill
\begin{center}
History and Status Report
\end{center}
\vfill
\end{frame}

\begin{frame}
\frametitle{History: SAGE 0.1 to SAGE 1.3.6.3}
\large
\begin{itemize}
\item {\dblue 1997-2004:} Much C++ and MAGMA for research.
\item {\dblue Feb 2004:} Extreme frustration with MAGMA.
\item {\dblue Feb 2005:} I got job offers with {\dred tenure} -- {\em SAGE 0.1}
\item {\dblue April 2005:} {\dred Interfaces} to Mathematica, Magma, etc.
\item {\dblue Feb 2006:} SAGE Days 1 workshop -- {\dred SAGE 1.0}
\item {\dblue June 2006:} High school workshop -- {\dred SAGE Notebook }
\item {\dblue August 2006:} Grad student workshop -- two week super-intense {\em graduate
student} coding sprint.
\item {\dblue Today:} SAGE now has a {\dred huge range of
    functionality}.  But 
  {\dred SAGE is not fast enough yet.}
\end{itemize}

\end{frame}


%\begin{frame}
%\frametitle{What is included in SAGE?}
%\begin{enumerate}
%\item {\dblue Standard packages:}\\
%cddlib, {\dred clisp}, conway\_polynomials, cremona\_mini,
%doc, ecm, freetype, gap,
%genus2reduction, gfan, givaro, {\dred gmp}, {\dred gnuplotpy},
%{\dred ipython}, lcalc, libpng, {\dred matplotlib}, {\dred maxima},
%{\dred mpfr}, mwrank, ntl, {\dred numeric}, pari, {\dred pexpect},
%{\dred pyrex}, {\dred pyrexembed}, {\dred python}, readline, 
%singular, sympow, tachyon, termcap, zlib, {\dred zodb3}
%\item {\dblue Optional Packages: {\tt sage -i package\_name}}\\
%darcs, database\_cremona\_ellcurve,
%database\_gap, database\_jones\_numfield,
%database\_kohel, database\_odlyzko\_zeta, database\_sloane\_oeis,
%database\_stein\_watkins\_mini, {\dred dvipng}, extra\_docs, gap\_packages,
%gd, {\dred gnuplot}, hermes, kash3\_linux, kash3\_osx, lie, linbox,
%macaulay2, {\dred mayavi}, {\dred moin (wiki)}, {\dred numarray}, 
%{\dred numpy}, nzmath, polymake, 
%pygtk, RealLib3, {\dred scipy}, {\dred soya}
%\end{enumerate}
%\end{frame}


\begin{frame}
\frametitle{Goals for SAGE 2.0}
{\Large Main Goals for SAGE 2.0 -- December 2006}
\vfill
\large
\begin{enumerate}
\item Make the {\dred basic arithmetic}, e.g., finite fields, polynomials, etc.,
 very fast.
\item Make the {\dred everyday {\em exact} linear algebra} very fast.
\item Core numerical support.

\item Good {\dred 3d visualization} in the notebook.

\item Make viewing {\dred source code} of what you're using {\em extremely easy}.

\item For SAGE 3.0: Big push for parallel algorithms.
\end{enumerate}
\vfill 
\end{frame}

\begin{frame}
\LARGE
\begin{center}
\dblue Any Questions?

\vfill
\includegraphics[width=.4\textwidth]{lang_old}
\end{center}

\end{frame}


\end{document}


