RSSAmplifier

Blog

njs blog

vorpus.orgRSS feed ↗13 posts

Latest posts

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.]

Beautiful tracebacks in Trio v0.7.0

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...…

The unreasonable effectiveness of investment in open-source infrastructure

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…

A farewell to the Berkeley Institute for Data Science

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…

Companion post for my PyCon 2018 talk on async concurrency using Trio

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…

Notes on structured concurrency, or: Go statement considered harmful

How ideas from the late 1960s can help us build better concurrency APIs today.

Timeouts and cancellation for humans

Timeouts are so hard to use, that even requests makes them confusing. Let's talk about why, and how to fix it.

Control-C handling in Python and Trio

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…

Announcing Trio

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 )…

Why does calloc exist?

[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…

Some thoughts on asynchronous API design in a post-async/await world

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.)

Emerging from the underworld

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…

Stochastic descent

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…