One of the things that my students and clients most ask for in PostgreSQL is multi-master replication. That is, they’re OK with the existing master-slave replication, in which one server handles both reads and writes, and the others (slaves) are read-only. In this talk, PostgreSQL core developer Andres Freund describes a number of different master-master solutions that have been proposed and implemented over the years, and describes a project on which he’s working that he hopes (and expects) will pave the way forward for multi-master replication in the coming years.
Many of us who work with relational databases don’t think too much about SQL. We use it, of course, but it’s easy to forget that SQL — like other languages — has grown, evolved, and improved over the years. There are many features included in modern SQLs, and PostgreSQL has included many of them in its recent releases. In this talk, Markus Winand describes many of these features — how to use them, and also when to use them.
Type systems have long been used to enforce compile-time checks on data, to ensure greater program safety. But what happens when you have a distributed system? How easily can you define, and enforce, high-level abstractions and data types across multiple machines, processes, and languages? In this talk, David Renshaw describes Cap’n Proto, his system for describing such a type system. He also describes the type system in Rust, in which Cap’n Proto is implemented — and discusses how type systems can (and should) be used to encourage sharing of data, in a robust and predictable way.
We all write functions. But do we create functions that are effective — efficient in the ways that they work, and in the ways that we invoke them? How (and why) should we take advantage of Python‘s many supports for functional arguments? Why should you consider using generators, rather than returning lists? In this talk, Brett Slatkin provides numerous examples of how we can improve our functions. If you’re a Python developer who wants to take their functions to the next level, this talk will provide you with some good, new ideas.
Data science doesn’t exist in a vacuum. Data scientists work with companies, governments, non-profits, universities, newspapers, and other organizations. Each organization has its own priorities, and has its own take on data science — why to use it, and what to do with the results it produces. In this talk, Cathy O’Neil describes the different types of motivations and pressures data scientists encounter, and what it’ll take (hint: communication, connections, and community) for high-quality data science to be increasingly ubiquitous and useful.
Pair programing is widely viewed as a boon to code quality and better understanding. What is it like to pair program? What is like to pair with many different people? What techniques work best, and what should we avoid? In this talk, experienced pair programmer Joe Moore answers questions about pairing, and how you can use it to your benefit (and the benefit of your employer and/or clients).
Jose Valim is well known as a Web developer, consultant, and open-source contributor. He’s now also known for being the inventor of a new programming language known as Elixir, which combines many of the semantics of Ruby with the distributed, fault-tolerant nature of Erlang. In this talk, Valim describes some of the most common idioms used by programmers working with Elixir, and how they can ensure that our Web applications are as robust as possible.
PyPy, an alternative implementation of Python, has been gaining attention and interest over the last few years, in no small part because of its high speed. PyPy has, at its core, a small language called RPython (“restricted Python”) in which PyPy is implemented. In theory, you can use RPython to implement other languages. In this talk, Julian Berman demonstrates how to build a small language using RPython. If you’re interested in PyPy or in how programming languages work, this talk should be of interest to you.
How does a programming language work? One way to find out is to implement a new one. In this talk, Jeanine Adkisson describes how programming languages work — and then she shows how some of the basic parts could be implemented in Clojure.