Category: English

We don’t talk about GIL

GIL is the Global Interprer Lock for python

This video makes some really cool points.

Especially around the 3 minute. You can have a proper laugh 🙂

Interesting article about python parallelization

The first rule is we don’t talk about GIL.
The second rule is we don’t talk about GIL…

Github project support soon?

It seems github will be supporting project accounts soon:

This would be very cool. Right now Neuronvisio is hosted under my account name, something not personal, but project centric make a lot of sense. Especially when you have more than one developer.

On top of this there is this amazing plugin for mercurial, which will make git user very easy if they want to collaborate with those.

Maybe Sumatra is going in this direction, maybe not. Back on this soon.

Sumatra and git support

Sumatra is very cool idea which I felt the need from a long time. Andrew started the development of it and released the version 0.1 few days ago. The idea was great: record all the details about your simulation, storing the parameters, why you have launched it, what was the outcome. Tagging on top for categorization as well.

There was only one problem: Sumatra was not supporting git so I was unable to use it. Therefore, giving the fact was opensource I just baked a series of patches which were integrated in the tool and now sumatra has a git support 🙂

If you want to have a feel about it and want to try with git there is an example repository on github which you can use.

This is the results of the webinterface (sumatra stores everything in the django ORM system) showing the tables of the simulations:

If you click on the single record you can access the details of the simulation:

Using sumatra you will be able to:

  • search your simulations’ results
  • describe the results of the simulation on the simulation record itself, keeping everything very compact and ordered.
  • retrieve all the tiny details when you will need (papers hopefully..)

Storing all this informations is done automatically for you (except the analysis’ results of course), so you can focus more on your science, without worrrying on loosing your results.

Soon I’ll integrate sumatra in Neuronvisio.

P.S.: The patch for git integration (second part) is on its own way and it should be integrated soon in the tree, so you will need to run the bleeding edge and integrate the patch yourself if it’s not yet there (and you can’t wait 🙂 )

Have Fun

Neuronvisio 0.4.4 in the wild

Today I released Neuronvisio 0.4.4 .

This release fix quite a lot of the doc and change the API to load the sqlite database. There are a lot of changes under the hood.

There is a lot of work going on on the plotting, and if you are interested to have a modularity (so you can plot anykind of variables and integrate is with Neuronvisio just let me know.

Have a look at the plot_vector() method in the Control class

I think it will be possible to refactor the code, creating a Plotter obj where the x and y are for the plot and how to create the legend. Then just pass this object to the plot routine, which will have no idea what is plotting, but is able to extract this info from the plot obj. This need a bit of thinking and use cases
What’s next:

There is an ongoing process to integrate Neuronvisio with sumatra. Sumatra is very handy software however it supports only hg and subversion for now, while I’m really based on git. For this reason there is a patch sent to Andrew to start to work on this. Hopefully Sumatra will support git soon and then I will start to see how to integrate that on Neuronvisio and TimeScale.
One problem I need to solve is how to save the geomtery of the model when I save the results of a simulation.

Using the NEURON ability to export the model in NeuroML and to reload it would be the way to go, but more investigation on this are required.

In the mean time..

.. enjoy Neuronvisio

Making patch with mercurial

Just mirroring the solution I found here to find it later on.

How to make patch with git and with mercurial

git log
git log HEAD^ -p
git format-patch HEAD^
git send-email 001-patchname.patch
git send-email HEAD^ # alternatively

Doing the same w/ HG:

hg log # note this isn't paginated, a feature git has over hg imo
hg log -r tip -p
hg email -r tip

Who owns science?

Who owns science

Patents, research driven by the market, blue sky research and other issues will be touched at the EMBL-EBI symposium this incoming Friday (19th).

I think the debate will be very interesting and the level of speakers is very high. Will be streamed on ustream so you can follow from home if you’re not in Cambridge.

How to delete a submodule from a git repo

I found the answer here:

Let’s say that you have a submodule in your project called ’submodule1? and it’s in the following path: ‘vendors/submodule1?. In git there are 3 traces of this this submodule:
1) .gitmodules
2) .git/config
3) the submodule entry in the index/commit itself.

To remove the first two, is really simple, you just edit those files and remove the lines that specify the submdoule. In order to delete the third and last trace of the submodule in git, you need to type the following command:
git rm --cached path/to/submodule
Note: Do not put a trailing slash at the end of path. If you put a trailing slash at the end of the command, it will fail.

In the example above, we would type (do not include trailing slash after submodule1):
git rm --cached vendors/submodule1

I’ll put here, so I hope to find it easily later on.

Panton Principle launched

Scientific data must be open. Everyone should be able to check them, reuse them. More over they should be always available in a easy way.

That’s why the panthon principle have been launched:

Science is based on building on, reusing and openly criticising the published body of scientific knowledge.

For science to effectively function, and for society to reap the full benefits from scientific endeavours, it is crucial that science data be made open.

Data is not code and data is not artistic work. This means all the classic licence that we love and we always use like the GNU Public Licence or the Creative Commons (except CCZero) are not good enough for data. Data does not belong to anybody in particular but belongs to everybody. That’s why it’s really important to use the right license. A list is available here .

Ask if isopendata.