TEK12 IS NOW OVER : SITE ARCHIVED : SEE tek.phparch.com FOR CURRENT INFORMATION
SEARCH
 

Talks

(Re)discovering the SPL

Joshua Thijssen
The Standard PHP Library (SPL) might be one of the most powerful, yet the most unused part of PHP. The lack of documentation about SPL makes it that a lot users don’t really harvest the power that SPL brings. During this presentation I will dive into the numerous iterators, data-structures and interfaces that SPL defines and when & how to implement them in your own projects.


API Development

Rob Richards
APIs are pretty much a necessity for organizations in this day and time, although many have a difficult time trying to figure out how to get started. It is not as simple as standing up and endpoint and exposing data as one must be cognizant of both the consumer and the delivery mechanisms in order to make an API successful. In this tutorial, I will briefly go through some of the whys of having an API and what one would want to be exposing before we go into depth on creating and exposing these APIs. Using real world scenarios we will explore creating APIs with different data formats, ways to expose them as well as how to deal with debugging when things go wrong. In addition to the creation, understanding and being able to write consumers is also a critical skill when developing APIs. We will cover this not only as part of debugging, but also when working on and discussing different consumer types such as mobile applications.


API Security

Rob Richards
People may consider API and Web application security the same, but are often surprised to find that API security involves many additional, some much more complex issues, that must be addressed. During this presentation I will cover some of the more common issues such as authentication and authorization, privacy, as well as payload and other API related attacks and security vulnerabilities.


Alice & bob: Public key cryptography 101

Joshua Thijssen
HTTPS, SSL, SSH, PGP are terms most people know that they are somehow related to encryption. But how does it work? During this talk you will find out why even the most complex encryption algorithms used today are based on very simple concepts. We will dive into the basics of public key encryption, how it works and together with some (simple) examples, give you some insight on encryption in general. And who the heck are Alice and Bob anyway?


Amazon SimpleDB

Eli White
Interested in NoSQL (non-relational database) technologies? Want an introduction to one that is simple to use, immediately available, and easily scalable? Then SimpleDB may be for you. Come learn how to use Amazon SDB and what features it can provide to help solve some of your software development concerns.


Blazing Data with Redis

Justin Carmony
There are many fast data stores, and then there is Redis. Learn about this excellent NoSQL solution that is a powerful in-memory key-value store. Learn how to solve traditionally difficult problems with Redis, and how you can benefit from 100,000 reads/writes a second on commodity hardware. We’ll discuss how and when to use the different datatypes and commands to fit your needs. We’ll discuss the different PHP libraries with their pros and cons. We’ll then show some live examples on how to use it for a chatroom, and how Redis manages a billion data points for our dating matching system. Finally, we’ll discuss some of the upcoming features in the near future, such as clustering and scripting.


Building A Firehose

Ian Barber
More and more companies are realising they have a wealth of data available to them, or they have the opportunity to aggregate information from multiple sources in near real time. While big data and batch processing systems like Hadoop are part of the tool kit of many teams, more and more are realising that a continually updating system of pipes and filters – a fire hose – of their data is a powerful and flexible tool. In this talk we will look at the challenges of building this type of system, the patterns and techniques that can help simplify it, and the difficulties of managing such a system when it’s running.


Clojure For PHP Developers

Ian Barber
Learning Clojure will both bring an entirely new perspective to the way you approach programming, and also allow quick and easy development of services using existing Java libraries and systems. Clojure is an exciting new functional language, based on LISP, with excellent support for multicore concurrency. Clojure is run on top of the Java Virtual Machine, which makes Clojure a great glue language – increasingly important when so many architectures use PHP as the web tier of a Java based service library. In this talk we will introduce the syntax and style of Clojure, look at how to use the REPL to quickly iterate programs, how to unit test Clojure code, and how to build RESTful services for communicating with PHP.


Community works!

Michelangelo van Dam
Getting involved with the community behind PHP is not difficult, and everyone is welcome to participate to get involved. But what’s this “Getting involved” thing? In this session I’ll explain what people can do to become part of the larger PHP community eco system, without committing code to the PHP core or other PHP related open source projects.


Continuous Deployment at dealnews

Brian Moon
The Web moves fast, really fast. No one talks about what version of a web site you are using. Maybe you are using the beta version. Even then, it is always new. The Web is obsessed with new. It thrives on new. To meet this demand, in the early years of the web, teams learned a new way to deploy their software. Rather than the traditional models used by compiled, installed software, these pioneers on the Internet deployed software when it was ready. That meant Web sites could be responsive to changes, fix bugs quickly, and add new features to compete with the market. This method is still alive today. Successful web companies still do this to keep their advantage. While there are no set rules, there are good examples of what others do and how it helps them be successful.


Cranking Nginx up to 11

Helgi Þormar Þorbjörnsson
You may see Nginx as the run of the mill web server, geared towards serving up static files and your language of choice but there is so much more to Nginx than that. Under the hood is a treasure trove of additional features and configurations that can help you take things to the next level. This includes having Nginx talk directly to Memcached / Redis (perfect for APIs, without hitting your application), proxy functionality, GeoIP, Lua in the config, MogileFS file serving, improved headers manipulation, and the less useful yet cool ability to query Drizzle / Postgres directly. This is only the tip of the iceberg. I will take you one a journey to explore the hidden corners of Nginx and show you how to crank it up to 11!


Creating Facebook Apps in the Cloud

Kirsten Jones
Facebook apps can now be made using cloud providers such as PHP Fog and Heroku. How can you get set up on these systems and create applications to use with Facebook? This talk will discuss getting started in each system and creating a very simple Facebook application – we’ll go over the code examples and demonstrate basic functionality. If you’re familiar with developing for Facebook, this talk will show you how to deploy those apps to the cloud. If you haven’t built any Facebook applications yet, this will get you started on that path.


Creating a high quality app using PHP components from around our world

Ryan Weaver
Whether you like flat php, Symfony, Drupal, Zend Framework or anything in between, we’re all solving the same fundamental problems. In this workshop, we’ll explore just how small the world is by building a “flat” PHP application, identifying these problems, and solving them piece by piece. We’ll learn what a “framework” really is as we create our own using components from Symfony, Zend Framework, and Lithium. When you leave, you’ll understand how to use a PSR-0 autoloader to bring new libraries into your app, how a dependency injection container can help you, and what’s really going on under the surface of the popular frameworks and CMS libraries.


Creating an HTML5 Site That Doesn’t Suck

Kevin Bruce
Ok- so HTML5 is here and it does some really cool stuff! Being the latest “new shiny”, your company to show off how bleeding edge they are by having a spinning 3d header bow, 53 web fonts, video boxes, galleries, etcÖ STOP! Remember when Flash first came out? Every site had an opening Flash page. A term was created for that- Flashturbation. It’s when something was created for the sole purpose of looking cool- forget the fact that people were leaving the site because all they wanted was to get directions or find a product but got tired of the loading screen for a animated fly-by of the company’s logo. Kevin Bruce will demonstrate how to keep usability and practicality in mind while looking bleeding edge technologies minimally, but effectively.


Decoupled Library Packages for PHP 5.4

Paul Jones
This talk will give an overview of the Aura project, a collection of independent (non-framework) library packages providing commonly-needed tools for developers. The talk includes a discussion of the benefits of dependency injection when removing dependencies.


Deep dive into Gearman

Helgi Þormar Þorbjörnsson
With every passing year the data that companies and application store grows astronomically, both through more data logging for business analysis and the consumption of 3rd party data (mashups), but how can those companies make sense of all that data and turn it into something useful that is constantly updating and evolving? Gearman is a very good and simple solution to this data problem. Gearman allows you to farm out work to other machines better suited to do the job at hand in a language and platform agnostic manner. During the talk I will tell stories of 2 different products where I faced a huge data processing challenges and how I solved them with Gearman. I will do demos and live coding of Gearman workers, a deep dive into the system! Welcome to the Age of Data, we have cookies.


Demystifying CSS for Developers

Justin Carmony
CSS has been the Achilles Heel for many developers in their web development career. Even if we are not the designers, many times we break what the designers give us. Ultimately, you’re left with visual bugs that can do not make any sense In this presentation, we’ll visually demonstrate the commonly misunderstood core principles in CSS and the usual pitfalls we run into. We’ll show how to fix these pitfalls, and help you understand why they happen. After this presentation, you will have a much better understanding of CSS, know the tools to use to debug it, and the resources to help you along the way. You’ll not only have an awesome website under-the-hood, but a good looking one too.


Demystifying REST

Kirsten Jones
REST web services are everywhere! It seems like everything you want is available via a web service, but getting started with one of these web services can be overwhelming – and debugging the interactions bewilders some of the smartest developers I know. In this talk, I will talk about HTTP, how it works, and how to watch and understand the traffic between your system and the server. From there I’ll proceed to REST – how REST web services layer on top of HTTP and how you can expect a REST web service to behave. We’ll go over how to monitor and understand requests and responses for these services. Once we’ve covered that, I’ll talk about how OAuth is used for authentication in the framework of a REST application. PHP code samples will be shown for interacting with an OAuth REST web service, and I will cover http monitoring tools for multiple OS’s. When you’re done with this talk you’ll understand enough about REST web services to be able to get started confidently, and debug many of the common issues you may encounter.


Developer Testing 201: When to Mock and When to Integrate

Laura Beth Denker
Now that you know the basics of unit testing, you are ready to dive into advanced mock framework techniques and learn about integration testing. Some topics included are constraints (Hamcrest), mock frameworks, external and hostile dependencies, and DBUnit. This tutorial should teaching you integration testing techniques and better use of mock framework. You should leave this session knowing when write an integration test and when mocks are sufficient. Example code uses the PHPUnit framework. This course is a continuation of Developer Testing 101.


Easing in to HTML5 and CSS3

Brian Moon
HTML5 and CSS3 offer some great features that everyone is clamoring to use. However, not everyone can simply rip apart their site and redo all of their markup and styling across the board. There are some quick wins, especially with CSS3, to be had that you can integrate into your site without rewriting your whole entire site.


From POX to HATEOAS, A Real Company’s Journey Building a RESTful API

Luke Stokes
We started FoxyCart.com in 2007 and soon after slapped together some XML and called it an API. As our company and customer base grew and third-party integrations emerged, the need for a true RESTful API became our next priority. This session will tell the inspiring, ongoing story of how an ecommerce platform for developers researched and developed a new API from scratch using as many RESTful principles as possible.


Graphing real-time performance with Graphite

Neal Anders
Graphing real-time performance with Graphite – http://graphite.wikidot.com/ This presentation will take an existing open-source project (done in php) and cover how to integrate performance monitoring to identify areas that could be improved through code refactoring or database tweaks.



HTML5 and Javascript for the PHP Developer

Jake Smith & Daniel Cousineau
With the rise of advanced desktop and mobile browsers, high performance javascript engines, and ever increasing networking bandwidth, traditionally ‘frontend’ skills are in more demand than ever. PHP developers are increasingly finding themselves needing these skills more and more to remain competitive. This workshop will cover new features introduced in HTML5 and CSS3, how to use them today with modern browsers (and fallbacks), as well as tips and tricks to save time and do amazing things. It will also cover a refresher on JavaScript basics and dive into recent advances in libraries and coding techniques that power modern interactive web applications. The workshop will walk through from start to finish a simple web application utilizing as many HTML5, CSS3, and JavaScript techniques as possible. By the end the attendees can expect to have a grasp on things ranging from new tags, new style properties, advanced selectors, event-driven asynchronous JavaScript programming, new services such as GeoLocation, and much more.


How to let go of your ego and help your customers succeed

Rich Bowen
In the Twitter, Mobile App, Youtube era, you have less and less time to persuade your customers that you have the right solution to their problems. The time of telling them to RTFM are long gone, but some of us just can’t escape, and continue to treat the LUSER as an inconvenience. In this talk, Rich will share some tips from his 15 years of documentation and customer support experience, to help you stop being a jerk, and help your customers succeed at using your products.


iOS Development Primer for PHP Developers

Mike Ho
No one can deny the impact Apple has had on the software market with the release of iPhones, iPads, iPod Touches, and of course the iTunes App Store. It’s difficult to find a PHP developer anywhere who has not at least considered how they might be able to capitalize on Apple’s mobile marketplace. For PHP developers that are looking to build on iOS specifically, there are quite a few things to consider in terms of developing the right mobile strategy and approach. We will cover some higher level business considerations and then delve right into the technical hurdles a PHP developer or development team will face, and go over best practices on how to avoid these common pitfalls. The talk will include specific coding examples, comparing PHP syntax to Objective-C, as well as talking about the high-level differences between both languages, and discuss how that would impact application architecture and design. We will also focus on building PHP-based cloud backends for iOS applications, and the pros and cons of specific iOS SDK approaches specifically for PHP and various PHP-based frameworks.


It’s More Than Just Style

Laura Beth Denker
Mention PHP CodeSniffer, and most will think it’s just for style. Add passing PHP CodeSniffer to your test suites, and hear the groans. Why are we wasting time on whitespace rules? Why does it matter that my lines are longer than X characters? The answer: PHP CodeSniffer is more than just style. In this talk we will discuss what sniffs can save you from runtime errors, sniffs that can help you upgrade your PHP install, and sniffs that can help you find the bits of code that are slowing down you and your team.


Iterators in PHP

Jake Smith
PHP iterators have been around since PHP 5, but are heavily under utilized. With all the built-in iterators there is no reason you shouldn’t be leveraging it’s power and flexibility. In this session you will learn about all the built-in PHP iterators and be guided on how to extend and/or create your own iterators.


JavaScript best practices & BackboneJS for the PHP Developer

Ryan Weaver
Does your JavaScript code always end up inside one giant jQuery document ready function? Have you heard about Backbone.js but not sure what it means to you? In this talk, we’ll learn some basic ways that we can start organizing our JavaScript to be more readable and reusable. We’ll also explore the basics of Backbone.js, learn when it’s useful, and see what we can learn from it as we develop JavaScript in our applications. We’ll focus specifically on using Backbone.js with a PHP backend, how each works together, and the challenges of having two models and sharing templates.


Mapping URLs with and without mod_rewrite

Rich Bowen
Yes, we all hate mod_rewrite, but we also can’t quite seem to manage without it. In this talk, the author of “The Definitive Guide To Apache mod_rewrite” will show you how to accomplish wizardry with mod_rewrite as well as numerous other ‘url mapping’ modules available for the Apache HTTP Server. Rich is the author of much of the mod_rewrite documentation, and several books about the Apache HTTP Server.


Moving the Cloud Beyond Hype to Reality

Mark Brown
Everyone has heard of the cloud. Many still see it as an overhyped buzzword yet the cloud is today being used not only by developers building games and mobile devices applications but by now Enterprises as well. The cloud is changing the landscape forever, bringing with it some massive improvements and equally massive changes. As a developer you need to understand the options and implications for new applications you are building and also understand them for legacy applications where the cloud is making just as big of an impact.

In this session we’ll explore a wide array of applications and architectures and explain the technical considerations and implications when these applications are deployed within the cloud. In addition we will look at the two primary cloud platform service models, Infrastructure as a Service (IaaS) and Platform as a Service (PaaS), plus a third Software as a Service (SaaS). We will talk about some of the vendor offerings leveraging these service models, explore the differences between the approaches and explain the impact they have as you design, build, deploy and scale your applications highlighting complexity versus flexibility so that you understand what is the right approach for you.


My Journey into NoSQLand – MySQL’s NoSQL Implementation

Ligaya Turmelle
Did you know that MySQL has a NoSQL interface? No? Would it interest you that they are using the memcached API to hook directly into the InnoDB and MySQL Cluster (NDB) storage engines – skipping the MySQL server completely? I recently heard about it, and was curious to see how it worked and what it did. Come with me as I discuss what I learned along the way.


Native Mobile App Development for PHP Developers

Mike Ho
With smartphone and tablet devices inundating the marketplace, nothing recently has had more impact on consumer software than both the Android Market and the iTunes App Store. They are clearly markets that have huge potential for PHP developers. As more and more PHP and web development teams are venturing into the mobile landscape, we will discuss the many key issues that developers will need to wrestle with, including: * HTML5 vs. Native vs. Hybrid Apps, and the pros and cons of each approach * Looking at Android vs. iOS vs. Windows Mobile vs. etc., while not being religious about it * Taking advantage of existing skillsets in PHP and server-side technology to increase the value of mobile development * Practical and specific advice on structuring development teams and development environments * Avoiding the gotchas in native mobile app development that many PHP developers encounter For those that are either considering or have already started on mobile projects, this should provide a lot of material to think about and ponder as you begin to figure out your mobile strategy and approach.


Object Oriented Javascript ñ Techniques for managing your unwieldy Javascript

Garrison Locke
Few people only write PHP these days. Those of us who write web applications always end up adding some Javascript here or there to fancy up things…usually with jQuery or your favorite Javascript toolkit. But what do you do when you find you need more than just the simple stuff? Your frontend is getting complex and you some structure to manage your data and your interface. What do you do with that file full of unorganized spaghetti functions and global variables? I wondered the same thing…then I learned how to make my Javascript more object oriented. It’s a tricky subject because there’s a number of ways to do it, but I’ll show you some simple techniques for keeping your Javascript code more organized, easier to understand, and more modular!


PHAR, the PHP .exe format

Helgi Þormar Þorbjörnsson
Learn about what the PHAR (PHP Archives) format is all about. A PHAR is conceptually similar to a Java JAR but made to fit PHP’s needs. Hear how to use it to distribute your product to clients, why open source projects have started offering their projects as a PHAR file, run your application directly from the PHAR container without extracting anything to the filesystem, secure it using the signature feature to ensure the container hasn’t been tampered with and many other interesting features. By the end of it you will be wanting to use PHAR for CLI and Web apps alike!


php://memory and streams for scaling

Neal Anders
php://memory and streams for scaling This presentation will be an overview of using php://memory to store data during application runtime. We will cover the benefits over traditional methods and also some drawbacks.


Puppet for dummies

Joshua Thijssen
Puppet is a configuration management tool which allows easy deployment and configuration ranging from one to a thousand servers (and even more). Even though puppet is a common tool in the devops-world, it is still a strange piece of software for developers. How does it work and what can it do for you as a developer?


Replication With MySQL

Ligaya Turmelle
Come with me as we learn all we need to know about replication. MySQL Replication is one of the “standard” tools used for a web sites high availability and scaling needs. We will discuss how replication works, the difference between the various types of replication (RBR, SBR, Mixed Mode), how to set it up and more.


Scaling Your Development Team

Scott MacVicar
10 people working on a single code base can be considered high, but what about 800 people?

At Facebook, code is pushed 5 times a week to over 800 million people. The small amount of downtime is due to the practices of our engineering team and the process used to do a release.

Scott’s talk is going to cover everything that goes into the development of a feature at Facebook and how that code is pushed. He will try to cover as much as possible about the underlying technology stack and the open source software they use and release to make it all happen.


Slim your PHP, fatten your JS

Edward Finkler
Browsers are finally rich enough to let us offload front-end concerns to where it should go—in the front-end. It’s time to stop writing PHP apps for 2004′s web and start writing them for today’s web. In this talk we’ll cover how PHP can interact with rich web applications, maintain link-ability, and avoid redundant code, demonstrating proven techniques from the FictiveKin crew.


Solving the N+1 Problem; or, A Stitch In Time Saves Nine

Paul Jones
When dealing with databases, developers frequently run into the N+1 problem, in which they populate domain objects via queries in loops. This causes terrible performance drags; in the case I will talk about, it took 200,000 queries to populate 40,000 records and 3+ hours to complete. There is a solution in plain PHP that makes the number of queries constant; for the previous example, the the number of queries is reduced to 5 and improves processing time to under 6 minutes. The talk shows typical PHP code involving the N+1 problem, then shows how to solve the problem in plain PHP (that is, without a framework or ORM), and includes editorializing about the origins of the N+1 problem in the developer mindset.


Taking Sites Mobile

Ian Barber
Giving a great user experience for browsers on mobile devices is going to be a bigger and bigger part of any web developers work over the next few yeas. In this talk we’ll look at how to take existing sites and adapt them for mobile support – including the administrative functionality as well as the main front end. We’ll look at the additional functionality available, and the limitations that will have to be mitigated when taking a site mobile. We’ll also look at how Facebook apps can be adapted to run in their mobile app, and where and when to consider specialist mobile sites as part of a strategy.


The MicroPHP Manifesto

Edward Finkler
In the past few years, the PHP Zeitgeist seems like it’s been moving in the Neil Peart direction. Lots of work by lots of smart people is going into complex, verbose solutions. Lots of files, lots of nested directories, and lots of rules. No thanks. So I wrote the MicroPHP Manifesto: 1. I am a PHP developer 2. I like building small things 3. I want less code, not more 4. I like simple, readable code Contrary to popular belief, you can still kick ass with PHP using simple, readable code that avoids over-engineering and excessive abstraction. We’ll talk about how to make that happen with lightweight “micro-frameworks” and single-task, no-dependency libraries.


Web Security and You

Eli White
This talk will focus on XSS, CSRF, Session Hijacking, SQL Injection, and other security issues need addressed in Website Development, and how to close them. This talk will delve into some specific code examples showing where vulnerabilities exist, and how to prevent them.


Workshop QA on Zend Framework applications

Michelangelo van Dam
This workshop is a hands-on training where a real Zend Framework application is used as an example to start improving QA using tools to test, document and perform software metric calculations to indicate where the software can be improved. I also explain the reports produced by a CI system.


Refactoring and Other Small Animals

Marco Tabini
Learn what refactoring is, why it’s important, and most importantly, how to refactor safely.


CI:IRL

Beth Tucker Long
Continuous integration is a big picture idea for big projects, but what if your projects and pictures aren’t big? Is continuous integration worthwhile for every day projects? Learn more about what continuous integration actually is, what tools are available to help you implement it, and how you can make it work for you, even in the small stuff.