As the new tutorial chair for the next Euroscipy conference, I was thinking this January about the difficult choice of possible topics for advanced tutorials. Euroscipy is the annual European conference on Scientific Python; it is organized with two days of tutorials and two days of conference (keynotes and contributed talks), with attendees from academia, industry and start-ups.

While tutorials of the introduction track always covers a core of packages and skills that are essential to beginners, advanced users have enjoyed quite a large variety of topics during the advanced tutorial track of the last conference editions. Attendees have various backgrounds and expectations, from getting bleeding-edge news about the latest cool packages to improving their numerical skills, learning about coding best practices, or simply using core packages in a more efficient and advanced way. How to find the right balance between topics answering these different needs? A friend then suggested: hey, why not ask the attendees themselves what they would like to learn during tutorials?

I quickly set up a list of potential topics, wrote a simple form, and called for opinions on Twitter two months ago. I was lucky that this message was retweeted enough, and that people seem to care about this topic: the form got completed 71 times, which represents about half a typical audience for the advanced tutorials of Euroscipy. Quite a good score therefore!

The results of the poll (which is now closed) can be seen here. Note that some topics were not included in the list, since they had been presented the year before (like my favorite subject scikit-image).

Since several outcomes of the poll were quite counter-intuitive to me, I'm really glad I got so much feedback from an audience that I hope is quite diverse -- of course there must be some bias due to the use of Twitter for communication, but I still hope that the poll is a good proxy for what people would like to see.

A few lessons from this poll

  • advanced tutorials on core packages or skills, such as advanced NumPy, Python, and scientific plotting, all score very high.

  • software development methods (how to turn your bunch of scripts into an efficient and reliable package that you can share with others) also look quite popular, as shown by the high scores of Testing, Packaging and Parallel computing.

  • machine-learning-related topics, such as scikit-learn or neural nets/deep learning, were popular as well.

  • version control did not seem a priority to poll respondents -- let's hope it means that most scientists now master version control (although this would somewhat contradict my experience!).

  • unsurprisingly, topics that are slightly more specialized, such as natural language processing or linear algebra, were not as popular as less specialized subjects. I might pick one or two of these topics that are of high interest to a fraction of the audience, to beat the tyranny of the majority (of course, a poll is meant to obtain what the majority thinks!).

So, what's next? Now I will be looking for speakers for the most popular topics revealed by the poll, plus a couple of others for which I'll claim a wild card privilege as tutorial chair :-). After looking at the poll results, if you feel like giving a tutorial at Euroscipy 2016 (Erlangen, Germany, August 23-27), please contact me, preferably by e-mail (firtsname.lastname@nsup.org). There should also be a more official call for talks and tutorials on the Euroscipy website in a couple of days/weeks.

If you feel like commenting on the results of the opinion poll, please leave a comment on this blog post. I would like to finish with a big thank you to all the people who took the time to complete the opinion poll: it really helped!


Tools and tips for documenting scientific Python projects

Tue 22 December 2015 by Emmanuelle Gouillart

A colleague recently asked me for tips for the documentation of his new in-house Python project. Dozens of webpages explain why and how to write documentation, including for Python packages. Nevertheless, scientific projects have some specificities, so I thought it could be worth sharing here some points that we discussed together. Don't think that these tips only apply to "big projects": as long as you expect other people than yourself to use the code (or to develop it), good documentation can be a game-changer no matter the scale of the project.

A first and counter-intuitive point is that code matters as much as "real documentation". A clear, concise and well-thought API will make your users love your project much more that pages of explanations attempting to make up for a cluttered or clumsy API. As for developers, short functions, or variable names used consistently over the package, are more efficient …

read more

What is your typical image processing usecase?

Wed 26 August 2015 by Emmanuelle Gouillart

Image processing is used for a variety of applications, from the segmentation of organs in medical imaging to the detection of objects in astrophysics. At least, that's what we say to introduce the applications of image processing during presentations on scikit-image, such as today's tutorial at Euroscipy 2015. For such tutorials, we select applications that we think are typical of broad interest, such as the segmentation of objects. But let's face it, it is all too easy to mix up what is typical and of broad /generalinterest, and what is the kind of problems that ones encounters in his/her own work.

Therefore, I would love to hear more about typical problems that people wish to solve using image processing. If you're using image processing, please leave a comment on this post, including:

  • a few words about the field and the application
  • a link to a typical image, if possible …
read more

A tutorial on segmentation

Tue 14 July 2015 by Emmanuelle Gouillart

Segmentation of low-contrast touching objects

This tutorial explains how to segment an image composed of similar-looking objects connected by low-contrast boundaries, using scikit-image as well as other modules of the Scientific Python stack.

I started working on this example when a colleague told me that his team had trouble with the segmentation. I first thought that obtaining a good segmentation would be straightforward, since the eye detects very well structures such as the grains of interest here. It turned out that I had been way too optimistic, since the low contrast between edges and grains prohibited using simple methods, such as edge detection with Canny filter.

If you have other ideas on how to perform a good segmentation in a reasonable time, please share your thoughts, for example on Twitter (@EGouillart).

If you're just getting started with image processing, you're very welcome to peruse through this tutorial, but it might not be the best place to start learning about image segmentation. Indeed, basic concepts of image processing are not explained in details. The example gallery read more

Why you (and your colleagues) should go to Euroscipy

Fri 03 July 2015 by Emmanuelle Gouillart

Early-bird registration for the Euroscipy conference ends this Tuesday (July 7th): did you register already? The annual European conference on Scientific Python will take place in Cambridge UK, from August 26 to 29. Euroscipy 2015 is the 8th edition of the conference, with previous editions taking place in Leipzig, Paris and Brussels.

Euroscipy includes two days of tutorials (August 26-27), which are incredibly good value: for 50 or 100 GBP (academic/student or regular price), you will take part in hands-on tutorials given by teachers with a proficient knowledge of the Scientific Python ecosystem. Tutorial speakers are often developers of the main scientific python packages on top of being seasoned users of the ecosystem. They give these tutorials for free, because they believe that Euroscipy is an efficient way to train a large number of people in one event. In comparison, companies rightly charge several thousands of euros for multi-day …

read more