GraphQL vs. REST

Tuesday, August 29, 2017 » code

Comparing GraphQL to REST is like comparing apples and oranges. But let's do it anyway.

Falcon Web Framework: What's New?

Thursday, October 27, 2016 » code

Version 1.1 of the Falcon WSGI framework is now available, thanks to all the hard work put in by our growing team of awesome contributors. Extra special thanks to everyone who joined us at the PyCon 2015 and 2016 sprints to work on 1.0 and 1.1!

Falcon WSGI Framework: 0.3.0

Monday, June 15, 2015 » code

Version 0.3 of the Falcon WSGI framework is now available, thanks to all the hard work put in by our growing team of stylish and talented contributors. Extra special thanks to everyone who joined us at the PyCon 2015 sprint in Montreal!

Security for Humans

Tuesday, April 07, 2015 » security

Don't demonize your users. This only sets the stage for a security cold war. Instead, shift the burden to design-time. Find ways to defend against threats without hamstringing your users, and they will love you for it.

A Better uuidgen

Tuesday, March 03, 2015 » security

A humble suggestion for a better uuidgen that works consistently across platforms and is clipboard-friendly.

OpenStack Paris Summit Retrospective

Wednesday, December 17, 2014 » community

During the week of the summit, I observed three important trends in the OpenStack ecosystem. First, private clouds are starting to take on the characteristics of public clouds. Second, design discussions and general interactions between various members of the community are becoming significantly more civil and constructive. And finally, interns are taking a greater role in delivering new features across various OpenStack projects.

Redis Lua Scripting for Performance

Wednesday, November 19, 2014 » code

NoSQL tends to force a lot of data model logic into the app layer, making it hard (or even impossible) to optimize certain types of operations. By supporting server-side Lua scripting, Redis provides a way to move some of that logic back into the data layer without having to add higher-order operations to the API.

Open Minds for Open Discussions

Tuesday, September 30, 2014 » community

Mailing lists tend to dehumanize people, opening the door to subconscious (and conscious) social behaviors that are anything but constructive.

How to Win

Wednesday, June 18, 2014 » community

In 1998 the Phantom Regiment did the impossible. You can too.

Falcon WSGI Framework: 0.1.8

Tuesday, February 04, 2014 » code

Thanks to the hard work of a growing community of contributors, we were able to ship several long-awaited goodies, including request sinks, improved URI decoding, and custom error handlers.

Standardization Manifesto

Wednesday, January 08, 2014 » community

Standardization is often promulgated as a worthy goal for teams and communities, but it must be recognized for what it is: a Platonic ideal.

Painless Py3K Unicode Magic

Friday, December 20, 2013 » code

Implementing Python's magic string methods is tricky when it comes to Unicode characters and Py3K compatibility. I recently came across this problem in OpenStack, and wanted to share the strategy we are using to work around the issue.

SHA Snake Oil

Monday, November 25, 2013 » stuff

The SHA message-digest algorithm has its uses, but it's no cure-all.

An Unladen Web Framework

Tuesday, July 02, 2013 » code

Falcon is a new web framework for building efficient cloud APIs and stirring up controversy.

The Face of the Cloud

Tuesday, February 05, 2013 » stuff

It's no coincidence that cloud computing and post-PC devices became popular at the same time. But why didn't all this happen years ago when tech heavyweights were pushing thin clients?

In which I pit uWSGI against Gunicorn and stumble upon a Python stack that leaves Node.js begging for mercy.

Tornado vs. Gevent - Benchmarks

Wednesday, December 12, 2012 » performance

In this latest round of performance testing, I take the Tornado web framework for a spin (heh, couldn’t help myself), and also play around with Cython.

Check out these results from a round of rigorous performance testing comparing Python, PyPy and Node.js

Python vs. Node vs. PyPy

Tuesday, October 23, 2012 » performance

After playing around with recent versions of PyPy and Node.js, I've discovered some things that may surprise you.

Cloud Security Manifesto

Tuesday, October 02, 2012 » security

We need to build a cloud that people can trust.

How Async I/O Works

Tuesday, September 18, 2012 » performance

Async I/O can be your best friend, or your worst enemy. The devil's in the details.

Painless Scaling in the Cloud

Thursday, September 06, 2012 » performance

Scaling your web app or service is a nice problem to have, but just because you may never need to do it, doesn't mean you shouldn't plan for it.