Show filters Hide filters

Refine your search

Publication Year
1-33 out of 33 results
Change view
  • Sort by:
49:07 DjangoCon US English 2017

Keynote - Testing in Django

The Django documentation section on testing starts with this: “Automated testing is an extremely useful bug-killing tool for the modern Web developer.” Nobody can argue with that. Testing is an integral part of modern software development, and Ana’s talk will offer an in-depth overview of how the Django testing framework evolved; showcase some common techniques, tools, and best practices; talk about speed improvements; and guide you through a real-world example of testing a Django app. Testing is fun, isn’t it?
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
28:10 DjangoCon US English 2017

Live Long and Refactor

Refactoring major components of a live application with many users can be daunting. The stakes are even higher when the users are paying for your product. This talk covers how to approach building and incrementally deploying a complex refactor. Using a case study, I will walk through what makes major refactors so challenging, what you should avoid, and what can make them easier in the future.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
35:59 DjangoCon US English 2017

The Power and Responsibility of Unicode Adoption

Communication is difficult. Whether between humans, machines, or a combination of the two, trying to translate meaningful information is a lossy process. Converting programming languages to use the new Unicode standard is hard, but once it’s in place, you get this marvelous feature-add: emoji compatibility. No longer do we have to make faces with symbols or use platform-specific emoticons. Rejoice in the extended character set. Emoji have a rich history as a way to allow the communication of ideas in a reduced amount of data. They date back to a time where this was important: SMS communications in Japan. However, as social networks feverishly try to clamber onto this bandwagon, their implementations of the standard create issues with miscommunication that aren’t possible with a 12×12 pictograph. We’ll discuss the history of emoji, cross-platform adoption, the Unicode standard, and emoji accessibility in web applications.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
43:10 DjangoCon US English 2017

The denormalized query engine design pattern

Most web applications need to offer search functionality. Open source tools like Solr and Elasticsearch are a powerful option for building custom search engines… but it turns out they can be used for way more than just search. By treating your search engine as a denormalization layer, you can use it to answer queries that would be too expensive to answer using your core relational database. Questions like “What are the top twenty tags used by my users from Spain?” or “What are the most common times of day for events to start?” or “Which articles contain addresses within 500 miles of Toronto?”. With the denormalized query engine design pattern, modifications to relational data are published to a denormalized schema in Elasticsearch or Solr. Data queries can then be answered using either the relational database or the search engine, depending on the nature of the specific query. The search engine returns database IDs, which are inflated from the database before being displayed to a user - ensuring that users never see stale data even if the search engine is not 100% up to date with the latest changes. This opens up all kinds of new capabilities for slicing, dicing and exploring data. In this talk, I’ll be illustrating this pattern by focusing on Elasticsearch - showing how it can be used with Django to bring new capabilities to your application. I’ll discuss the challenge of keeping data synchronized between a relational database and a search engine, and show examples of features that become much easier to build once you have this denormalization layer in place. Use-cases I explore will include: Finding interesting patterns in your data Building a recommendation engine Advanced geographical search and filtering Reacting to recent user activity on your site Analyzing a new large dataset using Elasticsearch and Kibana.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
34:43 DjangoCon US English 2017

Serverless Django

You’ve probably heard the buzzword by now - “serverless”. It’s a new type of application architecture where traditional web servers are replaced by ephemeral cloud services. But what does it mean for the average Django user? Hint: lower costs, more scalability, more capabilities and less ops tasks to worry about! First, this talk will explain what “serverless” really means for you, and provide an overview the advantages and disadvantages of event-driven server-less architectures. Next, we’ll demonstrate how easy it is to migrate your existing Django CMS application to run on AWS Lambda by using the Zappa framework, including some real-world issues you might bump into. Then, we’ll show how to implement some of the most common Django patterns as part of a server-less architecture - uploaded avatar image processing, batch and timed sending of email, and long running tasks like statistical aggregation. Finally, we’ll show how to scale up your server-less application to trillions of events per year by distributing your app to dozens of data centers all around the globe, and do an ultimate cost analysis of your new system. You’ll leave with new ideas on how to save money and stress on your existing applications and cool new ways to implement features in your next app!
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
42:39 DjangoCon US English 2017

GraphQL in the wild

Since being released by Facebook in 2015, GraphQL has gained a lot of hype for being the best thing since sliced bread and REST APIs. But what is all the hype about and how does GraphQL fare in the real world? As a Django developer who has been using GraphQL in production since September 2017, I will discuss how we have addressed real-world concerns like performance and security. I will also highlight some of the joys of using GraphQL and why we have stopped writing REST APIs for new features. If you have never heard of GraphQL or have never used the Graphene library, have no fear. There will be an overview of what GraphQL is, as well as a demo on how to incorporate it into a Django project using Graphene.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
55:32 DjangoCon US English 2017

Keynote - Anxiety, Self-Advocacy, and Promoting Yourself

Over the last 10 years (and really, her entire life), Tracy’s struggled with anxiety while running her own business, navigating negotiations, and self-publishing several books. This keynote will go through recommendations for keeping your sanity in a dog eat dog world, reducing anxiety, feeling comfortable with negotiation, and above all, being the best advocate for yourself that you can be.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
39:28 DjangoCon US English 2017

Python & Spreadsheets

Spreadsheets are OFTEN terrible. They’re also everywhere! As one of the default forms of data exchange, learning to work with spreadsheets directly via Python can save time and effort. We’ll look at Openpyxl, a library that lets you do just that. We’ll look at at least two different (beginner-friendly)example cases: transforming one spreadsheet into another spreadsheet and converting a spreadsheet into JSON. I’ll also use my experience as a former accountant to highlight some of the issues around reading from and writing to a spreadsheet file and how you might deal with them. You MAY even learn to make new friends and grow the Python community! True Story!
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
26:56 DjangoCon US English 2017

The Beauty of ViewSets in Django Rest Framework

ViewSets will make your code shorter, more robust, and save you time during your development, if you let them. I have spent a lot of time dealing with writing view code, and dealing with all the urls, only to finally learn ViewSets. It immediately saved development time as well as making my code more simple. Generally to make a new, basic, endpoint in DRF for a model it would take about 15 minutes. That includes creating a serializer, urls, views, and testing it the browser. Now that same endpoint is more easily understood and done, all the steps, in less than 5 minutes. Leaving you more time to worry about what your new app is supposed to actually do.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
41:19 DjangoCon US English 2017

Using Django, Docker, and Scikit-learn to Bootstrap Your Machine Learning Project

Reproducible results can be the bane of a data engineer or data scientist’s existence. Perhaps a data scientist prototyped a model some months ago, tabled the project, only to return to it today. It’s now when they notice the inaccurate or lack of documentation in the feature engineering process. No one wins in that scenario. In this talk we’ll walk through how you can use Django to spin up a Docker container to handle the feature engineering required for a machine learning project and spit out a pickled model. From the version controlled Docker container we can version our models, store them as needed and use scikit-learn to generate predictions moving forward. Django will allow us to easily bootstrap a machine learning project removing the downtown required to setup a project and permit us to move quickly to having a model ready for exploration and ultimately production. Machine learning done a bit easier? Yes please!
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
27:02 DjangoCon US English 2017

Understanding JavaScript Libraries via React and the React Ecosystem

After an initial foray into JavaScript in 2011, I actively avoided learning or using JavaScript. Then, in early 2017, JamBon Software took on a project to build a bleeding-edge JavaScript web app in Facebook’s React. Suddenly, I did not have a choice and had to learn JavaScript—versions 5 and 6—as well as Facebook’s React library with the entire JavaScript and React ecosystems behind it. This talk will give developers a framework to analyze the overwhelming number of tools in the JavaScript world by categorizing the types of problems currently being solved. By the end, you’ll walk away with a mental framework of the solutions being built today. We will start by looking at a history of JavaScript. This will allow us to discuss problems that developers need to solve in browsers when interacting with APIs. With a full understanding of the problems, we’ll turn our attention to discussing the types of solutions available and quickly discuss how different libraries like Angular, Vue, Inferno, and Cycle implement these solutions. The talk will then explain how to use React in tandem with Redux to build a tiny website. We will demonstrate how to use tools like Webpack, fetch, Promises, and thunks to enhance React to solve the problems previously discussed. Finally, we’ll end with a review of the material, and consider some of the topics being looked at by Facebook, Google and Microsoft. Outline: Libraries as Systems to Concretize Abstract Thought Understanding the Problem Node, NPM, and Yarn DOM-Focused JavaScript Libraries Understanding React Enhancing React Converting ES6 with Babel or Bublé Aside: Handling types with Immutable.js, Typescript, and Tern Handling Modules with Webpack or Rollup Polyfills for Behavior Replacing XMLHttpRequest with fetch Using Promises and thunks for asynchronous actions React-Router for Single-Page Apps Redux-Forms for User Input Linting with ESLint Testing in 2 minutes React with Django Conclusion Review of Problems Review of Solution Types Break Down: Modules vs Syntax Transformations Performance with InfernoJS Future JS.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
26:06 DjangoCon US English 2017

Type UWSGI; Press Enter; What Happens?

This talk is aiming right at professional or experienced amateur Django developers who want to learn about one of the core technologies used in modern web apps. We’ll do our best to make it accessible for all, but it’s going to be best to come in with working knowledge of web applications and a rough understanding of web servers. We’ll be covering how uWSGI serves Python web applications, how it manages workers and processes, and how it works with the operating system to handle networking. Our goal is to show how this works both in code and through abstractions, recognizing that different audience members are going to grasp things in different ways. The hope is that attendees will walk away with a working of knowledge of how their apps interact with the network and the operating system through uWSGI, and that a commonly-used but less-understood piece of software will become demystified.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
37:14 DjangoCon US English 2017

Accessibility Matters: Creating a Better Web

Overview This talk will go through accessibility concerns on the web through example sites and code with both good and bad accessibility to experience what some users have to struggle with daily. We will cover well-known concerns such as low vision/color blindness and deafness, as well as attention issues and autism, and discuss the limitations and abilities of various alternative input devices that people with motor control issues rely on. Short and long-term fixes will be demonstrated and taught, with the overall goal being that the participants leave knowing how to find and solve accessibility problems. Why Bother With Accessibility Not only should you want everyone to be able to easily use your site, but having an accessible website comes with a variety of benefits. According to the U.S. Census Bureau, around 19% of Americans have a disability, which is a large potential audience for any site. Many companies also fall under accessibility laws they might not even be aware cover their products, with lawsuits becoming more prevalent in recent years, and showing a good faith effort to improve your products’ accessibility can help keep your company out of hot water. Accessible web development also tends to lead to better UX and a happier user base. And, another plus: It will save devs time and frustration when they’re working with the code, since good HTML is enforced. Who This Talk Is For Anyone who wishes to learn more about accessibility. While we won’t be going over the absolute basics of accessibility in detail, the examples and resources will be easy to understand for people with very basic knowledge of web development.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
38:03 DjangoCon US English 2017

Butter smooth, interactive applications with Django and Websockets

Web applications have changed significantly over the years – from simple static pages, to sprinkling interactiveness with JQuery/AJAX, to full dynamic single page apps. Through each evolution, we’re adding more complexity, more data and more asynchronous behavior to our applications. In this new world, where does the synchronous nature of Django’s request-response cycle fit in? My talk will focus on the topics around asynchronous Django applications. I’ll be sharing some lessons we learnt while building and scaling an interactive web application within the confines of Django and django-channels. This topic is interesting because there’s been a lot of interest with meteor-like frameworks that have synchronized state between the frontend and backend. My intention is to show the audience that you can accomplish the same end-result with Django, without the need to learn and deploy a brand new framework. An outline I have in mind: What does asynchrony mean, and why you need it. Traditional methods of achieving asynchrony (delayed jobs using worker queues like celery, long-polling for messaging, etc.) Why django-channels changes the game. How to architect your state. What are the available options for deployment. Gotchas, and what to do when things go wrong. Just a basic knowledge of Django is required, as the topics are transferable to other frameworks. We did not have to monkey-patch any of the drivers to achieve asynchrony, so what you’ll learn at my talk will apply cleanly to a stock Django.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
34:09 DjangoCon US English 2017

Why can't everyone just do what I want them to? Leadership, management, and working with people who don't think like you

Do you pride yourself on your post-it and Sharpie collection? Do you set appointments for yourself in your own calendar - that you actually show up for? Do you write to-do lists on your hand, since you’ll forget if the to-do isn’t right in front of your face? Do you own - and use - a label maker? Do you hate New Year’s resolutions because the whole idea of starting new habits on January 1 is an artificial construct? People are weird. We all have some pretty particular ways we think, work, and get motivated. It’s hard enough when we’re just trying to focus on ourselves, but it gets even more complicated when we add other people to the mix. What happens when a whiteboard person has to work with a spreadsheet person - or even harder, lead a whole team of spreadsheet people? This talk will focus on practical tips for working better with others - especially when you’re in a leadership or management position, although we all lead in different ways. We’ll start off with an overview of productivity and motivational styles, identifying how they influence the way we all think and work. Then, we’ll pinpoint how our own personal productivity and motivational styles impact us and those around us. After that, we’ll figure out how to look for clues about our colleagues’ working styles. Finally, we’ll talk about strategies for bridging our working styles with those of the people around us. You’ll leave with insights about what makes you tick, plus actionable tools to improve your leadership skills and enhance your working relationships.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
24:29 DjangoCon US English 2017

Write an API for Almost Anything (or The Amazing Power and Flexibility of Django Rest Framework)

This talk will feature a few off-the-beaten-path applications of APIs. Since the combination of Django and DRF makes it so easy to get a simple API running, it becomes a very powerful, flexible, and expandable tool for a variety of uses. The only thing these applications may have in common is their need to share data across the web. Whether you have not yet tested the waters of Django Rest Framework or you are a DRF veteran, this talk will inspire you to think both big and small when considering its potential uses.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
40:49 DjangoCon US English 2017

DjangoCon US 2017: Lightning Talks Day 2

  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
43:25 DjangoCon US English 2017

Functional Programming in an Imperative World. Maybe

The pillars of FP Let’s start by looking at the core concepts that differentiate FP from the OO / imperative style most programmers are familiar with. Along the way I’ll introduce you to: Immutable data structures. Having data structures that don’t change makes your code safer, especially when dealing with concurrency and parallelism, but they require you to approach solutions in a different way than you would with mutable data. “Pure” functions. Pure, or idempotent, functions do not mutate state or cause other kinds of side effects. As a result, you are guaranteed that every time you call a function with the same parameters, you will always get the same value. Recursion: While recursion is something most of us know about, it’s not something we tend to use often in imperative programming, and with good reason. Nonetheless, it’s a worth knowing about it’s various forms. Function composition. When you have pure functions that handle only one task, you can build larger, more complex and more beneficial programs by composing functions together to form new functions. First class functions: passing around functions as parameters and return values, just like any other object. The holy trinity: map, reduce, filter. These three functions are the work horses of FP, helping us manipulate and transform data quickly and elegantly. FP in python Now, let’s take a look at how we can or cannot apply these concepts in python. While most data structures in python are mutable, tuples are a built in immutable data structure that we have at our disposal. We’ll see that tuples have a solid place in python, but they’re not as easy to work with as we might like. Recursion isn’t really well developed in python (on purpose) so let’s take a look at it’s pitfalls and how to avoid them. Function composition is something you probably already do some in python and perhaps don’t even know it. The trinity: Filter is easy, we just call it “list comprehension” Reduce. Let’s try to get beyond flattening nested lists and doing tricks with math. Map. You probably don’t use this enough in python so let’s see if we can change that. FP is great! Maybe. Now that we’ve seen how FP can be used, we really need to decide if it should be used. Python is not a functional programming language, despite the tools it has. We’ve talked about some of the technical drawbacks to these tools, but we also need to decide if working in an FP paradigm is right for our work environment. We’ll look at some examples of where running into FP can be jarring and talk about the additional cognitive load on co-workers who aren’t used to seeing these tools in place.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
42:19 DjangoCon US English 2017

Alexa...

As the universe of IoT continues to grow at a rapid pace, our abilities to interact with these devices can be useful. As an added bonus, developing these skills can be fun too! I’ll take you through my journey of developing my first Alexa skill in Python for Amazon Echo devices aptly named Happy Days. It is a random quote generator that delivers positive quotes. I’ll go over the skills of how to get Python to talk to Alexa and how to dump that code into Lambda for a seamless delivery between Amazon Web Services and the Alexa Skills Kit in just a little over 200 lines! Never developed an Alexa skill before? Don’t worry, I hadn’t either. I’ll provide plenty of resources to help get you started on a path you’ll never want to leave as an Alexa developer. Building an Alexa skill helps: Further develop your own skills in Python. Gain familiarity with Amazon Web Services’ Lambda service which allows you to run code without provisioning or managing servers. BYOC - Bring your own code! (Python, Node.js, Java, and C#). Gain familiarity with Amazon Web Services CloudWatch service which helps monitor and log activities with your Amazon Web Services resources which is helpful for troubleshooting. Gain familiarity with the Alexa Skills Kit which is the platform behind Alexa development. Learn about tools and resources you can take advantage of to ensure you have a meaningful development experience. Learn how to “talk” to the Alexa Skills Kit through your Python code. Helpful reminder that user experience is key!
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
34:16 DjangoCon US English 2017

DjangoCon US 2017: Lightning Talks Day 1

  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
28:00 DjangoCon US English 2017

Preventing headaches with linters and automated checks

While it’s very common to enforce PEP8 code style with tools like flake8, it’s rare for Django projects to use any other types of tools for automated checks. However, linters and automated checks are a good way to enforce code quality beyond code style. Human-based code reviews are great, but if an experienced programmer leaves the organization, all quality-related knowledge they have will be gone. One way to prevent this is to make developers consolidate their knowledge as custom check tools. Instead of repeating to every junior programmer how they should code, experienced developers should write tools to do that for them. Having this kind of “executable knowledge” is great to ensure long-lasting good practices in organizations. Thankfully, Python already has a number of extensible linters and check tools that can be used to consolidate knowledge. Also, Django has the System check framework, which can be used to write custom static validations to Django projects. In this talk, we’ll discuss existing linters and tools, what benefit they bring to Django projects, how to extend them and how to build custom ones. Combined with IDEs, pre-commit hooks, and CI tools, linters can validate code at programming time, commit time, or CI time, thereby ensuring good practices in all development workflow.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
40:23 DjangoCon US English 2017

Taking Django Distributed

While some code happily lives on a single server forever, most big projects will have to cross the boundary into running both their application and storing their data across multiple systems. The basic strategies are well-known, but we’ll take a look at what to do as you cross the painful threshold where you can’t run your app as a monolith or store everything on a single database server. Among other things, we’ll look at how to split up business logic and application code to run on different servers, how to scale to handle different kinds of web traffic (read-heavy, write-heavy, and long-connections/WebSockets), when and how to make parts of your code not run inline with HTTP processing, strategies for storing data across multiple machines, and how to structure your engineering team to best cope with all these changes. We’ll also look at a few apparently innocuous decisions and the spiral of bad performance they lead to, and how to recognise some of these common problems so you can avoid them yourself in future.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
43:33 DjangoCon US English 2017

DjangoCon US 2017: Lightning Talks Day 3

  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
23:56 DjangoCon US English 2017

Practical Unit Testing in Django

This talk is an opportunity for you to explore practical ways of improving the test code you write. Unit testing can be challenging, but with the right toolbox of techniques, it is much easier to write unit tests that not only enable high degrees of code coverage, but assurance on each action of your code. Django provides an excellent test environment that facilitates testing across the whole of a project, however Django’s documentation and many online examples focus on integration tests. Any typical use of the Django test client is an integration test. Tools such as selenium also provide a frame work for usability tests, functional tests or integration tests. What is missing in this is a close look at unit tests. It is difficult to obtain high code coverage with integration tests alone. This talk will build on Daniel Davis’ DjangoCon2015 talk “Why Unit Testing Doesn’t Have To Be So Hard”. That talk introduced the concept of using mocking to deal with the complexity of unit testing and gave a number of simple examples. In this talk, we will apply mocking, dummy objects and harnesses to unit test in the Django environment. We will focus first on class based views. Django provides an extensive Generic Class Base View hierarchy of base classes and mixins. These define a series of methods that focus on various elements of the response process. For more complex applications, this system provides much of what is needed but often customizations are needed and these can take the form of subclasses overriding one or more methods, or perhaps mixins that are built to implement abstractions of these customizations. In order to unit test these customizations, we want to place each individual method under test. To obtain strong assurance of code performance, we want to place under test each action of the code, plus its coupling with its base class(es). A test harness, mocks and dummy objects all assist in this process and we will explore examples of such. Mocks particularly facilitate our tests by us being able assert on what is passed on other method calls and on the super() call. Mixins are used to implement customization abstractions. Their methods can be unit tested making use of dummy subclasses. Form classes also benefit from unit testing. Form classes may define clean methods for validation, and these clean methods can be called directly in unit tests for both valid and invalid data. Some modelform classes may implement business logic in their save() methods and these also highly benefit from unit testing. Both forms and views often make use of the ORM. When performing integration testing, this often means setting up test fixtures, but for unit testing it might be much more efficient to mock out ORM calls such as filter(), all(), count(), etc. Sometimes code under test will chain these ORM functions and this also can be mocked. We will then consider a more complex example of a view that makes use of an inlineformset. inlineformsets are more complex form objects, but various approaches can be used to unit test views that make use of formsets (along with unit tests of the formset itself). We will close with some template unit testing. The content of this talk is built on examples taken from real systems implementation. These should give many Django practitioners a boost in their day to day testing toolkit.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
42:54 DjangoCon US English 2017

The 10 Commandments of Community Organizing

Welcome to the advanced class on community organizing. You’ve got a decent amount of members in your Meetup.com group, you hold events fairly routinely, maybe you’ve pulled in some legit speakers at your last conference or event … and you want to do more. This talk will focus on community organizing for growth and longevity by building out teams, improving communications, implementing processes, and most importantly will discuss how to maintain sanity in your work-life-volunteer balance. If you’ve ever had to answer the question “Oh, this ISN’T your full time job???” - this talk is definitely for you. If you’re just starting out organizing and don’t want to fall flat on your face, this talk will be very pragmatic for you.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
29:32 DjangoCon US English 2017

Flourishing FLOSS: Making Your Project Successful

You maintain an Open Source project with great code? Yet your project isn’t succeeding in the ways you want? Maybe you’re struggling with funding or documentation? Or you just can’t find new contributors and you’re drowning in issues and pull requests? Open Source is made up of many components and we are often better-trained in methods for writing good code, than in methods for succeeding in the other dimensions we want our project to grow. In this talk we’ll explore the different components of an Open Source project and how they work together. After this talk you’ll be well-equipped with a ideas and strategies for growing, cultivating, and nourishing your Open Source project. For your project to succeed, all of its non-code components must be well-maintained. What are these different components and what methods can we learn to maintain them? Build real relationships with your sponsors and determine ways how both sides can benefit from this relationship, don’t just ask people for money. Establish a good communication system with your contributors: Keep them informed, listen to their feedback and input, make them feel heard. Thank the people who worked on ticket triage or marketing, not just those who wrote code, in your release notes. Make it easy for new contributors to get started: Write and maintain good documentation, answer questions in a friendly and timely manner. Market and evangelize in the right places and at the right time: Give conference talks, organize sprints, keep your project’s Twitter account active, always curate new and interesting content on your blog or website. Implement a Code of Conduct and enforce it if needed: Make your project a safe space to contribute for everyone. With these methods and a half-dozen others, you’ll handle beautifully all the components your project needs to succeed. Outline Introduction - Who am I? What is this talk about? What is Open Source? Overview of the different components that make up an Open Source project Growing, cultivating, and nourishing your Open Source project - Or how to make your project more successful Operations Funding Marketing Branding Evangelism Documentation Community Diversity Contributors Cultivating new contributors Keeping current contributors happy Communication Efficient and sustainable processes Ticket triage Managing the pull request queue Main takeaways Q&A.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
24:40 DjangoCon US English 2017

Becoming a Polyglot: Lessons from Natural Language Learning

As a trained linguist and former university language instructor, people often assume that my natural language* (spoken, signed, or written) learning analysis background made learning to code easier for me. They might say something like “That makes sense, they’re languages, right? They have syntax.” These casual comments seem true on the surface when talking about parts of speech and variable types. But once you dig deeper, it becomes clear that there are far more differences than similarities between these types of languages despite the shared name. However, many skills and methods I have utilized in learning languages and teaching languages as an adult to adults have served me well as a developer. This talk first addresses key points of divergence between learning a natural language and a programming language. Perhaps most importantly, natural languages are meant for communicating with people and programming languages are meant for giving a computer directions. However, many areas of overlap exist in learning and perfecting these skills; these shared aspects of learning are the primary focus of this talk. (* And, yes, that’s the same ‘natural language’ as in ‘natural language processing.’)
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
23:43 DjangoCon US English 2017

Getting the most out of Django’s User Model

Django’s User model is nice, but the fields it provides out of the box are minimal. We frequently need to associate our own custom data with a user, and luckily Django provides ways for us to add to its built-in User model. This talk will help novice Django developers understand which options are best when it comes to getting the most out of the Django User model. I’ll start by talking about the built-in Django User model and what it has to offer. Then I will identify scenarios when the User model might not be enough for a project, and why someone might want something with more flexibility. Then we’ll look at the different ways to get the most out of the Django User model. There are two main methods I’ll cover: Extending the User model Creating a custom User model Extending the User model: Extending the User model is handy when you only need to add a few extra fields. There are two main ways to do this: using a proxy model, and using a OneToOneField. I will cover the pros and cons of each, and give examples for implementing each. Creating a custom User model: With this method, you can substitute Django’s default User model with your own. Though more complex, a custom User model is particularly useful when you need to uniquely identify users by email address instead of by username. I’ll go into a couple more scenarios where a custom User model would be helpful, and show examples of implementation. Lastly, I will show how each method works with the default Django admin, and how they can be managed there.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
23:47 DjangoCon US English 2017

Get a Jumpstart on Collaboration and Code Review in GitHub

Even though open-source collaborators and code reviewers are needed more than ever, the few git learning resources that focus on these subjects are not beginner friendly. This is a missed opportunity! As the DjangoCon US Website Chair, I review pull requests submitted to the website repo. This has given me the opportunity to develop a beginner-friendly, best practice GitHub workflow. I can jumpstart your collaboration and code review skills by sharing what I’ve learned with you. This talk is for anyone, but one of my goals in giving it is to encourage other women to take leadership roles.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
28:36 DjangoCon US English 2017

Programming Post-Progeny: A New Parent's Perspective

When my daughter appeared on the scene in October 2017, my life was turned upside down. As I was returning to work, I found that previous strategies for managing my time weren’t up to snuff and I needed to create new ones if I was to be effective at my craft. No longer did I have 15 minutes to “get in the zone” - I needed to get things done in any time available. I learned to carve milestones out of minutes (sometimes) and will share what did (and didn’t) work for me. I also share stories about my general journey of becoming a parent that may be helpful to anyone thinking about becoming a parent (or just wondering what it might be like!). Or you could just come to the talk for the cute baby pictures - they make everyone smile!
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
26:46 DjangoCon US English 2017

The Monster on the Project

Abusive behavior can have profound effects on personal relationships but it can also make open source contributing and office life miserable. For those stuck in a team with co workers who exhibit toxic behavior, going to work every day can feel like going to a battlefield. Knowing how to identify and how to respond to unreasonable behavior is vital. In this talk we will look at the ways we can improve our office and FOSS communities by recognizing, managing and gracefully removing this toxic behavior. Take away: What abuse looks like How it affects those around it Steps to take if you are the target of abusive behavior How to manage toxic people in your project.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
24:04 DjangoCon US English 2017

Stumbling Through Django and How Not To

If you’re a beginner about to embark on a new Django project adventure, this talk is for you. When I started my first Django project, I took the “Sure, I think I can figure that out” approach, which is fun! And also dangerous. But exciting! And also horrible because I caused myself a lot of trouble and barfed on my keyboard. (Metaphorically.) Oops. My hope for this talk is to pass along lessons I learned the hard way, and save the world. Or at least prevent some frustration. :) We’ll talk about version control, structuring your project, and how to handle top secret stuff. We’ll also talk about throwing house parties without causing anaphylaxis, pregnant daddy seahorses, velociraptors, and friends. I promise all of that is related to Django.
  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
14:42 DjangoCon US English 2017

Orientation Event

  • Published: 2017
  • Publisher: DjangoCon US
  • Language: English
out of 1 pages
Loading...
Feedback

Timings

  187 ms - page object
  135 ms - search
    6 ms - highlighting
    2 ms - highlighting/33211
    1 ms - highlighting/33174
    1 ms - highlighting/33206
    1 ms - highlighting/33204
    2 ms - highlighting/33184
    2 ms - highlighting/33205
    1 ms - highlighting/33180
    0 ms - highlighting/33210
    0 ms - highlighting/33217
    0 ms - highlighting/33188
    1 ms - highlighting/33190
    1 ms - highlighting/33202
    1 ms - highlighting/33198
    1 ms - highlighting/33176
    1 ms - highlighting/33173
    2 ms - highlighting/33171
    0 ms - highlighting/33181
    0 ms - highlighting/33214
    1 ms - highlighting/33178
    0 ms - highlighting/33177
    1 ms - highlighting/33196
    1 ms - highlighting/33192
    1 ms - highlighting/33218
    2 ms - highlighting/33207
    0 ms - highlighting/33209
    1 ms - highlighting/33194
    2 ms - highlighting/33199
    2 ms - highlighting/33216
    2 ms - highlighting/33195
    1 ms - highlighting/33189
    1 ms - highlighting/33197
    0 ms - highlighting/33187
    1 ms - highlighting/33213

Version

AV-Portal 3.8.0 (dec2fe8b0ce2e718d55d6f23ab68f0b2424a1f3f)