Being able to see how your changes behave (or don't!) in a browser is really, really useful. And can be a challenge. WebDriver is on its way to becomes a W3C standard for browser automation but doesn't mean that a lot of people know what it does, its strengths -- or its limitations.
Adam Goucher, Selenium committer and maintainer of one of the PHP WebDriver bindings will give a whirlwind tour of WebDriver and the mindset one needs to have in order to be successful with it.
This session will delve into the details Zend Framework 1 developers need to know about the shiny new 2.0 release. Starting from a high-level overview of the evolution of ZF2 and it's major differences from ZF1, we will dive into common usage scenarios for ZF1 and it's major components and detail how to accomplish these "the ZF2 way". Along the way we will also explore ways to leverage ZF2 in your exisitng ZF1 applications, plus highlight migration paths that will help you migrate your applications from ZF1 to ZF2 as painlessly as possible.
Alfred started his IT career in high school, working on an ASR-33 teletype at 10cps over an accoustic coupler modem, connecting to an HP-2000 mini-computer to program in interpretted BASIC.
30-something years later (ahem), he is still coding away, but now embraces open source technologies, is the proud recipient of a ZCE designation, and has worked for some of the biggest corporations in the world; and more importantly, many small companies, as well.
Alfred enjoys sharing knowledge and ideas with peers, which explains his life-long involvement in user groups, and his regular, if infrequent, blog posts at http://notoriouswebmaster.com.
Prerequisites: HTML and CSS
Every developer at one point or another needs to implement some form of cryptography in one of their applications. Whether it's hashing passwords or encrypting sensitive user data, the security requirements are daunting. Yet you don't need to be an expert in cryptography to implement it correctly. All you need to do is understand the basics, and trust the experts.
In this talk, we'll take a look at some of the basic concepts of cryptography and how to implement them in PHP. Additionally, we'll discuss the common problems that developers face and how best to solve them. Finally, we'll dispel some of the myth and rumors around password hashing and how (and more importantly why) to do it properly.
When it comes to Object Oriented Programming, there is no shortage of guidelines and principles for how to properly design an OO system. There is also no shortage of acronyms to describe these principles: DRY, SRP, LSP, LoD, ISP, OCP, etc. However, there are two acronyms that really shine through to describe how to, and how not to do OOP well. The two acronyms are SOLID and STUPID (respectively). We'll discuss some of the underlying principles of Object Oriented Programming, and how we can learn from the principles identified by each of these two acronyms. Additionally, we'll explore some additional anti-patterns of Object Oriented Design and how they can be avoided. Finally, we'll talk about how all of this applies to our every day development tasks, and the real-world benefit these design principles provide...
This is a re-hash of a talk that I did for NYPHP, cut down for time (the original talk is 1:20 plus comments, so I would re-vamp and update the content for the shorter format. See the prior talk here: http://blog.ircmaxell.com/2012/05/dont-be-stupid-grasp-solid-slides.html
Just because you can program something doesn't mean you should. Nowhere in web development is that more true than e-commerce, where it's remarkably easy to do something you shouldn't, like create a form that submits credit cards over http that then get sent by unencrypted email (with the card security code, if you really want to throw caution and compliance to the wind :)
In this talk we'll explore the land mines that aren't really "development" but that developers need to at least a familiarity with: PCI compliance (and common misconceptions) and ways to avoid it; tax rate madness; shipping and how much it makes me want to cry; credit card processing and interchange; alternate payment methods; advanced analytics; and whatever else you have questions about.
Silex, the new "smallish" framework built on symfony2 components is a great starting point for building either traditional apps or APIs. In this session, we'll while away the hour sauntering through an existing project, stopping occasionally to smell the roses or examine some of the techniques to use. Along the way, we will talk about project structure, web vs. cli, and deploying composer applications without going insane.
Chris is a software engineer for a startup named binnj out of London. He has been developing in PHP professionally since 2004 with a passion for open source. Recently his attention has been focused on event driven programming for PHP, working on projects React and Ratchet.
Learn how stateful, real-time, bi-directional communication between clients and your server can change how your website works and bring it to life. Visitors will be pushed information as it happens. This talk will cover both client and server side techniques for a full PHP implementation as well as a polyglot solution to work with your PHP site.
There's no doubt about it, you can't afford to ignore security in your applications these days. With things like SQL injection and CSRF becoming more and more common, you need the knowledge to keep them from happening in your apps. It's not just backend either - there's frontend concerns too! I'll share with you some of the most common security issues that you need to consider and how to avoid them and harden your apps.
Looking to the Cloud for your next project? Why not consider Windows Azure?
In this talk I'll highlight how to get your applications running in the Cloud on Windows Azure. There are three paths to deploying your application ranging from Simple Hosting to IaaS to full on PaaS, this session will give you an all up view on how to deploy your application regardless of the path you choose.
I started developing professionally 10 years ago. I learned PHP in 2005 and having using it has my main language since then.
I have passion for best practices, especially about testing. And I sometimes write about those things on on my blog.
Continuous Integration allows developers to run tests automatically every time code is pushed to source control.
Setting up a continuous integration environment can seem like a daunting task.First, we'll look at what tests you can run for your code. Then how you should configure the server and the build script. Thankfully, it's not has hard has it seems.
We will look at the different tests that a Continuous Integration server can run. How to create a build script so it runs the tests and make sure it produces the needed reports. Finally, how to set up Jenkins to run the build and display the reports.
As soon as you decide to use an ORM tool, one of the biggest factors is Rapid Application Development. Everything is wonderful during development phase, but when it hits production, performance doesn't work like you expect. You may think it's ORM's fault, your expected it to write as efficient queries as you manually do, but like guns, ORMs don't kill your database, developers do! This talk will go deep into Doctrine 2 ORM by exploring performance tips that can save your application from its deepest nightmare.
Hugo Hamon is a french PHP fan living in Paris. He started to develop with PHP 12 years ago and he now works at SensioLabs, the creator of Symfony, as the head of the training department. In his free time, Hugo contributes to several PHP projects and gets involved in the PHP and Symfony french user groups. Hugo is also a book author and you can find him on Twitter (@hhamon).
Reinventing the wheel is always boring and by chance the PHP community is very prolific. Looking for an already made quality PHP library remains sometimes difficult. But thanks to Github, PEAR and Packagist, it's now very easy to dig a little and find powerful and well written PHP libraries.
This session will introduce some of the best PHP libraries for manipulating images, abstracting an HTTP client, manipulating relational and noSQL databases, checking and fixing code style violations, testing your code...
Paradoxically, Symfony2 is not only a full-stack framework. Its underlaying architecture relies on standalone, decoupled and cohesive components. This session will focus on the use of the most interesting components of Symfony like the Dependency Injection Container, Event Dispatcher, Console, HttpFoundation, HttpKernel, Routing, Browser Kit, Css Selector and Dom Crawler, and much more...
Ilia is a CIO at Centah Inc., a company specializing in providing solutions for the retail industry. Over the last 10 years Ilia has been heavily involved in development of PHP, as a Core Developer and Release Master, authoring many extensions and language improvements. Ilia is also quite interested in security and performance, and frequently is writing or speaking on these and other PHP related topics. In his spare time he pretends to be a pro-photographer and engages in various sports.
Caching is one of the best tools developers have in their performance toolboxes and Memcached is among the best caching solutions. Using practical examples, this session will teach you how to overcome the challenges of Memcached to create a scalable and redundant solution. You will learn multiple approaches for making Memcached High-Availability, replicated or fail-over configuration within the context of PHP applications.
One of the key steps that must be undertaken before starting on any performance work is understanding where the bottlenecks lay and what is the current state of performance for a given application. Thus when optimization efforts are undertaken they are focused at the bottlenecks and it is easy to see the impact of the changes that are made. This session will cover a variety of tools that can be used to measure performance of PHP applications, identify bottlenecks and generally understand the speed and scalability capacity of any given web application.
Ever thought how much better CSS would be if you only had variables or expressions or "x" or "y". Tired of remembering all of the browser prefixes for the new CSS3 features? Enter LESS CSS. LESS CSS is a CSS pre-processor that offers variables, mixins, expressions and much more. This is how everyone dreamed CSS would be ran. In this session, you will learn how to fully harness all the functionality of LESS while avoiding some of the pitfalls many new users face. CSS3 will never seem easier!
Jeremy Mikola is a software engineer at 10gen's NYC office. As a member of the driver and evangelism team, he helps develop the PHP driver and contributes to various OSS projects, such as Doctrine MongoDB ODM, Symfony2 and Zend Framework. Before joining 10gen in May 2012, Jeremy worked with MongoDB for a few years at OpenSky and Exercise.com.
Database technologies are not one-size-fits-all, and relational models need not be the de facto choice for web applications. MongoDB is a non-relational, document database designed for ease of use, speed, and scalability. Many developers have discovered that it hits a sweet spot of functionality and flexibility. This session will introduce MongoDB's storage model and query language using the native PHP driver and a plethora of code examples. Along the way, we will note parallels to SQL, discuss limitations, and explore new features.
To say that the barrier for publishing and contributing to open-source projects is low would be an understatement. GitHub has revolutionized this process with pull requets; "fork-and-edit" is as effortless as Amazon's one-click checkout. While there is certainly no shortage of opportunities and projects with which to become involved, there is the matter of doing so effectively and responsibly. In this session, we'll look at OSS contribution from the side of both would-be contributors and project maintainers, and discuss good practices we can apply towards the smallest of bug reports or documentation edits to the largest of pull requests.
PHP, Ruby and C# developer living in the Milwaukee area. Organizer of Milwaukee PHP user group. Addicted to learning, teaching and growing the developer community.
REST is certainly a loaded topic. There's the "REST" implemented by 95% of developers building APIs (including Twitter, Facebook, Google and many others). Then there's the "REST" preached from on high by disciples of Lord Fielding himself.
I will talk about REST in its pure and ideal form, but without the fierce dogmatism that usually accompanies such a talk. You'll see the ideal and the benefits it can bring, but we'll bring it back down to earth and get pragmatic because we have real work to do as well. A major part of the discussion will also be why you should be building an API in the first place. Even if you never expose this API to the public, it can be a solid foundation for your own applications.
Larry Ullman is a writer, developer, trainer, speaker, and consultant. He has written 23 books, translated into more than 20 languages, and numerous articles. He is current writing, and self-publishing, "The Yii Book: Developing Web Applications Using the Yii Framework". Most of Larry's development work has been with for non-profits and educational organizations.
In this presentation, best-selling writer and Yii expert Larry Ullman will talk about the Yii framework's strengths, walk through its basic usage, and explain what's new in Yii2. If you're thinking about learning a new framework, Yii is definitely worth consideration, and this presentation will quickly get you started.
Laura Beth Denker graduated from RIT with a BS/MS in Computational Mathematics/Computer Science. She then moved on to a small job in a small city in central New York before being courted by Google, bringing her to the Big Apple, where she worked in bot test and development for over 4 years. A couple years ago she took a turn for the handmade, by helping Etsy grow its spectacular development culture and continuous deployment process as the self-proclaimed Anthropologist of Developer Culture. Now she has begun digging deeper into the stack, as an Operations Engineer.
Nearly every "Best Practice" was developed to address a particular situation, a specific set of problems. Most of us at some point will find ourselves, or others, blindly following some regime that just doesn't quite make sense. Let us talk about some of these latest practices. Rediscover where they originated. The goals that they were meant to achieve. Let us begin to separate the kernel of truth from the jargon, and maybe learn how to identify and implement practices that fit and benefit the roles a relationships of your team or organization.
Twig is a recent contender in the template language space. Twig offers a rich and powerful API, with a simple and extensible syntax. I'm one of the Twig contributors, and have recently migrated an application with over 500 templates to use Twig. In this talk I'll be covering the following points:
* Why use twig and templating in general.
* Twig language basics, and built-in functions.
* Building DRY templates with blocks, layouts, and macros.
* Extending the twig parser and grammar.
* Twig in production.
Chances are you've worked on a code base that had one or more of the vulnerabilities listed on the OWASP top 10. In this talk we'll review what the top 10 issues are, and how you can better manage risk, and prevent them from happening to you.
Michelangelo is a senior PHP/Zend Framework consultant, a member of the PHP community and president of the PHP user group PHPBenelux.
Windows Azure provides a platform as a service and makes it a very appealing cloud solution for PHP developers.
In this talk I can show how easy it is to develop and deploy applications to Windows Azure cloud solutions and how to best use the aditional services provided by Windows Azure like SQL Azure, Azure Storage, Queue, Tables, Cache and CDN.
A company could grow rapidly upon a successful idea. To sustain such success, infrastructure ought to grow and evolve into a large-scale or enterprise-grade Web application. This means that a distributed system has to be built to accommodate high availability and high traffic requirements.
This talk will touch on scaling a simple PHP application residing in a LAMP environment (a stand-alone server is a common setup) to a scaled solution having redundant load balancers, distributed web and database servers. Most common problems (with both, scaling the system as well as scaling the PHP application) will be covered with fully defined solutions, hints and tricks (learned the hard way), as well as best practices. Real world examples will also be given to grasp the perspective of how big guys (Facebook, Flickr, Wikipedia to name a few) handled certain scenarios and overcame major obstacles.
This seminar is aimed at a developer that needs Solr now and does not have a lot of time or brain power to spare on search engine technology. It is a newbie session with real world examples.
- How to setup Solr in a few minutes
- What's inside the Solr directory, what to care about and what to ignore
- What documentation to read
- Solr on Windows, Ubuntu and Azure with Tomcat and Jetty
- Indexing XML, databases and other documents
- Basics of Solr query including faceting and "predictive search query"
- Tips and gotchas
Rafael Dohms is a PHP Evangelist, Speaker and contributor. He is a very active member of the PHP Community, in the past he helped the Brazilian PHP Community get organized and founded and led two User Groups. His latest investment is the AmsterdamPHP group, founded in 2012 to promote and raise awareness of PHP and the community in Amsterdam. Developer, gamer and lover of code he also hosted Brazil's first PHP Podcast: PHPSPCast, as well as contributing to well known projects.
He moved to the Netherlands in search of new challenges and is now part of the team at WEBclusive, sharing his passion for quality code and working on new awesome ideas with the team. You can always find him at the nearest Community events, speaking, sharing, talking or just learning from the rest.
How do you measure the quality of your code? Performance and testing are just one aspect of code, in order to meet deadlines and make maintenance quicker you also need your code to be readable, decoupled and generally easier to comprehend and work with. This talk will go over tips and exercises to help you identify trouble areas, refactor them and train you to write better code in future projects. Come make your code look and function better.
What exactly are annotations? How can they change the way you code and make life simpler? Annotations allow you to implement new functionality into code using "notes" this allows you to easily maintain your own architecture but benefit from external tools. Let's look at how annotations are used today in PHP and how we can develop our own solutions based on the existing libraries.
Opening keynote for the conference
Rich is the lead developer at Wattpad, where he learned (and will always be learning) how to build web applications at high scale. He's been writing PHP for 3 years and was a Rails developer before that. He is passionate about software development and hopes he's still building things with code when he's 80.
Articles on High Scalability about what all the big boys are using to handle their scale are great, but have you ever wondered how they got there? This talk will take you through how we went from one server on a web host, to a few dozen on AWS.
Scott Mattocks is the Director of Development at GSN Digital. He leads a team of highly skilled developers, driving growth and scale of GSN's on-line games platforms. Scott lives in Massachusetts with his wife and four kids.
Most software development team consist entirely of humans. Those teams spend a large amount of time developing, testing and deploying what they believe to be high quality systems. Without adding the code itself as a trusted member of the group, these teams are missing a significant part of the picture. Writing code that contributes to the conversation through documentation, logging, monitoring and testing is the only way to produce a high quality, maintainable system. In this talk we will look at responsible development practices that not only make the code do what it is told, but allow the code to communicate effectively with you, the developer.
A lot of PHP developers try to build every aspect of their application in PHP. A logical choice when you develop PHP, but there are situations where another tool might be better suited. This talk will go over some of the advantages of using external tools, then introduce you to several projects written in other languages that might be useful for your next project, and show that you should not be afraid of these tools because you can use them without knowing the language they were written in.
At TrueNorthPHP and other (PHP) conferences, there's always a full schedule of speakers. Some are from the area, others are international speakers. But how did these speakers come to be speaking at a conference? And why? If you are interested in becoming a speaker and sharing your knowledge, and you want to know how to get there or what to expect, this is your talk! During this talk I'll tell you my personal story on how I became an international conference speaker and how I've experienced this.