Open with one click!
1
\documentclass[10pt]{beamer}
2
\include{macros}
3
4
\mode<presentation>
5
{
6
\usetheme{Warsaw}
7
%\usecolortheme{rose}
8
\usecolortheme{seahorse}
9
\setbeamercovered{transparent}
10
% or whatever (possibly just delete it)
11
}
12
13
14
\usepackage[english]{babel}
15
% or whatever
16
17
\usepackage[latin1]{inputenc}
18
% or whatever
19
20
\usepackage{times}
21
\usepackage[T1]{fontenc}
22
% Or whatever. Note that the encoding and the font should match. If T1
23
% does not look nice, try deleting the line with the fontenc.
24
25
26
\title{SAGE: Software for Algebra
27
and Geometry Experimentation}
28
29
\author{William Stein}
30
31
% - Use the \inst command only if there are several affiliations.
32
% - Keep it simple, no one is interested in your street address.
33
34
\date[October 3] % (optional)
35
{\vspace{-6ex}
36
37
October 23, 2006,
38
IMA Algebraic Geometry Software Workshop\\
39
40
\includegraphics[width=22em]{sage-car.png}}
41
42
\subject{Talks}
43
44
% Delete this, if you do not want the table of contents to pop up at
45
% the beginning of each subsection:
46
\AtBeginSubsection[]
47
{
48
\begin{frame}<beamer>
49
\frametitle{Outline}
50
\tableofcontents[currentsection,currentsubsection]
51
\end{frame}
52
}
53
54
% If you wish to uncover everything in a step-wise fashion, uncomment
55
% the following command:
56
57
%\beamerdefaultoverlayspecification{<+->}
58
59
\begin{document}
60
61
\begin{frame}
62
\titlepage
63
\end{frame}
64
65
66
67
%\begin{frame}
68
%\frametitle{Mathematics Software}
69
%Price for one {\dblue non-academic non-government} copy:
70
%\vfill
71
%{\Large
72
%\begin{itemize}
73
%\item Mathematica -- {\dgreen \$\textbf{1880} (or \$3135)}
74
%\item Maple -- {\dgreen \$\textbf{1995}}
75
%\item MATLAB - {\dgreen \$\textbf{1900}} (plus thousands of dollars for optional package),
76
%\item Magma is {\dgreen \$\textbf{1150}} (educational
77
%rate---the non-educational rate is much higher?).
78
%\end{itemize}
79
%}
80
%\vfill
81
%\end{frame}
82
%
83
84
85
\begin{frame}
86
\begin{center}
87
\LARGE Despite any rules to the contrary, please {\dred do type} and {\dred ask questions}
88
at any time during my talk!
89
90
\end{center}
91
\end{frame}
92
%
93
94
\begin{frame}[fragile]
95
\frametitle{Does Open Source Matter for Math Research?}
96
97
``You can read Sylow's Theorem and its proof in Huppert's book in the
98
library [...] then you can use Sylow's Theorem for the rest of your
99
life free of charge, but for many computer algebra systems license
100
fees have to be paid regularly [...]. You press buttons and you get
101
answers in the same way as you get the bright pictures from your
102
television set but you cannot control how they were made in either
103
case.
104
\vspace{2ex}
105
106
With this situation {\dred two of the most basic rules of conduct in
107
mathematics are violated}: In mathematics {\dblue information is passed on
108
free of charge} and {\dblue everything is laid open for checking}. Not applying
109
these rules to computer algebra systems that are made for mathematical
110
research [...] means {\dred moving in a most undesirable direction}.
111
Most important: Can we expect somebody to believe a result of a
112
program that he is not allowed to see? Moreover: Do we really want to
113
charge colleagues in Moldava several years of their salary for a
114
computer algebra system?''
115
116
\vspace{2ex}
117
118
-- J. Neub\"user in {\bf\LARGE 1993} (he started GAP in 1986).
119
\end{frame}
120
121
122
123
\begin{frame}
124
\frametitle{PROBLEM}
125
126
\vfill
127
{\LARGE
128
{\dblue Problem:} Create unifying
129
{\dgreen free open source}
130
mathematics software that is powerful and easy to use.}
131
132
133
\vfill
134
\begin{center}
135
{\dred\Large SAGE addresses this problem.}
136
\end{center}
137
138
\vfill
139
The development model of SAGE and the technology itself is distinguished
140
by a strong emphasis on {\dred openness, community, cooperation,
141
and collaboration}:\\
142
\begin{center}{\dblue\large SAGE is building the car, not reinventing the wheel.}
143
\end{center}
144
145
146
\end{frame}
147
148
\begin{frame}
149
\frametitle{Who is Writing SAGE?}
150
151
I am a {\dred number theorist}.
152
{SAGE has a {\dgreen wide} target area: {\dred algebra, geometry, number
153
theory, algebraic geometry, numerical analysis, statistics, etc.}}
154
155
156
\vfill
157
158
{\dblue Contributors Include:}
159
{\small Martin Albrecht,
160
Tom Boothby,
161
Robert Bradshaw,
162
Iftikhar Burhanuddin,
163
Craig Citro,
164
Alex Clemesha,
165
John Cremona,
166
Didier Deshommes,
167
David Harvey,
168
Naqi Jaffery,
169
David Joyner,
170
Josh Kantor,
171
Kiran Kedlaya,
172
David Kirkby,
173
Emily Kirkman,
174
David Kohel,
175
Jon Hanke,
176
Robert Miller,
177
Bobby Moretti,
178
Gregg Musiker,
179
Bill Page,
180
Fernando Perez,
181
Yi Qiang,
182
David Roe,
183
Nathan Ryan,
184
Kyle Schalm,
185
Steven Sivek,
186
Jaap Spies,
187
Gonzalo Tornaria,
188
Justin Walker,
189
Mark Watkins,
190
Joe Weening,
191
Joe Wetherell, ...}
192
193
\vfill
194
195
\begin{itemize}
196
\item {\dred 7 Undergraduates}:
197
have many {\dblue extremely interesting} ideas;
198
superb at researching available free software.
199
200
\item {\dred Many graduate students}:
201
excellent at implementing optimized code and finding
202
fast algorithms.
203
204
\item {\dred Faculty and computer professionals}:
205
general direction, great writing, and quality control.
206
207
\item {\dred A snapshot of my inbox...}
208
209
\end{itemize}
210
211
\end{frame}
212
213
\begin{frame}
214
\begin{center}
215
\Large SAGE Days 2: Coding Sprints...
216
\end{center}
217
\vfill
218
\includegraphics[width=\textwidth]{sagedays2moment.png}
219
\vfill
220
{\small Bobby Moretti (UW undergrad), Robert Miller (UW grad),
221
David Harvey (Harvard grad), Joel Mohler (grad),
222
David Joyner (USNA), Bill page (Axiom).}
223
\end{frame}
224
225
\begin{frame}
226
\frametitle{Getting Started with SAGE}
227
\begin{center}
228
{\dblue\LARGE Getting Started with SAGE}
229
\end{center}
230
\begin{enumerate}
231
\item {\dred Free online} SAGE notebook:
232
\url{http://sage.math.washington.edu:8100}
233
\item {\dred Website:} \url{http://sage.math.washington.edu/sage}
234
\item {\dred Documentation:} Tutorial, Install Guide, Programming
235
Guide, Reference Manual, Constructions.
236
\item {\dred Binaries:} For OS X, Windows, and Linux (and building
237
from source is easy).
238
\item {\dred Mailing lists:} sage-devel (very high volume),
239
sage-announce, sage-forum, sage-support.
240
\item {\dred Wiki:} like Wikipedea for SAGE.
241
\item {\dred Trac:} Organizes development.
242
\item {\dred IRC Chatroom:} {\tt \#sage-dev} on irc.freenode.net
243
\end{enumerate}
244
\end{frame}
245
246
247
248
249
%\begin{frame}[fragile]
250
%\frametitle{Some Fancy Hardware -- A Collaboration Environment}
251
%\begin{center}
252
%{\Large\dblue {\tt http://sage.math.washington.edu}}\\
253
%\vfill
254
%\includegraphics[width=0.6\textwidth]{sageserver.jpg}
255
%\end{center}
256
%\vfill
257
%{\dred 64GB RAM}, {\dblue 16 processor} Opteron
258
%server. You can browse the developer working directories
259
%over the web here!
260
%\end{frame}
261
262
263
264
\begin{frame}[fragile]
265
\vfill
266
\begin{center}
267
{\bf\Large\dblue SAGE Demo 1: A Groebner Fan}
268
\end{center}
269
\begin{verbatim}
270
sage: R.<x,y,z> = PolynomialRing(QQ,3,order='lex')
271
sage: I = R.ideal([x^2*y - z, y^2*z - x, z^2*x - y])
272
sage: I.gro[tab key]
273
I.groebner_basis I.groebner_fan
274
sage: I.groebner_basis()
275
[-1*z + z^15, -1*z^11 + y, -1*y^2*z + x]
276
277
sage: G = I.groebner_fan(); G
278
Groebner fan of the ideal:
279
Ideal (y^2*z - x, -1*y + x*z^2, -1*z + x^2*y) of
280
Polynomial Ring in x, y, z over Rational Field
281
282
sage: G.reduced_groebner_bases()
283
[[-1*z + z^15, -1*z^11 + y, -1*z^9 + x],
284
[z^11 - y, -1*z + y*z^4, -1*z^8 + y^2, -1*z^9 + x],
285
...
286
\end{verbatim}
287
\vfill
288
\end{frame}
289
290
291
\begin{frame}
292
\frametitle{Background: From HECKE 0.1 to SAGE 1.4}
293
\large
294
\begin{itemize}
295
\item {\dblue 1997--1999:} HECKE -- my free C++ program for modular
296
forms (I wrote an interpreter for it).
297
\item {\dblue 1999--2004:} I wrote much Magma code. Used it
298
for my research. In computational
299
{\dblue arithmetic geometry}, Magma {\dred totally dominates the field}.
300
\item {\dblue Feb 2005:} I got job offers with {\dgreen tenure} -- {\dred SAGE 0.1}.
301
\item {\dblue Feb 2006:} {\dred SAGE Days 1} workshop -- SAGE 1.0
302
\item {\dblue June 2006:} {\dred High school} workshop -- Notebook
303
\item {\dblue August 2006:} {\dred MSRI Grad student} workshop
304
\item {\dblue October 2006:} {\dred SAGE Days 2} workshop.
305
\item {\dblue Today:} SAGE 1.4 has a {\dred wide range of
306
functionality}.
307
\end{itemize}
308
309
\end{frame}
310
311
312
\begin{frame}[fragile]
313
\vfill
314
\begin{center}
315
{\bf\Large\dblue SAGE Demo: Education...}
316
\end{center}
317
(pull up the SAGE notebook)
318
{\small
319
\begin{verbatim}
320
sage: notebook()
321
----
322
F = factor_tree(prod(primes(30)))
323
F.show(xmin=-3,xmax=7,ymin=-5,ymax=0.5,
324
figsize=[8,2],axes=False)
325
...
326
\end{verbatim}
327
}
328
329
\includegraphics[width=0.9\textwidth]{factor_tree.png}
330
331
\vfill
332
\end{frame}
333
334
335
\begin{frame}
336
\frametitle{What is SAGE?}
337
{\Large SAGE is:}
338
\vfill
339
{\Large
340
\begin{enumerate}
341
\item {\dred A Distribution} of free open source math software.
342
64MB source tarball that builds self-contained.
343
\item {\dred New Readable Code} that fill in gaps in functionality; implement
344
new algorithms.
345
\item {\dred A Unified Mainstream Interface} to
346
math software: to {\dblue Magma}, {\dblue Macaulay2},
347
Singular, {\dblue Maple}, MATLAB, Mathematica, Axiom, etc.
348
\end{enumerate}
349
}
350
351
\vfill
352
SAGE runs on {\dred Linux, OS X, and Windows}.
353
\end{frame}
354
355
356
\begin{frame}
357
\frametitle{A Distribution}
358
\begin{center}
359
{\dblue\LARGE 1. A Distribution}
360
\end{center}
361
\begin{center}
362
\begin{tabular}{|l|l|}\hline
363
Basic Arithmetic & {\dred GMP, NTL, MPFR, PARI} \\\hline
364
Command Line & {\dred IPython} \\\hline
365
Commutative algebra & {\dred Singular} (libcf, libfactory) \\\hline
366
Database & {\dred ZODB}, Python Pickles \\\hline
367
Graphical Interface & {\dred jsmath, SAGE Notebook} \\\hline
368
Graphics & {\dred Matplotlib, Tachyon} \\\hline
369
Group theory and combinatorics & {\dred GAP} \\\hline
370
Graph theory & {\dred Networkx} \\\hline
371
Interactive programming language & {\dred Python } (mainstream !!!) \\\hline
372
Networking & {\dred Twisted} \\\hline
373
Numerical computation & {\dred GSL, Numeric, etc.} \\\hline
374
Symbolic computation, calculus & {\dred Maxima} \\\hline
375
\end{tabular}
376
\end{center}
377
\vfill
378
All core components are {\dred free and open source}. You may
379
{\dred read the code} and {\dred change
380
anything} in SAGE or any of the core libraries
381
it includes, and
382
redistribute the result.
383
\end{frame}
384
385
386
\begin{frame}[fragile]
387
\vfill
388
\begin{center}
389
{\bf\Large\dblue SAGE Demo: A Distribution}
390
\end{center}
391
{\small
392
\begin{verbatim}
393
$ wget http://sage.math.washington.edu/sage/dist/
394
src/sage-1.4.1.2.tar
395
$ tar xvf sage-1.4.1.2.tar
396
...
397
$ cd sage-1.4.1.2
398
$ make # completely automatic on OS X and Linux (!)
399
...
400
$ ./sage
401
--------------------------------------------------------
402
| SAGE Version 1.4.1.2, Build Date: 2006-10-19 |
403
| Distributed under the GNU General Public License V2. |
404
--------------------------------------------------------
405
sage: install_scripts('/home/was/bin/')
406
... (installs gap, gp, singular, etc. scripts).
407
$ /home/was/bin/gap
408
GAP4, Version: 4.4.8 of 18-Sep-2006, i686-apple-darwin8.7.1-gcc
409
gap>
410
\end{verbatim}
411
}
412
\vfill
413
\end{frame}
414
415
\begin{frame}[fragile]
416
\frametitle{The SAGE Library -- new code we've written}
417
\begin{center}
418
{\dblue\LARGE 2. New Code}
419
\end{center}
420
421
Python and Pyrex code --- {\dred designed to be readable}:
422
\small
423
\begin{verbatim}
424
algebras edu lfunctions monoids sets
425
categories ext libs plot structure
426
coding functions matrix quadratic_forms tests
427
combinat geometry misc rings
428
crypto groups modular schemes
429
databases interfaces modules server
430
431
UNIQUE Source Code Lines (including docstrings):
432
$ cat */*.py */*/*.py */*/*/*.py */*.pyx \
433
*/*/*.pyx */*/*.pyx |sort |uniq | wc -l
434
87513
435
UNIQUE Input Documentation Examples:
436
$ cat */*.py */*/*.py */*/*/*.py */*.pyx \
437
*/*/*.pyx */*/*.pyx |sort|uniq|grep "sage:" | wc -l
438
9759
439
\end{verbatim}
440
\end{frame}
441
442
\begin{frame}[fragile]
443
\vfill
444
\begin{center}
445
{\bf\Large\dblue SAGE Demo: New Code (interactive help)}
446
\end{center}
447
{\small
448
\begin{verbatim}
449
sage: bernoulli? # one ? for help
450
Return the n-th Bernoulli number, as a rational number.
451
INPUT:
452
n -- an integer
453
algorithm:
454
'pari' -- (default) use the PARI C library, which is
455
by *far* the fastest.
456
'gap' -- use GAP
457
'gp' -- use PARI/GP interpreter
458
'magma' -- use MAGMA
459
'python' -- use pure Python implementation
460
461
EXAMPLES:
462
sage: bernoulli(12)
463
-691/2730
464
sage: bernoulli(50)
465
495057205241079648212477525/66
466
...
467
AUTHORS: David Joyner and William Stein
468
\end{verbatim}
469
}
470
\vfill
471
\end{frame}
472
473
\begin{frame}[fragile]
474
\vfill
475
\begin{center}
476
{\bf\Large\dblue SAGE Demo: New Code (interactive code)}
477
\end{center}
478
{\small
479
\begin{verbatim}
480
sage: bernoulli?? # two question marks for source code
481
File: ... python2.5/site-packages/sage/rings/arith.py
482
...
483
if algorithm == 'pari':
484
x = pari(n).bernfrac() # Use the PARI C library
485
return Rational(x)
486
elif algorithm == 'gap':
487
x = sage.interfaces.gap.gap('Bernoulli(%s)'%n)
488
return Rational(x)
489
elif algorithm == 'magma':
490
x = sage.interfaces.magma.magma('Bernoulli(%s)'%n)
491
return Rational(x)
492
elif algorithm == 'gp':
493
x = sage.interfaces.gp.gp('bernfrac(%s)'%n)
494
return Rational(x)
495
elif algorithm == 'python':
496
return sage.rings.bernoulli.bernoulli_python(n)
497
else:
498
raise ValueError, "invalid choice of algorithm"
499
\end{verbatim}
500
}
501
\vfill
502
\end{frame}
503
504
505
506
\begin{frame}
507
\frametitle{A Unified Interface}
508
\begin{center}
509
{\dblue\LARGE 3. A Unified Interface}
510
\end{center}
511
\vfill\large
512
\begin{itemize}
513
\item SAGE {\dred interfaces to}:
514
Axiom, GAP, GP/PARI, Kash, Macaulay2,
515
Magma, Maple, Mathematica, MATLAB, Maxima, Octave, Singular, etc.
516
517
\vfill
518
\item Wide range of {\dred functionality}.
519
\vfill
520
\item Unified {\dred command completion and help}.
521
\vfill
522
\end{itemize}
523
524
\end{frame}
525
526
\begin{frame}[fragile]
527
\vfill
528
\begin{center}
529
{\bf\Large\dblue SAGE Demo: Interfaces}
530
\end{center}
531
\vfill
532
{\dred IDEA:} Use buffered psuedo-tty's and
533
Python objects that wrap native objects. This makes
534
it possible to wrap {\dred all} computer algebra systems
535
with a command line interfaces using very similar code.
536
537
\vfill
538
\begin{verbatim}
539
sage: R = macaulay2('ZZ/5[x,y,z]')
540
\end{verbatim}
541
This fires up one copy of Macaulay2 (if it wasn't already started)
542
and sends the line {\tt sage1=ZZ/5[x,y,z]} to M2.
543
It also creates a Python class R with a field set to {\tt "sage1"}.
544
{\small \begin{verbatim}
545
sage: !ps ax |grep M2
546
2527 pc Ss+ 0:00.53 M2 --no-debug --no-readline
547
sage: type(R)
548
<class 'sage.interfaces.macaulay2.Macaulay2Element'>
549
sage: R
550
ZZ/5 [x, y, z]
551
sage: R.name()
552
'sage1'
553
\end{verbatim}
554
}
555
556
Then {\tt n=R.char()} would send {\tt sage2=char(sage1)}
557
to Macaulay2.
558
559
\vfill
560
\end{frame}
561
562
563
%\begin{frame}
564
%\frametitle{SAGE Interfaces}
565
%\Large
566
%``I think the SAGE developers were very bold---maybe
567
%even audacious---to actually attempt this. And they
568
%are doing it in a largely pragmatic way without
569
%attempting to incorporate the more formal and
570
%theoretical ideas developed by the OpenMath
571
%community.
572
573
%\vspace{1ex}
574
575
%One might have been tempted to predict
576
%an early failure to this effort but on the contrary
577
%Sage seems to be growing more rapidly than any
578
%other computer algebra research and development
579
%effort.''
580
581
%\hspace{15em} -- Bill Page
582
583
%
584
%%\vfill
585
%%\black
586
%%Fateman predicted early failure in December 2004...
587
%%\vfill
588
589
%%\red
590
%%``Maybe the SAGE structure has some organizational benefit
591
%%(e.g. using Python for scripting), but compared to what?
592
%%Tcl? Lisp? Scheme? Guile? Ruby? Jscript? PARI?
593
%%\vspace{1ex}
594
595
%%Why not hook SAGE to Maxima, or the reverse?
596
%%Can you convince an engineer to use it? For what?
597
598
%%\vspace{1ex}
599
%%Elephants are interesting and useful. Feathers are interesting
600
%%and useful. Elephants with feathers are a curiosity. Is SAGE an elephant
601
%%with feathers?''
602
603
%%\hspace{15em} -- Richard Fateman
604
605
%\end{frame}
606
607
608
609
\begin{frame}
610
\frametitle{Overall Structure of SAGE}
611
{\dblue\Large The Overall Structure of SAGE}
612
\vfill
613
\begin{itemize}
614
\item {\dred Custom package management system } -- 42 standard
615
packages, and 28 optional ones. Automated upgrades.
616
\vfill
617
\item {\dred Interactive command-line} interface -- IPython.
618
\vfill
619
\item {\dred Graphical user interface} -- via your web browser.
620
\vfill
621
\item {\dred Fast underlying arithmetic} -- built on
622
mature robust C libraries (GMP, NTL, PARI, GSL).
623
New code is written in Pyrex and Python.
624
625
\vfill
626
\item {\dred Interfaces with other software} use buffered
627
{\dred psuedo-tty}'s.
628
\vfill
629
\item {\dred Special purpose components} -- e.g., {\dred Gfan}
630
(for computing
631
with Groebner fans and {\dred tropical varieties}),
632
{\dred polymake}
633
for polytopes, {\dred GMP-ECM} (for integer factorization), etc.
634
\item {\dred Mercurial revision control system} -- included
635
standard; encourages users to be developers.
636
\end{itemize}
637
638
\end{frame}
639
640
641
\begin{frame}
642
\frametitle{The SAGE Notebook: GUI For Mathematics Software}
643
644
\begin{enumerate}
645
\item The SAGE Notebook -- an {\dred ``AJAX application''} like Google maps or
646
Gmail.\vfill
647
\item {\dred Written from scratch} by me, Alex C. and Tom B.\vfill
648
\item Uses Python's built-in {\dred BaseHTTPServer} web server (we may
649
soon switch to Twisted for a more robust security model).
650
\vfill
651
\item Works well with Firefox, Safari, and Opera.\vfill
652
\item Client/server model which works {\dred over network} or locally. \vfill
653
\item Current version is {\dred stable and usable}. There is a big
654
idea list that will influence the next version. Wiki!\vfill
655
\item Try it: {\tt http://sage.math.washington.edu:8100}\vfill
656
\item {\dblue DEMO: SAGE, Magma, and Macaulay 2 Notebooks}
657
\end{enumerate}
658
\end{frame}
659
660
661
662
663
664
%\begin{frame}
665
%\frametitle{What is included in SAGE?}
666
%\begin{enumerate}
667
%\item {\dblue Standard packages:}\\
668
%cddlib, {\dred clisp}, conway\_polynomials, cremona\_mini,
669
%doc, ecm, freetype, gap,
670
%genus2reduction, gfan, givaro, {\dred gmp}, {\dred gnuplotpy},
671
%{\dred ipython}, lcalc, libpng, {\dred matplotlib}, {\dred maxima},
672
%{\dred mpfr}, mwrank, ntl, {\dred numeric}, pari, {\dred pexpect},
673
%{\dred pyrex}, {\dred pyrexembed}, {\dred python}, readline,
674
%singular, sympow, tachyon, termcap, zlib, {\dred zodb3}
675
%\item {\dblue Optional Packages: {\tt sage -i package\_name}}\\
676
%darcs, database\_cremona\_ellcurve,
677
%database\_gap, database\_jones\_numfield,
678
%database\_kohel, database\_odlyzko\_zeta, database\_sloane\_oeis,
679
%database\_stein\_watkins\_mini, {\dred dvipng}, extra\_docs, gap\_packages,
680
%gd, {\dred gnuplot}, hermes, kash3\_linux, kash3\_osx, lie, linbox,
681
%macaulay2, {\dred mayavi}, {\dred moin (wiki)}, {\dred numarray},
682
%{\dred numpy}, nzmath, polymake,
683
%pygtk, RealLib3, {\dred scipy}, {\dred soya}
684
%\end{enumerate}
685
%\end{frame}
686
687
688
\begin{frame}
689
\frametitle{Goals for SAGE 2.0}
690
\vfill
691
All planning is {\dgreen done in the open}:
692
\begin{center}
693
\url{http://sage.math.washington.edu/trac}
694
\end{center}
695
\vfill
696
697
{\Large\dblue Main Goals for SAGE 2.0 (January 2007):}
698
\vfill
699
\large
700
\begin{enumerate}
701
\item Optimize {\dred basic arithmetic}, e.g., finite fields,
702
exact linear algebra, etc.; this involves
703
moving classes from interpreted Python to compiled code.
704
\vfill
705
\item Make the {\dred SAGE Notebook} more wiki like,
706
e.g., easier to
707
edit, better security and robustness.
708
\vfill
709
\item Improve {\dred introspection}: viewing
710
of source code, hyperlinks to files, etc.
711
712
\end{enumerate}
713
\end{frame}
714
715
\begin{frame}
716
\frametitle{Next Year (2007): parallelism}
717
{\Large\dblue SAGE in 2007: Parallelism}
718
\vfill
719
\large
720
\begin{enumerate}
721
\item Support for {\dblue parallelism} and use of
722
it for algorithms,
723
e.g., multimodular matrix multiply over $\Q$.
724
\vfill
725
\item I'm co-organizing a {\dred workshop January 29--Feb 2, 2007} at MSRI on
726
parallel computation, which will help get the ball
727
rolling.
728
%\item Fernando Perez et al., Yi Qiang, Jason Martin, etc.
729
\end{enumerate}
730
\end{frame}
731
732
\begin{frame}
733
\vfill
734
\LARGE
735
\begin{center}
736
\includegraphics[width=.7\textwidth]{tag.png}
737
738
\vfill
739
\dblue
740
Questions?
741
\end{center}
742
743
\end{frame}
744
745
\end{document}
746
747
748