11:33: The jobs fair and poster boards were interesting. Nothing directly applicable to my current work, though.
It’s great to reconnect with friends at PyCon. This is a social event almost as much as it is a technical one.
08:50: In lightning talks ATM.
The last day of the conference. I’m dragging my luggage around all day because I’ve checked out of the hotel. Had a real breakfast this morning because the conference’s overcooked eggs and fruit got boring.
Besides the keynotes, the talks I’m attending today are mostly about asynchronous computing and asyncio.
13:29: Most of the talks I’m going to today are about Python 3.6. (Performance, new features, new magic methods, etc.)
Videos of the talks and tutorials are being uploaded to a YouTube channel.
08:39: Lightning talks.
Daniel and Karim did the 5K. I slept.
17:33: I’m bushed. I planned on attending the lightning talks and then the conference dinner, but I feel my control rods auto-inserting and I know it’s best to pace myself.
Great talks on Python 3.6 performance and antiquated Python anti-patterns. A very good talk about conda. And a talk about pdb that started off at a beginner level (and so was disappointing; I had expected it to be at a different level) but then contained unexpected nuggets of useful information. I love serendipity!
Tonight I’m chilling and going to sleep early.
10:35: Jake VanderPlas described Jupyter’s usefulness for the scientific community far better than I did yesterday. Immersive IDE, iterative, experiments, sharing!
07:43: I hate swag bags. They’re an anachronism that needs to die. So wasteful. I know conferences must raise sponsorship money, but they’re going to die eventually and PyCon ought to be a leader here. My entire bag went into the recycling bin.
06:49: Up for the day and eager for it to start! Not sure how I’ll update this or even if I will. There will be something like eight talks, three addresses, who knows how many lightning talks, and maybe some unconference-ish meetings today. Perhaps I’ll just list notable topics and thoughts.
19:10: We went to Nicholas. Decent place. Had a nice lamb kabob.
13:20: Parallel data analysis.
Wow. An expansive survey of the SOTA in Python parallelizing technologies: Concurrent.futures, Spark, Dask, etc. This is what a good tutorial does — surveys a taxonomy and illuminates the tradeoffs and overlaps. It can beat reading N articles by Y authors who are trying to convey Z messages. For some topics I don’t need this but for others I do.
Some of these technologies/tools are directly applicable to the data munging we do at Coffee Meets Bagel to fix database issues and migrate data for new features. Lots of things clicked into place!
My head filled up after about two hours. So many great technologies available, a fertile ground for innovation. Lots of parallel fun.
Now for dinner with Kirk and Aaron.
17:00: This afternoon’s tutorial was an introduction to statistical modeling.
We started off badly when the instructor sent us the preparatory instructions about two hours before the start. It included downloading and installing Anaconda, which is a mother of a download and a mother of an install. The available time was actually less than two hours because it included our lunch “hour.” And our wi-fi has been unreliable and slow for most of the day.
Getting past that, this was a very good survey of statistical methods, and using pandas and pymc to do modeling. The instructor was one of the authors (I think the primary author) of pymc. Smart dude, lots of insightful asides.
The first hour was fine, the second hour I hung on, and in the beginning of the third hour my head exploded.
The missus called during a break and announced that our existing master bath toilet was leaking and a new one costing $$$ was being installed as we spoke. Glad I don’t have to deal with that.
Time for dinner.
Since registering for PyCon 2017 back during the early bird registration, I’ve changed jobs and stopped using Twitter. Here’s my classy fix to the badge.
On the train to Portland for PyCon. Excited!
Today was half keynote addresses, jobs fair, and the poster session. And half talks.
Beyond Grep: Practical Logging and Metrics. Sentry, Librato, Graphite, Grafana, StatsD, Riemann, Splunk, Loggly, Papertrail, Elk, Graylog…
Python Performance Profiling: The Guts and Glory. This talk dissected a real-world performance event from MongoDB engineering.
Performance by the Numbers: Analyzing the performance of web applications. I wished this had more specifics and been less of a survey.
Guido updated us on the status of the gradual type checking hints being added, provisionally, to Python 3.5.
And PyCon has ended, and I’m spent! I head home tomorrow.
I had a double espresso after dinner last night. At 3 am this morning, I tallied that as an unwise choice.
Another great day of talks.
How to Write Reusable Code. Best advice of the day, “Functions should return a result or have a side-effect, but not both.” I never heard it suggested before, or thought of it myself. A great guideline for increasing code’s maintainability and testability!
Update: TIL this is called Command-query separation.
Ansible Beyond YAML. This was interesting, but beyond my needs now.
Technical Debt: The code monster in Everyone’s Closet. Great talk by @nnja about the smells and gunk that happen in real-world projects, and suggestions for dealing with them.
Achieving Continuous Delivery: An Automation Story. Good talk by Ansible’s Director of Core Engineering. Use Ansible from day one, try to never ssh manually into servers, etc. All common-sense practices, but with an “Ansible slant.”
Create your own WSGI Deployment Adventure. Great talk about WSGI connections. Funny web page and video that went along with it!
Lessons Learned with Asyncio. I’m still not working in Python 3, and listening to this walk-through of using the new asyncio package just makes me more restless. (At work we have to support Python 2.6!)
A big win today was using redis, python-rq and/or django-rq, and RQ Scheduler as a Celery alternative. If I were starting a new project or reconsidering Celery in existing code, I’d give this combination a shake-down right quick. Joe Bob says check it out.
Oh brother, did I drink from the firehose today! Lots of learning, even in “novice” sessions!
How to be more Effective with Functions. Do you know the
if iter(x) is iter(x)
What can Programmers learn from Pilots? Much, as it turns out.
Beyond PEP 8 — Best Practices for beautiful intelligent code.
How to Make your Python code 2/3 Compatible. I like to attend a migration talk annually, to learn how the migration hot spots and recommendations have changed.
Advanced Git. Rebase, reset, cherry-pick, oh my!
Concurrency from the Ground up. David Beazley explodes heads for diabolical fun.
Is your REST API RESTful?