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”

Is Your Open Source Community Still Telling Newbies to RTFM?

Recently, I was shocked to see a newbie being told to RTFM in a forum for an open source community I have been part of for years. It seemed so ludicrous at first I thought it must be a parody.  My disbelief was akin to seeing a roof being built with asbestos “Are we seriously still doing that?”.

Ok, ok, I’ll admit in the very early part of my career, I would have condoned replying to someone in a forum in that way. After all we were busy programmers, under pressure to get things done, why should we waste our time on users who couldn’t even be bothered to try to help themselves? It was a quick way to set them straight.

Knowing this was the culture, it would take me ages crafting a question to an open source community, spelling out the manuals I’d already read and things I’d googled before asking for help. Often I wouldn’t even bother posting at all. I could easily handle being ignored, but not the subconscious fear of an RTFM. Over the years I’ve come to appreciate how really toxic such responses are for open source communities and their growth.

It was oh so arrogant and often too easily done, but I’m glad I now know better. Asking someone to RTFM is never justified and always unprofessional. I was glad to see that in this specific case, another member of the community jumped in to help the newbie and a senior member of the community put out a request to keep things civil.

Like me, the communities are growing up too. One of the best things to happen in the Eclipse community has been establishing a code of conduct, not just for conferences but for daily dealings of the community. Yes, as I found out, it turns out we really do need one after all – laid out in writing for all to share as the common culture. The best bit? Now if you see someone exhibit this behaviour, you can take them quietly aside and ask them to Read The, erm, Manual.

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”

What’s Between You and the Hardware?

This slide is from my EclipseCon Europe talk with Gordon Williams on Espruino.

It aims to show at a high-level what sits between our user software and the hardware itself and why it matters.

Arduino – an Arduino sketch gets compiled directly to object code and this runs directly on the hardware, i.e ‘bare metal’. This is great for directly accessing hardware but bare metal can be a pain, for instance, when it comes to scheduling when different things should run – then you’re on your own.

Raspberry Pi – is a powerful board that runs the Linux operating system, and an interpreter for Python on top of that. While you can do a lot with a Pi,and they are often used for running servers, sometimes it can be overkill for smaller automated tasks, and then you pay the price in power or battery life.

Espruino – Espruino aims to sit in the gap between the two. Its custom javascript interpreter gives some powerful functionality without having to give up tight control over the hardware. In particular, the interpreter includes scheduler methods which means it knows exactly when to go to sleep and for how long giving huge gains in power saving and therefore battery life.