This year’s Eurorust conference was organised in Paris at the Cité des Sciences, so it was a great opportunity to find out what’s new in rust ecosystem and also meet some of the people behind the project. Here is my subjective take on the conference highlights.
Continue reading “My subjective wrap-up of Eurorust 2025”Rust for scientific computing
I am much impressed by Python’s expressiveness, ease of programming and development speed. However, as a dynamically typed language pure Python suffers from poor performance, which heavily impacts the numerical algorithms. Therefore, many of the computational tasks are often dispatched to binary Python extensions implemented in C, C++ or other languages. Indeed, the ease of interfacing with external languages is another of Python’s super powers, which also led to its reputation as the glue language 1.
Recently, I have been experimenting with developing Python extensions in Rust, using the amazing pyo32 library (“crate” in Rust world). Although the learning curve is steep at times (hello borrow checker and lifetime annotations), the official Rust book3 does great job in explaining complex topics.
Continue reading “Rust for scientific computing”Through the needle’s eye: Data science in production
Data science is often associated with fast and dirty data analysis + machine learning solutions that do not follow the software engineering practices. Many regard data science more like a Swiss army tool that combines incompatible data and software components in impromptu ways.
Continue reading “Through the needle’s eye: Data science in production”Streaming data with Amazon Kinesis
I wrote this blog post when working at Sqreen, a startup that develops Software-as-a-service (SaaS) solutions to protect web applications from cyber attacks. This post summarizes the streaming technology used to analyse the attacks in real time.
Continue reading “Streaming data with Amazon Kinesis”Giving presentations with IPython notebook
IPython notebook became a very popular tool for programming short scripts in Python, interactive computing, sharing code, teaching or even demonstrations. Its advantage is the possibility to combine Python code with graphics, HTML, videos or even interactive JavaScript objects in one notebook. With this functionality it may also serve as a great presentation tool.
Continue reading “Giving presentations with IPython notebook”
SfN 2012
From October 11th to 18th, I will be traveling to Society of Neuroscience conference in New Orleans. If you are also there and want to meet, leave me a comment or send an e-mail.
Kiel 2012: Advanced Scientific Programming in Python
I just delivered another talk on data visualization in Python:
All materials including exercises can be found at https://python.g-node.org/wiki/dataviz
6 steps to migrate your scientifc scripts to Python 3
Python 3 has been around for some time (the most recent stable version is Python 3.2), but till now it was not widely adopted by scientific community. One of the reason was that the basic scientific Python libraries such as NumPy and SciPy were not ported to Python 3. Since this is no longer the case, there is no reasons anymore to resist migration to Python (you can find the pros and cons on the Python website)
In this guide I am going to describe some tips that I learnt while trying to make my scripts compatible with Python 3. There is nothing to be afraid of – the procedures are actually quite easy and very rewarding (it is like a glimpse into the future of Python!).
Continue reading “6 steps to migrate your scientifc scripts to Python 3”
SpikeSort 0.12 released!
First official version of SpikeSort was finally released. You can find out more about this spike sorting software from: http://spikesort.org Continue reading “SpikeSort 0.12 released!”
Scientific computing with GAE and PiCloud
Google App Engine (GAE) is a great platform for learning web programming and testing out new ideas. It is free and offers great functionality, such as Channel API (basically Websockets). Deployment is as easy as clicking a button (on a Mac) on running a Python script (on Linux). The best of all is that you can program in Python and offer an easy end-user web interface without time consuming installation, dependencies and nerves. Continue reading “Scientific computing with GAE and PiCloud”
How to run IPython on MacOSX
IPython is a very powerful and convenient Python console (alternative to standard Python interpreter) that makes every day tasks much easier. It also plays well with scientific libraries such as numpy and matplotlib making it the console of choice for almost every scientist. Continue reading “How to run IPython on MacOSX”
Publication-quality figures with matplotlib and svgutils
Matplotlib is a decent Python library for creating publication-quality plots which offers a multitude of different plot types. However, one limitation of matplotlib is that creating complex layouts can be at times complicated. Continue reading “Publication-quality figures with matplotlib and svgutils”
New spike sorting library in Python
Spike sorting is a common pre-processing step in analysis of single or multi-unit responses. The goal of the procedure is to detect the times at which a single cell generated an action potential based on the extracellular recordings of electric potential close to the cell. Continue reading “New spike sorting library in Python”
Generating LaTeX tables from CSV files
I am very committed to the idea of the reproducibility. The way I understand the term is that there should be a close link between the results presented in the paper and the raw data. It happens all too often that some pre-processing step essential for the results presented in the paper is modified slightly during the preparation of the manuscript, but the figures, tables and statistics are not updated accordingly. Continue reading “Generating LaTeX tables from CSV files”
Python Autumn School 2010
Our next school for Advanced Programming in Python will take place in Trento, Italy on October 4th-8th, 2010. Application deadline: August 31st, 2010. Bellow will you find the detailed program:
Day 0 — Software Carpentry & Advanced Python
- Documenting code and using version control
- Object-oriented programming, design patterns, and agile programming
- Exception handling, lambdas, decorators, context managers, metaclasses
Day 1 — Software Carpentry
- Test-driven development, unit testing & Quality Assurance
- Debugging, profiling and benchmarking techniques
- Data serialization: from pickle to databases
Day 2 — Scientific Tools for Python
- Advanced NumPy
- The Quest for Speed (intro): Interfacing to C
- Programming project
Day 3 — The Quest for Speed
- Writing parallel applications in Python
- When parallelization does not help: the starving CPUs problem
- Programming project
Day 4 — Practical Software Development
- Efficient programming in teams
- Programming project
- The Pac-Man Tournament
Advanced Scientific Programming in Python
I have just finished teaching at a summer school on Advanced Scientific Programming in Python.
The school was a remarkable success, which I hope most of the participants can agree with. Lets wait for the survey results.
The school featured among other thing a PacMan competition. More information can be found on the school wiki.
Simple point process models of spike trains
Regarding the stochastic models of neural activity, which are the topic of the lecture and one of our computer classes, I invite you to watch the lecture of Daniel Wojcik (Nencki Insititute for Experimental Biology, Warsaw, Poland). The lecture will be broadcast live on Friday 28th at 16:00 GMT and then archived on the following website: www.spiketrain.org
Enjoy!
Bernstein Stammtisch
Today (Wednesday, October 29th) Berstein Master students, PhD students, Postdocs and other people interested in neuroscience are meeting in Buchhandlung at a Stammtisch. This monthly reunion is a great opportuinity to get to know people related to Bernstein Center and exchange some ideas about neuroscience and other current topics. You are all invited!!
Buchhandlung
Tucholskystr., near the corner Auguststr.
October 29th, starting 19 hrs
I hope to meet you there.
MNS 2008/09
The Model of Neural Systems programming course will start on Monday, October 27th. It will be given by Robert Schmidt and me. The first programming assignments are available on the course webpage. See you all on Monday!
