Monday, 31 January 2011

Don't keep your cool - share it

At the PMR hackfest I met a number of people who were doing cool stuff...but I hadn't heard. Usually these things get posted somewhere and then, if sufficiently cool, they get shared around the web on FriendFeed, blogs, Twitter, etc. and everyone (interested!) finds out about them. But it has to be put on the web somehow in the first place...

Here's why you should tell people about cool stuff you're doing:
  • People want to hear about it
  • It's nice to hear that someone finds your stuff cool
  • It might be useful to someone
  • It's good publicity for you
  • Someone else might take your idea and do something even cooler

There are lots of ways of sharing this type of information. One of the easiest is a blog. If you think of a blog as essentially a cheap way to generate web pages you can see what I'm talking about. It takes about 10 seconds to set up a blog (at for example) so there's no excuse.

As an example of something cool I found out about - about a year ago, Dan Hagon et al integrated TwirlyMol into Google Wave so that twirlying around was propagated by Wave action (the video explains all):

Thursday, 27 January 2011

Spellchecking a Sphinx documentation project

These are notes to myself about how to set up a 'virtual environment' to spellcheck a Sphinx documentation project. If you haven't seen virtualenv before, it's really great for managing separate environments of Python packages:
C:\Python26\Scripts\easy_install virtualenv
C:\Python26\Scripts\virtualenv docspell --distribute
cd docspell
python Scripts\ Sphinx sphinxcontrib-spelling pyenchant
hg clone docs
cd docs
REM Add "sphinxcontrib.spelling" to the list of extensions in
sphinx-build -b spelling . _build > mispelling.txt

In a feeble effort to add some chemistry to this post, here is a meta joke about cheminformatics (scroll right for the answer):
Q. What does a cheminformatician do if you tell him a bad joke?                                                                  A. First he SMARTS, then he SMILES.
( contribution to the International Year of Chemistry :-)

Tuesday, 18 January 2011

PMR Hackfest - Kinect the molecules

Two days + some smart hackers + two Kinects + one idiot waving his hands = ...

Credits: Ben O'Steen was our Kinect guru, and Dan Hagon and Sam Adams hacked support into Jmol with some pointers from Jmol devs.

Myself and Jens Thomas were working on Avogadro support but didn't make it happen in the timeframe. Marcus Hanwell is on the case though so hopefully it'll be coming soon to a computer near you.

Thanks again to Peter for the invite.

Blue Obelisk Lightning Talk and Poster at PMR Symposium

I've just come back from participating in the Visions of a Semantic Molecular Future symposium at Cambridge in honour of Peter Murray-Rust. I think I will have more to say on this later, but for the moment here's a copy of the lightning talk and the poster I presented on the Blue Obelisk.

As background, the Blue Obelisk group allows people with an interest in Open Standards, Open Source and Open Data in chemistry to collaborate, coordinate and have a few beers from time to time. Membership is very informal - just subscribe to the mailing list by following the links over at If you're interested in changing the world and all that kind of thing, you might want to join up.

My lightning talk focused on Blue Obelisk projects related to interoperability. In the end, we were restricted to only 4 slides so the actual talk I presented was missing the CML slide and final slide.

Wednesday, 5 January 2011

Debugging vectors in 3D

Ever need to figure out the relationship between various 3D vectors? One way to do this is to draw the vectors using VPython.

When you run the following code using VPython's VIdle on Windows, an interactive window pops up where you can rotate the scene by holding down the right mouse button:
from visual import *

floor = box(pos=(0,0,0), length=4, width=4,
xaxis = arrow(pos=(0,0,0), axis=(1,0,0),
yaxis = arrow(pos=(0,0,0), axis=(0,1,0),
Does anyone know a different way to draw and interact with 3D vectors?