Talks

114

114

Mastering OAuth 2.0

Presented at True North PHP on

OAuth 2.0 isn’t easy, and everyone has a slightly different implementation, making interoperability a nightmare. Fortunately, the PHP League of Extraordinary Packages provides league/oauth2-client. Aiming for simplicity and ease-of-use, league/oauth2-client provides a common way to access providers. This talk introduces OAuth concepts, demonstrates how to perform OAuth flows with league/oauth2-client, and shows how to use league/oauth2-client to build a client library for your own provider.

113

113

Identify All the Things With UUIDs!

Presented at True North PHP on

Universally unique identifiers—a.k.a. UUIDs—are a fun and exciting way to identify things. Use them to identify books, documents, parents, pets, bread, apples, very small rocks—the list goes on! But why stop there? We can keep issuing UUIDs for eternity and never run out. They’re practically unique. Join this whirlwind adventure in search of the perfect identifier to find out why UUIDs might be good for your projects. Along the way, you’ll learn what is a UUID, the various types of UUIDs, pros and cons of using UUIDs, and how to use the ramsey/uuid library to generate all kinds of UUIDs. Advanced and little-known features of ramsey/uuid will be covered.

112

112

HTTP Is Dead. Long Live HTTP/2!

Presented at Laracon on

Request for Comments (RFC) 2616 reigned supreme as the specification for the hypertext transfer protocol (HTTP) for fifteen years. Now, it’s been obsoleted by a handful of new RFCs, and HTTP/2 is a reality. In this talk, we’ll take a look at the new RFCs, discuss the differences and clarifications they make, and take a look at what’s new in HTTP/2 and what it means for you.

111

111

Identify All the Things With UUIDs!

Presented at Dutch PHP Conference on

Universally unique identifiers (UUIDs) are a fun and exciting way to identify things. We can issue UUIDs forever and never run out; they’re practically unique! Join this whirlwind adventure in search of the perfect identifier to find out why UUIDs might be good for your projects. Along the way, you’ll learn what is a UUID, the various types of UUIDs, pros and cons of using UUIDs, and how to use the ramsey/uuid library. Advanced and little-known features of ramsey/uuid will be covered.

110

110

Identify All the Things With UUIDs!

Presented at Nomad PHP on

Universally unique identifiers (UUIDs) are a fun and exciting way to identify things. We can issue UUIDs forever and never run out; they’re practically unique! Join this whirlwind adventure in search of the perfect identifier to find out why UUIDs might be good for your projects.

109

109

Identify All the Things With UUIDs!

Presented at Atlanta PHP User Group on

Universally unique identifiers (UUIDs) are a fun and exciting way to identify things. We can issue UUIDs forever and never run out; they’re practically unique! Join this whirlwind adventure in search of the perfect identifier to find out why UUIDs might be good for your projects.

108

108

HTTP Is Dead. Long Live HTTP/2!

Presented at Lone Star PHP on

Request for Comments (RFC) 2616 reigned supreme as the specification for the hypertext transfer protocol (HTTP) for fifteen years. Now, it’s been obsoleted by a handful of new RFCs, and HTTP/2 is a reality. In this talk, we’ll take a look at the new RFCs, discuss the differences and clarifications they make, and take a look at what’s new in HTTP/2 and what it means for you.

107

107

PHP Foundations

Presented at Lone Star PHP on

The PHP Foundations class taught at Lone Star PHP used the PHPEmbark open source training curriculum. The class was a full-day tutorial taught by Elizabeth Marie Smith, Patrick Andersen, Ben Ramsey, Matthew Turland, and Matt Frost.

106

106

HTTP Is Dead. Long Live HTTP/2!

Presented at iMasters PHP Experience on

Request for Comments (RFC) 2616 reinou supremo como a especificação para o protocolo de transferência de hipertexto (HTTP) por quinze anos. Agora, tem sido obsoleto por um punhado de novas RFCs, e HTTP/2 é uma realidade. Nesta palestra, vamos dar uma olhada nas novas RFCs, discutir as diferenças e esclarecimentos que eles fazem, e dar uma olhada no que há de novo na HTTP/2 eo que isso significa para você.

105

105

Mocking With Mockery

Presented at Midwest PHP Conference on

Mockery is a mock object framework that may be used with any unit testing framework. It is a flexible and human-readable domain specific language (DSL) for mocking objects in unit tests. With it, we can create some pretty powerful tests and even test legacy code containing hard dependencies. In this talk, I’ll show how to get started with Mockery. I’ll start with some basic mocking techniques and then move on to cover more advanced topics, including static methods, partial mocks, final classes, and hard dependencies.

104

104

Building Great APIs

Presented at Midwest PHP Conference on

Much focus has been spent discussing the merits of RESTful APIs. Sure, REST is important, but how do we put these concepts into practice and build great APIs? How RESTful do we need to be, and where do we draw the line with a pragmatic approach to ship code and make our users happy? In this talk, I’ll show how to build APIs that put into practice the concepts of REST, while showing that it’s okay to bend or break the rules. Along the way, we’ll cover the Richardson Maturity Model, hypermedia, when and where to use content negotiation, and API versioning pitfalls

103

103

Mocking With Mockery

Presented at Ski PHP Conference on

Mockery is a mock object framework that may be used with any unit testing framework. It is a flexible and human-readable domain specific language (DSL) for mocking objects in unit tests. With it, we can create some pretty powerful tests and even test legacy code containing hard dependencies. In this talk, I’ll show how to get started with Mockery. I’ll start with some basic mocking techniques and then move on to cover more advanced topics, including static methods, partial mocks, final classes, and hard dependencies.

102

102

HTTP is Dead. Long Live HTTP/2!

Presented at Ski PHP Conference on

Request for Comments (RFC) 2616 reigned supreme as the specification for the hypertext transfer protocol (HTTP) for fifteen years. Now, it’s been obsoleted by a handful of new RFCs, and HTTP/2 is a reality. In this talk, we’ll take a look at the new RFCs, discuss the differences and clarifications they make, and take a look at what’s new in HTTP/2 and what it means for you.

101

101

Mocking With Mockery

Presented at Nashville PHP User Group on

Mockery is a mock object framework that may be used with any unit testing framework. It is a flexible and human-readable domain specific language (DSL) for mocking objects in unit tests. With it, we can create some pretty powerful tests and even test legacy code containing hard dependencies. In this talk, I’ll show how to get started with Mockery. I’ll start with some basic mocking techniques and then move on to cover more advanced topics, including static methods, partial mocks, final classes, and hard dependencies.

100

100

Building Great APIs

Presented at True North PHP on

Much focus has been spent discussing the merits of RESTful APIs. Sure, REST is important, but how do we put these concepts into practice and build great APIs? How RESTful do we need to be, and where do we draw the line with a pragmatic approach to ship code and make our users happy? In this talk, I’ll show how to build APIs that put into practice the concepts of REST, while showing that it’s okay to bend or break the rules. Along the way, we’ll cover the Richardson Maturity Model, hypermedia, when and where to use content negotiation, and API versioning pitfalls.

99

99

A Toolbox for APIs and Integrations

Presented at Nashville PHP User Group on

Modern web applications do more than display data from a database. They talk to all kinds of services, bringing together data from a variety of sources and combining it in new and meaningful ways. This is the age of APIs and integrations! Whether internal or external, we often find ourselves building or integrating with APIs. There are many tools to help, but it’s difficult to know which tools are best. In this talk, we’ll narrow the field to take a look at a few useful tools for building, consuming, debugging, and testing APIs and integrations.

98

98

Contributing to Core

Presented at Dutch PHP Conference on

A few years ago, I had an idea to add a new function to PHP: array_column(). Starting out on this journey can be daunting to user-land developers unfamiliar with the landscape of the PHP internals. In this talk, I demystify this process, explaining how to set up an environment, create an RFC, communicate on the mailing lists, and send a pull request. I hope this talk will encourage you to scratch your own itch and contribute to the PHP core.

97

97

HTTP Is Dead. Long Live HTTP/2

Presented at Dutch PHP Conference on

Request for Comments (RFC) 2616 reigned supreme as the specification for the hypertext transfer protocol (HTTP) for fifteen years. Now, it’s been obsoleted by a handful of new RFCs, and HTTP/2 is on the horizon. In this talk, we’ll take a look at the new RFCs, discuss the differences and clarifications they make, and take a look ahead at what’s new in HTTP/2 and what it means for you.

96

96

Caching Strategies

Presented at Atlanta PHP User Group on

One of the biggest bottlenecks in an application is the point at which data is requested from some source, be it a traditional database, web service, or something else. One method to overcome these bottlenecks is the use of caches to store pages, recordsets, objects, sessions, and more. In this talk, we’ll explore a variety of caching tools and mechanisms including Memcached, Redis, reverse proxy caches, CDNs, and more.

95

95

LAMP Camp Wilderness Week Lunch-and-Learn

Presented at LAMP Camp on

I had the privilege of speaking to the campers at LAMP Camp about my experiences in the web industry. I told my story of how I got into the industry and shared advice and things I’ve learned along the way. I had a great time, and I loved seeing LAMP Camp’s approach to teaching and training developers.

94

94

HTTP Is Dead. Long Live HTTP/2!

Presented at php[tek] on

Request for Comments (RFC) 2616 reigned supreme as the specification for the hypertext transfer protocol (HTTP) for fifteen years. Now, it’s been obsoleted by a handful of new RFCs, and HTTP/2 is on the horizon. In this talk, we’ll take a look at the new RFCs, discuss the differences and clarifications they make, and take a look ahead at what’s new in HTTP/2 and what it means for you.

93

93

A Toolbox for APIs and Integrations

Presented at php[tek] on

Modern web applications do more than display data from a database. They talk to all kinds of services, bringing together data from a variety of sources and combining it in new and meaningful ways. This is the age of APIs and integrations! Whether internal or external, we often find ourselves building or integrating with APIs. There are many tools to help, but it’s difficult to know which tools are best. In this talk, we’ll narrow the field to take a look at a few useful tools for building, consuming, debugging, and testing APIs and integrations.

92

92

Debugging Zen

Presented at Lone Star PHP on

Debugging is one of those skills that developers have the hardest time exercising and is also one of the most difficult to teach. It is both a scientific discipline and an art. It often requires you to reach beyond analytical thinking to rely upon your own intuition in order to solve a problem. In this talk, we’ll examine how intuition plays a crucial role in debugging software. You’ll leave with practical pointers on how to tap into intuition as part of your debugging habits and how to combine it with analytical processes to be a better developer.

91

91

Caching Strategies

Presented at Lone Star PHP on

One of the biggest bottlenecks in an application is the point at which data is requested from some source, be it a traditional database, web service, or something else. One method to overcome these bottlenecks is the use of caches to store pages, recordsets, objects, sessions, and more. In this talk, we’ll explore a variety of caching tools and mechanisms including Memcached, Redis, reverse proxy caches, CDNs, and more.

90

90

Contributing to Core

Presented at ConFoo on

A few years ago, I had an idea to add a new function to PHP: array_column(). Starting out on this journey can be daunting to user-land developers unfamiliar with the landscape of the PHP internals. In this talk, I demystify this process, explaining how to set up an environment, create an RFC, communicate on the mailing lists, and send a pull request. I hope this talk will encourage you to scratch your own itch and contribute to the PHP core.

89

89

Caching Strategies

Presented at ConFoo on

One of the biggest bottlenecks in an application is the point at which data is requested from some source, be it a traditional database, web service, or something else. One method to overcome these bottlenecks is the use of caches to store pages, recordsets, objects, sessions, and more. In this talk, we’ll explore a variety of caching tools and mechanisms including Memcached, Redis, reverse proxy caches, CDNs, and more.

88

88

Debugging Zen

Presented at SunshinePHP Developer Conference on

Debugging is a skill that we have a hard time exercising and is one of the most difficult to teach. It is a scientific discipline and an art. It requires you to reach beyond analytical thinking to rely upon your own intuition. In this talk, we’ll examine how intuition plays a role in debugging software. We’ll explore practical pointers on tapping into intuition and combining it with analytical processes to be a better developer.

87

87

Caching Strategies

Presented at Nashville PHP User Group on

One of the biggest bottlenecks in an application is the point at which data is requested from some source, be it a traditional database, web service, or something else. One method to overcome these bottlenecks is the use of caches to store pages, recordsets, objects, sessions, and more. In this talk, we’ll explore a variety of caching tools and mechanisms including Memcached, Redis, reverse proxy caches, CDNs, and more.

86

86

Contributing to Core

Presented at True North PHP on

A few years ago, I had a simple idea to add a new function to the PHP core: array_column(). Starting out on this journey to contribute to the core can be daunting to user-land developers unfamiliar with the landscape of the PHP internals. It can be tough to navigate these seemingly uncharted waters, but the recent move of the PHP source to Git has removed many of the old barriers. Nevertheless, there is a protocol involved, and I’d like to demystify the process in this talk, explaining how to go about setting up your environment, creating an RFC, communicating on the proper mailing lists, and sending your pull request. I hope this talk will encourage you to scratch your own itch and contribute to the PHP core. I tend to think of this talk as being aimed at mid-level developers, encouraging them to dive into a more advanced topic: contributing to the core of PHP.

85

85

Debugging Zen

Presented at Madison PHP Conference on

Debugging is one of those skills that developers have the hardest time exercising and is also one of the most difficult to teach. It is both a scientific discipline and an art. It often requires you to reach beyond analytical thinking to rely upon your own intuition in order to solve a problem. In this talk, we’ll examine how intuition plays a crucial role in debugging software. You’ll leave with practical pointers on how to tap into intuition as part of your debugging habits and how to combine it with analytic processes to be a better developer.

84

84

virtPHP: One Box, Multiple Elephpants

Presented at Day Camp for Developers on

Get to the know the ins and outs of virtPHP. virtPHP is a shell tool that allows you to create multiple virtual environments for PHP applications on one system, each with unique PHP configurations, global Composer packages, PEAR packages, and PECL extensions, along with the ability to connect environments to other PHP builds located on your system. Think Python’s virtualenv for PHP.

83

83

Modern PHP

Presented at php[tek] on

With all of the advances that have come in PHP 5.5 (as well as 5.4 and 5.3), modern PHP code no longer looks like the PHP code from years ago. This talk will glimpse into PHP’s past to see where we’ve come from and how we got where we are today, exploring how modern PHP applications are architected now to take full use of the newer features in PHP to produce cleaner, more stable, and easier to maintain codebases.

82

82

Contributing to Core

Presented at php[tek] on

A few years ago, I had a simple idea to add a new function to the PHP core: array_column(). Starting out on this journey to contribute to the core can be daunting to user-land developers unfamiliar with the landscape of the PHP internals. It can be tough to navigate these seemingly uncharted waters, but the recent move of the PHP source to Git has removed many of the old barriers. Nevertheless, there is a protocol involved, and I’d like to demystify the process in this talk, explaining how to go about setting up your environment, creating an RFC, communicating on the proper mailing lists, and sending your pull request. I hope this talk will encourage you to scratch your own itch and contribute to the PHP core.

81

81

Grokking HTTP

Presented at Lone Star PHP on

Hypertext Transfer Protocol is the protocol of the Web. From static HTML pages to massive web services, everything we do as web developers has some relationship to this protocol. To effectively create services that use the Web, we need a deep understanding of HTTP. This talk goes beyond a surface understanding of GET and 200 OK to explore how an intimate knowledge of HTTP can lead to more efficient applications utilizing the Web in a RESTful way. This deeper dive version of this talk covers topics such as content negotiation, hypermedia, caching, and conditional requests, as well as recent developments in efforts to update HTTP.

80

80

Contributing to Core

Presented at Lone Star PHP on

A few years ago, I had a simple idea to add a new function to the PHP core: array_column(). Starting out on this journey to contribute to the core can be daunting to user-land developers unfamiliar with the landscape of the PHP internals. It can be tough to navigate these seemingly uncharted waters, but the recent move of the PHP source to Git has removed many of the old barriers. Nevertheless, there is a protocol involved, and I’d like to demystify the process in this talk, explaining how to go about setting up your environment, creating an RFC, communicating on the proper mailing lists, and sending your pull request. I hope this talk will encourage you to scratch your own itch and contribute to the PHP core.

79

79

Modern PHP

Presented at Atlanta PHP User Group on

With all of the advances that have come in PHP 5.5 (as well as 5.4 and 5.3), modern PHP code no longer looks like the PHP code from years ago. This talk will glimpse into PHP’s past to see where we’ve come from and how we got where we are today, exploring how modern PHP applications are architected now to take full use of the newer features in PHP to produce cleaner, more stable, and easier to maintain codebases.

78

78

Modern PHP

Presented at Nomad PHP on

With all of the advances that have come in PHP 5.5 (as well as 5.4 and 5.3), modern PHP code no longer looks like the PHP code from years ago. This talk will glimpse into PHP’s past to see where we’ve come from and how we got where we are today, exploring how modern PHP applications are architected now to take full use of the newer features in PHP to produce cleaner, more stable, and easier to maintain codebases.

77

77

Modern PHP

Presented at SunshinePHP Developer Conference on

With all of the advances that have come in PHP 5.5 (as well as 5.4 and 5.3), modern PHP code no longer looks like the PHP code from years ago. This talk will glimpse into PHP’s past to see where we’ve come from and how we got where we are today, exploring how modern PHP applications are architected now to take full use of the newer features in PHP to produce cleaner, more stable, and easier to maintain codebases.

76

76

Modern PHP

Presented at ZendCon on

With all of the advances that have come in PHP 5.5 (as well as 5.4 and 5.3), modern PHP code no longer looks like the PHP code from years ago. This talk will glimpse into PHP’s past to see where we’ve come from and how we got where we are today, exploring how modern PHP applications are architected now to take full use of the newer features in PHP to produce cleaner, more stable, and easier to maintain codebases.

75

75

API First

Presented at ZendCon on

A recent theme among web creators is the notion of mobile first. It’s the idea that we should design first for the mobile experience. Throw in the concepts of progressive enhancement and responsive design, and we have some excellent approaches to interface design and development. But where does that leave the overall software design? How do we get all the data to the interface and manipulate it without building a lot of back-end scripts to drive the various front-end incarnations? A centralized API will solve these problems, but we’re often scrambling to implement the “mobile first” strategy on top of existing code. For good web software design, it’s time to start thinking in terms of API first. In this talk, Ben Ramsey pulls from his experience making APIs to discuss how you can begin projects with an API-centric mindset and use this to your advantage to deliver software quickly, more efficiently, and with higher quality. If you already have projects that began life without APIs, then have no fear. Ben will also share how to use the same principles to convert existing web applications to API-backed software with some elbow grease, of course.

74

74

Contributing to Core

Presented at ZendCon on

A few years ago, I had a simple idea to add a new function to the PHP core: array_column(). Starting out on this journey to contribute to the core can be daunting to user-land developers unfamiliar with the landscape of the PHP internals. It can be tough to navigate these seemingly uncharted waters, but the recent move of the PHP source to Git has removed many of the old barriers. Nevertheless, there is a protocol involved, and I’d like to demystify the process in this talk, explaining how to go about setting up your environment, creating an RFC, communicating on the proper mailing lists, and sending your pull request. I hope this talk will encourage you to scratch your own itch and contribute to the PHP core.

73

73

Grokking HTTP

Presented at ZendCon on

Hypertext Transfer Protocol is the protocol of the Web. From static HTML pages to massive web services, everything we do as web developers has some relationship to this protocol. To effectively create services that use the Web, we need a deep understanding of HTTP. This talk goes beyond a surface understanding of GET and 200 OK to explore how an intimate knowledge of HTTP can lead to more efficient applications utilizing the Web in a RESTful way. This deeper dive version of this talk covers topics such as content negotiation, hypermedia, caching, and conditional requests, as well as recent developments in efforts to update HTTP.

72

72

Modern PHP

Presented at php[architect] PHP 5.5 Web Summit on

With all of the advances that have come in PHP 5.5 (as well as 5.4, and 5.3), modern PHP code doesn’t need to look like the code from years ago. This session will explore how modern PHP applications can be architected now to take full use of the newer features in PHP to produce cleaner, more stable, and easier to maintain codebases.

71

71

Gotta Wear Shades: The Bright Future of HTTP

Presented at CoderFaire Nashville on

Hypertext Transfer Protocol (HTTP) version 1.1 was published in June of 1999. Almost fifteen years have passed. In that time, the Web has seen many changes, but it would seem that, throughout this time, HTTP has remained fixed, stagnant. Yet, nothing could be further from the truth.

70

70

API First

Presented at php[tek] on

A recent theme among web creators is the notion of mobile first. It’s the idea that we should design first for the mobile experience. Throw in the concepts of progressive enhancement and responsive design, and we have some excellent approaches to interface design and development. But where does that leave the overall software design? How do we get all the data to the interface and manipulate it without building a lot of back-end scripts to drive the various front-end incarnations? A centralized API will solve these problems, but we’re often scrambling to implement the “mobile first” strategy on top of existing code. For good web software design, it’s time to start thinking in terms of API first.

69

69

Developing Intuition (Keynote)

Presented at CoderFaire Atlanta on

Software architecture is both a scientific discipline and an art. It often requires you to reach beyond knowledge of patterns and practices, relying on your own intuition to design a solution. In this talk, Ben Ramsey explains how intuition plays a crucial role in his own approach to designing software. He gives practical pointers on how to tap into intuition as part of your software design process and how to combine it with rational thinking to be a better software designer.

68

68

Grokking HTTP

Presented at Nashville Software School on

Hypertext Transfer Protocol is the protocol of the Web. From static HTML pages to massive web services, everything we do as web developers has some relationship to this protocol. To effectively create services that use the Web, we need a deep understanding of HTTP. This talk goes beyond a surface understanding of GET and 200 OK to explore how an intimate knowledge of HTTP can lead to more efficient applications utilizing the Web in a RESTful way. We’ll cover topics such as content negotiation, hypermedia, caching, and conditional requests, as well as recent developments in efforts to update HTTP.

67

67

Grokking HTTP

Presented at CodeConnexx on

Hypertext Transfer Protocol is the protocol of the Web. From static HTML pages to massive web services, everything we do as web developers has some relationship to this protocol. To effectively create services that use the Web, we need a deep understanding of HTTP. This talk goes beyond a surface understanding of GET and 200 OK to explore how an intimate knowledge of HTTP can lead to more efficient applications utilizing the Web in a RESTful way. We’ll cover topics such as content negotiation, hypermedia, caching, and conditional requests, as well as recent developments in efforts to update HTTP.

66

66

Grokking HTTP

Presented at Nashville PHP User Group on

Hypertext Transfer Protocol is the protocol of the Web. From static HTML pages to massive web services, everything we do as web developers has some relationship to this protocol. To effectively create services that use the Web, we need a deep understanding of HTTP. This talk goes beyond a surface understanding of GET and 200 OK to explore how an intimate knowledge of HTTP can lead to more efficient applications utilizing the Web in a RESTful way.

65

65

Grokking HTTP

Presented at CoderFaire Nashville on

Hypertext Transfer Protocol is the protocol of the Web. From static HTML pages to massive web services, everything we do as web developers has some relationship to this protocol. To effectively create services that use the Web, we need a deep understanding of HTTP. This talk goes beyond a surface understanding of GET and 200 OK to explore how an intimate knowledge of HTTP can lead to more efficient applications utilizing the Web in a RESTful way. We’ll cover topics such as content negotiation, hypermedia, caching, and conditional requests, as well as recent developments in efforts to update HTTP.

64

64

Grokking HTTP

Presented at Northeast PHP on

Hypertext Transfer Protocol (HTTP) is the protocol of the Web. From static HTML pages to massive web services, everything we do as web developers has some relationship to this protocol. To effectively create services that use the Web, we need a deep understanding of HTTP. This talk goes beyond a surface understanding of GET and 200 OK to explore how an intimate knowledge of HTTP can lead to more efficient applications utilizing the Web in a RESTful way. We’ll cover topics such as content negotiation, hypermedia, caching, and conditional requests, as well as recent developments in efforts to update HTTP.

63

63

Grokking HTTP

Presented at php|architect REST Web Summit on

Hypertext Transfer Protocol (HTTP) is the protocol of the Web. From static HTML pages to massive web services, everything we do as web developers has some relationship to this protocol. To effectively create services that use the Web, we need a deep understanding of HTTP. This talk goes beyond a surface understanding of GET and 200 OK to explore how an intimate knowledge of HTTP can lead to more efficient applications utilizing the Web in a RESTful way. We’ll cover topics such as content negotiation, hypermedia, caching, and conditional requests, as well as recent developments in efforts to update HTTP.

62

62

API Versioning

Presented at REST Fest on

Ben discusses two different methods of API versioning and argues how one form might be more RESTful than the other, while the other form is more practical and easier to develop against.

61

61

Grokking REST

Presented at Nashville PHP User Group on

REST has become a hip buzzword of Web 2.0. But what makes an application RESTful? In this talk, Ben Ramsey reintroduces REST, uncovering each constraint that forms REST’s principles. Ramsey explains how REST is a style for network-based software applications, emphasizing scalability and efficiency through separation of concerns and taking advantage of the Web as a platform for rich applications.

60

60

Grokking REST

Presented at Memphis PHP User Group on

REST has become a hip buzzword of Web 2.0. But what makes an application RESTful? In this talk, Ben Ramsey reintroduces REST, uncovering each constraint that forms REST’s principles. Ramsey explains how REST is a style for network-based software applications, emphasizing scalability and efficiency through separation of concerns and taking advantage of the Web as a platform for rich applications.

59

59

Grokking REST

Presented at Zend/PHP Conference & Expo on

REST has become a hip buzzword of Web 2.0. But what makes an application RESTful? In this talk, Ben Ramsey reintroduces REST, uncovering each constraint that forms REST’s principles. Ramsey explains how REST is a style for network-based software applications, emphasizing scalability and efficiency through separation of concerns and taking advantage of the Web as a platform for rich applications.

58

58

Desktop Apps with PHP and Titanium

Presented at Zend/PHP Conference & Expo on

Appcelerator Titanium is an open source platform for developing native desktop and mobile applications using the web technologies you’re familiar with. Web developers can use their skills to develop for both the Web and desktop/mobile apps. Ben Ramsey will demonstrate a simple application in Titanium Desktop, showing examples using JavaScript and PHP to power dynamic desktop applications.

57

57

HTTP for the REST of Us (Workshop)

Presented at International PHP Conference on

As web developers, we’re leveraging the powers of HTTP every day, and most of us have used or implemented web services that are supposedly RESTful. But are they really? What constitutes a RESTful interface? What exactly is a uniform interface, and how important is statelessness? What does HATEOAS mean, and who is this Roy Fielding? This tutorial covers everything from the basics of HTTP and URL design to the constraints that REST imposes on the network, we will look at content negotiation and error handling, authorization and security, caching and more. You will learn how to deal with concurrency, conflicts and other error situations as well as how to design hypermedia formats. We will also examine APIs in the wild and give attendees a chance to submit their web sites and APIs for review.

56

56

Introduction to AtomPub Web Services

Presented at International PHP Conference on

Since 2003, the Atom format has been used as yet another feed format like RSS, but the Atom protocol opens the door to far more uses of Atom as both a means for distribution and publication. Ben Ramsey introduces the Atom format and protocol, explaining how these can form the foundation of any publishing service and serve as a platform for rich Internet applications.

55

55

Caching with Memcached and APC

Presented at php|tek on

Today’s high-traffic web sites must implement performance-boosting measures that reduce data processing and reduce load on the database, while increasing the speed of content delivery. One such method is the use of a cache to temporarily store whole pages, database recordsets, large objects, and sessions. While many caching mechanisms exist, memcached provides one of the fastest and easiest-to-use caching servers. Coupling memcached with the alternative PHP cache (APC) can greatly improve performance by reducing data processing time. In this talk, Ben Ramsey covers memcached and the pecl/memcached and pecl/apc extensions for PHP, exploring caching strategies, a variety of configuration options to fine-tune your caching solution, and discusses when it may be appropriate to use memcached vs. APC to cache objects or data.

54

54

Desktop Apps with PHP and Titanium

Presented at php|tek on

The Web is a vital part of our daily lives, and as we begin using the Web for tasks traditionally performed on the desktop, such as word processing, software as a service (SaaS) and software + services models are becoming more important. Web developers are caught in the cross hairs of these merging industries. They have the know-how of web development but, often, none of the skills for traditional desktop or mobile development. Enter Titanium.

53

53

HTTP: Digested

Presented at ConFoo on

We’re web developers. Almost all the work we do concerns making requests and sending responses over the Web. Yet, how often do we really stop to consider the Web’s protocol as part of our daily work? Still, we manipulate that protocol every day, whether we know it or not. Knowing this protocol and how it works can make us better web programmers.

52

52

Caching with Memcached and APC

Presented at ConFoo on

Today’s high-traffic web sites must implement performance-boosting measures that reduce data processing and reduce load on the database, while increasing the speed of content delivery. One such method is the use of a cache to temporarily store whole pages, database recordsets, large objects, and sessions. While many caching mechanisms exist, memcached provides one of the fastest and easiest-to-use caching servers. Coupling memcached with the alternative PHP cache (APC) can greatly improve performance by reducing data processing time. In this talk, Ben Ramsey covers memcached and the pecl/memcached and pecl/apc extensions for PHP, exploring caching strategies, a variety of configuration options to fine-tune your caching solution, and discusses when it may be appropriate to use memcached vs. APC to cache objects or data.

51

51

The Hidden Gems in HTTP

Presented at Atlanta PHP User Group on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

50

50

Web Service Design with AtomPub

Presented at CodeWorks New York on

The Web is transforming into a platform for distributed applications where rich clients connect to web services to retrieve and store data, but these services need a common language. The Atom Publishing Protocol provides is one such language. Since 2003, the Atom format has been used as yet another feed format like RSS, but the Atom protocol opens the door to far more uses of Atom as both a means for distribution and publication. Ben Ramsey introduces the Atom format and protocol, explaining how these can form the foundation of any service for publication and distribution of content.

49

49

The Hidden Gems in HTTP

Presented at CodeWorks New York on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

48

48

Web Service Design with AtomPub

Presented at CodeWorks DC on

The Web is transforming into a platform for distributed applications where rich clients connect to web services to retrieve and store data, but these services need a common language. The Atom Publishing Protocol provides is one such language. Since 2003, the Atom format has been used as yet another feed format like RSS, but the Atom protocol opens the door to far more uses of Atom as both a means for distribution and publication. Ben Ramsey introduces the Atom format and protocol, explaining how these can form the foundation of any service for publication and distribution of content.

47

47

The Hidden Gems in HTTP

Presented at CodeWorks DC on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

46

46

The Hidden Gems in HTTP

Presented at CodeWorks Miami on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

45

45

Web Service Design with AtomPub

Presented at CodeWorks Miami on

The Web is transforming into a platform for distributed applications where rich clients connect to web services to retrieve and store data, but these services need a common language. The Atom Publishing Protocol provides is one such language. Since 2003, the Atom format has been used as yet another feed format like RSS, but the Atom protocol opens the door to far more uses of Atom as both a means for distribution and publication. Ben Ramsey introduces the Atom format and protocol, explaining how these can form the foundation of any service for publication and distribution of content.

44

44

The Hidden Gems in HTTP

Presented at CodeWorks Atlanta on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

43

43

The Hidden Gems in HTTP

Presented at CodeWorks Dallas on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

42

42

Web Service Design with AtomPub

Presented at CodeWorks Dallas on

The Web is transforming into a platform for distributed applications where rich clients connect to web services to retrieve and store data, but these services need a common language. The Atom Publishing Protocol provides is one such language. Since 2003, the Atom format has been used as yet another feed format like RSS, but the Atom protocol opens the door to far more uses of Atom as both a means for distribution and publication. Ben Ramsey introduces the Atom format and protocol, explaining how these can form the foundation of any service for publication and distribution of content.

41

41

The Hidden Gems in HTTP

Presented at CodeWorks Los Angeles on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

40

40

Give Your Site a Boost with Memcache

Presented at CodeWorks Los Angeles on

Today’s high-traffic websites must implement performance-boosting measures that reduce data processing and reduce load on the database, while increasing the speed of content delivery. One such method is the use of a cache to temporarily store whole pages, database recordsets, large objects, and sessions. While many caching mechanisms exist, memcached provides one of the fastest and easiest-to-use caching servers. This talk will cover memcached and the memcache extension for PHP from setting up a memcached server to using it to provide a variety of caching solutions, including the use of memcached as a session data store.

39

39

Web Service Design with AtomPub

Presented at CodeWorks Los Angeles on

The Web is transforming into a platform for distributed applications where rich clients connect to web services to retrieve and store data, but these services need a common language. The Atom Publishing Protocol provides is one such language. Since 2003, the Atom format has been used as yet another feed format like RSS, but the Atom protocol opens the door to far more uses of Atom as both a means for distribution and publication. Ben Ramsey introduces the Atom format and protocol, explaining how these can form the foundation of any service for publication and distribution of content.

38

38

Intro to REST

Presented at Orange County PHP User Group on

REST has become the hip, new buzzword of Web 2.0. But what makes an application RESTful? Pretty URLs? XML over HTTP? Any service that’s not SOAP? In all the hype, the definition of REST has become clouded and diluted. Forget what you thought you knew about REST. In this talk, Ben Ramsey reintroduces REST, placing it under a microscope, uncovering each constraint that forms REST’s crucial principles.

37

37

The Hidden Gems in HTTP

Presented at CodeWorks San Francisco on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

36

36

Web Service Design with AtomPub

Presented at CodeWorks San Francisco on

The Web is transforming into a platform for distributed applications where rich clients connect to web services to retrieve and store data, but these services need a common language. The Atom Publishing Protocol provides is one such language. Since 2003, the Atom format has been used as yet another feed format like RSS, but the Atom protocol opens the door to far more uses of Atom as both a means for distribution and publication. Ben Ramsey introduces the Atom format and protocol, explaining how these can form the foundation of any service for publication and distribution of content.

35

35

Making the Most of HTTP In Your Apps

Presented at Dutch PHP Conference on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

34

34

Grokking the REST Architectural Style

Presented at Dutch PHP Conference on

REST has become the hip, new buzzword of Web 2.0. But what makes an application RESTful? Pretty URLs? XML over HTTP? Any service that’s not SOAP? In all the hype, the definition of REST has become clouded and diluted. Forget what you thought you knew about REST. In this talk, Ben Ramsey reintroduces REST, placing it under a microscope, uncovering each constraint that forms REST’s crucial principles. Ramsey explains how REST is a style for network-based software applications, emphasizing scalability and efficiency through separation of concerns and taking advantage of the Web as a platform for rich Internet applications.

33

33

Making the Most of HTTP In Your Apps

Presented at php|tek on

200, 404, 302. Is it a lock combination? A phone number? No, they’re HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It’s time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.

32

32

Design Patterns: The Registry Pattern

Presented at Atlanta PHP User Group on

Presented as a mini-topic talk at the February 2009 Atlanta PHP user group meeting.

31

31

Around the PHP Community

Presented at Atlanta PHP User Group on

For new and veteran PHP programmers alike, it’s often difficult to find the right place to ask questions and find the best answers and solutions to programming challenges. This month, Ben Ramsey takes us on a journey through the PHP Community to discover the websites the experts use to get PHP news and information and the places they go to ask for help (because even experts need help). He’ll wrap up the talk with a brief who’s who in the PHP Community, introducing you to some of the core developers and familiar faces around the community.

30

30

You Look Like You Could Use Some REST!

Presented at php|works on

Representational State Transfer, or REST, has become the hip, new buzzword of Web 2.0. But what really makes an application RESTful? Is it pretty URLs? Or the use of XML over HTTP? Is it any web service that doesn’t use SOAP? In all of the hype, the definition of REST has become clouded and diluted. It’s time to take a fresh look at REST.

29

29

You Look Like You Could Use Some REST!

Presented at PHP Appalachia on

Same title as my talk for php|works this year, but not the same material. This talk is a cobbled together, Frankenstein’s monster of three previous talks I’ve given that have covered representational state transfer (REST). Learn about REST as I breeze through it, and spend the last half of the talk attempting to solicit audience participation from the morning zombies—er, campers—(who may feel that they lack rest) to design a RESTful web service.

28

28

You Look Like You Could Use Some REST

Presented at Schematic Technology Summit on

Representational State Transfer, or REST, has become the hip, new buzzword of Web 2.0. But what really makes an application RESTful? Is it pretty URLs? Or the use of XML over HTTP? Is it any web service that doesn’t use SOAP? In all of the hype, the definition of REST has become clouded and diluted. It’s time to take a fresh look at REST.

27

27

Web App Security 101

Presented at Schematic Technology Summit on

Cross-site scripting (XSS), cross-site request forgeries (CSRF), and SQL injection are among the most common attacks made on web applications today, and they’re so easy to prevent. In this talk, Ben Ramsey gives an overview of these attacks and what you can do to ensure your web application is protected.

26

26

Distribution and Publication with Atom Web Services

Presented at Zend/PHP Conference & Expo on

As we move toward “Web 3.0,” the Web is slowly transforming into a platform upon which massively distributed applications run. Rich clients turn personal computers into thin clients, not storing or processing any data locally but, rather, connecting to a web service where the data resides. These services may target intranets, extranets, or the global Web community, but to work they need a common language. One such language is the Atom Publishing Protocol.

25

25

Give Your Site A Boost With Memcache

Presented at O'Reilly Open Source Convention on

Today’s high-traffic web sites must implement performance-boosting measures that cut down data processing and reduce load on the database, while increasing the speed of content delivery. One such method is the use of a cache to temporarily store whole pages, database recordsets, large objects, and sessions. While many caching mechanisms exist, memcached provides one of the fastest and easiest-to-use caching servers. This talk will cover memcached and the memcache extension for PHP from setting up a memcached server to using it to provide a variety of caching solutions, including the use of memcached as a session data store.

24

24

Give Your Site A Boost With Memcache

Presented at DC PHP Conference & Expo on

Today’s high-traffic websites must implement performance-boosting measures that cut down data processing and reduce load on the database, while increasing the speed of content delivery. One such method is the use of a cache to temporarily store whole pages, database recordsets, large objects, and sessions. While many caching mechanisms exist, memcached provides one of the fastest and easiest-to-use caching servers. This talk will cover memcached and the memcache extension for PHP from setting up a memcached server to using it to provide a variety of caching solutions, including the use of memcached as a session data store.

23

23

Distribution and Publication with Atom Web Services

Presented at DC PHP Conference & Expo on

As we move toward “Web 3.0,” the Web is slowly transforming into a platform upon which massively distributed applications run. Rich clients turn personal computers into thin clients, not storing or processing any data locally but, rather, connecting to a web service where the data resides. These services may target intranets, extranets, or the global Web community, but to work they need a common language. One such language is the Atom Publishing Protocol.

22

22

Zend PHP 5 Certification Crash Course (Workshop)

Presented at php|tek on

What better way to brush up on PHP 5’s intricacies before taking the big exam, than a crash course? Join Ben Ramsey in covering everything you need to know to pass the new Zend PHP 5 Certification.

21

21

PHP TestFest 2008: Writing phpt Tests

Presented at Atlanta PHP User Group on

Ever wanted to get involved in the PHP development team but were unsure of where to start? Perhaps you’re not exactly a great C developer, so you weren’t even aware that your help could be valuable? Well, you don’t need to be a C developer to aid the PHP development team, nor do you need to do any fancy compiling or building. You can write phpt tests!

20

20

Upload Progress Bars & More

Presented at ZendCon Unconference on

There are many different ways to implement upload progress bars. Some fake the progress bar with a simple animated image. Others use Java or Flash to handle both the upload and the status indication. However, through the use of Ajax, it is possible for PHP to asynchronously return the progress of the uploaded file. This talk will examine two ways to implement Ajax-driven progress bars with PHP’s APC extension and pecl/uploadprogress. The talk will explore the benefits and drawbacks to each approach, as well as some of the more advanced functionality provided by pecl/uploadprogress.

19

19

Mobilizing & Sharing

Presented at Zend/PHP Conference & Expo on

When approached by a global mobile phone manufacturer to build its online community for uploading and sharing mobile content, Schematic chose to use the Zend Framework as the foundation for the application. This application case study will examine this choice and the reasons that contributed to the decision to use the Zend Framework. We will also discuss some of the technical and architectural details of the application and highlight how the Zend Framework was used to compliment scaling techniques in anticipation of high traffic and increased server load. The case study will review features of the Zend Framework that made it particularly suited to a global online community, such as internationalization and localization, authentication, and session features. Finally, we will look at the performance of the application as it went into production and how it fared as traffic increased.

18

18

Give Your Site a Boost With memcached

Presented at Zend/PHP Conference & Expo on

High-trafficked websites require high-performance scaling techniques. One such technique is to implement a caching mechanism to decrease data processing and server load while increasing speed of delivery. Many caching solutions exist, but few are as efficient (or as free, as in freedom) as memcached. Memcached is a fast and easy-to-use distributed caching server. This talk will introduce memcached, explain how it works and how to use it with PHP, and offer suggestions and scenarios for using memcached to provide a variety of caching solutions for data and sessions.

17

17

Designing RESTful Web Applications

Presented at php|works on

Representational State Transfer (REST) has become the method of choice for many Web Services wishing to provide an alternative to their SOAP and XML-RPC interfaces. This talk will explain the theory of REST and offer an approach to design a REST service. We’ll look at many existing REST examples and examine a practical implementation of a RESTful Web service.

16

16

Zend PHP 5 Certification Crash Course (Workshop)

Presented at php|works on

What better way to brush up on PHP 5’s intricacies before taking the big exam, than a crash course? Join Ben Ramsey in covering everything you need to know to pass the new Zend PHP 5 Certification.

15

15

Give Your Site a Boost With memcached

Presented at International PHP Conference, Spring Edition on

Today’s high-traffic websites implement caching techniques that cut down data processing to increase speed of content delivery. Memcached provides one of the fastest and easiest-to-use caching servers. This talk will cover memcached and the PECL memcache extension from setting up a memcached server to using it to provide a variety of caching solutions for data and sessions.

14

14

Designing RESTful Web Applications

Presented at International PHP Conference, Spring Edition on

Representational State Transfer (REST) has become the method of choice for many Web Services wishing to provide an alternative to their SOAP and XML-RPC interfaces. This talk will explain the theory of REST and offer an approach to design a REST service. We’ll look at many existing REST examples and examine a practical implementation of a RESTful Web service.

13

13

Give Your Site a Boost With memcached

Presented at Atlanta PHP User Group on

Today’s high-traffic websites implement caching techniques that cut down data processing to increase speed of content delivery. Memcached provides one of the fastest and easiest-to-use caching servers. This talk will cover memcached and the PECL memcache extension from setting up a memcached server to using it to provide a variety of caching solutions for data and sessions.

12

12

XML & Web Services with PHP

Presented at Atlanta PHP User Group on

What is XML? What are Web Services? This talk will answer both of these questions, exploring ways to use the powerful features of PHP 5 to consume and create XML-based Web Services. Topics will include SOAP, XML-RPC, and REST, giving real-world examples and explaining the differences between and benefits of each.

11

11

Filtering Tainted Data

Presented at International PHP Conference on

All input should be considered tainted. The question is: how do we filter it to ensure that the input received is the input expected? This talk will examine the PECL Input Filter extension and the Zend_InputFilter class from the Zend Framework, comparing and contrasting their approaches to filtering input. We’ll consider examples of both techniques and see how they work to ensure that the data we receive is safe to use.

10

10

Designing & Implementing RESTful Web Services

Presented at International PHP Conference on

Representational State Transfer (REST) has become the method of choice for many Web Services wishing to avoid or provide an alternate to their SOAP and XML-RPC interfaces. This talk will explain the theory of REST and offer an approach to design a REST service. We’ll look at many existing REST examples and examine a practical implementation of a service using PHP and SimpleXML.

9

9

XML & Web Services with PHP

Presented at Zend/PHP Conference & Expo on

What is XML? What are Web Services? This talk will answer both of these questions, exploring ways to use the powerful features of PHP 5 to consume and create XML-based Web Services. Topics will include SOAP, XML-RPC, and REST, giving real-world examples and explaining the differences between and benefits of each.

8

8

Mastering XML With SimpleXML

Presented at Atlanta PHP User Group on

The Atlanta PHP June meeting will focus on XML, specifically with regard to PHP 5’s SimpleXML functionality. Ben Ramsey will present, using the RSS (Really Simple Syndication) XML format to illustrate reading and writing XML data with SimpleXML.

7

7

Zend Framework Overview

Presented at Atlanta PHP User Group on

For nearly two months, the Zend Framework has been the great talk of the PHP community. Just one day following Atlanta PHP’s March meeting, the Zend Framework preview release was announced, and folks have been eager to download, play with it, and provide their feedback. At our May meeting, Ben Ramsey will take the Zend Framework for a test drive, outlining its current state, the direction it’s heading, and rounding out the presentation with a quick tutorial on using the framework (code samples included). Finally, we’ll start work on our group project, using the Zend Framework as a basis.

6

6

Introduction to Ajax

Presented at Atlanta PHP User Group on

Charles Quinn and Ben Ramsey will explain the phenomenon that is AJAX, as well as showcase a few simple examples of AJAX in action.

5

5

XSS and CSRF: Programmers Prepare, Users Beware

Presented at Atlanta PHP User Group on

Cross-site scripting (XSS) and cross-site request forgeries (CSRF) are often confused as being one and the same, but this misconception can lead to disastrous results. In this talk, you will encounter each of these attacks through examples and learn to distinguish between them. You will also examine secure coding practices and techniques for prevention.

4

4

Server-side PHP Security

Presented at Atlanta PHP User Group on

No week passes without a new security vulnerability. However, more often it is not a browser, server, or OS that is affected, but a web site. Most often, the same mistakes are made, paired with lazy programmers. This talk seeks to change this and covers securing a PHP-enabled website. Ben Ramsey examines security from the server-side and explores best practices for configuring PHP on the server.

3

3

PHP in a Whole New World

Presented at International PHP Conference, Spring Edition on

For several years, PHP has dominated on the Web, becoming the leading Web scripting language. However, PHP is not only for Web use; it is a general-purpose language that can be used to create desktop applications using GTK extensions. This talk examines some of the more popular applications created using PHP-GTK, as well as providing resources for more information on creating PHP-GTK applications.

2

2

3, 2, 1…Gone: Web Application Security

Presented at International PHP Conference, Spring Edition on

No week passes without a new security vulnerability. However, more often it is not a browser, server, or OS that is affected, but a web site. Most often, the same mistakes are made, paired with lazy programmers. This talk seeks to change this and covers securing a PHP-enabled website.

1

1

Framing the Frameworks

Presented at International PHP Conference, Spring Edition on

PHP-based frameworks proliferate on the Web. Everyone’s created one in some form or another, and many have slapped an OSS license on their’s and are offering it for mass consumption. This talk will discuss frameworks, what they are, and how they can be utilized for rapid application development to save time and money. In addition, several PHP frameworks will be explored and evaluated.