Hyper: The State of the Union

It’s been a few months since I last spoke about hyper. The reason I’ve been so quiet is primarily because not much progress has been made on the project. I’ve been swamped with other projects (most notably Project Calico), and that’s limited my ability to make much forward progress. However, in the last few weeks […]

Read More

HTTPS Is Not Just TLS

Right now the CPython core development team are having an extremely lengthy conversation about whether to enable certificate verification for HTTPS clients. When it comes to making this the new default behaviour in Python 3.5 the response is an enthusiastic “Yes!” (just as it should be). However, when it comes to backporting that behaviour to […]

Read More

An Update On Hyper

About half an hour ago I pushed the latest release of hyper, v0.1.0. This marks the first release of hyper since early March! This delay is not because I’ve been resting on my laurels. In fact, a quick check of the git repository shows that there were almost as many commits between v0.0.4 and v0.1.0 […]

Read More

A Story About Control

There once was a time when we were in control of our identity. When we met someone we were in control of who we were to them. We could present ourselves as whatever version of ourself we chose: the intellectual, the party animal, the sports fan. We could withhold information, and the balance of probabilities […]

Read More

A Brief Digression About Logging

Logging is an interesting subject. For most developers, most of the time, we don’t think too hard about logging. Maybe we’ve got some coding standards that mandate some minimal level of logging, but otherwise we’re just not concerned about how we log. But one day you’ll find yourself five hours into a marathon debugging session, […]

Read More

The Importance of Respect

While chatting in IRC with Eric Holscher tonight the topic of conversation wound its way toward positivity and the need to encourage it. I pointed out that my newest project, hyper, has as part of its contributor guidelines a section about respect. I wanted to talk briefly about why I wrote this, and why I […]

Read More

HTTP/2.0 For Python

The HTTPbis have spoken, HTTP/2.0 is happening. Major websites are beginning to adopt it (hello there Twitter!), and the spec is beginning to get nailed down. If you’re unfamiliar with HTTP/2.0 and all the fun things it brings you, Ilya Grigorik has been doing an excellent job evangelising for it. Take a look at this […]

Read More

Open Source Currency

Based on anecdotal data I can safely say that most people view “Open Source” as roughly synonymous with “Free” (as in beer). And in an impressive number of cases, that’s actually true. Many (maybe even most) open source developers are happy to give the fruits of their labour away for no cost at all. This […]

Read More

Requests 2.0

Every now and then the Requests project gets bored of fixing bugs and decides to break a whole ton of your code. But it doesn’t look good when we put it like that, so instead we call it a ‘major release’ and sell it as being full of shiny new features. Unfortunately it turns out […]

Read More

Python Requests And Proxies

One of Requests’ most popular features is its simple proxying support. HTTP as a protocol has very well-defined semantics for dealing with proxies, and this has lead to widespread deployment of HTTP proxies. The vast majority of these proxies are ‘transparent’: that is, they sit on the message path and quietly capture HTTP messages before […]

Read More

Big Redesign Time

I first posted in this blog 14 months ago. In the history of humanity, that’s not all that long ago, but for me it feels like an age. When I wrote that original blog post, I was still at university (just). I knew I was going to be a software engineer, but didn’t have much […]

Read More

Caching In Python Requests

I think I’ve made it clear in the past that I think Requests is awesome. At this stage it’s become a mature, feature-filled library that is more than capable of replacing urllib2 and friends in almost every situation you might be interested in. There are very few things that urllib2 can do that Requests can’t […]

Read More