Sessions at QCon New York 2012 on Monday 18th June Conference day #1

Your current filters are…

  • From Crap to App

    by Mike Lee

    Bad reviews? Slow sales? Flamings bags of poo on your doorstep? Maybe your app sucks. But admitting you have a problem is only half the battle. How do you go about fixing it?

    Your instincts might tell you to lower your prices, add more features, or increase your marketing budget, but chances are, none of those things will work. In fact, it might be time to stop listening to your instincts, and start listening to the experts.

    Not self-proclaimed experts, but people who have actually shipped number one apps, garnered millions of downloads, and literally rolled around in big piles of money.

    Laugh and learn as Mike Lee, costumed avenger of interface abuses, plants his tongue firmly in his cheek to teach you ten things you can do to rehabilitate your lackluster software product.

    At 9:00am to 10:20am, Monday 18th June

  • Bayesian Inference with Foursquare Data

    by Max Sklar

    Foursquare has an enormous database of Users and Locations. However, when not much is known about a specific user or a specific location, it becomes difficult to make inferences. How can we leverage a large data set in order to make educated guesses about the properties of specific data points which don't have much information associated with it? The approach covers Bayesian logic, Conjugate Priors, and belief propagation.

    At 10:50am to 11:50am, Monday 18th June

  • Common Security Weaknesses in Java Web Apps and How to Avoid them

    by Joe Fisher

    Implementing secure Web Applications requires an understanding of broad range of vulnerabilities and how to avoid them.
    Secure application development is the product of a security focus that spans the entire SDLC, and that requires insight into
    how applications are attacked and compromised.

    In this talk we will examine common weaknesses found in Java Web Apps, and provide specific guidelines on how to avoid them,
    Access Control
    Session Hijacking
    Cross-site Scripting
    Command Injection
    SQL Injection
    Path Traversal
    Format Strings
    Error Handling
    Application Logic
    Multi-Tier Architectures

    Each vulnerability will be summarized, presented as a real-life J2EE scenario, and then the proper mitigation strategy described.

    At 10:50am to 11:50am, Monday 18th June

  • Hacking WebKit & Its JavaScript Engines

    by Jarred Nicholls

    WebKit, along with its JavaScript engines, is not a magical black box. We will show you the internal of various WebKit building blocks (10,000-foot overview) and how they work together. In particular, learn also the simple steps on how to experiment with WebKit with your own and leverage WebKit functionalities to find the performance problems, track the network issues, automate effective smoke tests, and implement per-pixel correctness tests. In addition, armed with a little extra knowledge about JavaScript engines, you will be ready to improve both the quality and performance of your JavaScript code

    At 10:50am to 11:50am, Monday 18th June

  • How Individuals Help Teams Become Excellent

    by Mike Hill

    Excited about agile methods? Wondering about how to share the excitement, even when you're not the boss?
    Guess what: that's exactly what a coach does.
    There's no big secret to coaching a team, just a million tiny ones. In this presentation, you'll learn the ins and outs of basic coaching technique:

    * The Three Basic Coaching Requirements
    * The Coaching Pillars:
    Sorting, Releasing, Situating, Modeling, and Inviting
    * How *Not* To Win Over a Team

    All of this and more, in the well-known GeePawHill style: funny, irreverent, and right to the point.

    At 10:50am to 11:50am, Monday 18th June

  • Real-Time Delivery Architecture at Twitter

    by Raffi Krikorian

    With hundreds of millions of users, Twitter operates one of the world's largest real-time delivery systems, large enough and pervasive enough to exert noticeable "pressure" on the overall internet itself. At steady state, Twitter receives thousands of tweets a second that it needs to deliver to disks, in-memory timelines, email, and mobile devices. The name of the game for Twitter is "now", so those deliveries, which multiply according to the graph of who follows whom, need to occur in real-time. In this session, we will dive into both the "write path" and "read path" of Twitter to understand the architecture which supports those tweets, and also how Twitter serves them through one of the world's largest web sites.

    At 10:50am to 11:50am, Monday 18th June

  • Taking Time Seriously

    by Bryan O'Sullivan

    Functional programming is said by some to relate to beautiful, unchanging things: pristine functions, immutable data. Put these notions on a pedestal, examine them from a distance, and they seem intimidating and disconnected from the mundane concerns of shipping code. Making stuff work, maintaining focus through distractions, triaging bugs, pricing the next rack of servers: every one of these demands time, be it in the form of late nights, wasted CPU cycles, or frustrated customers.

    How can we connect these two worlds, the functional and the gritty? Modern functional languages offer an array of practical -- and often beautiful -- approaches to all of these problems. In this talk, I'll introduce some of the technologies pioneered in the Haskell community to streamline software development and reduce operational costs, all while banging out beautiful code. These techniques are not yet widespread, but a new generation of companies is choosing Haskell and reaping the benefits.

    At 10:50am to 11:50am, Monday 18th June

  • Building Mobile HTML5 Apps in Hours, Not Days

    by Aditya Bansod

    HTML5 has delivered on the promise to make building mobile apps work seamlessly across devices and operating systems. But developers looking to build applications still have to code HTML, JavaScript and CSS by hand, often laboriously rebuilding features that exist in native platforms without the benefit of tooling that native platforms offer. New tools in the HTML5 space, like Sencha Designer make building mobile HTML5 apps as fun and easy as building native apps.

    At 12:05pm to 1:05pm, Monday 18th June

  • Etsy: Architecture Optimized for Change

    by Kellan Elliott-McCrea

    The interesting bits of Etsy's architecture are not about the what, but the why. Two years ago, in the face of poor uptime and brittleness, we rolled out a new architecture that, in addition to providing horizontal scalability and performance, optimized for some non-traditional goals:

    • rapid change, experimentation and low drag
    • mean time to resolve
    • organizational resilience

    We prefer global appropriateness to local optimization, failure recovery to failure avoidance, confidence building techniques to QA, and iteration to releases. We've collapsed a diverse set of languages and datastores to PHP backed by sharded MySQL with heavy lifting in Java, removed message queues in favor of job servers, removed frameworks in preference of home rolled, and collapsed a multi-tier SOA into a primarily monolithic codebase. In particular we use PHP, Apache, MySQL, Gearman, S3, Elastic Map Reduce, Cascading, SQLite, Statsd, Deployinator, Squid, Graphite, and Ganglia.

    Etsy serves between 1-2 billion page views a month, did $525 million in sales last year, deployed the site 10,000+ times, released 35 open source projects, added 14,000 automated tests and checks, and gathered 260,000 different site metrics.

    At 12:05pm to 1:05pm, Monday 18th June

    Coverage slide deck

  • Functional Domain Models - Declarative, Compositional and You get Some Parallelism for Free

    by Debasish Ghosh

    In any application, the domain model is the essence of the business. As a designer we take a lot of pain to ensure that the domain model we design is pure and only bears the essential complexity that the domain embodies. A paradigm of programming that focuses explicitly on the purity and immutability of the model is one that should be the most natural fit when we think of complex domains. Functional programming encourages compositionality. Hence if we think of domain behaviors as pure functions then compositionality is the secret sauce that enables us to evolve larger models out of smaller ones.

    In this talk I discuss simple functional abstractions like Applicative Functors, Semigroups and Monoids that help you compose larger domain models out of smaller ones. The main focus will be to demonstrate how we abstract away accidental complexity out of client APIs by using algebraic techniques at the implementation layer. This leads to declarative API design that expresses the domain logic clearly and succinctly.

    Pure domain models have to be complemented with techniques of state and identity management in order to be usable in the real world. This talk will also touch upon techniques like Event Sourcing and CQRS (Command Query Responsibility Segregation) that plays along nicely with functional domain models. And last but not the least you get some parallelism for free.

    At 12:05pm to 1:05pm, Monday 18th June

  • Letting Go of Agile Process and Embracing Agile Individuals

    by Mike Roberts

    Agile these days always seems to mean 'Scrum', 'Lean', 'Kanban', or some other process. If you're not pairing, standing up and using every xDD available then you're apparently missing a trick. Yet the agile manifesto itself says that agile software developers value individuals more than process, so has something gone wrong somewhere? Come along and hear some story-telling and (occasionally informed) opinion about what can happen if you let the right people do just what they think is necessary in order to deliver the right software, effectively. Warning - your favorite tool, technique, or process may suffer some bruising during this talk.

    At 12:05pm to 1:05pm, Monday 18th June

  • Security: A Developers View #2

    by Mark Ryland

    At 12:05pm to 1:05pm, Monday 18th June

  • Taming Firefox Developer Tools

    by Joe Walker

    Developer Tools in Firefox are changing. There's a new debugger, new ways of inspecting pages, new command line and many experiments. Come and hear what's new and what's coming up for Firefox developer tools.

    At 12:05pm to 1:05pm, Monday 18th June

    Coverage slide deck

  • Baby Steps - Evolution of the Tumblr Architecture

    by Ken Little

    Over the past year Tumblr has experienced tremendous growth, with traffic more than tripling from 5B pageviews a month to over 16B pageviews a month. Tumblr started in 2007 as a traditional LAMP application with some memcache usage. Over the past year Tumblr has moved towards a service oriented distributed system built on the JVM and supported by heavily sharded MySQL along with HBase and Redis. In this talk we'll review the historical evolution of the Tumblr architecture, highlight places where we stumbled and things didn't work, and cover the future growth plans for the system.

    At 2:00pm to 3:00pm, Monday 18th June

  • Faster, Cheaper Identity Management through Loose Coupling - The LIMA Approach

    by Ganesh Prasad

    Identity Management (or more correctly, Identity and Access Management - IAM) is an over-hyped and over-complicated capability within enterprises. It is often made out to be the exclusive province of expensive and highly specialised vendor products that end-user organisations cannot hope to develop on their own. This is nonsense. On the contrary, the ""single product""-based approach to IAM is fraught with risk and expense. Organisations can greatly improve their chances of success as well as their agility and economy by adopting a loosely-coupled approach to designing and deploying an IAM system. This talk will cover the essentials of the loosely-coupled approach called LIMA based on the speaker's real-world experience implementing IAM at an established end-user organisation. The LIMA architecture is described in detail in the eBook Identity Management on a Shoestring published earlier this year by InfoQ.

    At 2:00pm to 3:00pm, Monday 18th June

  • High Performance Mobile

    by souders

    Case studies from Google, Yahoo, Microsoft, Netflix, and others testify that making websites faster drives more traffic to your site, improves the user experience, increases revenue, and reduces operating costs. Best practices, tools, and web services abound for improving website performance on the desktop. But where are we when it comes to mobile performance? Join Steve Souders as he presents the latest developments for analyzing mobile performance and creating a faster mobile experience

    At 2:00pm to 3:00pm, Monday 18th June

  • Scaling to 695,000 TPS with Node.js

    by Andy Wilson

    Node.js is an asynchronous, event-driven application framework based on the V8 Javascript engine. VoltDB is a scalable, high-throughput in-memory RDBMS. What do you get when you marry these two complementary technologies? 695k ACID TPS running on an untuned EC2 cloud, according to a recent VoltDB benchmark. This talk will provide an architectural overview of Node.js and VoltDB, discuss the benchmark highlights and lessons learned, and identify applications that can benefit from this new lightweight, high performance stack.

    At 2:00pm to 3:00pm, Monday 18th June

  • The Database as a Value

    by Rich Hickey

    Proponents of functional programming tout its many benefits, most of which are available only within a particular process, or afforded by a particular programming language feature. Anything outside of that is considered I/O, dangerous and difficult to reason about. But real systems almost always cross process and language boundaries, and most require, crucially, a very gnarly bit of shared state - a database. In this talk we will examine how Datomic renders the database into that most prized and easy-to-reason-about construct, a value, and makes it available to multiple processes in multiple languages, functional and not.

    Along the way, we'll discuss the importance of immutability and time in representing information, the reification of process, and the mechanisms of durable persistent data structures. No knowledge of functional programming is required.

    At 2:00pm to 3:00pm, Monday 18th June

  • The use and abuse of other people's Cucumbers

    by mattwynne

    Individuals and interactions over processes and tools; that's what the agile manifesto tells you. But that doesn't mean we should just throw away all our processes and tools: good processes can help you to have meaningful interactions, and the right tools can help individuals perform to their potential.

    The problem is when you borrow other people's tools and processes, blindly adopting them without reflecting on how well they work for you.

    This humorous talk delivers an important message that all agile teams should think about.

    At 2:00pm to 3:00pm, Monday 18th June

  • Building OAuth2-Enabled, Multi-Tenant Applications with Spring Security

    by Robert Winch

    With more and more companies deciding to deploy multi-tenant applications in the cloud, security considerations are a must. These considerations are further complicated by the growing demand to support third party mobile development on these applications. In this presentation, we will discuss how to design for authentication and authorization of multi-tenant cloud applications. We will also discuss how OAuth 2.0 works and how it can be leveraged to securely support third party development. These concepts will be solidified throughout the presentation by updating an existing application to support multi-tenancy and OAuth 2.0 using Spring Security.

    At 3:30pm to 4:30pm, Monday 18th June

  • Facebook News Feed: Social Data at Scale

    by Serkan Piantino

    News Feed is not only one of the most important products on Facebook, it’s also one of the most used content distribution systems on the internet today, serving up feeds of social data to more than 6% of the humans on the planet every day. We’ll walk through how the systems that power News Feed work at scale.

    The Feed infrastructure started as an implementation of some relatively simple concepts, but over the years has accumulated a lot of new designs and tricks to make it exceptionally good at being efficient and reliable. It’s also evolved from a specialized service for powering the homepage to a general graph storage engine, which not only powers all the old and future products within Feed, but many other pages on the site as well. The talk will cover building distributed systems, in-memory databases, network topologies, aggregating social data, and everything in between.

    At 3:30pm to 4:30pm, Monday 18th June

  • Functional Programming Everywhere #3

    by Sadache

    At 3:30pm to 4:30pm, Monday 18th June

  • The componentized, declarative Web

    by Peter Beverloo

    Where creating a web page once meant combining three distinct disciplines, HTML for the markup, CSS for the presentation and JavaScript for the behavior, recent changes have made this separation much less clear. Tomorrow, the Web will be based on a much more declarative model with new and exciting APIs, completely changing the paradigms used to create your sites and applications. What exactly will be changing, how will this impact you and how should you prepare for the future.

    At 3:30pm to 4:30pm, Monday 18th June

  • The Lazy Learner

    by Chris Matts

    This session will introduce a number of techniques that Chris Matts uses to be lazy. When it comes to learning, the best way to learn is let other people do the hard work for you. "Break the Model", based on David A. Kolb's learning circle is a distributed cognition system to coordinate others frantic learning activity. "Meme Wombling" is a deliberate exaptation technique that involves going through other people's waste paper basket looking for great ideas that other's leave behind. "Building the Net" is a low energy way of creating collaborations that feel the need to keep you up to date with the latest thinking. Finally, have you ever considered that the best state for learning might be hungover. This will be a very very serious session with no attempts at humour.

    At 3:30pm to 4:30pm, Monday 18th June

  • What can DevOps Learn from Formula 1?

    by Stephen Burton

    Both Formula 1 and DevOps teams are driven by innovation, technology, agile mindsets and money. However, when it comes to managing change, Formula 1 teams excel in being agile to deliver superior levels of performance and reliability. In comparison, DevOps teams strive to deliver innovative applications for the business, but more often that not struggle to make them fast or reliable once they are deployed in live environments. This session takes a look at how the people, processes, collaboration and tools behind a Formula 1 team can inform how we approach DevOps, and how DevOps teams can better manage the performance and reliability of their applications throughout the entire application lifecycle.

    At 3:30pm to 4:30pm, Monday 18th June

    Coverage slide deck

  • Functional Programming Everywhere #5

    by Steve Vinoski

    At 4:50pm to 5:50pm, Monday 18th June

  • Hook-up to the Social Networks with OAuth 2.0

    by John T Davies

    For years we've sought the perfect SSO (Single Sign On) solution. Social networks are not exactly the ideal solution for logging in to your office servers, bank account or the county's nuclear defence systems but they're now pretty much the preferred solution for the plethora of mobile apps and web sites we now carry around in our pockets. OAuth provides a way for you to allow your users to log in to your application and identify them from their social media credentials, name, job title for example, you can ask the user's permission to access connections on their social graph or to even post on their behalf. Hook in via Oath and the power of social networks is yours. John will walk through a typical iPhone application with server-based OAuth 2.0 into the social networks.

    At 4:50pm to 5:50pm, Monday 18th June

  • Netflix: Movies when you want, where you want, from the cloud!

    by Jeremy Edberg

    "Why Netflix, why cloud, why AWS?" Netflix has over 26 million users and represents over 30% of all internet traffic at some times of the day. Using Amazon Web Services as a command and control layer for hundreds of different device types and millions of devices, learn how Netflix takes advantage of the EC2 ecosystem to provide what amounts to a Java (and soon Python) PaaS. We'll walk through how Netflix stores its data in Cassandra and how it was moved from Oracle; Big Data at Netflix; how we use auto-scaling and multi-AZ/multi-region deployments to maintain reliability; and how we use the "monkeys" to maintain reliability and keep costs down. Lastly, you'll learn how a public cloud architecture differs from a datacenter architecture and what advantages and disadvantages that provides.

    At 4:50pm to 5:50pm, Monday 18th June

  • Sustainable Software Development

    by Alexander von Zitzewitz

    Almost every non-trivial software system suffers from the accumulation of technical debt and structural erosion. With every new release quality metrics and developer productivity go down, while it becomes more and more difficult to change or maintain the system. This session first looks at the technical and social causes of this industry wide problem. From there the focus will shift to possible solutions involving organizational changes, process improvements and tool-based fully automized control of quality metrics and architecture.

    At 4:50pm to 5:50pm, Monday 18th June

  • The Agile Individual #5

    by Sue McKinney

    At 4:50pm to 5:50pm, Monday 18th June

Schedule incomplete?

Add a new session

Filter by Day

Filter by coverage

Filter by Topic