PyKidos, Teach Your Kid Python In The Browser
PyKidos is a minimal web application I built in a few days to teach my 8-year-old basic programming concepts using Python.
PyKidos is a minimal web application I built in a few days to teach my 8-year-old basic programming concepts using Python.
I'm delighted to present the book I've been working on for the past few years with several colleagues, which is just being published by Cambridge University Press : Shaken Baby Syndrome: Investigating the Abusive Head Trauma Controversy .
Chris Brook and I have just published an article in Forensic Science International: Synergy presenting the results of a survey of parents and caretakers who claim to have been wrongly accused of child abuse after a medical determination of shaken baby syndrome/abusive head trauma (SBS/AHT).
The scientific controversy over the so-called Shaken Baby Syndrome (SBS) (also known, with a few key differences indicated later, as Abusive Head Trauma, AHT ) is a rich and highly complex multifaceted topic. It involves a wide range of academic disciplines: pediatrics, neonatology, obstetrics, neurology, neuropathology, radiology, hematology, evidence-based medicine, biomechanics, statistics,…
I'm excited to present the project I've been working on at the International Brain Laboratory (IBL) . Datoviz is an early-stage open-source high-performance GPU scientific visualization library based on Vulkan , the Khronos cross-platform low-level graphics API, which is 5 years old today! Datoviz aims at providing a unified, language-agnostic platform for interactive visualization in both 2D and…
I have joined the International Brain Laboratory , a virtual laboratory gathering 21 neuroscience teams around the world. Half of the researchers are experimentalists, collecting data in the same experimental conditions, while the other half are theoreticians, analyzing the data. I'm working on the data architecture group allowing experimenters to organize and store their data, and theoreticians…
I'm pleased to announce the release of the IPython Cookbook, Second Edition , more than three years after the first edition. All 100+ recipes have been updated to the latest versions of Python, IPython, Jupyter, and all of the scientific packages. There are a few new recipes introducing recent libraries such as Dask , Altair , and JupyterLab . As usual, all of the code is available on GitHub as…
We've just published Fully integrated silicon probes for high-density recording of neural activity in Nature. The paper (signed by 35 authors) describes the results of a large research project involving the Allen Institute, University College London, HHMI's Janelia Research Campus, and imec, a nanoelectronics research center in Belgium.
Update : the position has been filled. We're looking for an outstanding Python programmer to help us develop data sharing platforms and software for neuroscience data. This is a large collaboration between ~50 neuroscientists from 20 labs around the world.
We published a new paper in Nature Neuroscience about our spike sorting method. This paper is accompanied by an open source software suite named klusta , which includes automatic and manual programs for extracting spikes from large multielectrode recordings.
I describe how I set up my static blog/website in Python with Pelican , pandoc , Docker , Dockerhub , GitHub pages , and Travis CI .
This is a follow-up on my post Moving away from HDF5 (see also Konrad Hinsen's post , and discussions on Twitter and Hacker News ). Here are some further thoughts, in no particular order.
Update [2016-01-30]: I wrote a follow-up here In the research lab where I work, we've been developing a data processing pipeline for several years. This includes not only a program but also a new file format based on HDF5 for a specific type of data. While the choice of HDF5 was looking compelling on paper, we found many issues with it. Recently, despite the high costs, we decided to abandon this…
I didn't write a lot lately: only 2 posts in 2015! I'll try to do better this year: more and shorter posts about programming, technology, and science. There's no shortage of topics to discuss. Happy New Year.
There are many data visualization tools out there. Yet, I believe we're still lacking a robust, scalable, and cross-platform visualization toolkit that can handle today's massive datasets. Most existing tools target simple plots with a few hundreds or thousands of points: bar plots, scatter plots, histograms and the like. Typically, these figures represent aggregated statistical quantities. Maps…
It's been a while since I wanted to try to bring some of NumPy to the browser. I've already discussed the motivations for this in a previous post last year . As far as I'm concerned, the main use case would be to enable interactive data visualization in offline notebooks (including nbviewer), which often require client-based array operations for interactivity. In this post, I'll describe a…
In this post series, I'm describing the big data visualization platform I'm currently developing with WebGL. I'll detail in this second post the VisPy library which is the basis of the project.
My latest book was released a few weeks ago. This project has been one of the most challenging projects I've ever done, and not necessarily for the reasons I would have originally thought. Here is a little story of those fifteen months writing the IPython cookbook.
In this post series, I'll talk about the big data visualization platform I'm currently developing with WebGL. I'll give in this first post the main motivations for this project. The next posts will contain the technical details.
My new book, IPython Interactive Computing and Visualization Cookbook , has just been released! A sequel to my previous beginner-level book on Python for data analysis , this new 500-page book is a complete advanced-level guide to Python for data science . The 100+ recipes cover not only interactive and high-performance computing topics, but also data science methods in statistics, data mining,…
I finally took the time to update my Wordpress blog and make it static. Having a PHP-based website in 2014 felt archaic. The new site is generated with Pelican , a great Python-based static blog generator.
I started to learn Python in 2008. The same year, Python 3 was released. Yet, almost six years later, I'm still using Python 2. Like the vast majority of scientific Python programmers, apparently . But now is the time for me to move to Python 3. You should too. Here's why.
I've participated at an Open Data hackathon organized by the French Minister of the Interior and several open data institutions. Together with Rue89 journalists and an OCTO Web developer, we created in two days an interactive map of all 62,000 road accidents in France in 2012 . We used a very rich dataset released by the Minister of the Interior and Etalab.
There is currently a manifest trend in the scientific Python ecosystem: Python is slowly but surely coming to the browser. It's a real challenge, but we're getting there. In this post, I want to give an overview of where we are, and where we're headed.
We had our first official Vispy Code Camp this week. I and the other core developers of Vispy were kindly invited by the European Synchrotron Radiation Facility . We presented our young library to software engineers from the ESRF and other European synchrotron facilities. It was also the occasion for us to make a gentle introduction to modern OpenGL, as many attendees didn't have experience in…
tl;dr: Although not perfect, Python is today one of the best platforms for scientific computing. It's getting even better everyday thanks to the amazing work of a vibrant and growing community. I reviewed Python's strengths in a previous post . Here, I cover the more sensitive issue of its weaknesses.
Why use Python for scientific computing? This is a legitimate question. For us, regular Python users, using Python is so natural that we sometimes forget that this choice is not obvious for everyone. Matlab is very widely used in some communities (e.g. experimental biologists) and choosing a different platform requires extensive proselytism. We need to find the right words to convince people that…
When one starts using the IPython notebook seriously, there is often the need to open a server in the current directory to open or create a new notebook. Whereas this is straightforward on Unix systems (e.g. ipython notebook --pylab inline ) since users typically use mainly the command-line, it is a bit more cumbersome from the graphical Windows Explorer. One needs to open a console, go in the…
I am developing a scientific application in Python with a graphical user interface in Qt . Some end-users use OS X or Linux, but most of them are Windows users who are not familiar with Python or with a command-line interface. It is notoriously difficult to distribute Python applications to end-users who are not programmers, and it's a common criticism that is made against Python.
Vélib' , the public bicycle sharing system in Paris. I've written a short IPython notebook to play with some of the data, and to illustrate how easy it is to use Python for browsing and analyzing public data sets. Here is an image representing the stations in Paris, with the marker size proportional to the number of bike stands in each station, and the color indicating how many available stands…
I'm glad to present my new book, Learning IPython for Interactive Computing and Data Visualization , Packt Publishing. This book is a beginner-level introduction to IPython for interactive Python programming, high-performance numerical computing, and data visualization. It assumes nothing more than familiarity with Python. It targets developers, students, teachers, hobbyists who know Python a bit,…
The Brain Research through Advancing Innovative Neurotechnologies initiative has been officially unveiled on April 2, 2013 by the President Obama . There had been quite excitement and interrogations in the few weeks before as the President had mentioned a large-scale research project about the brain in his State of the Union . Very few details were given before the official announcement, and it…
There have been several interesting discussions recently about the future of visualization in Python. Jake Vanderplas wrote a detailled post about the current state-of-the-art of visualization software in Python . Michael Droettboom , one of the Matplotlib's core developers, consequently wrote about the future challenges Matplotlib will need to tackle . Matplotlib has been designed more than ten…
Ruzzle is becoming a popular game on smartphones and tablets. Inspired by Boggle, it consists in finding as many words as possible in a grid of 4x4 letters. Here I'll show how one can easily generate and resolve grids automatically in Python.
I've been using NumPy for nearly five years, but I'm still learning performance tricks. The reason is that I currently need to deal with very large arrays (hundreds of millions of elements) and the performance of my code started to be disappointing. Then, through extensive line-by-line profiling, I discovered some subtleties that explain why some seemingly harmless lines of code can actually lead…
Here are some tips targeting developers who want to create an open-source project. They reflect my personal opinion and may not be all adapted to every situation.
About a month ago, I announced here the availability of a new experimental high performance visualization package in Python that I'm developing as part of my current research project. It has significantly evolved since then, but it is still experimental. Moreover, the interface is still not ready for a 0.1 release. I also need to do much more tests on various systems and graphics cards. In this…
I've been programming in OpenGL for a few months. Like a lot of programmers, I learnt the language by myself, thanks to various tutorials, books or e-books on the subject. One couldn't say there's a lack of resources on this 20-years old language since it's so widely used throughout the world. Yet, I was surprised to discover a few weeks ago that the vast majority of what I learnt has been…
I'm releasing today the code of a first experimental version of Galry, a high-performance interactive 2D visualization Python package that I'm creating as part of my current research project.
Premature optimization is the root of all evil. Donald Knuth There are two opposite directions a programmer can take when writing a piece of software: coming up with an elegant software design or with an heavily optimized code. A good design leads to better readability and maintenance, often at the expense of pure performance. Conversely, highly optimized code tends to be more difficult to read,…
PyQt and PySide are two independent Python libraries allowing access to the Qt framework . PyQt is maintained by the British firm Riverbank Computing , whereas PySide is developed by Qt developers from Nokia . PySide was created by Nokia in 2009 after they "failed to reach an agreement with PyQt developers to change its licensing terms to include LGPL as an alternative license" ( quoting Wikipedia…
In the last two posts, I've shown how to use OpenCL for GPGPU , and OpenGL for graphics rendering , with Python. Here I'll show how both OpenCL and OpenGL can be used at the same time with Python. It's called OpenCL-OpenGL interoperability. What is it about?
UPDATE : you may be interested in the Vispy library, which provides easier and more Pythonic access to OpenGL. OpenGL is a widely used open and cross-platform library for real-time 3D graphics, developed more than twenty years ago. It provides a low-level API that allows the developer to access the graphics hardware in an uniform way. It is the platform of choice when developing complex 2D or 3D…
I've been using CUDA and PyCUDA as GPGPU platforms for a few years now. They enable access to the incredible computational power of graphics cards through a simple C-like language. A recent Nvidia graphics card is nevertheless required in order to execute CUDA code. Some computers may not include a Nvidia GPU, but rather an AMD/ATI card or even an integrated graphics processor. Those computers…
Everyone knows that our world is three-dimensional. It seems indeed obvious that there are three independent spatial directions, no less, no more. But can we really be sure? After all, everything we know about our world comes from our senses and from what our brains interprete. Does the fact that we see in 3D really proves that the world is in 3D? Can we have a mathematical proof, based on…
Je poursuis mon analyse des prénoms des candidats au bac cette année (voir billet précédent ) en m'intéressant cette fois à la fréquence des différents prénoms portés par les candidats, indépendamment de leurs résultats. Les 346 581 candidats portent 18 473 prénoms différents. Le prénom le plus porté est Camille avec 4 848 candidats. Voici les quelques prénoms les plus utilisés, représentatifs des…
Le sociologue Baptiste Coulmont, auteur de Sociologie des prénoms , s'est intéressé aux corrélations entre le prénom des candidats au baccalauréat 2012 et leur réussite à cet examen ( voir ici pour l'étude originale sur le blog de l'auteur ). Ce travail a été largement relayé par les médias , car les résultats sont particulièrement intéressants. Il s'avère que certains prénoms réussissent mieux…
An updated version of this post can be found in the IPython Cookbook .
I've been looking for a good and free Python IDE for Windows for a long time. I first used Eclipse and Pydev , but Eclipse is a bit of a "usine à gaz" . I tried Spyder but it crashed too often and it was not flexible enough. I ended up using Notepad++ , a really fast and powerful text editor, with the great command-line interpreter IPython . Notepad++ is extremely light to use, opens within a…