Day 2 Lightning Talks by Many People

This video features Joe Cronyn, Joseph Bane, Kenneth Love, Lucie Daeye, Ola Sitarska, Rachell Calhoun, Rostyslav Bryzgunov and Tobias McNulty at DjangoCon US 2016 in Philadelphia, Pennsylvania, USA.

Day 2 Lightning Talks by Many People
0:35:54
Published August 24, 2016
698 views

Day 2 Lightning Talks by Many People

00:14 - Lucie Daeye
05:22 - Rostyslav Bryzgunov
08:09 - Tobias McNulty
13:10 - Kenneth Love
17:58 - Joseph Bane
21:35 - Ola Sitarska
26:13 - Rachell Calhoun
30:36 - Joe Cronyn

This talk was presented at: https://2016.djangocon.us/schedule/general-sessions/

LINKS:
Follow DjangCon US 👇
https://twitter.com/djangocon

Follow DEFNA 👇
https://twitter.com/defnado
https://www.defna.org/

Summary

The lightning talks cover teaching beginners, front-end asset handling, Django contribution, debugging asynchronous tasks, community safety, supporting women in programming, and Docker-based development. Speakers stress respectful, inclusive teaching: do not grab someone’s keyboard, judge their tools, use jargon, or dismiss questions; instead build confidence, explain why as well as how, celebrate progress, and encourage breaks. They also show practical tools and practices, including Django Compressor Toolkit for ES6 and SCSS across apps, contributing documentation and small fixes through Django’s tracker, remote PDB debugging for Celery workers, public Code of Conduct processes, post-workshop Django Girls education, and Docker and Docker Compose for reproducible Django environments.

Key takeaways

  • Good teaching means respecting learners, avoiding dismissive language and jargon, answering questions without judgment, and helping people develop the ability to solve problems independently.
  • Django Compressor Toolkit can transpile, compile, merge, and minify ES6 and SCSS while allowing imports between Django applications.
  • Small documentation fixes are valuable contributions, and Django’s issue tracker, contribution guides, code review, and sprints provide clear ways to participate.
  • Remote PDB makes it possible to pause and inspect Celery tasks running through RabbitMQ by connecting to a debug session over Telnet.
  • The Django Code of Conduct Committee published documentation describing its membership, reporting and decision processes, record keeping, on-call duties, and transparency practices.
  • Django Girls communities can support participants beyond introductory workshops through code camps, project work, study groups, coaching, and inclusive community-building; Docker can also reduce dependency problems and run a Django application and database with Docker Compose.

Summarised automatically from the transcript.

Transcript

6,104 words · auto-generated Show

Automatically transcribed, so expect mistakes in names and technical terms.

0:00

Speaker 1: Come on, yo.

0:14

Speaker 2: So hi, uh I'm Lucy and uh um I'm already messing things up. Okay, every time it's doing that. So Yeah. So hi everyone, I'm Lucy. And for the people that didn't saw me at the booth uh today or yesterday, I'm working for Django Girls, so I'm their awesomeness ambassador. So Jugglobers is a foundation that helps organize uh workshop around the world. So it's free one-day workshop for women. We started two years ago and now we have approximately uh six uh thousand people that went through our workshops. So I've attended the first Jungogers in Berlin when I what I was a total beginner at programming and Since then I've organized two workshops in Paris and coached at seven events in Europe.

1:01

Speaker 2: So I wanted to share with you what I've learned about teaching. So teaching is happening all the time and not only during beginners workshop. It could be a friend asking for help or a colleague at works. So sadly there is no magic recipe to make you a great teacher, but there is a thing, a list of things that you should absolutely not do. For example, you may want to grab the keyboard from the hand of someone that is to show them quicker what you want them to do. You shouldn't do that. Really don't don't do it because it's rude. You're taking the keyboard from the hand of someone who is currently using it. And imagine if it's a laptop, you're currently taking away the laptop So don't do that because also it's humiliating. You're literally saying to this person that they won't be able to fix their problem and that's wrong.

1:46

Speaker 2: So what should you do? If you can't see the screen, ask the person if they can turn the screen or move a little bit. If you need more detail on uh to be able to have them debug the code Ask them or explain them how to do it. For example, you can say can you show me the log or can you type git status? Press enter So the main idea is also to teach them tricks to so they will be able to debug the code when you're not there. And it's really important because it will also help them build confidence that yes, they can fix stuff The second things you all may want to do is say something not nice about the operating system, the software or programming language the people are using. So let me be clear on that. Someone asked for your help, not your opinion. So the last time I attended a programming workshop, someone said to me, cool, someone on Linux, that's one less problem.

2:37

Speaker 2: The thing is that was absolutely not true because I spent more than an hour to debug a nasty bug to make things worse. And secondly, that's also immuting again for the people that were there not using Linux and were starting to think, what is wrong with my OS? So people coming to programming workshop or looking for help can adapt about the skills, knowledge or even legitimity to ask a question or be on a workshop programming. So your job is like I said to help them build confidence and also make sure they have a great time learning. So no nasty comments or judging. And by the way, don't even start about trolling with other attendees or learners. Because you're not here to prove you're the biggest geek in this part of town. You're here again to help people learn something

3:24

Speaker 2: So to resume, not taking the keyboard, not judging, not trolling. That's maybe a lot of don'ts. So what can you do? You can help them by building a friendly environment. So to do that, you must respect the person you're teaching to. So don't do sexist, racist, or ablacid ablaze jokes. No, it's easy, my grandma could do it, or other suitable isn't. Try to also create a relation where they can feel they can ask questions. To do that, tell them that no, they won't bother you with all the questions because you're here to help them. Also, try to answer the question positively. You can say something like, It's a good question, I'm not sure, so let's check on the internet. And also don't ever act surprised by the question because they need to know that you won't judge them.

4:11

Speaker 2: Also try to be in their shoes. Oops. Let's start again. So try to be in their shoes. Do not use jargon or don't say things like it's simple, you just have to do this Because it's probably simple for you, but this may not be the case for the person you're teaching to. And finally, building a friendly environment also need mean checking if the person needs a break or it's getting frustrating Most of the people I've thought during a beginning of workshop tend to spend the whole day including lunch in front of the computer. So don't hesitate to invite them to take breaks. So be patient, encouraging, and remember that new learners can be slow, which can be really frustrating for you. Try to remember they're going through a lot. So be ready to repeat and expel things multiple times and also tell them it's okay if they don't know everything.

4:58

Speaker 2: So be friendly, celebrate small and big victories, and don't ever show your frustration. Keep in mind that you're here to empower them. So if you want to know more about how to teach programming to someone, you can check our guide, coach. jangogers. org. And I strongly invite you to go to Nicole James Talks tomorrow at 220. Thanks for your attention.

5:25

Speaker 3: Um using ES6 S CSS in Django another way. So uh do I start?

5:32

Speaker 4: We have five minutes. Begin.

5:34

Speaker 3: Great, maybe even So I think some of you already know about Django Compressor. It's Django application which provides you very nice Asset management and um static handling stuff. Um so I I'm using it for a long time and uh and um there is a way to use ES6 and S CSS in it, but you need to write some mapping between some stuff and node commands so it's not very convenient and I have made my little addition to Jenga compressor which called Jenga Compressor Toolkit and let me just show you the results first. So here I created just

6:19

Speaker 3: during the last presentation one Django project and we have two Django applications, base and up. So first Um in inside base we have some basic stuff for ES6 for SCSS And inside another application we want to use it. We want to import from GS, from ES6, from some another jungle application, and same for SCS. We want to have cross-imports between Django applications. Because I prefer to keep static inside Django apps, not in one separate folder. Uh so now about installation. Um yeah you need to install the the Python package and then to configure it.

7:06

Speaker 3: Um A bit small screen. So here I just install my compressor toolkit. You use this mapping for SCSS and for ES6 and inside Django template Using compressor, you include just your final application, S CSS and JavaScript. inside which you reuse some another ES6 from another application. So that's the insights. And now how does it work? Does it work at all?

7:52

Speaker 3: Yay, it works. The link is red and ES six is transpiled, compiled, merged, minified, and executed. And that's the great success. That's it. I suggest you to use it.

8:10

Speaker 5: Great. Thanks. CEO at Cactus Group. We are a 30-person Django consultancy based in North Carolina. We have been using Django since uh 2007. And it's it's been a really huge part of our success. A number of our staff have contributed back to Django over the years, and this is uh my pitch to all of you to get involved and contribute. And to show you why I think that's important, I just want to start with a recent example. Oh boy. So uh raise your hands and keep them up. Uh how many of you have used a model file field before? Okay, so a lot of people. And now if you've uh keep them up, if you have uh

8:56

Speaker 5: how many of you have used that to store a uh file field in a remote uh storage like S3 previously? So also a lot of people. And how many of you uh had to use the uh or are sorry, did not have to use the Django documentation to do that? So how many of you How many of you were able to do that without using the Django docs? So okay. So document like maybe two or three people still had their hands up. So documentation, very important. Um a few months back, um, I was working to move uh content from a text field in into a file field for a project. After reading through the Django docs like any number of times, I stumbled upon this Stack Overflow post here. You know, the post kind of shows a timeline of a conversation about file field. The first one says, what is the purpose of this file field

9:43

Speaker 5: open method? Somebody else, seven months later, responds that the docs are a little bit misleading on that. About a year later, somebody commented. said, oh, somebody should really raise an issue on this. And then here I am, two and a half years later, struggling through this, trying to figure out what is the purpose of this file field open method. And the docs are unchanged and no issue was ever raised throughout the timeline on this point. So for those of you who may not be aware, Django has an excellent issue tracking tracker at code. jjangoproject. com. If you discover an issue in Django, even if you don't have time to dig into it then, you know, take a few minutes to first search for the issue and make sure that it doesn't already exist. And then if it doesn't, you know, file a simple report on that. So I I you know

10:28

Speaker 5: did my due diligence and submitted that issue. A few weeks later we had one of our quarterly Ship It Days at Cactus, and I spent a few hours working on this and within that time was able to get a PR submitted. um to Django Mester. And then you know with some back and forth and code review about you know three weeks later, it's not something that you can kind of expect to get in immediately, but within three weeks, this really tiny change to the documentation that I had was was merged into Django to Django Core. And you know, I think this is a really minor change. If this is helpful to at least one other person in the future, I will feel like that investment of my time was worthwhile. And you know, I also think it's worth to note that this is really just one tiny, tiny change in the history of literally thousands of patches that have helped make Django

11:14

Speaker 5: what it is today. Um so speaking of thousands of patches, you know, why do all of these people volunteer their time and energy to contribute to Django Core. For those new to Django, it's a great opportunity to learn and dig into how Django works. You also get free expert code reviews from Django From some of the most knowledgeable people in the community, many of whom are here at the conference this week. You get to feel good, you know, not only about creating something, but also about being part of this community. And lastly, of course, contributions to open source projects, you know, however small, can help improve your credentials when applying to jobs. If you know I've piqued your curiosity and you're wondering where to start,

11:59

Speaker 5: Django has really good docs on contributing. But those docs, like everything else, could always be improved as well. So as you get started trying to set up the unit test suite for the first time, for example, use that as kind of a case study to think. through what's working and what's not working, maybe you discover a platform issue that's you know specific to your OS. On the subject of documentation, I was talking to uh Tim Graham yesterday, the Django fellow, and he mentioned And that his entire first year of Django contributions was nothing but documentation fixes. I think that's incredible. And no matter sort of how good Django's docs are, they can always be improved. And you know, there's two IRC channels. I think the Django Sprint one will be the one that we're using this week. Um there are also um

12:45

Speaker 5: Uh you know, there's an issue tracker I mentioned earlier. There are Do I get extra time if I have to? Uh this week there are two types of Django sprints. Um Tim Graham is running in running an informal one in the um MBA lounge upstairs. It's a little study alcove just to the left as you come in. It took me a while to find it, and then Thursday and Friday will be the sprints. So thanks very much and And hope to see you around the conference.

13:11

Speaker 3: Alright. So hi, I'm Kenneth Love. Uh my day job is teaching Python and Django. I get to do it all through video and online, which is Kind of cool. Means I don't get a lot of feedback right away, but it's still neat. So for the past couple of years I've been doing this and I've had hundreds, thousands of students around the world. I've picked up a couple of things that I think are handy for teaching. So I'm going to share this. I overlapped with Lucy. We should have collaborated. First of all though, I'm not an expert. I very well might be wrong. So if I am, tell me, so that I'll get better. But uh if I'm not wrong Cool, I lucked into something good. Alright, so as a teacher, as a a developer, trying to teach, one of the problems is that you know too much.

13:58

Speaker 3: So you've solved problems. You

14:01

Speaker 6: You've encountered all these errors, bugs, you've read documentation, you've gotten onto IRC, which is really hard for people now. You've gotten over your imposter syndrome at least slightly, right? I mean I still get nervous about teaching. I've been doing it for two years. I put out thirty courses in two years and I'm still very nervous about teaching people. I'm a bit nervous right now even. And I know most of you. Beginners don't have any of those advantages though. They're full of these unknown unknowns. They don't know what they don't know. They don't know how to find out what they don't know. They don't know any of this stuff that's why they're beginners that's why they're coming to you to teach them stuff And as part of the whole Xenopython thing, you remember how in the face of uncertainty you resist the urge to guess?

14:47

Speaker 6: So you have to Kind of resist that you have to try to guess what they don't know, but find out if you can. Anyway, let's go back to the beginner mindset. This is what you need to get. You've got to Bring yourself back to where they are. So where were you ten years ago, five years ago, six months ago? If you only have the model. objects. all query and a for loop How would you then filter down the records that have a certain PK or a certain username? Right? Because lots of times they only have those two tools. They know they have those two. They know both of those. But they can't figure out the other stuff. Or they haven't been told So when you're teaching, try to answer three questions. Tell them what you're gonna do, what that problem solves.

15:33

Speaker 6: Then tell them why they need to do that or when they're going to need to do that, when that problem is going to come up. And then of course teach them how to actually solve the thing. So you showed them that they have lambdas. When would they use lambdas? Why would they use lambdas? Alright. So then things to avoid when you're explaining. Try to avoid using the word easy, because things aren't easy to beginners. Try to avoid simple, because things aren't simple. None of our stuff is simple. Just and only, as Lucy said, you're not going to just do this thing. It's not only this problem. And all you have to do is a hard one to get rid of. But uh it's there. Try not to have that Another point to bring up, moms aren't dumb, so don't use moms, grandmas, dads, uncles, grandpas, whatever

16:21

Speaker 6: as examples. All these people are very capable. Just don't. Come on. Didn't Spotify get in trouble for that? Anyway, things to add instead of things to avoid. Try to use diverse and inclusive examples, as Cerone mentioned yesterday. You want to have as big of an audience as possible. You want to get as many people in. Mix in genders. Air towards feminine and non-binary sides on that. We have more than enough male examples already. If you're using visual aids, represent as many different types of people as you possibly can. Genders, races, abilities. Have somebody who floats. It doesn't matter. Just bring in stuff. And remember that in the wide world, not everyone fits into a first name and last name.

17:09

Speaker 6: Not all dates show up as month, day, year. Not all numbers have commas in them. They have decimals instead. I want to share a thing that I got for part of the gender. I got an email from a student about six months ago. They emailed me to thank me for using explicitly the word they as a pronoun choice in a course. They self-described themselves as brown, autistic, and non-binary or genderqueer, and they felt like they didn't exist in the tech world. So it's pretty amazing what one word can mean to someone So learning's hard. Recognize the achievements that people have. Encourage self-care. Introduce communities like Kojo here. And

17:55

Speaker 6: thank you.

18:00

Speaker 7: Okay, thank you. Um so um this has my Twitter handle if you want to follow me or not. Um so uh a couple things that you kind of need to like basically um follow on here is We uh use message oriented middleware, specifically Rabbit MQ, for a lot of our asynchronous tasks and Um schedule jobs. And this uh will communicate with salary queues and exchanges that we have set up. Um and also uh just general basic familiar With PDB. I I would love to go into more detail on those types, but I can't. So Solar has this really cool feature that I stumbled upon

18:48

Speaker 7: and It's called RDB. And it it basically is very similar to how you would use PDB's set trace inside your code. You just sprinkle it in where you're you think you're having a problem and Um it will give you access to the code um at runtime. Um so it's it's uh it was surprising to me how easy this was actually to put in place. Um given all of the different components that have to work together for this to kind of uh solidify. Um so I was gonna do a quick demo. Um basically the steps are that I'm gonna start up a rabbit broker. I'm going to start up a salary worker that has the implementation of the task that I want to debug. And then I'm going to apply an async function that communicates with the celery worker

19:37

Speaker 7: to basically start the job. And then I'm going to attach to the RDB session over Telnet and profit from that. So first is Rabbit. So that's very simple, just RabbitMQ Server. Next is my Celery Worker. Um I've already got this all set up to work on a test still requ and I'm just logging uh info layer. So that's running. And next I'm going to use Django Shell Plus and import my task and run it.

20:22

Speaker 7: So you can see I'm doing um just passing a message DjangoCon US2016. And I will now show you the code. Um It's a very simple task that just prints out the message that it's given. And you can see that I have the set choice already in there. So you'll see back in my um my worker, it's now waiting for a connection from um my telnet. So it has the port which is now 6905. And there I am. I'm in PDB. And you have uh I'll make that bigger. You have basically all of the uh

21:10

Speaker 7: things that you would normally have from PDB. You would have, you know, list, help, step, next, that's sort of thing. So I'm just going to continue here and you can see that it will then print out my um message in the log for hello DjangoCon. So I'm here to so my my name is Ola. Probably know that And uh for the last couple of months I've been working with the TSF Code of Conduct Committee.

21:44

Speaker 8: And today we are announcing quite an exciting thing for us. Already Paul Hallett, one of our other members, already did at EuroPython, which was like an hour ago. So we are synchronizing And uh so we've been working for a couple of weeks now, and so I'm gonna tell you about what what we've been working on and what we do.

22:02

Speaker 7: So let's start with what we do. So the DSF Code of Conduct Committee's job is to it's just a group of people whose job is to make sure that Django community provides a harassment-free experience for everyone involved.

22:13

Speaker 8: We deal with and keep record of code of conduct violations, as well as provide support for conference organizers, for moderators of Django online spaces like Reddit or mailing lists and to help them keep their members safe. So we are currently seven people scattered across the world. We've got members in Australia and Europe, Africa and States. And it makes uh arranging meetings very fun. We had nine uh one at eight AM today. So today I would like to tell you um a little bit about the thing we've been working on on um for the last couple of weeks. Which is making our internal documentation existing at all and then making it public today. So starting from um

22:59

Speaker 8: so this documentation is gonna contain everything from uh how exactly we are dealing with the issues that are reported to us through establishing on like the on-call rotation duty we're we've got now to make sure we don't forget about our own well-being and burnout. So everything is in there. So you can now go and check it out on GitHub. It's uh open source with a creating creative common license. And I will tell you now very briefly what you can find in But I really encourage you to check it out and read it on your own. So in the first chapter, you can learn about the structure of the membership of the committee. We'll tell you who are the members, when they joined, and when their term at the committee ends You can also find out how members are added and removed from the community. So it's all transparent now.

23:44

Speaker 8: Then we also dive straight into the most important chapter of the whole thing, which is how we handle code of conduct evaluation. And you can learn about our on-call duty I mentioned, go through the entire process since the report is made until it's considered closed, as well as learn about the shepherding and how we make decisions. Then the equally important section is dedicated to the way we keep records. Who has access and for how long and how we store information and where we store it. It's all in there and Public. And one of the most valuable services we provide to the community is a central record of all code of conduct violations that took place in different, often very disconnected parts of our community. So we are now like quite we've done this for a while, but now we are quite officially

24:32

Speaker 8: offering a way for community organizers to reach out to us before their event takes place to make sure that none of those their attendees is blacklisted with us. And we also extend this invitation to use the service other Python communities, not just Django. And last but not least, you can find about how we handle transparency and CC Statistics of reports and actions taken, as well as a number of blackfisted and flagged people. And we are still planning to expand on this section in the future, but um so we hope that this is just a small step towards something bigger So what's the goal? Uh we hope that making this documentation public is going to help us raise awareness about the work we are doing as well as demystify the process of what happened When report is made. We realize that code of connect can discovery

25:18

Speaker 8: for some and we'd like to show you exactly how we deal with issues arising so that the decision to report something is as straightforward and obvious as possible. We also hope that making this transparent, uh, we're gonna help other communities outside of Django world to make their processes better. Because code of conduct is on is very important, but But only when it's enforced. And just having it published on the website is not enough. And it took us quite a while to figure how this whole thing works. So we hope that we're gonna help other communities make this happen And last but not least, we are looking to improve our processes with your feedback. And I encourage you to take a look at our issues, on our pull requests, and we are very excited to see your impact on it. And last, I'd like to thank everyone

26:03

Speaker 8: being the DSF Code of Conduct Committee, as well as many members of the community who helped to make this happen.

26:15

Speaker 7: All right. Hello, I'm Rachel. I'm here to talk about inspiring women to fall in love with programming. I talk fast. Um and being up here, I'm a little bit nervous, so I'll talk even faster. But that's okay because most of you are native English speakers. I come from recently Korea. Um so I was I'm it's kind of new for me. Okay, so Uh uh first let me who am I? I'm Rachel. I studied Spanish and French, Espanol, Francais in university, and then I uh taught English in Korea. Um I also learned Korean, Hango Go, and then I started studying Python to try to change careers. And now I do Django. So that's kind of my background. Okay, so anybody know what this is? Have you ever seen these before? It's a job. That's what I'm focusing on. It they're called knocker -uppers. And what they do is they one of them blows something like a stone or uh

27:01

Speaker 7: to knock the window to wake people up. Before uh we had alarm clocks and the other one would knock it with a pole. I kind of got inspired by seeing another talk by Sally Williams. And she was explaining that jobs change and jobs are changing now too. So let me Talk about this. So um this is something we kind of can relate to. Um jobs are changing. This is factory, but also like in banking, traders, it's all um starting to change. It's called the fourth uh industrial revolution. Um and so let's take a Look here, the WEF in January of this year. Um put out a report in five years, not like twenty years from now, it's five years, seven million jobs will disappear. And only two million will be replaced. And this number, um, it's because smart technology, um, robots, etc.

27:49

Speaker 7: but this number will disproportionately affect women because um For example, if this continues, four jobs that men will lose, only one will be replaced, but for women, twenty jobs that will be lost, only one will be replaced So that's why it's really important to get more women, not just in the schools and start education, but now. Okay? Because and it's not just programming. Um C S plus X. I'm sure some of you have heard this, but it's, you know, C S plus fashion, C S plus uh education, C S plus medicine. It's not a separate field. They're all going to be combined. Okay, so and how can we do that? I'm sure you guys have heard this Django Girls a lot recently. Um, and that's kind of where I come from. Um Django Girls

28:35

Speaker 7: Chapter in Seoul. And Django Girls is a one-day workshop to inspire women to fall in love with programming. So what I want to talk today is about what's next. This is our workshop in Seoul. Last year was the first. What our goal is and what I hope to achieve is not just inspiring women, but supporting them on their next step. So after they're inspired, what do they do? Um in Seoul we have um a curriculum, first workshop, and then code cams. And we have uh two-month code camp to go back to the basics and learn Python and Django, uh HTML, CSS, and then we We do two-month base code camp. It's all free and with sponsored support that will focus on making your own project. So you've learned it, now do something with it. And that's the best way to learn it.

29:20

Speaker 7: Alright, and here we have, if you go to our website, uh jingle girlssoul. org, you can see a bunch, uh about 15 projects came out of that. Um, websites online, and we even had one Android app. We also did a lot of community events, workshops, regular study meetups on the weekends. So I want to encourage other cities and other Django Girls communities, or you can start your own. to continue education after the workshop. All right, um, and we learn by doing and master by teaching. We're working on a nonprofit website. Um I'd like you Some help if you could, but because our members are all contributing, myself included. Um, this was a participant. She became a coach the next time around, Master by Teaching. So, how can you contribute? You can be a coach or an organizer in your own city.

30:08

Speaker 7: You can offer sponsorship for our events. You can offer scholarships to your events or other workshops. Also contribute, DjangoGirls. org slash contribute. You can find other ways to contribute. Or GitHub Django Girls Code Camp. There's the Light Leadership Nonprofit project for a school in Peru we're making. And also we're trying to develop a curriculum for supporting women after the workshop. So I hope I inspired you to help us inspire women to fall in love with the program. Thank you. So I wanted to start off today and I have some notes but I'm gonna try to not look at or follow them very much. Um who in the room has used Docker before? I just see a show of hands. So I see some hands not up. That's good. Some of you will not know that I don't know what I'm doing.

30:53

Speaker 7: So I just want to also disclaim none of the code I'm using today is mine because then it really wouldn't work. Um like really wouldn't work So if you haven't used this, I'm not going to teach you anything today. You're just going to see me use Docker. But what I'm really hoping is that it inspires you to try using it because It's an amazing tool and I love using it daily. And I try to tell everyone who hasn't used it before that they should get out there and try using it. So This is me, um at Joe Cronin, uh and I worked for Cash Star in Portland, Maine. So first off, does installing dependencies ever make you feel like this? Um I know I've been in a few situations.

31:39

Speaker 7: Uh this was my first Django shop working at Cash Star and I think I spent about a month installing things. and figuring out like, oh, I'm missing another system requirement. Oh, I'm missing another system requirement. And it was just really kind of a pain to get up and running. Um so fear dependency hell no more because with Docker all things are possible. You don't need to install anything. So regardless of what operating system you're on, uh it's not supported on Mac OS sex, it's supported in Windows, supported in Linux. Um so really no matter what you're running, it's a great tool to have. And it's time for our first demo. So let's see if I can fall flat on my face really quick. What I'm going to do is I'm actually going to start a brand new project. So we're going to do Django

32:26

Speaker 7: Admin Start Project. And can you see that on the big screen, everybody? Is that Okay. New project. Alright, so we're gonna go into new project. I'm going to create a requirements. txt

32:39

Speaker 1: file.

32:40

Speaker 7: I'm going to put Django in it. And And save that. And then I'm going to create a Docker file. And I'm going to use the official Docker image. So all I have to do is say This container is from Django OnBuild, and that's the OnBuild version of the Django Docker container. Uh from there I can just say Docker

33:06

Speaker 1: build. I'm going to tag it and call it Docker Demo. And so what this is going to do is it's going to run through their Docker container that they've provided, run the steps that they have, and it by default just runs manage. py. So basically it's going to do everything for me. I didn't have to write any code. And this project is going to hopefully run without a problem. So now I'm going to run my Docker demo. And of course it fails because I still have something running. So one second. Get rid of those. Alright, so my Docker demo is up and running, as you can see. Um it kind of looks like it's just hanging, but that's because I didn't attach to or watch what's going on in the container.

33:52

Speaker 1: or whatsoever. It will print out the standard out from the Django website. And so what I'm going to do now is open that up. And you can see it worked. So one of two. Um really gonna try to race through how am I doing on time? Okay, so we're doing all right. Um The second one is actually a little bit faster. So quickly, but wait, there's more. Um if you've used Docker have you used Docker Compose? Okay, so if you haven't used Docker Compose, basically it's an easy way to have an entire configuration file that says run this this way, run that this way. You can have your database, your app, your everything all configured, pre-configured. Yeah, I can do all of this with one command. Whoa. Alright, so

34:38

Speaker 1: we're gonna go ahead and try this now and go back out and uh yeah. Thank you. I'll just go back in with Something different. Ah no. Oh, good call. The nerves are getting So Docker Composing Django, and I'm just going to run Docker Compose up. Now I've already downloaded all of the files from before, which is why you're not standing here for 20 minutes while watching things download. I figured that would probably be a good idea. So it's up, it's running. We're going to go to localhost A And I have a website. Uh so this is running a database.

35:23

Speaker 1: Uh it's running Django. It's fully functional, and it took me one command and 50 seconds. Well done, sir. Well done.

Questions this talk answers

How can I teach programming without humiliating or discouraging beginners?

Don’t take control of a learner’s keyboard, judge their tools, troll them, or act surprised by questions. Instead, let them drive, explain debugging techniques, avoid jargon, encourage questions and breaks, and celebrate progress.

Discussed at 1:41

How do I use ES6 and SCSS across multiple Django applications?

Django Compressor Toolkit lets you map ES6 and SCSS processing to Node commands and import assets across Django apps while keeping static files inside those apps. The final assets can then be included through Django Compressor in a template, where they are transpiled, merged, minified, and executed.

Discussed at 5:34

How can I contribute a documentation fix to Django?

Search Django’s issue tracker first, file a report if the issue is not already known, and then submit a pull request. Even a small documentation change can be reviewed and merged, and Django’s contribution guides, sprints, and community channels help newcomers get started.

Discussed at 9:43

Why should I contribute to Django?

Contributing helps you learn how Django works, receive expert code review, participate in the community, and strengthen your open-source credentials when applying for jobs. Documentation fixes are a particularly accessible way to begin.

Discussed at 11:14

How should I explain programming concepts to complete beginners?

Explain what you are going to do, why or when it is useful, and how to do it. Avoid words such as “easy,” “simple,” “just,” and “only,” and use inclusive examples that reflect different people and conventions.

Discussed at 14:33

How can I debug a Celery task interactively with RDB?

Start RabbitMQ and the Celery worker, add the RDB breakpoint to the task, trigger it asynchronously from Django, and connect to the RDB session over Telnet. The session provides familiar PDB commands such as list, help, step, and next.

Discussed at 18:48

What does the Django Code of Conduct Committee do?

It handles and records Code of Conduct violations, supports conference organizers and moderators of Django community spaces, and works to provide a harassment-free experience. It also maintains processes for on-call response, reporting, record keeping, and community safety.

Discussed at 22:02

What is documented in the Django Code of Conduct Committee’s public documentation?

The documentation explains the committee’s membership, how members are added and removed, how reports are handled from submission to closure, on-call duties, decision-making, record access and retention, transparency, and statistics. It is publicly available under a Creative Commons license.

Discussed at 22:59

How can Django Girls communities support women after an introductory workshop?

Follow the workshop with structured learning such as code camps, study meetups, and projects so participants can apply what they learned. People can support this work by coaching, organizing, sponsoring events, offering scholarships, or contributing to the curriculum and related projects.

Discussed at 28:35

How does Docker prevent dependency problems in a Django project?

Docker packages the project and its dependencies in a container, so developers do not need to install every system requirement manually and can use the same setup across operating systems. A Dockerfile based on the official Django image can build and run a new project with very little configuration.

Discussed at 31:39

Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.

More videos by Joe Cronyn, Joseph Bane, Kenneth Love, Lucie Daeye, Ola Sitarska, Rachell Calhoun, Rostyslav Bryzgunov and Tobias McNulty

More videos from DjangoCon US