Your current filters are…
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.
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.
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,
Each vulnerability will be summarized, presented as a real-life J2EE scenario, and then the proper mitigation strategy described.
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.
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.
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.
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:
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.
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.
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.
by Mark Ryland
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.
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.
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.
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
by Andy Wilson
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.
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.
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.
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.
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.
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.
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.
"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.
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.
by Sue McKinney
18th–22nd June 2012