Development Setup for an M1 Mac

This post is a bit divergent from my usual write ups, but I know a few people off hand that are looking to upgrade their macs, and are a bit apprehensive to do so. Well – I’ve gone through the pain myself, so you don’t have to! A bit ago, I got the opportunity to upgrade my work … | Continue reading


@roguelynn.com | 1 year ago

Debugging asyncio code

Foreword: This is part 6 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency, Part 2: Graceful Shutdowns, Part 3: Exception Handling, Part 4: Synchronous & threaded code in asyncio, Part 5: Testing asyncio Code for where we are in the tut … | Continue reading


@roguelynn.com | 4 years ago

Testing asyncio code

Foreword: This is part 5 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency, Part 2: Graceful Shutdowns, Part 3: Exception Handling, and Part 4: Synchronous & threaded code in asyncio for where we are in the tutorial now. Once done, foll … | Continue reading


@roguelynn.com | 4 years ago

Testing asyncio code

Foreword: This is part 5 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency, Part 2: Graceful Shutdowns, Part 3: Exception Handling, and Part 4: Synchronous & threaded code in asyncio for where we are in the tutorial now. Once done, foll … | Continue reading


@roguelynn.com | 4 years ago

Debugging asyncio code

Foreword: This is part 6 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency, Part 2: Graceful Shutdowns, Part 3: Exception Handling, Part 4: Synchronous & threaded code in asyncio, Part 5: Testing asyncio Code for where we are in the tut … | Continue reading


@roguelynn.com | 4 years ago

Profiling asyncio code

Foreword: This is part 7 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency, Part 2: Graceful Shutdowns, Part 3: Exception Handling, Part 4: Synchronous & threaded code in asyncio, Part 5: Testing asyncio Code, and Part 6: Debugging asyn … | Continue reading


@roguelynn.com | 5 years ago

Profiling asyncio code

Foreword: This is part 7 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency, Part 2: Graceful Shutdowns, Part 3: Exception Handling, Part 4: Synchronous & threaded code in asyncio, Part 5: Testing asyncio Code, and Part 6: Debugging asyn … | Continue reading


@roguelynn.com | 5 years ago

Initial Setup with asyncio

Foreword: This is part 0 of a 7-part series titled “asyncio: We Did It Wrong.” Once done, follow along with Part1: True Concurrency, Part 2: Graceful Shutdowns, Part 3: Exception Handling, Part 4: Working with Synchronous & Threaded Code, Part 5: Testing asyncio Code, Part 6: Deb … | Continue reading


@roguelynn.com | 5 years ago

Initial Setup with asyncio

Foreword: This is part 0 of a 7-part series titled “asyncio: We Did It Wrong.” Once done, follow along with Part1: True Concurrency, Part 2: Graceful Shutdowns, Part 3: Exception Handling, Part 4: Working with Synchronous & Threaded Code, Part 5: Testing asyncio Code, Part 6: Deb … | Continue reading


@roguelynn.com | 5 years ago

Words

Lynn Root: software engineer in NYC | Continue reading


@roguelynn.com | 5 years ago

Exception Handling in asyncio

Foreword: This is part 3 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency and Part 2: Graceful Shutdowns for where we are in the tutorial now. Once done, follow along with Part 4: Working with Synchronous & Threaded Code, or skip ahead … | Continue reading


@roguelynn.com | 5 years ago

asyncio: We Did It Wrong

These series of posts are an accompaniment to a couple of talks given: Advanced asyncio: Solving Real-world Production Problems at EuroPython 2019 & PyCon US 2019; and asyncio in Practice: We Did It Wrong at EuroPython 2018 and PiterPy 2018. Slides can be found here and the PyCon … | Continue reading


@roguelynn.com | 5 years ago

True Concurrency with asyncio

Foreword: This is part 1 of a 7-part series titled “asyncio: We Did It Wrong.” See the initial setup for where we are starting. Once done, follow along with Part 2: Graceful Shutdowns, or skip ahead to Part 3: Exception Handling, Part 4: Working with Synchronous & Threaded Code, … | Continue reading


@roguelynn.com | 5 years ago

Synchronous & threaded code in asyncio

Foreword: This is part 4 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency, Part 2: Graceful Shutdowns, and Part 3: Exception Handling for where we are in the tutorial now. Once done, follow along with Part 5: Testing asyncio Code, or s … | Continue reading


@roguelynn.com | 5 years ago

Graceful Shutdowns with asyncio

Foreword: This part 2 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency for where we are in the tutorial now. Once done, follow along with Part 3: Exception Handling, or skip ahead to Part 4: Working with Synchronous & Threaded Code, Pa … | Continue reading


@roguelynn.com | 5 years ago

Exception Handling in asyncio

Foreword: This is part 3 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency and Part 2: Graceful Shutdowns for where we are in the tutorial now. Once done, follow along with Part 4: Working with Synchronous & Threaded Code, or skip ahead … | Continue reading


@roguelynn.com | 5 years ago

Graceful Shutdowns with asyncio

Foreword: This part 2 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency for where we are in the tutorial now. Once done, follow along with Part 3: Exception Handling, or skip ahead to Part 4: Working with Synchronous & Threaded Code, Pa … | Continue reading


@roguelynn.com | 5 years ago

Synchronous & threaded code in asyncio

Foreword: This is part 4 of a 7-part series titled “asyncio: We Did It Wrong.” Take a look at Part 1: True Concurrency, Part 2: Graceful Shutdowns, and Part 3: Exception Handling for where we are in the tutorial now. Once done, follow along with Part 5: Testing asyncio Code, or s … | Continue reading


@roguelynn.com | 5 years ago

True Concurrency with asyncio

Foreword: This is part 1 of a 7-part series titled “asyncio: We Did It Wrong.” See the initial setup for where we are starting. Once done, follow along with Part 2: Graceful Shutdowns, or skip ahead to Part 3: Exception Handling, Part 4: Working with Synchronous & Threaded Code, … | Continue reading


@roguelynn.com | 5 years ago

asyncio: We Did It Wrong

These series of posts are an accompaniment to a couple of talks given: Advanced asyncio: Solving Real-world Production Problems at EuroPython 2019 & PyCon US 2019; and asyncio in Practice: We Did It Wrong at EuroPython 2018 and PiterPy 2018. Slides can be found here and the PyCon … | Continue reading


@roguelynn.com | 5 years ago

Tracing, Fast and Slow

This post is an accompaniment to my Tracing, Fast and Slow talk at PyCon in Portland, OR in May 2017, EuroPython in Rimini, Italy in July 2017, and PyLadies in St. Petersburg, Russia in November 2018. Slides here and video from PyCon here.If you’ve read the Site Reliability Engin … | Continue reading


@roguelynn.com | 6 years ago

Tracing, Fast and Slow

This post is an accompaniment to my Tracing, Fast and Slow talk at PyCon in Portland, OR in May 2017, EuroPython in Rimini, Italy in July 2017, and PyLadies in St. Petersburg, Russia in November 2018. Slides here and video from PyCon here.If you’ve read the Site Reliability Engin … | Continue reading


@roguelynn.com | 6 years ago

Spotify’s Love/Hate Relationship with DNS

Nota Bene: This post was written and first published on Spotify’s developer blog.Forward: This blog post accompanies my presentation given at SRECon 2017 in San Francisco. The recording of the talk can be viewed here, with the accompanying slides here. Cross-posted from Spotify’s … | Continue reading


@roguelynn.com | 7 years ago

Spotify’s Love/Hate Relationship with DNS

Nota Bene: This post was written and first published on Spotify’s developer blog.Forward: This blog post accompanies my presentation given at SRECon 2017 in San Francisco. The recording of the talk can be viewed here, with the accompanying slides here. Cross-posted from Spotify’s … | Continue reading


@roguelynn.com | 7 years ago

Diversity: We're Not Done Yet

Update on September 6th: Finally included the IPython notebooks!This post is an accompaniment to my Diversity: We’re not done yet first at EuroPython in Bilbao, Spain in July 2015, then as a keynote for DjangoCon US in Austin, TX in September 2015. Slides here, video from EuroPyt … | Continue reading


@roguelynn.com | 8 years ago

Diversity: We're Not Done Yet

Update on September 6th: Finally included the IPython notebooks!This post is an accompaniment to my Diversity: We’re not done yet first at EuroPython in Bilbao, Spain in July 2015, then as a keynote for DjangoCon US in Austin, TX in September 2015. Slides here, video from EuroPyt … | Continue reading


@roguelynn.com | 8 years ago

Metrics-Driven Development: See the forest for the trees

This post is an accompaniment to my Metrics-driven development talk at Open Data Science Conference in Boston in May 2015. Slides here and video here.At Spotify, data is quite important. We track user-generated data, like sign ups, logins, activity within the application, even tw … | Continue reading


@roguelynn.com | 8 years ago

Metrics-Driven Development: See the forest for the trees

This post is an accompaniment to my Metrics-driven development talk at Open Data Science Conference in Boston in May 2015. Slides here and video here.At Spotify, data is quite important. We track user-generated data, like sign ups, logins, activity within the application, even tw … | Continue reading


@roguelynn.com | 8 years ago

RAMLfications – Python package to parse RAML

Update: I gave a presentation to the SF Python Meetup group about the new library, including why you’d use a descriptive language for your API, why RAML, and why Spotify chose RAML.If you’re into IPython Notebooks, mine can be found here, with slides generated from IPython here. … | Continue reading


@roguelynn.com | 9 years ago

RAMLfications – Python package to parse RAML

Update: I gave a presentation to the SF Python Meetup group about the new library, including why you’d use a descriptive language for your API, why RAML, and why Spotify chose RAML.If you’re into IPython Notebooks, mine can be found here, with slides generated from IPython here. … | Continue reading


@roguelynn.com | 9 years ago

I’m a fraud.

In celebration for Ada Lovelace Day, Thoughtworks hosted a meetup featuring talks from many prominent local women. I had the pleasure of speaking myself, in which I confessed publically:I am totally faking it.I’m not a “real” coder The tl;dr of my path in life is that I am not a … | Continue reading


@roguelynn.com | 9 years ago

I’m a fraud.

In celebration for Ada Lovelace Day, Thoughtworks hosted a meetup featuring talks from many prominent local women. I had the pleasure of speaking myself, in which I confessed publically:I am totally faking it.I’m not a “real” coder The tl;dr of my path in life is that I am not a … | Continue reading


@roguelynn.com | 9 years ago

My Path into Engineering

More and more often, folks have been asking about how I became an engineer, what my “story” is. So, in the effort to save time and breath, here it is.TL;DR: I have a business degree, and started teaching myself how to code in the fall of 2011.Started in Business In high school, I … | Continue reading


@roguelynn.com | 9 years ago

My Path into Engineering

More and more often, folks have been asking about how I became an engineer, what my “story” is. So, in the effort to save time and breath, here it is.TL;DR: I have a business degree, and started teaching myself how to code in the fall of 2011.Started in Business In high school, I … | Continue reading


@roguelynn.com | 9 years ago

Explain like I’m 5: DNS

This post is an accompaniment to my PyCon 2014 and EuroPython 2014 talk, For Lack of a Better Name(server): DNS Explained, that is a deep dive into DNS. Slides can be found hereI previously wrote a post explaining Kerberos “Like I’m 5” that turns out to be one of my most visited … | Continue reading


@roguelynn.com | 9 years ago

Explain like I’m 5: DNS

This post is an accompaniment to my PyCon 2014 and EuroPython 2014 talk, For Lack of a Better Name(server): DNS Explained, that is a deep dive into DNS. Slides can be found here I previously wrote a post explaining Kerberos “Like I’m 5” that turns out to be one of my most visited … | Continue reading


@roguelynn.com | 9 years ago

Hanging my Red Hat for headphones

At the end of the month, I’ll be trading in my Red Hat for a pair of head phones: I’ll be joining Spotify in San Francisco as a Partner Engineer to work on third-party integration.I had a fantastic experience working on freeIPA, but found the opportunity at Spotify too awesome to … | Continue reading


@roguelynn.com | 10 years ago

Hanging my Red Hat for headphones

At the end of the month, I’ll be trading in my Red Hat for a pair of head phones: I’ll be joining Spotify in San Francisco as a Partner Engineer to work on third-party integration.I had a fantastic experience working on freeIPA, but found the opportunity at Spotify too awesome to … | Continue reading


@roguelynn.com | 10 years ago

Karmawho.re: Your Reddit Comment Karma Visualized

Is a lot of your time wasted from derping around on Reddit? Do you find that you have to correct someone when they’re wrong on the internet? Wish that your collected comment karma was worth something?Well, I can’t trade you anything for your karma. But I can provide you with awes … | Continue reading


@roguelynn.com | 10 years ago

Karmawho.re: Your Reddit Comment Karma Visualized

Is a lot of your time wasted from derping around on Reddit? Do you find that you have to correct someone when they’re wrong on the internet? Wish that your collected comment karma was worth something?Well, I can’t trade you anything for your karma. But I can provide you with awes … | Continue reading


@roguelynn.com | 10 years ago

PRISM-as-a-Service: Not Subject to American Law

In the light of PRISM’s whistle blowing, many folks, like here, here, and here, are questioning whether the cloud is a viable option.This write-up, originally presented at PyCon Canada 2013 (slides, and video), and updated for PyCon Ireland (slides), is a look at what PRISM is, h … | Continue reading


@roguelynn.com | 10 years ago

PRISM-as-a-Service: Not Subject to American Law

In the light of PRISM’s whistle blowing, many folks, like here, here, and here, are questioning whether the cloud is a viable option.This write-up, originally presented at PyCon Canada 2013 (slides, and video), and updated for PyCon Ireland (slides), is a look at what PRISM is, h … | Continue reading


@roguelynn.com | 10 years ago

Part 3: Setting up a Kerberos test environment

This is part 3 of a series of posts on setting up Django to use external authentication. This post explains how to setup your own environment to test Django authentication against Apache and Kerberos/Active Directory/LDAP.Setting up your own test environment Naturally, you only c … | Continue reading


@roguelynn.com | 11 years ago

Part 3: Setting up a Kerberos test environment

This is part 3 of a series of posts on setting up Django to use external authentication. This post explains how to setup your own environment to test Django authentication against Apache and Kerberos/Active Directory/LDAP.Setting up your own test environment Naturally, you only c … | Continue reading


@roguelynn.com | 11 years ago

Part 2: Apache and Kerberos for Django Authentication + Authorization

This is part 2 of a series of posts on setting up Django to use external authentication. This post explains how to setup Apache for Django to use a corporate/internal authentication environment.How do I Apache? Alright, now that my application is done and the custom user is setup … | Continue reading


@roguelynn.com | 11 years ago

Part 1: Django 1.5 Custom User Models

This is part 1 of a series of posts on setting up Django to use external authentication. This post explains how to setup Django with custom user models for corporate/internal authentication methods.Intro Everyone has or has had a Pointy-haired boss or client, right? micromanageme … | Continue reading


@roguelynn.com | 11 years ago

Part 1: Django 1.5 Custom User Models

This is part 1 of a series of posts on setting up Django to use external authentication. This post explains how to setup Django with custom user models for corporate/internal authentication methods.Intro Everyone has or has had a Pointy-haired boss or client, right? micromanageme … | Continue reading


@roguelynn.com | 11 years ago

Part 2: Apache and Kerberos for Django Authentication + Authorization

This is part 2 of a series of posts on setting up Django to use external authentication. This post explains how to setup Apache for Django to use a corporate/internal authentication environment.How do I Apache? Alright, now that my application is done and the custom user is setup … | Continue reading


@roguelynn.com | 11 years ago