Vinta's Review of PythonBrasil[12]

Rob Novelino
November 4, 2016
<p><a href="http://2016.pythonbrasil.org.br/">PythonBrasil[12]</a>  happened in Florianópolis - SC and lasted for 6 days. We saw some amazing Keynotes from some awesome speakers, such as <a href="https://twitter.com/SagnewShreds">@SagnewShreds</a>, <a href="https://twitter.com/hannelita">@hannelita</a>, <a href="https://twitter.com/NaomiCeder">@NaomiCeder</a>, <a href="https://twitter.com/freakboy3742">@freakboy3742</a>, <a href="https://twitter.com/seocam">@seocam</a> we got to have a lot of community time getting to know new people from all around Brazil and still got to present 4 talks(Hooray!!). On the following a quick review of our talks and some links for a follow-up reading on the subjects.</p><h3 id="data-structures-and-collections-in-python">Data Structures and Collections in Python</h3><ul><li>by <a href="https://twitter.com/_aericson">André Ericson</a></li></ul><p>In this talk, we discussed data structures and collections of python. We talked about common mistakes that could affect a lot the performance of your code. Knowing which to use will help you write cleaner and faster code. From the built-ins to standard and third-party libraries python got you covered. If you want to read more about it:</p><ul><li><a href="https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt">Complexity of python operators</a></li><li><a href="https://www.youtube.com/watch?v=fYlnfvKVDoM">Brandon Rhodes talking more about it</a></li><li><a href="http://pyvideo.org/pycon-us-2011/pycon-2011--the-data-structures-of-python.html">Data structures of python</a></li><li><a href="https://www.buzzfeed.com/andrewkelleher/deep-exploration-into-python-lets-review-the-dict-module">Deep exploration into Python</a></li></ul><h3 id="how-to-build-good-libs">How to build good libs</h3><ul><li>by <a href="https://twitter.com/flaviojuvenal">Flávio Juvenal</a></li></ul><p>In this talk, we discussed good and bad APIs with real-world examples. For each thing learned, we come up with a practical checklist to be followed when building new APIs. That way we have more than abstract ideals like elegance, simplicity, and extensibility, we have hands-on advice to help anyone who wants to write a great API. A couple of more reads on the subject:</p><ul><li><a href="https://mollyrocket.com/casey/stream_0028.html">Designing and Evaluating Reusable Components</a></li><li><a href="http://people.mpi-inf.mpg.de/~jblanche/api-design.pdf">The Little Manual of API Design</a></li><li><a href="http://mattgemmell.com/api-design/">API Design</a></li></ul><h3 id="what-is-rest">What  is REST?</h3><ul><li>by <a href="https://twitter.com/xima">Filipe Ximenes</a></li></ul><p>In this talk, we explored a little bit of the history of how <a href="https://twitter.com/fielding">Roy T. Fielding</a> came to define REST in his doctoral thesis. Starting at the concept of the <a href="https://en.wikipedia.org/wiki/Memex">memex</a>, going through the invention of the HTTP by <a href="https://twitter.com/timberners_lee">Tim Berners-Lee</a>. This timeline showed how the web and REST are deeply related and also allowed us to understand that the concept of REST is much broader than APIs: proof of that is that the web itself is the best example of a RESTful system. After that, we explored the concept of <code>resources</code>, <code>representations</code> and <code>HATEOAS</code> to understand the importance of <code>links</code>. We then went through the 6 constraints of the REST architectural style. And finally linked all the concepts and showed how an API can be RESTful. We concluded that there are many useful concepts in REST, but at the same time, some of them are very hard to apply on real world APIs, so we should not be too picky and choose what is best for us and our clients. To read further on that subject, check:</p><ul><li><a href="http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven">REST API must be hypertext driven</a></li><li><a href="https://www.infoq.com/articles/roy-fielding-on-versioning/">Roy Fielding on Versioning, Hyperlinks and REST</a></li><li><a href="http://restlet.com/blog/2013/05/02/api-design-how-much-rest-should-your-web-api-get/">How much REST should your API get</a></li><li><a href="http://www.restapitutorial.com/lessons/whatisrest.html#">What is REST</a></li></ul><h3 id="define-a-customizable-boilerplate-using-django-react-and-bootstrap">Define a customizable boilerplate using Django, React and Bootstrap</h3><ul><li>by Lais Varejão</li></ul><p>In this talk, we guided you through the development process of a full stack, customizable Django, React and Bootstrap 4 boilerplate. First, we explained the concept of boilerplates and presented some well-known solutions, such as HTML5 Boilerplate and <a href="https://github.com/pydanny/cookiecutter-django">PyDanny’s Cookiecutter Django</a>. Then we showed the advantages of using a boilerplate, such as a faster setup time and compliance with strict guidelines. We followed by sharing our experience while developing <a href="https://github.com/vintasoftware/boilerplate">Vinta’s Boilerplate</a>. The process we followed, what we learned and how beneficial it was for the company and it’s clients. We covered the whole process, from the definition of the requirements and the chosen tech stack, like interactive UI with <a href="https://facebook.github.io/react/">React</a>, easy deployments with <a href="https://www.heroku.com/">Heroku</a> and Continuos Integration with <a href="https://circleci.com/">CircleCI</a>, through the template’s architecture. We clarified how Django, Webpack, React and Bootstrap 4 provide features that simplify the development of a customizable boilerplate and finalized by demonstrating how easy it is to setup and deploy it. Other examples to check on boilerplates, include:</p><ul><li><a href="https://github.com/vintasoftware/boilerplate">Vinta's boilerplate</a></li><li><a href="https://html5boilerplate.com/">HTML5 boilerplate</a></li><li><a href="https://github.com/pydanny/cookiecutter-django">Cookiecutter boilerplate</a></li></ul><p>[newsletter widget]</p><h3 id="and-some-photos-of-the-event">And some photos of the event</h3><figure class="kg-card kg-image-card"><img src="https://vinta-cms.s3.amazonaws.com/media/filer_public/27/73/27735cb4-4334-47e5-90ab-4f8d057948f3/30157154760_4d7639885b_z.jpg" class="kg-image" alt="Alt text"></figure><figure class="kg-card kg-image-card"><img src="https://vinta-cms.s3.amazonaws.com/media/filer_public/1d/ad/1dadafec-9751-444d-92c7-d75021c15634/29822424503_77c9579d9a_z.jpg" class="kg-image" alt="Alt text"></figure><figure class="kg-card kg-image-card"><img src="https://vinta-cms.s3.amazonaws.com/media/filer_public/18/69/18695ccb-ac06-4839-90b7-0a26c5221eab/30157671010_ceea6f8ba4_z.jpg" class="kg-image" alt="Alt text"></figure><figure class="kg-card kg-image-card"><img src="https://vinta-cms.s3.amazonaws.com/media/filer_public/37/dd/37dd41c4-c459-40d8-8de7-11ebf8e8920d/30368294171_269f257ca6_z.jpg" class="kg-image" alt="Alt text"></figure><figure class="kg-card kg-image-card"><img src="https://vinta-cms.s3.amazonaws.com/media/filer_public/be/dd/beddc0be-45c6-460f-99bb-a79e8e6bea58/30368392951_8751a1d6d7_z.jpg" class="kg-image" alt="Alt text"></figure><p>To check everything else that happened throughout the event go for the event's <a href="https://www.facebook.com/pythonbrasil">facebook</a> or <a href="https://twitter.com/pythonbrasil">twitter</a></p>