Andrew T. Baker: Demystifying Docker

Docker is sort of like a virtual machine, but not exactly. It lets you install applications more easily, and is extremely popular — but it’s hard for people to describe what it is, what it does, and why people are going ga-ga over it. In this talk, Andrew T. Baker introduces Docker to a Python audience. (So for example, he describes the Python-related Docker installations, and what extras they provide.) He explains how Docker simplifies application configuration and rollout, how it is different from (and similar to) other virtualization technologies, and where it’s going in the near future.

Dave Herman: Evolution

JavaScript has had, by any standard, a wild ride since it was first invented. No one expected it to be as successful, or as ubiquitous, as it is. In this talk, Dave Herman discusses the evolution of JavaScript, from the language’s humble beginnings to its high-speed, just-in-time compiled present, to the way in which it is moving toward the future. How can a language, used by hundreds of millions of people every day, change without breaking everything? What does the design process look like?

Tom Stuart: A Lever for the Mind

One of the most powerful and important ideas in computer science is abstraction.  (At least, that’s what they told me when I took 6.001 at MIT 20 years ago, and I’ve believed it ever since…) The power of abstraction isn’t that you can do new things, but that you can think about existing things in new and different ways. In this talk, Tom Stuart introduces the idea of abstraction, and demonstrates how and why it’s so powerful, and why it allows to reason in new ways. This talk isn’t about one language, or even specifically about programming, although it does include some Ruby code to demonstrate the ideas.

Ian Oszvald: Cleaning Confused Collections of Characters

The world is a messy place, and trying to make sense of it can be quite demanding for a program — or the programmer writing that program. If you’re trying to make sense of text files, such as Word documents or PDF, then it’s particularly difficult to extract useful meaning. Adjacent words in the final output might not really be adjacent in the file, character encodings might not be set correctly, and poorly standardized things such as measurements and dates can also cause trouble. For this reason, any sort of serious data analysis starts with the cleaning up of the data source, turning it into something that can be handled reasonably. In this talk, Ian Oszvald describes some of the Python programming techniques he employs in his job to clean data, so that he can then manipulate and work with it.

David Baumgold: Advanced Git

Git has become the standard version-control system in the open-source world — and increasingly, in much of the commercial world, as well. Many people are introduced to Git with a few basic commands, and so long as they stay within the world of those commands, they’re fine.  But when things go wrong, or when they need to use some advanced commands, such as rebase and squash, they get very confused and surprised. In this talk, David Baumgold tells us how (and why) to use some of Git’s more advanced commands. Not only will you know what these things do, but you’ll understand how they can help you to improve your development process.

Daniel Rocco: Pushy Postgres and Python

It’s common for applications to wait for data to arrive in a database. What’s a good way to do that? One is to poll the database every so often, checking to see if our data has arrived. But there’s another way — maybe the database can tell us when something has happened, and we can be informed asynchronously. It turns out that PostgreSQL supports just this sort of notification, using the NOTIFY and LISTEN commands. Moreover, if you’re using Python, you can easily subscribe to PostgreSQL’s notification channels, and wait for PostgreSQL to inform your Python program that new data has come in.  This talk, by Daniel Rocco, shows you how a combination of PostgreSQL and Python makes it quite easy to use these asynchronous notifications.

Michael Bernstein: Know Your Types — Bringing Static Types to Dynamic Languages

The programming world has been divided for many years between advocates of static typing and advocates of dynamic typing.  (Separately, we can discuss strong typing vs. weak typing.) . In this talk, Michael Bernstein teaches us what type systems, and static typing, really mean — and the advantages that they bring to the table. He then discusses how Haskell approaches types, and considers why Ruby doesn’t include any such type checking.

Jafar Husain: The Evolution of JavaScript

The move toward modern JavaScript continues, with ES6 coming in the near future, with a huge number of new features that make it into a more useful, flexible, and expressive language. In this talk, Jafar Husain describes not only some of these new features, but also the reasons why they have been added — and the ways in which we might want to use them. If you’re unfamiliar with such things as generator functions in ES6, then this talk will help you explain the excitement.

Jim Gay: Eastward Ho! A clear path through Ruby with OO

Even in an object-oriented language such as Ruby, there are many ways to write code. Some code styles are more in the spirit of OO than others. In this talk, veteran Ruby developer Jim Gay describes his theory of OO programming, in which we issue commands, rather than querying objects about their state. This leads, Gay says, to code that is easier to understand, debug, and maintain.  If you’re looking for ways to make your Ruby (or other OO) code clearer and more obviously intentioned, this code will likely give you some insights.

Adam Shook: Hadoop Basics for Big Data Rookies

This talk introduces Hadoop, the open-source system for storing and analyzing big data. How does it work? And (perhaps most importantly) what are some of the tools that are now included in the Hadoop ecosystem, which allow us to analyze data in new and different ways? In this talk, Hadoop expert Adam Shook introduces the entire Hadoop ecosystem, demonstrating simple (but telling) examples of how and where to use Hadoop (and related tools) in your applications.