[Video 321] Bradley Grzesiak: Simplify Challenging Software Problems with Rocket Science

We often think of “rocket science” as incredibly complex — certainly, far more complex than software. But it turns out that rocket science is possible because of techniques and tools that have been developed over the years, providing aerospace engineers with the ability to solve problems. In this talk, Bradley Grzesiak argues that the techniques used in aerospace engineering are not that different from those used by software engineers, and can help to inform how we work with software.  (As a bonus, he even shows how you can perform certain space-related calculations in Ruby.)

[Video 320] Allison Lacker: How I learned Django while working at Eventbrite

Many programmers get degrees in computer science, and then go on to work at high-tech companies. But the odds of you arriving at your first job (or any subsequent job) knowing everything that you need to do your work are pretty slim; you’re going to need to learn many different technologies in order to be a productive team member. Companies thus expect that you’ll need to learn, and allocate training budgets for developers. But even if you’re not taking a formal class, you’ll need to learn, on the job, many of the things that you’ll need. In this talk, Allison Lacker describes what she learned, and how she learned it, while working on a Django project at Eventbrite. What attitudes, habits, and interactions with her coworkers helped her to succeed? And what roadblocks did she hit along the way? All of us need to keep learning, and this talk describes one way that we can do this.

[Video 319] David Branner: The Programming Language Called Classical Chinese

We use the term “language” to describe a programming language, but we normally assume that there is a world of difference between human languages and programming languages. But what if there were a human language that could be described similarly to how we describe a programming language? That might provide us with some insights into the structures of both! In this talk, David Branner introduces us to classical Chinese, a language whose structure can be analyzed similarly to programming languages. Even if you don’t know any Chinese, this talk provides useful insights into the way that we people communicate with one another, and with our machines.

[Video 318] Christopher Neugebauer: Python’s New Type Hints in Action… In JavaScript

Python is a dynamic language, which basically means that data has types (but identifiers don’t). So s can point to a string, an int, a dict, or a function.  But there has been some movement in the last year or two to introduce some form of strong typing, or type hints, into Python.  What does this mean, and how does it work? One way to think about it is by looking at a similar idea that was implemented in JavaScript, known as TypeScript. In this talk, Christopher Neugebauer describes TypeScript, what it did for JavaScript, and how Python developers can (and should) look at the introduction of type hints in future versions of Python.

[Video 317] Dan Quan: Policing and Pairing: An Unlikely Preparation

Pair programming is a technique about which we hear a great deal. But how do you prepare someone to pair-program? How does someone learn to deal with the inevitable disagreements and relative strengths and weaknesses? Dan Quan is not just a software developer, but also a former policeman. In this talk, he describes how police work provided an excellent introduction to how pairing can and should work. How do you divide labor between partners?  How can (and should) you depend on your pair?  What do you communicate to your pair before you start work for the day?  If you are interested in pairing, then this talk should help you to prepare better and to understand what’s involved.

[Video 316] Iwan Vosloo: What’s the point of Object Orientation?

Object-oriented programming has grown from a new and interesting idea to a pervasive concept and paradigm in the programming world. But what is object-oriented programming all about? What problems was it intended to solve?  How does Python‘s implementation of objects differ from the original ideas that were proposed decades ago? What is subclassing supposed to do for us? And how is all of this supposed to help programmers get things done? In this talk, Iwan Vosloo introduces these ideas, and compares this theory with how Python does things. If you are new to object-oriented programming, or to Python’s view of objects, then this talk should help to answer some of the questions you might have.

[Video 315] Terence Lee: mruby — a Packaging Story Filled with Freedom

Ruby programs cannot be deployed as executable binaries. Rather, in order to run a Ruby program, you need the Ruby interpreter. This causes problems when you want to deploy programs to customers — they might not have Ruby installed, or they might not have the right version. A new version of ruby, known as mruby, is aimed at mobile devices and embedded use cases, and is thus quite small and lightweight. In this talk, Terence Lee describes how mruby’s smallness makes it appropriate for distributing applications, allowing programmers greater latitude in developing and delivering tools to their customers.

[Video 314] Jacob Burch: The Other Hard Problem — Lessons and Advice on Naming Things

It’s often said that there are two hard problems in programming, cache invalidation and naming things. And indeed, naming things is both hard and important because it affects the maintainability of our software — the ability of another person to read and modify what we have written. The computer couldn’t care less, but the people with whom you work care a great deal. In this talk, Jacob Burch introduces the problem, and provides guidelines (and examples) of how to think about naming identifiers in your programs for maximum clarity. He uses Python for his examples, but many of these ideas apply to general best practices, not just to one specific language.

[Video 313] Mads Torgersen: The Future of C#

C# is a highly popular language, used by many coders on the .NET platform. C# might have begun as a Microsoft clone (or version) or Java, but it has long since become a powerful and flexible language, beloved by many programmers. Like all programming languages, C# has evolved over the years, both in its internal architecture and implementation, and in the features it offers to developers. In this talk, Mads Torgersen describes many of the features we can expect to see in upcoming versions, and the reasons why those were added to the language.

[Video 312] Jacob Kaplan-Moss: Minimum Viable Security

Security is a big problem on the Internet, and Web applications need to have security baked in almost from the first day in order to avoid being attacked and/or exploited. But security needs and concerns can be so overwhelming that a new site might decide to put off worrying about security at all. In this talk, Jacob Kaplan-Moss describes which staff members should be thinking and worrying about security (everyone), how to plan for problems, and what to document — as well as considerations regarding the implementation of security policies in code and tests. If you’re a Web developer, then you should at least think about these security issues.