## Nena vs Eminem

Is it possible to take the instrumentals from one track, the vocals from another, and come up with something that you'd actually want to listen to? Turns out yes:

Amazing what computers can do these days. (via Holger Levsen)

## SciPy'09: Advanced Tutorial on PyCUDA

The SciPy'09 conference ended less than a week ago. At the invitation of the SciPy'09 organizers (especially Fernando Perez), Nicolas Pinto gave a talk in the Advanced Tutorials track on how to use PyCUDA to do GPU scripting.

First, I would like to use this opportunity to publicly thank Nicolas for all the work and time he put into making this tutorial a reality. Second, I would like to point out the video of his session, which you can watch below:

## Introducing UIH: Math + Unicode, Happy Together

As a math person, you're often faced with the task of communicating about math. Unfortunately, most modern means of communication, be it email, the web or instant messages, aren't really suited to typing math. Fortunately, however, many of these means do allow the use of Unicode, and Unicode allows for certain limited forms of mathematical typography.

Putting Unicode formulas together usually requires a fair amount of patience and some quality time with your favorite character map application. But now there's an easier way: The Unicode Input Helper--or "UIH". Here's an image of it in action:

uih-screenshot.png

Using it, you may use HTML entity names with backslashes (such as \int for an integral) to put together the basics of a formula, and then use a searchable list of all known Unicode characters to add the finishing touches. The screenshot gives you an idea. Once you've finished your masterpiece, simply use your computer's copy-and-paste function to get it to where it needs to be.

(Like PuDB, uih requires Ian Ward's urwid library.)

As a side benefit, I think uih makes for a nice replacement for pretty much every character map program--but its original purpose was easy typing of math.

## Debug Python in Style

I'm happy to introduce PuDB, a full-screen, console-based visual debugger for Python that I recently cooked up.

Or install it simply by typing

easy_install pudb


into your Unix shell. Here's a screenshot of it in action:

Python has had decent debugging support for a while now, in the form of

• Pdb, the command-line debugger that comes with the interpreter
• Winpdb, a very nice GUI debugger
• IDEs such as Eric

But I felt that there was a gap between these offerings--Pdb being very austere, and Winpdb and the IDEs being rather heavyweight. I wanted a comfortable debugger that's easily usable in a shell and doesn't require me to touch my mouse. PuDB uses Ian Ward's excellent Urwid library for its interaction with the console.

Update: Looks like PuDB is slowly growing a community. There's now a mailing list to host discussions.

## Git Commit Timelines

Here's a waste of time I could just not resist: MIT's Project SIMILE has released a rather nice Timeline Web Widget. Combine that with GitPython and a bit of glue code in Python, and you get a neat, one-page summary of the software work I've done as part of working towards my PhD. Here's a screenshot if you're too lazy to click through:

timeline-shot.png

Note that (nearly) every commit is hyperlinked to the git web frontend, where you can view what was actually changed--just click the title text in the popup bubble.

If you'd like to do this yourself, the code is available, you can get it with

git clone http://git.tiker.net/trees/commit-timeline.git


## 1 Billion seconds on this Earth

Happy 109-day to me!

date -d'NNNN-NN-NN + 1000000000 seconds'
Mo 13. Apr 01:46:40 EDT 2009


## World Builder

From the department of "what's Andreas wacthing on Vimeo": Here's something amazing you can apparently do with one day of filming and two years of post-production.

One thing I could especially relate to about this video is the feeling of time-constrained emptiness at the beginning... If you've tinkered with creating video games, you probably know what I'm talking about. Research is somehow not too different.

## Credit Crisis? What Credit Crisis?

If you haven't been living under a rock, you've probably heard about the global economic meltdown. You'll probably have also listened to people explain it, maybe even understood what's going on. Regardless, this video I recently found sums it up again very nicely:

## boostmpi: Initial Release

I’m happy to announce the initial public release of boostmpi, an MPI wrapper for Python.

boostmpi is a high-quality Python wrapper around the Message Passing Interface (MPI). MPI is a standardized interface to libraries such as OpenMPI and MPICH that provide high-performance inter-process communication for distributed-memory computing.

boostmpi uses the Boost.MPI library, which gives MPI a very usable C++ interface. This C++ interface is then made accessible to Python via the Boost.Python library.

boostmpi was originally distributed as part of the Boost C++ library. This separate distribution aims to make the software more accessible.

Disclaimer: boostmpi (born as Boost.MPI.Python) is the work of Doug Gregor. I just do maintenance and distribution work around here.

## CodePy: Initial public Release

I'm happy to announce the initial public release of CodePy, a native-code Metaprogramming toolkit for Python.

The idea is the following:

• You build a string that is actually C code.
• CodePy compiles it, links it, and dynamically loads it into the Python interpreter.

Ta-da: Instant native-code performance, with no explicit pre-compilation step. CodePy can also help you with the generation of the code, by letting you build a data structure and turning that into C code. CodePy works well with Boost.Python and PyCuda. In conjunction with the latter, it offers an easy way of doing GPU Metaprogramming, a very effective tuning technique for the GPU.