WOLFRAM

Design & Visualization

Hybrid Logos and a Fortunate Mistake

The idea struck me as I was toweling off after a swim: what would happen if I crossed the Mercedes-Benz and Grignani logos from my February 2009 blog post, Exploring Logo Designs with Mathematica? Hybrid vigor is a well-known phenomenon responsible for increased yields in corn, and metaphorically, for the economic and cultural flourishing of civilizations that engage in foreign trade. Would the progeny of Benz and Grignani show similar effects?
Education & Academic

Mapping GPS Data

I'm a GPS addict. I have a handheld GPS, a computer GPS, a GPS phone, two GPS watches, two GPS cameras, and maybe some others. Wherever I go, chances are pretty good I have at least one GPS with me. Anytime I run/bike/hike/walk/ski I keep a record of where I went using GPS. Now that I have all this data I want to make use of it in a meaningful way. Mathematica is a fantastic tool to analyze all my geographic data. Here's an example from a recent trail run I did at a nearby park. The data is stored in a GPX (GPS exchange format) file, which is a specific type of XML. We can bring the data into Mathematica using Import.
Education & Academic

If You Teach a Student Mathematica

Each release of Mathematica brings with it powerful new tools that can be applied to an ever-widening range of fields, so it's no surprise that a great many faculty members at all levels choose Mathematica as the tool around which to base their curricula. My first introduction to the software came during my undergraduate education when I took a differential equations course. As my professor went through the syllabus and explained what topics we would cover that semester, she also mentioned that we would be using Mathematica and showed some examples of what it could do. Having never used mathematical technology more sophisticated than a graphing calculator, I did admittedly have a bit of a rocky start with the language and syntax. I remember my professor spending a lecture period going over the basics of how to enter input and perform computations, but I decided to dismiss all that advice and just figure it out myself---which seemed to be a good idea at the time. I probably should have paid closer attention to my professor's tutorial, because I soon became frustrated at what seemed like a very rigid language. As I investigated further---mostly by looking at all the examples in the documentation---I quickly realized that by learning a few simple rules one could effectively harness the program and produce powerful results. Ultimately it was Mathematica's consistent language design that got me excited about learning more.
Computation & Analysis

Word Facts

Recent versions of Mathematica introduced useful data functions related to linguistics. In Version 7, Mathematica's integrated string manipulation and visualization functions provide a powerful platform for computational linguistics. Both DictionaryLookup and WordData give programmatic access to curated data that's ready for computation. DictionaryLookup has been extended to cover more languages, while WordData has information on word meaning, structure, and usage, as well as cognitive and grammatical relationships between words. Let's look at a range of examples, starting with some interesting and amusing word facts. DictionaryLookup currently contains word lists for 27 different languages:
Education & Academic

Wow! This Is Mathematica?

Recently, I was in Puerto Rico giving Mathematica talks to faculty and students within the University of Puerto Rico and Inter American University of Puerto Rico system. First off, I loved the islands and the weather. Second, the people were enthusiastic, understanding of my broken Spanish, and wonderful people with whom to interact and discuss Mathematica integration. On my flight home, I realized that it would be good to document a little bit of my experience talking with educators about integrating Mathematica into courses and how Mathematica 7 has completely changed my perspective (and uniformly, their perspective) as well. I've now been at Wolfram Research almost 12 years. My experiences at the company have been quite varied. I have traversed the country in the MathMobile (see below) showing lots of people at schools, companies, and government labs how to start using Mathematica; I have sat at a desk in technical support answering questions from longtime users on how to do (and fix) pretty detailed programming; I have worked in public relations to convey to the press why Mathematica is such an important topic for them to cover.
Computation & Analysis

Plug-and-Play Mathematica with Wolfram Lightweight Grid System

For some people, parallel computing and the need for a cluster is a way of life. For others, the need sneaks up on them. Most clusters and grids are planned and organized from the first, and that can take time and effort, to say nothing of configuration. Other times there's no budget for new hardware, but there are computer labs or desktop computers unused for much of the day---a cluster waiting to be harnessed, if only you can get the Macs to talk to the Windows boxes, and keep straight all the hostnames in use. For situations like these I helped develop Wolfram Lightweight Grid System, which is designed from the ground up to let you assemble existing hardware into a self-organized network, accessible from Mathematica with almost no configuration.
Announcements & Events

Pattern Matching Your Source Code—How Wolfram Workbench Integrates Mathematica Development Tools

Inside and outside of Wolfram Research, teams are working on large Mathematica projects. Working with large code bases requires powerful tools; it is even better if these tools are integrated. With Wolfram Workbench, we brought an integrated development environment (IDE) to our users. What does "integrated" mean? Well, let's look at just one example of how Workbench integrates Mathematica's central language features, pattern matching, editors, and source management tools. Let's start with a specific problem: with our Mathematica 6.0 release, we overhauled many of our libraries and APIs (our recent Version 7.0 release builds on the improvements in Version 6.0). Some groups of functions were deprecated or their APIs changed. We had collected a long list of these changes... but how would users apply them to their source code? Go through them one by one and line by line in their code? Definitely not.
Computation & Analysis

The Evolution of Parallel Computing with Mathematica

In the eighties I attended a scientific presentation about a rather cumbersome way to parallelize one of the symbolic computation systems in existence at that time and quickly realized how much more elegantly I could bring parallelism to Mathematica, thanks to its symbolic communication protocol, MathLink. This protocol allowed me to exchange not only data but also programs between concurrently running Mathematica kernels. The result was a package, written entirely in Mathematica, called Parallel Computing Toolkit. At a time when parallel computing meant big expensive machines, FORTRAN, and batch jobs, it was quite satisfying to experiment with different parallel paradigms from an interactive Mathematica notebook, with a couple of machines on a local network doing the computations, and be able to do parallel functional programming and work with symbolic expressions and arbitrary-precision arithmetic in parallel. I got a lot of surprised reactions from people who thought that parallelization is this big complicated thing, requiring supercomputers and large funds, and rather large problems, to be worthwhile. The truth is, most problems people solve are easy to parallelize.