Going to Technical Events is Awesome: A DjangoCon Experience

Flávio Juvenal
August 30, 2017
<p>We just got back from DjangoCon US! It was quite a marathon for us because <a href="https://twitter.com/xima">Filipe Ximenes</a> and I have been to <a href="https://www.vinta.com.br/blog/2017/talks-around-globe-djangoconau-pybay-djangoconus/">PyBay and DjangoCon AU too</a>, right before DjangoCon US. Besides having a great time presenting our talks, it was awesome to meet new people and reunite with old friends. From our blog, you’d guess that we really enjoy conferences. We do incentivize collaborators to attend them since we believe it's very important to keep in touch with the community. We also always learn a lot in conferences. But as it's said: "the best way to learn is to teach". This is why we not only encourage but also sponsor Vinta's team to give talks. Another great thing to do at conferences is to attend sprints. Coding with people you've just met or you only interact online is another great way to learn. You even get to contribute to libs you fancy. There were several other nice things we got from DjangoCon, keep reading for some highlights.</p><figure class="kg-card kg-image-card"><img src="https://vinta-cms.s3.amazonaws.com/media/filer_public/dd/68/dd68da9c-31ec-4f7d-abd0-87a9f8c09409/21122319_1236372479842748_8037445702218117928_o.jpg" class="kg-image" alt="DjangoCon attendees"></figure><h2 id="talks-we-enjoyed-the-most">Talks We Enjoyed the Most</h2><p>There were many good talks at the conference. Here are some we attended:</p><ul><li><a href="https://2017.djangocon.us/talks/keynote-2/">Testing in Django</a>: <a href="https://twitter.com/anabalica">Ana Balica</a> gave an excellent keynote on testing. Here is a <a href="https://twitter.com/xima/status/897506554974322688">taste</a> (pun intended) about what was discussed.</li><li><a href="https://2017.djangocon.us/talks/the-power-and-responsibility-of-unicode-adoption/">The Power and Responsibility of Unicode Adoption</a>: <a href="https://twitter.com/glasnt">Katie McLaughlin</a> talked about emojis, how they became popular, how they work, the problems with platform specific implementations and the importance of supporting representativeness. Katie is one of the organizers of <a href="http://2017.djangocon.com.au/">DjangoCon AU 2017</a> and is also en route to organize <a href="https://pycon-au.org/">PyCon AU 2018</a>. Anyone fancying a trip to Sydney?</li><li><a href="https://2017.djangocon.us/talks/autopsy-of-a-slow-train-wreck-the-life-and-death-of-a-django-startup/">Autopsy of a Slow Train Wreck: the Life and Death of a Django Startup</a>: Amazing talk with lots of insights from <a href="https://twitter.com/freakboy3742">Russel Keith-Magee</a>. He's also an organizer of DjangoCon AU and core committer from the Django project. Currently, he is putting a lot of effort in <a href="https://pybee.org">BeeWare</a>. My business partner, Filipe, contributed to it at the PyCon AU and DjangoCon US sprints. He earned this amazing coin after his first merged Pull Request!<br></li></ul><figure class="kg-card kg-image-card"><img src="https://vinta-cms.s3.amazonaws.com/media/filer_public/44/c9/44c9868c-184c-40b8-a05c-df9738a1394e/2017-08-29_113533.jpg" class="kg-image" alt="BeeWare coin"></figure><p>We really wanted to attend <a href="https://2017.djangocon.us/talks/understanding-javascript-libraries-via-react-and-the-react-ecosystem/">Understanding JavaScript Libraries via React and the React Ecosystem</a> by <a href="https://twitter.com/AndrewsForge">Andrew Pinkham</a>, but Filipe was talking at the same time. You can check Andrew's slides <a href="https://speakerdeck.com/jambonrose/understanding-javascript-libraries-via-react-and-the-react-ecosystem">here</a>.</p><p>We’d also highlight this 2 other talks we’ve watched and really appreciated:</p><ul><li><a href="https://2017.djangocon.us/talks/don-t-use-my-grid-system-or-any-others/">Don’t use my grid system or any others</a> from <a href="https://twitter.com/mirisuzanne">Miriam Suzanne</a>;</li><li><a href="https://2017.djangocon.us/talks/the-denormalized-query-engine-design-pattern/">The Denormalized Query Engine Design Pattern</a> from <a href="https://twitter.com/simonw">Simon Willison</a>.</li></ul><h2 id="our-contribution-to-the-conference">Our Contribution to the Conference</h2><p>Both Filipe and I gave talks at the last day of the event. Filipe talked about <a href="https://speakerdeck.com/filipeximenes/tasks-you-gotta-know-how-to-run-em">Celery tasks</a> (video <a href="https://www.youtube.com/watch?v=XjzyOyLbvN8">here</a>) and created a <a href="http://celerytaskschecklist.com/">checklist for Celery projects</a> as a reference to avoid headaches. We got good feedback for it and even ideas for some additional checklist items!</p><figure class="kg-card kg-image-card"><img src="https://vinta-cms.s3.amazonaws.com/media/filer_public/4f/7e/4f7e9e4b-07fe-4df4-8d5a-0358c77d6227/screen_shot_2017-08-28_at_52829_pm.png" class="kg-image" alt="Alt text"></figure><p>My talk was focused on <a href="http://bit.ly/djangocon-linters">Linters and Automated checks</a> (video <a href="https://www.youtube.com/watch?v=IMRHFlDxaqU">here</a>). I talked about how linters are made and how Django already has its own System check framework (didn't know right? <a href="https://docs.djangoproject.com/en/1.11/ref/checks/">Docs here</a>). People loved the idea of writing new checks for Django to make it more friendly to beginners and robust to any project. Can you spot the bug in the code below? No? That's why I wrote <a href="https://github.com/django/django/pull/8930">a new check to detect it</a>!</p><pre><code>from django.db import models from django.contrib.postgres.fields import ArrayField class Post(models.Model): tags = ArrayField(models.CharField(max_length=200), default=[]) </code></pre><p>Also, I researched a lot about which linters are available out there, and I wrote down all Python linters I could find organized by type on <a href="https://github.com/vintasoftware/python-linters-and-code-analysis">this curated list</a>. This is not only a source to find tools to assist you in projects, but also to get inspired and learn how to create your own linters. I hope people will consolidate knowledge in the form of linters more and more. Code for the demos of my talk <a href="https://github.com/vintasoftware/django-linters-talk-demo">is available too</a>.</p><p>Looking for talks videos? <a href="https://www.youtube.com/playlist?list=PL2NFhrDSOxgXmA215-fo02djziShwLa6T">They're available in this Youtube playlist</a>.</p><h2 id="awesome-open-source-projects-we-didn-t-know-about">Awesome Open Source Projects we didn’t know about</h2><p>On her talk, Miriam Suzanne mentioned <a href="https://github.com/oddbird/susy">Susy</a>, a responsive design-agnostic layout toolkit for Sass. Also, <a href="https://twitter.com/anabalica">Ana Balica</a> started to work on <a href="https://github.com/ana-balica/classy-django-forms">Classy Django Forms</a> during the sprints, forked from our <a href="http://www.cdrf.co/">Classy Django REST Framework</a>.</p><h2 id="projects-we-contributed-during-the-sprints">Projects we contributed during the sprints</h2><p>The sprints were productive! We've managed to contribute to 3 projects. First, <a href="http://www.fixmydjango.com/">FixMyDjango</a>, which we're creators and co-maintainers. Another one was Django itself, where I contributed with <a href="https://github.com/django/django/pull/8930">an additional automated check</a>, as suggested in my talk. Finally, we also did <a href="https://github.com/pybee/batavia/pulls?utf8=%E2%9C%93&amp;q=is%3Apr%20author%3Afilipeximenes%20">several PRs</a> to Batavia, one of the BeeWare projects.</p><h2 id="what-s-next">What's next</h2><p>There are still more conferences for Vinta to attend this year! The main one is <a href="http://2017.pythonbrasil.org.br/">PythonBrasil</a>, the Brazilian national Python conference. Vinta's team is going to attend and talk there!</p><p>If you have any DjangoCon experience that you'd like to share, let us know in the comments. Hope to see you in the next DjangoCon US!</p>