SQL vs. NoSQL has become a huge war, in some ways. Which is better? The answer is, of course, “it depends.” Each has its advantages and disadvantages. But PostgreSQL, which is becoming more of a platform than just a database, now offers us ways to combine SQL and NoSQL documents into the same database model. How does this work? When and why would we want to do this? In this talk, Jamey Hanson gives us a number of examples of how, when, and why combining SQL and NoSQL is both possible and preferable.
As your applications scale, you’ll likely find that your database is one of the major bottlenecks. There are a variety of options available for scaling a database server; one is master-slave replication, and another (but often trickier) is master-master replication. MariaDB, an open-source fork of MySQL, supports an add-on package known as MariaDB Galera Cluster, which offers a variety of replication options, including multi-master replication. How does it work? How do you configure it? And does this option apply to your needs? This talk, by Nirbhay Choubey, should provide you with most of the answers that you need.
If you have a popular Web site, then you’re going to need to deal with scaling issues. And one of the things that most popular Web sites do to handle such scaling issues is to add a CDN, or “content distribution network,” which increases the perceived speed to end usersand reduces bandwidth needs on the server. If you’re Netflix, then these issues are crucial to your business. In this talk, Dave Temkin describes how he helped Netflix to build a CDN using open-source tools, what problems they encountered, and what we can learn from what they’ve done.
How do you become an expert coder? It’s often suggested that you read good code — that by reading examples of good code, you internalize the right ways of doing things, and improve your own understanding and style. But where do you find good code? And how do you decide what’s good? In this talk, Saron Yitabarek describes her own journey toward code mastery, and what techniques she and a growing community use to improve. If you don’t yet know everything about coding (which means all of us), this talk introduces some ideas and techniques that you can (and probably should) adopt to improve how you see things.
I had to take lots of math courses before receiving my computer science degree. But in my day-to-day life, I’m probably more likely to use statistics — when reading the newspaper, analyzing data, or understanding Web application performance. Statistics is seen by many people as boring, but it’s both interesting (really!), and extremely useful. Crucial, even. In this talk, John Paul Ashenfelter describes why and how we can use statistics to describe data, and how this understanding can lead us to better decision making. If you ever thought that statistics was something you could or should ignore, this talk will hopefully convince you otherwise.
Every database needs to be backed up; the data is too important to lose, and there’s often no way to reproduce it. The standard backup program for PostgreSQL is pg_dump, but perhaps you want something with higher performance or greater flexibility. PgBackRest is one such tool that has is maintained and used by some members of the PostgreSQL community, which aims to solve many of the problems currently experienced when creating backups. In this talk, David Steele introduces PgBackRest, and describes its motivation, operation, and use cases.
Ember.js, one of the best-known front-end Web development frameworks. announced its 2.0 release earlier this week. What does that mean for existing Ember developers? What can we expect to see in this version (and what hasn’t changed since previous versions)? In this talk, Erik Bryn describes the changes that went into Ember.js 2.0, and the ways in which the Ember.js core team have tried to make the transition as smooth as possible for existing developers.
Ruby is a programming language that people love to use: It’s extremely flexible and fluid, and completely object-oriented. But the world is moving — to some degree, at least — away from objects, and in favor of functional programming, with shared, immutable data. Erlang takes this to the extreme, also allowing us to work with any number of processes, with a rock-solid virtual machine. Elixir is a new programming language that tries to marry these two approaches together. It feels like Ruby, but it sits on top of the Erlang virtual machine, providing all of the advantages that it offers. In this talk, Dave Thomas introduces Elixir, and demonstrates how this combination of flexible coding, immutable state, and high levels of concurrency can work together to provide a powerful coding paradigm.
Note that the slides and demonstrations are hard to read for much of this presentation; they’re available at http://gotocon.com/dl/goto-chicago-2014/slides/DaveThomas_ElixirThePowerOfErlangTheJoyOfRuby.pdf.
Yesterday’s video described the GIL in Python — its history, current usage, and future. It would seem that Python is destined to have a GIL in the foreseeable future. However, the PyPy alternative implementation of Python was designed to be a sandbox for new ideas, and for trying new ways of doing things in Python. One such idea is to bring software transactional memory (STM) to Python, simultaneously providing for concurrency and safety. How does STM work in PyPy? What does it change in the language? And why is this not already a part of Python? In this talk, Armin Rigo describes his work to integrate STM into PyPy, and what this means for Python developers now and in the future.
I often speak with people who have come to Python from Java or .NET, and really want to use threads. Their excitement decreases dramatically when they discover that Python’s threads are limited by the GIL — the “global interpreter lock,” which ensures that only one thread runs at a given time. Why does the GIL exist, what does it do, how does it affect Python performance, and what can we do about it? In this talk, Larry Hastings describes the GIL’s past, present, and future. If you’re a Python developer who is curious about what threads can and cannot be expected to do, and why the GIL still exists, this talk should be very interesting.