Talks & Presentations

Testing LAMP Applications

Most web applications are changed and adapted quite frequently and quickly. Their environment, for example the size and the behaviour of the user base, are constantly changing. What was sufficient yesterday can be insufficient today. Especially in a web environment it is important to monitor and continuously improve the internal quality not only when developing, but also when maintaining the software. Packed with in-depth information and step-by-step guidance, this tutorial sets you on a path to create, maintain and extend sustainable software of high quality with PHP. You will learn how to plan, execute and automate tests for the different layers and tiers of a Web application.

PHP Tester's Toolbox

Various testing tools exist to test the different aspects and layers of PHP applications. There is PHPUnit for Unit Testing (and Test-Driven Development), Behat for Acceptance Testing (and Behaviour-Driven Development), Selenium for System Testing, and a plethora of tools for testing non-functional aspects such as performance and security. This presentation provides an overview of the goals of each of these tools and shows the first steps to leveraging them in your daily routine.

Integrate Your PHP Project with Jenkins

Jenkins is the leading open-source continuous integration server. Thanks to its thriving plugin ecosystem, it supports building and testing virtually any project. This session will familiarize the audience with Jenkins and show how it can be leveraged for PHP projects.

OSI Days 2011 - PHP Security Tutorial - Beware of the dark side, Luke

Somehow you met the impossible deadline, your project is online and you now deserve some time to relax. Other than you and me though, the internet does not sleep and your application is under constant risk of attack. Even without having access to the source code, attackers have their ways to break into applications and steal or modify private information. Switch sides for a day and attack the demo blackbox application! Learn how attackers gather information, exploit vulnerabilities and hijack servers - and what to do to stop them.

Osi days 2011 Deployment==Annoyment?

No matter if your server runs RedHat Enterprise Linux, CentOS, Debian/Ubuntu or Suse Linux - every linux distribution comes with a package management system (PMS) to automate the process of installing, upgrading, configuring, and removing software packages in a consistent manner. Yet when deploying PHP based applications many developers fall back to SCP, or even worse FTP. This session will show you how easy it is to create custom packages and make use of the power provided by your PMS to automate deployment.

PHP Tester's Toolbox

Various testing tools exist to test the different aspects and layers of PHP applications: PHPUnit for Unit Testing (and Test-Driven Development), Behat for Acceptance Testing (and Behaviour-Driven Development), Selenium for System Testing, and a plethora of tools for testing non-functional aspects such as performance and security. This session will show the audience when to use which tool.

This way or the other way

Many decisions are required when developing software. If we are not sure which path to choose (which is often), we just guess. How about running an A/B test instead, so we can base our decision on empirical data? Why not continuously run A/B tests to increase conversion rates or sales? This presentation introduces how to properly do experiment-driven development in PHP.

Change is inevitable (except from a vending machine)

Where did Bob live two years ago? And what was his last email address again? If your application needs to keep track of things that change over time, you must to take a step beyond normal object relations or foreign keys in a database. This presentation introduces temporal patterns to solve these kinds of problems and shows how to effectively implement them in PHP using the date extension.

Scalable high performance architectures

Today, large-scale PHP platforms like Facebook demonstrate strikingly that it is quite possible to build scalable, high-performance web applications with PHP. It does not work out to just use an MVC framework as architecture, though. This session allows a peek into web architectures and technologies that large-scale PHP platforms use, and demonstrates how you can use them in your own projects.

PhpDox - The next generation API documentation (FrOSCon 2011 Edition)

If there is one thing most developers can agree on its this: Documenting Code is annoying! This is especially true when OOP code practically describes itself because of type hints, dependency injection and clear visibility specifications. This session will demonstrate how phpDox, the xml driven PHP Documentation framework, combines the power of docblock with PHP's reflection api and how its flexible output can be used to generate the documentation in a format you always craved for.

Reviewing PHP Code

A code review can help detect bugs and keep the code maintainable. In this session, Sebastian Bergmann, a pioneer in the field of quality assurance in PHP projects and creator of various development tools, will introduce the audience to the best practices and available tools to perform code reviews of PHP-based software projects.

Integrate Your PHP Project with Jenkins

Jenkins is the leading open-source continuous integration server. Thanks to its thriving plugin ecosystem, it supports building and testing virtually any project. This session will familiarize the audience with Jenkins and show how it can be leveraged for PHP projects.

Testing LAMP Applications

Most web applications are changed and adapted quite frequently and quickly. Their environment, for example the size and the behaviour of the user base, are constantly changing. What was sufficient yesterday can be insufficient today. Especially in a web environment it is important to monitor and continuously improve the internal quality not only when developing, but also when maintaining the software. Packed with in-depth information and step-by-step guidance, this tutorial sets you on a path to create, maintain and extend sustainable software of high quality with PHP. You will learn how to plan, execute and automate tests for the different layers and tiers of a Web application.

Continuous Integration with Jenkins

Continuous Integration with automated code analysis and test execution has seen broad adoption in recent years. The ideas behind this have changed how companies look at Build Management, Release Management, Deployment Automation, and Test Orchestration. This session presents how Jenkins, the Open Source continuous integration server, can be leveraged for PHP-based software projects.

Observations from the Agile Front

Compared to the waterfall model, agile methodologies sound really promising. In theory, at least. But (how) does agile development work in day-to-day practise? What is the impact on development teams, and the business in general? This session presents valuable insights from coaching development teams working in more or less agile environments.

Your tests are lying!

Unit Tests help reducing the cost and risk of any individual change smaller. But how do you know that your tests are not lying and give you a false sense of confidence? In this session you will learn how to automatically detect problems in your test code, so called Test Smells, and how to avoid them. You will also learn how to write effective tests that will pay you back with information.

Agility and Quality

Agile methodologies and processes have changed how PHP-based software projects are realized. This session gives an overview on how agility and quality can go hand-in-hand helping to deliver software on time and in budget. Agility does not stop at software development, though, but extends into other realms such as web operations. The audience will learn about some of the core ideas of DevOps, such as “Dark Launches”, “Feature Flags” or “Gradual Ramps” that help with implementing continuous deployment strategies.