Enthought Python Distribution for Mac: First Impressions

Last week I reported that Enthought, and Austin, TX based scientific computing company, had released the first beta of their Python distribution for the Mac. Well, they are on to Beta 2 now, so I thought I would give my impressions of the “batteries-included” Python suite after having explored it for a few hours. The bottom line? For many scientists using OSX as their preferred computing platform, the Enthought Python Distribution (EPD) may represent the long-awaited replacement for Matlab, which has always been a bit clunky on the Mac (not to mention proprietary and expensive).

EPD in Finder

Read the rest of this entry »

July 24th, 2008, posted by chris

Enthought Python Distribution for OSX in Beta Testing

A recent post on the Enthought Blog announces the availability of the Enthought Python Distribution (EPD) for OSX. Previously only available on Windows and RedHat 3, the EPD is a “batteries-included” distribution of Python, geared toward scientific applications. This distro includes the following essentials:

  • Python - Core Python
  • NumPy - Multidimensional arrays and fast numerics for Python
  • SciPy - Scientific Library for Python
  • Enthought Tool Suite (ETS) - A suite of tools including: Traits - Manifest typing, validation, visualization, delegation, etc. Mayavi - 3D interactive data exploration environment. Chaco - Advanced 2D plotting toolkit for interactive 2D visualization. Kiva - 2D drawing library in the spirit of DisplayPDF. Enable - Object-based canvas for interacting with 2D components and widgets.
  • Matplotlib - 2D plotting library
  • wxPython - Cross-platform windowing and widget library.
  • Visualization Toolkit (VTK) - 3D visualization framework

These sorts of bundles are very attractive for scientists that would rather not invest the time in compiling each of these packages from scratch, particularly in the case of the visualisation packages, which can be rather fussy to build.

So, does this render my Scipy Superpack redundant? When I get back to NZ from my current road trip, I will give it a try, and provide a full review.

July 3rd, 2008, posted by chris

Getting Things Done with VoodooPad

This was a popular post on my last site, so I thought I would replicate it here at Macinscience. I’ve been a relatively recent adherent of David Allen’s Getting Things Done (GTD) productivity system. Implemented properly, I believe it can enhance nearly everyone’s ability to meet deadlines, achieve multiple disparate professional objectives and, well — simply get things done. My personal implementation of GTD has undergone several iterations over the months, which has included the serial adoption of multiple software tools to make the system go: Kinkless GTD, Backpack, Stikkit — you name it, I’ve tried it.

In the course of all this change, I fell into one of the notorious traps of GTD: I was spending more time optimizing my system for getting things done than I was actually doing the things I was supposed to be getting done. From what I’ve read, this is a more common problem than you might expect. So, it was time to simplify, to take the pieces of the system that are relevant to my productivity issues and run with them, leaving behind the finer points that have gotten me bogged down. All I really needed was a tool to aggregate all of the tasks, errands and actions from all my various projects, and aggregate them in one place, organized according to context. For this, I turned to VoodooPad.

VP window

VoodooPad is touted as a personal wiki, but is really much more. Its byline is “you put your brain in it”, which is really the essence of GTD — move things out of your head, where they are liable to get lost, and into a system, where they can be organized and acted upon. An important feature of VoodooPad is that it can be scripted, using any number of freely-available scripting languages on the Macintosh, including Lua, Python and AppleScript. Rather than gin something up from scratch (which I rarely do), I adapted an existing Lua script provided by Gus Mueller, the author of VoodooPad. This script searches the current document for lines tagged with contexts, then aggregates them on a single page:

VP GTD actions

The GTD script relies on having a page called Contexts somewhere in the document. This page contains all of the relevant contexts to provide the basis for organizing your actions across all projects. Your contexts should include all circumstances that are conducive for getting certain tasks done: sitting at a computer, in the car running errands, reading in your office, etc. These contexts are canonically prepended with @; though this is not necessary, it avoids confusion.

VP GTD contexts

Then the script looks for lines tagged with any of these contexts, but importantly, ignoring lines that are struck out (i.e. completed). Lines can be struck out and moved to the bottom of the page upon completion using the Strike Out and Move to Bottom of Page script in the Plugin menu, which I have linked to a shift-apple-D key combination.

Deleted items

Recently, I have added additional functionality to the script: (1) it now lists actions that are either overdue, due today or due tomorrow based on dated due keyword, (2) supports reminders based on dated remind keyword and (3) it creates a “Project” page that lists actions sorted by project. Based on some feedback from users on the VoodooPad forum, I also added the ability to compile actions tagged with today’s or tomorrow’s date (yyyy.mm.dd format), and place them at the top of the Actions page. To run the script, simply select it from the Scripts menu, or associate it with a hotkey (I use shift-cmd-a).

There you have it. Feel free to grab a copy of the script and give it a try (it belongs in ~/Library/Application Support/VoodooPad/Script Plugins). The full version of VoodooPad isn’t free, but is a very reasonable $30. Given that it has become my most important ogranizational tool, I think that’s a small price to pay.

May 20th, 2008, posted by chris

OmniGraffle + LaTeX = Victory!

OmniGraffle equation script

One of the very few shortcomings of OmniGroup’s peerless diagramming application, OmniGraffle is the lack of support for mathematical symbols and equations. You are essentially limited to the math symbols available in the character palette, or to importing equations generated by another application. I have created a simple Automator script that typesets LaTeX equations on the fly, using the LaTeX distribution installed on your system, and places the resulting graphic in OmniGraffle. To facilitate editing or re-generating the equation, the script also populates the notes field of the equation graphic with the original LeTeX code. The screencast below shows how its done.

Be sure to put the file in the OmniGraffle scripts folder (select the Open Scripts Folder menu item from the Scripts menu, then select the OmniGraffle Scripts Folder submenu item). The script should certainly work if you have MacTex installed, and should work with other flavours of LaTeX, so long as pdflatex is in either /usr/texbin or /usr/local/bin. The only other dependency is the Python Automator Action, as the script is heavily reliant on Python.

Download the script

Technorati Profile

April 24th, 2008, posted by chris

Installing Python .eggs With Automator

running the script

I’ve been on an Automator programming kick lately. This time, its a script to install selected .egg Python packages with EasyInstall from the Finder. You simply select the package you wish to install in the Finder, and run the EasyInstall Python Package workflow from the scripts menu (the installer requires administrator privileges, of course). Successfully installed packages are labelled green, while failed installations are flagged red.

As always, the script should be unzipped into the ~/Library/Scripts folder in order to appear in the scripts menu.

successful install

Download EasyInstall Python Package script

April 23rd, 2008, posted by chris