by Ian Barber
Despite being a key method of navigation on many sites, search functionality often gets the short end of the stick in development, either by handing the job over to Google or just enabling full text search on the appropriate column in the database. In this talk we will look at how full text search actually works, how to integrate local text search engines into your PHP application, and how it's possible to actually provide better and more relevant results than Google itself, at least for your own site.
It ain't right, just because others do it. Identified by reviewing the code of various well-known open source PHP applications, this session presents the most extensively used antipatterns - counterproductive design patterns - in the PHP world. You will learn what is wrong with each example, and why. We will analyse alternative solutions and discuss their advantages and disadvantages.
This session is aimed at programmers, architects and analysts alike, delving into some examples of ways to write really excellent and useful services. We'll cover selecting the right service type to use and how to design a flexible, maintainable system with an outward-facing API that will have your users easily utilising its features. There will be tips and tricks on helping minimise user confusion (and resulting bug reports) and how to achieve robust services and happy users who cite your application as their 'must-have'.
by Rob Allen
This session covers the basics of how one can develop a PHP application that can be deployed to Windows Azure, using the Eclipse tools for Windows Azure and the Windows Azure SDK for PHP. Learn about Windows Azure's compute and storage services in this demo-rich session.
There will be a free book provided on Cloud Computing with the Windows Azure Platform by Roger Jennings to help you get started.
A real life example getting more throughput with fewer queries.
Over the last year we've grown a database from a few hundred megabytes to just over one terabyte. The database is reported on and populated by a network of servers using PHP. As the database has grown we've had to look again our initial assumptions and ways of working. One table has over 2billion rows; 2.5 million rows every day are added to another table. This talk will cover how we use explain, foreign keys, normalising data without sacrificing performance, queuing and using memcache. And, how we've made the system run faster now than it did with a much smaller database.
The core PHP distribution contains, depending on the configuration, offers more than 1500 functions and quite many additional language constructs. On top of that the PECL repository, which collects additional PHP extensions, offers more than 200 extensions for PHP. This talk will show features which are hidden in there and might increase the programmer's productivity.
Legacy code is a burden that few developers are lucky enough to avoid in their professional lives. We'll look at how legacy code develops and some of the early warning signs to watch out for. Where it's already a problem, we'll explore the strategies that can be used to replace, isolate or integrate that code and some practical methods for achieving it. This talk will weigh these ideas up in terms of time and cost to help you take a pragmatic approach to taming or slaying your monster.
From Zend Framework to Symfony, all the major frameworks are moving to PHP 5.3 for their next major version. To be ready for this big move, all PHP developers need to learn more about the new PHP 5.3 features and how to use them in practice. This session will not be yet another big list of all the great features of PHP 5.3. Instead, I will show you how to solve real problems more simply and more elegantly with PHP 5.3.
by Damien Seguy
In this laboratory, we will carry out a safety audit of an Open Source web application. The technical objective is to provide a complete report and treat all phases of investigative work: black box analysis, open source analysis, identifying vulnerabilities (XSS, injections, disclosure, etc.), recommendations for strengthening, and prioritisation of tasks. All skills will be tested in this complex exercise. We will work on a real application. The laboratory will end with the handing over of the report to the authors of the application so they can have an outside view on the safety of the application.
The D-BUS Inter Process Communication mechanism is the basis for many system-related functionality on Linux-based systems. Both GNOME, KDE, as well as the Open Moko Linux computing platform use it extensively for everything related to talking to services and hardware. Skype, as well as other applications, provide D-BUS APIs as well.
In this presentation I will be presenting a PHP/D-BUS integration to allow PHP to talk to D-BUS aware applications. I will demonstrate controlling Skype from PHP, as well as the implementation of PHP-GTK based applications on the OpenMoko to talk to, and use the different hardware services it offers, such as GSM and GPS.
Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. This talk will quickly introduce CouchDB and then show you how the concepts of CouchDB and PHPillow can contribute to your application design and development.
Despite the NoSQL movement trying to flag traditional databases as a dying breed, the RDBMS keeps evolving and adding new powerful weapons to its arsenal. In this talk we'll explore Common Table Expressions (SQL-99) and how SQL handles recursion, breaking the bi-dimensional barriers and paving the way to more complex data structures like trees and graphs, and how we can replicate features from social networks and recommendation systems. We'll also have a look at window functions (SQL:2003) and the advanced reporting features they make finally possible.
by Juliette Folmer
Regular expressions, you either hate them or you love them, but do you really know how to harness their power? Based on the PCRE implementation, this talk will show you how to get the most out of your /^regex(es)?$/, how switches affect your results, how to be less greedy and let's not forget: when *not* to use regex.
by Josh Holmes
Simplicity is a lost art in the application development space. The Wikipedia definition of simplicity is "Simplicity is the property, condition, or quality of being simple or un-combined. It often denotes beauty, purity or clarity. Simple things are usually easier to explain and understand than complicated ones. Simplicity can mean freedom from hardship, effort or confusion." This is a beautiful statement that we often lose sight of when we are building our applications. Instead we are on a never ending quest to fill out a checklist of features or to build something clever forgetting about the actual needs of our users to get a specific task done. This session takes complexity to task and challenges you to bring simplicity to the centre of your development with some straightforward ideas and guidance.
by Chuck Hudson
In the typical web development project, revenue streams include advertising and payment processing. Often people miss the opportunity to distinguish their web application and capitalize on more unique and proven methods, due to their perceived complexity. These models include 'freemium', membership programs, coupon coding, chained payments, split or parallel payments, recurring subscriptions and others. We will spend the bulk of the session working with PHP examples based on the PayPal X Payment Platform. Key areas that we will cover include the available PayPal API libraries, technical process flows, methods called, error handling and best practices to developing these solutions.
For most developers, documentation is a necessary evil they'd rather skip. But really, is documentation that evil? Or is it actually useful? This presentation with show the types of (technical) documentation that can be written, the reasons for documenting, and the tools that you can use to ease the documenting task.
25th–26th February 2010