April 16, 2014 — Wolfram Blog Team
Professor Malcolm Levitt is Head of Magnetic Resonance at the University of Southampton and a leader in the field of magnetic resonance research. In the early 2000s, he began programming SpinDynamica—a set of Mathematica packages that run spin dynamical calculations—to explore magnetic resonance concepts and develop experiments.
SpinDynamica is an open-source package that Professor Levitt continues to work on as a hobby in his spare time, but the SpinDynamica community also contributes add-ons to bring additional functionality to researchers.
Professor Levitt graciously agreed to answer a few of our questions about his work, Mathematica, and SpinDynamica. He’s hopeful that as word spreads, others will submit add-ons that enhance the core functionality of SpinDynamica.
April 10, 2014 — Wolfram Blog Team
It probably comes as no surprise that Wolfram has been asked to participate in a number of hackathons recently, including the upcoming HackIllinois. There’s a natural fit between our pioneering, agile approach to technology development and the growing hackathon phenomenon, in which coders come together for a short but intensive time—either individually or in teams—to create new and unique software or hardware applications.
Last month while at SXSW 2014, Wolfram helped provide support for Slashathon, the first-ever music-focused hackathon. Hosted by Slash from Guns N’ Roses, the winning hack will be used to help release Slash’s new album. Wolfram provided mentoring for the competition in the form of onsite coding experts and technology access.
November 14, 2012 — Jon McLoone, International Business & Strategic Development
Update: See our latest post on How the Wolfram Language Measures Up.
I stumbled upon a nice project called Rosetta Code. Their stated aim is “to present solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another.”
After amusing myself by contributing a few solutions (Flood filling, Mean angle, and Sum digits of an integer being some of mine), I realized that the data hidden in the site provided an opportunity to quantify a claim that I have often made over the years—that Mathematica code tends to be shorter than equivalent code in other languages. This is due to both its high-level nature and built-in computational knowledge.
Here is what I found.
Mathematica code is typically less than a third of the length of the same tasks written in other languages, and often much better.
April 18, 2012 — Vitaliy Kaurov, Technical Communication & Strategy
A number of you have written us asking about interface design, Dynamic structures, and general starting tips for creating Wolfram Computable Document Format (CDF) files. I will present three examples of CDF files that will provide some insight into good practices. You should also read the recent Mathematica Q&A Series blog post about delivering CDF to your websites and blogs with the help of the CDF Web Deployment Wizard. This enables users to showcase their Mathematica projects online and share them with the global community. Let’s have a look at some features that make CDF great, rising well above other platforms. For a more extensive list, please see the CDF comparison table.
We will start with a short program that numerically solves the challenging problem of constrained global optimization by finding the minimum on a limited surface region. Think of finding the lowest point of an area of a mountain range. Dragging the 2D slider on the interface below automatically changes the surface geometry, and the CDF engine quickly recomputes the new minimum. This is reflected in the updated positions of the red dot. Drag and rotate the 3D graphics with the mouse to get a different view. Hold Ctrl while dragging to zoom (Command on a Mac) or hold Shift and drag to pan.
March 25, 2010 — Adam Berry, Senior Kernel Developer
It happens to everyone—you spend forever digging around in your filesystem for the dataset you need to finish your work. But you can’t remember the name or enough about the contents to be able to search for it. Searching is wasted time, time that would be far better spent on productive tasks.
What users like myself really need is for our tools to reflect the way we actually work, and that’s where project-based workflows in tools like Wolfram Workbench come in.
When working with Mathematica, we need notebooks—some will contain rough work and some will be presentation material. We may also need some data and other forms of output, such as HTML for final delivery. So let’s walk through setting up a project, and some of the features that can enhance your workflow and improve your productivity.
February 25, 2010 — Wolfram Blog Team
Wolfram|Alpha‘s mission—to make all systematic knowledge immediately computable by anyone—is a major software engineering effort. With millions of lines of code and hundreds of team members, a sophisticated code-base manager is essential in making the project possible. Enter Wolfram Workbench.
Wolfram Workbench 2, the recently released version of Wolfram’s state-of-the-art software engineering and deployment tool, is used at all levels of the Wolfram|Alpha project, from data curation and quality assurance to documentation and framework development. With its leading code-editing, navigation, and project-management tools, Workbench is a scalable solution that is necessary for building and growing Wolfram|Alpha.
In this video, two Wolfram|Alpha developers describe Workbench‘s invaluable role in the project.
February 17, 2010 — Wolfram Blog Team
Wolfram Workbench 2 is out today. New in Version 2 is the ability to create and integrate documentation for your Mathematica applications, as well as a host of improvements to code editing, navigation, and more.
Workbench is an Eclipse-based integrated development environment (IDE) with a powerful suite of tools to help you quickly create innovative, next-generation applications from concept to completion. You can work with any Eclipse-supported language, making Workbench a very efficient organizational tool. It’s a powerful tool for small projects as well as large scale applications. How do we know? It is one of our key tools in the development of Mathematica, Wolfram|Alpha, and other Wolfram technologies.
March 19, 2009 — Werner Schuster, Kernel Developer
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.
November 12, 2007 — Nilay Gandhi, Corporate Communications
Last month, we hosted our annual technology conference here at our headquarters in Champaign, Illinois, where hundreds of Mathematica users from around the world came to show us what they’ve been working on and to see what we’ve been up to.
A lot of the conference presentations are now available on our website, so you can take a look at them even if you didn’t have a chance to attend this year.
June 15, 2007 — Kovas Boguta, Special Projects Group
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.