From November 9 till November 15 I attended SAGE Days 6 in Bristol, UK. It was a conference and a coding sprint for the SAGE project, which wants to build something comparable to Mathematica, Maple, Matlab and Magma built only from open source components without reinventing the wheel. Sage also provides excellent novel implementations for many mathematical algorithms (not found in Mathematica/Maple etc.).
I was invited to give a talk about SymPy, which is a Python library for symbolic mathematics, that we are doing.
Here are my notes from each day:
Saturday: one, two
Sunday: one, two
Monday, Tuesday, Wednesday: one
Impressions
Very positive. I started SymPy two years ago, because I wanted to play with symbolic mathematics in Python, see for example my presentation I gave at this conference for details. SAGE at that time was just able to do some mathematics things, but it was very weak in calculus, which is the SymPy's main domain. This has changed last half a year, when SAGE people managed to wrap Maxima in Python (which I thought to be completely impossible), so I started to follow SAGE development more closely. After the SD6, I must say I became very excited about the project.
One problem with mailinglists, IRC and other online interaction is that it's very difficult for me to get an impression about the people and the project. Being able to meet the developers and discuss with them face to face gives me the impression very quickly and very accurately.
By far the biggest guarantee, why it is worthy for me to contribute to SAGE, is the project leader, William Stein. He is very rational and pragmatic (I like these two properties) and after many discussions with him, I came to realize that he has basically identical views on the important things as I do and were I on his place, I would do the same decisions as he did and does. That's very nice, because I can concentrate my energy on things that I like to improve and don't have to worry about other things, because I know he will do it right.
The other SAGE developers are experts and with similar attitude as William has. It's enthusiastic to be among people who make things happen. For example one of the authors of Cython, Robert, implemented during SD6 a very nice HTML output, that shows Cython code, with colors according to how many Python API calls are called on that particular line, and by clicking that line it shows the corresponding C code.
SAGE project has a high aim and it stricly goes for it, without looking too much to the right or left, and that's how it should be. And it does produce a lot of very useful and high quality stuff along the way, for example Cython (probably the best wrapper for C/C++ things now, only pypy could possibly beat it, but that's still more a research project) or the SAGE notebook, which looks like a Mathematica notebook, but better and in a browser (together with a revision history, sharing, SSL encryption, etc.).
The only little problem is that currently SAGE developers are all mathematicians and as is well-known, mathematicians looks at mathematic from a very different prospective than physicists. :) And so I need calculus, advanced calculus and only when this is working, and working well, I can build on it some more advanced features. SAGE currently goes a little the other way - it has a lot of advanced features, from number theory, modular forms, elliptic curves, etc., but the basic calculus still needs a lot of improvements. SAGE wraps Maxima, because Maxima is quite fast, very well tested, so it works well. It's difficult to extend and written in LISP and that's very bad. That's where SymPy could help - it's in Python, very easy to extend, but currently slower than Maxima (rewriting parts of SymPy using Cython, or even C directly, will make it faster, hopefully as fast as Maxima or faster).
It's not yet in Debian, but SAGE people are working on it. It's not an easy task unfortunately.
Conclusion
SAGE is a very promising young project and I think it will succeed to provide an open source alternative to Maple, Matlab, Mathematica and Magma.
Wednesday, November 14, 2007
Monday, Tuesday, Wednesday
Monday
On Monday we, as usual, had a breakfast in the Marriott Hotel:

and went to the Heilbronn Institute:

that is right across the highest point in Bristol:


We had a presentation by Gregory Bard:

Then we had a discussion what things should be done in the following coding sprints. Then we coded and in the afternoon I had a presentation "SymPy: A Python library for symbolic mathematics".
Tuesday
In the morning Michael Abshoff gave a presentation about valgrinding a Python/Cython/C/C++ library application like Sage (which adds complexity and its own set of problems because of python). We spent the whole day coding, in the afternoon we did a quick session of lightning talks and in the evening we went to a pub, then we again coded till 1am, some even later.
Wednesday
In the morning we did a little coding and then had a wrap-up session:

Then William had a presentation "SAGE for number theorists" at the Heilbronn Seminar, after which most of the people went to pub, but I with Jaap Spies went to the Old City, as tourists. Then I visited a bookstore, read some books and then we had a last coding evening:

On Monday we, as usual, had a breakfast in the Marriott Hotel:

and went to the Heilbronn Institute:

that is right across the highest point in Bristol:


We had a presentation by Gregory Bard:

Then we had a discussion what things should be done in the following coding sprints. Then we coded and in the afternoon I had a presentation "SymPy: A Python library for symbolic mathematics".
Tuesday
In the morning Michael Abshoff gave a presentation about valgrinding a Python/Cython/C/C++ library application like Sage (which adds complexity and its own set of problems because of python). We spent the whole day coding, in the afternoon we did a quick session of lightning talks and in the evening we went to a pub, then we again coded till 1am, some even later.
Wednesday
In the morning we did a little coding and then had a wrap-up session:

Then William had a presentation "SAGE for number theorists" at the Heilbronn Seminar, after which most of the people went to pub, but I with Jaap Spies went to the Old City, as tourists. Then I visited a bookstore, read some books and then we had a last coding evening:

Sunday, November 11, 2007
Sunday afternoon
After a lunch we had a presentation by Clement Pernet about Fast Exact Linear Algebra, then David Loeffler talked about Computing Automorphic Forms for Unitary Groups using Sage:

and then Bill Hart gave a presentation about Algebraic Number Theory with Flint:

In the evening we went to an Indian restaurant and then we had a panel discussion
"The Future of Open Source Mathematical Software", moderated by John Cremona with panelists William Stein, Bill Allombert, Michael Abshoff, Dan Bernstein and me. Recording should be available after the conference.
In the evening, we went to the usual code sprint.

and then Bill Hart gave a presentation about Algebraic Number Theory with Flint:

In the evening we went to an Indian restaurant and then we had a panel discussion
"The Future of Open Source Mathematical Software", moderated by John Cremona with panelists William Stein, Bill Allombert, Michael Abshoff, Dan Bernstein and me. Recording should be available after the conference.
In the evening, we went to the usual code sprint.
Sunday morning
After fighting with the famous British separated hot and cold water taps in the morning, I had the traditional bacon and eggs:

And it was delicious. Then we had the first presentation by Michael Brickenstein (see also the schedule):

After a break, we witnessed a marvelous presentation by Paul Zimmerman about MPFR, used by default by gcc and gfortran:

And we went to lunch.

And it was delicious. Then we had the first presentation by Michael Brickenstein (see also the schedule):

After a break, we witnessed a marvelous presentation by Paul Zimmerman about MPFR, used by default by gcc and gfortran:

And we went to lunch.
Saturday, November 10, 2007
The rest of Saturday
We went to a common lunch at the institute, after which another 3 presentations followed. Robert Bradshaw on Cython, James Davenport on simplification in CAS and Dan Bernstein about elliptic curves. (Most people here are mathematicians, for example working on modular forms, cryptography etc.)
Then we had a conference dinner together, on which we discussed a lot of stuff - GPL2 vs GPL3 vs BSD pros and cons and problems and how to license SAGE and SymPy and whether "translating" something from C++ to Python is a derived work or not, I also asked William, the main author of SAGE sitting on my left hand side, how SAGE has started and about his future plans with it. Basically, we exchanged our experiences with working on an opensource project and how to motivate people to work on it, and how to do and especially not to do things. On my right hand side was Bill Allombert, one of the two authors of PARI/GP and also a Debian Developer, so we signed each other's gpg keys (that we use in Debian) earlier this afternoon. It's awesome, I am wearing my Debian t-shirt today, but I didn't expect to meet any Debian people here.
After a dinner we went to the math institute to have a coding sprint, some pictures using my cell phone from the sprint:





During the dinner and especially during the sprint I borrowed William's camera and recorded short interviews with conference participants. I am going to do more interviews tomorrow. I'll put the link to them later, when William puts them on the internet after the conference.
Then we had a conference dinner together, on which we discussed a lot of stuff - GPL2 vs GPL3 vs BSD pros and cons and problems and how to license SAGE and SymPy and whether "translating" something from C++ to Python is a derived work or not, I also asked William, the main author of SAGE sitting on my left hand side, how SAGE has started and about his future plans with it. Basically, we exchanged our experiences with working on an opensource project and how to motivate people to work on it, and how to do and especially not to do things. On my right hand side was Bill Allombert, one of the two authors of PARI/GP and also a Debian Developer, so we signed each other's gpg keys (that we use in Debian) earlier this afternoon. It's awesome, I am wearing my Debian t-shirt today, but I didn't expect to meet any Debian people here.
After a dinner we went to the math institute to have a coding sprint, some pictures using my cell phone from the sprint:





During the dinner and especially during the sprint I borrowed William's camera and recorded short interviews with conference participants. I am going to do more interviews tomorrow. I'll put the link to them later, when William puts them on the internet after the conference.
Downloading images from Nokia N70 over bluetooth in GNOME
is actually very easy. I connect the bluetooth dongle to the USB port on my laptop and:
And then I just click on the image on my phone and say "send over bluetooth", it finds my computer, I say yes, and that's it. It ends up in my Downloads folder on the desktop.
Then I just upload the images to my blog, see an example how it looks like.
$ wajig install gnome-bluetooth
$ gnome-obex-server
conn_request: bdaddr 00:19:79:86:EB:BC
conn_complete: status 0x00
** Message: Incoming connection from 00:19:79:86:EB:BC
** Message: Device 00:19:79:86:EB:BC is about to send an object.
** Message: File arrived from 00:19:79:86:EB:BC
** Message: Filename '09112007196.jpg' Length 297132
** Message: Saving to '/home/ondra/Desktop/Downloads/09112007196.jpg'
** Message: Incoming connection from 00:19:79:86:EB:BC
conn_request: bdaddr 00:19:79:86:EB:BC
conn_complete: status 0x00
** Message: Incoming connection from 00:19:79:86:EB:BC
** Message: Device 00:19:79:86:EB:BC is about to send an object.
** Message: File arrived from 00:19:79:86:EB:BC
** Message: Filename '10112007197.jpg' Length 289214
** Message: Saving to '/home/ondra/Desktop/Downloads/10112007197.jpg'
** Message: Incoming connection from 00:19:79:86:EB:BC
conn_request: bdaddr 00:19:79:86:EB:BC
conn_complete: status 0x00
** Message: Incoming connection from 00:19:79:86:EB:BC
** Message: Device 00:19:79:86:EB:BC is about to send an object.
** Message: File arrived from 00:19:79:86:EB:BC
** Message: Filename '10112007198.jpg' Length 287449
** Message: Saving to '/home/ondra/Desktop/Downloads/10112007198.jpg'
** Message: Incoming connection from 00:19:79:86:EB:BC
And then I just click on the image on my phone and say "send over bluetooth", it finds my computer, I say yes, and that's it. It ends up in my Downloads folder on the desktop.
Then I just upload the images to my blog, see an example how it looks like.
SAGE Days 6 - Friday and Saturday morning
Right now I am at the SAGE Days 6 conference.
On Friday, I took the plane

from Prague to Bristol, where we accomodated in the Marriott Hotel:

And went to have a dinner together in a Thai restaurant. On Staturday morning we went to our first session

to the math department:

where William:

and Martin:

gave an introductory talk about SAGE.
On Friday, I took the plane

from Prague to Bristol, where we accomodated in the Marriott Hotel:

And went to have a dinner together in a Thai restaurant. On Staturday morning we went to our first session

to the math department:

where William:

and Martin:

gave an introductory talk about SAGE.
Subscribe to:
Posts (Atom)