php|tek 2012 schedule

Tuesday 22nd May 2012

  • Creating a High Quality App Using PHP Components from Around Our World

    by Ryan Weaver

    Whether you like flat php, Symfony, Drupal, Zend Framework or anything in between, we’re all solving the same fundamental problems. In this workshop, we’ll explore just how small the world is by building a “flat” PHP application, identifying these problems, and solving them piece by piece. We’ll learn what a “framework” really is as we create our own using components from Symfony, Zend Framework, and Lithium. When you leave, you’ll understand how to use a PSR-0 autoloader to bring new libraries into your app, how a dependency injection container can help you, and what’s really going on under the surface of the popular frameworks and CMS libraries.

    At 9:00am to 12:00pm, Tuesday 22nd May

  • Developer Testing 201, When to Mock and When to Integrate

    by Laura Beth Denker

    Now that you know the basics of unit testing, you are ready to dive into advanced mock framework techniques and learn about integration testing. Some topics included are constraints (Hamcrest), mock frameworks, external and hostile dependencies, and DBUnit. This tutorial should teaching you integration testing techniques and better use of mock framework. You should leave this session knowing when write an integration test and when mocks are sufficient. Example code uses the PHPUnit framework. This course is a continuation of Developer Testing 101.

    At 9:00am to 12:00pm, Tuesday 22nd May

  • HTML5 and JavaScript for the PHP Developer

    by Jake Smith and Daniel Cousineau

    With the rise of advanced desktop and mobile browsers, high performance javascript engines, and ever increasing networking bandwidth, traditionally ‘frontend’ skills are in more demand than ever. PHP developers are increasingly finding themselves needing these skills more and more to remain competitive. This workshop will cover new features introduced in HTML5 and CSS3, how to use them today with modern browsers (and fallbacks), as well as tips and tricks to save time and do amazing things. It will also cover a refresher on JavaScript basics and dive into recent advances in libraries and coding techniques that power modern interactive web applications. The workshop will walk through from start to finish a simple web application utilizing as many HTML5, CSS3, and JavaScript techniques as possible. By the end the attendees can expect to have a grasp on things ranging from new tags, new style properties, advanced selectors, event-driven asynchronous JavaScript programming, new services such as GeoLocation, and much more.

    At 9:00am to 4:00pm, Tuesday 22nd May

    Coverage slide deck

  • API Development

    by Rob Richards

    APIs are pretty much a necessity for organizations in this day and time, although many have a difficult time trying to figure out how to get started. It is not as simple as standing up and endpoint and exposing data as one must be cognizant of both the consumer and the delivery mechanisms in order to make an API successful. In this tutorial, I will briefly go through some of the whys of having an API and what one would want to be exposing before we go into depth on creating and exposing these APIs. Using real world scenarios we will explore creating APIs with different data formats, ways to expose them as well as how to deal with debugging when things go wrong. In addition to the creation, understanding and being able to write consumers is also a critical skill when developing APIs. We will cover this not only as part of debugging, but also when working on and discussing different consumer types such as mobile applications.

    At 1:00pm to 4:00pm, Tuesday 22nd May

  • Workshop QA on Zend Framework applications

    by Michelangelo van Dam

    This workshop is a hands-on training where a real Zend Framework application is used as an example to start improving QA using tools to test, document and perform software metric calculations to indicate where the software can be improved. I also explain the reports produced by a CI system.

    At 1:00pm to 4:00pm, Tuesday 22nd May

Wednesday 23rd May 2012

  • Opening Keynote

    At 9:00am to 10:00am, Wednesday 23rd May

  • Amazon SimpleDB

    by Eli White

    Interested in NoSQL (non-relational database) technologies? Want an introduction to one that is simple to use, immediately available, and easily scalable? Then SimpleDB may be for you. Come learn how to use Amazon SDB and what features it can provide to help solve some of your software development concerns.

    At 10:15am to 11:15am, Wednesday 23rd May

    Coverage slide deck

  • Easing into HTML5 and CSS3

    by Brian Moon

    HTML5 and CSS3 offer some great features that everyone is clamoring to use. However, not everyone can simply rip apart their site and redo all of their markup and styling across the board. There are some quick wins, especially with CSS3, to be had that you can integrate into your site without rewriting your whole entire site.

    At 10:15am to 11:15am, Wednesday 23rd May

    Coverage slide deck

  • The MicroPHP Manifesto

    by Edward Finkler

    In the past few years, the PHP Zeitgeist seems like it’s been moving in the Neil Peart direction. Lots of work by lots of smart people is going into complex, verbose solutions. Lots of files, lots of nested directories, and lots of rules. No thanks. So I wrote the MicroPHP Manifesto: 1. I am a PHP developer 2. I like building small things 3. I want less code, not more 4. I like simple, readable code Contrary to popular belief, you can still kick ass with PHP using simple, readable code that avoids over-engineering and excessive abstraction. We’ll talk about how to make that happen with lightweight “micro-frameworks” and single-task, no-dependency libraries.

    At 10:15am to 11:15am, Wednesday 23rd May

  • Blazing Data with Redis

    by Justin Carmony

    There are many fast data stores, and then there is Redis. Learn about this excellent NoSQL solution that is a powerful in-memory key-value store. Learn how to solve traditionally difficult problems with Redis, and how you can benefit from 100,000 reads/writes a second on commodity hardware. We’ll discuss how and when to use the different datatypes and commands to fit your needs. We’ll discuss the different PHP libraries with their pros and cons. We’ll then show some live examples on how to use it for a chatroom, and how Redis manages a billion data points for our dating matching system. Finally, we’ll discuss some of the upcoming features in the near future, such as clustering and scripting.

    At 11:30am to 12:30pm, Wednesday 23rd May

  • Graphing Real-time Performance with Graphite

    by Neal Anders

    This presentation will take an existing open-source project (done in php) and cover how to integrate performance monitoring to identify areas that could be improved through code refactoring or database tweaks.

    http://graphite.wikidot.com/

    At 11:30am to 12:30pm, Wednesday 23rd May

  • Move the Cloud Beyond Hype to Reality

    by Mark Brown

    Everyone has heard of the cloud. Many still see it as an overhyped buzzword yet the cloud is today being used not only by developers building games and mobile devices applications but by now Enterprises as well. The cloud is changing the landscape forever, bringing with it some massive improvements and equally massive changes. As a developer you need to understand the options and implications for new applications you are building and also understand them for legacy applications where the cloud is making just as big of an impact.

    In this session we’ll explore a wide array of applications and architectures and explain the technical considerations and implications when these applications are deployed within the cloud. In addition we will look at the two primary cloud platform service models, Infrastructure as a Service (IaaS) and Platform as a Service (PaaS), plus a third Software as a Service (SaaS). We will talk about some of the vendor offerings leveraging these service models, explore the differences between the approaches and explain the impact they have as you design, build, deploy and scale your applications highlighting complexity versus flexibility so that you understand what is the right approach for you.

    At 11:30am to 12:30pm, Wednesday 23rd May

  • My Journey into NoSQL and MySQL’s NoSQL Implementation

    by Ligaya Turmelle

    Did you know that MySQL has a NoSQL interface? No? Would it interest you that they are using the memcached API to hook directly into the InnoDB and MySQL Cluster (NDB) storage engines – skipping the MySQL server completely? I recently heard about it, and was curious to see how it worked and what it did. Come with me as I discuss what I learned along the way.

    At 1:30pm to 2:30pm, Wednesday 23rd May

  • Solving the N+1 Problem; or, A Stitch In Time Saves Nine

    by Paul Jones

    When dealing with databases, developers frequently run into the N+1 problem, in which they populate domain objects via queries in loops. This causes terrible performance drags; in the case I will talk about, it took 200,000 queries to populate 40,000 records and 3+ hours to complete. There is a solution in plain PHP that makes the number of queries constant; for the previous example, the the number of queries is reduced to 5 and improves processing time to under 6 minutes. The talk shows typical PHP code involving the N+1 problem, then shows how to solve the problem in plain PHP (that is, without a framework or ORM), and includes editorializing about the origins of the N+1 problem in the developer mindset.

    At 1:30pm to 2:30pm, Wednesday 23rd May

    Coverage slide deck

  • Taking Sites Mobile

    by Ian Barber

    Giving a great user experience for browsers on mobile devices is going to be a bigger and bigger part of any web developers work over the next few yeas. In this talk we’ll look at how to take existing sites and adapt them for mobile support – including the administrative functionality as well as the main front end. We’ll look at the additional functionality available, and the limitations that will have to be mitigated when taking a site mobile. We’ll also look at how Facebook apps can be adapted to run in their mobile app, and where and when to consider specialist mobile sites as part of a strategy.

    At 1:30pm to 2:30pm, Wednesday 23rd May

    Coverage slide deck

  • Continuous Deployment at dealnews

    by Brian Moon

    The Web moves fast, really fast. No one talks about what version of a web site you are using. Maybe you are using the beta version. Even then, it is always new. The Web is obsessed with new. It thrives on new. To meet this demand, in the early years of the web, teams learned a new way to deploy their software. Rather than the traditional models used by compiled, installed software, these pioneers on the Internet deployed software when it was ready. That meant Web sites could be responsive to changes, fix bugs quickly, and add new features to compete with the market. This method is still alive today. Successful web companies still do this to keep their advantage. While there are no set rules, there are good examples of what others do and how it helps them be successful.

    At 2:45pm to 3:45pm, Wednesday 23rd May

  • It’s More Than Just Style

    by Laura Beth Denker

    Mention PHP CodeSniffer, and most will think it’s just for style. Add passing PHP CodeSniffer to your test suites, and hear the groans. Why are we wasting time on whitespace rules? Why does it matter that my lines are longer than X characters? The answer: PHP CodeSniffer is more than just style. In this talk we will discuss what sniffs can save you from runtime errors, sniffs that can help you upgrade your PHP install, and sniffs that can help you find the bits of code that are slowing down you and your team.

    At 2:45pm to 3:45pm, Wednesday 23rd May

    Coverage slide deck

  • Web Security and You

    by Eli White

    This talk will focus on XSS, CSRF, Session Hijacking, SQL Injection, and other security issues need addressed in Website Development, and how to close them. This talk will delve into some specific code examples showing where vulnerabilities exist, and how to prevent them.

    At 2:45pm to 3:45pm, Wednesday 23rd May

    Coverage slide deck

  • Creating Facebook Apps in the Cloud

    by Kirsten Jones

    Facebook apps can now be made using cloud providers such as PHP Fog and Heroku. How can you get set up on these systems and create applications to use with Facebook? This talk will discuss getting started in each system and creating a very simple Facebook application – we’ll go over the code examples and demonstrate basic functionality. If you’re familiar with developing for Facebook, this talk will show you how to deploy those apps to the cloud. If you haven’t built any Facebook applications yet, this will get you started on that path.

    At 4:00pm to 5:00pm, Wednesday 23rd May

  • How to Let Go of Your Ego and Help Your Customers Succeed

    by Rich Bowen

    In the Twitter, Mobile App, Youtube era, you have less and less time to persuade your customers that you have the right solution to their problems. The time of telling them to RTFM are long gone, but some of us just can’t escape, and continue to treat the LUSER as an inconvenience. In this talk, Rich will share some tips from his 15 years of documentation and customer support experience, to help you stop being a jerk, and help your customers succeed at using your products.

    At 4:00pm to 5:00pm, Wednesday 23rd May

  • Puppet for Dummies

    by Joshua Thijssen

    Puppet is a configuration management tool which allows easy deployment and configuration ranging from one to a thousand servers (and even more). Even though puppet is a common tool in the devops-world, it is still a strange piece of software for developers. How does it work and what can it do for you as a developer?

    At 4:00pm to 5:00pm, Wednesday 23rd May

    Coverage slide deck

Thursday 24th May 2012

  • Keynote

    At 9:00am to 10:00am, Thursday 24th May

  • Decoupled Library Packages for PHP 5.4

    by Paul Jones

    This talk will give an overview of the Aura project, a collection of independent (non-framework) library packages providing commonly-needed tools for developers. The talk includes a discussion of the benefits of dependency injection when removing dependencies.

    At 10:15am to 11:15am, Thursday 24th May

    Coverage slide deck

  • Demystifying REST

    by Kirsten Jones

    REST web services are everywhere! It seems like everything you want is available via a web service, but getting started with one of these web services can be overwhelming – and debugging the interactions bewilders some of the smartest developers I know. In this talk, I will talk about HTTP, how it works, and how to watch and understand the traffic between your system and the server. From there I’ll proceed to REST – how REST web services layer on top of HTTP and how you can expect a REST web service to behave. We’ll go over how to monitor and understand requests and responses for these services. Once we’ve covered that, I’ll talk about how OAuth is used for authentication in the framework of a REST application. PHP code samples will be shown for interacting with an OAuth REST web service, and I will cover http monitoring tools for multiple OS’s. When you’re done with this talk you’ll understand enough about REST web services to be able to get started confidently, and debug many of the common issues you may encounter.

    At 10:15am to 11:15am, Thursday 24th May

  • Mapping URLs With and Without mod_rewrite

    by Rich Bowen

    Yes, we all hate mod_rewrite, but we also can’t quite seem to manage without it. In this talk, the author of “The Definitive Guide To Apache mod_rewrite” will show you how to accomplish wizardry with mod_rewrite as well as numerous other ‘url mapping’ modules available for the Apache HTTP Server. Rich is the author of much of the mod_rewrite documentation, and several books about the Apache HTTP Server.

    At 10:15am to 11:15am, Thursday 24th May

  • (Re)discovering the SPL

    by Joshua Thijssen

    The Standard PHP Library (SPL) might be one of the most powerful, yet the most unused part of PHP. The lack of documentation about SPL makes it that a lot users don’t really harvest the power that SPL brings. During this presentation I will dive into the numerous iterators, data-structures and interfaces that SPL defines and when & how to implement them in your own projects.

    At 11:30am to 12:30pm, Thursday 24th May

    Coverage slide deck

  • Demystifying CSS for Developers

    by Justin Carmony

    CSS has been the Achilles Heel for many developers in their web development career. Even if we are not the designers, many times we break what the designers give us. Ultimately, you’re left with visual bugs that can do not make any sense In this presentation, we’ll visually demonstrate the commonly misunderstood core principles in CSS and the usual pitfalls we run into. We’ll show how to fix these pitfalls, and help you understand why they happen. After this presentation, you will have a much better understanding of CSS, know the tools to use to debug it, and the resources to help you along the way. You’ll not only have an awesome website under-the-hood, but a good looking one too.

    At 11:30am to 12:30pm, Thursday 24th May

  • PHAR, the PHP .exe Format

    by Helgi Þormar Þorbjörnsson

    Learn about what the PHAR (PHP Archives) format is all about. A PHAR is conceptually similar to a Java JAR but made to fit PHP’s needs. Hear how to use it to distribute your product to clients, why open source projects have started offering their projects as a PHAR file, run your application directly from the PHAR container without extracting anything to the filesystem, secure it using the signature feature to ensure the container hasn’t been tampered with and many other interesting features. By the end of it you will be wanting to use PHAR for CLI and Web apps alike!

    At 11:30am to 12:30pm, Thursday 24th May

    Coverage slide deck

  • API Security

    by Rob Richards

    People may consider API and Web application security the same, but are often surprised to find that API security involves many additional, some much more complex issues, that must be addressed. During this presentation I will cover some of the more common issues such as authentication and authorization, privacy, as well as payload and other API related attacks and security vulnerabilities.

    At 1:30pm to 2:30pm, Thursday 24th May

  • php://memory and Streams for Scaling

    by Neal Anders

    This presentation will be an overview of using php://memory to store data during application runtime. We will cover the benefits over traditional methods and also some drawbacks.

    At 1:30pm to 2:30pm, Thursday 24th May