DjangoCon 2016: Day 2 Recap

This is another recap like the one I wrote yesterday. As I said before, the company I work for sent me and all of our senior developers to DjangoCon this year for the first time. So don’t expect this to be an exhaustive look into my day or journal; it’s just a quick recap of that talks I listened to. I doubt I’ll do justice to some of the talks, and as always, this is just my opinions about what I heard, so just bear that in mind.

9:30am — Architecting with Channels by @andrewgodwin

This in my opinion was the anchor keynote for all the keynotes because so many other people will definitely be using this package in the future. I came into this talk knowing a lot about channels, not nearly as much as Andrew by any means, but a good bit since I’ve been doing load testing on it. (Maybe I should write up what I’ve been doing.)

The biggest takeaway is that this is going to be the package that allows for us to be far more creative with our architectures to address the specific problems we’re trying to tackle, because we’ll now be unlocked from having to use HTTP/HTTPS with a single server and db.

If we want to do that still because it meets our needs, we still can do that. We don’t have to do all this other stuff. But channels solves the hard problem of needing to determine how to coordinate among a lot of servers in production to do the not HTTP synchronous connection model.

For our purposes, we now have a standardized interface so that as other protocols come up likeMQTT, we won’t be each reinventing the wheel with how to interface with the rest of django.

For your perusal, here are his slides.

11am — Confident Asset Deployments by @scottburns

So this may seem like quite a reductivist summary, but basically, if you’re building an SPA, you need to use webpack now because that’s what you do. End of story. You likely have to separate teams or at least a few separate employees, and some work on the backend and other on the frontend, and their agreed upon interface is the API. Static files just confuse the situation for the frontend engineers. So if you aren’t building an SPA, which is still quite common, then you don’t need to do any of this. Here are his slides.

11:30am — Spicing up Django: Intro to Mezzanine CMS by @je92rivas

This talk was relatively straightforward: it was to show how to use Mezzanine. Since I’d seen it before, this was nothing particularly new to me, but I want to get another review just in case I had overlooked something. Perhaps, you’ll feel the same. Here are the slides for it.

1:30pm — Django Supporting Virtual Reality Game Development by @RudyMutter

So I didn’t know what to expect out of this talk. Since I’ve never once experienced VR (I know, I’m a weirdo), and I haven’t written any serious game code, a lot of the stuff he was talking went straight over my head. It was literally only the API endpoint design and asset delivery that made sense to me because that was inside my wheel house. This talk blindsided me with me realizing there was this entire field of programming that I for a long time haven’t paid any attention to. So that’s gotta change. Here’s his fantastic set of slides.

2:20pm — High Availability Django by @FrankieDintino

This talk had a great amount of specific suggestions and detail to help out improve site performance in relation to just getting slammed with traffic. But basically the advice is optimize queries for sure, proxy cache stuff, and use CDNs. But it’s totally OK to just throw more machines at a problem too. He added in the very nice hint Nginx has some kind of check to see if your application sever is returning 200s. Until it does, it’ll simply show the old cache. Very useful when being utterly slammed.

2:50pm — How to make a splash in OpenSource by @freakboy3742

This talk was fantastic. I had 3 big takeaways. (1) know your goal: do you just want to share something, or do you want other people to use this a lot? (2) If you want others to use your stuff, try not to build single-use tools, but try to build something that’s intended to be extensible into the rest of the ecosystem you love. (3) If you want your stuff to be use for a long time, you need a community and that means you need to communicate a lot more than you think necessary.

3:50pm — Walking Down the A11y Road by @RadinaMatic

I have a lot to learn about accessibility. I had thought before about colorblindness and document structure before. But color contrast and keyboard navigation I had not thought through before. So this was very good presentation just to bring these issues to the forefront.

4:40pm — Angular 2 and You by @pamasaur

This entire talk was very straightforward for me. I had messed around with Angular 1 before, so I wanted know what Angular 2 did differently. She answered that in very short order, and then demonstrated its very much similar to all other SPAs in their relationship to Django: that is, use an API. Here are slides!

5:10pm — I didn’t know querysets could do that by @charlierguo

I use querysets so much that I didn’t expect I’d learn anything new from this talk. And honestly, everything presented was something I’ve seen before in some way or another. So it was good to some confirmation that I haven’t overlooked anything. But if you don’t work with querysets that often, or if you for some reason to drop them into python lists and manipulate things that way, I would definitely look up this talk once it hits YouTube because this is a fantastic one stop review for everything queryset.

Big Trend Take Aways

We are all concerned about scalable architectures, and we are looking on how to optimize things, but all of our concerns and applications are different. However, the tools to solve these problems are the same tools we’ve always had, so we’re just becoming more mature as a community in implementing them on a regular basis.

Emerging applications are just around the corner, because with natural language processing, VR, and rich apps with API backends all just beginning to be on the cusp of ubiquity, we are all about to see some giant shift in what our users expectations for their experiences will be. I’d dare say it’ll be somewhere on the level like the jump from Web 2.0 to mobile responsive about 5 years ago.

The JavaScript wars are just starting to heat up. Today I heard about why we might want to use Angular 2. And specifically, use TypeScript to write Angular 2. This in addition to the reference to Meteor and Vue earlier in the day by two other speakers. At the moment, I have no idea who is going to win, but it’s clear we as backend engineers are being asked to pick a side right now, even though at the end of the day they will all just talk through a REST API to Django. (Although it appears it’s up for debate on which implementation you want to use for that. I personally prefer DRF.)