[math-fun] becoming a 21st century mathematician
I'd be interested in hearing from people about software they've found to be especially useful for any aspect of the math research enterprise. I'm getting a couple of new laptops, and I'm trying to figure out what to install on them. I've got some access to funds from my university, so price is not necessarily an obstacle. Some programs that are fairly indispensable to me already are LaTeX (for typsetting) and Maple / Mathematica for computations (I prefer Maple but am training myself to use Mathematica as well). I'm hoping some of you will steer me towards programs that, a few years from now, will have become just as indispensable to me! (or, failing that, will at least be a lot of fun). One thing I could really use is a good system for creating illustrations. Fifteen years ago there was a simple little Mac drawing program called idraw that I loved, though everyone else I knew preferred xfig; nowadays there's something that calls itself idraw, but I don't think it's related to the idraw that I used back then. I admire folks who are proficient in PostScript, and maybe I'll be one of them someday; for now, I'm tooling along with pstricks, and spending far more time creating pictures than I ought to have to. (As an aside, I'll mention that I've managed to do some non-trivial math research in Excel. I would not ordinarily have thought to do this, but frequently I find myself with no computer more powerful than my Treo, and my Treo happens to have a version of Excel running on it, and one finds ways to get by with whatever one has.) While we're at it, I'm also open to suggestions for software that people have found useful for their teaching. I'm also open to suggestions for hardware. I already own a couple of flash drive sticks, and they've gotten me out of a couple of tight spots by permitting me to give a talk on someone else's laptop at the last minute. I have a hard time believing that flash drives aren't a product of extraterrestrial technology. Are there other things as cool as flash drives that I don't know about? I'm also open to suggestions for websites. Of course I already use OEIS. Speaking of which, three cheers for Neil for deservedly winning the latest Robbins Prize! Since back in the 1970s, the Handbook and Encyclopedia have made math research both more productive and more fun for me than it would otherwise have been. Jim Propp
some things you could look at: a (convertible) tablet PC: http://en.wikipedia.org/wiki/Tablet_PC#Convertibles very handy, e.g. when reviewing papers, you can directly write your notes with a pen in Adobe Acrobat. Software: A version control system, e.g. subversion: http://en.wikipedia.org/wiki/Subversion_(software) useful not only for programmers, but also for keeping control of the evolution of any other document. Can be used when several persons make unsynchronized changes to the same document. you need a subversion server (which can also be your local PC), and then on your PC(s) one of many client programs (available for Linux, Windows, etc). A quite useful tool, if you want to create html out of your latex sources is TeX4ht: http://www.cse.ohio-state.edu/~gurari/TeX4ht/ compared to latex2html it creates less graphics and uses more fonts to display equations. VMWare (or alike): http://en.wikipedia.org/wiki/VMware allows you to run several operating systems AT THE SAME TIME (e.g. Linux and Windows), giving you the opportunity to get the best (applications) from both worlds. Regarding Linux: Debian Linux, if you want it very stable http://www.debian.org Ubuntu (based on debian), if you want to the latest version of everything http://www.ubuntu.org I personally use Debian with VMWare that runs Windows XP (for Powerpoint, Adobe Acrobat). Christoph
* James Propp <jpropp@cs.uml.edu> [May 28. 2008 09:26]:
I'd be interested in hearing from people about software they've found to be especially useful for any aspect of the math research enterprise.
[...]
SAGE: Open Source Mathematics Software http://www.sagemath.org/ http://en.wikipedia.org/wiki/Software_for_Algebra_and_Geometry_Experimentati... comes at a very reasonable price: zero
On 5/29/08, Joerg Arndt <arndt@jjj.de> wrote:
SAGE: Open Source Mathematics Software http://www.sagemath.org/ http://en.wikipedia.org/wiki/Software_for_Algebra_and_Geometry_Experimentati...
comes at a very reasonable price: zero
SAGE has some mechanism to permit simultaneous access to a raft of different systems, including MAGMA (if installed), and PARI etc (incorporated in the download). I can't get much of a grip on how effectively this arrangement might work in practice --- has anybody here actually tried it out? I have found MAGMA robust and efficient for the specialised areas it addresses. But its strong typing induces a steep learning curve: for adults only! Also it runs two orders of magnitude faster on a recent high-end PC than on a G4 Mac --- similar discrepancies may well arise with other CAS, though I doubt if they're so pronounced! Fred Lunnon
From: "Fred lunnon" <fred.lunnon@gmail.com>
SAGE has some mechanism to permit simultaneous access to a raft of different systems, including MAGMA (if installed), and PARI etc (incorporated in the download). I can't get much of a grip on how effectively this arrangement might work in practice --- has anybody here actually tried it out?
Works good for me. Very convenient for such things as cyclotomic fields and p-adics. A lot of tools for elliptic curves. Combinatorics is good and evolving. Some things in SAGE are better than anywhere else, number_of_partitions, for instance. See http://www.mapleprimes.com/forum/a110375 Alec Mihailovs
This is one of the great things about SAGE -- you have a uniform way of dealing with various constructs. Usually SAGE will just choose automatically some algorithm for doing things, but you have the option of asking to use an explicit algorithm (say if you find that Magma does best on this, and you have Magma installed -- you may explicitly invoke a Magma function. SAGE takes care of converting from its internal format to Magma's and back again "under the covers"). And since it uses a mainstream (and very well developed) programming language Python -- you don't have to deal with learning yet another language (I happen to like Python a lot and have used it quite heavily for the past 5 years or so, so I was really happy when SAGE came along). Victor On Thu, May 29, 2008 at 10:26 AM, Fred lunnon <fred.lunnon@gmail.com> wrote:
On 5/29/08, Joerg Arndt <arndt@jjj.de> wrote:
SAGE: Open Source Mathematics Software http://www.sagemath.org/
http://en.wikipedia.org/wiki/Software_for_Algebra_and_Geometry_Experimentati...
comes at a very reasonable price: zero
SAGE has some mechanism to permit simultaneous access to a raft of different systems, including MAGMA (if installed), and PARI etc (incorporated in the download). I can't get much of a grip on how effectively this arrangement might work in practice --- has anybody here actually tried it out?
I have found MAGMA robust and efficient for the specialised areas it addresses. But its strong typing induces a steep learning curve: for adults only! Also it runs two orders of magnitude faster on a recent high-end PC than on a G4 Mac --- similar discrepancies may well arise with other CAS, though I doubt if they're so pronounced!
Fred Lunnon
_______________________________________________ math-fun mailing list math-fun@mailman.xmission.com http://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
Hi all, I have been lurking here for some time at the suggestion of Jim Propp; this is my first post to the math-fun forum.
I'd be interested in hearing from people about software they've found to be especially useful for any aspect of the math research enterprise.
As it happens, I have recently been thinking about what math software I have found most useful over the past year, so I guess I am well placed to provide a lengthy answer to this query. In my response, I will assume little prior knowledge or experience with (in particular) installing open source software or with some nifty technological advances which might have been overlooked by some busy math-fun participants--- please excuse my presumption! (Force of habit--- I do realize that in this group assuming minimal computing background is probably silly. And the numbering is just a mnemonic device to help me remember to say everything I want to say.) 0. All other things being equal, I feel that mathematicians should support open source "researchware" (and "eduware"), e.g. Linux over Windows, Gap over Magma. I see a number of reasons for doing so, quite apart from the issue of cost to your personally: First, you may want to share with the research community useful procedures you have written (e.g implementing a new algorithm in computational group theory) and in that case, to reach the widest possible audience (including students and colleagues in developing nations), all other things being equal, it makes sense to build upon low to no-cost software packages, especially if like Gap the base package is easily installed (in my experience) on older or low-end computers. Second, I believe that in principle all mathsci research (even, all scholarly research) should as far as possible admit the possibility of public examination of all data and all computer code in order to verify correctness. This point may be moot in the current environment since, I'll warrant, everyone here has probably noticed on one occasion or another that some mathematical software package is providing incorrect results, but has chosen to simply ignore the problem and hope for the best, due to lack of time/energy/resources/socialization required to pursue the problem with the developers. Nonetheless, the more people who use any software item, the greater the likelihood that subtle problems will be found and corrected. There exist examples of open source projects in which very high quality products (equalling or exceeding commerical products in stability, reliability, documentation, and ease of use) have emerged in part because cost barriers have not prevented widespread adoption, and in part because the full source code is easily available for inspection by any developer. Third, at its best, the open source model of collaborative development of software can closely resemble building a research community, and I guess that many scholars might find this social aspect enjoyable. (Since debugging and other essential tasks tend to be fundamentally painful, why not share the burden as well as the joy of success?) Indeed, the large and very active Gap community consists of research mathematicians, so sometimes there is substantial overlap between the mathematical research and open source software development communities. Fourth, I believe it would be unhealthy for computing in general to allow a monopoly in any one operating system, or in any other essential software or hardware item, for reasons too numerous to list. 1. The flagship of all mathematical computing must be a general purpose symbolic computational engine: Maple or Mathematica, neither of which are low cost. IMO, this is the only existing barrier which prevents students or mathematicians on a budget from setting up a low budget but extremely powerful mathematical computing station in their home or office. It is true that there is a widely available and easily installed open source engine, Maxima, which is comparable to Macsyma, the system upon which Maple is based. For this reason, Maxima syntax is very similar to that of Maple, which is mostly helpful, although there are some annoying differences (like subts instead of subs). Unfortunately, in my experience, the things which make Maple so useful include Groebner basis, differential algebra, and graphics packages, plus powerful commands like "casesplit" and "rifsimp", which at present have no equivalent in Maxima. This is very unfortunate! Indeed, strictly speaking "bare-bones" Maxima more closely resembles "text-based" Maple (e.g. called with maple rather than xmaple on a linux system), although there are open source graphical "front ends" which aim to allow users to interact with Maxima in much the same way that they may be accustomed to interacting with Maple. Joerg Arndt mentioned an extremely ambitious project, SageMath, which aims to develop a unified interface to packages like Maple, Mathematica, Maxima, R, Gap, etc. I have even seen hints that this project hopes in a parallel development to bring Maxima to a state in which it can serve as a genuine open source standin for Maple, which would be hugely desirable. (Does anyone know more?) The project is led by William Stein (Mathematics, UW), but it has an international flavor. It seems to be a bit disorganized; even the proper name of the project seems murky! Since searching on "SAGE" will probably lead you to distinct projects with the same name (even at UW), I recommend using the most distinctive name I have seen, SageMath. Unfortunately the website at http://www.sagemath.org/ appears half-broken, but this project appears to be more lively than you might infer from the poor PR. SageMath had its own section at least one recent international conference, and I believe that dozens of math and CS graduate students in several groups around the world are working on SageMath at least part time. One thing SageMath should provide, if the project succeeds, is convenient "data passing" between different packages, which at present can be a bit awkward, although with some effort I have been able to pass some data between many of these packages--- but not by using SageMath! I confess that I have not played with the SageMath interface myself (although I'd like to), so I can't help anyone who wants to install it. I often wonder why MapleSoft has not (to my knowledge) considered following the excellent path taken by Red Hat, the well known commercial linux company, which has fostered open source versions of Red Hat software (such as Fedora and CentOS) and this has apparently benifited their company. I may be naive, but I can't help suspecting that MapleSoft could make say Maple 5 freely available as open source, perhaps under an understanding with the SAGE community that SAGE will merge Maxima and "openMaple" development and incorporate "openMaple" into the SAGE frontend. I feel certain that this would only make Maple more attractive to universities as an "essential item" in their computing budget! In any case, below I suggest one approach to setting up a system in which Maple or Mathematica is used as the (expensive!) core computational engine, with open source mathematical software used to greatly extend and supplement its capabilities.
I've got some access to funds from my university, so price is not necessarily an obstacle.
Even so, spending a few thousand on the latest version of Maple will take you much further if you spend almost nothing on obtaining other mathematical software (and your OS plus useful general applications like browsers, postscript viewers, and so on, all of which are provided by any Linux distro). I also suggest below some other "moderately big ticket" projects you might want to consider, while you decide what to do with your funding, such as setting up a cluster. 2. Neil Sloane, Fred Lunnon, Alec Mihailovs, and Victor Muller all seem to advocate Magma, and I've also heard good things about Magma from other sources. Nonetheless, following my own advice to advocate open source alternatives wherever possible I'd suggest Gap as a posssible open-source (and "free as in free beer") standin for Magma. I haven't used Magma myself, so I can only guess to what extent Gap would provide immediate functional equivalence, but I would guess that for many but not all purposes it would work just fine. Gap has a very active community of researchers who write their own routines, the best of which may eventually be bundled with the next edition. To my mind, this wonderful, huge, amazingly powerful computational engine exemplifies what makes open source a potentially Very Good Thing for research mathematicians. (The success of Mathematica and Maple make the case for commercial mathematical software, I guess.)
I'm hoping some of you will steer me towards programs that, a few years from now, will have become just as indispensable to me! (or, failing that, will at least be a lot of fun).
One remarkable thing about Gap is that it has been continuously developed by dozens of mathematicians for several decades, and some years ago leadership passed to a new generation. That is a hugely important milestone in the life of any software (open source or not), and it ensures (as well as anything can) that Gap will be around for a long time to come. If you install nothing beyond Maple and LaTeX, I'd recommend installing Gap! I myself mostly use Gap for computational group theory, but Gap also offers extensive capabilities for working with linear associative algebras, graphs, relations, grammars, and even user-defined "finite algebraic structures" (typically a "magma" with some kind of additional structure), plus some infinite structures like matrix groups or simple Lie algebras. Extensive documentation is available at gap-system.org. A few suggestions for anyone thinking of trying Gap: read the excellent tutorial before dipping into the manual, but don't be put off by the enormous size of that manual (almost a thousand pages) since IMO it's well written and very useful. In fact I would say that very, very few commercial systems are as well documented as Gap! Gap syntax tends to be rather verbose, yet unforgiving, so when I am using Gap, I often keep a template with commands I use often on my desktop and simply paste in as needed (making modifications as needed via the arrow keys which works fine in the bash shell, aka the linux command line). Gap is among other things a programming environment and anyone who uses it much will most likely wind up writing their own procedures, which can also save typing.
I'm also open to suggestions for websites. Of course I already use OEIS. Speaking of which, three cheers for Neil for deservedly winning the latest Robbins Prize! Since back in the 1970s, the Handbook and Encyclopedia have made math research both more productive and more fun for me than it would otherwise have been.
Gap optionally provides on-line access to the well known on-line database of presentations and character tables, ATLAS, and to several other mathematical research databases. (Unfortunately, last time I checked, using the ATLAS interface opened up a major security hole, which would be worth looking into by anyone who wants to use it. Fortunately, Gap comes equipped with large libraries which will serve most purposes just fine.) See http://www.gap-system.org/Packages/packages.html for a list of currently available Gap packages not currently bundled with standard Gap, which can be installed after you install Gap. Some of these, like Grape (for computations with finite graphs), may require additional effort to reap the full benefits. 2. Someone mentioned Debian as a good choice for your primary operating system, and I'll second that (with a caveat mentioned below). I'd like to add that many linux distributions (a distribution bundles the linux kernel with system essentials plus useful applications, with all dependencies resolved) are available as live CDs. And I should stress that a distro like Mepis is specifically designed to be very easily installed along with Windows in a "dual-boot" configuration, and in my experience installs without fuss with one click on the icon of the installation script when you boot off the live CD, which for Mepis and some other distros serves the double purpose of a demo/installation disk. Setting up a dual-boot system requires using a disk partioning utility and configuring a boot loader, so this takes a bit more effort, but IIRC the Mepis instructions are very clear and I hear good things from people who have tried this. Since I don't use Windows at all, I have no experience in setting up a dual boot configuration even on a desktop, much less a laptop, but many linux help forums are excellent resources. I'll briefly discuss below a more sophisticated option which is only just becoming easy enough for those who don't want to wrestle with complicated installation procedures, virtualization.
I'm also open to suggestions for hardware. I already own a couple of flash drive sticks, and they've gotten me out of a couple of tight spots by permitting me to give a talk on someone else's laptop at the last minute. I have a hard time believing that flash drives aren't a product of extraterrestrial technology. Are there other things as cool as flash drives that I don't know about?
Well, if you don't know about "live CDs" (actually, I guess you do know!) that would probably be my first answer to the query: what else is neat besides memory sticks? A live CD is a CD which contains a complete linux distro in executable format. Pop the disk into your CD drive, adjust the BIOS (if neccessary) so that the machine will try to boot from the CD drive before it tries to boot from the hard drive, reboot, and your computer will happily boot off the CD, without ever touching your hard drive. When you are done, shutdown, remove the CD, and your system will never know what you did. Or, optionally, while using any live CD, you can "mount" the hard drive R/O and peruse it (e.g. if for a forensic investigation), or mount it R/W and shred it (prior to a hopefully planned reinstallation!), or you can simply create a small "home directory" so you can save some work done using the live CD to your hard drive. (Some live CDs automatically mount the disk R/W, which isn't always a good idea. "Mounting" is how Linux makes a "file system"--- a directory tree associated with a memory device such as a hard drive--- available to the user; this may work a bit differently for "removable media" like pendrives and floppies under some varieties of Linux.) Some live CDs, such as Knoppix, even offer the option to "boot from RAM", in which case (if you have at least 1GB of RAM) the most essential stuff is copied from the disk into your RAM and then your computer boots from RAM. Then you can use the CD drive to burn a CD, read a file from another CD, whatever. If you already know all about live CDs, how about live memory sticks? When you mentioned using a memory stick (aka pen drive or USB drive, at least I -think- that's what you are talking about) to give a talk on a borrowed laptop, I am guessing you piggybacked on the OS already installed on the borrowed laptop, but there are "minimal" distros like DSL which boot off a pen drive without even touching the hard drive of the borrowed machine, which is even better--- many people now carry around portable versions of their home system or their primary laptop on such a pen drive in order to cover just such an eventuality as an unanticipated software glitch or mislaid luggage which might otherwise destroy a presentation. You can not only carry around your talk, you can carry around your usual desktop environment with all your favorite utilities, browser bookmarks, and so on! You can also use utilities like rsynch to keep your memory stick synchronized with the hard drive on your primary machine. More ambitiously, as Christoph Pacher already mentioned, you can use "version control" packages like Subversion. (I should warn that there may be some potential security risks here, but since I don't use rsynch or Subversion myself I don't know much about these.) Getting back to installing Linux: Mepis (probably the easiest of the current distros to install) takes about 15-20 minutes to install a complete desktop system from the live CD, which for Mepis also doubles as an "installation disk". I stress that installing to disk is -optional-; the idea is you try it and if you like it, you click on the installer. Ubuntu can take a little longer but is also very fast and easy. I should point out that since Mepis, Ubuntu, and other Debian-derived Knoppix influenced linux distros (including some Red Hat derived distros like Mandriva and CentOS) and also openSUSE offer live CD "demo disks", you can easily boot up a complete linux desktop on any machine with a CD or DVD reader without installing anything on your hard drive, so you can very easily check out the "feel" of Mepis, Ubuntu, Mandriva, CentOS desktop installations very easily without doing anything permanent. This is in fact a good way for a Linux newbie to get some feel for how "all distros are alike" on some level, and also for how Red Hat derived distros like CentOS differ from Debian derived distros like Ubuntu, and how these differ from openSUSE (that covers the three main branches of the Linux family). You can even find live CDs which enable you to explore "legacy" operating systems like Minix (the precursor of Linux) or Plan9 (a famous "after-Unix" OS which never got beyond the experimental stage), plus current operating systems like openBSD (Berkeley style Unix), OpenSolaris (Solaris style Unix, I think) and even brand new operating systems. Incidently, Knoppix, one of the very first "live CD" distros, is also worth keeping around as a system rescue CD; see the book Knoppix Hacks by Kyle Rankin for this and many other useful applications of live CDs. I should mention that in my experience, most Linux distros will install on any recent desktop, including low-end desktops. If possible I advocate spending a few hundred dollars on adding extra RAM rather than on a high-end commercial package like Magma (unless you have thousands to spare). I think it is more important to have 2GB RAM than a 64 bit CPU, a second processor, or even a graphics card, but depending on your needs, you may want those things (at a cost of perhaps a few hundred each), so I note that the major Linux distros can handle all those things. I should add that while in the old days, some users experienced problems finding "drivers" for printers, monitors, and other essential peripherals, this is not a problem with modern Linux distros; in fact, Linux hardware detection is excellent, which means that a distro like Ubuntu or Mepis is likely to not only come with drivers for the make and model of monitor and printer you use, but to recognize all of your equipment and to automatically set everything up for you.
(As an aside, I'll mention that I've managed to do some non-trivial math research in Excel. I would not ordinarily have thought to do this, but frequently I find myself with no computer more powerful than my Treo, and my Treo happens to have a version of Excel running on it, and one finds ways to get by with whatever one has.)
The Linux stand-in for Microsoft Office (spreadsheet, humdrum word processor, etc) is Open Office, which should be bundled with any major Linux distro (along with documentation). This might be a good place to say that LaTex (plus fonts) and Firefox should also be bundled; certainly all these things should appear magically if you install Mepis, Ubuntu, or Mandriva, plus open-source stand-ins for other essential utilities, e.g. the Linux disk-burning utility K3b (which I use extensively to back up files). One major area where Linux distros have lagged a bit in terms of easily installed applications is in the realm of databases. You -can- easily install major database engines like MySQL as "backends", but I have yet to see a graphical "frontend" which can act as a stand-in for Microsoft Access, at least not without some tweaking. (Maybe someone else here knows of one?)
I'm getting a couple of new laptops, and I'm trying to figure out what to install on them.
There may be some problems with installing some Linux distros on some laptops. I don't know much about this since I don't own any laptops, but I have the vague impression that this has become much easier in recent years under distros like Ubuntu and Mepis. Maybe someone else here can add something? Alternatively, try the excellent Ubuntu or Mepis help forums if you have any problems installing on your laptops. In fact, you might look there for advice on makes of laptops which other users have found work well under Linux. You can download distros like Mepis, Ubuntu, CentOS, or openSUSE, for free (typically the medium sized versions come in just small enough to fit on one CD; the full sized versions come as one DVD or up to ten CDs) over the InterNet from various mirrors (see distrowatch.com to find links and also reviews of almost very Linux distro known to man) as an iso image and then burn your own live CD or DVD from the image using K3b. Alternatively, you can buy live-CDs and installation CDs/DVDs from companies like osdisc.com. 3. Gap and many other "essential packages" for 21st century mathematicians are available as Debian packages, which means that if you have installed a popular Debian-derived distro like Ubuntu, Kubuntu (the KDE desktop environment version of Ubuntu, which uses the gnome desktop environment), or Mepis, you probably will have Synaptic (a front-end for the Debian package management utility, apt) already installed on your linux system, and then you can install Gap, SciLab (open source stand-in for MatLab), Maxima (the closest thing to an open source standing for Maple), R (open source stand-in for S, the statistical software engine), Pari-gp (number theory computing environment), Octave (numerical computing) and XFig (the venerable figure creation/editing package) with basically one click each. Under Synaptic, search for the following keywords to find the packages you would need to install: gap scilab maxima r-cran and rbase parigp octave xfig Many of these depend on libaries which will also be installed; apt via synaptic should warn you of any conflicts before you proceed. Your mileage may vary, but I have installed recent versions of all of these via Synaptic without any trouble whatsover on my modest Debian desktop machine. I recommend trying to install in order of desirability, just to decrease the chance of any conflicts (but fear not, since Synaptic, or rather apt, will prevent you from doing anything which could harm your system; the worst that can happen is that you won't be able to install something using synaptic). On the bright side, some of them are designed to work together. How long it takes to download and install these packages mostly depends on the speed of your internet connection and also on the sometimes limited bandwidth of the Debian repositories.
While we're at it, I'm also open to suggestions for software that people have found useful for their teaching.
The first thing which popped into my head is SciLab as a stand-in for MatLab. Many decades ago, when I had the chance to teach a one quarter junior level linear algebra course, I took the then novel decision to try to incorporate MatLab into the course. This was a carefully considered decision I tried hard to balance the desire to remove the pain of computing deterimants by hand while preventing software issues from taking over the course. Fortunately, I found it possible to get a great deal of mileage out of a very small set of MatLab commands (all duplicated in SciLab). While I never had the chance to teach differential equations, I guess that SciLab and/or Maxima would be very useful here. If you do any statistics, R would be very handy. Overkill in fact, but one point I am trying to make is that I feel that Math Departments have a duty to teach not only calculus, but also to get their students's feet wet in using the most important and widely used software, particularly Maple, R, SciLab. Here's a quick idea for those who know how to make their very own linux distro (not as hard as one might think): if you have only a few dozen students: buy a 50-pack of CDs, roll your own distro bundling any software you might use (e.g. Maxima, SciLab, or R) with something like Mepis, and hand them out on the first day of class. Recall that most live CDs have an option to create a home directory on the hard drive, so your students would use that and acquire a place where they would store their coursework. Maple and Mathematica are even more powerful than SciLab, but sufficiently complex that I'd prefer to advocate incorporating Maple into a one year mathmatical modeling course. See Derek Richards, Advanced Mathematical Methods with Maple, Cambridge University Press, 2002, for an excellent textbook for sucha course. Most universities probably maintain licenses to use teaching versions of Maple and Mathematica. One often omitted core topic (IMO) for such a course would be symmetry analysis of ODEs and PDEs. One application oriented book I like is Brian J. Cantwell, Introduction to Symmetry Analysis, Cambridge University Press, 2002, which happens to come with some Mathematica programs, but IMO could equally well be used in course based on Maple. (Don't omit to demonstrate the failure of liesymm to obtain all the point symmetries of fourth order equations like the biharmonic equation.) When I TA'd for Jim King in his "Geometry for Math Teachers" course at UW (an introduction to transformation geometry, oh joy!), he used (IIRC) GeomView and some other popular eduware; GeomView always seems to prove very popular with students who have previously felt limited by their inadequate drawing skills. For those lucky enough to teach a modern algebra course, I feel that Gap is an essential part of such a course. Fortunately, basic Gap is really quite easy to use, and it is also quite easy to write and use simple Gap programs, so I think this it is not impractical to use Gap in teaching algebra. The Debian repositories include lots of other things which can be useful, including various graphics utilities and packages like SnapPea and Regina (for hyperbolic three-manifolds) and PAW (for experimental physicists), Axiom (for algorithm verification), and more. Other goodies in the Debian repos include popular "eduware" like Kstars and GeomView. Not to mention powerful system and network utilities I find very useful, such as netstat, lsof, iptraf, guarddog (a firewall script), apg (a password generator utility), etc.; other branches of the family of linux distros offer similar utilities. And there are many LaTeX-related packages also available in the Debian repos. Some of these may conflict with the major packages I listed above, however. Also noteworthy are compilers for almost any programming language known to man (the gnu C compiler gcc is fundamental to any Linux distro, but if you download Octave you'll find you now have an excellent Fortran compiler installed on your machine, for example). One small utility I would particularly recommend from the Debian repos is Zim, a rudimentary wiki, which I have found very useful for keeping a "system diary" in which I note problems, fixes, ideas, tips, and so on. I find it to be just flexible enough to be really useful, while storing pages as text files, which means it is easy to carry them through a system upgrade. It's a really good idea to take a few extra minutes to document any changes you make in case problems arise and you need to undo something, although I confess that I find it hard to maintain the discipline this requires. But even partial documentation is better than none at all. I should also say that Ubuntu has its own repositories, similar to but distinct from the Debian repos, but if you use Ubuntu, I think that you can probably install almost anything from the Debian repos after making a few tweaks in Synaptic (ask at the Ubuntu help forums, which are excellent). (I should perhaps say that Mepis briefly switched from using Debian to Ubuntu repos by default, but has since switched back to Debian. One thing Synaptic allows you to do is to add or remove repositories where apt will try to find the software you need.) If you are using a Linux distro such as Mandriva or CentOS, which are derived from Red Hat (the venerable commercial linux distro used by many university systems, at least for servers), you will probably use rpm rather than apt for package management. I have installed rpm packages on Debian-derived distros without trouble (or sometimes, -with- some trouble), and I believe that it may be possible to install Debian packages using rpm on distros like Mandriva or CentOS--- probably someone else here can say more. CentOS is available as an iso image like the other distros mentioned above, as is (I think) various versions of Mandriva, but I should say that some linux distros (like Mandriva, Red Hat, and SUSE) are commercial enterprises, and for the rest, I like to send some money to the developers of any software I use. If you are using open-SUSE (the open-source version of SUSE, which is excellent), that has its own method, slightly different from rpm or apt, for installing software packages, which could be a problem here. As a last resource, I am pretty sure that all packages I suggested are available as tarballs (compressed files which unpack to a directory containing source code, libraries, documentation, and so on) from the project home pages: http://www.gap-system.org/ http://maxima.sourceforge.net/ http://www.r-project.org/ http://pari.math.u-bordeaux.fr/ http://www.gnu.org/software/octave/ http://www.xfig.org/ If you unpack the tarball in the right place and then follow the directions you will find after unpacking, there is a good chance everything will work for simple utilities, but for complicated ones "dependency hell" is likely to ensue (apt and rpm were created to prevent users from having to deal with dependencies and falling afoul of subtle conflicts). If you need to install something from a tarball, I'd recommend seeking local help if your first attempt fails. Important caveat: last time I checked, while almost everything worthy is known to install easily under Debian and kin, AFAIK Maple is not easy to install under Debian. (If anyone here has done it, I'd like to know how!) I believe that Maple provides installers for Mandriva and SUSE (the commercial version, but it might work with openSUSE). I have a remark below about a possible workaround. 4. Once you have installed the packages I mentioned (whether by apt, rpm, or from a tarball), in a linux shell you can start them by typing in a shell (e.g. first click on the "konsole" icon in a typical KDE desktop environment to get a "bash shell"; the shell is roughly speaking a text-based "window" in which users can safely interact with the linux kernel): gap scilab maxima R gp octave xfig With some knowledge of linux (e.g. you'll need to find the correct command to execute, which at the very least means you'll need to know the location of the binaries you want to invoke), you can probably configure your desktop menus so that you can call these with one click. You now have more or less text-based interfaces for Gap, SciLab, Maxima, R, and Pari-gp. With some tweaking, you can probably obtain graphical interface capabilities (e.g. xmaxima and other frontends for maxima, xgap for some elementary Gap functions, and the Tk interface for R may work on your system, but Gap is mostly text-based by design). In addition, as already mentioned, SageMath aims to provide a unified graphical interface to all of these packages, and while this ambitious project is still in its early stages, if it succeeds this approach will probably become standard. On the bright side, some of these packages incorporate rather powerful graphical capabilities. For example, SciLab allows you to plot functions of two variables and to rotate the plot in three dimensions, much like Maple. Indeed, the SciLab output if anything looks even nicer than Maple output! 5. A word about documentation: one of the greatest drawbacks to many open source projects (particularly those originating with a lone "computer jock" rather than a research community) is that documentation may be inadequate. Fortunately, all of the above have extensive documentation comparable to commercial packages. The Debian repos include documentation you can also install as optional packages, so that you have local documentation at hand when you need it. Or you can simply bookmark websites which have equivalent on-line documentation. You will almost certainly get some manpage documentation even if you don't download documentation packages, which can be helpful for linux "power users". Packages like Gap, SciLab, Maxima, R, Pari-gp, and Octave are powerful but complicated, and it can take some time and effort to begin to get the most out of them. OTH, if you have used Matlab you should be right at home with SciLab, and it is not at all hard to quickly pick up enough Gap skills to begin computing useful stuff right away. I should also point out that you will acquire many redundant capabilities if you download all of Gap, SciLab, Maxima, R, Pari-gp, and Octave. That's not a bad thing; it is highly desirable to use package A to check results obtained using package B. But it's worth pointing out that Mathematica and Maple have bugs, including the worst kind of bug, in which one is served up plausible appearing but incorrect results, and more crop up as old ones are fixed. (I actually encounter this all the time when I compute the point-symmetries of a Lie group; Maple often reports only a subgroup of the actual symmetry group; try this for the biharmonic equation if you have read e.g. the excellent textbook by Peter J. Olver, Applications of Lie Groups to Differential Equations, 2nd Ed., Springer, 1993. More generally, casesplit is very powerful but too often fails to find all solutions.) Incidently, one advantage of Maple over Mathematica for scholarly work is that unlike Mathematica (last time I checked), while Maple is a commercial package, it does let you "peek" at some code. Also, in my experience, Maple has fewer undocumented "mystery functions" than Mathematica (I've discovered a few in both of these over the years, by accident), which is reassuring. 6. I would also encourage everyone to explore another very useful mathematical computational package which is not (yet) in the Debian repos: Macaulay2, a powerful computational algebraic geometry environment. Suggestion: if you have emacs (the venerable open source text editor, psychoanalyst, and "kitchen sink", also available as a Debian package), it is useful to invoke Macaulay2 via emacs because free resolutions are fundamental to Macaulay2 computations, but tend to lead to very long expressions you may want to keep on one line, and emacs lets you scroll horizontally, unlike most other editors. There are some books which illustrate the use of Macaulay2 to perform various computations, including Hal Schenck, Computational Algebraic Geometry, LMS student texts 58, Cambridge University Press, 2003. So for example you can play around to see how cohomology captures notions like "double points" and so on in algebraic geometry (see chapter 7 in Schenck). (Gap offers some very limited algebraic topological capabilities, but these are not comparable with Macaulay2's power in this area.) Macaulay2 is available at http://www.math.uiuc.edu/Macaulay2/ where you will also find often excellent but unfortunately sometimes sketchy or incomplete documentation (which you will probably also install locally as web pages when you install the package). Someone should write a tutorial explaining how to compute the homology of cell complexes using Macaulay2! Existing tutorials only cover tasks too specialized for most graduate students, IMO. If you don't like Macualay2 for some reason, there are popular and powerful open source alternatives, some available at little or no cost. 7. As most of you probably already know, various mathsci entities have created dozens of Maple packages worthy of mention. The one I use most seems to be GRTensorII, which is very well-suited to computing tensor components (wrt a coordinate basis or a frame field), including tensors you have defined yourself using some convenient and easy-to-use utilities. (It is not very well suited for general index gymnastics and may not be very easy to use for computations involving spinors and other non-tensorial geometric objects, although it does support computations with the Newman-Penrose formalism in gtr.) While GRTensorII was originally intended for exploring models in general relativity, e.g. the Mixmaster dust solution, it turns out to be invaluable for all kinds of "concrete" Riemannian geometry computations, e.g. exploring the famous Clifford congruence of circles on S^3, or solving tensorial equations on a Riemannian three-manifold as per your own definitions. (This is where powerful Maple utilities like casesplit really come into their own!) I have also had no trouble reproducing the analysis of various models of elastic continua (e.g. a horizontal beam fixed at one end which is drooping under its own weight) in classic textbooks by Love, Graff, Landau and Lifschitz, Sokolnikoff, Blandford and Thorne, etc., on the theory of linear elasticity. IOW, it can be useful even for mechanical engineering students who want to enjoy some mathematical modeling! GRTensorII and some good documentation is available at http://grtensor.phy.queensu.ca/ For the Riemannian side, a powerful Mathematica package is Ricci from UW's Jack Lee and several of his students: http://www.math.washington.edu/~lee/Ricci/ But this is not very comparable to GRTensorII because it has different aims. Coming back to MapleSoft, I can't help thinking that MapleSoft is missing a huge opportunity by not making Maple 5 available for open source community development of an "openMaple" capable of running something like GRTensorII. There is substantial student and public interest in physical theory, especially general relativity, and I can't help thinking that it is in the best interests of math-physics researchers to promote better understanding of their subject by encouraging students to learn how to solve the Maxwell or Einstein field equations using tools like "openMaple" (if it existed) and GRTensorII. In addition, I can't help thinking that it is in the best interests of MapleSoft to promote adoption of the commercial product by those who desire and can afford the latest built-in packages bundled with the latest versions of Maple, which go far beyond what you get with Maple 5 (the oldest version which can run GRTenorII). 8. I also wanted to mention that yet a "specialized" live CD, Knoppix-Math, comes with Pari-gp, Maxima, Gap, and R already installed, plus many other things like Gnuplot, Geomview, etc. It's really very easy to install these packages once you have a linux desktop (at least if your system can use apt) but this live CD should offer the very easiest way to explore some of the mathy stuff available for linux. I haven't yet played with Knoppix-Math myself, but I guess that it might not include much documentation, in which case you might want to use some browser which comes with it (probably your choices will include konqueror and perhaps dillo, lynx, or firefox) to search for on-line tutorials to try once you have invoked (say) R. There is another notable live CD, Edubuntu, which is like a slightly aged Ubuntu loaded up with educational software rather than multimedia stuff. There are also some which aim to provide a painless survey of some popular geographic information software, but these are less successful as far as I can tell. Another possibility some researchers will want to explore is buying a bunch of identical low-end desktop machines (or gather some old surplus items) and making a cluster for serious mathematical computations. There are powerful linux packages for configuring and managing clusters, and at least one distro which comes as a live CD which you can use to experiment with making clusters. You may also want to consider installing (on an "always on" desktop connected to the web, not a laptop!) some nifty packages like Einstein@Home einstein.phys.uwm.edu/ which use spare CPU cycles to help out in the search for gravitational wave signals. There are also projects which aim to factor "interesting" large integers, and so on. Unfortunately, participating in such projects may open security holes... Some may want to consider installing (on an "always on" desktop connected to the web, or a Linux server providing say a departmental webserver) a Tor node, in order to help human rights advocates in places like Zimbabwe or Burma (see http://www.privacyinternational.org/article.shtml?cmd[347]=x-347-559552 for some valuable comparisons among countries) to get out word of happenings which would not otherwise be reported by the international news media. But there are very serious security problems and legal vulnerabilities to consider if you want to try this. See http://www.torproject.org/ http://www.theregister.co.uk/2007/11/23/tor_abuse/ http://www.theregister.co.uk/2005/09/22/internet_anonymity/ http://www.aclu.org/privacy/speech/14943res20031218.html 9. I mentioned that despite the wonders of package management software like apt or rpm, Maple may not install easily on anything other than Mandriva or SUSE (or Windows) systems, which is too bad since everything else installs most easily on a Debian-derived system. Fortunately, there may be a workaround. The latest Great New Thing in Linux distros like CentOS is easy virtualization using Qemu, the Xen hypervisor, or other software. If you don't know what that is, it basically allows you to create several "virtual" computers, possibly using different operating systems, all simultaneously running on one machine. (This can be a bit misleading, since you can use Xen to move a virtual machine from server A to server B.) Thus, I suggest considering the adventurous possibility of installing a base Linux such as CentOS, which includes Xen and other virtualization options, and then creating two virtual machines, one running Debian for all but Maple, the other running Maple under Mandriva or SUSE or (heavens forfend) Windows/Vista. (You can stop and start virtual machines, so running a virtual machine need not slow down your other activities appreciably.) If you have a website operating from your home or office, you might also consider a virtual LAMP running your website, but you probably don't want to have more than two virtual machines running at the same time lest you begin to notice an awkward slowdown. Again, my own experience is limited to desktops, and I have little idea of the current hardware limitations of laptops, so it might be that virtualizing a laptop is still difficult. It is probably also true that running a virtual machine or two will use up your battery faster when you are on the road. Virtualization has been touted as huge advance in promoting security, e.g. if your virtual web server is compromised this shouldn't leak into any other virtual machines (under hypervisor style virtualization, the virtual machine has no idea that it is virtualized; under other styles, it does know--- so to speak). Unfortunately, security experts warn of a new generation of malware which can take advantage of virtualization to clandestinely virtualize your original installation, which would be very hard to detect and probably impossible to remove except by a complete reinstallation from a "known good" source. (Insert inarticulate wail of dismay here.) 10. Another powerful package available in the Debian repos is MediaWiki, with all the "math extensions". This is the wiki software platform used to put up the Wikipedia, which supports latex markup for mathematical content. While "wikis" were invented for collaborative content creation, many organizations use them for documentation (indeed, many of the software packages mentioned above, and most of the large linux distros, have both bulletin board type help forums (running under VBulletin, at a guess?) and wikis running under Mediawiki, and I urge research mathematicians to consider installing a suitable wiki platform on some public accessible server, forming a small "focus group", and experimenting with collaborative web content creation, say to promote a shared research vision or educational mission, world readable but editable only by a small group of trusted collaborators, most likely personally known to the website owner. Why do I advocate experimenting with "research wikis"? Too many reasons to mention here, so let me just point anyone who might be intrigued at an inspiring mathematical example in which a research group is using MediaWiki as a collaborative web-authorship content-creation tool. See Dispersive Wiki from a team of mathematicians including Terry Tao http://tosio.math.toronto.edu/wiki/index.php/Main_Page But don't let the kooks find out about it--- without someone taking the trouble to restrict editing privileges to a small group, anyone with a web browser can edit any page on a public wiki, which can be a real problem! I hope Terry et al. never find this out the hard way. (I could explain my fear at great length, but I'd rather not!) A few years ago there were horrid conflicts between MediaWiki and some "essential math packages", but I think these may have recently have vanished as the linux community has adopted X.org, the open-source graphical windowing environment underlying KDE and other linux desktop environments, which has grown out of the ancient Xfree86 environment (the name is a pun on the 386 chip family), which in turn arose from the original X Windows environment. Some time back there was a lengthy discussion in the N-Category Cafe comparing various wiki software platforms from the perspective of fostering mathematical content creation; issues considered included scalability, ease of mathematical markup, ease of inclusion of figures, conversion and migration, and so on. I argued (unsuccessfully) that overall MediaWiki comes out ahead, but admited that one serious drawback of MediaWiki is that (at present) it is not easy to convert MediaWiki content into latex documents. I've done this for one of my old Wikipedia articles, by removing html markup "by script" and then inserting latex markup "by hand", and it's not entirely impractical, but also not much fun. 11. One last thing: as some of you probably know, Debian recently suffered a huge security lapse (a dangerous flaw in handling SSL certificates). This issue affects users of most Debian-derived distros, including Mepis, but not SUSE or the Red Hat derived distros. This unwelcome development has been rather disconcerting to the open source community, because Debian has been generally regarded as one of the most stable and secure linux distros. I hope this incident was an anomaly (possibly related to the fact that the Debian project has recently suffered some widely publicized problems), but certainly it was a very serious lapse. Of course, Mac OS has suffered some equally serious security problems in recent years, and I need hardly mention criticism of Windows and Vista. On the bright side, the Linux community has been working hard to make it easier to use things like SElinux (which provides an additional layer of security which is often useful, because the biggest source of problems, at least in the linux world, is usually security holes in applications, and SElinux can prevent such holes from being exploited even if they are left open for a long period of time, something which would might be relevant if you want to access ATLAS via Gap, for example). Several of the latest Linux distros enable SElinux "capabilities" more or less by default, and also offer virtualization, e.g. CentOS. So overall, the reputation of Linux for enjoying notable security advantages is probably justified, so long as eagle-eyed developers remain alert to new threats and promptly plug holes as they are discovered. If you are using Linux on laptops, probably the two most important things you can do are to learn about wireless security issues ("factory defaults" are likely to leave you highly vulnerable) and about encrypting your hard drive. But now I really am presuming too much, so I'll quit! Sorry for going on so long--- I guess I had a lot to say. Hope some of this proves useful. Chris Hillman
participants (7)
-
Alec Mihailovs -
Fred lunnon -
James Propp -
Joerg Arndt -
Optimist -
Pacher Christoph -
victor miller