WOLFRAM

Announcements & Events

Summer is Here (Make Room for the Interns)

Summer begins, officially, around June 21. Here at Wolfram Research it actually begins when the interns start to arrive. As we released Version 6 of our flagship Mathematica software less than two months ago, we’re still collectively exhaling, yet at the same time breathing in hard to keep up with these youthful, faster folk. No easy feat, unless you happen to be a trumpet player. A summer here at our headquarters in Champaign, Illinois, can find anywhere from 5 to 25 or so interns. They range in level from late high school to graduate school, as young as 15 and as old as 40-something. And we’re always on the hunt for new ones (apply on our website if interested). Where do they come from? I believe our interns have hailed from all six naturally inhabited continents, as well as several major island groups. Most are now residing in North America for their studies, though some have traveled from farther away. What do we do with these interns? Well, by law, we cannot eat them (even if we could manage to catch one). Instead we find it useful to put them to work on a variety of tasks, based on individual educational background and experience.
Announcements & Events

Symbolic Programming: Computationally Active Language

In this blog and elsewhere, you’ll often see the statement that some advanced Mathematica feature is just another application of symbolic programming. It’s the kind of idea that seems too powerful to explain in a single blog post, yet simple enough that I am tempted to try. So, here goes. Symbolic programming is based on the concept of recasting core features of human language into a computationally active form. What does it mean to have a human-language-oriented programming language? Our cognitive model of computation is typically a three-stage process: 1) describing the computation; 2) executing that description; and 3) outputting the results. The “language” part of most programming languages begins and ends with stage one. Linguistic structures are erected to describe the program. But the execution of the program is typically oriented around an entirely different system of types and objects; and likewise, the program’s output structure tends to resemble nothing particularly language-like. Symbolic programming uses linguistic structures as the foundation of all aspects of computation. From a computation’s description, to how the computation executes, to how humans interface with the results, the exact same basic tree structure is used throughout. This is a powerful unification, making possible many useful computations that in other systems range from cumbersome to practically impossible. We’ll see examples along the way, but let me first describe what these linguistic structures actually are.
Products

In Mathematica, Pictures Are Worth a Thousand Words

One of the challenges of developing Mathematica is resisting the urge to spend all my time playing with the graphics toys I create. A lot of what I do results in features so fun to explore that they jeopardize the further development of Mathematica. I’d like to point out a few of them in this blog, starting with a simple but profound change in the behavior of Mathematica graphics: direct graphics output. In previous versions of Mathematica, the result of a Plot or other graphics command was the abbreviated form  - Graphics -  that represented the symbolic output. The actual graphical image itself was spit out like a watermelon seed as a side-effect of the evaluation and was not associated with the symbolic output. In Mathematica 6, the output and the image are one and the same, behavior we call “direct output” to contrast it with the “side-effect output” of previous versions. This simple change in behavior underlies much of the interesting new functionality in Version 6.
Computation & Analysis

Our First Russian Student Competition

In April, we invited high-school and college students in Russia to participate in a Mathematica competition. We gave the students a week to answer a set of seven Mathematica questions. The response was great, with submissions coming in from all across the country. The first-place winner was Vladimir Dudchenko, an undergraduate student at the Moscow Institute of Physics and Technology (MIPT). He correctly solved all seven competition problems and displayed remarkable ingenuity and skill in his use of Mathematica. In addition to a student copy of Mathematica 6, Vladimir won a new MacBook Pro, a top-of-the-line machine donated by Apple and DPI Computers (Apple’s partner in Russia).
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 […]