Introducing Project January

A new project proposal from the Eclipse Science Working Group (SWG) goes live. Project January aims to provide a set of standardized Java-based numerical data structures for scientific computing. Scientific tools are rapidly scaling to meet the increasing demands of the user both in sheer volumes of data as well as complexity. Back at a site meeting in Trondheim, the SWG members agreed a generic dataset that would promote tool integration was one of the key priorities of the group. In the short-term, this looks a lot like “numpy for Java”. That in itself is a pretty big deal, but the future plans are equally exciting, check out the proposal here.

As for the name, project January works on many levels. Besides being the month the project proposal goes live, it is also an acronym: JAva NUmerical ARraYs :-). The month January is named after the Roman god Janus, god of new beginnings and doorways. Project January is a foundational building block of scientific computing and certainly a doorway to greater collaboration and tool integration within the Eclipse community and beyond.

Tremendous Tech in Trondheim

Trondheim is tiny – at least to someone who lives in the shadow of London. So it was eye-opening for me, over four short days, to immerse myself in the fully formed tech scene of a region with a population 2% of that of London’s.

Ocean Space Research at Marintek

Ocean Space – I’d never heard the term before so it took me a moment to understand, that as opposed to outer space, this refers to the vast unexplored regions below the sea-line which we know less about than the surface of the moon. This is the heart of what Marintek do, and they were the hosts for the science working group meeting I was there for, but more about that later. The work done at Marintek is fascinating, but I will limit it to my 3 highlights:

  • Ocean labs and  towing tanks are used for simulating conditions at sea, for example, oil rigs in the ocean. Yes the tanks are bigger than swimming pools. Yes they could generate all sorts of waves. No we couldn’t swim in them (or take selfies for that matter).
  • Floating wind turbines –  I heard about them first here – harnessing wind power in the deep sea, amazing!
  • Cavitation tunnels – first the science lesson: air bubbles under pressure actually boil at low temperatures, causing implosions aka cavitation – how great is that? So great, I’m linking to this video again so you don’t miss it.   Well, actually it’s not so great for badly designed propellers. Luckily this can all be tested for in a cavitation tunnel.

The icing on the cake for the visit was hearing about the plans for a bigger and better ocean space centre,  opening in 2020 (assuming the politics all works out as planned). Who knows what else the great depths have to offer mankind?

Continue reading “Tremendous Tech in Trondheim”

Autocomplete Java In Python using Py4J

Py4J provides a way to access Java objects from a Python interpreter. It can now be used to autocomplete Java objects from an interactive environment like PyDev, IPython or IPython Notebook.

DAWN uses Py4J as one of the technologies that provides integration of Java and Python for science. A great new feature of DAWN is the ability to record macros for scripting of plotting operations. Previously, objects in Java could not be auto-completed in the console even though they were accessible using Py4J.  We worked on extending Py4J (thanks to funding from DAWN & Diamond Light Source) to enable that feature and support the following:

  • Autocompletion of Java method and field names of class instances
  • Auto-generated pop-up help,  based on signatures, of Java methods

The changes were recently reviewed and we are happy to report that they are now part of Py4J and available for anyone to use to get autocompletion of Java from Python and make life easier for their users.

 

 

 

 

 

Integrating Python For High Throughput Science

Eclipse has always been a platform that unites different technology and makes it possible for developers to use the tools of their trade such as language editors, debuggers, profilers, version control, all in one environment. Until relatively recently scientists and researchers were at the mercy of fragmented suites of tools or closed-source workbenches. Actually many still are. But now with the increased adoption of Eclipse in the science sector, they too can look forward to the huge benefits of tool integration and interoperability as well as  the resulting speed-up in productivity.

When it comes to tools-of-the-trade for scientists, Python is high on the list. This is in large part thanks to its fast, powerful libraries such as numpy and scipy. Also the dynamic and easy-to-use nature of the language lends itself well to the exploring necessary for experimental work. The accessibility of learning resources also contributes to Python being the language of choice for the scientist embracing programming.

So how do you go about providing a tight integration of Python in Eclipse; one that allows a user to seamlessly move data around and use it both interactively and within views? Continue reading “Integrating Python For High Throughput Science”

Why Python is not the language for science

I learnt a lot when I attended my very first EuroSciPy conference. Not all of it was practical. For instance, did you know Python is being used to come up with new breeds of chicken? So from animal breeding to cognitive neuroscience to astrophysics, EuroSciPy was indeed the place to be to talk with folks using Python for various forms of science.

Prior to the conference my impression was that science is all about Python, thanks in large part to the ease-of-use of the language and the excellent numpy and scipy libraries which are so widely used for manipulating and processing data. So I guess I was pretty surprised that my biggest takeaway from the Python conference were two other languages.

Continue reading “Why Python is not the language for science”