Only 0 days until the conference!

Register Now

2008 Conference

L'Analyse Web (Web Analytics)

Sébastien Brodeur / French Session

Speaker Photo

Qu'est-ce que l'analyse web?

L'analyse web regroupe la mesure, la collecte, l'analyse et la présentation de données provenant d'Internet utilisées afin de comprendre et d'optimiser l'utilisation du Web. En résumé, le Web analytique est l'analyse de données issues du trafic web favorisant l'aide à la décision.
Cette présentation ce veux une introduction à cette nouvelle discipline.

Top

The Age of Literate Machines

Zak Greant / English Session

Speaker Photo

This session tells three intertwined stories - one that begins with the birth of modern humanity, another that begins with the age of literate machines and the last that explains the real meaning of Free Software and Open Source to our society and our future. Along the way, we'll visit ancient god-kings and accountants, long-dead muftis and heretics, French inventors and monopolist printing guilds.

Top

Realizing the Full Potential of Your Rich Internet Applications

Mike Potter / English Session

Speaker Photo

Rich Internet applications are everywhere. But few RIAs leverage the full potential offered by using a combination of PHP, Flex and AJAX technologies. In this presentation, the spokesperson will show how application developers are using a mix of PHP, AJAX and Flex to create RIAs that are changing the face of the Internet and how businesses interact with customers and employees. He will present what developers are doing ? right now ? to design rich Internet applications for the Web that combine the best of traditional graphical user interface applications with the wide reach of Web-based access, leading to more streamlined business processes and richer customer service. He will discuss how seamlessly PHP, Flex and AJAX can work together with minimal recoding, eliminating the need to re-start projects from scratch.

The audience will learn:

  • How PHP, Flex and AJAX are changing the face of the Web
  • How developers can combine PHP, AJAX and Flex in their Web applications to provide better customer service, sleek branding, and better business processes
  • How developers can add Flex and Flash functionality to their existing applications without starting from scratch
  • How companies can leverage rich Internet applications to do better business, including increased conversion and checkout rates
  • How developers are using Flex and Flash to create rich, interactive e-commerce and community Web experiences

Top

Help, I found a bug in my code!

Derick Rethans / English Session

Speaker Photo

You write code, you introduce bugs. There is simply no way to avoid that.

This session teaches you how to detect and debug PHP scripts with the free open source tool Xdebug, which is an extension to PHP. The first part will consist of a small introduction on how to get started with Xdebug, and how you should configure and install it. The second part of the session will cover detecting problems in your scripts by showing how Xdebug provides debugging aides in the form of stack/function traces, dumps of variables, modified PHP functions. In the last part I will show the remote debugger capabilities of Xdebug, where you can: set breakpoints on functions, methods and file/line combinations, watch execution details such as stack frames, per-frame information and variable contents. On top of this you will also see how you can use Xdebug's profiler to find bottlenecks in your scripts and also in full blown applications.

I will also provide some tips that prevent you from introducing bugs in your code.

Top

High Performance Web Pages

Stoyan Stefanov / English Session

Speaker Photo

Yahoo!'s Exceptional Performance (developer.yahoo.com/performance) team evangelizes best practices for improving web performance. They conduct research, build tools, write articles and blogs, and speak at conferences. Their best practices center on the front-end where 80-90% of the end-user response time is spent, and have proven to improve the performance Yahoo! properties by 25-50%.

The team is responsible for the highly popular YSlow (developer.yahoo.com/yslow) open source extension, a tool to measure a page's compliance with their best practices. While Yahoo!'s Canadian site scores 90 out of 100, at the time of this writing the Canadian Government site scores only 52, the FutureShop scores 59,CBC scores 35, and Gouvernement du Québec scores 64.

This talk will highlight Yahoo!'s latest research results and performance breakthroughs. We'll cover the existing 14 rules already made available on Yahoo! Developer Network, plus 20 new rules! We've categorize these new rules into optimizations for servers, cookies, content, JavaScript, CSS, images, and mobile. Come join us on accelerating the user experience.

Top

Agile web application development using Project Zero

Robert Nicholson / English Session

Speaker Photo

This technical session will present the overview of the Project Zero architecture, then dive into the details of the REST-orientation of the system. I will explore the mechanisms that simplify Web services development in PHP. I will also show how easy it is to interact with Java code using the Java Bridge built into the Runtime.

Project Zero is IBM's incubator project focused on the agile development of dynamic Web applications. It introduces a simple environment for creating, assembling and executing applications and includes APIs optimized for producing REST-style services, integration mash-ups and rich Web interfaces. Project Zero integrates a PHP runtime which executes in a Java Virtual Machine and an Eclipse based IDE.

Top

Security 2.0

Chris Shiflett / English Session

Speaker Photo

Web 2.0 has been described as many things. It's the Web as a platform, a network of networks, the architecture of participation. However you choose to define it, the way we build applications online has changed. Web sites do more by empowering users, but this has opened a Pandora's box. Cross-site scripting (XSS), cross-site request forgeries (CSRF), and Ajax are being combined in creative new ways to launch sophisticated attacks that penetrate firewalls, target users, and spread like worms. This talk examines this new threat, dubbed Security 2.0, by demonstrating some hypothetical and real exploits as well as discussing methods of safeguard and prevention.

Top

PECL: The PHP Language Workbench

Sebastian Bergmann / English Session

Speaker Photo

A look into PECL shows how flexible the language core of PHP, the Zend Engine, is. The repository holds a variety of extensions that not only add "normal" functionality, but alter and extend language features. This session will demonstrate, among other, PHP extensions for operator overloading, manipulation of bytecode at runtime, and access to the parse tree of PHP code.

Top

Graph-Oriented Programming with PHP

Sebastian Bergmann / English Session

Speaker Photo

Workflow Management (WfM) is becoming more and more important. For the development and maintainance of software that supports workflows, a new layer on top of the base programming language is needed. Graph-Oriented Programming (GOP) is such a layer. This session presents the eZ Components' workflow engine, its possible applications and the underlying principles and techniques.

Top

Implementing a JSR-283 Content Repository in PHP

Karsten Dambekalns / English Session

Speaker Photo

Storing content of any form poses problems for content management systems and beyond. The JSR-170 specification, which has been released in June 2005, defines a standardized API for a Content Repository, promising to solve most of those problems. The reference implementation Jackrabbit is now a top-level project in the Apache Software Foundation and a handful other implementations exist as well. None of them are PHP-based, though.

The next major version of TYPO3, version 5.0, will be based on a content repository for data storage. This lead to the decision to develop our own pure-PHP Content Repository, based the successor of JSR-170, the upcoming JSR-283. Since the API is standardized, and the implementation will not be tied to the TYPO3 CMS, we are certain it could become a valuable and widespread tool within the whole PHP community.

First steps in implementing the Content Repository included adapting the Java-centric API where it was needed, followed by writing unit tests for the first batch of planned functionality. By now we have basic functionality working and are approaching more sophisticated parts of the specification.

The presentation will give an introduction to the concepts behind the JSR-283 specification, followed by information about the current status of development, the development model and the techniques and algorithms being used for the implementation.

Top

Database and SQL (un)patterns

Lukas Smith / English Session

Speaker Photo

This talk will go over a number of common challenges faced when writing database applications using SQL. Topic will include groupwise-max, storing hierarchies and similar structures, normalization, thinking in sets, pivot tables, leveraging indexes, data partitioning and many more topics. During the workshop we will look at common mistakes, but more importantly solutions that are established best practices. While most of this talk will be focused on MySQL, other databases will also be covered to some extend.

Top

Operational Risk Center (ORC) Using PHP

Jagadeesan Balakrishnan / English Session

Speaker Photo

In the draft of the Federal Office for Financial Affairs for the MaRisk (minimum requirements for the risk management), top priority is given to the operational risks (OpRisk). These requirements can be met using various modules:

OpRisk Loss Data # ORC-RE (Risk Events):
The structured capturing of loss data is a prerequisite for risk assessment and strongly required by the
banking supervisory authority. Financial institutions that want to calculate their equity capital coverage according to a standardized or advanced procedure must operate a loss database.

OpRisk Self Assessment # ORC-RC (Risk Checkpoints):
The module ORC-RC allows for the definition, administration and distribution of questionnaires for
the gain of qualitative expert statements. Plus, this self assessment module offers functionalities for the definition, administration and distribution of
questionnaires in order to gain qualitative, quantitative and scenario-based expert statements.

OpRisk Indikators # ORC-RI (Risk Indicators):
Effective risk management means to respond to changes in the risk profile early on, ideally even before
losses occur. By integrating risk indicators into work processes and by interweaving indicators with escalation procedures, impending losses can be
recognized on time.

OpRisk Reporting # ORC-RA (Risk Analysis):
The timely supply of current risk information is essential for dealing appropriately with operational risks. The ORC-RA module can provide with a highly efficient reporting system.

OpRisk Measures # ORC-RM (Risk Measures):
By receiving the risk information on time resp. triggered by certain events, financial institutions are able to actively take measures to avoid or diminish risks.

Top

Rich Desktop Applications

Raphael Rougeron / French Session

Speaker Photo

Rich Desktop Applications : l'évolution des méthodes de
programmation côté serveur

Traditionnellement, le développement d'applis web en PHP prenait en compte la génération de l'interface HTML de l'application, mais l'arrivée en masse de nouvelles plateformes de RDA (Adobe AIR, Silverlight, XULRunner, etc...) va entrainer une évolution del'architecture côté serveur. Les développeurs PHP vont devoir évoluer
vers une architecture applicative orientée services, dans le but de fournir une API accessible par divers protocoles de communication (REST, SOAP, XMLRPC) et capable de gérer différents formats de données (XML, JSON, etc..). Après une revue des différentes plateformes RDA existantes, de leurs points forts et faibles, et surtout de leurs possibilités d'interfaçage avec PHP, nous examinerons plusieurs architectures possibles pour ce type d'applications, en mettant en avant des solutions permettant de fournir également aux utilisateurs une interface web classique. Nous réfléchirons en particulier aux changements de méthodes de développement nécessaires, notamment par rapport aux tests de l'application.

Top

SOAP tip, tricks and tools

Rob Richards / English Session

Speaker Photo

Many times the use of a REST based service is not an option within a project and the use of SOAP is required. While SOAP is supposed to be easy to use, often you find yourself pulling your hair out just trying to interact with other services. Every week I receive a good number of requests for help from PHP developers having difficulty integrating with other services. In this session, I will present some tools, tips and tricks that I personally use when working through difficult and/or issues with problematic services. All techniques with be demonstrated through the integration of ext/soap with real world corporate and governmental SOAP services. Not only will you walk away from this session with an understanding of some of the issues when working with SOAP, but also with some ideas and techniques to help you work through unforeseen problems, ultimately saving you time and headaches.

Top

Techniques de sécurité systémique sur le Web

Damien Seguy & Philippe Gamache / French Session

Speaker Photo Speaker Photo

La sécurité est un domaine vaste et complexe. Les vulnérabilités savent exploiter plus d'une technologie à la fois, et il faut développer une approche systémique pour la maîtriser : il faut intégrer le navigateur, la plateforme LAMP et toutes les technologies connexes dans une démarche globale.

Dans ce laboratoire, nous allons mettre en commun les expériences et les projets de chacun pour mieux appréhender la sécurité. Nous avons préparés différents sujets à développer durant la session :
les tests automatiques (mise en place, intérêt, outils), la découverte de sites, les audits de code, le fuzzing, l'étude d'architecture, les XSS, les CSRF, les audits et les relations entre le projet et la sécurité. Nous travaillerons aussi sur une application bouc émissaire, que vous tenterez d'investir et détourner. Nous verrons aussi comment intégrer la sécurité au coeur du développement et de l'architecture LAMP.

Le but du laboratoire sera de faire un tour complet des techniques de sécurité, de leurs noms, objectifs et limitations, pour que vous puissiez repartir avec une démarche systématique et adaptée.

Top

The Seven Steps To Better PHP Code

Stefan Priebsch / English Session

Speaker Photo

Developers spend a lot of time maintaining existing code. This session introduces you to refactoring, a technique to make code more readable, maintainable, and extendable by improving the design, but without changing the visible behaviour. You will be introduced to a seven-step refactoring methodology specifically designed for PHP. By refactoring, you can make your code a little better every day.

Top

Beyond MVC: Enterprise PHP Patterns

Stefan Priebsch / English Session

Speaker Photo

Design Patterns are the blueprints for creating (PHP) applications. In this session, we will explore patterns of enterprise application architecture. Beyond MVC, you will meet FrontControllers, RequestHelpers, data access patterns, and learn how to apply them in PHP. We will also have a look at where and how these patterns appear in common frameworks and applications.

Top

PHP for Polyglots - Web applications and i18n

Marc Wandschneider / English Session

Speaker Photo

In an increasingly global world, multiple language support becomes ever more important for web application authors. In addition to worrying about how to support accents, pictographs, and other character set issues, developers are now being asked to write sites in multiple languages, in a way that is easy for non-technical people to use.

In this talk we will cover the full range of issues you will face when writing web applications for multiple languages, including:

  • planning and design
  • character set issues you will face when processing text
  • implementing your interface for multiple languages and locales
  • how to localise Ajax portions of your application
  • other topics, such PHP5 vs PHP6 considerations, search engine issues, etc.

Top

PHP and memcached - Giving your database server a break

Marc Wandschneider / English Session

Speaker Photo

No matter how hard we work to design and optimise our web applications, databases always seem to be a common bottleneck and point of failure for performance and stability. With this in mind, people have developed various caching solutions over the years, one of the best and easiest to use of which is "memcached".

In this talk, we will look at using memcached to help reduce the stress on our database servers, and how to integrate it into our web application design. We will cover:

  • installing memcached
  • basic usage
  • integrating it into our PHP web applications
  • some advanced usage
  • limitations

Top

Performance-minded MySQL for PHP Developers

Jay Pipes / English Session

Speaker Photo

The session will cover how to develop PHP applications with the performance of your MySQL server and SQL code as a top priority. Topics discussed include query rewriting, MySQL server internals and gotchas of whic PHP programmers need to be aware, choosing appropriate storage engines based on application needs, and diagnosing server tuning issues.

Recommendation: sit towards the front; you'll get the most out of the slides, and Jay tends to pick on folks who sit in the back. ;)

Top

High Performance PHP & MySQL scaling techniques

Eli White / English Session

Speaker Photo

This talk will discuss issues and solutions when attempting to scale
PHP and MySQL to high volume websites (such as digg.com). It will
discuss some of the problems at hand, and go into (at a high level) some
of the solutions, such as using memcache, DB partitioning, etc. As well as
how to handle these solutions within PHP.

Top

Help, My Website has been hacked! Now What?

Eli White / English Session

Speaker Photo

A Practical discussion from the other side of web security.
Everyone makes mistakes, and leaves security holes on their website
(XSS, CSRF, Session Hijacking, SQL Injection). This talk instead of
focusing on what to do to prevent these, instead is a crash course on
what to do when you discover that the site HAS been hacked. How to
track down the problem as quickly as possible so that you can close it.

Top

The symfony platform: Create your very own framework

Fabien Potencier / English Session & / French Session

Speaker Photo

The session goal is to create a new framework.

We will start with a "traditional" PHP script and we will slowly refactor the code to create a simple but efficient framework. To help us achieve this goal, we will base our framework on the symfony platform, which is composed of the base classes of the symfony framework (the request, response, user, and routing classes).

During the refactoring, we will introduce some design patterns used in Web development: MVC, filter, adapter, singleton, observer, dependency injection, ...

At the end of the session, we will have a fully featured lightweight framework to build web applications with.

Top

PHP dans la grande entreprise et dans les gouvernements

Benoit Marchand / French Session

Speaker Photo

La grande entreprise et le secteur gouvernemental constituent une arène complexe ou s'affrontent technologie et décisions politiques.

Cet univers, interagissant autour d'une multitude de systèmes maison, d?applications propriétaires et hétérogènes, est encore aujourd'hui considéré comme une chasse-gardée des gros fournisseurs tels qu?IBM, Microsoft, Oracle, etc.

Mais qu'en est-il des technologies open source en général et de PHP en particulier?

Cette session tentera de faire la lumière sur le statut actuel de PHP dans les domaines gouvernementaux et de la grande entreprise canadienne, tout en exposant les contraintes imposées par ces milieux-là aux fournisseurs de solutions web et technologiques.

Quelques points touchés par cette session:

  • Statut de PHP dans le bassin des technologies
  • Restrictions et défis du milieu gouvernemental et de la grande entreprise
  • Plateformes et produits open source VS développement sur mesure
  • Outils et méthodologies
  • Introspection : Que manque t?il à PHP pour convaincre ces milieux ?

Top

Introduction to PHP 5.3

Ilia Alshanetsky / English Session

Speaker Photo

A detailed summary of features and additions that are part of the PHP 5.3 release. This session will introduce the audience to the latest and greatest that the new stable version of PHP has to offer and through examples demonstrate its new capabilities and advantages over prior releases.

Top

Disaster Recovery In A Production Environment Using PostgreSQL's Point In Time Recovery (PITR)

Robert Bernier / English Session

Speaker Photo

It's everybody's nightmare, the server has gone done! How are you going to restore your server without losing data in a production environment? PostgreSQL incorporates technology that Continuously Archives from an active server that, in the event of a catastrophe, makes it possible to restore your server without losing any of your precious data and without resorting to backup datadumps which doesn't have the most uptodate data.

PITR also provides the PHP web-developer the ability to "time travel" through a database. Time traveling is the ability of PostgreSQL PITR to rebuild the database from its last datadump up to a certain time. An example of this recovering from an undesirable transaction that happended at 10:00am but it wasn't noticed until 1:00pm.

This presentation shows how easy it is to set up continuous archiving and point-in-time recovery (PITR) and how to use it under various situations.

Top

API Design in PHP

David Sklar / English Session

Speaker Photo

The Ning PHP API is used by more than 100,000 web applications as an interface to Ning's REST-based services, including content storage, profile management, search, and tagging.

This talk is about what we've learned at Ning having spent two and a half years building, improving, and supporting an API written in PHP.

Topics include:

  • PHP-specific concerns when applying general "good API design" principles
  • Making sure real world development and use cases drive what's included in the API
  • The Blessing and the Curse of Backwards Compatibility
  • Managing upgrades, new releases, and API revisions
  • Static and dynamic analysis to measure who's using what parts of the API
  • Building an API into the API: making sure that the API is flexible enough through the use of event listeners and class registries.
  • Naming and inheritance: making clear what developers can change and what they can't.
  • Testing and code coverage: Regression testing is essential for maintaining backwards compatibility. You'll be surprised at the ways developers use your API!
  • Riding old code off into the sunset: A strong API contract means you can change the underwater parts of the iceberg as much as you want...right?

Top

Breaking the Rules

Morgan Tocker / English Session

Speaker Photo

Database optimisation often involves tradeoffs. This talk will be about various tricks you can do with MySQL that go against the traditional rules of database design.

A simple example of this is disabling foreign keys to avoid the overhead of checking. As you keep diving down, you can start making small changes to your schema and queries.

Top

Security from the Database Perspective

Morgan Tocker / English Session

Speaker Photo

This talk will cover proof of concept SQL injection and denial of service attacks as well as strategies to defend yourself.

Top

Test driven object oriented programming - learning and understanding

Marcus Boerger & Sebastian Bergmann / English Session

Speaker Photo Speaker Photo

PHP has become an extremly powerful web development platform, and since PHP 5 it supports a pretty good and capable object model. This allowed the design
of high quality Frameworks such as the eZ components or the Zend Framework. But before you can start using them, you might want to learn a bit more about OOP.
This tutorial is an in depth introduction to object oriented and pattern based programming using PHP 5. You will learn everything necessary to write your own
cutting edge components and applications - and of course how to use and extend components from other people or companies. You will learn how and when to use
objects as well as when not to use them. Throughout the tutorial we will use a test driven learning approach.

Top

Explaining the complaints

Derick Rethans & Marcus Boerger / English Session

Speaker Photo Speaker Photo

PHP has developed to a quite complex yet easy web language. It's goal still is to Keep It Simple Safe. But sometimes easy stuff gets more complex than anticipated. Sometimes PHP simply grows. Noe in this thread we will try to explain a lot of stuff people like and do not like about PHP. And if you have something to complain about or would like to get explained we will happily give you answers from top level overview arguments or language design stand points, down to core level c argumentation.

Top

RIA with open standards

Jeff Griffiths / English Session

Speaker Photo

Rich Internet Applications don't have to be built on proprietary technology like Flash or Silverlight. Using Firefox, Remote XUL, PHP and jQuery it is possible to build great-looking applications that are highly interactive and use open standards. During this talk we will look at how to create a simple application using PHP, javaScript and XUL and cover implementation examples for various RIA features such as:

  • drag and drop
  • styling / skinning with css
  • tabular data display
  • graphing / vector drawing with canvas
  • media handling

Top

Who Am I? - The Age of the Digital Identity

Rob Richards / English Session

Speaker Photo

OpenID and InfoCards are currently two of the most discussed identity technologies. Although you might not be ready to start implementing these technologies into your current applications or architecture, it is important that you understand the benefits, usage cases and differences between these two technologies to prepare for the future. During this presentation we will examine what digital identities are and specifically what each of these technologies is. While not going too in-depth on implementation details, some tools and libraries will be introduced giving you a head start to the digital identity revolution.

Top

PHP Applications with Xquery v1.1

Kitman Cheung / English Session

Speaker Photo

With the working draft of XQuery v1.1, W3C defines the requirement for XML Update Facility. The new specification will add INSERT, UPDATE and DELETE to the XQuery standard. This core purpose of this session is to show how you can leverage these new Xquery capabilities in your PHP applications using DB2 v9.5 (releasing Oct 2007). The session will also showcase how you can use Xquery to simplify web services implementation.

Top

Top 10 Scalability Mistakes

John Coggeshall / English Session

Speaker Photo

As the leader of the North American Professional Services Department, I've had the .. Pleasure .. Of working on many of the biggest PHP code bases and applications on the planet. Often, I'm there because they are broken, and I'm always responsible for getting them fixed. One thing is for certain -- there are a lot of developers, managers, and architects out there who are making the same mistakes as everyone else. From growing your development team from 5 to 50, or your code base from 10,000 to a million there are clear patterns and mistakes. Join me as I investigate some of my favorites and how to both avoid and learn from the mistakes of others.

Top

Enterprise PHP: A Cross Section of a real Implementation

John Coggeshall / English Session

Speaker Photo

Join John as he discusses the start-to-end development of a real-world application done as a part of his efforts in Zend Professional Services. Learn how e-commerce, scalability, integration, and performance come together into a single mission-critical application

Top

Grandir l'équipe avec le contrôle de révision

Louis-Philippe Huberdeau / French Session

Speaker Photo

Pour collaborer efficacement sur un projet logiciel, un système de contrôle de révision est nécessaire. Pour de petits projets, utiliser la branche principale pour toutes les tâches peut être suffisant. Les problièmes surviennent quand l'équipe grandit. Afin d'éviter les pertes de temps et les conflits, des branchements plus complexes devront être utilisés pour mieux refléter le travail réellement effectué. Cette session va présenter différentes stratégies de branchements utilis&eacite;s dans l'industrie et diverses pratiques qui peuvent être mises en place pour assurer la qualité du code et la maintenabilit&eacue; à long terme.

Top

Web-Scale PHP Connection Broker

Kuassi Mensah / English Session

Speaker Photo

In large scale database backed Web applications, continuous connection creation and connection closing is expensive and eventually cripples scalability.The traditional PHP connection caching within the Apache process (or other web tier) does not achieve optimal connection utilization and incurs unnecessary overhead (memory, cpu) on the database server. This technical session will describe a connection broker independent of the Web tier that can manage a set of pooled connections transparently to the PHP applications. As a result, PHP applications can scale up to tens of thousands of simulatenous users accessing a single database instance.

Top

Databases Information Center

Zak Greant / English Session

Speaker Photo

Using relational databases such as Oracle, MySQL, DB2 and PostgreSQL has now become a common practice for building software applications in all sorts of situations. Discover the the strengths and weaknesses of the main databases throughout different typical scenarios presented by the experts, Robert Bernier (PostgreSQL), Kitman Cheung (DB2), Kuassi Mensah (Oracle), Jay Pipes (Mysql) and moderated by Zak Greant.

Top

Databases Q&A

Zak Greant / English Session

Speaker Photo

The database experts Robert Bernier (PostgreSQL), Kitman Cheung (DB2), Kuassi Mensah, (Oracle), Jay Pipes (Mysql) will be available to answer your questions about specific features, reliability, integrity, security, scalability or any other issues that you may have. Moderated by Zak Greant.

Top

Security/Optimisation Q&A

Ilia Alshanetsky & Chris Shiflett / English Session

Speaker Photo Speaker Photo

Achieving a secure yet optimized application should be a concern of any software developer. In order to help you reach that common goal, two experts join forces to answer your questions and to provide tips and tricks about security and optimization and how to do the one without affecting the other.

Top