Brett Cannon

Nothing but snark. https://google.com/+BrettCannon


Trying to choose a soundbar

Or “Why can’t the simplest way ever be the best way for tech, and why can’t it be cheaper and more available in Canada?”


Update/spoiler alert: I bought the Sonos Playbar and am very happy with it. A co-worker has bought the Sony soundbar and is happy. Lastly, someone on Twitter followed my advice and bought the Player and…


I have moved over to Svbtle

http://nothingbutsnark.svbtle.com/


While Medium’s WYSIWYG editor is rather nice, it just isn’t designed for code samples (e.g. there is…


The key challenges in designing a programming language

or “Why there is no (and never will be) a perfect programming language”

Publications edited by Brett Cannon

Technical posts by Brett Cannon

The Python programming language

A collection of posts involving what it takes to implement a zip file importer written entirely in Python code


Taking the Time to Re-evaluate Assumptions

Or “Hey, I have enough storage to use FLAC files!”


Up until today I never really thought about using FLAC for my personal audio files.

Yes, I still own and buy digital music (Andrea is the one with the Rdio account). I like supporting artists I like. Plus I’m one of those people who will create a…


Offline JavaScript Testing

Or “How I tested my file://localhost web app”


As the creator of Oplop and maintainer of its primary implementation in HTML + JavaScript, I feel an obligation to not break anything. If I screw up then someone ends up with an incorrect account password or can’t them when they need to. Me screwing up is a bad thing.


What Would it Take to Stay in the 1% of Earners Perpetually?

Or “How much Do I Need to Become a Trust Fund Baby?”


Trying to choose a soundbar

Or “Why can’t the simplest way ever be the best way for tech, and why can’t it be cheaper and more available in Canada?”


Update/spoiler alert: I bought the Sonos Playbar and am very happy with it. A co-worker has bought the Sony soundbar and is happy. Lastly, someone on Twitter followed my advice and bought the Player and…


Why I will never fit in amongst C++ programmers

Or “Why I don’t give a crap about your types and neither should you”


I have been actively programming in Python for nearly 13 years, ten of which have been spent as a core developer of the language itself. You could say I have an opinion when it comes to programming languages. That I have taken sides. That I…


Writing a Zip File Importer: The Loader

Part 3


For a zip file-based loader, luckily there is not much heavy lifting. Working with the finder led to the realization that zip files use / while users use whatever the hell they want for a path separator. With that path-managing code already dealt with, that leaves just implementing the importlib.abc.SourceLoader ABC. That…


Writing a Zip File Importer: The Finder

Part 2


When writing a finder like importlib.machinery.FileFinder it’s all about working with the storage mechanism you are trying to support. In this instance it’s making sure that the paths the finder is meant to work with are serviceable and being able to check if certain files exist.