July 20–24, 2015
Portland, OR

Core programming concept conference sessions

5:00pm–5:40pm Wednesday, 07/22/2015
Kris Kowal (Uber)
Slides:   1-PDF    external link,   external link
Promises, streams, observables, and behaviors are some of the building blocks of event driven programming. What makes each of these tick and when would you choose one over another?
2:30pm–3:10pm Wednesday, 07/22/2015
Slides:   external link
You've decided to level up your Git skills and have heard that rebasing is where it's at. In this session we'll talk about: WHY rebasing can make it easier to untangle your project's history; WHEN you should use rebase; WHAT rebasing actually does to your repository; and HOW it actually looks when things go right (and how to recover when things go wrong).
4:10pm–4:50pm Wednesday, 07/22/2015
Caskey Dickson (Microsoft)
Slides:   1-PDF    external link
Did you know that some development practices actively encourage flow while others prevent you from ever getting there in the first place? This talk will lay out the conditions of flow, what established programming techniques encourage it, and strategies for finding ways to create flow sessions in your daily development life, regardless of what your established software-development lifecycle is.
5:00pm–5:40pm Wednesday, 07/22/2015
Mike Biglan (Analytic Spot), Elijah Hamovitz (Analytic Spot)
Slides:   1-BIN    2-PDF 
CQL3 has a relational-database-centric abstraction that hides many key details of the underlying storage. Though CQL can be an efficient and convenient tool to use when querying, knowing how CQL actually maps to Cassandra's storage structure is key to being able to create scalable and flexible data models.
1:30pm–5:00pm Tuesday, 07/21/2015
Slides:   external link
You've dabbled a little in version control using Git. You can follow along with the various tutorials you've found online. But now you've been asked to implement a work flow strategy and you're not really sure how (or where) to start. You have a lot of choices, we'll help you pick the right one for your project.
1:40pm–2:20pm Thursday, 07/23/2015
Slides:   1-PDF 
Many classic design patterns and traditional Python idioms remain relevant today. However, the language has grown, the problem spaces we address keep shifting, and best practices for software development have matured. Thus, the set of best-of-breed patterns and idioms has changed, some classics fading, new stars emerging. This talk explores today's realities in Python patterns and idioms.
2:30pm–3:10pm Wednesday, 07/22/2015
Ben Balter (GitHub)
Open source isn't open source without a license. GitHub is the de facto hub for creating and sharing open source software, but how much of it is truly open? How has license usage changed over time? How does licensing effect contribution, reuse, and project evolution? Join Ben Balter and Tal Niv, two of GitHub's legals for a quantitative analysis of license usage across all of GitHub's 19M repos.
9:00am–12:30pm Tuesday, 07/21/2015
Marc Sugiyama (Erlang Solutions, Inc)
Elixir is a functional programming language with a familiar syntax. In this tutorial we’ll explore the basics of the language, and why you want to use Elixir to write concurrent, scalable, and robust programs.
11:30am–12:10pm Thursday, 07/23/2015
Luciano Ramalho (ThoughtWorks)
Slides:   1-PDF 
Developments like the `concurrent.futures` classes, coroutine delegation with `yield from` and the `asyncio` module together represent a major new chapter in the evolution of Python, and are the best reasons to upgrade to Python 3. This talk will show how these tools bring concurrent programming within reach of even casual programmers, with dramatic boosts in throughput.
2:30pm–3:10pm Thursday, 07/23/2015
There's been a lot of talk about reactive programming lately, but nobody really knows exactly what it is. I'll first talk a little bit about what reactive programming is, and then we'll dive into practical examples on how to use it with any front-end technology and particularly with AngularJS. We'll see how beautiful and clean our code can be when we use reactive code in the front end.
1:40pm–2:20pm Wednesday, 07/22/2015
Amy Palamountain (GitHub)
Reactive programming is the trendy new way to build desktop and mobile apps. Reacting to user input over time can prove to be difficult, because of the enormous amount of state we need to keep track of. In this talk we will discover how to improve our reactive applications by removing the need for state entirely. This allows us to clearly reason about, and react to, user input over time.
9:00am–12:30pm Tuesday, 07/21/2015
Jarret Raim (Rackspace), Andrew Hartnett (Rackspace)
Attendees will learn general best practices for cryptography and key management, be able to generate, store, and verify passwords, protect data at rest with encryption, protect data from modification with signing and verification techniques, and generate, store, and use keys securely.
4:10pm–4:50pm Thursday, 07/23/2015
Slides:   1-PDF 
Test-driven development's great, but what happens when you find yourself working on code where automated testing took a back seat to being shipped? This talk looks at techniques for automated testing of late-stage or even production code, and how to use this to fix bugs in your code. Testing late in life isn't a lost cause any more!
11:10am–11:50am Friday, 07/24/2015
Jason Maxham (The Art Of Troubleshooting)
It's something we all do, but how it's done can be haphazard. I'm talking about troubleshooting, an often underappreciated skill. This talk will get you thinking about this critical discipline in a more formal way. We'll cover: Strategies: recipes to quickly get you from "broken" to "fixed"; Virtues: the mindset and behavior of a good troubleshooter; Cleaning up: learning from failures.
10:40am–11:20am Wednesday, 07/22/2015
Michelle Brush (Cerner Corporation)
The number of frameworks, patterns, platforms, and APIs available has exploded. Defining the architecture of a system requires navigating a sea of options. This talk frames architectural decisions in the context of behavioral economics. It covers how good or bad choice architecture can impact the software architecture and how organizations can guide engineers toward better choices.
4:10pm–4:50pm Wednesday, 07/22/2015
Nova Patch (Shutterstock)
Slides:   external link
Unicode is much more than just characters. The Unicode Consortium defines open standards for collating, parsing, and formatting data in much of the world’s languages. The Common Locale Data Repository (CLDR) is the largest standard repository of locale data along with specifications for its use, and is a powerful resource for software localization.
4:10pm–4:50pm Thursday, 07/23/2015
John Hugg (VoltDB)
One challenge in building distributed systems is actually running and testing distributed systems. This session will show how developers at VoltDB simplify development and testing using Docker and other container technologies.
10:40am–11:20am Wednesday, 07/22/2015
Jan Paul Posma (Brigade)
We don’t see how code executes. We take peeks, using console.logs and breakpoints, but they don’t tell the whole story. This talk shows future toolmakers and (non-) visual thinkers how to take off our blindfolds.
11:30am–12:10pm Wednesday, 07/22/2015
Joe Darcy (Oracle)
Slides:   external link
Learn about how floating-point arithmetic approximates real arithmetic, and lessons for more effective (and less surprising) numerical programming.