Today, Cython celebrates its 20th anniversary! On April 4th, 2002, Greg Ewing published the first release of Pyrex 0.1 . Already at the time, it was invented and designed as a compiler that extended the Python language with C data types to build extension modules for CPython. A design that survived the last 20 years, and that made Pyrex , and then Cython , a major corner stone of the Python data…
In Celle finden Demos gegen Schwurbelnde statt. Das ist nichts Außergewöhnliches. In den meisten deutschen Städten gibt es inzwischen Demos von Schwurbler:innen, und auch Demos gegen diese Demos, um den Lügen, Halbwahrheiten und gesellschaftlichen Absonderungen Fakten, Diskurs und gesellschaftliche Solidarität entgegenzusetzen. Auf einer der ersten Demonstrationen gab es ein offenes Mikrofon.…
Die Ergebnisse der Kommunalwahl im Landkreis Celle wurden veröffentlicht, allerdings wohl nur als fertige Webauswertung. Für alle, die die kompletten Daten haben möchten, habe ich die Ergebnisse der Ortsratswahlen hier zusammengestellt, mit einem Jupyter Notebook zur Auswertung. TSV-Datei JSON-Datei Jupyter Notebook (auch als fertiges HTML zum Ansehen) alles zusammen als ZIP-Datei Die Daten…
When you use Cython for your Python extensions (not if, when ;-)), there are different opinions on whether you should generate the C code locally and ship it in your sdist source packages on PyPI, or you should make Cython a build-time dependency for your package and let users run it on their side. Both approaches have their pros and cons, but I personally recommend generating the C code on the…
I recently received a request for an online interview by Jonathan Ruiz, a CS student in Berlin. He's implementing graph algorithms as part of his final Bachelor thesis, and was evaluating and using Cython to get performance improvements. During his work, he thought it'd be nice to get some comments from a Cython core dev and sent me a couple of questions. Here's what I answered. First of all,…
It's been a while since I last wrote something about processing XML, specifically about finding something in XML . Recently, I read a blog post by Eli Bendersky about faster XML processing in Go , and he was comparing it to iterparse() in Python's ElementTree and lxml. Basically, all he said about lxml is that it performs more or less like ElementTree, so he concentrated on the latter (and on C…
Raymond Hettinger published a nice little micro-benchmark script for comparing basic operations like attribute or item access in CPython and comparing the performance across Python versions. Unsurprisingly, Cython performs quite well in comparison to the latest CPython 3.8-pre development version, executing most operations 30-50% faster. But the script allowed me to tune some more performance out…
Hin und wieder begegne ich Menschen, die bei Dingen, die "jede/r weiß", etwas überrascht schauen. Dazu gibt es einen schönen xkcd Comic . Ich habe mal nachgeschaut, in Deutschland lag die Geburtenrate 2017 bei 785.000 Kindern, mit deutlich steigender Tendenz seit 2011. Das bedeutet, dass in diesem Land an jedem Tag im Durchschnitt so um die 2.000 Menschen zum ersten Mal von einer Sache hören, die…
I'm happy to announce the release of Cython 0.29. In case you didn't hear about Cython before, it's the most widely used statically optimising Python compiler out there. It translates Python (2/3) code to C, and makes it as easy as Python itself to tune the code all the way down into fast native code. This time, we added several new features that help with speeding up and parallelising regular…
Geschrieben im Juli 2016. Die meisten Leute haben schon mal vom "Kleine-Welt-Phänomen" gehört. Es erklärt verschiedene Alltagseffekte, unter anderem die Überraschung, in einer noch so unmöglichen Situation jemanden zu treffen, mit dem oder der ich in irgendeiner Verbindung stehe, ohne uns schon jemals begegnet zu sein. Sei es die Existenz eines gemeinsamen Bekannten, eine ähnliche Herkunft, oder…