Wolfram Computation Meets Knowledge

Date Archive: 2007 May

Leading Edge

Computable Data Functions: A Crazy Idea That Just Works

Sometime rather alarmingly late in the Mathematica 6 release cycle it started to emerge that Stephen had a bunch of people working on an insane idea: including in Version 6 an entirely new set of features never before considered and definitely not on the release plan. Somehow this didn’t surprise anyone. It was to be a system whereby people could access large amounts of useful data by way of simple function calls inside Mathematica, with those calls automatically going off to our servers to get updated information, or even real-time feeds like current stock prices. Needless to say, none of the server- or client-side technology to make this possible existed, but hey, it sounded like a good idea. It turned out to be a very good idea.
Computation & Analysis

The Math(ematica) behind Television’s Crime Drama NUMB3RS

Viewers of prime-time television are likely quite familiar with police chases, blood-stained bodies and massive explosions that rock objects of all shapes and sizes (including houses, cars and buildings). What they may be less familiar with is a protagonist whose job title is “math professor” and who uses crime investigation techniques that delve deeply into mathematical concepts and equations. Nevertheless, that’s exactly what they are likely to find on the CBS Paramount television crime drama NUMB3RS, which airs at 10pm US Eastern on Fridays---and which last week completed its third season on air. NUMB3RS has received widespread acclaim not only from television viewers (who have made it Friday night’s most popular show for three seasons running), but also from mathematicians and professional societies (who hail its positive portrayal of scientists and their use of science and in particular mathematics for the public good). Even before the show first premiered in January 2005, a group of researchers at Wolfram Research (a team that now includes colleagues Michael Trott, Ed Pegg, Amy Young and me) has been part of the core group of advisers who assist with all aspects of the mathematics in the show. Our role runs the gamut from suggesting new ideas to improving detailed mathematical content to preparing formulas, figures and animations. And, somewhat surprisingly to us, many of our comments and suggestions actually ultimately appear (in some form) on air! Screen capture from NUMB3RS, which debuted January 23, 2005, on CBS. NUMB3RS is © 2007 CBS Broadcasting Inc. Note the Mathematica Spikey in the lower-left corner.
Computation & Analysis

Making the Mathematica 6 Spikey

In 1992, while teaching at the Technical University of Ilmenau, I gave a three-semester course on the use of Mathematica. I am a theoretical physicist by training, so the graphics component was just one of the not-so-important parts of the system for me at the time. Calculating integrals and minimizing functions for many-parameter variational wave functions of semiconductor nanostructures in very high magnetic fields was much more on my mind. But the students asked me to cover graphics in depth too, so I did. The cover picture of the Mathematica 2 book had a hyperbolic dodecahedron on it (the Version 1 book has a graphic of the Riemann zeta function along the critical strip). The hyperbolic dodecahedron is quite symmetric and has the same symmetry group as a regular dodecahedron. It has a natural 120-fold symmetry (12 equivalent faces, each being a pentagon made from 10 equivalent pieces). Each one-tenth of a face just has a few polygons. By using the full symmetry group of the dodecahedron, constructing the tesselation used on the cover was relatively easy. Starting with a regular dodecahedron with appropriately subdivided faces, one just has to extend the vertices outwards (or press the face centers inwards) to obtain a hyperbolic dodecahedron. I showed the construction in the lecture (a nice mixture of geometry, matrix algebra, equation solving and graphics itself). Little did I know at that time that the force of the hyperbolic dodecahedron would be with me for the next 15 years.
Announcements & Events

Why Spend More Than Five Minutes on a GUI?

I’ve been a “professional” user-interface programmer for 20 years. In that time I’ve written a grand total of three little apps just for the fun of it. Two of them I snuck in as hidden buttons in the Mathematica About Box, because it was just too difficult to start a new application from scratch. All of them can be replicated in a few minutes using Version 6. In my experience, writing GUI (graphical user interface) applications in C or Java or Visual Basic---or whatever---is fine if you plan to spend weeks or months on a program, but prohibitively horrible if you really only have a few minutes to dedicate to the task. You have to allocate windows, store pointers to them, then allocate controls or read them from some kind of resource file, store pointers to them, blah, blah, blah. It might be two or three pages of code before you can even start thinking about what this program is actually supposed to do. Cocoa and other such frameworks make it marginally easier. I enjoyed programming in NeXTSTEP (which is what Cocoa was called before Apple took over NeXT). It’s the environment in which I wrote RealTimeAlgebra in 1989, the one just-for-fun app I wrote not as an About Box button. (RealTimeAlgebra was basically what we now call Manipulate.) But it is still a pain. Instead of starting by writing pages of code to deal with windows, you start by using an annoying graphical tool to lay out controls and define who is connected to whom. Then you get to write pages of code defining the actions of all these controls before you can start working on the actual content.
Announcements & Events

Today We Put a Prize on a Small Turing Machine

It is perhaps ironic that two weeks after releasing what is probably the single most complex computational system ever constructed, we are today announcing a prize for the very simplest of computational systems. But today is the fifth anniversary of the publication of A New Kind of Science, and to commemorate this, we have decided […]

Announcements & Events

Five Years of A New Kind of Science

New technology is often what has driven the creation of new science. And so it has been with Mathematica. One of the main reasons I originally started building Mathematica was that I wanted to use it myself. And having Mathematica was a bit like having one of the first telescopes: I could point it somewhere, […]

Announcements & Events

Symbolic Programming Visualized

Symbolic programming has been a core idea in Mathematica since the very beginning. But it is a big idea and an abstract idea. And people understandably just want to know what the bottom-line benefit is, and could care less about what went into making it happen. Fortunately, Mathematica 6 is making it a lot easier to illustrate ideas about symbolic computation in visual and interactive forms.

High-Level Functions

For starters, illustrating the core programming primitives with visual examples is a piece of cake with the new graphics and typesetting functions. For example, Map will take a function and apply it to each element in a list: NestList will take a function and apply it over and over again to the initial seed, returning a list of all the iterations: Programming in Mathematica is based on transforming trees. The built-in function TreeForm allows us to visually represent the tree backbone of Mathematica programs and data structures:
Announcements & Events

Mathematica Player: So Much More Than Just the New MathReader

Slipped in quietly alongside Mathematica 6’s release is the start of another profound development: Mathematica Player. At the moment, Player is just the way to run Demonstrations and read Mathematica notebooks, but in the near future it will be much, much more. Good things usually have a good reason to do them. Player has at least three. The first push came from asking where to take MathReader when Mathematica 6 shipped. MathReader has long been the free way to view Mathematica notebooks---in a sense the technical Adobe (Acrobat) Reader that handled Mathematica’s typeset math, cell hierarchy, graphics, animations and even sound (usually of the weird function-based variety!). In the end, though, it was just a “dead” viewer. For a number of years we’d known that "instant interactivity" would be central to Mathematica 6. So, why not make the accompanying MathReader the way to “view” this interactivity? After all, Mathematica was coming alive. Why shouldn’t MathReader too---in the role of a player or runtime for these newly dynamic notebooks?
Announcements & Events

Eating Your Own Dogfood

Wolfram Research is a place where “eating your own dogfood” is part of the culture. Most of us use Mathematica for our routine office administration tasks, documents, presentations, sales forecasting, etc. I have been using Mathematica to analyze international sales data for 15 years now. It was through this activity that I think I can stake the claim to being the first real practical professional user of the new CountryData function. It was time to present an analysis of sales figures at our annual Wolfram Reseller Conference in April to help our distributors understand where they are doing well and where they need to improve. Comparing sales is difficult when one distributor has a large territory like Germany, and another a relatively small one like Romania. A couple of years ago, I started using economic gross domestic product (GDP) of the territory as a scale, but it is a pretty blunt tool---one might expect a small industrialized economy to outperform a large agricultural one. This year, a new tool was in my hands: Mathematica 6.