Slides and videos of my technical presentations
Web Application Software Testing
Building websites like applications means bringing more attention to testing. From unit tests early on to load and regression testing later in the game, the primary purpose of testing is to detect software failures so that defects are discovered and corrected before they make it to the customer. Depending on your size, different testing strategies and things like automation may or may not be necessary. I'll cover some great free tools, some simple command line scripts as well as some commercial choices for the various types of testing.
Sphinx Full Text Search Server
Sphinx is a standalone, full-text search daemon that allows advanced searching over large collections of blocks of text, either from a database or as documents on a file system. Sphinx can scale to billions of documents while still providing sub-second results to boolean queries, wildcards and other advanced search features. I cover basic setup, building a simple index, and demonstrate how to use SQL queries to retrieve results through its API.
WordPress and Zend Framework Integration with Vulnero
Vulnero is a WordPress plugin that transforms WordPress into an object-oriented CMS by implementing a Zend Framework application that interfaces with its API.
Regular Expressions in PHP
From my November 3, 2011 talk at MNPHP. Regular expressions are a powerful tool available in nearly every programming language or platform, including PHP. I go over the history of POSIX vs. PCRE, examples in PHP, and optimizations on how to write faster expressions.
Overview of MongoDB and Other Non-Relational Databases
My Minnesota PHP Usergroup (mnphp.org) presentation where I give an overview on MongoDB and other non-relational databases and their ability to solve unique, complex problems.
Locking and Race Conditions in Web Applications
Mutexes, locks, transactions -- they all may seem more relevant in compiled languages, lower level drivers or in databases; however, race conditions can be of equal dilemma in modern web applications. Something as simple as a user double clicking a submit form can yield unexpected results. These problems are difficult to replicate and to test, so they often go undetected. They can occur with or without significant traffic. Finally, with NoSQL alternatives growing in popularity for storing data and as caching layers, we need new alternatives to database transactions and locking. In this session, I will present situations which are vulnerable to race conditions, along with solutions. I'll also talk about locking approaches that are reliable, efficient and scalable.
Command Line Tools Every PHP Developer Should Know About
With the increasing selection of modern IDEs supporting the PHP syntax and their bells and whistles, developers often lose sight of the command line and all of the utility it offers. Working with GNU tools can be a great way to identify problems, come up with creative and time saving solutions, and bolster your development productivity. I'll cover a variety of must-know commands you might not know about so that you can be prepared for your next big problem.