•  

Lone Star PHP 2017 schedule

Thursday 20th April 2017

  • Double Loop: TDD & BDD Done Right

    by Jessica Mauerhan

    Do you TDD or BDD? Why not both? Come learn the "Double Loop" workflow and discover how you can use both Behavior Driven Development and Test Driven Development to write well designed, tested and documented code. In this tutorial, we'll create a small application using PHP, Postgres and Javascript, fully designed and tested with Behat and PHPUnit.

    At 9:00am to 12:00pm, Thursday 20th April

    In Addison Conference Center

  • Getting Git

    by Jason McCreary

    Version control is a must for development. With the popularity of services like GitHub, Git has become the top choice for version control. However, not everyone is as familiar with Git as they might want. In this talk, we'll explore everything from 'git init' to 'git bisect.' Through live demos we'll apply what we've learned to tackle everyday scenarios using Git. So whether you're just starting out with Git or a Git pro I guarantee you'll learn something.

    At 9:00am to 12:00pm, Thursday 20th April

    In Addison Conference Center

  • Stay Nimble by Rolling Your Own PSR-7 Framework

    by Beau D. Simensen

    PSR-7 is ushering in a new era of interoperability in PHP. This also means that there are a lot of complicated choices to make when deciding how to build a "PSR-7 application." Which framework should you use? Do you need to write your own PSR-7 implementation? Should you choose a microframework, a full-stack framework, or roll something of your own?

    To help answer some of those questions you'll be introduced to a light PSR-7 framework named Nimble. More than just a sales pitch, explore the reasons for rolling your own framework, how the third-party components that make up the core of Nimble were selected, and how the pieces all fit together. Walk away knowing that PSR-7 frameworks aren't as scary as they look and that creating one yourself may be the best idea of all!

    At 9:00am to 12:00pm, Thursday 20th April

    In Addison Conference Center

  • All the Laravel Things - Local to Production to Making $$

    by Joe P Ferguson

    Laravel 5 has established itself as one of the best PHP Rapid Application Development Frameworks. Come learn about all the tools in the Laravel ecosystem designed to save you time and prevent you from writing the boring cruft you have to write for every application. We'll cover getting started with local development, building a basic application, and deploying to production. We'll cover how Laravel easily handles vagrant, testing, oauth login services, billing and subscriptions services through Laravel Spark, and deploying your application with services such as Laravel Envoyer and Forge to manage your servers.

    At 1:00pm to 4:00pm, Thursday 20th April

    In Addison Conference Center

  • Containerizing PHP Applications

    by Josh Butts

    Lets face it, Docker is hot right now. If you’re itching to get started but aren’t sure how, you’ve come to the right place. In this tutorial, we’ll spend some time going over basic Docker concepts like Dockerfiles, containers, images and registries. Then we’ll look at some sample applications including Wordpress, Drupal and some framework-based examples and talk about strategies for building Docker images for these various different scenarios. We’ll also cover how to handle external dependencies such as file storage, databases, caches in both development and production environments.

    At 1:00pm to 4:00pm, Thursday 20th April

    In Addison Conference Center

  • Real-time Dashboards With Async PHP

    by Daniel LaBarge

    When having the critical information available in an instant, businesses look to develop real-time dashboards and data streams. You’ve heard of websockets and everyone knows there is Socket.io and Node.js but what if you could do it all in PHP? In Real-Time Dashboards With Async PHP we demonstrate how to write an event loop and then create non-blocking code which can communicate bi-directionally with one or more connections. We will write up a responsive web interface that can provide real-time stats as a reactive dashboard. While an advanced topic, we will build up from the entry-level sparing no details or introducing any magic along the way. At the end we refactor utilizing a few abstractions which make our maintained codebase smaller and finally replace the plain-vanilla JS dashboard with a frontend view framework (Vue.js) to help with the client-side heavy-lifting. The result is a synchronous and asynchronous bridge that makes frontend and backend communicate as a seamless evented application.

    At 1:00pm to 4:00pm, Thursday 20th April

    In Addison Conference Center

Friday 21st April 2017

  • Effective Browser JavaScript Debugging

    by ᴠᴀɴᴄᴇ ʟᴜᴄᴀꜱ

    Did you know that your web browser has a full suite of built-in JavaScript debugging tools? With the developer tools in Chrome, Firefox, and Safari, you can debug JavaScript on the fly with breakpoints, watch expressions, an interactive REPL with autocomplete, and much more. Learn how to troubleshoot bugs and memory leaks like a pro, armed with the same web browser you already use everyday - no extra plugins or downloads required.

    At 9:00am to 9:50am, Friday 21st April

    In Addison Conference Center

  • Introduction to Graph Databases with Neo4j

    by Michael Moussa

    Graph databases are all the rage these days, but the ideas they’re built upon are hundreds of years old. After a brief look at the history of graph theory and its practical applications in Computer Science, we’ll dive right into Neo4j - the world’s most popular graph database! Learn the differences between a graph database like Neo4j and your traditional RDBMS. See how to model your application’s domain using the new concepts available to you and how to query your graphs using Neo4j’s intuitive query language, Cypher. After this talk, you’ll agree that (Neo4j)-[:IS]->(Awesome) and be excited to use it in your next web application!

    At 9:00am to 9:50am, Friday 21st April

    In Addison Conference Center

  • Pulling up Your Legacy App by its Bootstraps!

    by Emily Stamey

    Your mission, should you choose to accept it, is to support an application built on an older framework. Refactoring isn't an easy option. The code is untested and nowhere near best practices or standards. In this session, we'll talk about strategies to incorporate modern PHP coding practices to add features and functionality and retiring the older code in pieces. We'll review specific examples and code from a real project where we bootstrapped a legacy application that needed a lot of help to become useful to its users and simpler for developers to maintain. We'll talk about strategies to leave the existing code in place until the new code is ready to replace it in whole or in pieces.

    At 9:00am to 9:50am, Friday 21st April

    In Addison Conference Center

  • Basic Database Programming for PHP Developers

    by stoker

    So what does a database do with a query? How do you avoid the N+1 problem, SQL injection, or just poor database performance? If you are new to programming and want to learn how to efficiently learn how to use a database then you need to be in this session, You will understand how a database server processes a query, why you need to think in sets, why the common problems occur, how to filter user data, and get a very good overview of writing efficient database queries. This tutorial is designed to get novice developers started on the right path to working with a relational database.

    At 10:00am to 10:50am, Friday 21st April

    In Addison Conference Center

  • Computers <3 Structured Data

    by Steve Grunwell

    Computers have one job: to read and process data. One job, and sometimes they still need help!

    Structured data puts you in control, ensuring that search engines and other parsers aren't misreading your information. Get your events recognized as events, your business address as a location, and those product reviews working to attract customers!

    Implementing good, structured data is also the first step into the Google Knowledge Graph, the Holy Grail for content marketers. Better yet, with modern standards, it's easier than ever before to get started!

    At 10:00am to 10:50am, Friday 21st April

    In Addison Conference Center

  • How to Communicate Effectively Despite Technology

    by Heather White

    Today’s society is filled with devices, apps, and software that make communication easier and faster. But are we communicating with others in the most appropriate and effective way? Are we causing more problems and headaches for ourselves by only communicating in 140 characters at a time? In this talk, we will discuss the elements of interpersonal communication, the pitfalls of various methods of communication, and learn tools and strategies to put into immediate action. Attendees will leave with six action items to immediately use and improve their communication.

    At 10:00am to 10:50am, Friday 21st April

    In Addison Conference Center

  • Irritating Strings and Iterating Things

    by Poetaster Ordinaire

    Arrays are beautiful in PHP. One can map them, reduce them, filter them, foreach them, and use them in generators. Strings, on the other hand, are mere shadows to the Array. One can, uh, input and output Strings, and, when brave, manipulate them. What makes Arrays so awesome and Strings so dull? Iterators.

    In this talk, we’ll look at the modest origins of the String and the basics of the Iterator. Then, we’ll look at how we can make the String as awesome as the Array through the use of iterator interfaces.

    By the end of this talk, you will know the origins of the PHP String and you will be able to extend your knowledge of iterating through a String to be able to iterate through customized objects.

    At 11:00am to 11:50am, Friday 21st April

    In Addison Conference Center

  • Put an end to regression with Codeception Testing

    by Joe P Ferguson

    Ever kill a bug only to have it resurface later? How about that last intermittent bug you had to trace down? Looking forward to fixing it again when it pops back up?

    If you hate reanimated bugs then this session is for you. In this session, we will discuss the why and the how of building regression testing into your tests using the Codeception testing framework.

    Join me, let's hunt some zombie bugs. (Weapons not required)

    At 11:00am to 11:50am, Friday 21st April

    In Addison Conference Center

  • Your API Is Bad And You Should Feel Bad

    by Ben Edmunds

    Do you hate the Facebook API? We all do as well. So stop writing your API in their footsteps. In this talk we will walk through how to construct a RESTful API, what makes an API your users/developers will love, and why you should eat your own dog food with API Driven Development.

    At 11:00am to 11:50am, Friday 21st April

    In Addison Conference Center

  • Access Control Models: Controlling Resource Authorization

    by Mark Niebergall

    There are various access control models, each with a specific intent and purpose. Determining the ideal model for an application can help ensure proper authorization to application resources. Each of the primary models will be covered, including the MAC, DAC, RBAC, and ABAC Access Control models. Examples, challenges, and benefits of each will be discussed to provide a further insight into which solution may best serve an application. Application sensitivity, regulations, and privacy may drive which model is selected.

    At 1:00pm to 1:50pm, Friday 21st April

    In Addison Conference Center

  • Discovering Dark Knowledge in the Social Web

    by D. Keith Casey, Jr.

    It used to be that crawling social media required some creative coding, a deep understanding of links and relationships, and a finely tuned BS detector. With machine learning becoming common place, it turns out you only need the first two.

    Considering information in isolation never gives us a complete picture. As we supplement what we know with what we discover with what inferences and patterns our models can detect, what we know and what we KNOW becomes starkly different.

    In this session, we'll dive into a multi-year project that has used social media and other public data sources to uncover hiring patterns, stealth startups, and even pending legal action.

    At 1:00pm to 1:50pm, Friday 21st April

    In Addison Conference Center

  • Test Driving Test Driven Development

    by Jason McCreary

    We've all been to the talks about the tools for test driven development. But TDD is not just about writing tests, it's about driving development through testing. There's a very specific process of TDD with red, green, and blue phases. There's also different patterns, like outside-in or inside-out. In this talk, we will focus on these practices by TDDing a common data structure from start to finish. Attendees will gain experience and leave with tips to help them practice TDD in the real world.

    At 1:00pm to 1:50pm, Friday 21st April

    In Addison Conference Center

  • Curing the Common Loop (with Collection Pipelines)

    by Adam Wathan

    Trying to understand a complex function full of nested loops and conditionals is like trying to read a "choose your own adventure" book from front to back.

    In this whirlwind tour of programming with collection pipelines, you'll learn how to use functional programming ideas to break down complex code and abstract hidden duplication behind expressive higher order functions.

    Together we'll refactor ugly, complicated spaghetti into a series of simple, elegant transformations; free of loops, complex conditionals, and temporary variables.

    Never write another loop again.

    At 2:00pm to 2:50pm, Friday 21st April

    In Addison Conference Center

  • Problem Solved-ish

    by Daniel LaBarge

    Your customer calls, your project manager assigns you an issue, your open source project gets a pull request, or your boss emails you – “There’s a problem…” As computer genius and wiz kid you are expected to solve all of these problems because that’s what you are – a problem solver. Well, sort of. Kind of. Not really. Software engineer, sure. Frontend developer, yep. But when was the last time someone gave you a complete, perfectly described problem and you solved it completely? Do you even remember being taught how to recognize, describe, and solve problems? How do you even know if it is really solved?

    In the talk Problem Solved-ish we learn again or perhaps for the first time how problem solvers think, how our skills our empowered by our knowledge and understanding of the problem itself, and how solutions finally reveal themselves and the problems really do get solved. We take a look at the five C’s of debugging. We show the five Q’s of the Problem Solving Method. We demonstrate how testing can improve your confidence, your problem describing skills, and even your solution making skills. We will explore the business angle of problem solving and optimization by constraint based decision making and problem solving. Finally you will have a framework for making sure that it’s “problem solved.”

    At 2:00pm to 2:50pm, Friday 21st April

    In Addison Conference Center

  • Static in the Front, Dynamic in the Back!

    by Matthew Machuga

    PHP may have some more type hinting abilities than it has in the past, but it's still a very dynamically-typed language. It's an ecosystem in which we are all comfortable. But what about those times we are called upon to build the front end of a new single page application? JavaScript isn't syntactically too far off from the PHP we know, but it is a very different beast. We may very well shoot ourselves in the foot if we accidentally return undefined...or was it NaN?

    Maybe this would be a great time to check out Elm - a statically typed, purely functional language that compiles down to JavaScript. Not only will the compiler guarantee our code be free of runtime exceptions and type errors, but it will also provide the kindest, most helpful debugging hints and tips you've ever had the pleasure of reading. Elm frees you up to think about modeling your business logic and having fun while writing code, rather than worrying about what framework you should choose, how to structure your application, and other exhausting choices.

    Come see a fast-paced introduction to Elm. We'll walk through some of Elm's most notable features, what the Elm Architecture entails, and learn how to model and implement a simple application with using static types and a functional mindset.

    At 2:00pm to 2:50pm, Friday 21st April

    In Addison Conference Center

  • Learn to Stop Wiring and Love Laravel's Container

    by Beau D. Simensen

    You've heard about dependency injection and inversion of control. Everything seems easy at first and you've found a container or two to help make your life easier. Until it isn't anymore. Suddenly you've found yourself managing complicated YAML, XML, or PHP container configurations. Making any change to your classes dependencies seems like a chore and any time you add a new class to the system you dread the inevitable configuration container configuration wiring blues.

    Life doesn't have to be this way! In fact, life isn't this way for anyone who uses an autowiring container like Laravel's. Far from the most publicly marketed component, Illuminate\Container handles a lot of the magic that makes Laravel so much fun to use. Find out how you can use Laravel's container in almost any project! See how autowiring can free your mind from having to manually configure ever little dependency. Learn how you, too, can learn to stop wiring your dependency injection container and love Laravel's container!

    At 3:00pm to 3:50pm, Friday 21st April

    In Addison Conference Center

  • Learning Machine Learning

    by Joel Lord

    From chatbots to your home thermostat, it seems like machine learning algorithms are everywhere nowadays. How about understanding how this works now? In this talk, you will learn about the basics of machine learning through various basic examples, without the need for a PhD or deep knowledge of assembly. At the end of this talk, you will know what the Naive Bayes classifiers, sentiment analysis and basic genetic algorithms are and how they work. You will also see how to create your own implementations in PHP.

    At 3:00pm to 3:50pm, Friday 21st April

    In Addison Conference Center

  • The Accidental Professional

    by Adam Culp

    Humans learn most effectively through pain, like being shocked by a power outlet or touching a hot iron. The same reaction can be found in technology, but how can we attribute this to programming while minimizing the most painful mistakes? Adam Culp will share his experiences of the ongoing journey to become a professional developer, and highlight techniques used to reduce the pain and still reap the benefits. And for those times when the pain is inevitable, how can we fast-forward to enlightenment.

    At 3:00pm to 3:50pm, Friday 21st April

    In Addison Conference Center

  • How We Changed The World With Open Source

    by Ed Finkler

    In June of 2012, podcaster and veteran web dev Ed Finkler spoke openly about his lifelong struggles with mental illness with co-host Chris Hartjes. Four years later, a non-profit corporation with a dozen volunteers is working to change the tech and open source community. In this talk, Finkler tells the story of how the episode happened, the incredible response they received, and how it grew into a charity dedicated to changing and saving lives -- all by using the principles of open source culture.

    At 4:00pm to 4:50pm, Friday 21st April

    In Addison Conference Center

Saturday 22nd April 2017

  • Serving 30,000,000 Requests an Hour in the Cloud

    by Terrence Ryan

    You've written an application and now the worst thing that can happen to you has come about - People are using it! You now have load spikes to deal with. You can scale up to deal with the excess traffic, but what do you do when your load is variable? How do you do that, and stay on budget?

    This session is a case study on getting an App Engine app to scale to serve 30,000,000 requests an hour. It will take you through the architecture, the code changes and the technology trade offs to get to that level of traffic.

    At 9:00am to 9:50am, Saturday 22nd April

    In Addison Conference Center

  • Status Change: Now Using Event Sourcing

    by Emily Stamey

    Being flexible to changes in business process makes our jobs easier, and it helps our applications adapt to those changes with minimal code changes. One of the biggest adaptions in our applications has been the addition of Event Sourcing to make a note of an Event that happened in the system. With these Events, we can affect change immediately, or even later. This is most helpful in our reporting interfaces. We can build, change, and throw away our reports very easily. This is much easier than our older reports being generated by large SQL queries.

    Attendees will learn:
    - idealogical differences between status flags and events
    - triggering events in your application
    - handling events to reflect the state of your application data
    - building reports from events that are easy to chang

    At 9:00am to 9:50am, Saturday 22nd April

    In Addison Conference Center

  • You Don't Node.js (or, How JavaScript Actually Works)

    by ᴠᴀɴᴄᴇ ʟᴜᴄᴀꜱ

    JavaScript and Node.js can be a powerful tools used in the right situations, but they also have more footguns than PHP does for new developers. Asynchronous programming style, concurrency issues, error handling, the event loop, and no default timeouts for HTTP requests or network calls will give new developers more than their fair share of troubles and can cause issues that are difficult to debug and reproduce.

    This talk gives a brief introduction to Node.js and the event loop model (don’t block the event loop!), and covers common pitfalls when using Node.js with simple and practical solutions.

    At 9:00am to 9:50am, Saturday 22nd April

    In Addison Conference Center

  • I'd Like to Write the World Some Docs

    by Steve Grunwell

    It takes a special kind of person to enjoy writing documentation; not only do I have to write [ideally] working code, but now I have to write words that a human being can understand? What is this madness?!

    Luckily, good documentation lives on outside your codebase. By following common documentation standards, we can generate comprehensive manuals that instruct others how to integrate with our software. After all, to code is human, but to document is divine.

    At 10:00am to 10:50am, Saturday 22nd April

    In Addison Conference Center

  • Practical PHP Deployment with Jenkins

    by Adam Culp

    Developers would love to "automate all the things", but where do we start? What tools exist for automating? And what can actually be automated? If we don't have unit tests can we still benefit from deployment automation? Adam Culp will show how a PHP application pulled from git, complete with unit tests, Composer dependency management, and package creation, can be deployed flawlessly using Jenkins. Then see how "Dev" and "Ops" are supported by a system if the application breaks through automated rollbacks.

    At 10:00am to 10:50am, Saturday 22nd April

    In Addison Conference Center