Hidden features of PHP
PHP has been growing and evolving as a language for over a decade now and in this time managed to accumulate many functionalities and features. In fact so great is it breadth of functionality much of it lies unknown to most users. This session will focus on uncovering various functionality gems and developers may not know PHP has, but can help in their day to day development efforts.
APC & Memcached the High Performance Duo
When it comes to making things faster, nothing beats caching. This presentation will provide you with an overview of the best caching tools when it comes to PHP, Memcache PHP. The talk will cover through examples the applications of each extension and demonstrate which situations lend themselves better for each caching solution. For the memcache portion of the talk, the new & improved Memcached interface will be covered.
A new approach to object persistence in PHP
The object-relational impedance mismatch makes persisting PHP objects in a relational database a daunting task. But how about these new schemaless NoSQL databases? We will have a look at the problems involved with persisting PHP objects, and introduce design patterns that help solving these problems (Repository, Unit of Work, Identity Map, Data Mapper, Virtual Proxy). Putting the patterns to good use, we will build a working PHP object persistence solution for MongoDB.
Split A/B Testing Database-driven PHP Web Applications
There are well-known techniques for A/B testing PHP Web applications however, these techniques are not suited for database-driven applications where the upgraded applications make structural changes to the database schema. Typical chalenges include: how to allow pre-upgrade and post-upgrade schemas to co-exist and how to garantee that transactions (i.e., data changes) done by the users of the pre-upgrade applications are reflected in the post-upgrade application and vice versa. In this technical session i will show you through PHP code and live demo how you can upgrade a live PHP application and its related schema while ensuring uninterrupted availability using Oracle’s Edition Based Redefinition.
‘In search of…’ – integrating site search systems
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.
How to scale PHP applications
In this last years a lot of high traffic web sites have been built in PHP. One of the main problem to design a distributed PHP architecture is how to share session data between multiple servers. In this talk i would like to present the most used solutions to scale a PHP application along multiple servers. I will present different solutions to share session data using open source solutions (nfs, databases, memcached, redis, etc). Moreover I will talk about Zend Server Cluster Manager, a enterpriseready Web Application Server for running and managing an HA Cluster of PHP servers.
Cloud computing with PHP and Azure
There are many cloud favors, public, private, infrastructure, finished product, etcétera… In this session we will talk about the cloud computing offering for developers.
There is not need to continue investing in running an infrastructure for our applications, databases,… we should run our business, not our infrastructure. Nowadays we can leverage the infrastructure within the big IT providers, such as Amazon, Google or Microsoft. Specifically we will cover the Windows Azure Platform, Microsoft’s bet for platform in the cloud. Among its services we can find hosting, execution, relational and noSQL data services, Security mechanisms and messaging. During the session we will explore these services practically and the tools that will help us ease the usage from PHP.
Design patterns… revisited for PHP 5.3
Everything single major version of PHP brings interesting enhancements to the language. These changes means new possibilities and better implementation of some design patterns. In this session, I will show the evolution of the implementation of the infamous Singleton over the years. I will also show the implementation of some popular design patterns like the Observer and the Dependency Injector.
PHP in the Enterprise: Develop and Deploy Mission Critical Applications
As PHP matures and enters the enterprise, it must address mission critical requirements such as: massive scalability, high availability, cache coherency, and end-to-end tracing. This keynote will illustrate how the combination of PHP and Oracle database meet those requirements including: how to sustain tens of thousands of concurrents users? How to failover database connections in real time (fast connection failover)? How to split A/B test database-driven applications? How to ensure data cache coherency? How to trace PHP applications from the browser to the SQL operations?
Graphs in the database: RDBMS in the social networks age
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.
Cómo involucrarse con PHP
Una de las mejores cualidades de PHP es su buena documentación. En esta charla se mostrará como funcionan las herramientas para ayudar con la traducción, corrección y mantenimiento del manual de PHP al Castellano de la página oficial de php.net.
Real-time Communication Techniques with PHP
This talk looks at the advantages and disadvantages of three different techniques for dynamic content updates: short polling, long polling, and WebSockets. These techniques allow web developers to provide users with a fluid experience that keeps pace with their expectations.
LAMP was originally Linux, Apache, MySQL, PHP. While the L & A have parts have become more flexible, most still use MySQL. With the recent acqusition by Oracle there’s no better time to demystify PostgreSQL. For years PostgreSQL has had a reputation of being difficult, but this is the furthest from the truth. This presentation will cover installation, basic queries, stored procedures, triggers, and full-text search
Database version control without pain
We’ve all read the textbooks and are using version control systems for our code, but our databases are left out in the cold. Every team has their own workaround, ranging from patch files to SQL snippets in the bugtracker, but none is really robust. There isn’t a silver bullet solution, but this talk will show you different approaches and solutions that you can use in different kinds of projects, helping you to handle the changes in your database structure in a more sophisticated way.
PHP for Android: Scripting PHP en Android
ASE (Android Scripting Environment) es una aplicación para Android desarrollada por Google que sirve como marco de trabajo para los diferentes intérpretes de lenguajes de programación. Ivan Mosquera, desde Irontec, es el autor del paquete phpforandroid.apk, haciendo PHP disponible como lenguaje de scripting para plataformas Android mediante ASE. La ponencia tratará de exponer el estado de arte de ASE en dispositivos Android. Se explicará la arquitectura ASE, y cómo montar pequeñas aplicaciones en el teléfono mediante scripts PHP.
Magento is currently the most advanced e-commerce platform around the world, and it’s open source licensed , developed in PHP. Based in the MVC implementation of Zend, and designed modularly, Magento is very well engineered, but it is not easy to scale, and to obtain the best performance from it. This session will cover several techniques and methodologies you can use to scale and improve the performance in your Magento system: From caching, tuning apache and MySQL , and some techniques to convert some synchronous tasks to asynchronous, redistributing the load in your system and reconfiguring Magento to become a Service Oriented Architecture internally.
Continuous Improvement in PHP projects
We all know Continuous Integration and Continuous Inspection with PHPUnit, Hudson/phpUnderControl and other PHP QA Tools. But nowadays software gets more complex and we need a third CI process: Continuous Improvement. This process includes anti pattern detection, technical debt analysis and static code analysis. The talk will present tools like the PHP_CodeBrowser, Cinder, Padawan or PHPMD.
Distributed Source Code Management
Distributed Source Code Management (DSCM) tools, such as GIT, Mercurial and Bazaar, have been gaining ground over the last few years on their more traditional centralized predecessors (CVS, SVN, et al). In this session we will be looking at the differences between these two types of source code management systems and the workflows that development teams are adopting in order to get the most out of each one. We will also see how a number of best practices and customizations can be applied to facilitate both the use of these SCM tools and their interaction with other systems (bug trackers, wikis, continuous integration, etc). Finally, we will touch on some of the available options for automating the processes of deploying and testing the code that you have stored in your SCM system.
Varnish in action
PHP has become mature and it has become the language of choice for building large scale websites and webapplications. The adoption of PHP by enterprises has led to the fact that scalability, caching & performance have become increasingly popular topics. Varnish is a reverse caching proxy that is steadily becoming the default standard. A lot of people know what Varnish is and what it can do out of the box, but there’s plenty more it can do with the necessary tweaking. During my talk I will show you which tools it comes with and how it can be configured/programmed to serve the most common use cases.
Architecture and testability
Testing a web application may seem an hard task, but nowadays it is a fundamental part of the development process that ensures the application does not experience regressions, and it is free to grow incrementally. My point is that testability is a property which is desiderable not only for the ease of building an automated test suite, but also for the positive effects on the overall architecture that maintaining an application testable at the unit level produces. For example, being able to test a class in isolation is a sign of enough decoupling of it from the other collaborators, while keeping a limit on test cases length forces the production classes to be cohesive in functionalities.
Comet: By Pushing Server Data, We Push the Web Forward
According to the specification of HTTP, which is at the heart of all things web, a client must first request or “pull” information from the server and the server can only issue responses. It is never the other way around, with the server initiating the communication and “pushing” the data as it becomes available. Overcoming this limitation, actually an old and historical problem, would have remarkable applications, benefiting almost every page on the web to various degrees, and significantly enhancing the user experience. And the best part is: you can do it all right now, on any average server environment, and have it work on any standard browser! The modern, Web 2.0 -inspired collection of these solutions, design principles, and techniques for this “sever push technology” is sometimes referred to as “Comet.” I will discuss in detail: the numerous uses and benefits of Comet; the problems and difficulties that developers have to face; the variously accepted solution strategies that exist today including polling, long polling, streaming; their subcategories and their specific implementations, subcategories, advantages, disadvantages, and compatibility nuances; how HTML5 offers to address the issue; as well as outline some original research on the topic. Finally, I will illustrate these concepts and ideas through the live coding of a simple, Comet-based application using the help of a PHP framework with rich Comet support.
Doctrine 2.0, a new version of the most popular PHP ORM, is going to change how people use databases in PHP forever. Come to this talk to see what is all about.
Lemur Framework is a small high performance PHP framework designed for fast and flexible PHP development. It’s the framework that should be used by the developers that do not want to use a framework. The framework’s core is really tiny. The Lemur Framework has been built due to the need to replace a Drupal installation and greatly improve the website’s performance. It is based on the work in the motogp.com website and will be released as GPL during the PHP Barcelona Conference. Features include database abstraction API with master-slave support, a forms API, memcached API, user management with session/permissions support and a powerful but simple theming system. The code has a module system to extend its functionality. It is also ready to use in a multi site environment, with different settings/modules per domain. In this session we will explain the reasons to do the core that way (and why we created yet another framework) and how to use, extend and even modify the framework to build applications. We will talk a lot about perfrmance and will show how to build an Hello World page, a page with Ajax loaded blocks… On each example we will browse through the various framework modules responsible by each part of the process and explain what is their part in the process of creating the final output (not boring because of the small core). 🙂 We will also show how to manage different TTL’s to a Varnish installation, a CDN and the final user.
Service Oriented Architecture: a good thing to do
Jan Willem Eshuis explains the benefits of a good and robust designed SOA environment. With a good and rebust SOA environment companies are ready for
the future and able toquickly adapt to the need of their customers or suppliers.The process of development for developer will be easier and the maintenance of each component in the SOA environment is cheaper than just building one big system.
Mondongo, un ODM para PHP y MongoDB
Session in Spanish
Mondongo is a simple, poweful and ultrafast Object Document Mapper (ODM) for PHP and MongoDB. In the session I’ll speak about why MongoDB is one of the best document databases. I’ll explain the new architecture of Mondongo, with which, as it is very flexible, it can be customized and extended very easily. And, of course, I’ll demonstrate that these types of tools can be very very fast, hunting down the myth that they can’t be used in large projects.
SCRUM al detalle: Revisión práctica y perversiones humanas
Session in Spanish
Un día, os dais cuenta de que Scrum está de moda. Vuestro equipo de desarrollo se organiza bastante mal y pensáis que Scrum puede ser una buena opción, así que googleáis un poco, un par de fotos, comprobáis que tenéis post-its en el cajón, una pizarra blanca y boom! Sois Scrum! No obstante, reconozcámoslo, después de un tiempo, aunque habéis notado ciertas mejoras, no aplicáis Scrum correctamente, principalmente porque falta formación, ser estrictos en la metodología, un Scrum Master fuerte (probablemente Certificado) y vuestra vagancia y humanidad hace que pervitáis la metodología para ella se adecue a vosotros cuando debería ser al revés. En esta presentación, revisaremos la definición y responsabilidades de los Roles, el detalle y las perversiones más comunes sobre los Eventos (Morning Meetings, Planning Meeting, Estimation, Restrospective, etc.), el detalle y características de cada Elemento de Scrum (Vision, Product Backlog, Sprint Backlog, DoD, etc.), los requisitos y el proceso de implantar Scrum en vuestras empresas y mucho más.
MySQL client caching
Caching is one of the major ways to improve performance in web-based applications. Using the msqlnd client side cache PHP users get a transparent caching solution for MySQL operations. This presentation will introduce the open source caching solution provided by Oracle and will discuss msqlnd, the foundation for PHP extensions like this.
Desarrollo de aplicaciones para Facebook en PHP
Session in Spanish
En este taller construiremos una sencilla pero completa aplicación para Facebook, y para ello trataremos de los siguientes puntos: Qué es una aplicación de Facebook, Modelo de Autentificación (OAuth 2), API de Facebook (Graph API, Rest API), Creación de una sencilla aplicació que: * Extrae datos del usuario, * Añade funciones sociales, Facebook mobil y Facebook connect.
PHP Team organisation
Current dev teams easily tops a dozen developpers, and there are no sign of shrinking. To a project to succeed, one must take into account the human factor : dev team organization. Direct from the battlefield, we’ll share tips and tricks on how to handle seniors and juniors, smooth communication with users, raise the technical level of everyone and make mission critical a fun objective again. We won’t cover PHP code : just how to live with it.
PHP through the eyes of a hoster
Eventually a project is going to get hosted on the internet and in a lot of cases an external webhosting company will take care of that. As the support manager and open source evangelist of a large hosting company, I will bring you a story about how a hoster experiences the wonderful world of PHP, about what can go wrong for customers and about how a webhoster can solve these issues. This includes: Ensuring harmony on a shared server, Migrating applications from other servers, Dealing with hacked websites, Boosting performance, Teaching customers how to make their apps scale, Solving code issues serverwise, Securing applications, Patching, debugging & profiling, etc.
High Performance WebApps Faster & Easier with NOLOH
Modern websites and WebApps require a sophisticated combination of technologies to perform and compete. In this session we’ll show you how using the NOLOH PHP framework for your website or WebApp allows you to focus on exclusively on your application. We’ll show why you won’t need to worry about incorporating Ajax, or Comet, or whether your application will work on all browsers and operating systems.
Unlike some other “PHP frameworks” that are nothing more than a basic library or an assortment of useful functions, NOLOH, which is an acronym for “Not One Line Of HTML”, consists of a deep, interrelated system of classes that structure virtually every aspect of the web development experience. NOLOH is the perfect tool for the rapid development of Web applications and feature-laden websites. Because it is lightweight, on-demand, event-driven and fully object-oriented, it brings all the best features of modern Web development into a single package.
We hope to clearly demonstrate that NOLOH is definitely NOT just another PHP framework. It brings you advanced features such as automatic AJAX and Comet while handling all browser and OS-specific issues transparently to you; allowing you to code once and deploy everywhere.
In this session we’ll showcase several applications and cover: Creating a Basic Application, Adding Controls, Events, Syntactical Sugars, Shifting & Animation, using your existing HTML, Integrating 3rd party Widgets and Scripts, and Comet.