Skip to content

Commit

Permalink
Merge pull request #19 from raiderrobert/master
Browse files Browse the repository at this point in the history
3 talks: 2 rejected and 1 accepted
  • Loading branch information
akaptur committed Feb 23, 2018
2 parents ceea0f9 + 82d3f71 commit bdfbdfc
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Title: Django-Herald: A Django Messaging Library (Robert Roskam)

Category: Poster Talk
Speakers: Robert Roskam and Jared Proffitt

Description
A Django messaging library that features:
Class-based declaration and registry approach, like Django Admin
Supports multiple transmission methods (Email, SMS, Slack, etc) per message
Browser-based previewing of messages
Maintains a history of messaging sending attempts and can view these messages
Disabling notifications per user

Additional notes
Never presented this topic before. I'm a maintainer for this library. Here's the repo: https://github.com/worthwhile/django-herald

No need for any power. I have no accessibility needs.
13 changes: 13 additions & 0 deletions rejected/2018-growing-a-python-user-group-from-scratch-rroskam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Title: Growing a Python User Group from Scratch (Robert Roskam)

Category: Education Summit

Duration: 30 min (I think)

Description:
In December of 2015, I was talking with a co-worker and said, "Hey, have you noticed that there's no Python User Group not just in our city; there's none in the whole state." So after briefly discussing it with him, we started a user group, promoted it, got it listed on python.org (thanks Chris Angelico!) and have kept it going ever since.

I'd like to recap our victories and more importantly our mistakes in learning what makes for a good user group, what to talk about, and how to keep going-- even when no one shows up.

Additional notes
This is closer to auto-biographical thing; I did and I've never given a talk about it. I have no particular materials for it yet.
51 changes: 51 additions & 0 deletions rejected/2018-refactoring-with-production-in-mind-rroskam
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Title: Refactoring with Production in Mind: Look Downstream Before You Blow Up the Dam

Category: Normal Track

Duration: 30 minutes

Description:
A post-mortem about why small code changes can have large effects. I made a refactor in an application that was using Celery to move away from the Postgres message backend to Redis. The ensuing comedy of errors in the production environment led one of my co-workers to quip to me, "While we'd love to say that configuration changes like this should be simple and not at all dangerous, you probably should always look downstream before you blow up the dam."

I'll be walking through what change I made, what effect it had, how I remedied it, and what I'd do differently next time.

Audience:
Who is this talk for?
In my opinion, this is for all experience levels, because several senior people made this mistake together, but this seems like a newbie mistake.

What background knowledge or experience do you expect the audience to have?
I expect an attendee to have some programming experience and some direct server experience. However, enough context will be given in the talk that using the technologies mentioned specifically matter less because the core lesson is that we didn't fully understand the impact of our decisions.

What do you expect the audience to learn or do after watching the talk?
This talk reinforces the idea that even though we speak in idealized terms of programming for scale: you can't treat different technologies as perfectly fungible and interchangeable. So you actually need to understand the idiosyncrasies of each.


Outline
0) Who is this person talking - 1 min

1) What change I made - 4 min
- Talking through the nature of the Django/Celery application
- Explaining the original configuration
- Showing what I changed to config to be

2) What effect it had - 15 min
- Production environment overview
- Existing Redis config in production that would offload to disk
- Resized Postgres/Redis DB server instance to 16 GB RAM so that it could handle additional production load of new client, but used the default, very small attached disk of 1 GB
- Redis ran out of memory for some reason and exploded onto the disk
- Celery beat attempted and failed continuously for about 48 hours to reconnect to Redis, starting about noon on a Saturday
- Saturated RAM and network on DB server instance so we couldn't get in

3) How I remedied it - 10 min
- Turned off the setting for Redis to page to disk
- Made changes to Celery so that connections wouldn't persist for eternity

4) What I'd do differently next time - 10 min
- Check the settings for Redis
- Make sure not to use the default settings on AWS for the server instance

Additional notes
Comfortable public speaking. Have led a Python user group of about 15 people for the past 2 years.
Experienced 2 years in Celery, but a novice in Redis.
Have not currently given this talk anywhere else.
No special needs.

0 comments on commit bdfbdfc

Please sign in to comment.