This talk is geared towards developers comfortable using PHP's native functions and are curious how to write better custom functions. John presents 4 guidelines that if followed will result in clear, focused functions that are easy to read, reason about and reuse.
Software provides continual value when it can evolve with the business. But without proper care it's easy for software to become rigid and difficult to change--it stops being soft. In this talk John introduces ways to think of software and systems we build as independent, replaceable components.
Learning to program computers in the traditional sense has many pitfalls that are barriers for newcomers. The future job market for programmers is bright and kids should be taught to control technology rather than only consuming it.
John talks about Scratch, the visual programming language from MIT, and how he thinks it's the best "first" programming language for the next generation of developers. Scratch hits the sweet spot to overcoming introductory pitfalls and provides a safe environment for kids to learn, explore and share their digital creations.
John talks about guidelines and code smells for improving object API design. He takes an existing class and demonstrates refactoring it to a leaner more focused version of its previous self. Most importantly, what questions to ask yourself as you're writing new classes.
Pass 1 (and a future Part 2) will approach refactoring a class from the outside as opposed to the inside. We discuss topics like breaking apart bigger classes to make smaller classes that do one thing, programming without getters and setters, consistent entry and return points, and guidelines for object instantiation. This talk focuses less on in-function refactoring and more on API-level refactoring.
Given almost every month at the Kansas City PHP User Group. I summarize important news stories and happenings in the PHP community from the previous month before the presentation was delivered. Gives special attention to issues relevant to most of our regular attendees.
Demonstrate refactoring a typical Controller to using Symfony2 EventDispatcher component to make writing decoupled code easier.
Covers common misconceptions about version control, how to setup your environment to work with git, how to get up and going with git in your daily development workflow, and where to go to learn more.
Repeatable development environment for teams looking to do collaborative Drupal development. Major props to Chris Escalante for his role in technically implementing this solution for our team.
April 2012, Lawrence Coders
April 2012, Kansas City PHP User Group
Working effectively with git on a daily basis is a lot easier with a few tips on setting up your environment and making common commands faster to type. I also cover different code-sharing models and common workflows for working in a collaborative environment.
January 2011, University of Kansas Web Developers monthly meeting
Overview of the most common security threats facing modern web applications and how to mitigate them when using PHP.
November 2010, University of Kansas Web Developers monthly meeting
Current state of YUI Graded Browser Support. Please note, much of the information in this talk is outdated as of September 2011. Yahoo Graded Browser Support no longer grades browsers, and instead advocates for supporting a list of certain browsers, but ultimately pushes developers to do their own analytic testing and support browsers most-used by their user base.
September 2010, University of Kansas Web Developers monthly meeting
Current best practices advice on using @font-face, history of fonts on the web, browser support and font format support and challenges of @font-face.
January 2010, University of Kansas Web Developers monthly meeting
January 2010, Lawrence Programmers Hack Day