Why I'm not collaborating with Kenneth Reitz
[Content Warning: parts of this post could be triggering for those who have experienced gaslighting or other forms of abuse.]
[Content Warning: parts of this post could be triggering for those who have experienced gaslighting or other forms of abuse.]
Trio is a new async concurrency library for Python that's obsessed with correctness and usability. On the correctness side, one of Trio's unique features is that it never discards exceptions: if you don't catch an exception, then eventually it will propagate out the top of your program and print a traceback to help you debug, just like in regular Python. Errors should never pass silently! But...…
In my last post , I gave a retrospective of my time at the UC Berkeley Institute for Data Science (BIDS), where I've had an unusual, almost unique, position that allowed me to focus full-time on making the open Python ecosystem work better for scientists, and in particular I described my work in four areas: revitalizing NumPy development, improving Python packaging, the viridis colormap, and the…
In February 2015, I joined the UC Berkeley Institute for Data Science (BIDS) in a very unusual position: I got to focus full-time on making the open Python ecosystem work better for scientists. My contract is ending in a bit over a month, so I'm currently thinking about what's next. But in this post I want to instead look back on what this unique opportunity allowed me to do, both as a kind of…
The talk itself: Video Slides (7 MiB odp file) Code (I'm afraid you probably need LibreOffice, and ideally the Montserrat and Deja Vu Sans Mono , to view the slides properly. I haven't posted a PDF because LibreOffice's PDF export makes a mess of slides containing animations.) Chat: Questions? You're watching the talk months later on youtube? That's cool, you can discuss it on the Trio forum , or…
How ideas from the late 1960s can help us build better concurrency APIs today.
Timeouts are so hard to use, that even requests makes them confusing. Let's talk about why, and how to fix it.
Trio is a new asynchronous I/O library for Python, with a focus on usability and correctness – the goal is to make it easy to get things right. One thing well-behaved programs should do is exit cleanly when the user hits control-C. In Python this mostly Just Works without developers having to think about it too much, and as part of trio's focus on usability , we'd like to carry that over: there…
As you may recall , I have strong feelings about the design of usable APIs for asynchronous libraries. So, I wrote my own. I'm happy to announce the first release of Trio , a new permissively-licensed async library for Python: Repository: https://github.com/python-trio/trio Tutorial + manual: https://trio.readthedocs.io Download: https://pypi.python.org/pypi/trio (or just pip install -U trio )…
[Edit: Welcome Hacker News readers! Before we dive into the neat memory management esoterica, I want to briefly note that as engineers we have an ethical obligation in our work to consider the "safety, health, and welfare of the public" , because if we don't, terrible things happen . This is a challenging responsibility that requires we all stay thoughtful and informed – but that's difficult if…
This is a very long essay in which I try to think through the implications of Python 3.5's new async/await support for how we write asynchronous code. (Spoiler: I think curio has a lot to teach us.)
SciPy this year was awesome – there's so much wonderful stuff happening in the community, and I had lots of great, productive conversations about how to move forward on different projects that I'm really excited about. ...and then immediately afterwards, I pretty much dropped everything on the floor and disappeared for 3 months, including cancelling several talks and trips . Some people know part…
Emacs has a lot of stuff in it. Like, really, a lot. Most of the time it doesn't matter, you can just use whatever bits you know and be happy, but there's always more to learn. For example, here's a thing I often want to do: starting from whatever file I have open, open the directory containing that file. So my fingers have memorized the sequence: C-x C-f C-j (For the uninitiated, that's emacs-ese…