Ansible is a Python-based provisioning system, similar to the Ruby-based Chef and Puppet, which has been gaining popularity in devops. It’s written in Python, which means that if you want to use Ansible, you’ll need to know at least some (but not much) Python. In this talk, Glen Jarvis introduces Ansible, demonstrating how it works and how to use it for allocating and configuring servers.
Many Python developers, or developers new to Python, want to know they can best get handle multiprocessing — typically using threads, but sometimes using processes. This is a legitimate question, and often leads to disappointment when they hear about the GIL and related restrictions. However, threads aren’t the only way to handle concurrency in Python; we can learn a great deal from other paradigms and programming languages. In this talk, Sarah Mount introduces several of these ideas, and particularly message passing, and considers how and why we might wish to use them in Python.
Databases are a major factor in modern applications. There are at least two major axes along which you have to decide when choosing a database: SQL vs. NoSQL, and open source vs. proprietary. What considerations should you keep in mind when choosing? Baron Schwartz, who has long been active in the MySQL community and is the author of numerous blog posts and a book about MySQL performance tuning, gave this talk at Google in February 2014, in which he discussed the considerations that go into database choices. Even if you prefer a different database, it’s useful and interesting to hear the considerations that a MySQL veteran brings to the table, and how he sees the current state of the database world.
Clojure is a modern Lisp that runs on the JVM. In this interview, Clojure’s inventor Rich Hickey is interviewed by software industry veteran Brian Beckman about Clojure’s origins, ideas, and concurrency. This is a great introduction to Clojure, if you are new to it, if you want to understand its origins and design goals.
Functional programming provides programmers with a powerful set of techniques. Over the last few years, many programmers have brought these ideas into their work, in a variety of languages. But functional programming, like all programming techniques, isn’t a perfect solution to all problems. In this talk, Rúnar Bjarnason shows us where some of the problems are with functional programming, and where (and why) the tradeoffs are still useful. His examples are in Scala, but the examples are applicable to many functional languages.
Everyone talks about Smalltalk in reverent tones, but not too many people actually use it. Why not? Why aren’t there lots of people using Smalltalk nowadays? And what can we learn from this, to ensure that Ruby continues to be popular? In this talk, Bob Martin describes (starting with the beginning of the universe) the reasons why Smalltalk never caught on massively, and what the Ruby community can do to ensure that it doesn’t happen there, too.
Programming in a modern, high-level language means that you don’t have to worry about memory allocation; the language takes care of it for you. But this doesn’t mean that you can ignore the computer’s memory, or the garbage collector, completely: Knowing how memory allocation works, and how you can monitor your memory use, can improve the efficiency of your programs, and the quality of your code in general. In this talk, John Crepezzi describes how Ruby uses memory, including the garbage collector — how Ruby’s built-in objects and APIs allow you to inspect your current state, and where you might end up causing trouble for yourself if you aren’t careful.
PostgreSQL offers a wide variety of data types, which enable to us to create precisely defined, constrained, and accurate models of our data. PostgreSQL 9.2, introduced several years ago, included a “range” type, which lets you describe … well, ranges of data. In this talk, Jonathan S. Katz describes this new type, and shows what you can do with it. You might think that the range type isn’t that useful, but he demonstrates a number of examples of where it can be quite useful.
Programs are neat, and the world is messy. When we try to use software to model the real world, there is an inevitable clash. In this talk, John Feminella points to three things that are messy in real life — and that are even messier when you try to deal with them inside of your program. These things are character sets, time zones, and people’s names. His examples are in Ruby, but the problems he’s describing are universal across programming languages.