Wolfram|Alpha Blog 2015-01-30T20:13:42Z http://blog.wolframalpha.com/feed/atom/ WordPress Jenna Giuffrida <![CDATA[On Super Bowls and Puppy Bowls]]> http://blog.internal.wolframalpha.com/?p=29092 2015-01-30T20:13:42Z 2015-01-30T20:12:48Z This weekend marks the culmination of blood, sweat, and, oh yes, tears (Deflategate, anyone?) from months of struggle: Super Bowl XLIX.

For those of you who are interested, Wolfram|Alpha possesses a wealth of sports stats so that you can get all the cold, hard facts about the Patriots and the Seahawks.

Patriots vs. Seahawks

And if you can’t wait for Sunday to get your next football fix, or find yourself suffering withdrawal afterward, VICTIV is doing very cool things with the Wolfram Language to run a fantasy sports league. Earl Mitchell delves into the step-by-step process for new users on his blog, The Rotoquant.

But some of you are probably just plain old tired of all this “Deflatriots” business and of having your television occupied by football games, news, talking heads, and commercials from September through February, because after a while, the teams start to blur together. Fortunately, with the help of the Wolfram Language, you can pick your team out of the crowd using this Graph of NFL logos we created by pulling the images from our Wolfram Knowledgebase and using Nearest to organize them by graphical similarity.

NFL logos arranged with Nearest by graphical similarity

If you’re one of those who are weary of all the football hoopla, then let us soothe your soul with a time-honored and longstanding tradition of cuteness: Animal Planet’s Puppy Bowl XI.

Puppy Bowl XI

With celebrities such as Katty Furry performing in the halftime show, it promises to be the most adorable sports game you’ll watch all year. The competition will be fierce, with 57 shelter-donated puppies—all up for adoption!—fighting for the honor to be the Bissel MVP (Most Valuable Puppy).

Past MVPs have included Max and Abigail, both Jack Russell Terriers, and the last MVP, Loren, was a Brittany, a breed not present in 2015′s lineup.

Jack Russell Terrier in Wolfram|Alpha

It’s not unlikely that one of the eight Labrador Retrievers will take home the prize for the first time ever. Again using the Wolfram Language, here’s the breakdown of Puppy Bowl breeds:

Breed representation in this year's Puppy Bowl

But who knows, one of those Beagles could come out of the end zone and snatch the victorious touchdown from right under their wet noses. Are you ready for some puppy ball?

The world's most famous Beagle, in the world's most famous computational knowledge engine


To comment, please visit the copy of this post at the Wolfram Blog »

]]>
0
Greg Hurst http:// <![CDATA[Step-by-step Solutions for Definite Integrals in Wolfram|Alpha]]> http://blog.internal.wolframalpha.com/?p=28738 2014-11-11T15:58:11Z 2014-11-11T15:57:19Z One of the most popular queries on Wolfram|Alpha is for definite integrals. So we’re especially excited to announce that Step-by-step solutions for these are now available! The general method used to find the steps for definite integrals is to tap into the already existing “Show steps” functionality for indefinite integration, and then to use the fundamental theorem of calculus.

Domain is split and the integral is evaluated separately over each domain

Now you may think it was trivial to add this functionality given that indefinite integrals already have steps, but there are many tricky cases to consider: before we even begin to integrate, the continuity of the function is examined. If there are discontinuities in the integration domain, the domain is split and the integral is evaluated separately over each domain.

Domain split and integral evaluated separately

We must determine if the integral is proper or improper.

Integral proper or improper

Absolute values need to be handled carefully.

Absolute values handled carefully

Symmetries can be exploited.

Symmetries exploited

Simplification of radicals and logarithms must be done very carefully.

Simplification of algorithms and logarithms handled carefully

Finally, the fundamental theorem of calculus requires that the antiderivative is continuous over the integration domain (see this blog post for more information). Therefore, we need to be careful when finding the indefinite integral, and always ensure the result will be continuous. One way to do this is to detect when we will have a discontinuous antiderivative and split the integration domain up.

Detect a discontinuous antiderivative and split the integration domain up

Integration is an extremely nontrivial problem, so we hope these Step-by-step solutions will help you learn how they can be done. Be sure to check out Step-by-step solutions for other topics too.

]]>
6
Jenna Giuffrida <![CDATA[Summer Internships]]> http://blog.internal.wolframalpha.com/?p=28866 2014-10-16T19:49:41Z 2014-10-16T18:13:21Z

Summer has drawn to a close, and so too have our annual internships. Each year Wolfram welcomes a new group of interns to work on an exciting array of projects ranging all the way from Bell polynomials to food science. It was a season for learning, growth, and making strides across disciplinary and academic divides. The Wolfram interns are an invaluable part of our team, and they couldn’t wait to tell us all about their time here. Here are just a few examples of the work that was done.

2014 summer interns

Paco Jain

Paco Jain
Wolfram|Alpha Scientific Content,
Wolfram|Alpha
“This summer, I worked on adding scientific content to the physical systems domain in Wolfram|Alpha. While there is a lot to learn, everyone I worked with seemed enthusiastic to help me get up to speed, and I was able to form several valuable mentoring relationships. I also felt that I was given the resources and responsibility I needed to allow me to make meaningful contributions to the Wolfram|Alpha product. The experience has me already thinking about pursuing a full-time position at Wolfram!”
Daniel McDonald

Daniel McDonald
Wolfram|Alpha Scientific Content,
Bell Polynomials and Recursive Algorithms
“This summer at Wolfram|Alpha I worked as the Special Functions Intern. My primary project was reading mathematical literature in order to extract and verify formulas that could be useful for The Wolfram Functions Site as well as for possible Mathematica implementation. The most interesting part of my work involved creating a compendium of information about Mathematica‘s BellY function that computes various types of Bell polynomials, which are used in Faà di Bruno’s formula for computing arbitrary derivatives of the composition f(g) (as well as in generalizations of this formula for computing arbitrary derivatives of compositions of arbitrary depth). I devised an original functional recurrence that suggested a quick recursive algorithm for computing generalized Bell polynomials; as this algorithm ran much faster than Mathematica‘s at the time, it was implemented into Mathematica 10.0.1. This recurrence and thus the algorithm (with different base cases) can be applied in a more general environment, and I am currently drafting a paper to submit to an algorithms journal.”
Mark Peterson

Mark Peterson
Scientific Information Group,
Wolfram Demonstrations Project
“During my internship in the Scientific Information Group at Wolfram Research, my work has primarily been centered on the Wolfram Demonstrations Project. Essentially, Demonstrations are self-contained programs written in the Wolfram Language that are designed to appeal to the user in a highly intuitive and interactive way. Whether working on the Project directly or on alternate applications for its material, my time has been spent developing this sort of content.”
Visualizing the Thomson Problem
Jake Wood

Jake Wood
Mathematica Algorithms R&D,
Mathematica GeoGraphics
“Joining the Wolfram team earlier this summer was an exciting professional milestone for me. I am a big fan of not only the software that has come from Wolfram, but also the mission and ambition to proliferate and nurture big ideas. My patient mentor explained that I was to figure out how to make the generated maps in GeoGraphics (new in Mathematica 10) move around and update from mouse clicking and dragging. Additionally, the maps needed to be zoomable, similar to maps online used for navigation. Right now my prototypes deal with the maps themselves instead of the verbose layers of graphics data that Mathematica is capable of imbuing. In the future, though, who knows. Getting the panning and zooming to work proved a difficult task; however, the brunt of the summer was spent on improving the performance speed. No one wants to use an interactive map that is insufferably unresponsive. The utility of this application is pretty clear, as it is similar to programs that people already use daily.”
Jessica Zhang

Jessica Zhang
User Experience,
WolframTones
“People would think as a User Experience Designer I would only be designing detailed features within a product or workflow. However, at Wolfram, I not only got to do those things, I also got to take part in the bigger decision-making design processes, even as an intern. I was given the opportunity to learn a variety of skills that are important and also at the cutting edge of the field. Technical skills include wireframing, wireflowing, diagramming, and interface design. Oh, and also using the espresso machine!”
Andrew Blanchard

Andrew Blanchard
Wolfram|Alpha Scientific Content,
Named Physical Effects
“For my internship with Wolfram Alpha, I assembled a list of named physical effects. A typical effect provides a link between measurable physical quantities, which are already incorporated into Wolfram|Alpha. Thus, making information about known physical effects computable enables the exploration of relationships between measurable quantities. In addition, the searchable data provides a window into the relationship between the discovery of new effects and advances in the field of physics. By making scientific information searchable, Wolfram|Alpha is providing a wonderful service for researchers, students, and anyone curious about exploring science.”
Surojit Ganguli


Surojit Ganguli
Wolfram|Alpha Socioeconomic Content,
Computational Capabilities
“I was part of the team that was involved in increasing the computational capabilities of Wolfram|Alpha in the domain of vehicle dynamics. As a Computational Science and Engineering Minor at UIUC, the opportunity to explore the various ways in which computations are being performed at Wolfram was in itself a rewarding experience. As an additional bonus, I definitely improved in the area of functional programming by using Mathematica.”

Ying Qin

Ying Qin
Wolfram|Alpha Scientific Content,
Food Data
“I’ve been working on expanding food-related information in the Wolfram Knowledgebase. Among other things, this included the characterization and classification of food; I did research involving USDA data and other data sources. I was also working on expanding the food glossary, which gives a more detailed description of the available content. Furthermore, using my knowledge as a Food Science student, I was able to do things like classify fatty acids into groups. My advice to prospective interns is that you shouldn’t hesitate to apply even though your major is not computer science or engineering. As a Food Science major, I was happy to get involved here, and felt like it was a truly valuable experience.”

It’s been an amazing summer all around, and we couldn’t be happier with the contributions our interns have made. While we are sad to see some of them go, we are excited by the new talent that has been added to our team and can’t wait to see what next year will bring!

]]>
7
The Wolfram|Alpha Team http://www.wolframalpha.com <![CDATA[Scorpion on CBS]]> http://blog.internal.wolframalpha.com/?p=28703 2014-09-22T16:54:16Z 2014-09-19T16:02:55Z Ever wondered what someone with an IQ higher than Einstein’s and a penchant for hacking into NASA might be capable of? If so, you’re in luck. CBS will air the pilot for its brand new series Scorpion, and Wolfram|Alpha will be live-tweeting it this Monday, September 22, at 9/8c. This highly anticipated premiere, starring Elyes Gabel and Katharine McPhee, kicks off a thrilling action drama about a group of super-geniuses brought together by Walter O’Brien to act as the last line of defense in a series of complex threats arising in the modern world. The Scorpion team are taking the next step in proving that the contemporary superhero’s best accessory isn’t a cape, but a laptop.

Scorpion on CBS

Our live-tweets will feature facts, queries, and commentary about the show. We’ll take a look at things like the math behind siphoning electricity and insightful statistics based on character names. We’re happy to see another installment in the good fight for the nerd revolution and can’t wait to watch as a bunch of brainiacs save the world. Join us for a night of science and suspense and send us your own Wolfram|Alpha Scorpion queries to @wolfram_alpha!

]]>
0
Stephen Wolfram http:// <![CDATA[Introducing Tweet-a-Program]]> http://blog.internal.wolframalpha.com/?p=28779 2014-10-17T19:11:52Z 2014-09-18T21:29:09Z In the Wolfram Language a little code can go a long way. And to use that fact to let everyone have some fun, today we’re introducing Tweet-a-Program.

Compose a tweet-length Wolfram Language program, and tweet it to @WolframTaP. Our Twitter bot will run your program in the Wolfram Cloud and tweet back the result.

Hello World from Tweet-a-Program: GeoGraphics[Text[Style["Hello!",150]],GeoRange->"World"]

One can do a lot with Wolfram Language programs that fit in a tweet. Like here’s a 78-character program that generates a color cube made of spheres:


Graphics3D[Table[{RGBColor[{i,j,k}/5],Sphere[{i,j,k},1/2]},{i,5},{j,5},{k,5}]]

It’s easy to make interesting patterns:

Graphics[Riffle[NestList[Scale[Rotate[#,.1],.9]&,Rectangle[],40],{Black,White}]]

Here’s a 44-character program that seems to express itself like an executable poem:

Graphics3D@Point@Tuples@Table[Range[20],{3}]

Going even shorter, here’s a little “fractal hack”, in just 36 characters:


NestList[Subsuperscript[#,#,#]&,o,6]

Putting in some math makes it easy to get all sorts of elaborate structures and patterns:


ContourPlot3D[Cos[{x,y,z}/Norm[{x,y,z}]^2]==0,{x,-0.5,0},{y,0,0.5},{z,-0.5,0}]

ReliefPlot[Arg[Fourier[Table[1/LCM[i,j],{i,512},{j,512}]]]]

You don’t have to make pictures. Here, for instance, are the first 1000 digits of π, sized according to their magnitudes (notice that run of 9s!):

Row[Style[#,5#+1]&/@First[RealDigits[Pi,10,1000]]]

The Wolfram Language not only knows how to compute π, as well as a zillion other algorithms; it also has a huge amount of built-in knowledge about the real world. So right in the language, you can talk about movies or countries or chemicals or whatever. And here’s a 78-character program that makes a collage of the flags of Europe, sized according to country population:

ImageCollage[CountryData["Europe","Population"]->CountryData["Europe","Flag"]]

We can make this even shorter if we use some free-form natural language in the program. In a typical Wolfram notebook interface, you do this using CTRL + =, but in Tweet-a-Program, you can do it just using =[...]:

ImageCollage[=[Europe populations]->=[Europe flags]]
ImageCollage[=[Europe populations]->=[Europe flags]]

The Wolfram Language knows a lot about geography. Here’s a program that makes a “powers of 10” sequence of disks, centered on the Eiffel Tower:

Table[GeoGraphics[GeoDisk[=[Eiffel Tower],Quantity[10^(n+1),"Meters"]],GeoProjection->"Bonne"],{n,6}]
Table[GeoGraphics[GeoDisk[=[Eiffel Tower],Quantity[10^(n+1),"Meters"]],GeoProjection->"Bonne"],{n,6}]

There are many, many kinds of real-world knowledge built into the Wolfram Language, including some pretty obscure ones. Here’s a map of all the shipwrecks it knows in the Atlantic:

GeoListPlot[GeoEntities[=[Atlantic Ocean],"Shipwreck"]]
GeoListPlot[GeoEntities[=[Atlantic Ocean],"Shipwreck"]]

The Wolfram Language deals with images too. Here’s a program that gets images of the planets, then randomly scrambles their colors to give them a more exotic look:

ColorCombine[RandomSample[ColorSeparate[#]]]&/@EntityValue[=[planets],"Image"]
ColorCombine[RandomSample[ColorSeparate[#]]]&/@EntityValue[=[planets],"Image"]

Here’s an image of me, repeatedly edge-detected:

NestList[EdgeDetect,=[Stephen Wolfram image],5]
NestList[EdgeDetect,=[Stephen Wolfram image],5]

Or, for something more “pop culture” (and ready for image analysis etc.), here’s an array of random movie posters:

Grid[Partition[DeleteMissing[EntityValue[RandomSample[MovieData[],50],"Image"]],6]]

The Wolfram Language does really well with words and text too. Like here’s a program that generates an “infographic” showing the relative frequencies of first letters for words in English and in Spanish:

Row[Style[#,#2/70]&@@@Tally[ToUpperCase[StringTake[DictionaryLookup[{#,All}],1]]]]&/@{"English","Spanish"}

And here—just fitting in a tweet—is a program that computes a smoothed estimate of the frequencies of “Alice” and “Queen” going through the text of Alice in Wonderland:

SmoothHistogram[Legended[First/@StringPosition[ExampleData@{"Text","AliceInWonderland"},#],#]&/@{"Alice","Queen"},Filling->Axis]

Networks are good fodder for Tweet-a-Program too. Like here’s a program that generates a sequence of networks:

Table[Graph[Table[i->Mod[i^2,n],{i,n}]],{n,105,110}]

And here—just below the tweet length limit—is a program that generates a random cloud of polyhedra:

Graphics3D[Table[{RandomColor[],Translate[PolyhedronData[RandomChoice[PolyhedronData[]]][[1]],RandomReal[20,3]]},{100}]]

What’s the shortest “interesting program” in the Wolfram Language?

In some languages, it might be a “quine”—a program that outputs its own code. But in the Wolfram Language, quines are completely trivial. Since everything is symbolic, all it takes to make a quine is a single character:

x

Using the built-in knowledge in the Wolfram Language, you can make some very short programs with interesting output. Like here’s a 15-character program that generates an image from built-in data about knots:

KnotData[{8,4}]

Some short programs are very easy to understand:

Grid[Array[Times,{12,12}]]

It’s fun to make short “mystery” programs. What’s this one doing?

NestList[#^#&,x,5]

Or this one?

FixedPointList[#/.{s[x_][y_][z_]->x[z][y[z]],k[x_][y_]->x}&,s[s[s]][s][s][s][k],10]//Column

Or, much more challengingly, this one:

Style[\[FilledCircle],5#]&/@(If[#1>2,2#0[#1-#0[#1-2]],1]&/@Range[50])

I’ve actually spent many years of my life studying short programs and what they do—and building up a whole science of the computational universe, described in my big book A New Kind of Science. It all started more than three decades ago—with a computer experiment that I can now do with just a single tweet:

GraphicsGrid[Partition[Table[ArrayPlot[CellularAutomaton[n,{{1},0},{40,All}]],{n,0,255}],16]]

My all-time favorite discovery is tweetable too:

ArrayPlot[CellularAutomaton[30,{{1},0},100]]

If you go out searching in the computational universe, it’s easy to find all sorts of amazing things:

ArrayPlot[CellularAutomaton[{1635,{3,1}},{{1},0},500],ColorFunction->(Hue[#/3]&)]

An ultimate question is whether somewhere out there in the computational universe there is a program that represents our whole physical universe. And is that program short enough to be tweetable in the Wolfram Language?

But regardless of this, we already know that the Wolfram Language lets us write amazing tweetable programs about an incredible diversity of things. It’s taken more than a quarter of a century to build the huge tower of knowledge and automation that’s now in the Wolfram Language. But this richness is what makes it possible to express so much in the space of a tweet.

In the past, only ordinary human languages were rich enough to be meaningfully used for tweeting. But what’s exciting now is that it seems like the Wolfram Language has passed a kind of threshold of general expressiveness that lets it, too, be meaningfully tweetable. For like ordinary human languages, it can talk about all sorts of things, and represent all sorts of ideas. But there’s also something else about it: unlike ordinary human languages, everything in it always has a precisely defined meaning—and what you write is not just readable, but also runnable.

Tweets in an ordinary human language are (presumably) intended to have some effect on the mind of whoever reads them. But the effect may be different on different minds, and it’s usually hard to know exactly what it is. But tweets in the Wolfram Language have a well-defined effect—which you see when they’re run.

It’s interesting to compare the Wolfram Language to ordinary human languages. An ordinary language, like English, has a few tens of thousands of reasonably common “built-in” words, excluding proper names etc. The Wolfram Language has about 5000 built-in named objects, excluding constructs like entities specified by proper names.

And one thing that’s important about the Wolfram Language—that it shares with ordinary human languages—is that it’s not only writable by humans, but also readable by them. There’s vocabulary to acquire, and there are a few principles to learn—but it doesn’t take long before, as a human, one can start to understand typical Wolfram Language programs.

Sometimes it’s fairly easy to give at least a rough translation (or “explanation”) of a Wolfram Language program in ordinary human language. But it’s very common for a Wolfram Language program to express something that’s quite difficult to communicate—at least at all succinctly—in ordinary human language. And inevitably this means that there are things that are easy to think about in the Wolfram Language, but difficult to think about in ordinary human language.

Just like with an ordinary language, there are language arts for the Wolfram Language. There’s reading and comprehension. And there’s writing and composition. Always with lots of ways to express something, but now with a precise notion of correctness, as well as all sorts of measures like speed of execution.

And like with ordinary human language, there’s also the matter of elegance. One can look at both meaning and presentation. And one can think of distilling the essence of things to create a kind of “code poetry”.

When I first came up with Tweet-a-Program it seemed mostly like a neat hack. But what I’ve realized is that it’s actually a window into a new kind of expression—and a form of communication that humans and computers can share.

Of course, it’s also intended to be fun. And certainly for me there’s great satisfaction in creating a tiny, elegant gem of a program that produces something amazing.

And now I’m excited to see what everyone will do with it. What kinds of things will be created? What popular “code postcards” will there be? Who will be inspired to code? What puzzles will be posed and solved? What competitions will be defined and won? And what great code artists and code poets will emerge?

Now that we have tweetable programs, let’s go find what’s possible…

To develop and test programs for Tweet-a-Program, you can log in free to the Wolfram Programming Cloud, or use any other Wolfram Language system, on the desktop or in the cloud. Check out some details here.


To comment, please visit the copy of this post at the Wolfram Blog »

]]>
0