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.
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.
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
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.