by Evan Coury
How does a high school student turn a laptop, two prepaid cell phones, and a cease and desist from Amazon into one of the largest text messaging gateways in the United States? Join Evan Coury as he shares his eventful journey of starting and scaling his web startup. A story of luck, risks, mistakes, and eventually, success
The presentation is not a how-to on learning how to build a Symfony2 application from the ground up. Rather, the presentation is a high level overview of the framework. It focuses on the internals and environment of the framework that your code will interact with along with the principles that went into its creation. The intent is that hopefully by doing this we can eliminate some of the initial frustrations that occur when any developer tries to learn something new. The goal here is to prepare and align developers of varying backgrounds and ready them to begin the process of learning the framework.
by Eli White
Best practices are important, but are they always the best for your situation? I spent years working on large software projects where best practices were crucial. Milestone planning, multiple code branching, 99.9% uptime requirements, heavy testing, deployment processes, etc. But I then blindly applied those to every project afterwards. In retrospect, that hurt many projects, especially in smaller companies or startups where speed of innovation was more important and downtime acceptable. In this session, learn from my experience and discover where cutting corners is not only acceptable, but better for the project. At the same time, learn which practices are crucial and should be used no matter what!
by Adam Culp
Adam Culp will talk about using Vagrant to create and manage virtualized development environments, making it easier to mirror production servers. Then will lightly cover using Puppet for more advanced provisioning, making the addition of multiple development environments and servers easier and faster. We will also cover other tools helpful to use with Vagrant making it even easier to use, and follow up with a brief LIVE demo of using Vagrant, Puppet, phPHPet.com, and Composer to get a Zend Framework 2 development environment up quickly.
If you're developing and are not sure what these technologies are, this talk is for you. As a developer it's increasingly important to ensure our development, testing, staging, and production environments are as closely matched to each other as possible, alleviating the "can't reproduce it on my machine" excuses.
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.
There are no "best practices" without "worst practices". This presentation will look at proper use cases for MongoDB, covering topics such as schema design, querying, and methods of data aggregation. Tips and caveats will be sprinkled throughout as we discuss DOs and DON'Ts applicable to the PHP driver right down to operations and deployment of the database itself.
by Jeff Carouth
Git is great. Project hosting on Github is even better. But how does git fit into your team workflow? In this talk we will cover how to effectively use git as your source control management system from an individual developer's perspective and then from a team perspective. You will learn how to efficiently use git during feature implementation and experimentation including stashing, committing, rebasing, and code sharing techniques; how you can leverage Github to spur conversations about code and implementation; and a workflow incorporating code review using Github's pull requests.
Even the best of us can overlook things and make the occasional mistake, but a mistake that makes it to production means no sleep, unhappy customers, and lost revenue. Code reviews minimize this risk and keep you sleeping soundly. Having QA review your code helps, but your developers know the code best. You also avoid having a single point of failure by ensuring that there are always two developers who thoroughly understand each update. Learn how to incorporate peer reviews and testing into your workflow, making big improvements in code quality without derailing your team's velocity.
by Jason Rhodes
You’re a responsible-yet-totally-hip developer staring at a brand new WordPress project—don’t panic! The WordPress team might support PHP 5.2 but you don’t have to! In fact, you can use a workflow that would make even a Laravel developer jealous. I’ll show you some set-up tricks, explain how to manage everything with Composer, get you started with WP-CLI and show you how to deploy with confidence.
by Cal Evans
PHP is a powerful tool. It is estimated that it is running on more than 80% of the servers on the web today. Many know that PHP can also be run from the command line, but don’t truly appreciate the power that it gives them. You can use PHP for everything from simple command line pipes to back-end maintenance for complex web apps. In this session we will start with some simple examples of using PHP from the command line and then build up to using it as part of a larger application.
by Brian Fenton
Many databases begin life with simple tables or even with tables imported from Excel or Access. Over time they can grow more complex and problems appear like inconsistent data, poor performance or orphan records. In this talk we'll cover principles of database design and normalization. We'll look at common design mistakes and how to avoid or fix them using a set of example tables.
by Omni Adams
As a professional developer, you already do all of the best practices. You store your code in a source control and write unit tests. You already know all of the patterns and when to use them. Your code is perfect and beautiful. Then you hire another developer. He puts his braces in the wrong place and uses different formatting then you. He keeps committing broken code to your code base. Then you add another two members to your team along with a junior developer. All of your beautiful code is getting ugly, brittle, poorly documented, and hard to maintain. We'll discuss some of the pitfalls and strategies when developing software in the real world, from style guides to code reviews to automated checks that keep your team from imploding in ego-driven angst.
by Matt Frost
Creating a test suite that you can have confidence in is hard work. It's nearly impossible to create unit tests for your whole application without knowing how to mock your dependencies. This talk will focus on the different types of test doubles, when to use them. It will also provide some code examples to tie the theortical and practical side together.
Traditionally, managing third-party code in PHP projects has not been a trivial task. Fortunately, the PHP community now has Composer, a top-notch dependency manager. Learn what Composer is and how you can put it to work for fun and profit. You will see how to set up a new project, find packages, as well as how to create and distribute your own packages
by Jacob Mather
Have you ever wrote code that worked when you wrote it, but failed when it went to QA? Or staging? Or production? Learning how to build a high quality development environment is a serious undertaking and will involve a lot of trial and error — unless you come to this talk. Having spent the better part of the last year prepping, implementing, rolling out, maintaining, stabilizing, and growing a large scale development environment platform, I will show you the ropes. The real secret to building a system everyone can love: it’s all about making eggs, not bacon.
OpenStack is the largest competitor to Amazon Web Services at the moment. However, OpenStack isn't a single provider; instead, it's a suite of open-source software that allows anyone to manage an open-source cloud, as well as being a public offering by companies like HP and and Rackspace (my employer). This session gives an overview of the various OpenStack components ("projects") and lots of details on using php-opencloud, the open-source SDK for working with OpenStack clouds
There's more to being a successful programmer than just dominating your chosen language. After years of programming, I've found that a few other important skills emerge. Problem solving, communication and empathy have found their way into my development process. If you're earning your stripes as a junior programmer, you'll benefit from my lessons learned "the hard way." And for those in a mentoring role, this refresher will serve as a guide to sharing your own experiences that helped shape you into a great programmer. Come find out why these 7 honest and practical tips deserve a spot in your programmer toolbox.
There is a lot of confusion around open-source projects. For example, Android is often touted as an open-source mobile operating system, but have you ever met someone outside of Google that has successfully submitted code to it? There are a lot of proprietary systems that operate under the mask of "open source" but, on the other hand, there are some truly remarkable tools and libraries that are available. By becoming involved in the development and maintenance of open-source solutions, businesses can leverage an enormous, highly-motivated group of programmers who will work for you, essentially for free. To take the most advantage of this, however, participants in open-source projects must be "good citizens;" they need to understand how to contribute, how to measure and manage open-source workers, and how to set expectations internally with regards to using open-source software. When you work with an essentially volunteer workforce, you cannot use the same management strategies that may have worked for you in the past. It's important to be flexible as well as cautious about participating in open-source work, but the benefits can be great.
by Evan Coury
The codebase at work is absolutely terrible. It's a mess of spaghetti that has been around for years and is and completely untestable. Any time you fix a bug right here, a new bug appears over there. In this talk, Paul explains why the code is so bad, and gives practical steps on how you can start digging your way out of the legacy hole while keeping the system running the whole time.
In this talk I will explain the differences between different types of noSQL databases as well as the CAP theorem. I will then progress to illustrate which paradign shifts are necessary to succesfully implement noSQL, using MongoDB as an example. The approaches to schema design, fault tolerance, the network breaking and latency are all things that are inherent to scalability with noSQL solutions and with this talk you will learn how to use MongoDB effectively considering all the above mentioned situations. Covered subjects will be: CAP theorem, schema design, dealing with error situations and architecture of multi-node set-ups.
by Jason Lotito
You've optimized your database queries, you're using memcache and APC, and you've even upgraded your servers. But now your processes are taking too long to run. A script running in cron every minute just isn't going to cut it. Where do you turn next? This talk introduces you to RabbitMQ specifically, and queues in general. We'll actually show how to implement RabbitMQ into your code, how to best use your messages, writing consumers in PHP and Node.js, and more. All from the experience of someone working on sites sending tens-of-thousands messages a second.
by Eli White
This talk will focus on XSS, CSRF, Session Hijacking, SQL Injection, and other security vulnerabilities that need addressed in Website Development. This talk will cover a gambit of these issues, giving specific code examples showing what the vulnerabilities look like and how to identify them. It will then present solutions to close them down and protect yourself.
Doctrine has come a long way from its humble beginnings as an active record ORM for SQL databases. After an overview of relevant design patterns, we'll discuss the practical benefits (and caveats) of managed object persistence in Doctrine ORM and the newer Non-SQL ODMs, look at data modeling via its widely used annotation library, and explore APIs for persistence and query services. Finally, we'll survey other projects in the family, such as lower-level database and cache abstractions.
A building works better with a solid foundation beneath it. The same is true for PHP. Whether you are new to programming or are just looking for a refresher, this session will take you through the basics. Beth Tucker Long will cover strings and arrays, conditions and loops, sessions and cookies, form validation and security, and writing your own functions. Best of all, Beth won't just talk about these concepts, she'll go through actual code, so you can see them in action. Bring your laptop, follow along, and you'll have a working application when you leave. Questions are welcomed!
by Nate Abele
by Jeff Carouth
You know testing is beneficial to your project. You are familiar with merits and caveats of test-driven development. But the project you’re hacking on right now is what most would call a legacy application. How do you apply your test knowledge to an application that doesn’t lend itself to traditional unit testing? The answer most will give is, “you don’t,” but we’re going to look at ways to write tests now that will allow you to improve and refactor your application to evolve the code to a more manageable state. The traditional “easy” route to dealing with legacy code is to rewrite but a little patience and skill applied to writing tests will yield better results.
by Brian Fenton
So you know about object oriented code and wrapping functions up into classes with similar behavior. This talk will take you on a deeper dive into SOLID, a mnemonic for five rules of well-designed OO code. We'll also cover some common design patterns, with examples, and cover some further guidelines about designing clean code.
by Eryn O'Neil
You've been programming for a while now. You know your way around the code, and you're starting to feel kind of senior. And it looks like someone else noticed, because you're the technical lead on your next project. Congratulations! But now what? It's a big job: The technical lead can be responsible for designing software architecture, writing requirements, interfacing with clients or management, mentoring less-experienced developers, or dividing work amongst the team-- and those are just the parts of the job they tell you about ahead of time. We'll talk about how to oversee the technological vision for the project without losing sight of what's happening on the ground, how to motivate your team members without overstepping your bounds, and some tactics to deal with challenges you might not anticipate, but will almost certainly encounter
by Chris Weber
Have a talk that explores the journey Drupal has been on for the last 3 years. Drupal went to a pretty insular solution to one that embraces the larger PHP Community. Talk about PSR-0, PSR-4, Symfony2 and releated libraries. Talk about the future where a PHP developer can ramp up onto a Drupal project without specialized knowledge and get going. Talk about this as an example of how we can all work together to make PHP developer better
15th–16th March 2014