Minnesota's Premier PHP Conference

March 15-16, 2014

University of Saint Thomas Minneapolis, MN

Sessions

Do bacon drumstick, aute non salami qui nostrud dolore. Fugiat jowl tail sirloin cillum minim. Turkey excepteur short ribs t-bone jerky elit nisi officia quis aliquip capicola id ribeye meatball. Brisket nisi tempor pork chop sausage nulla short ribs. Andouille cow drumstick shoulder beef. Strip steak venison culpa, short loin consequat ground round rump in proident sint ad duis cow minim.

90K reasons why security is a must

We all have focussed on best practices and code quality over the past years, but we seemed to forgot the most important aspect of the web: security. This talk gives a good overview on your first-line of defence in your code, how to ensure that new exploits and hacking techniques are covered with tests and how you build solid web applications that secured enough to keep script kiddies and wanna-be hackers away. I will also give some tips what to do when you're company becomes victim of cyber crimes.

Speaker
Michelangelo van Dam
Track
Other
Level
Intermediate
Categories
security

Accelerating the PHP development lifecycle.

The software development lifecycle is a pretty slow process in most organizations but by using the right tools you can accelerate the process and release better code than every before. Proper monitoring tools and methodologies are the cornerstone of rapid software delivery if code quality is an important consideration. In this session I'll show you how to use monitoring software to make a major impact during development, test, QA, and production. All information provided is based upon real life experience working within a high pressure financial services environment.

Speaker
Jim Hirschauer
Track
Development
Level
Beginner
Categories
development monitoring production qa

adriannuta Draft

Speaker
Adrian Nuta

Advanced Date/Time Handling with PHP

PHP has powerful date/time handling functionality. It allows you to deal with many issues that arise when you are developing applications. This talk will cover advanced functionality and is not an introduction except for where this is necessary. I will cover dealing with timezones, calculations with DateTime objects and tips and tricks for dealing with storing date/time information.

Speaker
Derick Rethans
Track
Development
Level
Intermediate

Adventures of a Contract Developer

Thinking about quitting that desk job and enjoying the freedom of contract development? Before you do that: get a bit of perspective from another developer. Tim will share his philosophy on contracting, and the tools he uses to work for multiple clients and multiple projects every week while staying - arguably - sane. If you're already a contract developer, logging time, creating invoices, tracking which clients still haven’t paid you - that’s the best part of contract development, right? Learn how you can outsource it and stay focused on development, not management.

Speaker
Tim Lytle
Track
Other
Level
Beginner

Algorithm, Review, Sorting

High-level languages and platforms abstract away basic computer science problems so we can code quicker and not re-invent the wheel. That said, algorithms are too much fun to just leave as a black box. We'll learn how to analyse and compare sorting algorithms with live demos and visualisations. With an algorithm from the 1800s, it could even be a history lesson too.

Speaker
Rowan Merewood
Track
Development
Level
Intermediate

All You Jokers; or, No More Overtime

One definition of insanity is "doing the same thing over and over, expecting different results." In this talk, Paul will talk about how organizations keep treating developers poorly, especially by demanding overtime, and why it is crazy for developers to expect their organizations to change. Paul will show how you can change the way your organization treats you, to your own benefit and (hopefully) the benefit of the organization.

Speaker
Paul Jones
Track
Management

Amazon SimpleDB

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.

Speaker
Eli White
Track
Database
Level
Beginner
Categories
AWS Database NoSQL

Better design through simpler tests

Unit testing is mostly seen as a mean to make you program work without or with less bugs. You can end up writing complicated tests and you may start feeling that testing is a pain. We will see why this is a sign that you code does not follow the Single Responsibility Principle, how you can simplify these tests while greatly improving your code design. You will love testing once you'll know how to use it at your design advantage!

Speaker
Adrien Brault
Track
Development
Level
Intermediate

Bringing bright ideas to life, successfully

Who would have thought putting 140 charachter messages about one's life online or having a virtual farm game could ever be popular ? Then again, many of us have those weird (but sometimes brilliant) ideas. But no matter how incredible your ideas might be, getting them launched successfully takes more than writing lots of php code, smacking a sleek design on it and dropping it on a server. So what does it take ? Where do most ideas crashland and how can you avoid making the same mistakes and transform your ideas into reality ? We'll look at what steps are needed to make a service successful and sustainable.

Speaker
Wim Godden
Track
Other
Level
Beginner
Categories
bright ideas tech ideas

Bringing Good Design to the Table

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.

Speaker
Brian Fenton
Track
Database
Level
Beginner

Browser Eyeballing != JavaScript Testing

Stop eyeballing your UI in a browser to test your JavaScript code - that doesn't count. While many developers have embraced testing in their server side code using TDD, fewer test their front end JavaScript code in the same way (or in any way), and even fewer of those use any kind of automation. This talk will guide attendees on how to write testable JavaScript code, how to write tests for that code, and some solutions for automating the process. Participants will come out of this talk ready to implement and automate better tests for their JavaScript code.

Speaker
Jordan Kasper
Track
Development
Level
Intermediate
Categories
front-end javascript

Building a REST API with ZF2

In this session we’ll take a look at building a Representational State Transfer (REST) API, starting off with a quick overview of what REST is, looking at other REST APIs, planning our architecture, building the API in Zend Framework 2, and then looking at and solving API related challenges.

Speaker
Michael Stowe
Track
Frameworks
Level
Beginner
Categories
API REST RPC SOAP Zend Framework

Building Better Developers

Thankfully, "rockstar" and "ninja" are now dirty words when it comes to describing developers. It's not about being a superhero, it's about simple, achievable steps to change the way you work. This talk collects together some personal favourite hints and hacks for improving how you approach software engineering. We'll dive into the Quake 3 source code, the Linux kernel mailing list and discover the One True Editor along the way.

Speaker
Rowan Merewood
Track
Other
Level
Beginner

Building oAuth Providers

oAuth is more than just a way to provide 3rd party developers access to your user's data - although it certainly works for that. If you're developing internal APIs, you're still likely concerned about controlling access on an application level and a user level. Perhaps it's expiring keys for your own applications as new versions are released, or denying access to badly behaving users. You're still concerned with two sets of credentials, and that's what oAuth provides. Learn how to add an oAuth provider to your API using the PHP oAuth extension. Take a step-by-step look at the oAuth dance from the provider side, with examples of storing and validating tokens, as well as handling the timestamp and nonce. See if 2 legged auth (or whatever you want to call it) can keep oAuth relevant to your needs when you need to make application only calls. Take a look at some practical examples of integration with full scale MVC stacks, micro-frameworks, and legacy code to see how you can add oAuth to your next project, or the code you're currently supporting.

Speaker
Tim Lytle
Track
Development
Level
Intermediate

Building rock solid software in the real world

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.

Speaker
Omni Adams
Track
Development
Level
Intermediate
Categories
code reviews code smells Revision Control

Caching Best Practices

Whether you use Memcached or another caching technology, such as APC or Zend Server Cache, having an application level cache is important for performance & scalability. Learn some best practices for making this cache layer the most efficient & easy to use. Techniques such as 'biggest smallest reusable item' & automatic write-through caching will be covered.

Speaker
Eli White
Track
Other
Level
Intermediate
Categories
Best Practices Caching

Clean Application Development

No matter what level of development we are at in our careers we all face a daily battle to write good code for ourselves and others, deliver finished applications fast to satisfy business, and ensure everything is properly tested to prevent end-user fails. In this talk Adam Culp will discuss what “clean application development” is, and how it can help us win those battles. The talk will provide practical and usable examples to, integrate into your workflow, and continue to grow into good habits.

Speaker
Adam Culp
Track
Development
Level
Beginner
Categories
code smells php refactoring source control unit testing

Clean Code: Refactoring

There are very few "write once" applications in reality. As developers we must keep up with constant changes and evolution of problems and our code should reflect this. In this talk we will look at practical examples of code that is not "bad" code but needs a little attention. We will look at techniques for refactoring it to a more readable, understandable, and maintainable state.

Speaker
Jeff Carouth
Track
Development
Level
Intermediate
Categories
clean code refactoring

Clean your shit up! Service Oriented Architecture for legacy systems

As we are often surrounded by legacy systems that we all have in the product development world, Service Oriented Architecture comes to the rescue. While it’s not like SOA will do the work for you, it will make your life much easier and your product way better and more stable through decent knowledge of the basic concepts. I would like to discuss my thoughts on service oriented architectures, giving some examples and show how that also applies to legacy systems.

Speaker
Ole Michaelis
Track
Development
Level
Intermediate
Categories
architecture SOA SOLID

featured sponsors

Platinum
Constant Contact Logo

silver

show your pride

Add a MidwestPHP badge to your site or blog
Tweets by @midwestphp

© MidwestPHP 2013

Site Development by Jeremy Werst
Powered by concrete5