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.
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.
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.
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.
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.
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.
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.
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.