Site last modified: Fri Feb 28 22:44:22 2014

About Mathematica

Mathematica is a software package made by Wolfram Research International (WRI) which brings together a number of aspects of technical computing in one package. One of its key advantages over similar software is that it is built on an extremely uniform set of underlying principles. This means that a little bit of time spent studying Mathematica takes you a very long way indeed. Read more details here .

Recently, Wolfram Research introduced Mathematica 8.0 – a major release that will be reflected in a variety of changes in this website. For now, press the button on the sidebar to obtain more 6.0/7.0 specific ideas (that remain valid with 8.0) and information, and to obtain a short program by Thomas Muench, that assembles an electronic version of the Mathematica book for 6.0, analogous to the fat physical book that accompanied previous version of the software.

The ColourMaths package

This is an old package which I have recently revised to work on modern versions of Mathematica (7 and above). It is an attempt to extend the usefulness of Mathematica to include the sort of arbitrary manipulations of expressions which are common in hand calculations. Questions about such matters often come up on the internet, and although the answers offered may be adequate in any specific case, they don't generalise in any way, and often assume a lot of experience with Mathematica. See here for more details of this new package.

Upgraded to version 2.31 to fix a critical bug in the way the "Inert" button works.

Macros in Mathematica

Macros are typically associated with the C programming language. However the idea, that code gets pre-processed into a more efficient form prior to execution, is generally applicable. See here for more details of this package.

Code snippets in Mathematica

I am starting a page devoted to 'code snippets' that are small pieces of Mathematica that can be conveniently executed by copy/pasting a single Import command into a notebook. Currently there is just one snippet available – which installs packages automatically. Read more details here .

Using the Java GUI

The primary mode of interaction with Mathematica is via notebooks. These are optimised for interactive mathematical development, and since version 6.0, these can be very interactive indeed! However, a Mathematica notebook is never going to have the "look and feel" of a normal (e.g. Windows) application. Because Java runs on all the platforms that support Mathematica, and because J/Link provides a good interface between Java and Mathematica, a Java-based GUI is the obvious choice.

My free Super Widget Package – available Here – simplifies the creation of a wide variety of Java GUI interfaces. These interfaces are far more flexible and robust than the standard GUIKit package that is supplied with Mathematica.

The Super Widget Package used to be based on the GUIKit – and so shares some superficial similarities – but since SWP version 4.0, it does not use the GUIKit internally. This has brought greater stability and flexibility. For example, using the latest SWP software, you can build an interface analogous to Microsoft Word. This permits multiple sets of data (documents, graphics, equations, etc.) to be viewed in separate moveable windows with a master window with a menu bar and other controls.

An exciting feature of the new SWP, is that it is designed to work either in a normal notebook environment, or in a kernel-only mode. The development can happen in a notebook, and the result can be deployed using kernel only mode. The result can be applications that run without Mathematica being visible. New in version 6.25, you can create applications that register their own data types, so that the application can be started from a data file on the desktop.

The documentation for the SWP is now integrated with the Documentation Center.

An experimental debugger

As some of you will recall, I developed a Mathematica debugger called M-Debug in the days before Mathematica included its own debugger. I did not update this debugger to cope with the changes at version 6.0 because this version included its own debugger. However, in my opinion the built-in debugger is less effective than it could be, and is not really suited to the needs of the beginner. I am developing a new Mathematica debugger as an experimental project You can read more about this project, and download here the latest version of my free, experimental debugger called DebugTrace.

DebugTrace operates in a very different way from M-Debug (which used TraceScan), or the built-in debugger (which uses internal mechanisms). It modifies the code before it reaches the kernel to provide the hooks necessary to debug it.

DebugTrace now works with Mathematica 7 and 8. A new version is available (1.51) that bypasses a bug in Mathematica 9.0.

A high level interface to MIDI

Although Mathematica has had a MIDI interface since version 6.0, this has not been heavily used, other than to create Wolfram Tunes. The MusicGenerator package offers a high level way to generate SoundNote structures, that is very convenient if you want to start from sheet music, and version 1.1 is available free to download. I gave a presentation on this package at the Wolfram Technology conference October 2012.

Interfacing with the documentation center

In the course of creating DebugTrace, I discovered how to interface the documentation with the Documentation Center without using the Wolfram Workbench (I prefer to work directly in the frontend). Since this information is probably of use to other developers, I have made it available here .

My plugin for an excellent text editor - Notepad++

Although Mathematica is the best tool to open notebooks (.nb) and package files (.m), there are lots of other text files that you may need to edit – including data files, and files of computer code such as C++, Java, Fortran etc. I am very happy with the free Notepad++ software . This editor is extendible using 'plugins' that are easy to write in C/C++. I have written one such plugin .